Skip to content

spec(port): port the padding nonce reuse detection guard (Refs #8884) - #9709

Closed
dmitrii-f-t27 wants to merge 2 commits into
gHashTag:masterfrom
dmitrii-f-t27:port/cr-chat-04-wave2-s
Closed

dmitrii-f-t27 wants to merge 2 commits into
gHashTag:masterfrom
dmitrii-f-t27:port/cr-chat-04-wave2-s

Conversation

@dmitrii-f-t27

Copy link
Copy Markdown
Contributor

Refs #8884 (CR-CHAT-04 ring tracker). Parent epic: gHashTag/trios#1812 (W2, own lane, T-PORT). Twentieth W2 target delivered: the nonce-reuse rules for padding AEAD — batch ceiling (10000), per-record zero-key probe, zero-nonce probe, nonce-value ceiling (BE-u64 of the last eight nonce bytes <= 2^48 - 1) and the repeated (key_id, nonce) pair scan — D5 verdict carrying idx / got / bound for every variant, original rule order, all ten PNRD tests transcribed plus helper and rule-order tests (14 total, 0 vacuous). BTreeSet → visited-records scan; nonce value folded byte by byte through the int-widening @as (u8 → u64) — no shift-and-truncate anywhere. t27b 14/14 native; t27c 14/14; gen-rust compiles under rustc (0 errors, 0 &'static str, 0 Vec<const); coverage Untested 0; seal all hashes MATCH; ledger row included (pass, non-pass untouched). Dedup checked. Sequencing: one-line ledger rebase if the earlier lane PRs land first — I take it on request.

…ag#8884)

The twentieth W2 target of the CR-CHAT-04 ring tracker: the
nonce-reuse rules for padding AEAD - the batch ceiling, then per
record the zero-key probe, the zero-nonce probe, the nonce-value
ceiling and the repeated-pair scan - as the D5 verdict with every
payload field, the original's rule order, and all ten PNRD tests
transcribed plus helper and rule-order tests.

The original's BTreeSet of (key_id, nonce) pairs becomes a scan
over the visited records. The nonce value is the big-endian u64 of
the nonce's last eight bytes, folded byte by byte through the
int-widening cast - no shift-and-truncate anywhere.

Checks (conventions 0-14): t27b test 14 passed 0 failed; t27c
test-report 14/14, 0 vacuous; gen-rust output compiles under rustc;
coverage Untested 0; ASCII only; seal saved, all hashes MATCH;
@dmitrii-f-t27

Copy link
Copy Markdown
Contributor Author

Merge request for the gHashTag merger: steward READY (required all SUCCESS — validate, check-linked-issue, parse-ratchet, t27b-native-linux, t27b-native-macos; the red ones are non-required per Q16 and red on master too). Ledger row included; one-line rebase if the earlier lane PRs land first — I take it on request.

…ave2-s

# Conflicts:
#	docs/reports/t27b_expectations.json
@dmitrii-f-t27

Copy link
Copy Markdown
Contributor Author

Superseded by #10175: the remaining CR-CHAT targets now land as one port-wave batch per specs/policy/pr_budget.t27 (#10067/#10074), which asks for one PR per ring batch instead of one per file. The spec body, seal and ledger row in this PR are unchanged there; the batch also carries one self-consistent duplicate-body bless. Closing this one-file PR keeps the merge queue and the Actions queue small.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant