pub struct Proven<'a> { /* private fields */ }Expand description
Proof that a PublishRequest’s identity has been established —
RFC-ACDP-0003 §2.1 steps 1–8 (schema/hash validation, DID resolution,
signature verification) plus the RFC-ACDP-0014 §5 step 2 self-revocation
check, whichever of those the request’s context_type and the
registry’s acdp_version require — but nothing has been persisted yet.
Produced only by a successful RegistryServer::prove_publish_identity /
RegistryServer::prove_publish_identity_did_key /
RegistryServer::prove_publish_identity_pinned call — there is no
public constructor, so a caller cannot manufacture one from an
unverified request. Not Clone: a Proven that outlived its single
intended RegistryServer::commit_proven call risks being committed
twice against different tenants/idempotency keys, so this is a
move-only, “prove once, commit once” value.
Borrows req rather than owning a clone — the did:web caller already
holds an owned request across its .await, and the did:key caller
already clones into its blocking closure, so an owned Proven would
force a needless clone on the async path for no benefit on the sync
one.
Implementations§
Source§impl<'a> Proven<'a>
impl<'a> Proven<'a>
Sourcepub fn request(&self) -> &PublishRequest
pub fn request(&self) -> &PublishRequest
The request this proof was established for.
Sourcepub fn key_fingerprint(&self) -> Option<&str>
pub fn key_fingerprint(&self) -> Option<&str>
The verified producer key’s fingerprint, when one was computed.
Computed only when the registry has a receipt signer configured
(RFC-ACDP-0010) or req is a key-revocation subject to the
RFC-ACDP-0014 §5 step 2 self-sign check — None otherwise, exactly
mirroring the conditions the pre-Proven publish pipeline already
used to decide whether fingerprinting was worth its cost.