CHANGELOG (1817B)
1 # Changelog 2 3 - 0.2.2 (2026-02-01) 4 * The library has been refactored substantially to achieve greater 5 control over heap allocation, particularly around HMAC calculation. 6 7 * A couple of very low-level functions, '_hmac_rr' and '_hmac_rsb' are 8 now quietly exported for calculating specialized destructive HMAC 9 operations, mostly of use to HMAC-DRBG implementations. HMAC 10 performance has also been modestly improved. 11 12 - 0.2.1 (2026-01-11) 13 * Adds a basic quickcheck test suite for asserting memory safety of 14 library functions on random inputs. 15 16 - 0.2.0 (2026-01-10) 17 * The HMAC functions now produce a value of type MAC, which is a 18 newtype over a ByteString. The 'Eq' instance for MAC compares values 19 in constant time. 20 21 - 0.1.5 (2026-01-08) 22 * We now check if the ARM cryptographic extensions are available, and, 23 if so, use them to calculate hashes. If they're unavailable we 24 simply use the pure implementation as a fallback. This yields about 25 a 5x performance boost for 'hash' and 3.5x boost for 'hmac' (again, 26 when available). 27 28 * Allocation for both the 'hash' and 'hmac' functions has been reduced 29 dramatically, mostly by optimising the padding internals, and is now 30 constant with respect to input. 31 32 - 0.1.4 (2025-12-28) 33 * Adds an 'llvm' build flag and tests with GHC 9.10.3. 34 35 - 0.1.3 (2025-01-21) 36 * Improves padding handling for the strict bytestring case, yielding 37 performance increases for both 'hash' and 'hmac'. 38 39 - 0.1.2 (2025-01-07) 40 * Makes a minor optimisation to bytestring handling. 41 42 - 0.1.1 (2024-10-13) 43 * Adds an INLINE pragma to an internal step function. 44 * 'hmac' no longer calls 'hmac_lazy', which has no practical effect 45 other than to clean up profiling reports generated by GHC. 46 47 - 0.1.0 (2024-10-07) 48 * Initial release. 49