Commit Graph

20 Commits

Author SHA1 Message Date
Fabrice Fontaine
3c01bcc352 Allow user to set -DCRYPTOPP_ARM_NEON_AVAILABLE=0 (#595)
Disable neon through -DCRYPTOPP_ARM_NEON_AVAILABLE=0,
replace "if defined(CRYPTOPP_ARM_NEON_AVAILABLE)" by
"if (CRYPTOPP_ARM_NEON_AVAILABLE)"

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
2018-03-05 18:49:10 -05:00
Jeffrey Walton
e416b243d3
Re-add Simon and Speck, enable SSE (GH #585)
This commit re-adds Simon and Speck. The commit includes C++, SSSE3 and SSE4. NEON, Aarch32 and Aarch64 are disabled at the moment.
2018-02-18 23:23:50 -05:00
Jeffrey Walton
15b14cc618
Remove Simon and Speck ciphers (GH #585)
We recently learned our Simon and Speck implementation was wrong. The removal will stop harm until we can loop back and fix the issue.
The issue is, the paper, the test vectors and the ref-impl do not align. Each produces slightly different result. We followed the test vectors but they turned out to be wrong for the ciphers.
We have one kernel test vector but we don't have a working implementation to observe it to fix our implementation. Ugh...
2018-02-14 04:06:16 -05:00
Jeffrey Walton
0aa2ebbbf3
Clear signed/unsigned warnings with GCC and -Wall -Wextra 2017-12-26 16:59:32 -05:00
Jeffrey Walton
7bc621da62
Enable NEON/ASIMD for Simon and Speck on Aarch32/Aarch64 (GH #545) 2017-12-05 14:02:48 -05:00
Jeffrey Walton
1de143203e
Add SPECK-64 NEON intrinsics 2017-12-03 18:47:39 -05:00
Jeffrey Walton
f0e49785f6
Fix incorrect SPECK-128 decrypt when blocks >= 6
Add defines for CRYPTOPP_SPECK64_ADVANCED_PROCESS_BLOCKS and CRYPTOPP_SPECK128_ADVANCED_PROCESS_BLOCKS
2017-12-03 09:00:39 -05:00
Jeffrey Walton
6bb1f1d9c4
Add SPECK-64 SSE intrinsics
Performance went from about 11.9 cpb (C++) to about 4.5 cpb (SSE)
2017-12-03 02:28:40 -05:00
Jeffrey Walton
61ec50dabe
Change Doxygen comment style from //! to ///
Also see https://groups.google.com/forum/#!topic/cryptopp-users/A7-Xt5Knlzw
2017-11-29 10:54:33 -05:00
Jeffrey Walton
4f2d6f713f
Switch to rotlConstant and rotrConstant
Update comments
2017-11-24 17:54:12 -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
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
b4cecfef95
Rework UncheckedSetKey to rearrange words in ExpandKey (GH #538) 2017-11-21 17:43:28 -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
6cc89a983d
Update documentation 2017-11-20 20:03:39 -05:00
Jeffrey Walton
4b3560baef
Update documentation
Whitespace check-in
2017-11-20 08:33:33 -05:00
Jeffrey Walton
b9fc470bc7
Add SPECK-64 and SPECK-128 lightweight block ciphers (GH #538) 2017-11-20 06:30:21 -05:00