Repository navigation
Slice 144: N6 v0.1 verdicts (exit 7, the Ed25519 rule, the crossing) - #141
Merged
Merged
Conversation
…ding for a defect in verified bytes, the Ed25519 rule of r7 section 5.3, the v3-to-v4 crossing reported, no legacy row after an N6 row) Signed-off-by: Ayla Croft <aylacroft@proton.me>
…untime, and the tests no longer assume the runtime does Ed25519 Signed-off-by: Ayla Croft <aylacroft@proton.me>
…vers is exit 7, noncanonical 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 144: N6 v0.1 verdicts. A defect in bytes a verified signature covers is the signer's act (exit 7). Ed25519 is held to the publisher's rule. A receipt chain's crossing from v3 to v4 is reported.
What changes
Exit 7 (draft v0.1-r7 sections 9.2 and 9.3).
Trinity.N6.Carrier.verify/2reads the body only after the signature verifies. The first defect met there answers{:error, 7, {verdict, [nonconforming: code]}}:accuse_single_signed_noncanonicalfor a codec defect (D0 to D18);accuse_single_signed_nonconformingotherwise.Judging stops at the first defect, so there is at most one finding. With
schemas:the whole body is checked (B1 to B8).Receipts.
Trinity.Receipts.V4verifies a row's or checkpoint's carrier before decoding its body. A defect in a signed body was always exit 1 before; it is now exit 7.mix trinity.receipts.verifyandbin/verify_receipt.exsgain exit 7.finding: nonconforming <code>, thenverdict_code: <code>last.Ed25519 (r7 section 5.3, decided 2026-10-21).
key_invalid).signature_invalid).The crossing (r7 section 3.9). The first v4 row after a v2 or v3 row adds the finding
{:crossing, seq}. A v2 or v3 row after a v4 row is refused,{:legacy_after_n6, seq}. Both names are Trinity's until the profile names them.Evidence
test/trinity/n6/verdicts_test.exsandtest/trinity/receipts/verdicts_test.exs: 8 tests. Copied ontomain(54498d5), 0 of 8 pass, each for the reason named in the slice. On this branch, 8 of 8.test/support/ed25519_points.ex, an oracle independent of the module under test. It reproduces RFC 8032 test 1's public key from its seed.test/fixtures/n6: a format control in a signed body, R the identity, and the identity key.ed25519_no_issueranded25519_typ_schema_mismatchnow expect exit 7 with one finding.test/trinity/n6,test/trinity/receipts,test/trinity/cryptoandtest/mix: 279 passed.