Update - OpenSSL 1.1.1-pre7-dev
This commit is contained in:
+38
-11
@@ -19,11 +19,11 @@ typedef struct {
|
||||
} ssl_trace_tbl;
|
||||
|
||||
# define ssl_trace_str(val, tbl) \
|
||||
do_ssl_trace_str(val, tbl, OSSL_NELEM(tbl))
|
||||
do_ssl_trace_str(val, tbl, OSSL_NELEM(tbl))
|
||||
|
||||
# define ssl_trace_list(bio, indent, msg, msglen, value, table) \
|
||||
do_ssl_trace_list(bio, indent, msg, msglen, value, \
|
||||
table, OSSL_NELEM(table))
|
||||
do_ssl_trace_list(bio, indent, msg, msglen, value, \
|
||||
table, OSSL_NELEM(table))
|
||||
|
||||
static const char *do_ssl_trace_str(int val, const ssl_trace_tbl *tbl,
|
||||
size_t ntbl)
|
||||
@@ -65,7 +65,9 @@ static const ssl_trace_tbl ssl_version_tbl[] = {
|
||||
{TLS1_1_VERSION, "TLS 1.1"},
|
||||
{TLS1_2_VERSION, "TLS 1.2"},
|
||||
{TLS1_3_VERSION, "TLS 1.3"},
|
||||
/* TODO(TLS1.3): Remove this line before release */
|
||||
/* TODO(TLS1.3): Remove these lines before release */
|
||||
{TLS1_3_VERSION_DRAFT_26, TLS1_3_VERSION_DRAFT_TXT_26},
|
||||
{TLS1_3_VERSION_DRAFT_27, TLS1_3_VERSION_DRAFT_TXT_27},
|
||||
{TLS1_3_VERSION_DRAFT, TLS1_3_VERSION_DRAFT_TXT},
|
||||
{DTLS1_VERSION, "DTLS 1.0"},
|
||||
{DTLS1_2_VERSION, "DTLS 1.2"},
|
||||
@@ -184,6 +186,8 @@ static const ssl_trace_tbl ssl_ciphers_tbl[] = {
|
||||
{0x006B, "TLS_DHE_RSA_WITH_AES_256_CBC_SHA256"},
|
||||
{0x006C, "TLS_DH_anon_WITH_AES_128_CBC_SHA256"},
|
||||
{0x006D, "TLS_DH_anon_WITH_AES_256_CBC_SHA256"},
|
||||
{0x0081, "TLS_GOSTR341001_WITH_28147_CNT_IMIT"},
|
||||
{0x0083, "TLS_GOSTR341001_WITH_NULL_GOSTR3411"},
|
||||
{0x0084, "TLS_RSA_WITH_CAMELLIA_256_CBC_SHA"},
|
||||
{0x0085, "TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA"},
|
||||
{0x0086, "TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA"},
|
||||
@@ -441,6 +445,8 @@ static const ssl_trace_tbl ssl_ciphers_tbl[] = {
|
||||
{0x1305, "TLS_AES_128_CCM_8_SHA256"},
|
||||
{0xFEFE, "SSL_RSA_FIPS_WITH_DES_CBC_SHA"},
|
||||
{0xFEFF, "SSL_RSA_FIPS_WITH_3DES_EDE_CBC_SHA"},
|
||||
{0xFF85, "GOST2012-GOST8912-GOST8912"},
|
||||
{0xFF87, "GOST2012-NULL-GOST12"},
|
||||
};
|
||||
|
||||
/* Compression methods */
|
||||
@@ -638,7 +644,15 @@ static int ssl_print_version(BIO *bio, int indent, const char *name,
|
||||
vers = ((*pmsg)[0] << 8) | (*pmsg)[1];
|
||||
if (version != NULL) {
|
||||
/* TODO(TLS1.3): Remove the draft conditional here before release */
|
||||
*version = (vers == TLS1_3_VERSION_DRAFT) ? TLS1_3_VERSION : vers;
|
||||
switch(vers) {
|
||||
case TLS1_3_VERSION_DRAFT_26:
|
||||
case TLS1_3_VERSION_DRAFT_27:
|
||||
case TLS1_3_VERSION_DRAFT:
|
||||
*version = TLS1_3_VERSION;
|
||||
break;
|
||||
default:
|
||||
*version = vers;
|
||||
}
|
||||
}
|
||||
BIO_indent(bio, indent, 80);
|
||||
BIO_printf(bio, "%s=0x%x (%s)\n",
|
||||
@@ -729,7 +743,7 @@ static int ssl_print_extension(BIO *bio, int indent, int server,
|
||||
while (xlen > 0) {
|
||||
size_t plen = *ext++;
|
||||
|
||||
if (plen > xlen + 1)
|
||||
if (plen + 1 > xlen)
|
||||
return 0;
|
||||
BIO_indent(bio, indent + 2, 80);
|
||||
BIO_write(bio, ext, plen);
|
||||
@@ -888,6 +902,8 @@ static int ssl_print_extensions(BIO *bio, int indent, int server,
|
||||
BIO_puts(bio, "No Extensions\n");
|
||||
return 1;
|
||||
}
|
||||
if (msglen < 2)
|
||||
return 0;
|
||||
extslen = (msg[0] << 8) | msg[1];
|
||||
if (extslen != msglen - 2)
|
||||
return 0;
|
||||
@@ -1086,10 +1102,10 @@ static int ssl_print_client_keyex(BIO *bio, int indent, const SSL *ssl,
|
||||
case SSL_kRSAPSK:
|
||||
if (TLS1_get_version(ssl) == SSL3_VERSION) {
|
||||
ssl_print_hex(bio, indent + 2,
|
||||
"EncyptedPreMasterSecret", msg, msglen);
|
||||
"EncryptedPreMasterSecret", msg, msglen);
|
||||
} else {
|
||||
if (!ssl_print_hexbuf(bio, indent + 2,
|
||||
"EncyptedPreMasterSecret", 2, &msg, &msglen))
|
||||
"EncryptedPreMasterSecret", 2, &msg, &msglen))
|
||||
return 0;
|
||||
}
|
||||
break;
|
||||
@@ -1293,6 +1309,8 @@ static int ssl_print_cert_request(BIO *bio, int indent, const SSL *ssl,
|
||||
msg += xlen;
|
||||
}
|
||||
|
||||
if (msglen < 2)
|
||||
return 0;
|
||||
xlen = (msg[0] << 8) | msg[1];
|
||||
BIO_indent(bio, indent, 80);
|
||||
if (msglen < xlen + 2)
|
||||
@@ -1354,8 +1372,8 @@ static int ssl_print_ticket(BIO *bio, int indent, const SSL *ssl,
|
||||
|
||||
if (msglen < 4)
|
||||
return 0;
|
||||
ticket_age_add = (msg[0] << 24) | (msg[1] << 16) | (msg[2] << 8)
|
||||
| msg[3];
|
||||
ticket_age_add =
|
||||
(msg[0] << 24) | (msg[1] << 16) | (msg[2] << 8) | msg[3];
|
||||
msglen -= 4;
|
||||
msg += 4;
|
||||
BIO_indent(bio, indent + 2, 80);
|
||||
@@ -1493,7 +1511,16 @@ void SSL_trace(int write_p, int version, int content_type,
|
||||
switch (content_type) {
|
||||
case SSL3_RT_HEADER:
|
||||
{
|
||||
int hvers = msg[1] << 8 | msg[2];
|
||||
int hvers;
|
||||
|
||||
/* avoid overlapping with length at the end of buffer */
|
||||
if (msglen < (size_t)(SSL_IS_DTLS(ssl) ?
|
||||
DTLS1_RT_HEADER_LENGTH : SSL3_RT_HEADER_LENGTH)) {
|
||||
BIO_puts(bio, write_p ? "Sent" : "Received");
|
||||
ssl_print_hex(bio, 0, " too short message", msg, msglen);
|
||||
break;
|
||||
}
|
||||
hvers = msg[1] << 8 | msg[2];
|
||||
BIO_puts(bio, write_p ? "Sent" : "Received");
|
||||
BIO_printf(bio, " Record\nHeader:\n Version = %s (0x%x)\n",
|
||||
ssl_trace_str(hvers, ssl_version_tbl), hvers);
|
||||
|
||||
Reference in New Issue
Block a user