From: Nikos Mavrogiannopoulos Date: Fri, 25 Aug 2017 08:33:27 +0000 (+0200) Subject: certtool: hash_to_id moved to certtool-common.c X-Git-Tag: gnutls_3_6_1~106 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=f7d29a577f38b1d36da9ca979ccbac3f7ed28e32;p=thirdparty%2Fgnutls.git certtool: hash_to_id moved to certtool-common.c Signed-off-by: Nikos Mavrogiannopoulos --- diff --git a/src/certtool-common.c b/src/certtool-common.c index 413395926b..71de7cf61d 100644 --- a/src/certtool-common.c +++ b/src/certtool-common.c @@ -1556,3 +1556,34 @@ gnutls_pk_algorithm_t figure_key_type(const char *key_type) return GNUTLS_PK_UNKNOWN; } } + +gnutls_digest_algorithm_t hash_to_id(const char *hash) +{ + if (strcasecmp(hash, "md5") == 0) { + fprintf(stderr, + "Warning: MD5 is broken, and should not be used any more for digital signatures.\n"); + return GNUTLS_DIG_MD5; + } else if (strcasecmp(hash, "sha1") == 0) + return GNUTLS_DIG_SHA1; + else if (strcasecmp(hash, "sha256") == 0) + return GNUTLS_DIG_SHA256; + else if (strcasecmp(hash, "sha224") == 0) + return GNUTLS_DIG_SHA224; + else if (strcasecmp(hash, "sha384") == 0) + return GNUTLS_DIG_SHA384; + else if (strcasecmp(hash, "sha512") == 0) + return GNUTLS_DIG_SHA512; + else if (strcasecmp(hash, "sha3-256") == 0) + return GNUTLS_DIG_SHA3_256; + else if (strcasecmp(hash, "sha3-224") == 0) + return GNUTLS_DIG_SHA3_224; + else if (strcasecmp(hash, "sha3-384") == 0) + return GNUTLS_DIG_SHA3_384; + else if (strcasecmp(hash, "sha3-512") == 0) + return GNUTLS_DIG_SHA3_512; + else if (strcasecmp(hash, "rmd160") == 0) + return GNUTLS_DIG_RMD160; + else { + return gnutls_digest_get_id(hash); + } +} diff --git a/src/certtool-common.h b/src/certtool-common.h index f1e9263288..1b9255cf55 100644 --- a/src/certtool-common.h +++ b/src/certtool-common.h @@ -174,4 +174,6 @@ void decode_seed(gnutls_datum_t *seed, const char *hex, unsigned hex_size); gnutls_pk_algorithm_t figure_key_type(const char *key_type); +gnutls_digest_algorithm_t hash_to_id(const char *hash); + #endif diff --git a/src/certtool.c b/src/certtool.c index 97d4287078..a8502ec564 100644 --- a/src/certtool.c +++ b/src/certtool.c @@ -1250,36 +1250,10 @@ static void cmd_parser(int argc, char **argv) default_dig = GNUTLS_DIG_UNKNOWN; if (HAVE_OPT(HASH)) { - if (strcasecmp(OPT_ARG(HASH), "md5") == 0) { - fprintf(stderr, - "Warning: MD5 is broken, and should not be used any more for digital signatures.\n"); - default_dig = GNUTLS_DIG_MD5; - } else if (strcasecmp(OPT_ARG(HASH), "sha1") == 0) - default_dig = GNUTLS_DIG_SHA1; - else if (strcasecmp(OPT_ARG(HASH), "sha256") == 0) - default_dig = GNUTLS_DIG_SHA256; - else if (strcasecmp(OPT_ARG(HASH), "sha224") == 0) - default_dig = GNUTLS_DIG_SHA224; - else if (strcasecmp(OPT_ARG(HASH), "sha384") == 0) - default_dig = GNUTLS_DIG_SHA384; - else if (strcasecmp(OPT_ARG(HASH), "sha512") == 0) - default_dig = GNUTLS_DIG_SHA512; - else if (strcasecmp(OPT_ARG(HASH), "sha3-256") == 0) - default_dig = GNUTLS_DIG_SHA3_256; - else if (strcasecmp(OPT_ARG(HASH), "sha3-224") == 0) - default_dig = GNUTLS_DIG_SHA3_224; - else if (strcasecmp(OPT_ARG(HASH), "sha3-384") == 0) - default_dig = GNUTLS_DIG_SHA3_384; - else if (strcasecmp(OPT_ARG(HASH), "sha3-512") == 0) - default_dig = GNUTLS_DIG_SHA3_512; - else if (strcasecmp(OPT_ARG(HASH), "rmd160") == 0) - default_dig = GNUTLS_DIG_RMD160; - else { - default_dig = gnutls_digest_get_id(OPT_ARG(HASH)); - if (default_dig == GNUTLS_DIG_UNKNOWN) { - fprintf(stderr, "invalid hash: %s\n", OPT_ARG(HASH)); - app_exit(1); - } + default_dig = hash_to_id(OPT_ARG(HASH)); + if (default_dig == GNUTLS_DIG_UNKNOWN) { + fprintf(stderr, "invalid hash: %s\n", OPT_ARG(HASH)); + app_exit(1); } }