Skip to content

feat: add RFC 3161 Timestamp Authority support for PKI signing#620

Open
SequeI wants to merge 1 commit intosigstore:mainfrom
SequeI:addTSA
Open

feat: add RFC 3161 Timestamp Authority support for PKI signing#620
SequeI wants to merge 1 commit intosigstore:mainfrom
SequeI:addTSA

Conversation

@SequeI
Copy link
Copy Markdown
Contributor

@SequeI SequeI commented Mar 6, 2026

Summary

Add optional --tsa-url flag to key, certificate, pkcs11-key, and pkcs11-certificate signing commands. When provided, the signature bundle includes a trusted timestamp from the specified TSA.

The verifier uses the TSA timestamp (when present) to validate certificate chains, enabling signature verification even after the signing certificate has expired - as long as the signature was created while the certificate was valid.

  • Add request_timestamp() and get_timestamp_from_bundle() to sign_sigstore_pb.py
  • Update all PKI signers to accept tsa_url parameter
  • Update certificate verifier to use TSA timestamp for validation
  • Add --tsa-url CLI option to all PKI signing commands
  • Update README and CHANGELOG with documentation

Closes #603

Checklist
  • All commits are signed-off, using DCO
  • All new code has docstrings and type annotations
  • All new code is covered by tests. Aim for at least 90% coverage. CI is configured to highlight lines not covered by tests.
  • Public facing changes are paired with documentation changes
  • Release note has been added to CHANGELOG.md if needed

Add optional --tsa-url flag to key, certificate, pkcs11-key, and
pkcs11-certificate signing commands. When provided, the signature
bundle includes a trusted timestamp from the specified TSA.

The verifier uses the TSA timestamp (when present) to validate
certificate chains, enabling signature verification even after
the signing certificate has expired - as long as the signature
was created while the certificate was valid.

- Add request_timestamp() and get_timestamp_from_bundle() to
  sign_sigstore_pb.py
- Update all PKI signers to accept tsa_url parameter
- Update certificate verifier to use TSA timestamp for validation
- Add --tsa-url CLI option to all PKI signing commands
- Update README and CHANGELOG with documentation

Signed-off-by: SequeI <asiek@redhat.com>
@SequeI SequeI requested review from a team as code owners March 6, 2026 15:58
Copy link
Copy Markdown
Contributor

@stefanberger stefanberger left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Comment on lines +32 to +33
from rfc3161_client import decode_timestamp_response
from sigstore._internal.timestamp import TimestampAuthorityClient
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We use qualified imports throughout the library rather than importing the name directly. So, we'd spell out rfc3161_client.decode_timestamp_reponse at use site and here just do import rfc3161_client (and similar for the Sigstore import).

At the same time, we should not rely on internals. We should probably first request that this symbol is made public in sigstore-python and then revisit this if there's no public equivalent currently.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

RFC 3161 Timestamp Authority Support for Certificate Signing

3 participants