new advisories work and features gaps work

This commit is contained in:
master
2026-01-14 18:39:19 +02:00
parent 95d5898650
commit 15aeac8e8b
148 changed files with 16731 additions and 554 deletions

View File

@@ -77,11 +77,29 @@ public static class PredicateTypes
/// <summary>
/// StellaOps Path Witness predicate type for DSSE attestations.
/// Sprint: SPRINT_3700_0001_0001 (WIT-007C)
/// Cryptographic proof of a specific entrypoint sink path.
/// Cryptographic proof of a specific entrypoint to sink path.
/// Used by PathWitnessBuilder to sign individual path witnesses.
/// </summary>
public const string StellaOpsPathWitness = "stella.ops/pathWitness@v1";
// Sprint: SPRINT_20260112_015_SIGNER_path_witness_predicate (SIGNER-PW-001)
// Canonical predicate type and aliases for path witness attestations.
/// <summary>
/// Canonical Path Witness predicate type (SIGNER-PW-001).
/// </summary>
public const string PathWitnessCanonical = "https://stella.ops/predicates/path-witness/v1";
/// <summary>
/// Path Witness predicate alias 1 (SIGNER-PW-001).
/// </summary>
public const string PathWitnessAlias1 = "stella.ops/pathWitness@v1";
/// <summary>
/// Path Witness predicate alias 2 (SIGNER-PW-001).
/// </summary>
public const string PathWitnessAlias2 = "https://stella.ops/pathWitness/v1";
/// <summary>
/// StellaOps Reachability Drift predicate type for DSSE attestations.
/// Sprint: SPRINT_3600_0004_0001_ui_evidence_chain (UI-014)
@@ -161,10 +179,27 @@ public static class PredicateTypes
/// <summary>
/// Determines if the predicate type is a well-known StellaOps type.
/// Sprint: SPRINT_20260112_015_SIGNER_path_witness_predicate (SIGNER-PW-003)
/// Updated to recognize https://stella.ops/ and https://stella-ops.org/ URIs as StellaOps types.
/// </summary>
public static bool IsStellaOpsType(string predicateType)
{
return predicateType?.StartsWith("stella.ops/", StringComparison.Ordinal) == true;
if (string.IsNullOrEmpty(predicateType))
return false;
// Legacy format: stella.ops/type@version
if (predicateType.StartsWith("stella.ops/", StringComparison.Ordinal))
return true;
// Canonical HTTPS format: https://stella.ops/predicates/...
if (predicateType.StartsWith("https://stella.ops/", StringComparison.Ordinal))
return true;
// Alternate domain format: https://stella-ops.org/predicates/...
if (predicateType.StartsWith("https://stella-ops.org/", StringComparison.Ordinal))
return true;
return false;
}
/// <summary>
@@ -196,7 +231,23 @@ public static class PredicateTypes
|| predicateType == StellaOpsReachabilityWitness
|| predicateType == StellaOpsPathWitness
|| predicateType == StellaOpsReachabilityDrift
|| predicateType == StellaOpsReachabilityDelta;
|| predicateType == StellaOpsReachabilityDelta
// Path Witness canonical and aliases (SIGNER-PW-001)
|| predicateType == PathWitnessCanonical
|| predicateType == PathWitnessAlias1
|| predicateType == PathWitnessAlias2;
}
/// <summary>
/// Determines if the predicate type is a path witness type (canonical or alias).
/// Sprint: SPRINT_20260112_015_SIGNER_path_witness_predicate (SIGNER-PW-001)
/// </summary>
public static bool IsPathWitnessType(string predicateType)
{
return predicateType == PathWitnessCanonical
|| predicateType == PathWitnessAlias1
|| predicateType == PathWitnessAlias2
|| predicateType == StellaOpsPathWitness;
}
/// <summary>
@@ -248,6 +299,10 @@ public static class PredicateTypes
StellaOpsReachabilityDrift,
StellaOpsVerdict,
StellaOpsVerdictAlt,
// Path Witness canonical + aliases (SIGNER-PW-001)
PathWitnessCanonical,
PathWitnessAlias1,
PathWitnessAlias2,
// Delta types (LIN-BE-024)
StellaOpsVexDelta,
StellaOpsSbomDelta,