Repository navigation
Slice 142: N6 codec and code registry aligned to draft v0.1-r7 - #140
Merged
Merged
Conversation
… draft v0.1-r7: the text rule on pinned Unicode 15.0.0 tables, the profile's step order, r7's codes, agreement with the publisher's cut vectors) Signed-off-by: Ayla Croft <aylacroft@proton.me>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Slice 142: Trinity's N6 codec and code registry follow the profile's draft v0.1-r7, and agree with every vector the publisher has cut.
What changes
scripts/unicode15_tables.exs,lib/trinity/n6/unicode15.ex). Unassigned code points, format controls (Cf), out-of-order combining marks and NFC quick check No or Maybe are refused. No Unicode normaliser runs anywhere inlib/trinity/n6/; the runtime's Unicode data is never read.typis checked first and selects the label set. New codesheader_missingandheader_value_invalid; the hash-envelope label set is checked. An Ed25519 key must decode strictly (RFC 8032 section 5.1.3).field_missing,field_type_mismatch,value_out_of_range,text_grammar_mismatch, ...). Each code records the steps that emit it. Onlyalg_unavailableand the encoder'svalue_not_n6are Trinity's own.LICENSES/Unicode-3.0.txtfor the embedded tables.Evidence
TRINITY_N6_PUBLISHER_VECTORS=<Requisition vectors/n6 at 173487c9> mix test test/trinity/n6/publisher_vectors_test.exs: encoding 347/347, body 124/124, header 85/85, thumbprint 18/18, digest 19/19. The set'sSHA384SUMSis checked first. A planted wrong expectation was reported by name.mainthe same encoding vectors gave 245 of 295 negatives (the text rule and the key-head order).TRINITY_UCD_DIR=<UCD 15.0.0> mix test test/trinity/n6/r7_alignment_test.exs: the generator rewrites the module byte for byte. The counts match r7 (Cf 170, NFC_QC No 1,120, Maybe 111, Cn 825,345).scripts/n6_vectors.exs).Not in this PR: exit 7 for a defect after a verified signature, the small-order Ed25519 rule, and the v3-to-v4 crossing (slice 144).