summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorjsing <>2021-07-03 14:52:12 +0000
committerjsing <>2021-07-03 14:52:12 +0000
commit01d3cb38351c42cd85db30d9fef1682001d52f88 (patch)
tree07c2497afa8940043b1240cf870e3f10d790f713 /src
parente11b2dc91aab6bc54d54c61b141471abd866d596 (diff)
downloadopenbsd-01d3cb38351c42cd85db30d9fef1682001d52f88.tar.gz
openbsd-01d3cb38351c42cd85db30d9fef1682001d52f88.tar.bz2
openbsd-01d3cb38351c42cd85db30d9fef1682001d52f88.zip
Rewrite get_put_test() as cipher_find_test().
The get_cipher_by_char() and put_cipher_by_char() pointers are no longer accessible on the SSL_METHOD (and soon will not even exist). Rewrite the test to use SSL_CIPHER_find() instead.
Diffstat (limited to 'src')
-rw-r--r--src/regress/lib/libssl/ciphers/cipherstest.c79
1 files changed, 25 insertions, 54 deletions
diff --git a/src/regress/lib/libssl/ciphers/cipherstest.c b/src/regress/lib/libssl/ciphers/cipherstest.c
index 8626bc06b4..f3bd841130 100644
--- a/src/regress/lib/libssl/ciphers/cipherstest.c
+++ b/src/regress/lib/libssl/ciphers/cipherstest.c
@@ -32,9 +32,8 @@ ssl_aes_is_accelerated(void)
32#endif 32#endif
33} 33}
34 34
35#if 0
36static int 35static int
37get_put_test(const char *name, const SSL_METHOD *method) 36cipher_find_test(void)
38{ 37{
39 STACK_OF(SSL_CIPHER) *ciphers; 38 STACK_OF(SSL_CIPHER) *ciphers;
40 const SSL_CIPHER *cipher; 39 const SSL_CIPHER *cipher;
@@ -42,42 +41,46 @@ get_put_test(const char *name, const SSL_METHOD *method)
42 SSL_CTX *ssl_ctx = NULL; 41 SSL_CTX *ssl_ctx = NULL;
43 SSL *ssl = NULL; 42 SSL *ssl = NULL;
44 int ret = 1; 43 int ret = 1;
45 int i, len; 44 int i;
46
47 if ((len = method->put_cipher_by_char(NULL, NULL)) != 2) {
48 fprintf(stderr,
49 "%s: put_cipher_by_char() returned len %i (want 2)\n",
50 name, len);
51 return (1);
52 }
53 45
54 if ((ssl_ctx = SSL_CTX_new(method)) == NULL) { 46 if ((ssl_ctx = SSL_CTX_new(TLS_method())) == NULL) {
55 fprintf(stderr, "%s: SSL_CTX_new() returned NULL\n", name); 47 fprintf(stderr, "SSL_CTX_new() returned NULL\n");
56 goto failure; 48 goto failure;
57 } 49 }
58 if ((ssl = SSL_new(ssl_ctx)) == NULL) { 50 if ((ssl = SSL_new(ssl_ctx)) == NULL) {
59 fprintf(stderr, "%s: SSL_new() returned NULL\n", name); 51 fprintf(stderr, "SSL_new() returned NULL\n");
52 goto failure;
53 }
54 if (!SSL_set_cipher_list(ssl, "ALL")) {
55 fprintf(stderr, "SSL_set_cipher_list failed\n");
60 goto failure; 56 goto failure;
61 } 57 }
62 58
63 if ((ciphers = SSL_get_ciphers(ssl)) == NULL) { 59 if ((ciphers = SSL_get_ciphers(ssl)) == NULL) {
64 fprintf(stderr, "%s: no ciphers\n", name); 60 fprintf(stderr, "no ciphers\n");
65 goto failure; 61 goto failure;
66 } 62 }
67 63
68 for (i = 0; i < sk_SSL_CIPHER_num(ciphers); i++) { 64 for (i = 0; i < sk_SSL_CIPHER_num(ciphers); i++) {
65 uint16_t cipher_value;
66
69 cipher = sk_SSL_CIPHER_value(ciphers, i); 67 cipher = sk_SSL_CIPHER_value(ciphers, i);
70 if ((len = method->put_cipher_by_char(cipher, buf)) != 2) { 68 cipher_value = SSL_CIPHER_get_value(cipher);
69
70 buf[0] = cipher_value >> 8;
71 buf[1] = cipher_value & 0xff;
72
73 if ((cipher = SSL_CIPHER_find(ssl, buf)) == NULL) {
71 fprintf(stderr, 74 fprintf(stderr,
72 "%s: put_cipher_by_char() returned len %i for %s " 75 "SSL_CIPHER_find() returned NULL for %s\n",
73 "(want 2)\n", 76 SSL_CIPHER_get_name(cipher));
74 name, len, SSL_CIPHER_get_name(cipher));
75 goto failure; 77 goto failure;
76 } 78 }
77 if ((cipher = method->get_cipher_by_char(buf)) == NULL) { 79
80 if (SSL_CIPHER_get_value(cipher) != cipher_value) {
78 fprintf(stderr, 81 fprintf(stderr,
79 "%s: get_cipher_by_char() returned NULL for %s\n", 82 "got cipher with value 0x%x, want 0x%x\n",
80 name, SSL_CIPHER_get_name(cipher)); 83 SSL_CIPHER_get_value(cipher), cipher_value);
81 goto failure; 84 goto failure;
82 } 85 }
83 } 86 }
@@ -92,35 +95,6 @@ get_put_test(const char *name, const SSL_METHOD *method)
92} 95}
93 96
94static int 97static int
95cipher_get_put_tests(void)
96{
97 int failed = 0;
98
99 failed |= get_put_test("SSLv23", SSLv23_method());
100 failed |= get_put_test("SSLv23_client", SSLv23_client_method());
101 failed |= get_put_test("SSLv23_server", SSLv23_server_method());
102
103 failed |= get_put_test("TLSv1", TLSv1_method());
104 failed |= get_put_test("TLSv1_client", TLSv1_client_method());
105 failed |= get_put_test("TLSv1_server", TLSv1_server_method());
106
107 failed |= get_put_test("TLSv1_1", TLSv1_1_method());
108 failed |= get_put_test("TLSv1_1_client", TLSv1_1_client_method());
109 failed |= get_put_test("TLSv1_1_server", TLSv1_1_server_method());
110
111 failed |= get_put_test("TLSv1_2", TLSv1_2_method());
112 failed |= get_put_test("TLSv1_2_client", TLSv1_2_client_method());
113 failed |= get_put_test("TLSv1_2_server", TLSv1_2_server_method());
114
115 failed |= get_put_test("DTLSv1", DTLSv1_method());
116 failed |= get_put_test("DTLSv1_client", DTLSv1_client_method());
117 failed |= get_put_test("DTLSv1_server", DTLSv1_server_method());
118
119 return failed;
120}
121#endif
122
123static int
124cipher_get_by_value_tests(void) 98cipher_get_by_value_tests(void)
125{ 99{
126 STACK_OF(SSL_CIPHER) *ciphers; 100 STACK_OF(SSL_CIPHER) *ciphers;
@@ -510,10 +484,7 @@ main(int argc, char **argv)
510{ 484{
511 int failed = 0; 485 int failed = 0;
512 486
513#if 0 487 failed |= cipher_find_test();
514 failed |= cipher_get_put_tests();
515#endif
516
517 failed |= cipher_get_by_value_tests(); 488 failed |= cipher_get_by_value_tests();
518 489
519 failed |= parse_ciphersuites_test(); 490 failed |= parse_ciphersuites_test();