Commit Graph

144 Commits

Author SHA1 Message Date
Jeffrey Walton
42d35cde6a
Fix GNUMakefile-cross 2020-07-28 14:07:20 -04:00
Jeffrey Walton
12cf74dfa2
Add build-aux/ to autotools-clean recipe 2020-07-11 03:03:19 -04:00
Jeffrey Walton
dd7598e638
Remove 64-bit AdvancedProcessBlocks (GH #945) 2020-07-07 15:22:09 -04:00
Jeffrey Walton
abe69c6130
Update makefile flags 2020-07-07 04:40:49 -04:00
Jeffrey Walton
353f26ecdc
Remove -DCRYPTOPP_DISABLE_ASM from dependencies rule 2020-05-10 22:06:52 -04:00
Jeffrey Walton
3ffb181f2a
Recognize armv8l-unknown-linux-gnueabihf in the makefiles 2020-04-12 10:50:09 -04:00
Jeffrey Walton
cdc2a4aaf5
Update iOS and Android scripts (GH #936, PR #937)
This commit updates Android and iOS to modern SDKs, NDKs and Xcode.
2020-03-09 21:53:08 -04:00
Jeffrey Walton
055568bf5b
Patch Android cpu-features for C++ compiler (GH #926) 2020-02-08 12:16:52 -05:00
Paul Götzinger
57160861bb
Compile cpu-features.c with CC instead of CXX (GH #926, PR #927) 2020-02-08 11:47:31 -05:00
Jeffrey Walton
e59e3c0d2f
Remove unneeded source files from Makefile 2019-10-23 18:36:05 -04:00
Jeffrey Walton
d75bce40ec
Add test programs for feature testing 2019-10-21 12:57:12 -04:00
Jeffrey Walton
8fcf3667ec
Whitespace check-in 2019-10-19 17:19:38 -04:00
Jeffrey Walton
31365b25e1
Update comments 2019-10-19 04:21:05 -04:00
Jeffrey Walton
5499cefb8b
Use umulh for Aarch64 multiply
This saves about 30% on the Integer multiply operations. For example, RSA 1024 encryption goes from 0.068 to 0.044 ms/op. RSA 2048 goes from 0.170 to 0.100 ms/op. We should have taken this sooner. Ugh...
2019-10-18 17:00:17 -04:00
Jeffrey Walton
418d0cad87
Add android-clean to makefile recipes 2019-10-18 01:08:59 -04:00
Jeffrey Walton
b64a920bc9
Enable CRYPTOPP_DISABLE_MIXED_ASM in config_asm.h 2019-10-17 08:46:27 -04:00
Jeffrey Walton
60eedb97ba
Fix ARM headers and Android compile (PR #896)
* Test fix ARM headers
This problem has been festering for some time. The header file includes are slightly different than the ISA options. Some platforms need an include, others don't.

* Fix cryptest-android.sh and cryptest-ios.sh

* Fix MSVC ARM32 and ARM64 compile

* Split ARM32 and ARM64 recipes in GNUmakefile
2019-10-16 21:00:45 -04:00
Jeffrey Walton
c1d91eed59
Fix hard floats on Android 2019-10-16 17:00:28 -04:00
Jeffrey Walton
8de7378919
Guard IS_ARMv8 for stray IS_ARM32 2019-10-16 07:42:48 -04:00
Jeffrey Walton
5f3c1b8cb9
Fix Android ARMv7a compile and link (#894)
* Fix Android Aarch64 compile with XTS

* Clear Shellcheck warnings

* Fix Android armv7a builds

* Update comments
2019-10-16 07:30:40 -04:00
Jeffrey Walton
ba517a6c31
Fix setenv-android.sh and cryptest-android.sh for NDK r19 (PR #893)
setenv-android.sh and cryptest-android.sh are up to date for NDK r19 again.
2019-10-15 18:05:54 -04:00
Jeffrey Walton
c331fc9bc7
Compile cpu_features.c with '-x c' to avoid compile error 2019-10-15 08:49:38 -04:00
Jeffrey Walton
47e2339b6e
Add -DCRYPTOPP_DISABLE_ASM for 'make deps' recipe
Clang needs it
2019-09-30 05:22:58 -04:00
Jeffrey Walton
1d27ad529d Move 'make deps' to bottom of Makefile 2019-09-28 05:21:32 -04:00
Jeffrey Walton
46e58df837
Add LINK_LIBRARY_PATH (GH #866) 2019-07-21 15:57:26 -04:00
Jeffrey Walton
52ad132134
Add link-library variable to Makefiles (GH #866)
This should help distros and Crypto++ test scripts
2019-07-21 02:24:06 -04:00
Jeffrey Walton
22a55bbbc5
Use wildcard for FORTIFY_SOURCE filter on TCXXFLAGS (GH #865) 2019-07-19 11:26:20 -04:00
Jeffrey Walton
417fbd719a
Fix missing if statement
Copy/paste error from the regular GNUmakefile
2019-07-19 00:16:23 -04:00
Jeffrey Walton
058a59814f
Fix TCXXFLAGS using openSUSE standard flags (GH #865) 2019-07-19 00:14:25 -04:00
Jeffrey Walton
6c995e215a Fold CRYPTOPP_VALGRIND into CRYPTOPP_COVERAGE 2019-07-05 19:10:01 -04:00
Jeffrey Walton
1650cac3f3
Update comments 2019-05-23 19:35:05 -04:00
Jeffrey Walton
cf85d768b4
Fix armv8l-unknown-linux-gnueabihf yet again 2019-05-21 18:48:13 -04:00
Jeffrey Walton
751515901b
Limit Cryptogams AES and SHA to Linux distros
The Apple assembler cannot translate the source files for iOS.
2019-05-21 05:59:58 -04:00
Jeffrey Walton
02baab2307
Enable Cryptogams AES on ARM using Clang
It looks like AES needed -mthumb for Clang. SHA must not use -mthumb under Clang due to a crash.
2019-05-21 04:23:40 -04:00
Jeffrey Walton
d38e5a954d
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.
2019-05-19 16:29:45 -04:00
Jeffrey Walton
4c9ca6b723
Add ARM SHA256 asm implementation from Cryptogams (GH #840, PR #840)
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 GHz Cortex-A7 shows Cryptograms at 17 cpb, and C++ at 30 cpb.

The integration instructions are documented at [Cryptogams SHA](https://wiki.openssl.org/index.php/Cryptogams_SHA) on the OpenSSL wiki.
2019-05-19 06:59:12 -04:00
Jeffrey Walton
1a63112faf
Add ARM SHA1 asm implementation from Cryptogams (GH #837, PR #838)
Add ARM SHA1 asm implementation from Cryptogams.

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 30% faster than C/C++ code. Testing on a 1 GHz Cortex-A7 shows Cryptograms at 16 cpb, and C++ at 23 cpb.

The integration instructions are documented at [Cryptogams SHA](https://wiki.openssl.org/index.php/Cryptogams_SHA) on the OpenSSL wiki.
2019-05-18 23:07:17 -04:00
Jeffrey Walton
83ee4e1fc0
Use test_arm_sha1.cxx for feature tests 2019-05-17 23:42:15 -04:00
Jeffrey Walton
c51f0ecbfd
Make config.h more Autoconf friendly (GH #835, PR #836) 2019-05-17 15:18:17 -04:00
Jeffrey Walton
b25b6f0892
Cleanup SIMON64 and SPECK64 flags in Makefile (GH #834) 2019-05-16 18:57:57 -04:00
Jeffrey Walton
08b9e21e5a
Use TCXXFLAGS for feature tests in GNUmakefile-cross
This mirrors PR #815, where we used CXXFLAGS instead of TCXXFLAGS for feature tests
2019-02-28 06:42:16 -05:00
Jeffrey Walton
84ab1f3c66
Remove early NEON qualification tests from Makefile (GH #812, GH #813)
The makefile tries to pre-qualify NEON (for lack of a better term), and sets IS_NEON accordingly. If IS_NEON=1, then we go on to perform test compiles to see if -mfloat-abi=X -mfpu=neon (and friends) actually work. Effectively we are performing a test to see if we should perform another test.

The IS_NEON flag predates our compile time feature tests. It was kind of helpful when we were trying to sort out if a platform and compiler options supported NEON without a compile test. That was an absolute mess and we quickly learned we needed a real compile time feature test (which we now have).

Additionally, Debian and Fedora ARMEL builds are failing because we are misdetecting NEON availability. It looks like we fail to set IS_NEON properly, so we never get into the code paths that set either (1) -mfloat-abi=X -mfpu=neon or (2) -DCRYPTOPP_DISABLE_NEON or -DCRYPTOPP_DISABLE_ASM. Later, the makefile builds a *_simd.cpp and the result is an error that NEON needs to be activated (or disabled).

This commit removes IS_NEON so we immediately move to compile time feature tests.
2019-02-27 19:35:04 -05:00
Jeffrey Walton
5b1e6fd28f
Fix Fedora 7 compile
Fedora 7 toolchain supplies upto SSE4.2
2019-02-05 01:14:35 -05:00
Jeffrey Walton
e10736482c
Add test compile to makefile 2019-02-03 11:09:10 -05:00
Jeffrey Walton
86fd3ef109
Rework makefile, avoid GNU install program
Solaris lacks a GNU compatible install program in /usr/bin and /usr/xpg4/bin. Just use cp and chmod. Cp and chmod work everywhere
2019-01-02 19:48:20 -05:00
Jeffrey Walton
2d06777747
Fix GCM build when SSSE3 not available 2018-12-29 00:56:25 -05:00
Jeffrey Walton
152ac6177c
Add Moon's curve25519 using SSE2 (GH #761)
Moon's code is very fast. In fact it is so fast it broke our benchmarks. Moon's code registers 0.00 milliseconds and 0.00 megacycles/operation.
2018-12-13 10:19:54 -05:00
Jeffrey Walton
7656ff2b49
Fix Fedora and Red Hat feature tests
They use a hardened build and include flags like -Werror=XXX and -Wp,FORTIFY_SOURCE
2018-12-05 18:35:21 -05:00
Jeffrey Walton
482151a980
Fix Aarch64 with early GCC 2018-12-04 05:49:21 -05:00
Jeffrey Walton
774454ba7c
Cleanup Disable rules for x86 2018-12-01 21:33:17 -05:00