Revert "crypto/x509: Verify standalone Merkle Tree Certs (MTCs)"

This reverts commit f89068d3030374395c4b070838d1f4d9bbef5465.

Reason for revert: build failure crbug.com/549361069

Failure Link: https://ci.chromium.org/ui/p/chrome/builders/try/linux-chrome-dbg-cog-cache-warmer/79105/overview

Original change's description:
> crypto/x509: Verify standalone Merkle Tree Certs (MTCs)
>
> This implements verification of "standalone" Merkle Tree Certs (see
> draft-ietf-plants-merkle-tree-certs-05, section 6.3) as part of the
> X509_STORE_CTX API, if the flag X509_V_FLAG_USE_MTC_DRAFT_PLANTS_05
> is specified.
>
> Bug: 503746594
> Change-Id: Ie5abd17eb34c37139d3be1261e1914976a6a6964
> Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/100707
> Reviewed-by: David Benjamin <davidben@google.com>
> Commit-Queue: Lily Chen <chlily@google.com>
> Presubmit-BoringSSL-Verified: boringssl-scoped@luci-project-accounts.iam.gserviceaccount.com <boringssl-scoped@luci-project-accounts.iam.gserviceaccount.com>

TBR=davidben@google.com,boringssl-scoped@luci-project-accounts.iam.gserviceaccount.com,chlily@google.com

No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 503746594, 549361069
Change-Id: If43293ba7c2199a463a98dcf848fcc60bdd1e9bb
Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/101307
Presubmit-BoringSSL-Verified: boringssl-scoped@luci-project-accounts.iam.gserviceaccount.com <boringssl-scoped@luci-project-accounts.iam.gserviceaccount.com>
Auto-Submit: Lily Chen <chlily@google.com>
Reviewed-by: David Benjamin <davidben@google.com>
Commit-Queue: David Benjamin <davidben@google.com>
diff --git a/build.json b/build.json
index 2c05e93..ae818d9 100644
--- a/build.json
+++ b/build.json
@@ -951,7 +951,6 @@
             "crypto/slhdsa/slhdsa_shake_256f_sigver.txt",
             "crypto/x509/test/*.pem",
             "crypto/x509/test/*.pk8",
-            "crypto/x509/test/mtc/*.pem",
             "third_party/wycheproof_testvectors/*.txt"
         ],
         "internal_hdrs": [
diff --git a/crypto/err/x509.errordata b/crypto/err/x509.errordata
index 836e115..e30d667 100644
--- a/crypto/err/x509.errordata
+++ b/crypto/err/x509.errordata
@@ -12,8 +12,6 @@
 X509,110,INVALID_DIRECTORY
 X509,139,INVALID_FIELD_FOR_VERSION
 X509,111,INVALID_FIELD_NAME
-X509,145,INVALID_MTC_CA
-X509,146,INVALID_MTC_PROOF
 X509,136,INVALID_PARAMETER
 X509,144,INVALID_POLICY_EXTENSION
 X509,112,INVALID_PSS_PARAMETERS
diff --git a/crypto/obj/obj_dat.h b/crypto/obj/obj_dat.h
index 2243ba0..feb8f2d 100644
--- a/crypto/obj/obj_dat.h
+++ b/crypto/obj/obj_dat.h
@@ -16,7 +16,7 @@
 
 
 BSSL_NAMESPACE_BEGIN
-#define NUM_NID 979
+#define NUM_NID 973
 
 static const uint8_t kObjectData[] = {
     /* NID_rsadsi */
@@ -7146,39 +7146,6 @@
     0x04,
     0x04,
     0x02,
-    /* NID_alg_mtcProof_draft */
-    0x2b,
-    0x06,
-    0x01,
-    0x04,
-    0x01,
-    0x82,
-    0xda,
-    0x4b,
-    0x2f,
-    0x00,
-    /* NID_rdna_trustAnchorID_draft */
-    0x2b,
-    0x06,
-    0x01,
-    0x04,
-    0x01,
-    0x82,
-    0xda,
-    0x4b,
-    0x2f,
-    0x01,
-    /* NID_pe_mtcCertificationAuthority_draft */
-    0x2b,
-    0x06,
-    0x01,
-    0x04,
-    0x01,
-    0x82,
-    0xda,
-    0x4b,
-    0x2f,
-    0x02,
 };
 
 static const ASN1_OBJECT kObjects[NUM_NID] = {
@@ -8835,15 +8802,6 @@
      0},
     {NULL, NULL, NID_undef, 0, NULL, 0},
     {"X-Wing", "X-Wing", NID_X_Wing, 0, NULL, 0},
-    {NULL, NULL, NID_undef, 0, NULL, 0},
-    {NULL, NULL, NID_undef, 0, NULL, 0},
-    {NULL, NULL, NID_undef, 0, NULL, 0},
-    {"alg-mtcProof-draft", "alg-mtcProof-draft", NID_alg_mtcProof_draft, 10,
-     &kObjectData[6241], 0},
-    {"rdna-trustAnchorID-draft", "rdna-trustAnchorID-draft",
-     NID_rdna_trustAnchorID_draft, 10, &kObjectData[6251], 0},
-    {"pe-mtcCertificationAuthority-draft", "pe-mtcCertificationAuthority-draft",
-     NID_pe_mtcCertificationAuthority_draft, 10, &kObjectData[6261], 0},
 };
 
 static const uint16_t kNIDsInShortNameOrder[] = {
@@ -9059,7 +9017,6 @@
     368 /* acceptableResponses */,
     446 /* account */,
     363 /* ad_timestamping */,
-    976 /* alg-mtcProof-draft */,
     376 /* algorithm */,
     405 /* ansi-X9-62 */,
     910 /* anyExtendedKeyUsage */,
@@ -9521,7 +9478,6 @@
     489 /* pagerTelephoneNumber */,
     374 /* path */,
     112 /* pbeWithMD5AndCast5CBC */,
-    978 /* pe-mtcCertificationAuthority-draft */,
     499 /* personalSignature */,
     487 /* personalTitle */,
     464 /* photo */,
@@ -9575,7 +9531,6 @@
     286 /* qcStatements */,
     457 /* qualityLabelledData */,
     450 /* rFC822localPart */,
-    977 /* rdna-trustAnchorID-draft */,
     870 /* registeredAddress */,
     400 /* role */,
     877 /* roleOccupant */,
@@ -9999,7 +9954,6 @@
     901 /* aes-256-gcm */,
     428 /* aes-256-ofb */,
     914 /* aes-256-xts */,
-    976 /* alg-mtcProof-draft */,
     376 /* algorithm */,
     484 /* associatedDomain */,
     485 /* associatedName */,
@@ -10478,7 +10432,6 @@
     145 /* pbeWithSHA1And40BitRC4 */,
     170 /* pbeWithSHA1AndDES-CBC */,
     68 /* pbeWithSHA1AndRC2-CBC */,
-    978 /* pe-mtcCertificationAuthority-draft */,
     499 /* personalSignature */,
     487 /* personalTitle */,
     464 /* photo */,
@@ -10538,7 +10491,6 @@
     122 /* rc5-cfb */,
     121 /* rc5-ecb */,
     123 /* rc5-ofb */,
-    977 /* rdna-trustAnchorID-draft */,
     870 /* registeredAddress */,
     460 /* rfc822Mailbox */,
     117 /* ripemd160 */,
@@ -11592,9 +11544,6 @@
     138 /* 1.3.6.1.4.1.311.10.3.4 (OBJ_ms_efs) */,
     648 /* 1.3.6.1.4.1.311.20.2.2 (OBJ_ms_smartcard_login) */,
     649 /* 1.3.6.1.4.1.311.20.2.3 (OBJ_ms_upn) */,
-    976 /* 1.3.6.1.4.1.44363.47.0 (OBJ_alg_mtcProof_draft) */,
-    977 /* 1.3.6.1.4.1.44363.47.1 (OBJ_rdna_trustAnchorID_draft) */,
-    978 /* 1.3.6.1.4.1.44363.47.2 (OBJ_pe_mtcCertificationAuthority_draft) */,
     751 /* 1.2.392.200011.61.1.1.1.2 (OBJ_camellia_128_cbc) */,
     752 /* 1.2.392.200011.61.1.1.1.3 (OBJ_camellia_192_cbc) */,
     753 /* 1.2.392.200011.61.1.1.1.4 (OBJ_camellia_256_cbc) */,
diff --git a/crypto/obj/obj_mac.num b/crypto/obj/obj_mac.num
index 70b8399..7b8bd2e 100644
--- a/crypto/obj/obj_mac.num
+++ b/crypto/obj/obj_mac.num
@@ -959,6 +959,3 @@
 ML_DSA_87		969
 ML_KEM_768		970
 X_Wing		972
-alg_mtcProof_draft		976
-rdna_trustAnchorID_draft		977
-pe_mtcCertificationAuthority_draft		978
diff --git a/crypto/obj/objects.txt b/crypto/obj/objects.txt
index 05aaa35..67b9ade 100644
--- a/crypto/obj/objects.txt
+++ b/crypto/obj/objects.txt
@@ -1369,11 +1369,3 @@
  : AuthANY : auth-any
 
  : HKDF : hkdf
-
-# OIDs for initial experimentation from draft-ietf-plants-merkle-tree-certs.
-# id-alg TBD : alg-mtcProof
-1 3 6 1 4 1 44363 47 0 : alg-mtcProof-draft
-# id-pkix 25 TBD : rdna-trustAnchorID
-1 3 6 1 4 1 44363 47 1 : rdna-trustAnchorID-draft
-# id-pe TBD : pe-mtcCertificationAuthority
-1 3 6 1 4 1 44363 47 2 : pe-mtcCertificationAuthority-draft
diff --git a/crypto/x509/internal.h b/crypto/x509/internal.h
index 6ba5ecc..17d6eeb 100644
--- a/crypto/x509/internal.h
+++ b/crypto/x509/internal.h
@@ -670,10 +670,6 @@
 
 // Merkle Tree Certificate (MTC) verification functions.
 
-// x509_is_merkle_tree_ca returns whether `x509` contains an extension of type
-// id-pe-mtcCertificationAuthority.
-bool x509_is_merkle_tree_ca(const X509 *x509);
-
 // x509_evaluate_mtc_subtree_inclusion_proof carries out the procedure in
 // section 4.3.2 of draft-ietf-plants-merkle-tree-certs to evaluate a subtree
 // inclusion proof for an entry at index `index` with hash `entry_hash` of a
@@ -690,13 +686,6 @@
     Span<const uint8_t> entry_hash, uint64_t subtree_start,
     uint64_t subtree_end);
 
-// x509_verify_mtc verifies `x509` as a Merkle Tree Certificate issued by
-// `issuer`, which must be an MTC CA represented in X.509 format. `pkey` is the
-// `issuer`'s public key. It returns one if the MTC is valid, or zero on error.
-// This function only checks the MTC proof itself and does not perform a full
-// certificate validation.
-int x509_verify_mtc(const X509 *x509, const EVP_PKEY *pkey, const X509 *issuer);
-
 
 // Standard extensions.
 
diff --git a/crypto/x509/test/mtc/ca_cert.pem b/crypto/x509/test/mtc/ca_cert.pem
deleted file mode 100644
index 15ce358..0000000
--- a/crypto/x509/test/mtc/ca_cert.pem
+++ /dev/null
@@ -1,35 +0,0 @@
------BEGIN CERTIFICATE-----
-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
-//////8wCgYIKwYBBQUHBiQDAQA=
------END CERTIFICATE-----
diff --git a/crypto/x509/test/mtc/cert_10_0.pem b/crypto/x509/test/mtc/cert_10_0.pem
deleted file mode 100644
index c71be61..0000000
--- a/crypto/x509/test/mtc/cert_10_0.pem
+++ /dev/null
@@ -1,131 +0,0 @@
------BEGIN CERTIFICATE-----
-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
-AAAAAAAAAAAAAAAAAAAAAAAGCxEUGR4=
------END CERTIFICATE-----
diff --git a/crypto/x509/test/mtc/cert_10_1.pem b/crypto/x509/test/mtc/cert_10_1.pem
deleted file mode 100644
index b2a9d19..0000000
--- a/crypto/x509/test/mtc/cert_10_1.pem
+++ /dev/null
@@ -1,131 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIYBDCCAQugAwIBAgIHAQAAAAAACjAMBgorBgEEAYLaSy8AMBkxFzAVBgorBgEE
-AYLaSy8BDAczMjQ3My4xMB4XDTIwMDEwMTAwMDAwMFoXDTMwMTIzMTIzNTk1OVow
-ADBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABMsYgtepbbPkji/OzsB4Rg8yvf3c
-lHe7DPNIwH+d1S/gFd/B6ByqZgOyyaGC3+MlYXFZXjXMbn7AH3D7nky19FajVTBT
-MA4GA1UdDwEB/wQEAwIHgDAWBgNVHSUBAf8EDDAKBggrBgEFBQcDATApBgNVHREB
-Af8EHzAdggliLmV4YW1wbGWCECouYmxhaC5iLmV4YW1wbGUwDAYKKwYBBAGC2ksv
-AAOCFuMAAAAAAAAAAAgAAAAAABAAYIhVUIqt4W7Fc9Ieakhd/Qp2JAhcGhS17N1k
-hd4MaDmk+Cb0wnPJt5EH0V1bSfVN/Fmkpw+NxkkJaDmOVTOkU5Nkhy2CelvcJ/17
-HVs/BkDkCP4ZOWKndjbc4+w3hJjWPRZwBIH9WQEJdJytQe8vGtXG35/8/NaO/+us
-4mUK5odeY2MX9dzw1T9fatPtTdS8js+aQIR57YVK7/5L0xZiV8fm1wuDylGOl1Ef
-+mMboRzg7LIhJHSxIvtXPLQIigNBwG37boISfMUgSwLAH0p/peJupB0WV4KoT+AZ
-TIi+QJfQ1yV9WqsCZ0m4JrdVLAvBuNHKZxqD4c50E7dFMNYvuDmZLMfRnetAKDAy
-H4V+jzPCequ0nMOU44iEqjQGzvSk01aq5gpsGb9qadSIPXPPx3YjXR6E1boclxtn
-l5jAhmthjN8H+NH7J1TKzeju09o4GS4rT3UGLZIu8PuBe5FidPNcrBVk8ssvwcrS
-xQrjKChq7xTepc1UJo86no3nlsWp8+I03JfkpHjTU+UEvHMVZFhMmB0jZL1D/+Ku
-WmFkOXakHgKS+EmOcau0WACR5rllRa8bnyQwUnNe9kvMBxh3r9Hs7jw+SbdG0Sak
-QfFtE1vXART+RZaykd1CpaPrZkW0H9lclampOvNfHihlh6U+EM4ale7mkdISxmle
-6ILHEbJUgR2XCzOZLt97JKLNWCWfSXETY7CPlueQJ1fZwgNvnyyQSUTr66I6MK0B
-j9yT90UlZZpvpHwNjTXkMXeHQALB6CTqJwOD67X1mcGnlXwyWUON7+RkU5hsuzhQ
-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
-AAAMEhUeJzA=
------END CERTIFICATE-----
diff --git a/crypto/x509/test/mtc/cert_2034_0.pem b/crypto/x509/test/mtc/cert_2034_0.pem
deleted file mode 100644
index a39f2fe..0000000
--- a/crypto/x509/test/mtc/cert_2034_0.pem
+++ /dev/null
@@ -1,137 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIZJjCCAT6gAwIBAgIHAQAAAAAH8jAMBgorBgEEAYLaSy8AMBkxFzAVBgorBgEE
-AYLaSy8BDAczMjQ3My4xMB4XDTIwMDEwMTAwMDAwMFoXDTMwMTIzMTIzNTk1OVow
-STFHMEUGA1UEAxM+aHR0cHM6Ly9naXRodWIuY29tL2lldGYtcGxhbnRzLXdnL21l
-cmtsZS10cmVlLWNlcnRzL2lzc3Vlcy8xNDYwWTATBgcqhkjOPQIBBggqhkjOPQMB
-BwNCAATLGILXqW2z5I4vzs7AeEYPMr393JR3uwzzSMB/ndUv4BXfwegcqmYDssmh
-gt/jJWFxWV41zG5+wB9w+55MtfRWoz8wPTAOBgNVHQ8BAf8EBAMCAgQwFwYDVR0R
-AQH/BA0wC4IJZS5leGFtcGxlMBIGA1UdEwEB/wQIMAYBAf8CAQUwDAYKKwYBBAGC
-2ksvAAOCF9IAAAAAAAAABAAAAAAAB/QBAKUTAApzweH/qK6Xkb9Rh9U/J/6IfWcZ
-c7bEHkubPaLrG5et2vSV4vmqPc3JBkPuX2qkZAXM5zuOOjc2xoUAG5+wL/bC1VVY
-e+NqD2cbMBOWn3ro54uPRivI1XwNvEtcFk8XZaq9N2kR5fhCIpq9btfOlmr7cTNm
-dTdLdrONh1p5Vk24uVwfbSJ9qVNinDLLI7xFo1PldrbmYy1XAESud0hZ4Ny4COkr
-/gOuakOCfZxHEwEO8QlNgdBG0dmC3Woj/ptnf2HEwnX0gjHNjmtpXD5Nis3c0kxL
-yInjNhUavkeVsvlWaU9OjXZa0oc3je1B38T4EFsd5C7tdFi4TPeBDtIWvwSB/VkB
-CXTfpUFv+Y9MkOp69GBTpFPNKRtaOBT47pEuKbMlrQGIaOizqH4SSeRKRkmfepUu
-ZvwKq6vbECgPOGg80FZ9RRYgJJOLp7KrRYNMP5KZMOjdVZ0agkR2w7TWMip+p2L7
-BkDGfgWrIefffDLM8oQ/O8foEPILt72IkMhX74xCClUZ6399FqryxVO9LqbzI8jb
-NaOTuf/DRf4vlP3YJTBnBc1Qr639UDmvk0GPdWa9sJzmQbpAMTrQIj30x3b99Qns
-ZcTo7B2Hl/tl6yFXYl1WMEu0U0IjcqntZZ1zrLULe2Pm7WQcfww/s4ZRRFwn1QGq
-b3EEEKG0M9L6FUNp1/F2UnnJM/9HBQrhi+FxJ59e6bq58dERfbpoAE1Vp+4jgGvo
-HFozoGQFohn2JVsurgebaT6+hf9wbDnNYp3/Rlj2Z3SPEFl7IauvmVfZFcUsGEcn
-N2PcOrSLLxcm+GiAdGBigvAFA8mK9z89dUuQ+WwwbuoEKAt5nPdVaMcLtcK2h7Kq
-eNX4x7Ym70dq5EzZUXOAn8MLWHM9nDlIt0Tc9PT7t3VAlYzPSECaA59suXBjf6Bm
-RALUPcE1jsKhIcpaOhm61uTvJEobmMkmn6ACMj/APGwBym11iOEX5fXLXKgYyzEw
-lHEY6a/tfZe5tqgkqz2sbJAov9Hg8rh94pvTQVe8tDYfdlpTGk1xJEpIvr6D3MM4
-1RUPU+H177ybkwAVVfOMZzFV64dg71v37IQnqsbeHK+fYMZ6Ced/aoYIELDmFe7u
-1B91yHG0Ybb7XP5Z+AORYyLBqH7MRqzGmCWBPVbywvi0VdeQ3+pwQ2A9FD5EGX4h
-ydM3w7fOfVS9Br+c+NHXabWq4eJqlRC8eqOfnlAamG3sghFBYivch6hWn5C4qGm0
-3yWmxPG3F59hEisZRRa2YzG/G2TFJc4lSlbt6iWTJO1if+lZtgnsbpe+8z6AED9V
-k9Tm5xrzOXlCdUhrso8540/X2/P7H9jAmv7rM+5R+isXGFMjw4O09We25lK3tyI3
-k2mRszAiG/nJsS7QrHS3tGwIseZsB5OWDY82AGzULRJ+l+0tb2a64hpr5P3HjVbP
-Ywvs96FsvPm0NLCOHjuhLxnyunbQQIAkm2EmqhZbc8e5xBhMFTgKgyP8klLPKPaE
-5430wCSJEFgQlsYxtlFDR5rwCAbF5N/Z+pRh5W2ISX9DVDnFx7CwmQCAFAPpMgl2
-p4RDRILLConMA/cIlgk1nNY3Gr6AIekPLXcSg6WHrizbHMpV9hb/vWtIy4pNgzcB
-On7DFa4AQIskX67cHTtpDBTLWplPlS/lUKKUIgTLh+vuZjFMUs/AIJsCevMt/O4l
-gUKGlx64sLGSYI3zkLawC/HBJqlyMfymrImyO2vJLUbpqWfkNTQa4cv4jbquHROA
-hHnVPuHgaVe2Jc4SxlZfeTyIeOkmaS9s2XhOKm8C781qVS6CcrvC+QUi1CghiSqc
-9IRYZcgAN/S7Q5nPhO8lqt+JT/Eq23ULR+I7ABRKpQfNdOzWbh4fu0HVZDGLliU7
-gIQoJvxyhL1ohctWwuskvlJ9OHji9UUe0KaXz5vxwoPmrnwDkmT9fPdKqrYdPq+V
-q1bcFgWGn5eot3JhV45LtAAWgrWNnLCWIKue3fFSR/ub94G2njc218pcG/A58Bgw
-bmhKGUTErU1HH/EPMJcL3CNxaNeR2PVgl8rvQ9x5KPE5YQK6SBVr0EdJPiqKIVpQ
-6o0Ki8D00K9lFGFEqWNM2wGIMcYE0Si/SOqDUYdDVAq7XhTBaMrTVgNNWZBLMV+6
-7f/R4ok1EhjL8w1TS2R0lKr0riSqyTsz+O8Lu53S13B3PfS/pQKi9xsDYpl9NIpU
-nDlY0kmfx9m4o9ify4gHVgFnqVESBYs6t+buV4NbiUGq5I/v49cldZ4+qmJXXyW3
-xbU4PPGZ6s8bdq8//AyVu0XTp7uO2Ec+ufpW9MY36UaPEVDsaSolw80ZrxlnTwj0
-9ELkH5Vm3CPfzDyIbYsh1dp7WiSdm/PFMnIZ60LaNURHTy9bnUs1CPPodEO+Vzzh
-9QOwPx8TITC4/YObj5Ugi2SpVQJODRZKQiNu2x+QyCU/TtNlT7ljBv8MeJhYUy89
-Y/HONXUxbjsFeeXFahHeuXf9SQd0s051eB/IKUjaaZUw/hfye5GtiY8xS3J++IVU
-iUqrUVxF6XHf178Bbil4jPlNXih7Uf4ko5G4ChARsUipiSUx+Kb0OYi8LLMkOPg3
-a7ip/65Iv1LiFyIq4LBiDTLPaUgxoiRl0LopSeb+rlmYdkYsfTRyLaEClntmxxOL
-Y9TpxANoEenooqgS0yToNKEW47oS6rKZ/ITRjeSRRfeQJMenLBgXScjEBc4nWAl5
-+xOsF6inbY2aM1WhsHWUJfeDHix1ggL0OY2dmx5eHOS+rchur+BfgL2Z7I2qr5Bh
-iHpZa+GSqpxfR/RDVx2Rk61QQdSzKXcf71Rl3BhajE7T9txl7KflQAOMcE1V+3qv
-apIY9YQ7QHU0VyXXGDR10kOQP8rojkI1ALsTZ23XWv8lyp3FqIHcWqeF49GBKKWg
-jQ0/oldpSzdTWrSoZAL23UgaNGnIx3HanAw07TwCZ9EmqN4iFQhnbjxxmLSPm0Xh
-TClKEnxsEM7m+Oj2VvCsbmn8jX6RWSy898KD2XAPDkkCljPFHocRfYlP+3jU6yks
-sYWVkA4RUF0zpsuNAPjRtDMxWIsRiqGTKiELtPFIL06PTixoK+exBEjF1O07Ivs2
-EF0Y+Dh89z5o8N4IVZtJWMueGNsdfjehB7nQS4vhyxcwiqEjvxfb/NTr/JBaImKH
-kZXfPoMiF7vbLtYN4z6xR/DZ80i1Zk/EmPDvj8ileyEYGQ4946KscKXYaCZ8rxcB
-2WNc9l3fhVBklj+S0pjC61Kp5tDLOtOGxLeaUq+qpXFBHKN8TExX9fCAcYOMi7UV
-7xS/UoLk4mZaTOVV4lnpSXtxTTWMEuhdvaOcb/fAHYwIe+ZpcDAyIhXOEV+Wf+qb
-f7Ix45K4gSsJzS46Yv+BsIgW7hBZG8sGir3fzATjttr5ezU+3ULzXvhCSlHlSmL1
-vgAuyQkS3Ofi5eKmwq+zOSlEggeshFPbXKpAOeMuO3wr4wUuMVh9laerurve7BAd
-Njs9dpGco6Wzt94CBggQKEdbZWmcoMHM4AkhL29zdniVn6LP1eXrAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAADBknNQWB/VkCAQBHMEUCIQCppDfQpNOh85z9TMMY
-fMBq88XcWXJbnLd1awthjq+C0wIgSlqXom0r8jgunvL5hLfbolPLpRA//Tjrvtep
-J7nbEqoFgf1ZAgIM7UL4v4cIIuwd2YFBY+hJmV8zg93/G21Lg1uh69Og5boFGqxs
-ozdBnCiAOujMti3yesuX+aBXtF0qLfWgd7TtmOYNqgAYzxE22S+ZvOeVWPsiH3i8
-6opajHrD3/kbAGykUv4Hyqj0x3rhsj6iIe47O1Dw2qMCubCCAQ5xl08cIXZia7Oy
-/AGJCi4UaCt9/+5zqXuWf5kbrtD9QoWRrneMLIstfssXjYpuXURM2hGWMltfVcZf
-zA4q/PXF6Fp6vJRMIOxznrKtSqB4Ri9Jd5+Ek/dmUTmCM/IqElR2x20/HLeai4dH
-c/lkjNpkUajEVkcfQQ4WKtSyNDKno8RWR1+q3J6hBy+ltz0S/QxO/QwxQhv2Zu2D
-eA4C4DDIZpBo9Cz2ak1JNl4YJGASPol8stUmvCxFOYcPomZ02T6rzDXHfM+19muv
-71ObpG82qHDGfe75QdMkzzy1FDXDcnXeBeKJTJEPSbA3E7WZHl9Ny/qGMptOGY21
-nPljfOw5gXz9RCLRvhdoUtXFRxAqru1jQdKLaK8/lF5z8B1A96hBG4TqFLP9vfYt
-VaO0oFV1SDGE8D7tPsvPSwvAKomhewBfzh6/yv5GDUpdJ05Onrba0yupvx2EFIN0
-TTPxmiwpK816qsCeuPXhtBLQ14/8BMu0PsYLPLSGSU2rS1JayR2rL5nxee6xtIdg
-Ar6yf1xLNO5AeRuEc7eG++wRf9La+o54obrf4/PZJhtry2APFDBreDwktkA2UY/A
-MEhPn4kIfOJIbVXEkhxvzd9y3+bcPcknxoKH8hqKGadyqiF/gpcaTWaEL9yjFdQ2
-PxJfOI15BnM9lLld/nyt2E9CEL0I8fgGAKuaWd078Kgeg5K3xODqZHdLSKRVplwx
-TuGfXOAZ4Gv3PHkToddeI5mqlBmjAykYRX61RUXDjWyTFAEBNGZMjo+UuANbaNV1
-u/rib124/IkWR8J221P/sSs7FDdeERn4HUlald+uoGIGmSGcEROByTcotrSN9NEY
-4Hlknzz398tUOPUuk61rg4QHkG93eoN06r1XuB0hD+oxNwMcpmFhrktPOCpwzC/Q
-XRS+YrHtwrgsyxeZvIcnNTMJtg4DmUQfU3nNSiw1k+CyYUnGpZcSVl+EaohitR/G
-vmYxPoyQrS7CZ1VDqbpH07FgM9pAUWLPuVM/FC3rji2BZztdRCHgKFEZrX1HVwpR
-/daF+RipgcKLp9+oAH4YXJBItau38uKOV+/HOzqTxeJ0MP/75CCfSfv5dcI1BuZR
-hEcvRGF3j+4q+Qpp4wcvL1x8L6CXKBIAR3oYNNkvJF07zeLZ73w3l/Mj8a00NjZ3
-4H8+brEGd5XtLG3/U0bhelGAqIVvwb5ZLxJh4ZmydRccBIna3E573rjHaPIoFzGj
-h/ndXWAjO76gyO9/yxuvsHf/8zpfi0C9VnUQwGvCfX+0xZRZQG8s+gZVh5QtPMOs
-lfGvLlgcSMr3zOduTptE1AtFOJAXWXuEAWKWmbbBr+VYoNjpErxJbUHrBBq69Ux2
-H8+EzCf1Bza7Z9fErmuctZd+NwPwNV13VsVPDAJYC7FarOJsSX2IithQHfg/eIsV
-GCc3SfLW13Y3Lx+f4/vPw131Bd9ccy1c19WDFOlDkvrjeCiExoj3lc3zOchD/Qx4
-eeK9d7ItglNlifs86gKEMwxoPca3ICuVgVG1EI4IWcW1r/j5M4mdhIyWaq8nen6Z
-jfqpCTBoYz07BFAr2rbuLV6zuAEPj3MkRWW0YmqOpYdwHdqCKXhYfk6SUVuqJDtE
-x1nR+OxiIyXb2+U/7W9Msj9g0y11XXWEDfGkEWBrGeKnWzuQK8MwlodpwICvHNH5
-shWCXp7uzYtQ6ZEmllpHlQt05jFEElhPeeGI0y2+P2SPwWio/s1irxBSYxOkCFPp
-oEvb6M+tuJlHmLv1MmfNfHs1a9zz3FBFqAdAmQRJ8uguT07W8+P0/7sdXcuZkUGt
-QGHP59nGTJReTN0GzxyUo848tX6ae6yhRN1s0veqaXg6FCgTHR0w+OTYAi8LJOBW
-hw2xFR35Eigtl6QTIHBfzBIRM0EbUrqvpMglkTIjvheUhyYlcpYC39zm6+OHmIY6
-JPpkG45bMk06jfF57+SZDtprl7yxo2CiRD1RdWukPSpsX1vQTeTXY/eCh8Gv3IKs
-6rTboQK39KJzCpA9v5nLS0i3DTYVwbZkZvCtMMHkW8Zr04jMaUZ9Nr7qt/Npeq16
-1ptkb7dSjTtXCLGQY1wj+ADu+WZ7SL4P4NVhG+llVUZXKa6H9tvjGMpvvJY/WiqF
-sCeStzSnM9lUmTv25kVAyd4u0cXRt5L0M6Q0oSFxUzKjcbl+DcntsjDkel/+p6d7
-duj9CT/5NyJtXCgPGZgROCvQjAeMD/xgF9s2JvdGXYDyqoAU9H6PexFNZRgehr0h
-M/MtiyNLjqTZB9pi5RnTqAcvAaLcdIcj/DfwrMyAnTyCJzxw1mQmcmV430tXj9Pl
-9DKxmXuYXbMwNY76B75xrBZ3F2U4GgDTB+9Z5cLuqRuERGiFPlhs7Gvu3TC21ncz
-6mHYKfwFIwVLAo/jnN382FvQsB8Ujn6+VzAq1unlo7vi5jzXXSjQzrofCt+j1lIj
-rEwzHa5BwZ7YdFdViPQQQGNhjxkYDJlOlVCCSoiKVuvUXzm432rd5qeeuLs/k4AA
-Gexq5OmdaBzGV3zLmGX1l4aKtbQ5lrgaTlETWgXCkM6Ok7Xt0NjD7IDywfIeOude
-iiWCLFqjSKNgf6y21I3O4t+E5pXA/Azomb3UjVa44pUdlCv6LSTYQqagHfe4aUYA
-+nlRp+tbae0Mn+NmuKpNNUg1V75Xhj366bzH3OgbOUqvLaEkBa9IK53bStjbZz0R
-0ooiKt2RqbKihz/b5WxbOmGlGYaOH/9XGTLCiqPnzUCJRvVDecSGF9/vdx3oBfRp
-SnM75rEKzbafcA1XVsyOqYWgh1QLEWJXtudh8SwPTx4MQuGw0vn8rd2FE5OVtzFh
-FwiCTiVYWb+MsmP7raAKvlGhlFpcx3N8F0+J7xa2Q/Cn0nCA/m5LAZqWpjfqb5yT
-Szw0oKLWB6Y708CTKvhwN/WR/LQrfgXgEOQyoXJ5lohETwbL+otOVD8eRyoDBa9D
-qgh9T09xS7k0SL/HIcXeJPiWwKaDlCpt9UDK1D6b47QCuMlwOxlOc9dUjTgnhgQl
-BE3kf4Ay6UZqr7qKQNGyKyH1USx/fXnD91cg4JFveg7KDzaGihWcexLqKwMDNpsN
-liXRo1qdr6Z39G1/0qKZu0mbV4l7Nuq4E3sC6xzbgGBTwOfoJ/DnL0Rx9rh7Po6D
-E+XyYdEDZWN3QfFqSABKyP+49mxbKiRIxgMpg2aO3f64keZ6zAiNEsmxFAlkKftY
-kljK3oaMaMv5wutRROIXlQtgpKW5rXu6BnZsSpOD1ODB+weSpG+8eO+IBNqnpeeU
-Jg0I2rvqL3ME8jz257V4pFR/moloGWdLUQvfKaxCa3HS+OGPdYGzFEgAtbknA0YN
-6/m1WpUMpYk9DnS5qC088y/oDnv+Aw9cmZ45XJqYC8emzHca6Ca9NsM1Pn3xEwWI
-6ovCDi84f0RaTV+Awwz/BsuBMcHE+eO1CeUL0LHgAiKgcYom78nSgw+5a+vWium3
-3bw3YyBmuxheO91V2KsXnuIgU6/XvK+aF9U8d0JE1GXOTkBzKgktiuopAxAiO+qM
-SxAjFBEl6TkCSv8M8O604TgHU9X1sCgQmLy+C/MoYYn5uDNM3LZqCo5ZirAKNmZL
-banAK8eGQmPzHzjiRCFHgWsjhTdFkswfCYEpriZFREZWsOspzvzYMpmaaOgJJINb
-CfkkjrHkdrl2lmS89F8smeUopI5CePfaYVz2knFlghMS+/nuepsCeHyxdyHFG3Eh
-pJNVaQ5Tp5AXvdDhiJF94pLvhq1Ik8zubUTIr6OHJAdnQRtCGl6Hi+o2Ijjz8av3
-LyJIkIc9cKdCG4G74NQn7ZCahzPdQy/dtQ6qrzBq3wC6cf9/cclx9Zw09QQ8wqnM
-osxJHdw1faCrGbmLBA45wEKxem16PBD4Z92ehq0eVblru/5ZW7X441KEdLCWzD+U
-CPNikA6U/UC4XoFl4lECI42+Me0TEQUGMGgcu49yA4fs25MKRP9ETp51veuxM8G9
-y8QEwqhXRFKtPh9Y7rDK8kjYRIr0dX6tamdlE7iQirZYrJ79pRLZlGwPPuPEu7Pj
-lueF+szb9IS1KK2U/X68uHE2ZkJ8qthyqlLf5AFmS+tsr/z61cDK0cga6IW8IsLz
-6nPzM9xmXTWen05FRfZ7ZQGiBmhDFKx2y0sHM7JT9QV5wYo+LRLZ8VQGECI4QEFW
-j5urHSE+UFXILUBHccbk6e4VI2GcscPyIl2TlrvG1uISGx4oc3+RsrS37gAAAAAA
-AAAAAAYMFBsjLg==
------END CERTIFICATE-----
diff --git a/crypto/x509/test/mtc/cert_2035_0.pem b/crypto/x509/test/mtc/cert_2035_0.pem
deleted file mode 100644
index 729b32c..0000000
--- a/crypto/x509/test/mtc/cert_2035_0.pem
+++ /dev/null
@@ -1,135 +0,0 @@
------BEGIN CERTIFICATE-----
-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
------END CERTIFICATE-----
diff --git a/crypto/x509/test/mtc/cert_32_0.pem b/crypto/x509/test/mtc/cert_32_0.pem
deleted file mode 100644
index 19bd5e9..0000000
--- a/crypto/x509/test/mtc/cert_32_0.pem
+++ /dev/null
@@ -1,130 +0,0 @@
------BEGIN CERTIFICATE-----
-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
-AAAAAAAAAAAAAAAAAAAAAAAABg0UFh0k
------END CERTIFICATE-----
diff --git a/crypto/x509/test/mtc/cert_33_0.pem b/crypto/x509/test/mtc/cert_33_0.pem
deleted file mode 100644
index 2b521b1..0000000
--- a/crypto/x509/test/mtc/cert_33_0.pem
+++ /dev/null
@@ -1,131 +0,0 @@
------BEGIN CERTIFICATE-----
-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
-GyEq
------END CERTIFICATE-----
diff --git a/crypto/x509/test/mtc/cert_33_1.pem b/crypto/x509/test/mtc/cert_33_1.pem
deleted file mode 100644
index 6bb41ad..0000000
--- a/crypto/x509/test/mtc/cert_33_1.pem
+++ /dev/null
@@ -1,62 +0,0 @@
------BEGIN CERTIFICATE-----
-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
------END CERTIFICATE-----
diff --git a/crypto/x509/test/mtc/cert_33_2.pem b/crypto/x509/test/mtc/cert_33_2.pem
deleted file mode 100644
index c85227e..0000000
--- a/crypto/x509/test/mtc/cert_33_2.pem
+++ /dev/null
@@ -1,62 +0,0 @@
------BEGIN CERTIFICATE-----
-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
------END CERTIFICATE-----
diff --git a/crypto/x509/test/mtc/cert_33_3.pem b/crypto/x509/test/mtc/cert_33_3.pem
deleted file mode 100644
index 365e46a..0000000
--- a/crypto/x509/test/mtc/cert_33_3.pem
+++ /dev/null
@@ -1,62 +0,0 @@
------BEGIN CERTIFICATE-----
-MIILPDCB+aADAgECAgcBAAAAAAAhMAwGCisGAQQBgtpLLwAwGTEXMBUGCisGAQQB
-gtpLLwEMBzMyNDczLjEwHhcNMjAwMTAxMDAwMDAwWhcNMzAxMjMxMjM1OTU5WjAA
-MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEyxiC16lts+SOL87OwHhGDzK9/dyU
-d7sM80jAf53VL+AV38HoHKpmA7LJoYLf4yVhcVleNcxufsAfcPueTLX0VqNDMEEw
-DgYDVR0PAQH/BAQDAgeAMBYGA1UdJQEB/wQMMAoGCCsGAQUFBwMBMBcGA1UdEQEB
-/wQNMAuCCWQuZXhhbXBsZTAMBgorBgEEAYLaSy8AA4IKLgEAAAAAAAAAIAAAAAAA
-QACgwTCZzVZE9nT5TOigqlp5Q2pBimcyw4f6tVVUOpgiRgQbl63a9JXi+ao9zckG
-Q+5faqRkBcznO446NzbGhQAbn4pjkCXYwjIHwhXrWvuWcLw2lPsGdGQjYdSTe5yL
-4dt8ZKJpKHJzkmz//f2PRjmzt3KLkC+HR8OTZtVI6LrtE0ywL/bC1VVYe+NqD2cb
-MBOWn3ro54uPRivI1XwNvEtcFgl7BIH9WQEJdO0/hEJhG4UL+AGeqGD35VlLyCp6
-wUOlLByBsfLfi/2EZcM/xvKtSpCg4TE04khK+SEvPgNxojUSW/6DUK7L/HEmZmQ3
-RatAS94HrdOH9SKhkBlMf7s334UCjTozbe/XunW9h+IL5eUW7YMVbVFby4OmKbIq
-MLTPia4+OLNJtX8sthXhFji/Q4A+zXqc1ck8EHWsmi5mpxX7jJyyGCWpG4lF5Vde
-BPoYJpZelAmQom20CV14Bwvmm6wkzvNC1NQFxl4ab5Mf8TzJNPy+QfwpgCfFjp59
-iT1DXxNZpbEQmbaYfZn5cffovCIBs/2S1ykGJYeL/SNp3liuBNbYerT+YX+MEyUV
-GBGWHdPQJ19aY+aUQmor+5fQuE0+XHVaKJVQElbCNlpaFXQdqdFwnOZztE3S3i2v
-zyyubipbJRI7up2ixzidK3oLe7FwCQYAKTLe3aB1eugwW/LTfncr4rvM1rqhZZN3
-sTXGtRfGpoC6DTrmIu8/CPoWZcsFH/sH1cH+hTaGLCrO8i1ww0mo2ZPgTAb/KiGI
-GW3ClVHOrqh0wd1L1lfXXNWCo+Rozk4ncekrdntcmri6cv+2pn1TkW4YYgWG4HkJ
-fvdO67vXHuTNZ7NRlx0dXBYbGeZNJLFxPS+BU6APFWNjUxh43aPPctZq7+sD7+IS
-JlDOKatn/mGT2zBWtmG9uT2u0SRKIVsMenu7OVwfW6t8YB55Ai341Hna+Ez68EPi
-hv/Z1VPQxThnwtiTqG5wyrBQGPt57vhjmpUc4YrVqwZ+EqmFx3tI64BdkiPZ/ofc
-+F5Z12jgljHdt2aE3/uuO2pVcfKlliLX5olF3H5UDAJLKU8cGm2gyfSff6RmfCB7
-MHbiboHC/LMMyv4NukUdJHTkDcnxx5PflXa/xC1tHw6QLL4fAQytP5nhNZb68wqa
-/StZBG1e/bLl9JHO8Zg+91ikRRf+NLo0MqKbcrZhMx6DD7WmdbVjnC9nl6kmdOOg
-MU0UG1Rya3MWX5WeQuZZug6xIcq6XKXwjp55AvBaOsiJ88k0NHs4G05gHDpk/KjG
-Jvj8vcMoa/Lglt06fI+KJcXTVzBLXE4GYXllC98ylOsdxKtmb55oiXdEBYRyBnDL
-RYZT5U7hlvXfJApRzu8aSNctt67JGCNArzV6s1ILn+MLC8rr0ZaE1/0f6ejGcPKH
-BkBBtTAVsSizAv3PQMmH/zsNe1OEHB6f3fSOLXbCt/pQ9NmJHCULZRgEVrrN4RIO
-06Nd1yWnekpCzE6tT2TxqpRI1L/KA/oSMk4GqWmjmJ+FI7A5tOzcbqkM5FC5bedv
-9FkcJEtbKNZ6+P1vF7yKNYQj7+ofz8qElwIVjW0S6XcRJRKu+SGLOhe+kYVys4aG
-MYMpbHB5SyttdbUosQ3TcGEPnQtPE1rJBOZFcyvPHVQOFhE2oOMnzVPgvVtZv964
-l3C+hrkXk5iSkjPXSKNsbu2SlLX9TeFTGx/uE6fx9EeQReFPq9JLigYOo7otA24M
-Abqb2zDPKByNKRigD7lFh5RMlfM6A6fNSf42l24tAHB37odZhILY7jK6AiyD8WSt
-huyN7/4HyJCbpfhTtjv2LVnbULft0tGP9sN331MF287UpoYOIBG4ZCzI1ZXITz8t
-Iey0n4QIX6xELHH7Q63MCU2shCxE+B4ig1o9k6vPELtaPxSaXh+jDjDOXOqmRgFo
-SNYVhQlItVPyBVWsLKbIQEQV1uaWS+8S24qibdB85dVffrG9lbZFwUHNmUdlntSQ
-WOHuEnuUw5Wwdsa/YtXqez+DaJ8LbCt1sMkxa3HbmVZAIpHuP4B3o7S1aX4amt8E
-TYaugoMCmNAilSEqp88UZxEwRdeClsu/WkipoaPeJqv+2NBBBaiqMCemnhWgCK/6
-qvsm6nvMpMdbDE/+FpSSX9snqfnPj3FLUnZIlMjP28WE6RIG8r3E8+rbyBxGCmck
-4TsLdXbebX4L8mLle2etE1/ullPHOPwdUqtIAjO+qXBqAie/NgNVYxw0i/F/xEt0
-xmQWLYLd/bKGj9nWRTBs6rXFI2R1Zgte154uNhz/3ij55Hz84gZjuNdjcV3tPXQM
-AC0aFZeslY86zQuoACnjA6t89TyVpsgV+6VpIDKeoROns+9F8b/Gr8Q4CtJLnfmw
-5+cSBYeGkKpxQNlYmvgzriNEqMjSrgGfsj1mN4ClIomnVkzYc0Uu8gx0hTbVrs8U
-vPhi9IR4SLN0IFwPNOHov0mtUCXOMnEvVQEyeySM1NNgImEv9EzUGxoQoSp/MhyX
-NUXX8xWuNghY1Ul6ZBoxh8DHDsBRV6XOT65cPsd8h/17XQvr5nBmiaOigvxZr6BH
-FqQep0IiXg59F2KiV6WO18y2ce8OxLCqJ2Hq88D3WPdkyLjKE1WvxdHLCcv+orNy
-rfoZplEdNKoostjNR+UWtfwCFz1ecJ8YWkh9qL3aOSHp7wkJn1ITXS5/2SEMgpkL
-J+sUK0mwJZxhQZGpKinDoSsO2kbnm8rCzcN5o8AIhO2KmyqoQ3RtpqgdEkBZlLHE
-zf9k6nFvJ/5+zaiTEg2fZ7Exat2C4Jt5ysWLCXpu4rYrc4kuLPJG8dW4Nwsuy/gQ
-XeZCtG3YOzKjoTKImiqOYDL+1ShVoHtIl8IZqKZ+SfiZjvCfUGyUB3wjMkmORW17
-0gQ5XUnu1cGtZSk6jpd7BLiTPliQI6hJfKtV4IpbnNbqpkkYP3msBZgGnJiBGO7B
-3GNtLOj/ELwBu1z+YKVNS7WyylHJ68fqEvEY7E/+CnT8AvtobluX2zlgIyLoN51S
-dK5AOwPRxpkclnGKiY6QCT4+2fibyC0WbHVLtF9iAsnkhXXlVeztaT6PjuQa/Rnk
-KWGIR8ZtujuSMLYrI/+/ISYFOyOppO/PUrYaKhrS4iz3pZFvo2LrAaEfsr1p2yhY
-qk9zGumTe6B/pdPP9zXbfk46NJXpyEl2mC8/zj/8vtSB2PZnr6VKZA06x3n3FNHq
-hdSmUxzPvs/tvdYbLvzEedWEHRlYOqPlDUmYyRvT30wuaFRJVZCc3peFwExSlpTR
-SJjKdKVEpyy1dPgmXte2U2oIm89GhQ8BXjvld8noeD2odWBlyVg+7fqGOnKhyLlS
-pNgvmfxRK3MBfLOEARApKkVMX3KSqa+10tzd+QMYGRwlMEBBRV1vt7va5u4VKTdC
-qay2w8YbOzxCR1BRU1VWWlt9gZKgobO4vMHGydTpAAAAAAAAAAAAAAAAAAAQIClC
------END CERTIFICATE-----
diff --git a/crypto/x509/test/mtc/cert_33_4.pem b/crypto/x509/test/mtc/cert_33_4.pem
deleted file mode 100644
index 86ac85d..0000000
--- a/crypto/x509/test/mtc/cert_33_4.pem
+++ /dev/null
@@ -1,81 +0,0 @@
------BEGIN CERTIFICATE-----
-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
-AAAAAAAAAAAAAAAAAAAAAAAAAAAIDhEYHSM=
------END CERTIFICATE-----
diff --git a/crypto/x509/test/mtc/cert_33_5.pem b/crypto/x509/test/mtc/cert_33_5.pem
deleted file mode 100644
index a2def31..0000000
--- a/crypto/x509/test/mtc/cert_33_5.pem
+++ /dev/null
@@ -1,132 +0,0 @@
------BEGIN CERTIFICATE-----
-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
-AA0aKzw=
------END CERTIFICATE-----
diff --git a/crypto/x509/test/mtc/cert_33_6.pem b/crypto/x509/test/mtc/cert_33_6.pem
deleted file mode 100644
index 30cd287..0000000
--- a/crypto/x509/test/mtc/cert_33_6.pem
+++ /dev/null
@@ -1,182 +0,0 @@
------BEGIN CERTIFICATE-----
-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
------END CERTIFICATE-----
diff --git a/crypto/x509/test/mtc/cert_33_7.pem b/crypto/x509/test/mtc/cert_33_7.pem
deleted file mode 100644
index c29a78f..0000000
--- a/crypto/x509/test/mtc/cert_33_7.pem
+++ /dev/null
@@ -1,201 +0,0 @@
------BEGIN CERTIFICATE-----
-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
-AAAAAAIKEhYcHg==
------END CERTIFICATE-----
diff --git a/crypto/x509/test/mtc/mtc_testdata_config.json b/crypto/x509/test/mtc/mtc_testdata_config.json
deleted file mode 100644
index ffdd82e..0000000
--- a/crypto/x509/test/mtc/mtc_testdata_config.json
+++ /dev/null
@@ -1,132 +0,0 @@
-{
-  "Version": "plants-05",
-  "ID": "32473.1",
-  "LogNumber": 1,
-  "Cosigners": [
-    {
-      "CosignerID": "32473.1",
-      "SignatureAlgorithm": "mldsa44",
-      "PrivateKey": "MDQCAQAwCwYJYIZIAWUDBAMRBCKAIAABAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZGhscHR4f"
-    },
-    {
-      "CosignerID": "32473.2.1",
-      "SignatureAlgorithm": "ecdsa_p256_sha256",
-      "PrivateKey": "MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgthrguld6LZNJw6UMbhyTkML7u3BMcdEyomQIwB+N2o6hRANCAAR6nKeTu+M2OxL7HCjH/i0+lnIx7OE0b3DnXWVue+5TBVDq8aG6KqFq+xprV5ll6QtPJb+TTBp+Kv1IRpDxMpxt"
-    },
-    {
-      "CosignerID": "32473.2.2",
-      "SignatureAlgorithm": "mldsa65",
-      "PrivateKey": "MDQCAQAwCwYJYIZIAWUDBAMSBCKAIAABAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZGhscHR4f"
-    }
-  ],
-  "CACert": {
-    "NotBefore": "2020-01-01T00:00:00Z",
-    "NotAfter": "2030-12-31T23:59:59Z",
-    "IsCA": true,
-    "KeyUsage": ["CertSign"],
-    "MinSerial": {"Log": 1, "Index": 8},
-    "MaxSerial": {"Log": 5, "Index": 281474976710655}
-  },
-  "Entries": [
-    {
-      "Repeat": 10,
-      "PublicKey": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEyxiC16lts+SOL87OwHhGDzK9/dyUd7sM80jAf53VL+AV38HoHKpmA7LJoYLf4yVhcVleNcxufsAfcPueTLX0Vg==",
-      "NotBefore": "2020-01-01T00:00:00Z",
-      "NotAfter": "2030-12-31T23:59:59Z",
-      "DNSNames": ["a.example"],
-      "KeyUsage": ["DigitalSignature"],
-      "ExtKeyUsage": ["ServerAuth"]
-    },
-    {
-      "PublicKey": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEyxiC16lts+SOL87OwHhGDzK9/dyUd7sM80jAf53VL+AV38HoHKpmA7LJoYLf4yVhcVleNcxufsAfcPueTLX0Vg==",
-      "NotBefore": "2020-01-01T00:00:00Z",
-      "NotAfter": "2030-12-31T23:59:59Z",
-      "DNSNames": ["b.example", "*.blah.b.example"],
-      "KeyUsage": ["DigitalSignature"],
-      "ExtKeyUsage": ["ServerAuth"],
-      "Checkpoints": ["fast"],
-      "Certificates": [
-        {"Checkpoint": "fast", "Cosigners": ["32473.1", "32473.2.1", "32473.2.2"]},
-        {"SubtreeStart": 8, "SubtreeEnd": 16, "Cosigners": ["32473.1", "32473.2.2"]}
-      ]
-    },
-    {
-      "Null": true
-    },
-    {
-      "Repeat": 10,
-      "PublicKey": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEyxiC16lts+SOL87OwHhGDzK9/dyUd7sM80jAf53VL+AV38HoHKpmA7LJoYLf4yVhcVleNcxufsAfcPueTLX0Vg==",
-      "NotBefore": "2020-01-01T00:00:00Z",
-      "NotAfter": "2030-12-31T23:59:59Z",
-      "DNSNames": ["c.example"],
-      "KeyUsage": ["DigitalSignature"],
-      "ExtKeyUsage": ["ServerAuth"]
-    },
-    {
-      "Repeat": 10,
-      "Null": true
-    },
-    {
-      "PublicKey": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEyxiC16lts+SOL87OwHhGDzK9/dyUd7sM80jAf53VL+AV38HoHKpmA7LJoYLf4yVhcVleNcxufsAfcPueTLX0Vg==",
-      "Subject": {"CommonName": "No extensions and a common name"},
-      "NotBefore": "2020-01-01T00:00:00Z",
-      "NotAfter": "2030-12-31T23:59:59Z",
-      "Certificates": [
-        {"Checkpoint": "fast", "Cosigners": ["32473.1", "32473.2.1", "32473.2.2"]}
-      ]
-    },
-    {
-      "PublicKey": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEyxiC16lts+SOL87OwHhGDzK9/dyUd7sM80jAf53VL+AV38HoHKpmA7LJoYLf4yVhcVleNcxufsAfcPueTLX0Vg==",
-      "NotBefore": "2020-01-01T00:00:00Z",
-      "NotAfter": "2030-12-31T23:59:59Z",
-      "DNSNames": ["d.example"],
-      "KeyUsage": ["DigitalSignature"],
-      "ExtKeyUsage": ["ServerAuth"],
-      "Checkpoints": ["fast"],
-      "Certificates": [
-        {"Checkpoint": "fast", "Cosigners": ["32473.1", "32473.2.1", "32473.2.2"]},
-        {"SubtreeStart": 32, "SubtreeEnd": 64, "Cosigners": ["32473.1"]},
-        {"SubtreeStart": 32, "SubtreeEnd": 64, "Cosigners": ["32473.1"], "BitFlipProof": true},
-        {"SubtreeStart": 32, "SubtreeEnd": 64, "Cosigners": ["32473.1"], "UnusedBit": true},
-        {"SubtreeStart": 32, "SubtreeEnd": 64, "Cosigners": ["32473.2.2"]},
-        {"SubtreeStart": 32, "SubtreeEnd": 64, "Cosigners": ["32473.2.2", "32473.1"], "DontSortCosigners": true},
-        {"SubtreeStart": 32, "SubtreeEnd": 64, "Cosigners": ["32473.1", "32473.1", "32473.2.2"], "DontSortCosigners": true},
-        {"SubtreeStart": 32, "SubtreeEnd": 64, "Cosigners": ["32473.1", "32473.2.2", "32473.2.2"], "DontSortCosigners": true}
-      ]
-    },
-    {
-      "Repeat": 2000,
-      "Subject": {"CommonName": "Some more filler certificates"},
-      "PublicKey": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEyxiC16lts+SOL87OwHhGDzK9/dyUd7sM80jAf53VL+AV38HoHKpmA7LJoYLf4yVhcVleNcxufsAfcPueTLX0Vg==",
-      "NotBefore": "2020-01-01T00:00:00Z",
-      "NotAfter": "2030-12-31T23:59:59Z"
-    },
-    {
-      "PublicKey": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEyxiC16lts+SOL87OwHhGDzK9/dyUd7sM80jAf53VL+AV38HoHKpmA7LJoYLf4yVhcVleNcxufsAfcPueTLX0Vg==",
-      "NotBefore": "2020-01-01T00:00:00Z",
-      "NotAfter": "2030-12-31T23:59:59Z",
-      "Subject": {
-        "CommonName": "https://github.com/ietf-plants-wg/merkle-tree-certs/issues/146"
-      },
-      "DNSNames": ["e.example"],
-      "KeyUsage": ["CertSign"],
-      "IsCA": true,
-      "MaxPathLen": 5,
-      "Certificates": [
-        {"Checkpoint": "fast", "Cosigners": ["32473.1", "32473.2.1", "32473.2.2"]}
-      ]
-    },
-    {
-      "PublicKey": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEyxiC16lts+SOL87OwHhGDzK9/dyUd7sM80jAf53VL+AV38HoHKpmA7LJoYLf4yVhcVleNcxufsAfcPueTLX0Vg==",
-      "NotBefore": "2020-01-01T00:00:00Z",
-      "NotAfter": "2030-12-31T23:59:59Z",
-      "DNSNames": ["e.example"],
-      "KeyUsage": ["DigitalSignature"],
-      "ExtKeyUsage": ["ServerAuth"],
-      "Checkpoints": ["fast"],
-      "Certificates": [
-        {"Checkpoint": "fast", "Cosigners": ["32473.1", "32473.2.1", "32473.2.2"]}
-      ]
-    }
-  ]
-}
diff --git a/crypto/x509/v3_purp.cc b/crypto/x509/v3_purp.cc
index d832c5b..c330eb8 100644
--- a/crypto/x509/v3_purp.cc
+++ b/crypto/x509/v3_purp.cc
@@ -142,8 +142,7 @@
          nid == NID_policy_constraints ||    //
          nid == NID_name_constraints ||      //
          nid == NID_policy_mappings ||       //
-         nid == NID_inhibit_any_policy ||
-         nid == NID_pe_mtcCertificationAuthority_draft;
+         nid == NID_inhibit_any_policy;
 }
 
 static int setup_dp(X509 *x, DIST_POINT *dp) {
diff --git a/crypto/x509/x509_mtc.cc b/crypto/x509/x509_mtc.cc
index 989dd42..9838a0c 100644
--- a/crypto/x509/x509_mtc.cc
+++ b/crypto/x509/x509_mtc.cc
@@ -12,22 +12,14 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-#include <openssl/asn1.h>
 #include <openssl/base.h>
 #include <openssl/bytestring.h>
 #include <openssl/digest.h>
-#include <openssl/err.h>
 #include <openssl/evp.h>
-#include <openssl/nid.h>
 #include <openssl/span.h>
-#include <openssl/x509.h>
 
 #include <assert.h>
 
-#include <algorithm>
-#include <optional>
-
-#include "../bytestring/internal.h"
 #include "../internal.h"
 #include "./internal.h"
 
@@ -35,38 +27,8 @@
 BSSL_NAMESPACE_BEGIN
 namespace {
 
-// Prefix for domain separation to denote a Merkle Tree leaf or interior node.
-constexpr uint8_t kMTCLeafDomainSeparator[] = {0x00};
-constexpr uint8_t kMTCNodeDomainSeparator[] = {0x01};
-// DER encoding of AlgorithmIdentifier for alg-mtcProof-draft with absent
-// parameters.
-//   SEQUENCE (12 bytes) {
-//     OBJECT IDENTIFIER 1.3.6.1.4.1.44363.47.0 (10 bytes)
-//   }
-constexpr uint8_t kMTCAlgorithmIdentifier[] = {
-    0x30,  // SEQUENCE tag
-    12,    // tag + len + OID bytes
-    0x06,  // OBJECT tag
-    10,    // OID length
-    OBJ_ENC_alg_mtcProof_draft,
-};
-// MTCLogEntryType enum value for tbs_cert_entry.
-constexpr uint8_t kMTCLogEntryTypeTBSCertEntry[] = {0x00, 0x01};
-// ASN.1 tag for encoded OCTET STRING.
-constexpr uint8_t kEncodedOctetStringTag[] = {0x04};
-// Prefix for domain separation used in CosignedMessage.
-constexpr uint8_t kCosignedMessageLabel[12] = {'s', 'u', 'b', 't', 'r',  'e',
-                                               'e', '/', 'v', '1', '\n', '\0'};
-// String prefix used to construct ASCII representation of trust anchor IDs for
-// CosignedMessage fields.
-constexpr uint8_t kASCIIOIDPrefix[16] = {'o', 'i', 'd', '/', '1', '.',
-                                         '3', '.', '6', '.', '1', '.',
-                                         '4', '.', '1', '.'};
-// DER encoded OID component found in trust anchor IDs for issuance logs.
-constexpr uint8_t kEncOIDLogs = 0x00;
-
-constexpr CBS_ASN1_TAG kTBSVersionTag =
-    CBS_ASN1_CONSTRUCTED | CBS_ASN1_CONTEXT_SPECIFIC | 0;
+// Prefix for domain separation to denote a Merkle Tree interior node.
+const uint8_t kMtcNodeDomainSeparator[] = {0x01};
 
 // HashNode executes one hashing step in the evaluation of an inclusion proof.
 void HashNode(Span<uint8_t> out, const EVP_MD *log_hash,
@@ -76,8 +38,8 @@
   assert(right_child.size() == EVP_MD_size(log_hash));
   ScopedEVP_MD_CTX ctx;
   EVP_DigestInit_ex(ctx.get(), log_hash, nullptr);
-  EVP_DigestUpdate(ctx.get(), kMTCNodeDomainSeparator,
-                   sizeof(kMTCNodeDomainSeparator));
+  EVP_DigestUpdate(ctx.get(), kMtcNodeDomainSeparator,
+                   sizeof(kMtcNodeDomainSeparator));
   EVP_DigestUpdate(ctx.get(), left_child.data(), left_child.size());
   EVP_DigestUpdate(ctx.get(), right_child.data(), right_child.size());
   EVP_DigestFinal_ex(ctx.get(), out.data(), nullptr);
@@ -86,12 +48,6 @@
 // lsb returns whether the least-significant bit of `n` is set.
 inline bool lsb(uint64_t n) { return n & 1; }
 
-// is_mtc_proof returns whether `algor` is an mtcProof AlgorithmIdentifier.
-bool is_mtc_proof(const X509_ALGOR *algor) {
-  return OBJ_obj2nid(algor->algorithm) == NID_alg_mtcProof_draft &&
-         algor->parameter == nullptr;
-}
-
 // Returns the first hash value (of size `log_hash_size`) remaining in
 // `inclusion_proof` and advances `inclusion_proof` past the returned value.
 // Returns an empty span if there are no more hash values of the appropriate
@@ -106,219 +62,8 @@
   return value;
 }
 
-// Writes `data` to the digest in `ctx`, prepending an 8-bit length prefix.
-bool DigestUpdateWithU8LengthPrefix(EVP_MD_CTX *ctx, Span<const uint8_t> data) {
-  BSSL_CHECK(data.size() < (1u << 8));
-  const uint8_t length_prefix = static_cast<uint8_t>(data.size());
-  return EVP_DigestUpdate(ctx, &length_prefix, sizeof(length_prefix)) &&
-         EVP_DigestUpdate(ctx, data.data(), data.size());
-}
-
-// Writes `data` to the digest in `ctx`, prepending a 16-bit length prefix.
-bool DigestUpdateWithU16LengthPrefix(EVP_MD_CTX *ctx,
-                                     Span<const uint8_t> data) {
-  BSSL_CHECK(data.size() < (1u << 16));
-  const uint8_t length_prefix[2] = {static_cast<uint8_t>(data.size() >> 8),
-                                    static_cast<uint8_t>(data.size())};
-  return EVP_DigestUpdate(ctx, length_prefix, sizeof(length_prefix)) &&
-         EVP_DigestUpdate(ctx, data.data(), data.size());
-}
-
-// Reads the next ASN.1 element from `cbs` and writes it as-is to the digest in
-// `ctx`, including ASN.1 header bytes.
-bool DigestUpdateNextASN1Element(EVP_MD_CTX *ctx, CBS *cbs) {
-  CBS element;
-  if (!CBS_get_any_asn1_element(cbs, &element, /*out_tag=*/nullptr,
-                                /*out_header_len=*/nullptr)) {
-    return false;
-  }
-  return EVP_DigestUpdate(ctx, CBS_data(&element), CBS_len(&element));
-}
-
-// MTCCACosigner represents a Merkle Tree CA and its corresponding CA cosigner
-// (see draft-ietf-plants-merkle-tree-certs, section 5.5).
-class MTCCACosigner {
- public:
-  MTCCACosigner() = default;
-  ~MTCCACosigner() = default;
-
-  // Init() must be called before this object can be used.
-  // Init parses parameters defining an MTC CA cosigner from `x509`, including
-  // its MTCCertificationAuthority extension. `pkey` is the public key
-  // previously parsed from `x509`. Returns true if successfully initialized an
-  // MTCCACosigner representing a valid MTC CA, or false on error.
-  bool Init(const X509 *x509, const EVP_PKEY *pkey) {
-    // Get and parse the MTCCertificationAuthority extension (see section 5.5).
-    int ext_index =
-        X509_get_ext_by_NID(x509, NID_pe_mtcCertificationAuthority_draft, -1);
-    const X509_EXTENSION *ext = X509_get_ext(x509, ext_index);
-    if (ext == nullptr || !X509_EXTENSION_get_critical(ext)) {
-      OPENSSL_PUT_ERROR(X509, X509_R_INVALID_MTC_CA);
-      return false;
-    }
-    const ASN1_STRING *value = X509_EXTENSION_get_data(ext);
-    CBS ext_value;
-    CBS_init(&ext_value, ASN1_STRING_get0_data(value),
-             ASN1_STRING_length(value));
-
-    CBS seq, log_hash;
-    if (!CBS_get_asn1(&ext_value, &seq, CBS_ASN1_SEQUENCE) ||         //
-        !CBS_get_asn1_element(&seq, &log_hash, CBS_ASN1_SEQUENCE) ||  //
-        !x509_parse_algorithm(&seq, cosign_sigalg_.get()) ||          //
-        !CBS_get_asn1_uint64(&seq, &min_serial_) ||                   //
-        !CBS_get_asn1_uint64(&seq, &max_serial_) ||                   //
-        CBS_len(&seq) != 0) {
-      OPENSSL_PUT_ERROR(ASN1, ASN1_R_DECODE_ERROR);
-      return false;
-    }
-    log_hash_ = EVP_parse_digest_algorithm(&log_hash);
-    if (log_hash_ == nullptr) {
-      return false;
-    }
-    if (CBS_len(&log_hash) != 0) {
-      OPENSSL_PUT_ERROR(ASN1, ASN1_R_DECODE_ERROR);
-      return false;
-    }
-
-    // Extract the CA ID from the subject (see section 5.1).
-    const X509_NAME *subject = X509_get_subject_name(x509);
-    int tai_index =
-        X509_NAME_get_index_by_NID(subject, NID_rdna_trustAnchorID_draft, -1);
-    if (tai_index < 0 || X509_NAME_entry_count(subject) != 1) {
-      OPENSSL_PUT_ERROR(X509, X509_R_INVALID_MTC_CA);
-      return false;
-    }
-    // For initial experimentation, the attribute's value is a UTF8String
-    // containing the trust anchor ID's ASCII representation.
-    const ASN1_STRING *tai_ascii =
-        X509_NAME_ENTRY_get_data(X509_NAME_get_entry(subject, tai_index));
-    if (ASN1_STRING_type(tai_ascii) != V_ASN1_UTF8STRING) {
-      OPENSSL_PUT_ERROR(X509, X509_R_WRONG_TYPE);
-      return false;
-    }
-    std::string_view tai_ascii_str = BytesAsStringView(
-        Span(ASN1_STRING_get0_data(tai_ascii), ASN1_STRING_length(tai_ascii)));
-    ScopedCBB ca_id_enc;
-    if (!CBB_init(ca_id_enc.get(), 64) ||
-        !CBB_add_asn1_relative_oid_from_text(
-            ca_id_enc.get(), tai_ascii_str.data(), tai_ascii_str.size())) {
-      OPENSSL_PUT_ERROR(ASN1, ASN1_R_INVALID_OBJECT_ENCODING);
-      return false;
-    }
-    if (!CBBFinishArray(ca_id_enc.get(), &ca_id_enc_oid_)) {
-      OPENSSL_PUT_ERROR(X509, ERR_R_INTERNAL_ERROR);
-      return false;
-    }
-
-    cosign_pubkey_.reset(EVP_PKEY_dup_ref(pkey));
-    return true;
-  }
-
-  bool IsSerialInRange(uint64_t serial) const {
-    return min_serial_ <= serial && serial <= max_serial_;
-  }
-
-  // Constructs CosignedMessage and computes signature.
-  bool VerifyCACosignature(Span<const uint8_t> ca_cosignature,
-                           uint64_t log_number, uint64_t subtree_start,
-                           uint64_t subtree_end,
-                           Span<const uint8_t> expected_subtree_hash) const {
-    ScopedCBB cosigned_message;
-    if (!CBB_init(cosigned_message.get(), 256) ||
-        !CBB_add_bytes(cosigned_message.get(), kCosignedMessageLabel,
-                       sizeof(kCosignedMessageLabel)) ||
-        !WriteCosignerName(cosigned_message.get()) ||
-        !CBB_add_u64(cosigned_message.get(), 0u) ||  // timestamp
-        !WriteLogOrigin(cosigned_message.get(), log_number) ||
-        !CBB_add_u64(cosigned_message.get(), subtree_start) ||
-        !CBB_add_u64(cosigned_message.get(), subtree_end) ||
-        !CBB_add_bytes(cosigned_message.get(), expected_subtree_hash.data(),
-                       expected_subtree_hash.size())) {
-      OPENSSL_PUT_ERROR(X509, ERR_R_INTERNAL_ERROR);
-      return false;
-    }
-    return x509_verify_signature_bytes(cosign_sigalg_.get(), ca_cosignature,
-                                       CBBAsSpan(cosigned_message.get()),
-                                       cosign_pubkey_.get());
-  }
-
-  // IsCACosigner returns whether `trust_anchor_id` equals the cosigner ID
-  // of this CA's CA cosigner.
-  bool IsCACosigner(Span<const uint8_t> trust_anchor_id) const {
-    return trust_anchor_id == ca_id_enc_oid_;
-  }
-
-  const EVP_MD *log_hash() const { return log_hash_; }
-
- private:
-  // WriteTaiAscii concatenates the trust anchor ID prefix with the CA ID as a
-  // relative OID to get the CA ID as a full OID, then appends any additional
-  // OID components from `oid_suffix`, and writes the ASCII string
-  // representation of the full trust anchor ID to `out`.
-  bool WriteTaiAscii(CBB *out, Span<const uint64_t> oid_suffix = {}) const {
-    // Trust anchor IDs are constrained to 256 bytes by spec (and are typically
-    // much shorter).
-    uint8_t id[256];
-    CBB id_cbb;
-    if (!CBB_init_fixed(&id_cbb, id, sizeof(id)) ||
-        !CBB_add_bytes(&id_cbb, ca_id_enc_oid_.data(), ca_id_enc_oid_.size())) {
-      return false;
-    }
-    for (const uint64_t component : oid_suffix) {
-      if (!CBB_add_asn1_oid_component(&id_cbb, component)) {
-        return false;
-      }
-    }
-    return CBB_add_asn1_relative_oid_from_der_to_text(out, CBB_data(&id_cbb),
-                                                      CBB_len(&id_cbb));
-  }
-
-  // WriteCosignerName writes the `cosigner_name` field for a CosignedMessage (a
-  // prefixed ASCII representation of the CA ID) to `out`.
-  bool WriteCosignerName(CBB *out) const {
-    CBB cosigner_name;
-    return CBB_add_u8_length_prefixed(out, &cosigner_name) &&
-           CBB_add_bytes(&cosigner_name, kASCIIOIDPrefix,
-                         sizeof(kASCIIOIDPrefix)) &&
-           WriteTaiAscii(&cosigner_name) &&  //
-           CBB_flush(out);
-  }
-
-  // WriteLogOrigin writes the `log_origin` field for a CosignedMessage (a
-  // prefixed ASCII representation of the CA's log ID for a given `log_number`)
-  // to `out`.
-  bool WriteLogOrigin(CBB *out, uint64_t log_number) const {
-    const uint64_t log_number_relative_oid[2] = {kEncOIDLogs, log_number};
-    CBB log_origin;
-    return CBB_add_u8_length_prefixed(out, &log_origin) &&
-           CBB_add_bytes(&log_origin, kASCIIOIDPrefix,
-                         sizeof(kASCIIOIDPrefix)) &&
-           WriteTaiAscii(&log_origin, Span(log_number_relative_oid)) &&
-           CBB_flush(out);
-  }
-
-  // The CA ID, which is equal to the CA cosigner's cosigner ID (see sections
-  // 5.1 and 5.4), in the form of a DER-encoded relative OID. This does not
-  // include any framing, only the element's contents.
-  Array<uint8_t> ca_id_enc_oid_;
-  // Log hash algorithm.
-  const EVP_MD *log_hash_ = nullptr;
-  // Public key of the CA cosigner.
-  UniquePtr<EVP_PKEY> cosign_pubkey_;
-  // Signature algorithm for CA cosigner signatures.
-  ScopedX509Algor cosign_sigalg_;
-  // Min and max allowed serial number, (0..2^64-1).
-  uint64_t min_serial_ = 0u;
-  uint64_t max_serial_ = 0u;
-};
-
 }  // namespace
 
-bool x509_is_merkle_tree_ca(const X509 *x509) {
-  return X509_get_ext_by_NID(x509, NID_pe_mtcCertificationAuthority_draft,
-                             -1) >= 0;
-}
-
 bool x509_evaluate_mtc_subtree_inclusion_proof(
     Span<uint8_t> out, const EVP_MD *log_hash,
     Span<const uint8_t> inclusion_proof, uint64_t index,
@@ -337,8 +82,6 @@
   // must not exceed the largest power of 2 that divides the start index.
   const uint64_t subtree_size = subtree_end - subtree_start;
   if (subtree_start != 0 &&
-      // The expression `subtree_start & (~subtree_start + 1)` isolates the
-      // lowest set bit of `subtree_start`.
       subtree_size > (subtree_start & (~subtree_start + 1))) {
     return false;
   }
@@ -387,212 +130,4 @@
   return true;
 }
 
-int x509_verify_mtc(const X509 *x509, const EVP_PKEY *pkey,
-                    const X509 *issuer) {
-  MTCCACosigner issuer_mtc_ca;
-  if (!issuer_mtc_ca.Init(issuer, pkey)) {
-    return 0;
-  }
-
-  auto *impl = FromOpaque(x509);
-  if (!is_mtc_proof(impl->sig_alg.get())) {
-    OPENSSL_PUT_ERROR(X509, X509_R_UNSUPPORTED_ALGORITHM);
-    return 0;
-  }
-  if (X509_ALGOR_cmp(impl->sig_alg.get(), impl->tbs_sig_alg.get())) {
-    OPENSSL_PUT_ERROR(X509, X509_R_SIGNATURE_ALGORITHM_MISMATCH);
-    return 0;
-  }
-
-  if (impl->signature->type == V_ASN1_BIT_STRING &&
-      ASN1_BIT_STRING_unused_bits(impl->signature.get()) != 0) {
-    OPENSSL_PUT_ERROR(X509, X509_R_INVALID_BIT_STRING_BITS_LEFT);
-    return 0;
-  }
-
-  CBS mtc_proof;
-  CBS_init(&mtc_proof, ASN1_STRING_get0_data(impl->signature.get()),
-           ASN1_STRING_length(impl->signature.get()));
-
-  CBS extensions, inclusion_proof, signatures;
-  uint64_t subtree_start, subtree_end;
-  if (!CBS_get_u16_length_prefixed(&mtc_proof, &extensions) ||
-      !CBS_get_u48(&mtc_proof, &subtree_start) ||
-      !CBS_get_u48(&mtc_proof, &subtree_end) ||
-      !CBS_get_u16_length_prefixed(&mtc_proof, &inclusion_proof) ||
-      !CBS_get_u16_length_prefixed(&mtc_proof, &signatures) ||
-      CBS_len(&mtc_proof) != 0) {
-    OPENSSL_PUT_ERROR(ASN1, ASN1_R_DECODE_ERROR);
-    return 0;
-  }
-
-  // Iterate through the subtree signatures array to check that they conform to
-  // spec, and identify the subtree signature from the CA cosigner.
-  CBS cosigner_id, signature;
-  std::optional<Span<const uint8_t>> prev_cosigner_id;
-  std::optional<Span<const uint8_t>> ca_cosignature;
-  while (CBS_len(&signatures) > 0) {
-    if (!CBS_get_u8_length_prefixed(&signatures, &cosigner_id) ||
-        CBS_len(&cosigner_id) == 0 ||
-        !CBS_get_u16_length_prefixed(&signatures, &signature) ||
-        CBS_len(&signature) == 0) {
-      OPENSSL_PUT_ERROR(ASN1, ASN1_R_DECODE_ERROR);
-      return 0;
-    }
-    Span<const uint8_t> cosigner_id_span = cosigner_id;
-    // Cosignatures must be ordered by increasing cosigner ID length
-    // (lexicographical order if same length), and must not contain duplicate
-    // cosigner IDs.
-    if (prev_cosigner_id.has_value()) {
-      if (prev_cosigner_id->size() > cosigner_id_span.size()) {
-        OPENSSL_PUT_ERROR(X509, X509_R_INVALID_MTC_PROOF);
-        return 0;
-      }
-      if (prev_cosigner_id->size() == cosigner_id_span.size() &&
-          !std::lexicographical_compare(
-              prev_cosigner_id->begin(), prev_cosigner_id->end(),
-              cosigner_id_span.begin(), cosigner_id_span.end())) {
-        OPENSSL_PUT_ERROR(X509, X509_R_INVALID_MTC_PROOF);
-        return 0;
-      }
-    }
-    prev_cosigner_id = cosigner_id_span;
-    if (issuer_mtc_ca.IsCACosigner(cosigner_id_span)) {
-      ca_cosignature = signature;
-    }
-  }
-  if (!ca_cosignature.has_value()) {
-    OPENSSL_PUT_ERROR(X509, X509_R_INVALID_MTC_PROOF);
-    return 0;
-  }
-
-  CBS tbs_seq, tbs;
-  Array<uint8_t> tbs_scratch;
-  if (!x509_get_or_marshal_tbs_cert(&tbs_seq, &tbs_scratch, x509) ||
-      !CBS_get_asn1(&tbs_seq, &tbs, CBS_ASN1_SEQUENCE)) {
-    OPENSSL_PUT_ERROR(ASN1, ASN1_R_DECODE_ERROR);
-    return 0;
-  }
-
-  CBS version_field;
-  if (CBS_peek_asn1_tag(&tbs, kTBSVersionTag)) {
-    if (!CBS_get_asn1_element(&tbs, &version_field, kTBSVersionTag)) {
-      OPENSSL_PUT_ERROR(ASN1, ASN1_R_DECODE_ERROR);
-      return 0;
-    }
-  } else {
-    CBS_init(&version_field, nullptr, 0);
-  }
-
-  // Check serial number is well-formed and within CA's range. (Caller is
-  // responsible for checking serial number against other revoked ranges.)
-  uint64_t serial;
-  if (!CBS_get_asn1_uint64(&tbs, &serial)) {
-    OPENSSL_PUT_ERROR(ASN1, ASN1_R_DECODE_ERROR);
-    return 0;
-  }
-  if (!issuer_mtc_ca.IsSerialInRange(serial)) {
-    OPENSSL_PUT_ERROR(X509, X509_R_INVALID_PARAMETER);
-    return 0;
-  }
-  // `index` is the least significant 48 bits of `serial`.
-  uint64_t index = serial & ((uint64_t{1} << 48) - 1);
-  uint64_t log_number = serial >> 48;
-  if (log_number == 0) {
-    OPENSSL_PUT_ERROR(X509, X509_R_INVALID_PARAMETER);
-    return 0;
-  }
-
-  // The TBSCertificate's `signature` field must match the expected MTC
-  // signature algorithm identifier.
-  CBS tbs_sigalg;
-  if (!CBS_get_asn1_element(&tbs, &tbs_sigalg, CBS_ASN1_SEQUENCE) ||
-      !CBS_mem_equal(&tbs_sigalg, kMTCAlgorithmIdentifier,
-                     sizeof(kMTCAlgorithmIdentifier))) {
-    OPENSSL_PUT_ERROR(X509, X509_R_SIGNATURE_ALGORITHM_MISMATCH);
-    return 0;
-  }
-
-  // Compute `entry_hash` in a single pass without storing the full
-  // TBSCertificateLogEntry or MTCLogEntry.
-  ScopedEVP_MD_CTX entry_hash_ctx;
-  if (!EVP_DigestInit_ex(entry_hash_ctx.get(), issuer_mtc_ca.log_hash(),
-                         nullptr) ||
-      !EVP_DigestUpdate(entry_hash_ctx.get(), kMTCLeafDomainSeparator,
-                        sizeof(kMTCLeafDomainSeparator)) ||
-      // MTCLogEntry `extensions` field (comes directly from the MTCProof).
-      !DigestUpdateWithU16LengthPrefix(entry_hash_ctx.get(), extensions) ||
-      // MTCLogEntryType enum value for a tbs_cert_entry.
-      !EVP_DigestUpdate(entry_hash_ctx.get(), kMTCLogEntryTypeTBSCertEntry,
-                        sizeof(kMTCLogEntryTypeTBSCertEntry)) ||
-      // Contents of TBSCertificateLogEntry follow (excluding the initial
-      // identifier and length octets):
-      !EVP_DigestUpdate(entry_hash_ctx.get(), CBS_data(&version_field),
-                        CBS_len(&version_field)) ||
-      !DigestUpdateNextASN1Element(entry_hash_ctx.get(), &tbs) ||  // issuer
-      !DigestUpdateNextASN1Element(entry_hash_ctx.get(), &tbs) ||  // validity
-      !DigestUpdateNextASN1Element(entry_hash_ctx.get(), &tbs)) {  // subject
-    OPENSSL_PUT_ERROR(X509, ERR_R_INTERNAL_ERROR);
-    return 0;
-  }
-
-  // Hash the TBSCertificate's `subjectPublicKeyInfo` field.
-  CBS spki;
-  if (!CBS_get_asn1_element(&tbs, &spki, CBS_ASN1_SEQUENCE)) {
-    OPENSSL_PUT_ERROR(ASN1, ASN1_R_DECODE_ERROR);
-    return 0;
-  }
-  uint8_t spki_digest[EVP_MAX_MD_SIZE];
-  unsigned int spki_digest_len;
-  if (!EVP_Digest(CBS_data(&spki), CBS_len(&spki), spki_digest,
-                  &spki_digest_len, issuer_mtc_ca.log_hash(), nullptr) ||
-      spki_digest_len == 0 || spki_digest_len > 0xff) {
-    OPENSSL_PUT_ERROR(X509, ERR_R_INTERNAL_ERROR);
-    return 0;
-  }
-
-  // Add the AlgorithmIdentifier from the subjectPublicKeyInfo.
-  CBS spki_contents;
-  if (!CBS_get_asn1(&spki, &spki_contents, CBS_ASN1_SEQUENCE)) {
-    OPENSSL_PUT_ERROR(ASN1, ASN1_R_DECODE_ERROR);
-    return 0;
-  }
-  if (!DigestUpdateNextASN1Element(entry_hash_ctx.get(), &spki_contents) ||
-      //`subjectPublicKeyInfoHash` field.
-      !EVP_DigestUpdate(entry_hash_ctx.get(), &kEncodedOctetStringTag,
-                        sizeof(kEncodedOctetStringTag)) ||
-      !DigestUpdateWithU8LengthPrefix(entry_hash_ctx.get(),
-                                      Span(spki_digest, spki_digest_len)) ||
-      // Write the remainder of the TBSCertificate contents octets to the hash.
-      // This includes the optional fields `issuerUniqueID`, `subjectUniqueID`,
-      // and `extensions`.
-      !EVP_DigestUpdate(entry_hash_ctx.get(), CBS_data(&tbs), CBS_len(&tbs))) {
-    OPENSSL_PUT_ERROR(X509, ERR_R_INTERNAL_ERROR);
-    return 0;
-  }
-
-  uint8_t entry_hash[EVP_MAX_MD_SIZE];
-  unsigned entry_hash_len;
-  if (!EVP_DigestFinal_ex(entry_hash_ctx.get(), entry_hash, &entry_hash_len)) {
-    OPENSSL_PUT_ERROR(X509, ERR_R_INTERNAL_ERROR);
-    return 0;
-  }
-
-  InplaceVector<uint8_t, EVP_MAX_MD_SIZE> expected_subtree_hash;
-  expected_subtree_hash.ResizeForOverwrite(
-      EVP_MD_size(issuer_mtc_ca.log_hash()));
-
-  if (!x509_evaluate_mtc_subtree_inclusion_proof(
-          Span(expected_subtree_hash), issuer_mtc_ca.log_hash(),
-          inclusion_proof, index, Span(entry_hash, entry_hash_len),
-          subtree_start, subtree_end)) {
-    OPENSSL_PUT_ERROR(X509, X509_R_INVALID_MTC_PROOF);
-    return 0;
-  }
-
-  return issuer_mtc_ca.VerifyCACosignature(ca_cosignature.value(), log_number,
-                                           subtree_start, subtree_end,
-                                           Span(expected_subtree_hash));
-}
-
 BSSL_NAMESPACE_END
diff --git a/crypto/x509/x509_test.cc b/crypto/x509/x509_test.cc
index cad7ce3..c126f14 100644
--- a/crypto/x509/x509_test.cc
+++ b/crypto/x509/x509_test.cc
@@ -1368,17 +1368,13 @@
   return stack;
 }
 
-// Timestamp to use with X509VerifyMTCTest.
-static const int64_t kVerifyMtcReferenceTime = 1735689600 /* Jan 1st, 2025 */;
-// Timestamp that works with the rest of the tests.
 static const int64_t kReferenceTime = 1474934400 /* Sep 27th, 2016 */;
 
 static int Verify(
     X509 *leaf, const std::vector<X509 *> &roots,
     const std::vector<X509 *> &intermediates,
     const std::vector<X509_CRL *> &crls, unsigned long flags = 0,
-    std::function<void(X509_STORE_CTX *)> configure_callback = nullptr,
-    int64_t time_posix = kReferenceTime) {
+    std::function<void(X509_STORE_CTX *)> configure_callback = nullptr) {
   UniquePtr<STACK_OF(X509)> roots_stack(CertsToStack(roots));
   UniquePtr<STACK_OF(X509)> intermediates_stack(CertsToStack(intermediates));
   UniquePtr<STACK_OF(X509_CRL)> crls_stack(CRLsToStack(crls));
@@ -1405,7 +1401,7 @@
   X509_STORE_CTX_set0_crls(ctx.get(), crls_stack.get());
 
   X509_VERIFY_PARAM *param = X509_STORE_CTX_get0_param(ctx.get());
-  X509_VERIFY_PARAM_set_time_posix(param, time_posix);
+  X509_VERIFY_PARAM_set_time_posix(param, kReferenceTime);
   if (configure_callback) {
     configure_callback(ctx.get());
   }
@@ -11392,278 +11388,5 @@
 
 #endif  // !defined (BORINGSSL_SHARED_LIBRARY)
 
-// Tests for verifying Merkle Tree Certificates. Test data was obtained by
-// running the demo tool github.com/ietf-plants-wg/merkle-tree-certs/demo
-// at revision dde56cb97fdd7ad074929c1629734eb6d2b38d5c with the custom config
-// at crypto/x509/test/mtc/mtc_testdata_config.json.
-class X509VerifyMTCTest : public ::testing::Test {
- public:
-  X509VerifyMTCTest() = default;
-
-  void SetUp() override {
-    mtc_ca_cert_ = CertFromPEM(GetTestData("crypto/x509/test/mtc/ca_cert.pem"));
-    ASSERT_TRUE(mtc_ca_cert_);
-
-    mtc_10_subtree_8_11_ =
-        CertFromPEM(GetTestData("crypto/x509/test/mtc/cert_10_0.pem"));
-    ASSERT_TRUE(mtc_10_subtree_8_11_);
-    mtc_10_subtree_8_16_ =
-        CertFromPEM(GetTestData("crypto/x509/test/mtc/cert_10_1.pem"));
-    ASSERT_TRUE(mtc_10_subtree_8_16_);
-
-    mtc_32_subtree_32_34_ =
-        CertFromPEM(GetTestData("crypto/x509/test/mtc/cert_32_0.pem"));
-    ASSERT_TRUE(mtc_32_subtree_32_34_);
-
-    mtc_33_subtree_32_34_ =
-        CertFromPEM(GetTestData("crypto/x509/test/mtc/cert_33_0.pem"));
-    ASSERT_TRUE(mtc_33_subtree_32_34_);
-    mtc_33_subtree_32_64_ =
-        CertFromPEM(GetTestData("crypto/x509/test/mtc/cert_33_1.pem"));
-    ASSERT_TRUE(mtc_33_subtree_32_64_);
-
-    mtc_2034_subtree_1024_2036_ =
-        CertFromPEM(GetTestData("crypto/x509/test/mtc/cert_2034_0.pem"));
-    ASSERT_TRUE(mtc_2034_subtree_1024_2036_);
-
-    mtc_2035_subtree_1024_2036_ =
-        CertFromPEM(GetTestData("crypto/x509/test/mtc/cert_2035_0.pem"));
-    ASSERT_TRUE(mtc_2035_subtree_1024_2036_);
-  }
-
-  std::vector<X509 *> GetValidTestMTCs() const {
-    return {
-        mtc_10_subtree_8_11_.get(),        mtc_10_subtree_8_16_.get(),
-        mtc_32_subtree_32_34_.get(),       mtc_33_subtree_32_34_.get(),
-        mtc_33_subtree_32_64_.get(),       mtc_2034_subtree_1024_2036_.get(),
-        mtc_2035_subtree_1024_2036_.get(),
-    };
-  }
-
-  int VerifyMTC(X509 *mtc,
-                unsigned long flags = X509_V_FLAG_USE_MTC_DRAFT_PLANTS_05,
-                X509 *mtc_ca = nullptr) {
-    if (!mtc_ca) {
-      mtc_ca = mtc_ca_cert_.get();
-    }
-    return Verify(
-        mtc, /*roots=*/{mtc_ca}, /*intermediates=*/{},
-        /*crls=*/{},
-        /*flags=*/flags,
-        /*configure_callback=*/
-        [mtc_ca](X509_STORE_CTX *ctx) {
-          ASSERT_TRUE(X509_STORE_CTX_set_trust(ctx, X509_TRUST_SSL_SERVER));
-          ASSERT_TRUE(
-              X509_add1_trust_object(mtc_ca, OBJ_nid2obj(NID_server_auth)));
-        },
-        /*time_posix=*/kVerifyMtcReferenceTime);
-  }
-
- protected:
-  UniquePtr<X509> mtc_ca_cert_;
-  UniquePtr<X509> mtc_10_subtree_8_11_;
-  UniquePtr<X509> mtc_10_subtree_8_16_;
-  UniquePtr<X509> mtc_32_subtree_32_34_;
-  UniquePtr<X509> mtc_33_subtree_32_34_;
-  UniquePtr<X509> mtc_33_subtree_32_64_;
-  UniquePtr<X509> mtc_2034_subtree_1024_2036_;
-  UniquePtr<X509> mtc_2035_subtree_1024_2036_;
-};
-
-TEST_F(X509VerifyMTCTest, VerifyMTC) {
-  for (X509 *mtc : GetValidTestMTCs()) {
-    EXPECT_EQ(X509_V_OK,
-              VerifyMTC(mtc, /*flags=*/X509_V_FLAG_USE_MTC_DRAFT_PLANTS_05));
-
-    // The flag is required to enable MTC verification.
-    EXPECT_EQ(X509_V_ERR_CERT_SIGNATURE_FAILURE, VerifyMTC(mtc, /*flags=*/0));
-    EXPECT_TRUE(ErrorEquals(ERR_get_error(), ERR_LIB_ASN1,
-                            ASN1_R_UNKNOWN_SIGNATURE_ALGORITHM));
-    ERR_clear_error();
-
-    // X509_verify does not work directly on MTCs.
-    EXPECT_EQ(X509_verify(mtc, X509_get0_pubkey(mtc_ca_cert_.get())), 0);
-    EXPECT_TRUE(ErrorEquals(ERR_get_error(), ERR_LIB_ASN1,
-                            ASN1_R_UNKNOWN_SIGNATURE_ALGORITHM));
-    ERR_clear_error();
-  }
-}
-
-TEST_F(X509VerifyMTCTest, InvalidBitFlipProof) {
-  // This cert has an inclusion proof with a bitflip that still has the right
-  // form to be processed, but fails the signature check because the
-  // CosignedMessage will be incorrect.
-  UniquePtr<X509> mtc_33_bitflip_proof =
-      CertFromPEM(GetTestData("crypto/x509/test/mtc/cert_33_2.pem"));
-  ASSERT_TRUE(mtc_33_bitflip_proof);
-  EXPECT_EQ(X509_V_ERR_CERT_SIGNATURE_FAILURE,
-            VerifyMTC(mtc_33_bitflip_proof.get()));
-}
-
-TEST_F(X509VerifyMTCTest, InvalidUnusedBit) {
-  // This cert erroneously encodes the last bit in the signatureValue as unused,
-  // making it a non-whole number of bytes.
-  UniquePtr<X509> mtc_33_unused_bit =
-      CertFromPEM(GetTestData("crypto/x509/test/mtc/cert_33_3.pem"));
-  ASSERT_TRUE(mtc_33_unused_bit);
-  EXPECT_EQ(X509_V_ERR_CERT_SIGNATURE_FAILURE,
-            VerifyMTC(mtc_33_unused_bit.get()));
-  EXPECT_TRUE(ErrorEquals(ERR_get_error(), ERR_LIB_X509,
-                          X509_R_INVALID_BIT_STRING_BITS_LEFT));
-}
-
-TEST_F(X509VerifyMTCTest, InvalidCosignaturesArray) {
-  UniquePtr<X509> mtc_33_no_ca_cosignature =
-      CertFromPEM(GetTestData("crypto/x509/test/mtc/cert_33_4.pem"));
-  ASSERT_TRUE(mtc_33_no_ca_cosignature);
-  EXPECT_EQ(X509_V_ERR_CERT_SIGNATURE_FAILURE,
-            VerifyMTC(mtc_33_no_ca_cosignature.get()));
-  EXPECT_TRUE(
-      ErrorEquals(ERR_get_error(), ERR_LIB_X509, X509_R_INVALID_MTC_PROOF));
-  ERR_clear_error();
-
-  UniquePtr<X509> mtc_33_cosignatures_misordered =
-      CertFromPEM(GetTestData("crypto/x509/test/mtc/cert_33_5.pem"));
-  ASSERT_TRUE(mtc_33_cosignatures_misordered);
-  EXPECT_EQ(X509_V_ERR_CERT_SIGNATURE_FAILURE,
-            VerifyMTC(mtc_33_cosignatures_misordered.get()));
-  EXPECT_TRUE(
-      ErrorEquals(ERR_get_error(), ERR_LIB_X509, X509_R_INVALID_MTC_PROOF));
-  ERR_clear_error();
-
-  UniquePtr<X509> mtc_33_duplicate_ca_cosignatures =
-      CertFromPEM(GetTestData("crypto/x509/test/mtc/cert_33_6.pem"));
-  ASSERT_TRUE(mtc_33_duplicate_ca_cosignatures);
-  EXPECT_EQ(X509_V_ERR_CERT_SIGNATURE_FAILURE,
-            VerifyMTC(mtc_33_duplicate_ca_cosignatures.get()));
-  EXPECT_TRUE(
-      ErrorEquals(ERR_get_error(), ERR_LIB_X509, X509_R_INVALID_MTC_PROOF));
-  ERR_clear_error();
-
-  UniquePtr<X509> mtc_33_duplicate_non_ca_cosignatures =
-      CertFromPEM(GetTestData("crypto/x509/test/mtc/cert_33_7.pem"));
-  ASSERT_TRUE(mtc_33_duplicate_non_ca_cosignatures);
-  EXPECT_EQ(X509_V_ERR_CERT_SIGNATURE_FAILURE,
-            VerifyMTC(mtc_33_duplicate_non_ca_cosignatures.get()));
-  EXPECT_TRUE(
-      ErrorEquals(ERR_get_error(), ERR_LIB_X509, X509_R_INVALID_MTC_PROOF));
-  ERR_clear_error();
-}
-
-TEST_F(X509VerifyMTCTest, InvalidSerial) {
-  // The test CA's min serial is: {"Log": 1, "Index": 8}
-  uint64_t serial_below_min = (uint64_t{1} << 48) | 3;
-  // The test CA's max serial is: {"Log": 5, "Index": 281474976710655}
-  uint64_t serial_above_max = (uint64_t{6} << 48) | 33;
-
-  for (uint64_t out_of_range_serial : {serial_below_min, serial_above_max}) {
-    SCOPED_TRACE(out_of_range_serial);
-    UniquePtr<X509> mtc_invalid_serial(
-        CertFromPEM(GetTestData("crypto/x509/test/mtc/cert_33_0.pem")));
-    ASSERT_TRUE(mtc_invalid_serial);
-    UniquePtr<ASN1_INTEGER> serial(ASN1_INTEGER_new());
-    ASSERT_TRUE(serial);
-    ASSERT_TRUE(ASN1_INTEGER_set_uint64(serial.get(), out_of_range_serial));
-    ASSERT_TRUE(X509_set_serialNumber(mtc_invalid_serial.get(), serial.get()));
-
-    // Invalidate the cached encoding because we modified a field.
-    ASSERT_TRUE(i2d_re_X509_tbs(mtc_invalid_serial.get(), nullptr));
-
-    EXPECT_EQ(X509_V_ERR_CERT_SIGNATURE_FAILURE,
-              VerifyMTC(mtc_invalid_serial.get()));
-    EXPECT_TRUE(
-        ErrorEquals(ERR_get_error(), ERR_LIB_X509, X509_R_INVALID_PARAMETER));
-  }
-}
-
-TEST_F(X509VerifyMTCTest, MismatchedSignatureAlgorithm) {
-  UniquePtr<X509> mtc_algor_mismatch(
-      CertFromPEM(GetTestData("crypto/x509/test/mtc/cert_33_0.pem")));
-  ASSERT_TRUE(mtc_algor_mismatch);
-
-  // Modify tbs_sig_alg to mismatch with sig_alg.
-  X509Impl *impl = bssl::FromOpaque(mtc_algor_mismatch.get());
-  ASN1_OBJECT *obj = OBJ_nid2obj(NID_ML_DSA_44);
-  ASSERT_TRUE(
-      X509_ALGOR_set0(impl->tbs_sig_alg.get(), obj, V_ASN1_UNDEF, nullptr));
-
-  // Invalidate the cached encoding because we modified a field.
-  ASSERT_TRUE(i2d_re_X509_tbs(mtc_algor_mismatch.get(), nullptr));
-
-  EXPECT_EQ(X509_V_ERR_CERT_SIGNATURE_FAILURE,
-            VerifyMTC(mtc_algor_mismatch.get()));
-  EXPECT_TRUE(ErrorEquals(ERR_get_error(), ERR_LIB_X509,
-                          X509_R_SIGNATURE_ALGORITHM_MISMATCH));
-}
-
-// If the CA lacks the MTCCertificationAuthority extension, it is treated as a
-// standard CA and fails because standard verification does not support MTCs.
-TEST_F(X509VerifyMTCTest, InvalidMTCCANoExtension) {
-  UniquePtr<X509> bad_ca(X509_dup(mtc_ca_cert_.get()));
-  ASSERT_TRUE(bad_ca);
-  int ext_index = X509_get_ext_by_NID(
-      bad_ca.get(), NID_pe_mtcCertificationAuthority_draft, -1);
-  ASSERT_GE(ext_index, 0);
-  UniquePtr<X509_EXTENSION> ext(X509_delete_ext(bad_ca.get(), ext_index));
-  ASSERT_TRUE(ext);
-
-  EXPECT_EQ(X509_V_ERR_CERT_SIGNATURE_FAILURE,
-            VerifyMTC(mtc_10_subtree_8_11_.get(),
-                      /*flags=*/X509_V_FLAG_USE_MTC_DRAFT_PLANTS_05,
-                      /*mtc_ca=*/bad_ca.get()));
-  EXPECT_TRUE(ErrorEquals(ERR_get_error(), ERR_LIB_ASN1,
-                          ASN1_R_UNKNOWN_SIGNATURE_ALGORITHM));
-}
-
-// If the CA's MTCCertificationAuthority extension is not marked critical,
-// it is not recognized as an MTC CA (per draft-ietf-plants-merkle-tree-certs
-// section 5.5). MTC verification is attempted and fails.
-TEST_F(X509VerifyMTCTest, InvalidMTCCAExtensionNotCritical) {
-  UniquePtr<X509> bad_ca_non_critical(X509_dup(mtc_ca_cert_.get()));
-  ASSERT_TRUE(bad_ca_non_critical);
-  int ext_index = X509_get_ext_by_NID(
-      bad_ca_non_critical.get(), NID_pe_mtcCertificationAuthority_draft, -1);
-  ASSERT_GE(ext_index, 0);
-  X509_EXTENSION *ext = X509_get_ext(bad_ca_non_critical.get(), ext_index);
-  ASSERT_TRUE(ext);
-  ASSERT_TRUE(X509_EXTENSION_set_critical(ext, /*crit=*/0));
-
-  EXPECT_EQ(X509_V_ERR_CERT_SIGNATURE_FAILURE,
-            VerifyMTC(mtc_10_subtree_8_11_.get(),
-                      /*flags=*/X509_V_FLAG_USE_MTC_DRAFT_PLANTS_05,
-                      /*mtc_ca=*/bad_ca_non_critical.get()));
-  EXPECT_TRUE(
-      ErrorEquals(ERR_get_error(), ERR_LIB_X509, X509_R_INVALID_MTC_CA));
-}
-
-// If the CA has the MTCCertificationAuthority extension but an invalid
-// subject name (e.g. missing trust anchor ID), MTC CA initialization fails.
-TEST_F(X509VerifyMTCTest, InvalidMTCCABadSubject) {
-  UniquePtr<X509> bad_ca_no_trust_anchor(X509_dup(mtc_ca_cert_.get()));
-  ASSERT_TRUE(bad_ca_no_trust_anchor);
-
-  X509_NAME *subject = X509_get_subject_name(bad_ca_no_trust_anchor.get());
-  int name_index =
-      X509_NAME_get_index_by_NID(subject, NID_rdna_trustAnchorID_draft, -1);
-  ASSERT_GE(name_index, 0);
-  UniquePtr<X509_NAME_ENTRY> entry(X509_NAME_delete_entry(subject, name_index));
-  ASSERT_TRUE(entry);
-  ASSERT_TRUE(X509_NAME_add_entry_by_txt(
-      subject, "CN", MBSTRING_ASC, reinterpret_cast<const uint8_t *>("Bad CA"),
-      -1, -1, 0));
-
-  // Make the leaf cert match.
-  UniquePtr<X509> mtc(X509_dup(mtc_10_subtree_8_11_.get()));
-  ASSERT_TRUE(mtc);
-  ASSERT_TRUE(X509_set_issuer_name(mtc.get(), subject));
-
-  EXPECT_EQ(X509_V_ERR_CERT_SIGNATURE_FAILURE,
-            VerifyMTC(mtc.get(),
-                      /*flags=*/X509_V_FLAG_USE_MTC_DRAFT_PLANTS_05,
-                      /*mtc_ca=*/bad_ca_no_trust_anchor.get()));
-  EXPECT_TRUE(
-      ErrorEquals(ERR_get_error(), ERR_LIB_X509, X509_R_INVALID_MTC_CA));
-}
-
 }  // namespace
 BSSL_NAMESPACE_END
diff --git a/crypto/x509/x509_vfy.cc b/crypto/x509/x509_vfy.cc
index eef00b5..2b071bc 100644
--- a/crypto/x509/x509_vfy.cc
+++ b/crypto/x509/x509_vfy.cc
@@ -1243,18 +1243,6 @@
   return 1;
 }
 
-static int verify_signature(X509_STORE_CTX *ctx, const X509 *x509,
-                            const X509 *issuer, EVP_PKEY *pkey) {
-  int ret;
-  if ((ctx->param->flags & X509_V_FLAG_USE_MTC_DRAFT_PLANTS_05) &&
-      x509_is_merkle_tree_ca(issuer)) {
-    ret = x509_verify_mtc(x509, pkey, issuer);
-  } else {
-    ret = X509_verify(x509, pkey);
-  }
-  return ret ? X509_V_OK : X509_V_ERR_CERT_SIGNATURE_FAILURE;
-}
-
 static int internal_verify(X509_STORE_CTX *ctx) {
   // TODO(davidben): This logic is incredibly confusing. Rewrite this:
   //
@@ -1301,9 +1289,8 @@
         if (!call_verify_cb(0, ctx)) {
           return 0;
         }
-      } else if (int err = verify_signature(ctx, xs, xi, pkey);
-                 err != X509_V_OK) {
-        ctx->error = err;
+      } else if (X509_verify(xs, pkey) <= 0) {
+        ctx->error = X509_V_ERR_CERT_SIGNATURE_FAILURE;
         ctx->current_cert = xs;
         if (!call_verify_cb(0, ctx)) {
           return 0;
diff --git a/gen/crypto/err_data.cc b/gen/crypto/err_data.cc
index 954eb30..006aa94 100644
--- a/gen/crypto/err_data.cc
+++ b/gen/crypto/err_data.cc
@@ -218,41 +218,39 @@
     0x2c36833a,
     0x2c373597,
     0x2c37b5c3,
-    0x2c383622,
-    0x2c38b639,
-    0x2c393657,
-    0x2c39b667,
-    0x2c3a3679,
-    0x2c3ab68d,
-    0x2c3b369e,
-    0x2c3bb6bd,
+    0x2c383601,
+    0x2c38b618,
+    0x2c393636,
+    0x2c39b646,
+    0x2c3a3658,
+    0x2c3ab66c,
+    0x2c3b367d,
+    0x2c3bb69c,
     0x2c3c1455,
     0x2c3c946b,
-    0x2c3d3702,
+    0x2c3d36e1,
     0x2c3d9484,
-    0x2c3e372c,
-    0x2c3eb73a,
-    0x2c3f3752,
-    0x2c3fb76a,
-    0x2c403794,
+    0x2c3e370b,
+    0x2c3eb719,
+    0x2c3f3731,
+    0x2c3fb749,
+    0x2c403773,
     0x2c409330,
-    0x2c4137a5,
-    0x2c41b7b8,
+    0x2c413784,
+    0x2c41b797,
     0x2c4212f6,
-    0x2c42b7c9,
+    0x2c42b7a8,
     0x2c43076d,
-    0x2c43b6af,
-    0x2c4435f7,
-    0x2c44b777,
+    0x2c43b68e,
+    0x2c4435d6,
+    0x2c44b756,
     0x2c45356d,
     0x2c45b5a9,
-    0x2c463647,
-    0x2c46b6d1,
-    0x2c4736e6,
-    0x2c47b71f,
-    0x2c483609,
-    0x2c48b5d6,
-    0x2c4935e5,
+    0x2c463626,
+    0x2c46b6b0,
+    0x2c4736c5,
+    0x2c47b6fe,
+    0x2c4835e8,
     0x30320000,
     0x30328015,
     0x3033001f,
@@ -716,71 +714,71 @@
     0x4c41954d,
     0x4c4216b6,
     0x4c429495,
-    0x503237db,
-    0x5032b7ea,
-    0x503337f5,
-    0x5033b805,
-    0x5034381e,
-    0x5034b838,
-    0x50353846,
-    0x5035b85c,
-    0x5036386e,
-    0x5036b884,
-    0x5037389d,
-    0x5037b8b0,
-    0x503838c8,
-    0x5038b8d9,
-    0x503938ee,
-    0x5039b902,
-    0x503a3922,
-    0x503ab938,
-    0x503b3950,
-    0x503bb962,
-    0x503c397e,
-    0x503cb995,
-    0x503d39ae,
-    0x503db9c4,
-    0x503e39d1,
-    0x503eb9e7,
-    0x503f39f9,
+    0x503237ba,
+    0x5032b7c9,
+    0x503337d4,
+    0x5033b7e4,
+    0x503437fd,
+    0x5034b817,
+    0x50353825,
+    0x5035b83b,
+    0x5036384d,
+    0x5036b863,
+    0x5037387c,
+    0x5037b88f,
+    0x503838a7,
+    0x5038b8b8,
+    0x503938cd,
+    0x5039b8e1,
+    0x503a3901,
+    0x503ab917,
+    0x503b392f,
+    0x503bb941,
+    0x503c395d,
+    0x503cb974,
+    0x503d398d,
+    0x503db9a3,
+    0x503e39b0,
+    0x503eb9c6,
+    0x503f39d8,
     0x503f83b3,
-    0x50403a0c,
-    0x5040ba1c,
-    0x50413a36,
-    0x5041ba45,
-    0x50423a5f,
-    0x5042ba7c,
-    0x50433a8c,
-    0x5043ba9c,
-    0x50443ab9,
+    0x504039eb,
+    0x5040b9fb,
+    0x50413a15,
+    0x5041ba24,
+    0x50423a3e,
+    0x5042ba5b,
+    0x50433a6b,
+    0x5043ba7b,
+    0x50443a98,
     0x50448469,
-    0x50453acd,
-    0x5045baeb,
-    0x50463afe,
-    0x5046bb14,
-    0x50473b26,
-    0x5047bb3b,
-    0x50483b61,
-    0x5048bb6f,
-    0x50493b82,
-    0x5049bb97,
-    0x504a3bad,
-    0x504abbbd,
-    0x504b3bdd,
-    0x504bbbf0,
-    0x504c3c13,
-    0x504cbc41,
-    0x504d3c6e,
-    0x504dbc8b,
-    0x504e3ca6,
-    0x504ebcc2,
-    0x504f3cd4,
-    0x504fbceb,
-    0x50503cfa,
+    0x50453aac,
+    0x5045baca,
+    0x50463add,
+    0x5046baf3,
+    0x50473b05,
+    0x5047bb1a,
+    0x50483b40,
+    0x5048bb4e,
+    0x50493b61,
+    0x5049bb76,
+    0x504a3b8c,
+    0x504abb9c,
+    0x504b3bbc,
+    0x504bbbcf,
+    0x504c3bf2,
+    0x504cbc20,
+    0x504d3c4d,
+    0x504dbc6a,
+    0x504e3c85,
+    0x504ebca1,
+    0x504f3cb3,
+    0x504fbcca,
+    0x50503cd9,
     0x50508729,
-    0x50513d0d,
-    0x5051baab,
-    0x50523c53,
+    0x50513cec,
+    0x5051ba8a,
+    0x50523c32,
     0x58321011,
     0x68320fd3,
     0x68328d2b,
@@ -1475,8 +1473,6 @@
     "INVALID_DIRECTORY\0"
     "INVALID_FIELD_FOR_VERSION\0"
     "INVALID_FIELD_NAME\0"
-    "INVALID_MTC_CA\0"
-    "INVALID_MTC_PROOF\0"
     "INVALID_PARAMETER\0"
     "INVALID_POLICY_EXTENSION\0"
     "INVALID_PSS_PARAMETERS\0"
diff --git a/gen/sources.bzl b/gen/sources.bzl
index f9bb413..6f82243 100644
--- a/gen/sources.bzl
+++ b/gen/sources.bzl
@@ -999,20 +999,6 @@
     "crypto/x509/test/many_names1.pem",
     "crypto/x509/test/many_names2.pem",
     "crypto/x509/test/many_names3.pem",
-    "crypto/x509/test/mtc/ca_cert.pem",
-    "crypto/x509/test/mtc/cert_10_0.pem",
-    "crypto/x509/test/mtc/cert_10_1.pem",
-    "crypto/x509/test/mtc/cert_2034_0.pem",
-    "crypto/x509/test/mtc/cert_2035_0.pem",
-    "crypto/x509/test/mtc/cert_32_0.pem",
-    "crypto/x509/test/mtc/cert_33_0.pem",
-    "crypto/x509/test/mtc/cert_33_1.pem",
-    "crypto/x509/test/mtc/cert_33_2.pem",
-    "crypto/x509/test/mtc/cert_33_3.pem",
-    "crypto/x509/test/mtc/cert_33_4.pem",
-    "crypto/x509/test/mtc/cert_33_5.pem",
-    "crypto/x509/test/mtc/cert_33_6.pem",
-    "crypto/x509/test/mtc/cert_33_7.pem",
     "crypto/x509/test/policy_intermediate.pem",
     "crypto/x509/test/policy_intermediate_any.pem",
     "crypto/x509/test/policy_intermediate_duplicate.pem",
diff --git a/gen/sources.cmake b/gen/sources.cmake
index 7a9a642..195d6f3 100644
--- a/gen/sources.cmake
+++ b/gen/sources.cmake
@@ -1031,20 +1031,6 @@
   crypto/x509/test/many_names1.pem
   crypto/x509/test/many_names2.pem
   crypto/x509/test/many_names3.pem
-  crypto/x509/test/mtc/ca_cert.pem
-  crypto/x509/test/mtc/cert_10_0.pem
-  crypto/x509/test/mtc/cert_10_1.pem
-  crypto/x509/test/mtc/cert_2034_0.pem
-  crypto/x509/test/mtc/cert_2035_0.pem
-  crypto/x509/test/mtc/cert_32_0.pem
-  crypto/x509/test/mtc/cert_33_0.pem
-  crypto/x509/test/mtc/cert_33_1.pem
-  crypto/x509/test/mtc/cert_33_2.pem
-  crypto/x509/test/mtc/cert_33_3.pem
-  crypto/x509/test/mtc/cert_33_4.pem
-  crypto/x509/test/mtc/cert_33_5.pem
-  crypto/x509/test/mtc/cert_33_6.pem
-  crypto/x509/test/mtc/cert_33_7.pem
   crypto/x509/test/policy_intermediate.pem
   crypto/x509/test/policy_intermediate_any.pem
   crypto/x509/test/policy_intermediate_duplicate.pem
diff --git a/gen/sources.gni b/gen/sources.gni
index 3e4364f..0dd7a88 100644
--- a/gen/sources.gni
+++ b/gen/sources.gni
@@ -999,20 +999,6 @@
   "crypto/x509/test/many_names1.pem",
   "crypto/x509/test/many_names2.pem",
   "crypto/x509/test/many_names3.pem",
-  "crypto/x509/test/mtc/ca_cert.pem",
-  "crypto/x509/test/mtc/cert_10_0.pem",
-  "crypto/x509/test/mtc/cert_10_1.pem",
-  "crypto/x509/test/mtc/cert_2034_0.pem",
-  "crypto/x509/test/mtc/cert_2035_0.pem",
-  "crypto/x509/test/mtc/cert_32_0.pem",
-  "crypto/x509/test/mtc/cert_33_0.pem",
-  "crypto/x509/test/mtc/cert_33_1.pem",
-  "crypto/x509/test/mtc/cert_33_2.pem",
-  "crypto/x509/test/mtc/cert_33_3.pem",
-  "crypto/x509/test/mtc/cert_33_4.pem",
-  "crypto/x509/test/mtc/cert_33_5.pem",
-  "crypto/x509/test/mtc/cert_33_6.pem",
-  "crypto/x509/test/mtc/cert_33_7.pem",
   "crypto/x509/test/policy_intermediate.pem",
   "crypto/x509/test/policy_intermediate_any.pem",
   "crypto/x509/test/policy_intermediate_duplicate.pem",
diff --git a/gen/sources.json b/gen/sources.json
index 7b4e59e..408cf7f 100644
--- a/gen/sources.json
+++ b/gen/sources.json
@@ -978,20 +978,6 @@
       "crypto/x509/test/many_names1.pem",
       "crypto/x509/test/many_names2.pem",
       "crypto/x509/test/many_names3.pem",
-      "crypto/x509/test/mtc/ca_cert.pem",
-      "crypto/x509/test/mtc/cert_10_0.pem",
-      "crypto/x509/test/mtc/cert_10_1.pem",
-      "crypto/x509/test/mtc/cert_2034_0.pem",
-      "crypto/x509/test/mtc/cert_2035_0.pem",
-      "crypto/x509/test/mtc/cert_32_0.pem",
-      "crypto/x509/test/mtc/cert_33_0.pem",
-      "crypto/x509/test/mtc/cert_33_1.pem",
-      "crypto/x509/test/mtc/cert_33_2.pem",
-      "crypto/x509/test/mtc/cert_33_3.pem",
-      "crypto/x509/test/mtc/cert_33_4.pem",
-      "crypto/x509/test/mtc/cert_33_5.pem",
-      "crypto/x509/test/mtc/cert_33_6.pem",
-      "crypto/x509/test/mtc/cert_33_7.pem",
       "crypto/x509/test/policy_intermediate.pem",
       "crypto/x509/test/policy_intermediate_any.pem",
       "crypto/x509/test/policy_intermediate_duplicate.pem",
diff --git a/gen/sources.mk b/gen/sources.mk
index 33e5216..89b3df1 100644
--- a/gen/sources.mk
+++ b/gen/sources.mk
@@ -984,20 +984,6 @@
   crypto/x509/test/many_names1.pem \
   crypto/x509/test/many_names2.pem \
   crypto/x509/test/many_names3.pem \
-  crypto/x509/test/mtc/ca_cert.pem \
-  crypto/x509/test/mtc/cert_10_0.pem \
-  crypto/x509/test/mtc/cert_10_1.pem \
-  crypto/x509/test/mtc/cert_2034_0.pem \
-  crypto/x509/test/mtc/cert_2035_0.pem \
-  crypto/x509/test/mtc/cert_32_0.pem \
-  crypto/x509/test/mtc/cert_33_0.pem \
-  crypto/x509/test/mtc/cert_33_1.pem \
-  crypto/x509/test/mtc/cert_33_2.pem \
-  crypto/x509/test/mtc/cert_33_3.pem \
-  crypto/x509/test/mtc/cert_33_4.pem \
-  crypto/x509/test/mtc/cert_33_5.pem \
-  crypto/x509/test/mtc/cert_33_6.pem \
-  crypto/x509/test/mtc/cert_33_7.pem \
   crypto/x509/test/policy_intermediate.pem \
   crypto/x509/test/policy_intermediate_any.pem \
   crypto/x509/test/policy_intermediate_duplicate.pem \
diff --git a/include/openssl/nid.h b/include/openssl/nid.h
index 216c066..6b3bb45 100644
--- a/include/openssl/nid.h
+++ b/include/openssl/nid.h
@@ -5511,26 +5511,6 @@
 #define SN_X_Wing "X-Wing"
 #define NID_X_Wing 972
 
-#define SN_alg_mtcProof_draft "alg-mtcProof-draft"
-#define NID_alg_mtcProof_draft 976
-#define OBJ_alg_mtcProof_draft 1L, 3L, 6L, 1L, 4L, 1L, 44363L, 47L, 0L
-#define OBJ_ENC_alg_mtcProof_draft \
-  0x2b, 0x06, 0x01, 0x04, 0x01, 0x82, 0xda, 0x4b, 0x2f, 0x00
-
-#define SN_rdna_trustAnchorID_draft "rdna-trustAnchorID-draft"
-#define NID_rdna_trustAnchorID_draft 977
-#define OBJ_rdna_trustAnchorID_draft 1L, 3L, 6L, 1L, 4L, 1L, 44363L, 47L, 1L
-#define OBJ_ENC_rdna_trustAnchorID_draft \
-  0x2b, 0x06, 0x01, 0x04, 0x01, 0x82, 0xda, 0x4b, 0x2f, 0x01
-
-#define SN_pe_mtcCertificationAuthority_draft \
-  "pe-mtcCertificationAuthority-draft"
-#define NID_pe_mtcCertificationAuthority_draft 978
-#define OBJ_pe_mtcCertificationAuthority_draft \
-  1L, 3L, 6L, 1L, 4L, 1L, 44363L, 47L, 2L
-#define OBJ_ENC_pe_mtcCertificationAuthority_draft \
-  0x2b, 0x06, 0x01, 0x04, 0x01, 0x82, 0xda, 0x4b, 0x2f, 0x02
-
 
 #if defined(__cplusplus)
 } /* extern C */
diff --git a/include/openssl/x509.h b/include/openssl/x509.h
index 0ef08e6..75ada6c 100644
--- a/include/openssl/x509.h
+++ b/include/openssl/x509.h
@@ -3289,9 +3289,6 @@
 // X509_V_FLAG_ALLOW_TIMEZONE_OFFSET allows `notBefore` and `notAfter` fields
 // to contain a time zone offset.
 #define X509_V_FLAG_ALLOW_TIMEZONE_OFFSET 0x1000000
-// X509_V_FLAG_USE_MTC_DRAFT_PLANTS_05 enables the verification of Merkle Tree
-// Certificates as specified in draft-ietf-plants-merkle-tree-certs-05.
-#define X509_V_FLAG_USE_MTC_DRAFT_PLANTS_05 0x400000
 
 // X509_VERIFY_PARAM_set_flags enables all values in `flags` in `param`'s
 // verification flags and returns one. `flags` should be a combination of
@@ -5398,7 +5395,5 @@
 #define X509_R_NO_CERTIFICATE_OR_CRL_FOUND 142
 #define X509_R_NO_CRL_FOUND 143
 #define X509_R_INVALID_POLICY_EXTENSION 144
-#define X509_R_INVALID_MTC_CA 145
-#define X509_R_INVALID_MTC_PROOF 146
 
 #endif  // OPENSSL_HEADER_X509_H