diff options
author | Nikos Mavrogiannopoulos <nmav@redhat.com> | 2017-08-25 10:33:27 +0200 |
---|---|---|
committer | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2017-08-27 15:58:28 +0200 |
commit | f7d29a577f38b1d36da9ca979ccbac3f7ed28e32 (patch) | |
tree | 0e38758f626ada4d6a26e13f7f479ebddc673f84 | |
parent | 36e1ebac5d64c556b2c1b52eae231dbea8af64b2 (diff) | |
download | gnutls-f7d29a577f38b1d36da9ca979ccbac3f7ed28e32.tar.gz |
certtool: hash_to_id moved to certtool-common.c
Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
-rw-r--r-- | src/certtool-common.c | 31 | ||||
-rw-r--r-- | src/certtool-common.h | 2 | ||||
-rw-r--r-- | src/certtool.c | 34 |
3 files changed, 37 insertions, 30 deletions
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); } } |