aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/block
Commit message (Collapse)AuthorAgeFilesLines
* 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.
* Optimize BlowfishJack Lloyd2017-11-161-41/+82
| | | | | | | Doing two blocks at a time exposes more ILP and substantially improves performance. Idea from http://jultika.oulu.fi/files/nbnfioulu-201305311409.pdf
* Format tweaksJack Lloyd2017-11-021-2/+2
|
* Avoid using semicolon at and of do { } while(0) macro block.Jack Lloyd2017-11-022-19/+19
| | | | Clearly I have a tic for this.
* Include <memory> in base type headersJack Lloyd2017-10-291-0/+1
| | | | Needed for the create calls
* Add checks that keyed algorithms are actually keyed before useJack Lloyd2017-10-2620-9/+99
| | | | | Previously calling update or encrypt without calling set_key first would result in invalid outputs or else crashing.
* Convert http:// links to https:// where possibleJack Lloyd2017-10-245-5/+5
|
* Correct usage of std::aligned_storageJack Lloyd2017-10-151-6/+6
| | | | This ended up allocating 256 KiB!
* Additional final annotationsJack Lloyd2017-10-152-4/+4
|
* Use overaligned storage for AES T-TableJack Lloyd2017-10-141-32/+56
| | | | | This improves performance by ~ .5 cycle/byte. Also it ensures that our cache reading countermeasure works as expected.
* Reduce AES to using a single T-tableJack Lloyd2017-10-131-127/+78
| | | | | | | | | Should have significantly better cache characteristics, though it would be nice to verify this. It reduces performance somewhat but less than I expected, at least on Skylake. I need to check this across more platforms to make sure t won't hurt too badly.
* Optimizations for SM4Jack Lloyd2017-10-131-35/+94
| | | | | | | | | Using a larger table helps quite a bit. Using 4 tables (ala AES T-tables) didn't seem to help much at all, it's only slightly faster than a single table with rotations. Continue to use the 8 bit table in the first and last rounds as a countermeasure against cache attacks.