mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2025-07-30 02:37:28 +02:00
Aarch64 CPU id: fix for privilege instruction detection
AES/PMULL is in four bits 4-7. When value is 0b0010, this indicates both AES and PMULL. Fix code to set both.
This commit is contained in:
@ -105,7 +105,7 @@
|
||||
#elif defined(HAVE_CPUID_AARCH64)
|
||||
|
||||
#define CPUID_AARCH64_FEAT_AES ((word64)1 << 4)
|
||||
#define CPUID_AARCH64_FEAT_PMULL ((word64)1 << 5)
|
||||
#define CPUID_AARCH64_FEAT_AES_PMULL ((word64)1 << 5)
|
||||
#define CPUID_AARCH64_FEAT_SHA256 ((word64)1 << 12)
|
||||
#define CPUID_AARCH64_FEAT_SHA256_512 ((word64)1 << 13)
|
||||
#define CPUID_AARCH64_FEAT_RDM ((word64)1 << 28)
|
||||
@ -131,8 +131,10 @@
|
||||
|
||||
if (features & CPUID_AARCH64_FEAT_AES)
|
||||
cpuid_flags |= CPUID_AES;
|
||||
if (features & CPUID_AARCH64_FEAT_PMULL)
|
||||
if (features & CPUID_AARCH64_FEAT_AES_PMULL) {
|
||||
cpuid_flags |= CPUID_AES;
|
||||
cpuid_flags |= CPUID_PMULL;
|
||||
}
|
||||
if (features & CPUID_AARCH64_FEAT_SHA256)
|
||||
cpuid_flags |= CPUID_SHA256;
|
||||
if (features & CPUID_AARCH64_FEAT_SHA256_512)
|
||||
@ -279,7 +281,6 @@
|
||||
void cpuid_set_flags(void)
|
||||
{
|
||||
if (!cpuid_check) {
|
||||
|
||||
#ifndef WOLFSSL_ARMASM_NO_HW_CRYPTO
|
||||
cpuid_flags |= CPUID_AES;
|
||||
cpuid_flags |= CPUID_PMULL;
|
||||
@ -300,6 +301,7 @@
|
||||
#ifdef WOLFSSL_ARMASM_CRYPTO_SM4
|
||||
cpuid_flags |= CPUID_SM4;
|
||||
#endif
|
||||
|
||||
cpuid_check = 1;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user