From a1b3102eabd42a98854b6fc6fe8e63ad518ee959 Mon Sep 17 00:00:00 2001 From: Jeffrey Walton Date: Sat, 19 Aug 2017 01:35:36 -0400 Subject: [PATCH] Update comments --- blake2-simd.cpp | 2 +- gcm-simd.cpp | 2 +- gcm.cpp | 2 +- rijndael-simd.cpp | 4 ++-- rijndael.cpp | 9 +++++++-- rijndael.h | 5 ----- sha-simd.cpp | 7 +++++++ shacal2-simd.cpp | 2 +- 8 files changed, 20 insertions(+), 13 deletions(-) diff --git a/blake2-simd.cpp b/blake2-simd.cpp index 2b788d4c..f437bc4e 100644 --- a/blake2-simd.cpp +++ b/blake2-simd.cpp @@ -29,7 +29,7 @@ # define EXCEPTION_EXECUTE_HANDLER 1 #endif -// Clang __m128i casts +// Clang __m128i casts, http://bugs.llvm.org/show_bug.cgi?id=20670 #define M128_CAST(x) ((__m128i *)(void *)(x)) #define CONST_M128_CAST(x) ((const __m128i *)(const void *)(x)) diff --git a/gcm-simd.cpp b/gcm-simd.cpp index b98914df..11804ded 100644 --- a/gcm-simd.cpp +++ b/gcm-simd.cpp @@ -49,7 +49,7 @@ # define EXCEPTION_EXECUTE_HANDLER 1 #endif -// Clang __m128i casts +// Clang __m128i casts, http://bugs.llvm.org/show_bug.cgi?id=20670 #define M128_CAST(x) ((__m128i *)(void *)(x)) #define CONST_M128_CAST(x) ((const __m128i *)(const void *)(x)) diff --git a/gcm.cpp b/gcm.cpp index d9c77df8..cc1440c0 100644 --- a/gcm.cpp +++ b/gcm.cpp @@ -51,7 +51,7 @@ NAMESPACE_BEGIN(CryptoPP) #endif #endif // CRYPTOPP_BOOL_X86 || CRYPTOPP_BOOL_X32 || CRYPTOPP_BOOL_X64 -// Clang __m128i casts +// Clang __m128i casts, http://bugs.llvm.org/show_bug.cgi?id=20670 #define M128_CAST(x) ((__m128i *)(void *)(x)) #define CONST_M128_CAST(x) ((const __m128i *)(const void *)(x)) diff --git a/rijndael-simd.cpp b/rijndael-simd.cpp index 352d1b30..dc342f25 100644 --- a/rijndael-simd.cpp +++ b/rijndael-simd.cpp @@ -56,7 +56,7 @@ # define MAYBE_CONST const #endif -// Clang __m128i casts +// Clang __m128i casts, http://bugs.llvm.org/show_bug.cgi?id=20670 #define M128_CAST(x) ((__m128i *)(void *)(x)) #define CONST_M128_CAST(x) ((const __m128i *)(const void *)(x)) @@ -684,7 +684,7 @@ void Rijndael_UncheckedSetKey_SSE4_AESNI(const byte *userKey, size_t keyLen, wor } } -void Rijndael_UncheckedSetKeyRev_SSE4_AESNI(word32 *key, unsigned int rounds) +void Rijndael_UncheckedSetKeyRev_AESNI(word32 *key, unsigned int rounds) { unsigned int i, j; __m128i temp; diff --git a/rijndael.cpp b/rijndael.cpp index 71c6f9f1..238ea46b 100644 --- a/rijndael.cpp +++ b/rijndael.cpp @@ -80,6 +80,11 @@ being unloaded from L1 cache, until that round is finished. NAMESPACE_BEGIN(CryptoPP) +// Clang 3.3 integrated assembler crash on Linux +#if CRYPTOPP_BOOL_X32 || (defined(CRYPTOPP_LLVM_CLANG_VERSION) && (CRYPTOPP_LLVM_CLANG_VERSION < 30400)) +# define CRYPTOPP_DISABLE_RIJNDAEL_ASM +#endif + // Hack for http://github.com/weidai11/cryptopp/issues/42 and http://github.com/weidai11/cryptopp/issues/132 #if (CRYPTOPP_BOOL_SSE2_ASM_AVAILABLE || defined(CRYPTOPP_X64_MASM_AVAILABLE)) && !defined(CRYPTOPP_ALLOW_UNALIGNED_DATA_ACCESS) # define CRYPTOPP_ALLOW_RIJNDAEL_UNALIGNED_DATA_ACCESS 1 @@ -224,7 +229,7 @@ void Rijndael::Base::FillDecTable() #if (CRYPTOPP_AESNI_AVAILABLE) extern void Rijndael_UncheckedSetKey_SSE4_AESNI(const byte *userKey, size_t keyLen, word32* rk); -extern void Rijndael_UncheckedSetKeyRev_SSE4_AESNI(word32 *key, unsigned int rounds); +extern void Rijndael_UncheckedSetKeyRev_AESNI(word32 *key, unsigned int rounds); extern size_t Rijndael_Enc_AdvancedProcessBlocks_AESNI(const word32 *subkeys, size_t rounds, const byte *inBlocks, const byte *xorBlocks, byte *outBlocks, size_t length, word32 flags); @@ -256,7 +261,7 @@ void Rijndael::Base::UncheckedSetKey(const byte *userKey, unsigned int keyLen, c // Atoms have SSE2-SSSE3 and AES-NI, but not SSE4.1 or SSE4.2. Rijndael_UncheckedSetKey_SSE4_AESNI(userKey, keyLen, rk); if (!IsForwardTransformation()) - Rijndael_UncheckedSetKeyRev_SSE4_AESNI(m_key, m_rounds); + Rijndael_UncheckedSetKeyRev_AESNI(m_key, m_rounds); return; } diff --git a/rijndael.h b/rijndael.h index bb18bd79..1279c153 100644 --- a/rijndael.h +++ b/rijndael.h @@ -12,11 +12,6 @@ #include "seckey.h" #include "secblock.h" -// Clang 3.3 integrated assembler crash on Linux -#if CRYPTOPP_BOOL_X32 || (defined(CRYPTOPP_LLVM_CLANG_VERSION) && (CRYPTOPP_LLVM_CLANG_VERSION < 30400)) -# define CRYPTOPP_DISABLE_RIJNDAEL_ASM -#endif - #if CRYPTOPP_BOOL_X64 || CRYPTOPP_BOOL_X32 || CRYPTOPP_BOOL_X86 || CRYPTOPP_BOOL_ARM32 || CRYPTOPP_BOOL_ARM64 # define CRYPTOPP_ENABLE_ADVANCED_PROCESS_BLOCKS 1 #endif diff --git a/sha-simd.cpp b/sha-simd.cpp index 94326903..5f8f92f3 100644 --- a/sha-simd.cpp +++ b/sha-simd.cpp @@ -47,6 +47,8 @@ NAMESPACE_BEGIN(CryptoPP) +// ***************** SIGILL probes ******************** + #ifdef CRYPTOPP_GNU_STYLE_INLINE_ASSEMBLY extern "C" { typedef void (*SigHandler)(int); @@ -189,6 +191,9 @@ bool CPU_ProbeSHA2() } #endif // ARM32 or ARM64 +// ***************** Intel x86 SHA ******************** + +// provided by sha.cpp extern const word32 SHA256_K[64]; /////////////////////////////////// @@ -603,6 +608,8 @@ void SHA256_HashMultipleBlocks_SHANI(word32 *state, const word32 *data, size_t l // end of Walton/Gulley's code // ///////////////////////////////// +// ***************** ARMV8 SHA ******************** + ///////////////////////////////////////////////////////// // start of Walton/Schneiders/O'Rourke/Hovsmith's code // ///////////////////////////////////////////////////////// diff --git a/shacal2-simd.cpp b/shacal2-simd.cpp index 9597cc90..e5a9046e 100644 --- a/shacal2-simd.cpp +++ b/shacal2-simd.cpp @@ -38,7 +38,7 @@ # include "arm_acle.h" #endif -// Clang __m128i casts +// Clang __m128i casts, http://bugs.llvm.org/show_bug.cgi?id=20670 #define M128_CAST(x) ((__m128i *)(void *)(x)) #define CONST_M128_CAST(x) ((const __m128i *)(const void *)(x))