Skip to content

spec(port): port the padding key derivation uniqueness guard (Refs #8884) - #9755

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

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

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). Thirty-first W2 target delivered: the key-uniqueness rules — batch ceiling (65536), per-derivation empty-label probe, key-length check (32), zero-key probe, strictly-increasing index (u64), repeated-key scan ([32]u8) — D5 verdict carrying got / bound / got64 for every variant (the offending index rides got64 for IndexNotIncreasing and ZeroKey), original rule order, all ten PKDU tests transcribed plus helper and rule-order tests (12 total, 0 vacuous). Vec key → fixed [32]u8 + its length (bytes stay; zero probe and dedup read them); String label → its length (the only property any rule reads); BTreeSet → visited-scan; the boundary fixture's LE index bytes come out of the identity byte table — no narrowing anywhere. t27b 12/12 native; t27c 12/12; 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.

…ashTag#8884)

The thirty-first W2 target of the CR-CHAT-04 ring tracker: the
key-uniqueness rules - the batch ceiling, then per derivation
the empty-label probe, the key-length check, the zero-key probe,
the strictly-increasing index and the repeated-key scan - as the
D5 verdict with every payload field, the original's rule order,
and all ten PKDU tests transcribed plus helper and rule-order
tests.

The original's Vec<u8> key becomes the fixed [32]u8 form plus its
length, the String label becomes its length - the only property
any rule reads. The BTreeSet dedup becomes a scan over the
visited derivations; the boundary fixture's little-endian index
bytes come out of the identity byte table, no narrowing anywhere.

Checks (conventions 0-14): t27b test 12 passed 0 failed; t27c
test-report 12/12, 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-ad

# 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.

@gHashTag

Copy link
Copy Markdown
Owner

Landing in #10176 from a maintainer branch: the commits are unchanged, plus one commit that swaps keys_equal for the shared ids32_equal (#10161).

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.

2 participants