pub struct SigstoreVerifier { /* private fields */ }Expand description
The Sigstore check, in-process, against the public-good trusted root sigstore-trust-root
embeds.
It checks everything gh attestation verify does: the certificate chain to Fulcio, the
certificate transparency SCT, the Rekor inclusion proof, checkpoint and SET, the
certificate’s validity at the logged time, the DSSE signature, and the in-toto subject
against the artifact’s digest. Then the signer: the certificate identity and issuer through
the policy, and the statement’s predicate type after it.
§The root is as old as this build
The root is the one sigstore-trust-root embedded when this crate’s pin was last bumped,
and nothing refreshes it at run time (tuf is off; see Cargo.toml). A bundle logged to a
Rekor shard or signed under a key newer than the root is refused like a tampered one. Each
client fetches its own version’s daemon, so the release workflow is where that would
surface: it verifies the bundle it just produced with this type before it publishes
anything (tests/release_bundle.rs), and a refusal there means bumping the pin, not
turning a check off.
Implementations§
Source§impl SigstoreVerifier
impl SigstoreVerifier
Sourcepub fn public_good() -> Result<SigstoreVerifier, String>
pub fn public_good() -> Result<SigstoreVerifier, String>
A verifier over the embedded public-good trusted root. Fails only if that root doesn’t parse, which a test below would have caught first.
Trait Implementations§
Source§impl AttestationVerifier for SigstoreVerifier
impl AttestationVerifier for SigstoreVerifier
Source§fn verify(
&self,
bundle: &str,
artifact: &[u8],
signer: &Signer,
) -> Result<(), String>
fn verify( &self, bundle: &str, artifact: &[u8], signer: &Signer, ) -> Result<(), String>
bundle proves artifact was attested by signer: the certificate chain, the
transparency log evidence, the signature over the artifact’s digest, the certificate
identity and issuer, and the predicate type.Auto Trait Implementations§
impl Freeze for SigstoreVerifier
impl RefUnwindSafe for SigstoreVerifier
impl Send for SigstoreVerifier
impl Sync for SigstoreVerifier
impl Unpin for SigstoreVerifier
impl UnsafeUnpin for SigstoreVerifier
impl UnwindSafe for SigstoreVerifier
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more