src: fix FIPS section in Sign::SignFinal

Currently, while FIPS is not supported yet for this release there might
be an option to dynamically link against a FIPS compatible OpenSSL
version.

This commit fixes the compiler errors.

PR-URL: https://github.com/nodejs/node/pull/25412
Reviewed-By: Sam Roberts <vieuxtech@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
This commit is contained in:
Daniel Bevenius 2019-01-09 11:43:41 +01:00
parent 7e7266a803
commit 228a3f840d

View File

@ -4505,9 +4505,14 @@ Sign::SignResult Sign::SignFinal(
#ifdef NODE_FIPS_MODE
/* Validate DSA2 parameters from FIPS 186-4 */
if (FIPS_mode() && EVP_PKEY_DSA == pkey->type) {
size_t L = BN_num_bits(pkey->pkey.dsa->p);
size_t N = BN_num_bits(pkey->pkey.dsa->q);
if (FIPS_mode() && EVP_PKEY_DSA == EVP_PKEY_base_id(pkey.get())) {
DSA* dsa = EVP_PKEY_get0_DSA(pkey.get());
const BIGNUM* p;
DSA_get0_pqg(dsa, &p, nullptr, nullptr);
size_t L = BN_num_bits(p);
const BIGNUM* q;
DSA_get0_pqg(dsa, nullptr, &q, nullptr);
size_t N = BN_num_bits(q);
bool result = false;
if (L == 1024 && N == 160)
@ -4520,7 +4525,7 @@ Sign::SignResult Sign::SignFinal(
result = true;
if (!result) {
return kSignPrivateKey;
return SignResult(kSignPrivateKey);
}
}
#endif // NODE_FIPS_MODE