From 565071eadbc63039c2a62a2a4f6de46fbc6ff5aa Mon Sep 17 00:00:00 2001 From: Samuel Chiang Date: Thu, 27 Nov 2025 00:10:31 +0000 Subject: [PATCH] Move dk to Tests in ML-KEM ACVP --- .../acvp/acvptool/subprocess/ml_kem.go | 4 ++-- .../acvp/acvptool/test/expected/ML-KEM.bz2 | Bin 13960 -> 3996 bytes .../acvp/acvptool/test/vectors/ML-KEM.bz2 | Bin 15398 -> 15031 bytes 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/util/fipstools/acvp/acvptool/subprocess/ml_kem.go b/util/fipstools/acvp/acvptool/subprocess/ml_kem.go index 59d5c4d75f9..0a39f966a75 100644 --- a/util/fipstools/acvp/acvptool/subprocess/ml_kem.go +++ b/util/fipstools/acvp/acvptool/subprocess/ml_kem.go @@ -98,10 +98,10 @@ type mlKemEncapDecapTestGroup struct { Type string `json:"testType"` ParameterSet string `json:"parameterSet"` Function string `json:"function"` - DK hexEncodedByteString `json:"dk"` Tests []struct { ID uint64 `json:"tcId"` EK hexEncodedByteString `json:"ek"` + DK hexEncodedByteString `json:"dk"` M hexEncodedByteString `json:"m"` C hexEncodedByteString `json:"c"` } @@ -147,7 +147,7 @@ func processMlKemEncapDecap(vectors json.RawMessage, m Transactable) (interface{ case strings.EqualFold(group.Function, "encapsulation"): testResponse, err = processMlKemEncapTestCase(test.ID, group.ParameterSet, test.EK, test.M, m) case strings.EqualFold(group.Function, "decapsulation"): - testResponse, err = processMlKemDecapTestCase(test.ID, group.ParameterSet, group.DK, test.C, m) + testResponse, err = processMlKemDecapTestCase(test.ID, group.ParameterSet, test.DK, test.C, m) default: return nil, fmt.Errorf("unknown encDecap function: %v", group.Function) } diff --git a/util/fipstools/acvp/acvptool/test/expected/ML-KEM.bz2 b/util/fipstools/acvp/acvptool/test/expected/ML-KEM.bz2 index a1c8378cab24752f217f73a75b49d90eb76ac2bc..4b11732fe36073195ed6aa24896e3241d0f6c260 100644 GIT binary patch literal 3996 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 diff --git a/util/fipstools/acvp/acvptool/test/vectors/ML-KEM.bz2 b/util/fipstools/acvp/acvptool/test/vectors/ML-KEM.bz2 index 09da3260915f774545c28690c93e017c7dae7951..d56712f5d275f64bb8028158609e43740a26a227 100644 GIT binary patch literal 15031 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 Nxgwk>NN+iN{Q%=CB`*K~ literal 15398 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