]>
Commit | Line | Data |
---|---|---|
d72a0041 | 1 | /* |
b0edda11 | 2 | * Copyright 2017-2018 The OpenSSL Project Authors. All Rights Reserved. |
d72a0041 DSH |
3 | * |
4 | * Licensed under the OpenSSL license (the "License"). You may not use | |
5 | * this file except in compliance with the License. You can obtain a copy | |
6 | * in the file LICENSE in the source distribution or at | |
7 | * https://www.openssl.org/source/license.html | |
8 | */ | |
9 | ||
10 | /* Internal tests for the x509 and x509v3 modules */ | |
11 | ||
12 | #include <stdio.h> | |
13 | #include <string.h> | |
14 | ||
15 | #include <openssl/ssl.h> | |
16 | #include "testutil.h" | |
176db6dc | 17 | #include "internal/nelem.h" |
d72a0041 DSH |
18 | |
19 | #ifdef __VMS | |
20 | # pragma names save | |
21 | # pragma names as_is,shortened | |
22 | #endif | |
23 | ||
b5acbf91 | 24 | #include "../ssl/ssl_local.h" |
d72a0041 DSH |
25 | #include "../ssl/ssl_cert_table.h" |
26 | ||
27 | #ifdef __VMS | |
28 | # pragma names restore | |
29 | #endif | |
30 | ||
31 | #define test_cert_table(nid, amask, idx) \ | |
32 | do_test_cert_table(nid, amask, idx, #idx) | |
33 | ||
34 | static int do_test_cert_table(int nid, uint32_t amask, size_t idx, | |
35 | const char *idxname) | |
36 | { | |
37 | const SSL_CERT_LOOKUP *clu = &ssl_cert_info[idx]; | |
38 | ||
39 | if (clu->nid == nid && clu->amask == amask) | |
40 | return 1; | |
41 | ||
42 | TEST_error("Invalid table entry for certificate type %s, index %zu", | |
43 | idxname, idx); | |
44 | if (clu->nid != nid) | |
45 | TEST_note("Expected %s, got %s\n", OBJ_nid2sn(nid), | |
46 | OBJ_nid2sn(clu->nid)); | |
47 | if (clu->amask != amask) | |
48 | TEST_note("Expected auth mask 0x%x, got 0x%x\n", amask, clu->amask); | |
49 | return 0; | |
50 | } | |
51 | ||
52 | /* Sanity check of ssl_cert_table */ | |
53 | ||
31a80694 | 54 | static int test_ssl_cert_table(void) |
d72a0041 DSH |
55 | { |
56 | TEST_size_t_eq(OSSL_NELEM(ssl_cert_info), SSL_PKEY_NUM); | |
57 | if (!test_cert_table(EVP_PKEY_RSA, SSL_aRSA, SSL_PKEY_RSA)) | |
58 | return 0; | |
59 | if (!test_cert_table(EVP_PKEY_DSA, SSL_aDSS, SSL_PKEY_DSA_SIGN)) | |
60 | return 0; | |
61 | if (!test_cert_table(EVP_PKEY_EC, SSL_aECDSA, SSL_PKEY_ECC)) | |
62 | return 0; | |
63 | if (!test_cert_table(NID_id_GostR3410_2001, SSL_aGOST01, SSL_PKEY_GOST01)) | |
64 | return 0; | |
65 | if (!test_cert_table(NID_id_GostR3410_2012_256, SSL_aGOST12, | |
66 | SSL_PKEY_GOST12_256)) | |
67 | return 0; | |
68 | if (!test_cert_table(NID_id_GostR3410_2012_512, SSL_aGOST12, | |
69 | SSL_PKEY_GOST12_512)) | |
70 | return 0; | |
71 | if (!test_cert_table(EVP_PKEY_ED25519, SSL_aECDSA, SSL_PKEY_ED25519)) | |
72 | return 0; | |
fe93b010 MC |
73 | if (!test_cert_table(EVP_PKEY_ED448, SSL_aECDSA, SSL_PKEY_ED448)) |
74 | return 0; | |
d72a0041 DSH |
75 | |
76 | return 1; | |
77 | } | |
78 | ||
3cb7c5cf | 79 | int setup_tests(void) |
d72a0041 DSH |
80 | { |
81 | ADD_TEST(test_ssl_cert_table); | |
ad887416 | 82 | return 1; |
d72a0041 | 83 | } |