提交 3b593044 编写于 作者: A Andy Polyakov

fips.c: x86[_64] capability masking.

上级 033a25ce
......@@ -160,6 +160,9 @@ unsigned int FIPS_incore_fingerprint(unsigned char *sig,unsigned int len)
const unsigned char *p4 = FIPS_rodata_end;
HMAC_CTX c;
#if defined(_MSC_VER)
#endif
HMAC_CTX_init(&c);
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
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);
fips_selftest_fail = 1;
ret = 0;
goto end;
}
OPENSSL_ia32cap_P[0] |= (1<<28); /* set "shared cache" */
OPENSSL_ia32cap_P[1] &= ~(1<<60); /* clear AVX */
}
#endif
if(fips_signature_witness() != FIPS_signature)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册