)]}'
{
  "commit": "890c201d4ac9c345c304d646365fe077cf2b60c1",
  "tree": "5e31c13ed68cd1fd35e5cd63f22e694fe814c180",
  "parents": [
    "987dff1a9fa953a8c7dffa369d78caae02b8d9ab"
  ],
  "author": {
    "name": "David Benjamin",
    "email": "davidben@google.com",
    "time": "Wed Feb 08 15:24:47 2023 -0500"
  },
  "committer": {
    "name": "Boringssl LUCI CQ",
    "email": "boringssl-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Thu Feb 16 17:51:20 2023 +0000"
  },
  "message": "Make EVP_PKEY opaque.\n\nWhile hiding \u0027type\u0027 isn\u0027t such a huge deal, accessing \u0027pkey\u0027 without a\ntype check is very dangerous. The accessors are type-checked and avoid\nthis problem. It also gets us slightly closer to not needing to utter\nCRYPTO_refcount_t in public headers, as we\u0027re currently not quite\ndeclaring it right. And it allows us to remove another union:\nhttps://boringssl-review.googlesource.com/c/boringssl/+/57106\n\nThis matches what upstream did in OpenSSL 1.1.0.\n\nUpdate-Note: Code that reaches into the EVP_PKEY struct will no longer\ncompile, like in OpenSSL. I believe I\u0027ve fixed all the cases. If I\nmissed any, the fix is to switch code to accessors. EVP_PKEY_id(pkey)\nfor pkey-\u003etype is the most common fix.\n\nChange-Id: Ibe8d6b6cb8fbd141ea1cef0d02dc1ae3703e9469\nReviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/57105\nAuto-Submit: David Benjamin \u003cdavidben@google.com\u003e\nCommit-Queue: David Benjamin \u003cdavidben@google.com\u003e\nReviewed-by: Bob Beck \u003cbbe@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "f189d4e698cffbb7e3fce957d6ee1441a7e52d37",
      "old_mode": 33188,
      "old_path": "crypto/evp/internal.h",
      "new_id": "09f15aef4af19c746ce9787f4f2b397302137d0a",
      "new_mode": 33188,
      "new_path": "crypto/evp/internal.h"
    },
    {
      "type": "modify",
      "old_id": "ed0fb0eecaa1e6458850a929d639811706af174d",
      "old_mode": 33188,
      "old_path": "crypto/evp/print.c",
      "new_id": "925074e5ae92cca97b9f3cbafcfe11b8189be7e3",
      "new_mode": 33188,
      "new_path": "crypto/evp/print.c"
    },
    {
      "type": "modify",
      "old_id": "1fb69eca4b642215feae34e1d8955af0361dd15f",
      "old_mode": 33188,
      "old_path": "crypto/x509/i2d_pr.c",
      "new_id": "e5865a4289ee1e7f244ea7a938b4cc26a6a5f605",
      "new_mode": 33188,
      "new_path": "crypto/x509/i2d_pr.c"
    },
    {
      "type": "modify",
      "old_id": "c7829c7be1444d05ad46c2254ee70ed62a250546",
      "old_mode": 33188,
      "old_path": "crypto/x509/x509_req.c",
      "new_id": "8734897fe74eecdf8fd82b361d19f6fa20fe3d6d",
      "new_mode": 33188,
      "new_path": "crypto/x509/x509_req.c"
    },
    {
      "type": "modify",
      "old_id": "d8bd011236e1080364d4003017bd363130dc2e8d",
      "old_mode": 33188,
      "old_path": "include/openssl/evp.h",
      "new_id": "00ae4f5de464e1dd5a5530fa4cfa346f879159f7",
      "new_mode": 33188,
      "new_path": "include/openssl/evp.h"
    },
    {
      "type": "modify",
      "old_id": "ec77381985084b546338e4eba8d5c6ec7ac1a872",
      "old_mode": 33188,
      "old_path": "ssl/ssl_cert.cc",
      "new_id": "aa46a8bb67510b8634d15291d719d5cdd1560e4c",
      "new_mode": 33188,
      "new_path": "ssl/ssl_cert.cc"
    },
    {
      "type": "modify",
      "old_id": "60fda697d7148f03b9a1886dda701c9fc1f7ee88",
      "old_mode": 33188,
      "old_path": "ssl/ssl_privkey.cc",
      "new_id": "5a75b5e5172868743c68f4fd1b78bb7b3ab9341e",
      "new_mode": 33188,
      "new_path": "ssl/ssl_privkey.cc"
    }
  ]
}
