Fake CPU caps so fips_standalone_sha1 compiles.
authorDr. Stephen Henson <steve@openssl.org>
Tue, 31 May 2011 16:22:21 +0000 (16:22 +0000)
committerDr. Stephen Henson <steve@openssl.org>
Tue, 31 May 2011 16:22:21 +0000 (16:22 +0000)
Initialise update function for bad digest inits.

fips/sha/fips_standalone_sha1.c
fips/utl/fips_md.c

index 07bd0091befa99b4f9887ddd28eed316d5c6b334..80ccae4dfef487a5608b3ff5a00702ced753a1c8 100644 (file)
@@ -59,6 +59,7 @@
 int FIPS_selftest_failed() { return 0; }
 void FIPS_selftest_check() {}
 void OPENSSL_cleanse(void *p,size_t len) {}
+unsigned int  OPENSSL_ia32cap_P[2];
 #endif
 
 #ifdef OPENSSL_FIPS
index 8bc028ab3f731b4a14944baf4bb0439f9aadf1e7..d3db1c71880a23fd7b8d408bbf0d3e1b66e7cf83 100644 (file)
@@ -171,6 +171,7 @@ int FIPS_digestinit(EVP_MD_CTX *ctx, const EVP_MD *type)
                {
                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) &&
@@ -178,6 +179,7 @@ int FIPS_digestinit(EVP_MD_CTX *ctx, const EVP_MD *type)
                {
                EVPerr(EVP_F_FIPS_DIGESTINIT, EVP_R_DISABLED_FOR_FIPS);
                ctx->digest = &bad_md;
+               ctx->update = bad_update;
                return 0;
                }
        if (ctx->digest != type)