Lines Matching full:bio
27 # define ssl_trace_list(bio, indent, msg, msglen, value, table) \ argument
28 do_ssl_trace_list(bio, indent, msg, msglen, value, \
43 static int do_ssl_trace_list(BIO *bio, int indent, in do_ssl_trace_list() argument
55 BIO_indent(bio, indent, 80); in do_ssl_trace_list()
56 BIO_printf(bio, "%s (%d)\n", do_ssl_trace_str(val, tbl, ntbl), val); in do_ssl_trace_list()
664 static void ssl_print_hex(BIO *bio, int indent, const char *name, in ssl_print_hex() argument
669 BIO_indent(bio, indent, 80); in ssl_print_hex()
670 BIO_printf(bio, "%s (len=%d): ", name, (int)msglen); in ssl_print_hex()
672 BIO_printf(bio, "%02X", msg[i]); in ssl_print_hex()
673 BIO_puts(bio, "\n"); in ssl_print_hex()
676 static int ssl_print_hexbuf(BIO *bio, int indent, const char *name, size_t nlen, in ssl_print_hexbuf() argument
690 ssl_print_hex(bio, indent, name, p, blen); in ssl_print_hexbuf()
696 static int ssl_print_version(BIO *bio, int indent, const char *name, in ssl_print_version() argument
707 BIO_indent(bio, indent, 80); in ssl_print_version()
708 BIO_printf(bio, "%s=0x%x (%s)\n", in ssl_print_version()
715 static int ssl_print_random(BIO *bio, int indent, in ssl_print_random() argument
728 BIO_indent(bio, indent, 80); in ssl_print_random()
729 BIO_puts(bio, "Random:\n"); in ssl_print_random()
730 BIO_indent(bio, indent + 2, 80); in ssl_print_random()
731 BIO_printf(bio, "gmt_unix_time=0x%08X\n", tm); in ssl_print_random()
732 ssl_print_hex(bio, indent + 2, "random_bytes", p, 28); in ssl_print_random()
738 static int ssl_print_signature(BIO *bio, int indent, const SSL_CONNECTION *sc, in ssl_print_signature() argument
747 BIO_indent(bio, indent, 80); in ssl_print_signature()
748 BIO_printf(bio, "Signature Algorithm: %s (0x%04x)\n", in ssl_print_signature()
753 return ssl_print_hexbuf(bio, indent, "Signature", 2, pmsg, pmsglen); in ssl_print_signature()
756 static int ssl_print_extension(BIO *bio, int indent, int server, in ssl_print_extension() argument
764 BIO_indent(bio, indent, 80); in ssl_print_extension()
765 BIO_printf(bio, "extension_type=%s(%d), length=%d\n", in ssl_print_extension()
774 return ssl_trace_list(bio, indent + 2, ext + 1, xlen, 2, ssl_comp_cert_tbl); in ssl_print_extension()
780 return ssl_trace_list(bio, indent + 2, ext, xlen, 1, ssl_mfl_tbl); in ssl_print_extension()
788 return ssl_trace_list(bio, indent + 2, ext + 1, xlen, 1, ssl_point_tbl); in ssl_print_extension()
796 return ssl_trace_list(bio, indent + 2, ext + 2, xlen, 2, ssl_groups_tbl); in ssl_print_extension()
809 BIO_indent(bio, indent + 2, 80); in ssl_print_extension()
810 BIO_write(bio, ext, plen); in ssl_print_extension()
811 BIO_puts(bio, "\n"); in ssl_print_extension()
828 BIO_indent(bio, indent + 2, 80); in ssl_print_extension()
830 BIO_printf(bio, "%s (0x%04x)\n", in ssl_print_extension()
850 ssl_print_hex(bio, indent + 4, "client_verify_data", ext, xlen); in ssl_print_extension()
853 ssl_print_hex(bio, indent + 4, "server_verify_data", ext, xlen); in ssl_print_extension()
856 BIO_indent(bio, indent + 4, 80); in ssl_print_extension()
857 BIO_puts(bio, "<EMPTY>\n"); in ssl_print_extension()
863 ssl_print_hex(bio, indent + 4, "ticket", ext, extlen); in ssl_print_extension()
872 BIO_indent(bio, indent + 4, 80); in ssl_print_extension()
873 BIO_printf(bio, "NamedGroup: %s (%d)\n", in ssl_print_extension()
898 BIO_indent(bio, indent + 4, 80); in ssl_print_extension()
899 BIO_printf(bio, "NamedGroup: %s (%d)\n", in ssl_print_extension()
901 ssl_print_hex(bio, indent + 4, "key_exchange: ", ext, share_len); in ssl_print_extension()
912 BIO_indent(bio, indent + 4, 80); in ssl_print_extension()
913 BIO_printf(bio, "%s (%d)\n", in ssl_print_extension()
922 return ssl_trace_list(bio, indent + 2, ext + 1, xlen, 2, in ssl_print_extension()
931 return ssl_trace_list(bio, indent + 2, ext + 1, xlen, 1, in ssl_print_extension()
943 BIO_indent(bio, indent + 2, 80); in ssl_print_extension()
944 BIO_printf(bio, "max_early_data=%u\n", (unsigned int)max_early_data); in ssl_print_extension()
952 return ssl_trace_list(bio, indent + 2, ext, 1, 1, ssl_cert_type_tbl); in ssl_print_extension()
959 return ssl_trace_list(bio, indent + 2, ext + 1, xlen, 1, ssl_cert_type_tbl); in ssl_print_extension()
962 BIO_dump_indent(bio, (const char *)ext, extlen, indent + 2); in ssl_print_extension()
967 static int ssl_print_extensions(BIO *bio, int indent, int server, in ssl_print_extensions() argument
974 BIO_indent(bio, indent, 80); in ssl_print_extensions()
976 BIO_puts(bio, "No extensions\n"); in ssl_print_extensions()
985 BIO_puts(bio, "No extensions\n"); in ssl_print_extensions()
992 BIO_printf(bio, "extensions, length = %d\n", (int)extslen); in ssl_print_extensions()
1002 BIO_printf(bio, "extensions, extype = %d, extlen = %d\n", extype, in ssl_print_extensions()
1004 BIO_dump_indent(bio, (const char *)msg, extslen, indent + 2); in ssl_print_extensions()
1008 if (!ssl_print_extension(bio, indent + 2, server, mt, extype, msg, in ssl_print_extensions()
1020 static int ssl_print_client_hello(BIO *bio, const SSL_CONNECTION *sc, int indent, in ssl_print_client_hello() argument
1026 if (!ssl_print_version(bio, indent, "client_version", &msg, &msglen, NULL)) in ssl_print_client_hello()
1028 if (!ssl_print_random(bio, indent, &msg, &msglen)) in ssl_print_client_hello()
1030 if (!ssl_print_hexbuf(bio, indent, "session_id", 1, &msg, &msglen)) in ssl_print_client_hello()
1033 if (!ssl_print_hexbuf(bio, indent, "cookie", 1, &msg, &msglen)) in ssl_print_client_hello()
1041 BIO_indent(bio, indent, 80); in ssl_print_client_hello()
1042 BIO_printf(bio, "cipher_suites (len=%d)\n", (int)len); in ssl_print_client_hello()
1047 BIO_indent(bio, indent + 2, 80); in ssl_print_client_hello()
1048 BIO_printf(bio, "{0x%02X, 0x%02X} %s\n", in ssl_print_client_hello()
1061 BIO_indent(bio, indent, 80); in ssl_print_client_hello()
1062 BIO_printf(bio, "compression_methods (len=%d)\n", (int)len); in ssl_print_client_hello()
1064 BIO_indent(bio, indent + 2, 80); in ssl_print_client_hello()
1065 BIO_printf(bio, "%s (0x%02X)\n", in ssl_print_client_hello()
1071 if (!ssl_print_extensions(bio, indent, 0, SSL3_MT_CLIENT_HELLO, &msg, in ssl_print_client_hello()
1077 static int dtls_print_hello_vfyrequest(BIO *bio, int indent, in dtls_print_hello_vfyrequest() argument
1080 if (!ssl_print_version(bio, indent, "server_version", &msg, &msglen, NULL)) in dtls_print_hello_vfyrequest()
1082 if (!ssl_print_hexbuf(bio, indent, "cookie", 1, &msg, &msglen)) in dtls_print_hello_vfyrequest()
1087 static int ssl_print_server_hello(BIO *bio, int indent, in ssl_print_server_hello() argument
1093 if (!ssl_print_version(bio, indent, "server_version", &msg, &msglen, &vers)) in ssl_print_server_hello()
1095 if (!ssl_print_random(bio, indent, &msg, &msglen)) in ssl_print_server_hello()
1098 && !ssl_print_hexbuf(bio, indent, "session_id", 1, &msg, &msglen)) in ssl_print_server_hello()
1103 BIO_indent(bio, indent, 80); in ssl_print_server_hello()
1104 BIO_printf(bio, "cipher_suite {0x%02X, 0x%02X} %s\n", in ssl_print_server_hello()
1111 BIO_indent(bio, indent, 80); in ssl_print_server_hello()
1112 BIO_printf(bio, "compression_method: %s (0x%02X)\n", in ssl_print_server_hello()
1117 if (!ssl_print_extensions(bio, indent, 1, SSL3_MT_SERVER_HELLO, &msg, in ssl_print_server_hello()
1171 static int ssl_print_client_keyex(BIO *bio, int indent, const SSL_CONNECTION *sc, in ssl_print_client_keyex() argument
1177 BIO_indent(bio, indent, 80); in ssl_print_client_keyex()
1178 BIO_printf(bio, "KeyExchangeAlgorithm=%s\n", algname); in ssl_print_client_keyex()
1180 if (!ssl_print_hexbuf(bio, indent + 2, in ssl_print_client_keyex()
1189 ssl_print_hex(bio, indent + 2, in ssl_print_client_keyex()
1192 if (!ssl_print_hexbuf(bio, indent + 2, in ssl_print_client_keyex()
1200 if (!ssl_print_hexbuf(bio, indent + 2, "dh_Yc", 2, &msg, &msglen)) in ssl_print_client_keyex()
1206 if (!ssl_print_hexbuf(bio, indent + 2, "ecdh_Yc", 1, &msg, &msglen)) in ssl_print_client_keyex()
1210 ssl_print_hex(bio, indent + 2, "GostKeyTransportBlob", msg, msglen); in ssl_print_client_keyex()
1214 ssl_print_hex(bio, indent + 2, in ssl_print_client_keyex()
1223 static int ssl_print_server_keyex(BIO *bio, int indent, const SSL_CONNECTION *sc, in ssl_print_server_keyex() argument
1229 BIO_indent(bio, indent, 80); in ssl_print_server_keyex()
1230 BIO_printf(bio, "KeyExchangeAlgorithm=%s\n", algname); in ssl_print_server_keyex()
1232 if (!ssl_print_hexbuf(bio, indent + 2, in ssl_print_server_keyex()
1239 if (!ssl_print_hexbuf(bio, indent + 2, "rsa_modulus", 2, &msg, &msglen)) in ssl_print_server_keyex()
1241 if (!ssl_print_hexbuf(bio, indent + 2, "rsa_exponent", 2, in ssl_print_server_keyex()
1248 if (!ssl_print_hexbuf(bio, indent + 2, "dh_p", 2, &msg, &msglen)) in ssl_print_server_keyex()
1250 if (!ssl_print_hexbuf(bio, indent + 2, "dh_g", 2, &msg, &msglen)) in ssl_print_server_keyex()
1252 if (!ssl_print_hexbuf(bio, indent + 2, "dh_Ys", 2, &msg, &msglen)) in ssl_print_server_keyex()
1260 BIO_indent(bio, indent + 2, 80); in ssl_print_server_keyex()
1262 BIO_puts(bio, "explicit_prime\n"); in ssl_print_server_keyex()
1264 BIO_puts(bio, "explicit_char2\n"); in ssl_print_server_keyex()
1270 BIO_printf(bio, "named_curve: %s (%d)\n", in ssl_print_server_keyex()
1274 if (!ssl_print_hexbuf(bio, indent + 2, "point", 1, &msg, &msglen)) in ssl_print_server_keyex()
1277 BIO_printf(bio, "UNKNOWN CURVE PARAMETER TYPE %d\n", msg[0]); in ssl_print_server_keyex()
1287 ssl_print_signature(bio, indent, sc, &msg, &msglen); in ssl_print_server_keyex()
1291 static int ssl_print_certificate(BIO *bio, const SSL_CONNECTION *sc, int indent, in ssl_print_certificate() argument
1306 BIO_indent(bio, indent, 80); in ssl_print_certificate()
1307 BIO_printf(bio, "ASN.1Cert, length=%d", (int)clen); in ssl_print_certificate()
1314 BIO_puts(bio, "<UNPARSEABLE CERTIFICATE>\n"); in ssl_print_certificate()
1316 BIO_puts(bio, "\n------details-----\n"); in ssl_print_certificate()
1317 X509_print_ex(bio, x, XN_FLAG_ONELINE, 0); in ssl_print_certificate()
1318 PEM_write_bio_X509(bio, x); in ssl_print_certificate()
1320 BIO_puts(bio, "------------------\n"); in ssl_print_certificate()
1324 BIO_puts(bio, "<TRAILING GARBAGE AFTER CERTIFICATE>\n"); in ssl_print_certificate()
1331 static int ssl_print_raw_public_key(BIO *bio, const SSL *ssl, int server, in ssl_print_raw_public_key() argument
1348 BIO_indent(bio, indent, 80); in ssl_print_raw_public_key()
1349 BIO_printf(bio, "raw_public_key, length=%d\n", (int)clen); in ssl_print_raw_public_key()
1354 EVP_PKEY_print_public(bio, pkey, indent + 2, NULL); in ssl_print_raw_public_key()
1361 static int ssl_print_certificates(BIO *bio, const SSL_CONNECTION *sc, int server, in ssl_print_certificates() argument
1368 && !ssl_print_hexbuf(bio, indent, "context", 1, &msg, &msglen)) in ssl_print_certificates()
1379 if (!ssl_print_raw_public_key(bio, &sc->ssl, server, indent, &msg, &clen)) in ssl_print_certificates()
1382 && !ssl_print_extensions(bio, indent + 2, server, in ssl_print_certificates()
1387 BIO_indent(bio, indent, 80); in ssl_print_certificates()
1388 BIO_printf(bio, "certificate_list, length=%d\n", (int)clen); in ssl_print_certificates()
1390 if (!ssl_print_certificate(bio, sc, indent + 2, &msg, &clen)) in ssl_print_certificates()
1393 && !ssl_print_extensions(bio, indent + 2, server, in ssl_print_certificates()
1401 static int ssl_print_compressed_certificates(BIO *bio, const SSL_CONNECTION *sc, in ssl_print_compressed_certificates() argument
1426 BIO_indent(bio, indent, 80); in ssl_print_compressed_certificates()
1427 BIO_printf(bio, "Compression type=%s (0x%04x)\n", ssl_trace_str(alg, ssl_comp_cert_tbl), alg); in ssl_print_compressed_certificates()
1428 BIO_indent(bio, indent, 80); in ssl_print_compressed_certificates()
1429 BIO_printf(bio, "Uncompressed length=%d\n", (int)uclen); in ssl_print_compressed_certificates()
1430 BIO_indent(bio, indent, 80); in ssl_print_compressed_certificates()
1432 … BIO_printf(bio, "Compressed length=%d, Ratio=%f:1\n", (int)clen, (float)uclen / (float)clen); in ssl_print_compressed_certificates()
1434 BIO_printf(bio, "Compressed length=%d, Ratio=unknown\n", (int)clen); in ssl_print_compressed_certificates()
1436 BIO_dump_indent(bio, (const char *)msg, clen, indent); in ssl_print_compressed_certificates()
1464 ret = ssl_print_certificates(bio, sc, server, indent, ucdata, uclen); in ssl_print_compressed_certificates()
1472 static int ssl_print_cert_request(BIO *bio, int indent, const SSL_CONNECTION *sc, in ssl_print_cert_request() argument
1479 if (!ssl_print_hexbuf(bio, indent, "request_context", 1, &msg, &msglen)) in ssl_print_cert_request()
1481 if (!ssl_print_extensions(bio, indent, 1, in ssl_print_cert_request()
1492 BIO_indent(bio, indent, 80); in ssl_print_cert_request()
1493 BIO_printf(bio, "certificate_types (len=%d)\n", (int)xlen); in ssl_print_cert_request()
1494 if (!ssl_trace_list(bio, indent + 2, msg, xlen, 1, ssl_ctype_tbl)) in ssl_print_cert_request()
1507 BIO_indent(bio, indent, 80); in ssl_print_cert_request()
1508 BIO_printf(bio, "signature_algorithms (len=%d)\n", (int)xlen); in ssl_print_cert_request()
1510 BIO_indent(bio, indent + 2, 80); in ssl_print_cert_request()
1512 BIO_printf(bio, "%s (0x%04x)\n", in ssl_print_cert_request()
1523 BIO_indent(bio, indent, 80); in ssl_print_cert_request()
1528 BIO_printf(bio, "certificate_authorities (len=%d)\n", (int)xlen); in ssl_print_cert_request()
1539 BIO_indent(bio, indent + 2, 80); in ssl_print_cert_request()
1540 BIO_printf(bio, "DistinguishedName (len=%d): ", (int)dlen); in ssl_print_cert_request()
1544 BIO_puts(bio, "<UNPARSEABLE DN>\n"); in ssl_print_cert_request()
1546 X509_NAME_print_ex(bio, nm, 0, XN_FLAG_ONELINE); in ssl_print_cert_request()
1547 BIO_puts(bio, "\n"); in ssl_print_cert_request()
1554 if (!ssl_print_hexbuf(bio, indent, "request_extensions", 2, in ssl_print_cert_request()
1561 static int ssl_print_ticket(BIO *bio, int indent, const SSL_CONNECTION *sc, in ssl_print_ticket() argument
1567 BIO_indent(bio, indent + 2, 80); in ssl_print_ticket()
1568 BIO_puts(bio, "No Ticket\n"); in ssl_print_ticket()
1579 BIO_indent(bio, indent + 2, 80); in ssl_print_ticket()
1580 BIO_printf(bio, "ticket_lifetime_hint=%u\n", tick_life); in ssl_print_ticket()
1593 BIO_indent(bio, indent + 2, 80); in ssl_print_ticket()
1594 BIO_printf(bio, "ticket_age_add=%u\n", ticket_age_add); in ssl_print_ticket()
1595 if (!ssl_print_hexbuf(bio, indent + 2, "ticket_nonce", 1, &msg, in ssl_print_ticket()
1599 if (!ssl_print_hexbuf(bio, indent + 2, "ticket", 2, &msg, &msglen)) in ssl_print_ticket()
1602 && !ssl_print_extensions(bio, indent + 2, 0, in ssl_print_ticket()
1610 static int ssl_print_handshake(BIO *bio, const SSL_CONNECTION *sc, int server, in ssl_print_handshake() argument
1621 BIO_indent(bio, indent, 80); in ssl_print_handshake()
1622 BIO_printf(bio, "%s, Length=%d\n", in ssl_print_handshake()
1629 BIO_indent(bio, indent, 80); in ssl_print_handshake()
1630 BIO_printf(bio, "message_seq=%d, fragment_offset=%d, " in ssl_print_handshake()
1642 if (!ssl_print_client_hello(bio, sc, indent + 2, msg, msglen)) in ssl_print_handshake()
1647 if (!dtls_print_hello_vfyrequest(bio, indent + 2, msg, msglen)) in ssl_print_handshake()
1652 if (!ssl_print_server_hello(bio, indent + 2, msg, msglen)) in ssl_print_handshake()
1657 if (!ssl_print_server_keyex(bio, indent + 2, sc, msg, msglen)) in ssl_print_handshake()
1662 if (!ssl_print_client_keyex(bio, indent + 2, sc, msg, msglen)) in ssl_print_handshake()
1667 if (!ssl_print_certificates(bio, sc, server, indent + 2, msg, msglen)) in ssl_print_handshake()
1672 if (!ssl_print_compressed_certificates(bio, sc, server, indent + 2, msg, msglen)) in ssl_print_handshake()
1677 if (!ssl_print_signature(bio, indent + 2, sc, &msg, &msglen)) in ssl_print_handshake()
1682 if (!ssl_print_cert_request(bio, indent + 2, sc, msg, msglen)) in ssl_print_handshake()
1687 ssl_print_hex(bio, indent + 2, "verify_data", msg, msglen); in ssl_print_handshake()
1693 ssl_print_hex(bio, indent + 2, "unexpected value", msg, msglen); in ssl_print_handshake()
1697 if (!ssl_print_ticket(bio, indent + 2, sc, msg, msglen)) in ssl_print_handshake()
1702 if (!ssl_print_extensions(bio, indent + 2, 1, in ssl_print_handshake()
1709 ssl_print_hex(bio, indent + 2, "unexpected value", msg, msglen); in ssl_print_handshake()
1712 if (!ssl_trace_list(bio, indent + 2, msg, msglen, 1, in ssl_print_handshake()
1718 BIO_indent(bio, indent + 2, 80); in ssl_print_handshake()
1719 BIO_puts(bio, "Unsupported, hex dump follows:\n"); in ssl_print_handshake()
1720 BIO_dump_indent(bio, (const char *)msg, msglen, indent + 4); in ssl_print_handshake()
1729 BIO *bio = arg; in SSL_trace() local
1756 BIO_puts(bio, write_p ? "Sent" : "Received"); in SSL_trace()
1757 ssl_print_hex(bio, 0, " too short message", msg, msglen); in SSL_trace()
1761 BIO_puts(bio, write_p ? "Sent" : "Received"); in SSL_trace()
1762 BIO_printf(bio, " TLS Record\nHeader:\n Version = %s (0x%x)\n", in SSL_trace()
1765 BIO_printf(bio, in SSL_trace()
1772 BIO_printf(bio, " Content Type = %s (%d)\n Length = %d", in SSL_trace()
1779 BIO_printf(bio, " Inner Content Type = %s (%d)", in SSL_trace()
1784 if (!ssl_print_handshake(bio, sc, sc->server ? write_p : !write_p, in SSL_trace()
1786 BIO_printf(bio, "Message length parse error!\n"); in SSL_trace()
1791 BIO_puts(bio, " change_cipher_spec (1)\n"); in SSL_trace()
1793 ssl_print_hex(bio, 4, "unknown value", msg, msglen); in SSL_trace()
1798 BIO_puts(bio, " Illegal Alert Length\n"); in SSL_trace()
1800 BIO_printf(bio, " Level=%s(%d), description=%s(%d)\n", in SSL_trace()
1807 BIO_puts(bio, "\n"); in SSL_trace()