)]}'
{
  "commit": "aacd493c8759a45c400bb3ee2ad128cb56ec9e36",
  "tree": "25d4f721589b0ca77be272a0b56ac5f6c651495c",
  "parents": [
    "5b58c63b65e09fc78d741c5d8a18d2494fd8a085"
  ],
  "author": {
    "name": "David Benjamin",
    "email": "davidben@google.com",
    "time": "Wed Oct 08 17:31:10 2025 -0400"
  },
  "committer": {
    "name": "Boringssl LUCI CQ",
    "email": "boringssl-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Fri Oct 24 13:18:14 2025 -0700"
  },
  "message": "Add basic integration with ML-DSA and EVP\n\nThis just makes the single-shot signing APIs work. There\u0027s no support in\nEVP yet for external mu, context signing, or init/update/final. They are\nalso not (yet) wired up to the default parsers or EVP_PKEY_CTX_new_id.\nYou have to use EVP_PKEY_ALG for that.\n\nWe only support the seed-based syntax for private keys.\n\nThis required adding a CheckVerify codepath to the SignMessage branch\nof evp_test. This is very repetitive due to problems with the OpenSSL\nAPI. They choose to make SignMessage use a completely different set of\ntypes from SignDigest. Our original API proposal\n(https://boringssl-review.googlesource.com/c/boringssl/+/14447) did not\nhave this problem, but then OpenSSL requested it be changed to this\nform.\n\nAmusingly, OpenSSL seems to have since changed their mind and added\nsomething that looks like our original API. We\u0027ll probably need to\nrestore that scheme to add init/update/final hooks for ML-DSA. See\ngo/mldsa-mlkem-evp\n\nI\u0027ve also not yet added keygen support, not because it\u0027s particularly\ndifficult, but because we don\u0027t have hooks yet for testing it, or a\nclear answer for the static-linker-friendly API. That\u0027s probably the\nnext thing to fill in.\n\nBug: 449751916\nChange-Id: I02d2b5924983a0b9c7f9e71e96de17db687c2425\nReviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/82992\nReviewed-by: Adam Langley \u003cagl@google.com\u003e\nCommit-Queue: David Benjamin \u003cdavidben@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "bb58e388271c0d1ed69953f4e41974f9b7373880",
      "old_mode": 33188,
      "old_path": "build.json",
      "new_id": "8f77c424ddf278e1aed282ecdeba6ad998113b25",
      "new_mode": 33188,
      "new_path": "build.json"
    },
    {
      "type": "modify",
      "old_id": "42bdc5449e58157506e577787fd0f2cba1f1bd04",
      "old_mode": 33188,
      "old_path": "crypto/err/evp.errordata",
      "new_id": "cd2c84f0505d2649e8817d8892d3f359b321daa1",
      "new_mode": 33188,
      "new_path": "crypto/err/evp.errordata"
    },
    {
      "type": "modify",
      "old_id": "8904444937042879fb5ac45d2d92e0e39f6ace90",
      "old_mode": 33188,
      "old_path": "crypto/evp/evp.cc",
      "new_id": "f08aff0f113c905b45bb5bfe2c6ae5b94253f355",
      "new_mode": 33188,
      "new_path": "crypto/evp/evp.cc"
    },
    {
      "type": "modify",
      "old_id": "ccbbf1f2e232af4d8b353dabcfd85c6f2b4861cd",
      "old_mode": 33188,
      "old_path": "crypto/evp/evp_test.cc",
      "new_id": "3e01818199846d7875e9d70da98f2a5c4ea74179",
      "new_mode": 33188,
      "new_path": "crypto/evp/evp_test.cc"
    },
    {
      "type": "modify",
      "old_id": "a5a4b82db2990fb6ffe04fcbe15eb190f56d4009",
      "old_mode": 33188,
      "old_path": "crypto/evp/internal.h",
      "new_id": "f22aa4b3419713946ee9b5245bcffa20c145dac0",
      "new_mode": 33188,
      "new_path": "crypto/evp/internal.h"
    },
    {
      "type": "modify",
      "old_id": "672cc7e133100cb383d531d47789bdf9ae5d39d9",
      "old_mode": 33188,
      "old_path": "crypto/evp/p_dh.cc",
      "new_id": "46c4cd957d1bd4551504f960bc75ff7632344b8e",
      "new_mode": 33188,
      "new_path": "crypto/evp/p_dh.cc"
    },
    {
      "type": "modify",
      "old_id": "d713f12f79d3e6631b84c100fa810be2da33044b",
      "old_mode": 33188,
      "old_path": "crypto/evp/p_dsa.cc",
      "new_id": "00762be2254eef3a09d942ad82e73f6045331a92",
      "new_mode": 33188,
      "new_path": "crypto/evp/p_dsa.cc"
    },
    {
      "type": "modify",
      "old_id": "efd7533504f4522e62fceaf66d4d4fb440ab6e85",
      "old_mode": 33188,
      "old_path": "crypto/evp/p_ec.cc",
      "new_id": "7d18762000e7b952bbcd77bca1e62742a8bf7b0d",
      "new_mode": 33188,
      "new_path": "crypto/evp/p_ec.cc"
    },
    {
      "type": "modify",
      "old_id": "e3807f952a16e4fb6ffcdf9919edd00920b32239",
      "old_mode": 33188,
      "old_path": "crypto/evp/p_ed25519.cc",
      "new_id": "fc2d979245bd105da08c06c50d603a54ee97930c",
      "new_mode": 33188,
      "new_path": "crypto/evp/p_ed25519.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d7db6ab6b0512a810623d93e0ba9b8e4dabb8885",
      "new_mode": 33188,
      "new_path": "crypto/evp/p_mldsa.cc"
    },
    {
      "type": "modify",
      "old_id": "a4075507aa4ac07deca17017345f1033384196e1",
      "old_mode": 33188,
      "old_path": "crypto/evp/p_rsa.cc",
      "new_id": "f8121e160e0d64b8654dbcd7c7edd405401eadbd",
      "new_mode": 33188,
      "new_path": "crypto/evp/p_rsa.cc"
    },
    {
      "type": "modify",
      "old_id": "3303a13a38de6c0432d6798623162b2e76da5a76",
      "old_mode": 33188,
      "old_path": "crypto/evp/p_x25519.cc",
      "new_id": "eb1bc447c07f7c0c5c841eb648383f34ffd52e34",
      "new_mode": 33188,
      "new_path": "crypto/evp/p_x25519.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "2732f6f916374acc1ae255614819f509007d2518",
      "new_mode": 33188,
      "new_path": "crypto/evp/test/mldsa_tests.txt"
    },
    {
      "type": "modify",
      "old_id": "b3624a3c3a9f3dc92ebbd99895905ce17ea4b4d6",
      "old_mode": 33188,
      "old_path": "crypto/fipsmodule/bcm_interface.h",
      "new_id": "eb106f534b73f032ba6484381f5013ca86a6bd15",
      "new_mode": 33188,
      "new_path": "crypto/fipsmodule/bcm_interface.h"
    },
    {
      "type": "modify",
      "old_id": "2f14141955482058adb0018242bf6fec59249095",
      "old_mode": 33188,
      "old_path": "crypto/fipsmodule/mldsa/mldsa.cc.inc",
      "new_id": "00ed6bb4077b661a77d434066f08abd14c36e99c",
      "new_mode": 33188,
      "new_path": "crypto/fipsmodule/mldsa/mldsa.cc.inc"
    },
    {
      "type": "modify",
      "old_id": "6048a69a5f3ee2e2a39915976a979a9ac9cb7469",
      "old_mode": 33188,
      "old_path": "gen/crypto/err_data.cc",
      "new_id": "6c73376e581fe3790688332833c7904f2df8fe89",
      "new_mode": 33188,
      "new_path": "gen/crypto/err_data.cc"
    },
    {
      "type": "modify",
      "old_id": "e5c80926e35af6295ae3b817835a28776ac33397",
      "old_mode": 33188,
      "old_path": "gen/sources.bzl",
      "new_id": "f7f8f3ff3b7767ade593fdefe288dcc998316502",
      "new_mode": 33188,
      "new_path": "gen/sources.bzl"
    },
    {
      "type": "modify",
      "old_id": "ac397ab33744fc2a0184b13b40526eeb8a83e2c5",
      "old_mode": 33188,
      "old_path": "gen/sources.cmake",
      "new_id": "dbac7a50900a722d66e85efb83f75142d9d4ea0f",
      "new_mode": 33188,
      "new_path": "gen/sources.cmake"
    },
    {
      "type": "modify",
      "old_id": "d5c1278b6ee2f46e0aff4ce4a2793f25e8ce4506",
      "old_mode": 33188,
      "old_path": "gen/sources.gni",
      "new_id": "a7539266d532ebbe4a3ca54d403cfb649bf1a83c",
      "new_mode": 33188,
      "new_path": "gen/sources.gni"
    },
    {
      "type": "modify",
      "old_id": "1eb563abb68a76f33f6f9163ed7c8b6f73e02dcc",
      "old_mode": 33188,
      "old_path": "gen/sources.json",
      "new_id": "beec447621ac21788edf846f7e9ea5d4a65bfe21",
      "new_mode": 33188,
      "new_path": "gen/sources.json"
    },
    {
      "type": "modify",
      "old_id": "8b3007bb09dad4028a4d5a9883bfc0aa1d61d19b",
      "old_mode": 33188,
      "old_path": "gen/sources.mk",
      "new_id": "622d9324f85ff57b224110ad793e218d31d3b4d4",
      "new_mode": 33188,
      "new_path": "gen/sources.mk"
    },
    {
      "type": "modify",
      "old_id": "b4f2252d42f4c8f5815c8d58ec702548b37bd61e",
      "old_mode": 33188,
      "old_path": "include/openssl/evp.h",
      "new_id": "8477760cd48a53cadbbaa9769384a4a7bb726c67",
      "new_mode": 33188,
      "new_path": "include/openssl/evp.h"
    },
    {
      "type": "modify",
      "old_id": "9626caff0b15245a7352c353a13d0d515e6a2a4e",
      "old_mode": 33188,
      "old_path": "include/openssl/evp_errors.h",
      "new_id": "4cccdb856086148188863ba26a710f13f3b30d04",
      "new_mode": 33188,
      "new_path": "include/openssl/evp_errors.h"
    }
  ]
}
