summaryrefslogtreecommitdiff
path: root/gcm.cpp
diff options
context:
space:
mode:
authorJeffrey Walton <noloader@gmail.com>2017-01-15 00:22:14 -0500
committerJeffrey Walton <noloader@gmail.com>2017-01-15 00:22:14 -0500
commitc80502102acde8151361243172ae7dee719ef869 (patch)
treed96d2093715bbe195250ff4b778d01238e9413c7 /gcm.cpp
parentc71803f383bf9ad447c699a2a65c72135c4bf71e (diff)
downloadcryptopp-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.cpp10
1 files changed, 5 insertions, 5 deletions
diff --git a/gcm.cpp b/gcm.cpp
index 362c358a..6baf8692 100644
--- a/gcm.cpp
+++ b/gcm.cpp
@@ -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();