)]}'
{
  "commit": "9939e14cffc66f9b9f3374fb52c97bd8bfb0bfbe",
  "tree": "1938244c280649d5d59b8aff80a55e42aecda8d5",
  "parents": [
    "2f6409e888c293d59d23f7b3098070f1b52e7a0e"
  ],
  "author": {
    "name": "David Benjamin",
    "email": "davidben@google.com",
    "time": "Wed Apr 26 17:38:31 2023 -0400"
  },
  "committer": {
    "name": "Boringssl LUCI CQ",
    "email": "boringssl-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Fri Apr 28 22:50:28 2023 +0000"
  },
  "message": "Invalidated cached RSA, DH, and DSA state when changing keys\n\nAs part of getting a handle on RSA state, I would like for RSA keys\ncreated from parsing to come pre-\"frozen\". This reduces some contention\non first use. But that potentially breaks an existing use case: today,\nyou\u0027re allowed to parse a private key and then override one field\nwithout problems, because none of the cached state has materialized yet.\n\nIf the caller modified the RSA key by reaching into the struct, it\u0027s\nhopeless. If they used the setters, we actually can handle it correctly,\nso go ahead and make this work.\n\nDH and DSA aren\u0027t of particular interest to us, but fix them while I\u0027m\nat it.\n\nThis also avoids having to later document that something doesn\u0027t work,\njust that it\u0027s a terrible API.\n\nBug: 316\nChange-Id: Idf02c777b932a62df9396e21de459381455950e0\nReviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/59385\nAuto-Submit: David Benjamin \u003cdavidben@google.com\u003e\nCommit-Queue: David Benjamin \u003cdavidben@google.com\u003e\nReviewed-by: Adam Langley \u003cagl@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "7a1707027652715258d7842651d9e105f71a98fa",
      "old_mode": 33188,
      "old_path": "crypto/dh_extra/dh_test.cc",
      "new_id": "8d2c5871e8fa8bddc92ed15054c4f31107be4b6f",
      "new_mode": 33188,
      "new_path": "crypto/dh_extra/dh_test.cc"
    },
    {
      "type": "modify",
      "old_id": "8be01b9f618cc2f8a04f54d517a609a12b728639",
      "old_mode": 33188,
      "old_path": "crypto/dsa/dsa.c",
      "new_id": "5eb7894882b8f3d8198ea8bf81d3386ee604bdee",
      "new_mode": 33188,
      "new_path": "crypto/dsa/dsa.c"
    },
    {
      "type": "modify",
      "old_id": "cc02782a365425976a7e4c8bd05485373b5374a5",
      "old_mode": 33188,
      "old_path": "crypto/dsa/dsa_test.cc",
      "new_id": "611b0034708d4f66c6555ab025ef00681f6d34eb",
      "new_mode": 33188,
      "new_path": "crypto/dsa/dsa_test.cc"
    },
    {
      "type": "modify",
      "old_id": "83435118a044687c29e48aaabc4b76df0b6b5a79",
      "old_mode": 33188,
      "old_path": "crypto/fipsmodule/dh/dh.c",
      "new_id": "80940fdb13a9ead82ebd210c558e61eb3eb31e05",
      "new_mode": 33188,
      "new_path": "crypto/fipsmodule/dh/dh.c"
    },
    {
      "type": "modify",
      "old_id": "12394a44541033f00a8e1d671309b65dc6fe5d85",
      "old_mode": 33188,
      "old_path": "crypto/fipsmodule/rsa/internal.h",
      "new_id": "b940f6801f1cf9202e08bdd59df9d0a54a0126a0",
      "new_mode": 33188,
      "new_path": "crypto/fipsmodule/rsa/internal.h"
    },
    {
      "type": "modify",
      "old_id": "dffc8aa1ba465aca4e42e7d62546476cd360ee8d",
      "old_mode": 33188,
      "old_path": "crypto/fipsmodule/rsa/rsa.c",
      "new_id": "8f5cb5ff16fac34a65e3a5737b2413471ad99c18",
      "new_mode": 33188,
      "new_path": "crypto/fipsmodule/rsa/rsa.c"
    },
    {
      "type": "modify",
      "old_id": "dabcd2fc02a22b2a12931cfa5abb2eeb5fb0ed8a",
      "old_mode": 33188,
      "old_path": "crypto/fipsmodule/rsa/rsa_impl.c",
      "new_id": "6eb44381d39ef353f50f1169532908bbbaac3ea4",
      "new_mode": 33188,
      "new_path": "crypto/fipsmodule/rsa/rsa_impl.c"
    },
    {
      "type": "modify",
      "old_id": "d3ee69b31c6e2344217b5b28a85f52c83523d86b",
      "old_mode": 33188,
      "old_path": "crypto/rsa_extra/rsa_test.cc",
      "new_id": "e4fb12fc1098c6e7c217f89e71567ee91b7056dd",
      "new_mode": 33188,
      "new_path": "crypto/rsa_extra/rsa_test.cc"
    }
  ]
}
