Commit Graph

3025 Commits (f3c04dbcb7cfe0122fa8158cd6ed8c9942cd44b9)

Author SHA1 Message Date
Jeffrey Walton f3c04dbcb7
Remove CMake testing support (GH #506)
CMake can now be found at http://www.cryptopp.com/wiki/CMake. The Cmake project files are now maintianed by the community.
2017-09-16 21:23:35 -04:00
Jeffrey Walton 913a9e60d3
Remove CMake from library sources (GH #506)
CMake can now be found at http://www.cryptopp.com/wiki/CMake. The Cmake project files are now maintianed by the community.
2017-09-16 21:09:40 -04:00
Jeffrey Walton 1c740b0a09
Add sunset message to CMakeList.txt file
The commit also attempts to avoid the shell command for Windows machines.
If no one has patches to offer for the outstanding CMake bugs, then this is the version that will be moved to the Wiki Patch Page. The community will have to tend to the outstanding bugs when someone with domain experience can work them
2017-09-16 18:33:07 -04:00
Jeffrey Walton da0dc66952
Route Borland/Embarcadero into MS inline ASM code for CPUID
The inline ASM code now uses local variables to save the EAX-EDX registers, and then copies the locals into the function parameters. It side steps problems with calling conventions
2017-09-16 18:03:24 -04:00
Jeffrey Walton 7464cbba51
Update README to sync with Crypto++ website
* Switch from cryptolounge.com to Crypto++ wiki
* Add latest algorithms
2017-09-16 16:30:32 -04:00
Jeffrey Walton 30d519c0bc
Use -O3 for IBM XL C/C++ (GH #502)
We held back XL C/C++ due to warnings and self test failures. Since clearing Issue 502, we are OK for -O3 so we can live with the warnings.
2017-09-16 08:22:25 -04:00
Jeffrey Walton fc0867827e
Fix TEA and XTE hand with IBM XL C/C++ compiler (GH #503)
It looks like Sun compilers had problems with the loop in the past, too. The Sun workarounds did not help with XL C/C++, however.
2017-09-16 08:20:35 -04:00
Jeffrey Walton 4670e3d5bc Revert "Use -O3 for IBM XL C/C++ (GH #502)"
This reverts commit aa348abd15. It caused a hang in the TEA algorithm. Also see GH #503.
2017-09-16 05:55:37 -04:00
Jeffrey Walton aa348abd15
Use -O3 for IBM XL C/C++ (GH #502)
We held back XL C/C++ due to warnings and self test failures. Since clearing Issue 502, we are OK for -O3 so we can live with the warnings.
2017-09-16 02:19:06 -04:00
Jeffrey Walton 205ebe0871
Add missing newline to IA-32 config output
Avoid flushing stream for config line items
Use memcpy in std:: namespace
2017-09-16 01:36:45 -04:00
Jeffrey Walton 2814842b97
Switch to CRYPTOPP_CONSTANT for cpu flags 2017-09-16 01:21:14 -04:00
Jeffrey Walton 5296e087ad
Fix func/subfunc parameter names (GH #502) 2017-09-16 00:19:14 -04:00
Jeffrey Walton 7bdb62b336
Fix bad SHA152 hash under IBM XL C/C++ compiler (GH #502) 2017-09-15 18:33:05 -04:00
Jeffrey Walton b079803856
Fix compile under Embarcadero (GH #498)
[bcc32c Error] blake2.cpp(49): 'alignas' must be specified on definition if it is specified on any declaration
2017-09-15 12:43:18 -04:00
Jeffrey Walton 173a7a8025
Fix compile under Embarcadero (GH #498)
[bcc32 Error] cpu.cpp (131): E2211 Inline assembly not allowed in inline and template functions
2017-09-15 12:42:50 -04:00
Jeffrey Walton adea69ab68
Avoid increment during stores of 6x blocks
This provides another 0.1 cpb with GCC
2017-09-14 21:06:44 -04:00
Jeffrey Walton 25efb7a140
Use 6x blocks for ARMv8 AES rather than 4x
We gain 0.1 to 0.3 cpb, depending on the mode
2017-09-14 20:32:06 -04:00
Jeffrey Walton 51752cb91a
Fix "X causes a section type conflict with Y" for GCC on AIX (GH #499)
We have no idea what caused the issue or why it fixed it
2017-09-14 17:45:55 -04:00
Jeffrey Walton 58890ff053
Use 6x blocks for Power8 AES rather than 4x
Perforamnce increased for all modes when performing 6x vs 4x. 8x and 12x performed worse.

Here are the numbers:
4x Blocks:

<TR><TH>AES/CTR (128-bit key)<TD>1563<TD>2.1<TD>0.409<TD>1392
<TR><TH>AES/CTR (192-bit key)<TD>1403<TD>2.3<TD>0.450<TD>1529
<TR><TH>AES/CTR (256-bit key)<TD>1280<TD>2.5<TD>0.482<TD>1639
<TR><TH>AES/CBC (128-bit key)<TD>582<TD>5.6<TD>0.359<TD>1222
<TR><TH>AES/CBC (192-bit key)<TD>517<TD>6.3<TD>0.394<TD>1339
<TR><TH>AES/CBC (256-bit key)<TD>474<TD>6.8<TD>0.432<TD>1469
<TR><TH>AES/OFB (128-bit key)<TD>533<TD>6.1<TD>0.402<TD>1368
<TR><TH>AES/CFB (128-bit key)<TD>563<TD>5.8<TD>0.461<TD>1568
<TR><TH>AES/ECB (128-bit key)<TD>1829<TD>1.8<TD>0.240<TD>817

6x Blocks:

<TR><TH>AES/CTR (128-bit key)<TD>1750<TD>1.7<TD>0.406<TD>1300
<TR><TH>AES/CTR (192-bit key)<TD>1638<TD>1.9<TD>0.447<TD>1432
<TR><TH>AES/CTR (256-bit key)<TD>1528<TD>2.0<TD>0.482<TD>1541
<TR><TH>AES/CBC (128-bit key)<TD>582<TD>5.2<TD>0.358<TD>1145
<TR><TH>AES/CBC (192-bit key)<TD>517<TD>5.9<TD>0.394<TD>1260
<TR><TH>AES/CBC (256-bit key)<TD>474<TD>6.4<TD>0.431<TD>1379
<TR><TH>AES/OFB (128-bit key)<TD>533<TD>5.7<TD>0.400<TD>1281
<TR><TH>AES/CFB (128-bit key)<TD>563<TD>5.4<TD>0.461<TD>1476
<TR><TH>AES/ECB (128-bit key)<TD>1950<TD>1.6<TD>0.238<TD>763
2017-09-14 16:07:21 -04:00
Jeffrey Walton 08e4ee422e
Avoid increment during stores of 4x blocks
This provides another 0.1 cpb with GCC
2017-09-14 15:12:07 -04:00
Jeffrey Walton ddeae859d0
Use vec_xl_be and vec_xst_be for IBM XL C/C++ compiler 2017-09-14 13:27:49 -04:00
Jeffrey Walton 5289915d72
Fix compiler crash in ppc-simd.cpp
I think this is https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82112
2017-09-14 01:01:00 -04:00
Jeffrey Walton 63a0af4efa
Fix endianess for s_one on ARM big-endian 2017-09-13 22:52:29 -04:00
Jeffrey Walton 8e52ce6dd2
Load correct value fo 1 under ARM big endian 2017-09-13 21:42:15 -04:00
Jeffrey Walton c22507e38b
Clear unused variable warnings under Clang 2017-09-13 21:37:55 -04:00
Jeffrey Walton e891347212
Clear TODO items for setenv-android.sh for 6.0 (GH #491) 2017-09-13 19:37:48 -04:00
Jeffrey Walton 1c41da35bc
Use AOSP_CPU_OBJ instead of cpu-features.o 2017-09-13 18:58:07 -04:00
Jeffrey Walton 4c6a866a8d
Remove debug info statement from makefile 2017-09-13 18:51:45 -04:00
Jeffrey Walton 8d98417306
Add Aarch64 specific defines to Android cross-compile
Move <arm_acle.h> logic into "sonfig.h". Detecting when we can/should include <arm_acle.h> is proving to be troublesome
2017-09-13 17:16:57 -04:00
Jeffrey Walton 40859a80da
Improve detection of ANDROID_NDK_ROOT
We were searching for R10 NDK's, but Android is at R15 in 2017
2017-09-13 17:00:52 -04:00
Jeffrey Walton fca8adc549
Fix CMAC 256-bit polynomial
Also see GH #423
2017-09-13 08:41:39 -04:00
Jeffrey Walton 172ab40874
Fix missing closing paren for Android Aarch64 (GH #491) 2017-09-13 07:32:08 -04:00
Jeffrey Walton 6e1a07025c
Build Android cpu-features from sources (GH #491)
Thanks to Deadpikle for suggesting the strategy
2017-09-13 07:16:41 -04:00
Jeffrey Walton fcee76594c
Make armv7a-neon the default in 2017 with NDK R15 2017-09-13 05:22:19 -04:00
Jeffrey Walton b255bf26ec
Fix missing cpu-features.h for Android 2017-09-13 04:18:04 -04:00
Jeffrey Walton 2375e87a5c
Fix unterminated close paren 2017-09-13 04:09:44 -04:00
Jeffrey Walton 397ccd7e49
remove commented code for Power8 2017-09-13 03:59:25 -04:00
Jeffrey Walton 6d459afa15 Revert "Bump Visual Studio version number for checked iterators (GH #496)"
This reverts commit 3b6e17b1. The version in Master was correct. The version the OP was using was incorrect.
2017-09-13 02:03:35 -04:00
Jeffrey Walton 3b6e17b1b4
Bump Visual Studio version number for checked iterators (GH #496) 2017-09-13 00:30:57 -04:00
Jeffrey Walton 502fdc61c9
Add -msse2 to i586 build (Issue 494) 2017-09-12 21:23:23 -04:00
Jeffrey Walton 2b24f5b9fe
VectorLoadAligned → VectorLoadKey
Add comments for the Load and Store functions
2017-09-12 20:38:58 -04:00
Jeffrey Walton 5659acb704
Cleanup vector casts 2017-09-12 19:44:34 -04:00
Jeffrey Walton 6899d3f8bb
Add AdvancedProcessBlocks for Power8
This increases performance to about 1.6 cpb. We are about 0.5 cpb behind Botan, and about 1.0 cpb behind OpenSSL. However, it beats the snot out of C/C++, which runs at 20 to 30 cpb
2017-09-12 18:15:55 -04:00
Jeffrey Walton 2ebd30d43c
Remove -mvsx option from Linux Power8 builds
This option is not needed
2017-09-12 18:10:07 -04:00
Jeffrey Walton b090e5f69f
Add Power8 AES decryption 2017-09-12 05:53:17 -04:00
Jeffrey Walton cfb63decec
Guard probe functions
This broke Aarch64
2017-09-12 05:49:38 -04:00
Jeffrey Walton d748d4cfbe
Update header guards for x86 2017-09-12 05:39:33 -04:00
Jeffrey Walton 17bf824790
Guard <arm_acle.h> include for GCC 4.8
Use system includes for <arm_neon.h> and <arm_acle.h>
2017-09-12 05:29:51 -04:00
Jeffrey Walton 81a272b046
Update comments 2017-09-12 00:30:48 -04:00
Jeffrey Walton 7fb34e9b08
Add Power8 AES encryption
This is the forward direction on encryption only.  Crypto++ uses the "Equivalent Inverse Cipher" (FIPS-197, Section 5.3.5, p.23), and it is not compatible with IBM hardware. The library library will need to re-work the decryption key scheduling routines. (We may be able to work around it another way, but I have not investigated it).
2017-09-11 22:52:22 -04:00