3384 Commits

Author SHA1 Message Date
Jeffrey Walton
076937eb81
Update comments for vector permutes in SPECK-128 2017-12-04 12:31:32 -05:00
Jeffrey Walton
25709d2597
Fix SPECK64 vector permutes
Thanks to Peter Cordes for the suggestion on handling the case
2017-12-04 09:47:26 -05:00
Jeffrey Walton
46271660a1
Switch to uint64x2_t for SIMON-128 2017-12-04 05:47:34 -05:00
Jeffrey Walton
e9714b40d2
Switch to _mm_unpacklo_epi32 and _mm_unpackhi_epi32
The manual _mm_extract_epi32 and  _mm_insert_epi32 are required during setup, be we can use SSE on teardown
2017-12-04 05:01:27 -05:00
Jeffrey Walton
cd31fa29dc
Switch to uint64x2_t for SPECK-128 2017-12-04 03:38:39 -05:00
Jeffrey Walton
1de143203e
Add SPECK-64 NEON intrinsics 2017-12-03 18:47:39 -05:00
Jeffrey Walton
cd55613b80
Disable NEON for SPECK-64
This was inadvertently checked-in
2017-12-03 11:02:15 -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
18ccd89965
Add SSE4 flags to makefile for Simon and Speck 2017-12-03 06:02:24 -05:00
Jeffrey Walton
081afde0fd
Add SIMON-64 SSE intrinsics
Performance went from about 29 cpb (C++) to about 11.1 cpb (SSE)
2017-12-03 04:10:55 -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
77ff7aa528
Add additional Simon test vectors 2017-12-02 21:07:33 -05:00
Jeffrey Walton
ca158d56f8
Add additional Speck test vectors 2017-12-02 20:00:32 -05:00
Jeffrey Walton
25493ded49
Add AVX512VL rotate support 2017-12-01 09:39:05 -05:00
Jeffrey Walton
49a119cbf7
Add SPECK-64 and SPECK-128 large block tests
The tests were generated using Crypto++ and the straight C++ implementation. It should allow us to test the SSE and NEON impelmentations and multiple blocks
2017-12-01 07:33:21 -05:00
Jeffrey Walton
3c1914b020
Add SIMON-64 and SIMON-128 large block tests
The tests were generated using Crypto++ and the straight C++ implementation. It should allow us to test the SSE and NEON impelmentations and multiple blocks
2017-12-01 07:10:42 -05:00
Jeffrey Walton
4792578f09
Rearrange statements and avoid intermediates
The folding of statements helps GCC elimate some of the intermediate stores it was performing. The elimination saved about 1.0 cpb. SIMON-128 is now running around 10 cpb, but it is still off the Simon and Speck team's numbers of 3.5 cpb
2017-12-01 04:11:31 -05:00
Jeffrey Walton
b7ced67892
Update comments 2017-12-01 02:38:19 -05:00
Jeffrey Walton
a7fec9c0f6
Fix assert in Debug builds
This was copy/paste from the template function
2017-11-30 11:54:21 -05:00
Jeffrey Walton
14e326482c
Update comments 2017-11-30 02:07:04 -05:00
Jeffrey Walton
22257c4b6e
Remove SunCC const cast workaround
This code does not suffer SunCC losing const-ness
2017-11-29 12:56:19 -05:00
Jeffrey Walton
39594a53b0
Add fast rotate-by-8 for Aarch32 and Aarch64 2017-11-29 12:33:34 -05:00
Jeffrey Walton
532f13fe53
Fix compile using SunCC 12.4 2017-11-29 12:10:19 -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
16ebfa72bf
Cleanup comments and whitespace 2017-11-29 10:15:41 -05:00
Jeffrey Walton
6e829cebee
Use EPI8 Shuffle rather than Shifts and Or for rotate when R=8
Louis Wingers and Bryan Weeks from the Simon and Speck team offered the suggestion. The change save 0.7 cpb for Speck, and 5 cpb for Simon on x86_64.
Speck is now running very close to the Team's time sor SSE4. Simon is still off, but we know the root cause. For Simon, the Team used a fast bit-sliced implementation
2017-11-29 08:53:48 -05:00
Jeffrey Walton
bdb2db7ac2
Uncouple GetAlignment from CRYPTOPP_DISABLE_SOSEMANUK_ASM
The class declaration needs to always include the functions for the platform. The implementation can simply return a different number, and that is hidden from the user
2017-11-29 08:00:21 -05:00
Jeffrey Walton
c6c8dd3b32
Add Valgrind suppression file to file list (GH #543) 2017-11-29 07:15:42 -05:00
Jeffrey Walton
92436b9f9b
Re-enable Salsa20 ASM (GH #543)
We are fairly certain this is a false positive due to glibc's __memcmp_sse4_1.
2017-11-29 06:55:19 -05:00
Jeffrey Walton
f86c6124a8
Add Valgrind suppression file (GH #543) 2017-11-29 06:52:43 -05:00
Jeffrey Walton
33caa1e13f
Add Valgrind --track-origins=yes to recipe 2017-11-29 05:26:21 -05:00
Jeffrey Walton
5a8e4d1545
Update documentation 2017-11-28 04:37:37 -05:00
Jeffrey Walton
8530b58edd
Add Base32 extended hex encoder and decoder (GH #534)
I'm not sure if this is what the fellow in the issue wanted, but we are missing it. Also see https://stackoverflow.com/q/47325517/608639
2017-11-28 04:22:19 -05:00
Jeffrey Walton
0db1ef29e1
List Key after Comments in Simon test vectors 2017-11-28 01:34:42 -05:00
Jeffrey Walton
a6ca22f6b6
Add additional Simon-64 test vectors 2017-11-28 01:18:21 -05:00
Jeffrey Walton
a33868b98d
Add additional Simon-128 test vectors 2017-11-28 00:34:22 -05:00
Jeffrey Walton
2a4d58a208
Fix Sosemanuk when -DCRYPTOPP_DISABLE_ASM is in effect
It looks like a copy/paste error was introduced at Commit a074722bfa82
2017-11-27 21:54:15 -05:00
Jeffrey Walton
45db15e51b
Increase precision of cpb
When cpb is less than 24 or so print two decimal places
2017-11-27 11:38:15 -05:00
Jeffrey Walton
a29b36c197
Whitespace check-in 2017-11-27 01:51:27 -05:00
Jeffrey Walton
07c2047cec
Add simon-simd.cpp to file list and nmake file 2017-11-27 01:20:15 -05:00
Jeffrey Walton
1211f25de5
Fix cryptest.vcxproj.user
The file was unintentionally checked in with the SIMON-128 commit
2017-11-27 00:50:05 -05:00
Jeffrey Walton
568e608ea6
Add NEON and ASIMD intrinsics for SPECK-128 (GH #539)
Performance increased by about 200% on a 980 MHz BananaPi dev-board. Throughput went from about 176.6 cpb to about 60.3 cpb.
2017-11-27 00:36:45 -05:00
Jeffrey Walton
7576cca8d2
Switch to 'L' for blocksize in SPECK_Info 2017-11-26 23:51:05 -05:00
Jeffrey Walton
84fdcbf384
Use non-macro version of ttmac 2017-11-26 07:59:33 -05:00
Jeffrey Walton
c5303b9c2a
Fix "variable tracking size limit exceeded" with UBsan
threefish.cpp: In member function ‘virtual void CryptoPP::Threefish512::Enc::ProcessAndXorBlock(const byte*, const byte*, CryptoPP::byte*) const’:
threefish.cpp:316:6: note: variable tracking size limit exceeded with -fvar-tracking-assignments, retrying without
 void Threefish512::Enc::ProcessAndXorBlock(const byte *inBlock, const byte *xorBlock, byte *outBlock) const
...
2017-11-26 05:27:03 -05:00
Jeffrey Walton
4c0bfe4548
Update documentation 2017-11-26 02:45:34 -05:00
Jeffrey Walton
14e631fd84 Update documentation 2017-11-26 02:26:58 -05:00
Jeffrey Walton
d19ef1c716
Update documentation 2017-11-26 01:59:06 -05:00
Jeffrey Walton
c518b31ae8
Update documentation 2017-11-26 01:43:00 -05:00
Jeffrey Walton
679c9583a0
Update oids for SM2 (GH #542)
Also see https://www.cryptopp.com/wiki/SM2. The wiki page is documenting some of this stuff
2017-11-25 10:40:17 -05:00