1
0
mirror of https://git.tartarus.org/simon/putty.git synced 2025-01-10 01:48:00 +00:00
putty-source/unix/uxutils.c

53 lines
1.2 KiB
C
Raw Normal View History

#include "putty.h"
#include "ssh.h"
#include "uxutils.h"
#if defined __arm__ || defined __aarch64__
bool platform_aes_hw_available(void)
{
#if defined HWCAP_AES
return getauxval(AT_HWCAP) & HWCAP_AES;
#elif defined HWCAP2_AES
return getauxval(AT_HWCAP2) & HWCAP2_AES;
#elif defined __APPLE__
/* M1 macOS defines no optional sysctl flag indicating presence of
* the AES extension, which I assume to be because it's always
* present */
return true;
#else
return false;
#endif
}
bool platform_sha256_hw_available(void)
{
#if defined HWCAP_SHA2
return getauxval(AT_HWCAP) & HWCAP_SHA2;
#elif defined HWCAP2_SHA2
return getauxval(AT_HWCAP2) & HWCAP2_SHA2;
#elif defined __APPLE__
/* Assume always present on M1 macOS, similarly to AES */
return true;
#else
return false;
#endif
}
bool platform_sha1_hw_available(void)
{
#if defined HWCAP_SHA1
return getauxval(AT_HWCAP) & HWCAP_SHA1;
#elif defined HWCAP2_SHA1
return getauxval(AT_HWCAP2) & HWCAP2_SHA1;
#elif defined __APPLE__
/* Assume always present on M1 macOS, similarly to AES */
return true;
#else
return false;
#endif
}
#endif /* defined __arm__ || defined __aarch64__ */