CHANGELOG (1835B)
1 # Changelog 2 3 - 0.3.1 (2026-02-04) 4 * Adds SPECIALIZE pragmas for IO and ST to improve the generated Core. 5 6 - 0.3.0 (2026-02-01) 7 * This backwards-incompatible version changes the "bring your own HMAC 8 function" design and simply provides specialized DRBGs for 9 HMAC-SHA256 and HMAC-SHA512, respectively. These HMAC functions are 10 provided by ppad-sha256 and ppad-sha512. 11 12 * The rationale here is to provide better security guarantees around 13 the DRBG state. Now, the DRBG state is restricted to a single, pinned, 14 heap-allocated mutable buffer; components of it are /never/ 15 allocated anywhere else on the heap during DRBG operation (not even 16 in temporary, to-be-GC'd bytestrings). A new 'wipe' function is also 17 exposed for explicitly zeroing out state when one is finished 18 generating bytes from the DRBG. 19 20 * Aside from the increased security guarantees, DRBG performance is 21 dramatically improved, and other heap allocation dramatically 22 limited, compared to previous versions. 23 24 - 0.2.1 (2026-01-10) 25 * Simply adds bounds to the ppad-sha{256,512} dependencies in the test and 26 benchmark suites. 27 28 - 0.2.0 (2026-01-10) 29 * In order to better-match the spec, 'gen' now returns an 30 'Either Error BS.ByteString'. The new 'Error' value is returned 31 either in the exceptionally rare case that the DRBG needs a reseed 32 (previously this was just "error <msg>"), or, more likely to occur 33 in practice, if more than 65536 bytes are requested from the DRBG at 34 a time. 35 36 - 0.1.3 (2025-12-28) 37 * Adds an 'llvm' build flag and tests with GHC 9.10.3. 38 39 - 0.1.2 (2025-02-06) 40 * Minor bytestring optimizations for shaving off microseconds in 41 certain cases. 42 43 - 0.1.1 (2024-10-07) 44 * Add a basic placeholder 'Show' instance for the DRBG type. 45 46 - 0.1.0 (2024-10-05) 47 * Initial release. 48