ic-vectors 0.1.3

Loads test vectors supplied from outside the repository
Documentation
ic-vectors-0.1.3 has been yanked.

Loading test vectors that are not in the repository.

Two algorithms here are registered experimental rather than available for one reason: nobody has checked them against values produced by something other than themselves. ML-KEM-768 and AES-GCM-SIV have every component verified against an independent oracle and their assembly verified against nothing, because no ACVP or RFC vector is wired in.

That gap is not a code problem. It is a files problem, and this crate exists so that closing it needs no code at all: drop a vector file in the right place and the tests start checking against it. Without one they skip, loudly enough to be visible and quietly enough not to fail a build that was never promised the file.

Where the files go

testvectors/<name>.json, relative to the workspace root, or wherever IC_TEST_VECTORS points. The format is deliberately not raw ACVP:

{
  "algorithm": "aes-kw",
  "source": "RFC 3394 section 4.1",
  "cases": [
    { "key": "000102...", "pt": "001122...", "ct": "1fa68b..." }
  ]
}

Every field is a hex string, and which fields a case needs is up to the test reading it. ACVP's own files nest differently per algorithm and carry a great deal that is irrelevant here, so converting is a few lines of jq rather than a parser this crate has to keep up with. testvectors/README.md records the mapping for each algorithm that wants one.

Why the skip is loud

A test that silently passes when its input is missing is worse than no test: it reports success for work nobody did. [VectorFile::load] returns None and the callers print what they were looking for, so an absent file shows up in the output rather than in nothing at all.