CHANGELOG (1624B)
1 # Changelog 2 3 - 0.3.1 (2026-01-11) 4 * Adds a basic quickcheck test suite for asserting memory safety of 5 library functions on random inputs. 6 7 - 0.3.0 (2026-01-10) 8 * The HMAC functions now produce a value of type MAC, which is a 9 newtype over a ByteString. The 'Eq' instance for MAC compares values 10 in constant time. 11 12 - 0.2.5 (2026-01-08) 13 * We now check if the ARM cryptographic extensions are available, and, 14 if so, use them to calculate hashes. If they're unavailable we 15 simply use the pure implementation as a fallback. This yields about 16 a 5x performance boost for 'hash' and 3.5x boost for 'hmac' (again, 17 when available). 18 19 * Allocation for both the 'hash' and 'hmac' functions has been reduced 20 dramatically, mostly by optimising the padding internals, and is now 21 constant with respect to input. 22 23 - 0.2.4 (2025-12-28) 24 * Adds an 'llvm' build flag and tests with GHC 9.10.3. 25 26 - 0.2.3 (2025-01-21) 27 * Improves padding handling for the strict bytestring case, yielding 28 performance increases for both 'hash' and 'hmac'. 29 30 - 0.2.2 (2025-01-07) 31 * Minor bytestring-handling optimisations. 32 33 - 0.2.1 (2024-10-13) 34 * Adds an INLINE pragma to an internal step function. 35 36 * 'hmac' no longer calls 'hmac_lazy', which has no practical effect 37 other than to clean up profiling reports generated by GHC. 38 39 - 0.2.0 (2024-10-07) 40 * 'hmac' and 'hmac_lazy' now hash long keys before computing a HMAC, 41 instead of throwing an error, matching RFC 2104's suggested behaviour. 42 43 - 0.1.0 (2024-09-14) 44 * Initial release, supporting SHA256 and HMAC-SHA256 on strict and lazy 45 bytestrings.