- Organisation
- switck
- Evidence role
- Repository patch
- Published
- not established
- Source changes
- 0
- Detected differences
- 0
- Unreviewed
- 0
- Copies held
- 1
Patch content for the open incident-response proposal. Kept separately from the conversation and review-state capture.
Every check is recorded, including checks that found no text change. A detected edit is therefore bounded between two checks. The publisher's exact save time is not observable from this record. Last checked 2 Aug 2026, 00:58 UTC.
Snapshot and diff bodies for this chain monitor are held in the local evidence archive but withheld from the public site because they can contain victim addresses. Integrity hashes, capture times and reviewed change summaries remain available below.
-
Recovered from the Internet Archive rather than captured by this project. The row records that third-party provenance separately from captures made by this project.
What changed from the previous capture 0 lines
Extracted text as captured
From 4c0ea35499ab72245b5c8d0252312c0baccfc668 Mon Sep 17 00:00:00 2001 From: "Javier G. Montoya S" <[email protected]> Date: Fri, 31 Jul 2026 17:42:44 -0400 Subject: [PATCH 1/5] add HMAC_DRBG (SP 800-90A 10.1.2, SHA-256), verified against NIST CAVP vectors Self-contained core for the RNG rework that follows: K/V state machine with instantiate, mixing reseed, and backtracking-resistant generate. No heap allocation and no failure paths -- HMAC is built directly on the SHA-256 backend the rest of libngu already uses (mbedtls or cifra, as in hash.c), because mbedtls' HMAC layer allocates and hardware SHA (MBEDTLS_SHA256_ALT) can fail at runtime; the latter is refused at compile time until a target proves its no-fail contract. Reseed interval and prediction resistance are deliberately omitted and documented: the consumer (random.c, next commits) mixes fresh entropy into every output instead. Secret-bearing temporaries are wiped via a volatile-store helper the optimizer cannot elide. Verified by a host-compiled harness (ngu_tests: make cavp, part of 'make tests') against official NIST CAVP vectors -- 12 vectors plus 2 derived partial-block KATs, run through BOTH SHA-256 backends. The vector extractor cross-checks every vector against an independent pure-python reference before emitting; vectors are checked in with provenance. --- .gitignore | 2 + ngu/hmac_drbg.c | 149 +++++++++++++++++++ ngu/hmac_drbg.h | 31 ++++ ngu/ngu_tests/Makefile | 24 ++- ngu/ngu_tests/gen_hmac_drbg_vectors.py | 196 +++++++++++++++++++++++++ ngu/ngu_tests/hmac_drbg_cavp.c | 46 ++++++ ngu/ngu_tests/hmac_drbg_cavp_vectors.h | 71 +++++++++ 7 files changed, 518 insertions(+), 1 deletion(-) create mode 100644 ngu/hmac_drbg.c create mode 100644 ngu/hmac_drbg.h create mode 100644 ngu/ngu_tests/gen_hmac_drbg_vectors.py create mode 100644 ngu/ngu_tests/hmac_drbg_cavp.c create mode 100644 ngu/ngu_tests/hmac_drbg_cavp_vectors.h diff --git a/.gitignore b/.gitignore index 35465d8..5881e0d 100644 --- a/.gitignore +++ b/.gitignoreExcerpt only. The complete copy is held offline and backs quotations on this site. The original publication remains the canonical public source.
Each copy above is identified by the SHA-256 of its extracted text, shown beside it, and the diffs are plain unified diffs. To verify a quotation, compare it against the page itself or against the Internet Archive's copies, which are independent of this project.
Complete captures are held offline rather than mirrored here, so this page shows diffs and excerpts. If a quotation is ever disputed, the full copy can be produced. Ask.
The SHA-256 prefixes above identify each held copy without turning this page into a mirror of somebody else's post. Compare a quotation against the original. If the post has since been edited or deleted, ask and the held copy can be produced.