hmac-drbg

Pure Haskell HMAC-DRBG (docs.ppad.tech/hmac-drbg).
git clone git://git.ppad.tech/hmac-drbg.git
Log | Files | Refs | README | LICENSE

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