{
FIPSerr(FIPS_F_FIPS_DIGESTINIT,FIPS_R_FIPS_SELFTEST_FAILED);
ctx->digest = &bad_md;
+ ctx->update = bad_update;
return 0;
}
if(FIPS_module_mode() && !(type->flags & EVP_MD_FLAG_FIPS) &&
{
EVPerr(EVP_F_FIPS_DIGESTINIT, EVP_R_DISABLED_FOR_FIPS);
ctx->digest = &bad_md;
+ ctx->update = bad_update;
return 0;
}
if (ctx->digest != type)
return 1;
}
+
+const EVP_MD *FIPS_get_digestbynid(int nid)
+ {
+ switch (nid)
+ {
+ case NID_sha1:
+ return EVP_sha1();
+
+ case NID_sha224:
+ return EVP_sha224();
+
+ case NID_sha256:
+ return EVP_sha256();
+
+ case NID_sha384:
+ return EVP_sha384();
+
+ case NID_sha512:
+ return EVP_sha512();
+
+ default:
+ return NULL;
+ }
+ }