)]}'
{
  "commit": "f0e21a53342b98fd94fa4d10c7179689e060ef0a",
  "tree": "d4390cb591ca9188d815985ee346aebb1c6ee8b4",
  "parents": [
    "d4c457d3ad70abccb82e9079de195989e60901b6"
  ],
  "author": {
    "name": "Lily Chen",
    "email": "chlily@google.com",
    "time": "Thu Aug 20 09:39:24 2026 -0700"
  },
  "committer": {
    "name": "boringssl-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "email": "boringssl-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Thu Aug 20 15:21:18 2026 -0700"
  },
  "message": "Reland \"crypto/x509: Verify standalone Merkle Tree Certs (MTCs)\"\n\nThis reverts commit 96a007fb323e49e5637e018f7f4927addd851d6f,\nthus relanding commit f89068d3030374395c4b070838d1f4d9bbef5465.\n\nThe build failure in Chromium\u0027s component build was because accessing\nimpl-\u003etbs_sig_alg.get() instantiates the StackAllocated\u003cX509_ALGOR, ...\u003e\ntemplate, which emits relocations for internal symbols (x509_algor_init\nand x509_algor_cleanup), and these are not pruned in unoptimized mode.\n\nThe fix (diff from patchset 1) is to avoid reaching into X509Impl\ninternals to construct the test cert. Instead, all the desired\n(intentionally invalid) test certs were generated by the MTC demo tool,\nand checked in as testdata and parsed directly.\n\nOriginal change\u0027s description:\n\u003e Revert \"crypto/x509: Verify standalone Merkle Tree Certs (MTCs)\"\n\u003e\n\u003e This reverts commit f89068d3030374395c4b070838d1f4d9bbef5465.\n\u003e\n\u003e Reason for revert: build failure crbug.com/549361069\n\u003e\n\u003e Failure Link: https://ci.chromium.org/ui/p/chrome/builders/try/linux-chrome-dbg-cog-cache-warmer/79105/overview\n\u003e\n\u003e Original change\u0027s description:\n\u003e \u003e crypto/x509: Verify standalone Merkle Tree Certs (MTCs)\n\u003e \u003e\n\u003e \u003e This implements verification of \"standalone\" Merkle Tree Certs (see\n\u003e \u003e draft-ietf-plants-merkle-tree-certs-05, section 6.3) as part of the\n\u003e \u003e X509_STORE_CTX API, if the flag X509_V_FLAG_USE_MTC_DRAFT_PLANTS_05\n\u003e \u003e is specified.\n\u003e \u003e\n\u003e \u003e Bug: 503746594\n\u003e \u003e Change-Id: Ie5abd17eb34c37139d3be1261e1914976a6a6964\n\u003e \u003e Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/100707\n\u003e \u003e Reviewed-by: David Benjamin \u003cdavidben@google.com\u003e\n\u003e \u003e Commit-Queue: Lily Chen \u003cchlily@google.com\u003e\n\u003e \u003e Presubmit-BoringSSL-Verified: boringssl-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cboringssl-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n\u003e\n\u003e TBR\u003ddavidben@google.com,boringssl-scoped@luci-project-accounts.iam.gserviceaccount.com,chlily@google.com\n\u003e\n\u003e No-Presubmit: true\n\u003e No-Tree-Checks: true\n\u003e No-Try: true\n\u003e Bug: 503746594, 549361069\n\u003e Change-Id: If43293ba7c2199a463a98dcf848fcc60bdd1e9bb\n\u003e Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/101307\n\u003e Presubmit-BoringSSL-Verified: boringssl-scoped@luci-project-accounts.iam.gserviceaccount.com \u003cboringssl-scoped@luci-project-accounts.iam.gserviceaccount.com\u003e\n\u003e Auto-Submit: Lily Chen \u003cchlily@google.com\u003e\n\u003e Reviewed-by: David Benjamin \u003cdavidben@google.com\u003e\n\u003e Commit-Queue: David Benjamin \u003cdavidben@google.com\u003e\n\n# Not skipping CQ checks because this is a reland.\n\nBug: 503746594\nCq-Include-Trybots: luci.boringssl.try:linux_clang_shared_compile,linux_clang_shared_rel_compile\nChange-Id: I2376b492ecc0e6bfcfc0acb36cc0f1511dd29db7\nReviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/101467\nCommit-Queue: Lily Chen \u003cchlily@google.com\u003e\nReviewed-by: David Benjamin \u003cdavidben@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "ae818d9ea97a36e7cf37c75843a4062150939c5d",
      "old_mode": 33188,
      "old_path": "build.json",
      "new_id": "2c05e930a2b24b9103a70e2ca91a0689b7decfcc",
      "new_mode": 33188,
      "new_path": "build.json"
    },
    {
      "type": "modify",
      "old_id": "e30d667bd7290b8d411c323ebf8bdb11e95b300d",
      "old_mode": 33188,
      "old_path": "crypto/err/x509.errordata",
      "new_id": "836e115217cbcff44f36fce7f375e37ef36c4d2d",
      "new_mode": 33188,
      "new_path": "crypto/err/x509.errordata"
    },
    {
      "type": "modify",
      "old_id": "feb8f2d1e49f89078481e5ff10583b17250ed51e",
      "old_mode": 33188,
      "old_path": "crypto/obj/obj_dat.h",
      "new_id": "2243ba00009ab33049e1aa9b1f091c976143a01c",
      "new_mode": 33188,
      "new_path": "crypto/obj/obj_dat.h"
    },
    {
      "type": "modify",
      "old_id": "7b8bd2ead77881c1806c57e612ee33795e90b172",
      "old_mode": 33188,
      "old_path": "crypto/obj/obj_mac.num",
      "new_id": "70b8399cb7cc16c0d0c159e97b0eb6babc59b863",
      "new_mode": 33188,
      "new_path": "crypto/obj/obj_mac.num"
    },
    {
      "type": "modify",
      "old_id": "67b9ade4398a19de6d96fed720074f2372d0da31",
      "old_mode": 33188,
      "old_path": "crypto/obj/objects.txt",
      "new_id": "05aaa358356410d9c4e38dab2007ade5bc4cf102",
      "new_mode": 33188,
      "new_path": "crypto/obj/objects.txt"
    },
    {
      "type": "modify",
      "old_id": "17d6eebd5aa4b9518588ad7d8fc2c38dc98eb89e",
      "old_mode": 33188,
      "old_path": "crypto/x509/internal.h",
      "new_id": "6ba5ecc4b72151a3b4b985bbcac4b9dbe1c85f98",
      "new_mode": 33188,
      "new_path": "crypto/x509/internal.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "31aeedbd8d614a4c9a61661d0455b0ca09cee8a5",
      "new_mode": 33188,
      "new_path": "crypto/x509/test/mtc/ca_cert.pem"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "7225580f95783f09314ba42af7a17a2d8a954cf8",
      "new_mode": 33188,
      "new_path": "crypto/x509/test/mtc/cert_10_0.pem"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1f9a550e0e85d3349cd311e8943398a5852b7d67",
      "new_mode": 33188,
      "new_path": "crypto/x509/test/mtc/cert_10_1.pem"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "12bd95c132a8446e54a6f6fcd4b4110b6c0556d4",
      "new_mode": 33188,
      "new_path": "crypto/x509/test/mtc/cert_2034_0.pem"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6a7e03b42af1e49901fe7e4782da32320c06e481",
      "new_mode": 33188,
      "new_path": "crypto/x509/test/mtc/cert_2035_0.pem"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "003090127fb19327a5c84840261e6b22848fb0ba",
      "new_mode": 33188,
      "new_path": "crypto/x509/test/mtc/cert_2_0.pem"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "9eeb06f07c37a2b8eeeec68fb9fb2d7a8b3532d8",
      "new_mode": 33188,
      "new_path": "crypto/x509/test/mtc/cert_32_0.pem"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "95c348ab7fb0a616b19bd9e9d3e5f6ad83a58b2b",
      "new_mode": 33188,
      "new_path": "crypto/x509/test/mtc/cert_33_0.pem"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c900bbf750076d10f25228412f97bbc53ffe0b9a",
      "new_mode": 33188,
      "new_path": "crypto/x509/test/mtc/cert_33_1.pem"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "2aa5afeba913fc7a64ddb61461cdfbee5f66b345",
      "new_mode": 33188,
      "new_path": "crypto/x509/test/mtc/cert_33_2.pem"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d19dc097ae42b416c13fdee1ae224b9c88fa6b09",
      "new_mode": 33188,
      "new_path": "crypto/x509/test/mtc/cert_33_3.pem"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b921b5864f0f2ad735860828aa357a5e8fdb9aa6",
      "new_mode": 33188,
      "new_path": "crypto/x509/test/mtc/cert_33_4.pem"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ed50002e59082a37b12617497a52d2d760ccf93c",
      "new_mode": 33188,
      "new_path": "crypto/x509/test/mtc/cert_33_5.pem"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3392c301ed267646233e9d45a8b6b1d81cb8f897",
      "new_mode": 33188,
      "new_path": "crypto/x509/test/mtc/cert_33_6.pem"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "1abcdbc32ce6ed8bd23a876dc77abb8c7a50396d",
      "new_mode": 33188,
      "new_path": "crypto/x509/test/mtc/cert_33_7.pem"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "9dcf2f74284194eeedc88c9ad25e2cf814b5dcc8",
      "new_mode": 33188,
      "new_path": "crypto/x509/test/mtc/cert_33_8.pem"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e4f47073f810281b2cf39ce0effe8a316cd2bb4f",
      "new_mode": 33188,
      "new_path": "crypto/x509/test/mtc/cert_33_9.pem"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "05a37933a53249352cd5358d7085f1e84de98525",
      "new_mode": 33188,
      "new_path": "crypto/x509/test/mtc/cert_5036_0.pem"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ac39cf8a9eab51a75537f2a81021a8d11f16d186",
      "new_mode": 33188,
      "new_path": "crypto/x509/test/mtc/mtc_testdata_config.json"
    },
    {
      "type": "modify",
      "old_id": "c330eb8b7294ced420bcfd25e7304899fc30388e",
      "old_mode": 33188,
      "old_path": "crypto/x509/v3_purp.cc",
      "new_id": "d832c5bdbb5a93e08ce44f0b818646ab7ca90d10",
      "new_mode": 33188,
      "new_path": "crypto/x509/v3_purp.cc"
    },
    {
      "type": "modify",
      "old_id": "9838a0cd4ab82461cafd7d82df1d77c81e1780e6",
      "old_mode": 33188,
      "old_path": "crypto/x509/x509_mtc.cc",
      "new_id": "989dd421700971dc6dae3a0d3e0c8e11f4edf7c6",
      "new_mode": 33188,
      "new_path": "crypto/x509/x509_mtc.cc"
    },
    {
      "type": "modify",
      "old_id": "c126f142890fa369c9253ecf4b3070c6ee479268",
      "old_mode": 33188,
      "old_path": "crypto/x509/x509_test.cc",
      "new_id": "617089533f8108ba9cc579b43a01c40308196830",
      "new_mode": 33188,
      "new_path": "crypto/x509/x509_test.cc"
    },
    {
      "type": "modify",
      "old_id": "2b071bce8c9811512f909f005a898951358cc8de",
      "old_mode": 33188,
      "old_path": "crypto/x509/x509_vfy.cc",
      "new_id": "eef00b5d35712160f3e1db8c21a2d7f1395de153",
      "new_mode": 33188,
      "new_path": "crypto/x509/x509_vfy.cc"
    },
    {
      "type": "modify",
      "old_id": "006aa941c82d2bf217a2bc4da6f4abb5ad913bf0",
      "old_mode": 33188,
      "old_path": "gen/crypto/err_data.cc",
      "new_id": "954eb307d3b627d64d609304b1ac33573cc53ce4",
      "new_mode": 33188,
      "new_path": "gen/crypto/err_data.cc"
    },
    {
      "type": "modify",
      "old_id": "6f82243e728a84f6e728dc90438522cc6addfaa6",
      "old_mode": 33188,
      "old_path": "gen/sources.bzl",
      "new_id": "58f2047373ee498bcdc9b3336071b56193733ad6",
      "new_mode": 33188,
      "new_path": "gen/sources.bzl"
    },
    {
      "type": "modify",
      "old_id": "195d6f3b29f5ddf7c64702e33a07af73489c2e9e",
      "old_mode": 33188,
      "old_path": "gen/sources.cmake",
      "new_id": "3e98e1e617676afeb59a7cfc485e7af4bc17ca30",
      "new_mode": 33188,
      "new_path": "gen/sources.cmake"
    },
    {
      "type": "modify",
      "old_id": "0dd7a88e91dea26c34ade3578798535d9c1a4b80",
      "old_mode": 33188,
      "old_path": "gen/sources.gni",
      "new_id": "5f30e9fc05a52bef3d3d49284538317f0a910df8",
      "new_mode": 33188,
      "new_path": "gen/sources.gni"
    },
    {
      "type": "modify",
      "old_id": "408cf7fc7502077595856605ad34f10850f32348",
      "old_mode": 33188,
      "old_path": "gen/sources.json",
      "new_id": "8c1b1875cac37cfefaf36b17547de8fdaa80c959",
      "new_mode": 33188,
      "new_path": "gen/sources.json"
    },
    {
      "type": "modify",
      "old_id": "89b3df1ab3b142f384950acdf153c3b6a228157b",
      "old_mode": 33188,
      "old_path": "gen/sources.mk",
      "new_id": "02e21fccc0c86fc8dd856051888883f857df7236",
      "new_mode": 33188,
      "new_path": "gen/sources.mk"
    },
    {
      "type": "modify",
      "old_id": "6b3bb45064b85098e26e52b4564741674d5bcda4",
      "old_mode": 33188,
      "old_path": "include/openssl/nid.h",
      "new_id": "216c066038a19b9320491a16e8c6d3e2c9d285fa",
      "new_mode": 33188,
      "new_path": "include/openssl/nid.h"
    },
    {
      "type": "modify",
      "old_id": "75ada6cf89012b42ed14138b8ef877a7ed10074a",
      "old_mode": 33188,
      "old_path": "include/openssl/x509.h",
      "new_id": "0ef08e677a8e5757f087eb9912500bd596b22179",
      "new_mode": 33188,
      "new_path": "include/openssl/x509.h"
    }
  ]
}
