Commit Graph

3025 Commits (cbfe2ac6e2d229ad339c84ee380ae8d1d718e44f)

Author SHA1 Message Date
Jeffrey Walton cbfe2ac6e2
Add Intel SHA implementation for SHACAL2 encryption
The implementation came from Jack Lloyd and the Botan team. Botan was gracious and allowed us to use the x86_encrypt_blocks function, and release it under the Crypto++ licensing terms. Also see https://github.com/randombit/botan/pull/1151/files
2017-08-16 03:47:06 -04:00
Jeffrey Walton f2a303c30b
Cut-over to Wei's wide AES encryption for ARMv8
Wei's AESNI routines use ARMV8_Enc_Block, ARMV8_Enc_4_Blocks, ARMV8_Dec_Block, ARMV8_Dec_4_Blocks. They increased performance for ECB, CTR and CBC mode. Formerly ECB mode was rinning at 2.3 cpb. After the cut-over ECB dropped to 1.1 cpb.
2017-08-15 12:11:17 -04:00
Jeffrey Walton 4a31b367f2 Sync with Upstream master 2017-08-15 08:52:01 -04:00
Jeffrey Walton 6f36c7deae
Cleared UBsan finding in Default's GenerateKeyIV
passed:  128 deflates and inflates
passed:  128 zlib decompress and compress
default.cpp:69:2: runtime error: null pointer passed as argument 2, which is declared to never be null
/usr/include/x86_64-linux-gnu/bits/string3.h:53:71: runtime error: null pointer passed as argument 2, which is declared to never be null

Information Dispersal and Secret Sharing...
2017-08-15 08:51:03 -04:00
Jeffrey Walton 092b3cb467
Backed off assert.
Its too noisy
2017-08-15 04:42:12 -04:00
Jeffrey Walton 14eef92c8c Sync with Upstream master 2017-08-15 03:15:53 -04:00
Jeffrey Walton 659b47108a
Fix Address Sanitizer findings on GCC117
GCC117 is a Aarch64/ARM64 server with AMD's ARM chip and GCC 7.10. It looks like GCC is performing some std::string optimizations that generates a finding. We did not witness the finding on other platforms, like other Aarch64 devices and x86_64.

We will need to check if taking the address of element-0 is still approved way to get the non-const pointer to the elements
2017-08-15 03:11:03 -04:00
Jeffrey Walton 0110f8397f
Add ELEMS_MAX for SecBlock (Issue 346)
Reset the mark on additional class methods
2017-08-15 03:07:30 -04:00
Jeffrey Walton 876142b1b6
Update with latest sources and reproducible build 2017-08-15 03:05:45 -04:00
Jeffrey Walton 536e8f5236
Test SecBlock for ELEMS_MAX changes (Issue 346) 2017-08-15 02:14:09 -04:00
Jeffrey Walton 40a95bde63 Sync with Upstream master 2017-08-15 01:24:43 -04:00
Jeffrey Walton cebeedfefd
Fix Address Sanitizer findings on GCC117
GCC117 is a Aarch64/ARM64 server powered by AMD's ARM chip. It runs GCC 7.10. It looks like GCC is performing some std::string optimizations that generates a finding. We have not witnessed the finding on other platforms
2017-08-15 01:15:08 -04:00
Jeffrey Walton 93f085c44c
Fix test script when running on machine with RO mount of / 2017-08-14 19:31:36 -04:00
Jeffrey Walton dcb115e043 Sync with Upstream master 2017-08-14 08:57:05 -04:00
Jeffrey Walton f8e77e0fe6
Add Apple Watch and TV to Travis testing 2017-08-14 07:54:10 -04:00
Jeffrey Walton 9e7e623399
Test iOS Watch and TV builds.
Take 8
2017-08-14 07:28:40 -04:00
Jeffrey Walton db628065bf
Test iOS Watch and TV builds.
Take 7
2017-08-14 07:23:09 -04:00
Jeffrey Walton 949cee996e
Test iOS Watch and TV builds.
Take 6
2017-08-14 06:40:09 -04:00
Jeffrey Walton a650e0d9f1
Test iOS Watch and TV builds.
Take 5
2017-08-14 06:37:10 -04:00
Jeffrey Walton 74aa5b7e12
Test iOS Watch and TV builds.
Take 4
2017-08-14 06:16:25 -04:00
Jeffrey Walton 16442d2eae
Test iOS Watch and TV builds.
Take 3
2017-08-14 05:45:22 -04:00
Jeffrey Walton 9f33d0f834
Test iOS Watch and TV builds. For real this time... 2017-08-14 04:36:17 -04:00
Jeffrey Walton a9fd2b6104
Test iOS Watch and TV builds 2017-08-14 04:34:24 -04:00
Jeffrey Walton 08191d5dff
Fix define used for SHA includes 2017-08-14 04:18:12 -04:00
Jeffrey Walton a92fc55d39
Remove duplicate test after updtream merge 2017-08-14 04:01:55 -04:00
Jeffrey Walton a25e63fcb7
Fix sources after sync with upstream 2017-08-14 03:19:20 -04:00
Jeffrey Walton c44f32d683 Sync with upstream master 2017-08-14 02:22:48 -04:00
Jeffrey Walton effa446a61
Fix test script when running on machine with RO mount of / 2017-08-14 01:48:11 -04:00
Jeffrey Walton 6a29d8c56f
Use -O1 for Asan and UBsan 2017-08-14 01:05:03 -04:00
Jeffrey Walton 2ee8e3b26d
Move free standing function into anonymous namespace
Update comments and use class constants when available
2017-08-14 00:08:55 -04:00
Jeffrey Walton 2aff92ddb6
Fix bad SHA::Transform calculation (Issue 455)
Reworked SHA class internals to align all the implementations. Formerly all hashes were software based, IterHashBase handled endian conversions, IterHashBase repeatedly called the single block SHA{N}::Transform. The rework added SHA{N}::HashMultipleBlocks, and the SHA classes attempt to always use it.

Now SHA{N}::Transform calls into SHA{N}_HashMultipleBlocks, which is a free standing function. An added wrinkle is hardware wants little endian data and software presents big endian data, so HashMultipleBlocks accepts a ByteOrder for the incoming data. Hardware based SHA{N}_HashMultipleBlocks can often perform the endian swap much easier by setting an EPI mask so it was profitable to defer to hardware when available.

The rework also removed the hacked-in pointers to implementations. The class now looks more like AES, GCM, etc.
2017-08-13 16:05:39 -04:00
Jeffrey Walton 011429583d
Fix sources after sync with upstream master 2017-08-13 07:06:19 -04:00
Jeffrey Walton e0ec92b541 Sync with Upstream master 2017-08-13 06:54:28 -04:00
Jeffrey Walton 5f441d28e5
Cleanup __m128 casts due to Clang 2017-08-13 06:53:35 -04:00
Jeffrey Walton 863bf9133c
Cleanup casts due to Clang 2017-08-13 06:32:09 -04:00
Jeffrey Walton d8e56b8250 Sync with Upstream master 2017-08-13 05:01:57 -04:00
Jeffrey Walton f02bf91ee5
Revert 95ee8975b4 and 7d21cdd54e (Issue 408)
This broke some OS X builds. We need more testing. Ugh...
2017-08-13 04:31:17 -04:00
Jeffrey Walton 95ee8975b4
Use blockSize in error message thrown 2017-08-12 20:29:33 -04:00
Jeffrey Walton 5f3a3f29e8
Sync with Upstream master 2017-08-12 19:28:59 -04:00
Jeffrey Walton 5e6e6c4eaa Sync with Upstream master 2017-08-12 19:24:00 -04:00
Jeffrey Walton 7d21cdd54e
Convert GCM to use runtime blocksize checking (Issue 408)
GCM is still only defined for 16-byte ciphers, but this is where we need to be when we add the larger polynomials
2017-08-12 16:14:29 -04:00
Jeffrey Walton 19ab62201d
Add files to Visual Studio filters 2017-08-12 00:15:09 -04:00
Jeffrey Walton 1463995c99
Add files to Visual Studio filters 2017-08-12 00:09:51 -04:00
Jeffrey Walton a84f568ee2
Add subfunc to CpuId for AVX and above 2017-08-11 22:56:01 -04:00
Jeffrey Walton f02503d08f Sync with Upstream master 2017-08-11 17:27:19 -04:00
Jeffrey Walton f5aa6f1f06
Cast enums to int for comparison 2017-08-11 17:15:13 -04:00
Jeffrey Walton 953252e44d
Move from 'static' to 'enum' for class constants
Enums don't take up space in class objects. Its should result in smaller objects and faster code
2017-08-11 17:13:15 -04:00
Jeffrey Walton 9ab233b52a
Switch from 'static const' to 'enum' for class constants
Enums do not take up space in a class. It should lead to smaller objects and faster runtimes
2017-08-11 16:09:28 -04:00
Jeffrey Walton 93a8f9e9b7
Fix compile with GCC on Solaris 2017-08-11 16:08:28 -04:00
Jeffrey Walton 5b945a5412
Update for earlier Apple compilers, like Apple Clang 6 and 8 2017-08-11 14:24:05 -04:00