Commit Graph

2943 Commits (0b8d6465bdd20b128af9129807f8cd14153a95c4)

Author SHA1 Message Date
Jeffrey Walton 0b8d6465bd
Use consistent naming of <class>_<inner class>_<func>_<arch> 2017-08-08 19:10:56 -04:00
Jeffrey Walton e797418fbf
Fix Visual Studio 2017 MSC version number 2017-08-08 06:54:57 -04:00
Jeffrey Walton 6590a928ce
Add Android ARMv8 guards 2017-08-07 21:04:23 -04:00
Jeffrey Walton b4172f3dd0 Sync with Upstream master 2017-08-07 19:05:01 -04:00
Jeffrey Walton 24bc2b8567
Add HMAC(SHA256) benchmark 2017-08-07 19:04:14 -04:00
Jeffrey Walton c45c262d2c
Update Android defines 2017-08-07 13:43:40 -04:00
Jeffrey Walton a8cbfc52fc
__android__ → __ANDROID__
Also see https://stackoverflow.com/q/6374523/608639
2017-08-07 12:18:39 -04:00
Jeffrey Walton 42d91b76fc
Fix compile under Clang 3.5 due to use of SSE4.1
Both Apple and LLVM Clang want -msse4.2 even when only SSE4.1 is used. Sidestep it because we don't know how it will affect some of the lower end Atoms.

84877:/usr/include/clang/3.5.0/include/nmmintrin.h:28:2: error: "SSE4.2 instruction set not enabled"
84878:#error "SSE4.2 instruction set not enabled"
84880:rijndael-simd.cpp:466:26: error: use of undeclared identifier '_mm_extract_epi32'; did you mean '_mm_extract_epi16'?
84887:rijndael-simd.cpp:480:11: error: use of undeclared identifier '_mm_insert_epi32'; did you mean '_mm_insert_epi16'?
84894:rijndael-simd.cpp:485:11: error: use of undeclared identifier '_mm_insert_epi32'; did you mean '_mm_insert_epi16'?
...
2017-08-07 12:03:17 -04:00
Jeffrey Walton a8b3327265
Add Android CPU feature detection for NEON
Also see https://developer.android.com/ndk/guides/cpu-features.html
2017-08-07 11:33:12 -04:00
Jeffrey Walton d95a38a9fc
Add Android CPU feature detection code
Also see https://developer.android.com/ndk/guides/cpu-features.html
2017-08-07 11:20:14 -04:00
Jeffrey Walton a04dda56fa
Separate Aarch32 and Aarch64 guards
Also see https://sourceware.org/ml/libc-help/2017-08/msg00012.html
2017-08-07 10:37:02 -04:00
Jeffrey Walton 9161443f6d Sync with Upstream master 2017-08-07 09:47:58 -04:00
Jeffrey Walton 58b731c645
Fix "Integer constant is too large for 'long' type"
kalyna.cpp:432: error: integer constant is too large for 'long' type
kalyna.cpp:509: error: integer constant is too large for 'long' type
kalyna.cpp:608: error: integer constant is too large for 'long' type
kalyna.cpp:713: error: integer constant is too large for 'long' type
kalyna.cpp:833: error: integer constant is too large for 'long' type
...
2017-08-07 09:46:33 -04:00
Jeffrey Walton 4ebf9b915e
Add ARM specific guard for Linux
Update AppVeyor config to checkout 3 deep to avoid "fatal: reference is not a tree: 89ccfad2d08..."
2017-08-07 08:22:13 -04:00
Jeffrey Walton 2ac6c6dd20
Add Aarch32 and Aarch64 specific guards for Linux 2017-08-07 07:58:16 -04:00
Jeffrey Walton 89ccfad2d0
Use getauxval on Linux for features
getauxval() is the recommended way to determine features on Linux. Its likely less expensive than CPU probing for SIGILLs. We gave up portability, but some gained stability
2017-08-07 07:37:08 -04:00
Jeffrey Walton 08cb017836
Update comments
Provide CriticalBlue with recognition of their helpful work with mbedTLS. Thanks to Johannes Schneiders, Skip Hovsmith and Barry O'Rourke
2017-08-07 05:30:15 -04:00
Jeffrey Walton 6478d6db87
Unroll ARMv8 AES encryption and decyption loops
Unrolling gains about 0.3 to 0.5 cpb
2017-08-07 01:32:25 -04:00
Jeffrey Walton 9e5fbbe2e0
Clear C4267: 'argument': conversion from 'size_t' to 'unsigned int'
rijndael-simd.cpp(318): warning C4267: 'argument': conversion from 'size_t' to 'unsigned int', possible loss of data [C:\projects\cryptopp\cryptlib.vcxproj]
  rijndael-simd.cpp(376): note: see reference to function template instantiation 'size_t CryptoPP::Rijndael_AdvancedProcessBlocks_AESNI<void(__cdecl *)(__m128i &,const __m128i *,unsigned int),void(__cdecl *)(__m128i &,__m128i &,__m128i &,__m128i &,const __m128i *,unsigned int)>(F1,F4,const __m128i *,::size_t,const CryptoPP::byte *,const CryptoPP::byte *,CryptoPP::byte *,::size_t,CryptoPP::word32)' being compiled
          with
          [
              F1=void (__cdecl *)(__m128i &,const __m128i *,unsigned int),
              F4=void (__cdecl *)(__m128i &,__m128i &,__m128i &,__m128i &,const __m128i *,unsigned int)
          ]
rijndael-simd.cpp(355): warning C4267: 'argument': conversion from 'size_t' to 'unsigned int', possible loss of data
2017-08-07 00:49:18 -04:00
Jeffrey Walton d402099e81
Update self tests for ARMv8a AES 2017-08-07 00:27:27 -04:00
Jeffrey Walton 1459042324
Fix ARMv8 AES Decryption
AES ECB and CTR mode encryption is running about 2.8 to 3.0 cpb.
Hallelujah, its a wrap.
2017-08-06 22:57:02 -04:00
Jeffrey Walton 701ec3aa1f
Fix ARMv8 AES Encryption
ARMv8 AES decryption is not working at the moment. This check-in will allow us to test the current changes more widespread. We expected AES decryption failures only
2017-08-06 21:25:36 -04:00
Jeffrey Walton fd97121e8a
Fix VMULL_P64 and VMULL_HIGH_P64 on GCC117
GCC117 uses GCC 4.8, and it revealed a missing preprocessor code path
2017-08-06 06:04:01 -04:00
Jeffrey Walton 679000104c
Fix ARMv8 compile for AES 2017-08-05 20:52:02 -04:00
Jeffrey Walton 8b116a78b8 Sync with Upstream master 2017-08-05 20:51:25 -04:00
Jeffrey Walton 086ad70feb
Update documentation 2017-08-05 07:53:52 -04:00
Jeffrey Walton 1f3b1356c0 Sync with Upstream master 2017-08-05 06:54:14 -04:00
Jeffrey Walton 0357e508e4
Make nonce a class member rather than temporary
Effectively this creates a workspace for encrypting the nonce. The zeroizer will run when the class is destroyed, rather than each invocation of UncheckedSetKey.
Performance went from 3.6 cpb as a temporary to 2.9 cpb as a class member
2017-08-05 06:05:57 -04:00
Jeffrey Walton ee54177447 Sync with Upstream master 2017-08-05 05:36:26 -04:00
Jeffrey Walton bf35d58ad7
Cleanup selft tests 2017-08-05 05:32:43 -04:00
Jeffrey Walton f22b1675fc
Cleanup selft tests 2017-08-05 05:31:00 -04:00
Jeffrey Walton b9c97f9fd2
Fix define in sha.h from Upstream merge 2017-08-05 01:42:57 -04:00
Jeffrey Walton bff75a6812 Sync with Upstream master 2017-08-05 01:33:43 -04:00
Jeffrey Walton 326700f6ec
Fix library version numbers
They were inadvertently checked-in with the SHA doc updates
2017-08-05 01:08:25 -04:00
Jeffrey Walton d779462a38
Update documentation 2017-08-05 01:05:58 -04:00
Jeffrey Walton 8db50f25ad
Update documentation 2017-08-05 01:02:12 -04:00
Jeffrey Walton 455159e613 Sync with Upstream master 2017-08-05 00:27:21 -04:00
Jeffrey Walton 20def29d33
Use MOVDQU for SSE2 in static transform (Issue 455)
Updated documentation
2017-08-05 00:24:02 -04:00
Jeffrey Walton cd86151448 Sync with Upstream master 2017-08-04 23:37:33 -04:00
Jeffrey Walton a2cab93117
Add hash static transform test (Issue 455) 2017-08-04 23:35:38 -04:00
Jeffrey Walton 73eb4b0b23
Sync with Upstream master 2017-08-04 19:20:15 -04:00
Jeffrey Walton 0fcfd38309 Sync with Upstream master 2017-08-04 19:19:25 -04:00
Jeffrey Walton 662cccce3b
Switch to reinterpret_cast in MDC 2017-08-04 19:11:53 -04:00
Jeffrey Walton 3fe6709ae7
Cleanup comments in AppVeyor config file 2017-08-04 19:11:16 -04:00
Jeffrey Walton 18a05659f3
Switch from -O2 to -O3 in the makefile (Issue 454)
Also see https://groups.google.com/d/msg/cryptopp-users/AEiGyjq15tw/GBAyDA6fBgAJ
2017-08-04 18:31:52 -04:00
Jeffrey Walton 4d82aed7d7 Sync with Upstream master 2017-08-04 17:17:44 -04:00
Jeffrey Walton 860a9f4266
Use non-0 seed OldRandomPool test
This should tickle endianness issues
2017-08-04 16:57:45 -04:00
Jeffrey Walton bad13fee0e Sync with Upstream master 2017-08-04 16:21:24 -04:00
Jeffrey Walton 24db613a81
Switch to ConditionalByteReverse. Removed mutuable hash member 2017-08-04 16:02:32 -04:00
Jeffrey Walton d451329736 Sync with Upstream master 2017-08-04 07:30:19 -04:00