)]}'
{
  "commit": "5e73d0302c50cc38324686f937a75233d13ae4f0",
  "tree": "0f3cd68e60782f8d8fdf3b465d8e54e27c329a73",
  "parents": [
    "673e61fc215b178a90c0e67858bbf162c8158993"
  ],
  "author": {
    "name": "Adam Langley",
    "email": "agl@chromium.org",
    "time": "Fri Feb 14 15:44:03 2025 +0000"
  },
  "committer": {
    "name": "Boringssl LUCI CQ",
    "email": "boringssl-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Mon Mar 03 16:02:03 2025 -0800"
  },
  "message": "Add ML-KEM self-tests.\n\nFor some reason I had thought that NIST weren\u0027t doing this stuff for new\nalgorithms, but they are. The following quote is from IG 10.3.A:\n\n\u003e if the module implements ML-KEM decapsulation, the module shall have a CAST for the ML-KEM decapsulation mechanism. The decapsulation algorithm of ML-KEM accepts a decapsulation key (dk) and a ML-KEM ciphertext (c) as input, does not use any randomness, and outputs a shared secret (K’). The CAST shall use the ML-KEM decapsulation algorithm (i.e., Algorithm 21 in FIPS 203), and for a KAT, using fixed/predetermined dk and c values, to compare the resulting outputs to precomputed value of K\u0027. Note21: The ML-KEM decapsulation CASTs shall cover both the implicit rejection and (unnamed) non-rejection paths.\n\u003e\n\u003e The above CASTs shall be performed on at least one of the following parameter-sets for MLKEM that are implemented in the approved mode: ML-KEM-512, ML-KEM-768, or ML-KEM-1024.\n\u003e\n\u003e if the module implements ML-KEM key generation, the module shall have an ML-KEM key generation CAST. The ML-KEM key generation does not take input and outputs an encapsulation key (ek) and a decapsulation key (dk). The CAST shall use the ML-KEM key generation algorithm (i.e., Algorithm 19 in FIPS 203), and for a KAT, using a fixed/predetermined random values (i.e., z and d), to compare the resulting outputs to the pre-computed values of ek and dk.\n\u003e\n\u003e For key pairs generated for use with approved KEMs in FIPS 203, the PCT (described by the tester in TE10.35.01) shall consist of applying the encapsulation key ek to encapsulate a shared secret K leading to ciphertext c, and then applying decapsulation key dk to retrieve the same shared secret K. The PCT passes if the two shared secret K values are equal.\n\nChange-Id: Ic5704e1e59fb9876ce666a88518a37f61fd7d6b9\nReviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/76387\nCommit-Queue: Adam Langley \u003cagl@google.com\u003e\nReviewed-by: David Benjamin \u003cdavidben@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "1ac48f2d772fdd3f247dadf5afe402772889c2e2",
      "old_mode": 33188,
      "old_path": "build.json",
      "new_id": "45fa00379bc65b0640288ea2b755f1e1f3e36a57",
      "new_mode": 33188,
      "new_path": "build.json"
    },
    {
      "type": "modify",
      "old_id": "a23d31209aefda855891bf7b3cf7ca8ebac92323",
      "old_mode": 33188,
      "old_path": "crypto/fipsmodule/bcm.cc",
      "new_id": "642956624a3def02e9c077b985db0f458ef7420a",
      "new_mode": 33188,
      "new_path": "crypto/fipsmodule/bcm.cc"
    },
    {
      "type": "modify",
      "old_id": "065eec0527517c70f3b55188d1d00b3351274ba5",
      "old_mode": 33188,
      "old_path": "crypto/fipsmodule/bcm_interface.h",
      "new_id": "766aac08fdd1a81eb27d023e3d3210c479cf3b15",
      "new_mode": 33188,
      "new_path": "crypto/fipsmodule/bcm_interface.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "81c1b8e33b69e0c172f8f38e465270d53b34aab8",
      "new_mode": 33188,
      "new_path": "crypto/fipsmodule/mlkem/fips_known_values.inc"
    },
    {
      "type": "modify",
      "old_id": "c543f3ce9538bdcb1bb2fb75fbdd41025b704e4b",
      "old_mode": 33188,
      "old_path": "crypto/fipsmodule/mlkem/mlkem.cc.inc",
      "new_id": "265b0cacd8a0dc312bdefc3d17809c79b2c5efe1",
      "new_mode": 33188,
      "new_path": "crypto/fipsmodule/mlkem/mlkem.cc.inc"
    },
    {
      "type": "modify",
      "old_id": "15a68b5850c88c86c9a234e466ad134baaa013d9",
      "old_mode": 33188,
      "old_path": "crypto/fipsmodule/self_check/self_check.cc.inc",
      "new_id": "c3b77d4d3cbe20a5e4fb356d1252c5e948ad59d5",
      "new_mode": 33188,
      "new_path": "crypto/fipsmodule/self_check/self_check.cc.inc"
    },
    {
      "type": "modify",
      "old_id": "4b14217b7db42fbff3b30612052eff88c3a9576f",
      "old_mode": 33188,
      "old_path": "crypto/internal.h",
      "new_id": "2c9a65b69810c5ceb626984c121e0c7f3bb770f5",
      "new_mode": 33188,
      "new_path": "crypto/internal.h"
    },
    {
      "type": "modify",
      "old_id": "0d8baaaaf0bfd1812a876277150cfcb7cb33d458",
      "old_mode": 33188,
      "old_path": "crypto/mlkem/mlkem_test.cc",
      "new_id": "213991a5aeafe40dd7e1865aacab6240617e7fd4",
      "new_mode": 33188,
      "new_path": "crypto/mlkem/mlkem_test.cc"
    },
    {
      "type": "modify",
      "old_id": "082ac469f9f7d9da521cfb792757517f454d0184",
      "old_mode": 33188,
      "old_path": "gen/sources.bzl",
      "new_id": "16050f5ab41af553a5937fdbfbf3cd922e120e67",
      "new_mode": 33188,
      "new_path": "gen/sources.bzl"
    },
    {
      "type": "modify",
      "old_id": "5f4afc8ebacf700b1b6e52755355fcccf83df35e",
      "old_mode": 33188,
      "old_path": "gen/sources.cmake",
      "new_id": "6109220cdf2f2ac09a863b7f1955363b01a9581e",
      "new_mode": 33188,
      "new_path": "gen/sources.cmake"
    },
    {
      "type": "modify",
      "old_id": "1cc825fbaf990edb5459103adf14ac34423ec9fd",
      "old_mode": 33188,
      "old_path": "gen/sources.gni",
      "new_id": "921bd13443cb99a57db230c99f7ef435eecaa4ad",
      "new_mode": 33188,
      "new_path": "gen/sources.gni"
    },
    {
      "type": "modify",
      "old_id": "239b0a868a6afc781d2af1f5786adb2de23675fd",
      "old_mode": 33188,
      "old_path": "gen/sources.json",
      "new_id": "ced1d06ec746beba6b9ce36bed6b78ee11e4756b",
      "new_mode": 33188,
      "new_path": "gen/sources.json"
    },
    {
      "type": "modify",
      "old_id": "aafd1c3d7de9055e28015851c8e0bf8d478817f7",
      "old_mode": 33188,
      "old_path": "util/fipstools/break-kat.go",
      "new_id": "54a544c44955adbda82471a32ae6c7be38686d4c",
      "new_mode": 33188,
      "new_path": "util/fipstools/break-kat.go"
    },
    {
      "type": "modify",
      "old_id": "79dbe7f28f1f9724d4e9613812c0e3a6b0e4d5a2",
      "old_mode": 33188,
      "old_path": "util/fipstools/delocate/delocate.peg",
      "new_id": "8fac2d6b1a54969a6ed7a10b0504a95e006a1ba5",
      "new_mode": 33188,
      "new_path": "util/fipstools/delocate/delocate.peg"
    },
    {
      "type": "modify",
      "old_id": "7baa0e7736f889fc92fa7f121cd0c1cae1ab58f3",
      "old_mode": 33188,
      "old_path": "util/fipstools/delocate/delocate.peg.go",
      "new_id": "0f8ac01fc9d7fa92ad7a8077df0f2e0714de9ab3",
      "new_mode": 33188,
      "new_path": "util/fipstools/delocate/delocate.peg.go"
    },
    {
      "type": "modify",
      "old_id": "241124876428b57703e252f142d8025c2fab9e04",
      "old_mode": 33188,
      "old_path": "util/fipstools/test_fips.cc",
      "new_id": "68024b64168230ccccf930b907cd7ad5568bbd96",
      "new_mode": 33188,
      "new_path": "util/fipstools/test_fips.cc"
    }
  ]
}
