// -----------------------------------------------------------------------------
// 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;
///
/// Provides certificate revocation status checking via OCSP, CRL, or stapled responses.
///
public interface ICertificateStatusProvider
{
///
/// Checks the revocation status of a certificate.
///
/// The status check request.
/// Cancellation token.
/// The certificate status result.
Task CheckStatusAsync(
CertificateStatusRequest request,
CancellationToken cancellationToken = default);
///
/// Checks the revocation status of a certificate chain.
///
/// The certificate chain to check.
/// Status check options.
/// Cancellation token.
/// Status results for each certificate in the chain.
Task CheckChainStatusAsync(
X509Chain chain,
CertificateStatusOptions? options = null,
CancellationToken cancellationToken = default);
///
/// Fetches revocation data for stapling (OCSP response and/or CRL).
///
/// The certificate to get revocation data for.
/// The issuer certificate.
/// Cancellation token.
/// Stapled revocation data for bundling.
Task FetchRevocationDataAsync(
X509Certificate2 certificate,
X509Certificate2 issuer,
CancellationToken cancellationToken = default);
}