{
case SSL_kRSA:
- if (!ssl_print_hexbuf(bio, indent + 2,
+ if (TLS1_get_version(ssl) == SSL3_VERSION)
+ {
+ ssl_print_hex(bio, indent + 2,
+ "EncyptedPreMasterSecret",
+ msg, msglen);
+ }
+ else
+ {
+ if (!ssl_print_hexbuf(bio, indent + 2,
"EncyptedPreMasterSecret", 2,
&msg, &msglen))
return 0;
+ }
break;
/* Implicit parameters only allowed for static DH */
nm = d2i_X509_NAME(NULL, &p, dlen);
if (!nm)
{
- BIO_puts(bio, "<UNPARESABLE DN>\n");
+ BIO_puts(bio, "<UNPARSEABLE DN>\n");
}
else
{
return 1;
}
+const char *SSL_CIPHER_standard_name(const SSL_CIPHER *c)
+ {
+ if (c->algorithm_ssl & SSL_SSLV2)
+ return NULL;
+ return ssl_trace_str(c->id & 0xFFFF, ssl_ciphers_tbl);
+ }
+
void SSL_trace(int write_p, int version, int content_type,
const void *buf, size_t msglen, SSL *ssl, void *arg)
{
msg, msglen);
return;
}
-
- BIO_printf(bio, "%s Record: Version = %s (0x%x)",
- write_p ? "Sent" : "Received",
- ssl_trace_str(version, ssl_version_tbl),
- version);
- BIO_printf(bio, " Length=%d\n", (int)msglen);
- BIO_printf(bio, " Content Type = %s (%d)\n",
- ssl_trace_str(content_type, ssl_content_tbl),
- content_type);
-
switch (content_type)
{
+ case SSL3_RT_HEADER:
+ {
+ int 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);
+ BIO_printf(bio, " Content Type = %s (%d)\n Length = %d",
+ ssl_trace_str(msg[0], ssl_content_tbl), msg[0],
+ msg[3] << 8 | msg[4]);
+ }
+ break;
case SSL3_RT_HANDSHAKE:
if (!ssl_print_handshake(bio, ssl, msg, msglen, 4))
BIO_printf(bio, "Message length parse error!\n");