aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/block
Commit message (Collapse)AuthorAgeFilesLines
* Add CT::Mask typeJack Lloyd2018-11-281-2/+2
|
* Use vzeroupper/vzeroall to transition between AVX and SSE states.Jack Lloyd2018-11-102-0/+16
| | | | | | | | Otherwise some CPUs suffer serious stalls. Using vzeroall on exit also has the nice effect that we don't have to worry about register contents leaking. HT to @noloader for doing the background research on this.
* Add some missing includesJack Lloyd2018-11-081-0/+1
| | | | This is not exhaustive. See GH #1733
* Remove SIMD_32 typedefJack Lloyd2018-11-053-48/+48
| | | | | It is confusing since its not clear from the name how many elements it has, and this gives consistency with SIMD_8x32 type.
* Unroll Blowfish loop by 4 instead of 2Jack Lloyd2018-10-141-16/+45
| | | | Roughly 50% faster for parallel modes like CTR or CBC decrypt.
* Add explicit AVX2 function annotationsJack Lloyd2018-10-052-0/+8
| | | | Needed for single amalagamation file with AVX2 enabled.
* Make a few simple functions constexprJack Lloyd2018-10-011-9/+9
| | | | This is primarily just to verify that C++11 constexpr works.
* Remove support for Visual C++ 2013Jack Lloyd2018-10-014-9/+9
| | | | Closes GH #1557
* Fix some MSVC warningsJack Lloyd2018-09-301-2/+2
|
* Use correct array length in Serpent AVX2Jack Lloyd2018-09-281-2/+2
| | | | Not an actual problem, but flagged by Coverity
* Split 'cast' module into CAST-128 and CAST-256Jack Lloyd2018-09-137-2/+7
| | | | | | | They were only in the same place because of the desire to share the sbox tables, but that can be handled by adding a dependency. This makes it possible to disable CAST-256 while leaving CAST-128.
* Add CommonCrypto block cipher supportJose Pereira2018-09-101-2/+16
|
* Report if Serpent is using AVX2Jack Lloyd2018-09-101-0/+7
|
* Optimize CT::is_zero, CT::expand_mask, CT::expand_top_bitJack Lloyd2018-09-071-5/+4
|
* Revert increase in Blowfish minimum length.Jack Lloyd2018-09-072-2/+2
| | | | | | We need to support short keys for 'PBKDF2(CMAC(Blowfish))' which is supported as part of passhash9 format, there the passphrase is used directly as the CMAC key.
* Increase minimum Blowfish key length to 64 bitsJack Lloyd2018-09-072-2/+2
| | | | | | See #1673 Also, skip tests if the provider doesn't support the given key length.
* Remove unneeded load_on autoJack Lloyd2018-09-042-4/+0
| | | | It is the default...
* Move AVX2 wrapper to utilsJack Lloyd2018-08-242-259/+4
|
* AVX2Jack Lloyd2018-08-241-56/+62
|
* Serpent 8x decryptJack Lloyd2018-08-242-88/+118
|
* WIP for Serpent AVX2Jack Lloyd2018-08-244-7/+415
|
* Add Tweakable_Block_Cipher classJack Lloyd2018-08-092-6/+23
|
* Remove unnecessary accessors for Threefish-512Jack Lloyd2018-08-082-6/+4
|
* Mark some members of Block_Cipher_Fixed_Params as finalJack Lloyd2018-08-081-4/+4
|
* Support salts other than exactly 16 bytes for Blowfish key setupJack Lloyd2018-07-183-32/+45
| | | | | | Bcrypt only needs 16 byte salts but unfortunately Bcrypt-PBKDF is defined to use 64 byte salts instead. So extend support to handle any salt that is a multiple of 4 bytes.
* Correct a comment in Camellia code, and align the 256 byte tableJack Lloyd2018-07-131-1/+3
|
* Unroll SM4 encryption/decryption by 2Jack Lloyd2018-07-131-23/+105
| | | | Interleaving operations improves SM4/CTR from 26 cpb to 18 cpb
* Add support for ARMv8 SM4 instructionsJack Lloyd2018-07-094-0/+221
| | | | Tested in qemu
* Prefetch AES tables during the key scheduleJack Lloyd2018-07-061-8/+27
| | | | | | | | Also prefetch SD during decryption since both TD and SD are used there. Need for prefetch in the key schedule identified in the paper "Eliminating Timing Side-Channel Leaks using Program Repair" by Guo, Schaumont, Wang
* Document new flag for setting bcrypt version [ci skip]Jack Lloyd2018-07-051-1/+1
|
* Rename Threefish-512 AVX2 fileJack Lloyd2018-06-301-0/+0
|
* Fixes for DES/3DESJack Lloyd2018-05-161-7/+7
|
* Unroll DES to encrypt/decrypt 2 rounds in parallelJack Lloyd2018-05-161-122/+198
| | | | About 50% faster for CBC decrypt
* Add message to BOTAN_ARG_CHECK and use it more widelyJack Lloyd2018-05-137-13/+14
|
* Minor tweaks for coverageJack Lloyd2018-03-101-4/+5
|
* Avoid warning in threefish.hJack Lloyd2018-03-101-6/+0
| | | | Causes a warning in amalgamation which is bad news
* Rename threefish module to threefish_512Jack Lloyd2018-03-067-6/+25
| | | | GH #1477
* Unroll ARMv8 AES instructions by 4 to allow pipeliningJack Lloyd2018-02-251-84/+307
| | | | Runs as much as 50% faster for bulk operations. Improves GCM by 10%
* Implement decryptionJack Lloyd2018-02-232-43/+148
|
* AES encryption using POWER8 intrinsicsJack Lloyd2018-02-234-0/+296
|
* Simplify IDEA key scheduleJack Lloyd2018-02-231-23/+28
|
* ABI for Aarch64 cryptoJack Lloyd2018-01-121-3/+1
|
* Make stream, block, hash and cipher mode base classes optionalJack Lloyd2018-01-121-0/+5
|
* Add missing ISA annotationsJack Lloyd2018-01-041-0/+1
| | | | Lack of these broke single file amalgamation (GH #1386)
* Enable using NEON on ClangJack Lloyd2017-12-101-4/+4
| | | | | Clang doesn't like the way SIMD shifts were implemented, I guess it fails to inline the constant. Make it a template parameter instead.
* Create two macros for CAST-128 vs CAST-256Jack Lloyd2017-12-032-2/+9
| | | | Since eventually CAST-256 is going away.
* Constify variables in AES-NI codeJack Lloyd2017-11-181-104/+104
|
* Optimize TwofishJack Lloyd2017-11-161-76/+156
| | | | | Interleaving two blocks is 40-50% faster for any mode that supports parallel operation.
* Correct CAST-128 decryption with more than 1 blockJack Lloyd2017-11-161-32/+32
|
* Optimizations for CAST-128Jack Lloyd2017-11-161-45/+135
| | | | | Similarly to Blowfish, 2x unrolling produces a 50-60% perf boost due to increased ILP.