Commit Graph

3836 Commits (f1192fd0442b5d5a76c86be8c0985c32e512d9ed)

Author SHA1 Message Date
Jeffrey Walton f1192fd044
Update comments in IterHashBase and friends
We also switched to "IsAligned<HashWordType>(input)". Using word64 was due to debug testing on Solaris (the alignment check is needed). Hard coding word64 should not have been checked in.
2018-07-21 06:51:41 -04:00
Jeffrey Walton 61f1456a5a
Disable X32 inline ASM for Tiger
See Peter Cordes comments at Issue 686
2018-07-21 06:36:15 -04:00
Jeffrey Walton d4f86d7320
Add SunCC code path to GetAlignmentOf
It looks like GetAlignmentOf was returning the "UnsignedMin(4U, sizeof(T))" for SunCC. It was causing SIGBUSes on Sparc when T=word64. OpenCSW provided access to their build farm and we were able to test "__alignof__(T)" back to an early SunCC on Solaris 9.
2018-07-21 06:29:20 -04:00
Jeffrey Walton baff390f28
Fix older Solaris and SunCC compile
Found during testing on OpenCSW compile farm on Solaris 9 (host unstable9s)
2018-07-21 06:15:40 -04:00
Jeffrey Walton aeaa4f623f
Use blockSize throughout HashMultipleBlocks 2018-07-20 20:28:07 -04:00
Jeffrey Walton 414c5c5438
Fix Tiger crash on Sparc (GH #690)
Man, Sparc does not mess around with unaligned buffers. Without -xmemalign=4i the hardware wants 8-byte aligned word64's so it can use the high performance 64-bit move or add.
Since we do not use -xmemalign we get the default behavior of either -xmemalgin=8i or -xmemalgin=8s. It shoul dnot matter to us since we removed unaligned data access at GH #682.
2018-07-20 20:12:54 -04:00
Jeffrey Walton 0c0b68a4a2
Align input buffer in HashMultipleBlocks
IteratedHashBase::Update aligns the buffer, but IteratedHashBase::HashBlock does not. It was causing a fair number of asserts to fire when the code was instrumented with alignment checks. Linux benchmarks shows the code does not run materially slower on i686 or x86_64.
2018-07-20 18:56:41 -04:00
Jeffrey Walton 365e65c2eb
Whitespace check-in 2018-07-20 13:38:55 -04:00
Jeffrey Walton ca302c952e
Fix Solaris 11/Sparc crash in SHA-384 (GH #689, GH #403)
I believe Andrew Marlow first reported it. At the time we could not get our hands on hardware to fully test things. Instead we were using -xmemalign=4i option as a band-aide to avoid running afoul of the Sparc instruction that moves 64-bits of data in one shot.
2018-07-20 13:24:04 -04:00
Jeffrey Walton 45ffb7e827
Fix crash in SHA-512 when using different compile options (GH #661)
This also helps clear a crash on Sparc due to unaligned access to an uint64_t (GH #689)
2018-07-20 13:15:29 -04:00
Jeffrey Walton 8d6b1af4cf
Update documentation 2018-07-17 11:52:34 -04:00
Jeffrey Walton d8946df8eb
Add crypto_sign_sk2pk (PR #668)
This should allow users to convert a ed25519 seret key to a public key without rolling their own code
2018-07-17 08:28:33 -04:00
Jeffrey Walton e1433536bc
Use CRYPTOPP_DISABLE_INTEL_ASM for Clang in GCM
Clang 6.0 is still broke. It cannot compile a simple "neg %rcx" using Intel syntax
2018-07-16 19:40:56 -04:00
Jeffrey Walton 076d0cd604
Remove s_clmulConstants table in GCM mode
Local scopes and loading the constants with _mm_set_epi32 saves about 0.03 cpb. It does not sound like much but it improves GMAC by about 500 MB/s. GMAC is just shy of 8 GB/s.
2018-07-16 19:04:24 -04:00
Jeffrey Walton e6fb540c4c
Allow iPhoneSimulator failures (GH #684)
We still need to figure out what to do with this.
2018-07-16 17:12:02 -04:00
Jeffrey Walton c9d53ad340
Fix "error C2719: formal parameter with requested alignment of 16 won't be aligned"
This was somewhat expected due to the Solaris knob turning.
2018-07-16 17:09:26 -04:00
Jeffrey Walton ee8c141d3c
Fix xompile on downlevel assemblers
This surfaced on Solaris with an ancient Binutils
2018-07-16 15:27:25 -04:00
Jeffrey Walton b91491da4f
Fix Solaris i386 compile of CHAM and LEA for SunStudio 12.3 and below 2018-07-16 12:21:44 -04:00
Jeffrey Walton 14dd03544e
Update cryptest-automake test script for Solaris 2018-07-16 10:53:11 -04:00
Jeffrey Walton 8197732756
Fix SunStudio 12.6 runtime crash on i386
This bug has been around since the Sun Studio 11/SunCC 5.8 days
2018-07-16 10:33:14 -04:00
Jeffrey Walton 28f079ba64
Fix SunStudio 12.3 compile on i386 2018-07-16 10:22:21 -04:00
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