aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/hash
Commit message (Collapse)AuthorAgeFilesLines
* Merge GH #2717 Have get_byte take a compile time indexJack Lloyd2021-04-173-134/+134
|\
| * Make get_byte take a compile-time constant indexJack Lloyd2021-04-163-134/+134
| | | | | | | | Add get_byte_var for the few cases that need a variable index
* | Remove MDx_HashFunction::write_countJack Lloyd2021-04-152-20/+6
|/ | | | Unnecessary interface since no subclass overrides this
* Avoid releasing unique_ptr in Parallel hashJack Lloyd2021-04-061-3/+3
|
* Add HashFunction::new_objectJack Lloyd2021-04-0329-52/+53
|
* Add BlockCipher::new_objectJack Lloyd2021-04-031-5/+13
|
* Merge GH #2688 Use make_unique in HashFunction copy_state implJack Lloyd2021-04-0320-31/+28
|\
| * Use make_unique in copy_state implementationsJack Lloyd2021-04-0320-31/+28
| |
* | Use make_unique in type factory functionsJack Lloyd2021-04-031-32/+28
|/
* Add choose and majority functionsJack Lloyd2021-01-0910-41/+47
|
* Use a single Sbox table for WhirlpoolJack Lloyd2020-12-223-618/+205
| | | | | | This actually only degrades performance slightly, and Whirlpool is already quite slow. Saves 14K of ROM and probably lessens side channel risk a bit.
* Add SHACAL2 using ARMv8 SHA instructionsJack Lloyd2020-12-211-4/+4
|
* Align SHA-2 constantsJack Lloyd2020-12-202-19/+19
| | | | | This allows using the aligned load instruction from SSE2 though that doesn't seem to make any difference on performance.
* Avoid having something at namespace scope named TABLEJack Lloyd2020-12-121-23/+23
| | | | Likely to cause problems in the amalgamation
* It seems basemetal armeabi won't do local alignments greater than 8Jack Lloyd2020-12-111-45/+49
| | | | | Move these tables outside of the functions so larger values can be applied.
* Incrase the alignment of all lookup tablesJack Lloyd2020-12-113-13/+13
| | | | | | | | | We had done this in an ad-hoc way in the past for eg the AES tables but given how easy C++'s alignas is to use we should apply it universally. Use 256 byte alignment for larger tables since that heads of any possible issues that arise from machines with large cache lines.
* Cleanups in the Aarch64 SHA-2 codeJack Lloyd2020-12-051-101/+88
|
* Clean up the SHA-2 x86 SHA-NI implementationJack Lloyd2020-12-051-98/+99
|
* Remove ULL suffixesJack Lloyd2020-12-014-803/+803
| | | | Not required anymore
* Add support for keyed Blake2b and also MAC via Blake2b.Tom2020-11-292-5/+54
|
* Make scan_name.h, cpuid.h and http_util.h internalJack Lloyd2020-11-285-5/+5
|
* Merge GH #2456 Remove deprecated headers, make many headers internalJack Lloyd2020-11-0653-171/+129
|\
| * Remove deprecated headers, make more headers internalJack Lloyd2020-11-0653-171/+129
| | | | | | | | | | | | | | | | | | Now modules default to internal headers instead of defaulting to public; making a new public API should be a visible and intentional choice. Brings the public header count from over 300 to around 150. Also removes the deprecated tls_blocking interface
* | Remove compiler version checks for old compilersJack Lloyd2020-11-064-10/+10
|/ | | | Also, add MSVC for ghash_cpu - somehow this got lost!
* Remove default output length for SHAKEJack Lloyd2020-11-051-4/+4
| | | | Instead it must be specified
* Remove Tiger hash functionJack Lloyd2020-11-055-633/+0
|
* Minor optimization for Blake2b::final_resultJack Lloyd2019-12-081-1/+2
| | | | Avoids some needless memsets
* Resolve various integer conversion warnings from MSVCJack Lloyd2019-12-061-1/+1
|
* Deprecate many publically available headersJack Lloyd2019-09-0638-0/+60
|
* Make ssse3/sse2 dependencies explicit rather than implicitJack Lloyd2019-09-042-0/+2
| | | | Previously --disable-sse2/--disable-ssse3 would not work as expected
* Add BOTAN_FORCE_INLINE and use it in BLAKE2bJack Lloyd2019-08-311-3/+3
| | | | Closes #2089
* Fix a carry handling bug in StreebogJack Lloyd2019-08-261-3/+4
| | | | Closes #2082
* Remove BearSSL providerJack Lloyd2019-07-051-16/+1
| | | | | | BearSSL is much slower than Botan's builtins, and it is not commonly included in distributions so doesn't even have the advantage of ubiquity.
* Fix conflict when BMI2 is enabled and --single-amalgamation-fileJack Lloyd2019-06-191-3/+3
| | | | Not sure why this wasn't causing an error in the MSVC CI builds.
* Make the ISA list a listJack Lloyd2019-04-178-8/+28
|
* Fix some extra semicolonsJack Lloyd2019-03-271-1/+1
|
* Work around problem with GCC 4.8Jack Lloyd2019-03-262-2/+4
|
* Fix some warnings from GCC 9Jack Lloyd2019-03-252-2/+2
| | | | New redundant-move and pessimizing-move warnings found some
* s/Blake2b/BLAKE2b/Jack Lloyd2019-02-222-18/+20
| | | | As that is the proper name of the hash. Add a typedef for compat.
* Unroll SHA-3Jack Lloyd2019-02-212-132/+158
| | | | Improves performance by about 10-12%
* Recognize BLAKE2b also [ci skip]Jack Lloyd2019-01-311-1/+1
| | | | See #1822
* Add BMI2 variants for SHA-512 and SHA-3Jack Lloyd2019-01-1810-10/+413
| | | | Both about 33% faster on Skylake
* Avoid including rotate.h in bswap.hJack Lloyd2018-12-219-0/+9
| | | | | | | It was only needed for one case which is easily hardcoded. Include rotate.h in all the source files that actually use rotr/rotl but implicitly picked it up via loadstor.h -> bswap.h -> rotate.h include chain.
* Fix more MSVC warningsJack Lloyd2018-12-101-1/+1
|
* Fix some MSVC warningsJack Lloyd2018-12-101-1/+1
|
* Merge GH #1776 Clean ups in MDx_HashFunctionJack Lloyd2018-12-082-33/+49
|\
| * Require MDx_HashFunction block size to be a power of 2Jack Lloyd2018-12-082-14/+25
| | | | | | | | | | | | Allows replacing div/mod by a variable with a shift/mask. Allows storing just the bit count, which saves a few bytes.
| * Cleanups in MDx_HashFunctionJack Lloyd2018-12-082-32/+37
| |
* | Clean up Streebog and fix use of unaligned loadsJack Lloyd2018-12-082-94/+114
|/
* Avoid calling memset, memcpy within library codeJack Lloyd2018-11-171-1/+3
| | | | | | | | | Prefer using wrappers in mem_utils for this. Current exception is where memcpy is being used to convert between two different types, since copy_mem requires input and output pointers have the same type. There should be a new function to handle conversion-via-memcpy operation.