summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikos Mavrogiannopoulos <nmav@redhat.com>2017-08-25 10:33:27 +0200
committerNikos Mavrogiannopoulos <nmav@gnutls.org>2017-08-27 15:58:28 +0200
commitf7d29a577f38b1d36da9ca979ccbac3f7ed28e32 (patch)
tree0e38758f626ada4d6a26e13f7f479ebddc673f84
parent36e1ebac5d64c556b2c1b52eae231dbea8af64b2 (diff)
downloadgnutls-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.c31
-rw-r--r--src/certtool-common.h2
-rw-r--r--src/certtool.c34
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);
}
}