Skip to content

SigstoreBundle::verify(&trust_bundle, artifact_digest) — in-library offline bundle verify #231

Description

@avrabe

Split off from #219 / REQ-23 (real offline keyless verification), which landed the offline engine for AirGappedVerifier but deliberately deferred this second public API.

Ask

container::bundle::SigstoreBundle (src/lib/src/container/bundle.rs) is currently export-only (serialization adapter so external cosign verify-blob --bundle can consume wsc signatures). There is no in-library verify — CosignDelegator only shells out to the cosign binary and only handles registry image refs.

Add SigstoreBundle::verify(&self, trust_bundle: &airgapped::TrustBundle, artifact_digest: &[u8; 32]) -> Result<...> that decodes the bundle's x509_certificate_chain + tlog_entries, reconstructs a KeylessSignature-equivalent, and delegates to the same offline engine REQ-23 built (CertificatePool::from_pem_authorities + RekorKeyring::from_pem_logs + P-256 verify_prehash + verify_rekor_body_binds_to_bundle). It must reuse that engine, not reimplement it.

Why separate from REQ-23

It's a second public API on a different type with its own DER-decode/bundle-format path; keeping it out kept REQ-23's verifier change focused and reviewable. Scoped as its own requirement so the bundle-format edge cases (v0.3 protobuf JSON shape, tlog entry selection) get their own tests.

Depends on

REQ-23 (merged, main 255a597) — the offline engine this delegates to.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions