@@ -8,81 +8,87 @@ All versions prior to 0.9.0 are untracked.
88
99## [ Unreleased]
1010
11- ### Added
11+ ## [ 4.0.0 ]
1212
13- * Added ` LogEntry._kind_version ` , which is now parsed earlier upon receipt from the rekor API,
14- either from the root of the response, or from the reponse's inner base64-encoded JSON ` body ` .
15- [ #1370 ] ( https://github.com/sigstore/sigstore-python/pull/1370 )
13+ This is a major release with a host of API and functionality changes. The major new feature
14+ is Rekor v2 support but many other changes are also included, see list below.
1615
17- * Added support for ed25519 keys.
18- [ #1377 ] ( https://github.com/sigstore/sigstore-python/pull/1377 )
19- * API: ` IdentityToken ` now supports ` client_id ` for audience claim validation.
16+ ### Added
17+
18+ * cli: Add ` --rekor-version ` to ` sign ` command arguments: This can be useful
19+ if Sigstore instance provides multiple Rekor versions and user wants to
20+ override the default choice
21+ [ #1471 ] ( https://github.com/sigstore/sigstore-python/pull/1471 )
22+ * cli: Support parallel signing. When multiple artifacts are signed, the Rekor
23+ requests are submitted in parallel: this is especially useful with Rekor v2.
24+ [ #1468 ] ( https://github.com/sigstore/sigstore-python/pull/1468 ) , [ #1478 ] ( https://github.com/sigstore/sigstore-python/pull/1478 ) ,
25+ [ #1485 ] ( https://github.com/sigstore/sigstore-python/pull/1485 )
26+ * oidc (API): Allow custom audience claims via API
2027 [ #1402 ] ( https://github.com/sigstore/sigstore-python/pull/1402 )
28+ * rekor (API): Support Rekor v2 (aka rekor-tiles) in both verification and signing.
29+ [ #1370 ] ( https://github.com/sigstore/sigstore-python/pull/1370 ) , [ #1422 ] ( https://github.com/sigstore/sigstore-python/pull/1422 ) ,
30+ [ #1432 ] ( https://github.com/sigstore/sigstore-python/pull/1432 )
31+ * trust (API): Make TrustedRoot, SigningConfig and ClientTrustConfig public API
32+ [ #1496 ] ( https://github.com/sigstore/sigstore-python/pull/1496 )
2133
22- * Added a ` RekorV2Client ` for posting new entries to a Rekor V2 instance.
23- [ #1400 ] ( https://github.com/sigstore/sigstore-python/pull/1422 )
34+ ### Changed
2435
25- * Added a function for determining the ` key_details ` of a certificate`.
26- [ #1456 ] ( https://github.com/sigstore/sigstore-python/pull/1456 )
36+ * cli: Improve verify UX when wrong instance is used
37+ [ #1510 ] ( https://github.com/sigstore/sigstore-python/pull/1510 )
38+ * deps: replace sigstore_protobuf_specs dependency with sigstore-models
39+ [ #1470 ] ( https://github.com/sigstore/sigstore-python/pull/1470 )
40+ * trust: Update embedded TUF root
41+ [ #1515 ] ( https://github.com/sigstore/sigstore-python/pull/1515 )
42+ * trust (API): TrustConfig now provides the ` production() ` and ` staging() ` helpers. Similar methods were removed from
43+ SigningConfig, TrustedRoot, SigningContext and Issuer. Use TrustConfig everywhere in code base.
44+ [ #1363 ] ( https://github.com/sigstore/sigstore-python/pull/1363 )
45+ * trust (API): support SigningConfig v0.2, remove support for v0.1. The new format now fully defines the
46+ sigstore instance the client uses. ` SigningConfig ` class now has methods to return actual clients
47+ (like RekorClient) instead of just URLs for that sigstore instance. The ` --trust-config ` cli option now
48+ expects the trust config to contain a v0.2 SigningConfig.
49+ [ #1358 ] ( https://github.com/sigstore/sigstore-python/pull/1358 ) , [ #1407 ] ( https://github.com/sigstore/sigstore-python/pull/1407 )
50+ * trust: Support ed25519 keys in trusted root
51+ [ #1377 ] ( https://github.com/sigstore/sigstore-python/pull/1377 )
2752
2853### Fixed
2954
30- * Avoid instantiation issues with ` TransparencyLogEntry ` when ` InclusionPromise ` is not present.
31-
32- * TSA: Changed the Timestamp Authority requests to explicitly use sha256 for message digests.
33- [ #1373 ] ( https://github.com/sigstore/sigstore-python/pull/1373 )
34-
35- * TSA: Correctly verify timestamps with hashes other than SHA-256. Currently supported
36- algorithms are SHA-256, SHA-384, SHA-512.
55+ * rekor: resolve circular import of LogEntry
56+ [ #1458 ] ( https://github.com/sigstore/sigstore-python/pull/1458 )
57+ * rekor: Fix checkpoint signature lookup when there are multiple signatures
58+ [ #1514 ] ( https://github.com/sigstore/sigstore-python/pull/1514 )
59+ * rekor: Fix entry handling so inclusion promise is optional
60+ [ #1382 ] ( https://github.com/sigstore/sigstore-python/pull/1382 )
61+ * rekor: Avoid trailing slash in post to /entries
62+ [ #1366 ] ( https://github.com/sigstore/sigstore-python/pull/1366 )
63+ * sign: fetch TSA timestamps before submitting an entry to Rekor
64+ [ #1463 ] ( https://github.com/sigstore/sigstore-python/pull/1463 )
65+ * timestamp: Specify sha256 in TSA timestamp request
3766 [ #1373 ] ( https://github.com/sigstore/sigstore-python/pull/1373 )
38-
39- * Fixed the certificate validity period check for Timestamp Authorities (TSA).
40- Certificates need not have an end date, while still requiring a start date.
67+ * trust: Fail less hard when trusted root contains unknown keys
68+ [ #1424 ] ( https://github.com/sigstore/sigstore-python/pull/1424 )
69+ * verify: Fix TSA cert chain construction (fixes issue in the case where certificate is not embedded in
70+ the timestamp)
71+ [ #1482 ] ( https://github.com/sigstore/sigstore-python/pull/1482 )
72+ * verify: Use TSA hash algorithm specified in the timestamp (SHA-256, SHA-384 and SHA-512 are supported)
73+ [ #1385 ] ( https://github.com/sigstore/sigstore-python/pull/1385 )
74+ * verify: Check artifact signing time against all established times
75+ [ #1381 ] ( https://github.com/sigstore/sigstore-python/pull/1381 )
76+ * verify: Handle unset TSA timestamp validity end
4177 [ #1368 ] ( https://github.com/sigstore/sigstore-python/pull/1368 )
4278
43- * Made Rekor client more compatible with Rekor v2 by removing trailing slashes
44- from endpoints ([ #1366 ] ( https://github.com/sigstore/sigstore-python/pull/1366 ) )
45-
46- * Verify: verify that all established times (timestamps or the log integration time)
47- are within the signing certificate validity period. At least one established time is
48- still required.
49- [ #1381 ] ( https://github.com/sigstore/sigstore-python/pull/1381 )
5079
51- * CI: Timestamp Authority tests use latest release, not latest tag, of
52- [ sigstore/timestamp-authority] ( https://github.com/sigstore/timestamp-authority )
53- [ #1377 ] ( https://github.com/sigstore/sigstore-python/pull/1377 )
80+ ## [ 3.6.5]
5481
55- * Tests: Updated the ` staging ` and ` sign_ctx_and_ident_for_env ` fixtures to use the new methods
56- for generating a ` SigningContext ` .
57- [ #1409 ] ( https://github.com/sigstore/sigstore-python/pull/1409 )
82+ ### Fixed
5883
84+ * Fixed verified time handling so that additional timestamps cannot break
85+ otherwise valid signature bundles ([ #1492 ] ( https://github.com/sigstore/sigstore-python/pull/1492 ) )
86+
5987### Changed
6088
61- * API:
62- * ` TrustedRoot ` , ` SigningConfig ` , and ` ClientTrustConfig ` are now exposed in
63- ` sigstore.models ` . [ #1496 ] ( https://github.com/sigstore/sigstore-python/pull/1496 )
64- * ` ClientTrustConfig ` now provides methods ` production() ` , ` staging() ` and ` from_tuf() `
65- to get access to current client configuration (trusted keys & certificates,
66- URLs and their validity periods). [ #1363 ] ( https://github.com/sigstore/sigstore-python/pull/1363 )
67- * ` SigningConfig ` now has methods that return actual clients (like ` RekorClient ` ) instead of
68- just URLs. The returned clients are also filtered according to ` SigningConfig ` contents.
69- [ #1407 ] ( https://github.com/sigstore/sigstore-python/pull/1407 )
70- * ` --trust-config ` now requires a file with SigningConfig v0.2, and is able to fully
71- configure the used Sigstore instance [ #1358 ] /(https://github.com/sigstore/sigstore-python/pull/1358 )
72- * By default (when ` --trust-config ` is not used) the whole trust configuration now
73- comes from the TUF repository [ #1363 ] ( https://github.com/sigstore/sigstore-python/pull/1363 )
74- * If the user provided TSA urls, rfc3161 timestamps are now fetched ** before** submitting
75- entries to rekor. [ #1463 ] ( https://github.com/sigstore/sigstore-python/pull/1463 )
89+ * Added cryptography 45 to list of compatible cryptography releases
90+ ([ #1498 ] ( https://github.com/sigstore/sigstore-python/pull/1498 ) )
7691
77- ### Removed
78- * API:
79- * ` Issuer.production() ` and ` Issuer.staging() ` have been removed: Use
80- ` Issuer() ` instead with relevant URL. The current public good production and
81- staging URLs are available via the ` ClientTrustConfig ` object.
82- [ #1363 ] ( https://github.com/sigstore/sigstore-python/pull/1363 )
83- * ` SigningContext.production() ` and ` SigningContext.staging() ` have been removed:
84- Use ` SigningContext.from_trust_config() ` instead.
85- [ #1363 ] ( https://github.com/sigstore/sigstore-python/pull/1363 )
8692
8793## [ 3.6.4]
8894
@@ -699,7 +705,9 @@ This is a corrective release for [2.1.1].
699705
700706
701707<!-- Release URLs -->
702- [ Unreleased ] : https://github.com/sigstore/sigstore-python/compare/v3.6.4...HEAD
708+ [ Unreleased ] : https://github.com/sigstore/sigstore-python/compare/v4.0.0...HEAD
709+ [ 4.0.0 ] : https://github.com/sigstore/sigstore-python/compare/v3.6.5...v4.0.0
710+ [ 3.6.5 ] : https://github.com/sigstore/sigstore-python/compare/v3.6.4...v3.6.5
703711[ 3.6.4 ] : https://github.com/sigstore/sigstore-python/compare/v3.6.3...v3.6.4
704712[ 3.6.3 ] : https://github.com/sigstore/sigstore-python/compare/v3.6.2...v3.6.3
705713[ 3.6.2 ] : https://github.com/sigstore/sigstore-python/compare/v3.6.1...v3.6.2
0 commit comments