static int check_fast_pclmul(void)
{
unsigned int a,b,c,d;
- a = b = c = d = 0;
+ unsigned int family,model;
+
if (__get_cpuid(1, &a, &b, &c, &d))
return 0;
- unsigned int family = ((a >> 8) & 0x0F);
- unsigned int model = ((a >> 4) & 0x0F) + ((a >> 12) & 0xF0);
+ family = ((a >> 8) & 0x0F);
+ model = ((a >> 4) & 0x0F) + ((a >> 12) & 0xF0);
if(((family == 0x6) && (model == 0xf || model == 0x19)) ||
((family == 0x7) && (model == 0x1B || model == 0x3B)))
if (!__get_cpuid(0, &a, &b, &c, &d))
return 0;
+ /* Zhaoxin and VIA CPU was detected */
if ((memcmp(&b, "Cent", 4) == 0 &&
memcmp(&d, "aurH", 4) == 0 &&
- memcmp(&c, "auls", 4) == 0) ||
- (memcmp(&b, " Sh", 4) == 0 &&
- memcmp(&d, "angh", 4) == 0 && memcmp(&c, "ai ", 4) == 0)) {
+ memcmp(&c, "auls", 4) == 0) ||
+ (memcmp(&b, " Sh", 4) == 0 &&
+ memcmp(&d, "angh", 4) == 0 && memcmp(&c, "ai ", 4) == 0)) {
return 1;
}
return;
if (capabilities == 0){
- if(!read_cpuid_vals(_gnutls_x86_cpuid_s))
- return;
+ if(!read_cpuid_vals(_gnutls_x86_cpuid_s))
+ return;
edx = padlock_capability();
} else{
capabilities_to_intel_cpuid(capabilities);
ret =
gnutls_crypto_single_digest_register
(GNUTLS_DIG_SHA384, 80,
- &_gnutls_sha_padlock_enhance, 0);
+ &_gnutls_sha_padlock, 0);
if (ret < 0) {
gnutls_assert();
}
ret =
gnutls_crypto_single_digest_register
(GNUTLS_DIG_SHA512, 80,
- &_gnutls_sha_padlock_enhance, 0);
+ &_gnutls_sha_padlock, 0);
if (ret < 0) {
gnutls_assert();
}
ret =
gnutls_crypto_single_mac_register
(GNUTLS_MAC_SHA384, 80,
- &_gnutls_hmac_sha_padlock_enhance, 0);
+ &_gnutls_hmac_sha_padlock, 0);
if (ret < 0) {
gnutls_assert();
}
ret =
gnutls_crypto_single_mac_register
(GNUTLS_MAC_SHA512, 80,
- &_gnutls_hmac_sha_padlock_enhance, 0);
+ &_gnutls_hmac_sha_padlock, 0);
if (ret < 0) {
gnutls_assert();
}
ret =
gnutls_crypto_single_digest_register(GNUTLS_DIG_SHA1,
90,
- &_gnutls_sha_padlock_enhance, 0);
+ &_gnutls_sha_padlock, 0);
if (ret < 0) {
gnutls_assert();
}
ret =
gnutls_crypto_single_digest_register(GNUTLS_DIG_SHA224,
90,
- &_gnutls_sha_padlock_enhance, 0);
+ &_gnutls_sha_padlock, 0);
if (ret < 0) {
gnutls_assert();
}
ret =
gnutls_crypto_single_digest_register(GNUTLS_DIG_SHA256,
90,
- &_gnutls_sha_padlock_enhance, 0);
+ &_gnutls_sha_padlock, 0);
if (ret < 0) {
gnutls_assert();
}
ret =
gnutls_crypto_single_mac_register(GNUTLS_MAC_SHA1,
90,
- &_gnutls_hmac_sha_padlock_enhance, 0);
+ &_gnutls_hmac_sha_padlock, 0);
if (ret < 0) {
gnutls_assert();
}
ret =
gnutls_crypto_single_mac_register(GNUTLS_MAC_SHA256,
90,
- &_gnutls_hmac_sha_padlock_enhance, 0);
+ &_gnutls_hmac_sha_padlock, 0);
if (ret < 0) {
gnutls_assert();
}
ret =
gnutls_crypto_single_digest_register(GNUTLS_DIG_SHA1,
90,
- &_gnutls_sha_padlock, 0);
+ &_gnutls_sha_padlock_oneshot, 0);
if (ret < 0) {
gnutls_assert();
}
ret =
gnutls_crypto_single_digest_register(GNUTLS_DIG_SHA256,
90,
- &_gnutls_sha_padlock, 0);
+ &_gnutls_sha_padlock_oneshot, 0);
if (ret < 0) {
gnutls_assert();
}
ret =
gnutls_crypto_single_mac_register(GNUTLS_MAC_SHA1,
90,
- &_gnutls_hmac_sha_padlock, 0);
+ &_gnutls_hmac_sha_padlock_oneshot, 0);
if (ret < 0) {
gnutls_assert();
}
ret =
gnutls_crypto_single_mac_register(GNUTLS_MAC_SHA256,
90,
- &_gnutls_hmac_sha_padlock, 0);
+ &_gnutls_hmac_sha_padlock_oneshot, 0);
if (ret < 0) {
gnutls_assert();
}