Commit Graph

2962 Commits (4a6cdc34a5596f0fcb41339eacb88f0bbbb5267d)

Author SHA1 Message Date
Jeffrey Walton 4a6cdc34a5
Try to enable Travis iOS testing
Take 16
2017-08-10 21:19:29 -04:00
Jeffrey Walton c99beec2cd
Fix "error: use of undeclared identifier 'NULL'" on iOS 2017-08-10 21:18:29 -04:00
Jeffrey Walton 7cbadb43f9
Try to enable Travis iOS testing
Take 15
2017-08-10 21:11:33 -04:00
Jeffrey Walton 9df1c3b09b
Try to enable Travis iOS testing
Take 14
2017-08-10 21:07:20 -04:00
Jeffrey Walton cea2249608
Try to enable Travis iOS testing
Take 13
2017-08-10 21:01:24 -04:00
Jeffrey Walton 2d97cf8bf8
Try to enable Travis iOS testing
Take 12
2017-08-10 20:51:07 -04:00
Jeffrey Walton eae89e2af0
Try to enable Travis iOS testing
Take 11
2017-08-10 20:33:39 -04:00
Jeffrey Walton 6392bcc69d
Try to enable Travis iOS testing
Take 10
2017-08-10 20:24:15 -04:00
Jeffrey Walton b5e2980664
Try to enable Travis iOS testing
Take 8
2017-08-10 20:18:56 -04:00
Jeffrey Walton 60ec7dff59
Try to enable Travis iOS testing
Take 7
2017-08-10 20:14:18 -04:00
Jeffrey Walton c9ad2dbb51
Try to enable Travis iOS testing
Take 6
2017-08-10 20:08:10 -04:00
Jeffrey Walton d9b15e8ab7
Try to enable Travis iOS testing
Take 6
2017-08-10 20:06:19 -04:00
Jeffrey Walton 89b937bbd7
Try to enable Travis iOS testing
Take 5
2017-08-10 19:58:43 -04:00
Jeffrey Walton d79d14b3ef
Try to enable Travis iOS testing
Take 4
2017-08-10 19:55:09 -04:00
Jeffrey Walton 12064f03ee
Try to enable Travis iOS testing
Take 3
2017-08-10 19:53:09 -04:00
Jeffrey Walton bf47e175e3
Try to enable Travis iOS testing
Take 2
2017-08-10 19:50:41 -04:00
Jeffrey Walton e5d99322fd
Try to enable Travis iOS testing
Take 1
2017-08-10 14:35:41 -04:00
Jeffrey Walton 69b3a7a664
Fix compile on Solaris 11.3 under GCC and SunCC 2017-08-09 00:14:54 -04:00
Jeffrey Walton b7c7874d15
Defer on cast from wor32* to __m128i*
It appears this is optimized better, and it saves 0.1 cpb
2017-08-08 20:49:44 -04:00
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