commit 6091e423277423f574674649ed32ec640db8433d
parent 93aaf3eafad677087ffbea6fc5c24a63cb9651ea
Author: Jared Tobin <jared@jtobin.io>
Date: Sat, 21 Jun 2025 15:17:59 +0400
release: v0.3.0
Diffstat:
4 files changed, 25 insertions(+), 23 deletions(-)
diff --git a/CHANGELOG b/CHANGELOG
@@ -1,5 +1,9 @@
# Changelog
+- 0.3.0 (2025-06-21)
+ * The 'derive' function is now total, returning 'Nothing' when
+ supplied with bad inputs.
+
- 0.2.1 (2025-02-24)
* Merely swaps out the base16 library used for the Wycheproof tests
(in favour of ppad-base16).
diff --git a/README.md b/README.md
@@ -34,23 +34,21 @@ Haddocks (API documentation, etc.) are hosted at
The aim is best-in-class performance for pure, highly-auditable Haskell
code.
-Current benchmark figures on my mid-2020 MacBook Air look like (use
+Current benchmark figures on an M4 Silicon MacBook Air look like (use
`cabal bench` to run the benchmark suite):
```
benchmarking ppad-hkdf/HKDF-SHA256/derive (outlen 32)
- time 12.69 μs (12.58 μs .. 12.84 μs)
- 0.999 R² (0.999 R² .. 1.000 R²)
- mean 12.82 μs (12.75 μs .. 12.89 μs)
- std dev 231.0 ns (190.1 ns .. 299.9 ns)
- variance introduced by outliers: 16% (moderately inflated)
+ time 6.787 μs (6.780 μs .. 6.792 μs)
+ 1.000 R² (1.000 R² .. 1.000 R²)
+ mean 6.774 μs (6.769 μs .. 6.778 μs)
+ std dev 16.89 ns (14.95 ns .. 19.57 ns)
benchmarking ppad-hkdf/HKDF-SHA512/derive (outlen 32)
- time 12.24 μs (12.16 μs .. 12.31 μs)
+ time 7.014 μs (7.007 μs .. 7.019 μs)
1.000 R² (1.000 R² .. 1.000 R²)
- mean 12.27 μs (12.22 μs .. 12.32 μs)
- std dev 172.4 ns (131.6 ns .. 246.5 ns)
- variance introduced by outliers: 11% (moderately inflated)
+ mean 7.003 μs (6.999 μs .. 7.008 μs)
+ std dev 16.60 ns (13.60 ns .. 20.14 ns)
```
## Security
diff --git a/flake.lock b/flake.lock
@@ -51,11 +51,11 @@
]
},
"locked": {
- "lastModified": 1739979569,
- "narHash": "sha256-omEcmgzRlzIE5Vdty0/SskEcR2f7OtcHzGFE4i1dI60=",
+ "lastModified": 1741625558,
+ "narHash": "sha256-ZBDXRD5fsVqA5bGrAlcnhiu67Eo50q0M9614nR3NBwY=",
"ref": "master",
- "rev": "4439e0efafbb5185bd7d9bfb352a17c2a31b96b4",
- "revCount": 15,
+ "rev": "fb63457f2e894eda28250dfe65d0fcd1d195ac2f",
+ "revCount": 24,
"type": "git",
"url": "git://git.ppad.tech/base16.git"
},
@@ -102,11 +102,11 @@
]
},
"locked": {
- "lastModified": 1737298572,
- "narHash": "sha256-iAo6GFH1FLNi0wt0FczbqPCmVzCm9gfMEjk1oakExt0=",
+ "lastModified": 1740802974,
+ "narHash": "sha256-GTD9UrxwMa5zY7hxzDSXjKXKUwMK4r3FBHLG0nvgapk=",
"ref": "master",
- "rev": "abc984dc65f0df9bd958c0bc8f390c68e660f710",
- "revCount": 87,
+ "rev": "ab0957e305dff0243dcab11e381470585849fd20",
+ "revCount": 94,
"type": "git",
"url": "git://git.ppad.tech/sha256.git"
},
@@ -133,11 +133,11 @@
]
},
"locked": {
- "lastModified": 1737298660,
- "narHash": "sha256-W8wuLHRH7P5oITCXnxKEEnSD2yX1Qo7uypbxpwKvvM8=",
+ "lastModified": 1740802979,
+ "narHash": "sha256-6VAXmA1XiIT/WFcP+eFb6uK3YyfgVqIgDv3ASNIoCMs=",
"ref": "master",
- "rev": "e8ce88cafbf32900556832d3817997642f128242",
- "revCount": 21,
+ "rev": "ff165b29fb21b99749460ae7e3fdca42a85c822b",
+ "revCount": 28,
"type": "git",
"url": "git://git.ppad.tech/sha512.git"
},
diff --git a/ppad-hkdf.cabal b/ppad-hkdf.cabal
@@ -1,6 +1,6 @@
cabal-version: 3.0
name: ppad-hkdf
-version: 0.2.1
+version: 0.3.0
synopsis: A HMAC-based key derivation function
license: MIT
license-file: LICENSE