(04) Writing
Notes, working ones.
Short pieces on Rust, cryptography, agent tooling, and the unglamorous parts of building software. Nothing polished — just things worth writing down.
-
Skipping the releases that change nothing
A published version is a promise about bytes, not a diary of work. Here's why some of gm-crypto-rs's hardest cycles were never published at all. Read →
-
Keeping unsafe out of the default build
The fast paths needed unsafe. Rather than let them into the core, they live in a crate you opt into — so the default build stays #![forbid(unsafe_code)]. Read →
-
Conformance is byte-identity, or it's nothing
Crypto tests don't ask whether the output looks right. They ask whether it's the same bytes as a reference under the same mode semantics — the subtle half. Read →
-
Catching constant-time regressions in CI
Constant-time is easy to satisfy once and lose without noticing. Here's the CI tripwire that fails the build when a leak creeps back — a detector, not a proof. Read →
-
Starting a notebook
Short, working notes on Rust, cryptography, and agent tooling — and the unglamorous parts of building software. Read →