From 126fd8af09b326f2224f686e4cd2ac99de8359ac Mon Sep 17 00:00:00 2001 From: Tobias Brunner Date: Mon, 25 Sep 2017 18:07:58 +0200 Subject: [PATCH] gmp: Use helper to determine XOF type --- .../plugins/gmp/gmp_rsa_private_key.c | 19 +++++-------------- .../plugins/gmp/gmp_rsa_public_key.c | 19 +++++-------------- 2 files changed, 10 insertions(+), 28 deletions(-) diff --git a/src/libstrongswan/plugins/gmp/gmp_rsa_private_key.c b/src/libstrongswan/plugins/gmp/gmp_rsa_private_key.c index 3a9296535..e24fda8c2 100644 --- a/src/libstrongswan/plugins/gmp/gmp_rsa_private_key.c +++ b/src/libstrongswan/plugins/gmp/gmp_rsa_private_key.c @@ -354,21 +354,12 @@ static bool build_emsa_pss_signature(private_gmp_rsa_private_key_t *this, { return FALSE; } - switch (params->mgf1_hash) + xof = xof_mgf1_from_hash_algorithm(params->mgf1_hash); + if (xof == XOF_UNDEFINED) { - case HASH_SHA1: - xof = XOF_MGF1_SHA1; - break; - case HASH_SHA256: - xof = XOF_MGF1_SHA256; - break; - case HASH_SHA512: - xof = XOF_MGF1_SHA512; - break; - default: - DBG1(DBG_LIB, "%N is not supported for MGF1", hash_algorithm_names, - params->mgf1_hash); - return FALSE; + DBG1(DBG_LIB, "%N is not supported for MGF1", hash_algorithm_names, + params->mgf1_hash); + return FALSE; } /* emBits = modBits - 1 */ embits = mpz_sizeinbase(this->n, 2) - 1; diff --git a/src/libstrongswan/plugins/gmp/gmp_rsa_public_key.c b/src/libstrongswan/plugins/gmp/gmp_rsa_public_key.c index 45fdf1d67..52bc9fb38 100644 --- a/src/libstrongswan/plugins/gmp/gmp_rsa_public_key.c +++ b/src/libstrongswan/plugins/gmp/gmp_rsa_public_key.c @@ -304,21 +304,12 @@ static bool verify_emsa_pss_signature(private_gmp_rsa_public_key_t *this, { return FALSE; } - switch (params->mgf1_hash) + xof = xof_mgf1_from_hash_algorithm(params->mgf1_hash); + if (xof == XOF_UNDEFINED) { - case HASH_SHA1: - xof = XOF_MGF1_SHA1; - break; - case HASH_SHA256: - xof = XOF_MGF1_SHA256; - break; - case HASH_SHA512: - xof = XOF_MGF1_SHA512; - break; - default: - DBG1(DBG_LIB, "%N is not supported for MGF1", hash_algorithm_names, - params->mgf1_hash); - return FALSE; + DBG1(DBG_LIB, "%N is not supported for MGF1", hash_algorithm_names, + params->mgf1_hash); + return FALSE; } chunk_skip_zero(signature); if (signature.len == 0 || signature.len > this->k)