mirror of
https://github.com/saymrwulf/fips205-source.git
synced 2026-09-04 20:03:45 +00:00
Round-7 review (both reviewers, independently) found that the ACVP provenance note said "the per-test private key `sk` dropped ... Nothing else altered" while the extraction had in fact also dropped `additionalRandomness` and `deferred` from all 42 tests, plus the top-level `isSample`. No field the tests consume was affected and no verdict changed — but the provenance block is the audit trail a third party diffs against, and as written it would have produced a false alarm or taught the next reviewer to wave differences through. Rather than reword the note, the transformation is now executable and pinned: tests/nist_acvp_vectors/extract_sha2_128s.py re-derives the file, verifies the upstream sha256 before doing anything, requires exactly 3 groups x 14 tests, removes exactly ONE field (`sk`) and asserts that invariant, carries every other per-test, group and top-level key through untouched, and writes canonical output. Run with no arguments it VERIFIES the committed file against a fresh extraction; --write regenerates. The file was regenerated with it, so "only `sk` removed" is now literally true and machine-checkable. Also from round 7, precision in the tests themselves: - exact assertions replace floors: `points == 108` (was >= 100), `with_ctx == 9` (was > 0), and prehash `3/4/7` (was `checked > 0`). With 7 of 14 prehash vectors skipped for unimplemented hash functions, a floor would have let real coverage fall from 3 to 1 while the total still summed to 14. - the randomized bridge's doc comment claimed corruption "across the WHOLE signature"; measured, the schedule hits 72 distinct positions in 11..=7779, never bytes 0-10 or 7780-7855. Corrected to the measured statement. Verified on stable Rust (rustc 1.95) as well as the pinned nightly: the bridge needs no nightly feature, so a third party can run all of it with cargo alone. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| nist_acvp_vectors | ||
| integration.rs | ||
| messages.rs | ||
| py_vectors.rs | ||