diff options
Diffstat (limited to 'tcpd/libcouriergnutls.c')
| -rw-r--r-- | tcpd/libcouriergnutls.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/tcpd/libcouriergnutls.c b/tcpd/libcouriergnutls.c index 5a9ff63..6bc35e7 100644 --- a/tcpd/libcouriergnutls.c +++ b/tcpd/libcouriergnutls.c @@ -1874,6 +1874,8 @@ static void tls_dump_connection_info_x509(ssl_handle ssl, { time_t notbefore; time_t notafter; + char buffer[256]; + unsigned j; (*dump_func)("Subject:\n", -1, dump_arg); @@ -1883,6 +1885,29 @@ static void tls_dump_connection_info_x509(ssl_handle ssl, dump_func, dump_arg); (*dump_func)("\n", 1, dump_arg); + for (j=0; ; ++j) + { + size_t s=sizeof(buffer); + enum gnutls_x509_subject_alt_name_t t; + + t=gnutls_x509_crt_get_subject_alt_name + (cert[i], j, buffer, &s, 0); + + if (t == GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE) + break; + + if (t != GNUTLS_SAN_DNSNAME) + continue; + + if (s == sizeof(buffer)) + --s; /* The API is not clear */ + + buffer[s]=0; + (*dump_func)("Subject-Alt-Name-DNS: ", -1, + dump_arg); + (*dump_func)(buffer, -1, dump_arg); + (*dump_func)("\n", -1, dump_arg); + } #if 0 (*dump_func)("Issuer:\n", -1, dump_arg); |
