Commit Graph

3212 Commits

Author SHA1 Message Date
Jeffrey Walton
eae5f40c19
Add missing test vectors to file list 2017-11-23 11:52:07 -05:00
Jeffrey Walton
2c8a618a03
Add SM4 block ciphers (GH #540) 2017-11-23 11:41:40 -05:00
Jeffrey Walton
2e63e46747
Fix Speck compile error with iOS Watch 2017-11-23 09:45:53 -05:00
Jeffrey Walton
f4975461a9
Remove IS_ARM64 from makefile
ARM64 is kind of useless. We need A-32 (old ARM), Aarch32 (new 32-bit ARM) and Aarch64 (new 64-bit ARM). Aarch32 and Aarch64 is captured by IS_ARMV8, and A-32 is captured by IS_ARM
2017-11-23 03:42:26 -05:00
Jeffrey Walton
304809a65d
Add NEON and ASIMD intrinsics for SPECK-128 (GH #538)
Performance increased by about 115% on a 980 MHz BananaPi dev-board. Throughput went from about 46.2 cpb to about 21.5 cpb.
2017-11-23 02:47:44 -05:00
Jeffrey Walton
b08596da44
Add CRYPTOPP_SLOW_ARMV8_SHIFT for Aarch32 and Aarch64
Both BLAKE2 and SPECK slow down when using NEON/ASIMD. When just BLAKE2 experienced the issue, it was a one-off problem. Its now wider than a one-off, so add the formal define
2017-11-23 02:22:27 -05:00
Jeffrey Walton
78ec2aa5f4
Fix NEON detection on arm-hf 2017-11-22 23:15:20 -05:00
Jeffrey Walton
aec67799a3
Add CTR to display for SIMON and SPECK 2017-11-22 18:43:08 -05:00
Jeffrey Walton
561926db34
Rename CRYPTOPP_ENABLE_ADVANCED_PROCESS_BLOCKS for Rijndael 2017-11-22 17:55:20 -05:00
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