summaryrefslogtreecommitdiff
path: root/GNUmakefile-cross
diff options
context:
space:
mode:
authorJeffrey Walton <noloader@gmail.com>2019-05-19 16:29:45 -0400
committerGitHub <noreply@github.com>2019-05-19 16:29:45 -0400
commitd38e5a954df411b0fa83d22479af85cdaa772adb (patch)
tree1ef9de0fd53b4eacc4516f1fe76c004f54ad4b12 /GNUmakefile-cross
parent4c9ca6b723b5ec5aab7eec720ad4d22598abe941 (diff)
downloadcryptopp-git-d38e5a954df411b0fa83d22479af85cdaa772adb.tar.gz
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.
Diffstat (limited to 'GNUmakefile-cross')
-rwxr-xr-xGNUmakefile-cross6
1 files changed, 5 insertions, 1 deletions
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) $<