mirror of
https://github.com/veracrypt/VeraCrypt.git
synced 2026-10-05 16:46:35 -05:00
Windows/Linux/macOS: implement AES hardware support on ARM64 (ARMv8)
This commit is contained in:
22 files changed
+492
-49
No files matched your search
@@ -469,3 +469,41 @@ void DisableCPUExtendedFeatures ()
|
||||
|
||||
#endif
|
||||
|
||||
#if CRYPTOPP_BOOL_ARMV8
|
||||
|
||||
volatile int g_hasAESARM = 0;
|
||||
|
||||
#ifndef HWCAP_AES
|
||||
# define HWCAP_AES (1 << 3)
|
||||
#endif
|
||||
|
||||
inline int CPU_QueryAES()
|
||||
{
|
||||
#if defined(CRYPTOPP_ARM_AES_AVAILABLE)
|
||||
#if defined(__linux__) && defined(__aarch64__)
|
||||
if ((getauxval(AT_HWCAP) & HWCAP_AES) != 0)
|
||||
return 1;
|
||||
#elif defined(__APPLE__) && defined(__aarch64__)
|
||||
// Apple Sillcon (M1) and later
|
||||
return 1;
|
||||
#elif defined(_WIN32) && defined(_M_ARM64)
|
||||
#ifdef TC_WINDOWS_DRIVER
|
||||
if (ExIsProcessorFeaturePresent(PF_ARM_V8_CRYPTO_INSTRUCTIONS_AVAILABLE) != 0)
|
||||
return 1;
|
||||
#else
|
||||
if (IsProcessorFeaturePresent(PF_ARM_V8_CRYPTO_INSTRUCTIONS_AVAILABLE) != 0)
|
||||
return 1;
|
||||
#endif
|
||||
#endif
|
||||
return 0;
|
||||
#else
|
||||
return 0;
|
||||
#endif
|
||||
}
|
||||
|
||||
void DetectArmFeatures()
|
||||
{
|
||||
g_hasAESARM = CPU_QueryAES();
|
||||
}
|
||||
|
||||
#endif
|
||||
Reference in new issue
Block a user