Class SigningPipeline
Orchestrates the 10-step Sigstore keyless signing pipeline.
public sealed class SigningPipeline
- Inheritance
-
SigningPipeline
- Inherited Members
Constructors
SigningPipeline(IOidcTokenProvider, IFulcioClient, IRekorClient, ICertificateVerifier, ILogger<SigningPipeline>)
Creates a signing pipeline.
public SigningPipeline(IOidcTokenProvider tokenProvider, IFulcioClient fulcioClient, IRekorClient rekorClient, ICertificateVerifier certificateVerifier, ILogger<SigningPipeline> logger)
Parameters
tokenProviderIOidcTokenProviderfulcioClientIFulcioClientrekorClientIRekorClientcertificateVerifierICertificateVerifierloggerILogger<SigningPipeline>
Methods
RunAsync(byte[], string?, string, TrustedRoot, CancellationToken)
Runs the signing pipeline end-to-end.
public Task<SigningResult> RunAsync(byte[] artifact, string? payloadType, string oidcAudience, TrustedRoot trustedRoot, CancellationToken cancellationToken)
Parameters
artifactbyte[]Raw artifact bytes (or DSSE payload).
payloadTypestringnull for message_signature; content-type string for DSSE.
oidcAudiencestringOIDC audience for the token request.
trustedRootTrustedRootTrusted root to validate Fulcio chain and Rekor SET against.
cancellationTokenCancellationTokenCancellation token.
Returns
- Task<SigningResult>
Signing result containing the bundle JSON and signer identity.
RunAsync(byte[], string?, string, TrustedRoot, Uri?, HttpClient?, CancellationToken)
Runs the signing pipeline with optional TSA timestamp support.
When tsaUrl is non-null, an RFC 3161 timestamp
is requested and included in the bundle.
public Task<SigningResult> RunAsync(byte[] artifact, string? payloadType, string oidcAudience, TrustedRoot trustedRoot, Uri? tsaUrl, HttpClient? httpClient, CancellationToken cancellationToken)
Parameters
artifactbyte[]payloadTypestringoidcAudiencestringtrustedRootTrustedRoottsaUrlUrihttpClientHttpClientcancellationTokenCancellationToken
Returns
RunBatchAsync(byte[][], string, TrustedRoot, CancellationToken)
Signs multiple artifacts in a single batch, reusing one OIDC token and Fulcio certificate. Each artifact gets its own Rekor entry and bundle.
public Task<IReadOnlyList<SigningResult>> RunBatchAsync(byte[][] artifacts, string oidcAudience, TrustedRoot trustedRoot, CancellationToken cancellationToken)
Parameters
artifactsbyte[][]oidcAudiencestringtrustedRootTrustedRootcancellationTokenCancellationToken