)]}'
{
  "commit": "4871095458977dfc9e3fdd1f2af66e21f3e5f4bd",
  "tree": "96514af302f26d6f6cec771f34c7aca7642b0242",
  "parents": [
    "a6fa010a8eb3bbec0830fcf0e36aed6ba3594518"
  ],
  "author": {
    "name": "David Benjamin",
    "email": "davidben@google.com",
    "time": "Tue Mar 10 09:54:03 2026 +0800"
  },
  "committer": {
    "name": "Boringssl LUCI CQ",
    "email": "boringssl-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Tue Mar 10 23:48:23 2026 -0700"
  },
  "message": "Add new APIs to generate EVP_PKEYs\n\nGenerating keys with EVP_PKEY_CTX_new_id is both tedious and pulls in\nevery algorithm.\n\nEVP_RSA_gen comes from OpenSSL. It\u0027s solid.\n\nEVP_PKEY_generate_from_alg is a single-step operation and works with\nEVP_PKEY_ALG, so it is static-linker-friendly.\n\nBug: 42290364\nChange-Id: Ie88595cd239eead95d0d32dfe12795bd28d30b59\nReviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/90608\nCommit-Queue: David Benjamin \u003cdavidben@google.com\u003e\nReviewed-by: Lily Chen \u003cchlily@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a22bc80ab2ec0490bf48004d9ce739eecee5f07f",
      "old_mode": 33188,
      "old_path": "crypto/evp/evp_ctx.cc",
      "new_id": "66c3e16e727c9fc7986b3f29c11b384a041e13e5",
      "new_mode": 33188,
      "new_path": "crypto/evp/evp_ctx.cc"
    },
    {
      "type": "modify",
      "old_id": "c2bb0287ee2bc4bc8b7d9bcc5dc345a61b139c04",
      "old_mode": 33188,
      "old_path": "crypto/evp/evp_extra_test.cc",
      "new_id": "aa96715ec335b3553ea9ece54de53580d01efacd",
      "new_mode": 33188,
      "new_path": "crypto/evp/evp_extra_test.cc"
    },
    {
      "type": "modify",
      "old_id": "05857ce76e777cdeb8f9bf9f9b146fba6d9bdbb8",
      "old_mode": 33188,
      "old_path": "crypto/evp/internal.h",
      "new_id": "cb4f8872dda174297b0bd3a62dd4dd6acff11700",
      "new_mode": 33188,
      "new_path": "crypto/evp/internal.h"
    },
    {
      "type": "modify",
      "old_id": "87efdc97fbad160f906dd7c278ba823794848648",
      "old_mode": 33188,
      "old_path": "crypto/evp/p_dh.cc",
      "new_id": "4d91e15a764182099ed953a48c1690dac2ae73ee",
      "new_mode": 33188,
      "new_path": "crypto/evp/p_dh.cc"
    },
    {
      "type": "modify",
      "old_id": "0fdab8d1a501d76b09d62a0a476841f50d0c5ce8",
      "old_mode": 33188,
      "old_path": "crypto/evp/p_ec.cc",
      "new_id": "ac2c892faf7ae686495286ad2952027aee95286f",
      "new_mode": 33188,
      "new_path": "crypto/evp/p_ec.cc"
    },
    {
      "type": "modify",
      "old_id": "4812197d1958abf1f59b37718b1249f9f69cb995",
      "old_mode": 33188,
      "old_path": "crypto/evp/p_hkdf.cc",
      "new_id": "71685e5caf863e744a711ed04bf8b085a1117a17",
      "new_mode": 33188,
      "new_path": "crypto/evp/p_hkdf.cc"
    },
    {
      "type": "modify",
      "old_id": "dd20d74cb3296072dad09002ff9f437bce38f057",
      "old_mode": 33188,
      "old_path": "crypto/evp/p_mldsa.cc",
      "new_id": "76008e3a6218a890b3f17838b4e40d426c88f65a",
      "new_mode": 33188,
      "new_path": "crypto/evp/p_mldsa.cc"
    },
    {
      "type": "modify",
      "old_id": "154fcc1f7b842b92f63305e87e92e9862a768fd7",
      "old_mode": 33188,
      "old_path": "crypto/evp/p_rsa.cc",
      "new_id": "fff90c5d2953ba63b9366f1c7c7cd27a070a4478",
      "new_mode": 33188,
      "new_path": "crypto/evp/p_rsa.cc"
    },
    {
      "type": "modify",
      "old_id": "bd5486e3bda8eb519b0138fedf32fa8247fe2165",
      "old_mode": 33188,
      "old_path": "include/openssl/evp.h",
      "new_id": "653aec9e1b204e27510654f940cbde0f290eee4b",
      "new_mode": 33188,
      "new_path": "include/openssl/evp.h"
    },
    {
      "type": "modify",
      "old_id": "86bf9269466c1502507202f933bb382bd0eb1e2b",
      "old_mode": 33188,
      "old_path": "include/openssl/prefix_symbols.h",
      "new_id": "377f868e0782f7884839eec48e7acdc2a40f2ce4",
      "new_mode": 33188,
      "new_path": "include/openssl/prefix_symbols.h"
    }
  ]
}
