sprints work.

This commit is contained in:
master
2026-01-20 00:45:38 +02:00
parent b34bde89fa
commit 4903395618
275 changed files with 52785 additions and 79 deletions

View File

@@ -0,0 +1,50 @@
// -----------------------------------------------------------------------------
// ICertificateStatusProvider.cs
// Sprint: SPRINT_20260119_008 Certificate Status Provider
// Task: CSP-001 - Core Abstractions
// Description: Main interface for certificate revocation checking.
// -----------------------------------------------------------------------------
using System.Security.Cryptography.X509Certificates;
namespace StellaOps.Cryptography.CertificateStatus.Abstractions;
/// <summary>
/// Provides certificate revocation status checking via OCSP, CRL, or stapled responses.
/// </summary>
public interface ICertificateStatusProvider
{
/// <summary>
/// Checks the revocation status of a certificate.
/// </summary>
/// <param name="request">The status check request.</param>
/// <param name="cancellationToken">Cancellation token.</param>
/// <returns>The certificate status result.</returns>
Task<CertificateStatusResult> CheckStatusAsync(
CertificateStatusRequest request,
CancellationToken cancellationToken = default);
/// <summary>
/// Checks the revocation status of a certificate chain.
/// </summary>
/// <param name="chain">The certificate chain to check.</param>
/// <param name="options">Status check options.</param>
/// <param name="cancellationToken">Cancellation token.</param>
/// <returns>Status results for each certificate in the chain.</returns>
Task<ChainStatusResult> CheckChainStatusAsync(
X509Chain chain,
CertificateStatusOptions? options = null,
CancellationToken cancellationToken = default);
/// <summary>
/// Fetches revocation data for stapling (OCSP response and/or CRL).
/// </summary>
/// <param name="certificate">The certificate to get revocation data for.</param>
/// <param name="issuer">The issuer certificate.</param>
/// <param name="cancellationToken">Cancellation token.</param>
/// <returns>Stapled revocation data for bundling.</returns>
Task<StapledRevocationData?> FetchRevocationDataAsync(
X509Certificate2 certificate,
X509Certificate2 issuer,
CancellationToken cancellationToken = default);
}