mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2025-07-30 18:57:27 +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)
|
#elif defined(HAVE_CPUID_AARCH64)
|
||||||
|
|
||||||
#define CPUID_AARCH64_FEAT_AES ((word64)1 << 4)
|
#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 ((word64)1 << 12)
|
||||||
#define CPUID_AARCH64_FEAT_SHA256_512 ((word64)1 << 13)
|
#define CPUID_AARCH64_FEAT_SHA256_512 ((word64)1 << 13)
|
||||||
#define CPUID_AARCH64_FEAT_RDM ((word64)1 << 28)
|
#define CPUID_AARCH64_FEAT_RDM ((word64)1 << 28)
|
||||||
@ -131,8 +131,10 @@
|
|||||||
|
|
||||||
if (features & CPUID_AARCH64_FEAT_AES)
|
if (features & CPUID_AARCH64_FEAT_AES)
|
||||||
cpuid_flags |= CPUID_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;
|
cpuid_flags |= CPUID_PMULL;
|
||||||
|
}
|
||||||
if (features & CPUID_AARCH64_FEAT_SHA256)
|
if (features & CPUID_AARCH64_FEAT_SHA256)
|
||||||
cpuid_flags |= CPUID_SHA256;
|
cpuid_flags |= CPUID_SHA256;
|
||||||
if (features & CPUID_AARCH64_FEAT_SHA256_512)
|
if (features & CPUID_AARCH64_FEAT_SHA256_512)
|
||||||
@ -279,7 +281,6 @@
|
|||||||
void cpuid_set_flags(void)
|
void cpuid_set_flags(void)
|
||||||
{
|
{
|
||||||
if (!cpuid_check) {
|
if (!cpuid_check) {
|
||||||
|
|
||||||
#ifndef WOLFSSL_ARMASM_NO_HW_CRYPTO
|
#ifndef WOLFSSL_ARMASM_NO_HW_CRYPTO
|
||||||
cpuid_flags |= CPUID_AES;
|
cpuid_flags |= CPUID_AES;
|
||||||
cpuid_flags |= CPUID_PMULL;
|
cpuid_flags |= CPUID_PMULL;
|
||||||
@ -300,6 +301,7 @@
|
|||||||
#ifdef WOLFSSL_ARMASM_CRYPTO_SM4
|
#ifdef WOLFSSL_ARMASM_CRYPTO_SM4
|
||||||
cpuid_flags |= CPUID_SM4;
|
cpuid_flags |= CPUID_SM4;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
cpuid_check = 1;
|
cpuid_check = 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user