fips.c: x86[_64] capability masking.
This commit is contained in:
parent
033a25cef5
commit
3b5930442d
10
fips/fips.c
10
fips/fips.c
@ -160,6 +160,9 @@ unsigned int FIPS_incore_fingerprint(unsigned char *sig,unsigned int len)
|
|||||||
const unsigned char *p4 = FIPS_rodata_end;
|
const unsigned char *p4 = FIPS_rodata_end;
|
||||||
HMAC_CTX c;
|
HMAC_CTX c;
|
||||||
|
|
||||||
|
#if defined(_MSC_VER)
|
||||||
|
#endif
|
||||||
|
|
||||||
HMAC_CTX_init(&c);
|
HMAC_CTX_init(&c);
|
||||||
HMAC_Init(&c,FIPS_hmac_key,strlen(FIPS_hmac_key),EVP_sha1());
|
HMAC_Init(&c,FIPS_hmac_key,strlen(FIPS_hmac_key),EVP_sha1());
|
||||||
|
|
||||||
@ -312,13 +315,18 @@ int FIPS_module_mode_set(int onoff, const char *auth)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifdef OPENSSL_IA32_SSE2
|
#ifdef OPENSSL_IA32_SSE2
|
||||||
if ((OPENSSL_ia32cap & (1<<25|1<<26)) != (1<<25|1<<26))
|
{
|
||||||
|
unsigned int OPENSSL_ia32cap_P[];
|
||||||
|
if ((OPENSSL_ia32cap_P[0] & (1<<25|1<<26)) != (1<<25|1<<26))
|
||||||
{
|
{
|
||||||
FIPSerr(FIPS_F_FIPS_MODULE_MODE_SET,FIPS_R_UNSUPPORTED_PLATFORM);
|
FIPSerr(FIPS_F_FIPS_MODULE_MODE_SET,FIPS_R_UNSUPPORTED_PLATFORM);
|
||||||
fips_selftest_fail = 1;
|
fips_selftest_fail = 1;
|
||||||
ret = 0;
|
ret = 0;
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
|
OPENSSL_ia32cap_P[0] |= (1<<28); /* set "shared cache" */
|
||||||
|
OPENSSL_ia32cap_P[1] &= ~(1<<60); /* clear AVX */
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if(fips_signature_witness() != FIPS_signature)
|
if(fips_signature_witness() != FIPS_signature)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user