summaryrefslogtreecommitdiff
path: root/src/lib/libssl/ssl_stat.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libssl/ssl_stat.c')
-rw-r--r--src/lib/libssl/ssl_stat.c126
1 files changed, 85 insertions, 41 deletions
diff --git a/src/lib/libssl/ssl_stat.c b/src/lib/libssl/ssl_stat.c
index a1daf25dd4..b16d253081 100644
--- a/src/lib/libssl/ssl_stat.c
+++ b/src/lib/libssl/ssl_stat.c
@@ -59,23 +59,22 @@
59#include <stdio.h> 59#include <stdio.h>
60#include "ssl_locl.h" 60#include "ssl_locl.h"
61 61
62char *SSL_state_string_long(s) 62const char *SSL_state_string_long(const SSL *s)
63SSL *s;
64 { 63 {
65 char *str; 64 const char *str;
66 65
67 switch (s->state) 66 switch (s->state)
68 { 67 {
69case SSL_ST_BEFORE: str="before SSL initalisation"; break; 68case SSL_ST_BEFORE: str="before SSL initialization"; break;
70case SSL_ST_ACCEPT: str="before accept initalisation"; break; 69case SSL_ST_ACCEPT: str="before accept initialization"; break;
71case SSL_ST_CONNECT: str="before connect initalisation"; break; 70case SSL_ST_CONNECT: str="before connect initialization"; break;
72case SSL_ST_OK: str="SSL negotiation finished successfully"; break; 71case SSL_ST_OK: str="SSL negotiation finished successfully"; break;
73case SSL_ST_RENEGOTIATE: str="SSL renegotiate ciphers"; break; 72case SSL_ST_RENEGOTIATE: str="SSL renegotiate ciphers"; break;
74case SSL_ST_BEFORE|SSL_ST_CONNECT: str="before/connect initalisation"; break; 73case SSL_ST_BEFORE|SSL_ST_CONNECT: str="before/connect initialization"; break;
75case SSL_ST_OK|SSL_ST_CONNECT: str="ok/connect SSL initalisation"; break; 74case SSL_ST_OK|SSL_ST_CONNECT: str="ok/connect SSL initialization"; break;
76case SSL_ST_BEFORE|SSL_ST_ACCEPT: str="before/accept initalisation"; break; 75case SSL_ST_BEFORE|SSL_ST_ACCEPT: str="before/accept initialization"; break;
77case SSL_ST_OK|SSL_ST_ACCEPT: str="ok/accept SSL initalisation"; break; 76case SSL_ST_OK|SSL_ST_ACCEPT: str="ok/accept SSL initialization"; break;
78#ifndef NO_SSL2 77#ifndef OPENSSL_NO_SSL2
79case SSL2_ST_CLIENT_START_ENCRYPTION: str="SSLv2 client start encryption"; break; 78case SSL2_ST_CLIENT_START_ENCRYPTION: str="SSLv2 client start encryption"; break;
80case SSL2_ST_SERVER_START_ENCRYPTION: str="SSLv2 server start encryption"; break; 79case SSL2_ST_SERVER_START_ENCRYPTION: str="SSLv2 server start encryption"; break;
81case SSL2_ST_SEND_CLIENT_HELLO_A: str="SSLv2 write client hello A"; break; 80case SSL2_ST_SEND_CLIENT_HELLO_A: str="SSLv2 write client hello A"; break;
@@ -116,7 +115,7 @@ case SSL2_ST_X509_GET_SERVER_CERTIFICATE: str="SSLv2 X509 read server certificat
116case SSL2_ST_X509_GET_CLIENT_CERTIFICATE: str="SSLv2 X509 read client certificate"; break; 115case SSL2_ST_X509_GET_CLIENT_CERTIFICATE: str="SSLv2 X509 read client certificate"; break;
117#endif 116#endif
118 117
119#ifndef NO_SSL3 118#ifndef OPENSSL_NO_SSL3
120/* SSLv3 additions */ 119/* SSLv3 additions */
121case SSL3_ST_CW_CLNT_HELLO_A: str="SSLv3 write client hello A"; break; 120case SSL3_ST_CW_CLNT_HELLO_A: str="SSLv3 write client hello A"; break;
122case SSL3_ST_CW_CLNT_HELLO_B: str="SSLv3 write client hello B"; break; 121case SSL3_ST_CW_CLNT_HELLO_B: str="SSLv3 write client hello B"; break;
@@ -132,10 +131,12 @@ case SSL3_ST_CR_SRVR_DONE_A: str="SSLv3 read server done A"; break;
132case SSL3_ST_CR_SRVR_DONE_B: str="SSLv3 read server done B"; break; 131case SSL3_ST_CR_SRVR_DONE_B: str="SSLv3 read server done B"; break;
133case SSL3_ST_CW_CERT_A: str="SSLv3 write client certificate A"; break; 132case SSL3_ST_CW_CERT_A: str="SSLv3 write client certificate A"; break;
134case SSL3_ST_CW_CERT_B: str="SSLv3 write client certificate B"; break; 133case SSL3_ST_CW_CERT_B: str="SSLv3 write client certificate B"; break;
134case SSL3_ST_CW_CERT_C: str="SSLv3 write client certificate C"; break;
135case SSL3_ST_CW_CERT_D: str="SSLv3 write client certificate D"; break;
135case SSL3_ST_CW_KEY_EXCH_A: str="SSLv3 write client key exchange A"; break; 136case SSL3_ST_CW_KEY_EXCH_A: str="SSLv3 write client key exchange A"; break;
136case SSL3_ST_CW_KEY_EXCH_B: str="SSLv3 write client key exchange B"; break; 137case SSL3_ST_CW_KEY_EXCH_B: str="SSLv3 write client key exchange B"; break;
137case SSL3_ST_CW_CERT_VRFY_A: str="SSLv3 write certificate verify A"; break; 138case SSL3_ST_CW_CERT_VRFY_A: str="SSLv3 write certificate verify A"; break;
138case SSL3_ST_CW_CERT_VRFY_B: str="SSLv3 write certificate verify A"; break; 139case SSL3_ST_CW_CERT_VRFY_B: str="SSLv3 write certificate verify B"; break;
139 140
140case SSL3_ST_CW_CHANGE_A: 141case SSL3_ST_CW_CHANGE_A:
141case SSL3_ST_SW_CHANGE_A: str="SSLv3 write change cipher spec A"; break; 142case SSL3_ST_SW_CHANGE_A: str="SSLv3 write change cipher spec A"; break;
@@ -144,7 +145,7 @@ case SSL3_ST_SW_CHANGE_B: str="SSLv3 write change cipher spec B"; break;
144case SSL3_ST_CW_FINISHED_A: 145case SSL3_ST_CW_FINISHED_A:
145case SSL3_ST_SW_FINISHED_A: str="SSLv3 write finished A"; break; 146case SSL3_ST_SW_FINISHED_A: str="SSLv3 write finished A"; break;
146case SSL3_ST_CW_FINISHED_B: 147case SSL3_ST_CW_FINISHED_B:
147case SSL3_ST_SW_FINISHED_B: str="SSLv3 write finished A"; break; 148case SSL3_ST_SW_FINISHED_B: str="SSLv3 write finished B"; break;
148case SSL3_ST_CR_CHANGE_A: 149case SSL3_ST_CR_CHANGE_A:
149case SSL3_ST_SR_CHANGE_A: str="SSLv3 read change cipher spec A"; break; 150case SSL3_ST_SR_CHANGE_A: str="SSLv3 read change cipher spec A"; break;
150case SSL3_ST_CR_CHANGE_B: 151case SSL3_ST_CR_CHANGE_B:
@@ -181,8 +182,8 @@ case SSL3_ST_SR_CERT_VRFY_A: str="SSLv3 read certificate verify A"; break;
181case SSL3_ST_SR_CERT_VRFY_B: str="SSLv3 read certificate verify B"; break; 182case SSL3_ST_SR_CERT_VRFY_B: str="SSLv3 read certificate verify B"; break;
182#endif 183#endif
183 184
184#if !defined(NO_SSL2) && !defined(NO_SSL3) 185#if !defined(OPENSSL_NO_SSL2) && !defined(OPENSSL_NO_SSL3)
185/* SSLv2/v3 compatablitity states */ 186/* SSLv2/v3 compatibility states */
186/* client */ 187/* client */
187case SSL23_ST_CW_CLNT_HELLO_A: str="SSLv2/v3 write client hello A"; break; 188case SSL23_ST_CW_CLNT_HELLO_A: str="SSLv2/v3 write client hello A"; break;
188case SSL23_ST_CW_CLNT_HELLO_B: str="SSLv2/v3 write client hello B"; break; 189case SSL23_ST_CW_CLNT_HELLO_B: str="SSLv2/v3 write client hello B"; break;
@@ -198,10 +199,9 @@ default: str="unknown state"; break;
198 return(str); 199 return(str);
199 } 200 }
200 201
201char *SSL_rstate_string_long(s) 202const char *SSL_rstate_string_long(const SSL *s)
202SSL *s;
203 { 203 {
204 char *str; 204 const char *str;
205 205
206 switch (s->rstate) 206 switch (s->rstate)
207 { 207 {
@@ -213,10 +213,9 @@ SSL *s;
213 return(str); 213 return(str);
214 } 214 }
215 215
216char *SSL_state_string(s) 216const char *SSL_state_string(const SSL *s)
217SSL *s;
218 { 217 {
219 char *str; 218 const char *str;
220 219
221 switch (s->state) 220 switch (s->state)
222 { 221 {
@@ -224,7 +223,7 @@ case SSL_ST_BEFORE: str="PINIT "; break;
224case SSL_ST_ACCEPT: str="AINIT "; break; 223case SSL_ST_ACCEPT: str="AINIT "; break;
225case SSL_ST_CONNECT: str="CINIT "; break; 224case SSL_ST_CONNECT: str="CINIT "; break;
226case SSL_ST_OK: str="SSLOK "; break; 225case SSL_ST_OK: str="SSLOK "; break;
227#ifndef NO_SSL2 226#ifndef OPENSSL_NO_SSL2
228case SSL2_ST_CLIENT_START_ENCRYPTION: str="2CSENC"; break; 227case SSL2_ST_CLIENT_START_ENCRYPTION: str="2CSENC"; break;
229case SSL2_ST_SERVER_START_ENCRYPTION: str="2SSENC"; break; 228case SSL2_ST_SERVER_START_ENCRYPTION: str="2SSENC"; break;
230case SSL2_ST_SEND_CLIENT_HELLO_A: str="2SCH_A"; break; 229case SSL2_ST_SEND_CLIENT_HELLO_A: str="2SCH_A"; break;
@@ -265,7 +264,7 @@ case SSL2_ST_X509_GET_SERVER_CERTIFICATE: str="2X9GSC"; break;
265case SSL2_ST_X509_GET_CLIENT_CERTIFICATE: str="2X9GCC"; break; 264case SSL2_ST_X509_GET_CLIENT_CERTIFICATE: str="2X9GCC"; break;
266#endif 265#endif
267 266
268#ifndef NO_SSL3 267#ifndef OPENSSL_NO_SSL3
269/* SSLv3 additions */ 268/* SSLv3 additions */
270case SSL3_ST_SW_FLUSH: 269case SSL3_ST_SW_FLUSH:
271case SSL3_ST_CW_FLUSH: str="3FLUSH"; break; 270case SSL3_ST_CW_FLUSH: str="3FLUSH"; break;
@@ -283,6 +282,8 @@ case SSL3_ST_CR_SRVR_DONE_A: str="3RSD_A"; break;
283case SSL3_ST_CR_SRVR_DONE_B: str="3RSD_B"; break; 282case SSL3_ST_CR_SRVR_DONE_B: str="3RSD_B"; break;
284case SSL3_ST_CW_CERT_A: str="3WCC_A"; break; 283case SSL3_ST_CW_CERT_A: str="3WCC_A"; break;
285case SSL3_ST_CW_CERT_B: str="3WCC_B"; break; 284case SSL3_ST_CW_CERT_B: str="3WCC_B"; break;
285case SSL3_ST_CW_CERT_C: str="3WCC_C"; break;
286case SSL3_ST_CW_CERT_D: str="3WCC_D"; break;
286case SSL3_ST_CW_KEY_EXCH_A: str="3WCKEA"; break; 287case SSL3_ST_CW_KEY_EXCH_A: str="3WCKEA"; break;
287case SSL3_ST_CW_KEY_EXCH_B: str="3WCKEB"; break; 288case SSL3_ST_CW_KEY_EXCH_B: str="3WCKEB"; break;
288case SSL3_ST_CW_CERT_VRFY_A: str="3WCV_A"; break; 289case SSL3_ST_CW_CERT_VRFY_A: str="3WCV_A"; break;
@@ -329,8 +330,8 @@ case SSL3_ST_SR_CERT_VRFY_A: str="3RCV_A"; break;
329case SSL3_ST_SR_CERT_VRFY_B: str="3RCV_B"; break; 330case SSL3_ST_SR_CERT_VRFY_B: str="3RCV_B"; break;
330#endif 331#endif
331 332
332#if !defined(NO_SSL2) && !defined(NO_SSL3) 333#if !defined(OPENSSL_NO_SSL2) && !defined(OPENSSL_NO_SSL3)
333/* SSLv2/v3 compatablitity states */ 334/* SSLv2/v3 compatibility states */
334/* client */ 335/* client */
335case SSL23_ST_CW_CLNT_HELLO_A: str="23WCHA"; break; 336case SSL23_ST_CW_CLNT_HELLO_A: str="23WCHA"; break;
336case SSL23_ST_CW_CLNT_HELLO_B: str="23WCHB"; break; 337case SSL23_ST_CW_CLNT_HELLO_B: str="23WCHB"; break;
@@ -346,8 +347,7 @@ default: str="UNKWN "; break;
346 return(str); 347 return(str);
347 } 348 }
348 349
349char *SSL_alert_type_string_long(value) 350const char *SSL_alert_type_string_long(int value)
350int value;
351 { 351 {
352 value>>=8; 352 value>>=8;
353 if (value == SSL3_AL_WARNING) 353 if (value == SSL3_AL_WARNING)
@@ -358,8 +358,7 @@ int value;
358 return("unknown"); 358 return("unknown");
359 } 359 }
360 360
361char *SSL_alert_type_string(value) 361const char *SSL_alert_type_string(int value)
362int value;
363 { 362 {
364 value>>=8; 363 value>>=8;
365 if (value == SSL3_AL_WARNING) 364 if (value == SSL3_AL_WARNING)
@@ -370,10 +369,9 @@ int value;
370 return("U"); 369 return("U");
371 } 370 }
372 371
373char *SSL_alert_desc_string(value) 372const char *SSL_alert_desc_string(int value)
374int value;
375 { 373 {
376 char *str; 374 const char *str;
377 375
378 switch (value & 0xff) 376 switch (value & 0xff)
379 { 377 {
@@ -389,15 +387,26 @@ int value;
389 case SSL3_AD_CERTIFICATE_EXPIRED: str="CE"; break; 387 case SSL3_AD_CERTIFICATE_EXPIRED: str="CE"; break;
390 case SSL3_AD_CERTIFICATE_UNKNOWN: str="CU"; break; 388 case SSL3_AD_CERTIFICATE_UNKNOWN: str="CU"; break;
391 case SSL3_AD_ILLEGAL_PARAMETER: str="IP"; break; 389 case SSL3_AD_ILLEGAL_PARAMETER: str="IP"; break;
390 case TLS1_AD_DECRYPTION_FAILED: str="DC"; break;
391 case TLS1_AD_RECORD_OVERFLOW: str="RO"; break;
392 case TLS1_AD_UNKNOWN_CA: str="CA"; break;
393 case TLS1_AD_ACCESS_DENIED: str="AD"; break;
394 case TLS1_AD_DECODE_ERROR: str="DE"; break;
395 case TLS1_AD_DECRYPT_ERROR: str="CY"; break;
396 case TLS1_AD_EXPORT_RESTRICTION: str="ER"; break;
397 case TLS1_AD_PROTOCOL_VERSION: str="PV"; break;
398 case TLS1_AD_INSUFFICIENT_SECURITY: str="IS"; break;
399 case TLS1_AD_INTERNAL_ERROR: str="IE"; break;
400 case TLS1_AD_USER_CANCELLED: str="US"; break;
401 case TLS1_AD_NO_RENEGOTIATION: str="NR"; break;
392 default: str="UK"; break; 402 default: str="UK"; break;
393 } 403 }
394 return(str); 404 return(str);
395 } 405 }
396 406
397char *SSL_alert_desc_string_long(value) 407const char *SSL_alert_desc_string_long(int value)
398int value;
399 { 408 {
400 char *str; 409 const char *str;
401 410
402 switch (value & 0xff) 411 switch (value & 0xff)
403 { 412 {
@@ -405,7 +414,7 @@ int value;
405 str="close notify"; 414 str="close notify";
406 break; 415 break;
407 case SSL3_AD_UNEXPECTED_MESSAGE: 416 case SSL3_AD_UNEXPECTED_MESSAGE:
408 str="unexected_message"; 417 str="unexpected_message";
409 break; 418 break;
410 case SSL3_AD_BAD_RECORD_MAC: 419 case SSL3_AD_BAD_RECORD_MAC:
411 str="bad record mac"; 420 str="bad record mac";
@@ -432,20 +441,55 @@ int value;
432 str="certificate expired"; 441 str="certificate expired";
433 break; 442 break;
434 case SSL3_AD_CERTIFICATE_UNKNOWN: 443 case SSL3_AD_CERTIFICATE_UNKNOWN:
435 str="certifcate unknown"; 444 str="certificate unknown";
436 break; 445 break;
437 case SSL3_AD_ILLEGAL_PARAMETER: 446 case SSL3_AD_ILLEGAL_PARAMETER:
438 str="illegal parameter"; 447 str="illegal parameter";
439 break; 448 break;
449 case TLS1_AD_DECRYPTION_FAILED:
450 str="decryption failed";
451 break;
452 case TLS1_AD_RECORD_OVERFLOW:
453 str="record overflow";
454 break;
455 case TLS1_AD_UNKNOWN_CA:
456 str="unknown CA";
457 break;
458 case TLS1_AD_ACCESS_DENIED:
459 str="access denied";
460 break;
461 case TLS1_AD_DECODE_ERROR:
462 str="decode error";
463 break;
464 case TLS1_AD_DECRYPT_ERROR:
465 str="decrypt error";
466 break;
467 case TLS1_AD_EXPORT_RESTRICTION:
468 str="export restriction";
469 break;
470 case TLS1_AD_PROTOCOL_VERSION:
471 str="protocol version";
472 break;
473 case TLS1_AD_INSUFFICIENT_SECURITY:
474 str="insufficient security";
475 break;
476 case TLS1_AD_INTERNAL_ERROR:
477 str="internal error";
478 break;
479 case TLS1_AD_USER_CANCELLED:
480 str="user canceled";
481 break;
482 case TLS1_AD_NO_RENEGOTIATION:
483 str="no renegotiation";
484 break;
440 default: str="unknown"; break; 485 default: str="unknown"; break;
441 } 486 }
442 return(str); 487 return(str);
443 } 488 }
444 489
445char *SSL_rstate_string(s) 490const char *SSL_rstate_string(const SSL *s)
446SSL *s;
447 { 491 {
448 char *str; 492 const char *str;
449 493
450 switch (s->rstate) 494 switch (s->rstate)
451 { 495 {