diff options
author | Marc <34656315+MarcT512@users.noreply.github.com> | 2020-06-29 00:43:37 +0100 |
---|---|---|
committer | Dmitry Belyavskiy <beldmit@gmail.com> | 2020-08-27 13:10:39 +0300 |
commit | 50c911b0c56cd9aac360f09610f9bcdd74037a22 (patch) | |
tree | 333b26116b5cf1a9b21ad3468675e5829cf1ff1d /apps/lib | |
parent | 625679b6d79296e020bb0cad31d6ac24ad547a39 (diff) | |
download | openssl-50c911b0c56cd9aac360f09610f9bcdd74037a22.tar.gz |
apps: -msg flag enhancement 1/2
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com>
(Merged from https://github.com/openssl/openssl/pull/12310)
Diffstat (limited to 'apps/lib')
-rw-r--r-- | apps/lib/s_cb.c | 31 |
1 files changed, 25 insertions, 6 deletions
diff --git a/apps/lib/s_cb.c b/apps/lib/s_cb.c index c58f634609..0ae851d792 100644 --- a/apps/lib/s_cb.c +++ b/apps/lib/s_cb.c @@ -570,8 +570,8 @@ void msg_cb(int write_p, int version, int content_type, const void *buf, { BIO *bio = arg; const char *str_write_p = write_p ? ">>>" : "<<<"; - const char *str_version = lookup(version, ssl_versions, "???"); - const char *str_content_type = "", *str_details1 = "", *str_details2 = ""; + char tmpbuf[128]; + const char *str_version, *str_content_type = "", *str_details1 = "", *str_details2 = ""; const unsigned char* bp = buf; if (version == SSL3_VERSION || @@ -580,11 +580,14 @@ void msg_cb(int write_p, int version, int content_type, const void *buf, version == TLS1_2_VERSION || version == TLS1_3_VERSION || version == DTLS1_VERSION || version == DTLS1_BAD_VER) { + str_version = lookup(version, ssl_versions, "???"); switch (content_type) { - case 20: + case SSL3_RT_CHANGE_CIPHER_SPEC: + /* type 20 */ str_content_type = ", ChangeCipherSpec"; break; - case 21: + case SSL3_RT_ALERT: + /* type 21 */ str_content_type = ", Alert"; str_details1 = ", ???"; if (len == 2) { @@ -599,16 +602,32 @@ void msg_cb(int write_p, int version, int content_type, const void *buf, str_details2 = lookup((int)bp[1], alert_types, " ???"); } break; - case 22: + case SSL3_RT_HANDSHAKE: + /* type 22 */ str_content_type = ", Handshake"; str_details1 = "???"; if (len > 0) str_details1 = lookup((int)bp[0], handshakes, "???"); break; - case 23: + case SSL3_RT_APPLICATION_DATA: + /* type 23 */ str_content_type = ", ApplicationData"; break; + case SSL3_RT_HEADER: + /* type 256 */ + str_content_type = ", RecordHeader"; + break; + case SSL3_RT_INNER_CONTENT_TYPE: + /* type 257 */ + str_content_type = ", InnerContent"; + break; + default: + BIO_snprintf(tmpbuf, sizeof(tmpbuf)-1, ", Unknown (content_type=%d)", content_type); + str_content_type = tmpbuf; } + } else { + BIO_snprintf(tmpbuf, sizeof(tmpbuf)-1, "Not TLS data or unknown version (version=%d, content_type=%d)", version, content_type); + str_version = tmpbuf; } BIO_printf(bio, "%s %s%s [length %04lx]%s%s\n", str_write_p, str_version, |