)]}'
{
  "commit": "9b2cdb769ac420b0f98ff7ef5df61115bbddc3d8",
  "tree": "a034e34855418b8acd97e2230ff89c498963fcd7",
  "parents": [
    "9f55d972854d0b34dae39c7cd3679d6ada3dfd5b"
  ],
  "author": {
    "name": "David Benjamin",
    "email": "davidben@google.com",
    "time": "Thu Apr 01 23:21:53 2021 -0400"
  },
  "committer": {
    "name": "CQ bot account: commit-bot@chromium.org",
    "email": "commit-bot@chromium.org",
    "time": "Mon May 10 18:20:35 2021 +0000"
  },
  "message": "Add SSL_can_release_private_key.\n\nCallers using private key callbacks may retain non-trivial state with a\nprivate key. In many cases, the private key is no longer necessary\nimmediately after the first round-trip (e.g. non-HRR TLS 1.3\nconnections). Add a function that callers can query to drop the state a\nhair earlier.\n\nThis is tested in two ways. First, the asserts in front of using the\nkey, combined with existing tests, ensure we don\u0027t start reporting it\ntoo early. Second, I\u0027ve added tests in ssl_test.cc to assert we report\nit as early as we expect to.\n\nIn doing so, the number of parameters on ConnectClientAndServer()\nstarted getting tedious, so I\u0027ve split that into a\nCreateClientAndServer() and CompleteHandshakes(). Callers that need to\nconfigure weird things or drive the handshake manually can call\nCreateClientAndServer() (which takes care of the BIO pair business) and\ncontinue from there.\n\nBug: b/183734559\nChange-Id: I05e1edb6d269c8468ba7cde7dc90e0856694a0ca\nReviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/47344\nCommit-Queue: David Benjamin \u003cdavidben@google.com\u003e\nReviewed-by: Adam Langley \u003cagl@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "aef6b35e79c34f221f751f37c481279e326c91a1",
      "old_mode": 33188,
      "old_path": "include/openssl/ssl.h",
      "new_id": "12db981e84f5420a39b3482c936b46b3ffda486d",
      "new_mode": 33188,
      "new_path": "include/openssl/ssl.h"
    },
    {
      "type": "modify",
      "old_id": "289c612a54260aeb77cdb6fab381212cf8591c03",
      "old_mode": 33188,
      "old_path": "ssl/handshake.cc",
      "new_id": "e6280005be720a00a597ffd647c2d051fc7b1cb2",
      "new_mode": 33188,
      "new_path": "ssl/handshake.cc"
    },
    {
      "type": "modify",
      "old_id": "59ef6ec5f3b78a9154c611082dc685b1542b8c66",
      "old_mode": 33188,
      "old_path": "ssl/handshake_client.cc",
      "new_id": "4fbb48ac7afad878a05948e16271e835fa143c25",
      "new_mode": 33188,
      "new_path": "ssl/handshake_client.cc"
    },
    {
      "type": "modify",
      "old_id": "5da6b40b90da9b4b1497defe1c432709d4388b40",
      "old_mode": 33188,
      "old_path": "ssl/handshake_server.cc",
      "new_id": "74997fe787fdade955f8bcf862e01cb1a4161a5b",
      "new_mode": 33188,
      "new_path": "ssl/handshake_server.cc"
    },
    {
      "type": "modify",
      "old_id": "f1085a1483cb5276d2233827d7babd746914a0df",
      "old_mode": 33188,
      "old_path": "ssl/internal.h",
      "new_id": "dffc38b9b39de4e32371bf1bc0b1b46c0a5569ed",
      "new_mode": 33188,
      "new_path": "ssl/internal.h"
    },
    {
      "type": "modify",
      "old_id": "260d3cd784068e487baf6d60178681d39a62fb7e",
      "old_mode": 33188,
      "old_path": "ssl/ssl_lib.cc",
      "new_id": "43510f12026bcc4857014730c1bd23192015953c",
      "new_mode": 33188,
      "new_path": "ssl/ssl_lib.cc"
    },
    {
      "type": "modify",
      "old_id": "e800136d2045aa8cd156fa284d16a1b05d5e3425",
      "old_mode": 33188,
      "old_path": "ssl/ssl_privkey.cc",
      "new_id": "8462ebf007b22239e4b98eee471dac5a630bb461",
      "new_mode": 33188,
      "new_path": "ssl/ssl_privkey.cc"
    },
    {
      "type": "modify",
      "old_id": "5f79e8605ea7e58c197b848c61d3e2e0e5e8f04d",
      "old_mode": 33188,
      "old_path": "ssl/ssl_test.cc",
      "new_id": "96a8af717b9e3fa1afbf974f02ee3153e08e9986",
      "new_mode": 33188,
      "new_path": "ssl/ssl_test.cc"
    },
    {
      "type": "modify",
      "old_id": "496ae019f6e8aec8bf12488072e55cbb62a8079b",
      "old_mode": 33188,
      "old_path": "ssl/tls13_client.cc",
      "new_id": "a4a16fe06ab196b2b1f3b3ae9bffeb8106c66b3d",
      "new_mode": 33188,
      "new_path": "ssl/tls13_client.cc"
    },
    {
      "type": "modify",
      "old_id": "6b9867d2c0e9e0415f73f44eaa20ffdf3f72887a",
      "old_mode": 33188,
      "old_path": "ssl/tls13_server.cc",
      "new_id": "dc4e65dce5bbde40c0406927e0d2e7b389ca21d2",
      "new_mode": 33188,
      "new_path": "ssl/tls13_server.cc"
    }
  ]
}
