forked from wolfSSL/wolfssl
Merge pull request #5485 from SparkiDev/tls13_state_string_long
wolfSSL_state_string_long - update for TLS 1.3 and DTLS 1.3
This commit is contained in:
467
src/ssl.c
467
src/ssl.c
@@ -22449,6 +22449,62 @@ const char* wolfSSL_alert_desc_string_long(int alertID)
|
|||||||
return AlertTypeToString(alertID);
|
return AlertTypeToString(alertID);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define STATE_STRINGS_PROTO(s) \
|
||||||
|
{ \
|
||||||
|
{"SSLv3 " s, \
|
||||||
|
"SSLv3 " s, \
|
||||||
|
"SSLv3 " s}, \
|
||||||
|
{"TLSv1 " s, \
|
||||||
|
"TLSv1 " s, \
|
||||||
|
"TLSv1 " s}, \
|
||||||
|
{"TLSv1_1 " s, \
|
||||||
|
"TLSv1_1 " s, \
|
||||||
|
"TLSv1_1 " s}, \
|
||||||
|
{"TLSv1_2 " s, \
|
||||||
|
"TLSv1_2 " s, \
|
||||||
|
"TLSv1_2 " s}, \
|
||||||
|
{"TLSv1_3 " s, \
|
||||||
|
"TLSv1_3 " s, \
|
||||||
|
"TLSv1_3 " s}, \
|
||||||
|
{"DTLSv1 " s, \
|
||||||
|
"DTLSv1 " s, \
|
||||||
|
"DTLSv1 " s}, \
|
||||||
|
{"DTLSv1_2 " s, \
|
||||||
|
"DTLSv1_2 " s, \
|
||||||
|
"DTLSv1_2 " s}, \
|
||||||
|
{"DTLSv1_3 " s, \
|
||||||
|
"DTLSv1_3 " s, \
|
||||||
|
"DTLSv1_3 " s}, \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define STATE_STRINGS_PROTO_RW(s) \
|
||||||
|
{ \
|
||||||
|
{"SSLv3 read " s, \
|
||||||
|
"SSLv3 write " s, \
|
||||||
|
"SSLv3 " s}, \
|
||||||
|
{"TLSv1 read " s, \
|
||||||
|
"TLSv1 write " s, \
|
||||||
|
"TLSv1 " s}, \
|
||||||
|
{"TLSv1_1 read " s, \
|
||||||
|
"TLSv1_1 write " s, \
|
||||||
|
"TLSv1_1 " s}, \
|
||||||
|
{"TLSv1_2 read " s, \
|
||||||
|
"TLSv1_2 write " s, \
|
||||||
|
"TLSv1_2 " s}, \
|
||||||
|
{"TLSv1_3 read " s, \
|
||||||
|
"TLSv1_3 write " s, \
|
||||||
|
"TLSv1_3 " s}, \
|
||||||
|
{"DTLSv1 read " s, \
|
||||||
|
"DTLSv1 write " s, \
|
||||||
|
"DTLSv1 " s}, \
|
||||||
|
{"DTLSv1_2 read " s, \
|
||||||
|
"DTLSv1_2 write " s, \
|
||||||
|
"DTLSv1_2 " s}, \
|
||||||
|
{"DTLSv1_3 read " s, \
|
||||||
|
"DTLSv1_3 write " s, \
|
||||||
|
"DTLSv1_3 " s}, \
|
||||||
|
}
|
||||||
|
|
||||||
/* Gets the current state of the WOLFSSL structure
|
/* Gets the current state of the WOLFSSL structure
|
||||||
*
|
*
|
||||||
* ssl WOLFSSL structure to get state of
|
* ssl WOLFSSL structure to get state of
|
||||||
@@ -22458,284 +22514,41 @@ const char* wolfSSL_alert_desc_string_long(int alertID)
|
|||||||
const char* wolfSSL_state_string_long(const WOLFSSL* ssl)
|
const char* wolfSSL_state_string_long(const WOLFSSL* ssl)
|
||||||
{
|
{
|
||||||
|
|
||||||
static const char* OUTPUT_STR[14][6][3] = {
|
static const char* OUTPUT_STR[24][8][3] = {
|
||||||
{
|
STATE_STRINGS_PROTO("Initialization"),
|
||||||
{"SSLv3 Initialization","SSLv3 Initialization","SSLv3 Initialization"},
|
STATE_STRINGS_PROTO_RW("Server Hello Request"),
|
||||||
{"TLSv1 Initialization","TLSv2 Initialization","TLSv2 Initialization"},
|
STATE_STRINGS_PROTO_RW("Server Hello Verify Request"),
|
||||||
{"TLSv1_1 Initialization","TLSv1_1 Initialization","TLSv1_1 Initialization"},
|
STATE_STRINGS_PROTO_RW("Server Hello Retry Request"),
|
||||||
{"TLSv1_2 Initialization","TLSv1_2 Initialization","TLSv1_2 Initialization"},
|
STATE_STRINGS_PROTO_RW("Server Hello"),
|
||||||
{"DTLSv1 Initialization","DTLSv1 Initialization","DTLSv1 Initialization"},
|
STATE_STRINGS_PROTO_RW("Server Certificate Status"),
|
||||||
{"DTLSv1_2 Initialization","DTLSv1_2 Initialization","DTLSv1_2 Initialization"},
|
STATE_STRINGS_PROTO_RW("Server Encrypted Extensions"),
|
||||||
},
|
STATE_STRINGS_PROTO_RW("Server Session Ticket"),
|
||||||
{
|
STATE_STRINGS_PROTO_RW("Server Certificate Request"),
|
||||||
{"SSLv3 read Server Hello Verify Request",
|
STATE_STRINGS_PROTO_RW("Server Cert"),
|
||||||
"SSLv3 write Server Hello Verify Request",
|
STATE_STRINGS_PROTO_RW("Server Key Exchange"),
|
||||||
"SSLv3 Server Hello Verify Request"},
|
STATE_STRINGS_PROTO_RW("Server Hello Done"),
|
||||||
{"TLSv1 read Server Hello Verify Request",
|
STATE_STRINGS_PROTO_RW("Server Change CipherSpec"),
|
||||||
"TLSv1 write Server Hello Verify Request",
|
STATE_STRINGS_PROTO_RW("Server Finished"),
|
||||||
"TLSv1 Server Hello Verify Request"},
|
STATE_STRINGS_PROTO_RW("server Key Update"),
|
||||||
{"TLSv1_1 read Server Hello Verify Request",
|
STATE_STRINGS_PROTO_RW("Client Hello"),
|
||||||
"TLSv1_1 write Server Hello Verify Request",
|
STATE_STRINGS_PROTO_RW("Client Key Exchange"),
|
||||||
"TLSv1_1 Server Hello Verify Request"},
|
STATE_STRINGS_PROTO_RW("Client Cert"),
|
||||||
{"TLSv1_2 read Server Hello Verify Request",
|
STATE_STRINGS_PROTO_RW("Client Change CipherSpec"),
|
||||||
"TLSv1_2 write Server Hello Verify Request",
|
STATE_STRINGS_PROTO_RW("Client Certificate Verify"),
|
||||||
"TLSv1_2 Server Hello Verify Request"},
|
STATE_STRINGS_PROTO_RW("Client End Of Early Data"),
|
||||||
{"DTLSv1 read Server Hello Verify Request",
|
STATE_STRINGS_PROTO_RW("Client Finished"),
|
||||||
"DTLSv1 write Server Hello Verify Request",
|
STATE_STRINGS_PROTO_RW("Client Key Update"),
|
||||||
"DTLSv1 Server Hello Verify Request"},
|
STATE_STRINGS_PROTO("Handshake Done"),
|
||||||
{"DTLSv1_2 read Server Hello Verify Request",
|
|
||||||
"DTLSv1_2 write Server Hello Verify Request",
|
|
||||||
"DTLSv1_2 Server Hello Verify Request"},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
{"SSLv3 read Server Hello",
|
|
||||||
"SSLv3 write Server Hello",
|
|
||||||
"SSLv3 Server Hello"},
|
|
||||||
{"TLSv1 read Server Hello",
|
|
||||||
"TLSv1 write Server Hello",
|
|
||||||
"TLSv1 Server Hello"},
|
|
||||||
{"TLSv1_1 read Server Hello",
|
|
||||||
"TLSv1_1 write Server Hello",
|
|
||||||
"TLSv1_1 Server Hello"},
|
|
||||||
{"TLSv1_2 read Server Hello",
|
|
||||||
"TLSv1_2 write Server Hello",
|
|
||||||
"TLSv1_2 Server Hello"},
|
|
||||||
{"DTLSv1 read Server Hello",
|
|
||||||
"DTLSv1 write Server Hello",
|
|
||||||
"DTLSv1 Server Hello"},
|
|
||||||
{"DTLSv1_2 read Server Hello"
|
|
||||||
"DTLSv1_2 write Server Hello",
|
|
||||||
"DTLSv1_2 Server Hello",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
{"SSLv3 read Server Session Ticket",
|
|
||||||
"SSLv3 write Server Session Ticket",
|
|
||||||
"SSLv3 Server Session Ticket"},
|
|
||||||
{"TLSv1 read Server Session Ticket",
|
|
||||||
"TLSv1 write Server Session Ticket",
|
|
||||||
"TLSv1 Server Session Ticket"},
|
|
||||||
{"TLSv1_1 read Server Session Ticket",
|
|
||||||
"TLSv1_1 write Server Session Ticket",
|
|
||||||
"TLSv1_1 Server Session Ticket"},
|
|
||||||
{"TLSv1_2 read Server Session Ticket",
|
|
||||||
"TLSv1_2 write Server Session Ticket",
|
|
||||||
"TLSv1_2 Server Session Ticket"},
|
|
||||||
{"DTLSv1 read Server Session Ticket",
|
|
||||||
"DTLSv1 write Server Session Ticket",
|
|
||||||
"DTLSv1 Server Session Ticket"},
|
|
||||||
{"DTLSv1_2 read Server Session Ticket",
|
|
||||||
"DTLSv1_2 write Server Session Ticket",
|
|
||||||
"DTLSv1_2 Server Session Ticket"},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
{"SSLv3 read Server Cert",
|
|
||||||
"SSLv3 write Server Cert",
|
|
||||||
"SSLv3 Server Cert"},
|
|
||||||
{"TLSv1 read Server Cert",
|
|
||||||
"TLSv1 write Server Cert",
|
|
||||||
"TLSv1 Server Cert"},
|
|
||||||
{"TLSv1_1 read Server Cert",
|
|
||||||
"TLSv1_1 write Server Cert",
|
|
||||||
"TLSv1_1 Server Cert"},
|
|
||||||
{"TLSv1_2 read Server Cert",
|
|
||||||
"TLSv1_2 write Server Cert",
|
|
||||||
"TLSv1_2 Server Cert"},
|
|
||||||
{"DTLSv1 read Server Cert",
|
|
||||||
"DTLSv1 write Server Cert",
|
|
||||||
"DTLSv1 Server Cert"},
|
|
||||||
{"DTLSv1_2 read Server Cert",
|
|
||||||
"DTLSv1_2 write Server Cert",
|
|
||||||
"DTLSv1_2 Server Cert"},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
{"SSLv3 read Server Key Exchange",
|
|
||||||
"SSLv3 write Server Key Exchange",
|
|
||||||
"SSLv3 Server Key Exchange"},
|
|
||||||
{"TLSv1 read Server Key Exchange",
|
|
||||||
"TLSv1 write Server Key Exchange",
|
|
||||||
"TLSv1 Server Key Exchange"},
|
|
||||||
{"TLSv1_1 read Server Key Exchange",
|
|
||||||
"TLSv1_1 write Server Key Exchange",
|
|
||||||
"TLSv1_1 Server Key Exchange"},
|
|
||||||
{"TLSv1_2 read Server Key Exchange",
|
|
||||||
"TLSv1_2 write Server Key Exchange",
|
|
||||||
"TLSv1_2 Server Key Exchange"},
|
|
||||||
{"DTLSv1 read Server Key Exchange",
|
|
||||||
"DTLSv1 write Server Key Exchange",
|
|
||||||
"DTLSv1 Server Key Exchange"},
|
|
||||||
{"DTLSv1_2 read Server Key Exchange",
|
|
||||||
"DTLSv1_2 write Server Key Exchange",
|
|
||||||
"DTLSv1_2 Server Key Exchange"},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
{"SSLv3 read Server Hello Done",
|
|
||||||
"SSLv3 write Server Hello Done",
|
|
||||||
"SSLv3 Server Hello Done"},
|
|
||||||
{"TLSv1 read Server Hello Done",
|
|
||||||
"TLSv1 write Server Hello Done",
|
|
||||||
"TLSv1 Server Hello Done"},
|
|
||||||
{"TLSv1_1 read Server Hello Done",
|
|
||||||
"TLSv1_1 write Server Hello Done",
|
|
||||||
"TLSv1_1 Server Hello Done"},
|
|
||||||
{"TLSv1_2 read Server Hello Done",
|
|
||||||
"TLSv1_2 write Server Hello Done",
|
|
||||||
"TLSv1_2 Server Hello Done"},
|
|
||||||
{"DTLSv1 read Server Hello Done",
|
|
||||||
"DTLSv1 write Server Hello Done",
|
|
||||||
"DTLSv1 Server Hello Done"},
|
|
||||||
{"DTLSv1_2 read Server Hello Done",
|
|
||||||
"DTLSv1_2 write Server Hello Done",
|
|
||||||
"DTLSv1_2 Server Hello Done"},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
{"SSLv3 read Server Change CipherSpec",
|
|
||||||
"SSLv3 write Server Change CipherSpec",
|
|
||||||
"SSLv3 Server Change CipherSpec"},
|
|
||||||
{"TLSv1 read Server Change CipherSpec",
|
|
||||||
"TLSv1 write Server Change CipherSpec",
|
|
||||||
"TLSv1 Server Change CipherSpec"},
|
|
||||||
{"TLSv1_1 read Server Change CipherSpec",
|
|
||||||
"TLSv1_1 write Server Change CipherSpec",
|
|
||||||
"TLSv1_1 Server Change CipherSpec"},
|
|
||||||
{"TLSv1_2 read Server Change CipherSpec",
|
|
||||||
"TLSv1_2 write Server Change CipherSpec",
|
|
||||||
"TLSv1_2 Server Change CipherSpec"},
|
|
||||||
{"DTLSv1 read Server Change CipherSpec",
|
|
||||||
"DTLSv1 write Server Change CipherSpec",
|
|
||||||
"DTLSv1 Server Change CipherSpec"},
|
|
||||||
{"DTLSv1_2 read Server Change CipherSpec",
|
|
||||||
"DTLSv1_2 write Server Change CipherSpec",
|
|
||||||
"DTLSv1_2 Server Change CipherSpec"},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
{"SSLv3 read Server Finished",
|
|
||||||
"SSLv3 write Server Finished",
|
|
||||||
"SSLv3 Server Finished"},
|
|
||||||
{"TLSv1 read Server Finished",
|
|
||||||
"TLSv1 write Server Finished",
|
|
||||||
"TLSv1 Server Finished"},
|
|
||||||
{"TLSv1_1 read Server Finished",
|
|
||||||
"TLSv1_1 write Server Finished",
|
|
||||||
"TLSv1_1 Server Finished"},
|
|
||||||
{"TLSv1_2 read Server Finished",
|
|
||||||
"TLSv1_2 write Server Finished",
|
|
||||||
"TLSv1_2 Server Finished"},
|
|
||||||
{"DTLSv1 read Server Finished",
|
|
||||||
"DTLSv1 write Server Finished",
|
|
||||||
"DTLSv1 Server Finished"},
|
|
||||||
{"DTLSv1_2 read Server Finished",
|
|
||||||
"DTLSv1_2 write Server Finished",
|
|
||||||
"DTLSv1_2 Server Finished"},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
{"SSLv3 read Client Hello",
|
|
||||||
"SSLv3 write Client Hello",
|
|
||||||
"SSLv3 Client Hello"},
|
|
||||||
{"TLSv1 read Client Hello",
|
|
||||||
"TLSv1 write Client Hello",
|
|
||||||
"TLSv1 Client Hello"},
|
|
||||||
{"TLSv1_1 read Client Hello",
|
|
||||||
"TLSv1_1 write Client Hello",
|
|
||||||
"TLSv1_1 Client Hello"},
|
|
||||||
{"TLSv1_2 read Client Hello",
|
|
||||||
"TLSv1_2 write Client Hello",
|
|
||||||
"TLSv1_2 Client Hello"},
|
|
||||||
{"DTLSv1 read Client Hello",
|
|
||||||
"DTLSv1 write Client Hello",
|
|
||||||
"DTLSv1 Client Hello"},
|
|
||||||
{"DTLSv1_2 read Client Hello",
|
|
||||||
"DTLSv1_2 write Client Hello",
|
|
||||||
"DTLSv1_2 Client Hello"},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
{"SSLv3 read Client Key Exchange",
|
|
||||||
"SSLv3 write Client Key Exchange",
|
|
||||||
"SSLv3 Client Key Exchange"},
|
|
||||||
{"TLSv1 read Client Key Exchange",
|
|
||||||
"TLSv1 write Client Key Exchange",
|
|
||||||
"TLSv1 Client Key Exchange"},
|
|
||||||
{"TLSv1_1 read Client Key Exchange",
|
|
||||||
"TLSv1_1 write Client Key Exchange",
|
|
||||||
"TLSv1_1 Client Key Exchange"},
|
|
||||||
{"TLSv1_2 read Client Key Exchange",
|
|
||||||
"TLSv1_2 write Client Key Exchange",
|
|
||||||
"TLSv1_2 Client Key Exchange"},
|
|
||||||
{"DTLSv1 read Client Key Exchange",
|
|
||||||
"DTLSv1 write Client Key Exchange",
|
|
||||||
"DTLSv1 Client Key Exchange"},
|
|
||||||
{"DTLSv1_2 read Client Key Exchange",
|
|
||||||
"DTLSv1_2 write Client Key Exchange",
|
|
||||||
"DTLSv1_2 Client Key Exchange"},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
{"SSLv3 read Client Change CipherSpec",
|
|
||||||
"SSLv3 write Client Change CipherSpec",
|
|
||||||
"SSLv3 Client Change CipherSpec"},
|
|
||||||
{"TLSv1 read Client Change CipherSpec",
|
|
||||||
"TLSv1 write Client Change CipherSpec",
|
|
||||||
"TLSv1 Client Change CipherSpec"},
|
|
||||||
{"TLSv1_1 read Client Change CipherSpec",
|
|
||||||
"TLSv1_1 write Client Change CipherSpec",
|
|
||||||
"TLSv1_1 Client Change CipherSpec"},
|
|
||||||
{"TLSv1_2 read Client Change CipherSpec",
|
|
||||||
"TLSv1_2 write Client Change CipherSpec",
|
|
||||||
"TLSv1_2 Client Change CipherSpec"},
|
|
||||||
{"DTLSv1 read Client Change CipherSpec",
|
|
||||||
"DTLSv1 write Client Change CipherSpec",
|
|
||||||
"DTLSv1 Client Change CipherSpec"},
|
|
||||||
{"DTLSv1_2 read Client Change CipherSpec",
|
|
||||||
"DTLSv1_2 write Client Change CipherSpec",
|
|
||||||
"DTLSv1_2 Client Change CipherSpec"},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
{"SSLv3 read Client Finished",
|
|
||||||
"SSLv3 write Client Finished",
|
|
||||||
"SSLv3 Client Finished"},
|
|
||||||
{"TLSv1 read Client Finished",
|
|
||||||
"TLSv1 write Client Finished",
|
|
||||||
"TLSv1 Client Finished"},
|
|
||||||
{"TLSv1_1 read Client Finished",
|
|
||||||
"TLSv1_1 write Client Finished",
|
|
||||||
"TLSv1_1 Client Finished"},
|
|
||||||
{"TLSv1_2 read Client Finished",
|
|
||||||
"TLSv1_2 write Client Finished",
|
|
||||||
"TLSv1_2 Client Finished"},
|
|
||||||
{"DTLSv1 read Client Finished",
|
|
||||||
"DTLSv1 write Client Finished",
|
|
||||||
"DTLSv1 Client Finished"},
|
|
||||||
{"DTLSv1_2 read Client Finished",
|
|
||||||
"DTLSv1_2 write Client Finished",
|
|
||||||
"DTLSv1_2 Client Finished"},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
{"SSLv3 Handshake Done",
|
|
||||||
"SSLv3 Handshake Done",
|
|
||||||
"SSLv3 Handshake Done"},
|
|
||||||
{"TLSv1 Handshake Done",
|
|
||||||
"TLSv1 Handshake Done",
|
|
||||||
"TLSv1 Handshake Done"},
|
|
||||||
{"TLSv1_1 Handshake Done",
|
|
||||||
"TLSv1_1 Handshake Done",
|
|
||||||
"TLSv1_1 Handshake Done"},
|
|
||||||
{"TLSv1_2 Handshake Done",
|
|
||||||
"TLSv1_2 Handshake Done",
|
|
||||||
"TLSv1_2 Handshake Done"},
|
|
||||||
{"DTLSv1 Handshake Done",
|
|
||||||
"DTLSv1 Handshake Done",
|
|
||||||
"DTLSv1 Handshake Done"},
|
|
||||||
{"DTLSv1_2 Handshake Done"
|
|
||||||
"DTLSv1_2 Handshake Done"
|
|
||||||
"DTLSv1_2 Handshake Done"}
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
enum ProtocolVer {
|
enum ProtocolVer {
|
||||||
SSL_V3 = 0,
|
SSL_V3 = 0,
|
||||||
TLS_V1,
|
TLS_V1,
|
||||||
TLS_V1_1,
|
TLS_V1_1,
|
||||||
TLS_V1_2,
|
TLS_V1_2,
|
||||||
|
TLS_V1_3,
|
||||||
DTLS_V1,
|
DTLS_V1,
|
||||||
DTLS_V1_2,
|
DTLS_V1_2,
|
||||||
|
DTLS_V1_3,
|
||||||
UNKNOWN = 100
|
UNKNOWN = 100
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -22747,18 +22560,28 @@ const char* wolfSSL_state_string_long(const WOLFSSL* ssl)
|
|||||||
|
|
||||||
enum SslState {
|
enum SslState {
|
||||||
ss_null_state = 0,
|
ss_null_state = 0,
|
||||||
|
ss_server_hellorequest,
|
||||||
ss_server_helloverify,
|
ss_server_helloverify,
|
||||||
|
ss_server_helloretryrequest,
|
||||||
ss_server_hello,
|
ss_server_hello,
|
||||||
ss_sessionticket,
|
ss_server_certificatestatus,
|
||||||
|
ss_server_encryptedextensions,
|
||||||
|
ss_server_sessionticket,
|
||||||
|
ss_server_certrequest,
|
||||||
ss_server_cert,
|
ss_server_cert,
|
||||||
ss_server_keyexchange,
|
ss_server_keyexchange,
|
||||||
ss_server_hellodone,
|
ss_server_hellodone,
|
||||||
ss_server_changecipherspec,
|
ss_server_changecipherspec,
|
||||||
ss_server_finished,
|
ss_server_finished,
|
||||||
|
ss_server_keyupdate,
|
||||||
ss_client_hello,
|
ss_client_hello,
|
||||||
ss_client_keyexchange,
|
ss_client_keyexchange,
|
||||||
|
ss_client_cert,
|
||||||
ss_client_changecipherspec,
|
ss_client_changecipherspec,
|
||||||
|
ss_client_certverify,
|
||||||
|
ss_client_endofearlydata,
|
||||||
ss_client_finished,
|
ss_client_finished,
|
||||||
|
ss_client_keyupdate,
|
||||||
ss_handshake_done
|
ss_handshake_done
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -22773,18 +22596,23 @@ const char* wolfSSL_state_string_long(const WOLFSSL* ssl)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Get state of callback */
|
/* Get state of callback */
|
||||||
if (ssl->cbmode == SSL_CB_MODE_WRITE){
|
if (ssl->cbmode == SSL_CB_MODE_WRITE) {
|
||||||
cbmode = SS_WRITE;
|
cbmode = SS_WRITE;
|
||||||
} else if (ssl->cbmode == SSL_CB_MODE_READ){
|
}
|
||||||
|
else if (ssl->cbmode == SSL_CB_MODE_READ) {
|
||||||
cbmode = SS_READ;
|
cbmode = SS_READ;
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
cbmode = SS_NEITHER;
|
cbmode = SS_NEITHER;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Get protocol version */
|
/* Get protocol version */
|
||||||
switch (ssl->version.major){
|
switch (ssl->version.major) {
|
||||||
case SSLv3_MAJOR:
|
case SSLv3_MAJOR:
|
||||||
switch (ssl->version.minor){
|
switch (ssl->version.minor) {
|
||||||
|
case SSLv3_MINOR:
|
||||||
|
protocol = SSL_V3;
|
||||||
|
break;
|
||||||
case TLSv1_MINOR:
|
case TLSv1_MINOR:
|
||||||
protocol = TLS_V1;
|
protocol = TLS_V1;
|
||||||
break;
|
break;
|
||||||
@@ -22794,21 +22622,24 @@ const char* wolfSSL_state_string_long(const WOLFSSL* ssl)
|
|||||||
case TLSv1_2_MINOR:
|
case TLSv1_2_MINOR:
|
||||||
protocol = TLS_V1_2;
|
protocol = TLS_V1_2;
|
||||||
break;
|
break;
|
||||||
case SSLv3_MINOR:
|
case TLSv1_3_MINOR:
|
||||||
protocol = SSL_V3;
|
protocol = TLS_V1_3;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
protocol = UNKNOWN;
|
protocol = UNKNOWN;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case DTLS_MAJOR:
|
case DTLS_MAJOR:
|
||||||
switch (ssl->version.minor){
|
switch (ssl->version.minor) {
|
||||||
case DTLS_MINOR:
|
case DTLS_MINOR:
|
||||||
protocol = DTLS_V1;
|
protocol = DTLS_V1;
|
||||||
break;
|
break;
|
||||||
case DTLSv1_2_MINOR:
|
case DTLSv1_2_MINOR:
|
||||||
protocol = DTLS_V1_2;
|
protocol = DTLS_V1_2;
|
||||||
break;
|
break;
|
||||||
|
case DTLSv1_3_MINOR:
|
||||||
|
protocol = DTLS_V1_3;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
protocol = UNKNOWN;
|
protocol = UNKNOWN;
|
||||||
}
|
}
|
||||||
@@ -22818,29 +22649,54 @@ const char* wolfSSL_state_string_long(const WOLFSSL* ssl)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* accept process */
|
/* accept process */
|
||||||
if (ssl->cbmode == SSL_CB_MODE_READ){
|
if (ssl->cbmode == SSL_CB_MODE_READ) {
|
||||||
state = ssl->cbtype;
|
state = ssl->cbtype;
|
||||||
switch (state) {
|
switch (state) {
|
||||||
case hello_verify_request:
|
case hello_request:
|
||||||
state = ss_server_helloverify;
|
state = ss_server_hellorequest;
|
||||||
break;
|
break;
|
||||||
case session_ticket:
|
case client_hello:
|
||||||
state = ss_sessionticket;
|
state = ss_client_hello;
|
||||||
break;
|
break;
|
||||||
case server_hello:
|
case server_hello:
|
||||||
state = ss_server_hello;
|
state = ss_server_hello;
|
||||||
break;
|
break;
|
||||||
case server_hello_done:
|
case hello_verify_request:
|
||||||
state = ss_server_hellodone;
|
state = ss_server_helloverify;
|
||||||
|
break;
|
||||||
|
case session_ticket:
|
||||||
|
state = ss_server_sessionticket;
|
||||||
|
break;
|
||||||
|
case end_of_early_data:
|
||||||
|
state = ss_client_endofearlydata;
|
||||||
|
break;
|
||||||
|
case hello_retry_request:
|
||||||
|
state = ss_server_helloretryrequest;
|
||||||
|
break;
|
||||||
|
case encrypted_extensions:
|
||||||
|
state = ss_server_encryptedextensions;
|
||||||
break;
|
break;
|
||||||
case certificate:
|
case certificate:
|
||||||
|
if (ssl->options.side == WOLFSSL_SERVER_END)
|
||||||
|
state = ss_client_cert;
|
||||||
|
else if (ssl->options.side == WOLFSSL_CLIENT_END)
|
||||||
state = ss_server_cert;
|
state = ss_server_cert;
|
||||||
|
else {
|
||||||
|
WOLFSSL_MSG("Unknown State");
|
||||||
|
state = ss_null_state;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case server_key_exchange:
|
case server_key_exchange:
|
||||||
state = ss_server_keyexchange;
|
state = ss_server_keyexchange;
|
||||||
break;
|
break;
|
||||||
case client_hello:
|
case certificate_request:
|
||||||
state = ss_client_hello;
|
state = ss_server_certrequest;
|
||||||
|
break;
|
||||||
|
case server_hello_done:
|
||||||
|
state = ss_server_hellodone;
|
||||||
|
break;
|
||||||
|
case certificate_verify:
|
||||||
|
state = ss_client_certverify;
|
||||||
break;
|
break;
|
||||||
case client_key_exchange:
|
case client_key_exchange:
|
||||||
state = ss_client_keyexchange;
|
state = ss_client_keyexchange;
|
||||||
@@ -22855,24 +22711,54 @@ const char* wolfSSL_state_string_long(const WOLFSSL* ssl)
|
|||||||
state = ss_null_state;
|
state = ss_null_state;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case certificate_status:
|
||||||
|
state = ss_server_certificatestatus;
|
||||||
|
break;
|
||||||
|
case key_update:
|
||||||
|
if (ssl->options.side == WOLFSSL_SERVER_END)
|
||||||
|
state = ss_client_keyupdate;
|
||||||
|
else if (ssl->options.side == WOLFSSL_CLIENT_END)
|
||||||
|
state = ss_server_keyupdate;
|
||||||
|
else {
|
||||||
|
WOLFSSL_MSG("Unknown State");
|
||||||
|
state = ss_null_state;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case change_cipher_hs:
|
||||||
|
if (ssl->options.side == WOLFSSL_SERVER_END)
|
||||||
|
state = ss_client_changecipherspec;
|
||||||
|
else if (ssl->options.side == WOLFSSL_CLIENT_END)
|
||||||
|
state = ss_server_changecipherspec;
|
||||||
|
else {
|
||||||
|
WOLFSSL_MSG("Unknown State");
|
||||||
|
state = ss_null_state;
|
||||||
|
}
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
WOLFSSL_MSG("Unknown State");
|
WOLFSSL_MSG("Unknown State");
|
||||||
state = ss_null_state;
|
state = ss_null_state;
|
||||||
}
|
}
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
/* Send process */
|
/* Send process */
|
||||||
if (ssl->options.side == WOLFSSL_SERVER_END)
|
if (ssl->options.side == WOLFSSL_SERVER_END)
|
||||||
state = ssl->options.serverState;
|
state = ssl->options.serverState;
|
||||||
else
|
else
|
||||||
state = ssl->options.clientState;
|
state = ssl->options.clientState;
|
||||||
|
|
||||||
switch(state){
|
switch (state) {
|
||||||
case SERVER_HELLOVERIFYREQUEST_COMPLETE:
|
case SERVER_HELLOVERIFYREQUEST_COMPLETE:
|
||||||
state = ss_server_helloverify;
|
state = ss_server_helloverify;
|
||||||
break;
|
break;
|
||||||
|
case SERVER_HELLO_RETRY_REQUEST_COMPLETE:
|
||||||
|
state = ss_server_helloretryrequest;
|
||||||
|
break;
|
||||||
case SERVER_HELLO_COMPLETE:
|
case SERVER_HELLO_COMPLETE:
|
||||||
state = ss_server_hello;
|
state = ss_server_hello;
|
||||||
break;
|
break;
|
||||||
|
case SERVER_ENCRYPTED_EXTENSIONS_COMPLETE:
|
||||||
|
state = ss_server_encryptedextensions;
|
||||||
|
break;
|
||||||
case SERVER_CERT_COMPLETE:
|
case SERVER_CERT_COMPLETE:
|
||||||
state = ss_server_cert;
|
state = ss_server_cert;
|
||||||
break;
|
break;
|
||||||
@@ -22888,6 +22774,7 @@ const char* wolfSSL_state_string_long(const WOLFSSL* ssl)
|
|||||||
case SERVER_FINISHED_COMPLETE:
|
case SERVER_FINISHED_COMPLETE:
|
||||||
state = ss_server_finished;
|
state = ss_server_finished;
|
||||||
break;
|
break;
|
||||||
|
case CLIENT_HELLO_RETRY:
|
||||||
case CLIENT_HELLO_COMPLETE:
|
case CLIENT_HELLO_COMPLETE:
|
||||||
state = ss_client_hello;
|
state = ss_client_hello;
|
||||||
break;
|
break;
|
||||||
|
Reference in New Issue
Block a user