diff options
author | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2017-10-01 12:12:25 +0200 |
---|---|---|
committer | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2017-10-02 14:02:46 +0200 |
commit | e2fce7a7a64f0dde55141171e72df546156ccf7f (patch) | |
tree | e535cf3b5d3b2b8d7752ca9f2cb2ee22bdc21eff | |
parent | 3dc33cdcfa3cbcc2bbae14da40d1a235fa455825 (diff) | |
download | gnutls-e2fce7a7a64f0dde55141171e72df546156ccf7f.tar.gz |
certtool: allow using --fingerprint with sha384 or sha512
Resolves #295
Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>
-rw-r--r-- | src/certtool.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/src/certtool.c b/src/certtool.c index e7dde851c5..f5983193dc 100644 --- a/src/certtool.c +++ b/src/certtool.c @@ -53,6 +53,8 @@ #include "certtool-args.h" #include "certtool-common.h" +#define MAX_HASH_SIZE 64 + static FILE *stdlog = NULL; static void print_crl_info(gnutls_x509_crl_t crl, FILE * out); @@ -4016,8 +4018,8 @@ static void pubkey_keyid(common_info_st * cinfo) { gnutls_pubkey_t pubkey; - uint8_t fpr[64]; - char txt[256]; + uint8_t fpr[MAX_HASH_SIZE]; + char txt[MAX_HASH_SIZE*2+1]; int ret; size_t size, fpr_size; gnutls_datum_t tmp; @@ -4034,8 +4036,8 @@ void pubkey_keyid(common_info_st * cinfo) else if (default_dig == GNUTLS_DIG_SHA256) flags = GNUTLS_KEYID_USE_SHA256; else { - fprintf(stderr, "Cannot calculate key ID with the provided hash\n"); - exit(1); + fprintf(stderr, "Cannot calculate key ID with the provided hash (use sha1, or sha256)\n"); + app_exit(1); } fpr_size = sizeof(fpr); @@ -4074,8 +4076,8 @@ void certificate_fpr(common_info_st * cinfo) int ret = 0; gnutls_datum_t pem, tmp; unsigned int crt_num; - uint8_t fpr[32]; - char txt[128]; + uint8_t fpr[MAX_HASH_SIZE]; + char txt[MAX_HASH_SIZE*2+1]; size_t fpr_size; crt = load_cert(0, cinfo); |