ACVP: test non-canonical ML-KEM keys.

The existing ML-KEM ACVP fixture only covers valid encapsulation
keys. Older NIST-generated invalid keys had unintended lengths, so
they did not exercise rejection of non-canonical polynomial
coefficients.

Add a focused NIST demo fixture for ML-KEM-768 and ML-KEM-1024.
Each parameter set includes a valid key and a correctly sized invalid
key whose first coefficient is 3330, outside the canonical range 0
through 3328.

The full response was accepted by the NIST demo server before
trimming. Keep these cases separate from ML-KEM.bz2 so the regression
stays explicit without replacing unrelated ML-KEM coverage.

Change-Id: Ic31b4a843b53d8749a3cf3d6a6a56f777152a8de
Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/101367
Reviewed-by: David Benjamin <davidben@google.com>
Reviewed-by: Adam Langley <agl@google.com>
Commit-Queue: David Benjamin <davidben@google.com>
SLSA-Policy-Verified: SLSA Policy Verification Service <devtools-gerritcodereview-exitgate@google.com>
diff --git a/util/fipstools/acvp/acvptool/test/expected/ML-KEM-encap-key-check.bz2 b/util/fipstools/acvp/acvptool/test/expected/ML-KEM-encap-key-check.bz2
new file mode 100644
index 0000000..5657e81
--- /dev/null
+++ b/util/fipstools/acvp/acvptool/test/expected/ML-KEM-encap-key-check.bz2
Binary files differ
diff --git a/util/fipstools/acvp/acvptool/test/tests.json b/util/fipstools/acvp/acvptool/test/tests.json
index b0fdd18..afc45cb 100644
--- a/util/fipstools/acvp/acvptool/test/tests.json
+++ b/util/fipstools/acvp/acvptool/test/tests.json
@@ -28,6 +28,7 @@
 {"Wrapper": "modulewrapper", "In": "vectors/ML-DSA.bz2", "Out": "expected/ML-DSA.bz2"},
 {"Wrapper": "modulewrapper", "In": "vectors/ML-DSA-seed.bz2", "Out": "expected/ML-DSA-seed.bz2"},
 {"Wrapper": "modulewrapper", "In": "vectors/ML-KEM.bz2", "Out": "expected/ML-KEM.bz2"},
+{"Wrapper": "modulewrapper", "In": "vectors/ML-KEM-encap-key-check.bz2", "Out": "expected/ML-KEM-encap-key-check.bz2"},
 {"Wrapper": "modulewrapper", "In": "vectors/ML-KEM-seed.bz2", "Out": "expected/ML-KEM-seed.bz2"},
 {"Wrapper": "modulewrapper", "In": "vectors/RSA.bz2", "Out": "expected/RSA.bz2"},
 {"Wrapper": "modulewrapper", "In": "vectors/RSA-sigGen.bz2"},
diff --git a/util/fipstools/acvp/acvptool/test/vectors/ML-KEM-encap-key-check.bz2 b/util/fipstools/acvp/acvptool/test/vectors/ML-KEM-encap-key-check.bz2
new file mode 100644
index 0000000..2656190
--- /dev/null
+++ b/util/fipstools/acvp/acvptool/test/vectors/ML-KEM-encap-key-check.bz2
Binary files differ