)]}'
{
  "commit": "a792f8804773f9c6c8fa55a8d9a502d56bd79b2b",
  "tree": "b4778df848e1fadf463dfd92f488b166d49bd664",
  "parents": [
    "ddb002fc522a7ab7939a892862febcccd62f23e4"
  ],
  "author": {
    "name": "David Benjamin",
    "email": "davidben@google.com",
    "time": "Mon Mar 11 15:59:01 2024 -0400"
  },
  "committer": {
    "name": "Boringssl LUCI CQ",
    "email": "boringssl-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Mon Mar 11 21:49:17 2024 +0000"
  },
  "message": "Fix a number of cases overwriting certificates, keys, etc. with SSL_CREDENTIAL\n\nField-by-field setters make the worst APIs. This fixes the following:\n\n- Calling SSL_CTX_set_chain_and_key twice should override the old one\n  (Regression from SSL_CREDENTIAL.)\n\n- Various APIs forgot to clear the old chain before appending new ones.\n  (Regression from SSL_CREDENTIAL.)\n\n- Switching between a custom private key and a concrete one should not\n  leave the old one lying around. (I think this was always broken.)\n\nAdd tests for all of these cases.\n\nChange-Id: Ief7b3aecf2ada3b123d79d4eddf464c65d5f7d0d\nReviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/66907\nCommit-Queue: David Benjamin \u003cdavidben@google.com\u003e\nAuto-Submit: David Benjamin \u003cdavidben@google.com\u003e\nReviewed-by: Bob Beck \u003cbbe@google.com\u003e\nCommit-Queue: Bob Beck \u003cbbe@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "d10bb02b983bacbace2ad5b8b932cff99da4f4a2",
      "old_mode": 33188,
      "old_path": "include/openssl/ssl.h",
      "new_id": "d73f9da9db5ede845837f626367c70af1ccefb75",
      "new_mode": 33188,
      "new_path": "include/openssl/ssl.h"
    },
    {
      "type": "modify",
      "old_id": "0e557398a814cae0b16f585406b756f56b29692a",
      "old_mode": 33188,
      "old_path": "ssl/internal.h",
      "new_id": "0c2c2f86dc228421626710d154c702247e2e5a59",
      "new_mode": 33188,
      "new_path": "ssl/internal.h"
    },
    {
      "type": "modify",
      "old_id": "39798ba7e7463ffd08ddf62e992169c88d40d75e",
      "old_mode": 33188,
      "old_path": "ssl/ssl_cert.cc",
      "new_id": "e30ec73957e40c5fe34f9785e62461db6bf5604e",
      "new_mode": 33188,
      "new_path": "ssl/ssl_cert.cc"
    },
    {
      "type": "modify",
      "old_id": "f787098688e20719cb0eb579c11ffe54d2120dbc",
      "old_mode": 33188,
      "old_path": "ssl/ssl_credential.cc",
      "new_id": "f4bb55eba99f4ddd3dc66dc18242e24e717c40f3",
      "new_mode": 33188,
      "new_path": "ssl/ssl_credential.cc"
    },
    {
      "type": "modify",
      "old_id": "9247dc33a3dd0932d4ddf67db5de414ab6869ab1",
      "old_mode": 33188,
      "old_path": "ssl/ssl_test.cc",
      "new_id": "503ad5f0d884512e76fdf22876c2a163f6061edf",
      "new_mode": 33188,
      "new_path": "ssl/ssl_test.cc"
    },
    {
      "type": "modify",
      "old_id": "d7f10834d2f53d694f72e4a51c1771c93e9e2da1",
      "old_mode": 33188,
      "old_path": "ssl/ssl_x509.cc",
      "new_id": "66c32102ffe21fae712f342c2c5d00b7773b9ec2",
      "new_mode": 33188,
      "new_path": "ssl/ssl_x509.cc"
    }
  ]
}
