summaryrefslogtreecommitdiff
path: root/src/lib/libssl/t1_clnt.c
diff options
context:
space:
mode:
authorjsing <>2014-05-24 12:44:48 +0000
committerjsing <>2014-05-24 12:44:48 +0000
commit52c89a2661760a5549aeb55a62ea9957c3379e64 (patch)
treed69c2da4faf1b7f2a4d061a5b3cf3601197a246a /src/lib/libssl/t1_clnt.c
parent423deaf23c5a306d0f9bc96d6e1e9584d85f7c16 (diff)
downloadopenbsd-52c89a2661760a5549aeb55a62ea9957c3379e64.tar.gz
openbsd-52c89a2661760a5549aeb55a62ea9957c3379e64.tar.bz2
openbsd-52c89a2661760a5549aeb55a62ea9957c3379e64.zip
DeIMPLEMENT libssl. Expand the IMPLEMENT_* macros since it is far more
readable and one less layer of abstraction. Use C99 initialisers for clarity, grepability and to protect from future field reordering/removal. ok miod@ (tedu@ also thought it was a wonderful idea, beck@ also agreed, but ran away squealing since it reminded him of the VOP layer...)
Diffstat (limited to 'src/lib/libssl/t1_clnt.c')
-rw-r--r--src/lib/libssl/t1_clnt.c123
1 files changed, 114 insertions, 9 deletions
diff --git a/src/lib/libssl/t1_clnt.c b/src/lib/libssl/t1_clnt.c
index 180843c1f5..2223422d93 100644
--- a/src/lib/libssl/t1_clnt.c
+++ b/src/lib/libssl/t1_clnt.c
@@ -65,6 +65,120 @@
65 65
66static const SSL_METHOD *tls1_get_client_method(int ver); 66static const SSL_METHOD *tls1_get_client_method(int ver);
67 67
68const SSL_METHOD TLSv1_client_method_data = {
69 .version = TLS1_VERSION,
70 .ssl_new = tls1_new,
71 .ssl_clear = tls1_clear,
72 .ssl_free = tls1_free,
73 .ssl_accept = ssl_undefined_function,
74 .ssl_connect = ssl3_connect,
75 .ssl_read = ssl3_read,
76 .ssl_peek = ssl3_peek,
77 .ssl_write = ssl3_write,
78 .ssl_shutdown = ssl3_shutdown,
79 .ssl_renegotiate = ssl3_renegotiate,
80 .ssl_renegotiate_check = ssl3_renegotiate_check,
81 .ssl_get_message = ssl3_get_message,
82 .ssl_read_bytes = ssl3_read_bytes,
83 .ssl_write_bytes = ssl3_write_bytes,
84 .ssl_dispatch_alert = ssl3_dispatch_alert,
85 .ssl_ctrl = ssl3_ctrl,
86 .ssl_ctx_ctrl = ssl3_ctx_ctrl,
87 .get_cipher_by_char = ssl3_get_cipher_by_char,
88 .put_cipher_by_char = ssl3_put_cipher_by_char,
89 .ssl_pending = ssl3_pending,
90 .num_ciphers = ssl3_num_ciphers,
91 .get_cipher = ssl3_get_cipher,
92 .get_ssl_method = tls1_get_client_method,
93 .get_timeout = tls1_default_timeout,
94 .ssl3_enc = &TLSv1_enc_data,
95 .ssl_version = ssl_undefined_void_function,
96 .ssl_callback_ctrl = ssl3_callback_ctrl,
97 .ssl_ctx_callback_ctrl = ssl3_ctx_callback_ctrl,
98};
99
100const SSL_METHOD TLSv1_1_client_method_data = {
101 .version = TLS1_1_VERSION,
102 .ssl_new = tls1_new,
103 .ssl_clear = tls1_clear,
104 .ssl_free = tls1_free,
105 .ssl_accept = ssl_undefined_function,
106 .ssl_connect = ssl3_connect,
107 .ssl_read = ssl3_read,
108 .ssl_peek = ssl3_peek,
109 .ssl_write = ssl3_write,
110 .ssl_shutdown = ssl3_shutdown,
111 .ssl_renegotiate = ssl3_renegotiate,
112 .ssl_renegotiate_check = ssl3_renegotiate_check,
113 .ssl_get_message = ssl3_get_message,
114 .ssl_read_bytes = ssl3_read_bytes,
115 .ssl_write_bytes = ssl3_write_bytes,
116 .ssl_dispatch_alert = ssl3_dispatch_alert,
117 .ssl_ctrl = ssl3_ctrl,
118 .ssl_ctx_ctrl = ssl3_ctx_ctrl,
119 .get_cipher_by_char = ssl3_get_cipher_by_char,
120 .put_cipher_by_char = ssl3_put_cipher_by_char,
121 .ssl_pending = ssl3_pending,
122 .num_ciphers = ssl3_num_ciphers,
123 .get_cipher = ssl3_get_cipher,
124 .get_ssl_method = tls1_get_client_method,
125 .get_timeout = tls1_default_timeout,
126 .ssl3_enc = &TLSv1_enc_data,
127 .ssl_version = ssl_undefined_void_function,
128 .ssl_callback_ctrl = ssl3_callback_ctrl,
129 .ssl_ctx_callback_ctrl = ssl3_ctx_callback_ctrl,
130};
131
132const SSL_METHOD TLSv1_2_client_method_data = {
133 .version = TLS1_2_VERSION,
134 .ssl_new = tls1_new,
135 .ssl_clear = tls1_clear,
136 .ssl_free = tls1_free,
137 .ssl_accept = ssl_undefined_function,
138 .ssl_connect = ssl3_connect,
139 .ssl_read = ssl3_read,
140 .ssl_peek = ssl3_peek,
141 .ssl_write = ssl3_write,
142 .ssl_shutdown = ssl3_shutdown,
143 .ssl_renegotiate = ssl3_renegotiate,
144 .ssl_renegotiate_check = ssl3_renegotiate_check,
145 .ssl_get_message = ssl3_get_message,
146 .ssl_read_bytes = ssl3_read_bytes,
147 .ssl_write_bytes = ssl3_write_bytes,
148 .ssl_dispatch_alert = ssl3_dispatch_alert,
149 .ssl_ctrl = ssl3_ctrl,
150 .ssl_ctx_ctrl = ssl3_ctx_ctrl,
151 .get_cipher_by_char = ssl3_get_cipher_by_char,
152 .put_cipher_by_char = ssl3_put_cipher_by_char,
153 .ssl_pending = ssl3_pending,
154 .num_ciphers = ssl3_num_ciphers,
155 .get_cipher = ssl3_get_cipher,
156 .get_ssl_method = tls1_get_client_method,
157 .get_timeout = tls1_default_timeout,
158 .ssl3_enc = &TLSv1_enc_data,
159 .ssl_version = ssl_undefined_void_function,
160 .ssl_callback_ctrl = ssl3_callback_ctrl,
161 .ssl_ctx_callback_ctrl = ssl3_ctx_callback_ctrl,
162};
163
164const SSL_METHOD *
165TLSv1_client_method(void)
166{
167 return &TLSv1_client_method_data;
168}
169
170const SSL_METHOD *
171TLSv1_1_client_method(void)
172{
173 return &TLSv1_1_client_method_data;
174}
175
176const SSL_METHOD *
177TLSv1_2_client_method(void)
178{
179 return &TLSv1_2_client_method_data;
180}
181
68static const SSL_METHOD * 182static const SSL_METHOD *
69tls1_get_client_method(int ver) 183tls1_get_client_method(int ver)
70{ 184{
@@ -76,12 +190,3 @@ tls1_get_client_method(int ver)
76 return (TLSv1_client_method()); 190 return (TLSv1_client_method());
77 return (NULL); 191 return (NULL);
78} 192}
79
80IMPLEMENT_tls_meth_func(TLS1_2_VERSION, TLSv1_2_client_method,
81 ssl_undefined_function, ssl3_connect, tls1_get_client_method)
82
83IMPLEMENT_tls_meth_func(TLS1_1_VERSION, TLSv1_1_client_method,
84 ssl_undefined_function, ssl3_connect, tls1_get_client_method)
85
86IMPLEMENT_tls_meth_func(TLS1_VERSION, TLSv1_client_method,
87 ssl_undefined_function, ssl3_connect, tls1_get_client_method)