Skip to content

spec(port): port the padding block cipher mode uniformity guard (Refs #8884) - #9752

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

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

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). Twenty-eighth W2 target delivered: the ciphertext-uniformity rules — batch ceiling (4096), per-block size check (16), zero-block probe, entropy floor (3.0 bits/byte), repeated-hash scan ([32]u8) and repeated-index scan (u64) — D5 verdict carrying idx / got / bound / got_f / bound_f for every variant, original rule order, all ten PBCU tests transcribed plus helper and rule-order tests (12 total, 0 vacuous). Vec block data → fixed [16]u8 + its length (the bytes stay; the zero probe reads them); Shannon entropy arrives caller-computed — the lane convention for statistics over byte buffers, and here a necessity: the t27c gen-rust backend does not yet lower @log (zero-arity .log() call, E0061 under rustc) while native t27b computes it fine (probed; documented). Both BTreeSet dedups → visited-scans. Fixture blocks' entropies are exact: the original's (i·79+seed) walks give sixteen distinct bytes = 4.0 bits. 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.

…HashTag#8884)

The twenty-eighth W2 target of the CR-CHAT-04 ring tracker: the
ciphertext-uniformity rules - the batch ceiling, then per block
the size check, the zero-block probe, the entropy floor, the
repeated-hash scan and the repeated-index scan - as the D5
verdict with every payload field, the original's rule order,
and all ten PBCU tests transcribed plus helper and rule-order
tests.

The original's Vec<u8> block data becomes the fixed [16]u8 form
plus its length (the bytes stay; the zero probe reads them), and
the Shannon entropy arrives as a number the caller computed - the
lane convention for statistics over byte buffers, and here a
necessity: the t27c gen-rust backend does not yet lower @log
(zero-arity .log() call, E0061 under rustc) while the native
backend computes it fine. Both BTreeSet dedups become scans.

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-aa

# 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