Repository navigation
Conversation
xgreenx
force-pushed
the
docs/ceremony-attestation-format
branch
2 times, most recently
from
August 20, 2026 01:27
e0d58d5 to
2844b68
Compare
Two places in the suite named a thing without saying what it is. This gives each a concrete definition an implementer can build from, and changes no decision already made. Common §9.1 fixes the attested data as a byte concatenation and the signature over it. The Notary Service signs off chain, where it holds the transcript, and verifies on chain, where it holds none: it derives the verification key from the attested-data-and-signature pair alone and decides whether that key is one it trusts. A caller-supplied digest, preimage hash, or verification key is refused, because a caller-computed digest authenticates whatever the caller hashed. The layout carries formatTag, platformId, operationTag, authorityId, createdAt, the two transcript lengths REQ-COMMON-36 requires, and per direction a list of revealed ranges with their offsets and a list of range commitments with theirs. It carries no Chain ID and no verifier identity: the attested data describes a session, not a destination, and binding it to one verifier would keep a newly registered version from checking attestations made before it existed. It carries no handle, account identifier, client identifier, or chain address either — each is already in the revealed ranges, and a second signed copy can disagree with the bytes it came from. Platform §2.1a replaces the criteria prose with the algorithm: five per-platform parameters, six ordered steps, and four rejection kinds. The published vector table becomes a cross-check on an implementation of that algorithm rather than its source, so a disagreement between the two is a defect in the table. REQ-COMMON-47..61, REQ-PLAT-61..74 and TEST-COMMON-24..26 are new here. Signed-off-by: xgreenx <xgreenx9999@gmail.com>
xgreenx
force-pushed
the
docs/ceremony-attestation-format
branch
from
August 20, 2026 01:43
2844b68 to
8220a5b
Compare
SupremaLex
added a commit
that referenced
this pull request
Oct 5, 2026
- drivePopup succeeds only once the popup requests Bridge's OAuth callback (local.ts BRIDGE + /auth/callback), seen as a navigation request so an immediate redirect onward still counts. Leaving the platform for another page keeps it waiting until its budget names the page; a Chrome error page or a popup closed before the return fails at once. - Waits inside a driver go through `pause`, which rejects with the driver's own reason when the wait would pass the 180 s budget, so GitHub's rate-limit and error-page backoffs report themselves instead of a generic timeout. The budget and the page's 8-minute outcome wait fit the 12-minute test timeout. - The page text reaches every driver lowercased with typographic apostrophes as plain ones; Google's own copy of that goes. - GitHub's authorize click has a 5 s timeout, ignores a failed click as X and Google do, and is not repeated within 5 s; the two-factor goto and the rate-limit reload ignore their errors, as github.rs does. - Session renewal hints say where libid-server-rs' `ceremony` lives: branch feat/live-ceremony-tests, libid-server-rs PR #12. stealth.js names presentAsPerson, which installs it. Assisted-by: Claude Opus 5.5 Signed-off-by: SupremaLex <georglutsenko@gmail.com>
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.
Stacked on #11. Review that one first — this diff shows only what it adds on top.
Two places in the suite named a thing without saying what it is. This gives each a concrete definition an implementer can build from. It changes no decision already made; #11 carries the corrections.
Common §9.1 — attestation format
The attested data becomes a byte concatenation, and the signature is over it. The split that makes the field list load-bearing: the Notary Service signs off chain, where it holds the transcript, and verifies on chain, where it holds none. So verification derives the key from the attested-data-and-signature pair alone and answers whether that key is currently trusted. A caller-supplied digest, preimage hash, or verification key is refused — a caller-computed digest authenticates whatever the caller hashed, not the bytes the Platform Verifier goes on to read.
The layout carries
formatTag,platformId,operationTag,authorityId,createdAt, the two transcript lengths REQ-COMMON-36 requires, and per direction a list of revealed ranges with their offsets and a list of range commitments with theirs.What it deliberately does not carry:
code_verifier, so replaying on another chain takes a preimage. Binding to a verifier identity would be worse than redundant: a newly registered Platform Verifier version could not check attestations made before it existed.Platform §2.1a — handle normalization
The criteria prose becomes the algorithm: five per-platform parameters, six ordered steps, four rejection kinds. The published vector table becomes a cross-check on an implementation of that algorithm rather than its source — so a disagreement between a vector and the algorithm is a defect in the vector table.
Notes
sentTranscriptLengthandrecvTranscriptLength; where docs(specs): on-chain verification path, two-attestation circuits, notary fee #11 says the verifier compares the attested authority, this PR namesauthorityId.