From: Andy Polyakov Date: Thu, 2 Aug 2007 20:42:33 +0000 (+0000) Subject: Platform check in FIPS_mode_set. X-Git-Tag: FIPS_098_TEST_3~16 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=d7dc9a7ce3642f2cc6904f9ed406685029a2e825;p=oweals%2Fopenssl.git Platform check in FIPS_mode_set. --- diff --git a/fips-1.0/fips.c b/fips-1.0/fips.c index 372aa59377..cf6489672f 100644 --- a/fips-1.0/fips.c +++ b/fips-1.0/fips.c @@ -255,6 +255,16 @@ int FIPS_mode_set(int onoff) goto end; } +#ifdef OPENSSL_IA32_SSE2 + if ((OPENSSL_ia32cap & (1<<25|1<<26)) != (1<<25|1<<26)) + { + FIPSerr(FIPS_F_FIPS_MODE_SET,FIPS_R_UNSUPPORTED_PLATFORM); + fips_selftest_fail = 1; + ret = 0; + goto end; + } +#endif + if(fips_signature_witness() != FIPS_signature) { FIPSerr(FIPS_F_FIPS_MODE_SET,FIPS_R_CONTRADICTING_EVIDENCE);