pub enum RegistryProvenanceCapability {
ChecksumOnly,
CryptographicProvenance,
FullTrustChain,
}Expand description
Provenance capability levels supported by a package registry.
Registries evolve at different speeds. This enum captures the highest SLSA Dependencies level a registry’s infrastructure can currently support, allowing controls to skip dependencies from registries that lack the required infrastructure rather than producing false positives.
Current ecosystem status (as of March 2026):
- npm (
registry.npmjs.org): L3 — Sigstore keyless signing + Rekor. GA since Oct 2023, 134+ high-impact projects adopted. - PyPI (
pypi.org): L3 — Trusted Publishers + Sigstore attestations (Fulcio + Rekor, same stack as npm). 17% of uploads include attestations. Packages with attestations provide full L3: signer identity (publisher.repository + Fulcio cert SAN) and Rekor transparency log. - Maven Central: L3 capability — Sigstore
.sigstore.jsonvalidation added Jan 2025 (opt-in). PGP.ascstill mandatory. Very low Sigstore adoption. No dedicated query API (URL convention only). - crates.io: L1 only — SHA-256 checksums in Cargo.lock. Trusted Publishing (RFC #3691) covers auth only; Sigstore RFC #3403 proposed but not merged.
- Go (
proxy.golang.org): L1 only —sum.golang.orgprovides tamper-evident checksum log but no provenance/signing. - NuGet (
nuget.org): L1 — X.509 signing exists but no Sigstore/attestation API at registry level.
Variants§
ChecksumOnly
L1: integrity only (checksum). No cryptographic signing infrastructure.
CryptographicProvenance
L2: cryptographic signature + source provenance available.
FullTrustChain
L3: signature + signer identity + transparency log available.
Trait Implementations§
Source§impl Clone for RegistryProvenanceCapability
impl Clone for RegistryProvenanceCapability
Source§fn clone(&self) -> RegistryProvenanceCapability
fn clone(&self) -> RegistryProvenanceCapability
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for RegistryProvenanceCapability
impl Debug for RegistryProvenanceCapability
Source§impl Ord for RegistryProvenanceCapability
impl Ord for RegistryProvenanceCapability
Source§fn cmp(&self, other: &RegistryProvenanceCapability) -> Ordering
fn cmp(&self, other: &RegistryProvenanceCapability) -> Ordering
1.21.0 · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Compares and returns the maximum of two values. Read more
Source§impl PartialEq for RegistryProvenanceCapability
impl PartialEq for RegistryProvenanceCapability
Source§fn eq(&self, other: &RegistryProvenanceCapability) -> bool
fn eq(&self, other: &RegistryProvenanceCapability) -> bool
Tests for
self and other values to be equal, and is used by ==.Source§impl PartialOrd for RegistryProvenanceCapability
impl PartialOrd for RegistryProvenanceCapability
impl Copy for RegistryProvenanceCapability
impl Eq for RegistryProvenanceCapability
impl StructuralPartialEq for RegistryProvenanceCapability
Auto Trait Implementations§
impl Freeze for RegistryProvenanceCapability
impl RefUnwindSafe for RegistryProvenanceCapability
impl Send for RegistryProvenanceCapability
impl Sync for RegistryProvenanceCapability
impl Unpin for RegistryProvenanceCapability
impl UnsafeUnpin for RegistryProvenanceCapability
impl UnwindSafe for RegistryProvenanceCapability
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
Mutably borrows from an owned value. Read more