Skip to content

fulciotest: a test Sigstore whose certificates carry Fulcio's extensions - #38

Merged
aledbf merged 2 commits into
mainfrom
fulciotest
Oct 13, 2026
Merged

aledbf merged 2 commits into
mainfrom
fulciotest

Conversation

@aledbf

@aledbf aledbf commented Oct 13, 2026 •

Copy link
Copy Markdown
Contributor

After S5 a verifier must pin the source repository (any repository may call a public reusable builder and be issued its SAN), and its tests need certificates that carry one. sigstore-go's VirtualSigstore mints a leaf with only the issuer.

fulciotest.New() keeps the VirtualSigstore's Rekor, CT log and TSA, and brings its own Fulcio CA (FulcioCertificateAuthorities overridden):

  • SignAtTime(san, ext, artifact, at): a message signature with a hashedrekord entry and inclusion promise, as cosign sign-blob makes;
  • AttestAtTime(san, ext, body, at, proof): DSSE, with or without the inclusion proof;
  • the leaf has a URI SAN, the issuer in both OIDs, and the v2 extensions (SourceRepositoryURI/Ref/Digest, BuildSignerURI/Digest, BuildConfigURI, RunnerEnvironment, BuildTrigger) plus the deprecated workflow-repository OID that cosign's --certificate-github-workflow-repository reads.

The test pins SourceRepositoryURI and BuildConfigURI with sigstore-go's own verifier: the own repository passes, another repository with the builder's SAN fails, and so does a certificate that names no source (planted: without the pin both of those pass). It also checks the SAN, a non-URI SAN, a missing issuer, and signing after Fulcio's validity.

Also: grpc v1.83.1 and x/net v0.60.0. rekor brings them into the graph, and vulngate flags called vulnerabilities in the old ones (GO-2026-6348, -6603, -6611, -6612, -6617).

task lint, task mutate (0 survived).

🤖 Generated with Claude Code


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.

aledbf and others added 2 commits October 13, 2026 14:37
A verifier of a reusable builder must pin the source repository, since any
repository may call a public reusable workflow and be issued its SAN. Its tests
need certificates that say a source repository, which sigstore-go's
VirtualSigstore does not mint. fulciotest keeps the VirtualSigstore's Rekor, CT
log and TSA and brings its own Fulcio CA: SignAtTime (a hashedrekord entry, as
cosign sign-blob's) and AttestAtTime (DSSE, with or without the inclusion
proof), each for a URI SAN and a certificate.Extensions.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@aledbf
aledbf merged commit 33b66d7 into main Oct 13, 2026
1 check passed
@aledbf
aledbf deleted the fulciotest branch October 13, 2026 17:43
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.

1 participant