using StellaOps.Attestor.Envelope;
namespace StellaOps.Scanner.Reachability.Witnesses;
///
/// Service for creating and verifying DSSE-signed suppression witness envelopes.
/// Sprint: SPRINT_20260106_001_002 (SUP-014)
///
public interface ISuppressionDsseSigner
{
///
/// Signs a suppression witness and wraps it in a DSSE envelope.
///
/// The suppression witness to sign.
/// The key to sign with.
/// Cancellation token.
/// Result containing the signed DSSE envelope.
SuppressionDsseResult SignWitness(
SuppressionWitness witness,
EnvelopeKey signingKey,
CancellationToken cancellationToken = default);
///
/// Verifies a DSSE-signed suppression witness envelope.
///
/// The DSSE envelope to verify.
/// The public key to verify with.
/// Cancellation token.
/// Result containing the verified witness.
SuppressionVerifyResult VerifyWitness(
DsseEnvelope envelope,
EnvelopeKey publicKey,
CancellationToken cancellationToken = default);
}