From 1812c93fea09a7c7eb385ffd0ff41ae63514918d Mon Sep 17 00:00:00 2001 From: SunwooLee Date: Mon, 22 Jun 2026 10:17:06 +0900 Subject: [PATCH 1/6] mldsa: add ML-DSA-87 verify vectors for omitted NTT reduction These MlDsaVerify vectors target a verifier that omits a required modular reduction in the verification NTT path, where the inverse-NTT butterfly overflows a 32-bit accumulator. Each vector's verdict diverges between a conforming verifier and an omitting one: forgeries (result=invalid) are wrongly accepted, and valid signatures (result=valid) are wrongly rejected. All vectors share a single ML-DSA-87 public key. Responsible disclosure was fully completed prior to submission: the issue was reported to the affected implementation's maintainers and the fix has already been released. These vectors are published only to guard against the same omission recurring in current or future verifiers. Authors: Sunwoo Lee (@programsurf), Hyuk Lim (@lubroai), Seunghyun Yoon (@yoonsh) Korea Institute of Energy Technology (KENTECH) --- ...dsa_87_reduction_omission_verify_test.json | 72 +++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 testvectors_v1/mldsa_87_reduction_omission_verify_test.json diff --git a/testvectors_v1/mldsa_87_reduction_omission_verify_test.json b/testvectors_v1/mldsa_87_reduction_omission_verify_test.json new file mode 100644 index 0000000..680a9fe --- /dev/null +++ b/testvectors_v1/mldsa_87_reduction_omission_verify_test.json @@ -0,0 +1,72 @@ +{ + "algorithm": "ML-DSA-87", + "header": [ + "Test vectors of type MlDsaVerify targeting an omitted modular reduction in the ML-DSA verification NTT path.", + "Each vector's verdict DIVERGES between a conforming verifier and one that omits the reduction: forgeries (result=invalid) are wrongly accepted, and valid signatures (result=valid) are wrongly rejected, by an omitting verifier. All share one ML-DSA-87 public key." + ], + "notes": { + "MissingReductionForgery": { + "bugType": "BASIC", + "description": "The signature is a FORGERY and MUST be rejected. A verifier that omits a modular reduction in the verification NTT path lets the inverse-NTT butterfly overflow a 32-bit accumulator and wrongly ACCEPTS it. A conforming verifier rejects it." + }, + "MissingReductionFalseReject": { + "bugType": "BASIC", + "description": "The signature is VALID and MUST be accepted. A verifier that omits a modular reduction in the verification NTT path lets the inverse-NTT butterfly overflow a 32-bit accumulator and wrongly REJECTS this genuine signature. A conforming verifier accepts it. Complements the forgery cases under the same public key." + } + }, + "numberOfTests": 4, + "schema": "mldsa_verify_schema.json", + "testGroups": [ + { + "type": "MlDsaVerify", + "publicKey": "f5491b44ab33be49cd905b586c45b4efa9dc444d23e53ad37c51876d05d25d3700fcffffffff0300c0ff0000f0ffff0000f03f00ff03f0ffffff0300c0ffff03f0ffff00fc0f0000ffffff3f000000f03f0000000000000000f0ffff00fc0f000000fcffffff00000000000000f03f00ffff0fc0ff000000c0ff0000000000ff03f03f000000000000000000c0ffff03f03f00ff030000000000000000ff0300c0ffff03f0ffff00000000000000f03f00ff03000000ff0300c0ffff03f03f0000fc0fc0ff00fcff3f000000000000ffff0f000000fcff3f000000000000ff03f0ffff000000c0ffffffff3f00ff03f0ffffff030000000000f0ffff0000f03f0000fc0f000000fcff3f00000000c0ff00fc0f0000ff03f0ffffffff0f0000ff03f03f000000f03f000000f0ffff0000f0ffff00fc0f0000ff03f0ffff0000000000ffffffffffffffffffff0000f03f0000fc0f000000fc0fc0ff000000000000fcff3f00ffffffffff000000000000fc0fc0ff0000f03f000000f03f0000fcff3f00ff03000000ff03f0ffff00fcff3f00ffff0f000000fc0fc0ffff03f0ffff000000c0ffffffff3f00000000000000fc0f0000ffff0fc0ffff0300000000fc0fc0ff0000f0ffffffffff3f0000fcffffff00fc0f00000000f03f00ffff0f000000fcff3f00ff03000000ff03f03f000000f03f0000fcff3f000000f0ffff00fc0f0000000000c0ff000000c0ff00fc0f000000fc0f0000ffffffffff000000c0ffff03f03f00000000c0ffffff0fc0ffff03f0ffffff03000000ff0300c0ff00fc0f0000ff03000000ffffff3f00ff0300c0ff00fc0f0000ffff0f00000000f0ffffff03000000ff0300000000fcff3f0000fc0f00000000f03f000000000000ff030000000000000000ffff0f0000ffff0fc0ffffffffffffff0300000000fcff3f00ff03000000ffff0fc0ff000000c0ff0000f0ffff00fcffffff000000c0ffff0300c0ff000000000000fc0f0000ff03000000000000c0ff00fcff3f00000000000000fc0f000000fcffffffffff0f0000ffffffffffffff0f0000ff0300c0ffff03f03f0000fcff3f00ffff0f0000ff03f03f000000000000ff03f0ffffff0300c0ffff0300c0ff000000c0ff000000000000fc0f0000ff03f0ffff000000c0ff00fcff3f000000f03f00000000c0ffff03f0ffff000000000000fcffffffff03f03f00ffff0fc0ffffffff3f00ffff0fc0ff0000000000ff03f03f00ff0300c0ffff0300c0ff000000c0ff00fc0f0000ff03f03f000000f03f00ffff0fc0ffff03f0ffff00fc0f00000000f0ffff000000c0ffffff0f00000000f03f00000000000000fcff3f00ffffff3f00ff0300c0ffffff0fc0ffffff0f00000000f03f00ff03000000ffffffffffffffff3f000000f03f00ff03f03f0000000000000000000000000000c0ffffffffffff00fc0fc0ffff0300c0ff0000f0ffff0000000000ff03f03f000000f0ffff000000c0ff00fc0fc0ff00fc0f0000ffffffffff000000000000fcff3f0000fcff3f0000fc0f0000ffff0f0000ff030000000000000000000000c0ff0000f03f0000fcffffffff03f03f00000000c0ff00fc0f0000ffff0f000000fc0fc0ff0000000000ff0300c0ff00fc0f000000fc0f00000000f03f0000000000000000f0ffffffff0f00000000000000000000c0ffff0300c0ff0000f0ffff0000f03f000000f0ffff000000c0ff00fcffffffff0300c0ff00fc0f0000ff03f0ffffff0300c0ff000000000000fcff3f00ff0300c0ffffff0f0000ffffff3f00ff03f0ffff0000000000ff03f0ffff000000000000fcff3f00ff0300c0ff0000f03f0000fc0f0000ff03f03f0000fcff3f000000f03f000000f03f0000fc0fc0ff0000f03f0000fc0f000000fc0f0000ff03000000000000c0ff0000000000000000000000fcff3f00ffffffffffff03f03f000000f03f000000000000ff0300000000fc0fc0ffffffff3f00ffff0f0000000000c0ffff03f03f00ffff0f00000000f0ffff0000f03f00ff03f03f0000fc0f0000ffffffffff000000c0ffffff0f0000ff03000000000000000000fcffffff00fc0f000000fc0f000000fc0fc0ffff03000000000000c0ff00fc0f0000ff03000000000000c0ff0000f0ffff0000000000ffff0fc0ffffff0f0000ff03000000ff03f03f0000fc0f0000ff03f03f000000f03f000000000000ffff0fc0ff0000f03f000000f0ffff0000000000ff03f03f00000000c0ff00fc0fc0ff0000f0ffff0000f0ffffff0300c0ffffffff3f00ffff0fc0ff000000000000000000000000f0ffffff030000000000f03f000000f03f000000000000ff0300000000fcff3f000000f03f000000f03f0000fc0f00000000f0ffff00fc0fc0ff00000000000000f03f00000000000000fc0f0000ff03f03f000000000000ff0300c0ffffffff3f0000fc0fc0ff0000f03f0000fcff3f000000000000000000c0ff0000f03f00ff0300c0ffff0300c0ff00fc0f00000000000000ffffff3f00ff0300c0ff00000000000000f03f0000fc0fc0ff00fc0f00000000f03f00ff03000000000000000000fcffffff00fc0fc0ffff0300c0ff00fc0f0000ff03000000ffff0fc0ff000000c0ffff03f0ffffff0300c0ffffff0f0000000000000000fcffffffff0300c0ff0000f0ffff0000f0ffff00fc0f0000ff0300c0ff000000c0ff0000f0ffffff03f0ffff00fcffffffffff0fc0ffff0300000000fc0f0000ff03f03f00ff03000000ff03000000000000c0ff00fc0f000000fc0f00000000f03f0000fcff3f00000000c0ffffffffffffff030000000000f0ffffffff0fc0ffffff0f000000fc0f00000000f03f0000fc0f0000ff03000000ff03f03f00ff03000000000000c0ff00fc0fc0ff000000c0ff000000c0ff000000000000fcffffffff0300c0ff00fc0f0000ffff0fc0ff000000c0ff000000c0ff000000c0ff00fc0f00000000000000ff03000000ff0300c0ff00fcffffffff03f03f00ff0300c0ffff03f03f00ff03f03f00ff03f03f0000fc0fc0ff000000c0ff0000000000000000c0ff000000000000fc0f000000fcffffff00fc0f0000ff03000000000000000000fc0f000000fc0fc0ff0000f03f000000f0ffffffff0fc0ff00fc0f000000fc0f0000ffff0f000000fc0f00000000000000ff03f03f000000f03f0000fcffffffffffffffff0000000000000000000000fcff3f0000fc0f0000000000000000fc0f000000000000000000000000ff030000000000000000ffffff3f000000000000ff0300c0ffffffff3f00ff030000000000000000ff03f03f00ff03000000ffffffffff00fc0f0000ff03f0ffffff0300000000fc0f0000ffff0fc0ff00fcffffffff03000000000000c0ff0000f03f00ff030000000000000000ff03000000000000000000fc0f000000fc0f0000ff030000000000000000ffff0fc0ff0000000000000000c0ff0000000000ff0300000000000000000000f03f0000fcff3f00000000c0ffffffffffff0000f0ffff00fc0f000000fcff3f000000f03f000000f0ffff00000000000000000000000000c0ff00fc0f0000ff0300c0ff0000000000", + "publicKeyDer": "30820a32300b060960864801650304031303820a2100f5491b44ab33be49cd905b586c45b4efa9dc444d23e53ad37c51876d05d25d3700fcffffffff0300c0ff0000f0ffff0000f03f00ff03f0ffffff0300c0ffff03f0ffff00fc0f0000ffffff3f000000f03f0000000000000000f0ffff00fc0f000000fcffffff00000000000000f03f00ffff0fc0ff000000c0ff0000000000ff03f03f000000000000000000c0ffff03f03f00ff030000000000000000ff0300c0ffff03f0ffff00000000000000f03f00ff03000000ff0300c0ffff03f03f0000fc0fc0ff00fcff3f000000000000ffff0f000000fcff3f000000000000ff03f0ffff000000c0ffffffff3f00ff03f0ffffff030000000000f0ffff0000f03f0000fc0f000000fcff3f00000000c0ff00fc0f0000ff03f0ffffffff0f0000ff03f03f000000f03f000000f0ffff0000f0ffff00fc0f0000ff03f0ffff0000000000ffffffffffffffffffff0000f03f0000fc0f000000fc0fc0ff000000000000fcff3f00ffffffffff000000000000fc0fc0ff0000f03f000000f03f0000fcff3f00ff03000000ff03f0ffff00fcff3f00ffff0f000000fc0fc0ffff03f0ffff000000c0ffffffff3f00000000000000fc0f0000ffff0fc0ffff0300000000fc0fc0ff0000f0ffffffffff3f0000fcffffff00fc0f00000000f03f00ffff0f000000fcff3f00ff03000000ff03f03f000000f03f0000fcff3f000000f0ffff00fc0f0000000000c0ff000000c0ff00fc0f000000fc0f0000ffffffffff000000c0ffff03f03f00000000c0ffffff0fc0ffff03f0ffffff03000000ff0300c0ff00fc0f0000ff03000000ffffff3f00ff0300c0ff00fc0f0000ffff0f00000000f0ffffff03000000ff0300000000fcff3f0000fc0f00000000f03f000000000000ff030000000000000000ffff0f0000ffff0fc0ffffffffffffff0300000000fcff3f00ff03000000ffff0fc0ff000000c0ff0000f0ffff00fcffffff000000c0ffff0300c0ff000000000000fc0f0000ff03000000000000c0ff00fcff3f00000000000000fc0f000000fcffffffffff0f0000ffffffffffffff0f0000ff0300c0ffff03f03f0000fcff3f00ffff0f0000ff03f03f000000000000ff03f0ffffff0300c0ffff0300c0ff000000c0ff000000000000fc0f0000ff03f0ffff000000c0ff00fcff3f000000f03f00000000c0ffff03f0ffff000000000000fcffffffff03f03f00ffff0fc0ffffffff3f00ffff0fc0ff0000000000ff03f03f00ff0300c0ffff0300c0ff000000c0ff00fc0f0000ff03f03f000000f03f00ffff0fc0ffff03f0ffff00fc0f00000000f0ffff000000c0ffffff0f00000000f03f00000000000000fcff3f00ffffff3f00ff0300c0ffffff0fc0ffffff0f00000000f03f00ff03000000ffffffffffffffff3f000000f03f00ff03f03f0000000000000000000000000000c0ffffffffffff00fc0fc0ffff0300c0ff0000f0ffff0000000000ff03f03f000000f0ffff000000c0ff00fc0fc0ff00fc0f0000ffffffffff000000000000fcff3f0000fcff3f0000fc0f0000ffff0f0000ff030000000000000000000000c0ff0000f03f0000fcffffffff03f03f00000000c0ff00fc0f0000ffff0f000000fc0fc0ff0000000000ff0300c0ff00fc0f000000fc0f00000000f03f0000000000000000f0ffffffff0f00000000000000000000c0ffff0300c0ff0000f0ffff0000f03f000000f0ffff000000c0ff00fcffffffff0300c0ff00fc0f0000ff03f0ffffff0300c0ff000000000000fcff3f00ff0300c0ffffff0f0000ffffff3f00ff03f0ffff0000000000ff03f0ffff000000000000fcff3f00ff0300c0ff0000f03f0000fc0f0000ff03f03f0000fcff3f000000f03f000000f03f0000fc0fc0ff0000f03f0000fc0f000000fc0f0000ff03000000000000c0ff0000000000000000000000fcff3f00ffffffffffff03f03f000000f03f000000000000ff0300000000fc0fc0ffffffff3f00ffff0f0000000000c0ffff03f03f00ffff0f00000000f0ffff0000f03f00ff03f03f0000fc0f0000ffffffffff000000c0ffffff0f0000ff03000000000000000000fcffffff00fc0f000000fc0f000000fc0fc0ffff03000000000000c0ff00fc0f0000ff03000000000000c0ff0000f0ffff0000000000ffff0fc0ffffff0f0000ff03000000ff03f03f0000fc0f0000ff03f03f000000f03f000000000000ffff0fc0ff0000f03f000000f0ffff0000000000ff03f03f00000000c0ff00fc0fc0ff0000f0ffff0000f0ffffff0300c0ffffffff3f00ffff0fc0ff000000000000000000000000f0ffffff030000000000f03f000000f03f000000000000ff0300000000fcff3f000000f03f000000f03f0000fc0f00000000f0ffff00fc0fc0ff00000000000000f03f00000000000000fc0f0000ff03f03f000000000000ff0300c0ffffffff3f0000fc0fc0ff0000f03f0000fcff3f000000000000000000c0ff0000f03f00ff0300c0ffff0300c0ff00fc0f00000000000000ffffff3f00ff0300c0ff00000000000000f03f0000fc0fc0ff00fc0f00000000f03f00ff03000000000000000000fcffffff00fc0fc0ffff0300c0ff00fc0f0000ff03000000ffff0fc0ff000000c0ffff03f0ffffff0300c0ffffff0f0000000000000000fcffffffff0300c0ff0000f0ffff0000f0ffff00fc0f0000ff0300c0ff000000c0ff0000f0ffffff03f0ffff00fcffffffffff0fc0ffff0300000000fc0f0000ff03f03f00ff03000000ff03000000000000c0ff00fc0f000000fc0f00000000f03f0000fcff3f00000000c0ffffffffffffff030000000000f0ffffffff0fc0ffffff0f000000fc0f00000000f03f0000fc0f0000ff03000000ff03f03f00ff03000000000000c0ff00fc0fc0ff000000c0ff000000c0ff000000000000fcffffffff0300c0ff00fc0f0000ffff0fc0ff000000c0ff000000c0ff000000c0ff00fc0f00000000000000ff03000000ff0300c0ff00fcffffffff03f03f00ff0300c0ffff03f03f00ff03f03f00ff03f03f0000fc0fc0ff000000c0ff0000000000000000c0ff000000000000fc0f000000fcffffff00fc0f0000ff03000000000000000000fc0f000000fc0fc0ff0000f03f000000f0ffffffff0fc0ff00fc0f000000fc0f0000ffff0f000000fc0f00000000000000ff03f03f000000f03f0000fcffffffffffffffff0000000000000000000000fcff3f0000fc0f0000000000000000fc0f000000000000000000000000ff030000000000000000ffffff3f000000000000ff0300c0ffffffff3f00ff030000000000000000ff03f03f00ff03000000ffffffffff00fc0f0000ff03f0ffffff0300000000fc0f0000ffff0fc0ff00fcffffffff03000000000000c0ff0000f03f00ff030000000000000000ff03000000000000000000fc0f000000fc0f0000ff030000000000000000ffff0fc0ff0000000000000000c0ff0000000000ff0300000000000000000000f03f0000fcff3f00000000c0ffffffffffff0000f0ffff00fc0f000000fcff3f000000f03f000000f0ffff00000000000000000000000000c0ff00fc0f0000ff0300c0ff0000000000", + "source": { + "name": "github.com/programsurf/mldsa-reduction-omission", + "version": "1" + }, + "tests": [ + { + "tcId": 1, + "comment": "valid signature wrongly rejected by a verifier that omits a reduction in the verification NTT path (instance A)", + "msg": "b54d8915b6fcc0b7", + "sig": "7ca63cef11ad848f76a458730e545c1b97afbf093dfa0750858c7f14d99565a1383a995f0184055a2c7a9dd7b5190a6d6d960aaa8f929d42709db3a168ac04bf000008008000000800800000080080000008008087ff0f008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000098070000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008087ff0f0080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000009807000000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000980700000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008087ff0f00800000080080000008008000000800800000080080000008008000009807000000080080000078f8ff000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000078f8ff0000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008087ff0f0080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000009807000000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000078f8ff00000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000078f8ff0000080080000008008087ff0f00800000080080000008008000000800800000080080000008008087ff0f00800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008087ff0f008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000078f8ff000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008087ff0f0080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000078f8ff0000080080000008008000000800800000080080000008008087ff0f00807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080790000008000000800800000080080000098070079000000800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000009807000000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000098070000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000980700000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000078f8ff0000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080790000008000000800800000080080000008008000000800800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "result": "valid", + "flags": [ + "MissingReductionFalseReject" + ] + }, + { + "tcId": 2, + "comment": "forgery wrongly accepted by a verifier that omits a reduction in the verification NTT path (instance A, same key+msg as tcId 1)", + "msg": "b54d8915b6fcc0b7", + "sig": "7ca63cef11ad848f76a458730e545c1b97afbf093dfa0750858c7f14d99565a1383a995f0184055a2c7a9dd7b5190a6d6d960aaa8f929d42709db3a168ac04bf000008008000000800800000080080000008008087ff0f008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000098070000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008087ff0f0080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000009807000000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000980700000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008087ff0f00800000080080000008008000000800800000080080000008008000009807000000080080000078f8ff000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000078f8ff0000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008087ff0f0080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000009807000000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000078f8ff00000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000078f8ff0000080080000008008087ff0f00800000080080000008008000000800800000080080000008008087ff0f00800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008087ff0f008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000078f8ff000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008087ff0f0080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000078f8ff0000080080000008008000000800800000080080000008008087ff0f00807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080790000008000000800800000080080000098070079000000800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000009807000000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000098070000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000980700000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000078f8ff0000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080790000008000000800800000080080000008008000000800800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000101", + "result": "invalid", + "flags": [ + "MissingReductionForgery" + ] + }, + { + "tcId": 3, + "comment": "valid signature wrongly rejected by a verifier that omits a reduction in the verification NTT path (instance B)", + "msg": "79c7bb5f2d7654e3", + "sig": "3f1b4864945a5201d4382d40b3e5d65fef3cdbec046b2cd773a6d480fccc30280851aa28bb61f5649fbb29ca9eee564305bb714fb0275662552cc1fcd9f84871000008008000000800800000080080000008008087ff0f008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000098070000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008087ff0f0080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000009807000000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000980700000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008087ff0f00800000080080000008008000000800800000080080000008008000009807000000080080000078f8ff000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000078f8ff0000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008087ff0f0080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000009807000000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000078f8ff00000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000078f8ff0000080080000008008087ff0f00800000080080000008008000000800800000080080000008008087ff0f00800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008087ff0f008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000078f8ff000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008087ff0f0080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000078f8ff0000080080000008008000000800800000080080000008008087ff0f00807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080790000008000000800800000080080000098070079000000800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000009807000000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000098070000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000980700000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000078f8ff0000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080790000008000000800800000080080000008008000000800800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "result": "valid", + "flags": [ + "MissingReductionFalseReject" + ] + }, + { + "tcId": 4, + "comment": "forgery wrongly accepted by a verifier that omits a reduction in the verification NTT path (instance B, same key+msg as tcId 3)", + "msg": "79c7bb5f2d7654e3", + "sig": "3f1b4864945a5201d4382d40b3e5d65fef3cdbec046b2cd773a6d480fccc30280851aa28bb61f5649fbb29ca9eee564305bb714fb0275662552cc1fcd9f84871000008008000000800800000080080000008008087ff0f008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000098070000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008087ff0f0080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000009807000000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000980700000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008087ff0f00800000080080000008008000000800800000080080000008008000009807000000080080000078f8ff000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000078f8ff0000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008087ff0f0080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000009807000000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000078f8ff00000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000078f8ff0000080080000008008087ff0f00800000080080000008008000000800800000080080000008008087ff0f00800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008087ff0f008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000078f8ff000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008087ff0f0080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000078f8ff0000080080000008008000000800800000080080000008008087ff0f00807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080790000008000000800800000080080000098070079000000800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000009807000000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000098070000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000980700000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000078f8ff0000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080790000008000000800800000080080000008008000000800800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000101", + "result": "invalid", + "flags": [ + "MissingReductionForgery" + ] + } + ] + } + ] +} From ac084abb3caa9b8cb3878a2aef8cb0e1110edad9 Mon Sep 17 00:00:00 2001 From: Filippo Valsorda Date: Wed, 24 Jun 2026 20:15:26 +0200 Subject: [PATCH 2/6] =?UTF-8?q?Replace=20ML-DSA=20reduction=20omission=20v?= =?UTF-8?q?ectors=20to=20pass=20Fiat=E2=80=93Shamir?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...dsa_87_reduction_omission_verify_test.json | 38 +++++-------------- 1 file changed, 9 insertions(+), 29 deletions(-) diff --git a/testvectors_v1/mldsa_87_reduction_omission_verify_test.json b/testvectors_v1/mldsa_87_reduction_omission_verify_test.json index 680a9fe..2e21e52 100644 --- a/testvectors_v1/mldsa_87_reduction_omission_verify_test.json +++ b/testvectors_v1/mldsa_87_reduction_omission_verify_test.json @@ -14,13 +14,13 @@ "description": "The signature is VALID and MUST be accepted. A verifier that omits a modular reduction in the verification NTT path lets the inverse-NTT butterfly overflow a 32-bit accumulator and wrongly REJECTS this genuine signature. A conforming verifier accepts it. Complements the forgery cases under the same public key." } }, - "numberOfTests": 4, + "numberOfTests": 2, "schema": "mldsa_verify_schema.json", "testGroups": [ { "type": "MlDsaVerify", - "publicKey": "f5491b44ab33be49cd905b586c45b4efa9dc444d23e53ad37c51876d05d25d3700fcffffffff0300c0ff0000f0ffff0000f03f00ff03f0ffffff0300c0ffff03f0ffff00fc0f0000ffffff3f000000f03f0000000000000000f0ffff00fc0f000000fcffffff00000000000000f03f00ffff0fc0ff000000c0ff0000000000ff03f03f000000000000000000c0ffff03f03f00ff030000000000000000ff0300c0ffff03f0ffff00000000000000f03f00ff03000000ff0300c0ffff03f03f0000fc0fc0ff00fcff3f000000000000ffff0f000000fcff3f000000000000ff03f0ffff000000c0ffffffff3f00ff03f0ffffff030000000000f0ffff0000f03f0000fc0f000000fcff3f00000000c0ff00fc0f0000ff03f0ffffffff0f0000ff03f03f000000f03f000000f0ffff0000f0ffff00fc0f0000ff03f0ffff0000000000ffffffffffffffffffff0000f03f0000fc0f000000fc0fc0ff000000000000fcff3f00ffffffffff000000000000fc0fc0ff0000f03f000000f03f0000fcff3f00ff03000000ff03f0ffff00fcff3f00ffff0f000000fc0fc0ffff03f0ffff000000c0ffffffff3f00000000000000fc0f0000ffff0fc0ffff0300000000fc0fc0ff0000f0ffffffffff3f0000fcffffff00fc0f00000000f03f00ffff0f000000fcff3f00ff03000000ff03f03f000000f03f0000fcff3f000000f0ffff00fc0f0000000000c0ff000000c0ff00fc0f000000fc0f0000ffffffffff000000c0ffff03f03f00000000c0ffffff0fc0ffff03f0ffffff03000000ff0300c0ff00fc0f0000ff03000000ffffff3f00ff0300c0ff00fc0f0000ffff0f00000000f0ffffff03000000ff0300000000fcff3f0000fc0f00000000f03f000000000000ff030000000000000000ffff0f0000ffff0fc0ffffffffffffff0300000000fcff3f00ff03000000ffff0fc0ff000000c0ff0000f0ffff00fcffffff000000c0ffff0300c0ff000000000000fc0f0000ff03000000000000c0ff00fcff3f00000000000000fc0f000000fcffffffffff0f0000ffffffffffffff0f0000ff0300c0ffff03f03f0000fcff3f00ffff0f0000ff03f03f000000000000ff03f0ffffff0300c0ffff0300c0ff000000c0ff000000000000fc0f0000ff03f0ffff000000c0ff00fcff3f000000f03f00000000c0ffff03f0ffff000000000000fcffffffff03f03f00ffff0fc0ffffffff3f00ffff0fc0ff0000000000ff03f03f00ff0300c0ffff0300c0ff000000c0ff00fc0f0000ff03f03f000000f03f00ffff0fc0ffff03f0ffff00fc0f00000000f0ffff000000c0ffffff0f00000000f03f00000000000000fcff3f00ffffff3f00ff0300c0ffffff0fc0ffffff0f00000000f03f00ff03000000ffffffffffffffff3f000000f03f00ff03f03f0000000000000000000000000000c0ffffffffffff00fc0fc0ffff0300c0ff0000f0ffff0000000000ff03f03f000000f0ffff000000c0ff00fc0fc0ff00fc0f0000ffffffffff000000000000fcff3f0000fcff3f0000fc0f0000ffff0f0000ff030000000000000000000000c0ff0000f03f0000fcffffffff03f03f00000000c0ff00fc0f0000ffff0f000000fc0fc0ff0000000000ff0300c0ff00fc0f000000fc0f00000000f03f0000000000000000f0ffffffff0f00000000000000000000c0ffff0300c0ff0000f0ffff0000f03f000000f0ffff000000c0ff00fcffffffff0300c0ff00fc0f0000ff03f0ffffff0300c0ff000000000000fcff3f00ff0300c0ffffff0f0000ffffff3f00ff03f0ffff0000000000ff03f0ffff000000000000fcff3f00ff0300c0ff0000f03f0000fc0f0000ff03f03f0000fcff3f000000f03f000000f03f0000fc0fc0ff0000f03f0000fc0f000000fc0f0000ff03000000000000c0ff0000000000000000000000fcff3f00ffffffffffff03f03f000000f03f000000000000ff0300000000fc0fc0ffffffff3f00ffff0f0000000000c0ffff03f03f00ffff0f00000000f0ffff0000f03f00ff03f03f0000fc0f0000ffffffffff000000c0ffffff0f0000ff03000000000000000000fcffffff00fc0f000000fc0f000000fc0fc0ffff03000000000000c0ff00fc0f0000ff03000000000000c0ff0000f0ffff0000000000ffff0fc0ffffff0f0000ff03000000ff03f03f0000fc0f0000ff03f03f000000f03f000000000000ffff0fc0ff0000f03f000000f0ffff0000000000ff03f03f00000000c0ff00fc0fc0ff0000f0ffff0000f0ffffff0300c0ffffffff3f00ffff0fc0ff000000000000000000000000f0ffffff030000000000f03f000000f03f000000000000ff0300000000fcff3f000000f03f000000f03f0000fc0f00000000f0ffff00fc0fc0ff00000000000000f03f00000000000000fc0f0000ff03f03f000000000000ff0300c0ffffffff3f0000fc0fc0ff0000f03f0000fcff3f000000000000000000c0ff0000f03f00ff0300c0ffff0300c0ff00fc0f00000000000000ffffff3f00ff0300c0ff00000000000000f03f0000fc0fc0ff00fc0f00000000f03f00ff03000000000000000000fcffffff00fc0fc0ffff0300c0ff00fc0f0000ff03000000ffff0fc0ff000000c0ffff03f0ffffff0300c0ffffff0f0000000000000000fcffffffff0300c0ff0000f0ffff0000f0ffff00fc0f0000ff0300c0ff000000c0ff0000f0ffffff03f0ffff00fcffffffffff0fc0ffff0300000000fc0f0000ff03f03f00ff03000000ff03000000000000c0ff00fc0f000000fc0f00000000f03f0000fcff3f00000000c0ffffffffffffff030000000000f0ffffffff0fc0ffffff0f000000fc0f00000000f03f0000fc0f0000ff03000000ff03f03f00ff03000000000000c0ff00fc0fc0ff000000c0ff000000c0ff000000000000fcffffffff0300c0ff00fc0f0000ffff0fc0ff000000c0ff000000c0ff000000c0ff00fc0f00000000000000ff03000000ff0300c0ff00fcffffffff03f03f00ff0300c0ffff03f03f00ff03f03f00ff03f03f0000fc0fc0ff000000c0ff0000000000000000c0ff000000000000fc0f000000fcffffff00fc0f0000ff03000000000000000000fc0f000000fc0fc0ff0000f03f000000f0ffffffff0fc0ff00fc0f000000fc0f0000ffff0f000000fc0f00000000000000ff03f03f000000f03f0000fcffffffffffffffff0000000000000000000000fcff3f0000fc0f0000000000000000fc0f000000000000000000000000ff030000000000000000ffffff3f000000000000ff0300c0ffffffff3f00ff030000000000000000ff03f03f00ff03000000ffffffffff00fc0f0000ff03f0ffffff0300000000fc0f0000ffff0fc0ff00fcffffffff03000000000000c0ff0000f03f00ff030000000000000000ff03000000000000000000fc0f000000fc0f0000ff030000000000000000ffff0fc0ff0000000000000000c0ff0000000000ff0300000000000000000000f03f0000fcff3f00000000c0ffffffffffff0000f0ffff00fc0f000000fcff3f000000f03f000000f0ffff00000000000000000000000000c0ff00fc0f0000ff0300c0ff0000000000", - "publicKeyDer": "30820a32300b060960864801650304031303820a2100f5491b44ab33be49cd905b586c45b4efa9dc444d23e53ad37c51876d05d25d3700fcffffffff0300c0ff0000f0ffff0000f03f00ff03f0ffffff0300c0ffff03f0ffff00fc0f0000ffffff3f000000f03f0000000000000000f0ffff00fc0f000000fcffffff00000000000000f03f00ffff0fc0ff000000c0ff0000000000ff03f03f000000000000000000c0ffff03f03f00ff030000000000000000ff0300c0ffff03f0ffff00000000000000f03f00ff03000000ff0300c0ffff03f03f0000fc0fc0ff00fcff3f000000000000ffff0f000000fcff3f000000000000ff03f0ffff000000c0ffffffff3f00ff03f0ffffff030000000000f0ffff0000f03f0000fc0f000000fcff3f00000000c0ff00fc0f0000ff03f0ffffffff0f0000ff03f03f000000f03f000000f0ffff0000f0ffff00fc0f0000ff03f0ffff0000000000ffffffffffffffffffff0000f03f0000fc0f000000fc0fc0ff000000000000fcff3f00ffffffffff000000000000fc0fc0ff0000f03f000000f03f0000fcff3f00ff03000000ff03f0ffff00fcff3f00ffff0f000000fc0fc0ffff03f0ffff000000c0ffffffff3f00000000000000fc0f0000ffff0fc0ffff0300000000fc0fc0ff0000f0ffffffffff3f0000fcffffff00fc0f00000000f03f00ffff0f000000fcff3f00ff03000000ff03f03f000000f03f0000fcff3f000000f0ffff00fc0f0000000000c0ff000000c0ff00fc0f000000fc0f0000ffffffffff000000c0ffff03f03f00000000c0ffffff0fc0ffff03f0ffffff03000000ff0300c0ff00fc0f0000ff03000000ffffff3f00ff0300c0ff00fc0f0000ffff0f00000000f0ffffff03000000ff0300000000fcff3f0000fc0f00000000f03f000000000000ff030000000000000000ffff0f0000ffff0fc0ffffffffffffff0300000000fcff3f00ff03000000ffff0fc0ff000000c0ff0000f0ffff00fcffffff000000c0ffff0300c0ff000000000000fc0f0000ff03000000000000c0ff00fcff3f00000000000000fc0f000000fcffffffffff0f0000ffffffffffffff0f0000ff0300c0ffff03f03f0000fcff3f00ffff0f0000ff03f03f000000000000ff03f0ffffff0300c0ffff0300c0ff000000c0ff000000000000fc0f0000ff03f0ffff000000c0ff00fcff3f000000f03f00000000c0ffff03f0ffff000000000000fcffffffff03f03f00ffff0fc0ffffffff3f00ffff0fc0ff0000000000ff03f03f00ff0300c0ffff0300c0ff000000c0ff00fc0f0000ff03f03f000000f03f00ffff0fc0ffff03f0ffff00fc0f00000000f0ffff000000c0ffffff0f00000000f03f00000000000000fcff3f00ffffff3f00ff0300c0ffffff0fc0ffffff0f00000000f03f00ff03000000ffffffffffffffff3f000000f03f00ff03f03f0000000000000000000000000000c0ffffffffffff00fc0fc0ffff0300c0ff0000f0ffff0000000000ff03f03f000000f0ffff000000c0ff00fc0fc0ff00fc0f0000ffffffffff000000000000fcff3f0000fcff3f0000fc0f0000ffff0f0000ff030000000000000000000000c0ff0000f03f0000fcffffffff03f03f00000000c0ff00fc0f0000ffff0f000000fc0fc0ff0000000000ff0300c0ff00fc0f000000fc0f00000000f03f0000000000000000f0ffffffff0f00000000000000000000c0ffff0300c0ff0000f0ffff0000f03f000000f0ffff000000c0ff00fcffffffff0300c0ff00fc0f0000ff03f0ffffff0300c0ff000000000000fcff3f00ff0300c0ffffff0f0000ffffff3f00ff03f0ffff0000000000ff03f0ffff000000000000fcff3f00ff0300c0ff0000f03f0000fc0f0000ff03f03f0000fcff3f000000f03f000000f03f0000fc0fc0ff0000f03f0000fc0f000000fc0f0000ff03000000000000c0ff0000000000000000000000fcff3f00ffffffffffff03f03f000000f03f000000000000ff0300000000fc0fc0ffffffff3f00ffff0f0000000000c0ffff03f03f00ffff0f00000000f0ffff0000f03f00ff03f03f0000fc0f0000ffffffffff000000c0ffffff0f0000ff03000000000000000000fcffffff00fc0f000000fc0f000000fc0fc0ffff03000000000000c0ff00fc0f0000ff03000000000000c0ff0000f0ffff0000000000ffff0fc0ffffff0f0000ff03000000ff03f03f0000fc0f0000ff03f03f000000f03f000000000000ffff0fc0ff0000f03f000000f0ffff0000000000ff03f03f00000000c0ff00fc0fc0ff0000f0ffff0000f0ffffff0300c0ffffffff3f00ffff0fc0ff000000000000000000000000f0ffffff030000000000f03f000000f03f000000000000ff0300000000fcff3f000000f03f000000f03f0000fc0f00000000f0ffff00fc0fc0ff00000000000000f03f00000000000000fc0f0000ff03f03f000000000000ff0300c0ffffffff3f0000fc0fc0ff0000f03f0000fcff3f000000000000000000c0ff0000f03f00ff0300c0ffff0300c0ff00fc0f00000000000000ffffff3f00ff0300c0ff00000000000000f03f0000fc0fc0ff00fc0f00000000f03f00ff03000000000000000000fcffffff00fc0fc0ffff0300c0ff00fc0f0000ff03000000ffff0fc0ff000000c0ffff03f0ffffff0300c0ffffff0f0000000000000000fcffffffff0300c0ff0000f0ffff0000f0ffff00fc0f0000ff0300c0ff000000c0ff0000f0ffffff03f0ffff00fcffffffffff0fc0ffff0300000000fc0f0000ff03f03f00ff03000000ff03000000000000c0ff00fc0f000000fc0f00000000f03f0000fcff3f00000000c0ffffffffffffff030000000000f0ffffffff0fc0ffffff0f000000fc0f00000000f03f0000fc0f0000ff03000000ff03f03f00ff03000000000000c0ff00fc0fc0ff000000c0ff000000c0ff000000000000fcffffffff0300c0ff00fc0f0000ffff0fc0ff000000c0ff000000c0ff000000c0ff00fc0f00000000000000ff03000000ff0300c0ff00fcffffffff03f03f00ff0300c0ffff03f03f00ff03f03f00ff03f03f0000fc0fc0ff000000c0ff0000000000000000c0ff000000000000fc0f000000fcffffff00fc0f0000ff03000000000000000000fc0f000000fc0fc0ff0000f03f000000f0ffffffff0fc0ff00fc0f000000fc0f0000ffff0f000000fc0f00000000000000ff03f03f000000f03f0000fcffffffffffffffff0000000000000000000000fcff3f0000fc0f0000000000000000fc0f000000000000000000000000ff030000000000000000ffffff3f000000000000ff0300c0ffffffff3f00ff030000000000000000ff03f03f00ff03000000ffffffffff00fc0f0000ff03f0ffffff0300000000fc0f0000ffff0fc0ff00fcffffffff03000000000000c0ff0000f03f00ff030000000000000000ff03000000000000000000fc0f000000fc0f0000ff030000000000000000ffff0fc0ff0000000000000000c0ff0000000000ff0300000000000000000000f03f0000fcff3f00000000c0ffffffffffff0000f0ffff00fc0f000000fcff3f000000f03f000000f0ffff00000000000000000000000000c0ff00fc0f0000ff0300c0ff0000000000", + "publicKey": "f5491b44ab33be49cd905b586c45b4efa9dc444d23e53ad37c51876d05d25d37ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", + "publicKeyDer": "30820a32300b060960864801650304031303820a2100f5491b44ab33be49cd905b586c45b4efa9dc444d23e53ad37c51876d05d25d37ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", "source": { "name": "github.com/programsurf/mldsa-reduction-omission", "version": "1" @@ -28,9 +28,9 @@ "tests": [ { "tcId": 1, - "comment": "valid signature wrongly rejected by a verifier that omits a reduction in the verification NTT path (instance A)", - "msg": "b54d8915b6fcc0b7", - "sig": "7ca63cef11ad848f76a458730e545c1b97afbf093dfa0750858c7f14d99565a1383a995f0184055a2c7a9dd7b5190a6d6d960aaa8f929d42709db3a168ac04bf000008008000000800800000080080000008008087ff0f008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000098070000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008087ff0f0080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000009807000000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000980700000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008087ff0f00800000080080000008008000000800800000080080000008008000009807000000080080000078f8ff000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000078f8ff0000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008087ff0f0080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000009807000000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000078f8ff00000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000078f8ff0000080080000008008087ff0f00800000080080000008008000000800800000080080000008008087ff0f00800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008087ff0f008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000078f8ff000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008087ff0f0080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000078f8ff0000080080000008008000000800800000080080000008008087ff0f00807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080790000008000000800800000080080000098070079000000800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000009807000000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000098070000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000980700000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000078f8ff0000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080790000008000000800800000080080000008008000000800800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "comment": "valid signature wrongly rejected by a verifier that omits a reduction in the verification NTT path", + "msg": "482c32b703000000", + "sig": "9ce71caf860b8d45c14694c2b1ebcabd7498b7d582523c675b2ea8e921ba4f690526e34b9430a7a364b3eb13af66f72fc49c0daf3ee1495e92eb48bafa3ee44a000008008000000800800000080080000008008087ff0f008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000098070000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008087ff0f0080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000009807000000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000980700000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008087ff0f00800000080080000008008000000800800000080080000008008000009807000000080080000078f8ff000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000078f8ff0000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008087ff0f0080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000009807000000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000078f8ff00000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000078f8ff0000080080000008008087ff0f00800000080080000008008000000800800000080080000008008087ff0f00800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008087ff0f008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000078f8ff000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008087ff0f0080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000078f8ff0000080080000008008000000800800000080080000008008087ff0f00807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080790000008000000800800000080080000098070079000000800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000009807000000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000098070000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000980700000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000078f8ff0000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080790000008000000800800000080080000008008000000800800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "result": "valid", "flags": [ "MissingReductionFalseReject" @@ -38,29 +38,9 @@ }, { "tcId": 2, - "comment": "forgery wrongly accepted by a verifier that omits a reduction in the verification NTT path (instance A, same key+msg as tcId 1)", - "msg": "b54d8915b6fcc0b7", - "sig": "7ca63cef11ad848f76a458730e545c1b97afbf093dfa0750858c7f14d99565a1383a995f0184055a2c7a9dd7b5190a6d6d960aaa8f929d42709db3a168ac04bf000008008000000800800000080080000008008087ff0f008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000098070000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008087ff0f0080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000009807000000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000980700000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008087ff0f00800000080080000008008000000800800000080080000008008000009807000000080080000078f8ff000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000078f8ff0000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008087ff0f0080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000009807000000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000078f8ff00000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000078f8ff0000080080000008008087ff0f00800000080080000008008000000800800000080080000008008087ff0f00800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008087ff0f008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000078f8ff000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008087ff0f0080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000078f8ff0000080080000008008000000800800000080080000008008087ff0f00807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080790000008000000800800000080080000098070079000000800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000009807000000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000098070000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000980700000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000078f8ff0000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080790000008000000800800000080080000008008000000800800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000101", - "result": "invalid", - "flags": [ - "MissingReductionForgery" - ] - }, - { - "tcId": 3, - "comment": "valid signature wrongly rejected by a verifier that omits a reduction in the verification NTT path (instance B)", - "msg": "79c7bb5f2d7654e3", - "sig": "3f1b4864945a5201d4382d40b3e5d65fef3cdbec046b2cd773a6d480fccc30280851aa28bb61f5649fbb29ca9eee564305bb714fb0275662552cc1fcd9f84871000008008000000800800000080080000008008087ff0f008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000098070000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008087ff0f0080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000009807000000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000980700000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008087ff0f00800000080080000008008000000800800000080080000008008000009807000000080080000078f8ff000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000078f8ff0000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008087ff0f0080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000009807000000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000078f8ff00000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000078f8ff0000080080000008008087ff0f00800000080080000008008000000800800000080080000008008087ff0f00800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008087ff0f008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000078f8ff000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008087ff0f0080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000078f8ff0000080080000008008000000800800000080080000008008087ff0f00807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080790000008000000800800000080080000098070079000000800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000009807000000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000098070000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000980700000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000078f8ff0000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080790000008000000800800000080080000008008000000800800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "result": "valid", - "flags": [ - "MissingReductionFalseReject" - ] - }, - { - "tcId": 4, - "comment": "forgery wrongly accepted by a verifier that omits a reduction in the verification NTT path (instance B, same key+msg as tcId 3)", - "msg": "79c7bb5f2d7654e3", - "sig": "3f1b4864945a5201d4382d40b3e5d65fef3cdbec046b2cd773a6d480fccc30280851aa28bb61f5649fbb29ca9eee564305bb714fb0275662552cc1fcd9f84871000008008000000800800000080080000008008087ff0f008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000098070000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008087ff0f0080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000009807000000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000980700000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008087ff0f00800000080080000008008000000800800000080080000008008000009807000000080080000078f8ff000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000078f8ff0000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008087ff0f0080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000009807000000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000078f8ff00000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000078f8ff0000080080000008008087ff0f00800000080080000008008000000800800000080080000008008087ff0f00800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008087ff0f008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000078f8ff000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008087ff0f0080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000078f8ff0000080080000008008000000800800000080080000008008087ff0f00807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080790000008000000800800000080080000098070079000000800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000009807000000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000098070000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000980700000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000078f8ff0000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080790000008000000800800000080080000008008000000800800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000101", + "comment": "forgery wrongly accepted by a verifier that omits a reduction in the verification NTT path", + "msg": "482c32b703000000", + "sig": "9ce71caf860b8d45c14694c2b1ebcabd7498b7d582523c675b2ea8e921ba4f690526e34b9430a7a364b3eb13af66f72fc49c0daf3ee1495e92eb48bafa3ee44a000008008000000800800000080080000008008087ff0f008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000098070000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008087ff0f0080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000009807000000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000980700000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008087ff0f00800000080080000008008000000800800000080080000008008000009807000000080080000078f8ff000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000078f8ff0000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008087ff0f0080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000009807000000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000078f8ff00000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000078f8ff0000080080000008008087ff0f00800000080080000008008000000800800000080080000008008087ff0f00800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008087ff0f008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000078f8ff000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008087ff0f0080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000078f8ff0000080080000008008000000800800000080080000008008087ff0f00807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080790000008000000800800000080080000098070079000000800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000009807000000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000098070000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000980700000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000078f8ff0000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080790000008000000800800000080080000008008000000800800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000101", "result": "invalid", "flags": [ "MissingReductionForgery" From d7cf720f33efbb34b57985d0c3c871b356438d24 Mon Sep 17 00:00:00 2001 From: Filippo Valsorda Date: Wed, 24 Jun 2026 20:23:41 +0200 Subject: [PATCH 3/6] Fold mldsa_87_reduction_omission_verify_test.json into mldsa_87_verify_test.json --- ...dsa_87_reduction_omission_verify_test.json | 52 ------------------- testvectors_v1/mldsa_87_verify_test.json | 37 ++++++++++++- 2 files changed, 36 insertions(+), 53 deletions(-) delete mode 100644 testvectors_v1/mldsa_87_reduction_omission_verify_test.json diff --git a/testvectors_v1/mldsa_87_reduction_omission_verify_test.json b/testvectors_v1/mldsa_87_reduction_omission_verify_test.json deleted file mode 100644 index 2e21e52..0000000 --- a/testvectors_v1/mldsa_87_reduction_omission_verify_test.json +++ /dev/null @@ -1,52 +0,0 @@ -{ - "algorithm": "ML-DSA-87", - "header": [ - "Test vectors of type MlDsaVerify targeting an omitted modular reduction in the ML-DSA verification NTT path.", - "Each vector's verdict DIVERGES between a conforming verifier and one that omits the reduction: forgeries (result=invalid) are wrongly accepted, and valid signatures (result=valid) are wrongly rejected, by an omitting verifier. All share one ML-DSA-87 public key." - ], - "notes": { - "MissingReductionForgery": { - "bugType": "BASIC", - "description": "The signature is a FORGERY and MUST be rejected. A verifier that omits a modular reduction in the verification NTT path lets the inverse-NTT butterfly overflow a 32-bit accumulator and wrongly ACCEPTS it. A conforming verifier rejects it." - }, - "MissingReductionFalseReject": { - "bugType": "BASIC", - "description": "The signature is VALID and MUST be accepted. A verifier that omits a modular reduction in the verification NTT path lets the inverse-NTT butterfly overflow a 32-bit accumulator and wrongly REJECTS this genuine signature. A conforming verifier accepts it. Complements the forgery cases under the same public key." - } - }, - "numberOfTests": 2, - "schema": "mldsa_verify_schema.json", - "testGroups": [ - { - "type": "MlDsaVerify", - "publicKey": "f5491b44ab33be49cd905b586c45b4efa9dc444d23e53ad37c51876d05d25d37ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", - "publicKeyDer": "30820a32300b060960864801650304031303820a2100f5491b44ab33be49cd905b586c45b4efa9dc444d23e53ad37c51876d05d25d37ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", - "source": { - "name": "github.com/programsurf/mldsa-reduction-omission", - "version": "1" - }, - "tests": [ - { - "tcId": 1, - "comment": "valid signature wrongly rejected by a verifier that omits a reduction in the verification NTT path", - "msg": "482c32b703000000", - "sig": "9ce71caf860b8d45c14694c2b1ebcabd7498b7d582523c675b2ea8e921ba4f690526e34b9430a7a364b3eb13af66f72fc49c0daf3ee1495e92eb48bafa3ee44a000008008000000800800000080080000008008087ff0f008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000098070000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008087ff0f0080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000009807000000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000980700000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008087ff0f00800000080080000008008000000800800000080080000008008000009807000000080080000078f8ff000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000078f8ff0000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008087ff0f0080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000009807000000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000078f8ff00000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000078f8ff0000080080000008008087ff0f00800000080080000008008000000800800000080080000008008087ff0f00800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008087ff0f008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000078f8ff000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008087ff0f0080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000078f8ff0000080080000008008000000800800000080080000008008087ff0f00807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080790000008000000800800000080080000098070079000000800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000009807000000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000098070000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000980700000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000078f8ff0000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080790000008000000800800000080080000008008000000800800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "result": "valid", - "flags": [ - "MissingReductionFalseReject" - ] - }, - { - "tcId": 2, - "comment": "forgery wrongly accepted by a verifier that omits a reduction in the verification NTT path", - "msg": "482c32b703000000", - "sig": "9ce71caf860b8d45c14694c2b1ebcabd7498b7d582523c675b2ea8e921ba4f690526e34b9430a7a364b3eb13af66f72fc49c0daf3ee1495e92eb48bafa3ee44a000008008000000800800000080080000008008087ff0f008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000098070000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008087ff0f0080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000009807000000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000980700000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008087ff0f00800000080080000008008000000800800000080080000008008000009807000000080080000078f8ff000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000078f8ff0000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008087ff0f0080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000009807000000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000078f8ff00000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000078f8ff0000080080000008008087ff0f00800000080080000008008000000800800000080080000008008087ff0f00800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008087ff0f008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000078f8ff000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008087ff0f0080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000078f8ff0000080080000008008000000800800000080080000008008087ff0f00807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080790000008000000800800000080080000098070079000000800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000009807000000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000098070000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000980700000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000078f8ff0000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080790000008000000800800000080080000008008000000800800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000101", - "result": "invalid", - "flags": [ - "MissingReductionForgery" - ] - } - ] - } - ] -} diff --git a/testvectors_v1/mldsa_87_verify_test.json b/testvectors_v1/mldsa_87_verify_test.json index 04c0494..84e7937 100644 --- a/testvectors_v1/mldsa_87_verify_test.json +++ b/testvectors_v1/mldsa_87_verify_test.json @@ -49,9 +49,13 @@ "InfinityNormViolation": { "bugType": "BASIC", "description": "The signature violates an infinity norm condition." + }, + "MissingReduction": { + "bugType": "BASIC", + "description": "A verifier that omits a modular reduction in the verification NTT path lets the inverse-NTT butterfly overflow a 32-bit accumulator and wrongly accepts/rejects this vector. See https://eprint.iacr.org/2026/1032." } }, - "numberOfTests": 239, + "numberOfTests": 241, "schema": "mldsa_verify_schema.json", "testGroups": [ { @@ -2858,6 +2862,37 @@ ] } ] + }, + { + "type": "MlDsaVerify", + "publicKey": "f5491b44ab33be49cd905b586c45b4efa9dc444d23e53ad37c51876d05d25d37ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", + "publicKeyDer": "30820a32300b060960864801650304031303820a2100f5491b44ab33be49cd905b586c45b4efa9dc444d23e53ad37c51876d05d25d37ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff", + "source": { + "name": "github.com/programsurf/mldsa-reduction-omission", + "version": "1" + }, + "tests": [ + { + "tcId": 1, + "comment": "valid signature wrongly rejected by a verifier that omits a reduction in the verification NTT path", + "msg": "482c32b703000000", + "sig": "9ce71caf860b8d45c14694c2b1ebcabd7498b7d582523c675b2ea8e921ba4f690526e34b9430a7a364b3eb13af66f72fc49c0daf3ee1495e92eb48bafa3ee44a000008008000000800800000080080000008008087ff0f008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000098070000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008087ff0f0080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000009807000000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000980700000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008087ff0f00800000080080000008008000000800800000080080000008008000009807000000080080000078f8ff000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000078f8ff0000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008087ff0f0080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000009807000000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000078f8ff00000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000078f8ff0000080080000008008087ff0f00800000080080000008008000000800800000080080000008008087ff0f00800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008087ff0f008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000078f8ff000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008087ff0f0080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000078f8ff0000080080000008008000000800800000080080000008008087ff0f00807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080790000008000000800800000080080000098070079000000800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000009807000000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000098070000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000980700000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000078f8ff0000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080790000008000000800800000080080000008008000000800800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "result": "valid", + "flags": [ + "MissingReduction" + ] + }, + { + "tcId": 2, + "comment": "forgery wrongly accepted by a verifier that omits a reduction in the verification NTT path", + "msg": "482c32b703000000", + "sig": "9ce71caf860b8d45c14694c2b1ebcabd7498b7d582523c675b2ea8e921ba4f690526e34b9430a7a364b3eb13af66f72fc49c0daf3ee1495e92eb48bafa3ee44a000008008000000800800000080080000008008087ff0f008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000098070000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008087ff0f0080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000009807000000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000980700000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008087ff0f00800000080080000008008000000800800000080080000008008000009807000000080080000078f8ff000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000078f8ff0000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008087ff0f0080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000009807000000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000078f8ff00000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000078f8ff0000080080000008008087ff0f00800000080080000008008000000800800000080080000008008087ff0f00800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008087ff0f008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000078f8ff000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008087ff0f0080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000078f8ff0000080080000008008000000800800000080080000008008087ff0f00807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080790000008000000800800000080080000098070079000000800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000009807000000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000098070000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000980700000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000078f8ff0000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080790000008000000800800000080080000008008000000800800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000101", + "result": "invalid", + "flags": [ + "MissingReduction" + ] + } + ] } ] } From 0a63f30e0f7bdae47e86ae2561df0cfdcde2ec09 Mon Sep 17 00:00:00 2001 From: SunwooLee Date: Thu, 25 Jun 2026 07:59:28 +0900 Subject: [PATCH 4/6] Fix duplicate tcId in folded MissingReduction vectors (renumber 1,2 -> 240,241) --- testvectors_v1/mldsa_87_verify_test.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/testvectors_v1/mldsa_87_verify_test.json b/testvectors_v1/mldsa_87_verify_test.json index 84e7937..999e0cd 100644 --- a/testvectors_v1/mldsa_87_verify_test.json +++ b/testvectors_v1/mldsa_87_verify_test.json @@ -1882,7 +1882,7 @@ "tests": [ { "tcId": 161, - "comment": "valid signature with maximum (ω) hints", + "comment": "valid signature with maximum (\u03c9) hints", "msg": "00000000000000a2", "sig": "591f88bfde7da945eada046fb24d720ecd97dfff5bcaa06e06e4e1f2bd63e764bc03b56716581552ebb1f4ee01b02517c52c545da6255164e3581fb28a22378bbec85875a7508ef8fcc6c63358f8fbd5a9fd6a183c85f9a9872e044fd5eb8a5b40f164996dac9d94e95be48722bf4a6a10ce6d1cfc3efc1b836a7b3177572b82462334e699d5e5b9afb62f6bcb559a1ea7dfcc35db481fa25ead152d35ce8f1c2831c560c299c5f52d18fa09015c3f4734474fde152541ec9e1d1ebb4b7aa1c672521b8214cba2471212f8971dee961b314759a1d6a28e97d044fb767ccf16a3a9b1eee2c374cbebe2c4a67195921bbe93aee989ebc8e36f65331552251105d98da062476d94cc8f33797fb1fb3d11994b8affc06a932398ea430f366e1b042324838e7e63b2513f53b82ab106dac378b239fd322062a832ee1696dbca38a28517104e879ca006b2b1b58e85d50621ccb4b3d9b85090bfa0649ff7ce012156d13861b19248cedd9e4c36ca96acb453d001e84ad26af96f1c4bb184c5e4a8b30d5efa6fa456a8406f6c3e955454c458e5674b6f52f7168e91a2baa20f85e30b95ac36c47651edc078c729696ce54b1c9a078320424ea7e88e9c5bfba42055b4be34305c844385fe0c7095962efac472022c7ea3c5322e03640501ac9e2e99e2e857bd8214964fcec53e7acf707c660e3714b4c5dca300bc19de5de376747b2c374630505c6fc2e6399ae70e0a9eb079d5348db939dd78c4933590eb7bb2c6d9be44e45f7bcff4a3098bd8f17be9e4fe93774f3555f382e23f43b8da78377d64e704b58ad39ee332367c15d8827dc8b019b9c9d359c4df8e8b47a2818f417e99d6bf47e38fb71ddf878601275d0ec8d3ce96dc04fb44e45ac3d31e709bc6f38e92f54d70e2b28d6f878167d7ea5c949f7ed64803e5c4806aba2f3f0467c9f8b9f0e036aacd679cd6dd0fef98d0c86a97e2aeb0ebc2e175e5037fcd42202dfdc06b3118b1572a2473e8e9a39b6cef651288527d8839a67aad6f7743f35cdaa03d5a7bae4208e390ee7fdc5f45ee6d55ed09e87c0fce05f84bf18366a8ca5761a3a1133f6d9502be51957409d9ef70a1c0cebd262de1111caf53e5cc9b4aeccf3fe49d21557e78c64f72fe2deea23d1a125fafa7e213aabe7bb1dbded9cad3fb608f6f7d816e03975b4e5f47a9adc6ef8da8346c3b0e8c8654aebc30e731c58280b41324e83dc0c73c450402f83e9781d57d2aa6ab8f9ae5bff610f198447c4a8a0fb0d87e5540c31e8ab36a8fc9775ab26cb3ab74a3232d4195df05dda9bf0ec6e7925179518a16fbaf79c0a15ed5217653355e9d1d449360b4831249d7982bda4cb138964292fb9be709cc5ae87137a2fc30a6312bd29f651e4fd46fa74707324f7267af3b8f4ebf90592c0562c82acc350acf65c213d83361d0f043e015f7e46d01ce890f1b3321e2b52c9446451bb82b26af6c2e8b96b0bd18f99267c29cdd8eb4d3bf451da3995e72d74704ae48d0ddde3673cd3e55ec512872d85c846c4271f1f0912bac1197345ade8173eaeae1cc3db71ec7fe2935966f8d7de765a408dba177e24b88c2af4a215022a27dae4d0e34fccac48daf846d51d3857c00b2bbca82266ba8471c7c73a5437ae889e066631e128f1e311d057844d675b5e5fa9f26d4efac83b3fc488cc582d7955675b1bfba39df8b3ff7cb45be2813b0db0f9e7e28598df3e0a4baef2bc5646fcfb11f9fc70d17297605805492f05166ac64287ae63bcc0977f9da230430c7da55288c3eea19b74f41b81ea58b74bc626cb376596ab724244e4d157816bba092c1aa64480407694bbaaf84be44f9c161fb0a10ca2c7de4b0328ad470c16aafdaeb1aa677811d6978af1e31a96e1311a775b50fcbe73f7c7c13693667eea4c913d4a3842dad06e671c3fb2d52e8ebc5ddaa99438f21c95763c72ca5323af8ec8f5a159fd097bbf091068bc378006d596501629d3e2d4ab71e48ef2ab8d441de5ebba47b31fc364d2337649e04b2d333c2d59a6b8888b101febf6d30380c5a16ed439b5c20fddcbad74c47d9705093221890afe9c8eedf5f62174cdcdb4430e63de86dde01c5f1e5f0201ffb8a955eefcb5a56b0a32154ba9ca102cd4cb2ff24d9d284e9060bce54727ef2fff74f19d55e3a2b91fd5ff7c0f5f82a98e205bc9f98c179d383342fae01ec8aecb229be0bb937b4bbbfc23a9c8fca20f465f8192b202906826e97595bc30f81d9bf97c05f1f8f37aeb229aa6293297b13a02ec9af784cdd8bf12dfe089f20e6ab674aec699025d172d5f65ec6b1b9f78e1f03a8150b23e0628142775934b3d62f7a96ac37b0129d06f454e18f189c1b79f9156f9130e6277a429a7c65b5a460470c85e10b15a682dfa346be3d17e02232b73d66af8b8305afca2ffa7a5cc5513ec516fce5fe1be999c986850bcd47ab72facb541071e0e185d2876dc907fc6f3d8cdb83b7ac9a0f86bcc8688ec0cb8953dc59228569c8342b4ad5f2a3b2212f309d543a0d179fd92c62578ba73bdfcdb50be2b755abd5c852879937f8cad85c73e45f76069687af96ce52277377521e8612491b1bbd79f64f859e0ca6370b6c0665e81515b70597bb0c1ba25c7fe1f44db091c7044016c770e0284c0b44009e6fd55c362b9053367a7f331c4f6fc7926d6af4f77ce469170a1d9caee33c616a2c779de448b904ff2c1813cabf26552e8c53b4f8cc0bed0f6d43ac57336f2d8e9cef3a3460f97a9583e6dd9c62b1882d2f90a29f2ff631e8fd26916ab8f5d98ed9cf5f0f2ecff060325058c126371544e11ec1f07f4d524b29824e9e6da175dfb9ddde86f8a7308917b4af2331643601df4976e357ef7be0bdc9f69c315152408a0d9d4bd78a698032902d758683a5b8c3043fcc8df6c2d53aed1dc2dbefe29308f7e566dc9c1b28acd93054224638ca233c712b31f2309f81f938d8136db69028ce0f187ac51cf9b93e169b99dbd22ccb0877f05acffdf21f86ec0e617fc47cef1fe78bd0585a4a35d8b27cb64151b9c91bc76e709875b134890781fdc841a1fcf69d72f50de633b0cc7da00481f9fa5226dd17ce98f7f087923097005087940e5373685169c46c896ac491b31fc40cb6540698d57a6361a71a875d1bc038c47dce744961a4c0a00108c75bcf1e19d9009b3a9f2ce53ecfd88c2c70a2ea87e4c9a70ef339e44cb0f72bbe824eaea966bf01be5e05c377c50254198d3ce05171e44046f32b9aeb3cbecdb17f05507076b6cd79942c6dce347d7f47fc99077b3bbaaa756b2e6a6addea8b78553eb02a77bc7b9e58b9b51291a78ac5fbb28ed4c76dd5bd99eba064cc60babd8a2453a6344f1290ad19b598363e1d903ec15e4416f4c7e8b72b8e3c9627e662cb0e30eea85aab0536c0906c304ecd34031db7e87350f9a1889e2e1a925acd48acddc1ca35bbaf2626d57fc8926dad3308116be4c5e39c552992de637478297ccf7cb20dd09906dd2c8955f77ef419e450fc55aec08effc3f9697c268190e12fa2063315aca294223fbd406bc8ab4124eb8d5cb7865cf6e0d420d0d3bea341ed161745cf668b6a9e776f048c0908615f558ae3c788b0d7f9b3b1b8336e5230d77be2943a22d1475189b31b9b2998b52bcca551936aa2fdeac5b2d9a18b6d06aae6b358987beb005f0a47201eca9430033c1ffcdbb9bd675025a4b7dc4453745c02acfca39a93999997b3f2546d41acb6350d0132b44cb3a51de63d4b8c3d4c0b1b4ee03bfe52f144af7361b808ae7a7ff2e8ba181c2c8627a33fb7ccad49428bcc2da9233ca7e5c4e49d6f077bbecb6773d6f105851447d3b293c91b9b3ea680412f549c93ae3860a336da9632369b950c973fbefc272a9dbce7c32de11aa506b9a1527674d9bdcd249a8521bdddc961158f06fe4c843ce974f63111bfbdd3ccb753503a7b209be0da148be5eb7264991a3eda0c6891364923122b265a2a240e06988f00cda9981f601870137f135f12e0aa4b6c1c97f10af4b26b7bf9a12e6a9eca59e30e238e08053971bf6e0399dbc6ffc1ce55525fe796342d65637bab79d2d31213437e3cd91f0a8dfc0dcecf2ce329982e16a436142fcad62393e3a62c5bf3ea2b88464f43cfca05a53080517bafd8947a48f82ffa669f007481c9d4d9e3bb9dc779e27a17f5433e665463d665e9f9f643ec7c5e38ebc3090076013dd11c959782a20093340d738db8353c6bf0c5ba0f0e64b9c352227d8bea757a7561a65aaac6cbf2ca88ccd609c7b7912bff70047b735249811ea58801ddd9b934c10936339f5cb4724249c17f4304a3373e9289147647c83e03ac1c41c7c3b26916d8006180e9004fb76cddb73468fc364a4140dd103b02a36a0ef0fa2c8b18c0ce4874899df38372e3d636a268d6963f3969e955ec23a3b6aa3582c7c656abae7b06905b030778cb53eae8991c6a0574041242c737a8f2215d24258e885d1a67a10baa1705ed5e8f4fb7f231f7d7204b2f16f8a93bd2188e404b3093e14b9981c6e833bbcccfad00fc525dcafebec0bc9668523075e58de440e4472f73a848b96e6f8a6d4d73fb419639a1f411d333ccb1cb8f86f8839a0cc4d970cb78bbf32f56ade5cb03a6cb2a085394680f81e0d0788f1acc06c40c9556d7553e1d613002b28a3d0e6bd7481e0fb816505d801ef9b3d584cc416c2edcf9a3616d43757596342a83d2c4ba0aefc2526d973a578e5228f9e7ca209217849a416d95eb14b2557b336e99e3608d207bfe0933bff07db548f01d44b1346a6dfb6874cf147116f41a3aad6d9f4f145526c12c1bc8b191d02ed560bbb450d655096a44a08e6f8b85a48e99740803a0bdd2d70e045332aad7eba49adf4c7c7ca0e6b720d9629aaa664245f1c9ad60ea275203cafeb23d8b0622956f056e8381091b14e52617ef62f9336b4498c6c40ac6de9cb030411162f274e0f9118b94021c14869636a9ec3fc12f9a3862b2f0e4bda3fc3136dbc14811c5502c582770101176c7c559981d07e75d53b4f647498cd4b11f466fcc6fc81e282a8ad6641f3d2cb5fbadde0317c1c000c9b4152a3443ef76aa7dda3ec01ac60bca3d32b81c38c4aa3c07a2206f93eae7ab872479ba46892fab3323f481b12d0dd9a740021be548fe739ddf35648e4b371351c4ed67a64d4b7986b8e58aafbf4ceff55b4849138658426d18fa25192e9013fce273d3dd8d935527390c55766d60239c55efdfdc76fb325b014de691967b5821db4c0c6d643129bfbd5e4bf82e83c2c5087fba46fe92fd2c5673f4068c8115fcea4fe162e609f9f7a7e0b884edf31e6f7748ff2e015b22a26c844b17fd56c9ab9f335d7cefe71a8a09602cadc44bc3b044d041aa94e90587a449704fd8e13494eb7180d6c8ad6e23e472b578a6638c0bbdb6fae17f8d64d22b18474eb2c12a0d541a3510b069e306fab106b1d24e663e19bb6071ac0efe5ba41b021c531e2ea64563fbd4f4cacaced7f610b694f26669380437f7e3b885ca12873f946cf6682608a250cfdf5c219e45fbe53dc5d1a7d95506237bd287abb40cdafe2dd442b429834a3e04320960b0ed98a0c8aa1c1bbceb5d89109982b5c2f51eac0b2bc045b6bc9ba22ee9e9723909288499d7320a98ce0f67f87a5f0fe7548d9e3cc92a18dea477808e81dab8f0749a556e9a3df61759effd19c11701c8f8261bbde7c59eb9f302e5207b49be74859a76aad6f121dfcedafbe8e5c246a5173d2b02ed15d14e9b8de09249718547db858c43bd42a8de8245f70125ed06185c37fa9d82e627440f2e60561d7185a19dee052c387031a575d1b029a199d9bac0677338acb9c2d805f4102be15c44eee2daf139b718b62fb34d8508fb33fa8f2617cc8d33fb8a93d905cf043d28437a698298025472558db0021d89e1ef91d4416c611c6a96f3a6c381aa3597412f3e59409ea095b24c55fe07af9c801695f1ffa2a80e6a728f727cbcdfb2e9cc6ea8106eb85e4bbd053891fed5c0ca06a52a12972fa801a3299c06a04f29285750849eb3cd77593dd4c44a342d7877cf5cc93775d68bb0bc9a236a41dc05a93dc0323ed04d98c293aa3ba7d6494c57384a54fbb4549d8c886d427ad0b21a01801c82022b9fd94c29d22a37d50daac6147d98e878b1bd667ef22ffc51ced4d18f79f29013fd6ede416d368f021997b6e0d8f35597518303a747d98d8e4b49b9e6a258e2959cc40e210928d12ca1ebe47498205fc421cc4e4a4fb6b780a265e08cec4541e04375a285c16eaed0485bd77654b3076f20ada8d6725245294a1aa9bb25a1ece083e9f2b12381b05f6f966eba6c875f5583b4c0875b3bde70fcf11d44a0bc2421baa56643b68d1cc93397ce7b358c8117c61f64888fe45ae222b6acc577e35ab47bc902e77164b2e659ea8c82a6776b1279a530014d51a6c9d3070e153953567db9bfd82a43739ca5111e21315083b4c9d6dafe060b0c1e3b798b91a8c5fc1a4a7a849baeb6c0deecf6fc0f25506695989ea9b4d0e40b1e1f64668386bbd2061015202b37424b", "result": "valid", @@ -1922,7 +1922,7 @@ }, { "tcId": 165, - "comment": "invalid: crafted hint section with last limit=ω+k+1=84, reads one byte past hint section", + "comment": "invalid: crafted hint section with last limit=\u03c9+k+1=84, reads one byte past hint section", "msg": "00000000000000a2", "sig": "591f88bfde7da945eada046fb24d720ecd97dfff5bcaa06e06e4e1f2bd63e764bc03b56716581552ebb1f4ee01b02517c52c545da6255164e3581fb28a22378bbec85875a7508ef8fcc6c63358f8fbd5a9fd6a183c85f9a9872e044fd5eb8a5b40f164996dac9d94e95be48722bf4a6a10ce6d1cfc3efc1b836a7b3177572b82462334e699d5e5b9afb62f6bcb559a1ea7dfcc35db481fa25ead152d35ce8f1c2831c560c299c5f52d18fa09015c3f4734474fde152541ec9e1d1ebb4b7aa1c672521b8214cba2471212f8971dee961b314759a1d6a28e97d044fb767ccf16a3a9b1eee2c374cbebe2c4a67195921bbe93aee989ebc8e36f65331552251105d98da062476d94cc8f33797fb1fb3d11994b8affc06a932398ea430f366e1b042324838e7e63b2513f53b82ab106dac378b239fd322062a832ee1696dbca38a28517104e879ca006b2b1b58e85d50621ccb4b3d9b85090bfa0649ff7ce012156d13861b19248cedd9e4c36ca96acb453d001e84ad26af96f1c4bb184c5e4a8b30d5efa6fa456a8406f6c3e955454c458e5674b6f52f7168e91a2baa20f85e30b95ac36c47651edc078c729696ce54b1c9a078320424ea7e88e9c5bfba42055b4be34305c844385fe0c7095962efac472022c7ea3c5322e03640501ac9e2e99e2e857bd8214964fcec53e7acf707c660e3714b4c5dca300bc19de5de376747b2c374630505c6fc2e6399ae70e0a9eb079d5348db939dd78c4933590eb7bb2c6d9be44e45f7bcff4a3098bd8f17be9e4fe93774f3555f382e23f43b8da78377d64e704b58ad39ee332367c15d8827dc8b019b9c9d359c4df8e8b47a2818f417e99d6bf47e38fb71ddf878601275d0ec8d3ce96dc04fb44e45ac3d31e709bc6f38e92f54d70e2b28d6f878167d7ea5c949f7ed64803e5c4806aba2f3f0467c9f8b9f0e036aacd679cd6dd0fef98d0c86a97e2aeb0ebc2e175e5037fcd42202dfdc06b3118b1572a2473e8e9a39b6cef651288527d8839a67aad6f7743f35cdaa03d5a7bae4208e390ee7fdc5f45ee6d55ed09e87c0fce05f84bf18366a8ca5761a3a1133f6d9502be51957409d9ef70a1c0cebd262de1111caf53e5cc9b4aeccf3fe49d21557e78c64f72fe2deea23d1a125fafa7e213aabe7bb1dbded9cad3fb608f6f7d816e03975b4e5f47a9adc6ef8da8346c3b0e8c8654aebc30e731c58280b41324e83dc0c73c450402f83e9781d57d2aa6ab8f9ae5bff610f198447c4a8a0fb0d87e5540c31e8ab36a8fc9775ab26cb3ab74a3232d4195df05dda9bf0ec6e7925179518a16fbaf79c0a15ed5217653355e9d1d449360b4831249d7982bda4cb138964292fb9be709cc5ae87137a2fc30a6312bd29f651e4fd46fa74707324f7267af3b8f4ebf90592c0562c82acc350acf65c213d83361d0f043e015f7e46d01ce890f1b3321e2b52c9446451bb82b26af6c2e8b96b0bd18f99267c29cdd8eb4d3bf451da3995e72d74704ae48d0ddde3673cd3e55ec512872d85c846c4271f1f0912bac1197345ade8173eaeae1cc3db71ec7fe2935966f8d7de765a408dba177e24b88c2af4a215022a27dae4d0e34fccac48daf846d51d3857c00b2bbca82266ba8471c7c73a5437ae889e066631e128f1e311d057844d675b5e5fa9f26d4efac83b3fc488cc582d7955675b1bfba39df8b3ff7cb45be2813b0db0f9e7e28598df3e0a4baef2bc5646fcfb11f9fc70d17297605805492f05166ac64287ae63bcc0977f9da230430c7da55288c3eea19b74f41b81ea58b74bc626cb376596ab724244e4d157816bba092c1aa64480407694bbaaf84be44f9c161fb0a10ca2c7de4b0328ad470c16aafdaeb1aa677811d6978af1e31a96e1311a775b50fcbe73f7c7c13693667eea4c913d4a3842dad06e671c3fb2d52e8ebc5ddaa99438f21c95763c72ca5323af8ec8f5a159fd097bbf091068bc378006d596501629d3e2d4ab71e48ef2ab8d441de5ebba47b31fc364d2337649e04b2d333c2d59a6b8888b101febf6d30380c5a16ed439b5c20fddcbad74c47d9705093221890afe9c8eedf5f62174cdcdb4430e63de86dde01c5f1e5f0201ffb8a955eefcb5a56b0a32154ba9ca102cd4cb2ff24d9d284e9060bce54727ef2fff74f19d55e3a2b91fd5ff7c0f5f82a98e205bc9f98c179d383342fae01ec8aecb229be0bb937b4bbbfc23a9c8fca20f465f8192b202906826e97595bc30f81d9bf97c05f1f8f37aeb229aa6293297b13a02ec9af784cdd8bf12dfe089f20e6ab674aec699025d172d5f65ec6b1b9f78e1f03a8150b23e0628142775934b3d62f7a96ac37b0129d06f454e18f189c1b79f9156f9130e6277a429a7c65b5a460470c85e10b15a682dfa346be3d17e02232b73d66af8b8305afca2ffa7a5cc5513ec516fce5fe1be999c986850bcd47ab72facb541071e0e185d2876dc907fc6f3d8cdb83b7ac9a0f86bcc8688ec0cb8953dc59228569c8342b4ad5f2a3b2212f309d543a0d179fd92c62578ba73bdfcdb50be2b755abd5c852879937f8cad85c73e45f76069687af96ce52277377521e8612491b1bbd79f64f859e0ca6370b6c0665e81515b70597bb0c1ba25c7fe1f44db091c7044016c770e0284c0b44009e6fd55c362b9053367a7f331c4f6fc7926d6af4f77ce469170a1d9caee33c616a2c779de448b904ff2c1813cabf26552e8c53b4f8cc0bed0f6d43ac57336f2d8e9cef3a3460f97a9583e6dd9c62b1882d2f90a29f2ff631e8fd26916ab8f5d98ed9cf5f0f2ecff060325058c126371544e11ec1f07f4d524b29824e9e6da175dfb9ddde86f8a7308917b4af2331643601df4976e357ef7be0bdc9f69c315152408a0d9d4bd78a698032902d758683a5b8c3043fcc8df6c2d53aed1dc2dbefe29308f7e566dc9c1b28acd93054224638ca233c712b31f2309f81f938d8136db69028ce0f187ac51cf9b93e169b99dbd22ccb0877f05acffdf21f86ec0e617fc47cef1fe78bd0585a4a35d8b27cb64151b9c91bc76e709875b134890781fdc841a1fcf69d72f50de633b0cc7da00481f9fa5226dd17ce98f7f087923097005087940e5373685169c46c896ac491b31fc40cb6540698d57a6361a71a875d1bc038c47dce744961a4c0a00108c75bcf1e19d9009b3a9f2ce53ecfd88c2c70a2ea87e4c9a70ef339e44cb0f72bbe824eaea966bf01be5e05c377c50254198d3ce05171e44046f32b9aeb3cbecdb17f05507076b6cd79942c6dce347d7f47fc99077b3bbaaa756b2e6a6addea8b78553eb02a77bc7b9e58b9b51291a78ac5fbb28ed4c76dd5bd99eba064cc60babd8a2453a6344f1290ad19b598363e1d903ec15e4416f4c7e8b72b8e3c9627e662cb0e30eea85aab0536c0906c304ecd34031db7e87350f9a1889e2e1a925acd48acddc1ca35bbaf2626d57fc8926dad3308116be4c5e39c552992de637478297ccf7cb20dd09906dd2c8955f77ef419e450fc55aec08effc3f9697c268190e12fa2063315aca294223fbd406bc8ab4124eb8d5cb7865cf6e0d420d0d3bea341ed161745cf668b6a9e776f048c0908615f558ae3c788b0d7f9b3b1b8336e5230d77be2943a22d1475189b31b9b2998b52bcca551936aa2fdeac5b2d9a18b6d06aae6b358987beb005f0a47201eca9430033c1ffcdbb9bd675025a4b7dc4453745c02acfca39a93999997b3f2546d41acb6350d0132b44cb3a51de63d4b8c3d4c0b1b4ee03bfe52f144af7361b808ae7a7ff2e8ba181c2c8627a33fb7ccad49428bcc2da9233ca7e5c4e49d6f077bbecb6773d6f105851447d3b293c91b9b3ea680412f549c93ae3860a336da9632369b950c973fbefc272a9dbce7c32de11aa506b9a1527674d9bdcd249a8521bdddc961158f06fe4c843ce974f63111bfbdd3ccb753503a7b209be0da148be5eb7264991a3eda0c6891364923122b265a2a240e06988f00cda9981f601870137f135f12e0aa4b6c1c97f10af4b26b7bf9a12e6a9eca59e30e238e08053971bf6e0399dbc6ffc1ce55525fe796342d65637bab79d2d31213437e3cd91f0a8dfc0dcecf2ce329982e16a436142fcad62393e3a62c5bf3ea2b88464f43cfca05a53080517bafd8947a48f82ffa669f007481c9d4d9e3bb9dc779e27a17f5433e665463d665e9f9f643ec7c5e38ebc3090076013dd11c959782a20093340d738db8353c6bf0c5ba0f0e64b9c352227d8bea757a7561a65aaac6cbf2ca88ccd609c7b7912bff70047b735249811ea58801ddd9b934c10936339f5cb4724249c17f4304a3373e9289147647c83e03ac1c41c7c3b26916d8006180e9004fb76cddb73468fc364a4140dd103b02a36a0ef0fa2c8b18c0ce4874899df38372e3d636a268d6963f3969e955ec23a3b6aa3582c7c656abae7b06905b030778cb53eae8991c6a0574041242c737a8f2215d24258e885d1a67a10baa1705ed5e8f4fb7f231f7d7204b2f16f8a93bd2188e404b3093e14b9981c6e833bbcccfad00fc525dcafebec0bc9668523075e58de440e4472f73a848b96e6f8a6d4d73fb419639a1f411d333ccb1cb8f86f8839a0cc4d970cb78bbf32f56ade5cb03a6cb2a085394680f81e0d0788f1acc06c40c9556d7553e1d613002b28a3d0e6bd7481e0fb816505d801ef9b3d584cc416c2edcf9a3616d43757596342a83d2c4ba0aefc2526d973a578e5228f9e7ca209217849a416d95eb14b2557b336e99e3608d207bfe0933bff07db548f01d44b1346a6dfb6874cf147116f41a3aad6d9f4f145526c12c1bc8b191d02ed560bbb450d655096a44a08e6f8b85a48e99740803a0bdd2d70e045332aad7eba49adf4c7c7ca0e6b720d9629aaa664245f1c9ad60ea275203cafeb23d8b0622956f056e8381091b14e52617ef62f9336b4498c6c40ac6de9cb030411162f274e0f9118b94021c14869636a9ec3fc12f9a3862b2f0e4bda3fc3136dbc14811c5502c582770101176c7c559981d07e75d53b4f647498cd4b11f466fcc6fc81e282a8ad6641f3d2cb5fbadde0317c1c000c9b4152a3443ef76aa7dda3ec01ac60bca3d32b81c38c4aa3c07a2206f93eae7ab872479ba46892fab3323f481b12d0dd9a740021be548fe739ddf35648e4b371351c4ed67a64d4b7986b8e58aafbf4ceff55b4849138658426d18fa25192e9013fce273d3dd8d935527390c55766d60239c55efdfdc76fb325b014de691967b5821db4c0c6d643129bfbd5e4bf82e83c2c5087fba46fe92fd2c5673f4068c8115fcea4fe162e609f9f7a7e0b884edf31e6f7748ff2e015b22a26c844b17fd56c9ab9f335d7cefe71a8a09602cadc44bc3b044d041aa94e90587a449704fd8e13494eb7180d6c8ad6e23e472b578a6638c0bbdb6fae17f8d64d22b18474eb2c12a0d541a3510b069e306fab106b1d24e663e19bb6071ac0efe5ba41b021c531e2ea64563fbd4f4cacaced7f610b694f26669380437f7e3b885ca12873f946cf6682608a250cfdf5c219e45fbe53dc5d1a7d95506237bd287abb40cdafe2dd442b429834a3e04320960b0ed98a0c8aa1c1bbceb5d89109982b5c2f51eac0b2bc045b6bc9ba22ee9e9723909288499d7320a98ce0f67f87a5f0fe7548d9e3cc92a18dea477808e81dab8f0749a556e9a3df61759effd19c11701c8f8261bbde7c59eb9f302e5207b49be74859a76aad6f121dfcedafbe8e5c246a5173d2b02ed15d14e9b8de09249718547db858c43bd42a8de8245f70125ed06185c37fa9d82e627440f2e60561d7185a19dee052c387031a575d1b029a199d9bac0677338acb9c2d805f4102be15c44eee2daf139b718b62fb34d8508fb33fa8f2617cc8d33fb8a93d905cf043d28437a698298025472558db0021d89e1ef91d4416c611c6a96f3a6c381aa3597412f3e59409ea095b24c55fe07af9c801695f1ffa2a80e6a728f727cbcdfb2e9cc6ea8106eb85e4bbd053891fed5c0ca06a52a12972fa801a3299c06a04f29285750849eb3cd77593dd4c44a342d7877cf5cc93775d68bb0bc9a236a41dc05a93dc0323ed04d98c293aa3ba7d6494c57384a54fbb4549d8c886d427ad0b21a01801c82022b9fd94c29d22a37d50daac6147d98e878b1bd667ef22ffc51ced4d18f79f29013fd6ede416d368f021997b6e0d8f35597518303a747d98d8e4b49b9e6a258e2959cc40e210928d12ca1ebe47498205fc421cc4e4a4fb6b780a265e08cec4541e04375a285c16eaed0485bd77654b3076f20ada8d6725245294a1aa9bb25a1ece083e9f2b12381b05f6f966eba6c875f5583b4c0875b3bde70fcf11d44a0bc2421baa56643b68d1cc93397ce7b358c8117c61f64888fe45ae222b6acc577e35ab47bc902e77164b2e659ea8c82a6776b1279a530c8d2dddedfe0e1000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404100010203040506074954", "result": "invalid", @@ -1932,7 +1932,7 @@ }, { "tcId": 173, - "comment": "invalid: signature with ω+1 hints, encoded so the extra hint overlaps with limits[0]", + "comment": "invalid: signature with \u03c9+1 hints, encoded so the extra hint overlaps with limits[0]", "msg": "0000000020e10cdb", "sig": "38adb66177e4321d309d2d3ad9bad8d695140c96ff806d3e043d29c025d8109e32f1584c9cedca656523cd9adb89bd3e5ab7adb4020f2170f184478bb6b35141bce47de69241aa8a5b7c624a550110b232e61d68c2a50d24827d07fe078b97e9eae1349de37f6dcd82a1deef7a6bf54adcce935e94c0a6aa9e00b1b52152ca13255e14fe272df9e1368da0e8629780a37881820b71b24cb8c61fa2865a7b298b0482acc3e83ef57e4fc9d12f399e21440f8a2abbf7f96c7a32555ba0dfff3ef002eea3ce3b3bdabb70dc502ab256d93469d27875a6486457f83482473de00dc47fe7b0c73882d5269f0dfe8a1c64f51910e650890673e1e638dbb29cf2f307e69774d218a8df74509b99a495a62f2c31d4ca7e950ed827eedf959017d572f8d13c75dde821dd061b5482dbab0dd4e159690d291fb5af9c1143f87f7d1db7775d7f7144cb5386133f40f847f1886f8b868567cd26b020481f7c07bb9fd92a278dcc9a5f700f949098e82d8e0e5edd90069713243b7577681ce860b40432a37ca75077a6a89482063ac9743d3b5c3d9211192dbb91f7a7bcc50f56e9448f8303a5e96f8118acca0d0e4427db077d7895f2ef6f353af60228ac87b2893ace23d3d65e7a78c887f9ccfc258676e84c8248b2338bf795af3b0c8d9d0bbedaf4004a1d925fc93f412dd752d0be4ee18497daa4a0aa6ca7f5f08be242fe1cd9fce4dae086c7330461fd5242772d98b9ecedcebeea9e15d7d526be15c8d51a2f8fbc532ddacac7c81f11a7024b4ea6c8f21ce2404457e8099ebca2bb9b07bf812d473abde55b8b15d76b09e5bb6820a0ecd09eb80cf525bcac5b5f2b3cbc6e6cb12e5b028c72c1eff5469bb8e66b9dce876c41ca5d4af653fca83352521ef42fd7291ad516199e92aa126ffed1f75932019970d1a07faea1f458555c068a93e2b7824123f416da1b21bd97d48b33cf21fe42d608c4f355e78698295e0a1190161b8d3e4862a2405e3753a9ba03b9098d5b552cf9e2fbcc2f8df6ec05c0696221af8cb4d9c731e61c862852d72334503f4d1cafa40ff6f09ff36e17187cc5646268f3f4e67591d31f0f5a67617d16d90569b25a23d8dbab2a6c236cf2c0bd313e4ba4651c52ddfb9e03d6a7a6f314f665b2354885801359af37be5c9465aaa6ac7013d185438b08295d6c59b962abbf7bdbc6457b231145d9c7b9aa1a7fa99e5023bc2e5c65597218f470c9525db524574c27330304558684fd837fefc6e0fd06787787986f7c4505e5daa33c73bce3c2fad5ca459b653ac05d85b87f2816423781f4958c9bc591af01628c0b8c7fbd20bffed0dec11fa1e15f9428228aa7f2502c80b68fd5fd7386a75600ec3ef89ef571a4e7c5cde80790467aaf3d5e64c0d76989235e49528708ddf7a828ca12986c3ade7cd5df8928d9f81334cae0edf748bc6a1c1a167d3bdf2469e714fd974500ba4d2667ec0883b84c6a9c20df2d5575309479b5a6ca9e2c07f0385086dfa381d5c24e39e96bdf794edadbfe56b465602110c68af41829ca2be7479f5a545282489ba0fb75530ab03d1b2ecad0339ad76a07be1aac6e07c7e91d3bcdf10c2ce2c5533416e719b2575c9a2687de906ed542c62f088bd8bb4d905b7277acfa22c4211a6d3fd2a34100bdcfff4ee3c4e069175eac966c335b4205c6d8323a3670c5ef89aaf249a22450ab0183ebaffca660bebb62423e97592943a60c62684b06ecc26226aef4962dcc4c2cb097f67af0293fcba63bd9a77ccb1e8493db9b20abd027db0abaeda7b5f35afbee7cfe363375e05f0a7cb626a74705f99b972348391a2ee2b9276b5156ecac15a14c7eb3827676581d2f678361755a9fd11e602bed491d04222fd75c5dd603f00e4c81b1c580d9368b2722956a79442f670dd771c372976dda73a4fdf330e0b22506bc03beec8ef0f456ee9ebdd1b22d05fb719a34925d95c5a89c7b5896543162e37d1f727b66514da006d99184a0220382b8ef4ad929cb36d960be28cd30854394691c400d64ee66047e05093838f8bac089724846c8cf268ac659333a811707ab61d665da60f3517c7aed9a803955215aed52eee6935b4b626366000c3e8f7b48bf52a67c5151aa281145cbde661d430c720fdcd165ee546ede5d339172ff0f1cdbf31086aa698266363e087722b133728482da688bdd3fa7a4e5a0c033059040c14953003907da3c64c0a4b7aa1d977af9434f78f68a16c85b8fea976e11cc3af777d4bbc34c4da61f724df0653586fa75c83f573ea2488483d646ee11bde68a5494545e729c4ebe84797f5a273f3e8ab6515548b8c1f29279aa8c3152936df7d96af79f393b67534b5102c514cc87b2a77e874fa9cefc239ea53c72d62b31b1fab41191d1ea77c1cbef9b735f41b68d4978547413c7d170d633df400e414feafaca783b3975d06034c4a3e21125411e64cb03c767dc6f47382c178acf11224dd494a3366d63b3b56d5bf815d4245a8a94be4baf7aa0946ffe46c979a5882858755fb3af913e7af5f4919735aae789a44b13ba82a72de459430224e4e5e93d4ffbb545ff62cddd698ea4d4490bd1b484d53202894bf0411b66b65d6b10bb5c720cd88c5f33c9326aea9172415702f1707fbb5febe3ec8f6ce301e780b9a823a2e38777ac23910508f6ab78201755d80ee12fff939e4177b25a9722eb4f3a047bd96af0071870b0ef731456615997212ac0c3d4f321a38187d8748e07579c295783242ab7fb024304c03222151fd016a3fab36ecef7029b62d2d5845e0e55bc7c97d22e2625144a9fe2891db4a9f2bf5f9a715042e0a6aaf30c3451a73652a09c264978edd118568d7fd8bc2aa88652043d372420f4151918c133d5dc5b21c6d3dccc02d37203a06eafcd126515a618c93efa9b3e4776beafbcec6a0d3ce4cce6e806d83d991ce467b7d33c2ed35922f29ad4a318ba8dd0b4fc2c6132e2eab6ff1ea411e4c81a43cb4641db7d89e726d40360e0b9a6a1523b2f05872059fcc43272d9fb8eda1ff72817df7d170953c13fca643f020486d35a7bfec4b836f692bf294cd81285c741239085847e7e7a25eee14c454d4cffcfb2bf180fb4c2d6f490495e58b8f1ccd30c8a77e8a2a4d7d8231500275ae1879b7f3b77fc5830a0f2b83fe4f08ee43b863643a51bff6276eb10b6762c5c48787a42d056f7d64068e95f9efcb5850db3f928a95624ff008b592ae9369ec55bd51a5e886db0b8e82aa5da5ea37bdfaeb082532569be0bc2f9ac0861fb850f217ccd2b94ec13e89edd1e0e99d90633faaeb4c1b388f38b3455478f982ab2a6d1c78bc6ffec7c838c7f68357b3996e5d221ac1a7f220c5b9a57af259bfcdef2cb773d4fbd4c1e2d5b868e8766dc5822029f0d3dc89ccbeb7d4ff924e0ddf0704731348042b6248dfbc64cb22f77c65fdf8f2fc7762c793ccb19e2c2b7677ad7e8817f7d2ea9d21465e13ac4f116158d20310fc4c7b94e3668b2421a56056bc8908336a6781ec4df3770162b00ff554ff60ff37d8203b89ca0c2f20f83ad66425e44213d7c83a933d7b73f4b1b8e4a2499f2d4c54eda47edd1f0e56c89959364517aa5b62b90af8de1c1fe384fdc59f35421f3c53fcdf675c29f59b2b18149223236f8cc569ef13ba31f5b26d2e632dc830334ac9626b6a0c39e7801aa082a5cfe9f063348e2c1cbfbd54d7711d6a8a01dd65b0899a22b94c9f2923281c8321ec4d24f029b281a0d9309ce694a419f01a55e478d258c8001cbccf0a842d2bb98eeb2ca992d20863bd95ece67b912da4911969985da2b05e33f10c7b6a002e56fc8b1f83327e6fdded69f0bce1b93e0171e5f2a48fe9bfa12f1c439e8fe4a78080d6b097383b3affb7919bc4ed09b92e03a0e5ed85249eddcd5bac4e52d073310d1b4cc71f359eb0bb553124933e733e5d201517b1eab00b80957a4f46df6fa5618a88dd6cf802cf3b18d315e465d49a0eca6cf657224d321aa6e9aee9db7184401570ad5a693be3f87d9a61335da246401d7e13e0b630e361f406a2cae8b52ceed9078ff11d388ebd7e08455b865ca5c3cd3125d5d012577ab2cd575f40e457a802aa5fdf9eb87c470a69edb64e76b29192274d974909b39a875e23e6b82be951b61be71b6262da61cf820da20aad684753d503d0c89cde7fc22b192e68032cd7a2760fb5955184946cf401af77920cb9a215293f9c6269b76b6ab9c1aaa7bc1d5220b96a415e15da0af3013b67f0bbeff9052b2b5b67766a5785b4dd1d454e970499783b832b9712289fad3423d4f0a93110e4506ebe6374c12a7ec5b612218a4397644ce5771122d0679b8eefc72cd85c7f5ef8d3003a6a7f4ab9c9c03f4edf9a690ee2691ef027fd64ca1c48acc97152f1a59e2be3fbf3a320a71b55db823e517eacf0414387875436a39a06c29e9a085fbf313f54c89d294151dbaf77f395af5559037c54152be2b6b0495114d30841108afded27a3df391b69981bca6c28998516e78d8afdadbb47b986da739de10ea72697054b17e386a22d1b69bac7ea0d9e3991d7a56a0cdcbe5eb09a0bc42ca4ffe6571bc913eca52deb8464f1b233bdda8818970163ff17ac02525218af07fa2c69bc64ca773716e98371dc262c874a910ce595df6ca494e75c436e9b1279a0657d3f1bf737daccd327bfead1323571b1a7e9c70975f335ccd26e8928454b59f9eca6b7c6d398483a06830585aa6c227763a688815b056080d0c2e89649176794392c8f2c7408e3431387a92df672c092ffbc96f2c9ce1cfd0a04d8963697248b3d291f79453f17fde66a39b7a42485c3282cc85bd8599750da22ace6a745ae2f301310123d605f3d3a0ebfc7d66242613465e19119d7155dbbe168fb248832569cc191f97aa9c4719765a096a0914a633ccbf23eb89d24b3a6dfd7250c1103ab03e555ab15de03bb41a33b6405774fe3c7775b985bd6bf9e3cca6b7966415d4feed3331e80d376ea1e60873274351339528e464809e1ece5de04f4bf72cd48f127ecbd9e8d0626d9d79fdc87b300e9ea3fc98010e7d8deed373cb476f3de8f085eb3bb3c89cbff5a1e296731627f6bbdcdc5ae4259ef30bb93deb0c3ea807f0d1adbf454793c418665706baa939bc18df99281dc6c54ac93f8413a725f033ad6eb468299d65afc431ab86fbc1613088981e8279d59e36fc90fa4d0520f28d2639b199bca3fc8641ad234d8db6cfac16f562f4cd2fc257e26a90ff86fbe7b6a34d80faee627f23d12c1e586ab8148e4613a62682428b38285a60180d87ba81477670bef79f881ffcb6e443af08898c6942bc2354599d8fe9afab2bc98889d034a32493902a3941147fa6218088080a75657b7e420e740f4db48ab6b4fdb4ba7ebe82165fba1a6930fb6b53bef1073b0d0811a046496d071abc3d69f5c2c13b08bff4072fb62e770108f7c400017c16d0bf902e20354cff8df540f87bc972f2ff3038cdf60d5e8897f4406776e0b6609589ee6ab6d175159bc5ee569ab546c5df7fcc166340a825d12fe4d9c80f73dc7bf5a22ee2aa2bc6d392aa1729a706c2c234c66a040afa3aab8afa8197910b2faf99bd289e8ebe80671070fb199def92dfc4e30b7aae0cb874263c412dd431fd5b8d10e2bcaa709c3ef44755b5f8691cbd3c47b010a4edda3f3f6861f8fbdb6db2db41ad3530bf801094118eb0aea1cf65329a50dd6d2887682bfcc93ee44a07d3e98d3483643142b6284c79dafaced2a9217ef21a3dda9b27b9a6509703dd066af8153aef0bf6b33481c72643c8eda9c8e5077893e02a5ee2baa6608c7b4c49ceafe5e05b2301d2dda9f0e685832ae04b3ede030499c4ac6fb22e28658bf771840b15da04c8560ee95b06a29a31a2dc164107fe277622a45f1fb78c9eecc7f6f58d7f29c23080cb38c9fdeb64c4e5700f893526ec6be14916fbb1be7102323749d0373d9ff45ef9294e7918dff028ae5c1bf0560b59cc32579e6f71f09fe2cd596edd4a9bdf5d6b51dee4931a1c6938ad9eac120ded40b3499420b57c4a4f543120281dd18f391c0bb1f5019ab5bd0bde43ccd5e18a6bb7bd1f96ce64449911b59e647fbb47ccb21092168809a2b5e89b8c4e4e46439812da0e009a11ddee2eb282449c50d4656ce2050cc20b05a7214b5332afc668e49f0558704968fdfbb626f591e7bd020c28c70714c9cadf38daf92525a8997e303905cdf21609ba3b3264c1a9287cd8ecc5d7dff4edf101f1cfa718a544a47021d3747314e341694523c7b77c47ccd2570eebd610a6a9a116658bc7ea23809d4448744482ed339f2f5de46f9d222473e2e7cd91af9692f621d434af824f5204208da04ebe4d785ab940f72c2f4c6a74a2f499746915db63c55206cb735a6c6f75e3c80e72a875acfcbd8bba924a01342d867f88011b8b263422c3d2a8080b2739526c769ad1d5121355578f91c2c9f70002142b5f606366777e91b0b60a263680a7afbad2e1eeeff714414b59728cc8cccfd90210292c4160d6f818556175848c99b9bbd7e6f1fa0a13202c363e4b4c", "result": "invalid", @@ -2873,7 +2873,7 @@ }, "tests": [ { - "tcId": 1, + "tcId": 240, "comment": "valid signature wrongly rejected by a verifier that omits a reduction in the verification NTT path", "msg": "482c32b703000000", "sig": "9ce71caf860b8d45c14694c2b1ebcabd7498b7d582523c675b2ea8e921ba4f690526e34b9430a7a364b3eb13af66f72fc49c0daf3ee1495e92eb48bafa3ee44a000008008000000800800000080080000008008087ff0f008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000098070000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008087ff0f0080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000009807000000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000980700000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008087ff0f00800000080080000008008000000800800000080080000008008000009807000000080080000078f8ff000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000078f8ff0000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008087ff0f0080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000009807000000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000078f8ff00000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000078f8ff0000080080000008008087ff0f00800000080080000008008000000800800000080080000008008087ff0f00800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008087ff0f008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000078f8ff000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008087ff0f0080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000078f8ff0000080080000008008000000800800000080080000008008087ff0f00807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080790000008000000800800000080080000098070079000000800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000009807000000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000098070000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000980700000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000078f8ff0000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080790000008000000800800000080080000008008000000800800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", @@ -2883,7 +2883,7 @@ ] }, { - "tcId": 2, + "tcId": 241, "comment": "forgery wrongly accepted by a verifier that omits a reduction in the verification NTT path", "msg": "482c32b703000000", "sig": "9ce71caf860b8d45c14694c2b1ebcabd7498b7d582523c675b2ea8e921ba4f690526e34b9430a7a364b3eb13af66f72fc49c0daf3ee1495e92eb48bafa3ee44a000008008000000800800000080080000008008087ff0f008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000098070000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008087ff0f0080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000009807000000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000980700000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008087ff0f00800000080080000008008000000800800000080080000008008000009807000000080080000078f8ff000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000078f8ff0000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008087ff0f0080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000009807000000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000078f8ff00000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000078f8ff0000080080000008008087ff0f00800000080080000008008000000800800000080080000008008087ff0f00800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008087ff0f008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000078f8ff000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008087ff0f0080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000078f8ff0000080080000008008000000800800000080080000008008087ff0f00807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080790000008000000800800000080080000098070079000000800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000009807000000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000098070000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800807900000080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000980700000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000078f8ff0000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080790000008000000800800000080080000008008000000800800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000101", @@ -2895,4 +2895,4 @@ ] } ] -} +} \ No newline at end of file From b6e34af3c973efee8c9e6324a546702f2b15f695 Mon Sep 17 00:00:00 2001 From: SunwooLee Date: Thu, 25 Jun 2026 08:05:23 +0900 Subject: [PATCH 5/6] Canonicalize folded vectors: unescape UTF-8 and add trailing newline --- testvectors_v1/mldsa_87_verify_test.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/testvectors_v1/mldsa_87_verify_test.json b/testvectors_v1/mldsa_87_verify_test.json index 999e0cd..70c4986 100644 --- a/testvectors_v1/mldsa_87_verify_test.json +++ b/testvectors_v1/mldsa_87_verify_test.json @@ -1882,7 +1882,7 @@ "tests": [ { "tcId": 161, - "comment": "valid signature with maximum (\u03c9) hints", + "comment": "valid signature with maximum (ω) hints", "msg": "00000000000000a2", "sig": "591f88bfde7da945eada046fb24d720ecd97dfff5bcaa06e06e4e1f2bd63e764bc03b56716581552ebb1f4ee01b02517c52c545da6255164e3581fb28a22378bbec85875a7508ef8fcc6c63358f8fbd5a9fd6a183c85f9a9872e044fd5eb8a5b40f164996dac9d94e95be48722bf4a6a10ce6d1cfc3efc1b836a7b3177572b82462334e699d5e5b9afb62f6bcb559a1ea7dfcc35db481fa25ead152d35ce8f1c2831c560c299c5f52d18fa09015c3f4734474fde152541ec9e1d1ebb4b7aa1c672521b8214cba2471212f8971dee961b314759a1d6a28e97d044fb767ccf16a3a9b1eee2c374cbebe2c4a67195921bbe93aee989ebc8e36f65331552251105d98da062476d94cc8f33797fb1fb3d11994b8affc06a932398ea430f366e1b042324838e7e63b2513f53b82ab106dac378b239fd322062a832ee1696dbca38a28517104e879ca006b2b1b58e85d50621ccb4b3d9b85090bfa0649ff7ce012156d13861b19248cedd9e4c36ca96acb453d001e84ad26af96f1c4bb184c5e4a8b30d5efa6fa456a8406f6c3e955454c458e5674b6f52f7168e91a2baa20f85e30b95ac36c47651edc078c729696ce54b1c9a078320424ea7e88e9c5bfba42055b4be34305c844385fe0c7095962efac472022c7ea3c5322e03640501ac9e2e99e2e857bd8214964fcec53e7acf707c660e3714b4c5dca300bc19de5de376747b2c374630505c6fc2e6399ae70e0a9eb079d5348db939dd78c4933590eb7bb2c6d9be44e45f7bcff4a3098bd8f17be9e4fe93774f3555f382e23f43b8da78377d64e704b58ad39ee332367c15d8827dc8b019b9c9d359c4df8e8b47a2818f417e99d6bf47e38fb71ddf878601275d0ec8d3ce96dc04fb44e45ac3d31e709bc6f38e92f54d70e2b28d6f878167d7ea5c949f7ed64803e5c4806aba2f3f0467c9f8b9f0e036aacd679cd6dd0fef98d0c86a97e2aeb0ebc2e175e5037fcd42202dfdc06b3118b1572a2473e8e9a39b6cef651288527d8839a67aad6f7743f35cdaa03d5a7bae4208e390ee7fdc5f45ee6d55ed09e87c0fce05f84bf18366a8ca5761a3a1133f6d9502be51957409d9ef70a1c0cebd262de1111caf53e5cc9b4aeccf3fe49d21557e78c64f72fe2deea23d1a125fafa7e213aabe7bb1dbded9cad3fb608f6f7d816e03975b4e5f47a9adc6ef8da8346c3b0e8c8654aebc30e731c58280b41324e83dc0c73c450402f83e9781d57d2aa6ab8f9ae5bff610f198447c4a8a0fb0d87e5540c31e8ab36a8fc9775ab26cb3ab74a3232d4195df05dda9bf0ec6e7925179518a16fbaf79c0a15ed5217653355e9d1d449360b4831249d7982bda4cb138964292fb9be709cc5ae87137a2fc30a6312bd29f651e4fd46fa74707324f7267af3b8f4ebf90592c0562c82acc350acf65c213d83361d0f043e015f7e46d01ce890f1b3321e2b52c9446451bb82b26af6c2e8b96b0bd18f99267c29cdd8eb4d3bf451da3995e72d74704ae48d0ddde3673cd3e55ec512872d85c846c4271f1f0912bac1197345ade8173eaeae1cc3db71ec7fe2935966f8d7de765a408dba177e24b88c2af4a215022a27dae4d0e34fccac48daf846d51d3857c00b2bbca82266ba8471c7c73a5437ae889e066631e128f1e311d057844d675b5e5fa9f26d4efac83b3fc488cc582d7955675b1bfba39df8b3ff7cb45be2813b0db0f9e7e28598df3e0a4baef2bc5646fcfb11f9fc70d17297605805492f05166ac64287ae63bcc0977f9da230430c7da55288c3eea19b74f41b81ea58b74bc626cb376596ab724244e4d157816bba092c1aa64480407694bbaaf84be44f9c161fb0a10ca2c7de4b0328ad470c16aafdaeb1aa677811d6978af1e31a96e1311a775b50fcbe73f7c7c13693667eea4c913d4a3842dad06e671c3fb2d52e8ebc5ddaa99438f21c95763c72ca5323af8ec8f5a159fd097bbf091068bc378006d596501629d3e2d4ab71e48ef2ab8d441de5ebba47b31fc364d2337649e04b2d333c2d59a6b8888b101febf6d30380c5a16ed439b5c20fddcbad74c47d9705093221890afe9c8eedf5f62174cdcdb4430e63de86dde01c5f1e5f0201ffb8a955eefcb5a56b0a32154ba9ca102cd4cb2ff24d9d284e9060bce54727ef2fff74f19d55e3a2b91fd5ff7c0f5f82a98e205bc9f98c179d383342fae01ec8aecb229be0bb937b4bbbfc23a9c8fca20f465f8192b202906826e97595bc30f81d9bf97c05f1f8f37aeb229aa6293297b13a02ec9af784cdd8bf12dfe089f20e6ab674aec699025d172d5f65ec6b1b9f78e1f03a8150b23e0628142775934b3d62f7a96ac37b0129d06f454e18f189c1b79f9156f9130e6277a429a7c65b5a460470c85e10b15a682dfa346be3d17e02232b73d66af8b8305afca2ffa7a5cc5513ec516fce5fe1be999c986850bcd47ab72facb541071e0e185d2876dc907fc6f3d8cdb83b7ac9a0f86bcc8688ec0cb8953dc59228569c8342b4ad5f2a3b2212f309d543a0d179fd92c62578ba73bdfcdb50be2b755abd5c852879937f8cad85c73e45f76069687af96ce52277377521e8612491b1bbd79f64f859e0ca6370b6c0665e81515b70597bb0c1ba25c7fe1f44db091c7044016c770e0284c0b44009e6fd55c362b9053367a7f331c4f6fc7926d6af4f77ce469170a1d9caee33c616a2c779de448b904ff2c1813cabf26552e8c53b4f8cc0bed0f6d43ac57336f2d8e9cef3a3460f97a9583e6dd9c62b1882d2f90a29f2ff631e8fd26916ab8f5d98ed9cf5f0f2ecff060325058c126371544e11ec1f07f4d524b29824e9e6da175dfb9ddde86f8a7308917b4af2331643601df4976e357ef7be0bdc9f69c315152408a0d9d4bd78a698032902d758683a5b8c3043fcc8df6c2d53aed1dc2dbefe29308f7e566dc9c1b28acd93054224638ca233c712b31f2309f81f938d8136db69028ce0f187ac51cf9b93e169b99dbd22ccb0877f05acffdf21f86ec0e617fc47cef1fe78bd0585a4a35d8b27cb64151b9c91bc76e709875b134890781fdc841a1fcf69d72f50de633b0cc7da00481f9fa5226dd17ce98f7f087923097005087940e5373685169c46c896ac491b31fc40cb6540698d57a6361a71a875d1bc038c47dce744961a4c0a00108c75bcf1e19d9009b3a9f2ce53ecfd88c2c70a2ea87e4c9a70ef339e44cb0f72bbe824eaea966bf01be5e05c377c50254198d3ce05171e44046f32b9aeb3cbecdb17f05507076b6cd79942c6dce347d7f47fc99077b3bbaaa756b2e6a6addea8b78553eb02a77bc7b9e58b9b51291a78ac5fbb28ed4c76dd5bd99eba064cc60babd8a2453a6344f1290ad19b598363e1d903ec15e4416f4c7e8b72b8e3c9627e662cb0e30eea85aab0536c0906c304ecd34031db7e87350f9a1889e2e1a925acd48acddc1ca35bbaf2626d57fc8926dad3308116be4c5e39c552992de637478297ccf7cb20dd09906dd2c8955f77ef419e450fc55aec08effc3f9697c268190e12fa2063315aca294223fbd406bc8ab4124eb8d5cb7865cf6e0d420d0d3bea341ed161745cf668b6a9e776f048c0908615f558ae3c788b0d7f9b3b1b8336e5230d77be2943a22d1475189b31b9b2998b52bcca551936aa2fdeac5b2d9a18b6d06aae6b358987beb005f0a47201eca9430033c1ffcdbb9bd675025a4b7dc4453745c02acfca39a93999997b3f2546d41acb6350d0132b44cb3a51de63d4b8c3d4c0b1b4ee03bfe52f144af7361b808ae7a7ff2e8ba181c2c8627a33fb7ccad49428bcc2da9233ca7e5c4e49d6f077bbecb6773d6f105851447d3b293c91b9b3ea680412f549c93ae3860a336da9632369b950c973fbefc272a9dbce7c32de11aa506b9a1527674d9bdcd249a8521bdddc961158f06fe4c843ce974f63111bfbdd3ccb753503a7b209be0da148be5eb7264991a3eda0c6891364923122b265a2a240e06988f00cda9981f601870137f135f12e0aa4b6c1c97f10af4b26b7bf9a12e6a9eca59e30e238e08053971bf6e0399dbc6ffc1ce55525fe796342d65637bab79d2d31213437e3cd91f0a8dfc0dcecf2ce329982e16a436142fcad62393e3a62c5bf3ea2b88464f43cfca05a53080517bafd8947a48f82ffa669f007481c9d4d9e3bb9dc779e27a17f5433e665463d665e9f9f643ec7c5e38ebc3090076013dd11c959782a20093340d738db8353c6bf0c5ba0f0e64b9c352227d8bea757a7561a65aaac6cbf2ca88ccd609c7b7912bff70047b735249811ea58801ddd9b934c10936339f5cb4724249c17f4304a3373e9289147647c83e03ac1c41c7c3b26916d8006180e9004fb76cddb73468fc364a4140dd103b02a36a0ef0fa2c8b18c0ce4874899df38372e3d636a268d6963f3969e955ec23a3b6aa3582c7c656abae7b06905b030778cb53eae8991c6a0574041242c737a8f2215d24258e885d1a67a10baa1705ed5e8f4fb7f231f7d7204b2f16f8a93bd2188e404b3093e14b9981c6e833bbcccfad00fc525dcafebec0bc9668523075e58de440e4472f73a848b96e6f8a6d4d73fb419639a1f411d333ccb1cb8f86f8839a0cc4d970cb78bbf32f56ade5cb03a6cb2a085394680f81e0d0788f1acc06c40c9556d7553e1d613002b28a3d0e6bd7481e0fb816505d801ef9b3d584cc416c2edcf9a3616d43757596342a83d2c4ba0aefc2526d973a578e5228f9e7ca209217849a416d95eb14b2557b336e99e3608d207bfe0933bff07db548f01d44b1346a6dfb6874cf147116f41a3aad6d9f4f145526c12c1bc8b191d02ed560bbb450d655096a44a08e6f8b85a48e99740803a0bdd2d70e045332aad7eba49adf4c7c7ca0e6b720d9629aaa664245f1c9ad60ea275203cafeb23d8b0622956f056e8381091b14e52617ef62f9336b4498c6c40ac6de9cb030411162f274e0f9118b94021c14869636a9ec3fc12f9a3862b2f0e4bda3fc3136dbc14811c5502c582770101176c7c559981d07e75d53b4f647498cd4b11f466fcc6fc81e282a8ad6641f3d2cb5fbadde0317c1c000c9b4152a3443ef76aa7dda3ec01ac60bca3d32b81c38c4aa3c07a2206f93eae7ab872479ba46892fab3323f481b12d0dd9a740021be548fe739ddf35648e4b371351c4ed67a64d4b7986b8e58aafbf4ceff55b4849138658426d18fa25192e9013fce273d3dd8d935527390c55766d60239c55efdfdc76fb325b014de691967b5821db4c0c6d643129bfbd5e4bf82e83c2c5087fba46fe92fd2c5673f4068c8115fcea4fe162e609f9f7a7e0b884edf31e6f7748ff2e015b22a26c844b17fd56c9ab9f335d7cefe71a8a09602cadc44bc3b044d041aa94e90587a449704fd8e13494eb7180d6c8ad6e23e472b578a6638c0bbdb6fae17f8d64d22b18474eb2c12a0d541a3510b069e306fab106b1d24e663e19bb6071ac0efe5ba41b021c531e2ea64563fbd4f4cacaced7f610b694f26669380437f7e3b885ca12873f946cf6682608a250cfdf5c219e45fbe53dc5d1a7d95506237bd287abb40cdafe2dd442b429834a3e04320960b0ed98a0c8aa1c1bbceb5d89109982b5c2f51eac0b2bc045b6bc9ba22ee9e9723909288499d7320a98ce0f67f87a5f0fe7548d9e3cc92a18dea477808e81dab8f0749a556e9a3df61759effd19c11701c8f8261bbde7c59eb9f302e5207b49be74859a76aad6f121dfcedafbe8e5c246a5173d2b02ed15d14e9b8de09249718547db858c43bd42a8de8245f70125ed06185c37fa9d82e627440f2e60561d7185a19dee052c387031a575d1b029a199d9bac0677338acb9c2d805f4102be15c44eee2daf139b718b62fb34d8508fb33fa8f2617cc8d33fb8a93d905cf043d28437a698298025472558db0021d89e1ef91d4416c611c6a96f3a6c381aa3597412f3e59409ea095b24c55fe07af9c801695f1ffa2a80e6a728f727cbcdfb2e9cc6ea8106eb85e4bbd053891fed5c0ca06a52a12972fa801a3299c06a04f29285750849eb3cd77593dd4c44a342d7877cf5cc93775d68bb0bc9a236a41dc05a93dc0323ed04d98c293aa3ba7d6494c57384a54fbb4549d8c886d427ad0b21a01801c82022b9fd94c29d22a37d50daac6147d98e878b1bd667ef22ffc51ced4d18f79f29013fd6ede416d368f021997b6e0d8f35597518303a747d98d8e4b49b9e6a258e2959cc40e210928d12ca1ebe47498205fc421cc4e4a4fb6b780a265e08cec4541e04375a285c16eaed0485bd77654b3076f20ada8d6725245294a1aa9bb25a1ece083e9f2b12381b05f6f966eba6c875f5583b4c0875b3bde70fcf11d44a0bc2421baa56643b68d1cc93397ce7b358c8117c61f64888fe45ae222b6acc577e35ab47bc902e77164b2e659ea8c82a6776b1279a530014d51a6c9d3070e153953567db9bfd82a43739ca5111e21315083b4c9d6dafe060b0c1e3b798b91a8c5fc1a4a7a849baeb6c0deecf6fc0f25506695989ea9b4d0e40b1e1f64668386bbd2061015202b37424b", "result": "valid", @@ -1922,7 +1922,7 @@ }, { "tcId": 165, - "comment": "invalid: crafted hint section with last limit=\u03c9+k+1=84, reads one byte past hint section", + "comment": "invalid: crafted hint section with last limit=ω+k+1=84, reads one byte past hint section", "msg": "00000000000000a2", "sig": "591f88bfde7da945eada046fb24d720ecd97dfff5bcaa06e06e4e1f2bd63e764bc03b56716581552ebb1f4ee01b02517c52c545da6255164e3581fb28a22378bbec85875a7508ef8fcc6c63358f8fbd5a9fd6a183c85f9a9872e044fd5eb8a5b40f164996dac9d94e95be48722bf4a6a10ce6d1cfc3efc1b836a7b3177572b82462334e699d5e5b9afb62f6bcb559a1ea7dfcc35db481fa25ead152d35ce8f1c2831c560c299c5f52d18fa09015c3f4734474fde152541ec9e1d1ebb4b7aa1c672521b8214cba2471212f8971dee961b314759a1d6a28e97d044fb767ccf16a3a9b1eee2c374cbebe2c4a67195921bbe93aee989ebc8e36f65331552251105d98da062476d94cc8f33797fb1fb3d11994b8affc06a932398ea430f366e1b042324838e7e63b2513f53b82ab106dac378b239fd322062a832ee1696dbca38a28517104e879ca006b2b1b58e85d50621ccb4b3d9b85090bfa0649ff7ce012156d13861b19248cedd9e4c36ca96acb453d001e84ad26af96f1c4bb184c5e4a8b30d5efa6fa456a8406f6c3e955454c458e5674b6f52f7168e91a2baa20f85e30b95ac36c47651edc078c729696ce54b1c9a078320424ea7e88e9c5bfba42055b4be34305c844385fe0c7095962efac472022c7ea3c5322e03640501ac9e2e99e2e857bd8214964fcec53e7acf707c660e3714b4c5dca300bc19de5de376747b2c374630505c6fc2e6399ae70e0a9eb079d5348db939dd78c4933590eb7bb2c6d9be44e45f7bcff4a3098bd8f17be9e4fe93774f3555f382e23f43b8da78377d64e704b58ad39ee332367c15d8827dc8b019b9c9d359c4df8e8b47a2818f417e99d6bf47e38fb71ddf878601275d0ec8d3ce96dc04fb44e45ac3d31e709bc6f38e92f54d70e2b28d6f878167d7ea5c949f7ed64803e5c4806aba2f3f0467c9f8b9f0e036aacd679cd6dd0fef98d0c86a97e2aeb0ebc2e175e5037fcd42202dfdc06b3118b1572a2473e8e9a39b6cef651288527d8839a67aad6f7743f35cdaa03d5a7bae4208e390ee7fdc5f45ee6d55ed09e87c0fce05f84bf18366a8ca5761a3a1133f6d9502be51957409d9ef70a1c0cebd262de1111caf53e5cc9b4aeccf3fe49d21557e78c64f72fe2deea23d1a125fafa7e213aabe7bb1dbded9cad3fb608f6f7d816e03975b4e5f47a9adc6ef8da8346c3b0e8c8654aebc30e731c58280b41324e83dc0c73c450402f83e9781d57d2aa6ab8f9ae5bff610f198447c4a8a0fb0d87e5540c31e8ab36a8fc9775ab26cb3ab74a3232d4195df05dda9bf0ec6e7925179518a16fbaf79c0a15ed5217653355e9d1d449360b4831249d7982bda4cb138964292fb9be709cc5ae87137a2fc30a6312bd29f651e4fd46fa74707324f7267af3b8f4ebf90592c0562c82acc350acf65c213d83361d0f043e015f7e46d01ce890f1b3321e2b52c9446451bb82b26af6c2e8b96b0bd18f99267c29cdd8eb4d3bf451da3995e72d74704ae48d0ddde3673cd3e55ec512872d85c846c4271f1f0912bac1197345ade8173eaeae1cc3db71ec7fe2935966f8d7de765a408dba177e24b88c2af4a215022a27dae4d0e34fccac48daf846d51d3857c00b2bbca82266ba8471c7c73a5437ae889e066631e128f1e311d057844d675b5e5fa9f26d4efac83b3fc488cc582d7955675b1bfba39df8b3ff7cb45be2813b0db0f9e7e28598df3e0a4baef2bc5646fcfb11f9fc70d17297605805492f05166ac64287ae63bcc0977f9da230430c7da55288c3eea19b74f41b81ea58b74bc626cb376596ab724244e4d157816bba092c1aa64480407694bbaaf84be44f9c161fb0a10ca2c7de4b0328ad470c16aafdaeb1aa677811d6978af1e31a96e1311a775b50fcbe73f7c7c13693667eea4c913d4a3842dad06e671c3fb2d52e8ebc5ddaa99438f21c95763c72ca5323af8ec8f5a159fd097bbf091068bc378006d596501629d3e2d4ab71e48ef2ab8d441de5ebba47b31fc364d2337649e04b2d333c2d59a6b8888b101febf6d30380c5a16ed439b5c20fddcbad74c47d9705093221890afe9c8eedf5f62174cdcdb4430e63de86dde01c5f1e5f0201ffb8a955eefcb5a56b0a32154ba9ca102cd4cb2ff24d9d284e9060bce54727ef2fff74f19d55e3a2b91fd5ff7c0f5f82a98e205bc9f98c179d383342fae01ec8aecb229be0bb937b4bbbfc23a9c8fca20f465f8192b202906826e97595bc30f81d9bf97c05f1f8f37aeb229aa6293297b13a02ec9af784cdd8bf12dfe089f20e6ab674aec699025d172d5f65ec6b1b9f78e1f03a8150b23e0628142775934b3d62f7a96ac37b0129d06f454e18f189c1b79f9156f9130e6277a429a7c65b5a460470c85e10b15a682dfa346be3d17e02232b73d66af8b8305afca2ffa7a5cc5513ec516fce5fe1be999c986850bcd47ab72facb541071e0e185d2876dc907fc6f3d8cdb83b7ac9a0f86bcc8688ec0cb8953dc59228569c8342b4ad5f2a3b2212f309d543a0d179fd92c62578ba73bdfcdb50be2b755abd5c852879937f8cad85c73e45f76069687af96ce52277377521e8612491b1bbd79f64f859e0ca6370b6c0665e81515b70597bb0c1ba25c7fe1f44db091c7044016c770e0284c0b44009e6fd55c362b9053367a7f331c4f6fc7926d6af4f77ce469170a1d9caee33c616a2c779de448b904ff2c1813cabf26552e8c53b4f8cc0bed0f6d43ac57336f2d8e9cef3a3460f97a9583e6dd9c62b1882d2f90a29f2ff631e8fd26916ab8f5d98ed9cf5f0f2ecff060325058c126371544e11ec1f07f4d524b29824e9e6da175dfb9ddde86f8a7308917b4af2331643601df4976e357ef7be0bdc9f69c315152408a0d9d4bd78a698032902d758683a5b8c3043fcc8df6c2d53aed1dc2dbefe29308f7e566dc9c1b28acd93054224638ca233c712b31f2309f81f938d8136db69028ce0f187ac51cf9b93e169b99dbd22ccb0877f05acffdf21f86ec0e617fc47cef1fe78bd0585a4a35d8b27cb64151b9c91bc76e709875b134890781fdc841a1fcf69d72f50de633b0cc7da00481f9fa5226dd17ce98f7f087923097005087940e5373685169c46c896ac491b31fc40cb6540698d57a6361a71a875d1bc038c47dce744961a4c0a00108c75bcf1e19d9009b3a9f2ce53ecfd88c2c70a2ea87e4c9a70ef339e44cb0f72bbe824eaea966bf01be5e05c377c50254198d3ce05171e44046f32b9aeb3cbecdb17f05507076b6cd79942c6dce347d7f47fc99077b3bbaaa756b2e6a6addea8b78553eb02a77bc7b9e58b9b51291a78ac5fbb28ed4c76dd5bd99eba064cc60babd8a2453a6344f1290ad19b598363e1d903ec15e4416f4c7e8b72b8e3c9627e662cb0e30eea85aab0536c0906c304ecd34031db7e87350f9a1889e2e1a925acd48acddc1ca35bbaf2626d57fc8926dad3308116be4c5e39c552992de637478297ccf7cb20dd09906dd2c8955f77ef419e450fc55aec08effc3f9697c268190e12fa2063315aca294223fbd406bc8ab4124eb8d5cb7865cf6e0d420d0d3bea341ed161745cf668b6a9e776f048c0908615f558ae3c788b0d7f9b3b1b8336e5230d77be2943a22d1475189b31b9b2998b52bcca551936aa2fdeac5b2d9a18b6d06aae6b358987beb005f0a47201eca9430033c1ffcdbb9bd675025a4b7dc4453745c02acfca39a93999997b3f2546d41acb6350d0132b44cb3a51de63d4b8c3d4c0b1b4ee03bfe52f144af7361b808ae7a7ff2e8ba181c2c8627a33fb7ccad49428bcc2da9233ca7e5c4e49d6f077bbecb6773d6f105851447d3b293c91b9b3ea680412f549c93ae3860a336da9632369b950c973fbefc272a9dbce7c32de11aa506b9a1527674d9bdcd249a8521bdddc961158f06fe4c843ce974f63111bfbdd3ccb753503a7b209be0da148be5eb7264991a3eda0c6891364923122b265a2a240e06988f00cda9981f601870137f135f12e0aa4b6c1c97f10af4b26b7bf9a12e6a9eca59e30e238e08053971bf6e0399dbc6ffc1ce55525fe796342d65637bab79d2d31213437e3cd91f0a8dfc0dcecf2ce329982e16a436142fcad62393e3a62c5bf3ea2b88464f43cfca05a53080517bafd8947a48f82ffa669f007481c9d4d9e3bb9dc779e27a17f5433e665463d665e9f9f643ec7c5e38ebc3090076013dd11c959782a20093340d738db8353c6bf0c5ba0f0e64b9c352227d8bea757a7561a65aaac6cbf2ca88ccd609c7b7912bff70047b735249811ea58801ddd9b934c10936339f5cb4724249c17f4304a3373e9289147647c83e03ac1c41c7c3b26916d8006180e9004fb76cddb73468fc364a4140dd103b02a36a0ef0fa2c8b18c0ce4874899df38372e3d636a268d6963f3969e955ec23a3b6aa3582c7c656abae7b06905b030778cb53eae8991c6a0574041242c737a8f2215d24258e885d1a67a10baa1705ed5e8f4fb7f231f7d7204b2f16f8a93bd2188e404b3093e14b9981c6e833bbcccfad00fc525dcafebec0bc9668523075e58de440e4472f73a848b96e6f8a6d4d73fb419639a1f411d333ccb1cb8f86f8839a0cc4d970cb78bbf32f56ade5cb03a6cb2a085394680f81e0d0788f1acc06c40c9556d7553e1d613002b28a3d0e6bd7481e0fb816505d801ef9b3d584cc416c2edcf9a3616d43757596342a83d2c4ba0aefc2526d973a578e5228f9e7ca209217849a416d95eb14b2557b336e99e3608d207bfe0933bff07db548f01d44b1346a6dfb6874cf147116f41a3aad6d9f4f145526c12c1bc8b191d02ed560bbb450d655096a44a08e6f8b85a48e99740803a0bdd2d70e045332aad7eba49adf4c7c7ca0e6b720d9629aaa664245f1c9ad60ea275203cafeb23d8b0622956f056e8381091b14e52617ef62f9336b4498c6c40ac6de9cb030411162f274e0f9118b94021c14869636a9ec3fc12f9a3862b2f0e4bda3fc3136dbc14811c5502c582770101176c7c559981d07e75d53b4f647498cd4b11f466fcc6fc81e282a8ad6641f3d2cb5fbadde0317c1c000c9b4152a3443ef76aa7dda3ec01ac60bca3d32b81c38c4aa3c07a2206f93eae7ab872479ba46892fab3323f481b12d0dd9a740021be548fe739ddf35648e4b371351c4ed67a64d4b7986b8e58aafbf4ceff55b4849138658426d18fa25192e9013fce273d3dd8d935527390c55766d60239c55efdfdc76fb325b014de691967b5821db4c0c6d643129bfbd5e4bf82e83c2c5087fba46fe92fd2c5673f4068c8115fcea4fe162e609f9f7a7e0b884edf31e6f7748ff2e015b22a26c844b17fd56c9ab9f335d7cefe71a8a09602cadc44bc3b044d041aa94e90587a449704fd8e13494eb7180d6c8ad6e23e472b578a6638c0bbdb6fae17f8d64d22b18474eb2c12a0d541a3510b069e306fab106b1d24e663e19bb6071ac0efe5ba41b021c531e2ea64563fbd4f4cacaced7f610b694f26669380437f7e3b885ca12873f946cf6682608a250cfdf5c219e45fbe53dc5d1a7d95506237bd287abb40cdafe2dd442b429834a3e04320960b0ed98a0c8aa1c1bbceb5d89109982b5c2f51eac0b2bc045b6bc9ba22ee9e9723909288499d7320a98ce0f67f87a5f0fe7548d9e3cc92a18dea477808e81dab8f0749a556e9a3df61759effd19c11701c8f8261bbde7c59eb9f302e5207b49be74859a76aad6f121dfcedafbe8e5c246a5173d2b02ed15d14e9b8de09249718547db858c43bd42a8de8245f70125ed06185c37fa9d82e627440f2e60561d7185a19dee052c387031a575d1b029a199d9bac0677338acb9c2d805f4102be15c44eee2daf139b718b62fb34d8508fb33fa8f2617cc8d33fb8a93d905cf043d28437a698298025472558db0021d89e1ef91d4416c611c6a96f3a6c381aa3597412f3e59409ea095b24c55fe07af9c801695f1ffa2a80e6a728f727cbcdfb2e9cc6ea8106eb85e4bbd053891fed5c0ca06a52a12972fa801a3299c06a04f29285750849eb3cd77593dd4c44a342d7877cf5cc93775d68bb0bc9a236a41dc05a93dc0323ed04d98c293aa3ba7d6494c57384a54fbb4549d8c886d427ad0b21a01801c82022b9fd94c29d22a37d50daac6147d98e878b1bd667ef22ffc51ced4d18f79f29013fd6ede416d368f021997b6e0d8f35597518303a747d98d8e4b49b9e6a258e2959cc40e210928d12ca1ebe47498205fc421cc4e4a4fb6b780a265e08cec4541e04375a285c16eaed0485bd77654b3076f20ada8d6725245294a1aa9bb25a1ece083e9f2b12381b05f6f966eba6c875f5583b4c0875b3bde70fcf11d44a0bc2421baa56643b68d1cc93397ce7b358c8117c61f64888fe45ae222b6acc577e35ab47bc902e77164b2e659ea8c82a6776b1279a530c8d2dddedfe0e1000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404100010203040506074954", "result": "invalid", @@ -1932,7 +1932,7 @@ }, { "tcId": 173, - "comment": "invalid: signature with \u03c9+1 hints, encoded so the extra hint overlaps with limits[0]", + "comment": "invalid: signature with ω+1 hints, encoded so the extra hint overlaps with limits[0]", "msg": "0000000020e10cdb", "sig": "38adb66177e4321d309d2d3ad9bad8d695140c96ff806d3e043d29c025d8109e32f1584c9cedca656523cd9adb89bd3e5ab7adb4020f2170f184478bb6b35141bce47de69241aa8a5b7c624a550110b232e61d68c2a50d24827d07fe078b97e9eae1349de37f6dcd82a1deef7a6bf54adcce935e94c0a6aa9e00b1b52152ca13255e14fe272df9e1368da0e8629780a37881820b71b24cb8c61fa2865a7b298b0482acc3e83ef57e4fc9d12f399e21440f8a2abbf7f96c7a32555ba0dfff3ef002eea3ce3b3bdabb70dc502ab256d93469d27875a6486457f83482473de00dc47fe7b0c73882d5269f0dfe8a1c64f51910e650890673e1e638dbb29cf2f307e69774d218a8df74509b99a495a62f2c31d4ca7e950ed827eedf959017d572f8d13c75dde821dd061b5482dbab0dd4e159690d291fb5af9c1143f87f7d1db7775d7f7144cb5386133f40f847f1886f8b868567cd26b020481f7c07bb9fd92a278dcc9a5f700f949098e82d8e0e5edd90069713243b7577681ce860b40432a37ca75077a6a89482063ac9743d3b5c3d9211192dbb91f7a7bcc50f56e9448f8303a5e96f8118acca0d0e4427db077d7895f2ef6f353af60228ac87b2893ace23d3d65e7a78c887f9ccfc258676e84c8248b2338bf795af3b0c8d9d0bbedaf4004a1d925fc93f412dd752d0be4ee18497daa4a0aa6ca7f5f08be242fe1cd9fce4dae086c7330461fd5242772d98b9ecedcebeea9e15d7d526be15c8d51a2f8fbc532ddacac7c81f11a7024b4ea6c8f21ce2404457e8099ebca2bb9b07bf812d473abde55b8b15d76b09e5bb6820a0ecd09eb80cf525bcac5b5f2b3cbc6e6cb12e5b028c72c1eff5469bb8e66b9dce876c41ca5d4af653fca83352521ef42fd7291ad516199e92aa126ffed1f75932019970d1a07faea1f458555c068a93e2b7824123f416da1b21bd97d48b33cf21fe42d608c4f355e78698295e0a1190161b8d3e4862a2405e3753a9ba03b9098d5b552cf9e2fbcc2f8df6ec05c0696221af8cb4d9c731e61c862852d72334503f4d1cafa40ff6f09ff36e17187cc5646268f3f4e67591d31f0f5a67617d16d90569b25a23d8dbab2a6c236cf2c0bd313e4ba4651c52ddfb9e03d6a7a6f314f665b2354885801359af37be5c9465aaa6ac7013d185438b08295d6c59b962abbf7bdbc6457b231145d9c7b9aa1a7fa99e5023bc2e5c65597218f470c9525db524574c27330304558684fd837fefc6e0fd06787787986f7c4505e5daa33c73bce3c2fad5ca459b653ac05d85b87f2816423781f4958c9bc591af01628c0b8c7fbd20bffed0dec11fa1e15f9428228aa7f2502c80b68fd5fd7386a75600ec3ef89ef571a4e7c5cde80790467aaf3d5e64c0d76989235e49528708ddf7a828ca12986c3ade7cd5df8928d9f81334cae0edf748bc6a1c1a167d3bdf2469e714fd974500ba4d2667ec0883b84c6a9c20df2d5575309479b5a6ca9e2c07f0385086dfa381d5c24e39e96bdf794edadbfe56b465602110c68af41829ca2be7479f5a545282489ba0fb75530ab03d1b2ecad0339ad76a07be1aac6e07c7e91d3bcdf10c2ce2c5533416e719b2575c9a2687de906ed542c62f088bd8bb4d905b7277acfa22c4211a6d3fd2a34100bdcfff4ee3c4e069175eac966c335b4205c6d8323a3670c5ef89aaf249a22450ab0183ebaffca660bebb62423e97592943a60c62684b06ecc26226aef4962dcc4c2cb097f67af0293fcba63bd9a77ccb1e8493db9b20abd027db0abaeda7b5f35afbee7cfe363375e05f0a7cb626a74705f99b972348391a2ee2b9276b5156ecac15a14c7eb3827676581d2f678361755a9fd11e602bed491d04222fd75c5dd603f00e4c81b1c580d9368b2722956a79442f670dd771c372976dda73a4fdf330e0b22506bc03beec8ef0f456ee9ebdd1b22d05fb719a34925d95c5a89c7b5896543162e37d1f727b66514da006d99184a0220382b8ef4ad929cb36d960be28cd30854394691c400d64ee66047e05093838f8bac089724846c8cf268ac659333a811707ab61d665da60f3517c7aed9a803955215aed52eee6935b4b626366000c3e8f7b48bf52a67c5151aa281145cbde661d430c720fdcd165ee546ede5d339172ff0f1cdbf31086aa698266363e087722b133728482da688bdd3fa7a4e5a0c033059040c14953003907da3c64c0a4b7aa1d977af9434f78f68a16c85b8fea976e11cc3af777d4bbc34c4da61f724df0653586fa75c83f573ea2488483d646ee11bde68a5494545e729c4ebe84797f5a273f3e8ab6515548b8c1f29279aa8c3152936df7d96af79f393b67534b5102c514cc87b2a77e874fa9cefc239ea53c72d62b31b1fab41191d1ea77c1cbef9b735f41b68d4978547413c7d170d633df400e414feafaca783b3975d06034c4a3e21125411e64cb03c767dc6f47382c178acf11224dd494a3366d63b3b56d5bf815d4245a8a94be4baf7aa0946ffe46c979a5882858755fb3af913e7af5f4919735aae789a44b13ba82a72de459430224e4e5e93d4ffbb545ff62cddd698ea4d4490bd1b484d53202894bf0411b66b65d6b10bb5c720cd88c5f33c9326aea9172415702f1707fbb5febe3ec8f6ce301e780b9a823a2e38777ac23910508f6ab78201755d80ee12fff939e4177b25a9722eb4f3a047bd96af0071870b0ef731456615997212ac0c3d4f321a38187d8748e07579c295783242ab7fb024304c03222151fd016a3fab36ecef7029b62d2d5845e0e55bc7c97d22e2625144a9fe2891db4a9f2bf5f9a715042e0a6aaf30c3451a73652a09c264978edd118568d7fd8bc2aa88652043d372420f4151918c133d5dc5b21c6d3dccc02d37203a06eafcd126515a618c93efa9b3e4776beafbcec6a0d3ce4cce6e806d83d991ce467b7d33c2ed35922f29ad4a318ba8dd0b4fc2c6132e2eab6ff1ea411e4c81a43cb4641db7d89e726d40360e0b9a6a1523b2f05872059fcc43272d9fb8eda1ff72817df7d170953c13fca643f020486d35a7bfec4b836f692bf294cd81285c741239085847e7e7a25eee14c454d4cffcfb2bf180fb4c2d6f490495e58b8f1ccd30c8a77e8a2a4d7d8231500275ae1879b7f3b77fc5830a0f2b83fe4f08ee43b863643a51bff6276eb10b6762c5c48787a42d056f7d64068e95f9efcb5850db3f928a95624ff008b592ae9369ec55bd51a5e886db0b8e82aa5da5ea37bdfaeb082532569be0bc2f9ac0861fb850f217ccd2b94ec13e89edd1e0e99d90633faaeb4c1b388f38b3455478f982ab2a6d1c78bc6ffec7c838c7f68357b3996e5d221ac1a7f220c5b9a57af259bfcdef2cb773d4fbd4c1e2d5b868e8766dc5822029f0d3dc89ccbeb7d4ff924e0ddf0704731348042b6248dfbc64cb22f77c65fdf8f2fc7762c793ccb19e2c2b7677ad7e8817f7d2ea9d21465e13ac4f116158d20310fc4c7b94e3668b2421a56056bc8908336a6781ec4df3770162b00ff554ff60ff37d8203b89ca0c2f20f83ad66425e44213d7c83a933d7b73f4b1b8e4a2499f2d4c54eda47edd1f0e56c89959364517aa5b62b90af8de1c1fe384fdc59f35421f3c53fcdf675c29f59b2b18149223236f8cc569ef13ba31f5b26d2e632dc830334ac9626b6a0c39e7801aa082a5cfe9f063348e2c1cbfbd54d7711d6a8a01dd65b0899a22b94c9f2923281c8321ec4d24f029b281a0d9309ce694a419f01a55e478d258c8001cbccf0a842d2bb98eeb2ca992d20863bd95ece67b912da4911969985da2b05e33f10c7b6a002e56fc8b1f83327e6fdded69f0bce1b93e0171e5f2a48fe9bfa12f1c439e8fe4a78080d6b097383b3affb7919bc4ed09b92e03a0e5ed85249eddcd5bac4e52d073310d1b4cc71f359eb0bb553124933e733e5d201517b1eab00b80957a4f46df6fa5618a88dd6cf802cf3b18d315e465d49a0eca6cf657224d321aa6e9aee9db7184401570ad5a693be3f87d9a61335da246401d7e13e0b630e361f406a2cae8b52ceed9078ff11d388ebd7e08455b865ca5c3cd3125d5d012577ab2cd575f40e457a802aa5fdf9eb87c470a69edb64e76b29192274d974909b39a875e23e6b82be951b61be71b6262da61cf820da20aad684753d503d0c89cde7fc22b192e68032cd7a2760fb5955184946cf401af77920cb9a215293f9c6269b76b6ab9c1aaa7bc1d5220b96a415e15da0af3013b67f0bbeff9052b2b5b67766a5785b4dd1d454e970499783b832b9712289fad3423d4f0a93110e4506ebe6374c12a7ec5b612218a4397644ce5771122d0679b8eefc72cd85c7f5ef8d3003a6a7f4ab9c9c03f4edf9a690ee2691ef027fd64ca1c48acc97152f1a59e2be3fbf3a320a71b55db823e517eacf0414387875436a39a06c29e9a085fbf313f54c89d294151dbaf77f395af5559037c54152be2b6b0495114d30841108afded27a3df391b69981bca6c28998516e78d8afdadbb47b986da739de10ea72697054b17e386a22d1b69bac7ea0d9e3991d7a56a0cdcbe5eb09a0bc42ca4ffe6571bc913eca52deb8464f1b233bdda8818970163ff17ac02525218af07fa2c69bc64ca773716e98371dc262c874a910ce595df6ca494e75c436e9b1279a0657d3f1bf737daccd327bfead1323571b1a7e9c70975f335ccd26e8928454b59f9eca6b7c6d398483a06830585aa6c227763a688815b056080d0c2e89649176794392c8f2c7408e3431387a92df672c092ffbc96f2c9ce1cfd0a04d8963697248b3d291f79453f17fde66a39b7a42485c3282cc85bd8599750da22ace6a745ae2f301310123d605f3d3a0ebfc7d66242613465e19119d7155dbbe168fb248832569cc191f97aa9c4719765a096a0914a633ccbf23eb89d24b3a6dfd7250c1103ab03e555ab15de03bb41a33b6405774fe3c7775b985bd6bf9e3cca6b7966415d4feed3331e80d376ea1e60873274351339528e464809e1ece5de04f4bf72cd48f127ecbd9e8d0626d9d79fdc87b300e9ea3fc98010e7d8deed373cb476f3de8f085eb3bb3c89cbff5a1e296731627f6bbdcdc5ae4259ef30bb93deb0c3ea807f0d1adbf454793c418665706baa939bc18df99281dc6c54ac93f8413a725f033ad6eb468299d65afc431ab86fbc1613088981e8279d59e36fc90fa4d0520f28d2639b199bca3fc8641ad234d8db6cfac16f562f4cd2fc257e26a90ff86fbe7b6a34d80faee627f23d12c1e586ab8148e4613a62682428b38285a60180d87ba81477670bef79f881ffcb6e443af08898c6942bc2354599d8fe9afab2bc98889d034a32493902a3941147fa6218088080a75657b7e420e740f4db48ab6b4fdb4ba7ebe82165fba1a6930fb6b53bef1073b0d0811a046496d071abc3d69f5c2c13b08bff4072fb62e770108f7c400017c16d0bf902e20354cff8df540f87bc972f2ff3038cdf60d5e8897f4406776e0b6609589ee6ab6d175159bc5ee569ab546c5df7fcc166340a825d12fe4d9c80f73dc7bf5a22ee2aa2bc6d392aa1729a706c2c234c66a040afa3aab8afa8197910b2faf99bd289e8ebe80671070fb199def92dfc4e30b7aae0cb874263c412dd431fd5b8d10e2bcaa709c3ef44755b5f8691cbd3c47b010a4edda3f3f6861f8fbdb6db2db41ad3530bf801094118eb0aea1cf65329a50dd6d2887682bfcc93ee44a07d3e98d3483643142b6284c79dafaced2a9217ef21a3dda9b27b9a6509703dd066af8153aef0bf6b33481c72643c8eda9c8e5077893e02a5ee2baa6608c7b4c49ceafe5e05b2301d2dda9f0e685832ae04b3ede030499c4ac6fb22e28658bf771840b15da04c8560ee95b06a29a31a2dc164107fe277622a45f1fb78c9eecc7f6f58d7f29c23080cb38c9fdeb64c4e5700f893526ec6be14916fbb1be7102323749d0373d9ff45ef9294e7918dff028ae5c1bf0560b59cc32579e6f71f09fe2cd596edd4a9bdf5d6b51dee4931a1c6938ad9eac120ded40b3499420b57c4a4f543120281dd18f391c0bb1f5019ab5bd0bde43ccd5e18a6bb7bd1f96ce64449911b59e647fbb47ccb21092168809a2b5e89b8c4e4e46439812da0e009a11ddee2eb282449c50d4656ce2050cc20b05a7214b5332afc668e49f0558704968fdfbb626f591e7bd020c28c70714c9cadf38daf92525a8997e303905cdf21609ba3b3264c1a9287cd8ecc5d7dff4edf101f1cfa718a544a47021d3747314e341694523c7b77c47ccd2570eebd610a6a9a116658bc7ea23809d4448744482ed339f2f5de46f9d222473e2e7cd91af9692f621d434af824f5204208da04ebe4d785ab940f72c2f4c6a74a2f499746915db63c55206cb735a6c6f75e3c80e72a875acfcbd8bba924a01342d867f88011b8b263422c3d2a8080b2739526c769ad1d5121355578f91c2c9f70002142b5f606366777e91b0b60a263680a7afbad2e1eeeff714414b59728cc8cccfd90210292c4160d6f818556175848c99b9bbd7e6f1fa0a13202c363e4b4c", "result": "invalid", @@ -2895,4 +2895,4 @@ ] } ] -} \ No newline at end of file +} From 6e58f641954f413f6c23c18b19bf4abd6e4711ea Mon Sep 17 00:00:00 2001 From: SunwooLee Date: Thu, 25 Jun 2026 08:19:50 +0900 Subject: [PATCH 6/6] Credit co-authors Co-authored-by: Hyuk Lim <90449417+lubroai@users.noreply.github.com> Co-authored-by: Seunghyun Yoon <7575205+yoonsh@users.noreply.github.com>