summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortb <>2024-10-12 03:54:18 +0000
committertb <>2024-10-12 03:54:18 +0000
commit0ee3a3c0348f733e2ad2e1bb1c2169f13fb380f9 (patch)
treede34933de57e649d438d1b05121805b48b56a882
parent96512bd19204e0b4282212e67c2acc75b3042360 (diff)
downloadopenbsd-0ee3a3c0348f733e2ad2e1bb1c2169f13fb380f9.tar.gz
openbsd-0ee3a3c0348f733e2ad2e1bb1c2169f13fb380f9.tar.bz2
openbsd-0ee3a3c0348f733e2ad2e1bb1c2169f13fb380f9.zip
Remove unnecessary str variable in ssl_stat.c
Drop about 1/4 of the lines in here by avoiding the use of a variable. For some reason the API in this file made me go listen to Pow R. Toc H. All of a sudden the lyrics made sense. I should probably be worried. ok beck jsing
-rw-r--r--src/lib/libssl/ssl_stat.c635
1 files changed, 208 insertions, 427 deletions
diff --git a/src/lib/libssl/ssl_stat.c b/src/lib/libssl/ssl_stat.c
index 9f92abf214..b19944ca83 100644
--- a/src/lib/libssl/ssl_stat.c
+++ b/src/lib/libssl/ssl_stat.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: ssl_stat.c,v 1.22 2024/10/09 08:01:39 tb Exp $ */ 1/* $OpenBSD: ssl_stat.c,v 1.23 2024/10/12 03:54:18 tb Exp $ */
2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
3 * All rights reserved. 3 * All rights reserved.
4 * 4 *
@@ -89,465 +89,323 @@
89const char * 89const char *
90SSL_state_string_long(const SSL *s) 90SSL_state_string_long(const SSL *s)
91{ 91{
92 const char *str;
93
94 switch (s->s3->hs.state) { 92 switch (s->s3->hs.state) {
95 case SSL_ST_BEFORE: 93 case SSL_ST_BEFORE:
96 str = "before SSL initialization"; 94 return "before SSL initialization";
97 break;
98 case SSL_ST_ACCEPT: 95 case SSL_ST_ACCEPT:
99 str = "before accept initialization"; 96 return "before accept initialization";
100 break;
101 case SSL_ST_CONNECT: 97 case SSL_ST_CONNECT:
102 str = "before connect initialization"; 98 return "before connect initialization";
103 break;
104 case SSL_ST_OK: 99 case SSL_ST_OK:
105 str = "SSL negotiation finished successfully"; 100 return "SSL negotiation finished successfully";
106 break;
107 case SSL_ST_RENEGOTIATE: 101 case SSL_ST_RENEGOTIATE:
108 str = "SSL renegotiate ciphers"; 102 return "SSL renegotiate ciphers";
109 break;
110 case SSL_ST_BEFORE|SSL_ST_CONNECT: 103 case SSL_ST_BEFORE|SSL_ST_CONNECT:
111 str = "before/connect initialization"; 104 return "before/connect initialization";
112 break;
113 case SSL_ST_OK|SSL_ST_CONNECT: 105 case SSL_ST_OK|SSL_ST_CONNECT:
114 str = "ok/connect SSL initialization"; 106 return "ok/connect SSL initialization";
115 break;
116 case SSL_ST_BEFORE|SSL_ST_ACCEPT: 107 case SSL_ST_BEFORE|SSL_ST_ACCEPT:
117 str = "before/accept initialization"; 108 return "before/accept initialization";
118 break;
119 case SSL_ST_OK|SSL_ST_ACCEPT: 109 case SSL_ST_OK|SSL_ST_ACCEPT:
120 str = "ok/accept SSL initialization"; 110 return "ok/accept SSL initialization";
121 break;
122 111
123 /* SSLv3 additions */ 112 /* SSLv3 additions */
124 case SSL3_ST_CW_CLNT_HELLO_A: 113 case SSL3_ST_CW_CLNT_HELLO_A:
125 str = "SSLv3 write client hello A"; 114 return "SSLv3 write client hello A";
126 break;
127 case SSL3_ST_CW_CLNT_HELLO_B: 115 case SSL3_ST_CW_CLNT_HELLO_B:
128 str = "SSLv3 write client hello B"; 116 return "SSLv3 write client hello B";
129 break;
130 case SSL3_ST_CR_SRVR_HELLO_A: 117 case SSL3_ST_CR_SRVR_HELLO_A:
131 str = "SSLv3 read server hello A"; 118 return "SSLv3 read server hello A";
132 break;
133 case SSL3_ST_CR_SRVR_HELLO_B: 119 case SSL3_ST_CR_SRVR_HELLO_B:
134 str = "SSLv3 read server hello B"; 120 return "SSLv3 read server hello B";
135 break;
136 case SSL3_ST_CR_CERT_A: 121 case SSL3_ST_CR_CERT_A:
137 str = "SSLv3 read server certificate A"; 122 return "SSLv3 read server certificate A";
138 break;
139 case SSL3_ST_CR_CERT_B: 123 case SSL3_ST_CR_CERT_B:
140 str = "SSLv3 read server certificate B"; 124 return "SSLv3 read server certificate B";
141 break;
142 case SSL3_ST_CR_KEY_EXCH_A: 125 case SSL3_ST_CR_KEY_EXCH_A:
143 str = "SSLv3 read server key exchange A"; 126 return "SSLv3 read server key exchange A";
144 break;
145 case SSL3_ST_CR_KEY_EXCH_B: 127 case SSL3_ST_CR_KEY_EXCH_B:
146 str = "SSLv3 read server key exchange B"; 128 return "SSLv3 read server key exchange B";
147 break;
148 case SSL3_ST_CR_CERT_REQ_A: 129 case SSL3_ST_CR_CERT_REQ_A:
149 str = "SSLv3 read server certificate request A"; 130 return "SSLv3 read server certificate request A";
150 break;
151 case SSL3_ST_CR_CERT_REQ_B: 131 case SSL3_ST_CR_CERT_REQ_B:
152 str = "SSLv3 read server certificate request B"; 132 return "SSLv3 read server certificate request B";
153 break;
154 case SSL3_ST_CR_SESSION_TICKET_A: 133 case SSL3_ST_CR_SESSION_TICKET_A:
155 str = "SSLv3 read server session ticket A"; 134 return "SSLv3 read server session ticket A";
156 break;
157 case SSL3_ST_CR_SESSION_TICKET_B: 135 case SSL3_ST_CR_SESSION_TICKET_B:
158 str = "SSLv3 read server session ticket B"; 136 return "SSLv3 read server session ticket B";
159 break;
160 case SSL3_ST_CR_SRVR_DONE_A: 137 case SSL3_ST_CR_SRVR_DONE_A:
161 str = "SSLv3 read server done A"; 138 return "SSLv3 read server done A";
162 break;
163 case SSL3_ST_CR_SRVR_DONE_B: 139 case SSL3_ST_CR_SRVR_DONE_B:
164 str = "SSLv3 read server done B"; 140 return "SSLv3 read server done B";
165 break;
166 case SSL3_ST_CW_CERT_A: 141 case SSL3_ST_CW_CERT_A:
167 str = "SSLv3 write client certificate A"; 142 return "SSLv3 write client certificate A";
168 break;
169 case SSL3_ST_CW_CERT_B: 143 case SSL3_ST_CW_CERT_B:
170 str = "SSLv3 write client certificate B"; 144 return "SSLv3 write client certificate B";
171 break;
172 case SSL3_ST_CW_CERT_C: 145 case SSL3_ST_CW_CERT_C:
173 str = "SSLv3 write client certificate C"; 146 return "SSLv3 write client certificate C";
174 break;
175 case SSL3_ST_CW_CERT_D: 147 case SSL3_ST_CW_CERT_D:
176 str = "SSLv3 write client certificate D"; 148 return "SSLv3 write client certificate D";
177 break;
178 case SSL3_ST_CW_KEY_EXCH_A: 149 case SSL3_ST_CW_KEY_EXCH_A:
179 str = "SSLv3 write client key exchange A"; 150 return "SSLv3 write client key exchange A";
180 break;
181 case SSL3_ST_CW_KEY_EXCH_B: 151 case SSL3_ST_CW_KEY_EXCH_B:
182 str = "SSLv3 write client key exchange B"; 152 return "SSLv3 write client key exchange B";
183 break;
184 case SSL3_ST_CW_CERT_VRFY_A: 153 case SSL3_ST_CW_CERT_VRFY_A:
185 str = "SSLv3 write certificate verify A"; 154 return "SSLv3 write certificate verify A";
186 break;
187 case SSL3_ST_CW_CERT_VRFY_B: 155 case SSL3_ST_CW_CERT_VRFY_B:
188 str = "SSLv3 write certificate verify B"; 156 return "SSLv3 write certificate verify B";
189 break;
190 157
191 case SSL3_ST_CW_CHANGE_A: 158 case SSL3_ST_CW_CHANGE_A:
192 case SSL3_ST_SW_CHANGE_A: 159 case SSL3_ST_SW_CHANGE_A:
193 str = "SSLv3 write change cipher spec A"; 160 return "SSLv3 write change cipher spec A";
194 break;
195 case SSL3_ST_CW_CHANGE_B: 161 case SSL3_ST_CW_CHANGE_B:
196 case SSL3_ST_SW_CHANGE_B: 162 case SSL3_ST_SW_CHANGE_B:
197 str = "SSLv3 write change cipher spec B"; 163 return "SSLv3 write change cipher spec B";
198 break;
199 case SSL3_ST_CW_FINISHED_A: 164 case SSL3_ST_CW_FINISHED_A:
200 case SSL3_ST_SW_FINISHED_A: 165 case SSL3_ST_SW_FINISHED_A:
201 str = "SSLv3 write finished A"; 166 return "SSLv3 write finished A";
202 break;
203 case SSL3_ST_CW_FINISHED_B: 167 case SSL3_ST_CW_FINISHED_B:
204 case SSL3_ST_SW_FINISHED_B: 168 case SSL3_ST_SW_FINISHED_B:
205 str = "SSLv3 write finished B"; 169 return "SSLv3 write finished B";
206 break;
207 case SSL3_ST_CR_CHANGE_A: 170 case SSL3_ST_CR_CHANGE_A:
208 case SSL3_ST_SR_CHANGE_A: 171 case SSL3_ST_SR_CHANGE_A:
209 str = "SSLv3 read change cipher spec A"; 172 return "SSLv3 read change cipher spec A";
210 break;
211 case SSL3_ST_CR_CHANGE_B: 173 case SSL3_ST_CR_CHANGE_B:
212 case SSL3_ST_SR_CHANGE_B: 174 case SSL3_ST_SR_CHANGE_B:
213 str = "SSLv3 read change cipher spec B"; 175 return "SSLv3 read change cipher spec B";
214 break;
215 case SSL3_ST_CR_FINISHED_A: 176 case SSL3_ST_CR_FINISHED_A:
216 case SSL3_ST_SR_FINISHED_A: 177 case SSL3_ST_SR_FINISHED_A:
217 str = "SSLv3 read finished A"; 178 return "SSLv3 read finished A";
218 break;
219 case SSL3_ST_CR_FINISHED_B: 179 case SSL3_ST_CR_FINISHED_B:
220 case SSL3_ST_SR_FINISHED_B: 180 case SSL3_ST_SR_FINISHED_B:
221 str = "SSLv3 read finished B"; 181 return "SSLv3 read finished B";
222 break;
223 182
224 case SSL3_ST_CW_FLUSH: 183 case SSL3_ST_CW_FLUSH:
225 case SSL3_ST_SW_FLUSH: 184 case SSL3_ST_SW_FLUSH:
226 str = "SSLv3 flush data"; 185 return "SSLv3 flush data";
227 break;
228 186
229 case SSL3_ST_SR_CLNT_HELLO_A: 187 case SSL3_ST_SR_CLNT_HELLO_A:
230 str = "SSLv3 read client hello A"; 188 return "SSLv3 read client hello A";
231 break;
232 case SSL3_ST_SR_CLNT_HELLO_B: 189 case SSL3_ST_SR_CLNT_HELLO_B:
233 str = "SSLv3 read client hello B"; 190 return "SSLv3 read client hello B";
234 break;
235 case SSL3_ST_SR_CLNT_HELLO_C: 191 case SSL3_ST_SR_CLNT_HELLO_C:
236 str = "SSLv3 read client hello C"; 192 return "SSLv3 read client hello C";
237 break;
238 case SSL3_ST_SW_HELLO_REQ_A: 193 case SSL3_ST_SW_HELLO_REQ_A:
239 str = "SSLv3 write hello request A"; 194 return "SSLv3 write hello request A";
240 break;
241 case SSL3_ST_SW_HELLO_REQ_B: 195 case SSL3_ST_SW_HELLO_REQ_B:
242 str = "SSLv3 write hello request B"; 196 return "SSLv3 write hello request B";
243 break;
244 case SSL3_ST_SW_HELLO_REQ_C: 197 case SSL3_ST_SW_HELLO_REQ_C:
245 str = "SSLv3 write hello request C"; 198 return "SSLv3 write hello request C";
246 break;
247 case SSL3_ST_SW_SRVR_HELLO_A: 199 case SSL3_ST_SW_SRVR_HELLO_A:
248 str = "SSLv3 write server hello A"; 200 return "SSLv3 write server hello A";
249 break;
250 case SSL3_ST_SW_SRVR_HELLO_B: 201 case SSL3_ST_SW_SRVR_HELLO_B:
251 str = "SSLv3 write server hello B"; 202 return "SSLv3 write server hello B";
252 break;
253 case SSL3_ST_SW_CERT_A: 203 case SSL3_ST_SW_CERT_A:
254 str = "SSLv3 write certificate A"; 204 return "SSLv3 write certificate A";
255 break;
256 case SSL3_ST_SW_CERT_B: 205 case SSL3_ST_SW_CERT_B:
257 str = "SSLv3 write certificate B"; 206 return "SSLv3 write certificate B";
258 break;
259 case SSL3_ST_SW_KEY_EXCH_A: 207 case SSL3_ST_SW_KEY_EXCH_A:
260 str = "SSLv3 write key exchange A"; 208 return "SSLv3 write key exchange A";
261 break;
262 case SSL3_ST_SW_KEY_EXCH_B: 209 case SSL3_ST_SW_KEY_EXCH_B:
263 str = "SSLv3 write key exchange B"; 210 return "SSLv3 write key exchange B";
264 break;
265 case SSL3_ST_SW_CERT_REQ_A: 211 case SSL3_ST_SW_CERT_REQ_A:
266 str = "SSLv3 write certificate request A"; 212 return "SSLv3 write certificate request A";
267 break;
268 case SSL3_ST_SW_CERT_REQ_B: 213 case SSL3_ST_SW_CERT_REQ_B:
269 str = "SSLv3 write certificate request B"; 214 return "SSLv3 write certificate request B";
270 break;
271 case SSL3_ST_SW_SESSION_TICKET_A: 215 case SSL3_ST_SW_SESSION_TICKET_A:
272 str = "SSLv3 write session ticket A"; 216 return "SSLv3 write session ticket A";
273 break;
274 case SSL3_ST_SW_SESSION_TICKET_B: 217 case SSL3_ST_SW_SESSION_TICKET_B:
275 str = "SSLv3 write session ticket B"; 218 return "SSLv3 write session ticket B";
276 break;
277 case SSL3_ST_SW_SRVR_DONE_A: 219 case SSL3_ST_SW_SRVR_DONE_A:
278 str = "SSLv3 write server done A"; 220 return "SSLv3 write server done A";
279 break;
280 case SSL3_ST_SW_SRVR_DONE_B: 221 case SSL3_ST_SW_SRVR_DONE_B:
281 str = "SSLv3 write server done B"; 222 return "SSLv3 write server done B";
282 break;
283 case SSL3_ST_SR_CERT_A: 223 case SSL3_ST_SR_CERT_A:
284 str = "SSLv3 read client certificate A"; 224 return "SSLv3 read client certificate A";
285 break;
286 case SSL3_ST_SR_CERT_B: 225 case SSL3_ST_SR_CERT_B:
287 str = "SSLv3 read client certificate B"; 226 return "SSLv3 read client certificate B";
288 break;
289 case SSL3_ST_SR_KEY_EXCH_A: 227 case SSL3_ST_SR_KEY_EXCH_A:
290 str = "SSLv3 read client key exchange A"; 228 return "SSLv3 read client key exchange A";
291 break;
292 case SSL3_ST_SR_KEY_EXCH_B: 229 case SSL3_ST_SR_KEY_EXCH_B:
293 str = "SSLv3 read client key exchange B"; 230 return "SSLv3 read client key exchange B";
294 break;
295 case SSL3_ST_SR_CERT_VRFY_A: 231 case SSL3_ST_SR_CERT_VRFY_A:
296 str = "SSLv3 read certificate verify A"; 232 return "SSLv3 read certificate verify A";
297 break;
298 case SSL3_ST_SR_CERT_VRFY_B: 233 case SSL3_ST_SR_CERT_VRFY_B:
299 str = "SSLv3 read certificate verify B"; 234 return "SSLv3 read certificate verify B";
300 break;
301 235
302 /* DTLS */ 236 /* DTLS */
303 case DTLS1_ST_CR_HELLO_VERIFY_REQUEST_A: 237 case DTLS1_ST_CR_HELLO_VERIFY_REQUEST_A:
304 str = "DTLS1 read hello verify request A"; 238 return "DTLS1 read hello verify request A";
305 break;
306 case DTLS1_ST_CR_HELLO_VERIFY_REQUEST_B: 239 case DTLS1_ST_CR_HELLO_VERIFY_REQUEST_B:
307 str = "DTLS1 read hello verify request B"; 240 return "DTLS1 read hello verify request B";
308 break;
309 case DTLS1_ST_SW_HELLO_VERIFY_REQUEST_A: 241 case DTLS1_ST_SW_HELLO_VERIFY_REQUEST_A:
310 str = "DTLS1 write hello verify request A"; 242 return "DTLS1 write hello verify request A";
311 break;
312 case DTLS1_ST_SW_HELLO_VERIFY_REQUEST_B: 243 case DTLS1_ST_SW_HELLO_VERIFY_REQUEST_B:
313 str = "DTLS1 write hello verify request B"; 244 return "DTLS1 write hello verify request B";
314 break;
315 245
316 default: 246 default:
317 str = "unknown state"; 247 return "unknown state";
318 break;
319 } 248 }
320 return (str);
321} 249}
322LSSL_ALIAS(SSL_state_string_long); 250LSSL_ALIAS(SSL_state_string_long);
323 251
324const char * 252const char *
325SSL_rstate_string_long(const SSL *s) 253SSL_rstate_string_long(const SSL *s)
326{ 254{
327 const char *str;
328
329 switch (s->rstate) { 255 switch (s->rstate) {
330 case SSL_ST_READ_HEADER: 256 case SSL_ST_READ_HEADER:
331 str = "read header"; 257 return "read header";
332 break;
333 case SSL_ST_READ_BODY: 258 case SSL_ST_READ_BODY:
334 str = "read body"; 259 return "read body";
335 break;
336 case SSL_ST_READ_DONE: 260 case SSL_ST_READ_DONE:
337 str = "read done"; 261 return "read done";
338 break;
339 default: 262 default:
340 str = "unknown"; 263 return "unknown";
341 break;
342 } 264 }
343 return (str);
344} 265}
345LSSL_ALIAS(SSL_rstate_string_long); 266LSSL_ALIAS(SSL_rstate_string_long);
346 267
347const char * 268const char *
348SSL_state_string(const SSL *s) 269SSL_state_string(const SSL *s)
349{ 270{
350 const char *str;
351
352 switch (s->s3->hs.state) { 271 switch (s->s3->hs.state) {
353 case SSL_ST_BEFORE: 272 case SSL_ST_BEFORE:
354 str = "PINIT "; 273 return "PINIT ";
355 break;
356 case SSL_ST_ACCEPT: 274 case SSL_ST_ACCEPT:
357 str = "AINIT "; 275 return "AINIT ";
358 break;
359 case SSL_ST_CONNECT: 276 case SSL_ST_CONNECT:
360 str = "CINIT "; 277 return "CINIT ";
361 break;
362 case SSL_ST_OK: 278 case SSL_ST_OK:
363 str = "SSLOK "; 279 return "SSLOK ";
364 break;
365 280
366 /* SSLv3 additions */ 281 /* SSLv3 additions */
367 case SSL3_ST_SW_FLUSH: 282 case SSL3_ST_SW_FLUSH:
368 case SSL3_ST_CW_FLUSH: 283 case SSL3_ST_CW_FLUSH:
369 str = "3FLUSH"; 284 return "3FLUSH";
370 break;
371 case SSL3_ST_CW_CLNT_HELLO_A: 285 case SSL3_ST_CW_CLNT_HELLO_A:
372 str = "3WCH_A"; 286 return "3WCH_A";
373 break;
374 case SSL3_ST_CW_CLNT_HELLO_B: 287 case SSL3_ST_CW_CLNT_HELLO_B:
375 str = "3WCH_B"; 288 return "3WCH_B";
376 break;
377 case SSL3_ST_CR_SRVR_HELLO_A: 289 case SSL3_ST_CR_SRVR_HELLO_A:
378 str = "3RSH_A"; 290 return "3RSH_A";
379 break;
380 case SSL3_ST_CR_SRVR_HELLO_B: 291 case SSL3_ST_CR_SRVR_HELLO_B:
381 str = "3RSH_B"; 292 return "3RSH_B";
382 break;
383 case SSL3_ST_CR_CERT_A: 293 case SSL3_ST_CR_CERT_A:
384 str = "3RSC_A"; 294 return "3RSC_A";
385 break;
386 case SSL3_ST_CR_CERT_B: 295 case SSL3_ST_CR_CERT_B:
387 str = "3RSC_B"; 296 return "3RSC_B";
388 break;
389 case SSL3_ST_CR_KEY_EXCH_A: 297 case SSL3_ST_CR_KEY_EXCH_A:
390 str = "3RSKEA"; 298 return "3RSKEA";
391 break;
392 case SSL3_ST_CR_KEY_EXCH_B: 299 case SSL3_ST_CR_KEY_EXCH_B:
393 str = "3RSKEB"; 300 return "3RSKEB";
394 break;
395 case SSL3_ST_CR_CERT_REQ_A: 301 case SSL3_ST_CR_CERT_REQ_A:
396 str = "3RCR_A"; 302 return "3RCR_A";
397 break;
398 case SSL3_ST_CR_CERT_REQ_B: 303 case SSL3_ST_CR_CERT_REQ_B:
399 str = "3RCR_B"; 304 return "3RCR_B";
400 break;
401 case SSL3_ST_CR_SRVR_DONE_A: 305 case SSL3_ST_CR_SRVR_DONE_A:
402 str = "3RSD_A"; 306 return "3RSD_A";
403 break;
404 case SSL3_ST_CR_SRVR_DONE_B: 307 case SSL3_ST_CR_SRVR_DONE_B:
405 str = "3RSD_B"; 308 return "3RSD_B";
406 break;
407 case SSL3_ST_CW_CERT_A: 309 case SSL3_ST_CW_CERT_A:
408 str = "3WCC_A"; 310 return "3WCC_A";
409 break;
410 case SSL3_ST_CW_CERT_B: 311 case SSL3_ST_CW_CERT_B:
411 str = "3WCC_B"; 312 return "3WCC_B";
412 break;
413 case SSL3_ST_CW_CERT_C: 313 case SSL3_ST_CW_CERT_C:
414 str = "3WCC_C"; 314 return "3WCC_C";
415 break;
416 case SSL3_ST_CW_CERT_D: 315 case SSL3_ST_CW_CERT_D:
417 str = "3WCC_D"; 316 return "3WCC_D";
418 break;
419 case SSL3_ST_CW_KEY_EXCH_A: 317 case SSL3_ST_CW_KEY_EXCH_A:
420 str = "3WCKEA"; 318 return "3WCKEA";
421 break;
422 case SSL3_ST_CW_KEY_EXCH_B: 319 case SSL3_ST_CW_KEY_EXCH_B:
423 str = "3WCKEB"; 320 return "3WCKEB";
424 break;
425 case SSL3_ST_CW_CERT_VRFY_A: 321 case SSL3_ST_CW_CERT_VRFY_A:
426 str = "3WCV_A"; 322 return "3WCV_A";
427 break;
428 case SSL3_ST_CW_CERT_VRFY_B: 323 case SSL3_ST_CW_CERT_VRFY_B:
429 str = "3WCV_B"; 324 return "3WCV_B";
430 break;
431 325
432 case SSL3_ST_SW_CHANGE_A: 326 case SSL3_ST_SW_CHANGE_A:
433 case SSL3_ST_CW_CHANGE_A: 327 case SSL3_ST_CW_CHANGE_A:
434 str = "3WCCSA"; 328 return "3WCCSA";
435 break;
436 case SSL3_ST_SW_CHANGE_B: 329 case SSL3_ST_SW_CHANGE_B:
437 case SSL3_ST_CW_CHANGE_B: 330 case SSL3_ST_CW_CHANGE_B:
438 str = "3WCCSB"; 331 return "3WCCSB";
439 break;
440 case SSL3_ST_SW_FINISHED_A: 332 case SSL3_ST_SW_FINISHED_A:
441 case SSL3_ST_CW_FINISHED_A: 333 case SSL3_ST_CW_FINISHED_A:
442 str = "3WFINA"; 334 return "3WFINA";
443 break;
444 case SSL3_ST_SW_FINISHED_B: 335 case SSL3_ST_SW_FINISHED_B:
445 case SSL3_ST_CW_FINISHED_B: 336 case SSL3_ST_CW_FINISHED_B:
446 str = "3WFINB"; 337 return "3WFINB";
447 break;
448 case SSL3_ST_SR_CHANGE_A: 338 case SSL3_ST_SR_CHANGE_A:
449 case SSL3_ST_CR_CHANGE_A: 339 case SSL3_ST_CR_CHANGE_A:
450 str = "3RCCSA"; 340 return "3RCCSA";
451 break;
452 case SSL3_ST_SR_CHANGE_B: 341 case SSL3_ST_SR_CHANGE_B:
453 case SSL3_ST_CR_CHANGE_B: 342 case SSL3_ST_CR_CHANGE_B:
454 str = "3RCCSB"; 343 return "3RCCSB";
455 break;
456 case SSL3_ST_SR_FINISHED_A: 344 case SSL3_ST_SR_FINISHED_A:
457 case SSL3_ST_CR_FINISHED_A: 345 case SSL3_ST_CR_FINISHED_A:
458 str = "3RFINA"; 346 return "3RFINA";
459 break;
460 case SSL3_ST_SR_FINISHED_B: 347 case SSL3_ST_SR_FINISHED_B:
461 case SSL3_ST_CR_FINISHED_B: 348 case SSL3_ST_CR_FINISHED_B:
462 str = "3RFINB"; 349 return "3RFINB";
463 break;
464 350
465 case SSL3_ST_SW_HELLO_REQ_A: 351 case SSL3_ST_SW_HELLO_REQ_A:
466 str = "3WHR_A"; 352 return "3WHR_A";
467 break;
468 case SSL3_ST_SW_HELLO_REQ_B: 353 case SSL3_ST_SW_HELLO_REQ_B:
469 str = "3WHR_B"; 354 return "3WHR_B";
470 break;
471 case SSL3_ST_SW_HELLO_REQ_C: 355 case SSL3_ST_SW_HELLO_REQ_C:
472 str = "3WHR_C"; 356 return "3WHR_C";
473 break;
474 case SSL3_ST_SR_CLNT_HELLO_A: 357 case SSL3_ST_SR_CLNT_HELLO_A:
475 str = "3RCH_A"; 358 return "3RCH_A";
476 break;
477 case SSL3_ST_SR_CLNT_HELLO_B: 359 case SSL3_ST_SR_CLNT_HELLO_B:
478 str = "3RCH_B"; 360 return "3RCH_B";
479 break;
480 case SSL3_ST_SR_CLNT_HELLO_C: 361 case SSL3_ST_SR_CLNT_HELLO_C:
481 str = "3RCH_C"; 362 return "3RCH_C";
482 break;
483 case SSL3_ST_SW_SRVR_HELLO_A: 363 case SSL3_ST_SW_SRVR_HELLO_A:
484 str = "3WSH_A"; 364 return "3WSH_A";
485 break;
486 case SSL3_ST_SW_SRVR_HELLO_B: 365 case SSL3_ST_SW_SRVR_HELLO_B:
487 str = "3WSH_B"; 366 return "3WSH_B";
488 break;
489 case SSL3_ST_SW_CERT_A: 367 case SSL3_ST_SW_CERT_A:
490 str = "3WSC_A"; 368 return "3WSC_A";
491 break;
492 case SSL3_ST_SW_CERT_B: 369 case SSL3_ST_SW_CERT_B:
493 str = "3WSC_B"; 370 return "3WSC_B";
494 break;
495 case SSL3_ST_SW_KEY_EXCH_A: 371 case SSL3_ST_SW_KEY_EXCH_A:
496 str = "3WSKEA"; 372 return "3WSKEA";
497 break;
498 case SSL3_ST_SW_KEY_EXCH_B: 373 case SSL3_ST_SW_KEY_EXCH_B:
499 str = "3WSKEB"; 374 return "3WSKEB";
500 break;
501 case SSL3_ST_SW_CERT_REQ_A: 375 case SSL3_ST_SW_CERT_REQ_A:
502 str = "3WCR_A"; 376 return "3WCR_A";
503 break;
504 case SSL3_ST_SW_CERT_REQ_B: 377 case SSL3_ST_SW_CERT_REQ_B:
505 str = "3WCR_B"; 378 return "3WCR_B";
506 break;
507 case SSL3_ST_SW_SRVR_DONE_A: 379 case SSL3_ST_SW_SRVR_DONE_A:
508 str = "3WSD_A"; 380 return "3WSD_A";
509 break;
510 case SSL3_ST_SW_SRVR_DONE_B: 381 case SSL3_ST_SW_SRVR_DONE_B:
511 str = "3WSD_B"; 382 return "3WSD_B";
512 break;
513 case SSL3_ST_SR_CERT_A: 383 case SSL3_ST_SR_CERT_A:
514 str = "3RCC_A"; 384 return "3RCC_A";
515 break;
516 case SSL3_ST_SR_CERT_B: 385 case SSL3_ST_SR_CERT_B:
517 str = "3RCC_B"; 386 return "3RCC_B";
518 break;
519 case SSL3_ST_SR_KEY_EXCH_A: 387 case SSL3_ST_SR_KEY_EXCH_A:
520 str = "3RCKEA"; 388 return "3RCKEA";
521 break;
522 case SSL3_ST_SR_KEY_EXCH_B: 389 case SSL3_ST_SR_KEY_EXCH_B:
523 str = "3RCKEB"; 390 return "3RCKEB";
524 break;
525 case SSL3_ST_SR_CERT_VRFY_A: 391 case SSL3_ST_SR_CERT_VRFY_A:
526 str = "3RCV_A"; 392 return "3RCV_A";
527 break;
528 case SSL3_ST_SR_CERT_VRFY_B: 393 case SSL3_ST_SR_CERT_VRFY_B:
529 str = "3RCV_B"; 394 return "3RCV_B";
530 break;
531 395
532 /* DTLS */ 396 /* DTLS */
533 case DTLS1_ST_CR_HELLO_VERIFY_REQUEST_A: 397 case DTLS1_ST_CR_HELLO_VERIFY_REQUEST_A:
534 str = "DRCHVA"; 398 return "DRCHVA";
535 break;
536 case DTLS1_ST_CR_HELLO_VERIFY_REQUEST_B: 399 case DTLS1_ST_CR_HELLO_VERIFY_REQUEST_B:
537 str = "DRCHVB"; 400 return "DRCHVB";
538 break;
539 case DTLS1_ST_SW_HELLO_VERIFY_REQUEST_A: 401 case DTLS1_ST_SW_HELLO_VERIFY_REQUEST_A:
540 str = "DWCHVA"; 402 return "DWCHVA";
541 break;
542 case DTLS1_ST_SW_HELLO_VERIFY_REQUEST_B: 403 case DTLS1_ST_SW_HELLO_VERIFY_REQUEST_B:
543 str = "DWCHVB"; 404 return "DWCHVB";
544 break;
545 405
546 default: 406 default:
547 str = "UNKWN "; 407 return "UNKWN ";
548 break;
549 } 408 }
550 return (str);
551} 409}
552LSSL_ALIAS(SSL_state_string); 410LSSL_ALIAS(SSL_state_string);
553 411
@@ -556,11 +414,11 @@ SSL_alert_type_string_long(int value)
556{ 414{
557 value >>= 8; 415 value >>= 8;
558 if (value == SSL3_AL_WARNING) 416 if (value == SSL3_AL_WARNING)
559 return ("warning"); 417 return "warning";
560 else if (value == SSL3_AL_FATAL) 418 else if (value == SSL3_AL_FATAL)
561 return ("fatal"); 419 return "fatal";
562 else 420 else
563 return ("unknown"); 421 return "unknown";
564} 422}
565LSSL_ALIAS(SSL_alert_type_string_long); 423LSSL_ALIAS(SSL_alert_type_string_long);
566 424
@@ -569,247 +427,170 @@ SSL_alert_type_string(int value)
569{ 427{
570 value >>= 8; 428 value >>= 8;
571 if (value == SSL3_AL_WARNING) 429 if (value == SSL3_AL_WARNING)
572 return ("W"); 430 return "W";
573 else if (value == SSL3_AL_FATAL) 431 else if (value == SSL3_AL_FATAL)
574 return ("F"); 432 return "F";
575 else 433 else
576 return ("U"); 434 return "U";
577} 435}
578LSSL_ALIAS(SSL_alert_type_string); 436LSSL_ALIAS(SSL_alert_type_string);
579 437
580const char * 438const char *
581SSL_alert_desc_string(int value) 439SSL_alert_desc_string(int value)
582{ 440{
583 const char *str;
584
585 switch (value & 0xff) { 441 switch (value & 0xff) {
586 case SSL_AD_CLOSE_NOTIFY: 442 case SSL_AD_CLOSE_NOTIFY:
587 str = "CN"; 443 return "CN";
588 break;
589 case SSL_AD_UNEXPECTED_MESSAGE: 444 case SSL_AD_UNEXPECTED_MESSAGE:
590 str = "UM"; 445 return "UM";
591 break;
592 case SSL_AD_BAD_RECORD_MAC: 446 case SSL_AD_BAD_RECORD_MAC:
593 str = "BM"; 447 return "BM";
594 break;
595 case SSL_AD_RECORD_OVERFLOW: 448 case SSL_AD_RECORD_OVERFLOW:
596 str = "RO"; 449 return "RO";
597 break;
598 case SSL_AD_DECOMPRESSION_FAILURE: 450 case SSL_AD_DECOMPRESSION_FAILURE:
599 str = "DF"; 451 return "DF";
600 break;
601 case SSL_AD_HANDSHAKE_FAILURE: 452 case SSL_AD_HANDSHAKE_FAILURE:
602 str = "HF"; 453 return "HF";
603 break;
604 case SSL_AD_BAD_CERTIFICATE: 454 case SSL_AD_BAD_CERTIFICATE:
605 str = "BC"; 455 return "BC";
606 break;
607 case SSL_AD_UNSUPPORTED_CERTIFICATE: 456 case SSL_AD_UNSUPPORTED_CERTIFICATE:
608 str = "UC"; 457 return "UC";
609 break;
610 case SSL_AD_CERTIFICATE_REVOKED: 458 case SSL_AD_CERTIFICATE_REVOKED:
611 str = "CR"; 459 return "CR";
612 break;
613 case SSL_AD_CERTIFICATE_EXPIRED: 460 case SSL_AD_CERTIFICATE_EXPIRED:
614 str = "CE"; 461 return "CE";
615 break;
616 case SSL_AD_CERTIFICATE_UNKNOWN: 462 case SSL_AD_CERTIFICATE_UNKNOWN:
617 str = "CU"; 463 return "CU";
618 break;
619 case SSL_AD_ILLEGAL_PARAMETER: 464 case SSL_AD_ILLEGAL_PARAMETER:
620 str = "IP"; 465 return "IP";
621 break;
622 case SSL_AD_UNKNOWN_CA: 466 case SSL_AD_UNKNOWN_CA:
623 str = "CA"; 467 return "CA";
624 break;
625 case SSL_AD_ACCESS_DENIED: 468 case SSL_AD_ACCESS_DENIED:
626 str = "AD"; 469 return "AD";
627 break;
628 case SSL_AD_DECODE_ERROR: 470 case SSL_AD_DECODE_ERROR:
629 str = "DE"; 471 return "DE";
630 break;
631 case SSL_AD_DECRYPT_ERROR: 472 case SSL_AD_DECRYPT_ERROR:
632 str = "CY"; 473 return "CY";
633 break;
634 case SSL_AD_PROTOCOL_VERSION: 474 case SSL_AD_PROTOCOL_VERSION:
635 str = "PV"; 475 return "PV";
636 break;
637 case SSL_AD_INSUFFICIENT_SECURITY: 476 case SSL_AD_INSUFFICIENT_SECURITY:
638 str = "IS"; 477 return "IS";
639 break;
640 case SSL_AD_INTERNAL_ERROR: 478 case SSL_AD_INTERNAL_ERROR:
641 str = "IE"; 479 return "IE";
642 break;
643 case SSL_AD_INAPPROPRIATE_FALLBACK: 480 case SSL_AD_INAPPROPRIATE_FALLBACK:
644 str = "IF"; 481 return "IF";
645 break;
646 case SSL_AD_USER_CANCELLED: 482 case SSL_AD_USER_CANCELLED:
647 str = "US"; 483 return "US";
648 break;
649 case SSL_AD_NO_RENEGOTIATION: 484 case SSL_AD_NO_RENEGOTIATION:
650 str = "NR"; 485 return "NR";
651 break;
652 case SSL_AD_MISSING_EXTENSION: 486 case SSL_AD_MISSING_EXTENSION:
653 str = "ME"; 487 return "ME";
654 break;
655 case SSL_AD_UNSUPPORTED_EXTENSION: 488 case SSL_AD_UNSUPPORTED_EXTENSION:
656 str = "UE"; 489 return "UE";
657 break;
658 case SSL_AD_CERTIFICATE_UNOBTAINABLE: 490 case SSL_AD_CERTIFICATE_UNOBTAINABLE:
659 str = "CO"; 491 return "CO";
660 break;
661 case SSL_AD_UNRECOGNIZED_NAME: 492 case SSL_AD_UNRECOGNIZED_NAME:
662 str = "UN"; 493 return "UN";
663 break;
664 case SSL_AD_BAD_CERTIFICATE_STATUS_RESPONSE: 494 case SSL_AD_BAD_CERTIFICATE_STATUS_RESPONSE:
665 str = "BR"; 495 return "BR";
666 break;
667 case SSL_AD_BAD_CERTIFICATE_HASH_VALUE: 496 case SSL_AD_BAD_CERTIFICATE_HASH_VALUE:
668 str = "BH"; 497 return "BH";
669 break;
670 case SSL_AD_UNKNOWN_PSK_IDENTITY: 498 case SSL_AD_UNKNOWN_PSK_IDENTITY:
671 str = "UP"; 499 return "UP";
672 break;
673 case SSL_AD_CERTIFICATE_REQUIRED: 500 case SSL_AD_CERTIFICATE_REQUIRED:
674 str = "CQ"; /* XXX */ 501 return "CQ"; /* XXX */
675 break;
676 case SSL_AD_NO_APPLICATION_PROTOCOL: 502 case SSL_AD_NO_APPLICATION_PROTOCOL:
677 str = "AP"; 503 return "AP";
678 break;
679 default: 504 default:
680 str = "UK"; 505 return "UK";
681 break;
682 } 506 }
683 return (str);
684} 507}
685LSSL_ALIAS(SSL_alert_desc_string); 508LSSL_ALIAS(SSL_alert_desc_string);
686 509
687const char * 510const char *
688SSL_alert_desc_string_long(int value) 511SSL_alert_desc_string_long(int value)
689{ 512{
690 const char *str;
691
692 switch (value & 0xff) { 513 switch (value & 0xff) {
693 case SSL_AD_CLOSE_NOTIFY: 514 case SSL_AD_CLOSE_NOTIFY:
694 str = "close notify"; 515 return "close notify";
695 break;
696 case SSL_AD_UNEXPECTED_MESSAGE: 516 case SSL_AD_UNEXPECTED_MESSAGE:
697 str = "unexpected_message"; 517 return "unexpected_message";
698 break;
699 case SSL_AD_BAD_RECORD_MAC: 518 case SSL_AD_BAD_RECORD_MAC:
700 str = "bad record mac"; 519 return "bad record mac";
701 break;
702 case SSL_AD_RECORD_OVERFLOW: 520 case SSL_AD_RECORD_OVERFLOW:
703 str = "record overflow"; 521 return "record overflow";
704 break;
705 case SSL_AD_DECOMPRESSION_FAILURE: 522 case SSL_AD_DECOMPRESSION_FAILURE:
706 str = "decompression failure"; 523 return "decompression failure";
707 break;
708 case SSL_AD_HANDSHAKE_FAILURE: 524 case SSL_AD_HANDSHAKE_FAILURE:
709 str = "handshake failure"; 525 return "handshake failure";
710 break;
711 case SSL_AD_BAD_CERTIFICATE: 526 case SSL_AD_BAD_CERTIFICATE:
712 str = "bad certificate"; 527 return "bad certificate";
713 break;
714 case SSL_AD_UNSUPPORTED_CERTIFICATE: 528 case SSL_AD_UNSUPPORTED_CERTIFICATE:
715 str = "unsupported certificate"; 529 return "unsupported certificate";
716 break;
717 case SSL_AD_CERTIFICATE_REVOKED: 530 case SSL_AD_CERTIFICATE_REVOKED:
718 str = "certificate revoked"; 531 return "certificate revoked";
719 break;
720 case SSL_AD_CERTIFICATE_EXPIRED: 532 case SSL_AD_CERTIFICATE_EXPIRED:
721 str = "certificate expired"; 533 return "certificate expired";
722 break;
723 case SSL_AD_CERTIFICATE_UNKNOWN: 534 case SSL_AD_CERTIFICATE_UNKNOWN:
724 str = "certificate unknown"; 535 return "certificate unknown";
725 break;
726 case SSL_AD_ILLEGAL_PARAMETER: 536 case SSL_AD_ILLEGAL_PARAMETER:
727 str = "illegal parameter"; 537 return "illegal parameter";
728 break;
729 case SSL_AD_UNKNOWN_CA: 538 case SSL_AD_UNKNOWN_CA:
730 str = "unknown CA"; 539 return "unknown CA";
731 break;
732 case SSL_AD_ACCESS_DENIED: 540 case SSL_AD_ACCESS_DENIED:
733 str = "access denied"; 541 return "access denied";
734 break;
735 case SSL_AD_DECODE_ERROR: 542 case SSL_AD_DECODE_ERROR:
736 str = "decode error"; 543 return "decode error";
737 break;
738 case SSL_AD_DECRYPT_ERROR: 544 case SSL_AD_DECRYPT_ERROR:
739 str = "decrypt error"; 545 return "decrypt error";
740 break;
741 case SSL_AD_PROTOCOL_VERSION: 546 case SSL_AD_PROTOCOL_VERSION:
742 str = "protocol version"; 547 return "protocol version";
743 break;
744 case SSL_AD_INSUFFICIENT_SECURITY: 548 case SSL_AD_INSUFFICIENT_SECURITY:
745 str = "insufficient security"; 549 return "insufficient security";
746 break;
747 case SSL_AD_INTERNAL_ERROR: 550 case SSL_AD_INTERNAL_ERROR:
748 str = "internal error"; 551 return "internal error";
749 break;
750 case SSL_AD_INAPPROPRIATE_FALLBACK: 552 case SSL_AD_INAPPROPRIATE_FALLBACK:
751 str = "inappropriate fallback"; 553 return "inappropriate fallback";
752 break;
753 case SSL_AD_USER_CANCELLED: 554 case SSL_AD_USER_CANCELLED:
754 str = "user canceled"; 555 return "user canceled";
755 break;
756 case SSL_AD_NO_RENEGOTIATION: 556 case SSL_AD_NO_RENEGOTIATION:
757 str = "no renegotiation"; 557 return "no renegotiation";
758 break;
759 case SSL_AD_MISSING_EXTENSION: 558 case SSL_AD_MISSING_EXTENSION:
760 str = "missing extension"; 559 return "missing extension";
761 break;
762 case SSL_AD_UNSUPPORTED_EXTENSION: 560 case SSL_AD_UNSUPPORTED_EXTENSION:
763 str = "unsupported extension"; 561 return "unsupported extension";
764 break;
765 case SSL_AD_CERTIFICATE_UNOBTAINABLE: 562 case SSL_AD_CERTIFICATE_UNOBTAINABLE:
766 str = "certificate unobtainable"; 563 return "certificate unobtainable";
767 break;
768 case SSL_AD_UNRECOGNIZED_NAME: 564 case SSL_AD_UNRECOGNIZED_NAME:
769 str = "unrecognized name"; 565 return "unrecognized name";
770 break;
771 case SSL_AD_BAD_CERTIFICATE_STATUS_RESPONSE: 566 case SSL_AD_BAD_CERTIFICATE_STATUS_RESPONSE:
772 str = "bad certificate status response"; 567 return "bad certificate status response";
773 break;
774 case SSL_AD_BAD_CERTIFICATE_HASH_VALUE: 568 case SSL_AD_BAD_CERTIFICATE_HASH_VALUE:
775 str = "bad certificate hash value"; 569 return "bad certificate hash value";
776 break;
777 case SSL_AD_UNKNOWN_PSK_IDENTITY: 570 case SSL_AD_UNKNOWN_PSK_IDENTITY:
778 str = "unknown PSK identity"; 571 return "unknown PSK identity";
779 break;
780 case SSL_AD_CERTIFICATE_REQUIRED: 572 case SSL_AD_CERTIFICATE_REQUIRED:
781 str = "certificate required"; 573 return "certificate required";
782 break;
783 case SSL_AD_NO_APPLICATION_PROTOCOL: 574 case SSL_AD_NO_APPLICATION_PROTOCOL:
784 str = "no application protocol"; 575 return "no application protocol";
785 break;
786 default: 576 default:
787 str = "unknown"; 577 return "unknown";
788 break;
789 } 578 }
790 return (str);
791} 579}
792LSSL_ALIAS(SSL_alert_desc_string_long); 580LSSL_ALIAS(SSL_alert_desc_string_long);
793 581
794const char * 582const char *
795SSL_rstate_string(const SSL *s) 583SSL_rstate_string(const SSL *s)
796{ 584{
797 const char *str;
798
799 switch (s->rstate) { 585 switch (s->rstate) {
800 case SSL_ST_READ_HEADER: 586 case SSL_ST_READ_HEADER:
801 str = "RH"; 587 return "RH";
802 break;
803 case SSL_ST_READ_BODY: 588 case SSL_ST_READ_BODY:
804 str = "RB"; 589 return "RB";
805 break;
806 case SSL_ST_READ_DONE: 590 case SSL_ST_READ_DONE:
807 str = "RD"; 591 return "RD";
808 break;
809 default: 592 default:
810 str = "unknown"; 593 return "unknown";
811 break;
812 } 594 }
813 return (str);
814} 595}
815LSSL_ALIAS(SSL_rstate_string); 596LSSL_ALIAS(SSL_rstate_string);