diff options
author | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2003-10-26 10:10:31 +0000 |
---|---|---|
committer | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2003-10-26 10:10:31 +0000 |
commit | a151e388e3af2dc519e90ceb19f4061aa1799a77 (patch) | |
tree | f33b08fa59c5f1364a65e6f075ebb9043ae8629b | |
parent | c71080a631d28466d76a1ee08ee46512de982732 (diff) | |
download | gnutls-a151e388e3af2dc519e90ceb19f4061aa1799a77.tar.gz |
Added fingerprint calculation to certtool.
-rw-r--r-- | src/certtool.c | 29 |
1 files changed, 24 insertions, 5 deletions
diff --git a/src/certtool.c b/src/certtool.c index e3bc48bd14..e8ddf4309a 100644 --- a/src/certtool.c +++ b/src/certtool.c @@ -465,6 +465,8 @@ void certificate_info( void) } printf("Serial Number: %s\n", printable); } + + /* Issuer */ @@ -505,6 +507,24 @@ void certificate_info( void) print = get_algorithm( ret); printf( "%s\n", print); + + /* fingerprint + */ + size = sizeof(buffer); + if ((ret=gnutls_x509_crt_get_fingerprint(crt, GNUTLS_DIG_MD5, buffer, &size)) < 0) + { + const char* str = gnutls_strerror(ret); + if (str == NULL) str = "unknown error"; + fprintf(stderr, "Error in fingerprint calculation: %s\n", str); + } else { + print = printable; + for (i = 0; i < size; i++) { + sprintf(print, "%.2x ", (unsigned char) buffer[i]); + print += 3; + } + printf("\nFingerprint: %s\n", printable); + } + printf("\nX.509 Extensions:\n"); @@ -515,9 +535,9 @@ void certificate_info( void) ret = gnutls_x509_crt_get_subject_alt_name(crt, i, buffer, &size, &critical); if (i==0 && ret != GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE) { - printf("\tSubject Alternative name"); + printf("\tSubject Alternative name:"); if (critical) printf(" (critical)"); - printf(":\n"); + printf("\n"); } if (ret < 0 && ret != GNUTLS_E_REQUESTED_DATA_NOT_AVAILABLE) { @@ -536,7 +556,6 @@ void certificate_info( void) printf("\t\tIPAddress: %s\n", buffer); break; } - } /* check for basicConstraints @@ -544,9 +563,9 @@ void certificate_info( void) ret = gnutls_x509_crt_get_ca_status( crt, &critical); if (ret >= 0) { - printf("\tBasic Constraints"); + printf("\tBasic Constraints:"); if (critical) printf(" (critical)"); - printf(":\n"); + printf("\n"); if (ret==0) printf("\t\tCA:FALSE\n"); else printf("\t\tCA:TRUE\n"); |