v3.0.0
Maintainers' note: this is a major release, with significant public API and CLI
changes. We strongly recommend you read the entries below to fully
understand the changes between 2.x
and 3.x
.
Added
-
API:
Signer.sign_artifact()
has been added, replacing the removed
Signer.sign()
API -
API:
Signer.sign_dsse()
has been added. It takes an in-totoStatement
as an input, producing a DSSE-formatted signature rather than a "bare"
signature (#804) -
API: "v3" Sigstore bundles are now supported during verification
(#901) -
API:
Verifier.verify(...)
can now take aHashed
as an input, performing
signature verification on a pre-computed hash value
(#904) -
API: The
sigstore.dsse
module has been been added, including APIs
for representing in-toto statements and DSSE envelopes
(#930) -
CLI: The
--trust-config
flag has been added as a global option,
enabling consistent "BYO PKI" uses ofsigstore
with a single flag
(#1010) -
CLI: The
sigstore verify
subcommands can now verify bundles containing
DSSE entries, such as those produced by
GitHub Artifact Attestations
(#1015)
Removed
-
BREAKING API CHANGE:
SigningResult
has been removed.
The public signing APIs now returnsigstore.models.Bundle
. -
BREAKING API CHANGE:
VerificationMaterials
has been removed.
The public verification APIs now acceptsigstore.models.Bundle
. -
BREAKING API CHANGE:
Signer.sign(...)
has been removed. Use
eithersign_artifact(...)
orsign_dsse(...)
, depending on whether
you're signing opaque bytes or an in-toto statement. -
BREAKING API CHANGE:
VerificationResult
has been removed.
The public verification and policy APIs now raise
sigstore.errors.VerificationError
on failure. -
BREAKING CLI CHANGE: The
--rekor-url
and--fulcio-url
flags have been entirely removed. To configure a custom PKI, use
--trust-config
(#1010)
Changed
-
BREAKING API CHANGE:
Verifier.verify(...)
now takes abytes | Hashed
as its verification input, rather than implicitly receiving the input through
theVerificationMaterials
parameter
(#904) -
BREAKING API CHANGE:
VerificationMaterials.rekor_entry(...)
now takes
aHashed
parameter to convey the digest used for Rekor entry lookup
(#904) -
BREAKING API CHANGE:
Verifier.verify(...)
now takes asigstore.models.Bundle
,
instead of aVerificationMaterials
(#937) -
BREAKING CLI CHANGE:
sigstore sign
now emits{input}.sigstore.json
by default instead of{input}.sigstore
, per the client specification
(#1007) -
sigstore-python now requires inclusion proofs in all signing and verification
flows, regardless of bundle version of input types. Inputs that do not
have an inclusion proof (such as detached materials) cause an online lookup
before any further processing is performed
(#937) -
sigstore-python now generates "v3" bundles by default during signing
(#937) -
CLI: Bundles are now always verified offline. The offline flag has no effect.
(#937) -
CLI: "Detached" materials are now always verified online, due to a lack of
an inclusion proof. Passing--offline
with detached materials will cause
an error (#937) -
API:
sigstore.transparency
has been removed, and its pre-existing APIs
have been re-homed undersigstore.models
(#990) -
API:
oidc.IdentityToken.expected_certificate_subject
has been renamed
tooidc.IdentityToken.federated_issuer
to better describe what it actually
contains. No functional changes have been made to it
(#1016) -
API:
policy.Identity
now takes an optional OIDC issuer, rather than a
required one (#1015) -
CLI:
sigstore verify github
now requires--cert-identity
or
--repository
, not just--cert-identity
(#1015)