Update acvptool for recent server-side changes. NIST have moved the private key from the group to the individual tests for ML-KEM. Change-Id: I4cf83a7c172a1951ee64f4c7db82644bfef980fb Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/83627 Auto-Submit: Adam Langley <agl@google.com> Reviewed-by: Lily Chen <chlily@google.com> Commit-Queue: Lily Chen <chlily@google.com>
diff --git a/util/fipstools/acvp/acvptool/subprocess/mlkem.go b/util/fipstools/acvp/acvptool/subprocess/mlkem.go index e9fd45d..e01cb2e 100644 --- a/util/fipstools/acvp/acvptool/subprocess/mlkem.go +++ b/util/fipstools/acvp/acvptool/subprocess/mlkem.go
@@ -58,13 +58,13 @@ TestType string `json:"testType"` ParameterSet string `json:"parameterSet"` Function string `json:"function"` - DK string `json:"dk,omitempty"` Tests []mlkemEncapDecapTest `json:"tests"` } type mlkemEncapDecapTest struct { ID uint64 `json:"tcId"` EK string `json:"ek,omitempty"` + DK string `json:"dk,omitempty"` M string `json:"m,omitempty"` C string `json:"c,omitempty"` } @@ -200,15 +200,16 @@ case "decapsulation": cmdName := group.ParameterSet + "/decap" - dk, err := hex.DecodeString(group.DK) - if err != nil { - return nil, fmt.Errorf("failed to decode dk in group %d: %s", - group.ID, err) - } for _, test := range group.Tests { + dk, err := hex.DecodeString(test.DK) + if err != nil || len(dk) == 0 { + return nil, fmt.Errorf("failed to decode dk in test case %d/%d: %s", + group.ID, test.ID, err) + } + c, err := hex.DecodeString(test.C) - if err != nil { + if err != nil || len(c) == 0 { return nil, fmt.Errorf("failed to decode c in test case %d/%d: %s", group.ID, test.ID, err) }