Rename foo_extra to foo

The foo / foo_extra split will make increasingly less sense as we stop
putting public APIs in crypto/fipsmodule. Just call it crypto/foo and
crypto/fipsmodule/foo.

Bug: 42290602
Change-Id: I5143d3edfb768ed7a1aa288ff606f6f13faa9278
Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/75151
Commit-Queue: David Benjamin <davidben@google.com>
Reviewed-by: Bob Beck <bbe@google.com>
Auto-Submit: David Benjamin <davidben@google.com>
diff --git a/build.json b/build.json
index c9d1778..8daf6a9 100644
--- a/build.json
+++ b/build.json
@@ -199,8 +199,8 @@
             "crypto/bio/socket.cc",
             "crypto/bio/socket_helper.cc",
             "crypto/blake2/blake2.cc",
-            "crypto/bn_extra/bn_asn1.cc",
-            "crypto/bn_extra/convert.cc",
+            "crypto/bn/bn_asn1.cc",
+            "crypto/bn/convert.cc",
             "crypto/buf/buf.cc",
             "crypto/bytestring/asn1_compat.cc",
             "crypto/bytestring/ber.cc",
@@ -208,17 +208,17 @@
             "crypto/bytestring/cbs.cc",
             "crypto/bytestring/unicode.cc",
             "crypto/chacha/chacha.cc",
-            "crypto/cipher_extra/cipher_extra.cc",
-            "crypto/cipher_extra/derive_key.cc",
-            "crypto/cipher_extra/e_aesctrhmac.cc",
-            "crypto/cipher_extra/e_aesgcmsiv.cc",
-            "crypto/cipher_extra/e_chacha20poly1305.cc",
-            "crypto/cipher_extra/e_des.cc",
-            "crypto/cipher_extra/e_null.cc",
-            "crypto/cipher_extra/e_rc2.cc",
-            "crypto/cipher_extra/e_rc4.cc",
-            "crypto/cipher_extra/e_tls.cc",
-            "crypto/cipher_extra/tls_cbc.cc",
+            "crypto/cipher/derive_key.cc",
+            "crypto/cipher/get_cipher.cc",
+            "crypto/cipher/e_aesctrhmac.cc",
+            "crypto/cipher/e_aesgcmsiv.cc",
+            "crypto/cipher/e_chacha20poly1305.cc",
+            "crypto/cipher/e_des.cc",
+            "crypto/cipher/e_null.cc",
+            "crypto/cipher/e_rc2.cc",
+            "crypto/cipher/e_rc4.cc",
+            "crypto/cipher/e_tls.cc",
+            "crypto/cipher/tls_cbc.cc",
             "crypto/conf/conf.cc",
             "crypto/cpu_aarch64_apple.cc",
             "crypto/cpu_aarch64_fuchsia.cc",
@@ -234,16 +234,16 @@
             "crypto/curve25519/curve25519_64_adx.cc",
             "crypto/curve25519/spake25519.cc",
             "crypto/des/des.cc",
-            "crypto/dh_extra/dh_asn1.cc",
-            "crypto/dh_extra/params.cc",
-            "crypto/digest_extra/digest_extra.cc",
+            "crypto/dh/dh_asn1.cc",
+            "crypto/dh/params.cc",
+            "crypto/digest/digest_extra.cc",
             "crypto/dsa/dsa.cc",
             "crypto/dsa/dsa_asn1.cc",
-            "crypto/ec_extra/ec_asn1.cc",
-            "crypto/ec_extra/ec_derive.cc",
-            "crypto/ec_extra/hash_to_curve.cc",
-            "crypto/ecdh_extra/ecdh_extra.cc",
-            "crypto/ecdsa_extra/ecdsa_asn1.cc",
+            "crypto/ec/ec_asn1.cc",
+            "crypto/ec/ec_derive.cc",
+            "crypto/ec/hash_to_curve.cc",
+            "crypto/ecdh/ecdh.cc",
+            "crypto/ecdsa/ecdsa_asn1.cc",
             "crypto/engine/engine.cc",
             "crypto/err/err.cc",
             "crypto/evp/evp.cc",
@@ -295,22 +295,22 @@
             "crypto/poly1305/poly1305_arm.cc",
             "crypto/poly1305/poly1305_vec.cc",
             "crypto/pool/pool.cc",
-            "crypto/rand_extra/deterministic.cc",
-            "crypto/rand_extra/fork_detect.cc",
-            "crypto/rand_extra/forkunsafe.cc",
-            "crypto/rand_extra/getentropy.cc",
-            "crypto/rand_extra/ios.cc",
-            "crypto/rand_extra/passive.cc",
-            "crypto/rand_extra/rand_extra.cc",
-            "crypto/rand_extra/trusty.cc",
-            "crypto/rand_extra/urandom.cc",
-            "crypto/rand_extra/windows.cc",
+            "crypto/rand/deterministic.cc",
+            "crypto/rand/fork_detect.cc",
+            "crypto/rand/forkunsafe.cc",
+            "crypto/rand/getentropy.cc",
+            "crypto/rand/ios.cc",
+            "crypto/rand/passive.cc",
+            "crypto/rand/rand.cc",
+            "crypto/rand/trusty.cc",
+            "crypto/rand/urandom.cc",
+            "crypto/rand/windows.cc",
             "crypto/rc4/rc4.cc",
             "crypto/refcount.cc",
-            "crypto/rsa_extra/rsa_asn1.cc",
-            "crypto/rsa_extra/rsa_crypt.cc",
-            "crypto/rsa_extra/rsa_extra.cc",
-            "crypto/rsa_extra/rsa_print.cc",
+            "crypto/rsa/rsa_asn1.cc",
+            "crypto/rsa/rsa_crypt.cc",
+            "crypto/rsa/rsa_extra.cc",
+            "crypto/rsa/rsa_print.cc",
             "crypto/slhdsa/slhdsa.cc",
             "crypto/sha/sha1.cc",
             "crypto/sha/sha256.cc",
@@ -490,14 +490,14 @@
             "crypto/bio/internal.h",
             "crypto/bytestring/internal.h",
             "crypto/chacha/internal.h",
-            "crypto/cipher_extra/internal.h",
+            "crypto/cipher/internal.h",
             "crypto/conf/internal.h",
             "crypto/cpu_arm_linux.h",
             "crypto/curve25519/curve25519_tables.h",
             "crypto/curve25519/internal.h",
             "crypto/des/internal.h",
             "crypto/dsa/internal.h",
-            "crypto/ec_extra/internal.h",
+            "crypto/ec/internal.h",
             "crypto/err/internal.h",
             "crypto/evp/internal.h",
             "crypto/fipsmodule/aes/internal.h",
@@ -540,9 +540,9 @@
             "crypto/pkcs8/internal.h",
             "crypto/poly1305/internal.h",
             "crypto/pool/internal.h",
-            "crypto/rand_extra/getrandom_fillin.h",
-            "crypto/rand_extra/sysrand_internal.h",
-            "crypto/rsa_extra/internal.h",
+            "crypto/rand/getrandom_fillin.h",
+            "crypto/rand/sysrand_internal.h",
+            "crypto/rsa/internal.h",
             "crypto/spake2plus/internal.h",
             "crypto/trust_token/internal.h",
             "crypto/x509/ext_dat.h",
@@ -567,7 +567,7 @@
         ],
         "perlasm_aarch64": [
             {"src": "crypto/chacha/asm/chacha-armv8.pl"},
-            {"src": "crypto/cipher_extra/asm/chacha20_poly1305_armv8.pl"}
+            {"src": "crypto/cipher/asm/chacha20_poly1305_armv8.pl"}
         ],
         "perlasm_arm": [
             {"src": "crypto/chacha/asm/chacha-armv4.pl"}
@@ -578,8 +578,8 @@
         ],
         "perlasm_x86_64": [
             {"src": "crypto/chacha/asm/chacha-x86_64.pl"},
-            {"src": "crypto/cipher_extra/asm/aes128gcmsiv-x86_64.pl"},
-            {"src": "crypto/cipher_extra/asm/chacha20_poly1305_x86_64.pl"},
+            {"src": "crypto/cipher/asm/aes128gcmsiv-x86_64.pl"},
+            {"src": "crypto/cipher/asm/chacha20_poly1305_x86_64.pl"},
             {"src": "crypto/md5/asm/md5-x86_64.pl"}
         ]
     },
@@ -805,8 +805,8 @@
             "crypto/buf/buf_test.cc",
             "crypto/bytestring/bytestring_test.cc",
             "crypto/chacha/chacha_test.cc",
-            "crypto/cipher_extra/aead_test.cc",
-            "crypto/cipher_extra/cipher_test.cc",
+            "crypto/cipher/aead_test.cc",
+            "crypto/cipher/cipher_test.cc",
             "crypto/compiler_test.cc",
             "crypto/conf/conf_test.cc",
             "crypto/constant_time_test.cc",
@@ -815,10 +815,10 @@
             "crypto/curve25519/ed25519_test.cc",
             "crypto/curve25519/spake25519_test.cc",
             "crypto/curve25519/x25519_test.cc",
-            "crypto/dh_extra/dh_test.cc",
-            "crypto/digest_extra/digest_test.cc",
+            "crypto/dh/dh_test.cc",
+            "crypto/digest/digest_test.cc",
             "crypto/dsa/dsa_test.cc",
-            "crypto/ecdh_extra/ecdh_test.cc",
+            "crypto/ecdh/ecdh_test.cc",
             "crypto/err/err_test.cc",
             "crypto/evp/evp_extra_test.cc",
             "crypto/evp/evp_test.cc",
@@ -837,7 +837,7 @@
             "crypto/fipsmodule/rand/ctrdrbg_test.cc",
             "crypto/fipsmodule/service_indicator/service_indicator_test.cc",
             "crypto/fipsmodule/sha/sha_test.cc",
-            "crypto/hmac_extra/hmac_test.cc",
+            "crypto/hmac/hmac_test.cc",
             "crypto/hpke/hpke_test.cc",
             "crypto/hrss/hrss_test.cc",
             "crypto/impl_dispatch_test.cc",
@@ -853,11 +853,11 @@
             "crypto/pkcs8/pkcs8_test.cc",
             "crypto/poly1305/poly1305_test.cc",
             "crypto/pool/pool_test.cc",
-            "crypto/rand_extra/fork_detect_test.cc",
-            "crypto/rand_extra/getentropy_test.cc",
-            "crypto/rand_extra/rand_test.cc",
+            "crypto/rand/fork_detect_test.cc",
+            "crypto/rand/getentropy_test.cc",
+            "crypto/rand/rand_test.cc",
             "crypto/refcount_test.cc",
-            "crypto/rsa_extra/rsa_test.cc",
+            "crypto/rsa/rsa_test.cc",
             "crypto/self_test.cc",
             "crypto/siphash/siphash_test.cc",
             "crypto/slhdsa/slhdsa_test.cc",
@@ -872,10 +872,10 @@
         ],
         "data": [
             "crypto/blake2/blake2b256_tests.txt",
-            "crypto/cipher_extra/test/*.txt",
-            "crypto/cipher_extra/test/nist_cavp/*.txt",
+            "crypto/cipher/test/*.txt",
+            "crypto/cipher/test/nist_cavp/*.txt",
             "crypto/curve25519/ed25519_tests.txt",
-            "crypto/ecdh_extra/ecdh_tests.txt",
+            "crypto/ecdh/ecdh_tests.txt",
             "crypto/evp/evp_tests.txt",
             "crypto/evp/scrypt_tests.txt",
             "crypto/fipsmodule/aes/aes_tests.txt",
@@ -890,7 +890,7 @@
             "crypto/fipsmodule/ecdsa/ecdsa_verify_tests.txt",
             "crypto/fipsmodule/keccak/keccak_tests.txt",
             "crypto/fipsmodule/rand/ctrdrbg_vectors.txt",
-            "crypto/hmac_extra/hmac_tests.txt",
+            "crypto/hmac/hmac_tests.txt",
             "crypto/hpke/hpke_test_vectors.txt",
             "crypto/kyber/kyber_tests.txt",
             "crypto/mldsa/mldsa_nist_keygen_65_tests.txt",
@@ -920,7 +920,7 @@
     },
     "urandom_test": {
         "srcs": [
-            "crypto/rand_extra/urandom_test.cc"
+            "crypto/rand/urandom_test.cc"
         ]
     },
     "pki_test": {
diff --git a/crypto/bn_extra/bn_asn1.cc b/crypto/bn/bn_asn1.cc
similarity index 100%
rename from crypto/bn_extra/bn_asn1.cc
rename to crypto/bn/bn_asn1.cc
diff --git a/crypto/bn_extra/convert.cc b/crypto/bn/convert.cc
similarity index 100%
rename from crypto/bn_extra/convert.cc
rename to crypto/bn/convert.cc
diff --git a/crypto/cipher_extra/aead_test.cc b/crypto/cipher/aead_test.cc
similarity index 99%
rename from crypto/cipher_extra/aead_test.cc
rename to crypto/cipher/aead_test.cc
index cff7089..a68bf53 100644
--- a/crypto/cipher_extra/aead_test.cc
+++ b/crypto/cipher/aead_test.cc
@@ -173,7 +173,7 @@
 //   CT: 5294265a60
 //   TAG: 1d45758621762e061368e68868e2f929
 TEST_P(PerAEADTest, TestVector) {
-  std::string test_vectors = "crypto/cipher_extra/test/";
+  std::string test_vectors = "crypto/cipher/test/";
   test_vectors += GetParam().test_vectors;
   FileTestGTest(test_vectors.c_str(), [&](FileTest *t) {
     std::vector<uint8_t> key, nonce, in, ad, ct, tag;
@@ -276,7 +276,7 @@
   }
 
   const std::string test_vectors =
-      "crypto/cipher_extra/test/" + std::string(aead_config.test_vectors);
+      "crypto/cipher/test/" + std::string(aead_config.test_vectors);
   FileTestGTest(test_vectors.c_str(), [&](FileTest *t) {
     if (t->HasAttribute("NO_SEAL") ||  //
         t->HasAttribute("FAILS") ||    //
@@ -321,7 +321,7 @@
 }
 
 TEST_P(PerAEADTest, TestVectorScatterGather) {
-  std::string test_vectors = "crypto/cipher_extra/test/";
+  std::string test_vectors = "crypto/cipher/test/";
   const KnownAEAD &aead_config = GetParam();
   test_vectors += aead_config.test_vectors;
   FileTestGTest(test_vectors.c_str(), [&](FileTest *t) {
diff --git a/crypto/cipher_extra/asm/aes128gcmsiv-x86_64.pl b/crypto/cipher/asm/aes128gcmsiv-x86_64.pl
similarity index 100%
rename from crypto/cipher_extra/asm/aes128gcmsiv-x86_64.pl
rename to crypto/cipher/asm/aes128gcmsiv-x86_64.pl
diff --git a/crypto/cipher_extra/asm/chacha20_poly1305_armv8.pl b/crypto/cipher/asm/chacha20_poly1305_armv8.pl
similarity index 100%
rename from crypto/cipher_extra/asm/chacha20_poly1305_armv8.pl
rename to crypto/cipher/asm/chacha20_poly1305_armv8.pl
diff --git a/crypto/cipher_extra/asm/chacha20_poly1305_x86_64.pl b/crypto/cipher/asm/chacha20_poly1305_x86_64.pl
similarity index 100%
rename from crypto/cipher_extra/asm/chacha20_poly1305_x86_64.pl
rename to crypto/cipher/asm/chacha20_poly1305_x86_64.pl
diff --git a/crypto/cipher_extra/cipher_test.cc b/crypto/cipher/cipher_test.cc
similarity index 97%
rename from crypto/cipher_extra/cipher_test.cc
rename to crypto/cipher/cipher_test.cc
index b86803a..a73c5fd 100644
--- a/crypto/cipher_extra/cipher_test.cc
+++ b/crypto/cipher/cipher_test.cc
@@ -453,47 +453,39 @@
 }
 
 TEST(CipherTest, TestVectors) {
-  FileTestGTest("crypto/cipher_extra/test/cipher_tests.txt", CipherFileTest);
+  FileTestGTest("crypto/cipher/test/cipher_tests.txt", CipherFileTest);
 }
 
 TEST(CipherTest, CAVP_AES_128_CBC) {
-  FileTestGTest("crypto/cipher_extra/test/nist_cavp/aes_128_cbc.txt",
-                CipherFileTest);
+  FileTestGTest("crypto/cipher/test/nist_cavp/aes_128_cbc.txt", CipherFileTest);
 }
 
 TEST(CipherTest, CAVP_AES_128_CTR) {
-  FileTestGTest("crypto/cipher_extra/test/nist_cavp/aes_128_ctr.txt",
-                CipherFileTest);
+  FileTestGTest("crypto/cipher/test/nist_cavp/aes_128_ctr.txt", CipherFileTest);
 }
 
 TEST(CipherTest, CAVP_AES_192_CBC) {
-  FileTestGTest("crypto/cipher_extra/test/nist_cavp/aes_192_cbc.txt",
-                CipherFileTest);
+  FileTestGTest("crypto/cipher/test/nist_cavp/aes_192_cbc.txt", CipherFileTest);
 }
 
 TEST(CipherTest, CAVP_AES_192_CTR) {
-  FileTestGTest("crypto/cipher_extra/test/nist_cavp/aes_192_ctr.txt",
-                CipherFileTest);
+  FileTestGTest("crypto/cipher/test/nist_cavp/aes_192_ctr.txt", CipherFileTest);
 }
 
 TEST(CipherTest, CAVP_AES_256_CBC) {
-  FileTestGTest("crypto/cipher_extra/test/nist_cavp/aes_256_cbc.txt",
-                CipherFileTest);
+  FileTestGTest("crypto/cipher/test/nist_cavp/aes_256_cbc.txt", CipherFileTest);
 }
 
 TEST(CipherTest, CAVP_AES_256_CTR) {
-  FileTestGTest("crypto/cipher_extra/test/nist_cavp/aes_256_ctr.txt",
-                CipherFileTest);
+  FileTestGTest("crypto/cipher/test/nist_cavp/aes_256_ctr.txt", CipherFileTest);
 }
 
 TEST(CipherTest, CAVP_TDES_CBC) {
-  FileTestGTest("crypto/cipher_extra/test/nist_cavp/tdes_cbc.txt",
-                CipherFileTest);
+  FileTestGTest("crypto/cipher/test/nist_cavp/tdes_cbc.txt", CipherFileTest);
 }
 
 TEST(CipherTest, CAVP_TDES_ECB) {
-  FileTestGTest("crypto/cipher_extra/test/nist_cavp/tdes_ecb.txt",
-                CipherFileTest);
+  FileTestGTest("crypto/cipher/test/nist_cavp/tdes_ecb.txt", CipherFileTest);
 }
 
 TEST(CipherTest, WycheproofAESCBC) {
diff --git a/crypto/cipher_extra/derive_key.cc b/crypto/cipher/derive_key.cc
similarity index 100%
rename from crypto/cipher_extra/derive_key.cc
rename to crypto/cipher/derive_key.cc
diff --git a/crypto/cipher_extra/e_aesctrhmac.cc b/crypto/cipher/e_aesctrhmac.cc
similarity index 100%
rename from crypto/cipher_extra/e_aesctrhmac.cc
rename to crypto/cipher/e_aesctrhmac.cc
diff --git a/crypto/cipher_extra/e_aesgcmsiv.cc b/crypto/cipher/e_aesgcmsiv.cc
similarity index 100%
rename from crypto/cipher_extra/e_aesgcmsiv.cc
rename to crypto/cipher/e_aesgcmsiv.cc
diff --git a/crypto/cipher_extra/e_chacha20poly1305.cc b/crypto/cipher/e_chacha20poly1305.cc
similarity index 100%
rename from crypto/cipher_extra/e_chacha20poly1305.cc
rename to crypto/cipher/e_chacha20poly1305.cc
diff --git a/crypto/cipher_extra/e_des.cc b/crypto/cipher/e_des.cc
similarity index 100%
rename from crypto/cipher_extra/e_des.cc
rename to crypto/cipher/e_des.cc
diff --git a/crypto/cipher_extra/e_null.cc b/crypto/cipher/e_null.cc
similarity index 100%
rename from crypto/cipher_extra/e_null.cc
rename to crypto/cipher/e_null.cc
diff --git a/crypto/cipher_extra/e_rc2.cc b/crypto/cipher/e_rc2.cc
similarity index 100%
rename from crypto/cipher_extra/e_rc2.cc
rename to crypto/cipher/e_rc2.cc
diff --git a/crypto/cipher_extra/e_rc4.cc b/crypto/cipher/e_rc4.cc
similarity index 100%
rename from crypto/cipher_extra/e_rc4.cc
rename to crypto/cipher/e_rc4.cc
diff --git a/crypto/cipher_extra/e_tls.cc b/crypto/cipher/e_tls.cc
similarity index 100%
rename from crypto/cipher_extra/e_tls.cc
rename to crypto/cipher/e_tls.cc
diff --git a/crypto/cipher_extra/cipher_extra.cc b/crypto/cipher/get_cipher.cc
similarity index 100%
rename from crypto/cipher_extra/cipher_extra.cc
rename to crypto/cipher/get_cipher.cc
diff --git a/crypto/cipher_extra/internal.h b/crypto/cipher/internal.h
similarity index 100%
rename from crypto/cipher_extra/internal.h
rename to crypto/cipher/internal.h
diff --git a/crypto/cipher_extra/test/aes_128_cbc_sha1_tls_implicit_iv_tests.txt b/crypto/cipher/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 crypto/cipher/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/crypto/cipher/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 crypto/cipher/test/aes_128_cbc_sha1_tls_tests.txt
diff --git a/crypto/cipher_extra/test/aes_128_ccm_bluetooth_8_tests.txt b/crypto/cipher/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 crypto/cipher/test/aes_128_ccm_bluetooth_8_tests.txt
diff --git a/crypto/cipher_extra/test/aes_128_ccm_bluetooth_tests.txt b/crypto/cipher/test/aes_128_ccm_bluetooth_tests.txt
similarity index 100%
rename from crypto/cipher_extra/test/aes_128_ccm_bluetooth_tests.txt
rename to crypto/cipher/test/aes_128_ccm_bluetooth_tests.txt
diff --git a/crypto/cipher_extra/test/aes_128_ccm_matter_tests.txt b/crypto/cipher/test/aes_128_ccm_matter_tests.txt
similarity index 100%
rename from crypto/cipher_extra/test/aes_128_ccm_matter_tests.txt
rename to crypto/cipher/test/aes_128_ccm_matter_tests.txt
diff --git a/crypto/cipher_extra/test/aes_128_ctr_hmac_sha256.txt b/crypto/cipher/test/aes_128_ctr_hmac_sha256.txt
similarity index 100%
rename from crypto/cipher_extra/test/aes_128_ctr_hmac_sha256.txt
rename to crypto/cipher/test/aes_128_ctr_hmac_sha256.txt
diff --git a/crypto/cipher_extra/test/aes_128_gcm_randnonce_tests.txt b/crypto/cipher/test/aes_128_gcm_randnonce_tests.txt
similarity index 100%
rename from crypto/cipher_extra/test/aes_128_gcm_randnonce_tests.txt
rename to crypto/cipher/test/aes_128_gcm_randnonce_tests.txt
diff --git a/crypto/cipher_extra/test/aes_128_gcm_siv_tests.txt b/crypto/cipher/test/aes_128_gcm_siv_tests.txt
similarity index 100%
rename from crypto/cipher_extra/test/aes_128_gcm_siv_tests.txt
rename to crypto/cipher/test/aes_128_gcm_siv_tests.txt
diff --git a/crypto/cipher_extra/test/aes_128_gcm_tests.txt b/crypto/cipher/test/aes_128_gcm_tests.txt
similarity index 100%
rename from crypto/cipher_extra/test/aes_128_gcm_tests.txt
rename to crypto/cipher/test/aes_128_gcm_tests.txt
diff --git a/crypto/cipher_extra/test/aes_192_gcm_tests.txt b/crypto/cipher/test/aes_192_gcm_tests.txt
similarity index 100%
rename from crypto/cipher_extra/test/aes_192_gcm_tests.txt
rename to crypto/cipher/test/aes_192_gcm_tests.txt
diff --git a/crypto/cipher_extra/test/aes_256_cbc_sha1_tls_implicit_iv_tests.txt b/crypto/cipher/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 crypto/cipher/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/crypto/cipher/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 crypto/cipher/test/aes_256_cbc_sha1_tls_tests.txt
diff --git a/crypto/cipher_extra/test/aes_256_ctr_hmac_sha256.txt b/crypto/cipher/test/aes_256_ctr_hmac_sha256.txt
similarity index 100%
rename from crypto/cipher_extra/test/aes_256_ctr_hmac_sha256.txt
rename to crypto/cipher/test/aes_256_ctr_hmac_sha256.txt
diff --git a/crypto/cipher_extra/test/aes_256_gcm_randnonce_tests.txt b/crypto/cipher/test/aes_256_gcm_randnonce_tests.txt
similarity index 100%
rename from crypto/cipher_extra/test/aes_256_gcm_randnonce_tests.txt
rename to crypto/cipher/test/aes_256_gcm_randnonce_tests.txt
diff --git a/crypto/cipher_extra/test/aes_256_gcm_siv_tests.txt b/crypto/cipher/test/aes_256_gcm_siv_tests.txt
similarity index 100%
rename from crypto/cipher_extra/test/aes_256_gcm_siv_tests.txt
rename to crypto/cipher/test/aes_256_gcm_siv_tests.txt
diff --git a/crypto/cipher_extra/test/aes_256_gcm_tests.txt b/crypto/cipher/test/aes_256_gcm_tests.txt
similarity index 100%
rename from crypto/cipher_extra/test/aes_256_gcm_tests.txt
rename to crypto/cipher/test/aes_256_gcm_tests.txt
diff --git a/crypto/cipher_extra/test/chacha20_poly1305_tests.txt b/crypto/cipher/test/chacha20_poly1305_tests.txt
similarity index 100%
rename from crypto/cipher_extra/test/chacha20_poly1305_tests.txt
rename to crypto/cipher/test/chacha20_poly1305_tests.txt
diff --git a/crypto/cipher_extra/test/cipher_tests.txt b/crypto/cipher/test/cipher_tests.txt
similarity index 100%
rename from crypto/cipher_extra/test/cipher_tests.txt
rename to crypto/cipher/test/cipher_tests.txt
diff --git a/crypto/cipher_extra/test/des_ede3_cbc_sha1_tls_implicit_iv_tests.txt b/crypto/cipher/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 crypto/cipher/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/crypto/cipher/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 crypto/cipher/test/des_ede3_cbc_sha1_tls_tests.txt
diff --git a/crypto/cipher_extra/test/make_all_legacy_aead_tests.sh b/crypto/cipher/test/make_all_legacy_aead_tests.sh
similarity index 100%
rename from crypto/cipher_extra/test/make_all_legacy_aead_tests.sh
rename to crypto/cipher/test/make_all_legacy_aead_tests.sh
diff --git a/crypto/cipher_extra/test/make_legacy_aead_tests.go b/crypto/cipher/test/make_legacy_aead_tests.go
similarity index 100%
rename from crypto/cipher_extra/test/make_legacy_aead_tests.go
rename to crypto/cipher/test/make_legacy_aead_tests.go
diff --git a/crypto/cipher_extra/test/nist_cavp/aes_128_cbc.txt b/crypto/cipher/test/nist_cavp/aes_128_cbc.txt
similarity index 100%
rename from crypto/cipher_extra/test/nist_cavp/aes_128_cbc.txt
rename to crypto/cipher/test/nist_cavp/aes_128_cbc.txt
diff --git a/crypto/cipher_extra/test/nist_cavp/aes_128_ctr.txt b/crypto/cipher/test/nist_cavp/aes_128_ctr.txt
similarity index 100%
rename from crypto/cipher_extra/test/nist_cavp/aes_128_ctr.txt
rename to crypto/cipher/test/nist_cavp/aes_128_ctr.txt
diff --git a/crypto/cipher_extra/test/nist_cavp/aes_128_gcm.txt b/crypto/cipher/test/nist_cavp/aes_128_gcm.txt
similarity index 100%
rename from crypto/cipher_extra/test/nist_cavp/aes_128_gcm.txt
rename to crypto/cipher/test/nist_cavp/aes_128_gcm.txt
diff --git a/crypto/cipher_extra/test/nist_cavp/aes_192_cbc.txt b/crypto/cipher/test/nist_cavp/aes_192_cbc.txt
similarity index 100%
rename from crypto/cipher_extra/test/nist_cavp/aes_192_cbc.txt
rename to crypto/cipher/test/nist_cavp/aes_192_cbc.txt
diff --git a/crypto/cipher_extra/test/nist_cavp/aes_192_ctr.txt b/crypto/cipher/test/nist_cavp/aes_192_ctr.txt
similarity index 100%
rename from crypto/cipher_extra/test/nist_cavp/aes_192_ctr.txt
rename to crypto/cipher/test/nist_cavp/aes_192_ctr.txt
diff --git a/crypto/cipher_extra/test/nist_cavp/aes_256_cbc.txt b/crypto/cipher/test/nist_cavp/aes_256_cbc.txt
similarity index 100%
rename from crypto/cipher_extra/test/nist_cavp/aes_256_cbc.txt
rename to crypto/cipher/test/nist_cavp/aes_256_cbc.txt
diff --git a/crypto/cipher_extra/test/nist_cavp/aes_256_ctr.txt b/crypto/cipher/test/nist_cavp/aes_256_ctr.txt
similarity index 100%
rename from crypto/cipher_extra/test/nist_cavp/aes_256_ctr.txt
rename to crypto/cipher/test/nist_cavp/aes_256_ctr.txt
diff --git a/crypto/cipher_extra/test/nist_cavp/aes_256_gcm.txt b/crypto/cipher/test/nist_cavp/aes_256_gcm.txt
similarity index 100%
rename from crypto/cipher_extra/test/nist_cavp/aes_256_gcm.txt
rename to crypto/cipher/test/nist_cavp/aes_256_gcm.txt
diff --git a/crypto/cipher_extra/test/nist_cavp/make_cavp.go b/crypto/cipher/test/nist_cavp/make_cavp.go
similarity index 100%
rename from crypto/cipher_extra/test/nist_cavp/make_cavp.go
rename to crypto/cipher/test/nist_cavp/make_cavp.go
diff --git a/crypto/cipher_extra/test/nist_cavp/tdes_cbc.txt b/crypto/cipher/test/nist_cavp/tdes_cbc.txt
similarity index 100%
rename from crypto/cipher_extra/test/nist_cavp/tdes_cbc.txt
rename to crypto/cipher/test/nist_cavp/tdes_cbc.txt
diff --git a/crypto/cipher_extra/test/nist_cavp/tdes_ecb.txt b/crypto/cipher/test/nist_cavp/tdes_ecb.txt
similarity index 100%
rename from crypto/cipher_extra/test/nist_cavp/tdes_ecb.txt
rename to crypto/cipher/test/nist_cavp/tdes_ecb.txt
diff --git a/crypto/cipher_extra/test/xchacha20_poly1305_tests.txt b/crypto/cipher/test/xchacha20_poly1305_tests.txt
similarity index 100%
rename from crypto/cipher_extra/test/xchacha20_poly1305_tests.txt
rename to crypto/cipher/test/xchacha20_poly1305_tests.txt
diff --git a/crypto/cipher_extra/tls_cbc.cc b/crypto/cipher/tls_cbc.cc
similarity index 100%
rename from crypto/cipher_extra/tls_cbc.cc
rename to crypto/cipher/tls_cbc.cc
diff --git a/crypto/dh_extra/dh_asn1.cc b/crypto/dh/dh_asn1.cc
similarity index 100%
rename from crypto/dh_extra/dh_asn1.cc
rename to crypto/dh/dh_asn1.cc
diff --git a/crypto/dh_extra/dh_test.cc b/crypto/dh/dh_test.cc
similarity index 100%
rename from crypto/dh_extra/dh_test.cc
rename to crypto/dh/dh_test.cc
diff --git a/crypto/dh_extra/params.cc b/crypto/dh/params.cc
similarity index 100%
rename from crypto/dh_extra/params.cc
rename to crypto/dh/params.cc
diff --git a/crypto/digest_extra/digest_extra.cc b/crypto/digest/digest_extra.cc
similarity index 100%
rename from crypto/digest_extra/digest_extra.cc
rename to crypto/digest/digest_extra.cc
diff --git a/crypto/digest_extra/digest_test.cc b/crypto/digest/digest_test.cc
similarity index 100%
rename from crypto/digest_extra/digest_test.cc
rename to crypto/digest/digest_test.cc
diff --git a/crypto/ec_extra/ec_asn1.cc b/crypto/ec/ec_asn1.cc
similarity index 100%
rename from crypto/ec_extra/ec_asn1.cc
rename to crypto/ec/ec_asn1.cc
diff --git a/crypto/ec_extra/ec_derive.cc b/crypto/ec/ec_derive.cc
similarity index 100%
rename from crypto/ec_extra/ec_derive.cc
rename to crypto/ec/ec_derive.cc
diff --git a/crypto/ec_extra/hash_to_curve.cc b/crypto/ec/hash_to_curve.cc
similarity index 100%
rename from crypto/ec_extra/hash_to_curve.cc
rename to crypto/ec/hash_to_curve.cc
diff --git a/crypto/ec_extra/internal.h b/crypto/ec/internal.h
similarity index 100%
rename from crypto/ec_extra/internal.h
rename to crypto/ec/internal.h
diff --git a/crypto/ecdh_extra/ecdh_extra.cc b/crypto/ecdh/ecdh.cc
similarity index 100%
rename from crypto/ecdh_extra/ecdh_extra.cc
rename to crypto/ecdh/ecdh.cc
diff --git a/crypto/ecdh_extra/ecdh_test.cc b/crypto/ecdh/ecdh_test.cc
similarity index 99%
rename from crypto/ecdh_extra/ecdh_test.cc
rename to crypto/ecdh/ecdh_test.cc
index 716dd0b..d7df96a 100644
--- a/crypto/ecdh_extra/ecdh_test.cc
+++ b/crypto/ecdh/ecdh_test.cc
@@ -68,7 +68,7 @@
 }
 
 TEST(ECDHTest, TestVectors) {
-  FileTestGTest("crypto/ecdh_extra/ecdh_tests.txt", [](FileTest *t) {
+  FileTestGTest("crypto/ecdh/ecdh_tests.txt", [](FileTest *t) {
     const EC_GROUP *group = GetCurve(t, "Curve");
     ASSERT_TRUE(group);
     bssl::UniquePtr<BIGNUM> priv_key = GetBIGNUM(t, "Private");
diff --git a/crypto/ecdh_extra/ecdh_tests.txt b/crypto/ecdh/ecdh_tests.txt
similarity index 100%
rename from crypto/ecdh_extra/ecdh_tests.txt
rename to crypto/ecdh/ecdh_tests.txt
diff --git a/crypto/ecdsa_extra/ecdsa_asn1.cc b/crypto/ecdsa/ecdsa_asn1.cc
similarity index 100%
rename from crypto/ecdsa_extra/ecdsa_asn1.cc
rename to crypto/ecdsa/ecdsa_asn1.cc
diff --git a/crypto/evp/p_rsa.cc b/crypto/evp/p_rsa.cc
index 570fdad..d7504f3 100644
--- a/crypto/evp/p_rsa.cc
+++ b/crypto/evp/p_rsa.cc
@@ -21,7 +21,7 @@
 #include <openssl/rsa.h>
 
 #include "../internal.h"
-#include "../rsa_extra/internal.h"
+#include "../rsa/internal.h"
 #include "internal.h"
 
 
diff --git a/crypto/fipsmodule/ec/ec_test.cc b/crypto/fipsmodule/ec/ec_test.cc
index 5d08829..3eb18b2 100644
--- a/crypto/fipsmodule/ec/ec_test.cc
+++ b/crypto/fipsmodule/ec/ec_test.cc
@@ -30,7 +30,7 @@
 #include <openssl/obj.h>
 #include <openssl/span.h>
 
-#include "../../ec_extra/internal.h"
+#include "../../ec/internal.h"
 #include "../../test/file_test.h"
 #include "../../test/test_util.h"
 #include "../bn/internal.h"
diff --git a/crypto/hmac_extra/hmac_test.cc b/crypto/hmac/hmac_test.cc
similarity index 98%
rename from crypto/hmac_extra/hmac_test.cc
rename to crypto/hmac/hmac_test.cc
index 697601e..193376b 100644
--- a/crypto/hmac_extra/hmac_test.cc
+++ b/crypto/hmac/hmac_test.cc
@@ -39,7 +39,7 @@
 }
 
 TEST(HMACTest, TestVectors) {
-  FileTestGTest("crypto/hmac_extra/hmac_tests.txt", [](FileTest *t) {
+  FileTestGTest("crypto/hmac/hmac_tests.txt", [](FileTest *t) {
     std::string digest_str;
     ASSERT_TRUE(t->GetAttribute(&digest_str, "HMAC"));
     const EVP_MD *digest = GetDigest(digest_str);
diff --git a/crypto/hmac_extra/hmac_tests.txt b/crypto/hmac/hmac_tests.txt
similarity index 100%
rename from crypto/hmac_extra/hmac_tests.txt
rename to crypto/hmac/hmac_tests.txt
diff --git a/crypto/rand_extra/deterministic.cc b/crypto/rand/deterministic.cc
similarity index 100%
rename from crypto/rand_extra/deterministic.cc
rename to crypto/rand/deterministic.cc
diff --git a/crypto/rand_extra/fork_detect.cc b/crypto/rand/fork_detect.cc
similarity index 100%
rename from crypto/rand_extra/fork_detect.cc
rename to crypto/rand/fork_detect.cc
diff --git a/crypto/rand_extra/fork_detect_test.cc b/crypto/rand/fork_detect_test.cc
similarity index 100%
rename from crypto/rand_extra/fork_detect_test.cc
rename to crypto/rand/fork_detect_test.cc
diff --git a/crypto/rand_extra/forkunsafe.cc b/crypto/rand/forkunsafe.cc
similarity index 100%
rename from crypto/rand_extra/forkunsafe.cc
rename to crypto/rand/forkunsafe.cc
diff --git a/crypto/rand_extra/getentropy.cc b/crypto/rand/getentropy.cc
similarity index 100%
rename from crypto/rand_extra/getentropy.cc
rename to crypto/rand/getentropy.cc
diff --git a/crypto/rand_extra/getentropy_test.cc b/crypto/rand/getentropy_test.cc
similarity index 100%
rename from crypto/rand_extra/getentropy_test.cc
rename to crypto/rand/getentropy_test.cc
diff --git a/crypto/rand_extra/getrandom_fillin.h b/crypto/rand/getrandom_fillin.h
similarity index 100%
rename from crypto/rand_extra/getrandom_fillin.h
rename to crypto/rand/getrandom_fillin.h
diff --git a/crypto/rand_extra/ios.cc b/crypto/rand/ios.cc
similarity index 100%
rename from crypto/rand_extra/ios.cc
rename to crypto/rand/ios.cc
diff --git a/crypto/rand_extra/passive.cc b/crypto/rand/passive.cc
similarity index 100%
rename from crypto/rand_extra/passive.cc
rename to crypto/rand/passive.cc
diff --git a/crypto/rand_extra/rand_extra.cc b/crypto/rand/rand.cc
similarity index 100%
rename from crypto/rand_extra/rand_extra.cc
rename to crypto/rand/rand.cc
diff --git a/crypto/rand_extra/rand_test.cc b/crypto/rand/rand_test.cc
similarity index 100%
rename from crypto/rand_extra/rand_test.cc
rename to crypto/rand/rand_test.cc
diff --git a/crypto/rand_extra/sysrand_internal.h b/crypto/rand/sysrand_internal.h
similarity index 100%
rename from crypto/rand_extra/sysrand_internal.h
rename to crypto/rand/sysrand_internal.h
diff --git a/crypto/rand_extra/trusty.cc b/crypto/rand/trusty.cc
similarity index 100%
rename from crypto/rand_extra/trusty.cc
rename to crypto/rand/trusty.cc
diff --git a/crypto/rand_extra/urandom.cc b/crypto/rand/urandom.cc
similarity index 100%
rename from crypto/rand_extra/urandom.cc
rename to crypto/rand/urandom.cc
diff --git a/crypto/rand_extra/urandom_test.cc b/crypto/rand/urandom_test.cc
similarity index 100%
rename from crypto/rand_extra/urandom_test.cc
rename to crypto/rand/urandom_test.cc
diff --git a/crypto/rand_extra/windows.cc b/crypto/rand/windows.cc
similarity index 100%
rename from crypto/rand_extra/windows.cc
rename to crypto/rand/windows.cc
diff --git a/crypto/rsa_extra/internal.h b/crypto/rsa/internal.h
similarity index 100%
rename from crypto/rsa_extra/internal.h
rename to crypto/rsa/internal.h
diff --git a/crypto/rsa_extra/rsa_asn1.cc b/crypto/rsa/rsa_asn1.cc
similarity index 100%
rename from crypto/rsa_extra/rsa_asn1.cc
rename to crypto/rsa/rsa_asn1.cc
diff --git a/crypto/rsa_extra/rsa_crypt.cc b/crypto/rsa/rsa_crypt.cc
similarity index 100%
rename from crypto/rsa_extra/rsa_crypt.cc
rename to crypto/rsa/rsa_crypt.cc
diff --git a/crypto/rsa_extra/rsa_extra.cc b/crypto/rsa/rsa_extra.cc
similarity index 100%
rename from crypto/rsa_extra/rsa_extra.cc
rename to crypto/rsa/rsa_extra.cc
diff --git a/crypto/rsa_extra/rsa_print.cc b/crypto/rsa/rsa_print.cc
similarity index 100%
rename from crypto/rsa_extra/rsa_print.cc
rename to crypto/rsa/rsa_print.cc
diff --git a/crypto/rsa_extra/rsa_test.cc b/crypto/rsa/rsa_test.cc
similarity index 100%
rename from crypto/rsa_extra/rsa_test.cc
rename to crypto/rsa/rsa_test.cc
diff --git a/crypto/trust_token/pmbtoken.cc b/crypto/trust_token/pmbtoken.cc
index b2a138c..8030b23 100644
--- a/crypto/trust_token/pmbtoken.cc
+++ b/crypto/trust_token/pmbtoken.cc
@@ -23,7 +23,7 @@
 #include <openssl/rand.h>
 #include <openssl/sha.h>
 
-#include "../ec_extra/internal.h"
+#include "../ec/internal.h"
 #include "../fipsmodule/bn/internal.h"
 #include "../fipsmodule/ec/internal.h"
 
diff --git a/crypto/trust_token/trust_token_test.cc b/crypto/trust_token/trust_token_test.cc
index 17e75ac..51ae679 100644
--- a/crypto/trust_token/trust_token_test.cc
+++ b/crypto/trust_token/trust_token_test.cc
@@ -34,7 +34,7 @@
 #include <openssl/sha.h>
 #include <openssl/trust_token.h>
 
-#include "../ec_extra/internal.h"
+#include "../ec/internal.h"
 #include "../fipsmodule/ec/internal.h"
 #include "../internal.h"
 #include "../test/test_util.h"
diff --git a/crypto/trust_token/voprf.cc b/crypto/trust_token/voprf.cc
index baf89cd..5d5e4b9 100644
--- a/crypto/trust_token/voprf.cc
+++ b/crypto/trust_token/voprf.cc
@@ -23,7 +23,7 @@
 #include <openssl/rand.h>
 #include <openssl/sha.h>
 
-#include "../ec_extra/internal.h"
+#include "../ec/internal.h"
 #include "../fipsmodule/ec/internal.h"
 
 #include "internal.h"
diff --git a/gen/sources.bzl b/gen/sources.bzl
index 35f3af6..45f41dd6 100644
--- a/gen/sources.bzl
+++ b/gen/sources.bzl
@@ -298,8 +298,8 @@
     "crypto/bio/socket.cc",
     "crypto/bio/socket_helper.cc",
     "crypto/blake2/blake2.cc",
-    "crypto/bn_extra/bn_asn1.cc",
-    "crypto/bn_extra/convert.cc",
+    "crypto/bn/bn_asn1.cc",
+    "crypto/bn/convert.cc",
     "crypto/buf/buf.cc",
     "crypto/bytestring/asn1_compat.cc",
     "crypto/bytestring/ber.cc",
@@ -307,17 +307,17 @@
     "crypto/bytestring/cbs.cc",
     "crypto/bytestring/unicode.cc",
     "crypto/chacha/chacha.cc",
-    "crypto/cipher_extra/cipher_extra.cc",
-    "crypto/cipher_extra/derive_key.cc",
-    "crypto/cipher_extra/e_aesctrhmac.cc",
-    "crypto/cipher_extra/e_aesgcmsiv.cc",
-    "crypto/cipher_extra/e_chacha20poly1305.cc",
-    "crypto/cipher_extra/e_des.cc",
-    "crypto/cipher_extra/e_null.cc",
-    "crypto/cipher_extra/e_rc2.cc",
-    "crypto/cipher_extra/e_rc4.cc",
-    "crypto/cipher_extra/e_tls.cc",
-    "crypto/cipher_extra/tls_cbc.cc",
+    "crypto/cipher/derive_key.cc",
+    "crypto/cipher/e_aesctrhmac.cc",
+    "crypto/cipher/e_aesgcmsiv.cc",
+    "crypto/cipher/e_chacha20poly1305.cc",
+    "crypto/cipher/e_des.cc",
+    "crypto/cipher/e_null.cc",
+    "crypto/cipher/e_rc2.cc",
+    "crypto/cipher/e_rc4.cc",
+    "crypto/cipher/e_tls.cc",
+    "crypto/cipher/get_cipher.cc",
+    "crypto/cipher/tls_cbc.cc",
     "crypto/conf/conf.cc",
     "crypto/cpu_aarch64_apple.cc",
     "crypto/cpu_aarch64_fuchsia.cc",
@@ -333,16 +333,16 @@
     "crypto/curve25519/curve25519_64_adx.cc",
     "crypto/curve25519/spake25519.cc",
     "crypto/des/des.cc",
-    "crypto/dh_extra/dh_asn1.cc",
-    "crypto/dh_extra/params.cc",
-    "crypto/digest_extra/digest_extra.cc",
+    "crypto/dh/dh_asn1.cc",
+    "crypto/dh/params.cc",
+    "crypto/digest/digest_extra.cc",
     "crypto/dsa/dsa.cc",
     "crypto/dsa/dsa_asn1.cc",
-    "crypto/ec_extra/ec_asn1.cc",
-    "crypto/ec_extra/ec_derive.cc",
-    "crypto/ec_extra/hash_to_curve.cc",
-    "crypto/ecdh_extra/ecdh_extra.cc",
-    "crypto/ecdsa_extra/ecdsa_asn1.cc",
+    "crypto/ec/ec_asn1.cc",
+    "crypto/ec/ec_derive.cc",
+    "crypto/ec/hash_to_curve.cc",
+    "crypto/ecdh/ecdh.cc",
+    "crypto/ecdsa/ecdsa_asn1.cc",
     "crypto/engine/engine.cc",
     "crypto/err/err.cc",
     "crypto/evp/evp.cc",
@@ -394,22 +394,22 @@
     "crypto/poly1305/poly1305_arm.cc",
     "crypto/poly1305/poly1305_vec.cc",
     "crypto/pool/pool.cc",
-    "crypto/rand_extra/deterministic.cc",
-    "crypto/rand_extra/fork_detect.cc",
-    "crypto/rand_extra/forkunsafe.cc",
-    "crypto/rand_extra/getentropy.cc",
-    "crypto/rand_extra/ios.cc",
-    "crypto/rand_extra/passive.cc",
-    "crypto/rand_extra/rand_extra.cc",
-    "crypto/rand_extra/trusty.cc",
-    "crypto/rand_extra/urandom.cc",
-    "crypto/rand_extra/windows.cc",
+    "crypto/rand/deterministic.cc",
+    "crypto/rand/fork_detect.cc",
+    "crypto/rand/forkunsafe.cc",
+    "crypto/rand/getentropy.cc",
+    "crypto/rand/ios.cc",
+    "crypto/rand/passive.cc",
+    "crypto/rand/rand.cc",
+    "crypto/rand/trusty.cc",
+    "crypto/rand/urandom.cc",
+    "crypto/rand/windows.cc",
     "crypto/rc4/rc4.cc",
     "crypto/refcount.cc",
-    "crypto/rsa_extra/rsa_asn1.cc",
-    "crypto/rsa_extra/rsa_crypt.cc",
-    "crypto/rsa_extra/rsa_extra.cc",
-    "crypto/rsa_extra/rsa_print.cc",
+    "crypto/rsa/rsa_asn1.cc",
+    "crypto/rsa/rsa_crypt.cc",
+    "crypto/rsa/rsa_extra.cc",
+    "crypto/rsa/rsa_print.cc",
     "crypto/sha/sha1.cc",
     "crypto/sha/sha256.cc",
     "crypto/sha/sha512.cc",
@@ -593,14 +593,14 @@
     "crypto/bio/internal.h",
     "crypto/bytestring/internal.h",
     "crypto/chacha/internal.h",
-    "crypto/cipher_extra/internal.h",
+    "crypto/cipher/internal.h",
     "crypto/conf/internal.h",
     "crypto/cpu_arm_linux.h",
     "crypto/curve25519/curve25519_tables.h",
     "crypto/curve25519/internal.h",
     "crypto/des/internal.h",
     "crypto/dsa/internal.h",
-    "crypto/ec_extra/internal.h",
+    "crypto/ec/internal.h",
     "crypto/err/internal.h",
     "crypto/evp/internal.h",
     "crypto/fipsmodule/aes/internal.h",
@@ -642,9 +642,9 @@
     "crypto/pkcs8/internal.h",
     "crypto/poly1305/internal.h",
     "crypto/pool/internal.h",
-    "crypto/rand_extra/getrandom_fillin.h",
-    "crypto/rand_extra/sysrand_internal.h",
-    "crypto/rsa_extra/internal.h",
+    "crypto/rand/getrandom_fillin.h",
+    "crypto/rand/sysrand_internal.h",
+    "crypto/rsa/internal.h",
     "crypto/spake2plus/internal.h",
     "crypto/trust_token/internal.h",
     "crypto/x509/ext_dat.h",
@@ -703,8 +703,8 @@
     "crypto/buf/buf_test.cc",
     "crypto/bytestring/bytestring_test.cc",
     "crypto/chacha/chacha_test.cc",
-    "crypto/cipher_extra/aead_test.cc",
-    "crypto/cipher_extra/cipher_test.cc",
+    "crypto/cipher/aead_test.cc",
+    "crypto/cipher/cipher_test.cc",
     "crypto/compiler_test.cc",
     "crypto/conf/conf_test.cc",
     "crypto/constant_time_test.cc",
@@ -713,10 +713,10 @@
     "crypto/curve25519/ed25519_test.cc",
     "crypto/curve25519/spake25519_test.cc",
     "crypto/curve25519/x25519_test.cc",
-    "crypto/dh_extra/dh_test.cc",
-    "crypto/digest_extra/digest_test.cc",
+    "crypto/dh/dh_test.cc",
+    "crypto/digest/digest_test.cc",
     "crypto/dsa/dsa_test.cc",
-    "crypto/ecdh_extra/ecdh_test.cc",
+    "crypto/ecdh/ecdh_test.cc",
     "crypto/err/err_test.cc",
     "crypto/evp/evp_extra_test.cc",
     "crypto/evp/evp_test.cc",
@@ -735,7 +735,7 @@
     "crypto/fipsmodule/rand/ctrdrbg_test.cc",
     "crypto/fipsmodule/service_indicator/service_indicator_test.cc",
     "crypto/fipsmodule/sha/sha_test.cc",
-    "crypto/hmac_extra/hmac_test.cc",
+    "crypto/hmac/hmac_test.cc",
     "crypto/hpke/hpke_test.cc",
     "crypto/hrss/hrss_test.cc",
     "crypto/impl_dispatch_test.cc",
@@ -751,11 +751,11 @@
     "crypto/pkcs8/pkcs8_test.cc",
     "crypto/poly1305/poly1305_test.cc",
     "crypto/pool/pool_test.cc",
-    "crypto/rand_extra/fork_detect_test.cc",
-    "crypto/rand_extra/getentropy_test.cc",
-    "crypto/rand_extra/rand_test.cc",
+    "crypto/rand/fork_detect_test.cc",
+    "crypto/rand/getentropy_test.cc",
+    "crypto/rand/rand_test.cc",
     "crypto/refcount_test.cc",
-    "crypto/rsa_extra/rsa_test.cc",
+    "crypto/rsa/rsa_test.cc",
     "crypto/self_test.cc",
     "crypto/siphash/siphash_test.cc",
     "crypto/slhdsa/slhdsa_test.cc",
@@ -771,39 +771,39 @@
 
 crypto_test_data = [
     "crypto/blake2/blake2b256_tests.txt",
-    "crypto/cipher_extra/test/aes_128_cbc_sha1_tls_implicit_iv_tests.txt",
-    "crypto/cipher_extra/test/aes_128_cbc_sha1_tls_tests.txt",
-    "crypto/cipher_extra/test/aes_128_ccm_bluetooth_8_tests.txt",
-    "crypto/cipher_extra/test/aes_128_ccm_bluetooth_tests.txt",
-    "crypto/cipher_extra/test/aes_128_ccm_matter_tests.txt",
-    "crypto/cipher_extra/test/aes_128_ctr_hmac_sha256.txt",
-    "crypto/cipher_extra/test/aes_128_gcm_randnonce_tests.txt",
-    "crypto/cipher_extra/test/aes_128_gcm_siv_tests.txt",
-    "crypto/cipher_extra/test/aes_128_gcm_tests.txt",
-    "crypto/cipher_extra/test/aes_192_gcm_tests.txt",
-    "crypto/cipher_extra/test/aes_256_cbc_sha1_tls_implicit_iv_tests.txt",
-    "crypto/cipher_extra/test/aes_256_cbc_sha1_tls_tests.txt",
-    "crypto/cipher_extra/test/aes_256_ctr_hmac_sha256.txt",
-    "crypto/cipher_extra/test/aes_256_gcm_randnonce_tests.txt",
-    "crypto/cipher_extra/test/aes_256_gcm_siv_tests.txt",
-    "crypto/cipher_extra/test/aes_256_gcm_tests.txt",
-    "crypto/cipher_extra/test/chacha20_poly1305_tests.txt",
-    "crypto/cipher_extra/test/cipher_tests.txt",
-    "crypto/cipher_extra/test/des_ede3_cbc_sha1_tls_implicit_iv_tests.txt",
-    "crypto/cipher_extra/test/des_ede3_cbc_sha1_tls_tests.txt",
-    "crypto/cipher_extra/test/nist_cavp/aes_128_cbc.txt",
-    "crypto/cipher_extra/test/nist_cavp/aes_128_ctr.txt",
-    "crypto/cipher_extra/test/nist_cavp/aes_128_gcm.txt",
-    "crypto/cipher_extra/test/nist_cavp/aes_192_cbc.txt",
-    "crypto/cipher_extra/test/nist_cavp/aes_192_ctr.txt",
-    "crypto/cipher_extra/test/nist_cavp/aes_256_cbc.txt",
-    "crypto/cipher_extra/test/nist_cavp/aes_256_ctr.txt",
-    "crypto/cipher_extra/test/nist_cavp/aes_256_gcm.txt",
-    "crypto/cipher_extra/test/nist_cavp/tdes_cbc.txt",
-    "crypto/cipher_extra/test/nist_cavp/tdes_ecb.txt",
-    "crypto/cipher_extra/test/xchacha20_poly1305_tests.txt",
+    "crypto/cipher/test/aes_128_cbc_sha1_tls_implicit_iv_tests.txt",
+    "crypto/cipher/test/aes_128_cbc_sha1_tls_tests.txt",
+    "crypto/cipher/test/aes_128_ccm_bluetooth_8_tests.txt",
+    "crypto/cipher/test/aes_128_ccm_bluetooth_tests.txt",
+    "crypto/cipher/test/aes_128_ccm_matter_tests.txt",
+    "crypto/cipher/test/aes_128_ctr_hmac_sha256.txt",
+    "crypto/cipher/test/aes_128_gcm_randnonce_tests.txt",
+    "crypto/cipher/test/aes_128_gcm_siv_tests.txt",
+    "crypto/cipher/test/aes_128_gcm_tests.txt",
+    "crypto/cipher/test/aes_192_gcm_tests.txt",
+    "crypto/cipher/test/aes_256_cbc_sha1_tls_implicit_iv_tests.txt",
+    "crypto/cipher/test/aes_256_cbc_sha1_tls_tests.txt",
+    "crypto/cipher/test/aes_256_ctr_hmac_sha256.txt",
+    "crypto/cipher/test/aes_256_gcm_randnonce_tests.txt",
+    "crypto/cipher/test/aes_256_gcm_siv_tests.txt",
+    "crypto/cipher/test/aes_256_gcm_tests.txt",
+    "crypto/cipher/test/chacha20_poly1305_tests.txt",
+    "crypto/cipher/test/cipher_tests.txt",
+    "crypto/cipher/test/des_ede3_cbc_sha1_tls_implicit_iv_tests.txt",
+    "crypto/cipher/test/des_ede3_cbc_sha1_tls_tests.txt",
+    "crypto/cipher/test/nist_cavp/aes_128_cbc.txt",
+    "crypto/cipher/test/nist_cavp/aes_128_ctr.txt",
+    "crypto/cipher/test/nist_cavp/aes_128_gcm.txt",
+    "crypto/cipher/test/nist_cavp/aes_192_cbc.txt",
+    "crypto/cipher/test/nist_cavp/aes_192_ctr.txt",
+    "crypto/cipher/test/nist_cavp/aes_256_cbc.txt",
+    "crypto/cipher/test/nist_cavp/aes_256_ctr.txt",
+    "crypto/cipher/test/nist_cavp/aes_256_gcm.txt",
+    "crypto/cipher/test/nist_cavp/tdes_cbc.txt",
+    "crypto/cipher/test/nist_cavp/tdes_ecb.txt",
+    "crypto/cipher/test/xchacha20_poly1305_tests.txt",
     "crypto/curve25519/ed25519_tests.txt",
-    "crypto/ecdh_extra/ecdh_tests.txt",
+    "crypto/ecdh/ecdh_tests.txt",
     "crypto/evp/evp_tests.txt",
     "crypto/evp/scrypt_tests.txt",
     "crypto/fipsmodule/aes/aes_tests.txt",
@@ -828,7 +828,7 @@
     "crypto/fipsmodule/ecdsa/ecdsa_verify_tests.txt",
     "crypto/fipsmodule/keccak/keccak_tests.txt",
     "crypto/fipsmodule/rand/ctrdrbg_vectors.txt",
-    "crypto/hmac_extra/hmac_tests.txt",
+    "crypto/hmac/hmac_tests.txt",
     "crypto/hpke/hpke_test_vectors.txt",
     "crypto/kyber/kyber_tests.txt",
     "crypto/mldsa/mldsa_nist_keygen_65_tests.txt",
@@ -2783,5 +2783,5 @@
 ]
 
 urandom_test_sources = [
-    "crypto/rand_extra/urandom_test.cc",
+    "crypto/rand/urandom_test.cc",
 ]
diff --git a/gen/sources.cmake b/gen/sources.cmake
index 6979e47..dec16ac 100644
--- a/gen/sources.cmake
+++ b/gen/sources.cmake
@@ -312,8 +312,8 @@
   crypto/bio/socket.cc
   crypto/bio/socket_helper.cc
   crypto/blake2/blake2.cc
-  crypto/bn_extra/bn_asn1.cc
-  crypto/bn_extra/convert.cc
+  crypto/bn/bn_asn1.cc
+  crypto/bn/convert.cc
   crypto/buf/buf.cc
   crypto/bytestring/asn1_compat.cc
   crypto/bytestring/ber.cc
@@ -321,17 +321,17 @@
   crypto/bytestring/cbs.cc
   crypto/bytestring/unicode.cc
   crypto/chacha/chacha.cc
-  crypto/cipher_extra/cipher_extra.cc
-  crypto/cipher_extra/derive_key.cc
-  crypto/cipher_extra/e_aesctrhmac.cc
-  crypto/cipher_extra/e_aesgcmsiv.cc
-  crypto/cipher_extra/e_chacha20poly1305.cc
-  crypto/cipher_extra/e_des.cc
-  crypto/cipher_extra/e_null.cc
-  crypto/cipher_extra/e_rc2.cc
-  crypto/cipher_extra/e_rc4.cc
-  crypto/cipher_extra/e_tls.cc
-  crypto/cipher_extra/tls_cbc.cc
+  crypto/cipher/derive_key.cc
+  crypto/cipher/e_aesctrhmac.cc
+  crypto/cipher/e_aesgcmsiv.cc
+  crypto/cipher/e_chacha20poly1305.cc
+  crypto/cipher/e_des.cc
+  crypto/cipher/e_null.cc
+  crypto/cipher/e_rc2.cc
+  crypto/cipher/e_rc4.cc
+  crypto/cipher/e_tls.cc
+  crypto/cipher/get_cipher.cc
+  crypto/cipher/tls_cbc.cc
   crypto/conf/conf.cc
   crypto/cpu_aarch64_apple.cc
   crypto/cpu_aarch64_fuchsia.cc
@@ -347,16 +347,16 @@
   crypto/curve25519/curve25519_64_adx.cc
   crypto/curve25519/spake25519.cc
   crypto/des/des.cc
-  crypto/dh_extra/dh_asn1.cc
-  crypto/dh_extra/params.cc
-  crypto/digest_extra/digest_extra.cc
+  crypto/dh/dh_asn1.cc
+  crypto/dh/params.cc
+  crypto/digest/digest_extra.cc
   crypto/dsa/dsa.cc
   crypto/dsa/dsa_asn1.cc
-  crypto/ec_extra/ec_asn1.cc
-  crypto/ec_extra/ec_derive.cc
-  crypto/ec_extra/hash_to_curve.cc
-  crypto/ecdh_extra/ecdh_extra.cc
-  crypto/ecdsa_extra/ecdsa_asn1.cc
+  crypto/ec/ec_asn1.cc
+  crypto/ec/ec_derive.cc
+  crypto/ec/hash_to_curve.cc
+  crypto/ecdh/ecdh.cc
+  crypto/ecdsa/ecdsa_asn1.cc
   crypto/engine/engine.cc
   crypto/err/err.cc
   crypto/evp/evp.cc
@@ -408,22 +408,22 @@
   crypto/poly1305/poly1305_arm.cc
   crypto/poly1305/poly1305_vec.cc
   crypto/pool/pool.cc
-  crypto/rand_extra/deterministic.cc
-  crypto/rand_extra/fork_detect.cc
-  crypto/rand_extra/forkunsafe.cc
-  crypto/rand_extra/getentropy.cc
-  crypto/rand_extra/ios.cc
-  crypto/rand_extra/passive.cc
-  crypto/rand_extra/rand_extra.cc
-  crypto/rand_extra/trusty.cc
-  crypto/rand_extra/urandom.cc
-  crypto/rand_extra/windows.cc
+  crypto/rand/deterministic.cc
+  crypto/rand/fork_detect.cc
+  crypto/rand/forkunsafe.cc
+  crypto/rand/getentropy.cc
+  crypto/rand/ios.cc
+  crypto/rand/passive.cc
+  crypto/rand/rand.cc
+  crypto/rand/trusty.cc
+  crypto/rand/urandom.cc
+  crypto/rand/windows.cc
   crypto/rc4/rc4.cc
   crypto/refcount.cc
-  crypto/rsa_extra/rsa_asn1.cc
-  crypto/rsa_extra/rsa_crypt.cc
-  crypto/rsa_extra/rsa_extra.cc
-  crypto/rsa_extra/rsa_print.cc
+  crypto/rsa/rsa_asn1.cc
+  crypto/rsa/rsa_crypt.cc
+  crypto/rsa/rsa_extra.cc
+  crypto/rsa/rsa_print.cc
   crypto/sha/sha1.cc
   crypto/sha/sha256.cc
   crypto/sha/sha512.cc
@@ -611,14 +611,14 @@
   crypto/bio/internal.h
   crypto/bytestring/internal.h
   crypto/chacha/internal.h
-  crypto/cipher_extra/internal.h
+  crypto/cipher/internal.h
   crypto/conf/internal.h
   crypto/cpu_arm_linux.h
   crypto/curve25519/curve25519_tables.h
   crypto/curve25519/internal.h
   crypto/des/internal.h
   crypto/dsa/internal.h
-  crypto/ec_extra/internal.h
+  crypto/ec/internal.h
   crypto/err/internal.h
   crypto/evp/internal.h
   crypto/fipsmodule/aes/internal.h
@@ -660,9 +660,9 @@
   crypto/pkcs8/internal.h
   crypto/poly1305/internal.h
   crypto/pool/internal.h
-  crypto/rand_extra/getrandom_fillin.h
-  crypto/rand_extra/sysrand_internal.h
-  crypto/rsa_extra/internal.h
+  crypto/rand/getrandom_fillin.h
+  crypto/rand/sysrand_internal.h
+  crypto/rsa/internal.h
   crypto/spake2plus/internal.h
   crypto/trust_token/internal.h
   crypto/x509/ext_dat.h
@@ -727,8 +727,8 @@
   crypto/buf/buf_test.cc
   crypto/bytestring/bytestring_test.cc
   crypto/chacha/chacha_test.cc
-  crypto/cipher_extra/aead_test.cc
-  crypto/cipher_extra/cipher_test.cc
+  crypto/cipher/aead_test.cc
+  crypto/cipher/cipher_test.cc
   crypto/compiler_test.cc
   crypto/conf/conf_test.cc
   crypto/constant_time_test.cc
@@ -737,10 +737,10 @@
   crypto/curve25519/ed25519_test.cc
   crypto/curve25519/spake25519_test.cc
   crypto/curve25519/x25519_test.cc
-  crypto/dh_extra/dh_test.cc
-  crypto/digest_extra/digest_test.cc
+  crypto/dh/dh_test.cc
+  crypto/digest/digest_test.cc
   crypto/dsa/dsa_test.cc
-  crypto/ecdh_extra/ecdh_test.cc
+  crypto/ecdh/ecdh_test.cc
   crypto/err/err_test.cc
   crypto/evp/evp_extra_test.cc
   crypto/evp/evp_test.cc
@@ -759,7 +759,7 @@
   crypto/fipsmodule/rand/ctrdrbg_test.cc
   crypto/fipsmodule/service_indicator/service_indicator_test.cc
   crypto/fipsmodule/sha/sha_test.cc
-  crypto/hmac_extra/hmac_test.cc
+  crypto/hmac/hmac_test.cc
   crypto/hpke/hpke_test.cc
   crypto/hrss/hrss_test.cc
   crypto/impl_dispatch_test.cc
@@ -775,11 +775,11 @@
   crypto/pkcs8/pkcs8_test.cc
   crypto/poly1305/poly1305_test.cc
   crypto/pool/pool_test.cc
-  crypto/rand_extra/fork_detect_test.cc
-  crypto/rand_extra/getentropy_test.cc
-  crypto/rand_extra/rand_test.cc
+  crypto/rand/fork_detect_test.cc
+  crypto/rand/getentropy_test.cc
+  crypto/rand/rand_test.cc
   crypto/refcount_test.cc
-  crypto/rsa_extra/rsa_test.cc
+  crypto/rsa/rsa_test.cc
   crypto/self_test.cc
   crypto/siphash/siphash_test.cc
   crypto/slhdsa/slhdsa_test.cc
@@ -797,39 +797,39 @@
   CRYPTO_TEST_DATA
 
   crypto/blake2/blake2b256_tests.txt
-  crypto/cipher_extra/test/aes_128_cbc_sha1_tls_implicit_iv_tests.txt
-  crypto/cipher_extra/test/aes_128_cbc_sha1_tls_tests.txt
-  crypto/cipher_extra/test/aes_128_ccm_bluetooth_8_tests.txt
-  crypto/cipher_extra/test/aes_128_ccm_bluetooth_tests.txt
-  crypto/cipher_extra/test/aes_128_ccm_matter_tests.txt
-  crypto/cipher_extra/test/aes_128_ctr_hmac_sha256.txt
-  crypto/cipher_extra/test/aes_128_gcm_randnonce_tests.txt
-  crypto/cipher_extra/test/aes_128_gcm_siv_tests.txt
-  crypto/cipher_extra/test/aes_128_gcm_tests.txt
-  crypto/cipher_extra/test/aes_192_gcm_tests.txt
-  crypto/cipher_extra/test/aes_256_cbc_sha1_tls_implicit_iv_tests.txt
-  crypto/cipher_extra/test/aes_256_cbc_sha1_tls_tests.txt
-  crypto/cipher_extra/test/aes_256_ctr_hmac_sha256.txt
-  crypto/cipher_extra/test/aes_256_gcm_randnonce_tests.txt
-  crypto/cipher_extra/test/aes_256_gcm_siv_tests.txt
-  crypto/cipher_extra/test/aes_256_gcm_tests.txt
-  crypto/cipher_extra/test/chacha20_poly1305_tests.txt
-  crypto/cipher_extra/test/cipher_tests.txt
-  crypto/cipher_extra/test/des_ede3_cbc_sha1_tls_implicit_iv_tests.txt
-  crypto/cipher_extra/test/des_ede3_cbc_sha1_tls_tests.txt
-  crypto/cipher_extra/test/nist_cavp/aes_128_cbc.txt
-  crypto/cipher_extra/test/nist_cavp/aes_128_ctr.txt
-  crypto/cipher_extra/test/nist_cavp/aes_128_gcm.txt
-  crypto/cipher_extra/test/nist_cavp/aes_192_cbc.txt
-  crypto/cipher_extra/test/nist_cavp/aes_192_ctr.txt
-  crypto/cipher_extra/test/nist_cavp/aes_256_cbc.txt
-  crypto/cipher_extra/test/nist_cavp/aes_256_ctr.txt
-  crypto/cipher_extra/test/nist_cavp/aes_256_gcm.txt
-  crypto/cipher_extra/test/nist_cavp/tdes_cbc.txt
-  crypto/cipher_extra/test/nist_cavp/tdes_ecb.txt
-  crypto/cipher_extra/test/xchacha20_poly1305_tests.txt
+  crypto/cipher/test/aes_128_cbc_sha1_tls_implicit_iv_tests.txt
+  crypto/cipher/test/aes_128_cbc_sha1_tls_tests.txt
+  crypto/cipher/test/aes_128_ccm_bluetooth_8_tests.txt
+  crypto/cipher/test/aes_128_ccm_bluetooth_tests.txt
+  crypto/cipher/test/aes_128_ccm_matter_tests.txt
+  crypto/cipher/test/aes_128_ctr_hmac_sha256.txt
+  crypto/cipher/test/aes_128_gcm_randnonce_tests.txt
+  crypto/cipher/test/aes_128_gcm_siv_tests.txt
+  crypto/cipher/test/aes_128_gcm_tests.txt
+  crypto/cipher/test/aes_192_gcm_tests.txt
+  crypto/cipher/test/aes_256_cbc_sha1_tls_implicit_iv_tests.txt
+  crypto/cipher/test/aes_256_cbc_sha1_tls_tests.txt
+  crypto/cipher/test/aes_256_ctr_hmac_sha256.txt
+  crypto/cipher/test/aes_256_gcm_randnonce_tests.txt
+  crypto/cipher/test/aes_256_gcm_siv_tests.txt
+  crypto/cipher/test/aes_256_gcm_tests.txt
+  crypto/cipher/test/chacha20_poly1305_tests.txt
+  crypto/cipher/test/cipher_tests.txt
+  crypto/cipher/test/des_ede3_cbc_sha1_tls_implicit_iv_tests.txt
+  crypto/cipher/test/des_ede3_cbc_sha1_tls_tests.txt
+  crypto/cipher/test/nist_cavp/aes_128_cbc.txt
+  crypto/cipher/test/nist_cavp/aes_128_ctr.txt
+  crypto/cipher/test/nist_cavp/aes_128_gcm.txt
+  crypto/cipher/test/nist_cavp/aes_192_cbc.txt
+  crypto/cipher/test/nist_cavp/aes_192_ctr.txt
+  crypto/cipher/test/nist_cavp/aes_256_cbc.txt
+  crypto/cipher/test/nist_cavp/aes_256_ctr.txt
+  crypto/cipher/test/nist_cavp/aes_256_gcm.txt
+  crypto/cipher/test/nist_cavp/tdes_cbc.txt
+  crypto/cipher/test/nist_cavp/tdes_ecb.txt
+  crypto/cipher/test/xchacha20_poly1305_tests.txt
   crypto/curve25519/ed25519_tests.txt
-  crypto/ecdh_extra/ecdh_tests.txt
+  crypto/ecdh/ecdh_tests.txt
   crypto/evp/evp_tests.txt
   crypto/evp/scrypt_tests.txt
   crypto/fipsmodule/aes/aes_tests.txt
@@ -854,7 +854,7 @@
   crypto/fipsmodule/ecdsa/ecdsa_verify_tests.txt
   crypto/fipsmodule/keccak/keccak_tests.txt
   crypto/fipsmodule/rand/ctrdrbg_vectors.txt
-  crypto/hmac_extra/hmac_tests.txt
+  crypto/hmac/hmac_tests.txt
   crypto/hpke/hpke_test_vectors.txt
   crypto/kyber/kyber_tests.txt
   crypto/mldsa/mldsa_nist_keygen_65_tests.txt
@@ -2849,5 +2849,5 @@
 set(
   URANDOM_TEST_SOURCES
 
-  crypto/rand_extra/urandom_test.cc
+  crypto/rand/urandom_test.cc
 )
diff --git a/gen/sources.gni b/gen/sources.gni
index 1b40795..9461237 100644
--- a/gen/sources.gni
+++ b/gen/sources.gni
@@ -298,8 +298,8 @@
   "crypto/bio/socket.cc",
   "crypto/bio/socket_helper.cc",
   "crypto/blake2/blake2.cc",
-  "crypto/bn_extra/bn_asn1.cc",
-  "crypto/bn_extra/convert.cc",
+  "crypto/bn/bn_asn1.cc",
+  "crypto/bn/convert.cc",
   "crypto/buf/buf.cc",
   "crypto/bytestring/asn1_compat.cc",
   "crypto/bytestring/ber.cc",
@@ -307,17 +307,17 @@
   "crypto/bytestring/cbs.cc",
   "crypto/bytestring/unicode.cc",
   "crypto/chacha/chacha.cc",
-  "crypto/cipher_extra/cipher_extra.cc",
-  "crypto/cipher_extra/derive_key.cc",
-  "crypto/cipher_extra/e_aesctrhmac.cc",
-  "crypto/cipher_extra/e_aesgcmsiv.cc",
-  "crypto/cipher_extra/e_chacha20poly1305.cc",
-  "crypto/cipher_extra/e_des.cc",
-  "crypto/cipher_extra/e_null.cc",
-  "crypto/cipher_extra/e_rc2.cc",
-  "crypto/cipher_extra/e_rc4.cc",
-  "crypto/cipher_extra/e_tls.cc",
-  "crypto/cipher_extra/tls_cbc.cc",
+  "crypto/cipher/derive_key.cc",
+  "crypto/cipher/e_aesctrhmac.cc",
+  "crypto/cipher/e_aesgcmsiv.cc",
+  "crypto/cipher/e_chacha20poly1305.cc",
+  "crypto/cipher/e_des.cc",
+  "crypto/cipher/e_null.cc",
+  "crypto/cipher/e_rc2.cc",
+  "crypto/cipher/e_rc4.cc",
+  "crypto/cipher/e_tls.cc",
+  "crypto/cipher/get_cipher.cc",
+  "crypto/cipher/tls_cbc.cc",
   "crypto/conf/conf.cc",
   "crypto/cpu_aarch64_apple.cc",
   "crypto/cpu_aarch64_fuchsia.cc",
@@ -333,16 +333,16 @@
   "crypto/curve25519/curve25519_64_adx.cc",
   "crypto/curve25519/spake25519.cc",
   "crypto/des/des.cc",
-  "crypto/dh_extra/dh_asn1.cc",
-  "crypto/dh_extra/params.cc",
-  "crypto/digest_extra/digest_extra.cc",
+  "crypto/dh/dh_asn1.cc",
+  "crypto/dh/params.cc",
+  "crypto/digest/digest_extra.cc",
   "crypto/dsa/dsa.cc",
   "crypto/dsa/dsa_asn1.cc",
-  "crypto/ec_extra/ec_asn1.cc",
-  "crypto/ec_extra/ec_derive.cc",
-  "crypto/ec_extra/hash_to_curve.cc",
-  "crypto/ecdh_extra/ecdh_extra.cc",
-  "crypto/ecdsa_extra/ecdsa_asn1.cc",
+  "crypto/ec/ec_asn1.cc",
+  "crypto/ec/ec_derive.cc",
+  "crypto/ec/hash_to_curve.cc",
+  "crypto/ecdh/ecdh.cc",
+  "crypto/ecdsa/ecdsa_asn1.cc",
   "crypto/engine/engine.cc",
   "crypto/err/err.cc",
   "crypto/evp/evp.cc",
@@ -394,22 +394,22 @@
   "crypto/poly1305/poly1305_arm.cc",
   "crypto/poly1305/poly1305_vec.cc",
   "crypto/pool/pool.cc",
-  "crypto/rand_extra/deterministic.cc",
-  "crypto/rand_extra/fork_detect.cc",
-  "crypto/rand_extra/forkunsafe.cc",
-  "crypto/rand_extra/getentropy.cc",
-  "crypto/rand_extra/ios.cc",
-  "crypto/rand_extra/passive.cc",
-  "crypto/rand_extra/rand_extra.cc",
-  "crypto/rand_extra/trusty.cc",
-  "crypto/rand_extra/urandom.cc",
-  "crypto/rand_extra/windows.cc",
+  "crypto/rand/deterministic.cc",
+  "crypto/rand/fork_detect.cc",
+  "crypto/rand/forkunsafe.cc",
+  "crypto/rand/getentropy.cc",
+  "crypto/rand/ios.cc",
+  "crypto/rand/passive.cc",
+  "crypto/rand/rand.cc",
+  "crypto/rand/trusty.cc",
+  "crypto/rand/urandom.cc",
+  "crypto/rand/windows.cc",
   "crypto/rc4/rc4.cc",
   "crypto/refcount.cc",
-  "crypto/rsa_extra/rsa_asn1.cc",
-  "crypto/rsa_extra/rsa_crypt.cc",
-  "crypto/rsa_extra/rsa_extra.cc",
-  "crypto/rsa_extra/rsa_print.cc",
+  "crypto/rsa/rsa_asn1.cc",
+  "crypto/rsa/rsa_crypt.cc",
+  "crypto/rsa/rsa_extra.cc",
+  "crypto/rsa/rsa_print.cc",
   "crypto/sha/sha1.cc",
   "crypto/sha/sha256.cc",
   "crypto/sha/sha512.cc",
@@ -593,14 +593,14 @@
   "crypto/bio/internal.h",
   "crypto/bytestring/internal.h",
   "crypto/chacha/internal.h",
-  "crypto/cipher_extra/internal.h",
+  "crypto/cipher/internal.h",
   "crypto/conf/internal.h",
   "crypto/cpu_arm_linux.h",
   "crypto/curve25519/curve25519_tables.h",
   "crypto/curve25519/internal.h",
   "crypto/des/internal.h",
   "crypto/dsa/internal.h",
-  "crypto/ec_extra/internal.h",
+  "crypto/ec/internal.h",
   "crypto/err/internal.h",
   "crypto/evp/internal.h",
   "crypto/fipsmodule/aes/internal.h",
@@ -642,9 +642,9 @@
   "crypto/pkcs8/internal.h",
   "crypto/poly1305/internal.h",
   "crypto/pool/internal.h",
-  "crypto/rand_extra/getrandom_fillin.h",
-  "crypto/rand_extra/sysrand_internal.h",
-  "crypto/rsa_extra/internal.h",
+  "crypto/rand/getrandom_fillin.h",
+  "crypto/rand/sysrand_internal.h",
+  "crypto/rsa/internal.h",
   "crypto/spake2plus/internal.h",
   "crypto/trust_token/internal.h",
   "crypto/x509/ext_dat.h",
@@ -703,8 +703,8 @@
   "crypto/buf/buf_test.cc",
   "crypto/bytestring/bytestring_test.cc",
   "crypto/chacha/chacha_test.cc",
-  "crypto/cipher_extra/aead_test.cc",
-  "crypto/cipher_extra/cipher_test.cc",
+  "crypto/cipher/aead_test.cc",
+  "crypto/cipher/cipher_test.cc",
   "crypto/compiler_test.cc",
   "crypto/conf/conf_test.cc",
   "crypto/constant_time_test.cc",
@@ -713,10 +713,10 @@
   "crypto/curve25519/ed25519_test.cc",
   "crypto/curve25519/spake25519_test.cc",
   "crypto/curve25519/x25519_test.cc",
-  "crypto/dh_extra/dh_test.cc",
-  "crypto/digest_extra/digest_test.cc",
+  "crypto/dh/dh_test.cc",
+  "crypto/digest/digest_test.cc",
   "crypto/dsa/dsa_test.cc",
-  "crypto/ecdh_extra/ecdh_test.cc",
+  "crypto/ecdh/ecdh_test.cc",
   "crypto/err/err_test.cc",
   "crypto/evp/evp_extra_test.cc",
   "crypto/evp/evp_test.cc",
@@ -735,7 +735,7 @@
   "crypto/fipsmodule/rand/ctrdrbg_test.cc",
   "crypto/fipsmodule/service_indicator/service_indicator_test.cc",
   "crypto/fipsmodule/sha/sha_test.cc",
-  "crypto/hmac_extra/hmac_test.cc",
+  "crypto/hmac/hmac_test.cc",
   "crypto/hpke/hpke_test.cc",
   "crypto/hrss/hrss_test.cc",
   "crypto/impl_dispatch_test.cc",
@@ -751,11 +751,11 @@
   "crypto/pkcs8/pkcs8_test.cc",
   "crypto/poly1305/poly1305_test.cc",
   "crypto/pool/pool_test.cc",
-  "crypto/rand_extra/fork_detect_test.cc",
-  "crypto/rand_extra/getentropy_test.cc",
-  "crypto/rand_extra/rand_test.cc",
+  "crypto/rand/fork_detect_test.cc",
+  "crypto/rand/getentropy_test.cc",
+  "crypto/rand/rand_test.cc",
   "crypto/refcount_test.cc",
-  "crypto/rsa_extra/rsa_test.cc",
+  "crypto/rsa/rsa_test.cc",
   "crypto/self_test.cc",
   "crypto/siphash/siphash_test.cc",
   "crypto/slhdsa/slhdsa_test.cc",
@@ -771,39 +771,39 @@
 
 crypto_test_data = [
   "crypto/blake2/blake2b256_tests.txt",
-  "crypto/cipher_extra/test/aes_128_cbc_sha1_tls_implicit_iv_tests.txt",
-  "crypto/cipher_extra/test/aes_128_cbc_sha1_tls_tests.txt",
-  "crypto/cipher_extra/test/aes_128_ccm_bluetooth_8_tests.txt",
-  "crypto/cipher_extra/test/aes_128_ccm_bluetooth_tests.txt",
-  "crypto/cipher_extra/test/aes_128_ccm_matter_tests.txt",
-  "crypto/cipher_extra/test/aes_128_ctr_hmac_sha256.txt",
-  "crypto/cipher_extra/test/aes_128_gcm_randnonce_tests.txt",
-  "crypto/cipher_extra/test/aes_128_gcm_siv_tests.txt",
-  "crypto/cipher_extra/test/aes_128_gcm_tests.txt",
-  "crypto/cipher_extra/test/aes_192_gcm_tests.txt",
-  "crypto/cipher_extra/test/aes_256_cbc_sha1_tls_implicit_iv_tests.txt",
-  "crypto/cipher_extra/test/aes_256_cbc_sha1_tls_tests.txt",
-  "crypto/cipher_extra/test/aes_256_ctr_hmac_sha256.txt",
-  "crypto/cipher_extra/test/aes_256_gcm_randnonce_tests.txt",
-  "crypto/cipher_extra/test/aes_256_gcm_siv_tests.txt",
-  "crypto/cipher_extra/test/aes_256_gcm_tests.txt",
-  "crypto/cipher_extra/test/chacha20_poly1305_tests.txt",
-  "crypto/cipher_extra/test/cipher_tests.txt",
-  "crypto/cipher_extra/test/des_ede3_cbc_sha1_tls_implicit_iv_tests.txt",
-  "crypto/cipher_extra/test/des_ede3_cbc_sha1_tls_tests.txt",
-  "crypto/cipher_extra/test/nist_cavp/aes_128_cbc.txt",
-  "crypto/cipher_extra/test/nist_cavp/aes_128_ctr.txt",
-  "crypto/cipher_extra/test/nist_cavp/aes_128_gcm.txt",
-  "crypto/cipher_extra/test/nist_cavp/aes_192_cbc.txt",
-  "crypto/cipher_extra/test/nist_cavp/aes_192_ctr.txt",
-  "crypto/cipher_extra/test/nist_cavp/aes_256_cbc.txt",
-  "crypto/cipher_extra/test/nist_cavp/aes_256_ctr.txt",
-  "crypto/cipher_extra/test/nist_cavp/aes_256_gcm.txt",
-  "crypto/cipher_extra/test/nist_cavp/tdes_cbc.txt",
-  "crypto/cipher_extra/test/nist_cavp/tdes_ecb.txt",
-  "crypto/cipher_extra/test/xchacha20_poly1305_tests.txt",
+  "crypto/cipher/test/aes_128_cbc_sha1_tls_implicit_iv_tests.txt",
+  "crypto/cipher/test/aes_128_cbc_sha1_tls_tests.txt",
+  "crypto/cipher/test/aes_128_ccm_bluetooth_8_tests.txt",
+  "crypto/cipher/test/aes_128_ccm_bluetooth_tests.txt",
+  "crypto/cipher/test/aes_128_ccm_matter_tests.txt",
+  "crypto/cipher/test/aes_128_ctr_hmac_sha256.txt",
+  "crypto/cipher/test/aes_128_gcm_randnonce_tests.txt",
+  "crypto/cipher/test/aes_128_gcm_siv_tests.txt",
+  "crypto/cipher/test/aes_128_gcm_tests.txt",
+  "crypto/cipher/test/aes_192_gcm_tests.txt",
+  "crypto/cipher/test/aes_256_cbc_sha1_tls_implicit_iv_tests.txt",
+  "crypto/cipher/test/aes_256_cbc_sha1_tls_tests.txt",
+  "crypto/cipher/test/aes_256_ctr_hmac_sha256.txt",
+  "crypto/cipher/test/aes_256_gcm_randnonce_tests.txt",
+  "crypto/cipher/test/aes_256_gcm_siv_tests.txt",
+  "crypto/cipher/test/aes_256_gcm_tests.txt",
+  "crypto/cipher/test/chacha20_poly1305_tests.txt",
+  "crypto/cipher/test/cipher_tests.txt",
+  "crypto/cipher/test/des_ede3_cbc_sha1_tls_implicit_iv_tests.txt",
+  "crypto/cipher/test/des_ede3_cbc_sha1_tls_tests.txt",
+  "crypto/cipher/test/nist_cavp/aes_128_cbc.txt",
+  "crypto/cipher/test/nist_cavp/aes_128_ctr.txt",
+  "crypto/cipher/test/nist_cavp/aes_128_gcm.txt",
+  "crypto/cipher/test/nist_cavp/aes_192_cbc.txt",
+  "crypto/cipher/test/nist_cavp/aes_192_ctr.txt",
+  "crypto/cipher/test/nist_cavp/aes_256_cbc.txt",
+  "crypto/cipher/test/nist_cavp/aes_256_ctr.txt",
+  "crypto/cipher/test/nist_cavp/aes_256_gcm.txt",
+  "crypto/cipher/test/nist_cavp/tdes_cbc.txt",
+  "crypto/cipher/test/nist_cavp/tdes_ecb.txt",
+  "crypto/cipher/test/xchacha20_poly1305_tests.txt",
   "crypto/curve25519/ed25519_tests.txt",
-  "crypto/ecdh_extra/ecdh_tests.txt",
+  "crypto/ecdh/ecdh_tests.txt",
   "crypto/evp/evp_tests.txt",
   "crypto/evp/scrypt_tests.txt",
   "crypto/fipsmodule/aes/aes_tests.txt",
@@ -828,7 +828,7 @@
   "crypto/fipsmodule/ecdsa/ecdsa_verify_tests.txt",
   "crypto/fipsmodule/keccak/keccak_tests.txt",
   "crypto/fipsmodule/rand/ctrdrbg_vectors.txt",
-  "crypto/hmac_extra/hmac_tests.txt",
+  "crypto/hmac/hmac_tests.txt",
   "crypto/hpke/hpke_test_vectors.txt",
   "crypto/kyber/kyber_tests.txt",
   "crypto/mldsa/mldsa_nist_keygen_65_tests.txt",
@@ -2783,5 +2783,5 @@
 ]
 
 urandom_test_sources = [
-  "crypto/rand_extra/urandom_test.cc",
+  "crypto/rand/urandom_test.cc",
 ]
diff --git a/gen/sources.json b/gen/sources.json
index b2e6b52..a37daf1 100644
--- a/gen/sources.json
+++ b/gen/sources.json
@@ -282,8 +282,8 @@
       "crypto/bio/socket.cc",
       "crypto/bio/socket_helper.cc",
       "crypto/blake2/blake2.cc",
-      "crypto/bn_extra/bn_asn1.cc",
-      "crypto/bn_extra/convert.cc",
+      "crypto/bn/bn_asn1.cc",
+      "crypto/bn/convert.cc",
       "crypto/buf/buf.cc",
       "crypto/bytestring/asn1_compat.cc",
       "crypto/bytestring/ber.cc",
@@ -291,17 +291,17 @@
       "crypto/bytestring/cbs.cc",
       "crypto/bytestring/unicode.cc",
       "crypto/chacha/chacha.cc",
-      "crypto/cipher_extra/cipher_extra.cc",
-      "crypto/cipher_extra/derive_key.cc",
-      "crypto/cipher_extra/e_aesctrhmac.cc",
-      "crypto/cipher_extra/e_aesgcmsiv.cc",
-      "crypto/cipher_extra/e_chacha20poly1305.cc",
-      "crypto/cipher_extra/e_des.cc",
-      "crypto/cipher_extra/e_null.cc",
-      "crypto/cipher_extra/e_rc2.cc",
-      "crypto/cipher_extra/e_rc4.cc",
-      "crypto/cipher_extra/e_tls.cc",
-      "crypto/cipher_extra/tls_cbc.cc",
+      "crypto/cipher/derive_key.cc",
+      "crypto/cipher/e_aesctrhmac.cc",
+      "crypto/cipher/e_aesgcmsiv.cc",
+      "crypto/cipher/e_chacha20poly1305.cc",
+      "crypto/cipher/e_des.cc",
+      "crypto/cipher/e_null.cc",
+      "crypto/cipher/e_rc2.cc",
+      "crypto/cipher/e_rc4.cc",
+      "crypto/cipher/e_tls.cc",
+      "crypto/cipher/get_cipher.cc",
+      "crypto/cipher/tls_cbc.cc",
       "crypto/conf/conf.cc",
       "crypto/cpu_aarch64_apple.cc",
       "crypto/cpu_aarch64_fuchsia.cc",
@@ -317,16 +317,16 @@
       "crypto/curve25519/curve25519_64_adx.cc",
       "crypto/curve25519/spake25519.cc",
       "crypto/des/des.cc",
-      "crypto/dh_extra/dh_asn1.cc",
-      "crypto/dh_extra/params.cc",
-      "crypto/digest_extra/digest_extra.cc",
+      "crypto/dh/dh_asn1.cc",
+      "crypto/dh/params.cc",
+      "crypto/digest/digest_extra.cc",
       "crypto/dsa/dsa.cc",
       "crypto/dsa/dsa_asn1.cc",
-      "crypto/ec_extra/ec_asn1.cc",
-      "crypto/ec_extra/ec_derive.cc",
-      "crypto/ec_extra/hash_to_curve.cc",
-      "crypto/ecdh_extra/ecdh_extra.cc",
-      "crypto/ecdsa_extra/ecdsa_asn1.cc",
+      "crypto/ec/ec_asn1.cc",
+      "crypto/ec/ec_derive.cc",
+      "crypto/ec/hash_to_curve.cc",
+      "crypto/ecdh/ecdh.cc",
+      "crypto/ecdsa/ecdsa_asn1.cc",
       "crypto/engine/engine.cc",
       "crypto/err/err.cc",
       "crypto/evp/evp.cc",
@@ -378,22 +378,22 @@
       "crypto/poly1305/poly1305_arm.cc",
       "crypto/poly1305/poly1305_vec.cc",
       "crypto/pool/pool.cc",
-      "crypto/rand_extra/deterministic.cc",
-      "crypto/rand_extra/fork_detect.cc",
-      "crypto/rand_extra/forkunsafe.cc",
-      "crypto/rand_extra/getentropy.cc",
-      "crypto/rand_extra/ios.cc",
-      "crypto/rand_extra/passive.cc",
-      "crypto/rand_extra/rand_extra.cc",
-      "crypto/rand_extra/trusty.cc",
-      "crypto/rand_extra/urandom.cc",
-      "crypto/rand_extra/windows.cc",
+      "crypto/rand/deterministic.cc",
+      "crypto/rand/fork_detect.cc",
+      "crypto/rand/forkunsafe.cc",
+      "crypto/rand/getentropy.cc",
+      "crypto/rand/ios.cc",
+      "crypto/rand/passive.cc",
+      "crypto/rand/rand.cc",
+      "crypto/rand/trusty.cc",
+      "crypto/rand/urandom.cc",
+      "crypto/rand/windows.cc",
       "crypto/rc4/rc4.cc",
       "crypto/refcount.cc",
-      "crypto/rsa_extra/rsa_asn1.cc",
-      "crypto/rsa_extra/rsa_crypt.cc",
-      "crypto/rsa_extra/rsa_extra.cc",
-      "crypto/rsa_extra/rsa_print.cc",
+      "crypto/rsa/rsa_asn1.cc",
+      "crypto/rsa/rsa_crypt.cc",
+      "crypto/rsa/rsa_extra.cc",
+      "crypto/rsa/rsa_print.cc",
       "crypto/sha/sha1.cc",
       "crypto/sha/sha256.cc",
       "crypto/sha/sha512.cc",
@@ -575,14 +575,14 @@
       "crypto/bio/internal.h",
       "crypto/bytestring/internal.h",
       "crypto/chacha/internal.h",
-      "crypto/cipher_extra/internal.h",
+      "crypto/cipher/internal.h",
       "crypto/conf/internal.h",
       "crypto/cpu_arm_linux.h",
       "crypto/curve25519/curve25519_tables.h",
       "crypto/curve25519/internal.h",
       "crypto/des/internal.h",
       "crypto/dsa/internal.h",
-      "crypto/ec_extra/internal.h",
+      "crypto/ec/internal.h",
       "crypto/err/internal.h",
       "crypto/evp/internal.h",
       "crypto/fipsmodule/aes/internal.h",
@@ -624,9 +624,9 @@
       "crypto/pkcs8/internal.h",
       "crypto/poly1305/internal.h",
       "crypto/pool/internal.h",
-      "crypto/rand_extra/getrandom_fillin.h",
-      "crypto/rand_extra/sysrand_internal.h",
-      "crypto/rsa_extra/internal.h",
+      "crypto/rand/getrandom_fillin.h",
+      "crypto/rand/sysrand_internal.h",
+      "crypto/rsa/internal.h",
       "crypto/spake2plus/internal.h",
       "crypto/trust_token/internal.h",
       "crypto/x509/ext_dat.h",
@@ -684,8 +684,8 @@
       "crypto/buf/buf_test.cc",
       "crypto/bytestring/bytestring_test.cc",
       "crypto/chacha/chacha_test.cc",
-      "crypto/cipher_extra/aead_test.cc",
-      "crypto/cipher_extra/cipher_test.cc",
+      "crypto/cipher/aead_test.cc",
+      "crypto/cipher/cipher_test.cc",
       "crypto/compiler_test.cc",
       "crypto/conf/conf_test.cc",
       "crypto/constant_time_test.cc",
@@ -694,10 +694,10 @@
       "crypto/curve25519/ed25519_test.cc",
       "crypto/curve25519/spake25519_test.cc",
       "crypto/curve25519/x25519_test.cc",
-      "crypto/dh_extra/dh_test.cc",
-      "crypto/digest_extra/digest_test.cc",
+      "crypto/dh/dh_test.cc",
+      "crypto/digest/digest_test.cc",
       "crypto/dsa/dsa_test.cc",
-      "crypto/ecdh_extra/ecdh_test.cc",
+      "crypto/ecdh/ecdh_test.cc",
       "crypto/err/err_test.cc",
       "crypto/evp/evp_extra_test.cc",
       "crypto/evp/evp_test.cc",
@@ -716,7 +716,7 @@
       "crypto/fipsmodule/rand/ctrdrbg_test.cc",
       "crypto/fipsmodule/service_indicator/service_indicator_test.cc",
       "crypto/fipsmodule/sha/sha_test.cc",
-      "crypto/hmac_extra/hmac_test.cc",
+      "crypto/hmac/hmac_test.cc",
       "crypto/hpke/hpke_test.cc",
       "crypto/hrss/hrss_test.cc",
       "crypto/impl_dispatch_test.cc",
@@ -732,11 +732,11 @@
       "crypto/pkcs8/pkcs8_test.cc",
       "crypto/poly1305/poly1305_test.cc",
       "crypto/pool/pool_test.cc",
-      "crypto/rand_extra/fork_detect_test.cc",
-      "crypto/rand_extra/getentropy_test.cc",
-      "crypto/rand_extra/rand_test.cc",
+      "crypto/rand/fork_detect_test.cc",
+      "crypto/rand/getentropy_test.cc",
+      "crypto/rand/rand_test.cc",
       "crypto/refcount_test.cc",
-      "crypto/rsa_extra/rsa_test.cc",
+      "crypto/rsa/rsa_test.cc",
       "crypto/self_test.cc",
       "crypto/siphash/siphash_test.cc",
       "crypto/slhdsa/slhdsa_test.cc",
@@ -751,39 +751,39 @@
     ],
     "data": [
       "crypto/blake2/blake2b256_tests.txt",
-      "crypto/cipher_extra/test/aes_128_cbc_sha1_tls_implicit_iv_tests.txt",
-      "crypto/cipher_extra/test/aes_128_cbc_sha1_tls_tests.txt",
-      "crypto/cipher_extra/test/aes_128_ccm_bluetooth_8_tests.txt",
-      "crypto/cipher_extra/test/aes_128_ccm_bluetooth_tests.txt",
-      "crypto/cipher_extra/test/aes_128_ccm_matter_tests.txt",
-      "crypto/cipher_extra/test/aes_128_ctr_hmac_sha256.txt",
-      "crypto/cipher_extra/test/aes_128_gcm_randnonce_tests.txt",
-      "crypto/cipher_extra/test/aes_128_gcm_siv_tests.txt",
-      "crypto/cipher_extra/test/aes_128_gcm_tests.txt",
-      "crypto/cipher_extra/test/aes_192_gcm_tests.txt",
-      "crypto/cipher_extra/test/aes_256_cbc_sha1_tls_implicit_iv_tests.txt",
-      "crypto/cipher_extra/test/aes_256_cbc_sha1_tls_tests.txt",
-      "crypto/cipher_extra/test/aes_256_ctr_hmac_sha256.txt",
-      "crypto/cipher_extra/test/aes_256_gcm_randnonce_tests.txt",
-      "crypto/cipher_extra/test/aes_256_gcm_siv_tests.txt",
-      "crypto/cipher_extra/test/aes_256_gcm_tests.txt",
-      "crypto/cipher_extra/test/chacha20_poly1305_tests.txt",
-      "crypto/cipher_extra/test/cipher_tests.txt",
-      "crypto/cipher_extra/test/des_ede3_cbc_sha1_tls_implicit_iv_tests.txt",
-      "crypto/cipher_extra/test/des_ede3_cbc_sha1_tls_tests.txt",
-      "crypto/cipher_extra/test/nist_cavp/aes_128_cbc.txt",
-      "crypto/cipher_extra/test/nist_cavp/aes_128_ctr.txt",
-      "crypto/cipher_extra/test/nist_cavp/aes_128_gcm.txt",
-      "crypto/cipher_extra/test/nist_cavp/aes_192_cbc.txt",
-      "crypto/cipher_extra/test/nist_cavp/aes_192_ctr.txt",
-      "crypto/cipher_extra/test/nist_cavp/aes_256_cbc.txt",
-      "crypto/cipher_extra/test/nist_cavp/aes_256_ctr.txt",
-      "crypto/cipher_extra/test/nist_cavp/aes_256_gcm.txt",
-      "crypto/cipher_extra/test/nist_cavp/tdes_cbc.txt",
-      "crypto/cipher_extra/test/nist_cavp/tdes_ecb.txt",
-      "crypto/cipher_extra/test/xchacha20_poly1305_tests.txt",
+      "crypto/cipher/test/aes_128_cbc_sha1_tls_implicit_iv_tests.txt",
+      "crypto/cipher/test/aes_128_cbc_sha1_tls_tests.txt",
+      "crypto/cipher/test/aes_128_ccm_bluetooth_8_tests.txt",
+      "crypto/cipher/test/aes_128_ccm_bluetooth_tests.txt",
+      "crypto/cipher/test/aes_128_ccm_matter_tests.txt",
+      "crypto/cipher/test/aes_128_ctr_hmac_sha256.txt",
+      "crypto/cipher/test/aes_128_gcm_randnonce_tests.txt",
+      "crypto/cipher/test/aes_128_gcm_siv_tests.txt",
+      "crypto/cipher/test/aes_128_gcm_tests.txt",
+      "crypto/cipher/test/aes_192_gcm_tests.txt",
+      "crypto/cipher/test/aes_256_cbc_sha1_tls_implicit_iv_tests.txt",
+      "crypto/cipher/test/aes_256_cbc_sha1_tls_tests.txt",
+      "crypto/cipher/test/aes_256_ctr_hmac_sha256.txt",
+      "crypto/cipher/test/aes_256_gcm_randnonce_tests.txt",
+      "crypto/cipher/test/aes_256_gcm_siv_tests.txt",
+      "crypto/cipher/test/aes_256_gcm_tests.txt",
+      "crypto/cipher/test/chacha20_poly1305_tests.txt",
+      "crypto/cipher/test/cipher_tests.txt",
+      "crypto/cipher/test/des_ede3_cbc_sha1_tls_implicit_iv_tests.txt",
+      "crypto/cipher/test/des_ede3_cbc_sha1_tls_tests.txt",
+      "crypto/cipher/test/nist_cavp/aes_128_cbc.txt",
+      "crypto/cipher/test/nist_cavp/aes_128_ctr.txt",
+      "crypto/cipher/test/nist_cavp/aes_128_gcm.txt",
+      "crypto/cipher/test/nist_cavp/aes_192_cbc.txt",
+      "crypto/cipher/test/nist_cavp/aes_192_ctr.txt",
+      "crypto/cipher/test/nist_cavp/aes_256_cbc.txt",
+      "crypto/cipher/test/nist_cavp/aes_256_ctr.txt",
+      "crypto/cipher/test/nist_cavp/aes_256_gcm.txt",
+      "crypto/cipher/test/nist_cavp/tdes_cbc.txt",
+      "crypto/cipher/test/nist_cavp/tdes_ecb.txt",
+      "crypto/cipher/test/xchacha20_poly1305_tests.txt",
       "crypto/curve25519/ed25519_tests.txt",
-      "crypto/ecdh_extra/ecdh_tests.txt",
+      "crypto/ecdh/ecdh_tests.txt",
       "crypto/evp/evp_tests.txt",
       "crypto/evp/scrypt_tests.txt",
       "crypto/fipsmodule/aes/aes_tests.txt",
@@ -808,7 +808,7 @@
       "crypto/fipsmodule/ecdsa/ecdsa_verify_tests.txt",
       "crypto/fipsmodule/keccak/keccak_tests.txt",
       "crypto/fipsmodule/rand/ctrdrbg_vectors.txt",
-      "crypto/hmac_extra/hmac_tests.txt",
+      "crypto/hmac/hmac_tests.txt",
       "crypto/hpke/hpke_test_vectors.txt",
       "crypto/kyber/kyber_tests.txt",
       "crypto/mldsa/mldsa_nist_keygen_65_tests.txt",
@@ -2765,7 +2765,7 @@
   },
   "urandom_test": {
     "srcs": [
-      "crypto/rand_extra/urandom_test.cc"
+      "crypto/rand/urandom_test.cc"
     ]
   }
 }
\ No newline at end of file
diff --git a/rust/bssl-crypto/src/aead.rs b/rust/bssl-crypto/src/aead.rs
index 2b7a9ac..9d72f7c 100644
--- a/rust/bssl-crypto/src/aead.rs
+++ b/rust/bssl-crypto/src/aead.rs
@@ -451,7 +451,7 @@
     fn aes_128_gcm() {
         let test_cases: &[TestCase<16, 12>] = &[
             TestCase {
-                // TC 1 from crypto/cipher_extra/test/aes_128_gcm_tests.txt
+                // TC 1 from crypto/cipher/test/aes_128_gcm_tests.txt
                 key: decode_hex("d480429666d48b400633921c5407d1d1"),
                 nonce: decode_hex("3388c676dc754acfa66e172a"),
                 msg: Vec::new(),
@@ -475,7 +475,7 @@
     fn aes_256_gcm() {
         let test_cases: &[TestCase<32, 12>] = &[
             TestCase {
-                // TC 1 from crypto/cipher_extra/test/aes_128_gcm_tests.txt
+                // TC 1 from crypto/cipher/test/aes_128_gcm_tests.txt
                 key: decode_hex("e5ac4a32c67e425ac4b143c83c6f161312a97d88d634afdf9f4da5bd35223f01"),
                 nonce: decode_hex("5bf11a0951f0bfc7ea5c9e58"),
                 msg: Vec::new(),
diff --git a/tool/speed.cc b/tool/speed.cc
index ae665a7..7a7c406 100644
--- a/tool/speed.cc
+++ b/tool/speed.cc
@@ -67,7 +67,7 @@
 #include <thread>
 #endif
 
-#include "../crypto/ec_extra/internal.h"
+#include "../crypto/ec/internal.h"
 #include "../crypto/fipsmodule/ec/internal.h"
 #include "../crypto/internal.h"
 #include "../crypto/trust_token/internal.h"
diff --git a/util/diff_asm.go b/util/diff_asm.go
index 8f53109..7112f75 100644
--- a/util/diff_asm.go
+++ b/util/diff_asm.go
@@ -40,9 +40,9 @@
 	switch pathSlash {
 	case "crypto/aes/asm/vpaes-armv7.pl",
 		"crypto/bn/asm/bn-armv8.pl",
-		"crypto/cipher_extra/asm/aes128gcmsiv-x86_64.pl",
-		"crypto/cipher_extra/asm/chacha20_poly1305_armv8.pl",
-		"crypto/cipher_extra/asm/chacha20_poly1305_x86_64.pl",
+		"crypto/cipher/asm/aes128gcmsiv-x86_64.pl",
+		"crypto/cipher/asm/chacha20_poly1305_armv8.pl",
+		"crypto/cipher/asm/chacha20_poly1305_x86_64.pl",
 		"crypto/ec/asm/p256_beeu-armv8-asm.pl",
 		"crypto/ec/asm/p256_beeu-x86_64-asm.pl",
 		"crypto/modes/asm/aesv8-gcm-armv8.pl",