Lines Matching refs:bio
24 # define ssl_trace_list(bio, indent, msg, msglen, value, table) \ argument
25 do_ssl_trace_list(bio, indent, msg, msglen, value, \
40 static int do_ssl_trace_list(BIO *bio, int indent, in do_ssl_trace_list() argument
52 BIO_indent(bio, indent, 80); in do_ssl_trace_list()
53 BIO_printf(bio, "%s (%d)\n", do_ssl_trace_str(val, tbl, ntbl), val); in do_ssl_trace_list()
600 static void ssl_print_hex(BIO *bio, int indent, const char *name, in ssl_print_hex() argument
605 BIO_indent(bio, indent, 80); in ssl_print_hex()
606 BIO_printf(bio, "%s (len=%d): ", name, (int)msglen); in ssl_print_hex()
608 BIO_printf(bio, "%02X", msg[i]); in ssl_print_hex()
609 BIO_puts(bio, "\n"); in ssl_print_hex()
612 static int ssl_print_hexbuf(BIO *bio, int indent, const char *name, size_t nlen, in ssl_print_hexbuf() argument
626 ssl_print_hex(bio, indent, name, p, blen); in ssl_print_hexbuf()
632 static int ssl_print_version(BIO *bio, int indent, const char *name, in ssl_print_version() argument
643 BIO_indent(bio, indent, 80); in ssl_print_version()
644 BIO_printf(bio, "%s=0x%x (%s)\n", in ssl_print_version()
651 static int ssl_print_random(BIO *bio, int indent, in ssl_print_random() argument
664 BIO_indent(bio, indent, 80); in ssl_print_random()
665 BIO_puts(bio, "Random:\n"); in ssl_print_random()
666 BIO_indent(bio, indent + 2, 80); in ssl_print_random()
667 BIO_printf(bio, "gmt_unix_time=0x%08X\n", tm); in ssl_print_random()
668 ssl_print_hex(bio, indent + 2, "random_bytes", p, 28); in ssl_print_random()
674 static int ssl_print_signature(BIO *bio, int indent, const SSL *ssl, in ssl_print_signature() argument
683 BIO_indent(bio, indent, 80); in ssl_print_signature()
684 BIO_printf(bio, "Signature Algorithm: %s (0x%04x)\n", in ssl_print_signature()
689 return ssl_print_hexbuf(bio, indent, "Signature", 2, pmsg, pmsglen); in ssl_print_signature()
692 static int ssl_print_extension(BIO *bio, int indent, int server, in ssl_print_extension() argument
700 BIO_indent(bio, indent, 80); in ssl_print_extension()
701 BIO_printf(bio, "extension_type=%s(%d), length=%d\n", in ssl_print_extension()
708 return ssl_trace_list(bio, indent + 2, ext, xlen, 1, ssl_mfl_tbl); in ssl_print_extension()
716 return ssl_trace_list(bio, indent + 2, ext + 1, xlen, 1, ssl_point_tbl); in ssl_print_extension()
724 return ssl_trace_list(bio, indent + 2, ext + 2, xlen, 2, ssl_groups_tbl); in ssl_print_extension()
737 BIO_indent(bio, indent + 2, 80); in ssl_print_extension()
738 BIO_write(bio, ext, plen); in ssl_print_extension()
739 BIO_puts(bio, "\n"); in ssl_print_extension()
756 BIO_indent(bio, indent + 2, 80); in ssl_print_extension()
758 BIO_printf(bio, "%s (0x%04x)\n", in ssl_print_extension()
778 ssl_print_hex(bio, indent + 4, "client_verify_data", ext, xlen); in ssl_print_extension()
781 ssl_print_hex(bio, indent + 4, "server_verify_data", ext, xlen); in ssl_print_extension()
784 BIO_indent(bio, indent + 4, 80); in ssl_print_extension()
785 BIO_puts(bio, "<EMPTY>\n"); in ssl_print_extension()
794 ssl_print_hex(bio, indent + 4, "ticket", ext, extlen); in ssl_print_extension()
803 BIO_indent(bio, indent + 4, 80); in ssl_print_extension()
804 BIO_printf(bio, "NamedGroup: %s (%d)\n", in ssl_print_extension()
829 BIO_indent(bio, indent + 4, 80); in ssl_print_extension()
830 BIO_printf(bio, "NamedGroup: %s (%d)\n", in ssl_print_extension()
832 ssl_print_hex(bio, indent + 4, "key_exchange: ", ext, share_len); in ssl_print_extension()
843 BIO_indent(bio, indent + 4, 80); in ssl_print_extension()
844 BIO_printf(bio, "%s (%d)\n", in ssl_print_extension()
853 return ssl_trace_list(bio, indent + 2, ext + 1, xlen, 2, in ssl_print_extension()
862 return ssl_trace_list(bio, indent + 2, ext + 1, xlen, 1, in ssl_print_extension()
874 BIO_indent(bio, indent + 2, 80); in ssl_print_extension()
875 BIO_printf(bio, "max_early_data=%u\n", max_early_data); in ssl_print_extension()
879 BIO_dump_indent(bio, (const char *)ext, extlen, indent + 2); in ssl_print_extension()
884 static int ssl_print_extensions(BIO *bio, int indent, int server, in ssl_print_extensions() argument
891 BIO_indent(bio, indent, 80); in ssl_print_extensions()
893 BIO_puts(bio, "No extensions\n"); in ssl_print_extensions()
902 BIO_puts(bio, "No extensions\n"); in ssl_print_extensions()
909 BIO_printf(bio, "extensions, length = %d\n", (int)extslen); in ssl_print_extensions()
919 BIO_printf(bio, "extensions, extype = %d, extlen = %d\n", extype, in ssl_print_extensions()
921 BIO_dump_indent(bio, (const char *)msg, extslen, indent + 2); in ssl_print_extensions()
925 if (!ssl_print_extension(bio, indent + 2, server, mt, extype, msg, in ssl_print_extensions()
937 static int ssl_print_client_hello(BIO *bio, const SSL *ssl, int indent, in ssl_print_client_hello() argument
943 if (!ssl_print_version(bio, indent, "client_version", &msg, &msglen, NULL)) in ssl_print_client_hello()
945 if (!ssl_print_random(bio, indent, &msg, &msglen)) in ssl_print_client_hello()
947 if (!ssl_print_hexbuf(bio, indent, "session_id", 1, &msg, &msglen)) in ssl_print_client_hello()
950 if (!ssl_print_hexbuf(bio, indent, "cookie", 1, &msg, &msglen)) in ssl_print_client_hello()
958 BIO_indent(bio, indent, 80); in ssl_print_client_hello()
959 BIO_printf(bio, "cipher_suites (len=%d)\n", (int)len); in ssl_print_client_hello()
964 BIO_indent(bio, indent + 2, 80); in ssl_print_client_hello()
965 BIO_printf(bio, "{0x%02X, 0x%02X} %s\n", in ssl_print_client_hello()
978 BIO_indent(bio, indent, 80); in ssl_print_client_hello()
979 BIO_printf(bio, "compression_methods (len=%d)\n", (int)len); in ssl_print_client_hello()
981 BIO_indent(bio, indent + 2, 80); in ssl_print_client_hello()
982 BIO_printf(bio, "%s (0x%02X)\n", in ssl_print_client_hello()
988 if (!ssl_print_extensions(bio, indent, 0, SSL3_MT_CLIENT_HELLO, &msg, in ssl_print_client_hello()
994 static int dtls_print_hello_vfyrequest(BIO *bio, int indent, in dtls_print_hello_vfyrequest() argument
997 if (!ssl_print_version(bio, indent, "server_version", &msg, &msglen, NULL)) in dtls_print_hello_vfyrequest()
999 if (!ssl_print_hexbuf(bio, indent, "cookie", 1, &msg, &msglen)) in dtls_print_hello_vfyrequest()
1004 static int ssl_print_server_hello(BIO *bio, int indent, in ssl_print_server_hello() argument
1010 if (!ssl_print_version(bio, indent, "server_version", &msg, &msglen, &vers)) in ssl_print_server_hello()
1012 if (!ssl_print_random(bio, indent, &msg, &msglen)) in ssl_print_server_hello()
1015 && !ssl_print_hexbuf(bio, indent, "session_id", 1, &msg, &msglen)) in ssl_print_server_hello()
1020 BIO_indent(bio, indent, 80); in ssl_print_server_hello()
1021 BIO_printf(bio, "cipher_suite {0x%02X, 0x%02X} %s\n", in ssl_print_server_hello()
1028 BIO_indent(bio, indent, 80); in ssl_print_server_hello()
1029 BIO_printf(bio, "compression_method: %s (0x%02X)\n", in ssl_print_server_hello()
1034 if (!ssl_print_extensions(bio, indent, 1, SSL3_MT_SERVER_HELLO, &msg, in ssl_print_server_hello()
1084 static int ssl_print_client_keyex(BIO *bio, int indent, const SSL *ssl, in ssl_print_client_keyex() argument
1090 BIO_indent(bio, indent, 80); in ssl_print_client_keyex()
1091 BIO_printf(bio, "KeyExchangeAlgorithm=%s\n", algname); in ssl_print_client_keyex()
1093 if (!ssl_print_hexbuf(bio, indent + 2, in ssl_print_client_keyex()
1102 ssl_print_hex(bio, indent + 2, in ssl_print_client_keyex()
1105 if (!ssl_print_hexbuf(bio, indent + 2, in ssl_print_client_keyex()
1113 if (!ssl_print_hexbuf(bio, indent + 2, "dh_Yc", 2, &msg, &msglen)) in ssl_print_client_keyex()
1119 if (!ssl_print_hexbuf(bio, indent + 2, "ecdh_Yc", 1, &msg, &msglen)) in ssl_print_client_keyex()
1128 static int ssl_print_server_keyex(BIO *bio, int indent, const SSL *ssl, in ssl_print_server_keyex() argument
1134 BIO_indent(bio, indent, 80); in ssl_print_server_keyex()
1135 BIO_printf(bio, "KeyExchangeAlgorithm=%s\n", algname); in ssl_print_server_keyex()
1137 if (!ssl_print_hexbuf(bio, indent + 2, in ssl_print_server_keyex()
1144 if (!ssl_print_hexbuf(bio, indent + 2, "rsa_modulus", 2, &msg, &msglen)) in ssl_print_server_keyex()
1146 if (!ssl_print_hexbuf(bio, indent + 2, "rsa_exponent", 2, in ssl_print_server_keyex()
1153 if (!ssl_print_hexbuf(bio, indent + 2, "dh_p", 2, &msg, &msglen)) in ssl_print_server_keyex()
1155 if (!ssl_print_hexbuf(bio, indent + 2, "dh_g", 2, &msg, &msglen)) in ssl_print_server_keyex()
1157 if (!ssl_print_hexbuf(bio, indent + 2, "dh_Ys", 2, &msg, &msglen)) in ssl_print_server_keyex()
1166 BIO_indent(bio, indent + 2, 80); in ssl_print_server_keyex()
1168 BIO_puts(bio, "explicit_prime\n"); in ssl_print_server_keyex()
1170 BIO_puts(bio, "explicit_char2\n"); in ssl_print_server_keyex()
1176 BIO_printf(bio, "named_curve: %s (%d)\n", in ssl_print_server_keyex()
1180 if (!ssl_print_hexbuf(bio, indent + 2, "point", 1, &msg, &msglen)) in ssl_print_server_keyex()
1183 BIO_printf(bio, "UNKNOWN CURVE PARAMETER TYPE %d\n", msg[0]); in ssl_print_server_keyex()
1194 ssl_print_signature(bio, indent, ssl, &msg, &msglen); in ssl_print_server_keyex()
1198 static int ssl_print_certificate(BIO *bio, int indent, in ssl_print_certificate() argument
1212 BIO_indent(bio, indent, 80); in ssl_print_certificate()
1213 BIO_printf(bio, "ASN.1Cert, length=%d", (int)clen); in ssl_print_certificate()
1216 BIO_puts(bio, "<UNPARSEABLE CERTIFICATE>\n"); in ssl_print_certificate()
1218 BIO_puts(bio, "\n------details-----\n"); in ssl_print_certificate()
1219 X509_print_ex(bio, x, XN_FLAG_ONELINE, 0); in ssl_print_certificate()
1220 PEM_write_bio_X509(bio, x); in ssl_print_certificate()
1222 BIO_puts(bio, "------------------\n"); in ssl_print_certificate()
1226 BIO_puts(bio, "<TRAILING GARBAGE AFTER CERTIFICATE>\n"); in ssl_print_certificate()
1233 static int ssl_print_certificates(BIO *bio, const SSL *ssl, int server, in ssl_print_certificates() argument
1240 && !ssl_print_hexbuf(bio, indent, "context", 1, &msg, &msglen)) in ssl_print_certificates()
1249 BIO_indent(bio, indent, 80); in ssl_print_certificates()
1250 BIO_printf(bio, "certificate_list, length=%d\n", (int)clen); in ssl_print_certificates()
1252 if (!ssl_print_certificate(bio, indent + 2, &msg, &clen)) in ssl_print_certificates()
1255 && !ssl_print_extensions(bio, indent + 2, server, in ssl_print_certificates()
1263 static int ssl_print_cert_request(BIO *bio, int indent, const SSL *ssl, in ssl_print_cert_request() argument
1270 if (!ssl_print_hexbuf(bio, indent, "request_context", 1, &msg, &msglen)) in ssl_print_cert_request()
1272 if (!ssl_print_extensions(bio, indent, 1, in ssl_print_cert_request()
1283 BIO_indent(bio, indent, 80); in ssl_print_cert_request()
1284 BIO_printf(bio, "certificate_types (len=%d)\n", (int)xlen); in ssl_print_cert_request()
1285 if (!ssl_trace_list(bio, indent + 2, msg, xlen, 1, ssl_ctype_tbl)) in ssl_print_cert_request()
1298 BIO_indent(bio, indent, 80); in ssl_print_cert_request()
1299 BIO_printf(bio, "signature_algorithms (len=%d)\n", (int)xlen); in ssl_print_cert_request()
1301 BIO_indent(bio, indent + 2, 80); in ssl_print_cert_request()
1303 BIO_printf(bio, "%s (0x%04x)\n", in ssl_print_cert_request()
1314 BIO_indent(bio, indent, 80); in ssl_print_cert_request()
1319 BIO_printf(bio, "certificate_authorities (len=%d)\n", (int)xlen); in ssl_print_cert_request()
1330 BIO_indent(bio, indent + 2, 80); in ssl_print_cert_request()
1331 BIO_printf(bio, "DistinguishedName (len=%d): ", (int)dlen); in ssl_print_cert_request()
1335 BIO_puts(bio, "<UNPARSEABLE DN>\n"); in ssl_print_cert_request()
1337 X509_NAME_print_ex(bio, nm, 0, XN_FLAG_ONELINE); in ssl_print_cert_request()
1338 BIO_puts(bio, "\n"); in ssl_print_cert_request()
1345 if (!ssl_print_hexbuf(bio, indent, "request_extensions", 2, in ssl_print_cert_request()
1352 static int ssl_print_ticket(BIO *bio, int indent, const SSL *ssl, in ssl_print_ticket() argument
1358 BIO_indent(bio, indent + 2, 80); in ssl_print_ticket()
1359 BIO_puts(bio, "No Ticket\n"); in ssl_print_ticket()
1370 BIO_indent(bio, indent + 2, 80); in ssl_print_ticket()
1371 BIO_printf(bio, "ticket_lifetime_hint=%u\n", tick_life); in ssl_print_ticket()
1384 BIO_indent(bio, indent + 2, 80); in ssl_print_ticket()
1385 BIO_printf(bio, "ticket_age_add=%u\n", ticket_age_add); in ssl_print_ticket()
1386 if (!ssl_print_hexbuf(bio, indent + 2, "ticket_nonce", 1, &msg, in ssl_print_ticket()
1390 if (!ssl_print_hexbuf(bio, indent + 2, "ticket", 2, &msg, &msglen)) in ssl_print_ticket()
1393 && !ssl_print_extensions(bio, indent + 2, 0, in ssl_print_ticket()
1401 static int ssl_print_handshake(BIO *bio, const SSL *ssl, int server, in ssl_print_handshake() argument
1412 BIO_indent(bio, indent, 80); in ssl_print_handshake()
1413 BIO_printf(bio, "%s, Length=%d\n", in ssl_print_handshake()
1420 BIO_indent(bio, indent, 80); in ssl_print_handshake()
1421 BIO_printf(bio, "message_seq=%d, fragment_offset=%d, " in ssl_print_handshake()
1433 if (!ssl_print_client_hello(bio, ssl, indent + 2, msg, msglen)) in ssl_print_handshake()
1438 if (!dtls_print_hello_vfyrequest(bio, indent + 2, msg, msglen)) in ssl_print_handshake()
1443 if (!ssl_print_server_hello(bio, indent + 2, msg, msglen)) in ssl_print_handshake()
1448 if (!ssl_print_server_keyex(bio, indent + 2, ssl, msg, msglen)) in ssl_print_handshake()
1453 if (!ssl_print_client_keyex(bio, indent + 2, ssl, msg, msglen)) in ssl_print_handshake()
1458 if (!ssl_print_certificates(bio, ssl, server, indent + 2, msg, msglen)) in ssl_print_handshake()
1463 if (!ssl_print_signature(bio, indent + 2, ssl, &msg, &msglen)) in ssl_print_handshake()
1468 if (!ssl_print_cert_request(bio, indent + 2, ssl, msg, msglen)) in ssl_print_handshake()
1473 ssl_print_hex(bio, indent + 2, "verify_data", msg, msglen); in ssl_print_handshake()
1478 ssl_print_hex(bio, indent + 2, "unexpected value", msg, msglen); in ssl_print_handshake()
1482 if (!ssl_print_ticket(bio, indent + 2, ssl, msg, msglen)) in ssl_print_handshake()
1487 if (!ssl_print_extensions(bio, indent + 2, 1, in ssl_print_handshake()
1494 ssl_print_hex(bio, indent + 2, "unexpected value", msg, msglen); in ssl_print_handshake()
1497 if (!ssl_trace_list(bio, indent + 2, msg, msglen, 1, in ssl_print_handshake()
1503 BIO_indent(bio, indent + 2, 80); in ssl_print_handshake()
1504 BIO_puts(bio, "Unsupported, hex dump follows:\n"); in ssl_print_handshake()
1505 BIO_dump_indent(bio, (const char *)msg, msglen, indent + 4); in ssl_print_handshake()
1514 BIO *bio = arg; in SSL_trace() local
1524 BIO_puts(bio, write_p ? "Sent" : "Received"); in SSL_trace()
1525 ssl_print_hex(bio, 0, " too short message", msg, msglen); in SSL_trace()
1529 BIO_puts(bio, write_p ? "Sent" : "Received"); in SSL_trace()
1530 BIO_printf(bio, " Record\nHeader:\n Version = %s (0x%x)\n", in SSL_trace()
1533 BIO_printf(bio, in SSL_trace()
1540 BIO_printf(bio, " Content Type = %s (%d)\n Length = %d", in SSL_trace()
1547 BIO_printf(bio, " Inner Content Type = %s (%d)", in SSL_trace()
1552 if (!ssl_print_handshake(bio, ssl, ssl->server ? write_p : !write_p, in SSL_trace()
1554 BIO_printf(bio, "Message length parse error!\n"); in SSL_trace()
1559 BIO_puts(bio, " change_cipher_spec (1)\n"); in SSL_trace()
1561 ssl_print_hex(bio, 4, "unknown value", msg, msglen); in SSL_trace()
1566 BIO_puts(bio, " Illegal Alert Length\n"); in SSL_trace()
1568 BIO_printf(bio, " Level=%s(%d), description=%s(%d)\n", in SSL_trace()
1575 BIO_puts(bio, "\n"); in SSL_trace()