From d38e5a954df411b0fa83d22479af85cdaa772adb Mon Sep 17 00:00:00 2001 From: Jeffrey Walton Date: Sun, 19 May 2019 16:29:45 -0400 Subject: Add ARM SHA512 asm implementation from Cryptogams (GH #841, PR #843) Cryptogams is Andy Polyakov's project used to create high speed crypto algorithms and share them with other developers. Cryptogams has a dual license. First is the OpenSSL license because Andy contributes to OpenSSL. Second is a BSD license for those who want a more permissive license. Andy's implementation runs about 45% faster than C/C++ code. Testing on a 1.8 GHz Cortex-A17 shows Cryptograms at 45 cpb, and C++ at 79 cpb. The integration instructions are documented at [Cryptogams SHA](https://wiki.openssl.org/index.php/Cryptogams_SHA) on the OpenSSL wiki. --- GNUmakefile-cross | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'GNUmakefile-cross') diff --git a/GNUmakefile-cross b/GNUmakefile-cross index 9ec0c1b9..dd6237e3 100755 --- a/GNUmakefile-cross +++ b/GNUmakefile-cross @@ -594,7 +594,7 @@ ifeq ($(IS_ARM32),1) ifneq ($(IS_IOS),1) CRYPTOGAMS_ARCH_FLAG = -march=armv7-a CRYPTOGAMS_ARCH_FLAG += -Wa,--noexecstack - SRCS += aes_armv4.S sha1_armv4.S sha256_armv4.S + SRCS += aes_armv4.S sha1_armv4.S sha256_armv4.S sha512_armv4.S endif endif @@ -873,6 +873,10 @@ sha1_armv4.o : sha1_armv4.S sha256_armv4.o : sha256_armv4.S $(CC) $(strip $(CXXFLAGS) $(CRYPTOGAMS_ARCH_FLAG) -c) $< +# Cryptogams ARM asm implementation. +sha512_armv4.o : sha512_armv4.S + $(CC) $(strip $(CXXFLAGS) $(CRYPTOGAMS_ARCH_FLAG) -c) $< + # SSE4.2/SHA-NI or ARMv8a available shacal2_simd.o : shacal2_simd.cpp $(CXX) $(strip $(CXXFLAGS) $(SHA_FLAG) -c) $< -- cgit v1.2.1