{
  "format": "r2pq-reference-cases/1",
  "unit": "unique label per case and channel",
  "cases": [
    {
      "case_id": "rsa1024",
      "file": "rsa1024.conf",
      "category": "parameters",
      "ground_truth": "textual reference",
      "expected_detection": true,
      "expected_labels": [
        "RSA-1024"
      ],
      "expected_pqc_references": [],
      "expected_non_detection": "Any label not explicitly listed",
      "scope": "supported",
      "rationale": "Match only observed names; no runtime claim."
    },
    {
      "case_id": "rsa2048",
      "file": "rsa2048.conf",
      "category": "parameters",
      "ground_truth": "textual reference",
      "expected_detection": true,
      "expected_labels": [
        "RSA-2048"
      ],
      "expected_pqc_references": [],
      "expected_non_detection": "Any label not explicitly listed",
      "scope": "supported",
      "rationale": "Match only observed names; no runtime claim."
    },
    {
      "case_id": "rsa4096",
      "file": "rsa4096.conf",
      "category": "parameters",
      "ground_truth": "textual reference",
      "expected_detection": true,
      "expected_labels": [
        "RSA-4096"
      ],
      "expected_pqc_references": [],
      "expected_non_detection": "Any label not explicitly listed",
      "scope": "supported",
      "rationale": "Match only observed names; no runtime claim."
    },
    {
      "case_id": "rsa_unknown",
      "file": "rsa_unknown.py",
      "category": "ast",
      "ground_truth": "textual reference",
      "expected_detection": true,
      "expected_labels": [
        "RSA"
      ],
      "expected_pqc_references": [],
      "expected_non_detection": "Any label not explicitly listed",
      "scope": "supported",
      "rationale": "Match only observed names; no runtime claim."
    },
    {
      "case_id": "ecdh",
      "file": "ecdh.conf",
      "category": "purpose",
      "ground_truth": "textual reference",
      "expected_detection": true,
      "expected_labels": [
        "ECDH"
      ],
      "expected_pqc_references": [],
      "expected_non_detection": "Any label not explicitly listed",
      "scope": "supported",
      "rationale": "Match only observed names; no runtime claim."
    },
    {
      "case_id": "ecdsa",
      "file": "ecdsa.conf",
      "category": "purpose",
      "ground_truth": "textual reference",
      "expected_detection": true,
      "expected_labels": [
        "ECDSA"
      ],
      "expected_pqc_references": [],
      "expected_non_detection": "Any label not explicitly listed",
      "scope": "supported",
      "rationale": "Match only observed names; no runtime claim."
    },
    {
      "case_id": "curve_alias",
      "file": "curve_alias.py",
      "category": "alias",
      "ground_truth": "textual reference",
      "expected_detection": true,
      "expected_labels": [
        "EC P-384"
      ],
      "expected_pqc_references": [],
      "expected_non_detection": "Any label not explicitly listed",
      "scope": "supported",
      "rationale": "Match only observed names; no runtime claim."
    },
    {
      "case_id": "triple_des",
      "file": "triple_des.py",
      "category": "alias",
      "ground_truth": "textual reference",
      "expected_detection": true,
      "expected_labels": [
        "3DES"
      ],
      "expected_pqc_references": [],
      "expected_non_detection": "Any label not explicitly listed",
      "scope": "supported",
      "rationale": "Match only observed names; no runtime claim."
    },
    {
      "case_id": "sha1",
      "file": "sha1.py",
      "category": "ast",
      "ground_truth": "syntactic call; execution not established",
      "expected_detection": true,
      "expected_labels": [
        "SHA-1"
      ],
      "expected_pqc_references": [],
      "expected_non_detection": "Any label not explicitly listed",
      "scope": "supported",
      "rationale": "Match only observed names; no runtime claim."
    },
    {
      "case_id": "md5",
      "file": "md5.conf",
      "category": "configuration",
      "ground_truth": "textual reference",
      "expected_detection": true,
      "expected_labels": [
        "MD5"
      ],
      "expected_pqc_references": [],
      "expected_non_detection": "Any label not explicitly listed",
      "scope": "supported",
      "rationale": "Match only observed names; no runtime claim."
    },
    {
      "case_id": "aes_suite",
      "file": "aes_suite.conf",
      "category": "unsupported",
      "ground_truth": "textual reference",
      "expected_detection": false,
      "expected_labels": [],
      "expected_pqc_references": [],
      "expected_non_detection": "Any label not explicitly listed",
      "scope": "unsupported",
      "rationale": "AES collection is outside this slice; must not be mislabeled 3DES."
    },
    {
      "case_id": "mlkem",
      "file": "mlkem.conf",
      "category": "configuration",
      "ground_truth": "textual reference",
      "expected_detection": true,
      "expected_labels": [],
      "expected_pqc_references": [
        "fips_203"
      ],
      "expected_non_detection": "Any label not explicitly listed",
      "scope": "supported",
      "rationale": "Match only observed names; no runtime claim."
    },
    {
      "case_id": "mldsa",
      "file": "mldsa.conf",
      "category": "configuration",
      "ground_truth": "textual reference",
      "expected_detection": true,
      "expected_labels": [],
      "expected_pqc_references": [
        "fips_204"
      ],
      "expected_non_detection": "Any label not explicitly listed",
      "scope": "supported",
      "rationale": "Match only observed names; no runtime claim."
    },
    {
      "case_id": "slhdsa",
      "file": "slhdsa.conf",
      "category": "configuration",
      "ground_truth": "textual reference",
      "expected_detection": true,
      "expected_labels": [],
      "expected_pqc_references": [
        "fips_205"
      ],
      "expected_non_detection": "Any label not explicitly listed",
      "scope": "supported",
      "rationale": "Match only observed names; no runtime claim."
    },
    {
      "case_id": "pqc_todo",
      "file": "pqc_todo.py",
      "category": "comment",
      "ground_truth": "textual reference",
      "expected_detection": true,
      "expected_labels": [],
      "expected_pqc_references": [
        "fips_203"
      ],
      "expected_non_detection": "Any label not explicitly listed",
      "scope": "supported",
      "rationale": "Comment is a reference, not adoption; must not change score modifier."
    },
    {
      "case_id": "rsa_comment",
      "file": "rsa_comment.py",
      "category": "comment",
      "ground_truth": "textual reference",
      "expected_detection": true,
      "expected_labels": [
        "RSA-4096"
      ],
      "expected_pqc_references": [],
      "expected_non_detection": "Any label not explicitly listed",
      "scope": "supported",
      "rationale": "Match only observed names; no runtime claim."
    },
    {
      "case_id": "library_only",
      "file": "library_only.py",
      "category": "ambiguous",
      "ground_truth": "textual reference",
      "expected_detection": false,
      "expected_labels": [],
      "expected_pqc_references": [],
      "expected_non_detection": "Any label not explicitly listed",
      "scope": "supported",
      "rationale": "Library supports multiple algorithms; cannot infer ML-KEM."
    },
    {
      "case_id": "dynamic_alias",
      "file": "dynamic_alias.py",
      "category": "alias",
      "ground_truth": "syntactic dynamic hash call",
      "expected_detection": false,
      "expected_labels": [],
      "expected_pqc_references": [],
      "expected_non_detection": "Any label not explicitly listed",
      "scope": "unsupported",
      "rationale": "Alias/data-flow resolution is unsupported; excluded from recall denominator."
    },
    {
      "case_id": "ordinary_words",
      "file": "ordinary_words.conf",
      "category": "negative",
      "ground_truth": "textual reference",
      "expected_detection": false,
      "expected_labels": [],
      "expected_pqc_references": [],
      "expected_non_detection": "Any label not explicitly listed",
      "scope": "supported",
      "rationale": "Match only observed names; no runtime claim."
    },
    {
      "case_id": "lookalike",
      "file": "lookalike.conf",
      "category": "negative",
      "ground_truth": "textual reference",
      "expected_detection": false,
      "expected_labels": [],
      "expected_pqc_references": [],
      "expected_non_detection": "Any label not explicitly listed",
      "scope": "supported",
      "rationale": "Match only observed names; no runtime claim."
    },
    {
      "case_id": "unrelated_sha1",
      "file": "unrelated_sha1.py",
      "category": "ambiguous",
      "ground_truth": "non-cryptographic local function",
      "expected_detection": false,
      "expected_labels": [],
      "expected_pqc_references": [],
      "expected_non_detection": "Any label not explicitly listed",
      "scope": "supported",
      "rationale": "Adversarial identifier collision; residual false positive is measured, not hidden."
    }
  ]
}
