Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Add CT::Mask type | Jack Lloyd | 2018-11-28 | 1 | -2/+2 |
| | |||||
* | Use vzeroupper/vzeroall to transition between AVX and SSE states. | Jack Lloyd | 2018-11-10 | 2 | -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 includes | Jack Lloyd | 2018-11-08 | 1 | -0/+1 |
| | | | | This is not exhaustive. See GH #1733 | ||||
* | Remove SIMD_32 typedef | Jack Lloyd | 2018-11-05 | 3 | -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 2 | Jack Lloyd | 2018-10-14 | 1 | -16/+45 |
| | | | | Roughly 50% faster for parallel modes like CTR or CBC decrypt. | ||||
* | Add explicit AVX2 function annotations | Jack Lloyd | 2018-10-05 | 2 | -0/+8 |
| | | | | Needed for single amalagamation file with AVX2 enabled. | ||||
* | Make a few simple functions constexpr | Jack Lloyd | 2018-10-01 | 1 | -9/+9 |
| | | | | This is primarily just to verify that C++11 constexpr works. | ||||
* | Remove support for Visual C++ 2013 | Jack Lloyd | 2018-10-01 | 4 | -9/+9 |
| | | | | Closes GH #1557 | ||||
* | Fix some MSVC warnings | Jack Lloyd | 2018-09-30 | 1 | -2/+2 |
| | |||||
* | Use correct array length in Serpent AVX2 | Jack Lloyd | 2018-09-28 | 1 | -2/+2 |
| | | | | Not an actual problem, but flagged by Coverity | ||||
* | Split 'cast' module into CAST-128 and CAST-256 | Jack Lloyd | 2018-09-13 | 7 | -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 support | Jose Pereira | 2018-09-10 | 1 | -2/+16 |
| | |||||
* | Report if Serpent is using AVX2 | Jack Lloyd | 2018-09-10 | 1 | -0/+7 |
| | |||||
* | Optimize CT::is_zero, CT::expand_mask, CT::expand_top_bit | Jack Lloyd | 2018-09-07 | 1 | -5/+4 |
| | |||||
* | Revert increase in Blowfish minimum length. | Jack Lloyd | 2018-09-07 | 2 | -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 bits | Jack Lloyd | 2018-09-07 | 2 | -2/+2 |
| | | | | | | See #1673 Also, skip tests if the provider doesn't support the given key length. | ||||
* | Remove unneeded load_on auto | Jack Lloyd | 2018-09-04 | 2 | -4/+0 |
| | | | | It is the default... | ||||
* | Move AVX2 wrapper to utils | Jack Lloyd | 2018-08-24 | 2 | -259/+4 |
| | |||||
* | AVX2 | Jack Lloyd | 2018-08-24 | 1 | -56/+62 |
| | |||||
* | Serpent 8x decrypt | Jack Lloyd | 2018-08-24 | 2 | -88/+118 |
| | |||||
* | WIP for Serpent AVX2 | Jack Lloyd | 2018-08-24 | 4 | -7/+415 |
| | |||||
* | Add Tweakable_Block_Cipher class | Jack Lloyd | 2018-08-09 | 2 | -6/+23 |
| | |||||
* | Remove unnecessary accessors for Threefish-512 | Jack Lloyd | 2018-08-08 | 2 | -6/+4 |
| | |||||
* | Mark some members of Block_Cipher_Fixed_Params as final | Jack Lloyd | 2018-08-08 | 1 | -4/+4 |
| | |||||
* | Support salts other than exactly 16 bytes for Blowfish key setup | Jack Lloyd | 2018-07-18 | 3 | -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 table | Jack Lloyd | 2018-07-13 | 1 | -1/+3 |
| | |||||
* | Unroll SM4 encryption/decryption by 2 | Jack Lloyd | 2018-07-13 | 1 | -23/+105 |
| | | | | Interleaving operations improves SM4/CTR from 26 cpb to 18 cpb | ||||
* | Add support for ARMv8 SM4 instructions | Jack Lloyd | 2018-07-09 | 4 | -0/+221 |
| | | | | Tested in qemu | ||||
* | Prefetch AES tables during the key schedule | Jack Lloyd | 2018-07-06 | 1 | -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 Lloyd | 2018-07-05 | 1 | -1/+1 |
| | |||||
* | Rename Threefish-512 AVX2 file | Jack Lloyd | 2018-06-30 | 1 | -0/+0 |
| | |||||
* | Fixes for DES/3DES | Jack Lloyd | 2018-05-16 | 1 | -7/+7 |
| | |||||
* | Unroll DES to encrypt/decrypt 2 rounds in parallel | Jack Lloyd | 2018-05-16 | 1 | -122/+198 |
| | | | | About 50% faster for CBC decrypt | ||||
* | Add message to BOTAN_ARG_CHECK and use it more widely | Jack Lloyd | 2018-05-13 | 7 | -13/+14 |
| | |||||
* | Minor tweaks for coverage | Jack Lloyd | 2018-03-10 | 1 | -4/+5 |
| | |||||
* | Avoid warning in threefish.h | Jack Lloyd | 2018-03-10 | 1 | -6/+0 |
| | | | | Causes a warning in amalgamation which is bad news | ||||
* | Rename threefish module to threefish_512 | Jack Lloyd | 2018-03-06 | 7 | -6/+25 |
| | | | | GH #1477 | ||||
* | Unroll ARMv8 AES instructions by 4 to allow pipelining | Jack Lloyd | 2018-02-25 | 1 | -84/+307 |
| | | | | Runs as much as 50% faster for bulk operations. Improves GCM by 10% | ||||
* | Implement decryption | Jack Lloyd | 2018-02-23 | 2 | -43/+148 |
| | |||||
* | AES encryption using POWER8 intrinsics | Jack Lloyd | 2018-02-23 | 4 | -0/+296 |
| | |||||
* | Simplify IDEA key schedule | Jack Lloyd | 2018-02-23 | 1 | -23/+28 |
| | |||||
* | ABI for Aarch64 crypto | Jack Lloyd | 2018-01-12 | 1 | -3/+1 |
| | |||||
* | Make stream, block, hash and cipher mode base classes optional | Jack Lloyd | 2018-01-12 | 1 | -0/+5 |
| | |||||
* | Add missing ISA annotations | Jack Lloyd | 2018-01-04 | 1 | -0/+1 |
| | | | | Lack of these broke single file amalgamation (GH #1386) | ||||
* | Enable using NEON on Clang | Jack Lloyd | 2017-12-10 | 1 | -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-256 | Jack Lloyd | 2017-12-03 | 2 | -2/+9 |
| | | | | Since eventually CAST-256 is going away. | ||||
* | Constify variables in AES-NI code | Jack Lloyd | 2017-11-18 | 1 | -104/+104 |
| | |||||
* | Optimize Twofish | Jack Lloyd | 2017-11-16 | 1 | -76/+156 |
| | | | | | Interleaving two blocks is 40-50% faster for any mode that supports parallel operation. | ||||
* | Correct CAST-128 decryption with more than 1 block | Jack Lloyd | 2017-11-16 | 1 | -32/+32 |
| | |||||
* | Optimizations for CAST-128 | Jack Lloyd | 2017-11-16 | 1 | -45/+135 |
| | | | | | Similarly to Blowfish, 2x unrolling produces a 50-60% perf boost due to increased ILP. |