sigstore_verification/verifiers/
mod.rs1pub mod cosign;
2pub mod github;
3pub mod slsa;
4
5use crate::Result;
6use crate::bundle::ParsedBundle;
7use async_trait::async_trait;
8use std::path::Path;
9
10#[derive(Debug, Clone, Default)]
12pub struct Policy {
13 pub slsa_level: Option<u8>,
15 pub certificate_identity: Option<String>,
17 pub certificate_oidc_issuer: Option<String>,
19 pub signer_workflow: Option<String>,
21 pub allow_self_hosted: bool,
23 pub custom_policies: Vec<String>,
25}
26
27#[derive(Debug)]
29pub struct VerificationResult {
30 pub success: bool,
32 pub slsa_level: Option<u8>,
34 pub certificate_identity: Option<String>,
36 pub builder_identity: Option<String>,
38 pub messages: Vec<String>,
40}
41
42#[async_trait]
44pub trait Verifier: Send + Sync {
45 async fn verify(
47 &self,
48 bundle: &ParsedBundle,
49 artifact_path: &Path,
50 policy: &Policy,
51 ) -> Result<VerificationResult>;
52
53 fn verifier_type(&self) -> &'static str;
55}