Skip to content

Close #1251: Allow no transparency-log entries - #1252

Open
anthonydahanne wants to merge 5 commits into
sigstore:mainfrom
anthonydahanne:issue-1251-keylessverifier-private
Open

Close #1251: Allow no transparency-log entries#1252
anthonydahanne wants to merge 5 commits into
sigstore:mainfrom
anthonydahanne:issue-1251-keylessverifier-private

Conversation

@anthonydahanne

@anthonydahanne anthonydahanne commented Jul 23, 2026

Copy link
Copy Markdown
  • Add support for verifying bundles without transparency-log entries, relying on signed RFC 3161 timestamps.

Summary

Solves #1251

Release Note

  • Added VerificationOptions.allowNonTransparencyLogVerification() (default false): when enabled, KeylessVerifier verifies bundles that contain no transparency-log entry, relying on a signed RFC 3161 timestamp for trusted time. A transparency-log entry that is present is still fully verified — the option only relaxes the requirement that one exists.
  • Added a --allow-non-transparency-log flag to the sigstore-cli verify command exposing the same option.
  • Default behaviour is unchanged: a transparency-log entry remains required unless the option is set.

Documentation

Verifying a bundle that has no transparency-log entry (e.g. a GitHub artifact attestation from a private repository, signed by GitHub's non-public-good Sigstore instance) now works by opting in:

  • Library: VerificationOptions.builder().allowNonTransparencyLogVerification(true).build(), with a trusted root supplied via KeylessVerifier.builder().trustedRootProvider(...).
  • CLI: sigstore-cli verify <artifact> --bundle <bundle> --trusted-root <root> --allow-non-transparency-log --certificate-identity <san> --certificate-oidc-issuer <issuer>.

The bundle must still carry a valid RFC 3161 timestamp, and enabling the option reduces assurance (no transparency-log monitorability), so it should only be used for instances that intentionally do not publish to a log. Covered by the new Javadoc on the option and the CLI --help

No separate docs.sigstore.dev change is required, but happy to open one if preferred.

@loosebazooka loosebazooka left a comment

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.

I think this mostly looks alright. Would be nice to reduce the verbosity on the code comments.

Comment thread sigstore-java/src/main/java/dev/sigstore/VerificationOptions.java Outdated
Comment thread sigstore-cli/src/main/java/dev/sigstore/cli/Verify.java Outdated
Comment thread sigstore-java/src/main/java/dev/sigstore/bundle/BundleReader.java Outdated
Comment thread sigstore-java/src/main/java/dev/sigstore/fulcio/client/FulcioVerifier.java Outdated
Comment thread sigstore-java/src/main/java/dev/sigstore/KeylessVerifier.java Outdated
Comment thread sigstore-java/src/main/java/dev/sigstore/KeylessVerifier.java
anthonydahanne added a commit to anthonydahanne/sigstore-java that referenced this pull request Jul 24, 2026
* Add support for verifying bundles without transparency-log entries, relying on signed RFC 3161 timestamps.

Signed-off-by: Anthony Dahanne <anthony.dahanne@gmail.com>
* bundles without transparency log entries

Signed-off-by: Anthony Dahanne <anthony.dahanne@gmail.com>
Signed-off-by: Anthony Dahanne <anthony.dahanne@gmail.com>
@anthonydahanne
anthonydahanne force-pushed the issue-1251-keylessverifier-private branch from 75bdd89 to 8de4432 Compare July 27, 2026 16:32
@anthonydahanne
anthonydahanne marked this pull request as ready for review July 27, 2026 16:32
Comment thread sigstore-java/src/main/java/dev/sigstore/KeylessVerifier.java Outdated
Comment thread sigstore-java/src/main/java/dev/sigstore/bundle/BundleReader.java Outdated
Comment thread sigstore-java/src/main/java/dev/sigstore/fulcio/client/FulcioVerifier.java Outdated
anthonydahanne added a commit to anthonydahanne/sigstore-java that referenced this pull request Jul 28, 2026
* Only when there are no CT Logs (private deployment) we can skip SCT verification
* Only when there are no CT Logs (private deployment) we can skip SCT verification

Signed-off-by: Anthony Dahanne <anthony.dahanne@gmail.com>
@anthonydahanne
anthonydahanne force-pushed the issue-1251-keylessverifier-private branch from bc70a8f to 50de35f Compare July 28, 2026 15:55

@loosebazooka loosebazooka left a comment

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.

sorry one final pass I think. But otherwise looks good

Comment thread sigstore-java/src/test/java/dev/sigstore/KeylessVerifierTest.java Outdated
Comment thread sigstore-java/src/main/java/dev/sigstore/fulcio/client/FulcioVerifier.java Outdated
Comment thread sigstore-java/src/test/java/dev/sigstore/KeylessVerifierTest.java Outdated
anthonydahanne added a commit to anthonydahanne/sigstore-java that referenced this pull request Jul 29, 2026
* no need for zipped file
* remve un needed method
* no need for zipped file
* remve un needed method

Signed-off-by: Anthony Dahanne <anthony.dahanne@gmail.com>
@anthonydahanne
anthonydahanne force-pushed the issue-1251-keylessverifier-private branch from 019f7bc to 400f676 Compare July 29, 2026 20:58
@anthonydahanne

Copy link
Copy Markdown
Author

hopefully this is good this time 🤞 - some reformatting stuff I don't really like, but hey, linter is always right 😅

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.

2 participants