Files
git.stella-ops.org/src/Verifier/VerifierOptions.cs
2026-01-22 19:08:46 +02:00

91 lines
2.2 KiB
C#

// -----------------------------------------------------------------------------
// VerifierOptions.cs
// Sprint: SPRINT_20260121_036_BinaryIndex_golden_corpus_bundle_verification
// Task: GCB-003 - Implement standalone offline verifier
// Description: Options for bundle verification
// -----------------------------------------------------------------------------
namespace StellaOps.Verifier;
/// <summary>
/// Options for bundle verification.
/// </summary>
public sealed class VerifierOptions
{
/// <summary>
/// Path to the bundle file to verify.
/// </summary>
public required string BundlePath { get; init; }
/// <summary>
/// Path to trusted public keys file.
/// </summary>
public string? TrustedKeysPath { get; init; }
/// <summary>
/// Path to trust profile JSON file.
/// </summary>
public string? TrustProfilePath { get; init; }
/// <summary>
/// Path to write verification report.
/// </summary>
public string? OutputPath { get; init; }
/// <summary>
/// Output format for the report.
/// </summary>
public ReportFormat OutputFormat { get; init; } = ReportFormat.Markdown;
/// <summary>
/// Whether to verify signatures.
/// </summary>
public bool VerifySignatures { get; init; } = true;
/// <summary>
/// Whether to verify timestamps.
/// </summary>
public bool VerifyTimestamps { get; init; } = true;
/// <summary>
/// Whether to verify digests.
/// </summary>
public bool VerifyDigests { get; init; } = true;
/// <summary>
/// Whether to verify pair artifacts.
/// </summary>
public bool VerifyPairs { get; init; } = true;
/// <summary>
/// Suppress output except for errors.
/// </summary>
public bool Quiet { get; init; }
/// <summary>
/// Show detailed verification output.
/// </summary>
public bool Verbose { get; init; }
}
/// <summary>
/// Report output format.
/// </summary>
public enum ReportFormat
{
/// <summary>
/// Markdown format.
/// </summary>
Markdown,
/// <summary>
/// JSON format.
/// </summary>
Json,
/// <summary>
/// Plain text format (for terminal output).
/// </summary>
Text
}