sprints work

This commit is contained in:
StellaOps Bot
2025-12-25 12:19:12 +02:00
parent 223843f1d1
commit 2a06f780cf
224 changed files with 41796 additions and 1515 deletions

View File

@@ -1,19 +1,50 @@
namespace StellaOps.Audit.ReplayToken;
/// <summary>
/// Result of token verification including expiration check.
/// </summary>
public enum ReplayTokenVerificationResult
{
/// <summary>Token is valid and not expired.</summary>
Valid = 0,
/// <summary>Token hash does not match the inputs (tampered or different inputs).</summary>
Invalid = 1,
/// <summary>Token has expired.</summary>
Expired = 2
}
/// <summary>
/// Generates deterministic replay tokens for audit and reproducibility.
/// </summary>
public interface IReplayTokenGenerator
{
/// <summary>
/// Generates a replay token from the given inputs.
/// Generates a replay token from the given inputs without expiration (v1.0).
/// </summary>
/// <param name="request">The inputs to hash.</param>
/// <returns>A deterministic replay token.</returns>
ReplayToken Generate(ReplayTokenRequest request);
/// <summary>
/// Verifies that inputs match a previously generated token.
/// Generates a replay token from the given inputs with expiration (v2.0).
/// </summary>
/// <param name="request">The inputs to hash.</param>
/// <param name="expiration">How long the token is valid. If null, uses ReplayToken.DefaultExpiration.</param>
/// <returns>A deterministic replay token with expiration.</returns>
ReplayToken GenerateWithExpiration(ReplayTokenRequest request, TimeSpan? expiration = null);
/// <summary>
/// Verifies that inputs match a previously generated token (does not check expiration).
/// </summary>
bool Verify(ReplayToken token, ReplayTokenRequest request);
/// <summary>
/// Verifies that inputs match a previously generated token and checks expiration.
/// </summary>
/// <param name="token">The token to verify.</param>
/// <param name="request">The inputs to verify against.</param>
/// <returns>The verification result including expiration check.</returns>
ReplayTokenVerificationResult VerifyWithExpiration(ReplayToken token, ReplayTokenRequest request);
}