update main-with-bazel from master branch
diff --git a/util/BUILD.toplevel b/BUILD
similarity index 100%
copy from util/BUILD.toplevel
copy to BUILD
diff --git a/BUILD.generated.bzl b/BUILD.generated.bzl
new file mode 100644
index 0000000..317174b
--- /dev/null
+++ b/BUILD.generated.bzl
@@ -0,0 +1,863 @@
+# This file is created by generate_build_files.py. Do not edit manually.
+
+ssl_headers = [
+    "src/include/openssl/dtls1.h",
+    "src/include/openssl/srtp.h",
+    "src/include/openssl/ssl.h",
+    "src/include/openssl/ssl3.h",
+    "src/include/openssl/tls1.h",
+]
+
+fips_fragments = [
+    "src/crypto/fipsmodule/aes/aes.c.inc",
+    "src/crypto/fipsmodule/aes/aes_nohw.c.inc",
+    "src/crypto/fipsmodule/aes/key_wrap.c.inc",
+    "src/crypto/fipsmodule/aes/mode_wrappers.c.inc",
+    "src/crypto/fipsmodule/bn/add.c.inc",
+    "src/crypto/fipsmodule/bn/asm/x86_64-gcc.c.inc",
+    "src/crypto/fipsmodule/bn/bn.c.inc",
+    "src/crypto/fipsmodule/bn/bytes.c.inc",
+    "src/crypto/fipsmodule/bn/cmp.c.inc",
+    "src/crypto/fipsmodule/bn/ctx.c.inc",
+    "src/crypto/fipsmodule/bn/div.c.inc",
+    "src/crypto/fipsmodule/bn/div_extra.c.inc",
+    "src/crypto/fipsmodule/bn/exponentiation.c.inc",
+    "src/crypto/fipsmodule/bn/gcd.c.inc",
+    "src/crypto/fipsmodule/bn/gcd_extra.c.inc",
+    "src/crypto/fipsmodule/bn/generic.c.inc",
+    "src/crypto/fipsmodule/bn/jacobi.c.inc",
+    "src/crypto/fipsmodule/bn/montgomery.c.inc",
+    "src/crypto/fipsmodule/bn/montgomery_inv.c.inc",
+    "src/crypto/fipsmodule/bn/mul.c.inc",
+    "src/crypto/fipsmodule/bn/prime.c.inc",
+    "src/crypto/fipsmodule/bn/random.c.inc",
+    "src/crypto/fipsmodule/bn/rsaz_exp.c.inc",
+    "src/crypto/fipsmodule/bn/shift.c.inc",
+    "src/crypto/fipsmodule/bn/sqrt.c.inc",
+    "src/crypto/fipsmodule/cipher/aead.c.inc",
+    "src/crypto/fipsmodule/cipher/cipher.c.inc",
+    "src/crypto/fipsmodule/cipher/e_aes.c.inc",
+    "src/crypto/fipsmodule/cipher/e_aesccm.c.inc",
+    "src/crypto/fipsmodule/cmac/cmac.c.inc",
+    "src/crypto/fipsmodule/dh/check.c.inc",
+    "src/crypto/fipsmodule/dh/dh.c.inc",
+    "src/crypto/fipsmodule/digest/digest.c.inc",
+    "src/crypto/fipsmodule/digest/digests.c.inc",
+    "src/crypto/fipsmodule/digestsign/digestsign.c.inc",
+    "src/crypto/fipsmodule/ec/ec.c.inc",
+    "src/crypto/fipsmodule/ec/ec_key.c.inc",
+    "src/crypto/fipsmodule/ec/ec_montgomery.c.inc",
+    "src/crypto/fipsmodule/ec/felem.c.inc",
+    "src/crypto/fipsmodule/ec/oct.c.inc",
+    "src/crypto/fipsmodule/ec/p224-64.c.inc",
+    "src/crypto/fipsmodule/ec/p256-nistz.c.inc",
+    "src/crypto/fipsmodule/ec/p256.c.inc",
+    "src/crypto/fipsmodule/ec/scalar.c.inc",
+    "src/crypto/fipsmodule/ec/simple.c.inc",
+    "src/crypto/fipsmodule/ec/simple_mul.c.inc",
+    "src/crypto/fipsmodule/ec/util.c.inc",
+    "src/crypto/fipsmodule/ec/wnaf.c.inc",
+    "src/crypto/fipsmodule/ecdh/ecdh.c.inc",
+    "src/crypto/fipsmodule/ecdsa/ecdsa.c.inc",
+    "src/crypto/fipsmodule/hkdf/hkdf.c.inc",
+    "src/crypto/fipsmodule/hmac/hmac.c.inc",
+    "src/crypto/fipsmodule/modes/cbc.c.inc",
+    "src/crypto/fipsmodule/modes/cfb.c.inc",
+    "src/crypto/fipsmodule/modes/ctr.c.inc",
+    "src/crypto/fipsmodule/modes/gcm.c.inc",
+    "src/crypto/fipsmodule/modes/gcm_nohw.c.inc",
+    "src/crypto/fipsmodule/modes/ofb.c.inc",
+    "src/crypto/fipsmodule/modes/polyval.c.inc",
+    "src/crypto/fipsmodule/rand/ctrdrbg.c.inc",
+    "src/crypto/fipsmodule/rand/rand.c.inc",
+    "src/crypto/fipsmodule/rsa/blinding.c.inc",
+    "src/crypto/fipsmodule/rsa/padding.c.inc",
+    "src/crypto/fipsmodule/rsa/rsa.c.inc",
+    "src/crypto/fipsmodule/rsa/rsa_impl.c.inc",
+    "src/crypto/fipsmodule/self_check/fips.c.inc",
+    "src/crypto/fipsmodule/self_check/self_check.c.inc",
+    "src/crypto/fipsmodule/service_indicator/service_indicator.c.inc",
+    "src/crypto/fipsmodule/sha/sha1.c.inc",
+    "src/crypto/fipsmodule/sha/sha256.c.inc",
+    "src/crypto/fipsmodule/sha/sha512.c.inc",
+    "src/crypto/fipsmodule/tls/kdf.c.inc",
+]
+
+ssl_internal_headers = [
+    "src/ssl/internal.h",
+]
+
+ssl_sources = [
+    "src/ssl/bio_ssl.cc",
+    "src/ssl/d1_both.cc",
+    "src/ssl/d1_lib.cc",
+    "src/ssl/d1_pkt.cc",
+    "src/ssl/d1_srtp.cc",
+    "src/ssl/dtls_method.cc",
+    "src/ssl/dtls_record.cc",
+    "src/ssl/encrypted_client_hello.cc",
+    "src/ssl/extensions.cc",
+    "src/ssl/handoff.cc",
+    "src/ssl/handshake.cc",
+    "src/ssl/handshake_client.cc",
+    "src/ssl/handshake_server.cc",
+    "src/ssl/s3_both.cc",
+    "src/ssl/s3_lib.cc",
+    "src/ssl/s3_pkt.cc",
+    "src/ssl/ssl_aead_ctx.cc",
+    "src/ssl/ssl_asn1.cc",
+    "src/ssl/ssl_buffer.cc",
+    "src/ssl/ssl_cert.cc",
+    "src/ssl/ssl_cipher.cc",
+    "src/ssl/ssl_credential.cc",
+    "src/ssl/ssl_file.cc",
+    "src/ssl/ssl_key_share.cc",
+    "src/ssl/ssl_lib.cc",
+    "src/ssl/ssl_privkey.cc",
+    "src/ssl/ssl_session.cc",
+    "src/ssl/ssl_stat.cc",
+    "src/ssl/ssl_transcript.cc",
+    "src/ssl/ssl_versions.cc",
+    "src/ssl/ssl_x509.cc",
+    "src/ssl/t1_enc.cc",
+    "src/ssl/tls13_both.cc",
+    "src/ssl/tls13_client.cc",
+    "src/ssl/tls13_enc.cc",
+    "src/ssl/tls13_server.cc",
+    "src/ssl/tls_method.cc",
+    "src/ssl/tls_record.cc",
+]
+
+crypto_headers = [
+    "src/include/openssl/aead.h",
+    "src/include/openssl/aes.h",
+    "src/include/openssl/arm_arch.h",
+    "src/include/openssl/asm_base.h",
+    "src/include/openssl/asn1.h",
+    "src/include/openssl/asn1_mac.h",
+    "src/include/openssl/asn1t.h",
+    "src/include/openssl/base.h",
+    "src/include/openssl/base64.h",
+    "src/include/openssl/bcm_public.h",
+    "src/include/openssl/bio.h",
+    "src/include/openssl/blake2.h",
+    "src/include/openssl/blowfish.h",
+    "src/include/openssl/bn.h",
+    "src/include/openssl/buf.h",
+    "src/include/openssl/buffer.h",
+    "src/include/openssl/bytestring.h",
+    "src/include/openssl/cast.h",
+    "src/include/openssl/chacha.h",
+    "src/include/openssl/cipher.h",
+    "src/include/openssl/cmac.h",
+    "src/include/openssl/conf.h",
+    "src/include/openssl/cpu.h",
+    "src/include/openssl/crypto.h",
+    "src/include/openssl/ctrdrbg.h",
+    "src/include/openssl/curve25519.h",
+    "src/include/openssl/des.h",
+    "src/include/openssl/dh.h",
+    "src/include/openssl/digest.h",
+    "src/include/openssl/dsa.h",
+    "src/include/openssl/e_os2.h",
+    "src/include/openssl/ec.h",
+    "src/include/openssl/ec_key.h",
+    "src/include/openssl/ecdh.h",
+    "src/include/openssl/ecdsa.h",
+    "src/include/openssl/engine.h",
+    "src/include/openssl/err.h",
+    "src/include/openssl/evp.h",
+    "src/include/openssl/evp_errors.h",
+    "src/include/openssl/ex_data.h",
+    "src/include/openssl/experimental/dilithium.h",
+    "src/include/openssl/experimental/kyber.h",
+    "src/include/openssl/experimental/spx.h",
+    "src/include/openssl/hkdf.h",
+    "src/include/openssl/hmac.h",
+    "src/include/openssl/hpke.h",
+    "src/include/openssl/hrss.h",
+    "src/include/openssl/is_boringssl.h",
+    "src/include/openssl/kdf.h",
+    "src/include/openssl/lhash.h",
+    "src/include/openssl/md4.h",
+    "src/include/openssl/md5.h",
+    "src/include/openssl/mem.h",
+    "src/include/openssl/mldsa.h",
+    "src/include/openssl/mlkem.h",
+    "src/include/openssl/nid.h",
+    "src/include/openssl/obj.h",
+    "src/include/openssl/obj_mac.h",
+    "src/include/openssl/objects.h",
+    "src/include/openssl/opensslconf.h",
+    "src/include/openssl/opensslv.h",
+    "src/include/openssl/ossl_typ.h",
+    "src/include/openssl/pem.h",
+    "src/include/openssl/pkcs12.h",
+    "src/include/openssl/pkcs7.h",
+    "src/include/openssl/pkcs8.h",
+    "src/include/openssl/poly1305.h",
+    "src/include/openssl/pool.h",
+    "src/include/openssl/posix_time.h",
+    "src/include/openssl/rand.h",
+    "src/include/openssl/rc4.h",
+    "src/include/openssl/ripemd.h",
+    "src/include/openssl/rsa.h",
+    "src/include/openssl/safestack.h",
+    "src/include/openssl/service_indicator.h",
+    "src/include/openssl/sha.h",
+    "src/include/openssl/siphash.h",
+    "src/include/openssl/slhdsa.h",
+    "src/include/openssl/span.h",
+    "src/include/openssl/stack.h",
+    "src/include/openssl/target.h",
+    "src/include/openssl/thread.h",
+    "src/include/openssl/time.h",
+    "src/include/openssl/trust_token.h",
+    "src/include/openssl/type_check.h",
+    "src/include/openssl/x509.h",
+    "src/include/openssl/x509_vfy.h",
+    "src/include/openssl/x509v3.h",
+    "src/include/openssl/x509v3_errors.h",
+]
+
+crypto_internal_headers = [
+    "src/crypto/asn1/internal.h",
+    "src/crypto/bcm_support.h",
+    "src/crypto/bio/internal.h",
+    "src/crypto/bytestring/internal.h",
+    "src/crypto/chacha/internal.h",
+    "src/crypto/cipher_extra/internal.h",
+    "src/crypto/conf/internal.h",
+    "src/crypto/cpu_arm_linux.h",
+    "src/crypto/curve25519/curve25519_tables.h",
+    "src/crypto/curve25519/internal.h",
+    "src/crypto/des/internal.h",
+    "src/crypto/dilithium/internal.h",
+    "src/crypto/dsa/internal.h",
+    "src/crypto/ec_extra/internal.h",
+    "src/crypto/err/internal.h",
+    "src/crypto/evp/internal.h",
+    "src/crypto/fipsmodule/aes/internal.h",
+    "src/crypto/fipsmodule/bcm_interface.h",
+    "src/crypto/fipsmodule/bn/internal.h",
+    "src/crypto/fipsmodule/bn/rsaz_exp.h",
+    "src/crypto/fipsmodule/cipher/internal.h",
+    "src/crypto/fipsmodule/delocate.h",
+    "src/crypto/fipsmodule/dh/internal.h",
+    "src/crypto/fipsmodule/digest/internal.h",
+    "src/crypto/fipsmodule/digest/md32_common.h",
+    "src/crypto/fipsmodule/ec/builtin_curves.h",
+    "src/crypto/fipsmodule/ec/internal.h",
+    "src/crypto/fipsmodule/ec/p256-nistz-table.h",
+    "src/crypto/fipsmodule/ec/p256-nistz.h",
+    "src/crypto/fipsmodule/ec/p256_table.h",
+    "src/crypto/fipsmodule/ecdsa/internal.h",
+    "src/crypto/fipsmodule/modes/internal.h",
+    "src/crypto/fipsmodule/rand/internal.h",
+    "src/crypto/fipsmodule/rsa/internal.h",
+    "src/crypto/fipsmodule/service_indicator/internal.h",
+    "src/crypto/fipsmodule/sha/internal.h",
+    "src/crypto/fipsmodule/tls/internal.h",
+    "src/crypto/hrss/internal.h",
+    "src/crypto/internal.h",
+    "src/crypto/keccak/internal.h",
+    "src/crypto/kyber/internal.h",
+    "src/crypto/lhash/internal.h",
+    "src/crypto/md5/internal.h",
+    "src/crypto/mldsa/internal.h",
+    "src/crypto/mlkem/internal.h",
+    "src/crypto/obj/obj_dat.h",
+    "src/crypto/pkcs7/internal.h",
+    "src/crypto/pkcs8/internal.h",
+    "src/crypto/poly1305/internal.h",
+    "src/crypto/pool/internal.h",
+    "src/crypto/rand_extra/getrandom_fillin.h",
+    "src/crypto/rand_extra/sysrand_internal.h",
+    "src/crypto/rsa_extra/internal.h",
+    "src/crypto/slhdsa/address.h",
+    "src/crypto/slhdsa/fors.h",
+    "src/crypto/slhdsa/internal.h",
+    "src/crypto/slhdsa/merkle.h",
+    "src/crypto/slhdsa/params.h",
+    "src/crypto/slhdsa/thash.h",
+    "src/crypto/slhdsa/wots.h",
+    "src/crypto/spx/spx_address.h",
+    "src/crypto/spx/spx_fors.h",
+    "src/crypto/spx/spx_merkle.h",
+    "src/crypto/spx/spx_params.h",
+    "src/crypto/spx/spx_thash.h",
+    "src/crypto/spx/spx_util.h",
+    "src/crypto/spx/spx_wots.h",
+    "src/crypto/trust_token/internal.h",
+    "src/crypto/x509/ext_dat.h",
+    "src/crypto/x509/internal.h",
+    "src/third_party/fiat/curve25519_32.h",
+    "src/third_party/fiat/curve25519_64.h",
+    "src/third_party/fiat/curve25519_64_adx.h",
+    "src/third_party/fiat/curve25519_64_msvc.h",
+    "src/third_party/fiat/p256_32.h",
+    "src/third_party/fiat/p256_64.h",
+    "src/third_party/fiat/p256_64_msvc.h",
+]
+
+crypto_sources = [
+    "src/crypto/asn1/a_bitstr.c",
+    "src/crypto/asn1/a_bool.c",
+    "src/crypto/asn1/a_d2i_fp.c",
+    "src/crypto/asn1/a_dup.c",
+    "src/crypto/asn1/a_gentm.c",
+    "src/crypto/asn1/a_i2d_fp.c",
+    "src/crypto/asn1/a_int.c",
+    "src/crypto/asn1/a_mbstr.c",
+    "src/crypto/asn1/a_object.c",
+    "src/crypto/asn1/a_octet.c",
+    "src/crypto/asn1/a_strex.c",
+    "src/crypto/asn1/a_strnid.c",
+    "src/crypto/asn1/a_time.c",
+    "src/crypto/asn1/a_type.c",
+    "src/crypto/asn1/a_utctm.c",
+    "src/crypto/asn1/asn1_lib.c",
+    "src/crypto/asn1/asn1_par.c",
+    "src/crypto/asn1/asn_pack.c",
+    "src/crypto/asn1/f_int.c",
+    "src/crypto/asn1/f_string.c",
+    "src/crypto/asn1/posix_time.c",
+    "src/crypto/asn1/tasn_dec.c",
+    "src/crypto/asn1/tasn_enc.c",
+    "src/crypto/asn1/tasn_fre.c",
+    "src/crypto/asn1/tasn_new.c",
+    "src/crypto/asn1/tasn_typ.c",
+    "src/crypto/asn1/tasn_utl.c",
+    "src/crypto/base64/base64.c",
+    "src/crypto/bio/bio.c",
+    "src/crypto/bio/bio_mem.c",
+    "src/crypto/bio/connect.c",
+    "src/crypto/bio/errno.c",
+    "src/crypto/bio/fd.c",
+    "src/crypto/bio/file.c",
+    "src/crypto/bio/hexdump.c",
+    "src/crypto/bio/pair.c",
+    "src/crypto/bio/printf.c",
+    "src/crypto/bio/socket.c",
+    "src/crypto/bio/socket_helper.c",
+    "src/crypto/blake2/blake2.c",
+    "src/crypto/bn_extra/bn_asn1.c",
+    "src/crypto/bn_extra/convert.c",
+    "src/crypto/buf/buf.c",
+    "src/crypto/bytestring/asn1_compat.c",
+    "src/crypto/bytestring/ber.c",
+    "src/crypto/bytestring/cbb.c",
+    "src/crypto/bytestring/cbs.c",
+    "src/crypto/bytestring/unicode.c",
+    "src/crypto/chacha/chacha.c",
+    "src/crypto/cipher_extra/cipher_extra.c",
+    "src/crypto/cipher_extra/derive_key.c",
+    "src/crypto/cipher_extra/e_aesctrhmac.c",
+    "src/crypto/cipher_extra/e_aesgcmsiv.c",
+    "src/crypto/cipher_extra/e_chacha20poly1305.c",
+    "src/crypto/cipher_extra/e_des.c",
+    "src/crypto/cipher_extra/e_null.c",
+    "src/crypto/cipher_extra/e_rc2.c",
+    "src/crypto/cipher_extra/e_rc4.c",
+    "src/crypto/cipher_extra/e_tls.c",
+    "src/crypto/cipher_extra/tls_cbc.c",
+    "src/crypto/conf/conf.c",
+    "src/crypto/cpu_aarch64_apple.c",
+    "src/crypto/cpu_aarch64_fuchsia.c",
+    "src/crypto/cpu_aarch64_linux.c",
+    "src/crypto/cpu_aarch64_openbsd.c",
+    "src/crypto/cpu_aarch64_sysreg.c",
+    "src/crypto/cpu_aarch64_win.c",
+    "src/crypto/cpu_arm_freebsd.c",
+    "src/crypto/cpu_arm_linux.c",
+    "src/crypto/cpu_intel.c",
+    "src/crypto/crypto.c",
+    "src/crypto/curve25519/curve25519.c",
+    "src/crypto/curve25519/curve25519_64_adx.c",
+    "src/crypto/curve25519/spake25519.c",
+    "src/crypto/des/des.c",
+    "src/crypto/dh_extra/dh_asn1.c",
+    "src/crypto/dh_extra/params.c",
+    "src/crypto/digest_extra/digest_extra.c",
+    "src/crypto/dilithium/dilithium.c",
+    "src/crypto/dsa/dsa.c",
+    "src/crypto/dsa/dsa_asn1.c",
+    "src/crypto/ec_extra/ec_asn1.c",
+    "src/crypto/ec_extra/ec_derive.c",
+    "src/crypto/ec_extra/hash_to_curve.c",
+    "src/crypto/ecdh_extra/ecdh_extra.c",
+    "src/crypto/ecdsa_extra/ecdsa_asn1.c",
+    "src/crypto/engine/engine.c",
+    "src/crypto/err/err.c",
+    "src/crypto/evp/evp.c",
+    "src/crypto/evp/evp_asn1.c",
+    "src/crypto/evp/evp_ctx.c",
+    "src/crypto/evp/p_dh.c",
+    "src/crypto/evp/p_dh_asn1.c",
+    "src/crypto/evp/p_dsa_asn1.c",
+    "src/crypto/evp/p_ec.c",
+    "src/crypto/evp/p_ec_asn1.c",
+    "src/crypto/evp/p_ed25519.c",
+    "src/crypto/evp/p_ed25519_asn1.c",
+    "src/crypto/evp/p_hkdf.c",
+    "src/crypto/evp/p_rsa.c",
+    "src/crypto/evp/p_rsa_asn1.c",
+    "src/crypto/evp/p_x25519.c",
+    "src/crypto/evp/p_x25519_asn1.c",
+    "src/crypto/evp/pbkdf.c",
+    "src/crypto/evp/print.c",
+    "src/crypto/evp/scrypt.c",
+    "src/crypto/evp/sign.c",
+    "src/crypto/ex_data.c",
+    "src/crypto/fipsmodule/bcm.c",
+    "src/crypto/fipsmodule/fips_shared_support.c",
+    "src/crypto/hpke/hpke.c",
+    "src/crypto/hrss/hrss.c",
+    "src/crypto/keccak/keccak.c",
+    "src/crypto/kyber/kyber.c",
+    "src/crypto/lhash/lhash.c",
+    "src/crypto/md4/md4.c",
+    "src/crypto/md5/md5.c",
+    "src/crypto/mem.c",
+    "src/crypto/mldsa/mldsa.c",
+    "src/crypto/mlkem/mlkem.cc",
+    "src/crypto/obj/obj.c",
+    "src/crypto/obj/obj_xref.c",
+    "src/crypto/pem/pem_all.c",
+    "src/crypto/pem/pem_info.c",
+    "src/crypto/pem/pem_lib.c",
+    "src/crypto/pem/pem_oth.c",
+    "src/crypto/pem/pem_pk8.c",
+    "src/crypto/pem/pem_pkey.c",
+    "src/crypto/pem/pem_x509.c",
+    "src/crypto/pem/pem_xaux.c",
+    "src/crypto/pkcs7/pkcs7.c",
+    "src/crypto/pkcs7/pkcs7_x509.c",
+    "src/crypto/pkcs8/p5_pbev2.c",
+    "src/crypto/pkcs8/pkcs8.c",
+    "src/crypto/pkcs8/pkcs8_x509.c",
+    "src/crypto/poly1305/poly1305.c",
+    "src/crypto/poly1305/poly1305_arm.c",
+    "src/crypto/poly1305/poly1305_vec.c",
+    "src/crypto/pool/pool.c",
+    "src/crypto/rand_extra/deterministic.c",
+    "src/crypto/rand_extra/fork_detect.c",
+    "src/crypto/rand_extra/forkunsafe.c",
+    "src/crypto/rand_extra/getentropy.c",
+    "src/crypto/rand_extra/ios.c",
+    "src/crypto/rand_extra/passive.c",
+    "src/crypto/rand_extra/rand_extra.c",
+    "src/crypto/rand_extra/trusty.c",
+    "src/crypto/rand_extra/urandom.c",
+    "src/crypto/rand_extra/windows.c",
+    "src/crypto/rc4/rc4.c",
+    "src/crypto/refcount.c",
+    "src/crypto/rsa_extra/rsa_asn1.c",
+    "src/crypto/rsa_extra/rsa_crypt.c",
+    "src/crypto/rsa_extra/rsa_extra.c",
+    "src/crypto/rsa_extra/rsa_print.c",
+    "src/crypto/sha/sha1.c",
+    "src/crypto/sha/sha256.c",
+    "src/crypto/sha/sha512.c",
+    "src/crypto/siphash/siphash.c",
+    "src/crypto/slhdsa/fors.c",
+    "src/crypto/slhdsa/merkle.c",
+    "src/crypto/slhdsa/slhdsa.c",
+    "src/crypto/slhdsa/thash.c",
+    "src/crypto/slhdsa/wots.c",
+    "src/crypto/spx/spx.c",
+    "src/crypto/spx/spx_address.c",
+    "src/crypto/spx/spx_fors.c",
+    "src/crypto/spx/spx_merkle.c",
+    "src/crypto/spx/spx_thash.c",
+    "src/crypto/spx/spx_util.c",
+    "src/crypto/spx/spx_wots.c",
+    "src/crypto/stack/stack.c",
+    "src/crypto/thread.c",
+    "src/crypto/thread_none.c",
+    "src/crypto/thread_pthread.c",
+    "src/crypto/thread_win.c",
+    "src/crypto/trust_token/pmbtoken.c",
+    "src/crypto/trust_token/trust_token.c",
+    "src/crypto/trust_token/voprf.c",
+    "src/crypto/x509/a_digest.c",
+    "src/crypto/x509/a_sign.c",
+    "src/crypto/x509/a_verify.c",
+    "src/crypto/x509/algorithm.c",
+    "src/crypto/x509/asn1_gen.c",
+    "src/crypto/x509/by_dir.c",
+    "src/crypto/x509/by_file.c",
+    "src/crypto/x509/i2d_pr.c",
+    "src/crypto/x509/name_print.c",
+    "src/crypto/x509/policy.c",
+    "src/crypto/x509/rsa_pss.c",
+    "src/crypto/x509/t_crl.c",
+    "src/crypto/x509/t_req.c",
+    "src/crypto/x509/t_x509.c",
+    "src/crypto/x509/t_x509a.c",
+    "src/crypto/x509/v3_akey.c",
+    "src/crypto/x509/v3_akeya.c",
+    "src/crypto/x509/v3_alt.c",
+    "src/crypto/x509/v3_bcons.c",
+    "src/crypto/x509/v3_bitst.c",
+    "src/crypto/x509/v3_conf.c",
+    "src/crypto/x509/v3_cpols.c",
+    "src/crypto/x509/v3_crld.c",
+    "src/crypto/x509/v3_enum.c",
+    "src/crypto/x509/v3_extku.c",
+    "src/crypto/x509/v3_genn.c",
+    "src/crypto/x509/v3_ia5.c",
+    "src/crypto/x509/v3_info.c",
+    "src/crypto/x509/v3_int.c",
+    "src/crypto/x509/v3_lib.c",
+    "src/crypto/x509/v3_ncons.c",
+    "src/crypto/x509/v3_ocsp.c",
+    "src/crypto/x509/v3_pcons.c",
+    "src/crypto/x509/v3_pmaps.c",
+    "src/crypto/x509/v3_prn.c",
+    "src/crypto/x509/v3_purp.c",
+    "src/crypto/x509/v3_skey.c",
+    "src/crypto/x509/v3_utl.c",
+    "src/crypto/x509/x509.c",
+    "src/crypto/x509/x509_att.c",
+    "src/crypto/x509/x509_cmp.c",
+    "src/crypto/x509/x509_d2.c",
+    "src/crypto/x509/x509_def.c",
+    "src/crypto/x509/x509_ext.c",
+    "src/crypto/x509/x509_lu.c",
+    "src/crypto/x509/x509_obj.c",
+    "src/crypto/x509/x509_req.c",
+    "src/crypto/x509/x509_set.c",
+    "src/crypto/x509/x509_trs.c",
+    "src/crypto/x509/x509_txt.c",
+    "src/crypto/x509/x509_v3.c",
+    "src/crypto/x509/x509_vfy.c",
+    "src/crypto/x509/x509_vpm.c",
+    "src/crypto/x509/x509cset.c",
+    "src/crypto/x509/x509name.c",
+    "src/crypto/x509/x509rset.c",
+    "src/crypto/x509/x509spki.c",
+    "src/crypto/x509/x_algor.c",
+    "src/crypto/x509/x_all.c",
+    "src/crypto/x509/x_attrib.c",
+    "src/crypto/x509/x_crl.c",
+    "src/crypto/x509/x_exten.c",
+    "src/crypto/x509/x_name.c",
+    "src/crypto/x509/x_pubkey.c",
+    "src/crypto/x509/x_req.c",
+    "src/crypto/x509/x_sig.c",
+    "src/crypto/x509/x_spki.c",
+    "src/crypto/x509/x_val.c",
+    "src/crypto/x509/x_x509.c",
+    "src/crypto/x509/x_x509a.c",
+    "src/gen/crypto/err_data.c",
+]
+
+crypto_sources_asm = [
+    "src/crypto/curve25519/asm/x25519-asm-arm.S",
+    "src/crypto/hrss/asm/poly_rq_mul.S",
+    "src/crypto/poly1305/poly1305_arm_asm.S",
+    "src/gen/bcm/aesni-gcm-x86_64-apple.S",
+    "src/gen/bcm/aesni-gcm-x86_64-linux.S",
+    "src/gen/bcm/aesni-x86-apple.S",
+    "src/gen/bcm/aesni-x86-linux.S",
+    "src/gen/bcm/aesni-x86_64-apple.S",
+    "src/gen/bcm/aesni-x86_64-linux.S",
+    "src/gen/bcm/aesv8-armv7-linux.S",
+    "src/gen/bcm/aesv8-armv8-apple.S",
+    "src/gen/bcm/aesv8-armv8-linux.S",
+    "src/gen/bcm/aesv8-armv8-win.S",
+    "src/gen/bcm/aesv8-gcm-armv8-apple.S",
+    "src/gen/bcm/aesv8-gcm-armv8-linux.S",
+    "src/gen/bcm/aesv8-gcm-armv8-win.S",
+    "src/gen/bcm/armv4-mont-linux.S",
+    "src/gen/bcm/armv8-mont-apple.S",
+    "src/gen/bcm/armv8-mont-linux.S",
+    "src/gen/bcm/armv8-mont-win.S",
+    "src/gen/bcm/bn-586-apple.S",
+    "src/gen/bcm/bn-586-linux.S",
+    "src/gen/bcm/bn-armv8-apple.S",
+    "src/gen/bcm/bn-armv8-linux.S",
+    "src/gen/bcm/bn-armv8-win.S",
+    "src/gen/bcm/bsaes-armv7-linux.S",
+    "src/gen/bcm/co-586-apple.S",
+    "src/gen/bcm/co-586-linux.S",
+    "src/gen/bcm/ghash-armv4-linux.S",
+    "src/gen/bcm/ghash-neon-armv8-apple.S",
+    "src/gen/bcm/ghash-neon-armv8-linux.S",
+    "src/gen/bcm/ghash-neon-armv8-win.S",
+    "src/gen/bcm/ghash-ssse3-x86-apple.S",
+    "src/gen/bcm/ghash-ssse3-x86-linux.S",
+    "src/gen/bcm/ghash-ssse3-x86_64-apple.S",
+    "src/gen/bcm/ghash-ssse3-x86_64-linux.S",
+    "src/gen/bcm/ghash-x86-apple.S",
+    "src/gen/bcm/ghash-x86-linux.S",
+    "src/gen/bcm/ghash-x86_64-apple.S",
+    "src/gen/bcm/ghash-x86_64-linux.S",
+    "src/gen/bcm/ghashv8-armv7-linux.S",
+    "src/gen/bcm/ghashv8-armv8-apple.S",
+    "src/gen/bcm/ghashv8-armv8-linux.S",
+    "src/gen/bcm/ghashv8-armv8-win.S",
+    "src/gen/bcm/p256-armv8-asm-apple.S",
+    "src/gen/bcm/p256-armv8-asm-linux.S",
+    "src/gen/bcm/p256-armv8-asm-win.S",
+    "src/gen/bcm/p256-x86_64-asm-apple.S",
+    "src/gen/bcm/p256-x86_64-asm-linux.S",
+    "src/gen/bcm/p256_beeu-armv8-asm-apple.S",
+    "src/gen/bcm/p256_beeu-armv8-asm-linux.S",
+    "src/gen/bcm/p256_beeu-armv8-asm-win.S",
+    "src/gen/bcm/p256_beeu-x86_64-asm-apple.S",
+    "src/gen/bcm/p256_beeu-x86_64-asm-linux.S",
+    "src/gen/bcm/rdrand-x86_64-apple.S",
+    "src/gen/bcm/rdrand-x86_64-linux.S",
+    "src/gen/bcm/rsaz-avx2-apple.S",
+    "src/gen/bcm/rsaz-avx2-linux.S",
+    "src/gen/bcm/sha1-586-apple.S",
+    "src/gen/bcm/sha1-586-linux.S",
+    "src/gen/bcm/sha1-armv4-large-linux.S",
+    "src/gen/bcm/sha1-armv8-apple.S",
+    "src/gen/bcm/sha1-armv8-linux.S",
+    "src/gen/bcm/sha1-armv8-win.S",
+    "src/gen/bcm/sha1-x86_64-apple.S",
+    "src/gen/bcm/sha1-x86_64-linux.S",
+    "src/gen/bcm/sha256-586-apple.S",
+    "src/gen/bcm/sha256-586-linux.S",
+    "src/gen/bcm/sha256-armv4-linux.S",
+    "src/gen/bcm/sha256-armv8-apple.S",
+    "src/gen/bcm/sha256-armv8-linux.S",
+    "src/gen/bcm/sha256-armv8-win.S",
+    "src/gen/bcm/sha256-x86_64-apple.S",
+    "src/gen/bcm/sha256-x86_64-linux.S",
+    "src/gen/bcm/sha512-586-apple.S",
+    "src/gen/bcm/sha512-586-linux.S",
+    "src/gen/bcm/sha512-armv4-linux.S",
+    "src/gen/bcm/sha512-armv8-apple.S",
+    "src/gen/bcm/sha512-armv8-linux.S",
+    "src/gen/bcm/sha512-armv8-win.S",
+    "src/gen/bcm/sha512-x86_64-apple.S",
+    "src/gen/bcm/sha512-x86_64-linux.S",
+    "src/gen/bcm/vpaes-armv7-linux.S",
+    "src/gen/bcm/vpaes-armv8-apple.S",
+    "src/gen/bcm/vpaes-armv8-linux.S",
+    "src/gen/bcm/vpaes-armv8-win.S",
+    "src/gen/bcm/vpaes-x86-apple.S",
+    "src/gen/bcm/vpaes-x86-linux.S",
+    "src/gen/bcm/vpaes-x86_64-apple.S",
+    "src/gen/bcm/vpaes-x86_64-linux.S",
+    "src/gen/bcm/x86-mont-apple.S",
+    "src/gen/bcm/x86-mont-linux.S",
+    "src/gen/bcm/x86_64-mont-apple.S",
+    "src/gen/bcm/x86_64-mont-linux.S",
+    "src/gen/bcm/x86_64-mont5-apple.S",
+    "src/gen/bcm/x86_64-mont5-linux.S",
+    "src/gen/crypto/aes128gcmsiv-x86_64-apple.S",
+    "src/gen/crypto/aes128gcmsiv-x86_64-linux.S",
+    "src/gen/crypto/chacha-armv4-linux.S",
+    "src/gen/crypto/chacha-armv8-apple.S",
+    "src/gen/crypto/chacha-armv8-linux.S",
+    "src/gen/crypto/chacha-armv8-win.S",
+    "src/gen/crypto/chacha-x86-apple.S",
+    "src/gen/crypto/chacha-x86-linux.S",
+    "src/gen/crypto/chacha-x86_64-apple.S",
+    "src/gen/crypto/chacha-x86_64-linux.S",
+    "src/gen/crypto/chacha20_poly1305_armv8-apple.S",
+    "src/gen/crypto/chacha20_poly1305_armv8-linux.S",
+    "src/gen/crypto/chacha20_poly1305_armv8-win.S",
+    "src/gen/crypto/chacha20_poly1305_x86_64-apple.S",
+    "src/gen/crypto/chacha20_poly1305_x86_64-linux.S",
+    "src/gen/crypto/md5-586-apple.S",
+    "src/gen/crypto/md5-586-linux.S",
+    "src/gen/crypto/md5-x86_64-apple.S",
+    "src/gen/crypto/md5-x86_64-linux.S",
+    "src/gen/test_support/trampoline-armv4-linux.S",
+    "src/gen/test_support/trampoline-armv8-apple.S",
+    "src/gen/test_support/trampoline-armv8-linux.S",
+    "src/gen/test_support/trampoline-armv8-win.S",
+    "src/gen/test_support/trampoline-x86-apple.S",
+    "src/gen/test_support/trampoline-x86-linux.S",
+    "src/gen/test_support/trampoline-x86_64-apple.S",
+    "src/gen/test_support/trampoline-x86_64-linux.S",
+    "src/third_party/fiat/asm/fiat_curve25519_adx_mul.S",
+    "src/third_party/fiat/asm/fiat_curve25519_adx_square.S",
+    "src/third_party/fiat/asm/fiat_p256_adx_mul.S",
+    "src/third_party/fiat/asm/fiat_p256_adx_sqr.S",
+]
+
+crypto_sources_nasm = [
+    "src/gen/bcm/aesni-gcm-x86_64-win.asm",
+    "src/gen/bcm/aesni-x86-win.asm",
+    "src/gen/bcm/aesni-x86_64-win.asm",
+    "src/gen/bcm/bn-586-win.asm",
+    "src/gen/bcm/co-586-win.asm",
+    "src/gen/bcm/ghash-ssse3-x86-win.asm",
+    "src/gen/bcm/ghash-ssse3-x86_64-win.asm",
+    "src/gen/bcm/ghash-x86-win.asm",
+    "src/gen/bcm/ghash-x86_64-win.asm",
+    "src/gen/bcm/p256-x86_64-asm-win.asm",
+    "src/gen/bcm/p256_beeu-x86_64-asm-win.asm",
+    "src/gen/bcm/rdrand-x86_64-win.asm",
+    "src/gen/bcm/rsaz-avx2-win.asm",
+    "src/gen/bcm/sha1-586-win.asm",
+    "src/gen/bcm/sha1-x86_64-win.asm",
+    "src/gen/bcm/sha256-586-win.asm",
+    "src/gen/bcm/sha256-x86_64-win.asm",
+    "src/gen/bcm/sha512-586-win.asm",
+    "src/gen/bcm/sha512-x86_64-win.asm",
+    "src/gen/bcm/vpaes-x86-win.asm",
+    "src/gen/bcm/vpaes-x86_64-win.asm",
+    "src/gen/bcm/x86-mont-win.asm",
+    "src/gen/bcm/x86_64-mont-win.asm",
+    "src/gen/bcm/x86_64-mont5-win.asm",
+    "src/gen/crypto/aes128gcmsiv-x86_64-win.asm",
+    "src/gen/crypto/chacha-x86-win.asm",
+    "src/gen/crypto/chacha-x86_64-win.asm",
+    "src/gen/crypto/chacha20_poly1305_x86_64-win.asm",
+    "src/gen/crypto/md5-586-win.asm",
+    "src/gen/crypto/md5-x86_64-win.asm",
+    "src/gen/test_support/trampoline-x86-win.asm",
+    "src/gen/test_support/trampoline-x86_64-win.asm",
+]
+
+pki_headers = [
+    "src/include/openssl/pki/certificate.h",
+    "src/include/openssl/pki/signature_verify_cache.h",
+    "src/include/openssl/pki/verify.h",
+    "src/include/openssl/pki/verify_error.h",
+]
+
+pki_internal_headers = [
+    "src/pki/cert_error_id.h",
+    "src/pki/cert_error_params.h",
+    "src/pki/cert_errors.h",
+    "src/pki/cert_issuer_source.h",
+    "src/pki/cert_issuer_source_static.h",
+    "src/pki/cert_issuer_source_sync_unittest.h",
+    "src/pki/certificate_policies.h",
+    "src/pki/common_cert_errors.h",
+    "src/pki/crl.h",
+    "src/pki/encode_values.h",
+    "src/pki/extended_key_usage.h",
+    "src/pki/general_names.h",
+    "src/pki/input.h",
+    "src/pki/ip_util.h",
+    "src/pki/mock_signature_verify_cache.h",
+    "src/pki/name_constraints.h",
+    "src/pki/nist_pkits_unittest.h",
+    "src/pki/ocsp.h",
+    "src/pki/ocsp_revocation_status.h",
+    "src/pki/ocsp_verify_result.h",
+    "src/pki/parse_certificate.h",
+    "src/pki/parse_name.h",
+    "src/pki/parse_values.h",
+    "src/pki/parsed_certificate.h",
+    "src/pki/parser.h",
+    "src/pki/path_builder.h",
+    "src/pki/pem.h",
+    "src/pki/revocation_util.h",
+    "src/pki/signature_algorithm.h",
+    "src/pki/simple_path_builder_delegate.h",
+    "src/pki/string_util.h",
+    "src/pki/test_helpers.h",
+    "src/pki/testdata/nist-pkits/pkits_testcases-inl.h",
+    "src/pki/trust_store.h",
+    "src/pki/trust_store_collection.h",
+    "src/pki/trust_store_in_memory.h",
+    "src/pki/verify_certificate_chain.h",
+    "src/pki/verify_certificate_chain_typed_unittest.h",
+    "src/pki/verify_name_match.h",
+    "src/pki/verify_signed_data.h",
+]
+
+pki_sources = [
+    "src/pki/cert_error_id.cc",
+    "src/pki/cert_error_params.cc",
+    "src/pki/cert_errors.cc",
+    "src/pki/cert_issuer_source_static.cc",
+    "src/pki/certificate.cc",
+    "src/pki/certificate_policies.cc",
+    "src/pki/common_cert_errors.cc",
+    "src/pki/crl.cc",
+    "src/pki/encode_values.cc",
+    "src/pki/extended_key_usage.cc",
+    "src/pki/general_names.cc",
+    "src/pki/input.cc",
+    "src/pki/ip_util.cc",
+    "src/pki/name_constraints.cc",
+    "src/pki/ocsp.cc",
+    "src/pki/ocsp_verify_result.cc",
+    "src/pki/parse_certificate.cc",
+    "src/pki/parse_name.cc",
+    "src/pki/parse_values.cc",
+    "src/pki/parsed_certificate.cc",
+    "src/pki/parser.cc",
+    "src/pki/path_builder.cc",
+    "src/pki/pem.cc",
+    "src/pki/revocation_util.cc",
+    "src/pki/signature_algorithm.cc",
+    "src/pki/simple_path_builder_delegate.cc",
+    "src/pki/string_util.cc",
+    "src/pki/trust_store.cc",
+    "src/pki/trust_store_collection.cc",
+    "src/pki/trust_store_in_memory.cc",
+    "src/pki/verify.cc",
+    "src/pki/verify_certificate_chain.cc",
+    "src/pki/verify_error.cc",
+    "src/pki/verify_name_match.cc",
+    "src/pki/verify_signed_data.cc",
+]
+
+rust_bssl_sys = [
+    "src/rust/bssl-sys/src/lib.rs",
+]
+
+rust_bssl_crypto = [
+    "src/rust/bssl-crypto/src/aead.rs",
+    "src/rust/bssl-crypto/src/aes.rs",
+    "src/rust/bssl-crypto/src/cipher/aes_cbc.rs",
+    "src/rust/bssl-crypto/src/cipher/aes_ctr.rs",
+    "src/rust/bssl-crypto/src/cipher/mod.rs",
+    "src/rust/bssl-crypto/src/digest.rs",
+    "src/rust/bssl-crypto/src/ec.rs",
+    "src/rust/bssl-crypto/src/ecdh.rs",
+    "src/rust/bssl-crypto/src/ecdsa.rs",
+    "src/rust/bssl-crypto/src/ed25519.rs",
+    "src/rust/bssl-crypto/src/hkdf.rs",
+    "src/rust/bssl-crypto/src/hmac.rs",
+    "src/rust/bssl-crypto/src/hpke.rs",
+    "src/rust/bssl-crypto/src/lib.rs",
+    "src/rust/bssl-crypto/src/macros.rs",
+    "src/rust/bssl-crypto/src/mem.rs",
+    "src/rust/bssl-crypto/src/mldsa.rs",
+    "src/rust/bssl-crypto/src/mlkem.rs",
+    "src/rust/bssl-crypto/src/rand.rs",
+    "src/rust/bssl-crypto/src/rsa.rs",
+    "src/rust/bssl-crypto/src/scoped.rs",
+    "src/rust/bssl-crypto/src/slhdsa.rs",
+    "src/rust/bssl-crypto/src/test_helpers.rs",
+    "src/rust/bssl-crypto/src/x25519.rs",
+]
+
+tool_sources = [
+    "src/tool/args.cc",
+    "src/tool/ciphers.cc",
+    "src/tool/client.cc",
+    "src/tool/const.cc",
+    "src/tool/digest.cc",
+    "src/tool/fd.cc",
+    "src/tool/file.cc",
+    "src/tool/generate_ech.cc",
+    "src/tool/generate_ed25519.cc",
+    "src/tool/genrsa.cc",
+    "src/tool/pkcs12.cc",
+    "src/tool/rand.cc",
+    "src/tool/server.cc",
+    "src/tool/sign.cc",
+    "src/tool/speed.cc",
+    "src/tool/tool.cc",
+    "src/tool/transport_common.cc",
+]
+
+tool_headers = [
+    "src/tool/internal.h",
+    "src/tool/transport_common.h",
+]
diff --git a/BUILD.generated_tests.bzl b/BUILD.generated_tests.bzl
new file mode 100644
index 0000000..a5282d0
--- /dev/null
+++ b/BUILD.generated_tests.bzl
@@ -0,0 +1,1950 @@
+# This file is created by generate_build_files.py. Do not edit manually.
+
+test_support_sources = [
+    "src/crypto/asn1/internal.h",
+    "src/crypto/bcm_support.h",
+    "src/crypto/bio/internal.h",
+    "src/crypto/bytestring/internal.h",
+    "src/crypto/chacha/internal.h",
+    "src/crypto/cipher_extra/internal.h",
+    "src/crypto/conf/internal.h",
+    "src/crypto/cpu_arm_linux.h",
+    "src/crypto/curve25519/curve25519_tables.h",
+    "src/crypto/curve25519/internal.h",
+    "src/crypto/des/internal.h",
+    "src/crypto/dilithium/internal.h",
+    "src/crypto/dsa/internal.h",
+    "src/crypto/ec_extra/internal.h",
+    "src/crypto/err/internal.h",
+    "src/crypto/evp/internal.h",
+    "src/crypto/fipsmodule/aes/internal.h",
+    "src/crypto/fipsmodule/bcm_interface.h",
+    "src/crypto/fipsmodule/bn/internal.h",
+    "src/crypto/fipsmodule/bn/rsaz_exp.h",
+    "src/crypto/fipsmodule/cipher/internal.h",
+    "src/crypto/fipsmodule/delocate.h",
+    "src/crypto/fipsmodule/dh/internal.h",
+    "src/crypto/fipsmodule/digest/internal.h",
+    "src/crypto/fipsmodule/digest/md32_common.h",
+    "src/crypto/fipsmodule/ec/builtin_curves.h",
+    "src/crypto/fipsmodule/ec/internal.h",
+    "src/crypto/fipsmodule/ec/p256-nistz-table.h",
+    "src/crypto/fipsmodule/ec/p256-nistz.h",
+    "src/crypto/fipsmodule/ec/p256_table.h",
+    "src/crypto/fipsmodule/ecdsa/internal.h",
+    "src/crypto/fipsmodule/modes/internal.h",
+    "src/crypto/fipsmodule/rand/internal.h",
+    "src/crypto/fipsmodule/rsa/internal.h",
+    "src/crypto/fipsmodule/service_indicator/internal.h",
+    "src/crypto/fipsmodule/sha/internal.h",
+    "src/crypto/fipsmodule/tls/internal.h",
+    "src/crypto/hrss/internal.h",
+    "src/crypto/internal.h",
+    "src/crypto/keccak/internal.h",
+    "src/crypto/kyber/internal.h",
+    "src/crypto/lhash/internal.h",
+    "src/crypto/md5/internal.h",
+    "src/crypto/mldsa/internal.h",
+    "src/crypto/mlkem/internal.h",
+    "src/crypto/obj/obj_dat.h",
+    "src/crypto/pkcs7/internal.h",
+    "src/crypto/pkcs8/internal.h",
+    "src/crypto/poly1305/internal.h",
+    "src/crypto/pool/internal.h",
+    "src/crypto/rand_extra/getrandom_fillin.h",
+    "src/crypto/rand_extra/sysrand_internal.h",
+    "src/crypto/rsa_extra/internal.h",
+    "src/crypto/slhdsa/address.h",
+    "src/crypto/slhdsa/fors.h",
+    "src/crypto/slhdsa/internal.h",
+    "src/crypto/slhdsa/merkle.h",
+    "src/crypto/slhdsa/params.h",
+    "src/crypto/slhdsa/thash.h",
+    "src/crypto/slhdsa/wots.h",
+    "src/crypto/spx/spx_address.h",
+    "src/crypto/spx/spx_fors.h",
+    "src/crypto/spx/spx_merkle.h",
+    "src/crypto/spx/spx_params.h",
+    "src/crypto/spx/spx_thash.h",
+    "src/crypto/spx/spx_util.h",
+    "src/crypto/spx/spx_wots.h",
+    "src/crypto/test/abi_test.cc",
+    "src/crypto/test/abi_test.h",
+    "src/crypto/test/file_test.cc",
+    "src/crypto/test/file_test.h",
+    "src/crypto/test/file_test_gtest.cc",
+    "src/crypto/test/file_util.cc",
+    "src/crypto/test/file_util.h",
+    "src/crypto/test/gtest_main.h",
+    "src/crypto/test/test_data.cc",
+    "src/crypto/test/test_data.h",
+    "src/crypto/test/test_util.cc",
+    "src/crypto/test/test_util.h",
+    "src/crypto/test/wycheproof_util.cc",
+    "src/crypto/test/wycheproof_util.h",
+    "src/crypto/trust_token/internal.h",
+    "src/crypto/x509/ext_dat.h",
+    "src/crypto/x509/internal.h",
+    "src/pki/cert_error_id.h",
+    "src/pki/cert_error_params.h",
+    "src/pki/cert_errors.h",
+    "src/pki/cert_issuer_source.h",
+    "src/pki/cert_issuer_source_static.h",
+    "src/pki/cert_issuer_source_sync_unittest.h",
+    "src/pki/certificate_policies.h",
+    "src/pki/common_cert_errors.h",
+    "src/pki/crl.h",
+    "src/pki/encode_values.h",
+    "src/pki/extended_key_usage.h",
+    "src/pki/general_names.h",
+    "src/pki/input.h",
+    "src/pki/ip_util.h",
+    "src/pki/mock_signature_verify_cache.h",
+    "src/pki/name_constraints.h",
+    "src/pki/nist_pkits_unittest.h",
+    "src/pki/ocsp.h",
+    "src/pki/ocsp_revocation_status.h",
+    "src/pki/ocsp_verify_result.h",
+    "src/pki/parse_certificate.h",
+    "src/pki/parse_name.h",
+    "src/pki/parse_values.h",
+    "src/pki/parsed_certificate.h",
+    "src/pki/parser.h",
+    "src/pki/path_builder.h",
+    "src/pki/pem.h",
+    "src/pki/revocation_util.h",
+    "src/pki/signature_algorithm.h",
+    "src/pki/simple_path_builder_delegate.h",
+    "src/pki/string_util.h",
+    "src/pki/test_helpers.h",
+    "src/pki/testdata/nist-pkits/pkits_testcases-inl.h",
+    "src/pki/trust_store.h",
+    "src/pki/trust_store_collection.h",
+    "src/pki/trust_store_in_memory.h",
+    "src/pki/verify_certificate_chain.h",
+    "src/pki/verify_certificate_chain_typed_unittest.h",
+    "src/pki/verify_name_match.h",
+    "src/pki/verify_signed_data.h",
+    "src/ssl/internal.h",
+    "src/ssl/test/async_bio.h",
+    "src/ssl/test/fuzzer.h",
+    "src/ssl/test/fuzzer_tags.h",
+    "src/ssl/test/handshake_util.h",
+    "src/ssl/test/mock_quic_transport.h",
+    "src/ssl/test/packeted_bio.h",
+    "src/ssl/test/settings_writer.h",
+    "src/ssl/test/test_config.h",
+    "src/ssl/test/test_state.h",
+    "src/third_party/fiat/curve25519_32.h",
+    "src/third_party/fiat/curve25519_64.h",
+    "src/third_party/fiat/curve25519_64_adx.h",
+    "src/third_party/fiat/curve25519_64_msvc.h",
+    "src/third_party/fiat/p256_32.h",
+    "src/third_party/fiat/p256_64.h",
+    "src/third_party/fiat/p256_64_msvc.h",
+]
+
+crypto_test_sources = [
+    "src/crypto/abi_self_test.cc",
+    "src/crypto/asn1/asn1_test.cc",
+    "src/crypto/base64/base64_test.cc",
+    "src/crypto/bio/bio_test.cc",
+    "src/crypto/blake2/blake2_test.cc",
+    "src/crypto/buf/buf_test.cc",
+    "src/crypto/bytestring/bytestring_test.cc",
+    "src/crypto/chacha/chacha_test.cc",
+    "src/crypto/cipher_extra/aead_test.cc",
+    "src/crypto/cipher_extra/cipher_test.cc",
+    "src/crypto/compiler_test.cc",
+    "src/crypto/conf/conf_test.cc",
+    "src/crypto/constant_time_test.cc",
+    "src/crypto/cpu_arm_linux_test.cc",
+    "src/crypto/crypto_test.cc",
+    "src/crypto/curve25519/ed25519_test.cc",
+    "src/crypto/curve25519/spake25519_test.cc",
+    "src/crypto/curve25519/x25519_test.cc",
+    "src/crypto/dh_extra/dh_test.cc",
+    "src/crypto/digest_extra/digest_test.cc",
+    "src/crypto/dilithium/dilithium_test.cc",
+    "src/crypto/dsa/dsa_test.cc",
+    "src/crypto/ecdh_extra/ecdh_test.cc",
+    "src/crypto/err/err_test.cc",
+    "src/crypto/evp/evp_extra_test.cc",
+    "src/crypto/evp/evp_test.cc",
+    "src/crypto/evp/pbkdf_test.cc",
+    "src/crypto/evp/scrypt_test.cc",
+    "src/crypto/fipsmodule/aes/aes_test.cc",
+    "src/crypto/fipsmodule/bn/bn_test.cc",
+    "src/crypto/fipsmodule/cmac/cmac_test.cc",
+    "src/crypto/fipsmodule/ec/ec_test.cc",
+    "src/crypto/fipsmodule/ec/p256-nistz_test.cc",
+    "src/crypto/fipsmodule/ec/p256_test.cc",
+    "src/crypto/fipsmodule/ecdsa/ecdsa_test.cc",
+    "src/crypto/fipsmodule/hkdf/hkdf_test.cc",
+    "src/crypto/fipsmodule/modes/gcm_test.cc",
+    "src/crypto/fipsmodule/rand/ctrdrbg_test.cc",
+    "src/crypto/fipsmodule/service_indicator/service_indicator_test.cc",
+    "src/crypto/fipsmodule/sha/sha_test.cc",
+    "src/crypto/hmac_extra/hmac_test.cc",
+    "src/crypto/hpke/hpke_test.cc",
+    "src/crypto/hrss/hrss_test.cc",
+    "src/crypto/impl_dispatch_test.cc",
+    "src/crypto/keccak/keccak_test.cc",
+    "src/crypto/kyber/kyber_test.cc",
+    "src/crypto/lhash/lhash_test.cc",
+    "src/crypto/md5/md5_test.cc",
+    "src/crypto/mldsa/mldsa_test.cc",
+    "src/crypto/mlkem/mlkem_test.cc",
+    "src/crypto/obj/obj_test.cc",
+    "src/crypto/pem/pem_test.cc",
+    "src/crypto/pkcs7/pkcs7_test.cc",
+    "src/crypto/pkcs8/pkcs12_test.cc",
+    "src/crypto/pkcs8/pkcs8_test.cc",
+    "src/crypto/poly1305/poly1305_test.cc",
+    "src/crypto/pool/pool_test.cc",
+    "src/crypto/rand_extra/fork_detect_test.cc",
+    "src/crypto/rand_extra/getentropy_test.cc",
+    "src/crypto/rand_extra/rand_test.cc",
+    "src/crypto/refcount_test.cc",
+    "src/crypto/rsa_extra/rsa_test.cc",
+    "src/crypto/self_test.cc",
+    "src/crypto/siphash/siphash_test.cc",
+    "src/crypto/slhdsa/slhdsa_test.cc",
+    "src/crypto/spx/spx_test.cc",
+    "src/crypto/stack/stack_test.cc",
+    "src/crypto/test/gtest_main.cc",
+    "src/crypto/thread_test.cc",
+    "src/crypto/trust_token/trust_token_test.cc",
+    "src/crypto/x509/tab_test.cc",
+    "src/crypto/x509/x509_test.cc",
+    "src/crypto/x509/x509_time_test.cc",
+]
+
+ssl_test_sources = [
+    "src/crypto/test/gtest_main.cc",
+    "src/ssl/span_test.cc",
+    "src/ssl/ssl_c_test.c",
+    "src/ssl/ssl_test.cc",
+]
+
+pki_test_sources = [
+    "src/crypto/test/gtest_main.cc",
+    "src/pki/cert_issuer_source_static_unittest.cc",
+    "src/pki/certificate_policies_unittest.cc",
+    "src/pki/certificate_unittest.cc",
+    "src/pki/crl_unittest.cc",
+    "src/pki/encode_values_unittest.cc",
+    "src/pki/extended_key_usage_unittest.cc",
+    "src/pki/general_names_unittest.cc",
+    "src/pki/input_unittest.cc",
+    "src/pki/ip_util_unittest.cc",
+    "src/pki/mock_signature_verify_cache.cc",
+    "src/pki/name_constraints_unittest.cc",
+    "src/pki/nist_pkits_unittest.cc",
+    "src/pki/ocsp_unittest.cc",
+    "src/pki/parse_certificate_unittest.cc",
+    "src/pki/parse_name_unittest.cc",
+    "src/pki/parse_values_unittest.cc",
+    "src/pki/parsed_certificate_unittest.cc",
+    "src/pki/parser_unittest.cc",
+    "src/pki/path_builder_pkits_unittest.cc",
+    "src/pki/path_builder_unittest.cc",
+    "src/pki/path_builder_verify_certificate_chain_unittest.cc",
+    "src/pki/pem_unittest.cc",
+    "src/pki/signature_algorithm_unittest.cc",
+    "src/pki/simple_path_builder_delegate_unittest.cc",
+    "src/pki/string_util_unittest.cc",
+    "src/pki/test_helpers.cc",
+    "src/pki/trust_store_collection_unittest.cc",
+    "src/pki/trust_store_in_memory_unittest.cc",
+    "src/pki/verify_certificate_chain_pkits_unittest.cc",
+    "src/pki/verify_certificate_chain_unittest.cc",
+    "src/pki/verify_name_match_unittest.cc",
+    "src/pki/verify_signed_data_unittest.cc",
+    "src/pki/verify_unittest.cc",
+]
+
+crypto_test_data = [
+    "src/crypto/blake2/blake2b256_tests.txt",
+    "src/crypto/cipher_extra/test/aes_128_cbc_sha1_tls_implicit_iv_tests.txt",
+    "src/crypto/cipher_extra/test/aes_128_cbc_sha1_tls_tests.txt",
+    "src/crypto/cipher_extra/test/aes_128_ccm_bluetooth_8_tests.txt",
+    "src/crypto/cipher_extra/test/aes_128_ccm_bluetooth_tests.txt",
+    "src/crypto/cipher_extra/test/aes_128_ccm_matter_tests.txt",
+    "src/crypto/cipher_extra/test/aes_128_ctr_hmac_sha256.txt",
+    "src/crypto/cipher_extra/test/aes_128_gcm_randnonce_tests.txt",
+    "src/crypto/cipher_extra/test/aes_128_gcm_siv_tests.txt",
+    "src/crypto/cipher_extra/test/aes_128_gcm_tests.txt",
+    "src/crypto/cipher_extra/test/aes_192_gcm_tests.txt",
+    "src/crypto/cipher_extra/test/aes_256_cbc_sha1_tls_implicit_iv_tests.txt",
+    "src/crypto/cipher_extra/test/aes_256_cbc_sha1_tls_tests.txt",
+    "src/crypto/cipher_extra/test/aes_256_ctr_hmac_sha256.txt",
+    "src/crypto/cipher_extra/test/aes_256_gcm_randnonce_tests.txt",
+    "src/crypto/cipher_extra/test/aes_256_gcm_siv_tests.txt",
+    "src/crypto/cipher_extra/test/aes_256_gcm_tests.txt",
+    "src/crypto/cipher_extra/test/chacha20_poly1305_tests.txt",
+    "src/crypto/cipher_extra/test/cipher_tests.txt",
+    "src/crypto/cipher_extra/test/des_ede3_cbc_sha1_tls_implicit_iv_tests.txt",
+    "src/crypto/cipher_extra/test/des_ede3_cbc_sha1_tls_tests.txt",
+    "src/crypto/cipher_extra/test/nist_cavp/aes_128_cbc.txt",
+    "src/crypto/cipher_extra/test/nist_cavp/aes_128_ctr.txt",
+    "src/crypto/cipher_extra/test/nist_cavp/aes_128_gcm.txt",
+    "src/crypto/cipher_extra/test/nist_cavp/aes_192_cbc.txt",
+    "src/crypto/cipher_extra/test/nist_cavp/aes_192_ctr.txt",
+    "src/crypto/cipher_extra/test/nist_cavp/aes_256_cbc.txt",
+    "src/crypto/cipher_extra/test/nist_cavp/aes_256_ctr.txt",
+    "src/crypto/cipher_extra/test/nist_cavp/aes_256_gcm.txt",
+    "src/crypto/cipher_extra/test/nist_cavp/tdes_cbc.txt",
+    "src/crypto/cipher_extra/test/nist_cavp/tdes_ecb.txt",
+    "src/crypto/cipher_extra/test/xchacha20_poly1305_tests.txt",
+    "src/crypto/curve25519/ed25519_tests.txt",
+    "src/crypto/dilithium/dilithium_tests.txt",
+    "src/crypto/dilithium/edge_cases_draft_dilithium3_sign.txt",
+    "src/crypto/dilithium/edge_cases_draft_dilithium3_verify.txt",
+    "src/crypto/ecdh_extra/ecdh_tests.txt",
+    "src/crypto/evp/evp_tests.txt",
+    "src/crypto/evp/scrypt_tests.txt",
+    "src/crypto/fipsmodule/aes/aes_tests.txt",
+    "src/crypto/fipsmodule/bn/test/exp_tests.txt",
+    "src/crypto/fipsmodule/bn/test/gcd_tests.txt",
+    "src/crypto/fipsmodule/bn/test/miller_rabin_tests.txt",
+    "src/crypto/fipsmodule/bn/test/mod_exp_tests.txt",
+    "src/crypto/fipsmodule/bn/test/mod_inv_tests.txt",
+    "src/crypto/fipsmodule/bn/test/mod_mul_tests.txt",
+    "src/crypto/fipsmodule/bn/test/mod_sqrt_tests.txt",
+    "src/crypto/fipsmodule/bn/test/product_tests.txt",
+    "src/crypto/fipsmodule/bn/test/quotient_tests.txt",
+    "src/crypto/fipsmodule/bn/test/shift_tests.txt",
+    "src/crypto/fipsmodule/bn/test/sum_tests.txt",
+    "src/crypto/fipsmodule/cmac/cavp_3des_cmac_tests.txt",
+    "src/crypto/fipsmodule/cmac/cavp_aes128_cmac_tests.txt",
+    "src/crypto/fipsmodule/cmac/cavp_aes192_cmac_tests.txt",
+    "src/crypto/fipsmodule/cmac/cavp_aes256_cmac_tests.txt",
+    "src/crypto/fipsmodule/ec/ec_scalar_base_mult_tests.txt",
+    "src/crypto/fipsmodule/ec/p256-nistz_tests.txt",
+    "src/crypto/fipsmodule/ecdsa/ecdsa_sign_tests.txt",
+    "src/crypto/fipsmodule/ecdsa/ecdsa_verify_tests.txt",
+    "src/crypto/fipsmodule/modes/gcm_tests.txt",
+    "src/crypto/fipsmodule/rand/ctrdrbg_vectors.txt",
+    "src/crypto/hmac_extra/hmac_tests.txt",
+    "src/crypto/hpke/hpke_test_vectors.txt",
+    "src/crypto/keccak/keccak_tests.txt",
+    "src/crypto/kyber/kyber_tests.txt",
+    "src/crypto/mldsa/mldsa_nist_keygen_tests.txt",
+    "src/crypto/mldsa/mldsa_nist_siggen_tests.txt",
+    "src/crypto/mlkem/mlkem1024_decap_tests.txt",
+    "src/crypto/mlkem/mlkem1024_encap_tests.txt",
+    "src/crypto/mlkem/mlkem1024_keygen_tests.txt",
+    "src/crypto/mlkem/mlkem1024_nist_decap_tests.txt",
+    "src/crypto/mlkem/mlkem1024_nist_keygen_tests.txt",
+    "src/crypto/mlkem/mlkem768_decap_tests.txt",
+    "src/crypto/mlkem/mlkem768_encap_tests.txt",
+    "src/crypto/mlkem/mlkem768_keygen_tests.txt",
+    "src/crypto/mlkem/mlkem768_nist_decap_tests.txt",
+    "src/crypto/mlkem/mlkem768_nist_keygen_tests.txt",
+    "src/crypto/pkcs8/test/bad1.p12",
+    "src/crypto/pkcs8/test/bad2.p12",
+    "src/crypto/pkcs8/test/bad3.p12",
+    "src/crypto/pkcs8/test/empty_password.p12",
+    "src/crypto/pkcs8/test/empty_password_ber.p12",
+    "src/crypto/pkcs8/test/empty_password_ber_nested.p12",
+    "src/crypto/pkcs8/test/no_encryption.p12",
+    "src/crypto/pkcs8/test/nss.p12",
+    "src/crypto/pkcs8/test/null_password.p12",
+    "src/crypto/pkcs8/test/openssl.p12",
+    "src/crypto/pkcs8/test/pbes2_sha1.p12",
+    "src/crypto/pkcs8/test/pbes2_sha256.p12",
+    "src/crypto/pkcs8/test/unicode_password.p12",
+    "src/crypto/pkcs8/test/windows.p12",
+    "src/crypto/poly1305/poly1305_tests.txt",
+    "src/crypto/siphash/siphash_tests.txt",
+    "src/crypto/slhdsa/slhdsa_keygen.txt",
+    "src/crypto/slhdsa/slhdsa_siggen.txt",
+    "src/crypto/slhdsa/slhdsa_sigver.txt",
+    "src/crypto/spx/spx_tests.txt",
+    "src/crypto/spx/spx_tests_deterministic.txt",
+    "src/crypto/x509/test/basic_constraints_ca.pem",
+    "src/crypto/x509/test/basic_constraints_ca_pathlen_0.pem",
+    "src/crypto/x509/test/basic_constraints_ca_pathlen_1.pem",
+    "src/crypto/x509/test/basic_constraints_ca_pathlen_10.pem",
+    "src/crypto/x509/test/basic_constraints_leaf.pem",
+    "src/crypto/x509/test/basic_constraints_none.pem",
+    "src/crypto/x509/test/invalid_extension_intermediate.pem",
+    "src/crypto/x509/test/invalid_extension_intermediate_authority_key_identifier.pem",
+    "src/crypto/x509/test/invalid_extension_intermediate_basic_constraints.pem",
+    "src/crypto/x509/test/invalid_extension_intermediate_ext_key_usage.pem",
+    "src/crypto/x509/test/invalid_extension_intermediate_key_usage.pem",
+    "src/crypto/x509/test/invalid_extension_intermediate_name_constraints.pem",
+    "src/crypto/x509/test/invalid_extension_intermediate_subject_alt_name.pem",
+    "src/crypto/x509/test/invalid_extension_intermediate_subject_key_identifier.pem",
+    "src/crypto/x509/test/invalid_extension_leaf.pem",
+    "src/crypto/x509/test/invalid_extension_leaf_authority_key_identifier.pem",
+    "src/crypto/x509/test/invalid_extension_leaf_basic_constraints.pem",
+    "src/crypto/x509/test/invalid_extension_leaf_ext_key_usage.pem",
+    "src/crypto/x509/test/invalid_extension_leaf_key_usage.pem",
+    "src/crypto/x509/test/invalid_extension_leaf_name_constraints.pem",
+    "src/crypto/x509/test/invalid_extension_leaf_subject_alt_name.pem",
+    "src/crypto/x509/test/invalid_extension_leaf_subject_key_identifier.pem",
+    "src/crypto/x509/test/invalid_extension_root.pem",
+    "src/crypto/x509/test/invalid_extension_root_authority_key_identifier.pem",
+    "src/crypto/x509/test/invalid_extension_root_basic_constraints.pem",
+    "src/crypto/x509/test/invalid_extension_root_ext_key_usage.pem",
+    "src/crypto/x509/test/invalid_extension_root_key_usage.pem",
+    "src/crypto/x509/test/invalid_extension_root_name_constraints.pem",
+    "src/crypto/x509/test/invalid_extension_root_subject_alt_name.pem",
+    "src/crypto/x509/test/invalid_extension_root_subject_key_identifier.pem",
+    "src/crypto/x509/test/many_constraints.pem",
+    "src/crypto/x509/test/many_names1.pem",
+    "src/crypto/x509/test/many_names2.pem",
+    "src/crypto/x509/test/many_names3.pem",
+    "src/crypto/x509/test/policy_intermediate.pem",
+    "src/crypto/x509/test/policy_intermediate_any.pem",
+    "src/crypto/x509/test/policy_intermediate_duplicate.pem",
+    "src/crypto/x509/test/policy_intermediate_invalid.pem",
+    "src/crypto/x509/test/policy_intermediate_mapped.pem",
+    "src/crypto/x509/test/policy_intermediate_mapped_any.pem",
+    "src/crypto/x509/test/policy_intermediate_mapped_oid3.pem",
+    "src/crypto/x509/test/policy_intermediate_require.pem",
+    "src/crypto/x509/test/policy_intermediate_require1.pem",
+    "src/crypto/x509/test/policy_intermediate_require2.pem",
+    "src/crypto/x509/test/policy_intermediate_require_duplicate.pem",
+    "src/crypto/x509/test/policy_intermediate_require_no_policies.pem",
+    "src/crypto/x509/test/policy_leaf.pem",
+    "src/crypto/x509/test/policy_leaf_any.pem",
+    "src/crypto/x509/test/policy_leaf_duplicate.pem",
+    "src/crypto/x509/test/policy_leaf_invalid.pem",
+    "src/crypto/x509/test/policy_leaf_none.pem",
+    "src/crypto/x509/test/policy_leaf_oid1.pem",
+    "src/crypto/x509/test/policy_leaf_oid2.pem",
+    "src/crypto/x509/test/policy_leaf_oid3.pem",
+    "src/crypto/x509/test/policy_leaf_oid4.pem",
+    "src/crypto/x509/test/policy_leaf_oid5.pem",
+    "src/crypto/x509/test/policy_leaf_require.pem",
+    "src/crypto/x509/test/policy_leaf_require1.pem",
+    "src/crypto/x509/test/policy_root.pem",
+    "src/crypto/x509/test/policy_root2.pem",
+    "src/crypto/x509/test/policy_root_cross_inhibit_mapping.pem",
+    "src/crypto/x509/test/pss_sha1.pem",
+    "src/crypto/x509/test/pss_sha1_explicit.pem",
+    "src/crypto/x509/test/pss_sha1_mgf1_syntax_error.pem",
+    "src/crypto/x509/test/pss_sha224.pem",
+    "src/crypto/x509/test/pss_sha256.pem",
+    "src/crypto/x509/test/pss_sha256_explicit_trailer.pem",
+    "src/crypto/x509/test/pss_sha256_mgf1_sha384.pem",
+    "src/crypto/x509/test/pss_sha256_mgf1_syntax_error.pem",
+    "src/crypto/x509/test/pss_sha256_omit_nulls.pem",
+    "src/crypto/x509/test/pss_sha256_salt31.pem",
+    "src/crypto/x509/test/pss_sha256_salt_overflow.pem",
+    "src/crypto/x509/test/pss_sha256_unknown_mgf.pem",
+    "src/crypto/x509/test/pss_sha256_wrong_trailer.pem",
+    "src/crypto/x509/test/pss_sha384.pem",
+    "src/crypto/x509/test/pss_sha512.pem",
+    "src/crypto/x509/test/some_names1.pem",
+    "src/crypto/x509/test/some_names2.pem",
+    "src/crypto/x509/test/some_names3.pem",
+    "src/crypto/x509/test/trailing_data_leaf_authority_key_identifier.pem",
+    "src/crypto/x509/test/trailing_data_leaf_basic_constraints.pem",
+    "src/crypto/x509/test/trailing_data_leaf_ext_key_usage.pem",
+    "src/crypto/x509/test/trailing_data_leaf_key_usage.pem",
+    "src/crypto/x509/test/trailing_data_leaf_name_constraints.pem",
+    "src/crypto/x509/test/trailing_data_leaf_subject_alt_name.pem",
+    "src/crypto/x509/test/trailing_data_leaf_subject_key_identifier.pem",
+    "src/third_party/wycheproof_testvectors/aes_cbc_pkcs5_test.txt",
+    "src/third_party/wycheproof_testvectors/aes_cmac_test.txt",
+    "src/third_party/wycheproof_testvectors/aes_gcm_siv_test.txt",
+    "src/third_party/wycheproof_testvectors/aes_gcm_test.txt",
+    "src/third_party/wycheproof_testvectors/chacha20_poly1305_test.txt",
+    "src/third_party/wycheproof_testvectors/dsa_test.txt",
+    "src/third_party/wycheproof_testvectors/ecdh_secp224r1_test.txt",
+    "src/third_party/wycheproof_testvectors/ecdh_secp256r1_test.txt",
+    "src/third_party/wycheproof_testvectors/ecdh_secp384r1_test.txt",
+    "src/third_party/wycheproof_testvectors/ecdh_secp521r1_test.txt",
+    "src/third_party/wycheproof_testvectors/ecdsa_secp224r1_sha224_test.txt",
+    "src/third_party/wycheproof_testvectors/ecdsa_secp224r1_sha256_test.txt",
+    "src/third_party/wycheproof_testvectors/ecdsa_secp224r1_sha512_test.txt",
+    "src/third_party/wycheproof_testvectors/ecdsa_secp256r1_sha256_test.txt",
+    "src/third_party/wycheproof_testvectors/ecdsa_secp256r1_sha512_test.txt",
+    "src/third_party/wycheproof_testvectors/ecdsa_secp384r1_sha384_test.txt",
+    "src/third_party/wycheproof_testvectors/ecdsa_secp384r1_sha512_test.txt",
+    "src/third_party/wycheproof_testvectors/ecdsa_secp521r1_sha512_test.txt",
+    "src/third_party/wycheproof_testvectors/eddsa_test.txt",
+    "src/third_party/wycheproof_testvectors/hkdf_sha1_test.txt",
+    "src/third_party/wycheproof_testvectors/hkdf_sha256_test.txt",
+    "src/third_party/wycheproof_testvectors/hkdf_sha384_test.txt",
+    "src/third_party/wycheproof_testvectors/hkdf_sha512_test.txt",
+    "src/third_party/wycheproof_testvectors/hmac_sha1_test.txt",
+    "src/third_party/wycheproof_testvectors/hmac_sha224_test.txt",
+    "src/third_party/wycheproof_testvectors/hmac_sha256_test.txt",
+    "src/third_party/wycheproof_testvectors/hmac_sha384_test.txt",
+    "src/third_party/wycheproof_testvectors/hmac_sha512_test.txt",
+    "src/third_party/wycheproof_testvectors/kw_test.txt",
+    "src/third_party/wycheproof_testvectors/kwp_test.txt",
+    "src/third_party/wycheproof_testvectors/mldsa_65_standard_sign_test.txt",
+    "src/third_party/wycheproof_testvectors/mldsa_65_standard_verify_test.txt",
+    "src/third_party/wycheproof_testvectors/primality_test.txt",
+    "src/third_party/wycheproof_testvectors/rsa_oaep_2048_sha1_mgf1sha1_test.txt",
+    "src/third_party/wycheproof_testvectors/rsa_oaep_2048_sha224_mgf1sha1_test.txt",
+    "src/third_party/wycheproof_testvectors/rsa_oaep_2048_sha224_mgf1sha224_test.txt",
+    "src/third_party/wycheproof_testvectors/rsa_oaep_2048_sha256_mgf1sha1_test.txt",
+    "src/third_party/wycheproof_testvectors/rsa_oaep_2048_sha256_mgf1sha256_test.txt",
+    "src/third_party/wycheproof_testvectors/rsa_oaep_2048_sha384_mgf1sha1_test.txt",
+    "src/third_party/wycheproof_testvectors/rsa_oaep_2048_sha384_mgf1sha384_test.txt",
+    "src/third_party/wycheproof_testvectors/rsa_oaep_2048_sha512_mgf1sha1_test.txt",
+    "src/third_party/wycheproof_testvectors/rsa_oaep_2048_sha512_mgf1sha512_test.txt",
+    "src/third_party/wycheproof_testvectors/rsa_oaep_3072_sha256_mgf1sha1_test.txt",
+    "src/third_party/wycheproof_testvectors/rsa_oaep_3072_sha256_mgf1sha256_test.txt",
+    "src/third_party/wycheproof_testvectors/rsa_oaep_3072_sha512_mgf1sha1_test.txt",
+    "src/third_party/wycheproof_testvectors/rsa_oaep_3072_sha512_mgf1sha512_test.txt",
+    "src/third_party/wycheproof_testvectors/rsa_oaep_4096_sha256_mgf1sha1_test.txt",
+    "src/third_party/wycheproof_testvectors/rsa_oaep_4096_sha256_mgf1sha256_test.txt",
+    "src/third_party/wycheproof_testvectors/rsa_oaep_4096_sha512_mgf1sha1_test.txt",
+    "src/third_party/wycheproof_testvectors/rsa_oaep_4096_sha512_mgf1sha512_test.txt",
+    "src/third_party/wycheproof_testvectors/rsa_oaep_misc_test.txt",
+    "src/third_party/wycheproof_testvectors/rsa_pkcs1_2048_test.txt",
+    "src/third_party/wycheproof_testvectors/rsa_pkcs1_3072_test.txt",
+    "src/third_party/wycheproof_testvectors/rsa_pkcs1_4096_test.txt",
+    "src/third_party/wycheproof_testvectors/rsa_pss_2048_sha1_mgf1_20_test.txt",
+    "src/third_party/wycheproof_testvectors/rsa_pss_2048_sha256_mgf1_0_test.txt",
+    "src/third_party/wycheproof_testvectors/rsa_pss_2048_sha256_mgf1_32_test.txt",
+    "src/third_party/wycheproof_testvectors/rsa_pss_3072_sha256_mgf1_32_test.txt",
+    "src/third_party/wycheproof_testvectors/rsa_pss_4096_sha256_mgf1_32_test.txt",
+    "src/third_party/wycheproof_testvectors/rsa_pss_4096_sha512_mgf1_32_test.txt",
+    "src/third_party/wycheproof_testvectors/rsa_pss_misc_test.txt",
+    "src/third_party/wycheproof_testvectors/rsa_sig_gen_misc_test.txt",
+    "src/third_party/wycheproof_testvectors/rsa_signature_2048_sha224_test.txt",
+    "src/third_party/wycheproof_testvectors/rsa_signature_2048_sha256_test.txt",
+    "src/third_party/wycheproof_testvectors/rsa_signature_2048_sha384_test.txt",
+    "src/third_party/wycheproof_testvectors/rsa_signature_2048_sha512_test.txt",
+    "src/third_party/wycheproof_testvectors/rsa_signature_3072_sha256_test.txt",
+    "src/third_party/wycheproof_testvectors/rsa_signature_3072_sha384_test.txt",
+    "src/third_party/wycheproof_testvectors/rsa_signature_3072_sha512_test.txt",
+    "src/third_party/wycheproof_testvectors/rsa_signature_4096_sha384_test.txt",
+    "src/third_party/wycheproof_testvectors/rsa_signature_4096_sha512_test.txt",
+    "src/third_party/wycheproof_testvectors/rsa_signature_test.txt",
+    "src/third_party/wycheproof_testvectors/x25519_test.txt",
+    "src/third_party/wycheproof_testvectors/xchacha20_poly1305_test.txt",
+]
+
+pki_test_data = [
+    "src/pki/testdata/cert_issuer_source_static_unittest/c1.pem",
+    "src/pki/testdata/cert_issuer_source_static_unittest/c2.pem",
+    "src/pki/testdata/cert_issuer_source_static_unittest/d.pem",
+    "src/pki/testdata/cert_issuer_source_static_unittest/e1.pem",
+    "src/pki/testdata/cert_issuer_source_static_unittest/e2.pem",
+    "src/pki/testdata/cert_issuer_source_static_unittest/i1_1.pem",
+    "src/pki/testdata/cert_issuer_source_static_unittest/i1_2.pem",
+    "src/pki/testdata/cert_issuer_source_static_unittest/i2.pem",
+    "src/pki/testdata/cert_issuer_source_static_unittest/i3_1.pem",
+    "src/pki/testdata/cert_issuer_source_static_unittest/i3_2.pem",
+    "src/pki/testdata/cert_issuer_source_static_unittest/root.pem",
+    "src/pki/testdata/certificate_policies_unittest/anypolicy.pem",
+    "src/pki/testdata/certificate_policies_unittest/anypolicy_with_qualifier.pem",
+    "src/pki/testdata/certificate_policies_unittest/invalid-anypolicy_with_custom_qualifier.pem",
+    "src/pki/testdata/certificate_policies_unittest/invalid-empty.pem",
+    "src/pki/testdata/certificate_policies_unittest/invalid-policy_1_2_3_dupe.pem",
+    "src/pki/testdata/certificate_policies_unittest/invalid-policy_1_2_3_policyinformation_unconsumed_data.pem",
+    "src/pki/testdata/certificate_policies_unittest/invalid-policy_1_2_3_policyqualifierinfo_unconsumed_data.pem",
+    "src/pki/testdata/certificate_policies_unittest/invalid-policy_1_2_3_with_empty_qualifiers_sequence.pem",
+    "src/pki/testdata/certificate_policies_unittest/invalid-policy_identifier_not_oid.pem",
+    "src/pki/testdata/certificate_policies_unittest/policy_1_2_3.pem",
+    "src/pki/testdata/certificate_policies_unittest/policy_1_2_3_and_1_2_4.pem",
+    "src/pki/testdata/certificate_policies_unittest/policy_1_2_3_and_1_2_4_with_qualifiers.pem",
+    "src/pki/testdata/certificate_policies_unittest/policy_1_2_3_with_custom_qualifier.pem",
+    "src/pki/testdata/certificate_policies_unittest/policy_1_2_3_with_qualifier.pem",
+    "src/pki/testdata/crl_unittest/bad_crldp_has_crlissuer.pem",
+    "src/pki/testdata/crl_unittest/bad_fake_critical_crlentryextension.pem",
+    "src/pki/testdata/crl_unittest/bad_fake_critical_extension.pem",
+    "src/pki/testdata/crl_unittest/bad_idp_contains_wrong_uri.pem",
+    "src/pki/testdata/crl_unittest/bad_idp_indirectcrl.pem",
+    "src/pki/testdata/crl_unittest/bad_idp_onlycontainscacerts.pem",
+    "src/pki/testdata/crl_unittest/bad_idp_onlycontainscacerts_no_basic_constraints.pem",
+    "src/pki/testdata/crl_unittest/bad_idp_onlycontainsusercerts.pem",
+    "src/pki/testdata/crl_unittest/bad_idp_uri_and_onlycontainscacerts.pem",
+    "src/pki/testdata/crl_unittest/bad_idp_uri_and_onlycontainsusercerts.pem",
+    "src/pki/testdata/crl_unittest/bad_key_rollover_signature.pem",
+    "src/pki/testdata/crl_unittest/bad_nextupdate_too_old.pem",
+    "src/pki/testdata/crl_unittest/bad_signature.pem",
+    "src/pki/testdata/crl_unittest/bad_thisupdate_in_future.pem",
+    "src/pki/testdata/crl_unittest/bad_thisupdate_too_old.pem",
+    "src/pki/testdata/crl_unittest/bad_wrong_issuer.pem",
+    "src/pki/testdata/crl_unittest/good.pem",
+    "src/pki/testdata/crl_unittest/good_fake_extension.pem",
+    "src/pki/testdata/crl_unittest/good_fake_extension_no_nextupdate.pem",
+    "src/pki/testdata/crl_unittest/good_generalizedtime.pem",
+    "src/pki/testdata/crl_unittest/good_idp_contains_uri.pem",
+    "src/pki/testdata/crl_unittest/good_idp_onlycontainscacerts.pem",
+    "src/pki/testdata/crl_unittest/good_idp_onlycontainsusercerts.pem",
+    "src/pki/testdata/crl_unittest/good_idp_onlycontainsusercerts_no_basic_constraints.pem",
+    "src/pki/testdata/crl_unittest/good_idp_uri_and_onlycontainscacerts.pem",
+    "src/pki/testdata/crl_unittest/good_idp_uri_and_onlycontainsusercerts.pem",
+    "src/pki/testdata/crl_unittest/good_issuer_name_normalization.pem",
+    "src/pki/testdata/crl_unittest/good_issuer_no_keyusage.pem",
+    "src/pki/testdata/crl_unittest/good_key_rollover.pem",
+    "src/pki/testdata/crl_unittest/good_no_crldp.pem",
+    "src/pki/testdata/crl_unittest/good_no_nextupdate.pem",
+    "src/pki/testdata/crl_unittest/good_no_version.pem",
+    "src/pki/testdata/crl_unittest/invalid_garbage_after_crlentryextensions.pem",
+    "src/pki/testdata/crl_unittest/invalid_garbage_after_extensions.pem",
+    "src/pki/testdata/crl_unittest/invalid_garbage_after_nextupdate.pem",
+    "src/pki/testdata/crl_unittest/invalid_garbage_after_revocationdate.pem",
+    "src/pki/testdata/crl_unittest/invalid_garbage_after_revokedcerts.pem",
+    "src/pki/testdata/crl_unittest/invalid_garbage_after_signaturevalue.pem",
+    "src/pki/testdata/crl_unittest/invalid_garbage_after_thisupdate.pem",
+    "src/pki/testdata/crl_unittest/invalid_garbage_crlentry.pem",
+    "src/pki/testdata/crl_unittest/invalid_garbage_issuer_name.pem",
+    "src/pki/testdata/crl_unittest/invalid_garbage_revocationdate.pem",
+    "src/pki/testdata/crl_unittest/invalid_garbage_revoked_serial_number.pem",
+    "src/pki/testdata/crl_unittest/invalid_garbage_signaturealgorithm.pem",
+    "src/pki/testdata/crl_unittest/invalid_garbage_signaturevalue.pem",
+    "src/pki/testdata/crl_unittest/invalid_garbage_tbs_signature_algorithm.pem",
+    "src/pki/testdata/crl_unittest/invalid_garbage_tbscertlist.pem",
+    "src/pki/testdata/crl_unittest/invalid_garbage_thisupdate.pem",
+    "src/pki/testdata/crl_unittest/invalid_garbage_version.pem",
+    "src/pki/testdata/crl_unittest/invalid_idp_dpname_choice_extra_data.pem",
+    "src/pki/testdata/crl_unittest/invalid_idp_empty_sequence.pem",
+    "src/pki/testdata/crl_unittest/invalid_idp_onlycontains_user_and_ca_certs.pem",
+    "src/pki/testdata/crl_unittest/invalid_idp_onlycontainsusercerts_v1_leaf.pem",
+    "src/pki/testdata/crl_unittest/invalid_issuer_keyusage_no_crlsign.pem",
+    "src/pki/testdata/crl_unittest/invalid_key_rollover_issuer_keyusage_no_crlsign.pem",
+    "src/pki/testdata/crl_unittest/invalid_mismatched_signature_algorithm.pem",
+    "src/pki/testdata/crl_unittest/invalid_revoked_empty_sequence.pem",
+    "src/pki/testdata/crl_unittest/invalid_v1_explicit.pem",
+    "src/pki/testdata/crl_unittest/invalid_v1_with_crlentryextension.pem",
+    "src/pki/testdata/crl_unittest/invalid_v1_with_extension.pem",
+    "src/pki/testdata/crl_unittest/invalid_v3.pem",
+    "src/pki/testdata/crl_unittest/revoked.pem",
+    "src/pki/testdata/crl_unittest/revoked_fake_crlentryextension.pem",
+    "src/pki/testdata/crl_unittest/revoked_generalized_revocationdate.pem",
+    "src/pki/testdata/crl_unittest/revoked_key_rollover.pem",
+    "src/pki/testdata/crl_unittest/revoked_no_nextupdate.pem",
+    "src/pki/testdata/name_constraints_unittest/directoryname-excludeall.pem",
+    "src/pki/testdata/name_constraints_unittest/directoryname-excluded.pem",
+    "src/pki/testdata/name_constraints_unittest/directoryname.pem",
+    "src/pki/testdata/name_constraints_unittest/directoryname_and_dnsname.pem",
+    "src/pki/testdata/name_constraints_unittest/directoryname_and_dnsname_and_ipaddress.pem",
+    "src/pki/testdata/name_constraints_unittest/dnsname-exclude_dot.pem",
+    "src/pki/testdata/name_constraints_unittest/dnsname-excludeall.pem",
+    "src/pki/testdata/name_constraints_unittest/dnsname-excluded.pem",
+    "src/pki/testdata/name_constraints_unittest/dnsname-excluded_with_leading_dot.pem",
+    "src/pki/testdata/name_constraints_unittest/dnsname-permitted_two_dot.pem",
+    "src/pki/testdata/name_constraints_unittest/dnsname-permitted_with_leading_dot.pem",
+    "src/pki/testdata/name_constraints_unittest/dnsname-with_max.pem",
+    "src/pki/testdata/name_constraints_unittest/dnsname-with_min_0.pem",
+    "src/pki/testdata/name_constraints_unittest/dnsname-with_min_0_and_max.pem",
+    "src/pki/testdata/name_constraints_unittest/dnsname-with_min_1.pem",
+    "src/pki/testdata/name_constraints_unittest/dnsname-with_min_1_and_max.pem",
+    "src/pki/testdata/name_constraints_unittest/dnsname.pem",
+    "src/pki/testdata/name_constraints_unittest/dnsname2.pem",
+    "src/pki/testdata/name_constraints_unittest/edipartyname-excluded.pem",
+    "src/pki/testdata/name_constraints_unittest/edipartyname-permitted.pem",
+    "src/pki/testdata/name_constraints_unittest/invalid-empty_excluded_subtree.pem",
+    "src/pki/testdata/name_constraints_unittest/invalid-empty_permitted_subtree.pem",
+    "src/pki/testdata/name_constraints_unittest/invalid-no_subtrees.pem",
+    "src/pki/testdata/name_constraints_unittest/ipaddress-excludeall.pem",
+    "src/pki/testdata/name_constraints_unittest/ipaddress-excluded.pem",
+    "src/pki/testdata/name_constraints_unittest/ipaddress-invalid_addr.pem",
+    "src/pki/testdata/name_constraints_unittest/ipaddress-invalid_mask_not_contiguous_1.pem",
+    "src/pki/testdata/name_constraints_unittest/ipaddress-invalid_mask_not_contiguous_2.pem",
+    "src/pki/testdata/name_constraints_unittest/ipaddress-invalid_mask_not_contiguous_3.pem",
+    "src/pki/testdata/name_constraints_unittest/ipaddress-invalid_mask_not_contiguous_4.pem",
+    "src/pki/testdata/name_constraints_unittest/ipaddress-mapped_addrs.pem",
+    "src/pki/testdata/name_constraints_unittest/ipaddress-permit_all.pem",
+    "src/pki/testdata/name_constraints_unittest/ipaddress-permit_prefix1.pem",
+    "src/pki/testdata/name_constraints_unittest/ipaddress-permit_prefix31.pem",
+    "src/pki/testdata/name_constraints_unittest/ipaddress-permit_singlehost.pem",
+    "src/pki/testdata/name_constraints_unittest/ipaddress.pem",
+    "src/pki/testdata/name_constraints_unittest/name-ca.pem",
+    "src/pki/testdata/name_constraints_unittest/name-de.pem",
+    "src/pki/testdata/name_constraints_unittest/name-empty.pem",
+    "src/pki/testdata/name_constraints_unittest/name-jp-tokyo.pem",
+    "src/pki/testdata/name_constraints_unittest/name-jp.pem",
+    "src/pki/testdata/name_constraints_unittest/name-us-arizona-1.1.1.1.pem",
+    "src/pki/testdata/name_constraints_unittest/name-us-arizona-192.168.1.1.pem",
+    "src/pki/testdata/name_constraints_unittest/name-us-arizona-email-invalidstring.pem",
+    "src/pki/testdata/name_constraints_unittest/name-us-arizona-email-localpartcase.pem",
+    "src/pki/testdata/name_constraints_unittest/name-us-arizona-email-multiple.pem",
+    "src/pki/testdata/name_constraints_unittest/name-us-arizona-email.pem",
+    "src/pki/testdata/name_constraints_unittest/name-us-arizona-foo.com.pem",
+    "src/pki/testdata/name_constraints_unittest/name-us-arizona-ipv6.pem",
+    "src/pki/testdata/name_constraints_unittest/name-us-arizona-permitted.example.com.pem",
+    "src/pki/testdata/name_constraints_unittest/name-us-arizona.pem",
+    "src/pki/testdata/name_constraints_unittest/name-us-california-192.168.1.1.pem",
+    "src/pki/testdata/name_constraints_unittest/name-us-california-mountain_view.pem",
+    "src/pki/testdata/name_constraints_unittest/name-us-california-permitted.example.com.pem",
+    "src/pki/testdata/name_constraints_unittest/name-us-california.pem",
+    "src/pki/testdata/name_constraints_unittest/name-us.pem",
+    "src/pki/testdata/name_constraints_unittest/othername-excluded.pem",
+    "src/pki/testdata/name_constraints_unittest/othername-permitted.pem",
+    "src/pki/testdata/name_constraints_unittest/registeredid-excluded.pem",
+    "src/pki/testdata/name_constraints_unittest/registeredid-permitted.pem",
+    "src/pki/testdata/name_constraints_unittest/rfc822name-excluded-empty.pem",
+    "src/pki/testdata/name_constraints_unittest/rfc822name-excluded-hostname.pem",
+    "src/pki/testdata/name_constraints_unittest/rfc822name-excluded-hostnamewithat.pem",
+    "src/pki/testdata/name_constraints_unittest/rfc822name-excluded-ipv4.pem",
+    "src/pki/testdata/name_constraints_unittest/rfc822name-excluded-quoted.pem",
+    "src/pki/testdata/name_constraints_unittest/rfc822name-excluded-subdomains.pem",
+    "src/pki/testdata/name_constraints_unittest/rfc822name-excluded.pem",
+    "src/pki/testdata/name_constraints_unittest/rfc822name-permitted-empty.pem",
+    "src/pki/testdata/name_constraints_unittest/rfc822name-permitted-hostname.pem",
+    "src/pki/testdata/name_constraints_unittest/rfc822name-permitted-hostnamewithat.pem",
+    "src/pki/testdata/name_constraints_unittest/rfc822name-permitted-ipv4.pem",
+    "src/pki/testdata/name_constraints_unittest/rfc822name-permitted-quoted.pem",
+    "src/pki/testdata/name_constraints_unittest/rfc822name-permitted-subdomains.pem",
+    "src/pki/testdata/name_constraints_unittest/rfc822name-permitted.pem",
+    "src/pki/testdata/name_constraints_unittest/san-directoryname.pem",
+    "src/pki/testdata/name_constraints_unittest/san-dnsname.pem",
+    "src/pki/testdata/name_constraints_unittest/san-edipartyname.pem",
+    "src/pki/testdata/name_constraints_unittest/san-excluded-directoryname.pem",
+    "src/pki/testdata/name_constraints_unittest/san-excluded-dnsname.pem",
+    "src/pki/testdata/name_constraints_unittest/san-excluded-ipaddress.pem",
+    "src/pki/testdata/name_constraints_unittest/san-invalid-empty.pem",
+    "src/pki/testdata/name_constraints_unittest/san-invalid-ipaddress.pem",
+    "src/pki/testdata/name_constraints_unittest/san-ipaddress4.pem",
+    "src/pki/testdata/name_constraints_unittest/san-ipaddress6.pem",
+    "src/pki/testdata/name_constraints_unittest/san-othername.pem",
+    "src/pki/testdata/name_constraints_unittest/san-permitted.pem",
+    "src/pki/testdata/name_constraints_unittest/san-registeredid.pem",
+    "src/pki/testdata/name_constraints_unittest/san-rfc822name-domaincase.pem",
+    "src/pki/testdata/name_constraints_unittest/san-rfc822name-empty-localpart.pem",
+    "src/pki/testdata/name_constraints_unittest/san-rfc822name-empty.pem",
+    "src/pki/testdata/name_constraints_unittest/san-rfc822name-ipv4.pem",
+    "src/pki/testdata/name_constraints_unittest/san-rfc822name-localpartcase.pem",
+    "src/pki/testdata/name_constraints_unittest/san-rfc822name-multiple.pem",
+    "src/pki/testdata/name_constraints_unittest/san-rfc822name-no-at.pem",
+    "src/pki/testdata/name_constraints_unittest/san-rfc822name-quoted.pem",
+    "src/pki/testdata/name_constraints_unittest/san-rfc822name-subdomain-no-at.pem",
+    "src/pki/testdata/name_constraints_unittest/san-rfc822name-subdomain-two-ats.pem",
+    "src/pki/testdata/name_constraints_unittest/san-rfc822name-subdomain.pem",
+    "src/pki/testdata/name_constraints_unittest/san-rfc822name-subdomaincase.pem",
+    "src/pki/testdata/name_constraints_unittest/san-rfc822name-two-ats.pem",
+    "src/pki/testdata/name_constraints_unittest/san-rfc822name.pem",
+    "src/pki/testdata/name_constraints_unittest/san-uri.pem",
+    "src/pki/testdata/name_constraints_unittest/san-x400address.pem",
+    "src/pki/testdata/name_constraints_unittest/uri-excluded.pem",
+    "src/pki/testdata/name_constraints_unittest/uri-permitted.pem",
+    "src/pki/testdata/name_constraints_unittest/x400address-excluded.pem",
+    "src/pki/testdata/name_constraints_unittest/x400address-permitted.pem",
+    "src/pki/testdata/nist-pkits/certs/AllCertificatesNoPoliciesTest2EE.crt",
+    "src/pki/testdata/nist-pkits/certs/AllCertificatesSamePoliciesTest10EE.crt",
+    "src/pki/testdata/nist-pkits/certs/AllCertificatesSamePoliciesTest13EE.crt",
+    "src/pki/testdata/nist-pkits/certs/AllCertificatesanyPolicyTest11EE.crt",
+    "src/pki/testdata/nist-pkits/certs/AnyPolicyTest14EE.crt",
+    "src/pki/testdata/nist-pkits/certs/BadCRLIssuerNameCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/BadCRLSignatureCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/BadSignedCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/BadnotAfterDateCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/BadnotBeforeDateCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/BasicSelfIssuedCRLSigningKeyCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/BasicSelfIssuedCRLSigningKeyCRLCert.crt",
+    "src/pki/testdata/nist-pkits/certs/BasicSelfIssuedNewKeyCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/BasicSelfIssuedNewKeyOldWithNewCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/BasicSelfIssuedOldKeyCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/BasicSelfIssuedOldKeyNewWithOldCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/CPSPointerQualifierTest20EE.crt",
+    "src/pki/testdata/nist-pkits/certs/DSACACert.crt",
+    "src/pki/testdata/nist-pkits/certs/DSAParametersInheritedCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/DifferentPoliciesTest12EE.crt",
+    "src/pki/testdata/nist-pkits/certs/DifferentPoliciesTest3EE.crt",
+    "src/pki/testdata/nist-pkits/certs/DifferentPoliciesTest4EE.crt",
+    "src/pki/testdata/nist-pkits/certs/DifferentPoliciesTest5EE.crt",
+    "src/pki/testdata/nist-pkits/certs/DifferentPoliciesTest7EE.crt",
+    "src/pki/testdata/nist-pkits/certs/DifferentPoliciesTest8EE.crt",
+    "src/pki/testdata/nist-pkits/certs/DifferentPoliciesTest9EE.crt",
+    "src/pki/testdata/nist-pkits/certs/GeneralizedTimeCRLnextUpdateCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/GoodCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/GoodsubCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/GoodsubCAPanyPolicyMapping1to2CACert.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidBadCRLIssuerNameTest5EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidBadCRLSignatureTest4EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidBasicSelfIssuedCRLSigningKeyTest7EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidBasicSelfIssuedCRLSigningKeyTest8EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidBasicSelfIssuedNewWithOldTest5EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidBasicSelfIssuedOldWithNewTest2EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidCASignatureTest2EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidCAnotAfterDateTest5EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidCAnotBeforeDateTest1EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidDNSnameConstraintsTest31EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidDNSnameConstraintsTest33EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidDNSnameConstraintsTest38EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidDNandRFC822nameConstraintsTest28EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidDNandRFC822nameConstraintsTest29EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidDNnameConstraintsTest10EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidDNnameConstraintsTest12EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidDNnameConstraintsTest13EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidDNnameConstraintsTest15EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidDNnameConstraintsTest16EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidDNnameConstraintsTest17EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidDNnameConstraintsTest20EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidDNnameConstraintsTest2EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidDNnameConstraintsTest3EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidDNnameConstraintsTest7EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidDNnameConstraintsTest8EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidDNnameConstraintsTest9EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidDSASignatureTest6EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidEESignatureTest3EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidEEnotAfterDateTest6EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidEEnotBeforeDateTest2EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidIDPwithindirectCRLTest23EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidIDPwithindirectCRLTest26EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidLongSerialNumberTest18EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidMappingFromanyPolicyTest7EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidMappingToanyPolicyTest8EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidMissingCRLTest1EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidMissingbasicConstraintsTest1EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidNameChainingOrderTest2EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidNameChainingTest1EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidNegativeSerialNumberTest15EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidOldCRLnextUpdateTest11EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidPolicyMappingTest10EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidPolicyMappingTest2EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidPolicyMappingTest4EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidRFC822nameConstraintsTest22EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidRFC822nameConstraintsTest24EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidRFC822nameConstraintsTest26EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidRevokedCATest2EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidRevokedEETest3EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidSelfIssuedinhibitAnyPolicyTest10EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidSelfIssuedinhibitAnyPolicyTest8EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidSelfIssuedinhibitPolicyMappingTest10EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidSelfIssuedinhibitPolicyMappingTest11EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidSelfIssuedinhibitPolicyMappingTest8EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidSelfIssuedinhibitPolicyMappingTest9EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidSelfIssuedpathLenConstraintTest16EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidSelfIssuedrequireExplicitPolicyTest7EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidSelfIssuedrequireExplicitPolicyTest8EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidSeparateCertificateandCRLKeysTest20EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidSeparateCertificateandCRLKeysTest21EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidURInameConstraintsTest35EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidURInameConstraintsTest37EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidUnknownCRLEntryExtensionTest8EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidUnknownCRLExtensionTest10EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidUnknownCRLExtensionTest9EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidUnknownCriticalCertificateExtensionTest2EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidWrongCRLTest6EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidcAFalseTest2EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidcAFalseTest3EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidcRLIssuerTest27EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidcRLIssuerTest31EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidcRLIssuerTest32EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidcRLIssuerTest34EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidcRLIssuerTest35EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvaliddeltaCRLIndicatorNoBaseTest1EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvaliddeltaCRLTest10EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvaliddeltaCRLTest3EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvaliddeltaCRLTest4EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvaliddeltaCRLTest6EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvaliddeltaCRLTest9EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvaliddistributionPointTest2EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvaliddistributionPointTest3EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvaliddistributionPointTest6EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvaliddistributionPointTest8EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvaliddistributionPointTest9EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidinhibitAnyPolicyTest1EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidinhibitAnyPolicyTest4EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidinhibitAnyPolicyTest5EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidinhibitAnyPolicyTest6EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidinhibitPolicyMappingTest1EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidinhibitPolicyMappingTest3EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidinhibitPolicyMappingTest5EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidinhibitPolicyMappingTest6EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidkeyUsageCriticalcRLSignFalseTest4EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidkeyUsageCriticalkeyCertSignFalseTest1EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidkeyUsageNotCriticalcRLSignFalseTest5EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidkeyUsageNotCriticalkeyCertSignFalseTest2EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidonlyContainsAttributeCertsTest14EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidonlyContainsCACertsTest12EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidonlyContainsUserCertsTest11EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidonlySomeReasonsTest15EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidonlySomeReasonsTest16EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidonlySomeReasonsTest17EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidonlySomeReasonsTest20EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidonlySomeReasonsTest21EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidpathLenConstraintTest10EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidpathLenConstraintTest11EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidpathLenConstraintTest12EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidpathLenConstraintTest5EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidpathLenConstraintTest6EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidpathLenConstraintTest9EE.crt",
+    "src/pki/testdata/nist-pkits/certs/Invalidpre2000CRLnextUpdateTest12EE.crt",
+    "src/pki/testdata/nist-pkits/certs/Invalidpre2000UTCEEnotAfterDateTest7EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidrequireExplicitPolicyTest3EE.crt",
+    "src/pki/testdata/nist-pkits/certs/InvalidrequireExplicitPolicyTest5EE.crt",
+    "src/pki/testdata/nist-pkits/certs/LongSerialNumberCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/Mapping1to2CACert.crt",
+    "src/pki/testdata/nist-pkits/certs/MappingFromanyPolicyCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/MappingToanyPolicyCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/MissingbasicConstraintsCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/NameOrderingCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/NegativeSerialNumberCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/NoCRLCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/NoPoliciesCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/NoissuingDistributionPointCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/OldCRLnextUpdateCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/OverlappingPoliciesTest6EE.crt",
+    "src/pki/testdata/nist-pkits/certs/P12Mapping1to3CACert.crt",
+    "src/pki/testdata/nist-pkits/certs/P12Mapping1to3subCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/P12Mapping1to3subsubCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/P1Mapping1to234CACert.crt",
+    "src/pki/testdata/nist-pkits/certs/P1Mapping1to234subCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/P1anyPolicyMapping1to2CACert.crt",
+    "src/pki/testdata/nist-pkits/certs/PanyPolicyMapping1to2CACert.crt",
+    "src/pki/testdata/nist-pkits/certs/PoliciesP1234CACert.crt",
+    "src/pki/testdata/nist-pkits/certs/PoliciesP1234subCAP123Cert.crt",
+    "src/pki/testdata/nist-pkits/certs/PoliciesP1234subsubCAP123P12Cert.crt",
+    "src/pki/testdata/nist-pkits/certs/PoliciesP123CACert.crt",
+    "src/pki/testdata/nist-pkits/certs/PoliciesP123subCAP12Cert.crt",
+    "src/pki/testdata/nist-pkits/certs/PoliciesP123subsubCAP12P1Cert.crt",
+    "src/pki/testdata/nist-pkits/certs/PoliciesP123subsubCAP12P2Cert.crt",
+    "src/pki/testdata/nist-pkits/certs/PoliciesP123subsubsubCAP12P2P1Cert.crt",
+    "src/pki/testdata/nist-pkits/certs/PoliciesP12CACert.crt",
+    "src/pki/testdata/nist-pkits/certs/PoliciesP12subCAP1Cert.crt",
+    "src/pki/testdata/nist-pkits/certs/PoliciesP12subsubCAP1P2Cert.crt",
+    "src/pki/testdata/nist-pkits/certs/PoliciesP2subCA2Cert.crt",
+    "src/pki/testdata/nist-pkits/certs/PoliciesP2subCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/PoliciesP3CACert.crt",
+    "src/pki/testdata/nist-pkits/certs/RFC3280MandatoryAttributeTypesCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/RFC3280OptionalAttributeTypesCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/RevokedsubCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/RolloverfromPrintableStringtoUTF8StringCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/SeparateCertificateandCRLKeysCA2CRLSigningCert.crt",
+    "src/pki/testdata/nist-pkits/certs/SeparateCertificateandCRLKeysCA2CertificateSigningCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/SeparateCertificateandCRLKeysCRLSigningCert.crt",
+    "src/pki/testdata/nist-pkits/certs/SeparateCertificateandCRLKeysCertificateSigningCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/TrustAnchorRootCertificate.crt",
+    "src/pki/testdata/nist-pkits/certs/TwoCRLsCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/UIDCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/UTF8StringCaseInsensitiveMatchCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/UTF8StringEncodedNamesCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/UnknownCRLEntryExtensionCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/UnknownCRLExtensionCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/UserNoticeQualifierTest15EE.crt",
+    "src/pki/testdata/nist-pkits/certs/UserNoticeQualifierTest16EE.crt",
+    "src/pki/testdata/nist-pkits/certs/UserNoticeQualifierTest17EE.crt",
+    "src/pki/testdata/nist-pkits/certs/UserNoticeQualifierTest18EE.crt",
+    "src/pki/testdata/nist-pkits/certs/UserNoticeQualifierTest19EE.crt",
+    "src/pki/testdata/nist-pkits/certs/ValidBasicSelfIssuedCRLSigningKeyTest6EE.crt",
+    "src/pki/testdata/nist-pkits/certs/ValidBasicSelfIssuedNewWithOldTest3EE.crt",
+    "src/pki/testdata/nist-pkits/certs/ValidBasicSelfIssuedNewWithOldTest4EE.crt",
+    "src/pki/testdata/nist-pkits/certs/ValidBasicSelfIssuedOldWithNewTest1EE.crt",
+    "src/pki/testdata/nist-pkits/certs/ValidCertificatePathTest1EE.crt",
+    "src/pki/testdata/nist-pkits/certs/ValidDNSnameConstraintsTest30EE.crt",
+    "src/pki/testdata/nist-pkits/certs/ValidDNSnameConstraintsTest32EE.crt",
+    "src/pki/testdata/nist-pkits/certs/ValidDNandRFC822nameConstraintsTest27EE.crt",
+    "src/pki/testdata/nist-pkits/certs/ValidDNnameConstraintsTest11EE.crt",
+    "src/pki/testdata/nist-pkits/certs/ValidDNnameConstraintsTest14EE.crt",
+    "src/pki/testdata/nist-pkits/certs/ValidDNnameConstraintsTest18EE.crt",
+    "src/pki/testdata/nist-pkits/certs/ValidDNnameConstraintsTest19EE.crt",
+    "src/pki/testdata/nist-pkits/certs/ValidDNnameConstraintsTest1EE.crt",
+    "src/pki/testdata/nist-pkits/certs/ValidDNnameConstraintsTest4EE.crt",
+    "src/pki/testdata/nist-pkits/certs/ValidDNnameConstraintsTest5EE.crt",
+    "src/pki/testdata/nist-pkits/certs/ValidDNnameConstraintsTest6EE.crt",
+    "src/pki/testdata/nist-pkits/certs/ValidDSAParameterInheritanceTest5EE.crt",
+    "src/pki/testdata/nist-pkits/certs/ValidDSASignaturesTest4EE.crt",
+    "src/pki/testdata/nist-pkits/certs/ValidGeneralizedTimeCRLnextUpdateTest13EE.crt",
+    "src/pki/testdata/nist-pkits/certs/ValidGeneralizedTimenotAfterDateTest8EE.crt",
+    "src/pki/testdata/nist-pkits/certs/ValidGeneralizedTimenotBeforeDateTest4EE.crt",
+    "src/pki/testdata/nist-pkits/certs/ValidIDPwithindirectCRLTest22EE.crt",
+    "src/pki/testdata/nist-pkits/certs/ValidIDPwithindirectCRLTest24EE.crt",
+    "src/pki/testdata/nist-pkits/certs/ValidIDPwithindirectCRLTest25EE.crt",
+    "src/pki/testdata/nist-pkits/certs/ValidLongSerialNumberTest16EE.crt",
+    "src/pki/testdata/nist-pkits/certs/ValidLongSerialNumberTest17EE.crt",
+    "src/pki/testdata/nist-pkits/certs/ValidNameChainingCapitalizationTest5EE.crt",
+    "src/pki/testdata/nist-pkits/certs/ValidNameChainingWhitespaceTest3EE.crt",
+    "src/pki/testdata/nist-pkits/certs/ValidNameChainingWhitespaceTest4EE.crt",
+    "src/pki/testdata/nist-pkits/certs/ValidNameUIDsTest6EE.crt",
+    "src/pki/testdata/nist-pkits/certs/ValidNegativeSerialNumberTest14EE.crt",
+    "src/pki/testdata/nist-pkits/certs/ValidNoissuingDistributionPointTest10EE.crt",
+    "src/pki/testdata/nist-pkits/certs/ValidPolicyMappingTest11EE.crt",
+    "src/pki/testdata/nist-pkits/certs/ValidPolicyMappingTest12EE.crt",
+    "src/pki/testdata/nist-pkits/certs/ValidPolicyMappingTest13EE.crt",
+    "src/pki/testdata/nist-pkits/certs/ValidPolicyMappingTest14EE.crt",
+    "src/pki/testdata/nist-pkits/certs/ValidPolicyMappingTest1EE.crt",
+    "src/pki/testdata/nist-pkits/certs/ValidPolicyMappingTest3EE.crt",
+    "src/pki/testdata/nist-pkits/certs/ValidPolicyMappingTest5EE.crt",
+    "src/pki/testdata/nist-pkits/certs/ValidPolicyMappingTest6EE.crt",
+    "src/pki/testdata/nist-pkits/certs/ValidPolicyMappingTest9EE.crt",
+    "src/pki/testdata/nist-pkits/certs/ValidRFC3280MandatoryAttributeTypesTest7EE.crt",
+    "src/pki/testdata/nist-pkits/certs/ValidRFC3280OptionalAttributeTypesTest8EE.crt",
+    "src/pki/testdata/nist-pkits/certs/ValidRFC822nameConstraintsTest21EE.crt",
+    "src/pki/testdata/nist-pkits/certs/ValidRFC822nameConstraintsTest23EE.crt",
+    "src/pki/testdata/nist-pkits/certs/ValidRFC822nameConstraintsTest25EE.crt",
+    "src/pki/testdata/nist-pkits/certs/ValidRolloverfromPrintableStringtoUTF8StringTest10EE.crt",
+    "src/pki/testdata/nist-pkits/certs/ValidSelfIssuedinhibitAnyPolicyTest7EE.crt",
+    "src/pki/testdata/nist-pkits/certs/ValidSelfIssuedinhibitAnyPolicyTest9EE.crt",
+    "src/pki/testdata/nist-pkits/certs/ValidSelfIssuedinhibitPolicyMappingTest7EE.crt",
+    "src/pki/testdata/nist-pkits/certs/ValidSelfIssuedpathLenConstraintTest15EE.crt",
+    "src/pki/testdata/nist-pkits/certs/ValidSelfIssuedpathLenConstraintTest17EE.crt",
+    "src/pki/testdata/nist-pkits/certs/ValidSelfIssuedrequireExplicitPolicyTest6EE.crt",
+    "src/pki/testdata/nist-pkits/certs/ValidSeparateCertificateandCRLKeysTest19EE.crt",
+    "src/pki/testdata/nist-pkits/certs/ValidTwoCRLsTest7EE.crt",
+    "src/pki/testdata/nist-pkits/certs/ValidURInameConstraintsTest34EE.crt",
+    "src/pki/testdata/nist-pkits/certs/ValidURInameConstraintsTest36EE.crt",
+    "src/pki/testdata/nist-pkits/certs/ValidUTF8StringCaseInsensitiveMatchTest11EE.crt",
+    "src/pki/testdata/nist-pkits/certs/ValidUTF8StringEncodedNamesTest9EE.crt",
+    "src/pki/testdata/nist-pkits/certs/ValidUnknownNotCriticalCertificateExtensionTest1EE.crt",
+    "src/pki/testdata/nist-pkits/certs/ValidbasicConstraintsNotCriticalTest4EE.crt",
+    "src/pki/testdata/nist-pkits/certs/ValidcRLIssuerTest28EE.crt",
+    "src/pki/testdata/nist-pkits/certs/ValidcRLIssuerTest29EE.crt",
+    "src/pki/testdata/nist-pkits/certs/ValidcRLIssuerTest30EE.crt",
+    "src/pki/testdata/nist-pkits/certs/ValidcRLIssuerTest33EE.crt",
+    "src/pki/testdata/nist-pkits/certs/ValiddeltaCRLTest2EE.crt",
+    "src/pki/testdata/nist-pkits/certs/ValiddeltaCRLTest5EE.crt",
+    "src/pki/testdata/nist-pkits/certs/ValiddeltaCRLTest7EE.crt",
+    "src/pki/testdata/nist-pkits/certs/ValiddeltaCRLTest8EE.crt",
+    "src/pki/testdata/nist-pkits/certs/ValiddistributionPointTest1EE.crt",
+    "src/pki/testdata/nist-pkits/certs/ValiddistributionPointTest4EE.crt",
+    "src/pki/testdata/nist-pkits/certs/ValiddistributionPointTest5EE.crt",
+    "src/pki/testdata/nist-pkits/certs/ValiddistributionPointTest7EE.crt",
+    "src/pki/testdata/nist-pkits/certs/ValidinhibitAnyPolicyTest2EE.crt",
+    "src/pki/testdata/nist-pkits/certs/ValidinhibitPolicyMappingTest2EE.crt",
+    "src/pki/testdata/nist-pkits/certs/ValidinhibitPolicyMappingTest4EE.crt",
+    "src/pki/testdata/nist-pkits/certs/ValidkeyUsageNotCriticalTest3EE.crt",
+    "src/pki/testdata/nist-pkits/certs/ValidonlyContainsCACertsTest13EE.crt",
+    "src/pki/testdata/nist-pkits/certs/ValidonlySomeReasonsTest18EE.crt",
+    "src/pki/testdata/nist-pkits/certs/ValidonlySomeReasonsTest19EE.crt",
+    "src/pki/testdata/nist-pkits/certs/ValidpathLenConstraintTest13EE.crt",
+    "src/pki/testdata/nist-pkits/certs/ValidpathLenConstraintTest14EE.crt",
+    "src/pki/testdata/nist-pkits/certs/ValidpathLenConstraintTest7EE.crt",
+    "src/pki/testdata/nist-pkits/certs/ValidpathLenConstraintTest8EE.crt",
+    "src/pki/testdata/nist-pkits/certs/Validpre2000UTCnotBeforeDateTest3EE.crt",
+    "src/pki/testdata/nist-pkits/certs/ValidrequireExplicitPolicyTest1EE.crt",
+    "src/pki/testdata/nist-pkits/certs/ValidrequireExplicitPolicyTest2EE.crt",
+    "src/pki/testdata/nist-pkits/certs/ValidrequireExplicitPolicyTest4EE.crt",
+    "src/pki/testdata/nist-pkits/certs/WrongCRLCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/anyPolicyCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/basicConstraintsCriticalcAFalseCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/basicConstraintsNotCriticalCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/basicConstraintsNotCriticalcAFalseCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/deltaCRLCA1Cert.crt",
+    "src/pki/testdata/nist-pkits/certs/deltaCRLCA2Cert.crt",
+    "src/pki/testdata/nist-pkits/certs/deltaCRLCA3Cert.crt",
+    "src/pki/testdata/nist-pkits/certs/deltaCRLIndicatorNoBaseCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/distributionPoint1CACert.crt",
+    "src/pki/testdata/nist-pkits/certs/distributionPoint2CACert.crt",
+    "src/pki/testdata/nist-pkits/certs/indirectCRLCA1Cert.crt",
+    "src/pki/testdata/nist-pkits/certs/indirectCRLCA2Cert.crt",
+    "src/pki/testdata/nist-pkits/certs/indirectCRLCA3Cert.crt",
+    "src/pki/testdata/nist-pkits/certs/indirectCRLCA3cRLIssuerCert.crt",
+    "src/pki/testdata/nist-pkits/certs/indirectCRLCA4Cert.crt",
+    "src/pki/testdata/nist-pkits/certs/indirectCRLCA4cRLIssuerCert.crt",
+    "src/pki/testdata/nist-pkits/certs/indirectCRLCA5Cert.crt",
+    "src/pki/testdata/nist-pkits/certs/indirectCRLCA6Cert.crt",
+    "src/pki/testdata/nist-pkits/certs/inhibitAnyPolicy0CACert.crt",
+    "src/pki/testdata/nist-pkits/certs/inhibitAnyPolicy1CACert.crt",
+    "src/pki/testdata/nist-pkits/certs/inhibitAnyPolicy1SelfIssuedCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/inhibitAnyPolicy1SelfIssuedsubCA2Cert.crt",
+    "src/pki/testdata/nist-pkits/certs/inhibitAnyPolicy1subCA1Cert.crt",
+    "src/pki/testdata/nist-pkits/certs/inhibitAnyPolicy1subCA2Cert.crt",
+    "src/pki/testdata/nist-pkits/certs/inhibitAnyPolicy1subCAIAP5Cert.crt",
+    "src/pki/testdata/nist-pkits/certs/inhibitAnyPolicy1subsubCA2Cert.crt",
+    "src/pki/testdata/nist-pkits/certs/inhibitAnyPolicy5CACert.crt",
+    "src/pki/testdata/nist-pkits/certs/inhibitAnyPolicy5subCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/inhibitAnyPolicy5subsubCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/inhibitAnyPolicyTest3EE.crt",
+    "src/pki/testdata/nist-pkits/certs/inhibitPolicyMapping0CACert.crt",
+    "src/pki/testdata/nist-pkits/certs/inhibitPolicyMapping0subCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/inhibitPolicyMapping1P12CACert.crt",
+    "src/pki/testdata/nist-pkits/certs/inhibitPolicyMapping1P12subCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/inhibitPolicyMapping1P12subCAIPM5Cert.crt",
+    "src/pki/testdata/nist-pkits/certs/inhibitPolicyMapping1P12subsubCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/inhibitPolicyMapping1P12subsubCAIPM5Cert.crt",
+    "src/pki/testdata/nist-pkits/certs/inhibitPolicyMapping1P1CACert.crt",
+    "src/pki/testdata/nist-pkits/certs/inhibitPolicyMapping1P1SelfIssuedCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/inhibitPolicyMapping1P1SelfIssuedsubCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/inhibitPolicyMapping1P1subCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/inhibitPolicyMapping1P1subsubCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/inhibitPolicyMapping5CACert.crt",
+    "src/pki/testdata/nist-pkits/certs/inhibitPolicyMapping5subCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/inhibitPolicyMapping5subsubCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/inhibitPolicyMapping5subsubsubCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/keyUsageCriticalcRLSignFalseCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/keyUsageCriticalkeyCertSignFalseCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/keyUsageNotCriticalCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/keyUsageNotCriticalcRLSignFalseCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/keyUsageNotCriticalkeyCertSignFalseCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/nameConstraintsDN1CACert.crt",
+    "src/pki/testdata/nist-pkits/certs/nameConstraintsDN1SelfIssuedCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/nameConstraintsDN1subCA1Cert.crt",
+    "src/pki/testdata/nist-pkits/certs/nameConstraintsDN1subCA2Cert.crt",
+    "src/pki/testdata/nist-pkits/certs/nameConstraintsDN1subCA3Cert.crt",
+    "src/pki/testdata/nist-pkits/certs/nameConstraintsDN2CACert.crt",
+    "src/pki/testdata/nist-pkits/certs/nameConstraintsDN3CACert.crt",
+    "src/pki/testdata/nist-pkits/certs/nameConstraintsDN3subCA1Cert.crt",
+    "src/pki/testdata/nist-pkits/certs/nameConstraintsDN3subCA2Cert.crt",
+    "src/pki/testdata/nist-pkits/certs/nameConstraintsDN4CACert.crt",
+    "src/pki/testdata/nist-pkits/certs/nameConstraintsDN5CACert.crt",
+    "src/pki/testdata/nist-pkits/certs/nameConstraintsDNS1CACert.crt",
+    "src/pki/testdata/nist-pkits/certs/nameConstraintsDNS2CACert.crt",
+    "src/pki/testdata/nist-pkits/certs/nameConstraintsRFC822CA1Cert.crt",
+    "src/pki/testdata/nist-pkits/certs/nameConstraintsRFC822CA2Cert.crt",
+    "src/pki/testdata/nist-pkits/certs/nameConstraintsRFC822CA3Cert.crt",
+    "src/pki/testdata/nist-pkits/certs/nameConstraintsURI1CACert.crt",
+    "src/pki/testdata/nist-pkits/certs/nameConstraintsURI2CACert.crt",
+    "src/pki/testdata/nist-pkits/certs/onlyContainsAttributeCertsCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/onlyContainsCACertsCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/onlyContainsUserCertsCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/onlySomeReasonsCA1Cert.crt",
+    "src/pki/testdata/nist-pkits/certs/onlySomeReasonsCA2Cert.crt",
+    "src/pki/testdata/nist-pkits/certs/onlySomeReasonsCA3Cert.crt",
+    "src/pki/testdata/nist-pkits/certs/onlySomeReasonsCA4Cert.crt",
+    "src/pki/testdata/nist-pkits/certs/pathLenConstraint0CACert.crt",
+    "src/pki/testdata/nist-pkits/certs/pathLenConstraint0SelfIssuedCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/pathLenConstraint0subCA2Cert.crt",
+    "src/pki/testdata/nist-pkits/certs/pathLenConstraint0subCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/pathLenConstraint1CACert.crt",
+    "src/pki/testdata/nist-pkits/certs/pathLenConstraint1SelfIssuedCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/pathLenConstraint1SelfIssuedsubCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/pathLenConstraint1subCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/pathLenConstraint6CACert.crt",
+    "src/pki/testdata/nist-pkits/certs/pathLenConstraint6subCA0Cert.crt",
+    "src/pki/testdata/nist-pkits/certs/pathLenConstraint6subCA1Cert.crt",
+    "src/pki/testdata/nist-pkits/certs/pathLenConstraint6subCA4Cert.crt",
+    "src/pki/testdata/nist-pkits/certs/pathLenConstraint6subsubCA00Cert.crt",
+    "src/pki/testdata/nist-pkits/certs/pathLenConstraint6subsubCA11Cert.crt",
+    "src/pki/testdata/nist-pkits/certs/pathLenConstraint6subsubCA41Cert.crt",
+    "src/pki/testdata/nist-pkits/certs/pathLenConstraint6subsubsubCA11XCert.crt",
+    "src/pki/testdata/nist-pkits/certs/pathLenConstraint6subsubsubCA41XCert.crt",
+    "src/pki/testdata/nist-pkits/certs/pre2000CRLnextUpdateCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/requireExplicitPolicy0CACert.crt",
+    "src/pki/testdata/nist-pkits/certs/requireExplicitPolicy0subCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/requireExplicitPolicy0subsubCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/requireExplicitPolicy0subsubsubCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/requireExplicitPolicy10CACert.crt",
+    "src/pki/testdata/nist-pkits/certs/requireExplicitPolicy10subCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/requireExplicitPolicy10subsubCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/requireExplicitPolicy10subsubsubCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/requireExplicitPolicy2CACert.crt",
+    "src/pki/testdata/nist-pkits/certs/requireExplicitPolicy2SelfIssuedCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/requireExplicitPolicy2SelfIssuedsubCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/requireExplicitPolicy2subCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/requireExplicitPolicy4CACert.crt",
+    "src/pki/testdata/nist-pkits/certs/requireExplicitPolicy4subCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/requireExplicitPolicy4subsubCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/requireExplicitPolicy4subsubsubCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/requireExplicitPolicy5CACert.crt",
+    "src/pki/testdata/nist-pkits/certs/requireExplicitPolicy5subCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/requireExplicitPolicy5subsubCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/requireExplicitPolicy5subsubsubCACert.crt",
+    "src/pki/testdata/nist-pkits/certs/requireExplicitPolicy7CACert.crt",
+    "src/pki/testdata/nist-pkits/certs/requireExplicitPolicy7subCARE2Cert.crt",
+    "src/pki/testdata/nist-pkits/certs/requireExplicitPolicy7subsubCARE2RE4Cert.crt",
+    "src/pki/testdata/nist-pkits/certs/requireExplicitPolicy7subsubsubCARE2RE4Cert.crt",
+    "src/pki/testdata/nist-pkits/crls/BadCRLIssuerNameCACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/BadCRLSignatureCACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/BadSignedCACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/BadnotAfterDateCACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/BadnotBeforeDateCACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/BasicSelfIssuedCRLSigningKeyCACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/BasicSelfIssuedCRLSigningKeyCRLCertCRL.crl",
+    "src/pki/testdata/nist-pkits/crls/BasicSelfIssuedNewKeyCACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/BasicSelfIssuedOldKeyCACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/BasicSelfIssuedOldKeySelfIssuedCertCRL.crl",
+    "src/pki/testdata/nist-pkits/crls/DSACACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/DSAParametersInheritedCACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/GeneralizedTimeCRLnextUpdateCACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/GoodCACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/GoodsubCACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/GoodsubCAPanyPolicyMapping1to2CACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/LongSerialNumberCACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/Mapping1to2CACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/MappingFromanyPolicyCACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/MappingToanyPolicyCACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/MissingbasicConstraintsCACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/NameOrderCACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/NegativeSerialNumberCACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/NoPoliciesCACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/NoissuingDistributionPointCACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/OldCRLnextUpdateCACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/P12Mapping1to3CACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/P12Mapping1to3subCACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/P12Mapping1to3subsubCACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/P1Mapping1to234CACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/P1Mapping1to234subCACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/P1anyPolicyMapping1to2CACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/PanyPolicyMapping1to2CACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/PoliciesP1234CACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/PoliciesP1234subCAP123CRL.crl",
+    "src/pki/testdata/nist-pkits/crls/PoliciesP1234subsubCAP123P12CRL.crl",
+    "src/pki/testdata/nist-pkits/crls/PoliciesP123CACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/PoliciesP123subCAP12CRL.crl",
+    "src/pki/testdata/nist-pkits/crls/PoliciesP123subsubCAP12P1CRL.crl",
+    "src/pki/testdata/nist-pkits/crls/PoliciesP123subsubCAP2P2CRL.crl",
+    "src/pki/testdata/nist-pkits/crls/PoliciesP123subsubsubCAP12P2P1CRL.crl",
+    "src/pki/testdata/nist-pkits/crls/PoliciesP12CACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/PoliciesP12subCAP1CRL.crl",
+    "src/pki/testdata/nist-pkits/crls/PoliciesP12subsubCAP1P2CRL.crl",
+    "src/pki/testdata/nist-pkits/crls/PoliciesP2subCA2CRL.crl",
+    "src/pki/testdata/nist-pkits/crls/PoliciesP2subCACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/PoliciesP3CACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/RFC3280MandatoryAttributeTypesCACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/RFC3280OptionalAttributeTypesCACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/RevokedsubCACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/RolloverfromPrintableStringtoUTF8StringCACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/SeparateCertificateandCRLKeysCA2CRL.crl",
+    "src/pki/testdata/nist-pkits/crls/SeparateCertificateandCRLKeysCRL.crl",
+    "src/pki/testdata/nist-pkits/crls/TrustAnchorRootCRL.crl",
+    "src/pki/testdata/nist-pkits/crls/TwoCRLsCABadCRL.crl",
+    "src/pki/testdata/nist-pkits/crls/TwoCRLsCAGoodCRL.crl",
+    "src/pki/testdata/nist-pkits/crls/UIDCACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/UTF8StringCaseInsensitiveMatchCACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/UTF8StringEncodedNamesCACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/UnknownCRLEntryExtensionCACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/UnknownCRLExtensionCACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/WrongCRLCACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/anyPolicyCACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/basicConstraintsCriticalcAFalseCACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/basicConstraintsNotCriticalCACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/basicConstraintsNotCriticalcAFalseCACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/deltaCRLCA1CRL.crl",
+    "src/pki/testdata/nist-pkits/crls/deltaCRLCA1deltaCRL.crl",
+    "src/pki/testdata/nist-pkits/crls/deltaCRLCA2CRL.crl",
+    "src/pki/testdata/nist-pkits/crls/deltaCRLCA2deltaCRL.crl",
+    "src/pki/testdata/nist-pkits/crls/deltaCRLCA3CRL.crl",
+    "src/pki/testdata/nist-pkits/crls/deltaCRLCA3deltaCRL.crl",
+    "src/pki/testdata/nist-pkits/crls/deltaCRLIndicatorNoBaseCACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/distributionPoint1CACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/distributionPoint2CACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/indirectCRLCA1CRL.crl",
+    "src/pki/testdata/nist-pkits/crls/indirectCRLCA3CRL.crl",
+    "src/pki/testdata/nist-pkits/crls/indirectCRLCA3cRLIssuerCRL.crl",
+    "src/pki/testdata/nist-pkits/crls/indirectCRLCA4cRLIssuerCRL.crl",
+    "src/pki/testdata/nist-pkits/crls/indirectCRLCA5CRL.crl",
+    "src/pki/testdata/nist-pkits/crls/inhibitAnyPolicy0CACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/inhibitAnyPolicy1CACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/inhibitAnyPolicy1subCA1CRL.crl",
+    "src/pki/testdata/nist-pkits/crls/inhibitAnyPolicy1subCA2CRL.crl",
+    "src/pki/testdata/nist-pkits/crls/inhibitAnyPolicy1subCAIAP5CRL.crl",
+    "src/pki/testdata/nist-pkits/crls/inhibitAnyPolicy1subsubCA2CRL.crl",
+    "src/pki/testdata/nist-pkits/crls/inhibitAnyPolicy5CACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/inhibitAnyPolicy5subCACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/inhibitAnyPolicy5subsubCACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/inhibitPolicyMapping0CACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/inhibitPolicyMapping0subCACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/inhibitPolicyMapping1P12CACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/inhibitPolicyMapping1P12subCACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/inhibitPolicyMapping1P12subCAIPM5CRL.crl",
+    "src/pki/testdata/nist-pkits/crls/inhibitPolicyMapping1P12subsubCACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/inhibitPolicyMapping1P12subsubCAIPM5CRL.crl",
+    "src/pki/testdata/nist-pkits/crls/inhibitPolicyMapping1P1CACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/inhibitPolicyMapping1P1subCACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/inhibitPolicyMapping1P1subsubCACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/inhibitPolicyMapping5CACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/inhibitPolicyMapping5subCACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/inhibitPolicyMapping5subsubCACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/inhibitPolicyMapping5subsubsubCACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/keyUsageCriticalcRLSignFalseCACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/keyUsageCriticalkeyCertSignFalseCACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/keyUsageNotCriticalCACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/keyUsageNotCriticalcRLSignFalseCACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/keyUsageNotCriticalkeyCertSignFalseCACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/nameConstraintsDN1CACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/nameConstraintsDN1subCA1CRL.crl",
+    "src/pki/testdata/nist-pkits/crls/nameConstraintsDN1subCA2CRL.crl",
+    "src/pki/testdata/nist-pkits/crls/nameConstraintsDN1subCA3CRL.crl",
+    "src/pki/testdata/nist-pkits/crls/nameConstraintsDN2CACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/nameConstraintsDN3CACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/nameConstraintsDN3subCA1CRL.crl",
+    "src/pki/testdata/nist-pkits/crls/nameConstraintsDN3subCA2CRL.crl",
+    "src/pki/testdata/nist-pkits/crls/nameConstraintsDN4CACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/nameConstraintsDN5CACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/nameConstraintsDNS1CACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/nameConstraintsDNS2CACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/nameConstraintsRFC822CA1CRL.crl",
+    "src/pki/testdata/nist-pkits/crls/nameConstraintsRFC822CA2CRL.crl",
+    "src/pki/testdata/nist-pkits/crls/nameConstraintsRFC822CA3CRL.crl",
+    "src/pki/testdata/nist-pkits/crls/nameConstraintsURI1CACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/nameConstraintsURI2CACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/onlyContainsAttributeCertsCACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/onlyContainsCACertsCACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/onlyContainsUserCertsCACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/onlySomeReasonsCA1compromiseCRL.crl",
+    "src/pki/testdata/nist-pkits/crls/onlySomeReasonsCA1otherreasonsCRL.crl",
+    "src/pki/testdata/nist-pkits/crls/onlySomeReasonsCA2CRL1.crl",
+    "src/pki/testdata/nist-pkits/crls/onlySomeReasonsCA2CRL2.crl",
+    "src/pki/testdata/nist-pkits/crls/onlySomeReasonsCA3compromiseCRL.crl",
+    "src/pki/testdata/nist-pkits/crls/onlySomeReasonsCA3otherreasonsCRL.crl",
+    "src/pki/testdata/nist-pkits/crls/onlySomeReasonsCA4compromiseCRL.crl",
+    "src/pki/testdata/nist-pkits/crls/onlySomeReasonsCA4otherreasonsCRL.crl",
+    "src/pki/testdata/nist-pkits/crls/pathLenConstraint0CACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/pathLenConstraint0subCA2CRL.crl",
+    "src/pki/testdata/nist-pkits/crls/pathLenConstraint0subCACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/pathLenConstraint1CACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/pathLenConstraint1subCACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/pathLenConstraint6CACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/pathLenConstraint6subCA0CRL.crl",
+    "src/pki/testdata/nist-pkits/crls/pathLenConstraint6subCA1CRL.crl",
+    "src/pki/testdata/nist-pkits/crls/pathLenConstraint6subCA4CRL.crl",
+    "src/pki/testdata/nist-pkits/crls/pathLenConstraint6subsubCA00CRL.crl",
+    "src/pki/testdata/nist-pkits/crls/pathLenConstraint6subsubCA11CRL.crl",
+    "src/pki/testdata/nist-pkits/crls/pathLenConstraint6subsubCA41CRL.crl",
+    "src/pki/testdata/nist-pkits/crls/pathLenConstraint6subsubsubCA11XCRL.crl",
+    "src/pki/testdata/nist-pkits/crls/pathLenConstraint6subsubsubCA41XCRL.crl",
+    "src/pki/testdata/nist-pkits/crls/pre2000CRLnextUpdateCACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/requireExplicitPolicy0CACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/requireExplicitPolicy0subCACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/requireExplicitPolicy0subsubCACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/requireExplicitPolicy0subsubsubCACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/requireExplicitPolicy10CACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/requireExplicitPolicy10subCACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/requireExplicitPolicy10subsubCACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/requireExplicitPolicy10subsubsubCACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/requireExplicitPolicy2CACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/requireExplicitPolicy2subCACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/requireExplicitPolicy4CACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/requireExplicitPolicy4subCACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/requireExplicitPolicy4subsubCACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/requireExplicitPolicy4subsubsubCACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/requireExplicitPolicy5CACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/requireExplicitPolicy5subCACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/requireExplicitPolicy5subsubCACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/requireExplicitPolicy5subsubsubCACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/requireExplicitPolicy7CACRL.crl",
+    "src/pki/testdata/nist-pkits/crls/requireExplicitPolicy7subCARE2CRL.crl",
+    "src/pki/testdata/nist-pkits/crls/requireExplicitPolicy7subsubCARE2RE4CRL.crl",
+    "src/pki/testdata/nist-pkits/crls/requireExplicitPolicy7subsubsubCARE2RE4CRL.crl",
+    "src/pki/testdata/ocsp_unittest/bad_ocsp_type.pem",
+    "src/pki/testdata/ocsp_unittest/bad_signature.pem",
+    "src/pki/testdata/ocsp_unittest/bad_status.pem",
+    "src/pki/testdata/ocsp_unittest/good_response.pem",
+    "src/pki/testdata/ocsp_unittest/good_response_next_update.pem",
+    "src/pki/testdata/ocsp_unittest/good_response_sha256.pem",
+    "src/pki/testdata/ocsp_unittest/has_critical_ct_extension.pem",
+    "src/pki/testdata/ocsp_unittest/has_critical_response_extension.pem",
+    "src/pki/testdata/ocsp_unittest/has_critical_single_extension.pem",
+    "src/pki/testdata/ocsp_unittest/has_extension.pem",
+    "src/pki/testdata/ocsp_unittest/has_single_extension.pem",
+    "src/pki/testdata/ocsp_unittest/has_version.pem",
+    "src/pki/testdata/ocsp_unittest/malformed_request.pem",
+    "src/pki/testdata/ocsp_unittest/missing_response.pem",
+    "src/pki/testdata/ocsp_unittest/multiple_response.pem",
+    "src/pki/testdata/ocsp_unittest/no_response.pem",
+    "src/pki/testdata/ocsp_unittest/ocsp_extra_certs.pem",
+    "src/pki/testdata/ocsp_unittest/ocsp_sign_bad_indirect.pem",
+    "src/pki/testdata/ocsp_unittest/ocsp_sign_direct.pem",
+    "src/pki/testdata/ocsp_unittest/ocsp_sign_indirect.pem",
+    "src/pki/testdata/ocsp_unittest/ocsp_sign_indirect_missing.pem",
+    "src/pki/testdata/ocsp_unittest/other_response.pem",
+    "src/pki/testdata/ocsp_unittest/responder_id.pem",
+    "src/pki/testdata/ocsp_unittest/responder_name.pem",
+    "src/pki/testdata/ocsp_unittest/revoke_response.pem",
+    "src/pki/testdata/ocsp_unittest/revoke_response_reason.pem",
+    "src/pki/testdata/ocsp_unittest/unknown_response.pem",
+    "src/pki/testdata/parse_certificate_unittest/authority_key_identifier/empty_sequence.pem",
+    "src/pki/testdata/parse_certificate_unittest/authority_key_identifier/extra_contents_after_extension_sequence.pem",
+    "src/pki/testdata/parse_certificate_unittest/authority_key_identifier/extra_contents_after_issuer_and_serial.pem",
+    "src/pki/testdata/parse_certificate_unittest/authority_key_identifier/invalid_contents.pem",
+    "src/pki/testdata/parse_certificate_unittest/authority_key_identifier/invalid_issuer.pem",
+    "src/pki/testdata/parse_certificate_unittest/authority_key_identifier/invalid_key_identifier.pem",
+    "src/pki/testdata/parse_certificate_unittest/authority_key_identifier/invalid_serial.pem",
+    "src/pki/testdata/parse_certificate_unittest/authority_key_identifier/issuer_and_serial.pem",
+    "src/pki/testdata/parse_certificate_unittest/authority_key_identifier/issuer_only.pem",
+    "src/pki/testdata/parse_certificate_unittest/authority_key_identifier/key_identifier.pem",
+    "src/pki/testdata/parse_certificate_unittest/authority_key_identifier/key_identifier_and_issuer_and_serial.pem",
+    "src/pki/testdata/parse_certificate_unittest/authority_key_identifier/serial_only.pem",
+    "src/pki/testdata/parse_certificate_unittest/authority_key_identifier/url_issuer_and_serial.pem",
+    "src/pki/testdata/parse_certificate_unittest/authority_key_identifier_not_sequence.pem",
+    "src/pki/testdata/parse_certificate_unittest/bad_key_usage.pem",
+    "src/pki/testdata/parse_certificate_unittest/bad_policy_qualifiers.pem",
+    "src/pki/testdata/parse_certificate_unittest/bad_signature_algorithm_oid.pem",
+    "src/pki/testdata/parse_certificate_unittest/bad_validity.pem",
+    "src/pki/testdata/parse_certificate_unittest/basic_constraints_ca_false.pem",
+    "src/pki/testdata/parse_certificate_unittest/basic_constraints_ca_no_path.pem",
+    "src/pki/testdata/parse_certificate_unittest/basic_constraints_ca_path_9.pem",
+    "src/pki/testdata/parse_certificate_unittest/basic_constraints_negative_path.pem",
+    "src/pki/testdata/parse_certificate_unittest/basic_constraints_not_ca.pem",
+    "src/pki/testdata/parse_certificate_unittest/basic_constraints_path_too_large.pem",
+    "src/pki/testdata/parse_certificate_unittest/basic_constraints_pathlen_255.pem",
+    "src/pki/testdata/parse_certificate_unittest/basic_constraints_pathlen_256.pem",
+    "src/pki/testdata/parse_certificate_unittest/basic_constraints_pathlen_not_ca.pem",
+    "src/pki/testdata/parse_certificate_unittest/basic_constraints_unconsumed_data.pem",
+    "src/pki/testdata/parse_certificate_unittest/cert_algorithm_not_sequence.pem",
+    "src/pki/testdata/parse_certificate_unittest/cert_data_after_signature.pem",
+    "src/pki/testdata/parse_certificate_unittest/cert_empty_sequence.pem",
+    "src/pki/testdata/parse_certificate_unittest/cert_missing_signature.pem",
+    "src/pki/testdata/parse_certificate_unittest/cert_not_sequence.pem",
+    "src/pki/testdata/parse_certificate_unittest/cert_signature_not_bit_string.pem",
+    "src/pki/testdata/parse_certificate_unittest/cert_skeleton.pem",
+    "src/pki/testdata/parse_certificate_unittest/cert_version3.pem",
+    "src/pki/testdata/parse_certificate_unittest/crldp_1uri_noissuer.pem",
+    "src/pki/testdata/parse_certificate_unittest/crldp_3uri_noissuer.pem",
+    "src/pki/testdata/parse_certificate_unittest/crldp_full_name_as_dirname.pem",
+    "src/pki/testdata/parse_certificate_unittest/crldp_issuer_as_dirname.pem",
+    "src/pki/testdata/parse_certificate_unittest/extended_key_usage.pem",
+    "src/pki/testdata/parse_certificate_unittest/extension_critical.pem",
+    "src/pki/testdata/parse_certificate_unittest/extension_critical_0.pem",
+    "src/pki/testdata/parse_certificate_unittest/extension_critical_3.pem",
+    "src/pki/testdata/parse_certificate_unittest/extension_not_critical.pem",
+    "src/pki/testdata/parse_certificate_unittest/extensions_data_after_sequence.pem",
+    "src/pki/testdata/parse_certificate_unittest/extensions_duplicate_key_usage.pem",
+    "src/pki/testdata/parse_certificate_unittest/extensions_empty_sequence.pem",
+    "src/pki/testdata/parse_certificate_unittest/extensions_not_sequence.pem",
+    "src/pki/testdata/parse_certificate_unittest/extensions_real.pem",
+    "src/pki/testdata/parse_certificate_unittest/failed_signature_algorithm.pem",
+    "src/pki/testdata/parse_certificate_unittest/inhibit_any_policy.pem",
+    "src/pki/testdata/parse_certificate_unittest/issuer_bad_printable_string.pem",
+    "src/pki/testdata/parse_certificate_unittest/key_usage.pem",
+    "src/pki/testdata/parse_certificate_unittest/name_constraints_bad_ip.pem",
+    "src/pki/testdata/parse_certificate_unittest/policies.pem",
+    "src/pki/testdata/parse_certificate_unittest/policy_constraints_empty.pem",
+    "src/pki/testdata/parse_certificate_unittest/policy_constraints_inhibit.pem",
+    "src/pki/testdata/parse_certificate_unittest/policy_constraints_inhibit_require.pem",
+    "src/pki/testdata/parse_certificate_unittest/policy_constraints_require.pem",
+    "src/pki/testdata/parse_certificate_unittest/policy_qualifiers_empty_sequence.pem",
+    "src/pki/testdata/parse_certificate_unittest/serial_37_bytes.pem",
+    "src/pki/testdata/parse_certificate_unittest/serial_negative.pem",
+    "src/pki/testdata/parse_certificate_unittest/serial_not_minimal.pem",
+    "src/pki/testdata/parse_certificate_unittest/serial_not_number.pem",
+    "src/pki/testdata/parse_certificate_unittest/serial_zero.pem",
+    "src/pki/testdata/parse_certificate_unittest/serial_zero_padded.pem",
+    "src/pki/testdata/parse_certificate_unittest/serial_zero_padded_21_bytes.pem",
+    "src/pki/testdata/parse_certificate_unittest/signature_algorithm_null.pem",
+    "src/pki/testdata/parse_certificate_unittest/subject_alt_name.pem",
+    "src/pki/testdata/parse_certificate_unittest/subject_blank_subjectaltname_not_critical.pem",
+    "src/pki/testdata/parse_certificate_unittest/subject_key_identifier_not_octet_string.pem",
+    "src/pki/testdata/parse_certificate_unittest/subject_not_ascii.pem",
+    "src/pki/testdata/parse_certificate_unittest/subject_not_printable_string.pem",
+    "src/pki/testdata/parse_certificate_unittest/subject_printable_string_containing_utf8_client_cert.pem",
+    "src/pki/testdata/parse_certificate_unittest/subject_t61string.pem",
+    "src/pki/testdata/parse_certificate_unittest/subject_t61string_1-32.pem",
+    "src/pki/testdata/parse_certificate_unittest/subject_t61string_126-160.pem",
+    "src/pki/testdata/parse_certificate_unittest/subject_t61string_actual.pem",
+    "src/pki/testdata/parse_certificate_unittest/subjectaltname_bad_ip.pem",
+    "src/pki/testdata/parse_certificate_unittest/subjectaltname_dns_not_ascii.pem",
+    "src/pki/testdata/parse_certificate_unittest/subjectaltname_general_names_empty_sequence.pem",
+    "src/pki/testdata/parse_certificate_unittest/subjectaltname_trailing_data.pem",
+    "src/pki/testdata/parse_certificate_unittest/tbs_explicit_v1.pem",
+    "src/pki/testdata/parse_certificate_unittest/tbs_v1.pem",
+    "src/pki/testdata/parse_certificate_unittest/tbs_v1_extensions.pem",
+    "src/pki/testdata/parse_certificate_unittest/tbs_v2_extensions.pem",
+    "src/pki/testdata/parse_certificate_unittest/tbs_v2_issuer_and_subject_unique_id.pem",
+    "src/pki/testdata/parse_certificate_unittest/tbs_v2_issuer_unique_id.pem",
+    "src/pki/testdata/parse_certificate_unittest/tbs_v2_no_optionals.pem",
+    "src/pki/testdata/parse_certificate_unittest/tbs_v3_all_optionals.pem",
+    "src/pki/testdata/parse_certificate_unittest/tbs_v3_data_after_extensions.pem",
+    "src/pki/testdata/parse_certificate_unittest/tbs_v3_extensions.pem",
+    "src/pki/testdata/parse_certificate_unittest/tbs_v3_extensions_not_sequence.pem",
+    "src/pki/testdata/parse_certificate_unittest/tbs_v3_no_optionals.pem",
+    "src/pki/testdata/parse_certificate_unittest/tbs_v3_real.pem",
+    "src/pki/testdata/parse_certificate_unittest/tbs_v4.pem",
+    "src/pki/testdata/parse_certificate_unittest/tbs_validity_both_generalized_time.pem",
+    "src/pki/testdata/parse_certificate_unittest/tbs_validity_both_utc_time.pem",
+    "src/pki/testdata/parse_certificate_unittest/tbs_validity_generalized_time_and_utc_time.pem",
+    "src/pki/testdata/parse_certificate_unittest/tbs_validity_relaxed.pem",
+    "src/pki/testdata/parse_certificate_unittest/tbs_validity_utc_time_and_generalized_time.pem",
+    "src/pki/testdata/parse_certificate_unittest/v1_explicit_version.pem",
+    "src/pki/testdata/path_builder_unittest/key_id_name_and_serial_prioritization/int_match_name_only.pem",
+    "src/pki/testdata/path_builder_unittest/key_id_name_and_serial_prioritization/int_matching.pem",
+    "src/pki/testdata/path_builder_unittest/key_id_name_and_serial_prioritization/int_mismatch.pem",
+    "src/pki/testdata/path_builder_unittest/key_id_name_and_serial_prioritization/root.pem",
+    "src/pki/testdata/path_builder_unittest/key_id_name_and_serial_prioritization/root2.pem",
+    "src/pki/testdata/path_builder_unittest/key_id_name_and_serial_prioritization/target.pem",
+    "src/pki/testdata/path_builder_unittest/key_id_prioritization/int_different_ski_a.pem",
+    "src/pki/testdata/path_builder_unittest/key_id_prioritization/int_different_ski_b.pem",
+    "src/pki/testdata/path_builder_unittest/key_id_prioritization/int_different_ski_c.pem",
+    "src/pki/testdata/path_builder_unittest/key_id_prioritization/int_matching_ski_a.pem",
+    "src/pki/testdata/path_builder_unittest/key_id_prioritization/int_matching_ski_b.pem",
+    "src/pki/testdata/path_builder_unittest/key_id_prioritization/int_matching_ski_c.pem",
+    "src/pki/testdata/path_builder_unittest/key_id_prioritization/int_no_ski_a.pem",
+    "src/pki/testdata/path_builder_unittest/key_id_prioritization/int_no_ski_b.pem",
+    "src/pki/testdata/path_builder_unittest/key_id_prioritization/int_no_ski_c.pem",
+    "src/pki/testdata/path_builder_unittest/key_id_prioritization/root.pem",
+    "src/pki/testdata/path_builder_unittest/key_id_prioritization/target.pem",
+    "src/pki/testdata/path_builder_unittest/multi-root-A-by-B.pem",
+    "src/pki/testdata/path_builder_unittest/multi-root-B-by-C.pem",
+    "src/pki/testdata/path_builder_unittest/multi-root-B-by-F.pem",
+    "src/pki/testdata/path_builder_unittest/multi-root-C-by-D.pem",
+    "src/pki/testdata/path_builder_unittest/multi-root-C-by-E.pem",
+    "src/pki/testdata/path_builder_unittest/multi-root-D-by-D.pem",
+    "src/pki/testdata/path_builder_unittest/multi-root-E-by-E.pem",
+    "src/pki/testdata/path_builder_unittest/multi-root-F-by-E.pem",
+    "src/pki/testdata/path_builder_unittest/precertificate/precertificate.pem",
+    "src/pki/testdata/path_builder_unittest/precertificate/root.pem",
+    "src/pki/testdata/path_builder_unittest/self_issued_prioritization/root1.pem",
+    "src/pki/testdata/path_builder_unittest/self_issued_prioritization/root1_cross.pem",
+    "src/pki/testdata/path_builder_unittest/self_issued_prioritization/root2.pem",
+    "src/pki/testdata/path_builder_unittest/self_issued_prioritization/target.pem",
+    "src/pki/testdata/path_builder_unittest/validity_date_prioritization/int_ac.pem",
+    "src/pki/testdata/path_builder_unittest/validity_date_prioritization/int_ad.pem",
+    "src/pki/testdata/path_builder_unittest/validity_date_prioritization/int_bc.pem",
+    "src/pki/testdata/path_builder_unittest/validity_date_prioritization/int_bd.pem",
+    "src/pki/testdata/path_builder_unittest/validity_date_prioritization/root.pem",
+    "src/pki/testdata/path_builder_unittest/validity_date_prioritization/target.pem",
+    "src/pki/testdata/verify_certificate_chain_unittest/basic-constraints-pathlen-0-self-issued/chain.pem",
+    "src/pki/testdata/verify_certificate_chain_unittest/basic-constraints-pathlen-0-self-issued/main.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/expired-intermediate/chain.pem",
+    "src/pki/testdata/verify_certificate_chain_unittest/expired-intermediate/not-after.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/expired-intermediate/not-before.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/expired-root/chain.pem",
+    "src/pki/testdata/verify_certificate_chain_unittest/expired-root/not-after-ta-with-constraints.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/expired-root/not-after-ta-with-expiration-and-constraints.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/expired-root/not-after-ta-with-expiration.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/expired-root/not-after.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/expired-root/not-before-ta-with-expiration.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/expired-root/not-before.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/expired-target/chain.pem",
+    "src/pki/testdata/verify_certificate_chain_unittest/expired-target/not-after.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/expired-target/not-before.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/incorrect-trust-anchor/chain.pem",
+    "src/pki/testdata/verify_certificate_chain_unittest/incorrect-trust-anchor/main.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-and-target-wrong-signature/chain.pem",
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-and-target-wrong-signature/main.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-basic-constraints-ca-false/chain.pem",
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-basic-constraints-ca-false/main.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-basic-constraints-not-critical/chain.pem",
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-basic-constraints-not-critical/main.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-eku-any-and-clientauth/any.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-eku-any-and-clientauth/chain.pem",
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-eku-any-and-clientauth/clientauth-strict-leaf.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-eku-any-and-clientauth/clientauth-strict.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-eku-any-and-clientauth/clientauth.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-eku-any-and-clientauth/serverauth-strict-leaf.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-eku-any-and-clientauth/serverauth-strict.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-eku-any-and-clientauth/serverauth.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-eku-clientauth/any.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-eku-clientauth/chain.pem",
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-eku-clientauth/clientauth-strict-leaf.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-eku-clientauth/clientauth-strict.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-eku-clientauth/clientauth.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-eku-clientauth/serverauth-strict-leaf.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-eku-clientauth/serverauth-strict.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-eku-clientauth/serverauth.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-eku-server-gated-crypto/sha1-chain.pem",
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-eku-server-gated-crypto/sha1-eku-any.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-eku-server-gated-crypto/sha1-eku-clientAuth-strict.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-eku-server-gated-crypto/sha1-eku-clientAuth.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-eku-server-gated-crypto/sha1-eku-serverAuth-strict.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-eku-server-gated-crypto/sha1-eku-serverAuth.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-eku-server-gated-crypto/sha256-chain.pem",
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-eku-server-gated-crypto/sha256-eku-any.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-eku-server-gated-crypto/sha256-eku-clientAuth-strict.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-eku-server-gated-crypto/sha256-eku-clientAuth.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-eku-server-gated-crypto/sha256-eku-serverAuth-strict.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-eku-server-gated-crypto/sha256-eku-serverAuth.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-invalid-spki/chain.pem",
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-invalid-spki/main.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-lacks-basic-constraints/chain.pem",
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-lacks-basic-constraints/main.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-lacks-signing-key-usage/chain.pem",
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-lacks-signing-key-usage/main.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-signed-with-sha1/chain.pem",
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-signed-with-sha1/main.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-unknown-critical-extension/chain.pem",
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-unknown-critical-extension/main.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-unknown-non-critical-extension/chain.pem",
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-unknown-non-critical-extension/main.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-wrong-signature-no-authority-key-identifier/chain.pem",
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-wrong-signature-no-authority-key-identifier/main.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/issuer-and-subject-not-byte-for-byte-equal/anchor.pem",
+    "src/pki/testdata/verify_certificate_chain_unittest/issuer-and-subject-not-byte-for-byte-equal/anchor.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/issuer-and-subject-not-byte-for-byte-equal/target.pem",
+    "src/pki/testdata/verify_certificate_chain_unittest/issuer-and-subject-not-byte-for-byte-equal/target.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/key-rollover/longrolloverchain.pem",
+    "src/pki/testdata/verify_certificate_chain_unittest/key-rollover/longrolloverchain.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/key-rollover/newchain.pem",
+    "src/pki/testdata/verify_certificate_chain_unittest/key-rollover/newchain.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/key-rollover/oldchain.pem",
+    "src/pki/testdata/verify_certificate_chain_unittest/key-rollover/oldchain.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/key-rollover/rolloverchain.pem",
+    "src/pki/testdata/verify_certificate_chain_unittest/key-rollover/rolloverchain.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/many-names/ok-all-types.pem",
+    "src/pki/testdata/verify_certificate_chain_unittest/many-names/ok-all-types.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/many-names/toomany-all-types.pem",
+    "src/pki/testdata/verify_certificate_chain_unittest/many-names/toomany-all-types.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/many-names/toomany-dirnames-excluded.pem",
+    "src/pki/testdata/verify_certificate_chain_unittest/many-names/toomany-dirnames-excluded.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/many-names/toomany-dirnames-permitted.pem",
+    "src/pki/testdata/verify_certificate_chain_unittest/many-names/toomany-dirnames-permitted.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/many-names/toomany-dns-excluded.pem",
+    "src/pki/testdata/verify_certificate_chain_unittest/many-names/toomany-dns-excluded.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/many-names/toomany-dns-permitted.pem",
+    "src/pki/testdata/verify_certificate_chain_unittest/many-names/toomany-dns-permitted.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/many-names/toomany-ips-excluded.pem",
+    "src/pki/testdata/verify_certificate_chain_unittest/many-names/toomany-ips-excluded.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/many-names/toomany-ips-permitted.pem",
+    "src/pki/testdata/verify_certificate_chain_unittest/many-names/toomany-ips-permitted.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/non-self-signed-root/chain.pem",
+    "src/pki/testdata/verify_certificate_chain_unittest/non-self-signed-root/main.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/non-self-signed-root/ta-with-constraints.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.1.2.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.1.3.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.1.4.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.1.5.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.1.6.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.10.1.2.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.10.1.3.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.10.10.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.10.13.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.10.2.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.10.3.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.10.4.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.10.5.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.10.6.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.10.7.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.10.8.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.11.1.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.11.10.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.11.11.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.11.3.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.11.5.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.11.6.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.11.8.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.11.9.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.12.1.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.12.10.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.12.3.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.12.4.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.12.5.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.12.6.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.12.8.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.13.10.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.13.12.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.13.13.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.13.15.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.13.16.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.13.17.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.13.2.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.13.20.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.13.21.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.13.22.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.13.23.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.13.24.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.13.25.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.13.26.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.13.27.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.13.28.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.13.29.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.13.3.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.13.31.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.13.33.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.13.34.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.13.35.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.13.36.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.13.37.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.13.38.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.13.7.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.13.8.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.13.9.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.16.2.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.2.1.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.2.2.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.2.5.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.2.6.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.2.7.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.3.1.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.3.2.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.6.1.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.6.10.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.6.11.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.6.12.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.6.16.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.6.2.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.6.3.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.6.5.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.6.6.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.6.9.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.7.1.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.7.2.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.8.1.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.8.12.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.8.14.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.8.2.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.8.3.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.8.4.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.8.5.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.8.6.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.8.7.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.8.8.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.8.9.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.9.3.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.9.5.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.9.7.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.9.8.txt",
+    "src/pki/testdata/verify_certificate_chain_unittest/policies-inhibit-anypolicy-by-root-fail/chain.pem",
+    "src/pki/testdata/verify_certificate_chain_unittest/policies-inhibit-anypolicy-by-root-fail/main.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/policies-inhibit-anypolicy-by-root-fail/ta-with-constraints.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/policies-inhibit-anypolicy-by-root-ok/chain.pem",
+    "src/pki/testdata/verify_certificate_chain_unittest/policies-inhibit-anypolicy-by-root-ok/main.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/policies-inhibit-anypolicy-by-root-ok/ta-with-constraints.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/policies-inhibit-mapping-by-root-fail/chain.pem",
+    "src/pki/testdata/verify_certificate_chain_unittest/policies-inhibit-mapping-by-root-fail/main.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/policies-inhibit-mapping-by-root-fail/ta-with-constraints.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/policies-inhibit-mapping-by-root-ok/chain.pem",
+    "src/pki/testdata/verify_certificate_chain_unittest/policies-inhibit-mapping-by-root-ok/main.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/policies-inhibit-mapping-by-root-ok/ta-with-constraints.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/policies-ok/chain.pem",
+    "src/pki/testdata/verify_certificate_chain_unittest/policies-ok/main.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/policies-ok/ta-with-constraints.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/policies-on-root-ok/chain.pem",
+    "src/pki/testdata/verify_certificate_chain_unittest/policies-on-root-ok/main.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/policies-on-root-ok/ta-with-constraints.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/policies-on-root-wrong/chain.pem",
+    "src/pki/testdata/verify_certificate_chain_unittest/policies-on-root-wrong/main.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/policies-on-root-wrong/ta-with-constraints.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/policies-required-by-root-fail/chain.pem",
+    "src/pki/testdata/verify_certificate_chain_unittest/policies-required-by-root-fail/main.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/policies-required-by-root-fail/ta-with-constraints.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/policies-required-by-root-ok/chain.pem",
+    "src/pki/testdata/verify_certificate_chain_unittest/policies-required-by-root-ok/main.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/policies-required-by-root-ok/ta-with-constraints.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/policy-mappings-on-root-fail/chain.pem",
+    "src/pki/testdata/verify_certificate_chain_unittest/policy-mappings-on-root-fail/main.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/policy-mappings-on-root-fail/ta-with-constraints.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/policy-mappings-on-root-ok/chain.pem",
+    "src/pki/testdata/verify_certificate_chain_unittest/policy-mappings-on-root-ok/main.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/policy-mappings-on-root-ok/ta-with-constraints.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/root-basic-constraints-ca-false/chain.pem",
+    "src/pki/testdata/verify_certificate_chain_unittest/root-basic-constraints-ca-false/main.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/root-basic-constraints-ca-false/ta-with-constraints.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/root-eku-clientauth/chain.pem",
+    "src/pki/testdata/verify_certificate_chain_unittest/root-eku-clientauth/serverauth-strict.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/root-eku-clientauth/serverauth-ta-with-constraints-strict.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/root-eku-clientauth/serverauth-ta-with-constraints.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/root-eku-clientauth/serverauth-ta-with-expiration-and-constraints.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/root-eku-clientauth/serverauth-ta-with-expiration.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/root-eku-clientauth/serverauth.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/root-lacks-basic-constraints/chain.pem",
+    "src/pki/testdata/verify_certificate_chain_unittest/root-lacks-basic-constraints/main.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/root-lacks-basic-constraints/ta-with-constraints-require-basic-constraints.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/root-lacks-basic-constraints/ta-with-constraints.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/root-lacks-basic-constraints/ta-with-require-basic-constraints.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/root-lacks-keycertsign-key-usage/chain.pem",
+    "src/pki/testdata/verify_certificate_chain_unittest/root-lacks-keycertsign-key-usage/main.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/root-lacks-keycertsign-key-usage/ta-with-constraints.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-and-intermediate/chain.pem",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-and-intermediate/distrusted-root-expired.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-and-intermediate/distrusted-root.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-and-intermediate/main.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-and-intermediate/ta-with-constraints.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-and-intermediate/ta-with-expiration.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-and-intermediate/trusted_leaf-and-trust_anchor.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-and-intermediate/trusted_leaf-root.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-and-intermediate/unspecified-trust-root.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-eku-any/any.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-eku-any/chain.pem",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-eku-any/clientauth-strict-leaf.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-eku-any/clientauth-strict.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-eku-any/clientauth.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-eku-any/serverauth-strict-leaf.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-eku-any/serverauth-strict.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-eku-any/serverauth.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-eku-clientauth/any.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-eku-clientauth/chain.pem",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-eku-clientauth/clientauth-strict.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-eku-clientauth/clientauth.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-eku-clientauth/serverauth-strict.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-eku-clientauth/serverauth.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-eku-many/any.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-eku-many/chain.pem",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-eku-many/clientauth-strict-leaf.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-eku-many/clientauth-strict.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-eku-many/clientauth.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-eku-many/serverauth-strict-leaf.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-eku-many/serverauth-strict.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-eku-many/serverauth.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-eku-none/any.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-eku-none/chain.pem",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-eku-none/clientauth-strict-leaf.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-eku-none/clientauth-strict.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-eku-none/clientauth.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-eku-none/serverauth-strict.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-eku-none/serverauth.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-has-512bit-rsa-key/chain.pem",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-has-512bit-rsa-key/main.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-has-ca-basic-constraints/chain.pem",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-has-ca-basic-constraints/main.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-has-ca-basic-constraints/strict.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-has-ca-basic-constraints/target_only-trusted_leaf-strict.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-has-ca-basic-constraints/target_only-trusted_leaf.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-has-ca-basic-constraints/target_only.pem",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-has-keycertsign-but-not-ca/chain.pem",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-has-keycertsign-but-not-ca/main.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-has-pathlen-but-not-ca/chain.pem",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-has-pathlen-but-not-ca/main.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-msapplicationpolicies-and-eku/chain.pem",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-msapplicationpolicies-and-eku/main.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-msapplicationpolicies-no-eku/chain.pem",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-msapplicationpolicies-no-eku/main.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-not-end-entity/chain.pem",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-not-end-entity/main.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-not-end-entity/strict-leaf.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-not-end-entity/strict.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-only/chain.pem",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-only/trusted_anchor.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-only/trusted_leaf-and-trust_anchor.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-only/trusted_leaf-not_after.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-only/trusted_leaf-wrong_eku.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-only/trusted_leaf.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-only/trusted_leaf_require_self_signed.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-selfissued/chain.pem",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-selfissued/trusted_anchor.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-selfissued/trusted_leaf-and-trust_anchor.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-selfissued/trusted_leaf.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-selfissued/trusted_leaf_require_self_signed.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-selfsigned/chain.pem",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-selfsigned/trusted_leaf-and-trust_anchor.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-selfsigned/trusted_leaf-not_after.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-selfsigned/trusted_leaf-wrong_eku.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-selfsigned/trusted_leaf.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-selfsigned/trusted_leaf_require_self_signed.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-serverauth-various-keyusages/ec-decipherOnly.pem",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-serverauth-various-keyusages/ec-decipherOnly.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-serverauth-various-keyusages/ec-digitalSignature.pem",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-serverauth-various-keyusages/ec-digitalSignature.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-serverauth-various-keyusages/ec-keyAgreement.pem",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-serverauth-various-keyusages/ec-keyAgreement.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-serverauth-various-keyusages/ec-keyEncipherment.pem",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-serverauth-various-keyusages/ec-keyEncipherment.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-serverauth-various-keyusages/rsa-decipherOnly.pem",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-serverauth-various-keyusages/rsa-decipherOnly.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-serverauth-various-keyusages/rsa-digitalSignature.pem",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-serverauth-various-keyusages/rsa-digitalSignature.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-serverauth-various-keyusages/rsa-keyAgreement.pem",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-serverauth-various-keyusages/rsa-keyAgreement.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-serverauth-various-keyusages/rsa-keyEncipherment.pem",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-serverauth-various-keyusages/rsa-keyEncipherment.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-signed-by-512bit-rsa/chain.pem",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-signed-by-512bit-rsa/main.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-signed-using-ecdsa/chain.pem",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-signed-using-ecdsa/main.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-signed-with-sha1/chain.pem",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-signed-with-sha1/main.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-unknown-critical-extension/chain.pem",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-unknown-critical-extension/main.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-unknown-critical-extension/target_only-trusted_leaf.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-unknown-critical-extension/target_only.pem",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-wrong-signature-no-authority-key-identifier/chain.pem",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-wrong-signature-no-authority-key-identifier/main.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-wrong-signature/chain.pem",
+    "src/pki/testdata/verify_certificate_chain_unittest/target-wrong-signature/main.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/unknown-critical-policy-qualifier/chain.pem",
+    "src/pki/testdata/verify_certificate_chain_unittest/unknown-critical-policy-qualifier/main.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/unknown-non-critical-policy-qualifier/chain.pem",
+    "src/pki/testdata/verify_certificate_chain_unittest/unknown-non-critical-policy-qualifier/main.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/violates-basic-constraints-pathlen-0/chain.pem",
+    "src/pki/testdata/verify_certificate_chain_unittest/violates-basic-constraints-pathlen-0/main.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/violates-pathlen-1-from-root/chain.pem",
+    "src/pki/testdata/verify_certificate_chain_unittest/violates-pathlen-1-from-root/main.test",
+    "src/pki/testdata/verify_certificate_chain_unittest/violates-pathlen-1-from-root/ta-with-constraints.test",
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-BMPSTRING-case_swap-dupe_attr.pem",
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-BMPSTRING-case_swap-extra_attr.pem",
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-BMPSTRING-case_swap-extra_rdn.pem",
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-BMPSTRING-case_swap.pem",
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-BMPSTRING-extra_whitespace-dupe_attr.pem",
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-BMPSTRING-extra_whitespace-extra_attr.pem",
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-BMPSTRING-extra_whitespace-extra_rdn.pem",
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-BMPSTRING-extra_whitespace.pem",
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-BMPSTRING-unmangled-dupe_attr.pem",
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-BMPSTRING-unmangled-extra_attr.pem",
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-BMPSTRING-unmangled-extra_rdn.pem",
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-BMPSTRING-unmangled.pem",
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-PRINTABLESTRING-case_swap-dupe_attr.pem",
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-PRINTABLESTRING-case_swap-extra_attr.pem",
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-PRINTABLESTRING-case_swap-extra_rdn.pem",
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-PRINTABLESTRING-case_swap.pem",
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-PRINTABLESTRING-extra_whitespace-dupe_attr.pem",
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-PRINTABLESTRING-extra_whitespace-extra_attr.pem",
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-PRINTABLESTRING-extra_whitespace-extra_rdn.pem",
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-PRINTABLESTRING-extra_whitespace.pem",
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-PRINTABLESTRING-rdn_sorting_1.pem",
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-PRINTABLESTRING-rdn_sorting_2.pem",
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-PRINTABLESTRING-unmangled-dupe_attr.pem",
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-PRINTABLESTRING-unmangled-extra_attr.pem",
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-PRINTABLESTRING-unmangled-extra_rdn.pem",
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-PRINTABLESTRING-unmangled.pem",
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-T61STRING-case_swap-dupe_attr.pem",
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-T61STRING-case_swap-extra_attr.pem",
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-T61STRING-case_swap-extra_rdn.pem",
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-T61STRING-case_swap.pem",
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-T61STRING-extra_whitespace-dupe_attr.pem",
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-T61STRING-extra_whitespace-extra_attr.pem",
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-T61STRING-extra_whitespace-extra_rdn.pem",
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-T61STRING-extra_whitespace.pem",
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-T61STRING-unmangled-dupe_attr.pem",
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-T61STRING-unmangled-extra_attr.pem",
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-T61STRING-unmangled-extra_rdn.pem",
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-T61STRING-unmangled.pem",
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-UNIVERSALSTRING-case_swap-dupe_attr.pem",
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-UNIVERSALSTRING-case_swap-extra_attr.pem",
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-UNIVERSALSTRING-case_swap-extra_rdn.pem",
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-UNIVERSALSTRING-case_swap.pem",
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-UNIVERSALSTRING-extra_whitespace-dupe_attr.pem",
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-UNIVERSALSTRING-extra_whitespace-extra_attr.pem",
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-UNIVERSALSTRING-extra_whitespace-extra_rdn.pem",
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-UNIVERSALSTRING-extra_whitespace.pem",
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-UNIVERSALSTRING-unmangled-dupe_attr.pem",
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-UNIVERSALSTRING-unmangled-extra_attr.pem",
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-UNIVERSALSTRING-unmangled-extra_rdn.pem",
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-UNIVERSALSTRING-unmangled.pem",
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-UTF8-case_swap-dupe_attr.pem",
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-UTF8-case_swap-extra_attr.pem",
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-UTF8-case_swap-extra_rdn.pem",
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-UTF8-case_swap.pem",
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-UTF8-extra_whitespace-dupe_attr.pem",
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-UTF8-extra_whitespace-extra_attr.pem",
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-UTF8-extra_whitespace-extra_rdn.pem",
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-UTF8-extra_whitespace.pem",
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-UTF8-unmangled-dupe_attr.pem",
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-UTF8-unmangled-extra_attr.pem",
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-UTF8-unmangled-extra_rdn.pem",
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-UTF8-unmangled.pem",
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-mixed-rdn_dupetype_sorting_1.pem",
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-mixed-rdn_dupetype_sorting_2.pem",
+    "src/pki/testdata/verify_name_match_unittest/names/custom-custom-normalized.pem",
+    "src/pki/testdata/verify_name_match_unittest/names/invalid-AttributeTypeAndValue-badAttributeType.pem",
+    "src/pki/testdata/verify_name_match_unittest/names/invalid-AttributeTypeAndValue-empty.pem",
+    "src/pki/testdata/verify_name_match_unittest/names/invalid-AttributeTypeAndValue-extradata.pem",
+    "src/pki/testdata/verify_name_match_unittest/names/invalid-AttributeTypeAndValue-onlyOneElement.pem",
+    "src/pki/testdata/verify_name_match_unittest/names/invalid-AttributeTypeAndValue-setNotSequence.pem",
+    "src/pki/testdata/verify_name_match_unittest/names/invalid-Name-setInsteadOfSequence.pem",
+    "src/pki/testdata/verify_name_match_unittest/names/invalid-RDN-empty.pem",
+    "src/pki/testdata/verify_name_match_unittest/names/invalid-RDN-sequenceInsteadOfSet.pem",
+    "src/pki/testdata/verify_name_match_unittest/names/unicode-mixed-normalized.pem",
+    "src/pki/testdata/verify_name_match_unittest/names/unicode-mixed-unnormalized.pem",
+    "src/pki/testdata/verify_name_match_unittest/names/unicode_bmp-BMPSTRING-unmangled.pem",
+    "src/pki/testdata/verify_name_match_unittest/names/unicode_bmp-UNIVERSALSTRING-unmangled.pem",
+    "src/pki/testdata/verify_name_match_unittest/names/unicode_bmp-UTF8-unmangled.pem",
+    "src/pki/testdata/verify_name_match_unittest/names/unicode_supplementary-UNIVERSALSTRING-unmangled.pem",
+    "src/pki/testdata/verify_name_match_unittest/names/unicode_supplementary-UTF8-unmangled.pem",
+    "src/pki/testdata/verify_name_match_unittest/names/valid-Name-empty.pem",
+    "src/pki/testdata/verify_name_match_unittest/names/valid-minimal.pem",
+    "src/pki/testdata/verify_signed_data_unittest/ecdsa-prime256v1-sha512-spki-params-null.pem",
+    "src/pki/testdata/verify_signed_data_unittest/ecdsa-prime256v1-sha512-unused-bits-signature.pem",
+    "src/pki/testdata/verify_signed_data_unittest/ecdsa-prime256v1-sha512-using-ecdh-key.pem",
+    "src/pki/testdata/verify_signed_data_unittest/ecdsa-prime256v1-sha512-using-ecmqv-key.pem",
+    "src/pki/testdata/verify_signed_data_unittest/ecdsa-prime256v1-sha512-using-rsa-algorithm.pem",
+    "src/pki/testdata/verify_signed_data_unittest/ecdsa-prime256v1-sha512-wrong-signature-format.pem",
+    "src/pki/testdata/verify_signed_data_unittest/ecdsa-prime256v1-sha512.pem",
+    "src/pki/testdata/verify_signed_data_unittest/ecdsa-secp384r1-sha256-corrupted-data.pem",
+    "src/pki/testdata/verify_signed_data_unittest/ecdsa-secp384r1-sha256.pem",
+    "src/pki/testdata/verify_signed_data_unittest/ecdsa-using-rsa-key.pem",
+    "src/pki/testdata/verify_signed_data_unittest/rsa-pkcs1-sha1-bad-key-der-length.pem",
+    "src/pki/testdata/verify_signed_data_unittest/rsa-pkcs1-sha1-bad-key-der-null.pem",
+    "src/pki/testdata/verify_signed_data_unittest/rsa-pkcs1-sha1-key-params-absent.pem",
+    "src/pki/testdata/verify_signed_data_unittest/rsa-pkcs1-sha1-using-pss-key-no-params.pem",
+    "src/pki/testdata/verify_signed_data_unittest/rsa-pkcs1-sha1-wrong-algorithm.pem",
+    "src/pki/testdata/verify_signed_data_unittest/rsa-pkcs1-sha1.pem",
+    "src/pki/testdata/verify_signed_data_unittest/rsa-pkcs1-sha256-key-encoded-ber.pem",
+    "src/pki/testdata/verify_signed_data_unittest/rsa-pkcs1-sha256-spki-non-null-params.pem",
+    "src/pki/testdata/verify_signed_data_unittest/rsa-pkcs1-sha256-using-ecdsa-algorithm.pem",
+    "src/pki/testdata/verify_signed_data_unittest/rsa-pkcs1-sha256-using-id-ea-rsa.pem",
+    "src/pki/testdata/verify_signed_data_unittest/rsa-pkcs1-sha256.pem",
+    "src/pki/testdata/verify_signed_data_unittest/rsa-pss-sha256-using-pss-key-with-params.pem",
+    "src/pki/testdata/verify_signed_data_unittest/rsa-pss-sha256-wrong-salt.pem",
+    "src/pki/testdata/verify_signed_data_unittest/rsa-pss-sha256.pem",
+    "src/pki/testdata/verify_signed_data_unittest/rsa-using-ec-key.pem",
+    "src/pki/testdata/verify_signed_data_unittest/rsa2048-pkcs1-sha512.pem",
+    "src/pki/testdata/verify_unittest/google-intermediate1.der",
+    "src/pki/testdata/verify_unittest/google-intermediate2.der",
+    "src/pki/testdata/verify_unittest/google-leaf.der",
+    "src/pki/testdata/verify_unittest/lencr-intermediate-r3.der",
+    "src/pki/testdata/verify_unittest/lencr-leaf.der",
+    "src/pki/testdata/verify_unittest/lencr-root-dst-x3.der",
+    "src/pki/testdata/verify_unittest/lencr-root-x1-cross-signed.der",
+    "src/pki/testdata/verify_unittest/lencr-root-x1.der",
+    "src/pki/testdata/verify_unittest/mozilla_roots.der",
+    "src/pki/testdata/verify_unittest/self-issued.pem",
+]
+
+urandom_test_sources = [
+    "src/crypto/rand_extra/urandom_test.cc",
+]
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 2308d57..c467259 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,203 +1,35 @@
+# Copyright (c) 2015, Google Inc.
+#
+# Permission to use, copy, modify, and/or distribute this software for any
+# purpose with or without fee is hereby granted, provided that the above
+# copyright notice and this permission notice appear in all copies.
+#
+# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
+# SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
+# OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+# CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+# This file is created by generate_build_files.py. Do not edit manually.
+
 cmake_minimum_required(VERSION 3.16)
 
-# Defer enabling C and CXX languages.
-project(BoringSSL NONE)
-
-# Don't install BoringSSL to system directories by default; it has no stable
-# ABI. Instead, default to an "install" directory under the source.
-if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
-  set(CMAKE_INSTALL_PREFIX ${CMAKE_SOURCE_DIR}/install CACHE PATH "" FORCE)
-endif()
-
-if(WIN32)
-  # On Windows, prefer cl over gcc if both are available. By default most of
-  # the CMake generators prefer gcc, even on Windows.
-  set(CMAKE_GENERATOR_CC cl)
-endif()
-
-include(cmake/go.cmake)
-include(cmake/paths.cmake)
-include(gen/sources.cmake)
-
-enable_language(C)
-enable_language(CXX)
-
-include(GNUInstallDirs)
-
-set(INSTALL_ENABLED 1)
-
-if(CMAKE_SYSTEM_NAME STREQUAL "Linux" AND NOT CMAKE_CROSSCOMPILING)
-  find_package(PkgConfig QUIET)
-  if (PkgConfig_FOUND)
-    pkg_check_modules(LIBUNWIND libunwind-generic>=1.3.0)
-    if(LIBUNWIND_FOUND)
-      add_definitions(-DBORINGSSL_HAVE_LIBUNWIND)
-    else()
-      message("libunwind not found. Disabling unwind tests.")
-    endif()
-  else()
-    message("pkgconfig not found. Disabling unwind tests.")
-  endif()
-endif()
-
-string(TOLOWER "${CMAKE_BUILD_TYPE}" CMAKE_BUILD_TYPE_LOWER)
-if(NOT FIPS)
-  if(CMAKE_BUILD_TYPE_LOWER STREQUAL "relwithassert" OR
-     NOT CMAKE_BUILD_TYPE_LOWER MATCHES "rel")
-    add_definitions(-DBORINGSSL_DISPATCH_TEST)
-    # CMake automatically connects include_directories to the NASM
-    # command-line, but not add_definitions.
-    set(CMAKE_ASM_NASM_FLAGS "${CMAKE_ASM_NASM_FLAGS} -DBORINGSSL_DISPATCH_TEST")
-  endif()
-endif()
-
-# Add a RelWithAsserts build configuration. It is the same as Release, except it
-# does not define NDEBUG, so asserts run.
-foreach(VAR CMAKE_C_FLAGS CMAKE_CXX_FLAGS CMAKE_ASM_FLAGS)
-  string(REGEX REPLACE "(^| )[/-]DNDEBUG( |$)" " " "${VAR}_RELWITHASSERTS"
-         "${${VAR}_RELEASE}")
-endforeach()
-
-if(BORINGSSL_PREFIX AND BORINGSSL_PREFIX_SYMBOLS)
-  require_go()
-  add_definitions(-DBORINGSSL_PREFIX=${BORINGSSL_PREFIX})
-  # CMake automatically connects include_directories to the NASM command-line,
-  # but not add_definitions.
-  set(CMAKE_ASM_NASM_FLAGS "${CMAKE_ASM_NASM_FLAGS} -DBORINGSSL_PREFIX=${BORINGSSL_PREFIX}")
-
-  # Use "symbol_prefix_include" to store generated header files
-  include_directories(${CMAKE_CURRENT_BINARY_DIR}/symbol_prefix_include)
-  add_custom_command(
-    OUTPUT symbol_prefix_include/boringssl_prefix_symbols.h
-           symbol_prefix_include/boringssl_prefix_symbols_asm.h
-           symbol_prefix_include/boringssl_prefix_symbols_nasm.inc
-    COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/symbol_prefix_include
-    COMMAND ${GO_EXECUTABLE} run ${CMAKE_CURRENT_SOURCE_DIR}/util/make_prefix_headers.go -out ${CMAKE_CURRENT_BINARY_DIR}/symbol_prefix_include ${BORINGSSL_PREFIX_SYMBOLS}
-    DEPENDS util/make_prefix_headers.go
-            ${BORINGSSL_PREFIX_SYMBOLS})
-
-  # add_dependencies needs a target, not a file, so we add an intermediate
-  # target.
-  add_custom_target(
-    boringssl_prefix_symbols
-    DEPENDS symbol_prefix_include/boringssl_prefix_symbols.h
-            symbol_prefix_include/boringssl_prefix_symbols_asm.h
-            symbol_prefix_include/boringssl_prefix_symbols_nasm.inc)
-elseif(BORINGSSL_PREFIX OR BORINGSSL_PREFIX_SYMBOLS)
-  message(FATAL_ERROR "Must specify both or neither of BORINGSSL_PREFIX and BORINGSSL_PREFIX_SYMBOLS")
-else()
-  add_custom_target(boringssl_prefix_symbols)
-endif()
-
-if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
-  set(CLANG 1)
-endif()
-
-if(CMAKE_SYSTEM_NAME STREQUAL "Emscripten")
-  set(EMSCRIPTEN 1)
-endif()
+project(BoringSSL LANGUAGES C CXX)
 
 set(CMAKE_CXX_STANDARD 14)
 set(CMAKE_CXX_STANDARD_REQUIRED ON)
 set(CMAKE_C_STANDARD 11)
 set(CMAKE_C_STANDARD_REQUIRED ON)
+if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
+  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden -fno-common -fno-exceptions -fno-rtti")
+  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fvisibility=hidden -fno-common")
+endif()
 
-if(CMAKE_COMPILER_IS_GNUCXX OR CLANG)
-  # Note clang-cl is odd and sets both CLANG and MSVC. We base our configuration
-  # primarily on our normal Clang one.
-  set(C_CXX_FLAGS "-Werror -Wformat=2 -Wsign-compare -Wwrite-strings -Wvla -Wshadow -Wtype-limits -Wmissing-field-initializers")
-  if(MSVC)
-    # clang-cl sets different default warnings than clang. It also treats -Wall
-    # as -Weverything, to match MSVC. Instead -W3 is the alias for -Wall.
-    # See http://llvm.org/viewvc/llvm-project?view=revision&revision=319116
-    set(C_CXX_FLAGS "${C_CXX_FLAGS} -W3 -Wno-unused-parameter -fmsc-version=1900")
-  else()
-    if(EMSCRIPTEN)
-      # emscripten's emcc/clang does not accept the "-ggdb" flag.
-      set(C_CXX_FLAGS "${C_CXX_FLAGS} -g")
-    else()
-      set(C_CXX_FLAGS "${C_CXX_FLAGS} -ggdb")
-    endif()
-
-    set(C_CXX_FLAGS "${C_CXX_FLAGS} -Wall -fvisibility=hidden -fno-common")
-  endif()
-
-  if(CLANG)
-    set(C_CXX_FLAGS "${C_CXX_FLAGS} -Wnewline-eof -fcolor-diagnostics")
-  else()
-    # GCC (at least 4.8.4) has a bug where it'll find unreachable free() calls
-    # and declare that the code is trying to free a stack pointer.
-    set(C_CXX_FLAGS "${C_CXX_FLAGS} -Wno-free-nonheap-object")
-  endif()
-
-  # -Wstring-concatenation was added in Clang 12.0.0, which corresponds to
-  # AppleClang 13.0.0 per the table in
-  # https://en.wikipedia.org/wiki/Xcode#Toolchain_versions
-  if((CMAKE_C_COMPILER_ID STREQUAL "Clang" AND
-      CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL "12.0.0") OR
-     (CMAKE_C_COMPILER_ID STREQUAL "AppleClang" AND
-      CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL "13.0.0"))
-    set(C_CXX_FLAGS "${C_CXX_FLAGS} -Wstring-concatenation")
-  endif()
-
-  # Clang 12's -Wframe-larger-than reportedly does not work in clang-cl. See
-  # https://crbug.com/boringssl/709. Clang 13 includes the following fix, which
-  # may be related. Speculatively gate on Clang 13. That corresponds to
-  # AppleClang 13.1.6.
-  # https://github.com/llvm/llvm-project/commit/6aaf4fa2885600b0e31042071ad06f78218ab0f2
-  if((CMAKE_C_COMPILER_ID STREQUAL "Clang" AND
-      CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL "13.0.0") OR
-     (CMAKE_C_COMPILER_ID STREQUAL "AppleClang" AND
-      CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL "13.1.6"))
-    set(C_CXX_FLAGS "${C_CXX_FLAGS} -Wframe-larger-than=25344")
-  endif()
-
-  # -Wctad-maybe-unsupported was added in Clang 10, which is AppleClang 12.0.0.
-  if((CMAKE_C_COMPILER_ID STREQUAL "Clang" AND
-      CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL "10.0.0") OR
-     (CMAKE_C_COMPILER_ID STREQUAL "AppleClang" AND
-      CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL "12.0.0"))
-    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wctad-maybe-unsupported")
-  endif()
-
-  if(CLANG OR CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL "7.0.0")
-    set(C_CXX_FLAGS "${C_CXX_FLAGS} -Wimplicit-fallthrough")
-  endif()
-
-  if(CMAKE_COMPILER_IS_GNUCXX)
-    set(C_CXX_FLAGS "${C_CXX_FLAGS} -Wformat-signedness")
-  endif()
-
-  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${C_CXX_FLAGS} -Wmissing-prototypes -Wold-style-definition -Wstrict-prototypes")
-  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${C_CXX_FLAGS} -Wmissing-declarations -Wnon-virtual-dtor")
-
-  # In GCC, -Wmissing-declarations is the C++ spelling of -Wmissing-prototypes
-  # and using the wrong one is an error. In Clang, -Wmissing-prototypes is the
-  # spelling for both and -Wmissing-declarations is some other warning.
-  #
-  # https://gcc.gnu.org/onlinedocs/gcc-7.1.0/gcc/Warning-Options.html#Warning-Options
-  # https://clang.llvm.org/docs/DiagnosticsReference.html#wmissing-prototypes
-  # https://clang.llvm.org/docs/DiagnosticsReference.html#wmissing-declarations
-  if(CLANG)
-    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wmissing-prototypes")
-  endif()
-elseif(MSVC)
-  set(MSVC_DISABLED_WARNINGS_LIST
-      "C4100" # 'exarg' : unreferenced formal parameter
-      "C4127" # conditional expression is constant
-      "C4244" # 'function' : conversion from 'int' to 'uint8_t',
-              # possible loss of data
-      "C4267" # conversion from 'size_t' to 'int', possible loss of data
-      "C4706" # assignment within conditional expression
-      )
-  string(REPLACE "C" " -wd" MSVC_DISABLED_WARNINGS_STR
-                            ${MSVC_DISABLED_WARNINGS_LIST})
-  set(CMAKE_C_FLAGS   "-utf-8 -W4 -WX ${MSVC_DISABLED_WARNINGS_STR}")
-  # Without /Zc:__cplusplus, MSVC does not define the right value for
-  # __cplusplus. See https://devblogs.microsoft.com/cppblog/msvc-now-correctly-reports-__cplusplus/
-  # If this becomes too problematic for downstream code, we can look at
-  # _MSVC_LANG.
-  set(CMAKE_CXX_FLAGS "-utf-8 -W4 -WX ${MSVC_DISABLED_WARNINGS_STR} -Zc:__cplusplus")
+# pthread_rwlock_t requires a feature flag on glibc.
+if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
+  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_XOPEN_SOURCE=700")
 endif()
 
 if(WIN32)
@@ -208,156 +40,11 @@
   add_definitions(-D_CRT_SECURE_NO_WARNINGS)
 endif()
 
-# pthread_rwlock_t on Linux requires a feature flag. We limit this to Linux
-# because, on Apple platforms, it instead disables APIs we use. See compat(5)
-# and sys/cdefs.h. Reportedly, FreeBSD also breaks when this is set. See
-# https://crbug.com/boringssl/471.
-if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
-  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_XOPEN_SOURCE=700")
-endif()
-
-if(FUZZ)
-  if(NOT CLANG)
-    message(FATAL_ERROR "You need to build with Clang for fuzzing to work")
-  endif()
-
-  if(CMAKE_C_COMPILER_VERSION VERSION_LESS "6.0.0")
-    message(FATAL_ERROR "You need Clang ≥ 6.0.0")
-  endif()
-
-  add_definitions(-DBORINGSSL_UNSAFE_DETERMINISTIC_MODE)
-  set(RUNNER_ARGS "-deterministic")
-
-  if(NOT NO_FUZZER_MODE)
-    add_definitions(-DBORINGSSL_UNSAFE_FUZZER_MODE)
-    set(RUNNER_ARGS ${RUNNER_ARGS} "-fuzzer" "-shim-config" "fuzzer_mode.json")
-  endif()
-
-  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=address,fuzzer-no-link -fsanitize-coverage=edge,indirect-calls")
-  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address,fuzzer-no-link -fsanitize-coverage=edge,indirect-calls")
-endif()
-
 add_definitions(-DBORINGSSL_IMPLEMENTATION)
 
-if(BUILD_SHARED_LIBS)
-  add_definitions(-DBORINGSSL_SHARED_LIBRARY)
-  # Enable position-independent code globally. This is needed because
-  # some library targets are OBJECT libraries.
-  set(CMAKE_POSITION_INDEPENDENT_CODE TRUE)
-endif()
-
-if(MSAN)
-  if(NOT CLANG)
-    message(FATAL_ERROR "Cannot enable MSAN unless using Clang")
-  endif()
-
-  if(ASAN)
-    message(FATAL_ERROR "ASAN and MSAN are mutually exclusive")
-  endif()
-
-  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=memory -fsanitize-memory-track-origins -fno-omit-frame-pointer")
-  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=memory -fsanitize-memory-track-origins -fno-omit-frame-pointer")
-  set(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} -fsanitize=memory -fsanitize-memory-track-origins -fno-omit-frame-pointer")
-endif()
-
-if(ASAN)
-  if(NOT CLANG)
-    message(FATAL_ERROR "Cannot enable ASAN unless using Clang")
-  endif()
-
-  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=address -fsanitize-address-use-after-scope -fno-omit-frame-pointer")
-  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address -fsanitize-address-use-after-scope -fno-omit-frame-pointer")
-endif()
-
-if(CFI)
-  if(NOT CLANG)
-    message(FATAL_ERROR "Cannot enable CFI unless using Clang")
-  endif()
-
-  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=cfi -fno-sanitize-trap=cfi -flto=thin")
-  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=cfi -fno-sanitize-trap=cfi -flto=thin")
-  # We use Chromium's copy of clang, which requires -fuse-ld=lld if building
-  # with -flto. That, in turn, can't handle -ggdb.
-  set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fuse-ld=lld")
-  string(REPLACE "-ggdb" "-g" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
-  string(REPLACE "-ggdb" "-g" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
-  # -flto causes object files to contain LLVM bitcode. Mixing those with
-  # assembly output in the same static library breaks the linker.
-  set(OPENSSL_NO_ASM "1")
-endif()
-
-if(TSAN)
-  if(NOT CLANG)
-    message(FATAL_ERROR "Cannot enable TSAN unless using Clang")
-  endif()
-
-  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=thread")
-  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=thread")
-  set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=thread")
-endif()
-
-if(UBSAN)
-  if(NOT CLANG)
-    message(FATAL_ERROR "Cannot enable UBSAN unless using Clang")
-  endif()
-
-  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=undefined")
-  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=undefined")
-  set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=undefined")
-
-  if(NOT UBSAN_RECOVER)
-    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-sanitize-recover=undefined")
-    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-sanitize-recover=undefined")
-    set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fno-sanitize-recover=undefined")
-  endif()
-endif()
-
-if(GCOV)
-  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fprofile-arcs -ftest-coverage")
-  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-arcs -ftest-coverage")
-endif()
-
-if(FIPS)
-  require_go()
-  add_definitions(-DBORINGSSL_FIPS)
-  if(FIPS_BREAK_TEST)
-    add_definitions("-DBORINGSSL_FIPS_BREAK_${FIPS_BREAK_TEST}=1")
-  endif()
-  # The FIPS integrity check does not work for ASan and MSan builds.
-  if(NOT ASAN AND NOT MSAN)
-    if(BUILD_SHARED_LIBS)
-      set(FIPS_SHARED "1")
-    else()
-      set(FIPS_DELOCATE "1")
-    endif()
-  endif()
-  if(FIPS_SHARED)
-    # The Android CMake files set -ffunction-sections and -fdata-sections,
-    # which is incompatible with FIPS_SHARED.
-    set(CMAKE_C_FLAGS
-        "${CMAKE_C_FLAGS} -fno-function-sections -fno-data-sections")
-    set(CMAKE_CXX_FLAGS
-        "${CMAKE_CXX_FLAGS} -fno-function-sections -fno-data-sections")
-  endif()
-endif()
-
-if(OPENSSL_SMALL)
-  add_definitions(-DOPENSSL_SMALL)
-endif()
-
-if(CONSTANT_TIME_VALIDATION)
-  add_definitions(-DBORINGSSL_CONSTANT_TIME_VALIDATION)
-endif()
-
-if(MALLOC_FAILURE_TESTING)
-  add_definitions(-DBORINGSSL_MALLOC_FAILURE_TESTING)
-endif()
-
 if(OPENSSL_NO_ASM)
   add_definitions(-DOPENSSL_NO_ASM)
-endif()
-
-if(FIPS_DELOCATE OR NOT OPENSSL_NO_ASM)
+else()
   # On x86 and x86_64 Windows, we use the NASM output.
   if(WIN32 AND CMAKE_SYSTEM_PROCESSOR MATCHES "AMD64|x86_64|amd64|x86|i[3-6]86")
     enable_language(ASM_NASM)
@@ -365,9 +52,7 @@
     set(CMAKE_ASM_NASM_FLAGS "${CMAKE_ASM_NASM_FLAGS} -gcv8")
   else()
     enable_language(ASM)
-    if (NOT OPENSSL_NO_ASM)
-      set(OPENSSL_ASM TRUE)
-    endif()
+    set(OPENSSL_ASM TRUE)
     # Work around https://gitlab.kitware.com/cmake/cmake/-/issues/20771 in older
     # CMake versions.
     if(APPLE AND CMAKE_VERSION VERSION_LESS 3.19)
@@ -388,391 +73,522 @@
   endif()
 endif()
 
-if(OPENSSL_NO_SSE2_FOR_TESTING)
-  add_definitions(-DOPENSSL_NO_SSE2_FOR_TESTING)
+if(BUILD_SHARED_LIBS)
+  add_definitions(-DBORINGSSL_SHARED_LIBRARY)
+  # Enable position-independent code globally. This is needed because
+  # some library targets are OBJECT libraries.
+  set(CMAKE_POSITION_INDEPENDENT_CODE TRUE)
 endif()
 
-if(USE_CUSTOM_LIBCXX)
-  if(NOT CLANG)
-    message(FATAL_ERROR "USE_CUSTOM_LIBCXX only supported with Clang")
-  endif()
+set(
+  CRYPTO_SOURCES_ASM
 
-  # CMake does not allow installing a library without installing dependencies.
-  # If we installed libcrypto, we'd have to install our custom libc++, which
-  # does not make sense. As this is a test-only configuration, disable
-  # installing.
-  set(INSTALL_ENABLED 0)
-
-  # CMAKE_CXX_FLAGS ends up in the linker flags as well, so use
-  # add_compile_options. There does not appear to be a way to set
-  # language-specific compile-only flags.
-  add_compile_options("-nostdinc++")
-  set(CMAKE_CXX_LINK_FLAGS "${CMAKE_CXX_LINK_FLAGS} -nostdlib++")
-  include_directories(
-    SYSTEM
-    util/bot/libcxx-config
-    util/bot/libcxx/include
-    util/bot/libcxxabi/include
-  )
-
-  # This is patterned after buildtools/third_party/libc++/BUILD.gn and
-  # buildtools/third_party/libc++abi/BUILD.gn in Chromium.
-
-  file(GLOB LIBCXX_SOURCES "util/bot/libcxx/src/*.cpp")
-  file(GLOB LIBCXXABI_SOURCES "util/bot/libcxxabi/src/*.cpp")
-
-  # This file is meant for exception-less builds.
-  list(REMOVE_ITEM LIBCXXABI_SOURCES "trunk/src/cxa_noexception.cpp")
-  # libc++ also defines new and delete.
-  list(REMOVE_ITEM LIBCXXABI_SOURCES "trunk/src/stdlib_new_delete.cpp")
-  if(TSAN)
-    # ThreadSanitizer tries to intercept these symbols. Skip them to avoid
-    # symbol conflicts.
-    list(REMOVE_ITEM LIBCXXABI_SOURCES "trunk/src/cxa_guard.cpp")
-  endif()
-
-  add_library(libcxxabi ${LIBCXXABI_SOURCES})
-  target_compile_definitions(
-    libcxxabi PRIVATE
-    -D_LIBCPP_ENABLE_CXX17_REMOVED_UNEXPECTED_FUNCTIONS
-  )
-
-  add_library(libcxx ${LIBCXX_SOURCES})
-  if(ASAN OR MSAN OR TSAN)
-    # Sanitizers try to intercept new and delete.
-    target_compile_definitions(
-      libcxx PRIVATE
-      -D_LIBCPP_DISABLE_NEW_DELETE_DEFINITIONS
-    )
-  endif()
-  target_compile_definitions(
-    libcxx PRIVATE
-    -D_LIBCPP_BUILDING_LIBRARY
-    -DLIBCXX_BUILDING_LIBCXXABI
-  )
-  set_target_properties(
-    libcxx libcxxabi PROPERTIES
-    COMPILE_FLAGS "-Wno-missing-prototypes -Wno-implicit-fallthrough"
-    # libc++ and libc++abi must be built in C++23 mode.
-    CXX_STANDARD 23
-    CXX_STANDARD_REQUIRED TRUE
-  )
-  # libc++abi depends on libc++ internal headers.
-  set_property(TARGET libcxx libcxxabi APPEND PROPERTY INCLUDE_DIRECTORIES "${CMAKE_CURRENT_SOURCE_DIR}/util/bot/libcxx/src")
-  target_link_libraries(libcxx libcxxabi)
-endif()
-
-# Add minimal googletest targets. The provided one has many side-effects, and
-# googletest has a very straightforward build.
-add_library(
-  boringssl_gtest
-  third_party/googletest/googlemock/src/gmock-all.cc
-  third_party/googletest/googletest/src/gtest-all.cc
-)
-if(USE_CUSTOM_LIBCXX)
-  target_link_libraries(boringssl_gtest libcxx)
-endif()
-target_include_directories(
-    boringssl_gtest
-    PUBLIC
-    third_party/googletest/googlemock/include
-    third_party/googletest/googletest/include
-    PRIVATE
-    third_party/googletest/googlemock
-    third_party/googletest/googletest
+  src/crypto/curve25519/asm/x25519-asm-arm.S
+  src/crypto/hrss/asm/poly_rq_mul.S
+  src/crypto/poly1305/poly1305_arm_asm.S
+  src/gen/bcm/aesni-gcm-x86_64-apple.S
+  src/gen/bcm/aesni-gcm-x86_64-linux.S
+  src/gen/bcm/aesni-x86-apple.S
+  src/gen/bcm/aesni-x86-linux.S
+  src/gen/bcm/aesni-x86_64-apple.S
+  src/gen/bcm/aesni-x86_64-linux.S
+  src/gen/bcm/aesv8-armv7-linux.S
+  src/gen/bcm/aesv8-armv8-apple.S
+  src/gen/bcm/aesv8-armv8-linux.S
+  src/gen/bcm/aesv8-armv8-win.S
+  src/gen/bcm/aesv8-gcm-armv8-apple.S
+  src/gen/bcm/aesv8-gcm-armv8-linux.S
+  src/gen/bcm/aesv8-gcm-armv8-win.S
+  src/gen/bcm/armv4-mont-linux.S
+  src/gen/bcm/armv8-mont-apple.S
+  src/gen/bcm/armv8-mont-linux.S
+  src/gen/bcm/armv8-mont-win.S
+  src/gen/bcm/bn-586-apple.S
+  src/gen/bcm/bn-586-linux.S
+  src/gen/bcm/bn-armv8-apple.S
+  src/gen/bcm/bn-armv8-linux.S
+  src/gen/bcm/bn-armv8-win.S
+  src/gen/bcm/bsaes-armv7-linux.S
+  src/gen/bcm/co-586-apple.S
+  src/gen/bcm/co-586-linux.S
+  src/gen/bcm/ghash-armv4-linux.S
+  src/gen/bcm/ghash-neon-armv8-apple.S
+  src/gen/bcm/ghash-neon-armv8-linux.S
+  src/gen/bcm/ghash-neon-armv8-win.S
+  src/gen/bcm/ghash-ssse3-x86-apple.S
+  src/gen/bcm/ghash-ssse3-x86-linux.S
+  src/gen/bcm/ghash-ssse3-x86_64-apple.S
+  src/gen/bcm/ghash-ssse3-x86_64-linux.S
+  src/gen/bcm/ghash-x86-apple.S
+  src/gen/bcm/ghash-x86-linux.S
+  src/gen/bcm/ghash-x86_64-apple.S
+  src/gen/bcm/ghash-x86_64-linux.S
+  src/gen/bcm/ghashv8-armv7-linux.S
+  src/gen/bcm/ghashv8-armv8-apple.S
+  src/gen/bcm/ghashv8-armv8-linux.S
+  src/gen/bcm/ghashv8-armv8-win.S
+  src/gen/bcm/p256-armv8-asm-apple.S
+  src/gen/bcm/p256-armv8-asm-linux.S
+  src/gen/bcm/p256-armv8-asm-win.S
+  src/gen/bcm/p256-x86_64-asm-apple.S
+  src/gen/bcm/p256-x86_64-asm-linux.S
+  src/gen/bcm/p256_beeu-armv8-asm-apple.S
+  src/gen/bcm/p256_beeu-armv8-asm-linux.S
+  src/gen/bcm/p256_beeu-armv8-asm-win.S
+  src/gen/bcm/p256_beeu-x86_64-asm-apple.S
+  src/gen/bcm/p256_beeu-x86_64-asm-linux.S
+  src/gen/bcm/rdrand-x86_64-apple.S
+  src/gen/bcm/rdrand-x86_64-linux.S
+  src/gen/bcm/rsaz-avx2-apple.S
+  src/gen/bcm/rsaz-avx2-linux.S
+  src/gen/bcm/sha1-586-apple.S
+  src/gen/bcm/sha1-586-linux.S
+  src/gen/bcm/sha1-armv4-large-linux.S
+  src/gen/bcm/sha1-armv8-apple.S
+  src/gen/bcm/sha1-armv8-linux.S
+  src/gen/bcm/sha1-armv8-win.S
+  src/gen/bcm/sha1-x86_64-apple.S
+  src/gen/bcm/sha1-x86_64-linux.S
+  src/gen/bcm/sha256-586-apple.S
+  src/gen/bcm/sha256-586-linux.S
+  src/gen/bcm/sha256-armv4-linux.S
+  src/gen/bcm/sha256-armv8-apple.S
+  src/gen/bcm/sha256-armv8-linux.S
+  src/gen/bcm/sha256-armv8-win.S
+  src/gen/bcm/sha256-x86_64-apple.S
+  src/gen/bcm/sha256-x86_64-linux.S
+  src/gen/bcm/sha512-586-apple.S
+  src/gen/bcm/sha512-586-linux.S
+  src/gen/bcm/sha512-armv4-linux.S
+  src/gen/bcm/sha512-armv8-apple.S
+  src/gen/bcm/sha512-armv8-linux.S
+  src/gen/bcm/sha512-armv8-win.S
+  src/gen/bcm/sha512-x86_64-apple.S
+  src/gen/bcm/sha512-x86_64-linux.S
+  src/gen/bcm/vpaes-armv7-linux.S
+  src/gen/bcm/vpaes-armv8-apple.S
+  src/gen/bcm/vpaes-armv8-linux.S
+  src/gen/bcm/vpaes-armv8-win.S
+  src/gen/bcm/vpaes-x86-apple.S
+  src/gen/bcm/vpaes-x86-linux.S
+  src/gen/bcm/vpaes-x86_64-apple.S
+  src/gen/bcm/vpaes-x86_64-linux.S
+  src/gen/bcm/x86-mont-apple.S
+  src/gen/bcm/x86-mont-linux.S
+  src/gen/bcm/x86_64-mont-apple.S
+  src/gen/bcm/x86_64-mont-linux.S
+  src/gen/bcm/x86_64-mont5-apple.S
+  src/gen/bcm/x86_64-mont5-linux.S
+  src/gen/crypto/aes128gcmsiv-x86_64-apple.S
+  src/gen/crypto/aes128gcmsiv-x86_64-linux.S
+  src/gen/crypto/chacha-armv4-linux.S
+  src/gen/crypto/chacha-armv8-apple.S
+  src/gen/crypto/chacha-armv8-linux.S
+  src/gen/crypto/chacha-armv8-win.S
+  src/gen/crypto/chacha-x86-apple.S
+  src/gen/crypto/chacha-x86-linux.S
+  src/gen/crypto/chacha-x86_64-apple.S
+  src/gen/crypto/chacha-x86_64-linux.S
+  src/gen/crypto/chacha20_poly1305_armv8-apple.S
+  src/gen/crypto/chacha20_poly1305_armv8-linux.S
+  src/gen/crypto/chacha20_poly1305_armv8-win.S
+  src/gen/crypto/chacha20_poly1305_x86_64-apple.S
+  src/gen/crypto/chacha20_poly1305_x86_64-linux.S
+  src/gen/crypto/md5-586-apple.S
+  src/gen/crypto/md5-586-linux.S
+  src/gen/crypto/md5-x86_64-apple.S
+  src/gen/crypto/md5-x86_64-linux.S
+  src/gen/test_support/trampoline-armv4-linux.S
+  src/gen/test_support/trampoline-armv8-apple.S
+  src/gen/test_support/trampoline-armv8-linux.S
+  src/gen/test_support/trampoline-armv8-win.S
+  src/gen/test_support/trampoline-x86-apple.S
+  src/gen/test_support/trampoline-x86-linux.S
+  src/gen/test_support/trampoline-x86_64-apple.S
+  src/gen/test_support/trampoline-x86_64-linux.S
+  src/third_party/fiat/asm/fiat_curve25519_adx_mul.S
+  src/third_party/fiat/asm/fiat_curve25519_adx_square.S
+  src/third_party/fiat/asm/fiat_p256_adx_mul.S
+  src/third_party/fiat/asm/fiat_p256_adx_sqr.S
 )
 
-# Declare a dummy target to build all unit tests. Test targets should inject
-# themselves as dependencies next to the target definition.
-add_custom_target(all_tests)
+set(
+  CRYPTO_SOURCES_NASM
 
-add_subdirectory(ssl/test)
-add_subdirectory(util/fipstools)
-add_subdirectory(util/fipstools/acvp/modulewrapper)
+  src/gen/bcm/aesni-gcm-x86_64-win.asm
+  src/gen/bcm/aesni-x86-win.asm
+  src/gen/bcm/aesni-x86_64-win.asm
+  src/gen/bcm/bn-586-win.asm
+  src/gen/bcm/co-586-win.asm
+  src/gen/bcm/ghash-ssse3-x86-win.asm
+  src/gen/bcm/ghash-ssse3-x86_64-win.asm
+  src/gen/bcm/ghash-x86-win.asm
+  src/gen/bcm/ghash-x86_64-win.asm
+  src/gen/bcm/p256-x86_64-asm-win.asm
+  src/gen/bcm/p256_beeu-x86_64-asm-win.asm
+  src/gen/bcm/rdrand-x86_64-win.asm
+  src/gen/bcm/rsaz-avx2-win.asm
+  src/gen/bcm/sha1-586-win.asm
+  src/gen/bcm/sha1-x86_64-win.asm
+  src/gen/bcm/sha256-586-win.asm
+  src/gen/bcm/sha256-x86_64-win.asm
+  src/gen/bcm/sha512-586-win.asm
+  src/gen/bcm/sha512-x86_64-win.asm
+  src/gen/bcm/vpaes-x86-win.asm
+  src/gen/bcm/vpaes-x86_64-win.asm
+  src/gen/bcm/x86-mont-win.asm
+  src/gen/bcm/x86_64-mont-win.asm
+  src/gen/bcm/x86_64-mont5-win.asm
+  src/gen/crypto/aes128gcmsiv-x86_64-win.asm
+  src/gen/crypto/chacha-x86-win.asm
+  src/gen/crypto/chacha-x86_64-win.asm
+  src/gen/crypto/chacha20_poly1305_x86_64-win.asm
+  src/gen/crypto/md5-586-win.asm
+  src/gen/crypto/md5-x86_64-win.asm
+  src/gen/test_support/trampoline-x86-win.asm
+  src/gen/test_support/trampoline-x86_64-win.asm
+)
 
 if(OPENSSL_ASM)
-  set(CRYPTO_SOURCES_ASM_USED ${CRYPTO_SOURCES_ASM})
-  set(BCM_SOURCES_ASM_USED ${BCM_SOURCES_ASM})
-  set(TEST_SUPPORT_SOURCES_ASM_USED ${TEST_SUPPORT_SOURCES_ASM})
-elseif(OPENSSL_NASM)
-  set(CRYPTO_SOURCES_ASM_USED ${CRYPTO_SOURCES_NASM})
-  set(BCM_SOURCES_ASM_USED ${BCM_SOURCES_NASM})
-  set(TEST_SUPPORT_SOURCES_ASM_USED ${TEST_SUPPORT_SOURCES_NASM})
+  list(APPEND CRYPTO_SOURCES_ASM_USED ${CRYPTO_SOURCES_ASM})
+endif()
+if(OPENSSL_NASM)
+  list(APPEND CRYPTO_SOURCES_ASM_USED ${CRYPTO_SOURCES_NASM})
 endif()
 
-if(FIPS_DELOCATE AND FIPS_SHARED)
-  message(FATAL_ERROR "Can't set both delocate and shared mode for FIPS build")
-endif()
+add_library(
+  crypto
 
-if(FIPS_DELOCATE)
-  add_library(bcm_c_generated_asm STATIC ${BCM_SOURCES})
-  add_dependencies(bcm_c_generated_asm boringssl_prefix_symbols)
-  target_include_directories(bcm_c_generated_asm PRIVATE ${PROJECT_SOURCE_DIR}/include)
-  set_target_properties(bcm_c_generated_asm PROPERTIES COMPILE_OPTIONS "-S")
-  set_target_properties(bcm_c_generated_asm PROPERTIES POSITION_INDEPENDENT_CODE ON)
-  if(CLANG)
-    # Clang warns when passing both -c (from CMake) and -S.
-    set_property(TARGET bcm_c_generated_asm APPEND PROPERTY COMPILE_OPTIONS "-Wno-unused-command-line-argument")
-  endif()
-
-  set(TARGET_FLAG "")
-  if(CMAKE_ASM_COMPILER_TARGET)
-    set(TARGET_FLAG "--target=${CMAKE_ASM_COMPILER_TARGET}")
-  endif()
-
-  go_executable(delocate boringssl.googlesource.com/boringssl/util/fipstools/delocate)
-  add_custom_command(
-    OUTPUT bcm-delocated.S
-    COMMAND ${CMAKE_CURRENT_BINARY_DIR}/delocate
-            -a $<TARGET_FILE:bcm_c_generated_asm>
-            -o ${CMAKE_CURRENT_BINARY_DIR}/bcm-delocated.S
-            -cc ${CMAKE_ASM_COMPILER}
-            -cc-flags "${TARGET_FLAG} ${CMAKE_ASM_FLAGS}"
-            ${BCM_SOURCES_ASM_USED}
-            ${CRYPTO_HEADERS}
-    DEPENDS bcm_c_generated_asm
-            delocate
-            ${BCM_SOURCES_ASM_USED}
-            ${CRYPTO_HEADERS}
-    WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
-  )
-
-  add_library(bcm_hashunset STATIC bcm-delocated.S)
-  set_target_properties(bcm_hashunset PROPERTIES POSITION_INDEPENDENT_CODE ON)
-  set_target_properties(bcm_hashunset PROPERTIES LINKER_LANGUAGE C)
-
-  go_executable(inject_hash
-                boringssl.googlesource.com/boringssl/util/fipstools/inject_hash)
-  add_custom_command(
-    OUTPUT bcm.o
-    COMMAND ./inject_hash -o bcm.o -in-archive $<TARGET_FILE:bcm_hashunset>
-    DEPENDS bcm_hashunset inject_hash
-    WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
-  )
-  set(CRYPTO_FIPS_OBJECTS bcm.o)
-elseif(FIPS_SHARED)
-  if(NOT BUILD_SHARED_LIBS)
-    message(FATAL_ERROR "FIPS_SHARED set but not BUILD_SHARED_LIBS")
-  endif()
-
-  add_library(bcm_library STATIC ${BCM_SOURCES} ${BCM_SOURCES_ASM_USED})
-  add_dependencies(bcm_library boringssl_prefix_symbols)
-  target_include_directories(bcm_library PRIVATE ${PROJECT_SOURCE_DIR}/include)
-
-  add_custom_command(
-    OUTPUT bcm.o
-    COMMAND ${CMAKE_LINKER} -r -T ${CMAKE_CURRENT_SOURCE_DIR}/crypto/fipsmodule/fips_shared.lds -o bcm.o --whole-archive $<TARGET_FILE:bcm_library>
-    DEPENDS bcm_library crypto/fipsmodule/fips_shared.lds
-    WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
-  )
-  set(CRYPTO_FIPS_OBJECTS bcm.o)
-else()
-  add_library(fipsmodule OBJECT ${BCM_SOURCES} ${BCM_SOURCES_ASM_USED})
-  add_dependencies(fipsmodule boringssl_prefix_symbols)
-  target_include_directories(fipsmodule PRIVATE ${PROJECT_SOURCE_DIR}/include)
-  set(CRYPTO_FIPS_OBJECTS $<TARGET_OBJECTS:fipsmodule>)
-endif()
-
-add_library(crypto ${CRYPTO_SOURCES} ${CRYPTO_FIPS_OBJECTS} ${CRYPTO_SOURCES_ASM_USED})
-target_include_directories(crypto PUBLIC
-  $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>
-  $<INSTALL_INTERFACE:include>
+  ${CRYPTO_SOURCES_ASM_USED}
+  src/crypto/asn1/a_bitstr.c
+  src/crypto/asn1/a_bool.c
+  src/crypto/asn1/a_d2i_fp.c
+  src/crypto/asn1/a_dup.c
+  src/crypto/asn1/a_gentm.c
+  src/crypto/asn1/a_i2d_fp.c
+  src/crypto/asn1/a_int.c
+  src/crypto/asn1/a_mbstr.c
+  src/crypto/asn1/a_object.c
+  src/crypto/asn1/a_octet.c
+  src/crypto/asn1/a_strex.c
+  src/crypto/asn1/a_strnid.c
+  src/crypto/asn1/a_time.c
+  src/crypto/asn1/a_type.c
+  src/crypto/asn1/a_utctm.c
+  src/crypto/asn1/asn1_lib.c
+  src/crypto/asn1/asn1_par.c
+  src/crypto/asn1/asn_pack.c
+  src/crypto/asn1/f_int.c
+  src/crypto/asn1/f_string.c
+  src/crypto/asn1/posix_time.c
+  src/crypto/asn1/tasn_dec.c
+  src/crypto/asn1/tasn_enc.c
+  src/crypto/asn1/tasn_fre.c
+  src/crypto/asn1/tasn_new.c
+  src/crypto/asn1/tasn_typ.c
+  src/crypto/asn1/tasn_utl.c
+  src/crypto/base64/base64.c
+  src/crypto/bio/bio.c
+  src/crypto/bio/bio_mem.c
+  src/crypto/bio/connect.c
+  src/crypto/bio/errno.c
+  src/crypto/bio/fd.c
+  src/crypto/bio/file.c
+  src/crypto/bio/hexdump.c
+  src/crypto/bio/pair.c
+  src/crypto/bio/printf.c
+  src/crypto/bio/socket.c
+  src/crypto/bio/socket_helper.c
+  src/crypto/blake2/blake2.c
+  src/crypto/bn_extra/bn_asn1.c
+  src/crypto/bn_extra/convert.c
+  src/crypto/buf/buf.c
+  src/crypto/bytestring/asn1_compat.c
+  src/crypto/bytestring/ber.c
+  src/crypto/bytestring/cbb.c
+  src/crypto/bytestring/cbs.c
+  src/crypto/bytestring/unicode.c
+  src/crypto/chacha/chacha.c
+  src/crypto/cipher_extra/cipher_extra.c
+  src/crypto/cipher_extra/derive_key.c
+  src/crypto/cipher_extra/e_aesctrhmac.c
+  src/crypto/cipher_extra/e_aesgcmsiv.c
+  src/crypto/cipher_extra/e_chacha20poly1305.c
+  src/crypto/cipher_extra/e_des.c
+  src/crypto/cipher_extra/e_null.c
+  src/crypto/cipher_extra/e_rc2.c
+  src/crypto/cipher_extra/e_rc4.c
+  src/crypto/cipher_extra/e_tls.c
+  src/crypto/cipher_extra/tls_cbc.c
+  src/crypto/conf/conf.c
+  src/crypto/cpu_aarch64_apple.c
+  src/crypto/cpu_aarch64_fuchsia.c
+  src/crypto/cpu_aarch64_linux.c
+  src/crypto/cpu_aarch64_openbsd.c
+  src/crypto/cpu_aarch64_sysreg.c
+  src/crypto/cpu_aarch64_win.c
+  src/crypto/cpu_arm_freebsd.c
+  src/crypto/cpu_arm_linux.c
+  src/crypto/cpu_intel.c
+  src/crypto/crypto.c
+  src/crypto/curve25519/curve25519.c
+  src/crypto/curve25519/curve25519_64_adx.c
+  src/crypto/curve25519/spake25519.c
+  src/crypto/des/des.c
+  src/crypto/dh_extra/dh_asn1.c
+  src/crypto/dh_extra/params.c
+  src/crypto/digest_extra/digest_extra.c
+  src/crypto/dilithium/dilithium.c
+  src/crypto/dsa/dsa.c
+  src/crypto/dsa/dsa_asn1.c
+  src/crypto/ec_extra/ec_asn1.c
+  src/crypto/ec_extra/ec_derive.c
+  src/crypto/ec_extra/hash_to_curve.c
+  src/crypto/ecdh_extra/ecdh_extra.c
+  src/crypto/ecdsa_extra/ecdsa_asn1.c
+  src/crypto/engine/engine.c
+  src/crypto/err/err.c
+  src/crypto/evp/evp.c
+  src/crypto/evp/evp_asn1.c
+  src/crypto/evp/evp_ctx.c
+  src/crypto/evp/p_dh.c
+  src/crypto/evp/p_dh_asn1.c
+  src/crypto/evp/p_dsa_asn1.c
+  src/crypto/evp/p_ec.c
+  src/crypto/evp/p_ec_asn1.c
+  src/crypto/evp/p_ed25519.c
+  src/crypto/evp/p_ed25519_asn1.c
+  src/crypto/evp/p_hkdf.c
+  src/crypto/evp/p_rsa.c
+  src/crypto/evp/p_rsa_asn1.c
+  src/crypto/evp/p_x25519.c
+  src/crypto/evp/p_x25519_asn1.c
+  src/crypto/evp/pbkdf.c
+  src/crypto/evp/print.c
+  src/crypto/evp/scrypt.c
+  src/crypto/evp/sign.c
+  src/crypto/ex_data.c
+  src/crypto/fipsmodule/bcm.c
+  src/crypto/fipsmodule/fips_shared_support.c
+  src/crypto/hpke/hpke.c
+  src/crypto/hrss/hrss.c
+  src/crypto/keccak/keccak.c
+  src/crypto/kyber/kyber.c
+  src/crypto/lhash/lhash.c
+  src/crypto/md4/md4.c
+  src/crypto/md5/md5.c
+  src/crypto/mem.c
+  src/crypto/mldsa/mldsa.c
+  src/crypto/mlkem/mlkem.cc
+  src/crypto/obj/obj.c
+  src/crypto/obj/obj_xref.c
+  src/crypto/pem/pem_all.c
+  src/crypto/pem/pem_info.c
+  src/crypto/pem/pem_lib.c
+  src/crypto/pem/pem_oth.c
+  src/crypto/pem/pem_pk8.c
+  src/crypto/pem/pem_pkey.c
+  src/crypto/pem/pem_x509.c
+  src/crypto/pem/pem_xaux.c
+  src/crypto/pkcs7/pkcs7.c
+  src/crypto/pkcs7/pkcs7_x509.c
+  src/crypto/pkcs8/p5_pbev2.c
+  src/crypto/pkcs8/pkcs8.c
+  src/crypto/pkcs8/pkcs8_x509.c
+  src/crypto/poly1305/poly1305.c
+  src/crypto/poly1305/poly1305_arm.c
+  src/crypto/poly1305/poly1305_vec.c
+  src/crypto/pool/pool.c
+  src/crypto/rand_extra/deterministic.c
+  src/crypto/rand_extra/fork_detect.c
+  src/crypto/rand_extra/forkunsafe.c
+  src/crypto/rand_extra/getentropy.c
+  src/crypto/rand_extra/ios.c
+  src/crypto/rand_extra/passive.c
+  src/crypto/rand_extra/rand_extra.c
+  src/crypto/rand_extra/trusty.c
+  src/crypto/rand_extra/urandom.c
+  src/crypto/rand_extra/windows.c
+  src/crypto/rc4/rc4.c
+  src/crypto/refcount.c
+  src/crypto/rsa_extra/rsa_asn1.c
+  src/crypto/rsa_extra/rsa_crypt.c
+  src/crypto/rsa_extra/rsa_extra.c
+  src/crypto/rsa_extra/rsa_print.c
+  src/crypto/sha/sha1.c
+  src/crypto/sha/sha256.c
+  src/crypto/sha/sha512.c
+  src/crypto/siphash/siphash.c
+  src/crypto/slhdsa/fors.c
+  src/crypto/slhdsa/merkle.c
+  src/crypto/slhdsa/slhdsa.c
+  src/crypto/slhdsa/thash.c
+  src/crypto/slhdsa/wots.c
+  src/crypto/spx/spx.c
+  src/crypto/spx/spx_address.c
+  src/crypto/spx/spx_fors.c
+  src/crypto/spx/spx_merkle.c
+  src/crypto/spx/spx_thash.c
+  src/crypto/spx/spx_util.c
+  src/crypto/spx/spx_wots.c
+  src/crypto/stack/stack.c
+  src/crypto/thread.c
+  src/crypto/thread_none.c
+  src/crypto/thread_pthread.c
+  src/crypto/thread_win.c
+  src/crypto/trust_token/pmbtoken.c
+  src/crypto/trust_token/trust_token.c
+  src/crypto/trust_token/voprf.c
+  src/crypto/x509/a_digest.c
+  src/crypto/x509/a_sign.c
+  src/crypto/x509/a_verify.c
+  src/crypto/x509/algorithm.c
+  src/crypto/x509/asn1_gen.c
+  src/crypto/x509/by_dir.c
+  src/crypto/x509/by_file.c
+  src/crypto/x509/i2d_pr.c
+  src/crypto/x509/name_print.c
+  src/crypto/x509/policy.c
+  src/crypto/x509/rsa_pss.c
+  src/crypto/x509/t_crl.c
+  src/crypto/x509/t_req.c
+  src/crypto/x509/t_x509.c
+  src/crypto/x509/t_x509a.c
+  src/crypto/x509/v3_akey.c
+  src/crypto/x509/v3_akeya.c
+  src/crypto/x509/v3_alt.c
+  src/crypto/x509/v3_bcons.c
+  src/crypto/x509/v3_bitst.c
+  src/crypto/x509/v3_conf.c
+  src/crypto/x509/v3_cpols.c
+  src/crypto/x509/v3_crld.c
+  src/crypto/x509/v3_enum.c
+  src/crypto/x509/v3_extku.c
+  src/crypto/x509/v3_genn.c
+  src/crypto/x509/v3_ia5.c
+  src/crypto/x509/v3_info.c
+  src/crypto/x509/v3_int.c
+  src/crypto/x509/v3_lib.c
+  src/crypto/x509/v3_ncons.c
+  src/crypto/x509/v3_ocsp.c
+  src/crypto/x509/v3_pcons.c
+  src/crypto/x509/v3_pmaps.c
+  src/crypto/x509/v3_prn.c
+  src/crypto/x509/v3_purp.c
+  src/crypto/x509/v3_skey.c
+  src/crypto/x509/v3_utl.c
+  src/crypto/x509/x509.c
+  src/crypto/x509/x509_att.c
+  src/crypto/x509/x509_cmp.c
+  src/crypto/x509/x509_d2.c
+  src/crypto/x509/x509_def.c
+  src/crypto/x509/x509_ext.c
+  src/crypto/x509/x509_lu.c
+  src/crypto/x509/x509_obj.c
+  src/crypto/x509/x509_req.c
+  src/crypto/x509/x509_set.c
+  src/crypto/x509/x509_trs.c
+  src/crypto/x509/x509_txt.c
+  src/crypto/x509/x509_v3.c
+  src/crypto/x509/x509_vfy.c
+  src/crypto/x509/x509_vpm.c
+  src/crypto/x509/x509cset.c
+  src/crypto/x509/x509name.c
+  src/crypto/x509/x509rset.c
+  src/crypto/x509/x509spki.c
+  src/crypto/x509/x_algor.c
+  src/crypto/x509/x_all.c
+  src/crypto/x509/x_attrib.c
+  src/crypto/x509/x_crl.c
+  src/crypto/x509/x_exten.c
+  src/crypto/x509/x_name.c
+  src/crypto/x509/x_pubkey.c
+  src/crypto/x509/x_req.c
+  src/crypto/x509/x_sig.c
+  src/crypto/x509/x_spki.c
+  src/crypto/x509/x_val.c
+  src/crypto/x509/x_x509.c
+  src/crypto/x509/x_x509a.c
+  src/gen/crypto/err_data.c
 )
-set_property(TARGET crypto PROPERTY EXPORT_NAME Crypto)
 
-if(FIPS_SHARED)
-  # Rewrite libcrypto.so to inject the correct module hash value. This assumes
-  # UNIX-style library naming, but we only support FIPS mode on Linux anyway.
-  add_custom_command(
-    TARGET crypto POST_BUILD
-    COMMAND ${GO_EXECUTABLE} run
-    ${CMAKE_CURRENT_SOURCE_DIR}/util/fipstools/inject_hash/inject_hash.go
-    -o libcrypto.so -in-object libcrypto.so
-    # The DEPENDS argument to a POST_BUILD rule appears to be ignored. Thus
-    # go_executable isn't used (as it doesn't get built), but we list this
-    # dependency anyway in case it starts working in some CMake version.
-    DEPENDS util/fipstools/inject_hash/inject_hash.go
-    WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
-  )
-endif()
+target_include_directories(crypto PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src/include>)
 
-add_dependencies(crypto boringssl_prefix_symbols)
-if(WIN32)
-  target_link_libraries(crypto ws2_32)
-endif()
+add_library(
+  ssl
 
-# CMAKE_SYSTEM_NAME is "Generic" for embedded OSes:
-# https://cmake.org/cmake/help/book/mastering-cmake/chapter/Cross%20Compiling%20With%20CMake.html#toolchain-files
-#
-# For now we assume embedded OSes do not have threads. Additionally, the Threads
-# package does not work with Android, but Android does not require any extra
-# parameters to link pthreads.
-if(NOT CMAKE_SYSTEM_NAME MATCHES "^(Generic|Android)$")
+  src/ssl/bio_ssl.cc
+  src/ssl/d1_both.cc
+  src/ssl/d1_lib.cc
+  src/ssl/d1_pkt.cc
+  src/ssl/d1_srtp.cc
+  src/ssl/dtls_method.cc
+  src/ssl/dtls_record.cc
+  src/ssl/encrypted_client_hello.cc
+  src/ssl/extensions.cc
+  src/ssl/handoff.cc
+  src/ssl/handshake.cc
+  src/ssl/handshake_client.cc
+  src/ssl/handshake_server.cc
+  src/ssl/s3_both.cc
+  src/ssl/s3_lib.cc
+  src/ssl/s3_pkt.cc
+  src/ssl/ssl_aead_ctx.cc
+  src/ssl/ssl_asn1.cc
+  src/ssl/ssl_buffer.cc
+  src/ssl/ssl_cert.cc
+  src/ssl/ssl_cipher.cc
+  src/ssl/ssl_credential.cc
+  src/ssl/ssl_file.cc
+  src/ssl/ssl_key_share.cc
+  src/ssl/ssl_lib.cc
+  src/ssl/ssl_privkey.cc
+  src/ssl/ssl_session.cc
+  src/ssl/ssl_stat.cc
+  src/ssl/ssl_transcript.cc
+  src/ssl/ssl_versions.cc
+  src/ssl/ssl_x509.cc
+  src/ssl/t1_enc.cc
+  src/ssl/tls13_both.cc
+  src/ssl/tls13_client.cc
+  src/ssl/tls13_enc.cc
+  src/ssl/tls13_server.cc
+  src/ssl/tls_method.cc
+  src/ssl/tls_record.cc
+)
+
+target_link_libraries(ssl crypto)
+
+add_executable(
+  bssl
+
+  src/tool/args.cc
+  src/tool/ciphers.cc
+  src/tool/client.cc
+  src/tool/const.cc
+  src/tool/digest.cc
+  src/tool/fd.cc
+  src/tool/file.cc
+  src/tool/generate_ech.cc
+  src/tool/generate_ed25519.cc
+  src/tool/genrsa.cc
+  src/tool/pkcs12.cc
+  src/tool/rand.cc
+  src/tool/server.cc
+  src/tool/sign.cc
+  src/tool/speed.cc
+  src/tool/tool.cc
+  src/tool/transport_common.cc
+)
+
+target_link_libraries(bssl ssl crypto)
+
+if(NOT CMAKE_SYSTEM_NAME STREQUAL "Android")
   find_package(Threads REQUIRED)
   target_link_libraries(crypto Threads::Threads)
 endif()
 
-# Every target depends on crypto, so we add libcxx as a dependency here to
-# simplify injecting it everywhere.
-if(USE_CUSTOM_LIBCXX)
-  target_link_libraries(crypto libcxx)
-endif()
-
-add_library(ssl ${SSL_SOURCES})
-# Although libssl also provides headers that require an include directory, the
-# flag is already specified by libcrypto, so we omit target_include_directories
-# here.
-set_property(TARGET ssl PROPERTY EXPORT_NAME SSL)
-target_link_libraries(ssl crypto)
-
-add_library(decrepit ${DECREPIT_SOURCES})
-target_link_libraries(decrepit crypto ssl)
-
-add_library(test_support_lib STATIC
-            ${TEST_SUPPORT_SOURCES} ${TEST_SUPPORT_SOURCES_ASM_USED})
-if(LIBUNWIND_FOUND)
-  target_compile_options(test_support_lib PRIVATE ${LIBUNWIND_CFLAGS_OTHER})
-  target_include_directories(test_support_lib PRIVATE ${LIBUNWIND_INCLUDE_DIRS})
-  target_link_libraries(test_support_lib ${LIBUNWIND_LDFLAGS})
-endif()
 if(WIN32)
-  target_link_libraries(test_support_lib dbghelp)
-endif()
-target_link_libraries(test_support_lib boringssl_gtest crypto)
-
-# urandom_test is a separate binary because it needs to be able to observe the
-# PRNG initialisation, which means that it can't have other tests running before
-# it does.
-add_executable(urandom_test ${URANDOM_TEST_SOURCES})
-target_link_libraries(urandom_test test_support_lib boringssl_gtest crypto)
-add_dependencies(all_tests urandom_test)
-
-add_executable(crypto_test ${CRYPTO_TEST_SOURCES})
-target_link_libraries(crypto_test test_support_lib boringssl_gtest crypto)
-add_dependencies(all_tests crypto_test)
-
-add_executable(ssl_test ${SSL_TEST_SOURCES})
-target_link_libraries(ssl_test test_support_lib boringssl_gtest ssl crypto)
-add_dependencies(all_tests ssl_test)
-add_executable(decrepit_test ${DECREPIT_TEST_SOURCES})
-target_link_libraries(decrepit_test test_support_lib boringssl_gtest
-                      decrepit crypto)
-add_dependencies(all_tests decrepit_test)
-
-if(APPLE)
-  set(PKI_CXX_FLAGS "-fno-aligned-new")
+  target_link_libraries(crypto ws2_32)
 endif()
 
-add_library(pki ${PKI_SOURCES})
-target_link_libraries(pki crypto)
-
-add_executable(pki_test ${PKI_TEST_SOURCES})
-target_link_libraries(pki_test test_support_lib boringssl_gtest pki crypto)
-add_dependencies(all_tests pki_test)
-
-# The PKI library requires C++17.
-set_target_properties(
-  pki pki_test
-  PROPERTIES
-  CXX_STANDARD 17
-  CXX_STANDARD_REQUIRED YES
-  COMPILE_FLAGS "${PKI_CXX_FLAGS}")
-
-add_executable(bssl ${BSSL_SOURCES})
-target_link_libraries(bssl ssl crypto)
-
-# Historically, targets were built in subdirectories. For compatibility with
-# existing tools, we, for now, copy the targets into the subdirectories. This
-# will be removed sometime in 2024.
-copy_post_build(crypto crypto crypto_test urandom_test)
-copy_post_build(ssl ssl ssl_test)
-copy_post_build(decrepit decrepit decrepit_test)
-copy_post_build(tool bssl)
-
-if(FUZZ)
-  if(LIBFUZZER_FROM_DEPS)
-    file(GLOB LIBFUZZER_SOURCES "util/bot/libFuzzer/*.cpp")
-    add_library(Fuzzer STATIC ${LIBFUZZER_SOURCES})
-    # libFuzzer does not pass our aggressive warnings. It also must be built
-    # without -fsanitize-coverage options or clang crashes.
-    set_target_properties(Fuzzer PROPERTIES COMPILE_FLAGS "-Wno-shadow -Wno-format-nonliteral -Wno-missing-prototypes -fsanitize-coverage=0")
-  endif()
-
-  add_subdirectory(fuzz)
-endif()
-
-if(RUST_BINDINGS)
-  find_program(BINDGEN_EXECUTABLE bindgen)
-  if(NOT BINDGEN_EXECUTABLE)
-    message(FATAL_ERROR "Could not find bindgen but was asked to generate Rust bindings.")
-  else()
-    add_subdirectory(rust)
-  endif()
-endif()
-
-if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
-  set(HANDSHAKER_ARGS "-handshaker-path" $<TARGET_FILE:handshaker>)
-endif()
-
-if(FIPS)
-  add_custom_target(
-    acvp_tests
-    COMMAND ${GO_EXECUTABLE} build -o ${CMAKE_CURRENT_BINARY_DIR}/acvptool
-            boringssl.googlesource.com/boringssl/util/fipstools/acvp/acvptool
-    COMMAND ${GO_EXECUTABLE} build -o ${CMAKE_CURRENT_BINARY_DIR}/testmodulewrapper
-            boringssl.googlesource.com/boringssl/util/fipstools/acvp/acvptool/testmodulewrapper
-    COMMAND cd util/fipstools/acvp/acvptool/test &&
-            ${GO_EXECUTABLE} run check_expected.go
-            -tool ${CMAKE_CURRENT_BINARY_DIR}/acvptool
-            -module-wrappers modulewrapper:$<TARGET_FILE:modulewrapper>,testmodulewrapper:${CMAKE_CURRENT_BINARY_DIR}/testmodulewrapper
-            -tests tests.json
-    WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
-    DEPENDS modulewrapper
-    USES_TERMINAL)
-
-  add_custom_target(
-    fips_specific_tests_if_any
-    DEPENDS acvp_tests
-  )
-else()
-  add_custom_target(fips_specific_tests_if_any)
-endif()
-
-file(STRINGS util/go_tests.txt GO_TESTS)
-set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS
-             util/go_tests.txt)
-
-if(GO_EXECUTABLE)
-  add_custom_target(
-      run_tests
-      COMMAND ${CMAKE_COMMAND} -E echo "Running Go tests"
-      COMMAND ${GO_EXECUTABLE} test ${GO_TESTS}
-      COMMAND ${CMAKE_COMMAND} -E echo
-      COMMAND ${CMAKE_COMMAND} -E echo "Running unit tests"
-      COMMAND ${GO_EXECUTABLE} run util/all_tests.go -build-dir
-              ${CMAKE_CURRENT_BINARY_DIR}
-      COMMAND ${CMAKE_COMMAND} -E echo
-      COMMAND ${CMAKE_COMMAND} -E echo "Running SSL tests"
-      COMMAND cd ssl/test/runner &&
-              ${GO_EXECUTABLE} test -shim-path $<TARGET_FILE:bssl_shim>
-                ${HANDSHAKER_ARGS} ${RUNNER_ARGS}
-      WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
-      DEPENDS all_tests bssl_shim handshaker fips_specific_tests_if_any
-      USES_TERMINAL)
-else()
-  add_custom_target(
-      run_tests
-      COMMAND ${CMAKE_COMMAND} -E echo "Running tests requires Go"
-      COMMAND ${CMAKE_COMMAND} -E false)
-endif()
-
-if(INSTALL_ENABLED)
-  install(TARGETS crypto ssl EXPORT OpenSSLTargets)
-  install(TARGETS bssl)
-  install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
-  install(EXPORT OpenSSLTargets
-          FILE OpenSSLTargets.cmake
-          NAMESPACE OpenSSL::
-          DESTINATION lib/cmake/OpenSSL)
-  install(FILES cmake/OpenSSLConfig.cmake DESTINATION lib/cmake/OpenSSL)
-endif()
diff --git a/util/WORKSPACE.toplevel b/WORKSPACE
similarity index 100%
copy from util/WORKSPACE.toplevel
copy to WORKSPACE
diff --git a/sources.json b/sources.json
new file mode 100644
index 0000000..7c04aeb
--- /dev/null
+++ b/sources.json
@@ -0,0 +1,2711 @@
+{
+  "bcm_crypto": [
+    "src/crypto/fipsmodule/bcm.c"
+  ], 
+  "crypto": [
+    "src/crypto/asn1/a_bitstr.c", 
+    "src/crypto/asn1/a_bool.c", 
+    "src/crypto/asn1/a_d2i_fp.c", 
+    "src/crypto/asn1/a_dup.c", 
+    "src/crypto/asn1/a_gentm.c", 
+    "src/crypto/asn1/a_i2d_fp.c", 
+    "src/crypto/asn1/a_int.c", 
+    "src/crypto/asn1/a_mbstr.c", 
+    "src/crypto/asn1/a_object.c", 
+    "src/crypto/asn1/a_octet.c", 
+    "src/crypto/asn1/a_strex.c", 
+    "src/crypto/asn1/a_strnid.c", 
+    "src/crypto/asn1/a_time.c", 
+    "src/crypto/asn1/a_type.c", 
+    "src/crypto/asn1/a_utctm.c", 
+    "src/crypto/asn1/asn1_lib.c", 
+    "src/crypto/asn1/asn1_par.c", 
+    "src/crypto/asn1/asn_pack.c", 
+    "src/crypto/asn1/f_int.c", 
+    "src/crypto/asn1/f_string.c", 
+    "src/crypto/asn1/posix_time.c", 
+    "src/crypto/asn1/tasn_dec.c", 
+    "src/crypto/asn1/tasn_enc.c", 
+    "src/crypto/asn1/tasn_fre.c", 
+    "src/crypto/asn1/tasn_new.c", 
+    "src/crypto/asn1/tasn_typ.c", 
+    "src/crypto/asn1/tasn_utl.c", 
+    "src/crypto/base64/base64.c", 
+    "src/crypto/bio/bio.c", 
+    "src/crypto/bio/bio_mem.c", 
+    "src/crypto/bio/connect.c", 
+    "src/crypto/bio/errno.c", 
+    "src/crypto/bio/fd.c", 
+    "src/crypto/bio/file.c", 
+    "src/crypto/bio/hexdump.c", 
+    "src/crypto/bio/pair.c", 
+    "src/crypto/bio/printf.c", 
+    "src/crypto/bio/socket.c", 
+    "src/crypto/bio/socket_helper.c", 
+    "src/crypto/blake2/blake2.c", 
+    "src/crypto/bn_extra/bn_asn1.c", 
+    "src/crypto/bn_extra/convert.c", 
+    "src/crypto/buf/buf.c", 
+    "src/crypto/bytestring/asn1_compat.c", 
+    "src/crypto/bytestring/ber.c", 
+    "src/crypto/bytestring/cbb.c", 
+    "src/crypto/bytestring/cbs.c", 
+    "src/crypto/bytestring/unicode.c", 
+    "src/crypto/chacha/chacha.c", 
+    "src/crypto/cipher_extra/cipher_extra.c", 
+    "src/crypto/cipher_extra/derive_key.c", 
+    "src/crypto/cipher_extra/e_aesctrhmac.c", 
+    "src/crypto/cipher_extra/e_aesgcmsiv.c", 
+    "src/crypto/cipher_extra/e_chacha20poly1305.c", 
+    "src/crypto/cipher_extra/e_des.c", 
+    "src/crypto/cipher_extra/e_null.c", 
+    "src/crypto/cipher_extra/e_rc2.c", 
+    "src/crypto/cipher_extra/e_rc4.c", 
+    "src/crypto/cipher_extra/e_tls.c", 
+    "src/crypto/cipher_extra/tls_cbc.c", 
+    "src/crypto/conf/conf.c", 
+    "src/crypto/cpu_aarch64_apple.c", 
+    "src/crypto/cpu_aarch64_fuchsia.c", 
+    "src/crypto/cpu_aarch64_linux.c", 
+    "src/crypto/cpu_aarch64_openbsd.c", 
+    "src/crypto/cpu_aarch64_sysreg.c", 
+    "src/crypto/cpu_aarch64_win.c", 
+    "src/crypto/cpu_arm_freebsd.c", 
+    "src/crypto/cpu_arm_linux.c", 
+    "src/crypto/cpu_intel.c", 
+    "src/crypto/crypto.c", 
+    "src/crypto/curve25519/curve25519.c", 
+    "src/crypto/curve25519/curve25519_64_adx.c", 
+    "src/crypto/curve25519/spake25519.c", 
+    "src/crypto/des/des.c", 
+    "src/crypto/dh_extra/dh_asn1.c", 
+    "src/crypto/dh_extra/params.c", 
+    "src/crypto/digest_extra/digest_extra.c", 
+    "src/crypto/dilithium/dilithium.c", 
+    "src/crypto/dsa/dsa.c", 
+    "src/crypto/dsa/dsa_asn1.c", 
+    "src/crypto/ec_extra/ec_asn1.c", 
+    "src/crypto/ec_extra/ec_derive.c", 
+    "src/crypto/ec_extra/hash_to_curve.c", 
+    "src/crypto/ecdh_extra/ecdh_extra.c", 
+    "src/crypto/ecdsa_extra/ecdsa_asn1.c", 
+    "src/crypto/engine/engine.c", 
+    "src/crypto/err/err.c", 
+    "src/crypto/evp/evp.c", 
+    "src/crypto/evp/evp_asn1.c", 
+    "src/crypto/evp/evp_ctx.c", 
+    "src/crypto/evp/p_dh.c", 
+    "src/crypto/evp/p_dh_asn1.c", 
+    "src/crypto/evp/p_dsa_asn1.c", 
+    "src/crypto/evp/p_ec.c", 
+    "src/crypto/evp/p_ec_asn1.c", 
+    "src/crypto/evp/p_ed25519.c", 
+    "src/crypto/evp/p_ed25519_asn1.c", 
+    "src/crypto/evp/p_hkdf.c", 
+    "src/crypto/evp/p_rsa.c", 
+    "src/crypto/evp/p_rsa_asn1.c", 
+    "src/crypto/evp/p_x25519.c", 
+    "src/crypto/evp/p_x25519_asn1.c", 
+    "src/crypto/evp/pbkdf.c", 
+    "src/crypto/evp/print.c", 
+    "src/crypto/evp/scrypt.c", 
+    "src/crypto/evp/sign.c", 
+    "src/crypto/ex_data.c", 
+    "src/crypto/fipsmodule/bcm.c", 
+    "src/crypto/fipsmodule/fips_shared_support.c", 
+    "src/crypto/hpke/hpke.c", 
+    "src/crypto/hrss/hrss.c", 
+    "src/crypto/keccak/keccak.c", 
+    "src/crypto/kyber/kyber.c", 
+    "src/crypto/lhash/lhash.c", 
+    "src/crypto/md4/md4.c", 
+    "src/crypto/md5/md5.c", 
+    "src/crypto/mem.c", 
+    "src/crypto/mldsa/mldsa.c", 
+    "src/crypto/mlkem/mlkem.cc", 
+    "src/crypto/obj/obj.c", 
+    "src/crypto/obj/obj_xref.c", 
+    "src/crypto/pem/pem_all.c", 
+    "src/crypto/pem/pem_info.c", 
+    "src/crypto/pem/pem_lib.c", 
+    "src/crypto/pem/pem_oth.c", 
+    "src/crypto/pem/pem_pk8.c", 
+    "src/crypto/pem/pem_pkey.c", 
+    "src/crypto/pem/pem_x509.c", 
+    "src/crypto/pem/pem_xaux.c", 
+    "src/crypto/pkcs7/pkcs7.c", 
+    "src/crypto/pkcs7/pkcs7_x509.c", 
+    "src/crypto/pkcs8/p5_pbev2.c", 
+    "src/crypto/pkcs8/pkcs8.c", 
+    "src/crypto/pkcs8/pkcs8_x509.c", 
+    "src/crypto/poly1305/poly1305.c", 
+    "src/crypto/poly1305/poly1305_arm.c", 
+    "src/crypto/poly1305/poly1305_vec.c", 
+    "src/crypto/pool/pool.c", 
+    "src/crypto/rand_extra/deterministic.c", 
+    "src/crypto/rand_extra/fork_detect.c", 
+    "src/crypto/rand_extra/forkunsafe.c", 
+    "src/crypto/rand_extra/getentropy.c", 
+    "src/crypto/rand_extra/ios.c", 
+    "src/crypto/rand_extra/passive.c", 
+    "src/crypto/rand_extra/rand_extra.c", 
+    "src/crypto/rand_extra/trusty.c", 
+    "src/crypto/rand_extra/urandom.c", 
+    "src/crypto/rand_extra/windows.c", 
+    "src/crypto/rc4/rc4.c", 
+    "src/crypto/refcount.c", 
+    "src/crypto/rsa_extra/rsa_asn1.c", 
+    "src/crypto/rsa_extra/rsa_crypt.c", 
+    "src/crypto/rsa_extra/rsa_extra.c", 
+    "src/crypto/rsa_extra/rsa_print.c", 
+    "src/crypto/sha/sha1.c", 
+    "src/crypto/sha/sha256.c", 
+    "src/crypto/sha/sha512.c", 
+    "src/crypto/siphash/siphash.c", 
+    "src/crypto/slhdsa/fors.c", 
+    "src/crypto/slhdsa/merkle.c", 
+    "src/crypto/slhdsa/slhdsa.c", 
+    "src/crypto/slhdsa/thash.c", 
+    "src/crypto/slhdsa/wots.c", 
+    "src/crypto/spx/spx.c", 
+    "src/crypto/spx/spx_address.c", 
+    "src/crypto/spx/spx_fors.c", 
+    "src/crypto/spx/spx_merkle.c", 
+    "src/crypto/spx/spx_thash.c", 
+    "src/crypto/spx/spx_util.c", 
+    "src/crypto/spx/spx_wots.c", 
+    "src/crypto/stack/stack.c", 
+    "src/crypto/thread.c", 
+    "src/crypto/thread_none.c", 
+    "src/crypto/thread_pthread.c", 
+    "src/crypto/thread_win.c", 
+    "src/crypto/trust_token/pmbtoken.c", 
+    "src/crypto/trust_token/trust_token.c", 
+    "src/crypto/trust_token/voprf.c", 
+    "src/crypto/x509/a_digest.c", 
+    "src/crypto/x509/a_sign.c", 
+    "src/crypto/x509/a_verify.c", 
+    "src/crypto/x509/algorithm.c", 
+    "src/crypto/x509/asn1_gen.c", 
+    "src/crypto/x509/by_dir.c", 
+    "src/crypto/x509/by_file.c", 
+    "src/crypto/x509/i2d_pr.c", 
+    "src/crypto/x509/name_print.c", 
+    "src/crypto/x509/policy.c", 
+    "src/crypto/x509/rsa_pss.c", 
+    "src/crypto/x509/t_crl.c", 
+    "src/crypto/x509/t_req.c", 
+    "src/crypto/x509/t_x509.c", 
+    "src/crypto/x509/t_x509a.c", 
+    "src/crypto/x509/v3_akey.c", 
+    "src/crypto/x509/v3_akeya.c", 
+    "src/crypto/x509/v3_alt.c", 
+    "src/crypto/x509/v3_bcons.c", 
+    "src/crypto/x509/v3_bitst.c", 
+    "src/crypto/x509/v3_conf.c", 
+    "src/crypto/x509/v3_cpols.c", 
+    "src/crypto/x509/v3_crld.c", 
+    "src/crypto/x509/v3_enum.c", 
+    "src/crypto/x509/v3_extku.c", 
+    "src/crypto/x509/v3_genn.c", 
+    "src/crypto/x509/v3_ia5.c", 
+    "src/crypto/x509/v3_info.c", 
+    "src/crypto/x509/v3_int.c", 
+    "src/crypto/x509/v3_lib.c", 
+    "src/crypto/x509/v3_ncons.c", 
+    "src/crypto/x509/v3_ocsp.c", 
+    "src/crypto/x509/v3_pcons.c", 
+    "src/crypto/x509/v3_pmaps.c", 
+    "src/crypto/x509/v3_prn.c", 
+    "src/crypto/x509/v3_purp.c", 
+    "src/crypto/x509/v3_skey.c", 
+    "src/crypto/x509/v3_utl.c", 
+    "src/crypto/x509/x509.c", 
+    "src/crypto/x509/x509_att.c", 
+    "src/crypto/x509/x509_cmp.c", 
+    "src/crypto/x509/x509_d2.c", 
+    "src/crypto/x509/x509_def.c", 
+    "src/crypto/x509/x509_ext.c", 
+    "src/crypto/x509/x509_lu.c", 
+    "src/crypto/x509/x509_obj.c", 
+    "src/crypto/x509/x509_req.c", 
+    "src/crypto/x509/x509_set.c", 
+    "src/crypto/x509/x509_trs.c", 
+    "src/crypto/x509/x509_txt.c", 
+    "src/crypto/x509/x509_v3.c", 
+    "src/crypto/x509/x509_vfy.c", 
+    "src/crypto/x509/x509_vpm.c", 
+    "src/crypto/x509/x509cset.c", 
+    "src/crypto/x509/x509name.c", 
+    "src/crypto/x509/x509rset.c", 
+    "src/crypto/x509/x509spki.c", 
+    "src/crypto/x509/x_algor.c", 
+    "src/crypto/x509/x_all.c", 
+    "src/crypto/x509/x_attrib.c", 
+    "src/crypto/x509/x_crl.c", 
+    "src/crypto/x509/x_exten.c", 
+    "src/crypto/x509/x_name.c", 
+    "src/crypto/x509/x_pubkey.c", 
+    "src/crypto/x509/x_req.c", 
+    "src/crypto/x509/x_sig.c", 
+    "src/crypto/x509/x_spki.c", 
+    "src/crypto/x509/x_val.c", 
+    "src/crypto/x509/x_x509.c", 
+    "src/crypto/x509/x_x509a.c", 
+    "src/gen/crypto/err_data.c"
+  ], 
+  "crypto_asm": [
+    "src/crypto/curve25519/asm/x25519-asm-arm.S", 
+    "src/crypto/hrss/asm/poly_rq_mul.S", 
+    "src/crypto/poly1305/poly1305_arm_asm.S", 
+    "src/gen/bcm/aesni-gcm-x86_64-apple.S", 
+    "src/gen/bcm/aesni-gcm-x86_64-linux.S", 
+    "src/gen/bcm/aesni-x86-apple.S", 
+    "src/gen/bcm/aesni-x86-linux.S", 
+    "src/gen/bcm/aesni-x86_64-apple.S", 
+    "src/gen/bcm/aesni-x86_64-linux.S", 
+    "src/gen/bcm/aesv8-armv7-linux.S", 
+    "src/gen/bcm/aesv8-armv8-apple.S", 
+    "src/gen/bcm/aesv8-armv8-linux.S", 
+    "src/gen/bcm/aesv8-armv8-win.S", 
+    "src/gen/bcm/aesv8-gcm-armv8-apple.S", 
+    "src/gen/bcm/aesv8-gcm-armv8-linux.S", 
+    "src/gen/bcm/aesv8-gcm-armv8-win.S", 
+    "src/gen/bcm/armv4-mont-linux.S", 
+    "src/gen/bcm/armv8-mont-apple.S", 
+    "src/gen/bcm/armv8-mont-linux.S", 
+    "src/gen/bcm/armv8-mont-win.S", 
+    "src/gen/bcm/bn-586-apple.S", 
+    "src/gen/bcm/bn-586-linux.S", 
+    "src/gen/bcm/bn-armv8-apple.S", 
+    "src/gen/bcm/bn-armv8-linux.S", 
+    "src/gen/bcm/bn-armv8-win.S", 
+    "src/gen/bcm/bsaes-armv7-linux.S", 
+    "src/gen/bcm/co-586-apple.S", 
+    "src/gen/bcm/co-586-linux.S", 
+    "src/gen/bcm/ghash-armv4-linux.S", 
+    "src/gen/bcm/ghash-neon-armv8-apple.S", 
+    "src/gen/bcm/ghash-neon-armv8-linux.S", 
+    "src/gen/bcm/ghash-neon-armv8-win.S", 
+    "src/gen/bcm/ghash-ssse3-x86-apple.S", 
+    "src/gen/bcm/ghash-ssse3-x86-linux.S", 
+    "src/gen/bcm/ghash-ssse3-x86_64-apple.S", 
+    "src/gen/bcm/ghash-ssse3-x86_64-linux.S", 
+    "src/gen/bcm/ghash-x86-apple.S", 
+    "src/gen/bcm/ghash-x86-linux.S", 
+    "src/gen/bcm/ghash-x86_64-apple.S", 
+    "src/gen/bcm/ghash-x86_64-linux.S", 
+    "src/gen/bcm/ghashv8-armv7-linux.S", 
+    "src/gen/bcm/ghashv8-armv8-apple.S", 
+    "src/gen/bcm/ghashv8-armv8-linux.S", 
+    "src/gen/bcm/ghashv8-armv8-win.S", 
+    "src/gen/bcm/p256-armv8-asm-apple.S", 
+    "src/gen/bcm/p256-armv8-asm-linux.S", 
+    "src/gen/bcm/p256-armv8-asm-win.S", 
+    "src/gen/bcm/p256-x86_64-asm-apple.S", 
+    "src/gen/bcm/p256-x86_64-asm-linux.S", 
+    "src/gen/bcm/p256_beeu-armv8-asm-apple.S", 
+    "src/gen/bcm/p256_beeu-armv8-asm-linux.S", 
+    "src/gen/bcm/p256_beeu-armv8-asm-win.S", 
+    "src/gen/bcm/p256_beeu-x86_64-asm-apple.S", 
+    "src/gen/bcm/p256_beeu-x86_64-asm-linux.S", 
+    "src/gen/bcm/rdrand-x86_64-apple.S", 
+    "src/gen/bcm/rdrand-x86_64-linux.S", 
+    "src/gen/bcm/rsaz-avx2-apple.S", 
+    "src/gen/bcm/rsaz-avx2-linux.S", 
+    "src/gen/bcm/sha1-586-apple.S", 
+    "src/gen/bcm/sha1-586-linux.S", 
+    "src/gen/bcm/sha1-armv4-large-linux.S", 
+    "src/gen/bcm/sha1-armv8-apple.S", 
+    "src/gen/bcm/sha1-armv8-linux.S", 
+    "src/gen/bcm/sha1-armv8-win.S", 
+    "src/gen/bcm/sha1-x86_64-apple.S", 
+    "src/gen/bcm/sha1-x86_64-linux.S", 
+    "src/gen/bcm/sha256-586-apple.S", 
+    "src/gen/bcm/sha256-586-linux.S", 
+    "src/gen/bcm/sha256-armv4-linux.S", 
+    "src/gen/bcm/sha256-armv8-apple.S", 
+    "src/gen/bcm/sha256-armv8-linux.S", 
+    "src/gen/bcm/sha256-armv8-win.S", 
+    "src/gen/bcm/sha256-x86_64-apple.S", 
+    "src/gen/bcm/sha256-x86_64-linux.S", 
+    "src/gen/bcm/sha512-586-apple.S", 
+    "src/gen/bcm/sha512-586-linux.S", 
+    "src/gen/bcm/sha512-armv4-linux.S", 
+    "src/gen/bcm/sha512-armv8-apple.S", 
+    "src/gen/bcm/sha512-armv8-linux.S", 
+    "src/gen/bcm/sha512-armv8-win.S", 
+    "src/gen/bcm/sha512-x86_64-apple.S", 
+    "src/gen/bcm/sha512-x86_64-linux.S", 
+    "src/gen/bcm/vpaes-armv7-linux.S", 
+    "src/gen/bcm/vpaes-armv8-apple.S", 
+    "src/gen/bcm/vpaes-armv8-linux.S", 
+    "src/gen/bcm/vpaes-armv8-win.S", 
+    "src/gen/bcm/vpaes-x86-apple.S", 
+    "src/gen/bcm/vpaes-x86-linux.S", 
+    "src/gen/bcm/vpaes-x86_64-apple.S", 
+    "src/gen/bcm/vpaes-x86_64-linux.S", 
+    "src/gen/bcm/x86-mont-apple.S", 
+    "src/gen/bcm/x86-mont-linux.S", 
+    "src/gen/bcm/x86_64-mont-apple.S", 
+    "src/gen/bcm/x86_64-mont-linux.S", 
+    "src/gen/bcm/x86_64-mont5-apple.S", 
+    "src/gen/bcm/x86_64-mont5-linux.S", 
+    "src/gen/crypto/aes128gcmsiv-x86_64-apple.S", 
+    "src/gen/crypto/aes128gcmsiv-x86_64-linux.S", 
+    "src/gen/crypto/chacha-armv4-linux.S", 
+    "src/gen/crypto/chacha-armv8-apple.S", 
+    "src/gen/crypto/chacha-armv8-linux.S", 
+    "src/gen/crypto/chacha-armv8-win.S", 
+    "src/gen/crypto/chacha-x86-apple.S", 
+    "src/gen/crypto/chacha-x86-linux.S", 
+    "src/gen/crypto/chacha-x86_64-apple.S", 
+    "src/gen/crypto/chacha-x86_64-linux.S", 
+    "src/gen/crypto/chacha20_poly1305_armv8-apple.S", 
+    "src/gen/crypto/chacha20_poly1305_armv8-linux.S", 
+    "src/gen/crypto/chacha20_poly1305_armv8-win.S", 
+    "src/gen/crypto/chacha20_poly1305_x86_64-apple.S", 
+    "src/gen/crypto/chacha20_poly1305_x86_64-linux.S", 
+    "src/gen/crypto/md5-586-apple.S", 
+    "src/gen/crypto/md5-586-linux.S", 
+    "src/gen/crypto/md5-x86_64-apple.S", 
+    "src/gen/crypto/md5-x86_64-linux.S", 
+    "src/gen/test_support/trampoline-armv4-linux.S", 
+    "src/gen/test_support/trampoline-armv8-apple.S", 
+    "src/gen/test_support/trampoline-armv8-linux.S", 
+    "src/gen/test_support/trampoline-armv8-win.S", 
+    "src/gen/test_support/trampoline-x86-apple.S", 
+    "src/gen/test_support/trampoline-x86-linux.S", 
+    "src/gen/test_support/trampoline-x86_64-apple.S", 
+    "src/gen/test_support/trampoline-x86_64-linux.S", 
+    "src/third_party/fiat/asm/fiat_curve25519_adx_mul.S", 
+    "src/third_party/fiat/asm/fiat_curve25519_adx_square.S", 
+    "src/third_party/fiat/asm/fiat_p256_adx_mul.S", 
+    "src/third_party/fiat/asm/fiat_p256_adx_sqr.S"
+  ], 
+  "crypto_headers": [
+    "src/include/openssl/aead.h", 
+    "src/include/openssl/aes.h", 
+    "src/include/openssl/arm_arch.h", 
+    "src/include/openssl/asm_base.h", 
+    "src/include/openssl/asn1.h", 
+    "src/include/openssl/asn1_mac.h", 
+    "src/include/openssl/asn1t.h", 
+    "src/include/openssl/base.h", 
+    "src/include/openssl/base64.h", 
+    "src/include/openssl/bcm_public.h", 
+    "src/include/openssl/bio.h", 
+    "src/include/openssl/blake2.h", 
+    "src/include/openssl/blowfish.h", 
+    "src/include/openssl/bn.h", 
+    "src/include/openssl/buf.h", 
+    "src/include/openssl/buffer.h", 
+    "src/include/openssl/bytestring.h", 
+    "src/include/openssl/cast.h", 
+    "src/include/openssl/chacha.h", 
+    "src/include/openssl/cipher.h", 
+    "src/include/openssl/cmac.h", 
+    "src/include/openssl/conf.h", 
+    "src/include/openssl/cpu.h", 
+    "src/include/openssl/crypto.h", 
+    "src/include/openssl/ctrdrbg.h", 
+    "src/include/openssl/curve25519.h", 
+    "src/include/openssl/des.h", 
+    "src/include/openssl/dh.h", 
+    "src/include/openssl/digest.h", 
+    "src/include/openssl/dsa.h", 
+    "src/include/openssl/e_os2.h", 
+    "src/include/openssl/ec.h", 
+    "src/include/openssl/ec_key.h", 
+    "src/include/openssl/ecdh.h", 
+    "src/include/openssl/ecdsa.h", 
+    "src/include/openssl/engine.h", 
+    "src/include/openssl/err.h", 
+    "src/include/openssl/evp.h", 
+    "src/include/openssl/evp_errors.h", 
+    "src/include/openssl/ex_data.h", 
+    "src/include/openssl/experimental/dilithium.h", 
+    "src/include/openssl/experimental/kyber.h", 
+    "src/include/openssl/experimental/spx.h", 
+    "src/include/openssl/hkdf.h", 
+    "src/include/openssl/hmac.h", 
+    "src/include/openssl/hpke.h", 
+    "src/include/openssl/hrss.h", 
+    "src/include/openssl/is_boringssl.h", 
+    "src/include/openssl/kdf.h", 
+    "src/include/openssl/lhash.h", 
+    "src/include/openssl/md4.h", 
+    "src/include/openssl/md5.h", 
+    "src/include/openssl/mem.h", 
+    "src/include/openssl/mldsa.h", 
+    "src/include/openssl/mlkem.h", 
+    "src/include/openssl/nid.h", 
+    "src/include/openssl/obj.h", 
+    "src/include/openssl/obj_mac.h", 
+    "src/include/openssl/objects.h", 
+    "src/include/openssl/opensslconf.h", 
+    "src/include/openssl/opensslv.h", 
+    "src/include/openssl/ossl_typ.h", 
+    "src/include/openssl/pem.h", 
+    "src/include/openssl/pkcs12.h", 
+    "src/include/openssl/pkcs7.h", 
+    "src/include/openssl/pkcs8.h", 
+    "src/include/openssl/poly1305.h", 
+    "src/include/openssl/pool.h", 
+    "src/include/openssl/posix_time.h", 
+    "src/include/openssl/rand.h", 
+    "src/include/openssl/rc4.h", 
+    "src/include/openssl/ripemd.h", 
+    "src/include/openssl/rsa.h", 
+    "src/include/openssl/safestack.h", 
+    "src/include/openssl/service_indicator.h", 
+    "src/include/openssl/sha.h", 
+    "src/include/openssl/siphash.h", 
+    "src/include/openssl/slhdsa.h", 
+    "src/include/openssl/span.h", 
+    "src/include/openssl/stack.h", 
+    "src/include/openssl/target.h", 
+    "src/include/openssl/thread.h", 
+    "src/include/openssl/time.h", 
+    "src/include/openssl/trust_token.h", 
+    "src/include/openssl/type_check.h", 
+    "src/include/openssl/x509.h", 
+    "src/include/openssl/x509_vfy.h", 
+    "src/include/openssl/x509v3.h", 
+    "src/include/openssl/x509v3_errors.h"
+  ], 
+  "crypto_internal_headers": [
+    "src/crypto/asn1/internal.h", 
+    "src/crypto/bcm_support.h", 
+    "src/crypto/bio/internal.h", 
+    "src/crypto/bytestring/internal.h", 
+    "src/crypto/chacha/internal.h", 
+    "src/crypto/cipher_extra/internal.h", 
+    "src/crypto/conf/internal.h", 
+    "src/crypto/cpu_arm_linux.h", 
+    "src/crypto/curve25519/curve25519_tables.h", 
+    "src/crypto/curve25519/internal.h", 
+    "src/crypto/des/internal.h", 
+    "src/crypto/dilithium/internal.h", 
+    "src/crypto/dsa/internal.h", 
+    "src/crypto/ec_extra/internal.h", 
+    "src/crypto/err/internal.h", 
+    "src/crypto/evp/internal.h", 
+    "src/crypto/fipsmodule/aes/internal.h", 
+    "src/crypto/fipsmodule/bcm_interface.h", 
+    "src/crypto/fipsmodule/bn/internal.h", 
+    "src/crypto/fipsmodule/bn/rsaz_exp.h", 
+    "src/crypto/fipsmodule/cipher/internal.h", 
+    "src/crypto/fipsmodule/delocate.h", 
+    "src/crypto/fipsmodule/dh/internal.h", 
+    "src/crypto/fipsmodule/digest/internal.h", 
+    "src/crypto/fipsmodule/digest/md32_common.h", 
+    "src/crypto/fipsmodule/ec/builtin_curves.h", 
+    "src/crypto/fipsmodule/ec/internal.h", 
+    "src/crypto/fipsmodule/ec/p256-nistz-table.h", 
+    "src/crypto/fipsmodule/ec/p256-nistz.h", 
+    "src/crypto/fipsmodule/ec/p256_table.h", 
+    "src/crypto/fipsmodule/ecdsa/internal.h", 
+    "src/crypto/fipsmodule/modes/internal.h", 
+    "src/crypto/fipsmodule/rand/internal.h", 
+    "src/crypto/fipsmodule/rsa/internal.h", 
+    "src/crypto/fipsmodule/service_indicator/internal.h", 
+    "src/crypto/fipsmodule/sha/internal.h", 
+    "src/crypto/fipsmodule/tls/internal.h", 
+    "src/crypto/hrss/internal.h", 
+    "src/crypto/internal.h", 
+    "src/crypto/keccak/internal.h", 
+    "src/crypto/kyber/internal.h", 
+    "src/crypto/lhash/internal.h", 
+    "src/crypto/md5/internal.h", 
+    "src/crypto/mldsa/internal.h", 
+    "src/crypto/mlkem/internal.h", 
+    "src/crypto/obj/obj_dat.h", 
+    "src/crypto/pkcs7/internal.h", 
+    "src/crypto/pkcs8/internal.h", 
+    "src/crypto/poly1305/internal.h", 
+    "src/crypto/pool/internal.h", 
+    "src/crypto/rand_extra/getrandom_fillin.h", 
+    "src/crypto/rand_extra/sysrand_internal.h", 
+    "src/crypto/rsa_extra/internal.h", 
+    "src/crypto/slhdsa/address.h", 
+    "src/crypto/slhdsa/fors.h", 
+    "src/crypto/slhdsa/internal.h", 
+    "src/crypto/slhdsa/merkle.h", 
+    "src/crypto/slhdsa/params.h", 
+    "src/crypto/slhdsa/thash.h", 
+    "src/crypto/slhdsa/wots.h", 
+    "src/crypto/spx/spx_address.h", 
+    "src/crypto/spx/spx_fors.h", 
+    "src/crypto/spx/spx_merkle.h", 
+    "src/crypto/spx/spx_params.h", 
+    "src/crypto/spx/spx_thash.h", 
+    "src/crypto/spx/spx_util.h", 
+    "src/crypto/spx/spx_wots.h", 
+    "src/crypto/trust_token/internal.h", 
+    "src/crypto/x509/ext_dat.h", 
+    "src/crypto/x509/internal.h", 
+    "src/third_party/fiat/curve25519_32.h", 
+    "src/third_party/fiat/curve25519_64.h", 
+    "src/third_party/fiat/curve25519_64_adx.h", 
+    "src/third_party/fiat/curve25519_64_msvc.h", 
+    "src/third_party/fiat/p256_32.h", 
+    "src/third_party/fiat/p256_64.h", 
+    "src/third_party/fiat/p256_64_msvc.h"
+  ], 
+  "crypto_nasm": [
+    "src/gen/bcm/aesni-gcm-x86_64-win.asm", 
+    "src/gen/bcm/aesni-x86-win.asm", 
+    "src/gen/bcm/aesni-x86_64-win.asm", 
+    "src/gen/bcm/bn-586-win.asm", 
+    "src/gen/bcm/co-586-win.asm", 
+    "src/gen/bcm/ghash-ssse3-x86-win.asm", 
+    "src/gen/bcm/ghash-ssse3-x86_64-win.asm", 
+    "src/gen/bcm/ghash-x86-win.asm", 
+    "src/gen/bcm/ghash-x86_64-win.asm", 
+    "src/gen/bcm/p256-x86_64-asm-win.asm", 
+    "src/gen/bcm/p256_beeu-x86_64-asm-win.asm", 
+    "src/gen/bcm/rdrand-x86_64-win.asm", 
+    "src/gen/bcm/rsaz-avx2-win.asm", 
+    "src/gen/bcm/sha1-586-win.asm", 
+    "src/gen/bcm/sha1-x86_64-win.asm", 
+    "src/gen/bcm/sha256-586-win.asm", 
+    "src/gen/bcm/sha256-x86_64-win.asm", 
+    "src/gen/bcm/sha512-586-win.asm", 
+    "src/gen/bcm/sha512-x86_64-win.asm", 
+    "src/gen/bcm/vpaes-x86-win.asm", 
+    "src/gen/bcm/vpaes-x86_64-win.asm", 
+    "src/gen/bcm/x86-mont-win.asm", 
+    "src/gen/bcm/x86_64-mont-win.asm", 
+    "src/gen/bcm/x86_64-mont5-win.asm", 
+    "src/gen/crypto/aes128gcmsiv-x86_64-win.asm", 
+    "src/gen/crypto/chacha-x86-win.asm", 
+    "src/gen/crypto/chacha-x86_64-win.asm", 
+    "src/gen/crypto/chacha20_poly1305_x86_64-win.asm", 
+    "src/gen/crypto/md5-586-win.asm", 
+    "src/gen/crypto/md5-x86_64-win.asm", 
+    "src/gen/test_support/trampoline-x86-win.asm", 
+    "src/gen/test_support/trampoline-x86_64-win.asm"
+  ], 
+  "crypto_test": [
+    "src/crypto/abi_self_test.cc", 
+    "src/crypto/asn1/asn1_test.cc", 
+    "src/crypto/base64/base64_test.cc", 
+    "src/crypto/bio/bio_test.cc", 
+    "src/crypto/blake2/blake2_test.cc", 
+    "src/crypto/buf/buf_test.cc", 
+    "src/crypto/bytestring/bytestring_test.cc", 
+    "src/crypto/chacha/chacha_test.cc", 
+    "src/crypto/cipher_extra/aead_test.cc", 
+    "src/crypto/cipher_extra/cipher_test.cc", 
+    "src/crypto/compiler_test.cc", 
+    "src/crypto/conf/conf_test.cc", 
+    "src/crypto/constant_time_test.cc", 
+    "src/crypto/cpu_arm_linux_test.cc", 
+    "src/crypto/crypto_test.cc", 
+    "src/crypto/curve25519/ed25519_test.cc", 
+    "src/crypto/curve25519/spake25519_test.cc", 
+    "src/crypto/curve25519/x25519_test.cc", 
+    "src/crypto/dh_extra/dh_test.cc", 
+    "src/crypto/digest_extra/digest_test.cc", 
+    "src/crypto/dilithium/dilithium_test.cc", 
+    "src/crypto/dsa/dsa_test.cc", 
+    "src/crypto/ecdh_extra/ecdh_test.cc", 
+    "src/crypto/err/err_test.cc", 
+    "src/crypto/evp/evp_extra_test.cc", 
+    "src/crypto/evp/evp_test.cc", 
+    "src/crypto/evp/pbkdf_test.cc", 
+    "src/crypto/evp/scrypt_test.cc", 
+    "src/crypto/fipsmodule/aes/aes_test.cc", 
+    "src/crypto/fipsmodule/bn/bn_test.cc", 
+    "src/crypto/fipsmodule/cmac/cmac_test.cc", 
+    "src/crypto/fipsmodule/ec/ec_test.cc", 
+    "src/crypto/fipsmodule/ec/p256-nistz_test.cc", 
+    "src/crypto/fipsmodule/ec/p256_test.cc", 
+    "src/crypto/fipsmodule/ecdsa/ecdsa_test.cc", 
+    "src/crypto/fipsmodule/hkdf/hkdf_test.cc", 
+    "src/crypto/fipsmodule/modes/gcm_test.cc", 
+    "src/crypto/fipsmodule/rand/ctrdrbg_test.cc", 
+    "src/crypto/fipsmodule/service_indicator/service_indicator_test.cc", 
+    "src/crypto/fipsmodule/sha/sha_test.cc", 
+    "src/crypto/hmac_extra/hmac_test.cc", 
+    "src/crypto/hpke/hpke_test.cc", 
+    "src/crypto/hrss/hrss_test.cc", 
+    "src/crypto/impl_dispatch_test.cc", 
+    "src/crypto/keccak/keccak_test.cc", 
+    "src/crypto/kyber/kyber_test.cc", 
+    "src/crypto/lhash/lhash_test.cc", 
+    "src/crypto/md5/md5_test.cc", 
+    "src/crypto/mldsa/mldsa_test.cc", 
+    "src/crypto/mlkem/mlkem_test.cc", 
+    "src/crypto/obj/obj_test.cc", 
+    "src/crypto/pem/pem_test.cc", 
+    "src/crypto/pkcs7/pkcs7_test.cc", 
+    "src/crypto/pkcs8/pkcs12_test.cc", 
+    "src/crypto/pkcs8/pkcs8_test.cc", 
+    "src/crypto/poly1305/poly1305_test.cc", 
+    "src/crypto/pool/pool_test.cc", 
+    "src/crypto/rand_extra/fork_detect_test.cc", 
+    "src/crypto/rand_extra/getentropy_test.cc", 
+    "src/crypto/rand_extra/rand_test.cc", 
+    "src/crypto/refcount_test.cc", 
+    "src/crypto/rsa_extra/rsa_test.cc", 
+    "src/crypto/self_test.cc", 
+    "src/crypto/siphash/siphash_test.cc", 
+    "src/crypto/slhdsa/slhdsa_test.cc", 
+    "src/crypto/spx/spx_test.cc", 
+    "src/crypto/stack/stack_test.cc", 
+    "src/crypto/test/gtest_main.cc", 
+    "src/crypto/thread_test.cc", 
+    "src/crypto/trust_token/trust_token_test.cc", 
+    "src/crypto/x509/tab_test.cc", 
+    "src/crypto/x509/x509_test.cc", 
+    "src/crypto/x509/x509_time_test.cc"
+  ], 
+  "crypto_test_data": [
+    "src/crypto/blake2/blake2b256_tests.txt", 
+    "src/crypto/cipher_extra/test/aes_128_cbc_sha1_tls_implicit_iv_tests.txt", 
+    "src/crypto/cipher_extra/test/aes_128_cbc_sha1_tls_tests.txt", 
+    "src/crypto/cipher_extra/test/aes_128_ccm_bluetooth_8_tests.txt", 
+    "src/crypto/cipher_extra/test/aes_128_ccm_bluetooth_tests.txt", 
+    "src/crypto/cipher_extra/test/aes_128_ccm_matter_tests.txt", 
+    "src/crypto/cipher_extra/test/aes_128_ctr_hmac_sha256.txt", 
+    "src/crypto/cipher_extra/test/aes_128_gcm_randnonce_tests.txt", 
+    "src/crypto/cipher_extra/test/aes_128_gcm_siv_tests.txt", 
+    "src/crypto/cipher_extra/test/aes_128_gcm_tests.txt", 
+    "src/crypto/cipher_extra/test/aes_192_gcm_tests.txt", 
+    "src/crypto/cipher_extra/test/aes_256_cbc_sha1_tls_implicit_iv_tests.txt", 
+    "src/crypto/cipher_extra/test/aes_256_cbc_sha1_tls_tests.txt", 
+    "src/crypto/cipher_extra/test/aes_256_ctr_hmac_sha256.txt", 
+    "src/crypto/cipher_extra/test/aes_256_gcm_randnonce_tests.txt", 
+    "src/crypto/cipher_extra/test/aes_256_gcm_siv_tests.txt", 
+    "src/crypto/cipher_extra/test/aes_256_gcm_tests.txt", 
+    "src/crypto/cipher_extra/test/chacha20_poly1305_tests.txt", 
+    "src/crypto/cipher_extra/test/cipher_tests.txt", 
+    "src/crypto/cipher_extra/test/des_ede3_cbc_sha1_tls_implicit_iv_tests.txt", 
+    "src/crypto/cipher_extra/test/des_ede3_cbc_sha1_tls_tests.txt", 
+    "src/crypto/cipher_extra/test/nist_cavp/aes_128_cbc.txt", 
+    "src/crypto/cipher_extra/test/nist_cavp/aes_128_ctr.txt", 
+    "src/crypto/cipher_extra/test/nist_cavp/aes_128_gcm.txt", 
+    "src/crypto/cipher_extra/test/nist_cavp/aes_192_cbc.txt", 
+    "src/crypto/cipher_extra/test/nist_cavp/aes_192_ctr.txt", 
+    "src/crypto/cipher_extra/test/nist_cavp/aes_256_cbc.txt", 
+    "src/crypto/cipher_extra/test/nist_cavp/aes_256_ctr.txt", 
+    "src/crypto/cipher_extra/test/nist_cavp/aes_256_gcm.txt", 
+    "src/crypto/cipher_extra/test/nist_cavp/tdes_cbc.txt", 
+    "src/crypto/cipher_extra/test/nist_cavp/tdes_ecb.txt", 
+    "src/crypto/cipher_extra/test/xchacha20_poly1305_tests.txt", 
+    "src/crypto/curve25519/ed25519_tests.txt", 
+    "src/crypto/dilithium/dilithium_tests.txt", 
+    "src/crypto/dilithium/edge_cases_draft_dilithium3_sign.txt", 
+    "src/crypto/dilithium/edge_cases_draft_dilithium3_verify.txt", 
+    "src/crypto/ecdh_extra/ecdh_tests.txt", 
+    "src/crypto/evp/evp_tests.txt", 
+    "src/crypto/evp/scrypt_tests.txt", 
+    "src/crypto/fipsmodule/aes/aes_tests.txt", 
+    "src/crypto/fipsmodule/bn/test/exp_tests.txt", 
+    "src/crypto/fipsmodule/bn/test/gcd_tests.txt", 
+    "src/crypto/fipsmodule/bn/test/miller_rabin_tests.txt", 
+    "src/crypto/fipsmodule/bn/test/mod_exp_tests.txt", 
+    "src/crypto/fipsmodule/bn/test/mod_inv_tests.txt", 
+    "src/crypto/fipsmodule/bn/test/mod_mul_tests.txt", 
+    "src/crypto/fipsmodule/bn/test/mod_sqrt_tests.txt", 
+    "src/crypto/fipsmodule/bn/test/product_tests.txt", 
+    "src/crypto/fipsmodule/bn/test/quotient_tests.txt", 
+    "src/crypto/fipsmodule/bn/test/shift_tests.txt", 
+    "src/crypto/fipsmodule/bn/test/sum_tests.txt", 
+    "src/crypto/fipsmodule/cmac/cavp_3des_cmac_tests.txt", 
+    "src/crypto/fipsmodule/cmac/cavp_aes128_cmac_tests.txt", 
+    "src/crypto/fipsmodule/cmac/cavp_aes192_cmac_tests.txt", 
+    "src/crypto/fipsmodule/cmac/cavp_aes256_cmac_tests.txt", 
+    "src/crypto/fipsmodule/ec/ec_scalar_base_mult_tests.txt", 
+    "src/crypto/fipsmodule/ec/p256-nistz_tests.txt", 
+    "src/crypto/fipsmodule/ecdsa/ecdsa_sign_tests.txt", 
+    "src/crypto/fipsmodule/ecdsa/ecdsa_verify_tests.txt", 
+    "src/crypto/fipsmodule/modes/gcm_tests.txt", 
+    "src/crypto/fipsmodule/rand/ctrdrbg_vectors.txt", 
+    "src/crypto/hmac_extra/hmac_tests.txt", 
+    "src/crypto/hpke/hpke_test_vectors.txt", 
+    "src/crypto/keccak/keccak_tests.txt", 
+    "src/crypto/kyber/kyber_tests.txt", 
+    "src/crypto/mldsa/mldsa_nist_keygen_tests.txt", 
+    "src/crypto/mldsa/mldsa_nist_siggen_tests.txt", 
+    "src/crypto/mlkem/mlkem1024_decap_tests.txt", 
+    "src/crypto/mlkem/mlkem1024_encap_tests.txt", 
+    "src/crypto/mlkem/mlkem1024_keygen_tests.txt", 
+    "src/crypto/mlkem/mlkem1024_nist_decap_tests.txt", 
+    "src/crypto/mlkem/mlkem1024_nist_keygen_tests.txt", 
+    "src/crypto/mlkem/mlkem768_decap_tests.txt", 
+    "src/crypto/mlkem/mlkem768_encap_tests.txt", 
+    "src/crypto/mlkem/mlkem768_keygen_tests.txt", 
+    "src/crypto/mlkem/mlkem768_nist_decap_tests.txt", 
+    "src/crypto/mlkem/mlkem768_nist_keygen_tests.txt", 
+    "src/crypto/pkcs8/test/bad1.p12", 
+    "src/crypto/pkcs8/test/bad2.p12", 
+    "src/crypto/pkcs8/test/bad3.p12", 
+    "src/crypto/pkcs8/test/empty_password.p12", 
+    "src/crypto/pkcs8/test/empty_password_ber.p12", 
+    "src/crypto/pkcs8/test/empty_password_ber_nested.p12", 
+    "src/crypto/pkcs8/test/no_encryption.p12", 
+    "src/crypto/pkcs8/test/nss.p12", 
+    "src/crypto/pkcs8/test/null_password.p12", 
+    "src/crypto/pkcs8/test/openssl.p12", 
+    "src/crypto/pkcs8/test/pbes2_sha1.p12", 
+    "src/crypto/pkcs8/test/pbes2_sha256.p12", 
+    "src/crypto/pkcs8/test/unicode_password.p12", 
+    "src/crypto/pkcs8/test/windows.p12", 
+    "src/crypto/poly1305/poly1305_tests.txt", 
+    "src/crypto/siphash/siphash_tests.txt", 
+    "src/crypto/slhdsa/slhdsa_keygen.txt", 
+    "src/crypto/slhdsa/slhdsa_siggen.txt", 
+    "src/crypto/slhdsa/slhdsa_sigver.txt", 
+    "src/crypto/spx/spx_tests.txt", 
+    "src/crypto/spx/spx_tests_deterministic.txt", 
+    "src/crypto/x509/test/basic_constraints_ca.pem", 
+    "src/crypto/x509/test/basic_constraints_ca_pathlen_0.pem", 
+    "src/crypto/x509/test/basic_constraints_ca_pathlen_1.pem", 
+    "src/crypto/x509/test/basic_constraints_ca_pathlen_10.pem", 
+    "src/crypto/x509/test/basic_constraints_leaf.pem", 
+    "src/crypto/x509/test/basic_constraints_none.pem", 
+    "src/crypto/x509/test/invalid_extension_intermediate.pem", 
+    "src/crypto/x509/test/invalid_extension_intermediate_authority_key_identifier.pem", 
+    "src/crypto/x509/test/invalid_extension_intermediate_basic_constraints.pem", 
+    "src/crypto/x509/test/invalid_extension_intermediate_ext_key_usage.pem", 
+    "src/crypto/x509/test/invalid_extension_intermediate_key_usage.pem", 
+    "src/crypto/x509/test/invalid_extension_intermediate_name_constraints.pem", 
+    "src/crypto/x509/test/invalid_extension_intermediate_subject_alt_name.pem", 
+    "src/crypto/x509/test/invalid_extension_intermediate_subject_key_identifier.pem", 
+    "src/crypto/x509/test/invalid_extension_leaf.pem", 
+    "src/crypto/x509/test/invalid_extension_leaf_authority_key_identifier.pem", 
+    "src/crypto/x509/test/invalid_extension_leaf_basic_constraints.pem", 
+    "src/crypto/x509/test/invalid_extension_leaf_ext_key_usage.pem", 
+    "src/crypto/x509/test/invalid_extension_leaf_key_usage.pem", 
+    "src/crypto/x509/test/invalid_extension_leaf_name_constraints.pem", 
+    "src/crypto/x509/test/invalid_extension_leaf_subject_alt_name.pem", 
+    "src/crypto/x509/test/invalid_extension_leaf_subject_key_identifier.pem", 
+    "src/crypto/x509/test/invalid_extension_root.pem", 
+    "src/crypto/x509/test/invalid_extension_root_authority_key_identifier.pem", 
+    "src/crypto/x509/test/invalid_extension_root_basic_constraints.pem", 
+    "src/crypto/x509/test/invalid_extension_root_ext_key_usage.pem", 
+    "src/crypto/x509/test/invalid_extension_root_key_usage.pem", 
+    "src/crypto/x509/test/invalid_extension_root_name_constraints.pem", 
+    "src/crypto/x509/test/invalid_extension_root_subject_alt_name.pem", 
+    "src/crypto/x509/test/invalid_extension_root_subject_key_identifier.pem", 
+    "src/crypto/x509/test/many_constraints.pem", 
+    "src/crypto/x509/test/many_names1.pem", 
+    "src/crypto/x509/test/many_names2.pem", 
+    "src/crypto/x509/test/many_names3.pem", 
+    "src/crypto/x509/test/policy_intermediate.pem", 
+    "src/crypto/x509/test/policy_intermediate_any.pem", 
+    "src/crypto/x509/test/policy_intermediate_duplicate.pem", 
+    "src/crypto/x509/test/policy_intermediate_invalid.pem", 
+    "src/crypto/x509/test/policy_intermediate_mapped.pem", 
+    "src/crypto/x509/test/policy_intermediate_mapped_any.pem", 
+    "src/crypto/x509/test/policy_intermediate_mapped_oid3.pem", 
+    "src/crypto/x509/test/policy_intermediate_require.pem", 
+    "src/crypto/x509/test/policy_intermediate_require1.pem", 
+    "src/crypto/x509/test/policy_intermediate_require2.pem", 
+    "src/crypto/x509/test/policy_intermediate_require_duplicate.pem", 
+    "src/crypto/x509/test/policy_intermediate_require_no_policies.pem", 
+    "src/crypto/x509/test/policy_leaf.pem", 
+    "src/crypto/x509/test/policy_leaf_any.pem", 
+    "src/crypto/x509/test/policy_leaf_duplicate.pem", 
+    "src/crypto/x509/test/policy_leaf_invalid.pem", 
+    "src/crypto/x509/test/policy_leaf_none.pem", 
+    "src/crypto/x509/test/policy_leaf_oid1.pem", 
+    "src/crypto/x509/test/policy_leaf_oid2.pem", 
+    "src/crypto/x509/test/policy_leaf_oid3.pem", 
+    "src/crypto/x509/test/policy_leaf_oid4.pem", 
+    "src/crypto/x509/test/policy_leaf_oid5.pem", 
+    "src/crypto/x509/test/policy_leaf_require.pem", 
+    "src/crypto/x509/test/policy_leaf_require1.pem", 
+    "src/crypto/x509/test/policy_root.pem", 
+    "src/crypto/x509/test/policy_root2.pem", 
+    "src/crypto/x509/test/policy_root_cross_inhibit_mapping.pem", 
+    "src/crypto/x509/test/pss_sha1.pem", 
+    "src/crypto/x509/test/pss_sha1_explicit.pem", 
+    "src/crypto/x509/test/pss_sha1_mgf1_syntax_error.pem", 
+    "src/crypto/x509/test/pss_sha224.pem", 
+    "src/crypto/x509/test/pss_sha256.pem", 
+    "src/crypto/x509/test/pss_sha256_explicit_trailer.pem", 
+    "src/crypto/x509/test/pss_sha256_mgf1_sha384.pem", 
+    "src/crypto/x509/test/pss_sha256_mgf1_syntax_error.pem", 
+    "src/crypto/x509/test/pss_sha256_omit_nulls.pem", 
+    "src/crypto/x509/test/pss_sha256_salt31.pem", 
+    "src/crypto/x509/test/pss_sha256_salt_overflow.pem", 
+    "src/crypto/x509/test/pss_sha256_unknown_mgf.pem", 
+    "src/crypto/x509/test/pss_sha256_wrong_trailer.pem", 
+    "src/crypto/x509/test/pss_sha384.pem", 
+    "src/crypto/x509/test/pss_sha512.pem", 
+    "src/crypto/x509/test/some_names1.pem", 
+    "src/crypto/x509/test/some_names2.pem", 
+    "src/crypto/x509/test/some_names3.pem", 
+    "src/crypto/x509/test/trailing_data_leaf_authority_key_identifier.pem", 
+    "src/crypto/x509/test/trailing_data_leaf_basic_constraints.pem", 
+    "src/crypto/x509/test/trailing_data_leaf_ext_key_usage.pem", 
+    "src/crypto/x509/test/trailing_data_leaf_key_usage.pem", 
+    "src/crypto/x509/test/trailing_data_leaf_name_constraints.pem", 
+    "src/crypto/x509/test/trailing_data_leaf_subject_alt_name.pem", 
+    "src/crypto/x509/test/trailing_data_leaf_subject_key_identifier.pem", 
+    "src/third_party/wycheproof_testvectors/aes_cbc_pkcs5_test.txt", 
+    "src/third_party/wycheproof_testvectors/aes_cmac_test.txt", 
+    "src/third_party/wycheproof_testvectors/aes_gcm_siv_test.txt", 
+    "src/third_party/wycheproof_testvectors/aes_gcm_test.txt", 
+    "src/third_party/wycheproof_testvectors/chacha20_poly1305_test.txt", 
+    "src/third_party/wycheproof_testvectors/dsa_test.txt", 
+    "src/third_party/wycheproof_testvectors/ecdh_secp224r1_test.txt", 
+    "src/third_party/wycheproof_testvectors/ecdh_secp256r1_test.txt", 
+    "src/third_party/wycheproof_testvectors/ecdh_secp384r1_test.txt", 
+    "src/third_party/wycheproof_testvectors/ecdh_secp521r1_test.txt", 
+    "src/third_party/wycheproof_testvectors/ecdsa_secp224r1_sha224_test.txt", 
+    "src/third_party/wycheproof_testvectors/ecdsa_secp224r1_sha256_test.txt", 
+    "src/third_party/wycheproof_testvectors/ecdsa_secp224r1_sha512_test.txt", 
+    "src/third_party/wycheproof_testvectors/ecdsa_secp256r1_sha256_test.txt", 
+    "src/third_party/wycheproof_testvectors/ecdsa_secp256r1_sha512_test.txt", 
+    "src/third_party/wycheproof_testvectors/ecdsa_secp384r1_sha384_test.txt", 
+    "src/third_party/wycheproof_testvectors/ecdsa_secp384r1_sha512_test.txt", 
+    "src/third_party/wycheproof_testvectors/ecdsa_secp521r1_sha512_test.txt", 
+    "src/third_party/wycheproof_testvectors/eddsa_test.txt", 
+    "src/third_party/wycheproof_testvectors/hkdf_sha1_test.txt", 
+    "src/third_party/wycheproof_testvectors/hkdf_sha256_test.txt", 
+    "src/third_party/wycheproof_testvectors/hkdf_sha384_test.txt", 
+    "src/third_party/wycheproof_testvectors/hkdf_sha512_test.txt", 
+    "src/third_party/wycheproof_testvectors/hmac_sha1_test.txt", 
+    "src/third_party/wycheproof_testvectors/hmac_sha224_test.txt", 
+    "src/third_party/wycheproof_testvectors/hmac_sha256_test.txt", 
+    "src/third_party/wycheproof_testvectors/hmac_sha384_test.txt", 
+    "src/third_party/wycheproof_testvectors/hmac_sha512_test.txt", 
+    "src/third_party/wycheproof_testvectors/kw_test.txt", 
+    "src/third_party/wycheproof_testvectors/kwp_test.txt", 
+    "src/third_party/wycheproof_testvectors/mldsa_65_standard_sign_test.txt", 
+    "src/third_party/wycheproof_testvectors/mldsa_65_standard_verify_test.txt", 
+    "src/third_party/wycheproof_testvectors/primality_test.txt", 
+    "src/third_party/wycheproof_testvectors/rsa_oaep_2048_sha1_mgf1sha1_test.txt", 
+    "src/third_party/wycheproof_testvectors/rsa_oaep_2048_sha224_mgf1sha1_test.txt", 
+    "src/third_party/wycheproof_testvectors/rsa_oaep_2048_sha224_mgf1sha224_test.txt", 
+    "src/third_party/wycheproof_testvectors/rsa_oaep_2048_sha256_mgf1sha1_test.txt", 
+    "src/third_party/wycheproof_testvectors/rsa_oaep_2048_sha256_mgf1sha256_test.txt", 
+    "src/third_party/wycheproof_testvectors/rsa_oaep_2048_sha384_mgf1sha1_test.txt", 
+    "src/third_party/wycheproof_testvectors/rsa_oaep_2048_sha384_mgf1sha384_test.txt", 
+    "src/third_party/wycheproof_testvectors/rsa_oaep_2048_sha512_mgf1sha1_test.txt", 
+    "src/third_party/wycheproof_testvectors/rsa_oaep_2048_sha512_mgf1sha512_test.txt", 
+    "src/third_party/wycheproof_testvectors/rsa_oaep_3072_sha256_mgf1sha1_test.txt", 
+    "src/third_party/wycheproof_testvectors/rsa_oaep_3072_sha256_mgf1sha256_test.txt", 
+    "src/third_party/wycheproof_testvectors/rsa_oaep_3072_sha512_mgf1sha1_test.txt", 
+    "src/third_party/wycheproof_testvectors/rsa_oaep_3072_sha512_mgf1sha512_test.txt", 
+    "src/third_party/wycheproof_testvectors/rsa_oaep_4096_sha256_mgf1sha1_test.txt", 
+    "src/third_party/wycheproof_testvectors/rsa_oaep_4096_sha256_mgf1sha256_test.txt", 
+    "src/third_party/wycheproof_testvectors/rsa_oaep_4096_sha512_mgf1sha1_test.txt", 
+    "src/third_party/wycheproof_testvectors/rsa_oaep_4096_sha512_mgf1sha512_test.txt", 
+    "src/third_party/wycheproof_testvectors/rsa_oaep_misc_test.txt", 
+    "src/third_party/wycheproof_testvectors/rsa_pkcs1_2048_test.txt", 
+    "src/third_party/wycheproof_testvectors/rsa_pkcs1_3072_test.txt", 
+    "src/third_party/wycheproof_testvectors/rsa_pkcs1_4096_test.txt", 
+    "src/third_party/wycheproof_testvectors/rsa_pss_2048_sha1_mgf1_20_test.txt", 
+    "src/third_party/wycheproof_testvectors/rsa_pss_2048_sha256_mgf1_0_test.txt", 
+    "src/third_party/wycheproof_testvectors/rsa_pss_2048_sha256_mgf1_32_test.txt", 
+    "src/third_party/wycheproof_testvectors/rsa_pss_3072_sha256_mgf1_32_test.txt", 
+    "src/third_party/wycheproof_testvectors/rsa_pss_4096_sha256_mgf1_32_test.txt", 
+    "src/third_party/wycheproof_testvectors/rsa_pss_4096_sha512_mgf1_32_test.txt", 
+    "src/third_party/wycheproof_testvectors/rsa_pss_misc_test.txt", 
+    "src/third_party/wycheproof_testvectors/rsa_sig_gen_misc_test.txt", 
+    "src/third_party/wycheproof_testvectors/rsa_signature_2048_sha224_test.txt", 
+    "src/third_party/wycheproof_testvectors/rsa_signature_2048_sha256_test.txt", 
+    "src/third_party/wycheproof_testvectors/rsa_signature_2048_sha384_test.txt", 
+    "src/third_party/wycheproof_testvectors/rsa_signature_2048_sha512_test.txt", 
+    "src/third_party/wycheproof_testvectors/rsa_signature_3072_sha256_test.txt", 
+    "src/third_party/wycheproof_testvectors/rsa_signature_3072_sha384_test.txt", 
+    "src/third_party/wycheproof_testvectors/rsa_signature_3072_sha512_test.txt", 
+    "src/third_party/wycheproof_testvectors/rsa_signature_4096_sha384_test.txt", 
+    "src/third_party/wycheproof_testvectors/rsa_signature_4096_sha512_test.txt", 
+    "src/third_party/wycheproof_testvectors/rsa_signature_test.txt", 
+    "src/third_party/wycheproof_testvectors/x25519_test.txt", 
+    "src/third_party/wycheproof_testvectors/xchacha20_poly1305_test.txt"
+  ], 
+  "fips_fragments": [
+    "src/crypto/fipsmodule/aes/aes.c.inc", 
+    "src/crypto/fipsmodule/aes/aes_nohw.c.inc", 
+    "src/crypto/fipsmodule/aes/key_wrap.c.inc", 
+    "src/crypto/fipsmodule/aes/mode_wrappers.c.inc", 
+    "src/crypto/fipsmodule/bn/add.c.inc", 
+    "src/crypto/fipsmodule/bn/asm/x86_64-gcc.c.inc", 
+    "src/crypto/fipsmodule/bn/bn.c.inc", 
+    "src/crypto/fipsmodule/bn/bytes.c.inc", 
+    "src/crypto/fipsmodule/bn/cmp.c.inc", 
+    "src/crypto/fipsmodule/bn/ctx.c.inc", 
+    "src/crypto/fipsmodule/bn/div.c.inc", 
+    "src/crypto/fipsmodule/bn/div_extra.c.inc", 
+    "src/crypto/fipsmodule/bn/exponentiation.c.inc", 
+    "src/crypto/fipsmodule/bn/gcd.c.inc", 
+    "src/crypto/fipsmodule/bn/gcd_extra.c.inc", 
+    "src/crypto/fipsmodule/bn/generic.c.inc", 
+    "src/crypto/fipsmodule/bn/jacobi.c.inc", 
+    "src/crypto/fipsmodule/bn/montgomery.c.inc", 
+    "src/crypto/fipsmodule/bn/montgomery_inv.c.inc", 
+    "src/crypto/fipsmodule/bn/mul.c.inc", 
+    "src/crypto/fipsmodule/bn/prime.c.inc", 
+    "src/crypto/fipsmodule/bn/random.c.inc", 
+    "src/crypto/fipsmodule/bn/rsaz_exp.c.inc", 
+    "src/crypto/fipsmodule/bn/shift.c.inc", 
+    "src/crypto/fipsmodule/bn/sqrt.c.inc", 
+    "src/crypto/fipsmodule/cipher/aead.c.inc", 
+    "src/crypto/fipsmodule/cipher/cipher.c.inc", 
+    "src/crypto/fipsmodule/cipher/e_aes.c.inc", 
+    "src/crypto/fipsmodule/cipher/e_aesccm.c.inc", 
+    "src/crypto/fipsmodule/cmac/cmac.c.inc", 
+    "src/crypto/fipsmodule/dh/check.c.inc", 
+    "src/crypto/fipsmodule/dh/dh.c.inc", 
+    "src/crypto/fipsmodule/digest/digest.c.inc", 
+    "src/crypto/fipsmodule/digest/digests.c.inc", 
+    "src/crypto/fipsmodule/digestsign/digestsign.c.inc", 
+    "src/crypto/fipsmodule/ec/ec.c.inc", 
+    "src/crypto/fipsmodule/ec/ec_key.c.inc", 
+    "src/crypto/fipsmodule/ec/ec_montgomery.c.inc", 
+    "src/crypto/fipsmodule/ec/felem.c.inc", 
+    "src/crypto/fipsmodule/ec/oct.c.inc", 
+    "src/crypto/fipsmodule/ec/p224-64.c.inc", 
+    "src/crypto/fipsmodule/ec/p256-nistz.c.inc", 
+    "src/crypto/fipsmodule/ec/p256.c.inc", 
+    "src/crypto/fipsmodule/ec/scalar.c.inc", 
+    "src/crypto/fipsmodule/ec/simple.c.inc", 
+    "src/crypto/fipsmodule/ec/simple_mul.c.inc", 
+    "src/crypto/fipsmodule/ec/util.c.inc", 
+    "src/crypto/fipsmodule/ec/wnaf.c.inc", 
+    "src/crypto/fipsmodule/ecdh/ecdh.c.inc", 
+    "src/crypto/fipsmodule/ecdsa/ecdsa.c.inc", 
+    "src/crypto/fipsmodule/hkdf/hkdf.c.inc", 
+    "src/crypto/fipsmodule/hmac/hmac.c.inc", 
+    "src/crypto/fipsmodule/modes/cbc.c.inc", 
+    "src/crypto/fipsmodule/modes/cfb.c.inc", 
+    "src/crypto/fipsmodule/modes/ctr.c.inc", 
+    "src/crypto/fipsmodule/modes/gcm.c.inc", 
+    "src/crypto/fipsmodule/modes/gcm_nohw.c.inc", 
+    "src/crypto/fipsmodule/modes/ofb.c.inc", 
+    "src/crypto/fipsmodule/modes/polyval.c.inc", 
+    "src/crypto/fipsmodule/rand/ctrdrbg.c.inc", 
+    "src/crypto/fipsmodule/rand/rand.c.inc", 
+    "src/crypto/fipsmodule/rsa/blinding.c.inc", 
+    "src/crypto/fipsmodule/rsa/padding.c.inc", 
+    "src/crypto/fipsmodule/rsa/rsa.c.inc", 
+    "src/crypto/fipsmodule/rsa/rsa_impl.c.inc", 
+    "src/crypto/fipsmodule/self_check/fips.c.inc", 
+    "src/crypto/fipsmodule/self_check/self_check.c.inc", 
+    "src/crypto/fipsmodule/service_indicator/service_indicator.c.inc", 
+    "src/crypto/fipsmodule/sha/sha1.c.inc", 
+    "src/crypto/fipsmodule/sha/sha256.c.inc", 
+    "src/crypto/fipsmodule/sha/sha512.c.inc", 
+    "src/crypto/fipsmodule/tls/kdf.c.inc"
+  ], 
+  "fuzz": [
+    "src/fuzz/arm_cpuinfo.cc", 
+    "src/fuzz/bn_div.cc", 
+    "src/fuzz/bn_mod_exp.cc", 
+    "src/fuzz/cert.cc", 
+    "src/fuzz/client.cc", 
+    "src/fuzz/conf.cc", 
+    "src/fuzz/crl_getcrlstatusforcert_fuzzer.cc", 
+    "src/fuzz/crl_parse_crl_certificatelist_fuzzer.cc", 
+    "src/fuzz/crl_parse_crl_tbscertlist_fuzzer.cc", 
+    "src/fuzz/crl_parse_issuing_distribution_point_fuzzer.cc", 
+    "src/fuzz/decode_client_hello_inner.cc", 
+    "src/fuzz/der_roundtrip.cc", 
+    "src/fuzz/dtls_client.cc", 
+    "src/fuzz/dtls_server.cc", 
+    "src/fuzz/ocsp_parse_ocsp_cert_id_fuzzer.cc", 
+    "src/fuzz/ocsp_parse_ocsp_response_data_fuzzer.cc", 
+    "src/fuzz/ocsp_parse_ocsp_response_fuzzer.cc", 
+    "src/fuzz/ocsp_parse_ocsp_single_response_fuzzer.cc", 
+    "src/fuzz/parse_authority_key_identifier_fuzzer.cc", 
+    "src/fuzz/parse_certificate_fuzzer.cc", 
+    "src/fuzz/parse_crldp_fuzzer.cc", 
+    "src/fuzz/pkcs12.cc", 
+    "src/fuzz/pkcs8.cc", 
+    "src/fuzz/privkey.cc", 
+    "src/fuzz/read_pem.cc", 
+    "src/fuzz/server.cc", 
+    "src/fuzz/session.cc", 
+    "src/fuzz/spki.cc", 
+    "src/fuzz/ssl_ctx_api.cc", 
+    "src/fuzz/verify_name_match_fuzzer.cc", 
+    "src/fuzz/verify_name_match_normalizename_fuzzer.cc", 
+    "src/fuzz/verify_name_match_verifynameinsubtree_fuzzer.cc"
+  ], 
+  "pki": [
+    "src/pki/cert_error_id.cc", 
+    "src/pki/cert_error_params.cc", 
+    "src/pki/cert_errors.cc", 
+    "src/pki/cert_issuer_source_static.cc", 
+    "src/pki/certificate.cc", 
+    "src/pki/certificate_policies.cc", 
+    "src/pki/common_cert_errors.cc", 
+    "src/pki/crl.cc", 
+    "src/pki/encode_values.cc", 
+    "src/pki/extended_key_usage.cc", 
+    "src/pki/general_names.cc", 
+    "src/pki/input.cc", 
+    "src/pki/ip_util.cc", 
+    "src/pki/name_constraints.cc", 
+    "src/pki/ocsp.cc", 
+    "src/pki/ocsp_verify_result.cc", 
+    "src/pki/parse_certificate.cc", 
+    "src/pki/parse_name.cc", 
+    "src/pki/parse_values.cc", 
+    "src/pki/parsed_certificate.cc", 
+    "src/pki/parser.cc", 
+    "src/pki/path_builder.cc", 
+    "src/pki/pem.cc", 
+    "src/pki/revocation_util.cc", 
+    "src/pki/signature_algorithm.cc", 
+    "src/pki/simple_path_builder_delegate.cc", 
+    "src/pki/string_util.cc", 
+    "src/pki/trust_store.cc", 
+    "src/pki/trust_store_collection.cc", 
+    "src/pki/trust_store_in_memory.cc", 
+    "src/pki/verify.cc", 
+    "src/pki/verify_certificate_chain.cc", 
+    "src/pki/verify_error.cc", 
+    "src/pki/verify_name_match.cc", 
+    "src/pki/verify_signed_data.cc"
+  ], 
+  "pki_headers": [
+    "src/include/openssl/pki/certificate.h", 
+    "src/include/openssl/pki/signature_verify_cache.h", 
+    "src/include/openssl/pki/verify.h", 
+    "src/include/openssl/pki/verify_error.h"
+  ], 
+  "pki_internal_headers": [
+    "src/pki/cert_error_id.h", 
+    "src/pki/cert_error_params.h", 
+    "src/pki/cert_errors.h", 
+    "src/pki/cert_issuer_source.h", 
+    "src/pki/cert_issuer_source_static.h", 
+    "src/pki/cert_issuer_source_sync_unittest.h", 
+    "src/pki/certificate_policies.h", 
+    "src/pki/common_cert_errors.h", 
+    "src/pki/crl.h", 
+    "src/pki/encode_values.h", 
+    "src/pki/extended_key_usage.h", 
+    "src/pki/general_names.h", 
+    "src/pki/input.h", 
+    "src/pki/ip_util.h", 
+    "src/pki/mock_signature_verify_cache.h", 
+    "src/pki/name_constraints.h", 
+    "src/pki/nist_pkits_unittest.h", 
+    "src/pki/ocsp.h", 
+    "src/pki/ocsp_revocation_status.h", 
+    "src/pki/ocsp_verify_result.h", 
+    "src/pki/parse_certificate.h", 
+    "src/pki/parse_name.h", 
+    "src/pki/parse_values.h", 
+    "src/pki/parsed_certificate.h", 
+    "src/pki/parser.h", 
+    "src/pki/path_builder.h", 
+    "src/pki/pem.h", 
+    "src/pki/revocation_util.h", 
+    "src/pki/signature_algorithm.h", 
+    "src/pki/simple_path_builder_delegate.h", 
+    "src/pki/string_util.h", 
+    "src/pki/test_helpers.h", 
+    "src/pki/testdata/nist-pkits/pkits_testcases-inl.h", 
+    "src/pki/trust_store.h", 
+    "src/pki/trust_store_collection.h", 
+    "src/pki/trust_store_in_memory.h", 
+    "src/pki/verify_certificate_chain.h", 
+    "src/pki/verify_certificate_chain_typed_unittest.h", 
+    "src/pki/verify_name_match.h", 
+    "src/pki/verify_signed_data.h"
+  ], 
+  "pki_test": [
+    "src/crypto/test/gtest_main.cc", 
+    "src/pki/cert_issuer_source_static_unittest.cc", 
+    "src/pki/certificate_policies_unittest.cc", 
+    "src/pki/certificate_unittest.cc", 
+    "src/pki/crl_unittest.cc", 
+    "src/pki/encode_values_unittest.cc", 
+    "src/pki/extended_key_usage_unittest.cc", 
+    "src/pki/general_names_unittest.cc", 
+    "src/pki/input_unittest.cc", 
+    "src/pki/ip_util_unittest.cc", 
+    "src/pki/mock_signature_verify_cache.cc", 
+    "src/pki/name_constraints_unittest.cc", 
+    "src/pki/nist_pkits_unittest.cc", 
+    "src/pki/ocsp_unittest.cc", 
+    "src/pki/parse_certificate_unittest.cc", 
+    "src/pki/parse_name_unittest.cc", 
+    "src/pki/parse_values_unittest.cc", 
+    "src/pki/parsed_certificate_unittest.cc", 
+    "src/pki/parser_unittest.cc", 
+    "src/pki/path_builder_pkits_unittest.cc", 
+    "src/pki/path_builder_unittest.cc", 
+    "src/pki/path_builder_verify_certificate_chain_unittest.cc", 
+    "src/pki/pem_unittest.cc", 
+    "src/pki/signature_algorithm_unittest.cc", 
+    "src/pki/simple_path_builder_delegate_unittest.cc", 
+    "src/pki/string_util_unittest.cc", 
+    "src/pki/test_helpers.cc", 
+    "src/pki/trust_store_collection_unittest.cc", 
+    "src/pki/trust_store_in_memory_unittest.cc", 
+    "src/pki/verify_certificate_chain_pkits_unittest.cc", 
+    "src/pki/verify_certificate_chain_unittest.cc", 
+    "src/pki/verify_name_match_unittest.cc", 
+    "src/pki/verify_signed_data_unittest.cc", 
+    "src/pki/verify_unittest.cc"
+  ], 
+  "pki_test_data": [
+    "src/pki/testdata/cert_issuer_source_static_unittest/c1.pem", 
+    "src/pki/testdata/cert_issuer_source_static_unittest/c2.pem", 
+    "src/pki/testdata/cert_issuer_source_static_unittest/d.pem", 
+    "src/pki/testdata/cert_issuer_source_static_unittest/e1.pem", 
+    "src/pki/testdata/cert_issuer_source_static_unittest/e2.pem", 
+    "src/pki/testdata/cert_issuer_source_static_unittest/i1_1.pem", 
+    "src/pki/testdata/cert_issuer_source_static_unittest/i1_2.pem", 
+    "src/pki/testdata/cert_issuer_source_static_unittest/i2.pem", 
+    "src/pki/testdata/cert_issuer_source_static_unittest/i3_1.pem", 
+    "src/pki/testdata/cert_issuer_source_static_unittest/i3_2.pem", 
+    "src/pki/testdata/cert_issuer_source_static_unittest/root.pem", 
+    "src/pki/testdata/certificate_policies_unittest/anypolicy.pem", 
+    "src/pki/testdata/certificate_policies_unittest/anypolicy_with_qualifier.pem", 
+    "src/pki/testdata/certificate_policies_unittest/invalid-anypolicy_with_custom_qualifier.pem", 
+    "src/pki/testdata/certificate_policies_unittest/invalid-empty.pem", 
+    "src/pki/testdata/certificate_policies_unittest/invalid-policy_1_2_3_dupe.pem", 
+    "src/pki/testdata/certificate_policies_unittest/invalid-policy_1_2_3_policyinformation_unconsumed_data.pem", 
+    "src/pki/testdata/certificate_policies_unittest/invalid-policy_1_2_3_policyqualifierinfo_unconsumed_data.pem", 
+    "src/pki/testdata/certificate_policies_unittest/invalid-policy_1_2_3_with_empty_qualifiers_sequence.pem", 
+    "src/pki/testdata/certificate_policies_unittest/invalid-policy_identifier_not_oid.pem", 
+    "src/pki/testdata/certificate_policies_unittest/policy_1_2_3.pem", 
+    "src/pki/testdata/certificate_policies_unittest/policy_1_2_3_and_1_2_4.pem", 
+    "src/pki/testdata/certificate_policies_unittest/policy_1_2_3_and_1_2_4_with_qualifiers.pem", 
+    "src/pki/testdata/certificate_policies_unittest/policy_1_2_3_with_custom_qualifier.pem", 
+    "src/pki/testdata/certificate_policies_unittest/policy_1_2_3_with_qualifier.pem", 
+    "src/pki/testdata/crl_unittest/bad_crldp_has_crlissuer.pem", 
+    "src/pki/testdata/crl_unittest/bad_fake_critical_crlentryextension.pem", 
+    "src/pki/testdata/crl_unittest/bad_fake_critical_extension.pem", 
+    "src/pki/testdata/crl_unittest/bad_idp_contains_wrong_uri.pem", 
+    "src/pki/testdata/crl_unittest/bad_idp_indirectcrl.pem", 
+    "src/pki/testdata/crl_unittest/bad_idp_onlycontainscacerts.pem", 
+    "src/pki/testdata/crl_unittest/bad_idp_onlycontainscacerts_no_basic_constraints.pem", 
+    "src/pki/testdata/crl_unittest/bad_idp_onlycontainsusercerts.pem", 
+    "src/pki/testdata/crl_unittest/bad_idp_uri_and_onlycontainscacerts.pem", 
+    "src/pki/testdata/crl_unittest/bad_idp_uri_and_onlycontainsusercerts.pem", 
+    "src/pki/testdata/crl_unittest/bad_key_rollover_signature.pem", 
+    "src/pki/testdata/crl_unittest/bad_nextupdate_too_old.pem", 
+    "src/pki/testdata/crl_unittest/bad_signature.pem", 
+    "src/pki/testdata/crl_unittest/bad_thisupdate_in_future.pem", 
+    "src/pki/testdata/crl_unittest/bad_thisupdate_too_old.pem", 
+    "src/pki/testdata/crl_unittest/bad_wrong_issuer.pem", 
+    "src/pki/testdata/crl_unittest/good.pem", 
+    "src/pki/testdata/crl_unittest/good_fake_extension.pem", 
+    "src/pki/testdata/crl_unittest/good_fake_extension_no_nextupdate.pem", 
+    "src/pki/testdata/crl_unittest/good_generalizedtime.pem", 
+    "src/pki/testdata/crl_unittest/good_idp_contains_uri.pem", 
+    "src/pki/testdata/crl_unittest/good_idp_onlycontainscacerts.pem", 
+    "src/pki/testdata/crl_unittest/good_idp_onlycontainsusercerts.pem", 
+    "src/pki/testdata/crl_unittest/good_idp_onlycontainsusercerts_no_basic_constraints.pem", 
+    "src/pki/testdata/crl_unittest/good_idp_uri_and_onlycontainscacerts.pem", 
+    "src/pki/testdata/crl_unittest/good_idp_uri_and_onlycontainsusercerts.pem", 
+    "src/pki/testdata/crl_unittest/good_issuer_name_normalization.pem", 
+    "src/pki/testdata/crl_unittest/good_issuer_no_keyusage.pem", 
+    "src/pki/testdata/crl_unittest/good_key_rollover.pem", 
+    "src/pki/testdata/crl_unittest/good_no_crldp.pem", 
+    "src/pki/testdata/crl_unittest/good_no_nextupdate.pem", 
+    "src/pki/testdata/crl_unittest/good_no_version.pem", 
+    "src/pki/testdata/crl_unittest/invalid_garbage_after_crlentryextensions.pem", 
+    "src/pki/testdata/crl_unittest/invalid_garbage_after_extensions.pem", 
+    "src/pki/testdata/crl_unittest/invalid_garbage_after_nextupdate.pem", 
+    "src/pki/testdata/crl_unittest/invalid_garbage_after_revocationdate.pem", 
+    "src/pki/testdata/crl_unittest/invalid_garbage_after_revokedcerts.pem", 
+    "src/pki/testdata/crl_unittest/invalid_garbage_after_signaturevalue.pem", 
+    "src/pki/testdata/crl_unittest/invalid_garbage_after_thisupdate.pem", 
+    "src/pki/testdata/crl_unittest/invalid_garbage_crlentry.pem", 
+    "src/pki/testdata/crl_unittest/invalid_garbage_issuer_name.pem", 
+    "src/pki/testdata/crl_unittest/invalid_garbage_revocationdate.pem", 
+    "src/pki/testdata/crl_unittest/invalid_garbage_revoked_serial_number.pem", 
+    "src/pki/testdata/crl_unittest/invalid_garbage_signaturealgorithm.pem", 
+    "src/pki/testdata/crl_unittest/invalid_garbage_signaturevalue.pem", 
+    "src/pki/testdata/crl_unittest/invalid_garbage_tbs_signature_algorithm.pem", 
+    "src/pki/testdata/crl_unittest/invalid_garbage_tbscertlist.pem", 
+    "src/pki/testdata/crl_unittest/invalid_garbage_thisupdate.pem", 
+    "src/pki/testdata/crl_unittest/invalid_garbage_version.pem", 
+    "src/pki/testdata/crl_unittest/invalid_idp_dpname_choice_extra_data.pem", 
+    "src/pki/testdata/crl_unittest/invalid_idp_empty_sequence.pem", 
+    "src/pki/testdata/crl_unittest/invalid_idp_onlycontains_user_and_ca_certs.pem", 
+    "src/pki/testdata/crl_unittest/invalid_idp_onlycontainsusercerts_v1_leaf.pem", 
+    "src/pki/testdata/crl_unittest/invalid_issuer_keyusage_no_crlsign.pem", 
+    "src/pki/testdata/crl_unittest/invalid_key_rollover_issuer_keyusage_no_crlsign.pem", 
+    "src/pki/testdata/crl_unittest/invalid_mismatched_signature_algorithm.pem", 
+    "src/pki/testdata/crl_unittest/invalid_revoked_empty_sequence.pem", 
+    "src/pki/testdata/crl_unittest/invalid_v1_explicit.pem", 
+    "src/pki/testdata/crl_unittest/invalid_v1_with_crlentryextension.pem", 
+    "src/pki/testdata/crl_unittest/invalid_v1_with_extension.pem", 
+    "src/pki/testdata/crl_unittest/invalid_v3.pem", 
+    "src/pki/testdata/crl_unittest/revoked.pem", 
+    "src/pki/testdata/crl_unittest/revoked_fake_crlentryextension.pem", 
+    "src/pki/testdata/crl_unittest/revoked_generalized_revocationdate.pem", 
+    "src/pki/testdata/crl_unittest/revoked_key_rollover.pem", 
+    "src/pki/testdata/crl_unittest/revoked_no_nextupdate.pem", 
+    "src/pki/testdata/name_constraints_unittest/directoryname-excludeall.pem", 
+    "src/pki/testdata/name_constraints_unittest/directoryname-excluded.pem", 
+    "src/pki/testdata/name_constraints_unittest/directoryname.pem", 
+    "src/pki/testdata/name_constraints_unittest/directoryname_and_dnsname.pem", 
+    "src/pki/testdata/name_constraints_unittest/directoryname_and_dnsname_and_ipaddress.pem", 
+    "src/pki/testdata/name_constraints_unittest/dnsname-exclude_dot.pem", 
+    "src/pki/testdata/name_constraints_unittest/dnsname-excludeall.pem", 
+    "src/pki/testdata/name_constraints_unittest/dnsname-excluded.pem", 
+    "src/pki/testdata/name_constraints_unittest/dnsname-excluded_with_leading_dot.pem", 
+    "src/pki/testdata/name_constraints_unittest/dnsname-permitted_two_dot.pem", 
+    "src/pki/testdata/name_constraints_unittest/dnsname-permitted_with_leading_dot.pem", 
+    "src/pki/testdata/name_constraints_unittest/dnsname-with_max.pem", 
+    "src/pki/testdata/name_constraints_unittest/dnsname-with_min_0.pem", 
+    "src/pki/testdata/name_constraints_unittest/dnsname-with_min_0_and_max.pem", 
+    "src/pki/testdata/name_constraints_unittest/dnsname-with_min_1.pem", 
+    "src/pki/testdata/name_constraints_unittest/dnsname-with_min_1_and_max.pem", 
+    "src/pki/testdata/name_constraints_unittest/dnsname.pem", 
+    "src/pki/testdata/name_constraints_unittest/dnsname2.pem", 
+    "src/pki/testdata/name_constraints_unittest/edipartyname-excluded.pem", 
+    "src/pki/testdata/name_constraints_unittest/edipartyname-permitted.pem", 
+    "src/pki/testdata/name_constraints_unittest/invalid-empty_excluded_subtree.pem", 
+    "src/pki/testdata/name_constraints_unittest/invalid-empty_permitted_subtree.pem", 
+    "src/pki/testdata/name_constraints_unittest/invalid-no_subtrees.pem", 
+    "src/pki/testdata/name_constraints_unittest/ipaddress-excludeall.pem", 
+    "src/pki/testdata/name_constraints_unittest/ipaddress-excluded.pem", 
+    "src/pki/testdata/name_constraints_unittest/ipaddress-invalid_addr.pem", 
+    "src/pki/testdata/name_constraints_unittest/ipaddress-invalid_mask_not_contiguous_1.pem", 
+    "src/pki/testdata/name_constraints_unittest/ipaddress-invalid_mask_not_contiguous_2.pem", 
+    "src/pki/testdata/name_constraints_unittest/ipaddress-invalid_mask_not_contiguous_3.pem", 
+    "src/pki/testdata/name_constraints_unittest/ipaddress-invalid_mask_not_contiguous_4.pem", 
+    "src/pki/testdata/name_constraints_unittest/ipaddress-mapped_addrs.pem", 
+    "src/pki/testdata/name_constraints_unittest/ipaddress-permit_all.pem", 
+    "src/pki/testdata/name_constraints_unittest/ipaddress-permit_prefix1.pem", 
+    "src/pki/testdata/name_constraints_unittest/ipaddress-permit_prefix31.pem", 
+    "src/pki/testdata/name_constraints_unittest/ipaddress-permit_singlehost.pem", 
+    "src/pki/testdata/name_constraints_unittest/ipaddress.pem", 
+    "src/pki/testdata/name_constraints_unittest/name-ca.pem", 
+    "src/pki/testdata/name_constraints_unittest/name-de.pem", 
+    "src/pki/testdata/name_constraints_unittest/name-empty.pem", 
+    "src/pki/testdata/name_constraints_unittest/name-jp-tokyo.pem", 
+    "src/pki/testdata/name_constraints_unittest/name-jp.pem", 
+    "src/pki/testdata/name_constraints_unittest/name-us-arizona-1.1.1.1.pem", 
+    "src/pki/testdata/name_constraints_unittest/name-us-arizona-192.168.1.1.pem", 
+    "src/pki/testdata/name_constraints_unittest/name-us-arizona-email-invalidstring.pem", 
+    "src/pki/testdata/name_constraints_unittest/name-us-arizona-email-localpartcase.pem", 
+    "src/pki/testdata/name_constraints_unittest/name-us-arizona-email-multiple.pem", 
+    "src/pki/testdata/name_constraints_unittest/name-us-arizona-email.pem", 
+    "src/pki/testdata/name_constraints_unittest/name-us-arizona-foo.com.pem", 
+    "src/pki/testdata/name_constraints_unittest/name-us-arizona-ipv6.pem", 
+    "src/pki/testdata/name_constraints_unittest/name-us-arizona-permitted.example.com.pem", 
+    "src/pki/testdata/name_constraints_unittest/name-us-arizona.pem", 
+    "src/pki/testdata/name_constraints_unittest/name-us-california-192.168.1.1.pem", 
+    "src/pki/testdata/name_constraints_unittest/name-us-california-mountain_view.pem", 
+    "src/pki/testdata/name_constraints_unittest/name-us-california-permitted.example.com.pem", 
+    "src/pki/testdata/name_constraints_unittest/name-us-california.pem", 
+    "src/pki/testdata/name_constraints_unittest/name-us.pem", 
+    "src/pki/testdata/name_constraints_unittest/othername-excluded.pem", 
+    "src/pki/testdata/name_constraints_unittest/othername-permitted.pem", 
+    "src/pki/testdata/name_constraints_unittest/registeredid-excluded.pem", 
+    "src/pki/testdata/name_constraints_unittest/registeredid-permitted.pem", 
+    "src/pki/testdata/name_constraints_unittest/rfc822name-excluded-empty.pem", 
+    "src/pki/testdata/name_constraints_unittest/rfc822name-excluded-hostname.pem", 
+    "src/pki/testdata/name_constraints_unittest/rfc822name-excluded-hostnamewithat.pem", 
+    "src/pki/testdata/name_constraints_unittest/rfc822name-excluded-ipv4.pem", 
+    "src/pki/testdata/name_constraints_unittest/rfc822name-excluded-quoted.pem", 
+    "src/pki/testdata/name_constraints_unittest/rfc822name-excluded-subdomains.pem", 
+    "src/pki/testdata/name_constraints_unittest/rfc822name-excluded.pem", 
+    "src/pki/testdata/name_constraints_unittest/rfc822name-permitted-empty.pem", 
+    "src/pki/testdata/name_constraints_unittest/rfc822name-permitted-hostname.pem", 
+    "src/pki/testdata/name_constraints_unittest/rfc822name-permitted-hostnamewithat.pem", 
+    "src/pki/testdata/name_constraints_unittest/rfc822name-permitted-ipv4.pem", 
+    "src/pki/testdata/name_constraints_unittest/rfc822name-permitted-quoted.pem", 
+    "src/pki/testdata/name_constraints_unittest/rfc822name-permitted-subdomains.pem", 
+    "src/pki/testdata/name_constraints_unittest/rfc822name-permitted.pem", 
+    "src/pki/testdata/name_constraints_unittest/san-directoryname.pem", 
+    "src/pki/testdata/name_constraints_unittest/san-dnsname.pem", 
+    "src/pki/testdata/name_constraints_unittest/san-edipartyname.pem", 
+    "src/pki/testdata/name_constraints_unittest/san-excluded-directoryname.pem", 
+    "src/pki/testdata/name_constraints_unittest/san-excluded-dnsname.pem", 
+    "src/pki/testdata/name_constraints_unittest/san-excluded-ipaddress.pem", 
+    "src/pki/testdata/name_constraints_unittest/san-invalid-empty.pem", 
+    "src/pki/testdata/name_constraints_unittest/san-invalid-ipaddress.pem", 
+    "src/pki/testdata/name_constraints_unittest/san-ipaddress4.pem", 
+    "src/pki/testdata/name_constraints_unittest/san-ipaddress6.pem", 
+    "src/pki/testdata/name_constraints_unittest/san-othername.pem", 
+    "src/pki/testdata/name_constraints_unittest/san-permitted.pem", 
+    "src/pki/testdata/name_constraints_unittest/san-registeredid.pem", 
+    "src/pki/testdata/name_constraints_unittest/san-rfc822name-domaincase.pem", 
+    "src/pki/testdata/name_constraints_unittest/san-rfc822name-empty-localpart.pem", 
+    "src/pki/testdata/name_constraints_unittest/san-rfc822name-empty.pem", 
+    "src/pki/testdata/name_constraints_unittest/san-rfc822name-ipv4.pem", 
+    "src/pki/testdata/name_constraints_unittest/san-rfc822name-localpartcase.pem", 
+    "src/pki/testdata/name_constraints_unittest/san-rfc822name-multiple.pem", 
+    "src/pki/testdata/name_constraints_unittest/san-rfc822name-no-at.pem", 
+    "src/pki/testdata/name_constraints_unittest/san-rfc822name-quoted.pem", 
+    "src/pki/testdata/name_constraints_unittest/san-rfc822name-subdomain-no-at.pem", 
+    "src/pki/testdata/name_constraints_unittest/san-rfc822name-subdomain-two-ats.pem", 
+    "src/pki/testdata/name_constraints_unittest/san-rfc822name-subdomain.pem", 
+    "src/pki/testdata/name_constraints_unittest/san-rfc822name-subdomaincase.pem", 
+    "src/pki/testdata/name_constraints_unittest/san-rfc822name-two-ats.pem", 
+    "src/pki/testdata/name_constraints_unittest/san-rfc822name.pem", 
+    "src/pki/testdata/name_constraints_unittest/san-uri.pem", 
+    "src/pki/testdata/name_constraints_unittest/san-x400address.pem", 
+    "src/pki/testdata/name_constraints_unittest/uri-excluded.pem", 
+    "src/pki/testdata/name_constraints_unittest/uri-permitted.pem", 
+    "src/pki/testdata/name_constraints_unittest/x400address-excluded.pem", 
+    "src/pki/testdata/name_constraints_unittest/x400address-permitted.pem", 
+    "src/pki/testdata/nist-pkits/certs/AllCertificatesNoPoliciesTest2EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/AllCertificatesSamePoliciesTest10EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/AllCertificatesSamePoliciesTest13EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/AllCertificatesanyPolicyTest11EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/AnyPolicyTest14EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/BadCRLIssuerNameCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/BadCRLSignatureCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/BadSignedCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/BadnotAfterDateCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/BadnotBeforeDateCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/BasicSelfIssuedCRLSigningKeyCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/BasicSelfIssuedCRLSigningKeyCRLCert.crt", 
+    "src/pki/testdata/nist-pkits/certs/BasicSelfIssuedNewKeyCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/BasicSelfIssuedNewKeyOldWithNewCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/BasicSelfIssuedOldKeyCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/BasicSelfIssuedOldKeyNewWithOldCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/CPSPointerQualifierTest20EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/DSACACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/DSAParametersInheritedCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/DifferentPoliciesTest12EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/DifferentPoliciesTest3EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/DifferentPoliciesTest4EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/DifferentPoliciesTest5EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/DifferentPoliciesTest7EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/DifferentPoliciesTest8EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/DifferentPoliciesTest9EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/GeneralizedTimeCRLnextUpdateCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/GoodCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/GoodsubCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/GoodsubCAPanyPolicyMapping1to2CACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidBadCRLIssuerNameTest5EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidBadCRLSignatureTest4EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidBasicSelfIssuedCRLSigningKeyTest7EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidBasicSelfIssuedCRLSigningKeyTest8EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidBasicSelfIssuedNewWithOldTest5EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidBasicSelfIssuedOldWithNewTest2EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidCASignatureTest2EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidCAnotAfterDateTest5EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidCAnotBeforeDateTest1EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidDNSnameConstraintsTest31EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidDNSnameConstraintsTest33EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidDNSnameConstraintsTest38EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidDNandRFC822nameConstraintsTest28EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidDNandRFC822nameConstraintsTest29EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidDNnameConstraintsTest10EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidDNnameConstraintsTest12EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidDNnameConstraintsTest13EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidDNnameConstraintsTest15EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidDNnameConstraintsTest16EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidDNnameConstraintsTest17EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidDNnameConstraintsTest20EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidDNnameConstraintsTest2EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidDNnameConstraintsTest3EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidDNnameConstraintsTest7EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidDNnameConstraintsTest8EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidDNnameConstraintsTest9EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidDSASignatureTest6EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidEESignatureTest3EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidEEnotAfterDateTest6EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidEEnotBeforeDateTest2EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidIDPwithindirectCRLTest23EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidIDPwithindirectCRLTest26EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidLongSerialNumberTest18EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidMappingFromanyPolicyTest7EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidMappingToanyPolicyTest8EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidMissingCRLTest1EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidMissingbasicConstraintsTest1EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidNameChainingOrderTest2EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidNameChainingTest1EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidNegativeSerialNumberTest15EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidOldCRLnextUpdateTest11EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidPolicyMappingTest10EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidPolicyMappingTest2EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidPolicyMappingTest4EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidRFC822nameConstraintsTest22EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidRFC822nameConstraintsTest24EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidRFC822nameConstraintsTest26EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidRevokedCATest2EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidRevokedEETest3EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidSelfIssuedinhibitAnyPolicyTest10EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidSelfIssuedinhibitAnyPolicyTest8EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidSelfIssuedinhibitPolicyMappingTest10EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidSelfIssuedinhibitPolicyMappingTest11EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidSelfIssuedinhibitPolicyMappingTest8EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidSelfIssuedinhibitPolicyMappingTest9EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidSelfIssuedpathLenConstraintTest16EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidSelfIssuedrequireExplicitPolicyTest7EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidSelfIssuedrequireExplicitPolicyTest8EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidSeparateCertificateandCRLKeysTest20EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidSeparateCertificateandCRLKeysTest21EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidURInameConstraintsTest35EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidURInameConstraintsTest37EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidUnknownCRLEntryExtensionTest8EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidUnknownCRLExtensionTest10EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidUnknownCRLExtensionTest9EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidUnknownCriticalCertificateExtensionTest2EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidWrongCRLTest6EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidcAFalseTest2EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidcAFalseTest3EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidcRLIssuerTest27EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidcRLIssuerTest31EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidcRLIssuerTest32EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidcRLIssuerTest34EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidcRLIssuerTest35EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvaliddeltaCRLIndicatorNoBaseTest1EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvaliddeltaCRLTest10EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvaliddeltaCRLTest3EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvaliddeltaCRLTest4EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvaliddeltaCRLTest6EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvaliddeltaCRLTest9EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvaliddistributionPointTest2EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvaliddistributionPointTest3EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvaliddistributionPointTest6EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvaliddistributionPointTest8EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvaliddistributionPointTest9EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidinhibitAnyPolicyTest1EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidinhibitAnyPolicyTest4EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidinhibitAnyPolicyTest5EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidinhibitAnyPolicyTest6EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidinhibitPolicyMappingTest1EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidinhibitPolicyMappingTest3EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidinhibitPolicyMappingTest5EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidinhibitPolicyMappingTest6EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidkeyUsageCriticalcRLSignFalseTest4EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidkeyUsageCriticalkeyCertSignFalseTest1EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidkeyUsageNotCriticalcRLSignFalseTest5EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidkeyUsageNotCriticalkeyCertSignFalseTest2EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidonlyContainsAttributeCertsTest14EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidonlyContainsCACertsTest12EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidonlyContainsUserCertsTest11EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidonlySomeReasonsTest15EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidonlySomeReasonsTest16EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidonlySomeReasonsTest17EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidonlySomeReasonsTest20EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidonlySomeReasonsTest21EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidpathLenConstraintTest10EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidpathLenConstraintTest11EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidpathLenConstraintTest12EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidpathLenConstraintTest5EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidpathLenConstraintTest6EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidpathLenConstraintTest9EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/Invalidpre2000CRLnextUpdateTest12EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/Invalidpre2000UTCEEnotAfterDateTest7EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidrequireExplicitPolicyTest3EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/InvalidrequireExplicitPolicyTest5EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/LongSerialNumberCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/Mapping1to2CACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/MappingFromanyPolicyCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/MappingToanyPolicyCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/MissingbasicConstraintsCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/NameOrderingCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/NegativeSerialNumberCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/NoCRLCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/NoPoliciesCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/NoissuingDistributionPointCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/OldCRLnextUpdateCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/OverlappingPoliciesTest6EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/P12Mapping1to3CACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/P12Mapping1to3subCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/P12Mapping1to3subsubCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/P1Mapping1to234CACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/P1Mapping1to234subCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/P1anyPolicyMapping1to2CACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/PanyPolicyMapping1to2CACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/PoliciesP1234CACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/PoliciesP1234subCAP123Cert.crt", 
+    "src/pki/testdata/nist-pkits/certs/PoliciesP1234subsubCAP123P12Cert.crt", 
+    "src/pki/testdata/nist-pkits/certs/PoliciesP123CACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/PoliciesP123subCAP12Cert.crt", 
+    "src/pki/testdata/nist-pkits/certs/PoliciesP123subsubCAP12P1Cert.crt", 
+    "src/pki/testdata/nist-pkits/certs/PoliciesP123subsubCAP12P2Cert.crt", 
+    "src/pki/testdata/nist-pkits/certs/PoliciesP123subsubsubCAP12P2P1Cert.crt", 
+    "src/pki/testdata/nist-pkits/certs/PoliciesP12CACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/PoliciesP12subCAP1Cert.crt", 
+    "src/pki/testdata/nist-pkits/certs/PoliciesP12subsubCAP1P2Cert.crt", 
+    "src/pki/testdata/nist-pkits/certs/PoliciesP2subCA2Cert.crt", 
+    "src/pki/testdata/nist-pkits/certs/PoliciesP2subCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/PoliciesP3CACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/RFC3280MandatoryAttributeTypesCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/RFC3280OptionalAttributeTypesCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/RevokedsubCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/RolloverfromPrintableStringtoUTF8StringCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/SeparateCertificateandCRLKeysCA2CRLSigningCert.crt", 
+    "src/pki/testdata/nist-pkits/certs/SeparateCertificateandCRLKeysCA2CertificateSigningCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/SeparateCertificateandCRLKeysCRLSigningCert.crt", 
+    "src/pki/testdata/nist-pkits/certs/SeparateCertificateandCRLKeysCertificateSigningCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/TrustAnchorRootCertificate.crt", 
+    "src/pki/testdata/nist-pkits/certs/TwoCRLsCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/UIDCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/UTF8StringCaseInsensitiveMatchCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/UTF8StringEncodedNamesCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/UnknownCRLEntryExtensionCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/UnknownCRLExtensionCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/UserNoticeQualifierTest15EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/UserNoticeQualifierTest16EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/UserNoticeQualifierTest17EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/UserNoticeQualifierTest18EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/UserNoticeQualifierTest19EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/ValidBasicSelfIssuedCRLSigningKeyTest6EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/ValidBasicSelfIssuedNewWithOldTest3EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/ValidBasicSelfIssuedNewWithOldTest4EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/ValidBasicSelfIssuedOldWithNewTest1EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/ValidCertificatePathTest1EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/ValidDNSnameConstraintsTest30EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/ValidDNSnameConstraintsTest32EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/ValidDNandRFC822nameConstraintsTest27EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/ValidDNnameConstraintsTest11EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/ValidDNnameConstraintsTest14EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/ValidDNnameConstraintsTest18EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/ValidDNnameConstraintsTest19EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/ValidDNnameConstraintsTest1EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/ValidDNnameConstraintsTest4EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/ValidDNnameConstraintsTest5EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/ValidDNnameConstraintsTest6EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/ValidDSAParameterInheritanceTest5EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/ValidDSASignaturesTest4EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/ValidGeneralizedTimeCRLnextUpdateTest13EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/ValidGeneralizedTimenotAfterDateTest8EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/ValidGeneralizedTimenotBeforeDateTest4EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/ValidIDPwithindirectCRLTest22EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/ValidIDPwithindirectCRLTest24EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/ValidIDPwithindirectCRLTest25EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/ValidLongSerialNumberTest16EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/ValidLongSerialNumberTest17EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/ValidNameChainingCapitalizationTest5EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/ValidNameChainingWhitespaceTest3EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/ValidNameChainingWhitespaceTest4EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/ValidNameUIDsTest6EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/ValidNegativeSerialNumberTest14EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/ValidNoissuingDistributionPointTest10EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/ValidPolicyMappingTest11EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/ValidPolicyMappingTest12EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/ValidPolicyMappingTest13EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/ValidPolicyMappingTest14EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/ValidPolicyMappingTest1EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/ValidPolicyMappingTest3EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/ValidPolicyMappingTest5EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/ValidPolicyMappingTest6EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/ValidPolicyMappingTest9EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/ValidRFC3280MandatoryAttributeTypesTest7EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/ValidRFC3280OptionalAttributeTypesTest8EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/ValidRFC822nameConstraintsTest21EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/ValidRFC822nameConstraintsTest23EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/ValidRFC822nameConstraintsTest25EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/ValidRolloverfromPrintableStringtoUTF8StringTest10EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/ValidSelfIssuedinhibitAnyPolicyTest7EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/ValidSelfIssuedinhibitAnyPolicyTest9EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/ValidSelfIssuedinhibitPolicyMappingTest7EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/ValidSelfIssuedpathLenConstraintTest15EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/ValidSelfIssuedpathLenConstraintTest17EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/ValidSelfIssuedrequireExplicitPolicyTest6EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/ValidSeparateCertificateandCRLKeysTest19EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/ValidTwoCRLsTest7EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/ValidURInameConstraintsTest34EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/ValidURInameConstraintsTest36EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/ValidUTF8StringCaseInsensitiveMatchTest11EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/ValidUTF8StringEncodedNamesTest9EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/ValidUnknownNotCriticalCertificateExtensionTest1EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/ValidbasicConstraintsNotCriticalTest4EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/ValidcRLIssuerTest28EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/ValidcRLIssuerTest29EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/ValidcRLIssuerTest30EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/ValidcRLIssuerTest33EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/ValiddeltaCRLTest2EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/ValiddeltaCRLTest5EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/ValiddeltaCRLTest7EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/ValiddeltaCRLTest8EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/ValiddistributionPointTest1EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/ValiddistributionPointTest4EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/ValiddistributionPointTest5EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/ValiddistributionPointTest7EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/ValidinhibitAnyPolicyTest2EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/ValidinhibitPolicyMappingTest2EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/ValidinhibitPolicyMappingTest4EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/ValidkeyUsageNotCriticalTest3EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/ValidonlyContainsCACertsTest13EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/ValidonlySomeReasonsTest18EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/ValidonlySomeReasonsTest19EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/ValidpathLenConstraintTest13EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/ValidpathLenConstraintTest14EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/ValidpathLenConstraintTest7EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/ValidpathLenConstraintTest8EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/Validpre2000UTCnotBeforeDateTest3EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/ValidrequireExplicitPolicyTest1EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/ValidrequireExplicitPolicyTest2EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/ValidrequireExplicitPolicyTest4EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/WrongCRLCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/anyPolicyCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/basicConstraintsCriticalcAFalseCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/basicConstraintsNotCriticalCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/basicConstraintsNotCriticalcAFalseCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/deltaCRLCA1Cert.crt", 
+    "src/pki/testdata/nist-pkits/certs/deltaCRLCA2Cert.crt", 
+    "src/pki/testdata/nist-pkits/certs/deltaCRLCA3Cert.crt", 
+    "src/pki/testdata/nist-pkits/certs/deltaCRLIndicatorNoBaseCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/distributionPoint1CACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/distributionPoint2CACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/indirectCRLCA1Cert.crt", 
+    "src/pki/testdata/nist-pkits/certs/indirectCRLCA2Cert.crt", 
+    "src/pki/testdata/nist-pkits/certs/indirectCRLCA3Cert.crt", 
+    "src/pki/testdata/nist-pkits/certs/indirectCRLCA3cRLIssuerCert.crt", 
+    "src/pki/testdata/nist-pkits/certs/indirectCRLCA4Cert.crt", 
+    "src/pki/testdata/nist-pkits/certs/indirectCRLCA4cRLIssuerCert.crt", 
+    "src/pki/testdata/nist-pkits/certs/indirectCRLCA5Cert.crt", 
+    "src/pki/testdata/nist-pkits/certs/indirectCRLCA6Cert.crt", 
+    "src/pki/testdata/nist-pkits/certs/inhibitAnyPolicy0CACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/inhibitAnyPolicy1CACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/inhibitAnyPolicy1SelfIssuedCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/inhibitAnyPolicy1SelfIssuedsubCA2Cert.crt", 
+    "src/pki/testdata/nist-pkits/certs/inhibitAnyPolicy1subCA1Cert.crt", 
+    "src/pki/testdata/nist-pkits/certs/inhibitAnyPolicy1subCA2Cert.crt", 
+    "src/pki/testdata/nist-pkits/certs/inhibitAnyPolicy1subCAIAP5Cert.crt", 
+    "src/pki/testdata/nist-pkits/certs/inhibitAnyPolicy1subsubCA2Cert.crt", 
+    "src/pki/testdata/nist-pkits/certs/inhibitAnyPolicy5CACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/inhibitAnyPolicy5subCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/inhibitAnyPolicy5subsubCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/inhibitAnyPolicyTest3EE.crt", 
+    "src/pki/testdata/nist-pkits/certs/inhibitPolicyMapping0CACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/inhibitPolicyMapping0subCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/inhibitPolicyMapping1P12CACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/inhibitPolicyMapping1P12subCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/inhibitPolicyMapping1P12subCAIPM5Cert.crt", 
+    "src/pki/testdata/nist-pkits/certs/inhibitPolicyMapping1P12subsubCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/inhibitPolicyMapping1P12subsubCAIPM5Cert.crt", 
+    "src/pki/testdata/nist-pkits/certs/inhibitPolicyMapping1P1CACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/inhibitPolicyMapping1P1SelfIssuedCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/inhibitPolicyMapping1P1SelfIssuedsubCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/inhibitPolicyMapping1P1subCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/inhibitPolicyMapping1P1subsubCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/inhibitPolicyMapping5CACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/inhibitPolicyMapping5subCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/inhibitPolicyMapping5subsubCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/inhibitPolicyMapping5subsubsubCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/keyUsageCriticalcRLSignFalseCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/keyUsageCriticalkeyCertSignFalseCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/keyUsageNotCriticalCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/keyUsageNotCriticalcRLSignFalseCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/keyUsageNotCriticalkeyCertSignFalseCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/nameConstraintsDN1CACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/nameConstraintsDN1SelfIssuedCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/nameConstraintsDN1subCA1Cert.crt", 
+    "src/pki/testdata/nist-pkits/certs/nameConstraintsDN1subCA2Cert.crt", 
+    "src/pki/testdata/nist-pkits/certs/nameConstraintsDN1subCA3Cert.crt", 
+    "src/pki/testdata/nist-pkits/certs/nameConstraintsDN2CACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/nameConstraintsDN3CACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/nameConstraintsDN3subCA1Cert.crt", 
+    "src/pki/testdata/nist-pkits/certs/nameConstraintsDN3subCA2Cert.crt", 
+    "src/pki/testdata/nist-pkits/certs/nameConstraintsDN4CACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/nameConstraintsDN5CACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/nameConstraintsDNS1CACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/nameConstraintsDNS2CACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/nameConstraintsRFC822CA1Cert.crt", 
+    "src/pki/testdata/nist-pkits/certs/nameConstraintsRFC822CA2Cert.crt", 
+    "src/pki/testdata/nist-pkits/certs/nameConstraintsRFC822CA3Cert.crt", 
+    "src/pki/testdata/nist-pkits/certs/nameConstraintsURI1CACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/nameConstraintsURI2CACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/onlyContainsAttributeCertsCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/onlyContainsCACertsCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/onlyContainsUserCertsCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/onlySomeReasonsCA1Cert.crt", 
+    "src/pki/testdata/nist-pkits/certs/onlySomeReasonsCA2Cert.crt", 
+    "src/pki/testdata/nist-pkits/certs/onlySomeReasonsCA3Cert.crt", 
+    "src/pki/testdata/nist-pkits/certs/onlySomeReasonsCA4Cert.crt", 
+    "src/pki/testdata/nist-pkits/certs/pathLenConstraint0CACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/pathLenConstraint0SelfIssuedCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/pathLenConstraint0subCA2Cert.crt", 
+    "src/pki/testdata/nist-pkits/certs/pathLenConstraint0subCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/pathLenConstraint1CACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/pathLenConstraint1SelfIssuedCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/pathLenConstraint1SelfIssuedsubCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/pathLenConstraint1subCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/pathLenConstraint6CACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/pathLenConstraint6subCA0Cert.crt", 
+    "src/pki/testdata/nist-pkits/certs/pathLenConstraint6subCA1Cert.crt", 
+    "src/pki/testdata/nist-pkits/certs/pathLenConstraint6subCA4Cert.crt", 
+    "src/pki/testdata/nist-pkits/certs/pathLenConstraint6subsubCA00Cert.crt", 
+    "src/pki/testdata/nist-pkits/certs/pathLenConstraint6subsubCA11Cert.crt", 
+    "src/pki/testdata/nist-pkits/certs/pathLenConstraint6subsubCA41Cert.crt", 
+    "src/pki/testdata/nist-pkits/certs/pathLenConstraint6subsubsubCA11XCert.crt", 
+    "src/pki/testdata/nist-pkits/certs/pathLenConstraint6subsubsubCA41XCert.crt", 
+    "src/pki/testdata/nist-pkits/certs/pre2000CRLnextUpdateCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/requireExplicitPolicy0CACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/requireExplicitPolicy0subCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/requireExplicitPolicy0subsubCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/requireExplicitPolicy0subsubsubCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/requireExplicitPolicy10CACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/requireExplicitPolicy10subCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/requireExplicitPolicy10subsubCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/requireExplicitPolicy10subsubsubCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/requireExplicitPolicy2CACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/requireExplicitPolicy2SelfIssuedCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/requireExplicitPolicy2SelfIssuedsubCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/requireExplicitPolicy2subCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/requireExplicitPolicy4CACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/requireExplicitPolicy4subCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/requireExplicitPolicy4subsubCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/requireExplicitPolicy4subsubsubCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/requireExplicitPolicy5CACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/requireExplicitPolicy5subCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/requireExplicitPolicy5subsubCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/requireExplicitPolicy5subsubsubCACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/requireExplicitPolicy7CACert.crt", 
+    "src/pki/testdata/nist-pkits/certs/requireExplicitPolicy7subCARE2Cert.crt", 
+    "src/pki/testdata/nist-pkits/certs/requireExplicitPolicy7subsubCARE2RE4Cert.crt", 
+    "src/pki/testdata/nist-pkits/certs/requireExplicitPolicy7subsubsubCARE2RE4Cert.crt", 
+    "src/pki/testdata/nist-pkits/crls/BadCRLIssuerNameCACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/BadCRLSignatureCACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/BadSignedCACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/BadnotAfterDateCACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/BadnotBeforeDateCACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/BasicSelfIssuedCRLSigningKeyCACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/BasicSelfIssuedCRLSigningKeyCRLCertCRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/BasicSelfIssuedNewKeyCACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/BasicSelfIssuedOldKeyCACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/BasicSelfIssuedOldKeySelfIssuedCertCRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/DSACACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/DSAParametersInheritedCACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/GeneralizedTimeCRLnextUpdateCACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/GoodCACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/GoodsubCACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/GoodsubCAPanyPolicyMapping1to2CACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/LongSerialNumberCACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/Mapping1to2CACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/MappingFromanyPolicyCACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/MappingToanyPolicyCACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/MissingbasicConstraintsCACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/NameOrderCACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/NegativeSerialNumberCACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/NoPoliciesCACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/NoissuingDistributionPointCACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/OldCRLnextUpdateCACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/P12Mapping1to3CACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/P12Mapping1to3subCACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/P12Mapping1to3subsubCACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/P1Mapping1to234CACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/P1Mapping1to234subCACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/P1anyPolicyMapping1to2CACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/PanyPolicyMapping1to2CACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/PoliciesP1234CACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/PoliciesP1234subCAP123CRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/PoliciesP1234subsubCAP123P12CRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/PoliciesP123CACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/PoliciesP123subCAP12CRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/PoliciesP123subsubCAP12P1CRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/PoliciesP123subsubCAP2P2CRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/PoliciesP123subsubsubCAP12P2P1CRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/PoliciesP12CACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/PoliciesP12subCAP1CRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/PoliciesP12subsubCAP1P2CRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/PoliciesP2subCA2CRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/PoliciesP2subCACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/PoliciesP3CACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/RFC3280MandatoryAttributeTypesCACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/RFC3280OptionalAttributeTypesCACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/RevokedsubCACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/RolloverfromPrintableStringtoUTF8StringCACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/SeparateCertificateandCRLKeysCA2CRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/SeparateCertificateandCRLKeysCRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/TrustAnchorRootCRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/TwoCRLsCABadCRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/TwoCRLsCAGoodCRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/UIDCACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/UTF8StringCaseInsensitiveMatchCACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/UTF8StringEncodedNamesCACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/UnknownCRLEntryExtensionCACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/UnknownCRLExtensionCACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/WrongCRLCACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/anyPolicyCACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/basicConstraintsCriticalcAFalseCACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/basicConstraintsNotCriticalCACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/basicConstraintsNotCriticalcAFalseCACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/deltaCRLCA1CRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/deltaCRLCA1deltaCRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/deltaCRLCA2CRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/deltaCRLCA2deltaCRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/deltaCRLCA3CRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/deltaCRLCA3deltaCRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/deltaCRLIndicatorNoBaseCACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/distributionPoint1CACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/distributionPoint2CACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/indirectCRLCA1CRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/indirectCRLCA3CRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/indirectCRLCA3cRLIssuerCRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/indirectCRLCA4cRLIssuerCRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/indirectCRLCA5CRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/inhibitAnyPolicy0CACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/inhibitAnyPolicy1CACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/inhibitAnyPolicy1subCA1CRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/inhibitAnyPolicy1subCA2CRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/inhibitAnyPolicy1subCAIAP5CRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/inhibitAnyPolicy1subsubCA2CRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/inhibitAnyPolicy5CACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/inhibitAnyPolicy5subCACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/inhibitAnyPolicy5subsubCACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/inhibitPolicyMapping0CACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/inhibitPolicyMapping0subCACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/inhibitPolicyMapping1P12CACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/inhibitPolicyMapping1P12subCACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/inhibitPolicyMapping1P12subCAIPM5CRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/inhibitPolicyMapping1P12subsubCACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/inhibitPolicyMapping1P12subsubCAIPM5CRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/inhibitPolicyMapping1P1CACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/inhibitPolicyMapping1P1subCACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/inhibitPolicyMapping1P1subsubCACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/inhibitPolicyMapping5CACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/inhibitPolicyMapping5subCACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/inhibitPolicyMapping5subsubCACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/inhibitPolicyMapping5subsubsubCACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/keyUsageCriticalcRLSignFalseCACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/keyUsageCriticalkeyCertSignFalseCACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/keyUsageNotCriticalCACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/keyUsageNotCriticalcRLSignFalseCACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/keyUsageNotCriticalkeyCertSignFalseCACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/nameConstraintsDN1CACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/nameConstraintsDN1subCA1CRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/nameConstraintsDN1subCA2CRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/nameConstraintsDN1subCA3CRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/nameConstraintsDN2CACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/nameConstraintsDN3CACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/nameConstraintsDN3subCA1CRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/nameConstraintsDN3subCA2CRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/nameConstraintsDN4CACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/nameConstraintsDN5CACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/nameConstraintsDNS1CACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/nameConstraintsDNS2CACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/nameConstraintsRFC822CA1CRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/nameConstraintsRFC822CA2CRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/nameConstraintsRFC822CA3CRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/nameConstraintsURI1CACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/nameConstraintsURI2CACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/onlyContainsAttributeCertsCACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/onlyContainsCACertsCACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/onlyContainsUserCertsCACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/onlySomeReasonsCA1compromiseCRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/onlySomeReasonsCA1otherreasonsCRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/onlySomeReasonsCA2CRL1.crl", 
+    "src/pki/testdata/nist-pkits/crls/onlySomeReasonsCA2CRL2.crl", 
+    "src/pki/testdata/nist-pkits/crls/onlySomeReasonsCA3compromiseCRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/onlySomeReasonsCA3otherreasonsCRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/onlySomeReasonsCA4compromiseCRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/onlySomeReasonsCA4otherreasonsCRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/pathLenConstraint0CACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/pathLenConstraint0subCA2CRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/pathLenConstraint0subCACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/pathLenConstraint1CACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/pathLenConstraint1subCACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/pathLenConstraint6CACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/pathLenConstraint6subCA0CRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/pathLenConstraint6subCA1CRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/pathLenConstraint6subCA4CRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/pathLenConstraint6subsubCA00CRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/pathLenConstraint6subsubCA11CRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/pathLenConstraint6subsubCA41CRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/pathLenConstraint6subsubsubCA11XCRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/pathLenConstraint6subsubsubCA41XCRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/pre2000CRLnextUpdateCACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/requireExplicitPolicy0CACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/requireExplicitPolicy0subCACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/requireExplicitPolicy0subsubCACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/requireExplicitPolicy0subsubsubCACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/requireExplicitPolicy10CACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/requireExplicitPolicy10subCACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/requireExplicitPolicy10subsubCACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/requireExplicitPolicy10subsubsubCACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/requireExplicitPolicy2CACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/requireExplicitPolicy2subCACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/requireExplicitPolicy4CACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/requireExplicitPolicy4subCACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/requireExplicitPolicy4subsubCACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/requireExplicitPolicy4subsubsubCACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/requireExplicitPolicy5CACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/requireExplicitPolicy5subCACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/requireExplicitPolicy5subsubCACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/requireExplicitPolicy5subsubsubCACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/requireExplicitPolicy7CACRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/requireExplicitPolicy7subCARE2CRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/requireExplicitPolicy7subsubCARE2RE4CRL.crl", 
+    "src/pki/testdata/nist-pkits/crls/requireExplicitPolicy7subsubsubCARE2RE4CRL.crl", 
+    "src/pki/testdata/ocsp_unittest/bad_ocsp_type.pem", 
+    "src/pki/testdata/ocsp_unittest/bad_signature.pem", 
+    "src/pki/testdata/ocsp_unittest/bad_status.pem", 
+    "src/pki/testdata/ocsp_unittest/good_response.pem", 
+    "src/pki/testdata/ocsp_unittest/good_response_next_update.pem", 
+    "src/pki/testdata/ocsp_unittest/good_response_sha256.pem", 
+    "src/pki/testdata/ocsp_unittest/has_critical_ct_extension.pem", 
+    "src/pki/testdata/ocsp_unittest/has_critical_response_extension.pem", 
+    "src/pki/testdata/ocsp_unittest/has_critical_single_extension.pem", 
+    "src/pki/testdata/ocsp_unittest/has_extension.pem", 
+    "src/pki/testdata/ocsp_unittest/has_single_extension.pem", 
+    "src/pki/testdata/ocsp_unittest/has_version.pem", 
+    "src/pki/testdata/ocsp_unittest/malformed_request.pem", 
+    "src/pki/testdata/ocsp_unittest/missing_response.pem", 
+    "src/pki/testdata/ocsp_unittest/multiple_response.pem", 
+    "src/pki/testdata/ocsp_unittest/no_response.pem", 
+    "src/pki/testdata/ocsp_unittest/ocsp_extra_certs.pem", 
+    "src/pki/testdata/ocsp_unittest/ocsp_sign_bad_indirect.pem", 
+    "src/pki/testdata/ocsp_unittest/ocsp_sign_direct.pem", 
+    "src/pki/testdata/ocsp_unittest/ocsp_sign_indirect.pem", 
+    "src/pki/testdata/ocsp_unittest/ocsp_sign_indirect_missing.pem", 
+    "src/pki/testdata/ocsp_unittest/other_response.pem", 
+    "src/pki/testdata/ocsp_unittest/responder_id.pem", 
+    "src/pki/testdata/ocsp_unittest/responder_name.pem", 
+    "src/pki/testdata/ocsp_unittest/revoke_response.pem", 
+    "src/pki/testdata/ocsp_unittest/revoke_response_reason.pem", 
+    "src/pki/testdata/ocsp_unittest/unknown_response.pem", 
+    "src/pki/testdata/parse_certificate_unittest/authority_key_identifier/empty_sequence.pem", 
+    "src/pki/testdata/parse_certificate_unittest/authority_key_identifier/extra_contents_after_extension_sequence.pem", 
+    "src/pki/testdata/parse_certificate_unittest/authority_key_identifier/extra_contents_after_issuer_and_serial.pem", 
+    "src/pki/testdata/parse_certificate_unittest/authority_key_identifier/invalid_contents.pem", 
+    "src/pki/testdata/parse_certificate_unittest/authority_key_identifier/invalid_issuer.pem", 
+    "src/pki/testdata/parse_certificate_unittest/authority_key_identifier/invalid_key_identifier.pem", 
+    "src/pki/testdata/parse_certificate_unittest/authority_key_identifier/invalid_serial.pem", 
+    "src/pki/testdata/parse_certificate_unittest/authority_key_identifier/issuer_and_serial.pem", 
+    "src/pki/testdata/parse_certificate_unittest/authority_key_identifier/issuer_only.pem", 
+    "src/pki/testdata/parse_certificate_unittest/authority_key_identifier/key_identifier.pem", 
+    "src/pki/testdata/parse_certificate_unittest/authority_key_identifier/key_identifier_and_issuer_and_serial.pem", 
+    "src/pki/testdata/parse_certificate_unittest/authority_key_identifier/serial_only.pem", 
+    "src/pki/testdata/parse_certificate_unittest/authority_key_identifier/url_issuer_and_serial.pem", 
+    "src/pki/testdata/parse_certificate_unittest/authority_key_identifier_not_sequence.pem", 
+    "src/pki/testdata/parse_certificate_unittest/bad_key_usage.pem", 
+    "src/pki/testdata/parse_certificate_unittest/bad_policy_qualifiers.pem", 
+    "src/pki/testdata/parse_certificate_unittest/bad_signature_algorithm_oid.pem", 
+    "src/pki/testdata/parse_certificate_unittest/bad_validity.pem", 
+    "src/pki/testdata/parse_certificate_unittest/basic_constraints_ca_false.pem", 
+    "src/pki/testdata/parse_certificate_unittest/basic_constraints_ca_no_path.pem", 
+    "src/pki/testdata/parse_certificate_unittest/basic_constraints_ca_path_9.pem", 
+    "src/pki/testdata/parse_certificate_unittest/basic_constraints_negative_path.pem", 
+    "src/pki/testdata/parse_certificate_unittest/basic_constraints_not_ca.pem", 
+    "src/pki/testdata/parse_certificate_unittest/basic_constraints_path_too_large.pem", 
+    "src/pki/testdata/parse_certificate_unittest/basic_constraints_pathlen_255.pem", 
+    "src/pki/testdata/parse_certificate_unittest/basic_constraints_pathlen_256.pem", 
+    "src/pki/testdata/parse_certificate_unittest/basic_constraints_pathlen_not_ca.pem", 
+    "src/pki/testdata/parse_certificate_unittest/basic_constraints_unconsumed_data.pem", 
+    "src/pki/testdata/parse_certificate_unittest/cert_algorithm_not_sequence.pem", 
+    "src/pki/testdata/parse_certificate_unittest/cert_data_after_signature.pem", 
+    "src/pki/testdata/parse_certificate_unittest/cert_empty_sequence.pem", 
+    "src/pki/testdata/parse_certificate_unittest/cert_missing_signature.pem", 
+    "src/pki/testdata/parse_certificate_unittest/cert_not_sequence.pem", 
+    "src/pki/testdata/parse_certificate_unittest/cert_signature_not_bit_string.pem", 
+    "src/pki/testdata/parse_certificate_unittest/cert_skeleton.pem", 
+    "src/pki/testdata/parse_certificate_unittest/cert_version3.pem", 
+    "src/pki/testdata/parse_certificate_unittest/crldp_1uri_noissuer.pem", 
+    "src/pki/testdata/parse_certificate_unittest/crldp_3uri_noissuer.pem", 
+    "src/pki/testdata/parse_certificate_unittest/crldp_full_name_as_dirname.pem", 
+    "src/pki/testdata/parse_certificate_unittest/crldp_issuer_as_dirname.pem", 
+    "src/pki/testdata/parse_certificate_unittest/extended_key_usage.pem", 
+    "src/pki/testdata/parse_certificate_unittest/extension_critical.pem", 
+    "src/pki/testdata/parse_certificate_unittest/extension_critical_0.pem", 
+    "src/pki/testdata/parse_certificate_unittest/extension_critical_3.pem", 
+    "src/pki/testdata/parse_certificate_unittest/extension_not_critical.pem", 
+    "src/pki/testdata/parse_certificate_unittest/extensions_data_after_sequence.pem", 
+    "src/pki/testdata/parse_certificate_unittest/extensions_duplicate_key_usage.pem", 
+    "src/pki/testdata/parse_certificate_unittest/extensions_empty_sequence.pem", 
+    "src/pki/testdata/parse_certificate_unittest/extensions_not_sequence.pem", 
+    "src/pki/testdata/parse_certificate_unittest/extensions_real.pem", 
+    "src/pki/testdata/parse_certificate_unittest/failed_signature_algorithm.pem", 
+    "src/pki/testdata/parse_certificate_unittest/inhibit_any_policy.pem", 
+    "src/pki/testdata/parse_certificate_unittest/issuer_bad_printable_string.pem", 
+    "src/pki/testdata/parse_certificate_unittest/key_usage.pem", 
+    "src/pki/testdata/parse_certificate_unittest/name_constraints_bad_ip.pem", 
+    "src/pki/testdata/parse_certificate_unittest/policies.pem", 
+    "src/pki/testdata/parse_certificate_unittest/policy_constraints_empty.pem", 
+    "src/pki/testdata/parse_certificate_unittest/policy_constraints_inhibit.pem", 
+    "src/pki/testdata/parse_certificate_unittest/policy_constraints_inhibit_require.pem", 
+    "src/pki/testdata/parse_certificate_unittest/policy_constraints_require.pem", 
+    "src/pki/testdata/parse_certificate_unittest/policy_qualifiers_empty_sequence.pem", 
+    "src/pki/testdata/parse_certificate_unittest/serial_37_bytes.pem", 
+    "src/pki/testdata/parse_certificate_unittest/serial_negative.pem", 
+    "src/pki/testdata/parse_certificate_unittest/serial_not_minimal.pem", 
+    "src/pki/testdata/parse_certificate_unittest/serial_not_number.pem", 
+    "src/pki/testdata/parse_certificate_unittest/serial_zero.pem", 
+    "src/pki/testdata/parse_certificate_unittest/serial_zero_padded.pem", 
+    "src/pki/testdata/parse_certificate_unittest/serial_zero_padded_21_bytes.pem", 
+    "src/pki/testdata/parse_certificate_unittest/signature_algorithm_null.pem", 
+    "src/pki/testdata/parse_certificate_unittest/subject_alt_name.pem", 
+    "src/pki/testdata/parse_certificate_unittest/subject_blank_subjectaltname_not_critical.pem", 
+    "src/pki/testdata/parse_certificate_unittest/subject_key_identifier_not_octet_string.pem", 
+    "src/pki/testdata/parse_certificate_unittest/subject_not_ascii.pem", 
+    "src/pki/testdata/parse_certificate_unittest/subject_not_printable_string.pem", 
+    "src/pki/testdata/parse_certificate_unittest/subject_printable_string_containing_utf8_client_cert.pem", 
+    "src/pki/testdata/parse_certificate_unittest/subject_t61string.pem", 
+    "src/pki/testdata/parse_certificate_unittest/subject_t61string_1-32.pem", 
+    "src/pki/testdata/parse_certificate_unittest/subject_t61string_126-160.pem", 
+    "src/pki/testdata/parse_certificate_unittest/subject_t61string_actual.pem", 
+    "src/pki/testdata/parse_certificate_unittest/subjectaltname_bad_ip.pem", 
+    "src/pki/testdata/parse_certificate_unittest/subjectaltname_dns_not_ascii.pem", 
+    "src/pki/testdata/parse_certificate_unittest/subjectaltname_general_names_empty_sequence.pem", 
+    "src/pki/testdata/parse_certificate_unittest/subjectaltname_trailing_data.pem", 
+    "src/pki/testdata/parse_certificate_unittest/tbs_explicit_v1.pem", 
+    "src/pki/testdata/parse_certificate_unittest/tbs_v1.pem", 
+    "src/pki/testdata/parse_certificate_unittest/tbs_v1_extensions.pem", 
+    "src/pki/testdata/parse_certificate_unittest/tbs_v2_extensions.pem", 
+    "src/pki/testdata/parse_certificate_unittest/tbs_v2_issuer_and_subject_unique_id.pem", 
+    "src/pki/testdata/parse_certificate_unittest/tbs_v2_issuer_unique_id.pem", 
+    "src/pki/testdata/parse_certificate_unittest/tbs_v2_no_optionals.pem", 
+    "src/pki/testdata/parse_certificate_unittest/tbs_v3_all_optionals.pem", 
+    "src/pki/testdata/parse_certificate_unittest/tbs_v3_data_after_extensions.pem", 
+    "src/pki/testdata/parse_certificate_unittest/tbs_v3_extensions.pem", 
+    "src/pki/testdata/parse_certificate_unittest/tbs_v3_extensions_not_sequence.pem", 
+    "src/pki/testdata/parse_certificate_unittest/tbs_v3_no_optionals.pem", 
+    "src/pki/testdata/parse_certificate_unittest/tbs_v3_real.pem", 
+    "src/pki/testdata/parse_certificate_unittest/tbs_v4.pem", 
+    "src/pki/testdata/parse_certificate_unittest/tbs_validity_both_generalized_time.pem", 
+    "src/pki/testdata/parse_certificate_unittest/tbs_validity_both_utc_time.pem", 
+    "src/pki/testdata/parse_certificate_unittest/tbs_validity_generalized_time_and_utc_time.pem", 
+    "src/pki/testdata/parse_certificate_unittest/tbs_validity_relaxed.pem", 
+    "src/pki/testdata/parse_certificate_unittest/tbs_validity_utc_time_and_generalized_time.pem", 
+    "src/pki/testdata/parse_certificate_unittest/v1_explicit_version.pem", 
+    "src/pki/testdata/path_builder_unittest/key_id_name_and_serial_prioritization/int_match_name_only.pem", 
+    "src/pki/testdata/path_builder_unittest/key_id_name_and_serial_prioritization/int_matching.pem", 
+    "src/pki/testdata/path_builder_unittest/key_id_name_and_serial_prioritization/int_mismatch.pem", 
+    "src/pki/testdata/path_builder_unittest/key_id_name_and_serial_prioritization/root.pem", 
+    "src/pki/testdata/path_builder_unittest/key_id_name_and_serial_prioritization/root2.pem", 
+    "src/pki/testdata/path_builder_unittest/key_id_name_and_serial_prioritization/target.pem", 
+    "src/pki/testdata/path_builder_unittest/key_id_prioritization/int_different_ski_a.pem", 
+    "src/pki/testdata/path_builder_unittest/key_id_prioritization/int_different_ski_b.pem", 
+    "src/pki/testdata/path_builder_unittest/key_id_prioritization/int_different_ski_c.pem", 
+    "src/pki/testdata/path_builder_unittest/key_id_prioritization/int_matching_ski_a.pem", 
+    "src/pki/testdata/path_builder_unittest/key_id_prioritization/int_matching_ski_b.pem", 
+    "src/pki/testdata/path_builder_unittest/key_id_prioritization/int_matching_ski_c.pem", 
+    "src/pki/testdata/path_builder_unittest/key_id_prioritization/int_no_ski_a.pem", 
+    "src/pki/testdata/path_builder_unittest/key_id_prioritization/int_no_ski_b.pem", 
+    "src/pki/testdata/path_builder_unittest/key_id_prioritization/int_no_ski_c.pem", 
+    "src/pki/testdata/path_builder_unittest/key_id_prioritization/root.pem", 
+    "src/pki/testdata/path_builder_unittest/key_id_prioritization/target.pem", 
+    "src/pki/testdata/path_builder_unittest/multi-root-A-by-B.pem", 
+    "src/pki/testdata/path_builder_unittest/multi-root-B-by-C.pem", 
+    "src/pki/testdata/path_builder_unittest/multi-root-B-by-F.pem", 
+    "src/pki/testdata/path_builder_unittest/multi-root-C-by-D.pem", 
+    "src/pki/testdata/path_builder_unittest/multi-root-C-by-E.pem", 
+    "src/pki/testdata/path_builder_unittest/multi-root-D-by-D.pem", 
+    "src/pki/testdata/path_builder_unittest/multi-root-E-by-E.pem", 
+    "src/pki/testdata/path_builder_unittest/multi-root-F-by-E.pem", 
+    "src/pki/testdata/path_builder_unittest/precertificate/precertificate.pem", 
+    "src/pki/testdata/path_builder_unittest/precertificate/root.pem", 
+    "src/pki/testdata/path_builder_unittest/self_issued_prioritization/root1.pem", 
+    "src/pki/testdata/path_builder_unittest/self_issued_prioritization/root1_cross.pem", 
+    "src/pki/testdata/path_builder_unittest/self_issued_prioritization/root2.pem", 
+    "src/pki/testdata/path_builder_unittest/self_issued_prioritization/target.pem", 
+    "src/pki/testdata/path_builder_unittest/validity_date_prioritization/int_ac.pem", 
+    "src/pki/testdata/path_builder_unittest/validity_date_prioritization/int_ad.pem", 
+    "src/pki/testdata/path_builder_unittest/validity_date_prioritization/int_bc.pem", 
+    "src/pki/testdata/path_builder_unittest/validity_date_prioritization/int_bd.pem", 
+    "src/pki/testdata/path_builder_unittest/validity_date_prioritization/root.pem", 
+    "src/pki/testdata/path_builder_unittest/validity_date_prioritization/target.pem", 
+    "src/pki/testdata/verify_certificate_chain_unittest/basic-constraints-pathlen-0-self-issued/chain.pem", 
+    "src/pki/testdata/verify_certificate_chain_unittest/basic-constraints-pathlen-0-self-issued/main.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/expired-intermediate/chain.pem", 
+    "src/pki/testdata/verify_certificate_chain_unittest/expired-intermediate/not-after.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/expired-intermediate/not-before.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/expired-root/chain.pem", 
+    "src/pki/testdata/verify_certificate_chain_unittest/expired-root/not-after-ta-with-constraints.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/expired-root/not-after-ta-with-expiration-and-constraints.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/expired-root/not-after-ta-with-expiration.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/expired-root/not-after.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/expired-root/not-before-ta-with-expiration.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/expired-root/not-before.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/expired-target/chain.pem", 
+    "src/pki/testdata/verify_certificate_chain_unittest/expired-target/not-after.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/expired-target/not-before.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/incorrect-trust-anchor/chain.pem", 
+    "src/pki/testdata/verify_certificate_chain_unittest/incorrect-trust-anchor/main.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-and-target-wrong-signature/chain.pem", 
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-and-target-wrong-signature/main.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-basic-constraints-ca-false/chain.pem", 
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-basic-constraints-ca-false/main.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-basic-constraints-not-critical/chain.pem", 
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-basic-constraints-not-critical/main.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-eku-any-and-clientauth/any.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-eku-any-and-clientauth/chain.pem", 
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-eku-any-and-clientauth/clientauth-strict-leaf.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-eku-any-and-clientauth/clientauth-strict.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-eku-any-and-clientauth/clientauth.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-eku-any-and-clientauth/serverauth-strict-leaf.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-eku-any-and-clientauth/serverauth-strict.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-eku-any-and-clientauth/serverauth.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-eku-clientauth/any.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-eku-clientauth/chain.pem", 
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-eku-clientauth/clientauth-strict-leaf.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-eku-clientauth/clientauth-strict.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-eku-clientauth/clientauth.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-eku-clientauth/serverauth-strict-leaf.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-eku-clientauth/serverauth-strict.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-eku-clientauth/serverauth.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-eku-server-gated-crypto/sha1-chain.pem", 
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-eku-server-gated-crypto/sha1-eku-any.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-eku-server-gated-crypto/sha1-eku-clientAuth-strict.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-eku-server-gated-crypto/sha1-eku-clientAuth.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-eku-server-gated-crypto/sha1-eku-serverAuth-strict.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-eku-server-gated-crypto/sha1-eku-serverAuth.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-eku-server-gated-crypto/sha256-chain.pem", 
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-eku-server-gated-crypto/sha256-eku-any.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-eku-server-gated-crypto/sha256-eku-clientAuth-strict.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-eku-server-gated-crypto/sha256-eku-clientAuth.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-eku-server-gated-crypto/sha256-eku-serverAuth-strict.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-eku-server-gated-crypto/sha256-eku-serverAuth.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-invalid-spki/chain.pem", 
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-invalid-spki/main.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-lacks-basic-constraints/chain.pem", 
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-lacks-basic-constraints/main.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-lacks-signing-key-usage/chain.pem", 
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-lacks-signing-key-usage/main.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-signed-with-sha1/chain.pem", 
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-signed-with-sha1/main.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-unknown-critical-extension/chain.pem", 
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-unknown-critical-extension/main.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-unknown-non-critical-extension/chain.pem", 
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-unknown-non-critical-extension/main.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-wrong-signature-no-authority-key-identifier/chain.pem", 
+    "src/pki/testdata/verify_certificate_chain_unittest/intermediate-wrong-signature-no-authority-key-identifier/main.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/issuer-and-subject-not-byte-for-byte-equal/anchor.pem", 
+    "src/pki/testdata/verify_certificate_chain_unittest/issuer-and-subject-not-byte-for-byte-equal/anchor.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/issuer-and-subject-not-byte-for-byte-equal/target.pem", 
+    "src/pki/testdata/verify_certificate_chain_unittest/issuer-and-subject-not-byte-for-byte-equal/target.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/key-rollover/longrolloverchain.pem", 
+    "src/pki/testdata/verify_certificate_chain_unittest/key-rollover/longrolloverchain.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/key-rollover/newchain.pem", 
+    "src/pki/testdata/verify_certificate_chain_unittest/key-rollover/newchain.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/key-rollover/oldchain.pem", 
+    "src/pki/testdata/verify_certificate_chain_unittest/key-rollover/oldchain.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/key-rollover/rolloverchain.pem", 
+    "src/pki/testdata/verify_certificate_chain_unittest/key-rollover/rolloverchain.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/many-names/ok-all-types.pem", 
+    "src/pki/testdata/verify_certificate_chain_unittest/many-names/ok-all-types.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/many-names/toomany-all-types.pem", 
+    "src/pki/testdata/verify_certificate_chain_unittest/many-names/toomany-all-types.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/many-names/toomany-dirnames-excluded.pem", 
+    "src/pki/testdata/verify_certificate_chain_unittest/many-names/toomany-dirnames-excluded.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/many-names/toomany-dirnames-permitted.pem", 
+    "src/pki/testdata/verify_certificate_chain_unittest/many-names/toomany-dirnames-permitted.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/many-names/toomany-dns-excluded.pem", 
+    "src/pki/testdata/verify_certificate_chain_unittest/many-names/toomany-dns-excluded.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/many-names/toomany-dns-permitted.pem", 
+    "src/pki/testdata/verify_certificate_chain_unittest/many-names/toomany-dns-permitted.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/many-names/toomany-ips-excluded.pem", 
+    "src/pki/testdata/verify_certificate_chain_unittest/many-names/toomany-ips-excluded.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/many-names/toomany-ips-permitted.pem", 
+    "src/pki/testdata/verify_certificate_chain_unittest/many-names/toomany-ips-permitted.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/non-self-signed-root/chain.pem", 
+    "src/pki/testdata/verify_certificate_chain_unittest/non-self-signed-root/main.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/non-self-signed-root/ta-with-constraints.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.1.2.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.1.3.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.1.4.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.1.5.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.1.6.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.10.1.2.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.10.1.3.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.10.10.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.10.13.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.10.2.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.10.3.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.10.4.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.10.5.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.10.6.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.10.7.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.10.8.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.11.1.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.11.10.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.11.11.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.11.3.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.11.5.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.11.6.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.11.8.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.11.9.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.12.1.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.12.10.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.12.3.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.12.4.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.12.5.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.12.6.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.12.8.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.13.10.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.13.12.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.13.13.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.13.15.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.13.16.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.13.17.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.13.2.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.13.20.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.13.21.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.13.22.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.13.23.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.13.24.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.13.25.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.13.26.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.13.27.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.13.28.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.13.29.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.13.3.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.13.31.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.13.33.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.13.34.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.13.35.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.13.36.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.13.37.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.13.38.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.13.7.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.13.8.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.13.9.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.16.2.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.2.1.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.2.2.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.2.5.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.2.6.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.2.7.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.3.1.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.3.2.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.6.1.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.6.10.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.6.11.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.6.12.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.6.16.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.6.2.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.6.3.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.6.5.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.6.6.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.6.9.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.7.1.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.7.2.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.8.1.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.8.12.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.8.14.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.8.2.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.8.3.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.8.4.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.8.5.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.8.6.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.8.7.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.8.8.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.8.9.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.9.3.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.9.5.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.9.7.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/pkits_errors/4.9.8.txt", 
+    "src/pki/testdata/verify_certificate_chain_unittest/policies-inhibit-anypolicy-by-root-fail/chain.pem", 
+    "src/pki/testdata/verify_certificate_chain_unittest/policies-inhibit-anypolicy-by-root-fail/main.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/policies-inhibit-anypolicy-by-root-fail/ta-with-constraints.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/policies-inhibit-anypolicy-by-root-ok/chain.pem", 
+    "src/pki/testdata/verify_certificate_chain_unittest/policies-inhibit-anypolicy-by-root-ok/main.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/policies-inhibit-anypolicy-by-root-ok/ta-with-constraints.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/policies-inhibit-mapping-by-root-fail/chain.pem", 
+    "src/pki/testdata/verify_certificate_chain_unittest/policies-inhibit-mapping-by-root-fail/main.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/policies-inhibit-mapping-by-root-fail/ta-with-constraints.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/policies-inhibit-mapping-by-root-ok/chain.pem", 
+    "src/pki/testdata/verify_certificate_chain_unittest/policies-inhibit-mapping-by-root-ok/main.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/policies-inhibit-mapping-by-root-ok/ta-with-constraints.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/policies-ok/chain.pem", 
+    "src/pki/testdata/verify_certificate_chain_unittest/policies-ok/main.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/policies-ok/ta-with-constraints.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/policies-on-root-ok/chain.pem", 
+    "src/pki/testdata/verify_certificate_chain_unittest/policies-on-root-ok/main.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/policies-on-root-ok/ta-with-constraints.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/policies-on-root-wrong/chain.pem", 
+    "src/pki/testdata/verify_certificate_chain_unittest/policies-on-root-wrong/main.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/policies-on-root-wrong/ta-with-constraints.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/policies-required-by-root-fail/chain.pem", 
+    "src/pki/testdata/verify_certificate_chain_unittest/policies-required-by-root-fail/main.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/policies-required-by-root-fail/ta-with-constraints.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/policies-required-by-root-ok/chain.pem", 
+    "src/pki/testdata/verify_certificate_chain_unittest/policies-required-by-root-ok/main.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/policies-required-by-root-ok/ta-with-constraints.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/policy-mappings-on-root-fail/chain.pem", 
+    "src/pki/testdata/verify_certificate_chain_unittest/policy-mappings-on-root-fail/main.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/policy-mappings-on-root-fail/ta-with-constraints.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/policy-mappings-on-root-ok/chain.pem", 
+    "src/pki/testdata/verify_certificate_chain_unittest/policy-mappings-on-root-ok/main.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/policy-mappings-on-root-ok/ta-with-constraints.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/root-basic-constraints-ca-false/chain.pem", 
+    "src/pki/testdata/verify_certificate_chain_unittest/root-basic-constraints-ca-false/main.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/root-basic-constraints-ca-false/ta-with-constraints.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/root-eku-clientauth/chain.pem", 
+    "src/pki/testdata/verify_certificate_chain_unittest/root-eku-clientauth/serverauth-strict.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/root-eku-clientauth/serverauth-ta-with-constraints-strict.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/root-eku-clientauth/serverauth-ta-with-constraints.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/root-eku-clientauth/serverauth-ta-with-expiration-and-constraints.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/root-eku-clientauth/serverauth-ta-with-expiration.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/root-eku-clientauth/serverauth.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/root-lacks-basic-constraints/chain.pem", 
+    "src/pki/testdata/verify_certificate_chain_unittest/root-lacks-basic-constraints/main.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/root-lacks-basic-constraints/ta-with-constraints-require-basic-constraints.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/root-lacks-basic-constraints/ta-with-constraints.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/root-lacks-basic-constraints/ta-with-require-basic-constraints.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/root-lacks-keycertsign-key-usage/chain.pem", 
+    "src/pki/testdata/verify_certificate_chain_unittest/root-lacks-keycertsign-key-usage/main.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/root-lacks-keycertsign-key-usage/ta-with-constraints.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-and-intermediate/chain.pem", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-and-intermediate/distrusted-root-expired.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-and-intermediate/distrusted-root.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-and-intermediate/main.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-and-intermediate/ta-with-constraints.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-and-intermediate/ta-with-expiration.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-and-intermediate/trusted_leaf-and-trust_anchor.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-and-intermediate/trusted_leaf-root.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-and-intermediate/unspecified-trust-root.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-eku-any/any.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-eku-any/chain.pem", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-eku-any/clientauth-strict-leaf.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-eku-any/clientauth-strict.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-eku-any/clientauth.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-eku-any/serverauth-strict-leaf.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-eku-any/serverauth-strict.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-eku-any/serverauth.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-eku-clientauth/any.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-eku-clientauth/chain.pem", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-eku-clientauth/clientauth-strict.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-eku-clientauth/clientauth.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-eku-clientauth/serverauth-strict.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-eku-clientauth/serverauth.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-eku-many/any.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-eku-many/chain.pem", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-eku-many/clientauth-strict-leaf.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-eku-many/clientauth-strict.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-eku-many/clientauth.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-eku-many/serverauth-strict-leaf.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-eku-many/serverauth-strict.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-eku-many/serverauth.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-eku-none/any.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-eku-none/chain.pem", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-eku-none/clientauth-strict-leaf.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-eku-none/clientauth-strict.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-eku-none/clientauth.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-eku-none/serverauth-strict.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-eku-none/serverauth.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-has-512bit-rsa-key/chain.pem", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-has-512bit-rsa-key/main.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-has-ca-basic-constraints/chain.pem", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-has-ca-basic-constraints/main.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-has-ca-basic-constraints/strict.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-has-ca-basic-constraints/target_only-trusted_leaf-strict.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-has-ca-basic-constraints/target_only-trusted_leaf.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-has-ca-basic-constraints/target_only.pem", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-has-keycertsign-but-not-ca/chain.pem", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-has-keycertsign-but-not-ca/main.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-has-pathlen-but-not-ca/chain.pem", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-has-pathlen-but-not-ca/main.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-msapplicationpolicies-and-eku/chain.pem", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-msapplicationpolicies-and-eku/main.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-msapplicationpolicies-no-eku/chain.pem", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-msapplicationpolicies-no-eku/main.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-not-end-entity/chain.pem", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-not-end-entity/main.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-not-end-entity/strict-leaf.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-not-end-entity/strict.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-only/chain.pem", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-only/trusted_anchor.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-only/trusted_leaf-and-trust_anchor.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-only/trusted_leaf-not_after.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-only/trusted_leaf-wrong_eku.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-only/trusted_leaf.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-only/trusted_leaf_require_self_signed.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-selfissued/chain.pem", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-selfissued/trusted_anchor.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-selfissued/trusted_leaf-and-trust_anchor.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-selfissued/trusted_leaf.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-selfissued/trusted_leaf_require_self_signed.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-selfsigned/chain.pem", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-selfsigned/trusted_leaf-and-trust_anchor.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-selfsigned/trusted_leaf-not_after.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-selfsigned/trusted_leaf-wrong_eku.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-selfsigned/trusted_leaf.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-selfsigned/trusted_leaf_require_self_signed.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-serverauth-various-keyusages/ec-decipherOnly.pem", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-serverauth-various-keyusages/ec-decipherOnly.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-serverauth-various-keyusages/ec-digitalSignature.pem", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-serverauth-various-keyusages/ec-digitalSignature.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-serverauth-various-keyusages/ec-keyAgreement.pem", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-serverauth-various-keyusages/ec-keyAgreement.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-serverauth-various-keyusages/ec-keyEncipherment.pem", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-serverauth-various-keyusages/ec-keyEncipherment.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-serverauth-various-keyusages/rsa-decipherOnly.pem", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-serverauth-various-keyusages/rsa-decipherOnly.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-serverauth-various-keyusages/rsa-digitalSignature.pem", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-serverauth-various-keyusages/rsa-digitalSignature.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-serverauth-various-keyusages/rsa-keyAgreement.pem", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-serverauth-various-keyusages/rsa-keyAgreement.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-serverauth-various-keyusages/rsa-keyEncipherment.pem", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-serverauth-various-keyusages/rsa-keyEncipherment.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-signed-by-512bit-rsa/chain.pem", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-signed-by-512bit-rsa/main.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-signed-using-ecdsa/chain.pem", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-signed-using-ecdsa/main.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-signed-with-sha1/chain.pem", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-signed-with-sha1/main.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-unknown-critical-extension/chain.pem", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-unknown-critical-extension/main.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-unknown-critical-extension/target_only-trusted_leaf.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-unknown-critical-extension/target_only.pem", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-wrong-signature-no-authority-key-identifier/chain.pem", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-wrong-signature-no-authority-key-identifier/main.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-wrong-signature/chain.pem", 
+    "src/pki/testdata/verify_certificate_chain_unittest/target-wrong-signature/main.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/unknown-critical-policy-qualifier/chain.pem", 
+    "src/pki/testdata/verify_certificate_chain_unittest/unknown-critical-policy-qualifier/main.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/unknown-non-critical-policy-qualifier/chain.pem", 
+    "src/pki/testdata/verify_certificate_chain_unittest/unknown-non-critical-policy-qualifier/main.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/violates-basic-constraints-pathlen-0/chain.pem", 
+    "src/pki/testdata/verify_certificate_chain_unittest/violates-basic-constraints-pathlen-0/main.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/violates-pathlen-1-from-root/chain.pem", 
+    "src/pki/testdata/verify_certificate_chain_unittest/violates-pathlen-1-from-root/main.test", 
+    "src/pki/testdata/verify_certificate_chain_unittest/violates-pathlen-1-from-root/ta-with-constraints.test", 
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-BMPSTRING-case_swap-dupe_attr.pem", 
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-BMPSTRING-case_swap-extra_attr.pem", 
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-BMPSTRING-case_swap-extra_rdn.pem", 
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-BMPSTRING-case_swap.pem", 
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-BMPSTRING-extra_whitespace-dupe_attr.pem", 
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-BMPSTRING-extra_whitespace-extra_attr.pem", 
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-BMPSTRING-extra_whitespace-extra_rdn.pem", 
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-BMPSTRING-extra_whitespace.pem", 
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-BMPSTRING-unmangled-dupe_attr.pem", 
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-BMPSTRING-unmangled-extra_attr.pem", 
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-BMPSTRING-unmangled-extra_rdn.pem", 
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-BMPSTRING-unmangled.pem", 
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-PRINTABLESTRING-case_swap-dupe_attr.pem", 
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-PRINTABLESTRING-case_swap-extra_attr.pem", 
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-PRINTABLESTRING-case_swap-extra_rdn.pem", 
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-PRINTABLESTRING-case_swap.pem", 
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-PRINTABLESTRING-extra_whitespace-dupe_attr.pem", 
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-PRINTABLESTRING-extra_whitespace-extra_attr.pem", 
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-PRINTABLESTRING-extra_whitespace-extra_rdn.pem", 
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-PRINTABLESTRING-extra_whitespace.pem", 
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-PRINTABLESTRING-rdn_sorting_1.pem", 
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-PRINTABLESTRING-rdn_sorting_2.pem", 
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-PRINTABLESTRING-unmangled-dupe_attr.pem", 
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-PRINTABLESTRING-unmangled-extra_attr.pem", 
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-PRINTABLESTRING-unmangled-extra_rdn.pem", 
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-PRINTABLESTRING-unmangled.pem", 
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-T61STRING-case_swap-dupe_attr.pem", 
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-T61STRING-case_swap-extra_attr.pem", 
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-T61STRING-case_swap-extra_rdn.pem", 
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-T61STRING-case_swap.pem", 
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-T61STRING-extra_whitespace-dupe_attr.pem", 
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-T61STRING-extra_whitespace-extra_attr.pem", 
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-T61STRING-extra_whitespace-extra_rdn.pem", 
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-T61STRING-extra_whitespace.pem", 
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-T61STRING-unmangled-dupe_attr.pem", 
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-T61STRING-unmangled-extra_attr.pem", 
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-T61STRING-unmangled-extra_rdn.pem", 
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-T61STRING-unmangled.pem", 
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-UNIVERSALSTRING-case_swap-dupe_attr.pem", 
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-UNIVERSALSTRING-case_swap-extra_attr.pem", 
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-UNIVERSALSTRING-case_swap-extra_rdn.pem", 
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-UNIVERSALSTRING-case_swap.pem", 
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-UNIVERSALSTRING-extra_whitespace-dupe_attr.pem", 
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-UNIVERSALSTRING-extra_whitespace-extra_attr.pem", 
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-UNIVERSALSTRING-extra_whitespace-extra_rdn.pem", 
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-UNIVERSALSTRING-extra_whitespace.pem", 
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-UNIVERSALSTRING-unmangled-dupe_attr.pem", 
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-UNIVERSALSTRING-unmangled-extra_attr.pem", 
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-UNIVERSALSTRING-unmangled-extra_rdn.pem", 
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-UNIVERSALSTRING-unmangled.pem", 
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-UTF8-case_swap-dupe_attr.pem", 
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-UTF8-case_swap-extra_attr.pem", 
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-UTF8-case_swap-extra_rdn.pem", 
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-UTF8-case_swap.pem", 
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-UTF8-extra_whitespace-dupe_attr.pem", 
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-UTF8-extra_whitespace-extra_attr.pem", 
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-UTF8-extra_whitespace-extra_rdn.pem", 
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-UTF8-extra_whitespace.pem", 
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-UTF8-unmangled-dupe_attr.pem", 
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-UTF8-unmangled-extra_attr.pem", 
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-UTF8-unmangled-extra_rdn.pem", 
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-UTF8-unmangled.pem", 
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-mixed-rdn_dupetype_sorting_1.pem", 
+    "src/pki/testdata/verify_name_match_unittest/names/ascii-mixed-rdn_dupetype_sorting_2.pem", 
+    "src/pki/testdata/verify_name_match_unittest/names/custom-custom-normalized.pem", 
+    "src/pki/testdata/verify_name_match_unittest/names/invalid-AttributeTypeAndValue-badAttributeType.pem", 
+    "src/pki/testdata/verify_name_match_unittest/names/invalid-AttributeTypeAndValue-empty.pem", 
+    "src/pki/testdata/verify_name_match_unittest/names/invalid-AttributeTypeAndValue-extradata.pem", 
+    "src/pki/testdata/verify_name_match_unittest/names/invalid-AttributeTypeAndValue-onlyOneElement.pem", 
+    "src/pki/testdata/verify_name_match_unittest/names/invalid-AttributeTypeAndValue-setNotSequence.pem", 
+    "src/pki/testdata/verify_name_match_unittest/names/invalid-Name-setInsteadOfSequence.pem", 
+    "src/pki/testdata/verify_name_match_unittest/names/invalid-RDN-empty.pem", 
+    "src/pki/testdata/verify_name_match_unittest/names/invalid-RDN-sequenceInsteadOfSet.pem", 
+    "src/pki/testdata/verify_name_match_unittest/names/unicode-mixed-normalized.pem", 
+    "src/pki/testdata/verify_name_match_unittest/names/unicode-mixed-unnormalized.pem", 
+    "src/pki/testdata/verify_name_match_unittest/names/unicode_bmp-BMPSTRING-unmangled.pem", 
+    "src/pki/testdata/verify_name_match_unittest/names/unicode_bmp-UNIVERSALSTRING-unmangled.pem", 
+    "src/pki/testdata/verify_name_match_unittest/names/unicode_bmp-UTF8-unmangled.pem", 
+    "src/pki/testdata/verify_name_match_unittest/names/unicode_supplementary-UNIVERSALSTRING-unmangled.pem", 
+    "src/pki/testdata/verify_name_match_unittest/names/unicode_supplementary-UTF8-unmangled.pem", 
+    "src/pki/testdata/verify_name_match_unittest/names/valid-Name-empty.pem", 
+    "src/pki/testdata/verify_name_match_unittest/names/valid-minimal.pem", 
+    "src/pki/testdata/verify_signed_data_unittest/ecdsa-prime256v1-sha512-spki-params-null.pem", 
+    "src/pki/testdata/verify_signed_data_unittest/ecdsa-prime256v1-sha512-unused-bits-signature.pem", 
+    "src/pki/testdata/verify_signed_data_unittest/ecdsa-prime256v1-sha512-using-ecdh-key.pem", 
+    "src/pki/testdata/verify_signed_data_unittest/ecdsa-prime256v1-sha512-using-ecmqv-key.pem", 
+    "src/pki/testdata/verify_signed_data_unittest/ecdsa-prime256v1-sha512-using-rsa-algorithm.pem", 
+    "src/pki/testdata/verify_signed_data_unittest/ecdsa-prime256v1-sha512-wrong-signature-format.pem", 
+    "src/pki/testdata/verify_signed_data_unittest/ecdsa-prime256v1-sha512.pem", 
+    "src/pki/testdata/verify_signed_data_unittest/ecdsa-secp384r1-sha256-corrupted-data.pem", 
+    "src/pki/testdata/verify_signed_data_unittest/ecdsa-secp384r1-sha256.pem", 
+    "src/pki/testdata/verify_signed_data_unittest/ecdsa-using-rsa-key.pem", 
+    "src/pki/testdata/verify_signed_data_unittest/rsa-pkcs1-sha1-bad-key-der-length.pem", 
+    "src/pki/testdata/verify_signed_data_unittest/rsa-pkcs1-sha1-bad-key-der-null.pem", 
+    "src/pki/testdata/verify_signed_data_unittest/rsa-pkcs1-sha1-key-params-absent.pem", 
+    "src/pki/testdata/verify_signed_data_unittest/rsa-pkcs1-sha1-using-pss-key-no-params.pem", 
+    "src/pki/testdata/verify_signed_data_unittest/rsa-pkcs1-sha1-wrong-algorithm.pem", 
+    "src/pki/testdata/verify_signed_data_unittest/rsa-pkcs1-sha1.pem", 
+    "src/pki/testdata/verify_signed_data_unittest/rsa-pkcs1-sha256-key-encoded-ber.pem", 
+    "src/pki/testdata/verify_signed_data_unittest/rsa-pkcs1-sha256-spki-non-null-params.pem", 
+    "src/pki/testdata/verify_signed_data_unittest/rsa-pkcs1-sha256-using-ecdsa-algorithm.pem", 
+    "src/pki/testdata/verify_signed_data_unittest/rsa-pkcs1-sha256-using-id-ea-rsa.pem", 
+    "src/pki/testdata/verify_signed_data_unittest/rsa-pkcs1-sha256.pem", 
+    "src/pki/testdata/verify_signed_data_unittest/rsa-pss-sha256-using-pss-key-with-params.pem", 
+    "src/pki/testdata/verify_signed_data_unittest/rsa-pss-sha256-wrong-salt.pem", 
+    "src/pki/testdata/verify_signed_data_unittest/rsa-pss-sha256.pem", 
+    "src/pki/testdata/verify_signed_data_unittest/rsa-using-ec-key.pem", 
+    "src/pki/testdata/verify_signed_data_unittest/rsa2048-pkcs1-sha512.pem", 
+    "src/pki/testdata/verify_unittest/google-intermediate1.der", 
+    "src/pki/testdata/verify_unittest/google-intermediate2.der", 
+    "src/pki/testdata/verify_unittest/google-leaf.der", 
+    "src/pki/testdata/verify_unittest/lencr-intermediate-r3.der", 
+    "src/pki/testdata/verify_unittest/lencr-leaf.der", 
+    "src/pki/testdata/verify_unittest/lencr-root-dst-x3.der", 
+    "src/pki/testdata/verify_unittest/lencr-root-x1-cross-signed.der", 
+    "src/pki/testdata/verify_unittest/lencr-root-x1.der", 
+    "src/pki/testdata/verify_unittest/mozilla_roots.der", 
+    "src/pki/testdata/verify_unittest/self-issued.pem"
+  ], 
+  "rust_bssl_crypto": [
+    "src/rust/bssl-crypto/src/aead.rs", 
+    "src/rust/bssl-crypto/src/aes.rs", 
+    "src/rust/bssl-crypto/src/cipher/aes_cbc.rs", 
+    "src/rust/bssl-crypto/src/cipher/aes_ctr.rs", 
+    "src/rust/bssl-crypto/src/cipher/mod.rs", 
+    "src/rust/bssl-crypto/src/digest.rs", 
+    "src/rust/bssl-crypto/src/ec.rs", 
+    "src/rust/bssl-crypto/src/ecdh.rs", 
+    "src/rust/bssl-crypto/src/ecdsa.rs", 
+    "src/rust/bssl-crypto/src/ed25519.rs", 
+    "src/rust/bssl-crypto/src/hkdf.rs", 
+    "src/rust/bssl-crypto/src/hmac.rs", 
+    "src/rust/bssl-crypto/src/hpke.rs", 
+    "src/rust/bssl-crypto/src/lib.rs", 
+    "src/rust/bssl-crypto/src/macros.rs", 
+    "src/rust/bssl-crypto/src/mem.rs", 
+    "src/rust/bssl-crypto/src/mldsa.rs", 
+    "src/rust/bssl-crypto/src/mlkem.rs", 
+    "src/rust/bssl-crypto/src/rand.rs", 
+    "src/rust/bssl-crypto/src/rsa.rs", 
+    "src/rust/bssl-crypto/src/scoped.rs", 
+    "src/rust/bssl-crypto/src/slhdsa.rs", 
+    "src/rust/bssl-crypto/src/test_helpers.rs", 
+    "src/rust/bssl-crypto/src/x25519.rs"
+  ], 
+  "rust_bssl_sys": [
+    "src/rust/bssl-sys/src/lib.rs"
+  ], 
+  "ssl": [
+    "src/ssl/bio_ssl.cc", 
+    "src/ssl/d1_both.cc", 
+    "src/ssl/d1_lib.cc", 
+    "src/ssl/d1_pkt.cc", 
+    "src/ssl/d1_srtp.cc", 
+    "src/ssl/dtls_method.cc", 
+    "src/ssl/dtls_record.cc", 
+    "src/ssl/encrypted_client_hello.cc", 
+    "src/ssl/extensions.cc", 
+    "src/ssl/handoff.cc", 
+    "src/ssl/handshake.cc", 
+    "src/ssl/handshake_client.cc", 
+    "src/ssl/handshake_server.cc", 
+    "src/ssl/s3_both.cc", 
+    "src/ssl/s3_lib.cc", 
+    "src/ssl/s3_pkt.cc", 
+    "src/ssl/ssl_aead_ctx.cc", 
+    "src/ssl/ssl_asn1.cc", 
+    "src/ssl/ssl_buffer.cc", 
+    "src/ssl/ssl_cert.cc", 
+    "src/ssl/ssl_cipher.cc", 
+    "src/ssl/ssl_credential.cc", 
+    "src/ssl/ssl_file.cc", 
+    "src/ssl/ssl_key_share.cc", 
+    "src/ssl/ssl_lib.cc", 
+    "src/ssl/ssl_privkey.cc", 
+    "src/ssl/ssl_session.cc", 
+    "src/ssl/ssl_stat.cc", 
+    "src/ssl/ssl_transcript.cc", 
+    "src/ssl/ssl_versions.cc", 
+    "src/ssl/ssl_x509.cc", 
+    "src/ssl/t1_enc.cc", 
+    "src/ssl/tls13_both.cc", 
+    "src/ssl/tls13_client.cc", 
+    "src/ssl/tls13_enc.cc", 
+    "src/ssl/tls13_server.cc", 
+    "src/ssl/tls_method.cc", 
+    "src/ssl/tls_record.cc"
+  ], 
+  "ssl_headers": [
+    "src/include/openssl/dtls1.h", 
+    "src/include/openssl/srtp.h", 
+    "src/include/openssl/ssl.h", 
+    "src/include/openssl/ssl3.h", 
+    "src/include/openssl/tls1.h"
+  ], 
+  "ssl_internal_headers": [
+    "src/ssl/internal.h"
+  ], 
+  "ssl_test": [
+    "src/crypto/test/gtest_main.cc", 
+    "src/ssl/span_test.cc", 
+    "src/ssl/ssl_c_test.c", 
+    "src/ssl/ssl_test.cc"
+  ], 
+  "test_support": [
+    "src/crypto/test/abi_test.cc", 
+    "src/crypto/test/file_test.cc", 
+    "src/crypto/test/file_test_gtest.cc", 
+    "src/crypto/test/file_util.cc", 
+    "src/crypto/test/test_data.cc", 
+    "src/crypto/test/test_util.cc", 
+    "src/crypto/test/wycheproof_util.cc"
+  ], 
+  "test_support_headers": [
+    "src/crypto/test/abi_test.h", 
+    "src/crypto/test/file_test.h", 
+    "src/crypto/test/file_util.h", 
+    "src/crypto/test/gtest_main.h", 
+    "src/crypto/test/test_data.h", 
+    "src/crypto/test/test_util.h", 
+    "src/crypto/test/wycheproof_util.h", 
+    "src/ssl/test/async_bio.h", 
+    "src/ssl/test/fuzzer.h", 
+    "src/ssl/test/fuzzer_tags.h", 
+    "src/ssl/test/handshake_util.h", 
+    "src/ssl/test/mock_quic_transport.h", 
+    "src/ssl/test/packeted_bio.h", 
+    "src/ssl/test/settings_writer.h", 
+    "src/ssl/test/test_config.h", 
+    "src/ssl/test/test_state.h"
+  ], 
+  "tool": [
+    "src/tool/args.cc", 
+    "src/tool/ciphers.cc", 
+    "src/tool/client.cc", 
+    "src/tool/const.cc", 
+    "src/tool/digest.cc", 
+    "src/tool/fd.cc", 
+    "src/tool/file.cc", 
+    "src/tool/generate_ech.cc", 
+    "src/tool/generate_ed25519.cc", 
+    "src/tool/genrsa.cc", 
+    "src/tool/pkcs12.cc", 
+    "src/tool/rand.cc", 
+    "src/tool/server.cc", 
+    "src/tool/sign.cc", 
+    "src/tool/speed.cc", 
+    "src/tool/tool.cc", 
+    "src/tool/transport_common.cc"
+  ], 
+  "tool_headers": [
+    "src/tool/internal.h", 
+    "src/tool/transport_common.h"
+  ], 
+  "urandom_test": [
+    "src/crypto/rand_extra/urandom_test.cc"
+  ]
+}
\ No newline at end of file
diff --git a/.bazelignore b/src/.bazelignore
similarity index 100%
rename from .bazelignore
rename to src/.bazelignore
diff --git a/.bazelrc b/src/.bazelrc
similarity index 100%
rename from .bazelrc
rename to src/.bazelrc
diff --git a/.bcr/README.md b/src/.bcr/README.md
similarity index 100%
rename from .bcr/README.md
rename to src/.bcr/README.md
diff --git a/.bcr/config.yml b/src/.bcr/config.yml
similarity index 100%
rename from .bcr/config.yml
rename to src/.bcr/config.yml
diff --git a/.bcr/metadata.template.json b/src/.bcr/metadata.template.json
similarity index 100%
rename from .bcr/metadata.template.json
rename to src/.bcr/metadata.template.json
diff --git a/.bcr/presubmit.yml b/src/.bcr/presubmit.yml
similarity index 100%
rename from .bcr/presubmit.yml
rename to src/.bcr/presubmit.yml
diff --git a/.bcr/source.template.json b/src/.bcr/source.template.json
similarity index 100%
rename from .bcr/source.template.json
rename to src/.bcr/source.template.json
diff --git a/.clang-format b/src/.clang-format
similarity index 100%
rename from .clang-format
rename to src/.clang-format
diff --git a/.gitignore b/src/.gitignore
similarity index 100%
rename from .gitignore
rename to src/.gitignore
diff --git a/API-CONVENTIONS.md b/src/API-CONVENTIONS.md
similarity index 100%
rename from API-CONVENTIONS.md
rename to src/API-CONVENTIONS.md
diff --git a/BREAKING-CHANGES.md b/src/BREAKING-CHANGES.md
similarity index 100%
rename from BREAKING-CHANGES.md
rename to src/BREAKING-CHANGES.md
diff --git a/BUILD.bazel b/src/BUILD.bazel
similarity index 100%
rename from BUILD.bazel
rename to src/BUILD.bazel
diff --git a/BUILDING.md b/src/BUILDING.md
similarity index 100%
rename from BUILDING.md
rename to src/BUILDING.md
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
new file mode 100644
index 0000000..2308d57
--- /dev/null
+++ b/src/CMakeLists.txt
@@ -0,0 +1,778 @@
+cmake_minimum_required(VERSION 3.16)
+
+# Defer enabling C and CXX languages.
+project(BoringSSL NONE)
+
+# Don't install BoringSSL to system directories by default; it has no stable
+# ABI. Instead, default to an "install" directory under the source.
+if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
+  set(CMAKE_INSTALL_PREFIX ${CMAKE_SOURCE_DIR}/install CACHE PATH "" FORCE)
+endif()
+
+if(WIN32)
+  # On Windows, prefer cl over gcc if both are available. By default most of
+  # the CMake generators prefer gcc, even on Windows.
+  set(CMAKE_GENERATOR_CC cl)
+endif()
+
+include(cmake/go.cmake)
+include(cmake/paths.cmake)
+include(gen/sources.cmake)
+
+enable_language(C)
+enable_language(CXX)
+
+include(GNUInstallDirs)
+
+set(INSTALL_ENABLED 1)
+
+if(CMAKE_SYSTEM_NAME STREQUAL "Linux" AND NOT CMAKE_CROSSCOMPILING)
+  find_package(PkgConfig QUIET)
+  if (PkgConfig_FOUND)
+    pkg_check_modules(LIBUNWIND libunwind-generic>=1.3.0)
+    if(LIBUNWIND_FOUND)
+      add_definitions(-DBORINGSSL_HAVE_LIBUNWIND)
+    else()
+      message("libunwind not found. Disabling unwind tests.")
+    endif()
+  else()
+    message("pkgconfig not found. Disabling unwind tests.")
+  endif()
+endif()
+
+string(TOLOWER "${CMAKE_BUILD_TYPE}" CMAKE_BUILD_TYPE_LOWER)
+if(NOT FIPS)
+  if(CMAKE_BUILD_TYPE_LOWER STREQUAL "relwithassert" OR
+     NOT CMAKE_BUILD_TYPE_LOWER MATCHES "rel")
+    add_definitions(-DBORINGSSL_DISPATCH_TEST)
+    # CMake automatically connects include_directories to the NASM
+    # command-line, but not add_definitions.
+    set(CMAKE_ASM_NASM_FLAGS "${CMAKE_ASM_NASM_FLAGS} -DBORINGSSL_DISPATCH_TEST")
+  endif()
+endif()
+
+# Add a RelWithAsserts build configuration. It is the same as Release, except it
+# does not define NDEBUG, so asserts run.
+foreach(VAR CMAKE_C_FLAGS CMAKE_CXX_FLAGS CMAKE_ASM_FLAGS)
+  string(REGEX REPLACE "(^| )[/-]DNDEBUG( |$)" " " "${VAR}_RELWITHASSERTS"
+         "${${VAR}_RELEASE}")
+endforeach()
+
+if(BORINGSSL_PREFIX AND BORINGSSL_PREFIX_SYMBOLS)
+  require_go()
+  add_definitions(-DBORINGSSL_PREFIX=${BORINGSSL_PREFIX})
+  # CMake automatically connects include_directories to the NASM command-line,
+  # but not add_definitions.
+  set(CMAKE_ASM_NASM_FLAGS "${CMAKE_ASM_NASM_FLAGS} -DBORINGSSL_PREFIX=${BORINGSSL_PREFIX}")
+
+  # Use "symbol_prefix_include" to store generated header files
+  include_directories(${CMAKE_CURRENT_BINARY_DIR}/symbol_prefix_include)
+  add_custom_command(
+    OUTPUT symbol_prefix_include/boringssl_prefix_symbols.h
+           symbol_prefix_include/boringssl_prefix_symbols_asm.h
+           symbol_prefix_include/boringssl_prefix_symbols_nasm.inc
+    COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/symbol_prefix_include
+    COMMAND ${GO_EXECUTABLE} run ${CMAKE_CURRENT_SOURCE_DIR}/util/make_prefix_headers.go -out ${CMAKE_CURRENT_BINARY_DIR}/symbol_prefix_include ${BORINGSSL_PREFIX_SYMBOLS}
+    DEPENDS util/make_prefix_headers.go
+            ${BORINGSSL_PREFIX_SYMBOLS})
+
+  # add_dependencies needs a target, not a file, so we add an intermediate
+  # target.
+  add_custom_target(
+    boringssl_prefix_symbols
+    DEPENDS symbol_prefix_include/boringssl_prefix_symbols.h
+            symbol_prefix_include/boringssl_prefix_symbols_asm.h
+            symbol_prefix_include/boringssl_prefix_symbols_nasm.inc)
+elseif(BORINGSSL_PREFIX OR BORINGSSL_PREFIX_SYMBOLS)
+  message(FATAL_ERROR "Must specify both or neither of BORINGSSL_PREFIX and BORINGSSL_PREFIX_SYMBOLS")
+else()
+  add_custom_target(boringssl_prefix_symbols)
+endif()
+
+if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
+  set(CLANG 1)
+endif()
+
+if(CMAKE_SYSTEM_NAME STREQUAL "Emscripten")
+  set(EMSCRIPTEN 1)
+endif()
+
+set(CMAKE_CXX_STANDARD 14)
+set(CMAKE_CXX_STANDARD_REQUIRED ON)
+set(CMAKE_C_STANDARD 11)
+set(CMAKE_C_STANDARD_REQUIRED ON)
+
+if(CMAKE_COMPILER_IS_GNUCXX OR CLANG)
+  # Note clang-cl is odd and sets both CLANG and MSVC. We base our configuration
+  # primarily on our normal Clang one.
+  set(C_CXX_FLAGS "-Werror -Wformat=2 -Wsign-compare -Wwrite-strings -Wvla -Wshadow -Wtype-limits -Wmissing-field-initializers")
+  if(MSVC)
+    # clang-cl sets different default warnings than clang. It also treats -Wall
+    # as -Weverything, to match MSVC. Instead -W3 is the alias for -Wall.
+    # See http://llvm.org/viewvc/llvm-project?view=revision&revision=319116
+    set(C_CXX_FLAGS "${C_CXX_FLAGS} -W3 -Wno-unused-parameter -fmsc-version=1900")
+  else()
+    if(EMSCRIPTEN)
+      # emscripten's emcc/clang does not accept the "-ggdb" flag.
+      set(C_CXX_FLAGS "${C_CXX_FLAGS} -g")
+    else()
+      set(C_CXX_FLAGS "${C_CXX_FLAGS} -ggdb")
+    endif()
+
+    set(C_CXX_FLAGS "${C_CXX_FLAGS} -Wall -fvisibility=hidden -fno-common")
+  endif()
+
+  if(CLANG)
+    set(C_CXX_FLAGS "${C_CXX_FLAGS} -Wnewline-eof -fcolor-diagnostics")
+  else()
+    # GCC (at least 4.8.4) has a bug where it'll find unreachable free() calls
+    # and declare that the code is trying to free a stack pointer.
+    set(C_CXX_FLAGS "${C_CXX_FLAGS} -Wno-free-nonheap-object")
+  endif()
+
+  # -Wstring-concatenation was added in Clang 12.0.0, which corresponds to
+  # AppleClang 13.0.0 per the table in
+  # https://en.wikipedia.org/wiki/Xcode#Toolchain_versions
+  if((CMAKE_C_COMPILER_ID STREQUAL "Clang" AND
+      CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL "12.0.0") OR
+     (CMAKE_C_COMPILER_ID STREQUAL "AppleClang" AND
+      CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL "13.0.0"))
+    set(C_CXX_FLAGS "${C_CXX_FLAGS} -Wstring-concatenation")
+  endif()
+
+  # Clang 12's -Wframe-larger-than reportedly does not work in clang-cl. See
+  # https://crbug.com/boringssl/709. Clang 13 includes the following fix, which
+  # may be related. Speculatively gate on Clang 13. That corresponds to
+  # AppleClang 13.1.6.
+  # https://github.com/llvm/llvm-project/commit/6aaf4fa2885600b0e31042071ad06f78218ab0f2
+  if((CMAKE_C_COMPILER_ID STREQUAL "Clang" AND
+      CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL "13.0.0") OR
+     (CMAKE_C_COMPILER_ID STREQUAL "AppleClang" AND
+      CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL "13.1.6"))
+    set(C_CXX_FLAGS "${C_CXX_FLAGS} -Wframe-larger-than=25344")
+  endif()
+
+  # -Wctad-maybe-unsupported was added in Clang 10, which is AppleClang 12.0.0.
+  if((CMAKE_C_COMPILER_ID STREQUAL "Clang" AND
+      CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL "10.0.0") OR
+     (CMAKE_C_COMPILER_ID STREQUAL "AppleClang" AND
+      CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL "12.0.0"))
+    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wctad-maybe-unsupported")
+  endif()
+
+  if(CLANG OR CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL "7.0.0")
+    set(C_CXX_FLAGS "${C_CXX_FLAGS} -Wimplicit-fallthrough")
+  endif()
+
+  if(CMAKE_COMPILER_IS_GNUCXX)
+    set(C_CXX_FLAGS "${C_CXX_FLAGS} -Wformat-signedness")
+  endif()
+
+  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${C_CXX_FLAGS} -Wmissing-prototypes -Wold-style-definition -Wstrict-prototypes")
+  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${C_CXX_FLAGS} -Wmissing-declarations -Wnon-virtual-dtor")
+
+  # In GCC, -Wmissing-declarations is the C++ spelling of -Wmissing-prototypes
+  # and using the wrong one is an error. In Clang, -Wmissing-prototypes is the
+  # spelling for both and -Wmissing-declarations is some other warning.
+  #
+  # https://gcc.gnu.org/onlinedocs/gcc-7.1.0/gcc/Warning-Options.html#Warning-Options
+  # https://clang.llvm.org/docs/DiagnosticsReference.html#wmissing-prototypes
+  # https://clang.llvm.org/docs/DiagnosticsReference.html#wmissing-declarations
+  if(CLANG)
+    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wmissing-prototypes")
+  endif()
+elseif(MSVC)
+  set(MSVC_DISABLED_WARNINGS_LIST
+      "C4100" # 'exarg' : unreferenced formal parameter
+      "C4127" # conditional expression is constant
+      "C4244" # 'function' : conversion from 'int' to 'uint8_t',
+              # possible loss of data
+      "C4267" # conversion from 'size_t' to 'int', possible loss of data
+      "C4706" # assignment within conditional expression
+      )
+  string(REPLACE "C" " -wd" MSVC_DISABLED_WARNINGS_STR
+                            ${MSVC_DISABLED_WARNINGS_LIST})
+  set(CMAKE_C_FLAGS   "-utf-8 -W4 -WX ${MSVC_DISABLED_WARNINGS_STR}")
+  # Without /Zc:__cplusplus, MSVC does not define the right value for
+  # __cplusplus. See https://devblogs.microsoft.com/cppblog/msvc-now-correctly-reports-__cplusplus/
+  # If this becomes too problematic for downstream code, we can look at
+  # _MSVC_LANG.
+  set(CMAKE_CXX_FLAGS "-utf-8 -W4 -WX ${MSVC_DISABLED_WARNINGS_STR} -Zc:__cplusplus")
+endif()
+
+if(WIN32)
+  add_definitions(-D_HAS_EXCEPTIONS=0)
+  add_definitions(-DWIN32_LEAN_AND_MEAN)
+  add_definitions(-DNOMINMAX)
+  # Allow use of fopen.
+  add_definitions(-D_CRT_SECURE_NO_WARNINGS)
+endif()
+
+# pthread_rwlock_t on Linux requires a feature flag. We limit this to Linux
+# because, on Apple platforms, it instead disables APIs we use. See compat(5)
+# and sys/cdefs.h. Reportedly, FreeBSD also breaks when this is set. See
+# https://crbug.com/boringssl/471.
+if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
+  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_XOPEN_SOURCE=700")
+endif()
+
+if(FUZZ)
+  if(NOT CLANG)
+    message(FATAL_ERROR "You need to build with Clang for fuzzing to work")
+  endif()
+
+  if(CMAKE_C_COMPILER_VERSION VERSION_LESS "6.0.0")
+    message(FATAL_ERROR "You need Clang ≥ 6.0.0")
+  endif()
+
+  add_definitions(-DBORINGSSL_UNSAFE_DETERMINISTIC_MODE)
+  set(RUNNER_ARGS "-deterministic")
+
+  if(NOT NO_FUZZER_MODE)
+    add_definitions(-DBORINGSSL_UNSAFE_FUZZER_MODE)
+    set(RUNNER_ARGS ${RUNNER_ARGS} "-fuzzer" "-shim-config" "fuzzer_mode.json")
+  endif()
+
+  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=address,fuzzer-no-link -fsanitize-coverage=edge,indirect-calls")
+  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address,fuzzer-no-link -fsanitize-coverage=edge,indirect-calls")
+endif()
+
+add_definitions(-DBORINGSSL_IMPLEMENTATION)
+
+if(BUILD_SHARED_LIBS)
+  add_definitions(-DBORINGSSL_SHARED_LIBRARY)
+  # Enable position-independent code globally. This is needed because
+  # some library targets are OBJECT libraries.
+  set(CMAKE_POSITION_INDEPENDENT_CODE TRUE)
+endif()
+
+if(MSAN)
+  if(NOT CLANG)
+    message(FATAL_ERROR "Cannot enable MSAN unless using Clang")
+  endif()
+
+  if(ASAN)
+    message(FATAL_ERROR "ASAN and MSAN are mutually exclusive")
+  endif()
+
+  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=memory -fsanitize-memory-track-origins -fno-omit-frame-pointer")
+  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=memory -fsanitize-memory-track-origins -fno-omit-frame-pointer")
+  set(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} -fsanitize=memory -fsanitize-memory-track-origins -fno-omit-frame-pointer")
+endif()
+
+if(ASAN)
+  if(NOT CLANG)
+    message(FATAL_ERROR "Cannot enable ASAN unless using Clang")
+  endif()
+
+  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=address -fsanitize-address-use-after-scope -fno-omit-frame-pointer")
+  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address -fsanitize-address-use-after-scope -fno-omit-frame-pointer")
+endif()
+
+if(CFI)
+  if(NOT CLANG)
+    message(FATAL_ERROR "Cannot enable CFI unless using Clang")
+  endif()
+
+  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=cfi -fno-sanitize-trap=cfi -flto=thin")
+  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=cfi -fno-sanitize-trap=cfi -flto=thin")
+  # We use Chromium's copy of clang, which requires -fuse-ld=lld if building
+  # with -flto. That, in turn, can't handle -ggdb.
+  set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fuse-ld=lld")
+  string(REPLACE "-ggdb" "-g" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
+  string(REPLACE "-ggdb" "-g" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
+  # -flto causes object files to contain LLVM bitcode. Mixing those with
+  # assembly output in the same static library breaks the linker.
+  set(OPENSSL_NO_ASM "1")
+endif()
+
+if(TSAN)
+  if(NOT CLANG)
+    message(FATAL_ERROR "Cannot enable TSAN unless using Clang")
+  endif()
+
+  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=thread")
+  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=thread")
+  set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=thread")
+endif()
+
+if(UBSAN)
+  if(NOT CLANG)
+    message(FATAL_ERROR "Cannot enable UBSAN unless using Clang")
+  endif()
+
+  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=undefined")
+  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=undefined")
+  set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=undefined")
+
+  if(NOT UBSAN_RECOVER)
+    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-sanitize-recover=undefined")
+    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-sanitize-recover=undefined")
+    set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fno-sanitize-recover=undefined")
+  endif()
+endif()
+
+if(GCOV)
+  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fprofile-arcs -ftest-coverage")
+  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-arcs -ftest-coverage")
+endif()
+
+if(FIPS)
+  require_go()
+  add_definitions(-DBORINGSSL_FIPS)
+  if(FIPS_BREAK_TEST)
+    add_definitions("-DBORINGSSL_FIPS_BREAK_${FIPS_BREAK_TEST}=1")
+  endif()
+  # The FIPS integrity check does not work for ASan and MSan builds.
+  if(NOT ASAN AND NOT MSAN)
+    if(BUILD_SHARED_LIBS)
+      set(FIPS_SHARED "1")
+    else()
+      set(FIPS_DELOCATE "1")
+    endif()
+  endif()
+  if(FIPS_SHARED)
+    # The Android CMake files set -ffunction-sections and -fdata-sections,
+    # which is incompatible with FIPS_SHARED.
+    set(CMAKE_C_FLAGS
+        "${CMAKE_C_FLAGS} -fno-function-sections -fno-data-sections")
+    set(CMAKE_CXX_FLAGS
+        "${CMAKE_CXX_FLAGS} -fno-function-sections -fno-data-sections")
+  endif()
+endif()
+
+if(OPENSSL_SMALL)
+  add_definitions(-DOPENSSL_SMALL)
+endif()
+
+if(CONSTANT_TIME_VALIDATION)
+  add_definitions(-DBORINGSSL_CONSTANT_TIME_VALIDATION)
+endif()
+
+if(MALLOC_FAILURE_TESTING)
+  add_definitions(-DBORINGSSL_MALLOC_FAILURE_TESTING)
+endif()
+
+if(OPENSSL_NO_ASM)
+  add_definitions(-DOPENSSL_NO_ASM)
+endif()
+
+if(FIPS_DELOCATE OR NOT OPENSSL_NO_ASM)
+  # On x86 and x86_64 Windows, we use the NASM output.
+  if(WIN32 AND CMAKE_SYSTEM_PROCESSOR MATCHES "AMD64|x86_64|amd64|x86|i[3-6]86")
+    enable_language(ASM_NASM)
+    set(OPENSSL_NASM TRUE)
+    set(CMAKE_ASM_NASM_FLAGS "${CMAKE_ASM_NASM_FLAGS} -gcv8")
+  else()
+    enable_language(ASM)
+    if (NOT OPENSSL_NO_ASM)
+      set(OPENSSL_ASM TRUE)
+    endif()
+    # Work around https://gitlab.kitware.com/cmake/cmake/-/issues/20771 in older
+    # CMake versions.
+    if(APPLE AND CMAKE_VERSION VERSION_LESS 3.19)
+      if(CMAKE_OSX_SYSROOT)
+        set(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} -isysroot \"${CMAKE_OSX_SYSROOT}\"")
+      endif()
+      foreach(arch ${CMAKE_OSX_ARCHITECTURES})
+        set(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} -arch ${arch}")
+      endforeach()
+    endif()
+    if(NOT WIN32)
+      set(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} -Wa,--noexecstack")
+    endif()
+    # Clang's integerated assembler does not support debug symbols.
+    if(NOT CMAKE_ASM_COMPILER_ID MATCHES "Clang")
+      set(CMAKE_ASM_FLAGS "${CMAKE_ASM_FLAGS} -Wa,-g")
+    endif()
+  endif()
+endif()
+
+if(OPENSSL_NO_SSE2_FOR_TESTING)
+  add_definitions(-DOPENSSL_NO_SSE2_FOR_TESTING)
+endif()
+
+if(USE_CUSTOM_LIBCXX)
+  if(NOT CLANG)
+    message(FATAL_ERROR "USE_CUSTOM_LIBCXX only supported with Clang")
+  endif()
+
+  # CMake does not allow installing a library without installing dependencies.
+  # If we installed libcrypto, we'd have to install our custom libc++, which
+  # does not make sense. As this is a test-only configuration, disable
+  # installing.
+  set(INSTALL_ENABLED 0)
+
+  # CMAKE_CXX_FLAGS ends up in the linker flags as well, so use
+  # add_compile_options. There does not appear to be a way to set
+  # language-specific compile-only flags.
+  add_compile_options("-nostdinc++")
+  set(CMAKE_CXX_LINK_FLAGS "${CMAKE_CXX_LINK_FLAGS} -nostdlib++")
+  include_directories(
+    SYSTEM
+    util/bot/libcxx-config
+    util/bot/libcxx/include
+    util/bot/libcxxabi/include
+  )
+
+  # This is patterned after buildtools/third_party/libc++/BUILD.gn and
+  # buildtools/third_party/libc++abi/BUILD.gn in Chromium.
+
+  file(GLOB LIBCXX_SOURCES "util/bot/libcxx/src/*.cpp")
+  file(GLOB LIBCXXABI_SOURCES "util/bot/libcxxabi/src/*.cpp")
+
+  # This file is meant for exception-less builds.
+  list(REMOVE_ITEM LIBCXXABI_SOURCES "trunk/src/cxa_noexception.cpp")
+  # libc++ also defines new and delete.
+  list(REMOVE_ITEM LIBCXXABI_SOURCES "trunk/src/stdlib_new_delete.cpp")
+  if(TSAN)
+    # ThreadSanitizer tries to intercept these symbols. Skip them to avoid
+    # symbol conflicts.
+    list(REMOVE_ITEM LIBCXXABI_SOURCES "trunk/src/cxa_guard.cpp")
+  endif()
+
+  add_library(libcxxabi ${LIBCXXABI_SOURCES})
+  target_compile_definitions(
+    libcxxabi PRIVATE
+    -D_LIBCPP_ENABLE_CXX17_REMOVED_UNEXPECTED_FUNCTIONS
+  )
+
+  add_library(libcxx ${LIBCXX_SOURCES})
+  if(ASAN OR MSAN OR TSAN)
+    # Sanitizers try to intercept new and delete.
+    target_compile_definitions(
+      libcxx PRIVATE
+      -D_LIBCPP_DISABLE_NEW_DELETE_DEFINITIONS
+    )
+  endif()
+  target_compile_definitions(
+    libcxx PRIVATE
+    -D_LIBCPP_BUILDING_LIBRARY
+    -DLIBCXX_BUILDING_LIBCXXABI
+  )
+  set_target_properties(
+    libcxx libcxxabi PROPERTIES
+    COMPILE_FLAGS "-Wno-missing-prototypes -Wno-implicit-fallthrough"
+    # libc++ and libc++abi must be built in C++23 mode.
+    CXX_STANDARD 23
+    CXX_STANDARD_REQUIRED TRUE
+  )
+  # libc++abi depends on libc++ internal headers.
+  set_property(TARGET libcxx libcxxabi APPEND PROPERTY INCLUDE_DIRECTORIES "${CMAKE_CURRENT_SOURCE_DIR}/util/bot/libcxx/src")
+  target_link_libraries(libcxx libcxxabi)
+endif()
+
+# Add minimal googletest targets. The provided one has many side-effects, and
+# googletest has a very straightforward build.
+add_library(
+  boringssl_gtest
+  third_party/googletest/googlemock/src/gmock-all.cc
+  third_party/googletest/googletest/src/gtest-all.cc
+)
+if(USE_CUSTOM_LIBCXX)
+  target_link_libraries(boringssl_gtest libcxx)
+endif()
+target_include_directories(
+    boringssl_gtest
+    PUBLIC
+    third_party/googletest/googlemock/include
+    third_party/googletest/googletest/include
+    PRIVATE
+    third_party/googletest/googlemock
+    third_party/googletest/googletest
+)
+
+# Declare a dummy target to build all unit tests. Test targets should inject
+# themselves as dependencies next to the target definition.
+add_custom_target(all_tests)
+
+add_subdirectory(ssl/test)
+add_subdirectory(util/fipstools)
+add_subdirectory(util/fipstools/acvp/modulewrapper)
+
+if(OPENSSL_ASM)
+  set(CRYPTO_SOURCES_ASM_USED ${CRYPTO_SOURCES_ASM})
+  set(BCM_SOURCES_ASM_USED ${BCM_SOURCES_ASM})
+  set(TEST_SUPPORT_SOURCES_ASM_USED ${TEST_SUPPORT_SOURCES_ASM})
+elseif(OPENSSL_NASM)
+  set(CRYPTO_SOURCES_ASM_USED ${CRYPTO_SOURCES_NASM})
+  set(BCM_SOURCES_ASM_USED ${BCM_SOURCES_NASM})
+  set(TEST_SUPPORT_SOURCES_ASM_USED ${TEST_SUPPORT_SOURCES_NASM})
+endif()
+
+if(FIPS_DELOCATE AND FIPS_SHARED)
+  message(FATAL_ERROR "Can't set both delocate and shared mode for FIPS build")
+endif()
+
+if(FIPS_DELOCATE)
+  add_library(bcm_c_generated_asm STATIC ${BCM_SOURCES})
+  add_dependencies(bcm_c_generated_asm boringssl_prefix_symbols)
+  target_include_directories(bcm_c_generated_asm PRIVATE ${PROJECT_SOURCE_DIR}/include)
+  set_target_properties(bcm_c_generated_asm PROPERTIES COMPILE_OPTIONS "-S")
+  set_target_properties(bcm_c_generated_asm PROPERTIES POSITION_INDEPENDENT_CODE ON)
+  if(CLANG)
+    # Clang warns when passing both -c (from CMake) and -S.
+    set_property(TARGET bcm_c_generated_asm APPEND PROPERTY COMPILE_OPTIONS "-Wno-unused-command-line-argument")
+  endif()
+
+  set(TARGET_FLAG "")
+  if(CMAKE_ASM_COMPILER_TARGET)
+    set(TARGET_FLAG "--target=${CMAKE_ASM_COMPILER_TARGET}")
+  endif()
+
+  go_executable(delocate boringssl.googlesource.com/boringssl/util/fipstools/delocate)
+  add_custom_command(
+    OUTPUT bcm-delocated.S
+    COMMAND ${CMAKE_CURRENT_BINARY_DIR}/delocate
+            -a $<TARGET_FILE:bcm_c_generated_asm>
+            -o ${CMAKE_CURRENT_BINARY_DIR}/bcm-delocated.S
+            -cc ${CMAKE_ASM_COMPILER}
+            -cc-flags "${TARGET_FLAG} ${CMAKE_ASM_FLAGS}"
+            ${BCM_SOURCES_ASM_USED}
+            ${CRYPTO_HEADERS}
+    DEPENDS bcm_c_generated_asm
+            delocate
+            ${BCM_SOURCES_ASM_USED}
+            ${CRYPTO_HEADERS}
+    WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+  )
+
+  add_library(bcm_hashunset STATIC bcm-delocated.S)
+  set_target_properties(bcm_hashunset PROPERTIES POSITION_INDEPENDENT_CODE ON)
+  set_target_properties(bcm_hashunset PROPERTIES LINKER_LANGUAGE C)
+
+  go_executable(inject_hash
+                boringssl.googlesource.com/boringssl/util/fipstools/inject_hash)
+  add_custom_command(
+    OUTPUT bcm.o
+    COMMAND ./inject_hash -o bcm.o -in-archive $<TARGET_FILE:bcm_hashunset>
+    DEPENDS bcm_hashunset inject_hash
+    WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+  )
+  set(CRYPTO_FIPS_OBJECTS bcm.o)
+elseif(FIPS_SHARED)
+  if(NOT BUILD_SHARED_LIBS)
+    message(FATAL_ERROR "FIPS_SHARED set but not BUILD_SHARED_LIBS")
+  endif()
+
+  add_library(bcm_library STATIC ${BCM_SOURCES} ${BCM_SOURCES_ASM_USED})
+  add_dependencies(bcm_library boringssl_prefix_symbols)
+  target_include_directories(bcm_library PRIVATE ${PROJECT_SOURCE_DIR}/include)
+
+  add_custom_command(
+    OUTPUT bcm.o
+    COMMAND ${CMAKE_LINKER} -r -T ${CMAKE_CURRENT_SOURCE_DIR}/crypto/fipsmodule/fips_shared.lds -o bcm.o --whole-archive $<TARGET_FILE:bcm_library>
+    DEPENDS bcm_library crypto/fipsmodule/fips_shared.lds
+    WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+  )
+  set(CRYPTO_FIPS_OBJECTS bcm.o)
+else()
+  add_library(fipsmodule OBJECT ${BCM_SOURCES} ${BCM_SOURCES_ASM_USED})
+  add_dependencies(fipsmodule boringssl_prefix_symbols)
+  target_include_directories(fipsmodule PRIVATE ${PROJECT_SOURCE_DIR}/include)
+  set(CRYPTO_FIPS_OBJECTS $<TARGET_OBJECTS:fipsmodule>)
+endif()
+
+add_library(crypto ${CRYPTO_SOURCES} ${CRYPTO_FIPS_OBJECTS} ${CRYPTO_SOURCES_ASM_USED})
+target_include_directories(crypto PUBLIC
+  $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>
+  $<INSTALL_INTERFACE:include>
+)
+set_property(TARGET crypto PROPERTY EXPORT_NAME Crypto)
+
+if(FIPS_SHARED)
+  # Rewrite libcrypto.so to inject the correct module hash value. This assumes
+  # UNIX-style library naming, but we only support FIPS mode on Linux anyway.
+  add_custom_command(
+    TARGET crypto POST_BUILD
+    COMMAND ${GO_EXECUTABLE} run
+    ${CMAKE_CURRENT_SOURCE_DIR}/util/fipstools/inject_hash/inject_hash.go
+    -o libcrypto.so -in-object libcrypto.so
+    # The DEPENDS argument to a POST_BUILD rule appears to be ignored. Thus
+    # go_executable isn't used (as it doesn't get built), but we list this
+    # dependency anyway in case it starts working in some CMake version.
+    DEPENDS util/fipstools/inject_hash/inject_hash.go
+    WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+  )
+endif()
+
+add_dependencies(crypto boringssl_prefix_symbols)
+if(WIN32)
+  target_link_libraries(crypto ws2_32)
+endif()
+
+# CMAKE_SYSTEM_NAME is "Generic" for embedded OSes:
+# https://cmake.org/cmake/help/book/mastering-cmake/chapter/Cross%20Compiling%20With%20CMake.html#toolchain-files
+#
+# For now we assume embedded OSes do not have threads. Additionally, the Threads
+# package does not work with Android, but Android does not require any extra
+# parameters to link pthreads.
+if(NOT CMAKE_SYSTEM_NAME MATCHES "^(Generic|Android)$")
+  find_package(Threads REQUIRED)
+  target_link_libraries(crypto Threads::Threads)
+endif()
+
+# Every target depends on crypto, so we add libcxx as a dependency here to
+# simplify injecting it everywhere.
+if(USE_CUSTOM_LIBCXX)
+  target_link_libraries(crypto libcxx)
+endif()
+
+add_library(ssl ${SSL_SOURCES})
+# Although libssl also provides headers that require an include directory, the
+# flag is already specified by libcrypto, so we omit target_include_directories
+# here.
+set_property(TARGET ssl PROPERTY EXPORT_NAME SSL)
+target_link_libraries(ssl crypto)
+
+add_library(decrepit ${DECREPIT_SOURCES})
+target_link_libraries(decrepit crypto ssl)
+
+add_library(test_support_lib STATIC
+            ${TEST_SUPPORT_SOURCES} ${TEST_SUPPORT_SOURCES_ASM_USED})
+if(LIBUNWIND_FOUND)
+  target_compile_options(test_support_lib PRIVATE ${LIBUNWIND_CFLAGS_OTHER})
+  target_include_directories(test_support_lib PRIVATE ${LIBUNWIND_INCLUDE_DIRS})
+  target_link_libraries(test_support_lib ${LIBUNWIND_LDFLAGS})
+endif()
+if(WIN32)
+  target_link_libraries(test_support_lib dbghelp)
+endif()
+target_link_libraries(test_support_lib boringssl_gtest crypto)
+
+# urandom_test is a separate binary because it needs to be able to observe the
+# PRNG initialisation, which means that it can't have other tests running before
+# it does.
+add_executable(urandom_test ${URANDOM_TEST_SOURCES})
+target_link_libraries(urandom_test test_support_lib boringssl_gtest crypto)
+add_dependencies(all_tests urandom_test)
+
+add_executable(crypto_test ${CRYPTO_TEST_SOURCES})
+target_link_libraries(crypto_test test_support_lib boringssl_gtest crypto)
+add_dependencies(all_tests crypto_test)
+
+add_executable(ssl_test ${SSL_TEST_SOURCES})
+target_link_libraries(ssl_test test_support_lib boringssl_gtest ssl crypto)
+add_dependencies(all_tests ssl_test)
+add_executable(decrepit_test ${DECREPIT_TEST_SOURCES})
+target_link_libraries(decrepit_test test_support_lib boringssl_gtest
+                      decrepit crypto)
+add_dependencies(all_tests decrepit_test)
+
+if(APPLE)
+  set(PKI_CXX_FLAGS "-fno-aligned-new")
+endif()
+
+add_library(pki ${PKI_SOURCES})
+target_link_libraries(pki crypto)
+
+add_executable(pki_test ${PKI_TEST_SOURCES})
+target_link_libraries(pki_test test_support_lib boringssl_gtest pki crypto)
+add_dependencies(all_tests pki_test)
+
+# The PKI library requires C++17.
+set_target_properties(
+  pki pki_test
+  PROPERTIES
+  CXX_STANDARD 17
+  CXX_STANDARD_REQUIRED YES
+  COMPILE_FLAGS "${PKI_CXX_FLAGS}")
+
+add_executable(bssl ${BSSL_SOURCES})
+target_link_libraries(bssl ssl crypto)
+
+# Historically, targets were built in subdirectories. For compatibility with
+# existing tools, we, for now, copy the targets into the subdirectories. This
+# will be removed sometime in 2024.
+copy_post_build(crypto crypto crypto_test urandom_test)
+copy_post_build(ssl ssl ssl_test)
+copy_post_build(decrepit decrepit decrepit_test)
+copy_post_build(tool bssl)
+
+if(FUZZ)
+  if(LIBFUZZER_FROM_DEPS)
+    file(GLOB LIBFUZZER_SOURCES "util/bot/libFuzzer/*.cpp")
+    add_library(Fuzzer STATIC ${LIBFUZZER_SOURCES})
+    # libFuzzer does not pass our aggressive warnings. It also must be built
+    # without -fsanitize-coverage options or clang crashes.
+    set_target_properties(Fuzzer PROPERTIES COMPILE_FLAGS "-Wno-shadow -Wno-format-nonliteral -Wno-missing-prototypes -fsanitize-coverage=0")
+  endif()
+
+  add_subdirectory(fuzz)
+endif()
+
+if(RUST_BINDINGS)
+  find_program(BINDGEN_EXECUTABLE bindgen)
+  if(NOT BINDGEN_EXECUTABLE)
+    message(FATAL_ERROR "Could not find bindgen but was asked to generate Rust bindings.")
+  else()
+    add_subdirectory(rust)
+  endif()
+endif()
+
+if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
+  set(HANDSHAKER_ARGS "-handshaker-path" $<TARGET_FILE:handshaker>)
+endif()
+
+if(FIPS)
+  add_custom_target(
+    acvp_tests
+    COMMAND ${GO_EXECUTABLE} build -o ${CMAKE_CURRENT_BINARY_DIR}/acvptool
+            boringssl.googlesource.com/boringssl/util/fipstools/acvp/acvptool
+    COMMAND ${GO_EXECUTABLE} build -o ${CMAKE_CURRENT_BINARY_DIR}/testmodulewrapper
+            boringssl.googlesource.com/boringssl/util/fipstools/acvp/acvptool/testmodulewrapper
+    COMMAND cd util/fipstools/acvp/acvptool/test &&
+            ${GO_EXECUTABLE} run check_expected.go
+            -tool ${CMAKE_CURRENT_BINARY_DIR}/acvptool
+            -module-wrappers modulewrapper:$<TARGET_FILE:modulewrapper>,testmodulewrapper:${CMAKE_CURRENT_BINARY_DIR}/testmodulewrapper
+            -tests tests.json
+    WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+    DEPENDS modulewrapper
+    USES_TERMINAL)
+
+  add_custom_target(
+    fips_specific_tests_if_any
+    DEPENDS acvp_tests
+  )
+else()
+  add_custom_target(fips_specific_tests_if_any)
+endif()
+
+file(STRINGS util/go_tests.txt GO_TESTS)
+set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS
+             util/go_tests.txt)
+
+if(GO_EXECUTABLE)
+  add_custom_target(
+      run_tests
+      COMMAND ${CMAKE_COMMAND} -E echo "Running Go tests"
+      COMMAND ${GO_EXECUTABLE} test ${GO_TESTS}
+      COMMAND ${CMAKE_COMMAND} -E echo
+      COMMAND ${CMAKE_COMMAND} -E echo "Running unit tests"
+      COMMAND ${GO_EXECUTABLE} run util/all_tests.go -build-dir
+              ${CMAKE_CURRENT_BINARY_DIR}
+      COMMAND ${CMAKE_COMMAND} -E echo
+      COMMAND ${CMAKE_COMMAND} -E echo "Running SSL tests"
+      COMMAND cd ssl/test/runner &&
+              ${GO_EXECUTABLE} test -shim-path $<TARGET_FILE:bssl_shim>
+                ${HANDSHAKER_ARGS} ${RUNNER_ARGS}
+      WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+      DEPENDS all_tests bssl_shim handshaker fips_specific_tests_if_any
+      USES_TERMINAL)
+else()
+  add_custom_target(
+      run_tests
+      COMMAND ${CMAKE_COMMAND} -E echo "Running tests requires Go"
+      COMMAND ${CMAKE_COMMAND} -E false)
+endif()
+
+if(INSTALL_ENABLED)
+  install(TARGETS crypto ssl EXPORT OpenSSLTargets)
+  install(TARGETS bssl)
+  install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
+  install(EXPORT OpenSSLTargets
+          FILE OpenSSLTargets.cmake
+          NAMESPACE OpenSSL::
+          DESTINATION lib/cmake/OpenSSL)
+  install(FILES cmake/OpenSSLConfig.cmake DESTINATION lib/cmake/OpenSSL)
+endif()
diff --git a/CONTRIBUTING.md b/src/CONTRIBUTING.md
similarity index 100%
rename from CONTRIBUTING.md
rename to src/CONTRIBUTING.md
diff --git a/FUZZING.md b/src/FUZZING.md
similarity index 100%
rename from FUZZING.md
rename to src/FUZZING.md
diff --git a/INCORPORATING.md b/src/INCORPORATING.md
similarity index 100%
rename from INCORPORATING.md
rename to src/INCORPORATING.md
diff --git a/MODULE.bazel b/src/MODULE.bazel
similarity index 100%
rename from MODULE.bazel
rename to src/MODULE.bazel
diff --git a/MODULE.bazel.lock b/src/MODULE.bazel.lock
similarity index 100%
rename from MODULE.bazel.lock
rename to src/MODULE.bazel.lock
diff --git a/PORTING.md b/src/PORTING.md
similarity index 100%
rename from PORTING.md
rename to src/PORTING.md
diff --git a/PrivacyInfo.xcprivacy b/src/PrivacyInfo.xcprivacy
similarity index 100%
rename from PrivacyInfo.xcprivacy
rename to src/PrivacyInfo.xcprivacy
diff --git a/README.md b/src/README.md
similarity index 100%
rename from README.md
rename to src/README.md
diff --git a/SANDBOXING.md b/src/SANDBOXING.md
similarity index 100%
rename from SANDBOXING.md
rename to src/SANDBOXING.md
diff --git a/STYLE.md b/src/STYLE.md
similarity index 100%
rename from STYLE.md
rename to src/STYLE.md
diff --git a/build.json b/src/build.json
similarity index 100%
rename from build.json
rename to src/build.json
diff --git a/cmake/OpenSSLConfig.cmake b/src/cmake/OpenSSLConfig.cmake
similarity index 100%
rename from cmake/OpenSSLConfig.cmake
rename to src/cmake/OpenSSLConfig.cmake
diff --git a/cmake/go.cmake b/src/cmake/go.cmake
similarity index 100%
rename from cmake/go.cmake
rename to src/cmake/go.cmake
diff --git a/cmake/paths.cmake b/src/cmake/paths.cmake
similarity index 100%
rename from cmake/paths.cmake
rename to src/cmake/paths.cmake
diff --git a/codereview.settings b/src/codereview.settings
similarity index 100%
rename from codereview.settings
rename to src/codereview.settings
diff --git a/crypto/abi_self_test.cc b/src/crypto/abi_self_test.cc
similarity index 100%
rename from crypto/abi_self_test.cc
rename to src/crypto/abi_self_test.cc
diff --git a/crypto/asn1/a_bitstr.c b/src/crypto/asn1/a_bitstr.c
similarity index 100%
rename from crypto/asn1/a_bitstr.c
rename to src/crypto/asn1/a_bitstr.c
diff --git a/crypto/asn1/a_bool.c b/src/crypto/asn1/a_bool.c
similarity index 100%
rename from crypto/asn1/a_bool.c
rename to src/crypto/asn1/a_bool.c
diff --git a/crypto/asn1/a_d2i_fp.c b/src/crypto/asn1/a_d2i_fp.c
similarity index 100%
rename from crypto/asn1/a_d2i_fp.c
rename to src/crypto/asn1/a_d2i_fp.c
diff --git a/crypto/asn1/a_dup.c b/src/crypto/asn1/a_dup.c
similarity index 100%
rename from crypto/asn1/a_dup.c
rename to src/crypto/asn1/a_dup.c
diff --git a/crypto/asn1/a_gentm.c b/src/crypto/asn1/a_gentm.c
similarity index 100%
rename from crypto/asn1/a_gentm.c
rename to src/crypto/asn1/a_gentm.c
diff --git a/crypto/asn1/a_i2d_fp.c b/src/crypto/asn1/a_i2d_fp.c
similarity index 100%
rename from crypto/asn1/a_i2d_fp.c
rename to src/crypto/asn1/a_i2d_fp.c
diff --git a/crypto/asn1/a_int.c b/src/crypto/asn1/a_int.c
similarity index 100%
rename from crypto/asn1/a_int.c
rename to src/crypto/asn1/a_int.c
diff --git a/crypto/asn1/a_mbstr.c b/src/crypto/asn1/a_mbstr.c
similarity index 100%
rename from crypto/asn1/a_mbstr.c
rename to src/crypto/asn1/a_mbstr.c
diff --git a/crypto/asn1/a_object.c b/src/crypto/asn1/a_object.c
similarity index 100%
rename from crypto/asn1/a_object.c
rename to src/crypto/asn1/a_object.c
diff --git a/crypto/asn1/a_octet.c b/src/crypto/asn1/a_octet.c
similarity index 100%
rename from crypto/asn1/a_octet.c
rename to src/crypto/asn1/a_octet.c
diff --git a/crypto/asn1/a_strex.c b/src/crypto/asn1/a_strex.c
similarity index 100%
rename from crypto/asn1/a_strex.c
rename to src/crypto/asn1/a_strex.c
diff --git a/crypto/asn1/a_strnid.c b/src/crypto/asn1/a_strnid.c
similarity index 100%
rename from crypto/asn1/a_strnid.c
rename to src/crypto/asn1/a_strnid.c
diff --git a/crypto/asn1/a_time.c b/src/crypto/asn1/a_time.c
similarity index 100%
rename from crypto/asn1/a_time.c
rename to src/crypto/asn1/a_time.c
diff --git a/crypto/asn1/a_type.c b/src/crypto/asn1/a_type.c
similarity index 100%
rename from crypto/asn1/a_type.c
rename to src/crypto/asn1/a_type.c
diff --git a/crypto/asn1/a_utctm.c b/src/crypto/asn1/a_utctm.c
similarity index 100%
rename from crypto/asn1/a_utctm.c
rename to src/crypto/asn1/a_utctm.c
diff --git a/crypto/asn1/asn1_lib.c b/src/crypto/asn1/asn1_lib.c
similarity index 100%
rename from crypto/asn1/asn1_lib.c
rename to src/crypto/asn1/asn1_lib.c
diff --git a/crypto/asn1/asn1_par.c b/src/crypto/asn1/asn1_par.c
similarity index 100%
rename from crypto/asn1/asn1_par.c
rename to src/crypto/asn1/asn1_par.c
diff --git a/crypto/asn1/asn1_test.cc b/src/crypto/asn1/asn1_test.cc
similarity index 100%
rename from crypto/asn1/asn1_test.cc
rename to src/crypto/asn1/asn1_test.cc
diff --git a/crypto/asn1/asn_pack.c b/src/crypto/asn1/asn_pack.c
similarity index 100%
rename from crypto/asn1/asn_pack.c
rename to src/crypto/asn1/asn_pack.c
diff --git a/crypto/asn1/f_int.c b/src/crypto/asn1/f_int.c
similarity index 100%
rename from crypto/asn1/f_int.c
rename to src/crypto/asn1/f_int.c
diff --git a/crypto/asn1/f_string.c b/src/crypto/asn1/f_string.c
similarity index 100%
rename from crypto/asn1/f_string.c
rename to src/crypto/asn1/f_string.c
diff --git a/crypto/asn1/internal.h b/src/crypto/asn1/internal.h
similarity index 100%
rename from crypto/asn1/internal.h
rename to src/crypto/asn1/internal.h
diff --git a/crypto/asn1/posix_time.c b/src/crypto/asn1/posix_time.c
similarity index 100%
rename from crypto/asn1/posix_time.c
rename to src/crypto/asn1/posix_time.c
diff --git a/crypto/asn1/tasn_dec.c b/src/crypto/asn1/tasn_dec.c
similarity index 100%
rename from crypto/asn1/tasn_dec.c
rename to src/crypto/asn1/tasn_dec.c
diff --git a/crypto/asn1/tasn_enc.c b/src/crypto/asn1/tasn_enc.c
similarity index 100%
rename from crypto/asn1/tasn_enc.c
rename to src/crypto/asn1/tasn_enc.c
diff --git a/crypto/asn1/tasn_fre.c b/src/crypto/asn1/tasn_fre.c
similarity index 100%
rename from crypto/asn1/tasn_fre.c
rename to src/crypto/asn1/tasn_fre.c
diff --git a/crypto/asn1/tasn_new.c b/src/crypto/asn1/tasn_new.c
similarity index 100%
rename from crypto/asn1/tasn_new.c
rename to src/crypto/asn1/tasn_new.c
diff --git a/crypto/asn1/tasn_typ.c b/src/crypto/asn1/tasn_typ.c
similarity index 100%
rename from crypto/asn1/tasn_typ.c
rename to src/crypto/asn1/tasn_typ.c
diff --git a/crypto/asn1/tasn_utl.c b/src/crypto/asn1/tasn_utl.c
similarity index 100%
rename from crypto/asn1/tasn_utl.c
rename to src/crypto/asn1/tasn_utl.c
diff --git a/crypto/base64/base64.c b/src/crypto/base64/base64.c
similarity index 100%
rename from crypto/base64/base64.c
rename to src/crypto/base64/base64.c
diff --git a/crypto/base64/base64_test.cc b/src/crypto/base64/base64_test.cc
similarity index 100%
rename from crypto/base64/base64_test.cc
rename to src/crypto/base64/base64_test.cc
diff --git a/crypto/bcm_support.h b/src/crypto/bcm_support.h
similarity index 100%
rename from crypto/bcm_support.h
rename to src/crypto/bcm_support.h
diff --git a/crypto/bio/bio.c b/src/crypto/bio/bio.c
similarity index 100%
rename from crypto/bio/bio.c
rename to src/crypto/bio/bio.c
diff --git a/crypto/bio/bio_mem.c b/src/crypto/bio/bio_mem.c
similarity index 100%
rename from crypto/bio/bio_mem.c
rename to src/crypto/bio/bio_mem.c
diff --git a/crypto/bio/bio_test.cc b/src/crypto/bio/bio_test.cc
similarity index 100%
rename from crypto/bio/bio_test.cc
rename to src/crypto/bio/bio_test.cc
diff --git a/crypto/bio/connect.c b/src/crypto/bio/connect.c
similarity index 100%
rename from crypto/bio/connect.c
rename to src/crypto/bio/connect.c
diff --git a/crypto/bio/errno.c b/src/crypto/bio/errno.c
similarity index 100%
rename from crypto/bio/errno.c
rename to src/crypto/bio/errno.c
diff --git a/crypto/bio/fd.c b/src/crypto/bio/fd.c
similarity index 100%
rename from crypto/bio/fd.c
rename to src/crypto/bio/fd.c
diff --git a/crypto/bio/file.c b/src/crypto/bio/file.c
similarity index 100%
rename from crypto/bio/file.c
rename to src/crypto/bio/file.c
diff --git a/crypto/bio/hexdump.c b/src/crypto/bio/hexdump.c
similarity index 100%
rename from crypto/bio/hexdump.c
rename to src/crypto/bio/hexdump.c
diff --git a/crypto/bio/internal.h b/src/crypto/bio/internal.h
similarity index 100%
rename from crypto/bio/internal.h
rename to src/crypto/bio/internal.h
diff --git a/crypto/bio/pair.c b/src/crypto/bio/pair.c
similarity index 100%
rename from crypto/bio/pair.c
rename to src/crypto/bio/pair.c
diff --git a/crypto/bio/printf.c b/src/crypto/bio/printf.c
similarity index 100%
rename from crypto/bio/printf.c
rename to src/crypto/bio/printf.c
diff --git a/crypto/bio/socket.c b/src/crypto/bio/socket.c
similarity index 100%
rename from crypto/bio/socket.c
rename to src/crypto/bio/socket.c
diff --git a/crypto/bio/socket_helper.c b/src/crypto/bio/socket_helper.c
similarity index 100%
rename from crypto/bio/socket_helper.c
rename to src/crypto/bio/socket_helper.c
diff --git a/crypto/blake2/blake2.c b/src/crypto/blake2/blake2.c
similarity index 100%
rename from crypto/blake2/blake2.c
rename to src/crypto/blake2/blake2.c
diff --git a/crypto/blake2/blake2_test.cc b/src/crypto/blake2/blake2_test.cc
similarity index 100%
rename from crypto/blake2/blake2_test.cc
rename to src/crypto/blake2/blake2_test.cc
diff --git a/crypto/blake2/blake2b256_tests.txt b/src/crypto/blake2/blake2b256_tests.txt
similarity index 100%
rename from crypto/blake2/blake2b256_tests.txt
rename to src/crypto/blake2/blake2b256_tests.txt
diff --git a/crypto/bn_extra/bn_asn1.c b/src/crypto/bn_extra/bn_asn1.c
similarity index 100%
rename from crypto/bn_extra/bn_asn1.c
rename to src/crypto/bn_extra/bn_asn1.c
diff --git a/crypto/bn_extra/convert.c b/src/crypto/bn_extra/convert.c
similarity index 100%
rename from crypto/bn_extra/convert.c
rename to src/crypto/bn_extra/convert.c
diff --git a/crypto/buf/buf.c b/src/crypto/buf/buf.c
similarity index 100%
rename from crypto/buf/buf.c
rename to src/crypto/buf/buf.c
diff --git a/crypto/buf/buf_test.cc b/src/crypto/buf/buf_test.cc
similarity index 100%
rename from crypto/buf/buf_test.cc
rename to src/crypto/buf/buf_test.cc
diff --git a/crypto/bytestring/asn1_compat.c b/src/crypto/bytestring/asn1_compat.c
similarity index 100%
rename from crypto/bytestring/asn1_compat.c
rename to src/crypto/bytestring/asn1_compat.c
diff --git a/crypto/bytestring/ber.c b/src/crypto/bytestring/ber.c
similarity index 100%
rename from crypto/bytestring/ber.c
rename to src/crypto/bytestring/ber.c
diff --git a/crypto/bytestring/bytestring_test.cc b/src/crypto/bytestring/bytestring_test.cc
similarity index 100%
rename from crypto/bytestring/bytestring_test.cc
rename to src/crypto/bytestring/bytestring_test.cc
diff --git a/crypto/bytestring/cbb.c b/src/crypto/bytestring/cbb.c
similarity index 100%
rename from crypto/bytestring/cbb.c
rename to src/crypto/bytestring/cbb.c
diff --git a/crypto/bytestring/cbs.c b/src/crypto/bytestring/cbs.c
similarity index 100%
rename from crypto/bytestring/cbs.c
rename to src/crypto/bytestring/cbs.c
diff --git a/crypto/bytestring/internal.h b/src/crypto/bytestring/internal.h
similarity index 100%
rename from crypto/bytestring/internal.h
rename to src/crypto/bytestring/internal.h
diff --git a/crypto/bytestring/unicode.c b/src/crypto/bytestring/unicode.c
similarity index 100%
rename from crypto/bytestring/unicode.c
rename to src/crypto/bytestring/unicode.c
diff --git a/crypto/chacha/asm/chacha-armv4.pl b/src/crypto/chacha/asm/chacha-armv4.pl
similarity index 100%
rename from crypto/chacha/asm/chacha-armv4.pl
rename to src/crypto/chacha/asm/chacha-armv4.pl
diff --git a/crypto/chacha/asm/chacha-armv8.pl b/src/crypto/chacha/asm/chacha-armv8.pl
similarity index 100%
rename from crypto/chacha/asm/chacha-armv8.pl
rename to src/crypto/chacha/asm/chacha-armv8.pl
diff --git a/crypto/chacha/asm/chacha-x86.pl b/src/crypto/chacha/asm/chacha-x86.pl
similarity index 100%
rename from crypto/chacha/asm/chacha-x86.pl
rename to src/crypto/chacha/asm/chacha-x86.pl
diff --git a/crypto/chacha/asm/chacha-x86_64.pl b/src/crypto/chacha/asm/chacha-x86_64.pl
similarity index 100%
rename from crypto/chacha/asm/chacha-x86_64.pl
rename to src/crypto/chacha/asm/chacha-x86_64.pl
diff --git a/crypto/chacha/chacha.c b/src/crypto/chacha/chacha.c
similarity index 100%
rename from crypto/chacha/chacha.c
rename to src/crypto/chacha/chacha.c
diff --git a/crypto/chacha/chacha_test.cc b/src/crypto/chacha/chacha_test.cc
similarity index 100%
rename from crypto/chacha/chacha_test.cc
rename to src/crypto/chacha/chacha_test.cc
diff --git a/crypto/chacha/internal.h b/src/crypto/chacha/internal.h
similarity index 100%
rename from crypto/chacha/internal.h
rename to src/crypto/chacha/internal.h
diff --git a/crypto/cipher_extra/aead_test.cc b/src/crypto/cipher_extra/aead_test.cc
similarity index 100%
rename from crypto/cipher_extra/aead_test.cc
rename to src/crypto/cipher_extra/aead_test.cc
diff --git a/crypto/cipher_extra/asm/aes128gcmsiv-x86_64.pl b/src/crypto/cipher_extra/asm/aes128gcmsiv-x86_64.pl
similarity index 100%
rename from crypto/cipher_extra/asm/aes128gcmsiv-x86_64.pl
rename to src/crypto/cipher_extra/asm/aes128gcmsiv-x86_64.pl
diff --git a/crypto/cipher_extra/asm/chacha20_poly1305_armv8.pl b/src/crypto/cipher_extra/asm/chacha20_poly1305_armv8.pl
similarity index 100%
rename from crypto/cipher_extra/asm/chacha20_poly1305_armv8.pl
rename to src/crypto/cipher_extra/asm/chacha20_poly1305_armv8.pl
diff --git a/crypto/cipher_extra/asm/chacha20_poly1305_x86_64.pl b/src/crypto/cipher_extra/asm/chacha20_poly1305_x86_64.pl
similarity index 100%
rename from crypto/cipher_extra/asm/chacha20_poly1305_x86_64.pl
rename to src/crypto/cipher_extra/asm/chacha20_poly1305_x86_64.pl
diff --git a/crypto/cipher_extra/cipher_extra.c b/src/crypto/cipher_extra/cipher_extra.c
similarity index 100%
rename from crypto/cipher_extra/cipher_extra.c
rename to src/crypto/cipher_extra/cipher_extra.c
diff --git a/crypto/cipher_extra/cipher_test.cc b/src/crypto/cipher_extra/cipher_test.cc
similarity index 100%
rename from crypto/cipher_extra/cipher_test.cc
rename to src/crypto/cipher_extra/cipher_test.cc
diff --git a/crypto/cipher_extra/derive_key.c b/src/crypto/cipher_extra/derive_key.c
similarity index 100%
rename from crypto/cipher_extra/derive_key.c
rename to src/crypto/cipher_extra/derive_key.c
diff --git a/crypto/cipher_extra/e_aesctrhmac.c b/src/crypto/cipher_extra/e_aesctrhmac.c
similarity index 100%
rename from crypto/cipher_extra/e_aesctrhmac.c
rename to src/crypto/cipher_extra/e_aesctrhmac.c
diff --git a/crypto/cipher_extra/e_aesgcmsiv.c b/src/crypto/cipher_extra/e_aesgcmsiv.c
similarity index 100%
rename from crypto/cipher_extra/e_aesgcmsiv.c
rename to src/crypto/cipher_extra/e_aesgcmsiv.c
diff --git a/crypto/cipher_extra/e_chacha20poly1305.c b/src/crypto/cipher_extra/e_chacha20poly1305.c
similarity index 100%
rename from crypto/cipher_extra/e_chacha20poly1305.c
rename to src/crypto/cipher_extra/e_chacha20poly1305.c
diff --git a/crypto/cipher_extra/e_des.c b/src/crypto/cipher_extra/e_des.c
similarity index 100%
rename from crypto/cipher_extra/e_des.c
rename to src/crypto/cipher_extra/e_des.c
diff --git a/crypto/cipher_extra/e_null.c b/src/crypto/cipher_extra/e_null.c
similarity index 100%
rename from crypto/cipher_extra/e_null.c
rename to src/crypto/cipher_extra/e_null.c
diff --git a/crypto/cipher_extra/e_rc2.c b/src/crypto/cipher_extra/e_rc2.c
similarity index 100%
rename from crypto/cipher_extra/e_rc2.c
rename to src/crypto/cipher_extra/e_rc2.c
diff --git a/crypto/cipher_extra/e_rc4.c b/src/crypto/cipher_extra/e_rc4.c
similarity index 100%
rename from crypto/cipher_extra/e_rc4.c
rename to src/crypto/cipher_extra/e_rc4.c
diff --git a/crypto/cipher_extra/e_tls.c b/src/crypto/cipher_extra/e_tls.c
similarity index 100%
rename from crypto/cipher_extra/e_tls.c
rename to src/crypto/cipher_extra/e_tls.c
diff --git a/crypto/cipher_extra/internal.h b/src/crypto/cipher_extra/internal.h
similarity index 100%
rename from crypto/cipher_extra/internal.h
rename to src/crypto/cipher_extra/internal.h
diff --git a/crypto/cipher_extra/test/aes_128_cbc_sha1_tls_implicit_iv_tests.txt b/src/crypto/cipher_extra/test/aes_128_cbc_sha1_tls_implicit_iv_tests.txt
similarity index 100%
rename from crypto/cipher_extra/test/aes_128_cbc_sha1_tls_implicit_iv_tests.txt
rename to src/crypto/cipher_extra/test/aes_128_cbc_sha1_tls_implicit_iv_tests.txt
diff --git a/crypto/cipher_extra/test/aes_128_cbc_sha1_tls_tests.txt b/src/crypto/cipher_extra/test/aes_128_cbc_sha1_tls_tests.txt
similarity index 100%
rename from crypto/cipher_extra/test/aes_128_cbc_sha1_tls_tests.txt
rename to src/crypto/cipher_extra/test/aes_128_cbc_sha1_tls_tests.txt
diff --git a/crypto/cipher_extra/test/aes_128_ccm_bluetooth_8_tests.txt b/src/crypto/cipher_extra/test/aes_128_ccm_bluetooth_8_tests.txt
similarity index 100%
rename from crypto/cipher_extra/test/aes_128_ccm_bluetooth_8_tests.txt
rename to src/crypto/cipher_extra/test/aes_128_ccm_bluetooth_8_tests.txt
diff --git a/crypto/cipher_extra/test/aes_128_ccm_bluetooth_tests.txt b/src/crypto/cipher_extra/test/aes_128_ccm_bluetooth_tests.txt
similarity index 100%
rename from crypto/cipher_extra/test/aes_128_ccm_bluetooth_tests.txt
rename to src/crypto/cipher_extra/test/aes_128_ccm_bluetooth_tests.txt
diff --git a/crypto/cipher_extra/test/aes_128_ccm_matter_tests.txt b/src/crypto/cipher_extra/test/aes_128_ccm_matter_tests.txt
similarity index 100%
rename from crypto/cipher_extra/test/aes_128_ccm_matter_tests.txt
rename to src/crypto/cipher_extra/test/aes_128_ccm_matter_tests.txt
diff --git a/crypto/cipher_extra/test/aes_128_ctr_hmac_sha256.txt b/src/crypto/cipher_extra/test/aes_128_ctr_hmac_sha256.txt
similarity index 100%
rename from crypto/cipher_extra/test/aes_128_ctr_hmac_sha256.txt
rename to src/crypto/cipher_extra/test/aes_128_ctr_hmac_sha256.txt
diff --git a/crypto/cipher_extra/test/aes_128_gcm_randnonce_tests.txt b/src/crypto/cipher_extra/test/aes_128_gcm_randnonce_tests.txt
similarity index 100%
rename from crypto/cipher_extra/test/aes_128_gcm_randnonce_tests.txt
rename to src/crypto/cipher_extra/test/aes_128_gcm_randnonce_tests.txt
diff --git a/crypto/cipher_extra/test/aes_128_gcm_siv_tests.txt b/src/crypto/cipher_extra/test/aes_128_gcm_siv_tests.txt
similarity index 100%
rename from crypto/cipher_extra/test/aes_128_gcm_siv_tests.txt
rename to src/crypto/cipher_extra/test/aes_128_gcm_siv_tests.txt
diff --git a/crypto/cipher_extra/test/aes_128_gcm_tests.txt b/src/crypto/cipher_extra/test/aes_128_gcm_tests.txt
similarity index 100%
rename from crypto/cipher_extra/test/aes_128_gcm_tests.txt
rename to src/crypto/cipher_extra/test/aes_128_gcm_tests.txt
diff --git a/crypto/cipher_extra/test/aes_192_gcm_tests.txt b/src/crypto/cipher_extra/test/aes_192_gcm_tests.txt
similarity index 100%
rename from crypto/cipher_extra/test/aes_192_gcm_tests.txt
rename to src/crypto/cipher_extra/test/aes_192_gcm_tests.txt
diff --git a/crypto/cipher_extra/test/aes_256_cbc_sha1_tls_implicit_iv_tests.txt b/src/crypto/cipher_extra/test/aes_256_cbc_sha1_tls_implicit_iv_tests.txt
similarity index 100%
rename from crypto/cipher_extra/test/aes_256_cbc_sha1_tls_implicit_iv_tests.txt
rename to src/crypto/cipher_extra/test/aes_256_cbc_sha1_tls_implicit_iv_tests.txt
diff --git a/crypto/cipher_extra/test/aes_256_cbc_sha1_tls_tests.txt b/src/crypto/cipher_extra/test/aes_256_cbc_sha1_tls_tests.txt
similarity index 100%
rename from crypto/cipher_extra/test/aes_256_cbc_sha1_tls_tests.txt
rename to src/crypto/cipher_extra/test/aes_256_cbc_sha1_tls_tests.txt
diff --git a/crypto/cipher_extra/test/aes_256_ctr_hmac_sha256.txt b/src/crypto/cipher_extra/test/aes_256_ctr_hmac_sha256.txt
similarity index 100%
rename from crypto/cipher_extra/test/aes_256_ctr_hmac_sha256.txt
rename to src/crypto/cipher_extra/test/aes_256_ctr_hmac_sha256.txt
diff --git a/crypto/cipher_extra/test/aes_256_gcm_randnonce_tests.txt b/src/crypto/cipher_extra/test/aes_256_gcm_randnonce_tests.txt
similarity index 100%
rename from crypto/cipher_extra/test/aes_256_gcm_randnonce_tests.txt
rename to src/crypto/cipher_extra/test/aes_256_gcm_randnonce_tests.txt
diff --git a/crypto/cipher_extra/test/aes_256_gcm_siv_tests.txt b/src/crypto/cipher_extra/test/aes_256_gcm_siv_tests.txt
similarity index 100%
rename from crypto/cipher_extra/test/aes_256_gcm_siv_tests.txt
rename to src/crypto/cipher_extra/test/aes_256_gcm_siv_tests.txt
diff --git a/crypto/cipher_extra/test/aes_256_gcm_tests.txt b/src/crypto/cipher_extra/test/aes_256_gcm_tests.txt
similarity index 100%
rename from crypto/cipher_extra/test/aes_256_gcm_tests.txt
rename to src/crypto/cipher_extra/test/aes_256_gcm_tests.txt
diff --git a/crypto/cipher_extra/test/chacha20_poly1305_tests.txt b/src/crypto/cipher_extra/test/chacha20_poly1305_tests.txt
similarity index 100%
rename from crypto/cipher_extra/test/chacha20_poly1305_tests.txt
rename to src/crypto/cipher_extra/test/chacha20_poly1305_tests.txt
diff --git a/crypto/cipher_extra/test/cipher_tests.txt b/src/crypto/cipher_extra/test/cipher_tests.txt
similarity index 100%
rename from crypto/cipher_extra/test/cipher_tests.txt
rename to src/crypto/cipher_extra/test/cipher_tests.txt
diff --git a/crypto/cipher_extra/test/des_ede3_cbc_sha1_tls_implicit_iv_tests.txt b/src/crypto/cipher_extra/test/des_ede3_cbc_sha1_tls_implicit_iv_tests.txt
similarity index 100%
rename from crypto/cipher_extra/test/des_ede3_cbc_sha1_tls_implicit_iv_tests.txt
rename to src/crypto/cipher_extra/test/des_ede3_cbc_sha1_tls_implicit_iv_tests.txt
diff --git a/crypto/cipher_extra/test/des_ede3_cbc_sha1_tls_tests.txt b/src/crypto/cipher_extra/test/des_ede3_cbc_sha1_tls_tests.txt
similarity index 100%
rename from crypto/cipher_extra/test/des_ede3_cbc_sha1_tls_tests.txt
rename to src/crypto/cipher_extra/test/des_ede3_cbc_sha1_tls_tests.txt
diff --git a/crypto/cipher_extra/test/make_all_legacy_aead_tests.sh b/src/crypto/cipher_extra/test/make_all_legacy_aead_tests.sh
similarity index 100%
rename from crypto/cipher_extra/test/make_all_legacy_aead_tests.sh
rename to src/crypto/cipher_extra/test/make_all_legacy_aead_tests.sh
diff --git a/crypto/cipher_extra/test/make_legacy_aead_tests.go b/src/crypto/cipher_extra/test/make_legacy_aead_tests.go
similarity index 100%
rename from crypto/cipher_extra/test/make_legacy_aead_tests.go
rename to src/crypto/cipher_extra/test/make_legacy_aead_tests.go
diff --git a/crypto/cipher_extra/test/nist_cavp/aes_128_cbc.txt b/src/crypto/cipher_extra/test/nist_cavp/aes_128_cbc.txt
similarity index 100%
rename from crypto/cipher_extra/test/nist_cavp/aes_128_cbc.txt
rename to src/crypto/cipher_extra/test/nist_cavp/aes_128_cbc.txt
diff --git a/crypto/cipher_extra/test/nist_cavp/aes_128_ctr.txt b/src/crypto/cipher_extra/test/nist_cavp/aes_128_ctr.txt
similarity index 100%
rename from crypto/cipher_extra/test/nist_cavp/aes_128_ctr.txt
rename to src/crypto/cipher_extra/test/nist_cavp/aes_128_ctr.txt
diff --git a/crypto/cipher_extra/test/nist_cavp/aes_128_gcm.txt b/src/crypto/cipher_extra/test/nist_cavp/aes_128_gcm.txt
similarity index 100%
rename from crypto/cipher_extra/test/nist_cavp/aes_128_gcm.txt
rename to src/crypto/cipher_extra/test/nist_cavp/aes_128_gcm.txt
diff --git a/crypto/cipher_extra/test/nist_cavp/aes_192_cbc.txt b/src/crypto/cipher_extra/test/nist_cavp/aes_192_cbc.txt
similarity index 100%
rename from crypto/cipher_extra/test/nist_cavp/aes_192_cbc.txt
rename to src/crypto/cipher_extra/test/nist_cavp/aes_192_cbc.txt
diff --git a/crypto/cipher_extra/test/nist_cavp/aes_192_ctr.txt b/src/crypto/cipher_extra/test/nist_cavp/aes_192_ctr.txt
similarity index 100%
rename from crypto/cipher_extra/test/nist_cavp/aes_192_ctr.txt
rename to src/crypto/cipher_extra/test/nist_cavp/aes_192_ctr.txt
diff --git a/crypto/cipher_extra/test/nist_cavp/aes_256_cbc.txt b/src/crypto/cipher_extra/test/nist_cavp/aes_256_cbc.txt
similarity index 100%
rename from crypto/cipher_extra/test/nist_cavp/aes_256_cbc.txt
rename to src/crypto/cipher_extra/test/nist_cavp/aes_256_cbc.txt
diff --git a/crypto/cipher_extra/test/nist_cavp/aes_256_ctr.txt b/src/crypto/cipher_extra/test/nist_cavp/aes_256_ctr.txt
similarity index 100%
rename from crypto/cipher_extra/test/nist_cavp/aes_256_ctr.txt
rename to src/crypto/cipher_extra/test/nist_cavp/aes_256_ctr.txt
diff --git a/crypto/cipher_extra/test/nist_cavp/aes_256_gcm.txt b/src/crypto/cipher_extra/test/nist_cavp/aes_256_gcm.txt
similarity index 100%
rename from crypto/cipher_extra/test/nist_cavp/aes_256_gcm.txt
rename to src/crypto/cipher_extra/test/nist_cavp/aes_256_gcm.txt
diff --git a/crypto/cipher_extra/test/nist_cavp/make_cavp.go b/src/crypto/cipher_extra/test/nist_cavp/make_cavp.go
similarity index 100%
rename from crypto/cipher_extra/test/nist_cavp/make_cavp.go
rename to src/crypto/cipher_extra/test/nist_cavp/make_cavp.go
diff --git a/crypto/cipher_extra/test/nist_cavp/tdes_cbc.txt b/src/crypto/cipher_extra/test/nist_cavp/tdes_cbc.txt
similarity index 100%
rename from crypto/cipher_extra/test/nist_cavp/tdes_cbc.txt
rename to src/crypto/cipher_extra/test/nist_cavp/tdes_cbc.txt
diff --git a/crypto/cipher_extra/test/nist_cavp/tdes_ecb.txt b/src/crypto/cipher_extra/test/nist_cavp/tdes_ecb.txt
similarity index 100%
rename from crypto/cipher_extra/test/nist_cavp/tdes_ecb.txt
rename to src/crypto/cipher_extra/test/nist_cavp/tdes_ecb.txt
diff --git a/crypto/cipher_extra/test/xchacha20_poly1305_tests.txt b/src/crypto/cipher_extra/test/xchacha20_poly1305_tests.txt
similarity index 100%
rename from crypto/cipher_extra/test/xchacha20_poly1305_tests.txt
rename to src/crypto/cipher_extra/test/xchacha20_poly1305_tests.txt
diff --git a/crypto/cipher_extra/tls_cbc.c b/src/crypto/cipher_extra/tls_cbc.c
similarity index 100%
rename from crypto/cipher_extra/tls_cbc.c
rename to src/crypto/cipher_extra/tls_cbc.c
diff --git a/crypto/compiler_test.cc b/src/crypto/compiler_test.cc
similarity index 100%
rename from crypto/compiler_test.cc
rename to src/crypto/compiler_test.cc
diff --git a/crypto/conf/conf.c b/src/crypto/conf/conf.c
similarity index 100%
rename from crypto/conf/conf.c
rename to src/crypto/conf/conf.c
diff --git a/crypto/conf/conf_test.cc b/src/crypto/conf/conf_test.cc
similarity index 100%
rename from crypto/conf/conf_test.cc
rename to src/crypto/conf/conf_test.cc
diff --git a/crypto/conf/internal.h b/src/crypto/conf/internal.h
similarity index 100%
rename from crypto/conf/internal.h
rename to src/crypto/conf/internal.h
diff --git a/crypto/constant_time_test.cc b/src/crypto/constant_time_test.cc
similarity index 100%
rename from crypto/constant_time_test.cc
rename to src/crypto/constant_time_test.cc
diff --git a/crypto/cpu_aarch64_apple.c b/src/crypto/cpu_aarch64_apple.c
similarity index 100%
rename from crypto/cpu_aarch64_apple.c
rename to src/crypto/cpu_aarch64_apple.c
diff --git a/crypto/cpu_aarch64_fuchsia.c b/src/crypto/cpu_aarch64_fuchsia.c
similarity index 100%
rename from crypto/cpu_aarch64_fuchsia.c
rename to src/crypto/cpu_aarch64_fuchsia.c
diff --git a/crypto/cpu_aarch64_linux.c b/src/crypto/cpu_aarch64_linux.c
similarity index 100%
rename from crypto/cpu_aarch64_linux.c
rename to src/crypto/cpu_aarch64_linux.c
diff --git a/crypto/cpu_aarch64_openbsd.c b/src/crypto/cpu_aarch64_openbsd.c
similarity index 100%
rename from crypto/cpu_aarch64_openbsd.c
rename to src/crypto/cpu_aarch64_openbsd.c
diff --git a/crypto/cpu_aarch64_sysreg.c b/src/crypto/cpu_aarch64_sysreg.c
similarity index 100%
rename from crypto/cpu_aarch64_sysreg.c
rename to src/crypto/cpu_aarch64_sysreg.c
diff --git a/crypto/cpu_aarch64_win.c b/src/crypto/cpu_aarch64_win.c
similarity index 100%
rename from crypto/cpu_aarch64_win.c
rename to src/crypto/cpu_aarch64_win.c
diff --git a/crypto/cpu_arm_freebsd.c b/src/crypto/cpu_arm_freebsd.c
similarity index 100%
rename from crypto/cpu_arm_freebsd.c
rename to src/crypto/cpu_arm_freebsd.c
diff --git a/crypto/cpu_arm_linux.c b/src/crypto/cpu_arm_linux.c
similarity index 100%
rename from crypto/cpu_arm_linux.c
rename to src/crypto/cpu_arm_linux.c
diff --git a/crypto/cpu_arm_linux.h b/src/crypto/cpu_arm_linux.h
similarity index 100%
rename from crypto/cpu_arm_linux.h
rename to src/crypto/cpu_arm_linux.h
diff --git a/crypto/cpu_arm_linux_test.cc b/src/crypto/cpu_arm_linux_test.cc
similarity index 100%
rename from crypto/cpu_arm_linux_test.cc
rename to src/crypto/cpu_arm_linux_test.cc
diff --git a/crypto/cpu_intel.c b/src/crypto/cpu_intel.c
similarity index 100%
rename from crypto/cpu_intel.c
rename to src/crypto/cpu_intel.c
diff --git a/crypto/crypto.c b/src/crypto/crypto.c
similarity index 100%
rename from crypto/crypto.c
rename to src/crypto/crypto.c
diff --git a/crypto/crypto_test.cc b/src/crypto/crypto_test.cc
similarity index 100%
rename from crypto/crypto_test.cc
rename to src/crypto/crypto_test.cc
diff --git a/crypto/curve25519/asm/x25519-asm-arm.S b/src/crypto/curve25519/asm/x25519-asm-arm.S
similarity index 100%
rename from crypto/curve25519/asm/x25519-asm-arm.S
rename to src/crypto/curve25519/asm/x25519-asm-arm.S
diff --git a/crypto/curve25519/curve25519.c b/src/crypto/curve25519/curve25519.c
similarity index 100%
rename from crypto/curve25519/curve25519.c
rename to src/crypto/curve25519/curve25519.c
diff --git a/crypto/curve25519/curve25519_64_adx.c b/src/crypto/curve25519/curve25519_64_adx.c
similarity index 100%
rename from crypto/curve25519/curve25519_64_adx.c
rename to src/crypto/curve25519/curve25519_64_adx.c
diff --git a/crypto/curve25519/curve25519_tables.h b/src/crypto/curve25519/curve25519_tables.h
similarity index 100%
rename from crypto/curve25519/curve25519_tables.h
rename to src/crypto/curve25519/curve25519_tables.h
diff --git a/crypto/curve25519/ed25519_test.cc b/src/crypto/curve25519/ed25519_test.cc
similarity index 100%
rename from crypto/curve25519/ed25519_test.cc
rename to src/crypto/curve25519/ed25519_test.cc
diff --git a/crypto/curve25519/ed25519_tests.txt b/src/crypto/curve25519/ed25519_tests.txt
similarity index 100%
rename from crypto/curve25519/ed25519_tests.txt
rename to src/crypto/curve25519/ed25519_tests.txt
diff --git a/crypto/curve25519/internal.h b/src/crypto/curve25519/internal.h
similarity index 100%
rename from crypto/curve25519/internal.h
rename to src/crypto/curve25519/internal.h
diff --git a/crypto/curve25519/make_curve25519_tables.py b/src/crypto/curve25519/make_curve25519_tables.py
similarity index 100%
rename from crypto/curve25519/make_curve25519_tables.py
rename to src/crypto/curve25519/make_curve25519_tables.py
diff --git a/crypto/curve25519/spake25519.c b/src/crypto/curve25519/spake25519.c
similarity index 100%
rename from crypto/curve25519/spake25519.c
rename to src/crypto/curve25519/spake25519.c
diff --git a/crypto/curve25519/spake25519_test.cc b/src/crypto/curve25519/spake25519_test.cc
similarity index 100%
rename from crypto/curve25519/spake25519_test.cc
rename to src/crypto/curve25519/spake25519_test.cc
diff --git a/crypto/curve25519/x25519_test.cc b/src/crypto/curve25519/x25519_test.cc
similarity index 100%
rename from crypto/curve25519/x25519_test.cc
rename to src/crypto/curve25519/x25519_test.cc
diff --git a/crypto/des/des.c b/src/crypto/des/des.c
similarity index 100%
rename from crypto/des/des.c
rename to src/crypto/des/des.c
diff --git a/crypto/des/internal.h b/src/crypto/des/internal.h
similarity index 100%
rename from crypto/des/internal.h
rename to src/crypto/des/internal.h
diff --git a/crypto/dh_extra/dh_asn1.c b/src/crypto/dh_extra/dh_asn1.c
similarity index 100%
rename from crypto/dh_extra/dh_asn1.c
rename to src/crypto/dh_extra/dh_asn1.c
diff --git a/crypto/dh_extra/dh_test.cc b/src/crypto/dh_extra/dh_test.cc
similarity index 100%
rename from crypto/dh_extra/dh_test.cc
rename to src/crypto/dh_extra/dh_test.cc
diff --git a/crypto/dh_extra/params.c b/src/crypto/dh_extra/params.c
similarity index 100%
rename from crypto/dh_extra/params.c
rename to src/crypto/dh_extra/params.c
diff --git a/crypto/digest_extra/digest_extra.c b/src/crypto/digest_extra/digest_extra.c
similarity index 100%
rename from crypto/digest_extra/digest_extra.c
rename to src/crypto/digest_extra/digest_extra.c
diff --git a/crypto/digest_extra/digest_test.cc b/src/crypto/digest_extra/digest_test.cc
similarity index 100%
rename from crypto/digest_extra/digest_test.cc
rename to src/crypto/digest_extra/digest_test.cc
diff --git a/crypto/dilithium/dilithium.c b/src/crypto/dilithium/dilithium.c
similarity index 100%
rename from crypto/dilithium/dilithium.c
rename to src/crypto/dilithium/dilithium.c
diff --git a/crypto/dilithium/dilithium_test.cc b/src/crypto/dilithium/dilithium_test.cc
similarity index 100%
rename from crypto/dilithium/dilithium_test.cc
rename to src/crypto/dilithium/dilithium_test.cc
diff --git a/crypto/dilithium/dilithium_tests.txt b/src/crypto/dilithium/dilithium_tests.txt
similarity index 100%
rename from crypto/dilithium/dilithium_tests.txt
rename to src/crypto/dilithium/dilithium_tests.txt
diff --git a/crypto/dilithium/edge_cases_draft_dilithium3_sign.txt b/src/crypto/dilithium/edge_cases_draft_dilithium3_sign.txt
similarity index 100%
rename from crypto/dilithium/edge_cases_draft_dilithium3_sign.txt
rename to src/crypto/dilithium/edge_cases_draft_dilithium3_sign.txt
diff --git a/crypto/dilithium/edge_cases_draft_dilithium3_verify.txt b/src/crypto/dilithium/edge_cases_draft_dilithium3_verify.txt
similarity index 100%
rename from crypto/dilithium/edge_cases_draft_dilithium3_verify.txt
rename to src/crypto/dilithium/edge_cases_draft_dilithium3_verify.txt
diff --git a/crypto/dilithium/internal.h b/src/crypto/dilithium/internal.h
similarity index 100%
rename from crypto/dilithium/internal.h
rename to src/crypto/dilithium/internal.h
diff --git a/crypto/dsa/dsa.c b/src/crypto/dsa/dsa.c
similarity index 100%
rename from crypto/dsa/dsa.c
rename to src/crypto/dsa/dsa.c
diff --git a/crypto/dsa/dsa_asn1.c b/src/crypto/dsa/dsa_asn1.c
similarity index 100%
rename from crypto/dsa/dsa_asn1.c
rename to src/crypto/dsa/dsa_asn1.c
diff --git a/crypto/dsa/dsa_test.cc b/src/crypto/dsa/dsa_test.cc
similarity index 100%
rename from crypto/dsa/dsa_test.cc
rename to src/crypto/dsa/dsa_test.cc
diff --git a/crypto/dsa/internal.h b/src/crypto/dsa/internal.h
similarity index 100%
rename from crypto/dsa/internal.h
rename to src/crypto/dsa/internal.h
diff --git a/crypto/ec_extra/ec_asn1.c b/src/crypto/ec_extra/ec_asn1.c
similarity index 100%
rename from crypto/ec_extra/ec_asn1.c
rename to src/crypto/ec_extra/ec_asn1.c
diff --git a/crypto/ec_extra/ec_derive.c b/src/crypto/ec_extra/ec_derive.c
similarity index 100%
rename from crypto/ec_extra/ec_derive.c
rename to src/crypto/ec_extra/ec_derive.c
diff --git a/crypto/ec_extra/hash_to_curve.c b/src/crypto/ec_extra/hash_to_curve.c
similarity index 100%
rename from crypto/ec_extra/hash_to_curve.c
rename to src/crypto/ec_extra/hash_to_curve.c
diff --git a/crypto/ec_extra/internal.h b/src/crypto/ec_extra/internal.h
similarity index 100%
rename from crypto/ec_extra/internal.h
rename to src/crypto/ec_extra/internal.h
diff --git a/crypto/ecdh_extra/ecdh_extra.c b/src/crypto/ecdh_extra/ecdh_extra.c
similarity index 100%
rename from crypto/ecdh_extra/ecdh_extra.c
rename to src/crypto/ecdh_extra/ecdh_extra.c
diff --git a/crypto/ecdh_extra/ecdh_test.cc b/src/crypto/ecdh_extra/ecdh_test.cc
similarity index 100%
rename from crypto/ecdh_extra/ecdh_test.cc
rename to src/crypto/ecdh_extra/ecdh_test.cc
diff --git a/crypto/ecdh_extra/ecdh_tests.txt b/src/crypto/ecdh_extra/ecdh_tests.txt
similarity index 100%
rename from crypto/ecdh_extra/ecdh_tests.txt
rename to src/crypto/ecdh_extra/ecdh_tests.txt
diff --git a/crypto/ecdsa_extra/ecdsa_asn1.c b/src/crypto/ecdsa_extra/ecdsa_asn1.c
similarity index 100%
rename from crypto/ecdsa_extra/ecdsa_asn1.c
rename to src/crypto/ecdsa_extra/ecdsa_asn1.c
diff --git a/crypto/engine/engine.c b/src/crypto/engine/engine.c
similarity index 100%
rename from crypto/engine/engine.c
rename to src/crypto/engine/engine.c
diff --git a/crypto/err/asn1.errordata b/src/crypto/err/asn1.errordata
similarity index 100%
rename from crypto/err/asn1.errordata
rename to src/crypto/err/asn1.errordata
diff --git a/crypto/err/bio.errordata b/src/crypto/err/bio.errordata
similarity index 100%
rename from crypto/err/bio.errordata
rename to src/crypto/err/bio.errordata
diff --git a/crypto/err/bn.errordata b/src/crypto/err/bn.errordata
similarity index 100%
rename from crypto/err/bn.errordata
rename to src/crypto/err/bn.errordata
diff --git a/crypto/err/cipher.errordata b/src/crypto/err/cipher.errordata
similarity index 100%
rename from crypto/err/cipher.errordata
rename to src/crypto/err/cipher.errordata
diff --git a/crypto/err/conf.errordata b/src/crypto/err/conf.errordata
similarity index 100%
rename from crypto/err/conf.errordata
rename to src/crypto/err/conf.errordata
diff --git a/crypto/err/dh.errordata b/src/crypto/err/dh.errordata
similarity index 100%
rename from crypto/err/dh.errordata
rename to src/crypto/err/dh.errordata
diff --git a/crypto/err/digest.errordata b/src/crypto/err/digest.errordata
similarity index 100%
rename from crypto/err/digest.errordata
rename to src/crypto/err/digest.errordata
diff --git a/crypto/err/dsa.errordata b/src/crypto/err/dsa.errordata
similarity index 100%
rename from crypto/err/dsa.errordata
rename to src/crypto/err/dsa.errordata
diff --git a/crypto/err/ec.errordata b/src/crypto/err/ec.errordata
similarity index 100%
rename from crypto/err/ec.errordata
rename to src/crypto/err/ec.errordata
diff --git a/crypto/err/ecdh.errordata b/src/crypto/err/ecdh.errordata
similarity index 100%
rename from crypto/err/ecdh.errordata
rename to src/crypto/err/ecdh.errordata
diff --git a/crypto/err/ecdsa.errordata b/src/crypto/err/ecdsa.errordata
similarity index 100%
rename from crypto/err/ecdsa.errordata
rename to src/crypto/err/ecdsa.errordata
diff --git a/crypto/err/engine.errordata b/src/crypto/err/engine.errordata
similarity index 100%
rename from crypto/err/engine.errordata
rename to src/crypto/err/engine.errordata
diff --git a/crypto/err/err.c b/src/crypto/err/err.c
similarity index 100%
rename from crypto/err/err.c
rename to src/crypto/err/err.c
diff --git a/crypto/err/err_test.cc b/src/crypto/err/err_test.cc
similarity index 100%
rename from crypto/err/err_test.cc
rename to src/crypto/err/err_test.cc
diff --git a/crypto/err/evp.errordata b/src/crypto/err/evp.errordata
similarity index 100%
rename from crypto/err/evp.errordata
rename to src/crypto/err/evp.errordata
diff --git a/crypto/err/hkdf.errordata b/src/crypto/err/hkdf.errordata
similarity index 100%
rename from crypto/err/hkdf.errordata
rename to src/crypto/err/hkdf.errordata
diff --git a/crypto/err/internal.h b/src/crypto/err/internal.h
similarity index 100%
rename from crypto/err/internal.h
rename to src/crypto/err/internal.h
diff --git a/crypto/err/obj.errordata b/src/crypto/err/obj.errordata
similarity index 100%
rename from crypto/err/obj.errordata
rename to src/crypto/err/obj.errordata
diff --git a/crypto/err/pem.errordata b/src/crypto/err/pem.errordata
similarity index 100%
rename from crypto/err/pem.errordata
rename to src/crypto/err/pem.errordata
diff --git a/crypto/err/pkcs7.errordata b/src/crypto/err/pkcs7.errordata
similarity index 100%
rename from crypto/err/pkcs7.errordata
rename to src/crypto/err/pkcs7.errordata
diff --git a/crypto/err/pkcs8.errordata b/src/crypto/err/pkcs8.errordata
similarity index 100%
rename from crypto/err/pkcs8.errordata
rename to src/crypto/err/pkcs8.errordata
diff --git a/crypto/err/rsa.errordata b/src/crypto/err/rsa.errordata
similarity index 100%
rename from crypto/err/rsa.errordata
rename to src/crypto/err/rsa.errordata
diff --git a/crypto/err/ssl.errordata b/src/crypto/err/ssl.errordata
similarity index 100%
rename from crypto/err/ssl.errordata
rename to src/crypto/err/ssl.errordata
diff --git a/crypto/err/trust_token.errordata b/src/crypto/err/trust_token.errordata
similarity index 100%
rename from crypto/err/trust_token.errordata
rename to src/crypto/err/trust_token.errordata
diff --git a/crypto/err/x509.errordata b/src/crypto/err/x509.errordata
similarity index 100%
rename from crypto/err/x509.errordata
rename to src/crypto/err/x509.errordata
diff --git a/crypto/err/x509v3.errordata b/src/crypto/err/x509v3.errordata
similarity index 100%
rename from crypto/err/x509v3.errordata
rename to src/crypto/err/x509v3.errordata
diff --git a/crypto/evp/evp.c b/src/crypto/evp/evp.c
similarity index 100%
rename from crypto/evp/evp.c
rename to src/crypto/evp/evp.c
diff --git a/crypto/evp/evp_asn1.c b/src/crypto/evp/evp_asn1.c
similarity index 100%
rename from crypto/evp/evp_asn1.c
rename to src/crypto/evp/evp_asn1.c
diff --git a/crypto/evp/evp_ctx.c b/src/crypto/evp/evp_ctx.c
similarity index 100%
rename from crypto/evp/evp_ctx.c
rename to src/crypto/evp/evp_ctx.c
diff --git a/crypto/evp/evp_extra_test.cc b/src/crypto/evp/evp_extra_test.cc
similarity index 100%
rename from crypto/evp/evp_extra_test.cc
rename to src/crypto/evp/evp_extra_test.cc
diff --git a/crypto/evp/evp_test.cc b/src/crypto/evp/evp_test.cc
similarity index 100%
rename from crypto/evp/evp_test.cc
rename to src/crypto/evp/evp_test.cc
diff --git a/crypto/evp/evp_tests.txt b/src/crypto/evp/evp_tests.txt
similarity index 100%
rename from crypto/evp/evp_tests.txt
rename to src/crypto/evp/evp_tests.txt
diff --git a/crypto/evp/internal.h b/src/crypto/evp/internal.h
similarity index 100%
rename from crypto/evp/internal.h
rename to src/crypto/evp/internal.h
diff --git a/crypto/evp/p_dh.c b/src/crypto/evp/p_dh.c
similarity index 100%
rename from crypto/evp/p_dh.c
rename to src/crypto/evp/p_dh.c
diff --git a/crypto/evp/p_dh_asn1.c b/src/crypto/evp/p_dh_asn1.c
similarity index 100%
rename from crypto/evp/p_dh_asn1.c
rename to src/crypto/evp/p_dh_asn1.c
diff --git a/crypto/evp/p_dsa_asn1.c b/src/crypto/evp/p_dsa_asn1.c
similarity index 100%
rename from crypto/evp/p_dsa_asn1.c
rename to src/crypto/evp/p_dsa_asn1.c
diff --git a/crypto/evp/p_ec.c b/src/crypto/evp/p_ec.c
similarity index 100%
rename from crypto/evp/p_ec.c
rename to src/crypto/evp/p_ec.c
diff --git a/crypto/evp/p_ec_asn1.c b/src/crypto/evp/p_ec_asn1.c
similarity index 100%
rename from crypto/evp/p_ec_asn1.c
rename to src/crypto/evp/p_ec_asn1.c
diff --git a/crypto/evp/p_ed25519.c b/src/crypto/evp/p_ed25519.c
similarity index 100%
rename from crypto/evp/p_ed25519.c
rename to src/crypto/evp/p_ed25519.c
diff --git a/crypto/evp/p_ed25519_asn1.c b/src/crypto/evp/p_ed25519_asn1.c
similarity index 100%
rename from crypto/evp/p_ed25519_asn1.c
rename to src/crypto/evp/p_ed25519_asn1.c
diff --git a/crypto/evp/p_hkdf.c b/src/crypto/evp/p_hkdf.c
similarity index 100%
rename from crypto/evp/p_hkdf.c
rename to src/crypto/evp/p_hkdf.c
diff --git a/crypto/evp/p_rsa.c b/src/crypto/evp/p_rsa.c
similarity index 100%
rename from crypto/evp/p_rsa.c
rename to src/crypto/evp/p_rsa.c
diff --git a/crypto/evp/p_rsa_asn1.c b/src/crypto/evp/p_rsa_asn1.c
similarity index 100%
rename from crypto/evp/p_rsa_asn1.c
rename to src/crypto/evp/p_rsa_asn1.c
diff --git a/crypto/evp/p_x25519.c b/src/crypto/evp/p_x25519.c
similarity index 100%
rename from crypto/evp/p_x25519.c
rename to src/crypto/evp/p_x25519.c
diff --git a/crypto/evp/p_x25519_asn1.c b/src/crypto/evp/p_x25519_asn1.c
similarity index 100%
rename from crypto/evp/p_x25519_asn1.c
rename to src/crypto/evp/p_x25519_asn1.c
diff --git a/crypto/evp/pbkdf.c b/src/crypto/evp/pbkdf.c
similarity index 100%
rename from crypto/evp/pbkdf.c
rename to src/crypto/evp/pbkdf.c
diff --git a/crypto/evp/pbkdf_test.cc b/src/crypto/evp/pbkdf_test.cc
similarity index 100%
rename from crypto/evp/pbkdf_test.cc
rename to src/crypto/evp/pbkdf_test.cc
diff --git a/crypto/evp/print.c b/src/crypto/evp/print.c
similarity index 100%
rename from crypto/evp/print.c
rename to src/crypto/evp/print.c
diff --git a/crypto/evp/scrypt.c b/src/crypto/evp/scrypt.c
similarity index 100%
rename from crypto/evp/scrypt.c
rename to src/crypto/evp/scrypt.c
diff --git a/crypto/evp/scrypt_test.cc b/src/crypto/evp/scrypt_test.cc
similarity index 100%
rename from crypto/evp/scrypt_test.cc
rename to src/crypto/evp/scrypt_test.cc
diff --git a/crypto/evp/scrypt_tests.txt b/src/crypto/evp/scrypt_tests.txt
similarity index 100%
rename from crypto/evp/scrypt_tests.txt
rename to src/crypto/evp/scrypt_tests.txt
diff --git a/crypto/evp/sign.c b/src/crypto/evp/sign.c
similarity index 100%
rename from crypto/evp/sign.c
rename to src/crypto/evp/sign.c
diff --git a/crypto/ex_data.c b/src/crypto/ex_data.c
similarity index 100%
rename from crypto/ex_data.c
rename to src/crypto/ex_data.c
diff --git a/crypto/fipsmodule/FIPS.md b/src/crypto/fipsmodule/FIPS.md
similarity index 100%
rename from crypto/fipsmodule/FIPS.md
rename to src/crypto/fipsmodule/FIPS.md
diff --git a/crypto/fipsmodule/aes/aes.c.inc b/src/crypto/fipsmodule/aes/aes.c.inc
similarity index 100%
rename from crypto/fipsmodule/aes/aes.c.inc
rename to src/crypto/fipsmodule/aes/aes.c.inc
diff --git a/crypto/fipsmodule/aes/aes_nohw.c.inc b/src/crypto/fipsmodule/aes/aes_nohw.c.inc
similarity index 100%
rename from crypto/fipsmodule/aes/aes_nohw.c.inc
rename to src/crypto/fipsmodule/aes/aes_nohw.c.inc
diff --git a/crypto/fipsmodule/aes/aes_test.cc b/src/crypto/fipsmodule/aes/aes_test.cc
similarity index 100%
rename from crypto/fipsmodule/aes/aes_test.cc
rename to src/crypto/fipsmodule/aes/aes_test.cc
diff --git a/crypto/fipsmodule/aes/aes_tests.txt b/src/crypto/fipsmodule/aes/aes_tests.txt
similarity index 100%
rename from crypto/fipsmodule/aes/aes_tests.txt
rename to src/crypto/fipsmodule/aes/aes_tests.txt
diff --git a/crypto/fipsmodule/aes/asm/aesni-x86.pl b/src/crypto/fipsmodule/aes/asm/aesni-x86.pl
similarity index 100%
rename from crypto/fipsmodule/aes/asm/aesni-x86.pl
rename to src/crypto/fipsmodule/aes/asm/aesni-x86.pl
diff --git a/crypto/fipsmodule/aes/asm/aesni-x86_64.pl b/src/crypto/fipsmodule/aes/asm/aesni-x86_64.pl
similarity index 100%
rename from crypto/fipsmodule/aes/asm/aesni-x86_64.pl
rename to src/crypto/fipsmodule/aes/asm/aesni-x86_64.pl
diff --git a/crypto/fipsmodule/aes/asm/aesv8-armx.pl b/src/crypto/fipsmodule/aes/asm/aesv8-armx.pl
similarity index 100%
rename from crypto/fipsmodule/aes/asm/aesv8-armx.pl
rename to src/crypto/fipsmodule/aes/asm/aesv8-armx.pl
diff --git a/crypto/fipsmodule/aes/asm/bsaes-armv7.pl b/src/crypto/fipsmodule/aes/asm/bsaes-armv7.pl
similarity index 100%
rename from crypto/fipsmodule/aes/asm/bsaes-armv7.pl
rename to src/crypto/fipsmodule/aes/asm/bsaes-armv7.pl
diff --git a/crypto/fipsmodule/aes/asm/vpaes-armv7.pl b/src/crypto/fipsmodule/aes/asm/vpaes-armv7.pl
similarity index 100%
rename from crypto/fipsmodule/aes/asm/vpaes-armv7.pl
rename to src/crypto/fipsmodule/aes/asm/vpaes-armv7.pl
diff --git a/crypto/fipsmodule/aes/asm/vpaes-armv8.pl b/src/crypto/fipsmodule/aes/asm/vpaes-armv8.pl
similarity index 100%
rename from crypto/fipsmodule/aes/asm/vpaes-armv8.pl
rename to src/crypto/fipsmodule/aes/asm/vpaes-armv8.pl
diff --git a/crypto/fipsmodule/aes/asm/vpaes-x86.pl b/src/crypto/fipsmodule/aes/asm/vpaes-x86.pl
similarity index 100%
rename from crypto/fipsmodule/aes/asm/vpaes-x86.pl
rename to src/crypto/fipsmodule/aes/asm/vpaes-x86.pl
diff --git a/crypto/fipsmodule/aes/asm/vpaes-x86_64.pl b/src/crypto/fipsmodule/aes/asm/vpaes-x86_64.pl
similarity index 100%
rename from crypto/fipsmodule/aes/asm/vpaes-x86_64.pl
rename to src/crypto/fipsmodule/aes/asm/vpaes-x86_64.pl
diff --git a/crypto/fipsmodule/aes/internal.h b/src/crypto/fipsmodule/aes/internal.h
similarity index 100%
rename from crypto/fipsmodule/aes/internal.h
rename to src/crypto/fipsmodule/aes/internal.h
diff --git a/crypto/fipsmodule/aes/key_wrap.c.inc b/src/crypto/fipsmodule/aes/key_wrap.c.inc
similarity index 100%
rename from crypto/fipsmodule/aes/key_wrap.c.inc
rename to src/crypto/fipsmodule/aes/key_wrap.c.inc
diff --git a/crypto/fipsmodule/aes/mode_wrappers.c.inc b/src/crypto/fipsmodule/aes/mode_wrappers.c.inc
similarity index 100%
rename from crypto/fipsmodule/aes/mode_wrappers.c.inc
rename to src/crypto/fipsmodule/aes/mode_wrappers.c.inc
diff --git a/crypto/fipsmodule/bcm.c b/src/crypto/fipsmodule/bcm.c
similarity index 100%
rename from crypto/fipsmodule/bcm.c
rename to src/crypto/fipsmodule/bcm.c
diff --git a/crypto/fipsmodule/bcm_interface.h b/src/crypto/fipsmodule/bcm_interface.h
similarity index 100%
rename from crypto/fipsmodule/bcm_interface.h
rename to src/crypto/fipsmodule/bcm_interface.h
diff --git a/crypto/fipsmodule/bn/add.c.inc b/src/crypto/fipsmodule/bn/add.c.inc
similarity index 100%
rename from crypto/fipsmodule/bn/add.c.inc
rename to src/crypto/fipsmodule/bn/add.c.inc
diff --git a/crypto/fipsmodule/bn/asm/armv4-mont.pl b/src/crypto/fipsmodule/bn/asm/armv4-mont.pl
similarity index 100%
rename from crypto/fipsmodule/bn/asm/armv4-mont.pl
rename to src/crypto/fipsmodule/bn/asm/armv4-mont.pl
diff --git a/crypto/fipsmodule/bn/asm/armv8-mont.pl b/src/crypto/fipsmodule/bn/asm/armv8-mont.pl
similarity index 100%
rename from crypto/fipsmodule/bn/asm/armv8-mont.pl
rename to src/crypto/fipsmodule/bn/asm/armv8-mont.pl
diff --git a/crypto/fipsmodule/bn/asm/bn-586.pl b/src/crypto/fipsmodule/bn/asm/bn-586.pl
similarity index 100%
rename from crypto/fipsmodule/bn/asm/bn-586.pl
rename to src/crypto/fipsmodule/bn/asm/bn-586.pl
diff --git a/crypto/fipsmodule/bn/asm/bn-armv8.pl b/src/crypto/fipsmodule/bn/asm/bn-armv8.pl
similarity index 100%
rename from crypto/fipsmodule/bn/asm/bn-armv8.pl
rename to src/crypto/fipsmodule/bn/asm/bn-armv8.pl
diff --git a/crypto/fipsmodule/bn/asm/co-586.pl b/src/crypto/fipsmodule/bn/asm/co-586.pl
similarity index 100%
rename from crypto/fipsmodule/bn/asm/co-586.pl
rename to src/crypto/fipsmodule/bn/asm/co-586.pl
diff --git a/crypto/fipsmodule/bn/asm/rsaz-avx2.pl b/src/crypto/fipsmodule/bn/asm/rsaz-avx2.pl
similarity index 100%
rename from crypto/fipsmodule/bn/asm/rsaz-avx2.pl
rename to src/crypto/fipsmodule/bn/asm/rsaz-avx2.pl
diff --git a/crypto/fipsmodule/bn/asm/x86-mont.pl b/src/crypto/fipsmodule/bn/asm/x86-mont.pl
similarity index 100%
rename from crypto/fipsmodule/bn/asm/x86-mont.pl
rename to src/crypto/fipsmodule/bn/asm/x86-mont.pl
diff --git a/crypto/fipsmodule/bn/asm/x86_64-gcc.c.inc b/src/crypto/fipsmodule/bn/asm/x86_64-gcc.c.inc
similarity index 100%
rename from crypto/fipsmodule/bn/asm/x86_64-gcc.c.inc
rename to src/crypto/fipsmodule/bn/asm/x86_64-gcc.c.inc
diff --git a/crypto/fipsmodule/bn/asm/x86_64-mont.pl b/src/crypto/fipsmodule/bn/asm/x86_64-mont.pl
similarity index 100%
rename from crypto/fipsmodule/bn/asm/x86_64-mont.pl
rename to src/crypto/fipsmodule/bn/asm/x86_64-mont.pl
diff --git a/crypto/fipsmodule/bn/asm/x86_64-mont5.pl b/src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl
similarity index 100%
rename from crypto/fipsmodule/bn/asm/x86_64-mont5.pl
rename to src/crypto/fipsmodule/bn/asm/x86_64-mont5.pl
diff --git a/crypto/fipsmodule/bn/bn.c.inc b/src/crypto/fipsmodule/bn/bn.c.inc
similarity index 100%
rename from crypto/fipsmodule/bn/bn.c.inc
rename to src/crypto/fipsmodule/bn/bn.c.inc
diff --git a/crypto/fipsmodule/bn/bn_test.cc b/src/crypto/fipsmodule/bn/bn_test.cc
similarity index 100%
rename from crypto/fipsmodule/bn/bn_test.cc
rename to src/crypto/fipsmodule/bn/bn_test.cc
diff --git a/crypto/fipsmodule/bn/bn_test_to_fuzzer.go b/src/crypto/fipsmodule/bn/bn_test_to_fuzzer.go
similarity index 100%
rename from crypto/fipsmodule/bn/bn_test_to_fuzzer.go
rename to src/crypto/fipsmodule/bn/bn_test_to_fuzzer.go
diff --git a/crypto/fipsmodule/bn/bytes.c.inc b/src/crypto/fipsmodule/bn/bytes.c.inc
similarity index 100%
rename from crypto/fipsmodule/bn/bytes.c.inc
rename to src/crypto/fipsmodule/bn/bytes.c.inc
diff --git a/crypto/fipsmodule/bn/check_bn_tests.go b/src/crypto/fipsmodule/bn/check_bn_tests.go
similarity index 100%
rename from crypto/fipsmodule/bn/check_bn_tests.go
rename to src/crypto/fipsmodule/bn/check_bn_tests.go
diff --git a/crypto/fipsmodule/bn/cmp.c.inc b/src/crypto/fipsmodule/bn/cmp.c.inc
similarity index 100%
rename from crypto/fipsmodule/bn/cmp.c.inc
rename to src/crypto/fipsmodule/bn/cmp.c.inc
diff --git a/crypto/fipsmodule/bn/ctx.c.inc b/src/crypto/fipsmodule/bn/ctx.c.inc
similarity index 100%
rename from crypto/fipsmodule/bn/ctx.c.inc
rename to src/crypto/fipsmodule/bn/ctx.c.inc
diff --git a/crypto/fipsmodule/bn/div.c.inc b/src/crypto/fipsmodule/bn/div.c.inc
similarity index 100%
rename from crypto/fipsmodule/bn/div.c.inc
rename to src/crypto/fipsmodule/bn/div.c.inc
diff --git a/crypto/fipsmodule/bn/div_extra.c.inc b/src/crypto/fipsmodule/bn/div_extra.c.inc
similarity index 100%
rename from crypto/fipsmodule/bn/div_extra.c.inc
rename to src/crypto/fipsmodule/bn/div_extra.c.inc
diff --git a/crypto/fipsmodule/bn/exponentiation.c.inc b/src/crypto/fipsmodule/bn/exponentiation.c.inc
similarity index 100%
rename from crypto/fipsmodule/bn/exponentiation.c.inc
rename to src/crypto/fipsmodule/bn/exponentiation.c.inc
diff --git a/crypto/fipsmodule/bn/gcd.c.inc b/src/crypto/fipsmodule/bn/gcd.c.inc
similarity index 100%
rename from crypto/fipsmodule/bn/gcd.c.inc
rename to src/crypto/fipsmodule/bn/gcd.c.inc
diff --git a/crypto/fipsmodule/bn/gcd_extra.c.inc b/src/crypto/fipsmodule/bn/gcd_extra.c.inc
similarity index 100%
rename from crypto/fipsmodule/bn/gcd_extra.c.inc
rename to src/crypto/fipsmodule/bn/gcd_extra.c.inc
diff --git a/crypto/fipsmodule/bn/generic.c.inc b/src/crypto/fipsmodule/bn/generic.c.inc
similarity index 100%
rename from crypto/fipsmodule/bn/generic.c.inc
rename to src/crypto/fipsmodule/bn/generic.c.inc
diff --git a/crypto/fipsmodule/bn/internal.h b/src/crypto/fipsmodule/bn/internal.h
similarity index 100%
rename from crypto/fipsmodule/bn/internal.h
rename to src/crypto/fipsmodule/bn/internal.h
diff --git a/crypto/fipsmodule/bn/jacobi.c.inc b/src/crypto/fipsmodule/bn/jacobi.c.inc
similarity index 100%
rename from crypto/fipsmodule/bn/jacobi.c.inc
rename to src/crypto/fipsmodule/bn/jacobi.c.inc
diff --git a/crypto/fipsmodule/bn/montgomery.c.inc b/src/crypto/fipsmodule/bn/montgomery.c.inc
similarity index 100%
rename from crypto/fipsmodule/bn/montgomery.c.inc
rename to src/crypto/fipsmodule/bn/montgomery.c.inc
diff --git a/crypto/fipsmodule/bn/montgomery_inv.c.inc b/src/crypto/fipsmodule/bn/montgomery_inv.c.inc
similarity index 100%
rename from crypto/fipsmodule/bn/montgomery_inv.c.inc
rename to src/crypto/fipsmodule/bn/montgomery_inv.c.inc
diff --git a/crypto/fipsmodule/bn/mul.c.inc b/src/crypto/fipsmodule/bn/mul.c.inc
similarity index 100%
rename from crypto/fipsmodule/bn/mul.c.inc
rename to src/crypto/fipsmodule/bn/mul.c.inc
diff --git a/crypto/fipsmodule/bn/prime.c.inc b/src/crypto/fipsmodule/bn/prime.c.inc
similarity index 100%
rename from crypto/fipsmodule/bn/prime.c.inc
rename to src/crypto/fipsmodule/bn/prime.c.inc
diff --git a/crypto/fipsmodule/bn/random.c.inc b/src/crypto/fipsmodule/bn/random.c.inc
similarity index 100%
rename from crypto/fipsmodule/bn/random.c.inc
rename to src/crypto/fipsmodule/bn/random.c.inc
diff --git a/crypto/fipsmodule/bn/rsaz_exp.c.inc b/src/crypto/fipsmodule/bn/rsaz_exp.c.inc
similarity index 100%
rename from crypto/fipsmodule/bn/rsaz_exp.c.inc
rename to src/crypto/fipsmodule/bn/rsaz_exp.c.inc
diff --git a/crypto/fipsmodule/bn/rsaz_exp.h b/src/crypto/fipsmodule/bn/rsaz_exp.h
similarity index 100%
rename from crypto/fipsmodule/bn/rsaz_exp.h
rename to src/crypto/fipsmodule/bn/rsaz_exp.h
diff --git a/crypto/fipsmodule/bn/shift.c.inc b/src/crypto/fipsmodule/bn/shift.c.inc
similarity index 100%
rename from crypto/fipsmodule/bn/shift.c.inc
rename to src/crypto/fipsmodule/bn/shift.c.inc
diff --git a/crypto/fipsmodule/bn/sqrt.c.inc b/src/crypto/fipsmodule/bn/sqrt.c.inc
similarity index 100%
rename from crypto/fipsmodule/bn/sqrt.c.inc
rename to src/crypto/fipsmodule/bn/sqrt.c.inc
diff --git a/crypto/fipsmodule/bn/test/exp_tests.txt b/src/crypto/fipsmodule/bn/test/exp_tests.txt
similarity index 100%
rename from crypto/fipsmodule/bn/test/exp_tests.txt
rename to src/crypto/fipsmodule/bn/test/exp_tests.txt
diff --git a/crypto/fipsmodule/bn/test/gcd_tests.txt b/src/crypto/fipsmodule/bn/test/gcd_tests.txt
similarity index 100%
rename from crypto/fipsmodule/bn/test/gcd_tests.txt
rename to src/crypto/fipsmodule/bn/test/gcd_tests.txt
diff --git a/crypto/fipsmodule/bn/test/miller_rabin_tests.txt b/src/crypto/fipsmodule/bn/test/miller_rabin_tests.txt
similarity index 100%
rename from crypto/fipsmodule/bn/test/miller_rabin_tests.txt
rename to src/crypto/fipsmodule/bn/test/miller_rabin_tests.txt
diff --git a/crypto/fipsmodule/bn/test/mod_exp_tests.txt b/src/crypto/fipsmodule/bn/test/mod_exp_tests.txt
similarity index 100%
rename from crypto/fipsmodule/bn/test/mod_exp_tests.txt
rename to src/crypto/fipsmodule/bn/test/mod_exp_tests.txt
diff --git a/crypto/fipsmodule/bn/test/mod_inv_tests.txt b/src/crypto/fipsmodule/bn/test/mod_inv_tests.txt
similarity index 100%
rename from crypto/fipsmodule/bn/test/mod_inv_tests.txt
rename to src/crypto/fipsmodule/bn/test/mod_inv_tests.txt
diff --git a/crypto/fipsmodule/bn/test/mod_mul_tests.txt b/src/crypto/fipsmodule/bn/test/mod_mul_tests.txt
similarity index 100%
rename from crypto/fipsmodule/bn/test/mod_mul_tests.txt
rename to src/crypto/fipsmodule/bn/test/mod_mul_tests.txt
diff --git a/crypto/fipsmodule/bn/test/mod_sqrt_tests.txt b/src/crypto/fipsmodule/bn/test/mod_sqrt_tests.txt
similarity index 100%
rename from crypto/fipsmodule/bn/test/mod_sqrt_tests.txt
rename to src/crypto/fipsmodule/bn/test/mod_sqrt_tests.txt
diff --git a/crypto/fipsmodule/bn/test/product_tests.txt b/src/crypto/fipsmodule/bn/test/product_tests.txt
similarity index 100%
rename from crypto/fipsmodule/bn/test/product_tests.txt
rename to src/crypto/fipsmodule/bn/test/product_tests.txt
diff --git a/crypto/fipsmodule/bn/test/quotient_tests.txt b/src/crypto/fipsmodule/bn/test/quotient_tests.txt
similarity index 100%
rename from crypto/fipsmodule/bn/test/quotient_tests.txt
rename to src/crypto/fipsmodule/bn/test/quotient_tests.txt
diff --git a/crypto/fipsmodule/bn/test/shift_tests.txt b/src/crypto/fipsmodule/bn/test/shift_tests.txt
similarity index 100%
rename from crypto/fipsmodule/bn/test/shift_tests.txt
rename to src/crypto/fipsmodule/bn/test/shift_tests.txt
diff --git a/crypto/fipsmodule/bn/test/sum_tests.txt b/src/crypto/fipsmodule/bn/test/sum_tests.txt
similarity index 100%
rename from crypto/fipsmodule/bn/test/sum_tests.txt
rename to src/crypto/fipsmodule/bn/test/sum_tests.txt
diff --git a/crypto/fipsmodule/cipher/aead.c.inc b/src/crypto/fipsmodule/cipher/aead.c.inc
similarity index 100%
rename from crypto/fipsmodule/cipher/aead.c.inc
rename to src/crypto/fipsmodule/cipher/aead.c.inc
diff --git a/crypto/fipsmodule/cipher/cipher.c.inc b/src/crypto/fipsmodule/cipher/cipher.c.inc
similarity index 100%
rename from crypto/fipsmodule/cipher/cipher.c.inc
rename to src/crypto/fipsmodule/cipher/cipher.c.inc
diff --git a/crypto/fipsmodule/cipher/e_aes.c.inc b/src/crypto/fipsmodule/cipher/e_aes.c.inc
similarity index 100%
rename from crypto/fipsmodule/cipher/e_aes.c.inc
rename to src/crypto/fipsmodule/cipher/e_aes.c.inc
diff --git a/crypto/fipsmodule/cipher/e_aesccm.c.inc b/src/crypto/fipsmodule/cipher/e_aesccm.c.inc
similarity index 100%
rename from crypto/fipsmodule/cipher/e_aesccm.c.inc
rename to src/crypto/fipsmodule/cipher/e_aesccm.c.inc
diff --git a/crypto/fipsmodule/cipher/internal.h b/src/crypto/fipsmodule/cipher/internal.h
similarity index 100%
rename from crypto/fipsmodule/cipher/internal.h
rename to src/crypto/fipsmodule/cipher/internal.h
diff --git a/crypto/fipsmodule/cmac/cavp_3des_cmac_tests.txt b/src/crypto/fipsmodule/cmac/cavp_3des_cmac_tests.txt
similarity index 100%
rename from crypto/fipsmodule/cmac/cavp_3des_cmac_tests.txt
rename to src/crypto/fipsmodule/cmac/cavp_3des_cmac_tests.txt
diff --git a/crypto/fipsmodule/cmac/cavp_aes128_cmac_tests.txt b/src/crypto/fipsmodule/cmac/cavp_aes128_cmac_tests.txt
similarity index 100%
rename from crypto/fipsmodule/cmac/cavp_aes128_cmac_tests.txt
rename to src/crypto/fipsmodule/cmac/cavp_aes128_cmac_tests.txt
diff --git a/crypto/fipsmodule/cmac/cavp_aes192_cmac_tests.txt b/src/crypto/fipsmodule/cmac/cavp_aes192_cmac_tests.txt
similarity index 100%
rename from crypto/fipsmodule/cmac/cavp_aes192_cmac_tests.txt
rename to src/crypto/fipsmodule/cmac/cavp_aes192_cmac_tests.txt
diff --git a/crypto/fipsmodule/cmac/cavp_aes256_cmac_tests.txt b/src/crypto/fipsmodule/cmac/cavp_aes256_cmac_tests.txt
similarity index 100%
rename from crypto/fipsmodule/cmac/cavp_aes256_cmac_tests.txt
rename to src/crypto/fipsmodule/cmac/cavp_aes256_cmac_tests.txt
diff --git a/crypto/fipsmodule/cmac/cmac.c.inc b/src/crypto/fipsmodule/cmac/cmac.c.inc
similarity index 100%
rename from crypto/fipsmodule/cmac/cmac.c.inc
rename to src/crypto/fipsmodule/cmac/cmac.c.inc
diff --git a/crypto/fipsmodule/cmac/cmac_test.cc b/src/crypto/fipsmodule/cmac/cmac_test.cc
similarity index 100%
rename from crypto/fipsmodule/cmac/cmac_test.cc
rename to src/crypto/fipsmodule/cmac/cmac_test.cc
diff --git a/crypto/fipsmodule/delocate.h b/src/crypto/fipsmodule/delocate.h
similarity index 100%
rename from crypto/fipsmodule/delocate.h
rename to src/crypto/fipsmodule/delocate.h
diff --git a/crypto/fipsmodule/dh/check.c.inc b/src/crypto/fipsmodule/dh/check.c.inc
similarity index 100%
rename from crypto/fipsmodule/dh/check.c.inc
rename to src/crypto/fipsmodule/dh/check.c.inc
diff --git a/crypto/fipsmodule/dh/dh.c.inc b/src/crypto/fipsmodule/dh/dh.c.inc
similarity index 100%
rename from crypto/fipsmodule/dh/dh.c.inc
rename to src/crypto/fipsmodule/dh/dh.c.inc
diff --git a/crypto/fipsmodule/dh/internal.h b/src/crypto/fipsmodule/dh/internal.h
similarity index 100%
rename from crypto/fipsmodule/dh/internal.h
rename to src/crypto/fipsmodule/dh/internal.h
diff --git a/crypto/fipsmodule/digest/digest.c.inc b/src/crypto/fipsmodule/digest/digest.c.inc
similarity index 100%
rename from crypto/fipsmodule/digest/digest.c.inc
rename to src/crypto/fipsmodule/digest/digest.c.inc
diff --git a/crypto/fipsmodule/digest/digests.c.inc b/src/crypto/fipsmodule/digest/digests.c.inc
similarity index 100%
rename from crypto/fipsmodule/digest/digests.c.inc
rename to src/crypto/fipsmodule/digest/digests.c.inc
diff --git a/crypto/fipsmodule/digest/internal.h b/src/crypto/fipsmodule/digest/internal.h
similarity index 100%
rename from crypto/fipsmodule/digest/internal.h
rename to src/crypto/fipsmodule/digest/internal.h
diff --git a/crypto/fipsmodule/digest/md32_common.h b/src/crypto/fipsmodule/digest/md32_common.h
similarity index 100%
rename from crypto/fipsmodule/digest/md32_common.h
rename to src/crypto/fipsmodule/digest/md32_common.h
diff --git a/crypto/fipsmodule/digestsign/digestsign.c.inc b/src/crypto/fipsmodule/digestsign/digestsign.c.inc
similarity index 100%
rename from crypto/fipsmodule/digestsign/digestsign.c.inc
rename to src/crypto/fipsmodule/digestsign/digestsign.c.inc
diff --git a/crypto/fipsmodule/ec/asm/p256-armv8-asm.pl b/src/crypto/fipsmodule/ec/asm/p256-armv8-asm.pl
similarity index 100%
rename from crypto/fipsmodule/ec/asm/p256-armv8-asm.pl
rename to src/crypto/fipsmodule/ec/asm/p256-armv8-asm.pl
diff --git a/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl b/src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl
similarity index 100%
rename from crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl
rename to src/crypto/fipsmodule/ec/asm/p256-x86_64-asm.pl
diff --git a/crypto/fipsmodule/ec/asm/p256_beeu-armv8-asm.pl b/src/crypto/fipsmodule/ec/asm/p256_beeu-armv8-asm.pl
similarity index 100%
rename from crypto/fipsmodule/ec/asm/p256_beeu-armv8-asm.pl
rename to src/crypto/fipsmodule/ec/asm/p256_beeu-armv8-asm.pl
diff --git a/crypto/fipsmodule/ec/asm/p256_beeu-x86_64-asm.pl b/src/crypto/fipsmodule/ec/asm/p256_beeu-x86_64-asm.pl
similarity index 100%
rename from crypto/fipsmodule/ec/asm/p256_beeu-x86_64-asm.pl
rename to src/crypto/fipsmodule/ec/asm/p256_beeu-x86_64-asm.pl
diff --git a/crypto/fipsmodule/ec/builtin_curves.h b/src/crypto/fipsmodule/ec/builtin_curves.h
similarity index 100%
rename from crypto/fipsmodule/ec/builtin_curves.h
rename to src/crypto/fipsmodule/ec/builtin_curves.h
diff --git a/crypto/fipsmodule/ec/ec.c.inc b/src/crypto/fipsmodule/ec/ec.c.inc
similarity index 100%
rename from crypto/fipsmodule/ec/ec.c.inc
rename to src/crypto/fipsmodule/ec/ec.c.inc
diff --git a/crypto/fipsmodule/ec/ec_key.c.inc b/src/crypto/fipsmodule/ec/ec_key.c.inc
similarity index 100%
rename from crypto/fipsmodule/ec/ec_key.c.inc
rename to src/crypto/fipsmodule/ec/ec_key.c.inc
diff --git a/crypto/fipsmodule/ec/ec_montgomery.c.inc b/src/crypto/fipsmodule/ec/ec_montgomery.c.inc
similarity index 100%
rename from crypto/fipsmodule/ec/ec_montgomery.c.inc
rename to src/crypto/fipsmodule/ec/ec_montgomery.c.inc
diff --git a/crypto/fipsmodule/ec/ec_scalar_base_mult_tests.txt b/src/crypto/fipsmodule/ec/ec_scalar_base_mult_tests.txt
similarity index 100%
rename from crypto/fipsmodule/ec/ec_scalar_base_mult_tests.txt
rename to src/crypto/fipsmodule/ec/ec_scalar_base_mult_tests.txt
diff --git a/crypto/fipsmodule/ec/ec_test.cc b/src/crypto/fipsmodule/ec/ec_test.cc
similarity index 100%
rename from crypto/fipsmodule/ec/ec_test.cc
rename to src/crypto/fipsmodule/ec/ec_test.cc
diff --git a/crypto/fipsmodule/ec/felem.c.inc b/src/crypto/fipsmodule/ec/felem.c.inc
similarity index 100%
rename from crypto/fipsmodule/ec/felem.c.inc
rename to src/crypto/fipsmodule/ec/felem.c.inc
diff --git a/crypto/fipsmodule/ec/internal.h b/src/crypto/fipsmodule/ec/internal.h
similarity index 100%
rename from crypto/fipsmodule/ec/internal.h
rename to src/crypto/fipsmodule/ec/internal.h
diff --git a/crypto/fipsmodule/ec/make_ec_scalar_base_mult_tests.go b/src/crypto/fipsmodule/ec/make_ec_scalar_base_mult_tests.go
similarity index 100%
rename from crypto/fipsmodule/ec/make_ec_scalar_base_mult_tests.go
rename to src/crypto/fipsmodule/ec/make_ec_scalar_base_mult_tests.go
diff --git a/crypto/fipsmodule/ec/make_p256-nistz-tests.go b/src/crypto/fipsmodule/ec/make_p256-nistz-tests.go
similarity index 100%
rename from crypto/fipsmodule/ec/make_p256-nistz-tests.go
rename to src/crypto/fipsmodule/ec/make_p256-nistz-tests.go
diff --git a/crypto/fipsmodule/ec/make_tables.go b/src/crypto/fipsmodule/ec/make_tables.go
similarity index 100%
rename from crypto/fipsmodule/ec/make_tables.go
rename to src/crypto/fipsmodule/ec/make_tables.go
diff --git a/crypto/fipsmodule/ec/oct.c.inc b/src/crypto/fipsmodule/ec/oct.c.inc
similarity index 100%
rename from crypto/fipsmodule/ec/oct.c.inc
rename to src/crypto/fipsmodule/ec/oct.c.inc
diff --git a/crypto/fipsmodule/ec/p224-64.c.inc b/src/crypto/fipsmodule/ec/p224-64.c.inc
similarity index 100%
rename from crypto/fipsmodule/ec/p224-64.c.inc
rename to src/crypto/fipsmodule/ec/p224-64.c.inc
diff --git a/crypto/fipsmodule/ec/p256-nistz-table.h b/src/crypto/fipsmodule/ec/p256-nistz-table.h
similarity index 100%
rename from crypto/fipsmodule/ec/p256-nistz-table.h
rename to src/crypto/fipsmodule/ec/p256-nistz-table.h
diff --git a/crypto/fipsmodule/ec/p256-nistz.c.inc b/src/crypto/fipsmodule/ec/p256-nistz.c.inc
similarity index 100%
rename from crypto/fipsmodule/ec/p256-nistz.c.inc
rename to src/crypto/fipsmodule/ec/p256-nistz.c.inc
diff --git a/crypto/fipsmodule/ec/p256-nistz.h b/src/crypto/fipsmodule/ec/p256-nistz.h
similarity index 100%
rename from crypto/fipsmodule/ec/p256-nistz.h
rename to src/crypto/fipsmodule/ec/p256-nistz.h
diff --git a/crypto/fipsmodule/ec/p256-nistz_test.cc b/src/crypto/fipsmodule/ec/p256-nistz_test.cc
similarity index 100%
rename from crypto/fipsmodule/ec/p256-nistz_test.cc
rename to src/crypto/fipsmodule/ec/p256-nistz_test.cc
diff --git a/crypto/fipsmodule/ec/p256-nistz_tests.txt b/src/crypto/fipsmodule/ec/p256-nistz_tests.txt
similarity index 100%
rename from crypto/fipsmodule/ec/p256-nistz_tests.txt
rename to src/crypto/fipsmodule/ec/p256-nistz_tests.txt
diff --git a/crypto/fipsmodule/ec/p256.c.inc b/src/crypto/fipsmodule/ec/p256.c.inc
similarity index 100%
rename from crypto/fipsmodule/ec/p256.c.inc
rename to src/crypto/fipsmodule/ec/p256.c.inc
diff --git a/crypto/fipsmodule/ec/p256_table.h b/src/crypto/fipsmodule/ec/p256_table.h
similarity index 100%
rename from crypto/fipsmodule/ec/p256_table.h
rename to src/crypto/fipsmodule/ec/p256_table.h
diff --git a/crypto/fipsmodule/ec/p256_test.cc b/src/crypto/fipsmodule/ec/p256_test.cc
similarity index 100%
rename from crypto/fipsmodule/ec/p256_test.cc
rename to src/crypto/fipsmodule/ec/p256_test.cc
diff --git a/crypto/fipsmodule/ec/scalar.c.inc b/src/crypto/fipsmodule/ec/scalar.c.inc
similarity index 100%
rename from crypto/fipsmodule/ec/scalar.c.inc
rename to src/crypto/fipsmodule/ec/scalar.c.inc
diff --git a/crypto/fipsmodule/ec/simple.c.inc b/src/crypto/fipsmodule/ec/simple.c.inc
similarity index 100%
rename from crypto/fipsmodule/ec/simple.c.inc
rename to src/crypto/fipsmodule/ec/simple.c.inc
diff --git a/crypto/fipsmodule/ec/simple_mul.c.inc b/src/crypto/fipsmodule/ec/simple_mul.c.inc
similarity index 100%
rename from crypto/fipsmodule/ec/simple_mul.c.inc
rename to src/crypto/fipsmodule/ec/simple_mul.c.inc
diff --git a/crypto/fipsmodule/ec/util.c.inc b/src/crypto/fipsmodule/ec/util.c.inc
similarity index 100%
rename from crypto/fipsmodule/ec/util.c.inc
rename to src/crypto/fipsmodule/ec/util.c.inc
diff --git a/crypto/fipsmodule/ec/wnaf.c.inc b/src/crypto/fipsmodule/ec/wnaf.c.inc
similarity index 100%
rename from crypto/fipsmodule/ec/wnaf.c.inc
rename to src/crypto/fipsmodule/ec/wnaf.c.inc
diff --git a/crypto/fipsmodule/ecdh/ecdh.c.inc b/src/crypto/fipsmodule/ecdh/ecdh.c.inc
similarity index 100%
rename from crypto/fipsmodule/ecdh/ecdh.c.inc
rename to src/crypto/fipsmodule/ecdh/ecdh.c.inc
diff --git a/crypto/fipsmodule/ecdsa/ecdsa.c.inc b/src/crypto/fipsmodule/ecdsa/ecdsa.c.inc
similarity index 100%
rename from crypto/fipsmodule/ecdsa/ecdsa.c.inc
rename to src/crypto/fipsmodule/ecdsa/ecdsa.c.inc
diff --git a/crypto/fipsmodule/ecdsa/ecdsa_sign_tests.txt b/src/crypto/fipsmodule/ecdsa/ecdsa_sign_tests.txt
similarity index 100%
rename from crypto/fipsmodule/ecdsa/ecdsa_sign_tests.txt
rename to src/crypto/fipsmodule/ecdsa/ecdsa_sign_tests.txt
diff --git a/crypto/fipsmodule/ecdsa/ecdsa_test.cc b/src/crypto/fipsmodule/ecdsa/ecdsa_test.cc
similarity index 100%
rename from crypto/fipsmodule/ecdsa/ecdsa_test.cc
rename to src/crypto/fipsmodule/ecdsa/ecdsa_test.cc
diff --git a/crypto/fipsmodule/ecdsa/ecdsa_verify_tests.txt b/src/crypto/fipsmodule/ecdsa/ecdsa_verify_tests.txt
similarity index 100%
rename from crypto/fipsmodule/ecdsa/ecdsa_verify_tests.txt
rename to src/crypto/fipsmodule/ecdsa/ecdsa_verify_tests.txt
diff --git a/crypto/fipsmodule/ecdsa/internal.h b/src/crypto/fipsmodule/ecdsa/internal.h
similarity index 100%
rename from crypto/fipsmodule/ecdsa/internal.h
rename to src/crypto/fipsmodule/ecdsa/internal.h
diff --git a/crypto/fipsmodule/fips_shared.lds b/src/crypto/fipsmodule/fips_shared.lds
similarity index 100%
rename from crypto/fipsmodule/fips_shared.lds
rename to src/crypto/fipsmodule/fips_shared.lds
diff --git a/crypto/fipsmodule/fips_shared_support.c b/src/crypto/fipsmodule/fips_shared_support.c
similarity index 100%
rename from crypto/fipsmodule/fips_shared_support.c
rename to src/crypto/fipsmodule/fips_shared_support.c
diff --git a/crypto/fipsmodule/hkdf/hkdf.c.inc b/src/crypto/fipsmodule/hkdf/hkdf.c.inc
similarity index 100%
rename from crypto/fipsmodule/hkdf/hkdf.c.inc
rename to src/crypto/fipsmodule/hkdf/hkdf.c.inc
diff --git a/crypto/fipsmodule/hkdf/hkdf_test.cc b/src/crypto/fipsmodule/hkdf/hkdf_test.cc
similarity index 100%
rename from crypto/fipsmodule/hkdf/hkdf_test.cc
rename to src/crypto/fipsmodule/hkdf/hkdf_test.cc
diff --git a/crypto/fipsmodule/hmac/hmac.c.inc b/src/crypto/fipsmodule/hmac/hmac.c.inc
similarity index 100%
rename from crypto/fipsmodule/hmac/hmac.c.inc
rename to src/crypto/fipsmodule/hmac/hmac.c.inc
diff --git a/crypto/fipsmodule/intcheck1.png b/src/crypto/fipsmodule/intcheck1.png
similarity index 100%
rename from crypto/fipsmodule/intcheck1.png
rename to src/crypto/fipsmodule/intcheck1.png
Binary files differ
diff --git a/crypto/fipsmodule/intcheck2.png b/src/crypto/fipsmodule/intcheck2.png
similarity index 100%
rename from crypto/fipsmodule/intcheck2.png
rename to src/crypto/fipsmodule/intcheck2.png
Binary files differ
diff --git a/crypto/fipsmodule/intcheck3.png b/src/crypto/fipsmodule/intcheck3.png
similarity index 100%
rename from crypto/fipsmodule/intcheck3.png
rename to src/crypto/fipsmodule/intcheck3.png
Binary files differ
diff --git a/crypto/fipsmodule/modes/asm/aesni-gcm-x86_64.pl b/src/crypto/fipsmodule/modes/asm/aesni-gcm-x86_64.pl
similarity index 100%
rename from crypto/fipsmodule/modes/asm/aesni-gcm-x86_64.pl
rename to src/crypto/fipsmodule/modes/asm/aesni-gcm-x86_64.pl
diff --git a/crypto/fipsmodule/modes/asm/aesv8-gcm-armv8.pl b/src/crypto/fipsmodule/modes/asm/aesv8-gcm-armv8.pl
similarity index 100%
rename from crypto/fipsmodule/modes/asm/aesv8-gcm-armv8.pl
rename to src/crypto/fipsmodule/modes/asm/aesv8-gcm-armv8.pl
diff --git a/crypto/fipsmodule/modes/asm/ghash-armv4.pl b/src/crypto/fipsmodule/modes/asm/ghash-armv4.pl
similarity index 100%
rename from crypto/fipsmodule/modes/asm/ghash-armv4.pl
rename to src/crypto/fipsmodule/modes/asm/ghash-armv4.pl
diff --git a/crypto/fipsmodule/modes/asm/ghash-neon-armv8.pl b/src/crypto/fipsmodule/modes/asm/ghash-neon-armv8.pl
similarity index 100%
rename from crypto/fipsmodule/modes/asm/ghash-neon-armv8.pl
rename to src/crypto/fipsmodule/modes/asm/ghash-neon-armv8.pl
diff --git a/crypto/fipsmodule/modes/asm/ghash-ssse3-x86.pl b/src/crypto/fipsmodule/modes/asm/ghash-ssse3-x86.pl
similarity index 100%
rename from crypto/fipsmodule/modes/asm/ghash-ssse3-x86.pl
rename to src/crypto/fipsmodule/modes/asm/ghash-ssse3-x86.pl
diff --git a/crypto/fipsmodule/modes/asm/ghash-ssse3-x86_64.pl b/src/crypto/fipsmodule/modes/asm/ghash-ssse3-x86_64.pl
similarity index 100%
rename from crypto/fipsmodule/modes/asm/ghash-ssse3-x86_64.pl
rename to src/crypto/fipsmodule/modes/asm/ghash-ssse3-x86_64.pl
diff --git a/crypto/fipsmodule/modes/asm/ghash-x86.pl b/src/crypto/fipsmodule/modes/asm/ghash-x86.pl
similarity index 100%
rename from crypto/fipsmodule/modes/asm/ghash-x86.pl
rename to src/crypto/fipsmodule/modes/asm/ghash-x86.pl
diff --git a/crypto/fipsmodule/modes/asm/ghash-x86_64.pl b/src/crypto/fipsmodule/modes/asm/ghash-x86_64.pl
similarity index 100%
rename from crypto/fipsmodule/modes/asm/ghash-x86_64.pl
rename to src/crypto/fipsmodule/modes/asm/ghash-x86_64.pl
diff --git a/crypto/fipsmodule/modes/asm/ghashv8-armx.pl b/src/crypto/fipsmodule/modes/asm/ghashv8-armx.pl
similarity index 100%
rename from crypto/fipsmodule/modes/asm/ghashv8-armx.pl
rename to src/crypto/fipsmodule/modes/asm/ghashv8-armx.pl
diff --git a/crypto/fipsmodule/modes/cbc.c.inc b/src/crypto/fipsmodule/modes/cbc.c.inc
similarity index 100%
rename from crypto/fipsmodule/modes/cbc.c.inc
rename to src/crypto/fipsmodule/modes/cbc.c.inc
diff --git a/crypto/fipsmodule/modes/cfb.c.inc b/src/crypto/fipsmodule/modes/cfb.c.inc
similarity index 100%
rename from crypto/fipsmodule/modes/cfb.c.inc
rename to src/crypto/fipsmodule/modes/cfb.c.inc
diff --git a/crypto/fipsmodule/modes/ctr.c.inc b/src/crypto/fipsmodule/modes/ctr.c.inc
similarity index 100%
rename from crypto/fipsmodule/modes/ctr.c.inc
rename to src/crypto/fipsmodule/modes/ctr.c.inc
diff --git a/crypto/fipsmodule/modes/gcm.c.inc b/src/crypto/fipsmodule/modes/gcm.c.inc
similarity index 100%
rename from crypto/fipsmodule/modes/gcm.c.inc
rename to src/crypto/fipsmodule/modes/gcm.c.inc
diff --git a/crypto/fipsmodule/modes/gcm_nohw.c.inc b/src/crypto/fipsmodule/modes/gcm_nohw.c.inc
similarity index 100%
rename from crypto/fipsmodule/modes/gcm_nohw.c.inc
rename to src/crypto/fipsmodule/modes/gcm_nohw.c.inc
diff --git a/crypto/fipsmodule/modes/gcm_test.cc b/src/crypto/fipsmodule/modes/gcm_test.cc
similarity index 100%
rename from crypto/fipsmodule/modes/gcm_test.cc
rename to src/crypto/fipsmodule/modes/gcm_test.cc
diff --git a/crypto/fipsmodule/modes/gcm_tests.txt b/src/crypto/fipsmodule/modes/gcm_tests.txt
similarity index 100%
rename from crypto/fipsmodule/modes/gcm_tests.txt
rename to src/crypto/fipsmodule/modes/gcm_tests.txt
diff --git a/crypto/fipsmodule/modes/internal.h b/src/crypto/fipsmodule/modes/internal.h
similarity index 100%
rename from crypto/fipsmodule/modes/internal.h
rename to src/crypto/fipsmodule/modes/internal.h
diff --git a/crypto/fipsmodule/modes/ofb.c.inc b/src/crypto/fipsmodule/modes/ofb.c.inc
similarity index 100%
rename from crypto/fipsmodule/modes/ofb.c.inc
rename to src/crypto/fipsmodule/modes/ofb.c.inc
diff --git a/crypto/fipsmodule/modes/polyval.c.inc b/src/crypto/fipsmodule/modes/polyval.c.inc
similarity index 100%
rename from crypto/fipsmodule/modes/polyval.c.inc
rename to src/crypto/fipsmodule/modes/polyval.c.inc
diff --git a/crypto/fipsmodule/policydocs/BoringCrypto-Android-Security-Policy-20191020.docx b/src/crypto/fipsmodule/policydocs/BoringCrypto-Android-Security-Policy-20191020.docx
similarity index 100%
rename from crypto/fipsmodule/policydocs/BoringCrypto-Android-Security-Policy-20191020.docx
rename to src/crypto/fipsmodule/policydocs/BoringCrypto-Android-Security-Policy-20191020.docx
Binary files differ
diff --git a/crypto/fipsmodule/policydocs/BoringCrypto-Android-Security-Policy-20210319.docx b/src/crypto/fipsmodule/policydocs/BoringCrypto-Android-Security-Policy-20210319.docx
similarity index 100%
rename from crypto/fipsmodule/policydocs/BoringCrypto-Android-Security-Policy-20210319.docx
rename to src/crypto/fipsmodule/policydocs/BoringCrypto-Android-Security-Policy-20210319.docx
Binary files differ
diff --git a/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20170615.docx b/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20170615.docx
similarity index 100%
rename from crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20170615.docx
rename to src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20170615.docx
Binary files differ
diff --git a/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20180730.docx b/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20180730.docx
similarity index 100%
rename from crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20180730.docx
rename to src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20180730.docx
Binary files differ
diff --git a/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20190808.docx b/src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20190808.docx
similarity index 100%
rename from crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20190808.docx
rename to src/crypto/fipsmodule/policydocs/BoringCrypto-Security-Policy-20190808.docx
Binary files differ
diff --git a/crypto/fipsmodule/rand/asm/rdrand-x86_64.pl b/src/crypto/fipsmodule/rand/asm/rdrand-x86_64.pl
similarity index 100%
rename from crypto/fipsmodule/rand/asm/rdrand-x86_64.pl
rename to src/crypto/fipsmodule/rand/asm/rdrand-x86_64.pl
diff --git a/crypto/fipsmodule/rand/ctrdrbg.c.inc b/src/crypto/fipsmodule/rand/ctrdrbg.c.inc
similarity index 100%
rename from crypto/fipsmodule/rand/ctrdrbg.c.inc
rename to src/crypto/fipsmodule/rand/ctrdrbg.c.inc
diff --git a/crypto/fipsmodule/rand/ctrdrbg_test.cc b/src/crypto/fipsmodule/rand/ctrdrbg_test.cc
similarity index 100%
rename from crypto/fipsmodule/rand/ctrdrbg_test.cc
rename to src/crypto/fipsmodule/rand/ctrdrbg_test.cc
diff --git a/crypto/fipsmodule/rand/ctrdrbg_vectors.txt b/src/crypto/fipsmodule/rand/ctrdrbg_vectors.txt
similarity index 100%
rename from crypto/fipsmodule/rand/ctrdrbg_vectors.txt
rename to src/crypto/fipsmodule/rand/ctrdrbg_vectors.txt
diff --git a/crypto/fipsmodule/rand/internal.h b/src/crypto/fipsmodule/rand/internal.h
similarity index 100%
rename from crypto/fipsmodule/rand/internal.h
rename to src/crypto/fipsmodule/rand/internal.h
diff --git a/crypto/fipsmodule/rand/rand.c.inc b/src/crypto/fipsmodule/rand/rand.c.inc
similarity index 100%
rename from crypto/fipsmodule/rand/rand.c.inc
rename to src/crypto/fipsmodule/rand/rand.c.inc
diff --git a/crypto/fipsmodule/rsa/blinding.c.inc b/src/crypto/fipsmodule/rsa/blinding.c.inc
similarity index 100%
rename from crypto/fipsmodule/rsa/blinding.c.inc
rename to src/crypto/fipsmodule/rsa/blinding.c.inc
diff --git a/crypto/fipsmodule/rsa/internal.h b/src/crypto/fipsmodule/rsa/internal.h
similarity index 100%
rename from crypto/fipsmodule/rsa/internal.h
rename to src/crypto/fipsmodule/rsa/internal.h
diff --git a/crypto/fipsmodule/rsa/padding.c.inc b/src/crypto/fipsmodule/rsa/padding.c.inc
similarity index 100%
rename from crypto/fipsmodule/rsa/padding.c.inc
rename to src/crypto/fipsmodule/rsa/padding.c.inc
diff --git a/crypto/fipsmodule/rsa/rsa.c.inc b/src/crypto/fipsmodule/rsa/rsa.c.inc
similarity index 100%
rename from crypto/fipsmodule/rsa/rsa.c.inc
rename to src/crypto/fipsmodule/rsa/rsa.c.inc
diff --git a/crypto/fipsmodule/rsa/rsa_impl.c.inc b/src/crypto/fipsmodule/rsa/rsa_impl.c.inc
similarity index 100%
rename from crypto/fipsmodule/rsa/rsa_impl.c.inc
rename to src/crypto/fipsmodule/rsa/rsa_impl.c.inc
diff --git a/crypto/fipsmodule/self_check/fips.c.inc b/src/crypto/fipsmodule/self_check/fips.c.inc
similarity index 100%
rename from crypto/fipsmodule/self_check/fips.c.inc
rename to src/crypto/fipsmodule/self_check/fips.c.inc
diff --git a/crypto/fipsmodule/self_check/self_check.c.inc b/src/crypto/fipsmodule/self_check/self_check.c.inc
similarity index 100%
rename from crypto/fipsmodule/self_check/self_check.c.inc
rename to src/crypto/fipsmodule/self_check/self_check.c.inc
diff --git a/crypto/fipsmodule/service_indicator/internal.h b/src/crypto/fipsmodule/service_indicator/internal.h
similarity index 100%
rename from crypto/fipsmodule/service_indicator/internal.h
rename to src/crypto/fipsmodule/service_indicator/internal.h
diff --git a/crypto/fipsmodule/service_indicator/service_indicator.c.inc b/src/crypto/fipsmodule/service_indicator/service_indicator.c.inc
similarity index 100%
rename from crypto/fipsmodule/service_indicator/service_indicator.c.inc
rename to src/crypto/fipsmodule/service_indicator/service_indicator.c.inc
diff --git a/crypto/fipsmodule/service_indicator/service_indicator_test.cc b/src/crypto/fipsmodule/service_indicator/service_indicator_test.cc
similarity index 100%
rename from crypto/fipsmodule/service_indicator/service_indicator_test.cc
rename to src/crypto/fipsmodule/service_indicator/service_indicator_test.cc
diff --git a/crypto/fipsmodule/sha/asm/sha1-586.pl b/src/crypto/fipsmodule/sha/asm/sha1-586.pl
similarity index 100%
rename from crypto/fipsmodule/sha/asm/sha1-586.pl
rename to src/crypto/fipsmodule/sha/asm/sha1-586.pl
diff --git a/crypto/fipsmodule/sha/asm/sha1-armv4-large.pl b/src/crypto/fipsmodule/sha/asm/sha1-armv4-large.pl
similarity index 100%
rename from crypto/fipsmodule/sha/asm/sha1-armv4-large.pl
rename to src/crypto/fipsmodule/sha/asm/sha1-armv4-large.pl
diff --git a/crypto/fipsmodule/sha/asm/sha1-armv8.pl b/src/crypto/fipsmodule/sha/asm/sha1-armv8.pl
similarity index 100%
rename from crypto/fipsmodule/sha/asm/sha1-armv8.pl
rename to src/crypto/fipsmodule/sha/asm/sha1-armv8.pl
diff --git a/crypto/fipsmodule/sha/asm/sha1-x86_64.pl b/src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl
similarity index 100%
rename from crypto/fipsmodule/sha/asm/sha1-x86_64.pl
rename to src/crypto/fipsmodule/sha/asm/sha1-x86_64.pl
diff --git a/crypto/fipsmodule/sha/asm/sha256-586.pl b/src/crypto/fipsmodule/sha/asm/sha256-586.pl
similarity index 100%
rename from crypto/fipsmodule/sha/asm/sha256-586.pl
rename to src/crypto/fipsmodule/sha/asm/sha256-586.pl
diff --git a/crypto/fipsmodule/sha/asm/sha256-armv4.pl b/src/crypto/fipsmodule/sha/asm/sha256-armv4.pl
similarity index 100%
rename from crypto/fipsmodule/sha/asm/sha256-armv4.pl
rename to src/crypto/fipsmodule/sha/asm/sha256-armv4.pl
diff --git a/crypto/fipsmodule/sha/asm/sha512-586.pl b/src/crypto/fipsmodule/sha/asm/sha512-586.pl
similarity index 100%
rename from crypto/fipsmodule/sha/asm/sha512-586.pl
rename to src/crypto/fipsmodule/sha/asm/sha512-586.pl
diff --git a/crypto/fipsmodule/sha/asm/sha512-armv4.pl b/src/crypto/fipsmodule/sha/asm/sha512-armv4.pl
similarity index 100%
rename from crypto/fipsmodule/sha/asm/sha512-armv4.pl
rename to src/crypto/fipsmodule/sha/asm/sha512-armv4.pl
diff --git a/crypto/fipsmodule/sha/asm/sha512-armv8.pl b/src/crypto/fipsmodule/sha/asm/sha512-armv8.pl
similarity index 100%
rename from crypto/fipsmodule/sha/asm/sha512-armv8.pl
rename to src/crypto/fipsmodule/sha/asm/sha512-armv8.pl
diff --git a/crypto/fipsmodule/sha/asm/sha512-x86_64.pl b/src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl
similarity index 100%
rename from crypto/fipsmodule/sha/asm/sha512-x86_64.pl
rename to src/crypto/fipsmodule/sha/asm/sha512-x86_64.pl
diff --git a/crypto/fipsmodule/sha/internal.h b/src/crypto/fipsmodule/sha/internal.h
similarity index 100%
rename from crypto/fipsmodule/sha/internal.h
rename to src/crypto/fipsmodule/sha/internal.h
diff --git a/crypto/fipsmodule/sha/sha1.c.inc b/src/crypto/fipsmodule/sha/sha1.c.inc
similarity index 100%
rename from crypto/fipsmodule/sha/sha1.c.inc
rename to src/crypto/fipsmodule/sha/sha1.c.inc
diff --git a/crypto/fipsmodule/sha/sha256.c.inc b/src/crypto/fipsmodule/sha/sha256.c.inc
similarity index 100%
rename from crypto/fipsmodule/sha/sha256.c.inc
rename to src/crypto/fipsmodule/sha/sha256.c.inc
diff --git a/crypto/fipsmodule/sha/sha512.c.inc b/src/crypto/fipsmodule/sha/sha512.c.inc
similarity index 100%
rename from crypto/fipsmodule/sha/sha512.c.inc
rename to src/crypto/fipsmodule/sha/sha512.c.inc
diff --git a/crypto/fipsmodule/sha/sha_test.cc b/src/crypto/fipsmodule/sha/sha_test.cc
similarity index 100%
rename from crypto/fipsmodule/sha/sha_test.cc
rename to src/crypto/fipsmodule/sha/sha_test.cc
diff --git a/crypto/fipsmodule/tls/internal.h b/src/crypto/fipsmodule/tls/internal.h
similarity index 100%
rename from crypto/fipsmodule/tls/internal.h
rename to src/crypto/fipsmodule/tls/internal.h
diff --git a/crypto/fipsmodule/tls/kdf.c.inc b/src/crypto/fipsmodule/tls/kdf.c.inc
similarity index 100%
rename from crypto/fipsmodule/tls/kdf.c.inc
rename to src/crypto/fipsmodule/tls/kdf.c.inc
diff --git a/crypto/hmac_extra/hmac_test.cc b/src/crypto/hmac_extra/hmac_test.cc
similarity index 100%
rename from crypto/hmac_extra/hmac_test.cc
rename to src/crypto/hmac_extra/hmac_test.cc
diff --git a/crypto/hmac_extra/hmac_tests.txt b/src/crypto/hmac_extra/hmac_tests.txt
similarity index 100%
rename from crypto/hmac_extra/hmac_tests.txt
rename to src/crypto/hmac_extra/hmac_tests.txt
diff --git a/crypto/hpke/hpke.c b/src/crypto/hpke/hpke.c
similarity index 100%
rename from crypto/hpke/hpke.c
rename to src/crypto/hpke/hpke.c
diff --git a/crypto/hpke/hpke_test.cc b/src/crypto/hpke/hpke_test.cc
similarity index 100%
rename from crypto/hpke/hpke_test.cc
rename to src/crypto/hpke/hpke_test.cc
diff --git a/crypto/hpke/hpke_test_vectors.txt b/src/crypto/hpke/hpke_test_vectors.txt
similarity index 100%
rename from crypto/hpke/hpke_test_vectors.txt
rename to src/crypto/hpke/hpke_test_vectors.txt
diff --git a/crypto/hpke/test-vectors.json b/src/crypto/hpke/test-vectors.json
similarity index 100%
rename from crypto/hpke/test-vectors.json
rename to src/crypto/hpke/test-vectors.json
diff --git a/crypto/hpke/translate_test_vectors.py b/src/crypto/hpke/translate_test_vectors.py
similarity index 100%
rename from crypto/hpke/translate_test_vectors.py
rename to src/crypto/hpke/translate_test_vectors.py
diff --git a/crypto/hrss/asm/poly_rq_mul.S b/src/crypto/hrss/asm/poly_rq_mul.S
similarity index 100%
rename from crypto/hrss/asm/poly_rq_mul.S
rename to src/crypto/hrss/asm/poly_rq_mul.S
diff --git a/crypto/hrss/hrss.c b/src/crypto/hrss/hrss.c
similarity index 100%
rename from crypto/hrss/hrss.c
rename to src/crypto/hrss/hrss.c
diff --git a/crypto/hrss/hrss_test.cc b/src/crypto/hrss/hrss_test.cc
similarity index 100%
rename from crypto/hrss/hrss_test.cc
rename to src/crypto/hrss/hrss_test.cc
diff --git a/crypto/hrss/internal.h b/src/crypto/hrss/internal.h
similarity index 100%
rename from crypto/hrss/internal.h
rename to src/crypto/hrss/internal.h
diff --git a/crypto/impl_dispatch_test.cc b/src/crypto/impl_dispatch_test.cc
similarity index 100%
rename from crypto/impl_dispatch_test.cc
rename to src/crypto/impl_dispatch_test.cc
diff --git a/crypto/internal.h b/src/crypto/internal.h
similarity index 100%
rename from crypto/internal.h
rename to src/crypto/internal.h
diff --git a/crypto/keccak/internal.h b/src/crypto/keccak/internal.h
similarity index 100%
rename from crypto/keccak/internal.h
rename to src/crypto/keccak/internal.h
diff --git a/crypto/keccak/keccak.c b/src/crypto/keccak/keccak.c
similarity index 100%
rename from crypto/keccak/keccak.c
rename to src/crypto/keccak/keccak.c
diff --git a/crypto/keccak/keccak_test.cc b/src/crypto/keccak/keccak_test.cc
similarity index 100%
rename from crypto/keccak/keccak_test.cc
rename to src/crypto/keccak/keccak_test.cc
diff --git a/crypto/keccak/keccak_tests.txt b/src/crypto/keccak/keccak_tests.txt
similarity index 100%
rename from crypto/keccak/keccak_tests.txt
rename to src/crypto/keccak/keccak_tests.txt
diff --git a/crypto/kyber/internal.h b/src/crypto/kyber/internal.h
similarity index 100%
rename from crypto/kyber/internal.h
rename to src/crypto/kyber/internal.h
diff --git a/crypto/kyber/kyber.c b/src/crypto/kyber/kyber.c
similarity index 100%
rename from crypto/kyber/kyber.c
rename to src/crypto/kyber/kyber.c
diff --git a/crypto/kyber/kyber_test.cc b/src/crypto/kyber/kyber_test.cc
similarity index 100%
rename from crypto/kyber/kyber_test.cc
rename to src/crypto/kyber/kyber_test.cc
diff --git a/crypto/kyber/kyber_tests.txt b/src/crypto/kyber/kyber_tests.txt
similarity index 100%
rename from crypto/kyber/kyber_tests.txt
rename to src/crypto/kyber/kyber_tests.txt
diff --git a/crypto/lhash/internal.h b/src/crypto/lhash/internal.h
similarity index 100%
rename from crypto/lhash/internal.h
rename to src/crypto/lhash/internal.h
diff --git a/crypto/lhash/lhash.c b/src/crypto/lhash/lhash.c
similarity index 100%
rename from crypto/lhash/lhash.c
rename to src/crypto/lhash/lhash.c
diff --git a/crypto/lhash/lhash_test.cc b/src/crypto/lhash/lhash_test.cc
similarity index 100%
rename from crypto/lhash/lhash_test.cc
rename to src/crypto/lhash/lhash_test.cc
diff --git a/crypto/md4/md4.c b/src/crypto/md4/md4.c
similarity index 100%
rename from crypto/md4/md4.c
rename to src/crypto/md4/md4.c
diff --git a/crypto/md5/asm/md5-586.pl b/src/crypto/md5/asm/md5-586.pl
similarity index 100%
rename from crypto/md5/asm/md5-586.pl
rename to src/crypto/md5/asm/md5-586.pl
diff --git a/crypto/md5/asm/md5-x86_64.pl b/src/crypto/md5/asm/md5-x86_64.pl
similarity index 100%
rename from crypto/md5/asm/md5-x86_64.pl
rename to src/crypto/md5/asm/md5-x86_64.pl
diff --git a/crypto/md5/internal.h b/src/crypto/md5/internal.h
similarity index 100%
rename from crypto/md5/internal.h
rename to src/crypto/md5/internal.h
diff --git a/crypto/md5/md5.c b/src/crypto/md5/md5.c
similarity index 100%
rename from crypto/md5/md5.c
rename to src/crypto/md5/md5.c
diff --git a/crypto/md5/md5_test.cc b/src/crypto/md5/md5_test.cc
similarity index 100%
rename from crypto/md5/md5_test.cc
rename to src/crypto/md5/md5_test.cc
diff --git a/crypto/mem.c b/src/crypto/mem.c
similarity index 100%
rename from crypto/mem.c
rename to src/crypto/mem.c
diff --git a/crypto/mldsa/internal.h b/src/crypto/mldsa/internal.h
similarity index 100%
rename from crypto/mldsa/internal.h
rename to src/crypto/mldsa/internal.h
diff --git a/crypto/mldsa/mldsa.c b/src/crypto/mldsa/mldsa.c
similarity index 100%
rename from crypto/mldsa/mldsa.c
rename to src/crypto/mldsa/mldsa.c
diff --git a/crypto/mldsa/mldsa_nist_keygen_tests.txt b/src/crypto/mldsa/mldsa_nist_keygen_tests.txt
similarity index 100%
rename from crypto/mldsa/mldsa_nist_keygen_tests.txt
rename to src/crypto/mldsa/mldsa_nist_keygen_tests.txt
diff --git a/crypto/mldsa/mldsa_nist_siggen_tests.txt b/src/crypto/mldsa/mldsa_nist_siggen_tests.txt
similarity index 100%
rename from crypto/mldsa/mldsa_nist_siggen_tests.txt
rename to src/crypto/mldsa/mldsa_nist_siggen_tests.txt
diff --git a/crypto/mldsa/mldsa_test.cc b/src/crypto/mldsa/mldsa_test.cc
similarity index 100%
rename from crypto/mldsa/mldsa_test.cc
rename to src/crypto/mldsa/mldsa_test.cc
diff --git a/crypto/mlkem/internal.h b/src/crypto/mlkem/internal.h
similarity index 100%
rename from crypto/mlkem/internal.h
rename to src/crypto/mlkem/internal.h
diff --git a/crypto/mlkem/mlkem.cc b/src/crypto/mlkem/mlkem.cc
similarity index 100%
rename from crypto/mlkem/mlkem.cc
rename to src/crypto/mlkem/mlkem.cc
diff --git a/crypto/mlkem/mlkem1024_decap_tests.txt b/src/crypto/mlkem/mlkem1024_decap_tests.txt
similarity index 100%
rename from crypto/mlkem/mlkem1024_decap_tests.txt
rename to src/crypto/mlkem/mlkem1024_decap_tests.txt
diff --git a/crypto/mlkem/mlkem1024_encap_tests.txt b/src/crypto/mlkem/mlkem1024_encap_tests.txt
similarity index 100%
rename from crypto/mlkem/mlkem1024_encap_tests.txt
rename to src/crypto/mlkem/mlkem1024_encap_tests.txt
diff --git a/crypto/mlkem/mlkem1024_keygen_tests.txt b/src/crypto/mlkem/mlkem1024_keygen_tests.txt
similarity index 100%
rename from crypto/mlkem/mlkem1024_keygen_tests.txt
rename to src/crypto/mlkem/mlkem1024_keygen_tests.txt
diff --git a/crypto/mlkem/mlkem1024_nist_decap_tests.txt b/src/crypto/mlkem/mlkem1024_nist_decap_tests.txt
similarity index 100%
rename from crypto/mlkem/mlkem1024_nist_decap_tests.txt
rename to src/crypto/mlkem/mlkem1024_nist_decap_tests.txt
diff --git a/crypto/mlkem/mlkem1024_nist_keygen_tests.txt b/src/crypto/mlkem/mlkem1024_nist_keygen_tests.txt
similarity index 100%
rename from crypto/mlkem/mlkem1024_nist_keygen_tests.txt
rename to src/crypto/mlkem/mlkem1024_nist_keygen_tests.txt
diff --git a/crypto/mlkem/mlkem768_decap_tests.txt b/src/crypto/mlkem/mlkem768_decap_tests.txt
similarity index 100%
rename from crypto/mlkem/mlkem768_decap_tests.txt
rename to src/crypto/mlkem/mlkem768_decap_tests.txt
diff --git a/crypto/mlkem/mlkem768_encap_tests.txt b/src/crypto/mlkem/mlkem768_encap_tests.txt
similarity index 100%
rename from crypto/mlkem/mlkem768_encap_tests.txt
rename to src/crypto/mlkem/mlkem768_encap_tests.txt
diff --git a/crypto/mlkem/mlkem768_keygen_tests.txt b/src/crypto/mlkem/mlkem768_keygen_tests.txt
similarity index 100%
rename from crypto/mlkem/mlkem768_keygen_tests.txt
rename to src/crypto/mlkem/mlkem768_keygen_tests.txt
diff --git a/crypto/mlkem/mlkem768_nist_decap_tests.txt b/src/crypto/mlkem/mlkem768_nist_decap_tests.txt
similarity index 100%
rename from crypto/mlkem/mlkem768_nist_decap_tests.txt
rename to src/crypto/mlkem/mlkem768_nist_decap_tests.txt
diff --git a/crypto/mlkem/mlkem768_nist_keygen_tests.txt b/src/crypto/mlkem/mlkem768_nist_keygen_tests.txt
similarity index 100%
rename from crypto/mlkem/mlkem768_nist_keygen_tests.txt
rename to src/crypto/mlkem/mlkem768_nist_keygen_tests.txt
diff --git a/crypto/mlkem/mlkem_test.cc b/src/crypto/mlkem/mlkem_test.cc
similarity index 100%
rename from crypto/mlkem/mlkem_test.cc
rename to src/crypto/mlkem/mlkem_test.cc
diff --git a/crypto/obj/README b/src/crypto/obj/README
similarity index 100%
rename from crypto/obj/README
rename to src/crypto/obj/README
diff --git a/crypto/obj/obj.c b/src/crypto/obj/obj.c
similarity index 100%
rename from crypto/obj/obj.c
rename to src/crypto/obj/obj.c
diff --git a/crypto/obj/obj_dat.h b/src/crypto/obj/obj_dat.h
similarity index 100%
rename from crypto/obj/obj_dat.h
rename to src/crypto/obj/obj_dat.h
diff --git a/crypto/obj/obj_mac.num b/src/crypto/obj/obj_mac.num
similarity index 100%
rename from crypto/obj/obj_mac.num
rename to src/crypto/obj/obj_mac.num
diff --git a/crypto/obj/obj_test.cc b/src/crypto/obj/obj_test.cc
similarity index 100%
rename from crypto/obj/obj_test.cc
rename to src/crypto/obj/obj_test.cc
diff --git a/crypto/obj/obj_xref.c b/src/crypto/obj/obj_xref.c
similarity index 100%
rename from crypto/obj/obj_xref.c
rename to src/crypto/obj/obj_xref.c
diff --git a/crypto/obj/objects.go b/src/crypto/obj/objects.go
similarity index 100%
rename from crypto/obj/objects.go
rename to src/crypto/obj/objects.go
diff --git a/crypto/obj/objects.txt b/src/crypto/obj/objects.txt
similarity index 100%
rename from crypto/obj/objects.txt
rename to src/crypto/obj/objects.txt
diff --git a/crypto/pem/pem_all.c b/src/crypto/pem/pem_all.c
similarity index 100%
rename from crypto/pem/pem_all.c
rename to src/crypto/pem/pem_all.c
diff --git a/crypto/pem/pem_info.c b/src/crypto/pem/pem_info.c
similarity index 100%
rename from crypto/pem/pem_info.c
rename to src/crypto/pem/pem_info.c
diff --git a/crypto/pem/pem_lib.c b/src/crypto/pem/pem_lib.c
similarity index 100%
rename from crypto/pem/pem_lib.c
rename to src/crypto/pem/pem_lib.c
diff --git a/crypto/pem/pem_oth.c b/src/crypto/pem/pem_oth.c
similarity index 100%
rename from crypto/pem/pem_oth.c
rename to src/crypto/pem/pem_oth.c
diff --git a/crypto/pem/pem_pk8.c b/src/crypto/pem/pem_pk8.c
similarity index 100%
rename from crypto/pem/pem_pk8.c
rename to src/crypto/pem/pem_pk8.c
diff --git a/crypto/pem/pem_pkey.c b/src/crypto/pem/pem_pkey.c
similarity index 100%
rename from crypto/pem/pem_pkey.c
rename to src/crypto/pem/pem_pkey.c
diff --git a/crypto/pem/pem_test.cc b/src/crypto/pem/pem_test.cc
similarity index 100%
rename from crypto/pem/pem_test.cc
rename to src/crypto/pem/pem_test.cc
diff --git a/crypto/pem/pem_x509.c b/src/crypto/pem/pem_x509.c
similarity index 100%
rename from crypto/pem/pem_x509.c
rename to src/crypto/pem/pem_x509.c
diff --git a/crypto/pem/pem_xaux.c b/src/crypto/pem/pem_xaux.c
similarity index 100%
rename from crypto/pem/pem_xaux.c
rename to src/crypto/pem/pem_xaux.c
diff --git a/crypto/perlasm/arm-xlate.pl b/src/crypto/perlasm/arm-xlate.pl
similarity index 100%
rename from crypto/perlasm/arm-xlate.pl
rename to src/crypto/perlasm/arm-xlate.pl
diff --git a/crypto/perlasm/readme b/src/crypto/perlasm/readme
similarity index 100%
rename from crypto/perlasm/readme
rename to src/crypto/perlasm/readme
diff --git a/crypto/perlasm/x86_64-xlate.pl b/src/crypto/perlasm/x86_64-xlate.pl
similarity index 100%
rename from crypto/perlasm/x86_64-xlate.pl
rename to src/crypto/perlasm/x86_64-xlate.pl
diff --git a/crypto/perlasm/x86asm.pl b/src/crypto/perlasm/x86asm.pl
similarity index 100%
rename from crypto/perlasm/x86asm.pl
rename to src/crypto/perlasm/x86asm.pl
diff --git a/crypto/perlasm/x86gas.pl b/src/crypto/perlasm/x86gas.pl
similarity index 100%
rename from crypto/perlasm/x86gas.pl
rename to src/crypto/perlasm/x86gas.pl
diff --git a/crypto/perlasm/x86masm.pl b/src/crypto/perlasm/x86masm.pl
similarity index 100%
rename from crypto/perlasm/x86masm.pl
rename to src/crypto/perlasm/x86masm.pl
diff --git a/crypto/perlasm/x86nasm.pl b/src/crypto/perlasm/x86nasm.pl
similarity index 100%
rename from crypto/perlasm/x86nasm.pl
rename to src/crypto/perlasm/x86nasm.pl
diff --git a/crypto/pkcs7/internal.h b/src/crypto/pkcs7/internal.h
similarity index 100%
rename from crypto/pkcs7/internal.h
rename to src/crypto/pkcs7/internal.h
diff --git a/crypto/pkcs7/pkcs7.c b/src/crypto/pkcs7/pkcs7.c
similarity index 100%
rename from crypto/pkcs7/pkcs7.c
rename to src/crypto/pkcs7/pkcs7.c
diff --git a/crypto/pkcs7/pkcs7_test.cc b/src/crypto/pkcs7/pkcs7_test.cc
similarity index 100%
rename from crypto/pkcs7/pkcs7_test.cc
rename to src/crypto/pkcs7/pkcs7_test.cc
diff --git a/crypto/pkcs7/pkcs7_x509.c b/src/crypto/pkcs7/pkcs7_x509.c
similarity index 100%
rename from crypto/pkcs7/pkcs7_x509.c
rename to src/crypto/pkcs7/pkcs7_x509.c
diff --git a/crypto/pkcs8/internal.h b/src/crypto/pkcs8/internal.h
similarity index 100%
rename from crypto/pkcs8/internal.h
rename to src/crypto/pkcs8/internal.h
diff --git a/crypto/pkcs8/p5_pbev2.c b/src/crypto/pkcs8/p5_pbev2.c
similarity index 100%
rename from crypto/pkcs8/p5_pbev2.c
rename to src/crypto/pkcs8/p5_pbev2.c
diff --git a/crypto/pkcs8/pkcs12_test.cc b/src/crypto/pkcs8/pkcs12_test.cc
similarity index 100%
rename from crypto/pkcs8/pkcs12_test.cc
rename to src/crypto/pkcs8/pkcs12_test.cc
diff --git a/crypto/pkcs8/pkcs8.c b/src/crypto/pkcs8/pkcs8.c
similarity index 100%
rename from crypto/pkcs8/pkcs8.c
rename to src/crypto/pkcs8/pkcs8.c
diff --git a/crypto/pkcs8/pkcs8_test.cc b/src/crypto/pkcs8/pkcs8_test.cc
similarity index 100%
rename from crypto/pkcs8/pkcs8_test.cc
rename to src/crypto/pkcs8/pkcs8_test.cc
diff --git a/crypto/pkcs8/pkcs8_x509.c b/src/crypto/pkcs8/pkcs8_x509.c
similarity index 100%
rename from crypto/pkcs8/pkcs8_x509.c
rename to src/crypto/pkcs8/pkcs8_x509.c
diff --git a/crypto/pkcs8/test/bad1.p12 b/src/crypto/pkcs8/test/bad1.p12
similarity index 100%
rename from crypto/pkcs8/test/bad1.p12
rename to src/crypto/pkcs8/test/bad1.p12
Binary files differ
diff --git a/crypto/pkcs8/test/bad2.p12 b/src/crypto/pkcs8/test/bad2.p12
similarity index 100%
rename from crypto/pkcs8/test/bad2.p12
rename to src/crypto/pkcs8/test/bad2.p12
Binary files differ
diff --git a/crypto/pkcs8/test/bad3.p12 b/src/crypto/pkcs8/test/bad3.p12
similarity index 100%
rename from crypto/pkcs8/test/bad3.p12
rename to src/crypto/pkcs8/test/bad3.p12
Binary files differ
diff --git a/crypto/pkcs8/test/empty_password.p12 b/src/crypto/pkcs8/test/empty_password.p12
similarity index 100%
rename from crypto/pkcs8/test/empty_password.p12
rename to src/crypto/pkcs8/test/empty_password.p12
Binary files differ
diff --git a/crypto/pkcs8/test/empty_password_ber.p12 b/src/crypto/pkcs8/test/empty_password_ber.p12
similarity index 100%
rename from crypto/pkcs8/test/empty_password_ber.p12
rename to src/crypto/pkcs8/test/empty_password_ber.p12
Binary files differ
diff --git a/crypto/pkcs8/test/empty_password_ber_nested.p12 b/src/crypto/pkcs8/test/empty_password_ber_nested.p12
similarity index 100%
rename from crypto/pkcs8/test/empty_password_ber_nested.p12
rename to src/crypto/pkcs8/test/empty_password_ber_nested.p12
Binary files differ
diff --git a/crypto/pkcs8/test/no_encryption.p12 b/src/crypto/pkcs8/test/no_encryption.p12
similarity index 100%
rename from crypto/pkcs8/test/no_encryption.p12
rename to src/crypto/pkcs8/test/no_encryption.p12
Binary files differ
diff --git a/crypto/pkcs8/test/nss.p12 b/src/crypto/pkcs8/test/nss.p12
similarity index 100%
rename from crypto/pkcs8/test/nss.p12
rename to src/crypto/pkcs8/test/nss.p12
Binary files differ
diff --git a/crypto/pkcs8/test/null_password.p12 b/src/crypto/pkcs8/test/null_password.p12
similarity index 100%
rename from crypto/pkcs8/test/null_password.p12
rename to src/crypto/pkcs8/test/null_password.p12
Binary files differ
diff --git a/crypto/pkcs8/test/openssl.p12 b/src/crypto/pkcs8/test/openssl.p12
similarity index 100%
rename from crypto/pkcs8/test/openssl.p12
rename to src/crypto/pkcs8/test/openssl.p12
Binary files differ
diff --git a/crypto/pkcs8/test/pbes2_sha1.p12 b/src/crypto/pkcs8/test/pbes2_sha1.p12
similarity index 100%
rename from crypto/pkcs8/test/pbes2_sha1.p12
rename to src/crypto/pkcs8/test/pbes2_sha1.p12
Binary files differ
diff --git a/crypto/pkcs8/test/pbes2_sha256.p12 b/src/crypto/pkcs8/test/pbes2_sha256.p12
similarity index 100%
rename from crypto/pkcs8/test/pbes2_sha256.p12
rename to src/crypto/pkcs8/test/pbes2_sha256.p12
Binary files differ
diff --git a/crypto/pkcs8/test/unicode_password.p12 b/src/crypto/pkcs8/test/unicode_password.p12
similarity index 100%
rename from crypto/pkcs8/test/unicode_password.p12
rename to src/crypto/pkcs8/test/unicode_password.p12
Binary files differ
diff --git a/crypto/pkcs8/test/windows.p12 b/src/crypto/pkcs8/test/windows.p12
similarity index 100%
rename from crypto/pkcs8/test/windows.p12
rename to src/crypto/pkcs8/test/windows.p12
Binary files differ
diff --git a/crypto/poly1305/internal.h b/src/crypto/poly1305/internal.h
similarity index 100%
rename from crypto/poly1305/internal.h
rename to src/crypto/poly1305/internal.h
diff --git a/crypto/poly1305/poly1305.c b/src/crypto/poly1305/poly1305.c
similarity index 100%
rename from crypto/poly1305/poly1305.c
rename to src/crypto/poly1305/poly1305.c
diff --git a/crypto/poly1305/poly1305_arm.c b/src/crypto/poly1305/poly1305_arm.c
similarity index 100%
rename from crypto/poly1305/poly1305_arm.c
rename to src/crypto/poly1305/poly1305_arm.c
diff --git a/crypto/poly1305/poly1305_arm_asm.S b/src/crypto/poly1305/poly1305_arm_asm.S
similarity index 100%
rename from crypto/poly1305/poly1305_arm_asm.S
rename to src/crypto/poly1305/poly1305_arm_asm.S
diff --git a/crypto/poly1305/poly1305_test.cc b/src/crypto/poly1305/poly1305_test.cc
similarity index 100%
rename from crypto/poly1305/poly1305_test.cc
rename to src/crypto/poly1305/poly1305_test.cc
diff --git a/crypto/poly1305/poly1305_tests.txt b/src/crypto/poly1305/poly1305_tests.txt
similarity index 100%
rename from crypto/poly1305/poly1305_tests.txt
rename to src/crypto/poly1305/poly1305_tests.txt
diff --git a/crypto/poly1305/poly1305_vec.c b/src/crypto/poly1305/poly1305_vec.c
similarity index 100%
rename from crypto/poly1305/poly1305_vec.c
rename to src/crypto/poly1305/poly1305_vec.c
diff --git a/crypto/pool/internal.h b/src/crypto/pool/internal.h
similarity index 100%
rename from crypto/pool/internal.h
rename to src/crypto/pool/internal.h
diff --git a/crypto/pool/pool.c b/src/crypto/pool/pool.c
similarity index 100%
rename from crypto/pool/pool.c
rename to src/crypto/pool/pool.c
diff --git a/crypto/pool/pool_test.cc b/src/crypto/pool/pool_test.cc
similarity index 100%
rename from crypto/pool/pool_test.cc
rename to src/crypto/pool/pool_test.cc
diff --git a/crypto/rand_extra/deterministic.c b/src/crypto/rand_extra/deterministic.c
similarity index 100%
rename from crypto/rand_extra/deterministic.c
rename to src/crypto/rand_extra/deterministic.c
diff --git a/crypto/rand_extra/fork_detect.c b/src/crypto/rand_extra/fork_detect.c
similarity index 100%
rename from crypto/rand_extra/fork_detect.c
rename to src/crypto/rand_extra/fork_detect.c
diff --git a/crypto/rand_extra/fork_detect_test.cc b/src/crypto/rand_extra/fork_detect_test.cc
similarity index 100%
rename from crypto/rand_extra/fork_detect_test.cc
rename to src/crypto/rand_extra/fork_detect_test.cc
diff --git a/crypto/rand_extra/forkunsafe.c b/src/crypto/rand_extra/forkunsafe.c
similarity index 100%
rename from crypto/rand_extra/forkunsafe.c
rename to src/crypto/rand_extra/forkunsafe.c
diff --git a/crypto/rand_extra/getentropy.c b/src/crypto/rand_extra/getentropy.c
similarity index 100%
rename from crypto/rand_extra/getentropy.c
rename to src/crypto/rand_extra/getentropy.c
diff --git a/crypto/rand_extra/getentropy_test.cc b/src/crypto/rand_extra/getentropy_test.cc
similarity index 100%
rename from crypto/rand_extra/getentropy_test.cc
rename to src/crypto/rand_extra/getentropy_test.cc
diff --git a/crypto/rand_extra/getrandom_fillin.h b/src/crypto/rand_extra/getrandom_fillin.h
similarity index 100%
rename from crypto/rand_extra/getrandom_fillin.h
rename to src/crypto/rand_extra/getrandom_fillin.h
diff --git a/crypto/rand_extra/ios.c b/src/crypto/rand_extra/ios.c
similarity index 100%
rename from crypto/rand_extra/ios.c
rename to src/crypto/rand_extra/ios.c
diff --git a/crypto/rand_extra/passive.c b/src/crypto/rand_extra/passive.c
similarity index 100%
rename from crypto/rand_extra/passive.c
rename to src/crypto/rand_extra/passive.c
diff --git a/crypto/rand_extra/rand_extra.c b/src/crypto/rand_extra/rand_extra.c
similarity index 100%
rename from crypto/rand_extra/rand_extra.c
rename to src/crypto/rand_extra/rand_extra.c
diff --git a/crypto/rand_extra/rand_test.cc b/src/crypto/rand_extra/rand_test.cc
similarity index 100%
rename from crypto/rand_extra/rand_test.cc
rename to src/crypto/rand_extra/rand_test.cc
diff --git a/crypto/rand_extra/sysrand_internal.h b/src/crypto/rand_extra/sysrand_internal.h
similarity index 100%
rename from crypto/rand_extra/sysrand_internal.h
rename to src/crypto/rand_extra/sysrand_internal.h
diff --git a/crypto/rand_extra/trusty.c b/src/crypto/rand_extra/trusty.c
similarity index 100%
rename from crypto/rand_extra/trusty.c
rename to src/crypto/rand_extra/trusty.c
diff --git a/crypto/rand_extra/urandom.c b/src/crypto/rand_extra/urandom.c
similarity index 100%
rename from crypto/rand_extra/urandom.c
rename to src/crypto/rand_extra/urandom.c
diff --git a/crypto/rand_extra/urandom_test.cc b/src/crypto/rand_extra/urandom_test.cc
similarity index 100%
rename from crypto/rand_extra/urandom_test.cc
rename to src/crypto/rand_extra/urandom_test.cc
diff --git a/crypto/rand_extra/windows.c b/src/crypto/rand_extra/windows.c
similarity index 100%
rename from crypto/rand_extra/windows.c
rename to src/crypto/rand_extra/windows.c
diff --git a/crypto/rc4/rc4.c b/src/crypto/rc4/rc4.c
similarity index 100%
rename from crypto/rc4/rc4.c
rename to src/crypto/rc4/rc4.c
diff --git a/crypto/refcount.c b/src/crypto/refcount.c
similarity index 100%
rename from crypto/refcount.c
rename to src/crypto/refcount.c
diff --git a/crypto/refcount_test.cc b/src/crypto/refcount_test.cc
similarity index 100%
rename from crypto/refcount_test.cc
rename to src/crypto/refcount_test.cc
diff --git a/crypto/rsa_extra/internal.h b/src/crypto/rsa_extra/internal.h
similarity index 100%
rename from crypto/rsa_extra/internal.h
rename to src/crypto/rsa_extra/internal.h
diff --git a/crypto/rsa_extra/rsa_asn1.c b/src/crypto/rsa_extra/rsa_asn1.c
similarity index 100%
rename from crypto/rsa_extra/rsa_asn1.c
rename to src/crypto/rsa_extra/rsa_asn1.c
diff --git a/crypto/rsa_extra/rsa_crypt.c b/src/crypto/rsa_extra/rsa_crypt.c
similarity index 100%
rename from crypto/rsa_extra/rsa_crypt.c
rename to src/crypto/rsa_extra/rsa_crypt.c
diff --git a/crypto/rsa_extra/rsa_extra.c b/src/crypto/rsa_extra/rsa_extra.c
similarity index 100%
rename from crypto/rsa_extra/rsa_extra.c
rename to src/crypto/rsa_extra/rsa_extra.c
diff --git a/crypto/rsa_extra/rsa_print.c b/src/crypto/rsa_extra/rsa_print.c
similarity index 100%
rename from crypto/rsa_extra/rsa_print.c
rename to src/crypto/rsa_extra/rsa_print.c
diff --git a/crypto/rsa_extra/rsa_test.cc b/src/crypto/rsa_extra/rsa_test.cc
similarity index 100%
rename from crypto/rsa_extra/rsa_test.cc
rename to src/crypto/rsa_extra/rsa_test.cc
diff --git a/crypto/self_test.cc b/src/crypto/self_test.cc
similarity index 100%
rename from crypto/self_test.cc
rename to src/crypto/self_test.cc
diff --git a/crypto/sha/sha1.c b/src/crypto/sha/sha1.c
similarity index 100%
rename from crypto/sha/sha1.c
rename to src/crypto/sha/sha1.c
diff --git a/crypto/sha/sha256.c b/src/crypto/sha/sha256.c
similarity index 100%
rename from crypto/sha/sha256.c
rename to src/crypto/sha/sha256.c
diff --git a/crypto/sha/sha512.c b/src/crypto/sha/sha512.c
similarity index 100%
rename from crypto/sha/sha512.c
rename to src/crypto/sha/sha512.c
diff --git a/crypto/siphash/siphash.c b/src/crypto/siphash/siphash.c
similarity index 100%
rename from crypto/siphash/siphash.c
rename to src/crypto/siphash/siphash.c