From 1d792b0b444bb1e688f40e9ff3b6fb65d5ae616f Mon Sep 17 00:00:00 2001 From: Jacob Barthelmeh Date: Thu, 6 Apr 2017 10:56:24 -0600 Subject: [PATCH] detect SHA256, SHA384, and SHA512 NID types when signing --- wolfcrypt/src/evp.c | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/wolfcrypt/src/evp.c b/wolfcrypt/src/evp.c index 8bc7e25ef..377015c23 100644 --- a/wolfcrypt/src/evp.c +++ b/wolfcrypt/src/evp.c @@ -899,12 +899,25 @@ static int md2nid(int md) { const char * d ; d = (const char *)wolfSSL_EVP_get_md((const unsigned char)md); - if (d == NULL) { - return MEMORY_E; + if (XSTRNCMP(d, "SHA", 3) == 0) { + if (XSTRLEN(d) > 3) { + if (XSTRNCMP(d, "SHA256", 6) == 0) { + return NID_sha256; + } + if (XSTRNCMP(d, "SHA384", 6) == 0) { + return NID_sha384; + } + if (XSTRNCMP(d, "SHA512", 6) == 0) { + return NID_sha512; + } + WOLFSSL_MSG("Unknown SHA type"); + return 0; + } + else { + return NID_sha1; + } } - - if (XSTRNCMP(d, "SHA", 3) == 0) return NID_sha1; - if (XSTRNCMP(d, "MD5", 3) == 0) return NID_md5; + if(XSTRNCMP(d, "MD5", 3) == 0)return NID_md5; return 0; } #endif /* NO_RSA */