diff options
author | Jeffrey Walton <noloader@gmail.com> | 2017-01-15 00:22:14 -0500 |
---|---|---|
committer | Jeffrey Walton <noloader@gmail.com> | 2017-01-15 00:22:14 -0500 |
commit | c80502102acde8151361243172ae7dee719ef869 (patch) | |
tree | d96d2093715bbe195250ff4b778d01238e9413c7 /gcm.cpp | |
parent | c71803f383bf9ad447c699a2a65c72135c4bf71e (diff) | |
download | cryptopp-git-c80502102acde8151361243172ae7dee719ef869.tar.gz |
Breakout __ARM_FEATURE_CRYPTO into PMULL, AES and SHA for Apple Clang (Issue 362)
It appears Apple Clang disgorges carryless multiply (PMULL) from Crypto (AES and SHA). The breakout added CRYPTOPP_BOOL_ARM_PMULL_INTRINSICS_AVAILABLE for PMULL, and retained CRYPTOPP_BOOL_ARM_CRYPTO_INTRINSICS_AVAILABLE for AES and SHA only
Diffstat (limited to 'gcm.cpp')
-rw-r--r-- | gcm.cpp | 10 |
1 files changed, 5 insertions, 5 deletions
@@ -180,7 +180,7 @@ inline __m128i CLMUL_GF_Mul(const __m128i &x, const __m128i &h, const __m128i &r }
#endif
-#if CRYPTOPP_BOOL_ARM_CRYPTO_INTRINSICS_AVAILABLE
+#if CRYPTOPP_BOOL_ARM_PMULL_INTRINSICS_AVAILABLE
CRYPTOPP_ALIGN_DATA(16)
static const word64 s_clmulConstants64[] = {
@@ -240,7 +240,7 @@ void GCM_Base::SetKeyWithoutResync(const byte *userKey, size_t keylength, const tableSize = s_clmulTableSizeInBlocks * REQUIRED_BLOCKSIZE;
}
else
-#elif CRYPTOPP_BOOL_ARM_CRYPTO_INTRINSICS_AVAILABLE
+#elif CRYPTOPP_BOOL_ARM_PMULL_INTRINSICS_AVAILABLE
if (HasPMULL())
{
// Avoid "parameter not used" error and suppress Coverity finding
@@ -286,7 +286,7 @@ void GCM_Base::SetKeyWithoutResync(const byte *userKey, size_t keylength, const return;
}
-#elif CRYPTOPP_BOOL_ARM_CRYPTO_INTRINSICS_AVAILABLE
+#elif CRYPTOPP_BOOL_ARM_PMULL_INTRINSICS_AVAILABLE
if (HasPMULL())
{
const uint64x2_t r = s_clmulConstants[0];
@@ -422,7 +422,7 @@ inline void GCM_Base::ReverseHashBufferIfNeeded() __m128i &x = *(__m128i *)(void *)HashBuffer();
x = _mm_shuffle_epi8(x, s_clmulConstants[1]);
}
-#elif CRYPTOPP_BOOL_ARM_CRYPTO_INTRINSICS_AVAILABLE
+#elif CRYPTOPP_BOOL_ARM_PMULL_INTRINSICS_AVAILABLE
if (HasPMULL())
{
if (GetNativeByteOrder() != BIG_ENDIAN_ORDER)
@@ -572,7 +572,7 @@ size_t GCM_Base::AuthenticateBlocks(const byte *data, size_t len) _mm_store_si128((__m128i *)(void *)HashBuffer(), x);
return len;
}
-#elif CRYPTOPP_BOOL_ARM_CRYPTO_INTRINSICS_AVAILABLE
+#elif CRYPTOPP_BOOL_ARM_PMULL_INTRINSICS_AVAILABLE
if (HasPMULL())
{
const uint64x2_t *table = (const uint64x2_t *)MulTable();
|