Goal
Let a release pipeline sign the provenance without storing a long-lived private key, using the runner's OIDC identity — so the signature proves "built and sealed by GitHub Actions for repo X", not "someone had release.key".
Scope
sorseal sign --oidc: mint a short-lived signing key, exchange a GitHub OIDC token (via actions/id-token) for a code-signing certificate (Sigstore-fulcio), sign the DSSE envelope, and upload to the transparency log (rekor).
sorseal verify-attestation --public-key extended to validate the signed certificate chain and the rekor inclusion proof (no runtime network dependency by default — offline verification of a cached bundle).
- Document the trust model: what OIDC signing proves vs. Ed25519 key signing (already shipped).
Why
Phase 3 gives a keyed signature; the key must be secured (air-gapped or CI secret). OIDC keyless signing removes the key-management burden for Wave teams on GitHub Actions while keeping the attestation verifiable by anyone.
Success criteria
- A workflow using
actions/oidc-mint-token produces a signature whose identity claims (repo/ref/workflow) verify against the OIDC issuer.
- Verification fails if the OIDC token was issued for a different repo/ref.
- The core
record/verify path stays offline — OIDC is opt-in via --oidc.
Goal
Let a release pipeline sign the provenance without storing a long-lived private key, using the runner's OIDC identity — so the signature proves "built and sealed by GitHub Actions for repo X", not "someone had release.key".
Scope
sorseal sign --oidc: mint a short-lived signing key, exchange a GitHub OIDC token (via actions/id-token) for a code-signing certificate (Sigstore-fulcio), sign the DSSE envelope, and upload to the transparency log (rekor).sorseal verify-attestation --public-keyextended to validate the signed certificate chain and the rekor inclusion proof (no runtime network dependency by default — offline verification of a cached bundle).Why
Phase 3 gives a keyed signature; the key must be secured (air-gapped or CI secret). OIDC keyless signing removes the key-management burden for Wave teams on GitHub Actions while keeping the attestation verifiable by anyone.
Success criteria
actions/oidc-mint-tokenproduces a signature whose identity claims (repo/ref/workflow) verify against the OIDC issuer.record/verifypath stays offline — OIDC is opt-in via--oidc.