Hello OpenSSL Users,
I’m trying to use SHA1 message digest hashing in combination with the FIPS
provider, but seem to be running into issues. My code looks like the following:
EVP_PKEY* privateKey = getPrivateKey();
EVP_MD_CTX* mdContex = EVP_MD_CTX_new();
if (mdContex != NULL) {
const EVP_MD* messageDigest = EVP_MD_fetch(NULL, "SHA-1",
"provider=fips");
if (EVP_DigestSignInit(mdContex, NULL, messageDigest, NULL, privateKey)
== 1) {
std::cout << "Success";
} else {
std::cout << "EVP_DigestSignInit failed";
}
EVP_MD_CTX_free(mdContex);
}
The call to EVP_DigestSignInit() always fails. If I switch to SHA-256 then it
works fine. I thought SHA-1 wasn’t allowed for raw sign operations, but was
still okay for message digests calculated via the EVP_MD related methods, is
that thinking incorrect? And in fact, all use of SHA-1 with FIPS is disallowed?
Regards,
Kevin Millson.