Fix Aarch64 build. Cleanup Windows build
parent
1fdd08d690
commit
a8462328f4
|
|
@ -199,15 +199,15 @@ endif # -DCRYPTOPP_DISABLE_SSSE3
|
||||||
endif # -DCRYPTOPP_DISABLE_ASM
|
endif # -DCRYPTOPP_DISABLE_ASM
|
||||||
endif # CXXFLAGS
|
endif # CXXFLAGS
|
||||||
|
|
||||||
SSSE3_FLAG = $(shell echo "" | $(CXX) $(CXXFLAGS) -mssse3 -dM -E - | grep -i -c -q __SSSE3__ && echo "-mssse3")
|
SSSE3_FLAG = $(shell echo | $(CXX) $(CXXFLAGS) -mssse3 -dM -E - | grep -i -c -q __SSSE3__ && echo "-mssse3")
|
||||||
ARIA_FLAG = $(SSSE3_FLAG)
|
ARIA_FLAG = $(SSSE3_FLAG)
|
||||||
ifeq ($(findstring -DCRYPTOPP_DISABLE_SSE4,$(CXXFLAGS)),)
|
ifeq ($(findstring -DCRYPTOPP_DISABLE_SSE4,$(CXXFLAGS)),)
|
||||||
SSE42_FLAG = $(shell echo "" | $(CXX) $(CXXFLAGS) -msse4.2 -dM -E - | grep -i -c -q __SSE4_2__ && echo "-msse4.2")
|
SSE42_FLAG = $(shell echo | $(CXX) $(CXXFLAGS) -msse4.2 -dM -E - | grep -i -c -q __SSE4_2__ && echo "-msse4.2")
|
||||||
ifeq ($(findstring -DCRYPTOPP_DISABLE_AESNI,$(CXXFLAGS)),)
|
ifeq ($(findstring -DCRYPTOPP_DISABLE_AESNI,$(CXXFLAGS)),)
|
||||||
GCM_FLAG = $(shell echo "" | $(CXX) $(CXXFLAGS) -mssse3 -mpclmul -dM -E - | grep -i -c -q __PCLMUL__ && echo "-mssse3 -mpclmul")
|
GCM_FLAG = $(shell echo | $(CXX) $(CXXFLAGS) -mssse3 -mpclmul -dM -E - | grep -i -c -q __PCLMUL__ && echo "-mssse3 -mpclmul")
|
||||||
AES_FLAG = $(shell echo "" | $(CXX) $(CXXFLAGS) -maes -dM -E - | grep -i -c -q __AES__ && echo "-maes")
|
AES_FLAG = $(shell echo | $(CXX) $(CXXFLAGS) -maes -dM -E - | grep -i -c -q __AES__ && echo "-maes")
|
||||||
ifeq ($(findstring -DCRYPTOPP_DISABLE_SHA,$(CXXFLAGS)),)
|
ifeq ($(findstring -DCRYPTOPP_DISABLE_SHA,$(CXXFLAGS)),)
|
||||||
SHA_FLAG = $(shell echo "" | $(CXX) $(CXXFLAGS) -msse4.2 -msha -dM -E - | grep -i -c -q __SHA__ && echo "-msse4.2 -msha")
|
SHA_FLAG = $(shell echo | $(CXX) $(CXXFLAGS) -msse4.2 -msha -dM -E - | grep -i -c -q __SHA__ && echo "-msse4.2 -msha")
|
||||||
BLAKE2_FLAG = $(SSE42_FLAG)
|
BLAKE2_FLAG = $(SSE42_FLAG)
|
||||||
CRC_FLAG = $(SSE42_FLAG)
|
CRC_FLAG = $(SSE42_FLAG)
|
||||||
endif
|
endif
|
||||||
|
|
@ -304,16 +304,16 @@ endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(IS_NEON),1)
|
ifeq ($(IS_NEON),1)
|
||||||
NEON_FLAG = $(shell echo "" | $(CXX) $(CXXFLAGS) -march=armv7-a -mfloat-abi=$(FP_ABI) -mfpu=neon -dM -E - | grep -i -c -q __ARM_NEON && echo "-march=armv7-a -mfloat-abi=$(FP_ABI) -mfpu=neon")
|
NEON_FLAG = $(shell echo | $(CXX) $(CXXFLAGS) -march=armv7-a -mfloat-abi=$(FP_ABI) -mfpu=neon -dM -E - | grep -i -c -q __ARM_NEON && echo "-march=armv7-a -mfloat-abi=$(FP_ABI) -mfpu=neon")
|
||||||
GCM_FLAG = $(NEON_FLAG)
|
GCM_FLAG = $(NEON_FLAG)
|
||||||
ARIA_FLAG = $(NEON_FLAG)
|
ARIA_FLAG = $(NEON_FLAG)
|
||||||
BLAKE2_FLAG = $(NEON_FLAG)
|
BLAKE2_FLAG = $(NEON_FLAG)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(IS_ARMV8),1)
|
ifeq ($(IS_ARMV8),1)
|
||||||
ARMV8A_NEON_FLAG = $(shell echo "" | $(CXX) $(CXXFLAGS) -march=armv8-a -dM -E - | grep -i -c -q __ARM_NEON && echo "-march=armv8-a")
|
ARMV8A_NEON_FLAG = $(shell echo | $(CXX) $(CXXFLAGS) -march=armv8-a -dM -E - | grep -i -c -q __ARM_NEON && echo "-march=armv8-a")
|
||||||
ARMV8A_CRC_FLAG = $(shell echo "" | $(CXX) $(CXXFLAGS) -march=armv8-a+crc -dM -E - | grep -i -c -q __ARM_FEATURE_CRC32 && echo "-march=armv8-a+crc")
|
ARMV8A_CRC_FLAG = $(shell echo | $(CXX) $(CXXFLAGS) -march=armv8-a+crc -dM -E - | grep -i -c -q __ARM_FEATURE_CRC32 && echo "-march=armv8-a+crc")
|
||||||
ARMV8A_CRYPTO_FLAG = $(shell echo "" | $(CXX) $(CXXFLAGS) -march=armv8-a+crypto -dM -E - | grep -i -c -q __ARM_FEATURE_CRYPTO && echo "-march=armv8-a+crypto")
|
ARMV8A_CRYPTO_FLAG = $(shell echo | $(CXX) $(CXXFLAGS) -march=armv8-a+crypto -dM -E - | grep -i -c -q __ARM_FEATURE_CRYPTO && echo "-march=armv8-a+crypto")
|
||||||
CRC_FLAG = $(ARMV8A_CRC_FLAG)
|
CRC_FLAG = $(ARMV8A_CRC_FLAG)
|
||||||
AES_FLAG = $(ARMV8A_CRYPTO_FLAG)
|
AES_FLAG = $(ARMV8A_CRYPTO_FLAG)
|
||||||
GCM_FLAG = $(ARMV8A_CRYPTO_FLAG)
|
GCM_FLAG = $(ARMV8A_CRYPTO_FLAG)
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@
|
||||||
# include "nmmintrin.h"
|
# include "nmmintrin.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if (CRYPTOPP_ARM_NEON_AVAILABLE) && defined(__GNUC__)
|
#if (CRYPTOPP_ARM_NEON_AVAILABLE)
|
||||||
# include "arm_neon.h"
|
# include "arm_neon.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
@ -24,6 +24,10 @@
|
||||||
# include <setjmp.h>
|
# include <setjmp.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef EXCEPTION_EXECUTE_HANDLER
|
||||||
|
# define EXCEPTION_EXECUTE_HANDLER 1
|
||||||
|
#endif
|
||||||
|
|
||||||
NAMESPACE_BEGIN(CryptoPP)
|
NAMESPACE_BEGIN(CryptoPP)
|
||||||
|
|
||||||
ANONYMOUS_NAMESPACE_BEGIN
|
ANONYMOUS_NAMESPACE_BEGIN
|
||||||
|
|
|
||||||
6
config.h
6
config.h
|
|
@ -568,13 +568,13 @@ NAMESPACE_END
|
||||||
// LLVM Clang requires 3.5. Apple Clang is unknown at the moment.
|
// LLVM Clang requires 3.5. Apple Clang is unknown at the moment.
|
||||||
// Microsoft plans to support ARM-64, but its not clear how to detect it.
|
// Microsoft plans to support ARM-64, but its not clear how to detect it.
|
||||||
// TODO: Add MSC_VER and ARM-64 platform define when available
|
// TODO: Add MSC_VER and ARM-64 platform define when available
|
||||||
#if !defined(CRYPTOPP_ARMV8A_CRYPTO_AVAILABLE) && !defined(CRYPTOPP_DISABLE_ASM)
|
#if !defined(CRYPTOPP_ARM_CRYPTO_AVAILABLE) && !defined(CRYPTOPP_DISABLE_ASM)
|
||||||
# if defined(__ARM_FEATURE_CRYPTO) || (CRYPTOPP_MSC_VERSION >= 2000) || \
|
# if defined(__ARM_FEATURE_CRYPTO) || (CRYPTOPP_MSC_VERSION >= 2000) || \
|
||||||
(CRYPTOPP_GCC_VERSION >= 40800) || (CRYPTOPP_LLVM_CLANG_VERSION >= 30500)
|
(CRYPTOPP_GCC_VERSION >= 40800) || (CRYPTOPP_LLVM_CLANG_VERSION >= 30500)
|
||||||
# define CRYPTOPP_ARM_AES_AVAILABLE 1
|
# define CRYPTOPP_ARM_AES_AVAILABLE 1
|
||||||
# define CRYPTOPP_ARM_PMULL_AVAILABLE 1
|
# define CRYPTOPP_ARM_PMULL_AVAILABLE 1
|
||||||
# define CRYPTOPP_ARMV8A_SHA_AVAILABLE 1
|
# define CRYPTOPP_ARM_SHA_AVAILABLE 1
|
||||||
# define CRYPTOPP_ARMV8A_CRYPTO_AVAILABLE 1
|
# define CRYPTOPP_ARM_CRYPTO_AVAILABLE 1
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
||||||
2
cpu.cpp
2
cpu.cpp
|
|
@ -402,7 +402,7 @@ static bool TryAES()
|
||||||
# endif
|
# endif
|
||||||
#else
|
#else
|
||||||
return false;
|
return false;
|
||||||
#endif // CRYPTOPP_ARMV8A_CRYPTO_AVAILABLE
|
#endif // CRYPTOPP_ARM_CRYPTO_AVAILABLE
|
||||||
}
|
}
|
||||||
|
|
||||||
void DetectArmFeatures()
|
void DetectArmFeatures()
|
||||||
|
|
|
||||||
10
crc-simd.cpp
10
crc-simd.cpp
|
|
@ -14,9 +14,9 @@
|
||||||
# include "nmmintrin.h"
|
# include "nmmintrin.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if (CRYPTOPP_ARM_CRC32_AVAILABLE)
|
#if (CRYPTOPP_ARM_NEON_AVAILABLE)
|
||||||
# include "arm_neon.h"
|
# include "arm_neon.h"
|
||||||
#if defined(__GNUC__)
|
# if (CRYPTOPP_ARM_CRC32_AVAILABLE)
|
||||||
# include "arm_acle.h"
|
# include "arm_acle.h"
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -26,6 +26,10 @@
|
||||||
# include <setjmp.h>
|
# include <setjmp.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef EXCEPTION_EXECUTE_HANDLER
|
||||||
|
# define EXCEPTION_EXECUTE_HANDLER 1
|
||||||
|
#endif
|
||||||
|
|
||||||
NAMESPACE_BEGIN(CryptoPP)
|
NAMESPACE_BEGIN(CryptoPP)
|
||||||
|
|
||||||
#ifdef CRYPTOPP_GNU_STYLE_INLINE_ASSEMBLY
|
#ifdef CRYPTOPP_GNU_STYLE_INLINE_ASSEMBLY
|
||||||
|
|
@ -97,8 +101,8 @@ bool CPU_TryCRC32_ARMV8()
|
||||||
# endif
|
# endif
|
||||||
#else
|
#else
|
||||||
return false;
|
return false;
|
||||||
|
#endif // CRYPTOPP_ARM_CRC32_AVAILABLE
|
||||||
}
|
}
|
||||||
#endif // CRYPTOPP_ARMV8A_SHA_AVAILABLE
|
|
||||||
|
|
||||||
#if (CRYPTOPP_ARM_CRC32_AVAILABLE)
|
#if (CRYPTOPP_ARM_CRC32_AVAILABLE)
|
||||||
void CRC32_Update_ARMV8(const byte *s, size_t n, word32& c)
|
void CRC32_Update_ARMV8(const byte *s, size_t n, word32& c)
|
||||||
|
|
|
||||||
|
|
@ -27,6 +27,10 @@
|
||||||
# include <setjmp.h>
|
# include <setjmp.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef EXCEPTION_EXECUTE_HANDLER
|
||||||
|
# define EXCEPTION_EXECUTE_HANDLER 1
|
||||||
|
#endif
|
||||||
|
|
||||||
ANONYMOUS_NAMESPACE_BEGIN
|
ANONYMOUS_NAMESPACE_BEGIN
|
||||||
|
|
||||||
// GCC 4.8 and 4.9 are missing PMULL gear
|
// GCC 4.8 and 4.9 are missing PMULL gear
|
||||||
|
|
@ -220,8 +224,8 @@ bool CPU_TryPMULL_ARMV8()
|
||||||
# endif
|
# endif
|
||||||
#else
|
#else
|
||||||
return false;
|
return false;
|
||||||
|
#endif // CRYPTOPP_ARM_SHA_AVAILABLE
|
||||||
}
|
}
|
||||||
#endif // CRYPTOPP_ARMV8A_SHA_AVAILABLE
|
|
||||||
|
|
||||||
#if CRYPTOPP_ARM_NEON_AVAILABLE
|
#if CRYPTOPP_ARM_NEON_AVAILABLE
|
||||||
void GCM_Xor16_NEON(byte *a, const byte *b, const byte *c)
|
void GCM_Xor16_NEON(byte *a, const byte *b, const byte *c)
|
||||||
|
|
|
||||||
14
neon.cpp
14
neon.cpp
|
|
@ -9,10 +9,6 @@
|
||||||
#include "pch.h"
|
#include "pch.h"
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
|
||||||
#ifndef EXCEPTION_EXECUTE_HANDLER
|
|
||||||
# define EXCEPTION_EXECUTE_HANDLER 1
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if (CRYPTOPP_ARM_NEON_AVAILABLE)
|
#if (CRYPTOPP_ARM_NEON_AVAILABLE)
|
||||||
# include "arm_neon.h"
|
# include "arm_neon.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -22,6 +18,10 @@
|
||||||
# include <setjmp.h>
|
# include <setjmp.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef EXCEPTION_EXECUTE_HANDLER
|
||||||
|
# define EXCEPTION_EXECUTE_HANDLER 1
|
||||||
|
#endif
|
||||||
|
|
||||||
NAMESPACE_BEGIN(CryptoPP)
|
NAMESPACE_BEGIN(CryptoPP)
|
||||||
|
|
||||||
#ifdef CRYPTOPP_GNU_STYLE_INLINE_ASSEMBLY
|
#ifdef CRYPTOPP_GNU_STYLE_INLINE_ASSEMBLY
|
||||||
|
|
@ -36,9 +36,9 @@ extern "C" {
|
||||||
};
|
};
|
||||||
#endif // Not CRYPTOPP_MS_STYLE_INLINE_ASSEMBLY
|
#endif // Not CRYPTOPP_MS_STYLE_INLINE_ASSEMBLY
|
||||||
|
|
||||||
#if (CRYPTOPP_ARM_NEON_AVAILABLE)
|
|
||||||
bool CPU_TryNEON_ARM()
|
bool CPU_TryNEON_ARM()
|
||||||
{
|
{
|
||||||
|
#if (CRYPTOPP_ARM_NEON_AVAILABLE)
|
||||||
# if defined(CRYPTOPP_MS_STYLE_INLINE_ASSEMBLY)
|
# if defined(CRYPTOPP_MS_STYLE_INLINE_ASSEMBLY)
|
||||||
volatile bool result = true;
|
volatile bool result = true;
|
||||||
__try
|
__try
|
||||||
|
|
@ -99,7 +99,9 @@ bool CPU_TryNEON_ARM()
|
||||||
signal(SIGILL, oldHandler);
|
signal(SIGILL, oldHandler);
|
||||||
return result;
|
return result;
|
||||||
# endif
|
# endif
|
||||||
}
|
#else
|
||||||
|
return false;
|
||||||
#endif // CRYPTOPP_ARM_NEON_AVAILABLE
|
#endif // CRYPTOPP_ARM_NEON_AVAILABLE
|
||||||
|
}
|
||||||
|
|
||||||
NAMESPACE_END
|
NAMESPACE_END
|
||||||
|
|
|
||||||
18
sha-simd.cpp
18
sha-simd.cpp
|
|
@ -18,16 +18,22 @@
|
||||||
# include "immintrin.h"
|
# include "immintrin.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if (CRYPTOPP_ARMV8A_SHA_AVAILABLE) && defined(__GNUC__)
|
#if (CRYPTOPP_ARM_NEON_AVAILABLE)
|
||||||
# include "arm_neon.h"
|
# include "arm_neon.h"
|
||||||
|
# if (CRYPTOPP_ARM_SHA_AVAILABLE)
|
||||||
# include "arm_acle.h"
|
# include "arm_acle.h"
|
||||||
# endif
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef CRYPTOPP_GNU_STYLE_INLINE_ASSEMBLY
|
#ifdef CRYPTOPP_GNU_STYLE_INLINE_ASSEMBLY
|
||||||
# include <signal.h>
|
# include <signal.h>
|
||||||
# include <setjmp.h>
|
# include <setjmp.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef EXCEPTION_EXECUTE_HANDLER
|
||||||
|
# define EXCEPTION_EXECUTE_HANDLER 1
|
||||||
|
#endif
|
||||||
|
|
||||||
NAMESPACE_BEGIN(CryptoPP)
|
NAMESPACE_BEGIN(CryptoPP)
|
||||||
|
|
||||||
#ifdef CRYPTOPP_GNU_STYLE_INLINE_ASSEMBLY
|
#ifdef CRYPTOPP_GNU_STYLE_INLINE_ASSEMBLY
|
||||||
|
|
@ -46,7 +52,7 @@ extern const word32 SHA256_K[64];
|
||||||
|
|
||||||
bool CPU_TrySHA1_ARMV8()
|
bool CPU_TrySHA1_ARMV8()
|
||||||
{
|
{
|
||||||
#if (CRYPTOPP_ARMV8A_SHA_AVAILABLE)
|
#if (CRYPTOPP_ARM_SHA_AVAILABLE)
|
||||||
# if defined(CRYPTOPP_MS_STYLE_INLINE_ASSEMBLY)
|
# if defined(CRYPTOPP_MS_STYLE_INLINE_ASSEMBLY)
|
||||||
volatile bool result = true;
|
volatile bool result = true;
|
||||||
__try
|
__try
|
||||||
|
|
@ -100,12 +106,12 @@ bool CPU_TrySHA1_ARMV8()
|
||||||
# endif
|
# endif
|
||||||
#else
|
#else
|
||||||
return false;
|
return false;
|
||||||
|
#endif // CRYPTOPP_ARM_SHA_AVAILABLE
|
||||||
}
|
}
|
||||||
#endif // CRYPTOPP_ARMV8A_SHA_AVAILABLE
|
|
||||||
|
|
||||||
bool CPU_TrySHA2_ARMV8()
|
bool CPU_TrySHA2_ARMV8()
|
||||||
{
|
{
|
||||||
#if (CRYPTOPP_ARMV8A_SHA_AVAILABLE)
|
#if (CRYPTOPP_ARM_SHA_AVAILABLE)
|
||||||
# if defined(CRYPTOPP_MS_STYLE_INLINE_ASSEMBLY)
|
# if defined(CRYPTOPP_MS_STYLE_INLINE_ASSEMBLY)
|
||||||
volatile bool result = true;
|
volatile bool result = true;
|
||||||
__try
|
__try
|
||||||
|
|
@ -157,8 +163,8 @@ bool CPU_TrySHA2_ARMV8()
|
||||||
# endif
|
# endif
|
||||||
#else
|
#else
|
||||||
return false;
|
return false;
|
||||||
|
#endif // CRYPTOPP_ARM_SHA_AVAILABLE
|
||||||
}
|
}
|
||||||
#endif // CRYPTOPP_ARMV8A_SHA_AVAILABLE
|
|
||||||
|
|
||||||
///////////////////////////////////
|
///////////////////////////////////
|
||||||
// start of Walton/Gulley's code //
|
// start of Walton/Gulley's code //
|
||||||
|
|
@ -554,7 +560,7 @@ void CRYPTOPP_FASTCALL SHA256_HashBlocks_SHANI(word32 *state, const word32 *data
|
||||||
// start of Walton/Schneiders/O'Rourke/Hovsmith's code //
|
// start of Walton/Schneiders/O'Rourke/Hovsmith's code //
|
||||||
/////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////
|
||||||
|
|
||||||
#if CRYPTOPP_ARMV8A_SHA_AVAILABLE
|
#if CRYPTOPP_ARM_SHA_AVAILABLE
|
||||||
void SHA1_Transform_ARMV8A(word32 *state, const word32 *data)
|
void SHA1_Transform_ARMV8A(word32 *state, const word32 *data)
|
||||||
{
|
{
|
||||||
uint32x4_t C0, C1, C2, C3;
|
uint32x4_t C0, C1, C2, C3;
|
||||||
|
|
|
||||||
14
sha.cpp
14
sha.cpp
|
|
@ -100,7 +100,7 @@ static void SHA1_Transform_CXX(word32 *state, const word32 *data)
|
||||||
#if CRYPTOPP_SHANI_AVAILABLE
|
#if CRYPTOPP_SHANI_AVAILABLE
|
||||||
extern void SHA1_Transform_SHANI(word32 *state, const word32 *data);
|
extern void SHA1_Transform_SHANI(word32 *state, const word32 *data);
|
||||||
extern void CRYPTOPP_FASTCALL SHA256_HashBlocks_SHANI(word32 *state, const word32 *data, size_t length);
|
extern void CRYPTOPP_FASTCALL SHA256_HashBlocks_SHANI(word32 *state, const word32 *data, size_t length);
|
||||||
#elif CRYPTOPP_ARMV8A_SHA_AVAILABLE
|
#elif CRYPTOPP_ARM_SHA_AVAILABLE
|
||||||
extern void SHA1_Transform_ARMV8A(word32 *state, const word32 *data);
|
extern void SHA1_Transform_ARMV8A(word32 *state, const word32 *data);
|
||||||
extern void CRYPTOPP_FASTCALL SHA256_HashBlocks_ARMV8A(word32 *state, const word32 *data, size_t length);
|
extern void CRYPTOPP_FASTCALL SHA256_HashBlocks_ARMV8A(word32 *state, const word32 *data, size_t length);
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -112,7 +112,7 @@ static pfnSHATransform InitializeSHA1Transform()
|
||||||
return &SHA1_Transform_SHANI;
|
return &SHA1_Transform_SHANI;
|
||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
#if CRYPTOPP_ARMV8A_SHA_AVAILABLE
|
#if CRYPTOPP_ARM_SHA_AVAILABLE
|
||||||
if (HasSHA1())
|
if (HasSHA1())
|
||||||
return &SHA1_Transform_ARMV8A;
|
return &SHA1_Transform_ARMV8A;
|
||||||
else
|
else
|
||||||
|
|
@ -173,7 +173,7 @@ void SHA256::InitState(HashWordType *state)
|
||||||
memcpy(state, s, sizeof(s));
|
memcpy(state, s, sizeof(s));
|
||||||
}
|
}
|
||||||
|
|
||||||
#if CRYPTOPP_BOOL_SSE2_ASM_AVAILABLE || CRYPTOPP_ARMV8A_SHA_AVAILABLE
|
#if CRYPTOPP_BOOL_SSE2_ASM_AVAILABLE || CRYPTOPP_ARM_SHA_AVAILABLE
|
||||||
CRYPTOPP_ALIGN_DATA(16) extern const word32 SHA256_K[64] CRYPTOPP_SECTION_ALIGN16 = {
|
CRYPTOPP_ALIGN_DATA(16) extern const word32 SHA256_K[64] CRYPTOPP_SECTION_ALIGN16 = {
|
||||||
#else
|
#else
|
||||||
extern const word32 SHA256_K[64] = {
|
extern const word32 SHA256_K[64] = {
|
||||||
|
|
@ -538,7 +538,7 @@ static pfnSHAHashBlocks InitializeSHA256HashBlocks()
|
||||||
return &SHA256_HashBlocks_SHANI;
|
return &SHA256_HashBlocks_SHANI;
|
||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
#if CRYPTOPP_ARMV8A_SHA_AVAILABLE
|
#if CRYPTOPP_ARM_SHA_AVAILABLE
|
||||||
if (HasSHA2())
|
if (HasSHA2())
|
||||||
return &SHA256_HashBlocks_ARMV8A;
|
return &SHA256_HashBlocks_ARMV8A;
|
||||||
else
|
else
|
||||||
|
|
@ -707,12 +707,12 @@ static void SHA256_Transform_SHANI(word32 *state, const word32 *data)
|
||||||
}
|
}
|
||||||
#endif // CRYPTOPP_SHANI_AVAILABLE
|
#endif // CRYPTOPP_SHANI_AVAILABLE
|
||||||
|
|
||||||
#if CRYPTOPP_ARMV8A_SHA_AVAILABLE
|
#if CRYPTOPP_ARM_SHA_AVAILABLE
|
||||||
static void SHA256_Transform_ARMV8A(word32 *state, const word32 *data)
|
static void SHA256_Transform_ARMV8A(word32 *state, const word32 *data)
|
||||||
{
|
{
|
||||||
return SHA256_HashBlocks_ARMV8A(state, data, SHA256::BLOCKSIZE);
|
return SHA256_HashBlocks_ARMV8A(state, data, SHA256::BLOCKSIZE);
|
||||||
}
|
}
|
||||||
#endif // CRYPTOPP_ARMV8A_SHA_AVAILABLE
|
#endif // CRYPTOPP_ARM_SHA_AVAILABLE
|
||||||
|
|
||||||
///////////////////////////////////
|
///////////////////////////////////
|
||||||
// start of Walton/Gulley's code //
|
// start of Walton/Gulley's code //
|
||||||
|
|
@ -730,7 +730,7 @@ static pfnSHATransform InitializeSHA256Transform()
|
||||||
return &SHA256_Transform_SSE2;
|
return &SHA256_Transform_SSE2;
|
||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
#if CRYPTOPP_ARMV8A_SHA_AVAILABLE
|
#if CRYPTOPP_ARM_SHA_AVAILABLE
|
||||||
if (HasSHA2())
|
if (HasSHA2())
|
||||||
return &SHA256_Transform_ARMV8A;
|
return &SHA256_Transform_ARMV8A;
|
||||||
else
|
else
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue