Commit Graph

3815 Commits (bd9ca55c442b17b529f3fa04d2d6f6f6a3ccb8cd)

Author SHA1 Message Date
Jeffrey Walton bd9ca55c44
Cleanup gcm.cpp after Commit 9d954efcde 2018-07-16 09:48:35 -04:00
Jeffrey Walton 9d954efcde
Disable CLMUL again on SunStudio (GH# 188, GH #224)
We got reports that x86_64 was producing incorrect results. Also, the problem persisted in i386 builds. I don't think we can work around this issue. Oracle must fix it.
2018-07-16 09:39:01 -04:00
Jeffrey Walton d1e646a589
Fix SunStudio 12.6 compile on i386 2018-07-16 09:37:08 -04:00
Jeffrey Walton a0166d9546
Fix SunStudio 12.4 compile on Solaris 2018-07-16 04:42:52 -04:00
Jeffrey Walton eb55cc0ae5
Fix SunStudio 12.6 GCM compile on Solaris (GH #188, GH #224)
I think we have this issue somewhat sorted out. First, there is a compiler bug. Second, it seems to be triggered when function parameters mix const and non-const references. Third, to work around it, all parameters need to be non-const (as in this patch).
I'm really glad we kind of got to the bottom of things. The crash when compiling GCM has been bothering me for nearly 3 years.
2018-07-15 22:31:50 -04:00
Jeffrey Walton 017886a2ea
Fix SunStudio 12.2 compile on Solaris 2018-07-15 22:22:18 -04:00
Jeffrey Walton 339cc240a2
Fix SunStudio compile on Solaris (GH #226) 2018-07-15 19:26:15 -04:00
Jeffrey Walton 692ed2a2bb
Fix SunStudio compile on Solaris 2018-07-15 19:24:55 -04:00
Jeffrey Walton 916fe7db26
Remove unneeded code from Blake2 2018-07-15 12:59:28 -04:00
Jeffrey Walton f143534d99
Cleanup defines in sha.cpp
There's no need for extra guards with CRYPTOPP_DISABLE_SHA_ASM because relevant macros are undefined
2018-07-15 12:47:34 -04:00
Jeffrey Walton 7e7d86f6fd
Whitespace check-in 2018-07-15 11:45:48 -04:00
Jeffrey Walton 31533db421
Disable X32 for SHA (GH #686)
Thanks to Peter Cordes for the feedback
2018-07-15 11:39:41 -04:00
Jeffrey Walton 7d1eb4fc8b
Fix AppVeyor Win32 build 2018-07-15 11:31:12 -04:00
Jeffrey Walton c2a9958d9c
Make m4/ directory during testing 2018-07-15 10:13:33 -04:00
Jeffrey Walton 437b2f9b7d
Set LC_ALL=C for Darwin Autotools testing 2018-07-15 09:35:26 -04:00
Jeffrey Walton 4e3a1ea962
Add ARMv8.4 cpu feature detection support (GH #685) (#687)
This PR adds ARMv8.4 cpu feature detection support. Previously we only needed ARMv8.1 and things were much easier. For example, ARMv8.1 `__ARM_FEATURE_CRYPTO` meant PMULL, AES, SHA-1 and SHA-256 were available. ARMv8.4 `__ARM_FEATURE_CRYPTO` means PMULL, AES, SHA-1, SHA-256, SHA-512, SHA-3, SM3 and SM4 are  available. 

We still use the same pattern as before. We make something available based on compiler version and/or preprocessor macros. But this time around we had to tighten things up a bit to ensure ARMv8.4 did not cross-pollinate down into ARMv8.1.

ARMv8.4 is largely untested at the moment. There is no hardware in the field and CI lacks QEMU with the relevant patches/support. We will probably have to revisit some of this stuff in the future.

Since this update applies to ARM gadgets we took the time to expand Android and iOS testing on Travis. Travis now tests more platforms, and includes Autotools and CMake builds, too.
2018-07-15 08:35:14 -04:00
Jeffrey Walton 2600f6dcc2
Clear unused variable warning 2018-07-14 13:26:49 -04:00
Jeffrey Walton 5460f14857
Clear unused variable warning 2018-07-14 13:01:48 -04:00
Jeffrey Walton 7cc6531dd2
Clear unused variable warning 2018-07-14 12:59:42 -04:00
Jeffrey Walton 7a67e43b27
Fix Apple feature detection (GH #685) 2018-07-14 08:40:06 -04:00
Jeffrey Walton d11a7b3436
Add ARMv8 CPU feature queries (GH #685)
CPU feature probes are still outstanding. They are going to be trickier because if CRYPTOPP_XXX_FEATURE_AVAILABLE
2018-07-14 08:20:16 -04:00
Jeffrey Walton 25abe71e69
Fix failed compile with Clang 2018-07-14 04:48:26 -04:00
Jeffrey Walton 28e20d6e5f
Fix "Error: symbol SHA512_Round is already defined" (GH #684) 2018-07-13 17:05:14 -04:00
Jeffrey Walton 26ae1fb7e9
Fix ARM compile for sm4-simd.cpp 2018-07-13 10:39:08 -04:00
Jeffrey Walton 380829284c
Update documentation 2018-07-13 09:54:06 -04:00
Jeffrey Walton 678bdb1735
Add AES-NI accelerated SM4 encryption (GH #540)
Thanks to Markku-Juhani Olavi Saarinen for the code. Also see https://github.com/mjosaarinen/sm4ni
2018-07-13 08:48:43 -04:00
Jeffrey Walton 3c21233440
Add AES-NI accelerated SM4 encryption (GH #540)
Thanks to Markku-Juhani Olavi Saarinen for the code. Also see https://github.com/mjosaarinen/sm4ni
2018-07-13 08:33:13 -04:00
Jeffrey Walton 2f71e4d7d9
Fix header include 2018-07-13 05:48:03 -04:00
Jeffrey Walton 90e7b85814
Update documentation 2018-07-12 12:04:37 -04:00
Jeffrey Walton 40d70375a9
Increase use of ptrdiff_t when performing pointer math 2018-07-12 09:48:46 -04:00
Jeffrey Walton ed143608a8 Revert "Increase use of ptrdiff_t when performing pointer math"
This reverts commit bbf9a109f2. It did not fix A-32. Something got crossed in my test case.
2018-07-12 09:43:18 -04:00
Jeffrey Walton 25179e00d3
Fix PtrByteDiff cast
A quick testing pass that loaded the code with asserts caused a compile failure
2018-07-12 09:37:43 -04:00
Jeffrey Walton bbf9a109f2
Increase use of ptrdiff_t when performing pointer math
This fixes the incorrect result with CFB mode on A-32 in CFB_CipherTemplate<BASE>::ProcessData
2018-07-12 08:29:46 -04:00
Jeffrey Walton 6434ec597d
Update comments 2018-07-12 07:59:05 -04:00
Jeffrey Walton e580ed588a
Disable same buffer for in and out on ARM A-32 (GH #683) 2018-07-12 07:05:18 -04:00
Jeffrey Walton 7eb0535a98
Call Deflator::IsolatedInitialize during Gzip init (GH #660) 2018-07-11 17:10:32 -04:00
Jeffrey Walton 9b4476ef7b
Update symbol script for Crypto++ 7.x 2018-07-11 16:16:32 -04:00
Jeffrey Walton d094bc61cd
Update comments 2018-07-11 15:12:53 -04:00
Jeffrey Walton b3fe24b8b5
Remove CRYPTOPP_ALLOW_UNALIGNED_DATA_ACCESS support (GH #682)
We were able to gut CRYPTOPP_ALLOW_UNALIGNED_DATA_ACCESS for everything except Rijndael. Rijndael uses unaligned accesses on x86 to harden against timing attacks.
There's a little more to CRYPTOPP_ALLOW_UNALIGNED_DATA_ACCESS and Rijndael. If we remove unaligned access then AliasedWithTable hangs in an endless loop on non-AESNI machines. So care must be taken when trying to remove the vestige from Rijndael.
2018-07-11 11:40:25 -04:00
Jeffrey Walton 1e77a72ed6
Disable Cryptogams AES under Clang
What a surprise... Clang pretends to be GCC with __GNUC__ but fails to consume the source file
2018-07-11 09:19:11 -04:00
Jeffrey Walton 3ff7d7f028
Add ARM AES asm implementation from Cryptogams (GH #683) 2018-07-11 06:59:44 -04:00
Jeffrey Walton bdac2de36e
Increase use of ptrdiff_t when performing pointer math 2018-07-10 17:41:23 -04:00
Jeffrey Walton 1836a7feb4
Cleanup datatest.cpp
Switch to non-blocking rngs for Linux and Windows
2018-07-10 17:34:55 -04:00
Jeffrey Walton 004d213e29
Increase use of ptrdiff_t when performing pointer math 2018-07-10 17:31:01 -04:00
Jeffrey Walton 961e9b483c Revert "Clear conversion warning"
This reverts commit 9748c3cf3e. It broke Windows.
2018-07-10 17:18:11 -04:00
Jeffrey Walton a2ca2cfc0f
Use OS rng as alternate test generator 2018-07-10 17:08:13 -04:00
Jeffrey Walton 722d3e38c1
Avoid cast in PtrDiff
ptrdiff_t is the return type
2018-07-10 11:55:50 -04:00
Jeffrey Walton 9748c3cf3e
Clear conversion warning 2018-07-10 11:54:13 -04:00
Jeffrey Walton 45fcd47c07
Clear conversion warning 2018-07-10 11:37:21 -04:00
Jeffrey Walton 3b6872a8cd
Avoid cast in PtrDiff
ptrdiff_t is the return type
2018-07-10 11:36:48 -04:00