diff options
Diffstat (limited to 'doc/tex/ex-x509-info.tex')
-rw-r--r-- | doc/tex/ex-x509-info.tex | 35 |
1 files changed, 22 insertions, 13 deletions
diff --git a/doc/tex/ex-x509-info.tex b/doc/tex/ex-x509-info.tex index d7712861a7..9f21c6719a 100644 --- a/doc/tex/ex-x509-info.tex +++ b/doc/tex/ex-x509-info.tex @@ -7,10 +7,12 @@ static const char* bin2hex( const void* bin, size_t bin_size) { -static char printable[120]; -unsigned char *_bin; +static char printable[110]; +unsigned char *_bin = bin; char* print; + if (bin_size > 50) bin_size = 50; + print = printable; for (i = 0; i < bin_size; i++) { sprintf(print, "%.2x ", _bin[i]); @@ -35,32 +37,39 @@ static void print_x509_certificate_info(gnutls_session session) int cert_list_size = 0; gnutls_x509_crt cert; + /* This function only works for X.509 certificates. + */ + if (gnutls_certificate_type_get(session) != GNUTLS_CRT_X509) + return; + cert_list = gnutls_certificate_get_peers(session, &cert_list_size); - if (cert_list_size > 0 - && gnutls_certificate_type_get(session) == GNUTLS_CRT_X509) { + printf("Peer provided %d certificates.\n", cert_list_size); + + if (cert_list_size > 0) { - /* no error checking + /* we only print information about the first certificate. */ gnutls_x509_crt_init( &cert); gnutls_x509_crt_import( cert, &cert_list[0]); - printf(" - Certificate info:\n"); + printf("Certificate info:\n"); expiration_time = gnutls_x509_crt_get_expiration_time( cert); activation_time = gnutls_x509_crt_get_activation_time( cert); - printf(" - Certificate is valid since: %s", ctime(&activation_time)); - printf(" - Certificate expires: %s", ctime(&expiration_time)); + printf("\tCertificate is valid since: %s", ctime(&activation_time)); + printf("\tCertificate expires: %s", ctime(&expiration_time)); /* Print the serial number of the certificate. */ size = sizeof(serial); gnutls_x509_crt_get_serial(cert, serial, &size); - printf(" - Certificate serial number: %s\n", - bin2hex( serial, serial_size)); + size = sizeof( serial); + printf("\tCertificate serial number: %s\n", + bin2hex( serial, size)); /* Extract some of the public key algorithm's parameters */ @@ -82,16 +91,16 @@ static void print_x509_certificate_info(gnutls_session session) /* Print the version of the X.509 * certificate. */ - printf(" - Certificate version: #%d\n", + printf("\tCertificate version: #%d\n", gnutls_x509_crt_get_version( cert)); size = sizeof(dn); gnutls_x509_crt_get_dn( cert, dn, &size); - printf(" - DN: %s\n", dn); + printf("\tDN: %s\n", dn); size = sizeof(dn); gnutls_x509_crt_get_issuer_dn( cert, dn, &size); - printf(" - Certificate Issuer's DN: %s\n", dn); + printf("\tIssuer's DN: %s\n", dn); gnutls_x509_crt_deinit( cert); |