Skip to content

crypto: add OriginSigningKey for the origin key ceremony#14

Merged
samjanny merged 2 commits into
mainfrom
feat/origin-signing-key
Jun 3, 2026
Merged

crypto: add OriginSigningKey for the origin key ceremony#14
samjanny merged 2 commits into
mainfrom
feat/origin-signing-key

Conversation

@samjanny
Copy link
Copy Markdown
Owner

@samjanny samjanny commented Jun 3, 2026

Deriving an OriginPubkey (and from it the onion address) from an origin seed had no public path: VerifyingKey construction from a seed is crate-private, and there was no origin signing-key type. A publisher ceremony needs seed -> OriginPubkey -> onion.

Add OriginSigningKey, matching PublisherSigningKey and RuntimeSigningKey (from_seed, verifying_key), but with no sign method: K_origin never signs documents in v1.0; it exists only so the onion address derives from it and origin.origin_pubkey can be checked against the address. Combine with OnionAddress::from_origin_pubkey (added in #13) for the full ceremony.

An end-to-end test derives the corpus origin seed through OriginSigningKey -> OriginPubkey -> from_origin_pubkey to the recorded public key and onion address, byte for byte.

Additive; crate 0.9.0 -> 0.10.0; Cargo.lock updated. Spec revision unchanged (rc.48). fmt, clippy -D warnings, doc -D warnings, and the full test suite are green with --locked.

samjanny added 2 commits June 3, 2026 12:18
Deriving an OriginPubkey (and from it the onion address) from an origin
seed had no public path: VerifyingKey construction from a seed is
crate-private, and there was no origin signing-key type. A publisher
ceremony needs seed -> OriginPubkey -> onion.

Add OriginSigningKey, matching PublisherSigningKey and RuntimeSigningKey
(from_seed, verifying_key), but with no sign method: K_origin never signs
documents in v1.0; it exists only so the onion address derives from it
and origin.origin_pubkey can be checked against the address.

An end-to-end test derives the corpus origin seed through
OriginSigningKey -> OriginPubkey -> from_origin_pubkey to the recorded
public key and onion address. Additive; crate 0.9.0 -> 0.10.0; Cargo.lock
updated; spec revision unchanged (rc.48).
@samjanny samjanny merged commit ba502f3 into main Jun 3, 2026
10 checks passed
@samjanny samjanny deleted the feat/origin-signing-key branch June 3, 2026 10:24
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