Commit Graph

3403 Commits (befd04312d8bdf2363921bf5ccb1393f5852a9a3)

Author SHA1 Message Date
Jeffrey Walton f5784c1634
Update comments 2017-11-22 17:35:59 -05:00
Jeffrey Walton f2bc3cd0ca
Add speck-simd.cpp to project files (GH #538, #539)
Cleaned up whitespace
2017-11-22 08:45:38 -05:00
Jeffrey Walton e7fee716d6
Add SSSE3 intrinsics for SPECK-128 (GH #538)
Performance increased by about 100% on a 3.1 GHz Core i5 Skylake. Throughput went from about 7.3 cpb to about 3.5 cpb. Not bad for a software-based implementation of a block cipher
2017-11-22 08:01:41 -05:00
Jeffrey Walton 39697d92bf
Add SSSE3 intrinsics for SPECK-128 (GH #538)
Performance increased by about 100% on a 3.1 GHz Core i5 Skylake. Throughput went from about 7.3 cpb to about 3.5 cpb. Not bad for a software-based implementation of a block cipher
2017-11-22 07:57:39 -05:00
Jeffrey Walton c447918815
Add additional test vectors (GH #538, #539)
These were generated by Crypto++ using the C/C++ implementation, which operates on 1 block at a time. They are consumed by the SSSE3 implementation, which operates on 4 blocks at a time. Its not ideal, but it will have to do.
2017-11-22 07:38:55 -05:00
Jeffrey Walton 900dc5d1a6
Rework UncheckedSetKey to rearrange words in ExpandKey (GH #539) 2017-11-21 17:43:43 -05:00
Jeffrey Walton b4cecfef95
Rework UncheckedSetKey to rearrange words in ExpandKey (GH #538) 2017-11-21 17:43:28 -05:00
Jeffrey Walton 6992de66ea
Fix URL in documentation 2017-11-21 16:13:23 -05:00
Jeffrey Walton 3f7eb03eaf
Update documentation 2017-11-21 15:29:41 -05:00
Jeffrey Walton 6b7a7b1ca6
Update documentation 2017-11-21 15:16:53 -05:00
Jeffrey Walton 14e33af525
Update documentation 2017-11-21 08:32:58 -05:00
Jeffrey Walton 8cc76597c6
Fix AlgorithmName() for 128-bit block SIMON and SPECK 2017-11-21 06:48:37 -05:00
Jeffrey Walton c14e054ed8
Fix AlgorithmName() for 128-bit block SIMON and SPECK 2017-11-21 06:40:02 -05:00
Jeffrey Walton 0fab2a188f
Update documentation 2017-11-21 05:58:11 -05:00
Jeffrey Walton 79273a0f4d
Whitespace and spelling check-in 2017-11-21 05:54:15 -05:00
Jeffrey Walton 3970a066e3
Add SIMON-64 and SIMON-128 lightweight block ciphers (GH #539) 2017-11-21 04:58:51 -05:00
Jeffrey Walton 5007c13fbd
Switch to size_t for loop control 2017-11-21 04:55:41 -05:00
Jeffrey Walton 78922e9c85
Remove unneeded include 2017-11-21 03:01:23 -05:00
Jeffrey Walton 0dcec5a6d4
Clear unused variable warning for MSVC 2017-11-20 23:53:17 -05:00
Jeffrey Walton c7760ac4e9
Use SPECK_ExpandKey instead of SPECK_RoundKeys
The reference implementation uses ExpandKey
2017-11-20 23:21:15 -05:00
Jeffrey Walton fdd89d1bd5
Add speck.txt to Filelist
This should have occurred at Commit b9fc470bc7. At least we remembered to include speck.h and speck.cpp...
2017-11-20 20:47:30 -05:00
Jeffrey Walton 6cc89a983d
Update documentation 2017-11-20 20:03:39 -05:00
Jeffrey Walton 027a1a3d8c
Fix AES detection on AIX and Power8
This got knocked loose when adding Autotools support
2017-11-20 19:50:07 -05:00
Jeffrey Walton f6f5583e63
Add additional SPECK test vectors (GH #538)
These were generated by modifying the reference implementation
2017-11-20 11:27:01 -05:00
Jeffrey Walton 4b3560baef
Update documentation
Whitespace check-in
2017-11-20 08:33:33 -05:00
Jeffrey Walton 93fb412215
Add Visual Studio filter for SPECK test vectors (GH #538) 2017-11-20 07:07:11 -05:00
Jeffrey Walton b9fc470bc7
Add SPECK-64 and SPECK-128 lightweight block ciphers (GH #538) 2017-11-20 06:30:21 -05:00
Jeffrey Walton 32154a150f
Clear GCC pedantic warnings (GH #537) 2017-11-19 21:41:13 -05:00
Jeffrey Walton 23d95e803d
Provide virtual destructor for Threefish_Base 2017-11-19 01:39:47 -05:00
Jeffrey Walton 63e53e845e
Reword Threefish inheritance hierarchy
Threefish_Base does not need to inherit from Threefish_Info
2017-11-18 21:27:02 -05:00
Jeffrey Walton ce62862db8
Update documentation 2017-11-18 19:51:45 -05:00
Jeffrey Walton 5f9b2b2a85
Fix algorithm names for Threefish (GH #535)
Algorithm name was returning " Threefish-32(32)" instead of "Threefish-256(256)"
2017-11-18 14:21:10 -05:00
Jeffrey Walton 7f7c848515
Update documentation 2017-11-17 19:48:40 -05:00
Jeffrey Walton b9bd51f7a6
Remove variable block size for Threefish (GH #535) 2017-11-17 19:15:14 -05:00
Jeffrey Walton dbd79a1e49
Fix GCC inline asm register constraint for SSE register
Also see https://gcc.gnu.org/onlinedocs/gcc/Machine-Constraints.html
2017-11-17 01:01:12 -05:00
Jeffrey Walton 3ed6ed39fa
Fix sse-simd.cpp for 32-bit MSVC compiles 2017-11-17 00:17:46 -05:00
Jeffrey Walton 7f7131dc55
Fix GCM_Xor16_SSE2 for 32-bit MSVC compiles 2017-11-16 23:07:30 -05:00
Jeffrey Walton a5bf962681
Fix target misdetection on OS X with '-arch i386'
This tested OK on Linux OS X, Solaris and Windows. It may break things under IBM XL C/C++. We will cross that bridge when we get to it.
2017-11-16 19:37:29 -05:00
Jeffrey Walton 8734cfaa07
Add sse-simd.cpp to nmake file and vcxproj filters 2017-11-16 15:29:24 -05:00
Jeffrey Walton bd41c3d5dd
Remove SSE2 from cpu.cpp, add sse-simd.cpp
We need to ensure SSE2 does not cross pollinate into other CPU functions since SSE2 is greater than the minimum arch. The minimum arch is i586/i686, and both lack SSE2 instructions
2017-11-16 15:11:51 -05:00
Jeffrey Walton 241ff3065e
Update documentation 2017-11-16 13:36:43 -05:00
Jeffrey Walton 3c537f3e02
Remove master-merge script
We don't use branches for development because they pollute the logs on Master
2017-11-16 12:55:38 -05:00
Jeffrey Walton 156fedea7f Revert "Remove master-merge script"
This reverts commit d3dc091. A version number change used to build the docs cross-pollinated into the deletion of the script.
2017-11-16 12:53:33 -05:00
Jeffrey Walton d3dc09120b
Remove master-merge script
We don't use branches for development because they pollute the logs on Master
2017-11-16 12:51:33 -05:00
Jeffrey Walton 8b52a03d08
Fix SunCC 12.2 compiler crash with GCM_Xor16_SSE2
SunCC 12.3 through 12.5 still cannot handle CLMUL, though. It would be nice if Sun fixed the regression.
2017-11-16 02:38:53 -05:00
Jeffrey Walton 6f83a4fb7d
Switch to intrinsic operation instead of casts for GCM SSE2 XOR's 2017-11-15 23:05:30 -05:00
Jeffrey Walton c49b6d4d71
Cleanup comments and old code artifacts 2017-11-15 21:11:42 -05:00
Jeffrey Walton e8bed05b7d
Use SSE4.1 instead of SSE4.2 for BLAKE2
BLAKE2 requires SSE4.1, no SSE4.2. This change should have been made when we split SSE4 into .1 and .2, but we needed more OS X and LLVM testing
2017-11-15 20:08:06 -05:00
Jeffrey Walton a3784a3ac5
Update Power8 support for Autotools 2017-11-14 20:54:43 -05:00
Jeffrey Walton 8fee0bb13f
Fix Valgrind detection in cryptest.sh 2017-11-14 08:24:13 -05:00