)]}'
{
  "commit": "3a9254f16eda7a4c5d2260039ff23456a0a34de4",
  "tree": "ffbfb0d20c92bcbb77870acb1e545cbdb2c06a64",
  "parents": [
    "b19c870c537716395595936897076143364a2571"
  ],
  "author": {
    "name": "David Benjamin",
    "email": "davidben@google.com",
    "time": "Wed May 27 13:39:38 2026 -0400"
  },
  "committer": {
    "name": "boringssl-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "email": "boringssl-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Mon Jun 01 13:22:00 2026 -0700"
  },
  "message": "Fix EVP_MD_CTX reuse across EVP_PKEY algorithms\n\nIf you call EVP_DigestInit after EVP_DigestSignInit, the EVP_PKEY_CTX\nwould stay around, putting the EVP_MD_CTX in a confused state.\nConsistently reset it. Also if you call EVP_DigestSignInit after\nEVP_DigestSignInit, the EVP_PKEY_CTX would stay around, silently\nignoring the EVP_PKEY you passed in.\n\nFix this by consistently resetting the EVP_MD_CTX it has a pctx\nattached.\n\nAlong the way, simplify EVP_DigestInit_ex significantly. After\nhttps://boringssl-review.googlesource.com/c/boringssl/+/79507, there is\nno allocation to reuse, etc.\n\nUpdate-Note: This does come with a behavior change: EVP_DigestInit\ncannot be used to reset an EVP_DigestSign context, if the caller\nhappened to get the hash function right. (If the caller got the hash\nfunction wrong, the object would get into a bad state.)\n\nChange-Id: I01443222e6f1af77f5661a718ed17312aa8335cf\nReviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/95967\nReviewed-by: Rudolf Polzer \u003crpolzer@google.com\u003e\nCommit-Queue: David Benjamin \u003cdavidben@google.com\u003e\nAuto-Submit: David Benjamin \u003cdavidben@google.com\u003e\nPresubmit-BoringSSL-Verified: boringssl-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cboringssl-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "995435ea36733904ccdbbc94f6f0387c95f34458",
      "old_mode": 33188,
      "old_path": "crypto/evp/evp_extra_test.cc",
      "new_id": "92fd28fe5415dc0271aa88ae0dcc9e5319349a69",
      "new_mode": 33188,
      "new_path": "crypto/evp/evp_extra_test.cc"
    },
    {
      "type": "modify",
      "old_id": "49b067b78240f44b3806d300206db8c581aae480",
      "old_mode": 33188,
      "old_path": "crypto/fipsmodule/digest/digest.cc.inc",
      "new_id": "097327524980bb22d080cf65a0fdf14fec97338e",
      "new_mode": 33188,
      "new_path": "crypto/fipsmodule/digest/digest.cc.inc"
    },
    {
      "type": "modify",
      "old_id": "5324107b49d53657c06045f33b5ed4f737b3185c",
      "old_mode": 33188,
      "old_path": "crypto/fipsmodule/digestsign/digestsign.cc.inc",
      "new_id": "3db794ac00df48f15d077ef2f9db97aae2d91ff6",
      "new_mode": 33188,
      "new_path": "crypto/fipsmodule/digestsign/digestsign.cc.inc"
    }
  ]
}
