diff --git a/nearby/Cargo.lock b/nearby/Cargo.lock
index 4730df4..637c67d 100644
--- a/nearby/Cargo.lock
+++ b/nearby/Cargo.lock
@@ -122,6 +122,12 @@
 checksum = "a4a4ddaa51a5bc52a6948f74c06d20aaaddb71924eab79b8c97a8c556e942d6a"
 
 [[package]]
+name = "base64ct"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b"
+
+[[package]]
 name = "bitflags"
 version = "1.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -133,16 +139,7 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe"
 dependencies = [
- "digest 0.10.6",
-]
-
-[[package]]
-name = "block-buffer"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4"
-dependencies = [
- "generic-array",
+ "digest",
 ]
 
 [[package]]
@@ -454,17 +451,16 @@
 name = "crypto_provider"
 version = "0.1.0"
 dependencies = [
- "bytes",
  "criterion",
  "crypto_provider_openssl",
  "crypto_provider_rustcrypto",
  "hex",
  "hex-literal",
- "rand 0.8.5",
+ "rand",
  "rand_ext",
  "rstest",
  "rstest_reuse",
- "sha2 0.10.6",
+ "sha2",
  "test_helper",
  "wycheproof",
 ]
@@ -498,11 +494,11 @@
  "hkdf",
  "hmac",
  "p256",
- "rand 0.8.5",
- "rand_chacha 0.3.1",
+ "rand",
+ "rand_chacha",
  "rand_core 0.6.4",
  "sec1",
- "sha2 0.10.6",
+ "sha2",
  "subtle",
  "x25519-dalek",
 ]
@@ -518,13 +514,15 @@
 
 [[package]]
 name = "curve25519-dalek"
-version = "3.2.0"
+version = "4.0.0-rc.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0b9fdf9972b2bd6af2d913799d9ebc165ea4d2e65878e329d9c6b372c4491b61"
+checksum = "03d928d978dbec61a1167414f5ec534f24bea0d7a0d24dd9b6233d3d8223e585"
 dependencies = [
- "byteorder",
- "digest 0.9.0",
- "rand_core 0.5.1",
+ "cfg-if",
+ "digest",
+ "fiat-crypto",
+ "packed_simd_2",
+ "platforms",
  "subtle",
  "zeroize",
 ]
@@ -539,6 +537,16 @@
 ]
 
 [[package]]
+name = "der"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "82b10af9f9f9f2134a42d3f8aa74658660f2e0234b0eb81bd171df8aa32779ed"
+dependencies = [
+ "const-oid",
+ "zeroize",
+]
+
+[[package]]
 name = "derive-getters"
 version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -557,45 +565,36 @@
 
 [[package]]
 name = "digest"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066"
-dependencies = [
- "generic-array",
-]
-
-[[package]]
-name = "digest"
 version = "0.10.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f"
 dependencies = [
- "block-buffer 0.10.4",
+ "block-buffer",
  "crypto-common",
  "subtle",
 ]
 
 [[package]]
 name = "ed25519"
-version = "1.5.3"
+version = "2.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "91cff35c70bba8a626e3185d8cd48cc11b5437e1a5bcd15b9b5fa3c64b6dfee7"
+checksum = "5fb04eee5d9d907f29e80ee6b0e78f7e2c82342c63e3580d8c4f69d9d5aad963"
 dependencies = [
+ "pkcs8",
  "signature",
 ]
 
 [[package]]
 name = "ed25519-dalek"
-version = "1.0.1"
+version = "2.0.0-rc.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c762bae6dcaf24c4c84667b8579785430908723d5c889f469d76a41d59cc7a9d"
+checksum = "798f704d128510932661a3489b08e3f4c934a01d61c5def59ae7b8e48f19665a"
 dependencies = [
  "curve25519-dalek",
  "ed25519",
- "rand 0.7.3",
- "rand_core 0.5.1",
+ "rand_core 0.6.4",
  "serde",
- "sha2 0.9.9",
+ "sha2",
  "zeroize",
 ]
 
@@ -613,8 +612,8 @@
 dependencies = [
  "base16ct",
  "crypto-bigint",
- "der",
- "digest 0.10.6",
+ "der 0.6.1",
+ "digest",
  "ff",
  "generic-array",
  "group",
@@ -666,6 +665,12 @@
 ]
 
 [[package]]
+name = "fiat-crypto"
+version = "0.1.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e825f6987101665dea6ec934c09ec6d721de7bc1bf92248e1d5810c8cd636b77"
+
+[[package]]
 name = "flate2"
 version = "1.0.25"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -797,24 +802,13 @@
 
 [[package]]
 name = "getrandom"
-version = "0.1.16"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce"
-dependencies = [
- "cfg-if",
- "libc",
- "wasi 0.9.0+wasi-snapshot-preview1",
-]
-
-[[package]]
-name = "getrandom"
 version = "0.2.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31"
 dependencies = [
  "cfg-if",
  "libc",
- "wasi 0.11.0+wasi-snapshot-preview1",
+ "wasi",
 ]
 
 [[package]]
@@ -911,7 +905,7 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e"
 dependencies = [
- "digest 0.10.6",
+ "digest",
 ]
 
 [[package]]
@@ -1037,11 +1031,11 @@
  "hdrhistogram",
  "hex",
  "ldt_tbc",
- "rand 0.8.5",
+ "rand",
  "rand_ext",
  "rand_pcg",
  "serde_json",
- "sha2 0.10.6",
+ "sha2",
  "subtle",
  "test_helper",
  "xts_aes",
@@ -1062,7 +1056,7 @@
  "ldt",
  "ldt_tbc",
  "np_hkdf",
- "rand 0.8.5",
+ "rand",
  "rand_ext",
  "rand_pcg",
  "serde_json",
@@ -1074,7 +1068,7 @@
 name = "ldt_tbc"
 version = "0.1.0"
 dependencies = [
- "rand 0.8.5",
+ "crypto_provider",
 ]
 
 [[package]]
@@ -1084,6 +1078,12 @@
 checksum = "99227334921fae1a979cf0bfdfcc6b3e5ce376ef57e16fb6fb3ea2ed6095f80c"
 
 [[package]]
+name = "libm"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7fc7aa29613bd6a620df431842069224d8bc9011086b1db4c0e0cd47fa03ec9a"
+
+[[package]]
 name = "linux-raw-sys"
 version = "0.1.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1158,7 +1158,7 @@
  "crypto_provider_rustcrypto",
  "hex",
  "ldt",
- "rand 0.8.5",
+ "rand",
  "rand_ext",
  "serde_json",
  "test_helper",
@@ -1303,6 +1303,16 @@
 ]
 
 [[package]]
+name = "packed_simd_2"
+version = "0.3.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a1914cd452d8fccd6f9db48147b29fd4ae05bea9dc5d9ad578509f72415de282"
+dependencies = [
+ "cfg-if",
+ "libm",
+]
+
+[[package]]
 name = "pin-project-lite"
 version = "0.2.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1315,12 +1325,28 @@
 checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
 
 [[package]]
+name = "pkcs8"
+version = "0.10.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7"
+dependencies = [
+ "der 0.7.3",
+ "spki",
+]
+
+[[package]]
 name = "pkg-config"
 version = "0.3.26"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160"
 
 [[package]]
+name = "platforms"
+version = "3.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e3d7ddaed09e0eb771a79ab0fd64609ba0afb0a8366421957936ad14cbd13630"
+
+[[package]]
 name = "plotters"
 version = "0.3.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1470,40 +1496,17 @@
 
 [[package]]
 name = "rand"
-version = "0.7.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
-dependencies = [
- "getrandom 0.1.16",
- "libc",
- "rand_chacha 0.2.2",
- "rand_core 0.5.1",
- "rand_hc",
-]
-
-[[package]]
-name = "rand"
 version = "0.8.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
 dependencies = [
  "libc",
- "rand_chacha 0.3.1",
+ "rand_chacha",
  "rand_core 0.6.4",
 ]
 
 [[package]]
 name = "rand_chacha"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
-dependencies = [
- "ppv-lite86",
- "rand_core 0.5.1",
-]
-
-[[package]]
-name = "rand_chacha"
 version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
@@ -1517,9 +1520,6 @@
 version = "0.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
-dependencies = [
- "getrandom 0.1.16",
-]
 
 [[package]]
 name = "rand_core"
@@ -1527,14 +1527,14 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
 dependencies = [
- "getrandom 0.2.8",
+ "getrandom",
 ]
 
 [[package]]
 name = "rand_core_05_adapter"
 version = "0.1.0"
 dependencies = [
- "rand 0.8.5",
+ "rand",
  "rand_core 0.5.1",
 ]
 
@@ -1542,21 +1542,13 @@
 name = "rand_ext"
 version = "0.1.0"
 dependencies = [
+ "crypto_provider",
  "log",
- "rand 0.8.5",
+ "rand",
  "rand_pcg",
 ]
 
 [[package]]
-name = "rand_hc"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
-dependencies = [
- "rand_core 0.5.1",
-]
-
-[[package]]
 name = "rand_pcg"
 version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1646,7 +1638,7 @@
 checksum = "45f80dcc84beab3a327bbe161f77db25f336a1452428176787c8c79ac79d7073"
 dependencies = [
  "quote",
- "rand 0.8.5",
+ "rand",
  "rustc_version",
  "syn 1.0.109",
 ]
@@ -1702,7 +1694,7 @@
 checksum = "3be24c1842290c45df0a7bf069e0c268a747ad05a192f2fd7dcfdbc1cba40928"
 dependencies = [
  "base16ct",
- "der",
+ "der 0.6.1",
  "generic-array",
  "subtle",
  "zeroize",
@@ -1747,33 +1739,20 @@
 
 [[package]]
 name = "sha2"
-version = "0.9.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800"
-dependencies = [
- "block-buffer 0.9.0",
- "cfg-if",
- "cpufeatures",
- "digest 0.9.0",
- "opaque-debug",
-]
-
-[[package]]
-name = "sha2"
 version = "0.10.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0"
 dependencies = [
  "cfg-if",
  "cpufeatures",
- "digest 0.10.6",
+ "digest",
 ]
 
 [[package]]
 name = "signature"
-version = "1.6.4"
+version = "2.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "74233d3b3b2f6d4b006dc19dee745e73e2a6bfb6f93607cd3b02bd5b00797d7c"
+checksum = "5e1788eed21689f9cf370582dfc467ef36ed9c707f073528ddafa8d83e3b8500"
 
 [[package]]
 name = "slab"
@@ -1800,6 +1779,16 @@
 ]
 
 [[package]]
+name = "spki"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "37a5be806ab6f127c3da44b7378837ebf01dadca8510a0e572460216b228bd0e"
+dependencies = [
+ "base64ct",
+ "der 0.7.3",
+]
+
+[[package]]
 name = "strsim"
 version = "0.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1914,8 +1903,8 @@
  "crypto_provider_rustcrypto",
  "lazy_static",
  "log",
- "rand 0.8.5",
- "rand_chacha 0.3.1",
+ "rand",
+ "rand_chacha",
  "spin 0.9.8",
  "ukey2_connections",
  "ukey2_rs",
@@ -1930,7 +1919,7 @@
  "crypto_provider_openssl",
  "crypto_provider_rustcrypto",
  "nom",
- "rand 0.8.5",
+ "rand",
  "rstest",
  "ukey2_proto",
  "ukey2_rs",
@@ -1946,8 +1935,8 @@
  "jni",
  "lazy_static",
  "log",
- "rand 0.8.5",
- "rand_chacha 0.3.1",
+ "rand",
+ "rand_chacha",
  "spin 0.9.8",
  "ukey2_connections",
  "ukey2_rs",
@@ -1972,9 +1961,9 @@
  "derive-getters",
  "log",
  "num-bigint",
- "rand 0.8.5",
+ "rand",
  "rstest",
- "sha2 0.10.6",
+ "sha2",
  "ukey2_proto",
 ]
 
@@ -2028,12 +2017,6 @@
 
 [[package]]
 name = "wasi"
-version = "0.9.0+wasi-snapshot-preview1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
-
-[[package]]
-name = "wasi"
 version = "0.11.0+wasi-snapshot-preview1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
@@ -2239,13 +2222,12 @@
 
 [[package]]
 name = "x25519-dalek"
-version = "2.0.0-pre.1"
+version = "2.0.0-rc.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e5da623d8af10a62342bcbbb230e33e58a63255a58012f8653c578e54bab48df"
+checksum = "fabd6e16dd08033932fc3265ad4510cc2eab24656058a6dcb107ffe274abcc95"
 dependencies = [
  "curve25519-dalek",
  "rand_core 0.6.4",
- "zeroize",
 ]
 
 [[package]]
@@ -2270,7 +2252,7 @@
  "crypto_provider_rustcrypto",
  "hex",
  "ldt_tbc",
- "rand 0.8.5",
+ "rand",
  "rand_ext",
  "rand_pcg",
  "regex",
@@ -2283,17 +2265,3 @@
 version = "1.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "2a0956f1ba7c7909bfb66c2e9e4124ab6f6482560f6628b5aaeba39207c9aad9"
-dependencies = [
- "zeroize_derive",
-]
-
-[[package]]
-name = "zeroize_derive"
-version = "1.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "25588073e5216b50bca71d61cb8595cdb9745e87032a58c199730def2862c934"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 2.0.10",
-]
diff --git a/nearby/Cargo.toml b/nearby/Cargo.toml
index a5570a8..a2b9f93 100644
--- a/nearby/Cargo.toml
+++ b/nearby/Cargo.toml
@@ -50,13 +50,13 @@
 ctr = "0.9.1"
 hkdf = "0.12.3"
 hmac = "0.12.1"
-ed25519-dalek = { version = "1.0.1", default-features = false }
+ed25519-dalek = { version = "2.0.0-rc.2", default-features = false }
 ed25519 = "1.5.3"
 aes-gcm = "0.10.1"
 hex = "0.4.3"
 serde_json = { version = "1.0.91", features = ["alloc"], default-features = false }
 base64 = "0.21.0"
-x25519-dalek = { version = "2.0.0-pre.1", features = ["u64_backend"], default-features = false }
+x25519-dalek = { version = "2.0.0-rc.2", default-features = false }
 subtle = { version = "2.4.1", default-features = false }
 rand_chacha = { version = "0.3.1", default-features = false }
 p256 = { version = "0.12.0", default-features = false }
diff --git a/nearby/connections/ukey2/ukey2_connections/fuzz/Cargo.lock b/nearby/connections/ukey2/ukey2_connections/fuzz/Cargo.lock
index 8f42dbe..8320405 100644
--- a/nearby/connections/ukey2/ukey2_connections/fuzz/Cargo.lock
+++ b/nearby/connections/ukey2/ukey2_connections/fuzz/Cargo.lock
@@ -71,9 +71,9 @@
 
 [[package]]
 name = "base16ct"
-version = "0.2.0"
+version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf"
+checksum = "349a06037c7bf932dd7e7d1f653678b2038b9ad46a74102f1fc7bd7872678cce"
 
 [[package]]
 name = "bitflags"
@@ -156,9 +156,9 @@
 
 [[package]]
 name = "crypto-bigint"
-version = "0.5.1"
+version = "0.4.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7c2538c4e68e52548bacb3e83ac549f903d44f011ac9d5abb5e132e67d0808f7"
+checksum = "ef2b4b23cddf68b89b8f8069890e8c270d54e2d5fe1b143820234805e4cb17ef"
 dependencies = [
  "generic-array",
  "rand_core",
@@ -180,9 +180,6 @@
 [[package]]
 name = "crypto_provider"
 version = "0.1.0"
-dependencies = [
- "bytes",
-]
 
 [[package]]
 name = "crypto_provider_rustcrypto"
@@ -233,12 +230,11 @@
 
 [[package]]
 name = "der"
-version = "0.7.1"
+version = "0.6.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc906908ea6458456e5eaa160a9c08543ec3d1e6f71e2235cedd660cb65f9df0"
+checksum = "f1a467a65c5e759bce6e65eaf91cc29f466cdc57cb65777bd646872a8a1fd4de"
 dependencies = [
  "const-oid",
- "zeroize",
 ]
 
 [[package]]
@@ -303,12 +299,13 @@
 
 [[package]]
 name = "elliptic-curve"
-version = "0.13.2"
+version = "0.12.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ea5a92946e8614bb585254898bb7dd1ddad241ace60c52149e3765e34cc039d"
+checksum = "e7bb888ab5300a19b8e5bceef25ac745ad065f3c9f7efc6de1b91958110891d3"
 dependencies = [
  "base16ct",
  "crypto-bigint",
+ "der",
  "digest",
  "ff",
  "generic-array",
@@ -352,9 +349,9 @@
 
 [[package]]
 name = "ff"
-version = "0.13.0"
+version = "0.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449"
+checksum = "d013fc25338cc558c5c2cfbad646908fb23591e2404481826742b651c9af7160"
 dependencies = [
  "rand_core",
  "subtle",
@@ -374,7 +371,6 @@
 dependencies = [
  "typenum",
  "version_check",
- "zeroize",
 ]
 
 [[package]]
@@ -390,9 +386,9 @@
 
 [[package]]
 name = "group"
-version = "0.13.0"
+version = "0.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63"
+checksum = "5dfbfb3a6cfbd390d5c9564ab283a0349b9b9fcd46a706c1eb10e0db70bfbac7"
 dependencies = [
  "ff",
  "rand_core",
@@ -582,9 +578,9 @@
 
 [[package]]
 name = "p256"
-version = "0.13.0"
+version = "0.12.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7270da3e5caa82afd3deb054cc237905853813aea3859544bc082c3fe55b8d47"
+checksum = "49c124b3cbce43bcbac68c58ec181d98ed6cc7e6d0aa7c3ba97b2563410b0e55"
 dependencies = [
  "elliptic-curve",
  "primeorder",
@@ -626,9 +622,9 @@
 
 [[package]]
 name = "primeorder"
-version = "0.13.0"
+version = "0.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7613fdcc0831c10060fa69833ea8fa2caa94b6456f51e25356a885b530a2e3d0"
+checksum = "0b54f7131b3dba65a2f414cf5bd25b66d4682e4608610668eae785750ba4c5b2"
 dependencies = [
  "elliptic-curve",
 ]
@@ -774,9 +770,9 @@
 
 [[package]]
 name = "sec1"
-version = "0.7.1"
+version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "48518a2b5775ba8ca5b46596aae011caa431e6ce7e4a67ead66d92f08884220e"
+checksum = "3be24c1842290c45df0a7bf069e0c268a747ad05a192f2fd7dcfdbc1cba40928"
 dependencies = [
  "base16ct",
  "der",
diff --git a/nearby/crypto/crypto_provider/Cargo.toml b/nearby/crypto/crypto_provider/Cargo.toml
index 9923bfc..69f7572 100644
--- a/nearby/crypto/crypto_provider/Cargo.toml
+++ b/nearby/crypto/crypto_provider/Cargo.toml
@@ -12,7 +12,6 @@
 wycheproof = { version = "0.4.0", optional = true }
 hex = { workspace = true, optional = true }
 test_helper = { workspace = true, optional = true }
-bytes = { version = "1.4.0", default-features = false }
 
 [dev-dependencies]
 crypto_provider_openssl.workspace = true
diff --git a/nearby/crypto/crypto_provider/benches/hmac_bench.rs b/nearby/crypto/crypto_provider/benches/hmac_bench.rs
index 63b09e6..c7ccf1a 100644
--- a/nearby/crypto/crypto_provider/benches/hmac_bench.rs
+++ b/nearby/crypto/crypto_provider/benches/hmac_bench.rs
@@ -15,17 +15,16 @@
 use criterion::{criterion_group, criterion_main, Criterion};
 
 use crypto_provider::hmac::Hmac;
-use crypto_provider::CryptoProvider;
+use crypto_provider::{CryptoProvider, CryptoRng};
 use crypto_provider_openssl::Openssl;
 use crypto_provider_rustcrypto::RustCrypto;
-
-use rand::{Rng, SeedableRng};
+use rand_ext::random_bytes;
 
 // simple benchmark, which creates a new hmac, updates once, then finalizes
 fn hmac_sha256_operations<C: CryptoProvider>(c: &mut Criterion) {
-    let mut rng = rand::rngs::StdRng::from_entropy();
-    let key: [u8; 32] = rand_ext::random_bytes(&mut rng);
-    let update_data: [u8; 16] = rand_ext::random_bytes(&mut rng);
+    let mut rng = C::CryptoRng::new();
+    let key: [u8; 32] = rand_ext::random_bytes::<32, C>(&mut rng);
+    let update_data: [u8; 16] = rand_ext::random_bytes::<16, C>(&mut rng);
 
     c.bench_function("bench for hmac sha256 single update", |b| {
         b.iter(|| {
@@ -37,9 +36,9 @@
 }
 
 fn hmac_sha512_operations<C: CryptoProvider>(c: &mut Criterion) {
-    let mut rng = rand::rngs::StdRng::from_entropy();
-    let key: [u8; 64] = rand_ext::random_bytes(&mut rng);
-    let update_data: [u8; 16] = rng.gen();
+    let mut rng = C::CryptoRng::new();
+    let key: [u8; 64] = rand_ext::random_bytes::<64, C>(&mut rng);
+    let update_data: [u8; 16] = random_bytes::<16, C>(&mut rng);
 
     c.bench_function("bench for hmac sha512 single update", |b| {
         b.iter(|| {
diff --git a/nearby/crypto/crypto_provider/src/aes/gcm_siv.rs b/nearby/crypto/crypto_provider/src/aes/gcm_siv.rs
index 4352ee8..2d683b2 100644
--- a/nearby/crypto/crypto_provider/src/aes/gcm_siv.rs
+++ b/nearby/crypto/crypto_provider/src/aes/gcm_siv.rs
@@ -13,10 +13,10 @@
 // limitations under the License.
 
 //! Traits for AES-GCM-SIV.
-pub use bytes;
-use bytes::BytesMut;
 
 use super::AesKey;
+extern crate alloc;
+use alloc::vec::Vec;
 
 /// An enum for indicating issues with the GCM-SIV encryption/decryption operations.
 pub enum GcmSivError {
@@ -40,11 +40,11 @@
     /// Encrypt the data in place with a nonce to make sure each ciphertext is unique.
     /// This will need 16 bytes reserved in the data array for the tag.
     /// Optionally, additional associated data can be passed in for computation of the cryptographic tag.
-    fn encrypt(&self, data: &mut BytesMut, aad: &[u8], nonce: &[u8]) -> Result<(), GcmSivError>;
+    fn encrypt(&self, data: &mut Vec<u8>, aad: &[u8], nonce: &[u8]) -> Result<(), GcmSivError>;
     /// Decrypt the ciphertext concatenated with its tag in place with the nonce used for encryption.
     /// If associated data was passed in when creating the ciphertext, it should be passed in here as well
     /// in order to properly decrypt the message.
-    fn decrypt(&self, data: &mut BytesMut, aad: &[u8], nonce: &[u8]) -> Result<(), GcmSivError>;
+    fn decrypt(&self, data: &mut Vec<u8>, aad: &[u8], nonce: &[u8]) -> Result<(), GcmSivError>;
 }
 
 /// Module for testing implementations of this crate.
@@ -52,9 +52,9 @@
 pub mod testing {
     extern crate alloc;
 
+    use alloc::vec::Vec;
     use core::marker;
 
-    use bytes::BytesMut;
     use hex_literal::hex;
     use rstest_reuse::template;
 
@@ -71,7 +71,7 @@
         let nonce = hex!("030000000000000000000000");
         let aes = A::new(&test_key.into());
         let msg = hex!("");
-        let mut buf = BytesMut::from(msg.as_slice());
+        let mut buf = Vec::from(msg.as_slice());
         let tag = hex!("dc20e2d83f25705bb49e439eca56de25");
         assert!(aes.encrypt(&mut buf, b"", &nonce).is_ok());
         assert_eq!(&buf[..], &tag);
@@ -79,7 +79,7 @@
         let msg = hex!("0100000000000000");
         let ct = hex!("b5d839330ac7b786");
         let tag = hex!("578782fff6013b815b287c22493a364c");
-        let mut buf = BytesMut::from(msg.as_slice());
+        let mut buf = Vec::from(msg.as_slice());
         assert!(aes.encrypt(&mut buf, b"", &nonce).is_ok());
         assert_eq!(&buf[..8], &ct);
         assert_eq!(&buf[8..], &tag);
@@ -95,7 +95,7 @@
         let nonce = hex!("030000000000000000000000");
         let aes = A::new(&test_key.into());
         let msg = hex!("0100000000000000");
-        let mut buf = BytesMut::new();
+        let mut buf = Vec::new();
         buf.extend_from_slice(&msg);
         let ct = hex!("c2ef328e5c71c83b");
         let tag = hex!("843122130f7364b761e0b97427e3df28");
@@ -108,7 +108,7 @@
         let msg = hex!("010000000000000000000000");
         let ct = hex!("9aab2aeb3faa0a34aea8e2b1");
         let tag = hex!("8ca50da9ae6559e48fd10f6e5c9ca17e");
-        let mut buf = BytesMut::from(msg.as_slice());
+        let mut buf = Vec::from(msg.as_slice());
         assert!(aes.encrypt(&mut buf, b"", &nonce).is_ok());
         assert_eq!(&buf[..12], &ct);
         assert_eq!(&buf[12..], &tag);
diff --git a/nearby/crypto/crypto_provider/src/lib.rs b/nearby/crypto/crypto_provider/src/lib.rs
index a61370c..bc6d4d2 100644
--- a/nearby/crypto/crypto_provider/src/lib.rs
+++ b/nearby/crypto/crypto_provider/src/lib.rs
@@ -87,8 +87,18 @@
     /// Returns an instance of the rng
     fn new() -> Self;
 
-    ///Return the next random u64
+    /// Return the next random u64
     fn next_u64(&mut self) -> u64;
+
+    /// Fill dest with random data
+    fn fill(&mut self, dest: &mut [u8]);
+
+    /// Generate a random byte
+    fn gen<U8>(&mut self) -> u8 {
+        let mut arr = [0u8; 1];
+        self.fill(&mut arr);
+        arr[0]
+    }
 }
 
 /// If impls want to opt out of passing a Rng they can simply use `()` for the Rng associated type
@@ -98,6 +108,10 @@
     fn next_u64(&mut self) -> u64 {
         unimplemented!()
     }
+
+    fn fill(&mut self, _dest: &mut [u8]) {
+        unimplemented!()
+    }
 }
 
 use crate::aes::{Aes128Key, Aes256Key};
diff --git a/nearby/crypto/crypto_provider_boringssl/Cargo.lock b/nearby/crypto/crypto_provider_boringssl/Cargo.lock
index c668bbf..4a8327d 100644
--- a/nearby/crypto/crypto_provider_boringssl/Cargo.lock
+++ b/nearby/crypto/crypto_provider_boringssl/Cargo.lock
@@ -26,12 +26,6 @@
 version = "0.1.0"
 
 [[package]]
-name = "bytes"
-version = "1.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be"
-
-[[package]]
 name = "cfg-if"
 version = "1.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -41,7 +35,6 @@
 name = "crypto_provider"
 version = "0.1.0"
 dependencies = [
- "bytes",
  "hex",
  "hex-literal",
  "rand",
diff --git a/nearby/crypto/crypto_provider_boringssl/src/lib.rs b/nearby/crypto/crypto_provider_boringssl/src/lib.rs
index a7e78d0..c8c466d 100644
--- a/nearby/crypto/crypto_provider_boringssl/src/lib.rs
+++ b/nearby/crypto/crypto_provider_boringssl/src/lib.rs
@@ -24,6 +24,7 @@
 //! Crate which provides impls for CryptoProvider backed by BoringSSL.
 
 use bssl_crypto::digest::{Sha256, Sha512};
+use bssl_crypto::rand::rand_bytes;
 use crypto_provider::{CryptoProvider, CryptoRng};
 use crypto_provider_stubs::*;
 
@@ -72,7 +73,11 @@
 
     fn next_u64(&mut self) -> u64 {
         let mut buf = [0; 8];
-        bssl_crypto::rand::rand_bytes(&mut buf);
+        rand_bytes(&mut buf);
         u64::from_be_bytes(buf)
     }
+
+    fn fill(&mut self, dest: &mut [u8]) {
+        rand_bytes(dest)
+    }
 }
diff --git a/nearby/crypto/crypto_provider_openssl/src/lib.rs b/nearby/crypto/crypto_provider_openssl/src/lib.rs
index 8da3cb6..8930199 100644
--- a/nearby/crypto/crypto_provider_openssl/src/lib.rs
+++ b/nearby/crypto/crypto_provider_openssl/src/lib.rs
@@ -99,6 +99,10 @@
         rand_bytes(&mut buf).unwrap();
         u64::from_be_bytes(buf)
     }
+
+    fn fill(&mut self, dest: &mut [u8]) {
+        rand_bytes(dest).expect("Error in generating random bytes")
+    }
 }
 
 #[cfg(test)]
diff --git a/nearby/crypto/crypto_provider_rustcrypto/src/aes/gcm_siv.rs b/nearby/crypto/crypto_provider_rustcrypto/src/aes/gcm_siv.rs
index d5c655b..98eca08 100644
--- a/nearby/crypto/crypto_provider_rustcrypto/src/aes/gcm_siv.rs
+++ b/nearby/crypto/crypto_provider_rustcrypto/src/aes/gcm_siv.rs
@@ -13,8 +13,10 @@
 // limitations under the License.
 
 use aes_gcm_siv::{AeadInPlace, Aes128GcmSiv, Aes256GcmSiv, KeyInit, Nonce};
+extern crate alloc;
+use alloc::vec::Vec;
 
-use crypto_provider::aes::gcm_siv::{bytes, GcmSivError};
+use crypto_provider::aes::gcm_siv::GcmSivError;
 use crypto_provider::aes::{Aes128Key, Aes256Key, AesKey};
 
 pub struct AesGcmSiv128(Aes128GcmSiv);
@@ -26,23 +28,13 @@
         Self(Aes128GcmSiv::new(key.as_slice().into()))
     }
 
-    fn encrypt(
-        &self,
-        data: &mut bytes::BytesMut,
-        aad: &[u8],
-        nonce: &[u8],
-    ) -> Result<(), GcmSivError> {
+    fn encrypt(&self, data: &mut Vec<u8>, aad: &[u8], nonce: &[u8]) -> Result<(), GcmSivError> {
         self.0
             .encrypt_in_place(Nonce::from_slice(nonce), aad, data)
             .map_err(|_| GcmSivError::EncryptOutBufferTooSmall)
     }
 
-    fn decrypt(
-        &self,
-        data: &mut bytes::BytesMut,
-        aad: &[u8],
-        nonce: &[u8],
-    ) -> Result<(), GcmSivError> {
+    fn decrypt(&self, data: &mut Vec<u8>, aad: &[u8], nonce: &[u8]) -> Result<(), GcmSivError> {
         self.0
             .decrypt_in_place(Nonce::from_slice(nonce), aad, data)
             .map_err(|_| GcmSivError::DecryptTagDoesNotMatch)
@@ -58,23 +50,13 @@
         Self(Aes256GcmSiv::new(key.as_slice().into()))
     }
 
-    fn encrypt(
-        &self,
-        data: &mut bytes::BytesMut,
-        aad: &[u8],
-        nonce: &[u8],
-    ) -> Result<(), GcmSivError> {
+    fn encrypt(&self, data: &mut Vec<u8>, aad: &[u8], nonce: &[u8]) -> Result<(), GcmSivError> {
         self.0
             .encrypt_in_place(Nonce::from_slice(nonce), aad, data)
             .map_err(|_| GcmSivError::EncryptOutBufferTooSmall)
     }
 
-    fn decrypt(
-        &self,
-        data: &mut bytes::BytesMut,
-        aad: &[u8],
-        nonce: &[u8],
-    ) -> Result<(), GcmSivError> {
+    fn decrypt(&self, data: &mut Vec<u8>, aad: &[u8], nonce: &[u8]) -> Result<(), GcmSivError> {
         self.0
             .decrypt_in_place(Nonce::from_slice(nonce), aad, data)
             .map_err(|_| GcmSivError::DecryptTagDoesNotMatch)
diff --git a/nearby/crypto/crypto_provider_rustcrypto/src/lib.rs b/nearby/crypto/crypto_provider_rustcrypto/src/lib.rs
index 9145233..72ca033 100644
--- a/nearby/crypto/crypto_provider_rustcrypto/src/lib.rs
+++ b/nearby/crypto/crypto_provider_rustcrypto/src/lib.rs
@@ -43,7 +43,7 @@
 
 use cfg_if::cfg_if;
 use core::{fmt::Debug, marker::PhantomData};
-use rand::{RngCore, SeedableRng};
+use rand::{Rng, RngCore, SeedableRng};
 use rand_core::CryptoRng;
 use subtle::ConstantTimeEq;
 
@@ -109,6 +109,10 @@
     fn next_u64(&mut self) -> u64 {
         self.0.next_u64()
     }
+
+    fn fill(&mut self, dest: &mut [u8]) {
+        self.0.fill(dest)
+    }
 }
 
 #[cfg(test)]
diff --git a/nearby/presence/ldt/Cargo.toml b/nearby/presence/ldt/Cargo.toml
index 56a6dac..8f2461e 100644
--- a/nearby/presence/ldt/Cargo.toml
+++ b/nearby/presence/ldt/Cargo.toml
@@ -5,7 +5,7 @@
 publish.workspace = true
 
 [dependencies]
-rand.workspace = true
+crypto_provider.workspace = true
 ldt_tbc.workspace = true
 
 [dev-dependencies]
@@ -15,6 +15,7 @@
 test_helper.workspace = true
 xts_aes.workspace = true
 
+rand.workspace = true
 rand_pcg.workspace = true
 base64.workspace = true
 clap.workspace = true
diff --git a/nearby/presence/ldt/benches/ldt_scan.rs b/nearby/presence/ldt/benches/ldt_scan.rs
index 31f669f..f6c5a50 100644
--- a/nearby/presence/ldt/benches/ldt_scan.rs
+++ b/nearby/presence/ldt/benches/ldt_scan.rs
@@ -13,13 +13,13 @@
 // limitations under the License.
 
 use criterion::{black_box, criterion_group, criterion_main, Criterion};
+use crypto_provider::{CryptoProvider, CryptoRng};
 use crypto_provider_rustcrypto::RustCrypto;
 use ctr::cipher::{KeyIvInit as _, StreamCipher as _, StreamCipherSeek as _};
 use ldt::{
     DefaultPadder, LdtDecryptCipher, LdtEncryptCipher, LdtKey, Mix, Padder, Swap, XorPadder,
 };
 use ldt_tbc::TweakableBlockCipher;
-use rand::SeedableRng as _;
 use sha2::Digest as _;
 use std::marker;
 use subtle::ConstantTimeEq as _;
@@ -126,15 +126,15 @@
     keys: usize,
     plaintext_len: usize,
 ) -> LdtBenchState<F::Cipher, D> {
-    let mut rng = rand::rngs::StdRng::from_entropy();
+    let mut rng = <RustCrypto as CryptoProvider>::CryptoRng::new();
 
     let scenarios = (0..keys)
-        .map(|_| random_ldt_scenario::<_, _, D>(&factory, &mut rng, plaintext_len))
+        .map(|_| random_ldt_scenario::<RustCrypto, _, D>(&factory, &mut rng, plaintext_len))
         .collect::<Vec<_>>();
 
     LdtBenchState {
         scenarios,
-        unfindable_ciphertext: random_vec(&mut rng, plaintext_len),
+        unfindable_ciphertext: random_vec::<RustCrypto>(&mut rng, plaintext_len),
         decrypt_buf: Vec::with_capacity(plaintext_len),
     }
 }
@@ -144,13 +144,13 @@
     plaintext_prefix_hash: D::Output,
 }
 
-fn random_ldt_scenario<R: rand::Rng + rand::CryptoRng, F: ScanCipherFactory, D: ScanDigest>(
+fn random_ldt_scenario<C: CryptoProvider, F: ScanCipherFactory, D: ScanDigest>(
     factory: &F,
-    rng: &mut R,
+    rng: &mut C::CryptoRng,
     plaintext_len: usize,
 ) -> ScanScenario<F::Cipher, D> {
-    let cipher = factory.build_cipher(rng);
-    let plaintext = random_vec(rng, plaintext_len);
+    let cipher = factory.build_cipher::<C>(rng);
+    let plaintext = random_vec::<C>(rng, plaintext_len);
     let mut hasher = D::new();
     let mut plaintext_prefix_hash = D::new_output();
     hasher.update(&plaintext[..MATCH_LEN]);
@@ -162,7 +162,7 @@
     }
 }
 
-fn random_vec<R: rand::Rng>(rng: &mut R, len: usize) -> Vec<u8> {
+fn random_vec<C: CryptoProvider>(rng: &mut C::CryptoRng, len: usize) -> Vec<u8> {
     let mut bytes = Vec::<u8>::new();
     bytes.extend((0..len).map(|_| rng.gen::<u8>()));
     bytes
@@ -176,7 +176,7 @@
 trait ScanCipherFactory {
     type Cipher: ScanCipher;
 
-    fn build_cipher<R: rand::Rng + rand::CryptoRng>(&self, key_rng: &mut R) -> Self::Cipher;
+    fn build_cipher<C: CryptoProvider>(&self, key_rng: &mut C::CryptoRng) -> Self::Cipher;
 }
 
 /// A wrapper that lets us avoid percolating the need to specify a bogus and type-confused padder
@@ -231,29 +231,29 @@
 {
     type Cipher = LdtScanCipher<B, T, M, P>;
 
-    fn build_cipher<R: rand::Rng + rand::CryptoRng>(&self, key_rng: &mut R) -> Self::Cipher {
-        let key: LdtKey<T::Key> = LdtKey::from_random(key_rng);
+    fn build_cipher<C: CryptoProvider>(&self, key_rng: &mut C::CryptoRng) -> Self::Cipher {
+        let key: LdtKey<T::Key> = LdtKey::from_random::<C>(key_rng);
         LdtScanCipher {
             ldt_enc: LdtEncryptCipher::new(&key),
             ldt_dec: LdtDecryptCipher::new(&key),
-            padder: P::generate(key_rng),
+            padder: P::generate::<C>(key_rng),
         }
     }
 }
 
 /// A helper trait for making padders from an RNG
 trait RandomPadder {
-    fn generate<R: rand::Rng>(rng: &mut R) -> Self;
+    fn generate<C: CryptoProvider>(rng: &mut C::CryptoRng) -> Self;
 }
 
 impl RandomPadder for DefaultPadder {
-    fn generate<R: rand::Rng>(_rng: &mut R) -> Self {
+    fn generate<C: CryptoProvider>(_rng: &mut C::CryptoRng) -> Self {
         Self::default()
     }
 }
 
 impl<const T: usize> RandomPadder for XorPadder<T> {
-    fn generate<R: rand::Rng>(rng: &mut R) -> Self {
+    fn generate<C: CryptoProvider>(rng: &mut C::CryptoRng) -> Self {
         let mut salt = [0_u8; T];
         rng.fill(&mut salt[..]);
         salt.into()
@@ -279,7 +279,7 @@
 impl ScanCipherFactory for AesCtrFactory {
     type Cipher = Aes128Ctr64LE;
 
-    fn build_cipher<R: rand::Rng>(&self, key_rng: &mut R) -> Self::Cipher {
+    fn build_cipher<C: CryptoProvider>(&self, key_rng: &mut C::CryptoRng) -> Self::Cipher {
         let mut key = [0_u8; 16];
         key_rng.fill(&mut key);
 
diff --git a/nearby/presence/ldt/examples/gen_ldt_xor_pad_test_vectors.rs b/nearby/presence/ldt/examples/gen_ldt_xor_pad_test_vectors.rs
index 1b6af2d..a36d8d8 100644
--- a/nearby/presence/ldt/examples/gen_ldt_xor_pad_test_vectors.rs
+++ b/nearby/presence/ldt/examples/gen_ldt_xor_pad_test_vectors.rs
@@ -12,8 +12,8 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-use crypto_provider::aes;
 use crypto_provider::aes::BLOCK_SIZE;
+use crypto_provider::{aes, CryptoProvider, CryptoRng};
 use crypto_provider_rustcrypto::RustCrypto;
 use ldt::{LdtEncryptCipher, LdtKey, Swap, XorPadder};
 use rand::{Rng as _, SeedableRng as _};
@@ -23,13 +23,14 @@
 
 fn main() {
     let mut rng = rand::rngs::StdRng::from_entropy();
+    let mut cp_rng = <RustCrypto as CryptoProvider>::CryptoRng::new();
 
     let mut array = Vec::<serde_json::Value>::new();
     for _ in 0..1_000 {
         let len = rng.gen_range(BLOCK_SIZE..BLOCK_SIZE * 2);
-        let plaintext = random_vec(&mut rng, len);
-        let key = LdtKey::from_random(&mut rng);
-        let pad_xor: [u8; aes::BLOCK_SIZE] = random_bytes(&mut rng);
+        let plaintext = random_vec_rc(&mut rng, len);
+        let key = LdtKey::from_random::<RustCrypto>(&mut cp_rng);
+        let pad_xor: [u8; aes::BLOCK_SIZE] = random_bytes_rc(&mut rng);
 
         let ldt_enc = LdtEncryptCipher::<BLOCK_SIZE, XtsAes128<RustCrypto>, Swap>::new(&key);
 
diff --git a/nearby/presence/ldt/examples/ldt_benchmark.rs b/nearby/presence/ldt/examples/ldt_benchmark.rs
index f6793e1..ba04ed7 100644
--- a/nearby/presence/ldt/examples/ldt_benchmark.rs
+++ b/nearby/presence/ldt/examples/ldt_benchmark.rs
@@ -18,6 +18,7 @@
 use crypto_provider_rustcrypto::RustCrypto;
 use ldt::{LdtDecryptCipher, LdtEncryptCipher, LdtKey, Mix, Swap, XorPadder};
 
+use crypto_provider::{CryptoProvider, CryptoRng};
 use ldt_tbc::TweakableBlockCipher;
 use rand::{distributions, seq::SliceRandom, Rng as _, SeedableRng as _};
 use sha2::digest::{generic_array, Digest as _};
@@ -29,11 +30,13 @@
 
 fn main() {
     let args = Args::parse();
-    let mut rng = rand::rngs::StdRng::from_entropy();
+    let mut rng = <RustCrypto as CryptoProvider>::CryptoRng::new();
 
     // generate a suitable number of random keys
     let scenarios = (0..args.keys)
-        .map(|_| random_ldt_scenario::<16, XtsAes128<RustCrypto>, Swap, _>(&mut rng, args.len))
+        .map(|_| {
+            random_ldt_scenario::<16, XtsAes128<RustCrypto>, Swap, RustCrypto>(&mut rng, args.len)
+        })
         .collect::<Vec<_>>();
 
     let padder = XorPadder::from([0x42; crypto_provider::aes::BLOCK_SIZE]);
@@ -48,7 +51,7 @@
         .collect::<Vec<_>>();
 
     let not_found_distrib = distributions::Uniform::from(0_f64..=100_f64);
-    let unfindable_ciphertext = random_vec(&mut rng, args.len);
+    let unfindable_ciphertext = random_vec::<RustCrypto>(&mut rng, args.len);
 
     let mut histogram = hdrhistogram::Histogram::<u64>::new(3).unwrap();
     let mut buf = Vec::new();
@@ -56,12 +59,13 @@
     let mut hasher = sha2::Sha256::new();
     let mut hash_output = generic_array::GenericArray::default();
 
+    let mut rc_rng = rand::rngs::StdRng::from_entropy();
     let found = (0..args.trials)
         .map(|_| {
-            let ciphertext = if rng.sample(not_found_distrib) <= args.not_found_pct as f64 {
+            let ciphertext = if rc_rng.sample(not_found_distrib) <= args.not_found_pct as f64 {
                 &unfindable_ciphertext
             } else {
-                ciphertexts.choose(&mut rng).unwrap()
+                ciphertexts.choose(&mut rc_rng).unwrap()
             };
 
             let start = time::Instant::now();
@@ -133,19 +137,14 @@
     plaintext_prefix_hash: [u8; 32],
 }
 
-fn random_ldt_scenario<
-    const B: usize,
-    T: TweakableBlockCipher<B>,
-    M: Mix,
-    R: rand::Rng + rand::CryptoRng,
->(
-    rng: &mut R,
+fn random_ldt_scenario<const B: usize, T: TweakableBlockCipher<B>, M: Mix, C: CryptoProvider>(
+    rng: &mut C::CryptoRng,
     plaintext_len: usize,
 ) -> LdtScenario<B, T, M> {
-    let ldt_key: LdtKey<T::Key> = LdtKey::from_random(rng);
+    let ldt_key: LdtKey<T::Key> = LdtKey::from_random::<C>(rng);
     let ldt_enc = LdtEncryptCipher::new(&ldt_key);
     let ldt_dec = LdtDecryptCipher::new(&ldt_key);
-    let plaintext = random_vec(rng, plaintext_len);
+    let plaintext = random_vec::<C>(rng, plaintext_len);
 
     let mut hasher = sha2::Sha256::new();
     let mut plaintext_prefix_hash = generic_array::GenericArray::default();
diff --git a/nearby/presence/ldt/examples/ldt_prp.rs b/nearby/presence/ldt/examples/ldt_prp.rs
index 0e7bcf6..31276b7 100644
--- a/nearby/presence/ldt/examples/ldt_prp.rs
+++ b/nearby/presence/ldt/examples/ldt_prp.rs
@@ -22,10 +22,11 @@
 //! histogram of how many bits were flipped in the entire plaintext.
 use clap::{self, Parser as _};
 use crypto_provider::aes::BLOCK_SIZE;
+use crypto_provider::{CryptoProvider, CryptoRng};
 use crypto_provider_rustcrypto::RustCrypto;
 use ldt::*;
 use ldt_tbc::TweakableBlockCipher;
-use rand::{distributions, Rng as _, SeedableRng as _};
+use rand::{distributions, Rng as _};
 
 use rand_ext::*;
 use xts_aes::{XtsAes128, XtsAes256};
@@ -37,35 +38,37 @@
 }
 
 fn run_trials(args: Args) {
-    let mut rng = rand::rngs::StdRng::from_entropy();
+    let mut rng = seeded_rng();
     let mut histo = (0..=100).map(|_| 0_u64).collect::<Vec<_>>();
     let mut undetected_changes = 0_u64;
+    let mut cp_rng = <RustCrypto as CryptoProvider>::CryptoRng::new();
     for _ in 0..args.trials {
-        let (percent, ok) = if rng.gen() {
-            do_trial(
-                LdtEncryptCipher::<16, XtsAes128<RustCrypto>, Swap>::new(&LdtKey::from_random(
+        let (percent, ok) =
+            if rng.gen() {
+                do_trial(
+                    LdtEncryptCipher::<16, XtsAes128<RustCrypto>, Swap>::new(
+                        &LdtKey::from_random::<RustCrypto>(&mut cp_rng),
+                    ),
+                    LdtDecryptCipher::<16, XtsAes128<RustCrypto>, Swap>::new(
+                        &LdtKey::from_random::<RustCrypto>(&mut cp_rng),
+                    ),
                     &mut rng,
-                )),
-                LdtDecryptCipher::<16, XtsAes128<RustCrypto>, Swap>::new(&LdtKey::from_random(
+                    DefaultPadder::default(),
+                    &args,
+                )
+            } else {
+                do_trial(
+                    LdtEncryptCipher::<16, XtsAes256<RustCrypto>, Swap>::new(
+                        &LdtKey::from_random::<RustCrypto>(&mut cp_rng),
+                    ),
+                    LdtDecryptCipher::<16, XtsAes256<RustCrypto>, Swap>::new(
+                        &LdtKey::from_random::<RustCrypto>(&mut cp_rng),
+                    ),
                     &mut rng,
-                )),
-                &mut rng,
-                DefaultPadder::default(),
-                &args,
-            )
-        } else {
-            do_trial(
-                LdtEncryptCipher::<16, XtsAes256<RustCrypto>, Swap>::new(&LdtKey::from_random(
-                    &mut rng,
-                )),
-                LdtDecryptCipher::<16, XtsAes256<RustCrypto>, Swap>::new(&LdtKey::from_random(
-                    &mut rng,
-                )),
-                &mut rng,
-                DefaultPadder::default(),
-                &args,
-            )
-        };
+                    DefaultPadder::default(),
+                    &args,
+                )
+            };
 
         histo[percent] += 1;
         if !ok {
@@ -105,7 +108,7 @@
 ) -> (usize, bool) {
     let plaintext_len_range = distributions::Uniform::new_inclusive(BLOCK_SIZE, BLOCK_SIZE * 2 - 1);
     let len = rng.sample(plaintext_len_range);
-    let plaintext = random_vec(rng, len);
+    let plaintext = random_vec_rc(rng, len);
 
     let mut ciphertext = plaintext.clone();
     ldt_enc.encrypt(&mut ciphertext, &padder).unwrap();
diff --git a/nearby/presence/ldt/fuzz/Cargo.lock b/nearby/presence/ldt/fuzz/Cargo.lock
index d0a7fc3..a007fe8 100644
--- a/nearby/presence/ldt/fuzz/Cargo.lock
+++ b/nearby/presence/ldt/fuzz/Cargo.lock
@@ -54,9 +54,9 @@
 
 [[package]]
 name = "base16ct"
-version = "0.2.0"
+version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf"
+checksum = "349a06037c7bf932dd7e7d1f653678b2038b9ad46a74102f1fc7bd7872678cce"
 
 [[package]]
 name = "block-buffer"
@@ -133,9 +133,9 @@
 
 [[package]]
 name = "crypto-bigint"
-version = "0.5.1"
+version = "0.4.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7c2538c4e68e52548bacb3e83ac549f903d44f011ac9d5abb5e132e67d0808f7"
+checksum = "ef2b4b23cddf68b89b8f8069890e8c270d54e2d5fe1b143820234805e4cb17ef"
 dependencies = [
  "generic-array",
  "rand_core",
@@ -157,9 +157,6 @@
 [[package]]
 name = "crypto_provider"
 version = "0.1.0"
-dependencies = [
- "bytes",
-]
 
 [[package]]
 name = "crypto_provider_rustcrypto"
@@ -210,12 +207,11 @@
 
 [[package]]
 name = "der"
-version = "0.7.1"
+version = "0.6.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc906908ea6458456e5eaa160a9c08543ec3d1e6f71e2235cedd660cb65f9df0"
+checksum = "f1a467a65c5e759bce6e65eaf91cc29f466cdc57cb65777bd646872a8a1fd4de"
 dependencies = [
  "const-oid",
- "zeroize",
 ]
 
 [[package]]
@@ -263,12 +259,13 @@
 
 [[package]]
 name = "elliptic-curve"
-version = "0.13.2"
+version = "0.12.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ea5a92946e8614bb585254898bb7dd1ddad241ace60c52149e3765e34cc039d"
+checksum = "e7bb888ab5300a19b8e5bceef25ac745ad065f3c9f7efc6de1b91958110891d3"
 dependencies = [
  "base16ct",
  "crypto-bigint",
+ "der",
  "digest",
  "ff",
  "generic-array",
@@ -282,9 +279,9 @@
 
 [[package]]
 name = "ff"
-version = "0.13.0"
+version = "0.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449"
+checksum = "d013fc25338cc558c5c2cfbad646908fb23591e2404481826742b651c9af7160"
 dependencies = [
  "rand_core",
  "subtle",
@@ -304,7 +301,6 @@
 dependencies = [
  "typenum",
  "version_check",
- "zeroize",
 ]
 
 [[package]]
@@ -320,9 +316,9 @@
 
 [[package]]
 name = "group"
-version = "0.13.0"
+version = "0.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63"
+checksum = "5dfbfb3a6cfbd390d5c9564ab283a0349b9b9fcd46a706c1eb10e0db70bfbac7"
 dependencies = [
  "ff",
  "rand_core",
@@ -370,8 +366,8 @@
 name = "ldt"
 version = "0.1.0"
 dependencies = [
+ "crypto_provider",
  "ldt_tbc",
- "rand",
 ]
 
 [[package]]
@@ -389,7 +385,7 @@
 name = "ldt_tbc"
 version = "0.1.0"
 dependencies = [
- "rand",
+ "crypto_provider",
 ]
 
 [[package]]
@@ -429,9 +425,9 @@
 
 [[package]]
 name = "p256"
-version = "0.13.0"
+version = "0.12.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7270da3e5caa82afd3deb054cc237905853813aea3859544bc082c3fe55b8d47"
+checksum = "49c124b3cbce43bcbac68c58ec181d98ed6cc7e6d0aa7c3ba97b2563410b0e55"
 dependencies = [
  "elliptic-curve",
  "primeorder",
@@ -473,9 +469,9 @@
 
 [[package]]
 name = "primeorder"
-version = "0.13.0"
+version = "0.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7613fdcc0831c10060fa69833ea8fa2caa94b6456f51e25356a885b530a2e3d0"
+checksum = "0b54f7131b3dba65a2f414cf5bd25b66d4682e4608610668eae785750ba4c5b2"
 dependencies = [
  "elliptic-curve",
 ]
@@ -528,9 +524,9 @@
 
 [[package]]
 name = "sec1"
-version = "0.7.1"
+version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "48518a2b5775ba8ca5b46596aae011caa431e6ce7e4a67ead66d92f08884220e"
+checksum = "3be24c1842290c45df0a7bf069e0c268a747ad05a192f2fd7dcfdbc1cba40928"
 dependencies = [
  "base16ct",
  "der",
diff --git a/nearby/presence/ldt/src/lib.rs b/nearby/presence/ldt/src/lib.rs
index 8dc4068..d888164 100644
--- a/nearby/presence/ldt/src/lib.rs
+++ b/nearby/presence/ldt/src/lib.rs
@@ -24,6 +24,7 @@
 )]
 
 use core::{fmt, marker::PhantomData};
+use crypto_provider::CryptoProvider;
 use ldt_tbc::{ConcatenatedKeyArray, TweakableBlockCipher, TweakableBlockCipherKey};
 use ldt_tbc::{TweakableBlockCipherDecrypter, TweakableBlockCipherEncrypter};
 
@@ -210,8 +211,8 @@
     }
 
     /// Build a random key from a secure RNG.
-    pub fn from_random<R: rand::Rng + rand::CryptoRng>(rng: &mut R) -> Self {
-        Self::from_concatenated(&ConcatenatedKeyArray::from_random(rng))
+    pub fn from_random<C: CryptoProvider>(rng: &mut C::CryptoRng) -> Self {
+        Self::from_concatenated(&ConcatenatedKeyArray::from_random::<C>(rng))
     }
 
     /// Returns the key material as a concatenated array with the contents of the two tweakable
diff --git a/nearby/presence/ldt/tests/ldt_roundtrip.rs b/nearby/presence/ldt/tests/ldt_roundtrip.rs
index b225399..6f5cada 100644
--- a/nearby/presence/ldt/tests/ldt_roundtrip.rs
+++ b/nearby/presence/ldt/tests/ldt_roundtrip.rs
@@ -13,22 +13,25 @@
 // limitations under the License.
 
 use crypto_provider::aes::BLOCK_SIZE;
+use crypto_provider::{CryptoProvider, CryptoRng};
 use crypto_provider_rustcrypto::RustCrypto;
 use ldt::*;
 use ldt_tbc::TweakableBlockCipher;
+use rand::rngs::StdRng;
 use rand::{self, distributions, Rng as _, SeedableRng as _};
 use rand_ext::{random_bytes, random_vec};
 use xts_aes::{XtsAes128, XtsAes256};
 
 #[test]
 fn roundtrip_normal_padder() {
-    let mut rng = rand::rngs::StdRng::from_entropy();
+    let mut rng = <RustCrypto as CryptoProvider>::CryptoRng::new();
+    let mut rc_rng = rand::rngs::StdRng::from_entropy();
     let plaintext_len_range = distributions::Uniform::new_inclusive(BLOCK_SIZE, BLOCK_SIZE * 2 - 1);
 
     for _ in 0..100_000 {
-        if rng.gen() {
-            let ldt_key = LdtKey::from_random(&mut rng);
-            do_roundtrip(
+        if rc_rng.gen() {
+            let ldt_key = LdtKey::from_random::<RustCrypto>(&mut rng);
+            do_roundtrip::<16, _, _, _, RustCrypto>(
                 LdtEncryptCipher::<16, XtsAes128<RustCrypto>, Swap>::new(&ldt_key),
                 LdtDecryptCipher::<16, XtsAes128<RustCrypto>, Swap>::new(&ldt_key),
                 &DefaultPadder::default(),
@@ -36,8 +39,8 @@
                 &plaintext_len_range,
             )
         } else {
-            let ldt_key = LdtKey::from_random(&mut rng);
-            do_roundtrip(
+            let ldt_key = LdtKey::from_random::<RustCrypto>(&mut rng);
+            do_roundtrip::<16, _, _, _, RustCrypto>(
                 LdtEncryptCipher::<16, XtsAes256<RustCrypto>, Swap>::new(&ldt_key),
                 LdtDecryptCipher::<16, XtsAes256<RustCrypto>, Swap>::new(&ldt_key),
                 &DefaultPadder::default(),
@@ -50,17 +53,18 @@
 
 #[test]
 fn roundtrip_xor_padder() {
-    let mut rng = rand::rngs::StdRng::from_entropy();
+    let mut rng = <RustCrypto as CryptoProvider>::CryptoRng::new();
+    let mut rc_rng = rand::rngs::StdRng::from_entropy();
     // 2 bytes smaller because we're using a 2 byte salt
     let plaintext_len_range =
         distributions::Uniform::new_inclusive(BLOCK_SIZE, BLOCK_SIZE * 2 - 1 - 2);
 
     for _ in 0..100_000 {
-        let padder: XorPadder<BLOCK_SIZE> = random_bytes(&mut rng).into();
+        let padder: XorPadder<BLOCK_SIZE> = random_bytes::<BLOCK_SIZE, RustCrypto>(&mut rng).into();
 
-        if rng.gen() {
-            let ldt_key = LdtKey::from_random(&mut rng);
-            do_roundtrip(
+        if rc_rng.gen() {
+            let ldt_key = LdtKey::from_random::<RustCrypto>(&mut rng);
+            do_roundtrip::<16, _, _, _, RustCrypto>(
                 LdtEncryptCipher::<16, XtsAes128<RustCrypto>, Swap>::new(&ldt_key),
                 LdtDecryptCipher::<16, XtsAes128<RustCrypto>, Swap>::new(&ldt_key),
                 &padder,
@@ -68,8 +72,8 @@
                 &plaintext_len_range,
             )
         } else {
-            let ldt_key = LdtKey::from_random(&mut rng);
-            do_roundtrip(
+            let ldt_key = LdtKey::from_random::<RustCrypto>(&mut rng);
+            do_roundtrip::<16, _, _, _, RustCrypto>(
                 LdtEncryptCipher::<16, XtsAes256<RustCrypto>, Swap>::new(&ldt_key),
                 LdtDecryptCipher::<16, XtsAes256<RustCrypto>, Swap>::new(&ldt_key),
                 &padder,
@@ -85,16 +89,17 @@
     T: TweakableBlockCipher<B>,
     P: Padder<B, T>,
     M: Mix,
-    R: rand::Rng,
+    C: CryptoProvider,
 >(
     ldt_enc: LdtEncryptCipher<B, T, M>,
     ldt_dec: LdtDecryptCipher<B, T, M>,
     padder: &P,
-    rng: &mut R,
+    rng: &mut C::CryptoRng,
     plaintext_len_range: &distributions::Uniform<usize>,
 ) {
-    let len = rng.sample(plaintext_len_range);
-    let plaintext = random_vec(rng, len);
+    let mut rng_rc = StdRng::from_entropy();
+    let len = rng_rc.sample(plaintext_len_range);
+    let plaintext = random_vec::<C>(rng, len);
 
     let mut ciphertext = plaintext.clone();
     ldt_enc.encrypt(&mut ciphertext, padder).unwrap();
diff --git a/nearby/presence/ldt_np_adv/fuzz/Cargo.lock b/nearby/presence/ldt_np_adv/fuzz/Cargo.lock
index e02e7cc..3bfc3fd 100644
--- a/nearby/presence/ldt_np_adv/fuzz/Cargo.lock
+++ b/nearby/presence/ldt_np_adv/fuzz/Cargo.lock
@@ -58,9 +58,9 @@
 
 [[package]]
 name = "base16ct"
-version = "0.2.0"
+version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf"
+checksum = "349a06037c7bf932dd7e7d1f653678b2038b9ad46a74102f1fc7bd7872678cce"
 
 [[package]]
 name = "block-buffer"
@@ -137,9 +137,9 @@
 
 [[package]]
 name = "crypto-bigint"
-version = "0.5.1"
+version = "0.4.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7c2538c4e68e52548bacb3e83ac549f903d44f011ac9d5abb5e132e67d0808f7"
+checksum = "ef2b4b23cddf68b89b8f8069890e8c270d54e2d5fe1b143820234805e4cb17ef"
 dependencies = [
  "generic-array",
  "rand_core",
@@ -161,9 +161,6 @@
 [[package]]
 name = "crypto_provider"
 version = "0.1.0"
-dependencies = [
- "bytes",
-]
 
 [[package]]
 name = "crypto_provider_rustcrypto"
@@ -214,12 +211,11 @@
 
 [[package]]
 name = "der"
-version = "0.7.1"
+version = "0.6.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc906908ea6458456e5eaa160a9c08543ec3d1e6f71e2235cedd660cb65f9df0"
+checksum = "f1a467a65c5e759bce6e65eaf91cc29f466cdc57cb65777bd646872a8a1fd4de"
 dependencies = [
  "const-oid",
- "zeroize",
 ]
 
 [[package]]
@@ -267,12 +263,13 @@
 
 [[package]]
 name = "elliptic-curve"
-version = "0.13.2"
+version = "0.12.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ea5a92946e8614bb585254898bb7dd1ddad241ace60c52149e3765e34cc039d"
+checksum = "e7bb888ab5300a19b8e5bceef25ac745ad065f3c9f7efc6de1b91958110891d3"
 dependencies = [
  "base16ct",
  "crypto-bigint",
+ "der",
  "digest",
  "ff",
  "generic-array",
@@ -286,9 +283,9 @@
 
 [[package]]
 name = "ff"
-version = "0.13.0"
+version = "0.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449"
+checksum = "d013fc25338cc558c5c2cfbad646908fb23591e2404481826742b651c9af7160"
 dependencies = [
  "rand_core",
  "subtle",
@@ -308,7 +305,6 @@
 dependencies = [
  "typenum",
  "version_check",
- "zeroize",
 ]
 
 [[package]]
@@ -324,9 +320,9 @@
 
 [[package]]
 name = "group"
-version = "0.13.0"
+version = "0.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63"
+checksum = "5dfbfb3a6cfbd390d5c9564ab283a0349b9b9fcd46a706c1eb10e0db70bfbac7"
 dependencies = [
  "ff",
  "rand_core",
@@ -374,8 +370,8 @@
 name = "ldt"
 version = "0.1.0"
 dependencies = [
+ "crypto_provider",
  "ldt_tbc",
- "rand",
 ]
 
 [[package]]
@@ -407,7 +403,7 @@
 name = "ldt_tbc"
 version = "0.1.0"
 dependencies = [
- "rand",
+ "crypto_provider",
 ]
 
 [[package]]
@@ -456,9 +452,9 @@
 
 [[package]]
 name = "p256"
-version = "0.13.0"
+version = "0.12.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7270da3e5caa82afd3deb054cc237905853813aea3859544bc082c3fe55b8d47"
+checksum = "49c124b3cbce43bcbac68c58ec181d98ed6cc7e6d0aa7c3ba97b2563410b0e55"
 dependencies = [
  "elliptic-curve",
  "primeorder",
@@ -500,9 +496,9 @@
 
 [[package]]
 name = "primeorder"
-version = "0.13.0"
+version = "0.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7613fdcc0831c10060fa69833ea8fa2caa94b6456f51e25356a885b530a2e3d0"
+checksum = "0b54f7131b3dba65a2f414cf5bd25b66d4682e4608610668eae785750ba4c5b2"
 dependencies = [
  "elliptic-curve",
 ]
@@ -555,9 +551,9 @@
 
 [[package]]
 name = "sec1"
-version = "0.7.1"
+version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "48518a2b5775ba8ca5b46596aae011caa431e6ce7e4a67ead66d92f08884220e"
+checksum = "3be24c1842290c45df0a7bf069e0c268a747ad05a192f2fd7dcfdbc1cba40928"
 dependencies = [
  "base16ct",
  "der",
diff --git a/nearby/presence/ldt_np_adv/src/np_adv_test_vectors.rs b/nearby/presence/ldt_np_adv/src/np_adv_test_vectors.rs
index 46c9968..6460e34 100644
--- a/nearby/presence/ldt_np_adv/src/np_adv_test_vectors.rs
+++ b/nearby/presence/ldt_np_adv/src/np_adv_test_vectors.rs
@@ -19,15 +19,14 @@
 )]
 
 extern crate std;
-
 use crate::{
     build_np_adv_decrypter_from_key_seed, salt_padder, LdtEncrypterXtsAes128, LegacySalt,
     NP_LEGACY_METADATA_KEY_LEN,
 };
 use anyhow::anyhow;
 use crypto_provider_rustcrypto::RustCrypto;
-use rand::Rng as _;
-use rand_ext::{random_vec, seeded_rng};
+use rand::Rng;
+use rand_ext::{random_vec_rc, seeded_rng};
 use serde_json::json;
 use std::vec::Vec;
 use std::{fs, io::Read as _, println, string::String};
@@ -94,7 +93,7 @@
     for _ in 0..1_000 {
         let len =
             rng.gen_range(crypto_provider::aes::BLOCK_SIZE..crypto_provider::aes::BLOCK_SIZE * 2);
-        let plaintext = random_vec(&mut rng, len);
+        let plaintext = random_vec_rc(&mut rng, len);
         let key_seed: [u8; 32] = rng.gen();
 
         let hkdf = np_hkdf::NpKeySeedHkdf::<RustCrypto>::new(&key_seed);
diff --git a/nearby/presence/ldt_np_adv/src/tests.rs b/nearby/presence/ldt_np_adv/src/tests.rs
index 5f09e33..653e145 100644
--- a/nearby/presence/ldt_np_adv/src/tests.rs
+++ b/nearby/presence/ldt_np_adv/src/tests.rs
@@ -26,17 +26,18 @@
     NP_LEGACY_METADATA_KEY_LEN,
 };
 use alloc::vec::Vec;
-use crypto_provider::CryptoProvider;
+use crypto_provider::{CryptoProvider, CryptoRng};
 use crypto_provider_rustcrypto::RustCrypto;
 use ldt::{DefaultPadder, LdtError, LdtKey, XorPadder};
 use np_hkdf::NpKeySeedHkdf;
-use rand_ext::{random_vec, seeded_rng};
+use rand::Rng;
+use rand_ext::{random_bytes, random_vec, seeded_rng};
 
 #[test]
 fn decrypt_matches_correct_ciphertext() {
-    let mut rng = seeded_rng();
+    let mut rng = CryptoRng::new();
     for _ in 0..1_000 {
-        let test_state = make_test_components::<_, RustCrypto>(&mut rng);
+        let test_state = make_test_components::<RustCrypto>(&mut rng);
 
         let cipher = build_np_adv_decrypter_from_key_seed(&test_state.hkdf, test_state.hmac);
         let decrypted = cipher
@@ -49,9 +50,9 @@
 
 #[test]
 fn decrypt_doesnt_match_when_ciphertext_mangled() {
-    let mut rng = seeded_rng();
+    let mut rng = CryptoRng::new();
     for _ in 0..1_000 {
-        let mut test_state = make_test_components::<_, RustCrypto>(&mut rng);
+        let mut test_state = make_test_components::<RustCrypto>(&mut rng);
 
         // mangle the ciphertext
         test_state.ciphertext[0] ^= 0xAA;
@@ -66,9 +67,9 @@
 
 #[test]
 fn decrypt_doesnt_match_when_plaintext_doesnt_match_mac() {
-    let mut rng = seeded_rng();
+    let mut rng = CryptoRng::new();
     for _ in 0..1_000 {
-        let mut test_state = make_test_components::<_, RustCrypto>(&mut rng);
+        let mut test_state = make_test_components::<RustCrypto>(&mut rng);
 
         // mangle the mac
         test_state.hmac[0] ^= 0xAA;
@@ -84,9 +85,9 @@
 #[test]
 #[allow(deprecated)]
 fn encrypt_works() {
-    let mut rng = seeded_rng();
+    let mut rng = CryptoRng::new();
     for _ in 0..1_000 {
-        let test_state = make_test_components::<_, RustCrypto>(&mut rng);
+        let test_state = make_test_components::<RustCrypto>(&mut rng);
 
         let cipher = test_state.ldt_enc;
 
@@ -158,18 +159,21 @@
 }
 
 /// Returns (plaintext, ciphertext, padder, hmac key, MAC, ldt)
-fn make_test_components<R: rand::Rng, C: crypto_provider::CryptoProvider>(
-    rng: &mut R,
+fn make_test_components<C: crypto_provider::CryptoProvider>(
+    rng: &mut C::CryptoRng,
 ) -> LdtAdvTestComponents<C> {
     // [1, 2) blocks of XTS-AES
-    let payload_len = rng
+    let mut rc_rng = seeded_rng();
+    let payload_len = rc_rng
         .gen_range(crypto_provider::aes::BLOCK_SIZE..=(crypto_provider::aes::BLOCK_SIZE * 2 - 1));
-    let plaintext = random_vec(rng, payload_len);
+    let plaintext = random_vec::<C>(rng, payload_len);
 
-    let salt = LegacySalt { bytes: rng.gen() };
+    let salt = LegacySalt {
+        bytes: random_bytes::<2, C>(rng),
+    };
     let padder = salt_padder::<16, C>(salt);
 
-    let key_seed: [u8; 32] = rng.gen();
+    let key_seed: [u8; 32] = random_bytes::<32, C>(rng);
     let hkdf = np_hkdf::NpKeySeedHkdf::new(&key_seed);
     let ldt_key = hkdf.legacy_ldt_key();
     let hmac_key = hkdf.legacy_metadata_key_hmac_key();
diff --git a/nearby/presence/ldt_np_adv_ffi/Cargo.lock b/nearby/presence/ldt_np_adv_ffi/Cargo.lock
index 5deadcc..3a16c56 100644
--- a/nearby/presence/ldt_np_adv_ffi/Cargo.lock
+++ b/nearby/presence/ldt_np_adv_ffi/Cargo.lock
@@ -67,9 +67,9 @@
 
 [[package]]
 name = "base16ct"
-version = "0.2.0"
+version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf"
+checksum = "349a06037c7bf932dd7e7d1f653678b2038b9ad46a74102f1fc7bd7872678cce"
 
 [[package]]
 name = "base64ct"
@@ -166,9 +166,9 @@
 
 [[package]]
 name = "crypto-bigint"
-version = "0.5.1"
+version = "0.4.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7c2538c4e68e52548bacb3e83ac549f903d44f011ac9d5abb5e132e67d0808f7"
+checksum = "ef2b4b23cddf68b89b8f8069890e8c270d54e2d5fe1b143820234805e4cb17ef"
 dependencies = [
  "generic-array",
  "rand_core",
@@ -190,9 +190,6 @@
 [[package]]
 name = "crypto_provider"
 version = "0.1.0"
-dependencies = [
- "bytes",
-]
 
 [[package]]
 name = "crypto_provider_boringssl"
@@ -270,6 +267,15 @@
 
 [[package]]
 name = "der"
+version = "0.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f1a467a65c5e759bce6e65eaf91cc29f466cdc57cb65777bd646872a8a1fd4de"
+dependencies = [
+ "const-oid",
+]
+
+[[package]]
+name = "der"
 version = "0.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "bc906908ea6458456e5eaa160a9c08543ec3d1e6f71e2235cedd660cb65f9df0"
@@ -315,12 +321,13 @@
 
 [[package]]
 name = "elliptic-curve"
-version = "0.13.2"
+version = "0.12.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ea5a92946e8614bb585254898bb7dd1ddad241ace60c52149e3765e34cc039d"
+checksum = "e7bb888ab5300a19b8e5bceef25ac745ad065f3c9f7efc6de1b91958110891d3"
 dependencies = [
  "base16ct",
  "crypto-bigint",
+ "der 0.6.1",
  "digest",
  "ff",
  "generic-array",
@@ -334,9 +341,9 @@
 
 [[package]]
 name = "ff"
-version = "0.13.0"
+version = "0.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449"
+checksum = "d013fc25338cc558c5c2cfbad646908fb23591e2404481826742b651c9af7160"
 dependencies = [
  "rand_core",
  "subtle",
@@ -371,7 +378,6 @@
 dependencies = [
  "typenum",
  "version_check",
- "zeroize",
 ]
 
 [[package]]
@@ -387,9 +393,9 @@
 
 [[package]]
 name = "group"
-version = "0.13.0"
+version = "0.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63"
+checksum = "5dfbfb3a6cfbd390d5c9564ab283a0349b9b9fcd46a706c1eb10e0db70bfbac7"
 dependencies = [
  "ff",
  "rand_core",
@@ -437,8 +443,8 @@
 name = "ldt"
 version = "0.1.0"
 dependencies = [
+ "crypto_provider",
  "ldt_tbc",
- "rand",
 ]
 
 [[package]]
@@ -476,7 +482,7 @@
 name = "ldt_tbc"
 version = "0.1.0"
 dependencies = [
- "rand",
+ "crypto_provider",
 ]
 
 [[package]]
@@ -591,9 +597,9 @@
 
 [[package]]
 name = "p256"
-version = "0.13.0"
+version = "0.12.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7270da3e5caa82afd3deb054cc237905853813aea3859544bc082c3fe55b8d47"
+checksum = "49c124b3cbce43bcbac68c58ec181d98ed6cc7e6d0aa7c3ba97b2563410b0e55"
 dependencies = [
  "elliptic-curve",
  "primeorder",
@@ -621,7 +627,7 @@
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3d2820d87d2b008616e5c27212dd9e0e694fb4c6b522de06094106813328cb49"
 dependencies = [
- "der",
+ "der 0.7.1",
  "spki",
 ]
 
@@ -657,9 +663,9 @@
 
 [[package]]
 name = "primeorder"
-version = "0.13.0"
+version = "0.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7613fdcc0831c10060fa69833ea8fa2caa94b6456f51e25356a885b530a2e3d0"
+checksum = "0b54f7131b3dba65a2f414cf5bd25b66d4682e4608610668eae785750ba4c5b2"
 dependencies = [
  "elliptic-curve",
 ]
@@ -744,12 +750,12 @@
 
 [[package]]
 name = "sec1"
-version = "0.7.1"
+version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "48518a2b5775ba8ca5b46596aae011caa431e6ce7e4a67ead66d92f08884220e"
+checksum = "3be24c1842290c45df0a7bf069e0c268a747ad05a192f2fd7dcfdbc1cba40928"
 dependencies = [
  "base16ct",
- "der",
+ "der 0.6.1",
  "generic-array",
  "subtle",
  "zeroize",
@@ -800,7 +806,7 @@
 checksum = "c0445c905640145c7ea8c1993555957f65e7c46d0535b91ba501bc9bfc85522f"
 dependencies = [
  "base64ct",
- "der",
+ "der 0.7.1",
 ]
 
 [[package]]
diff --git a/nearby/presence/ldt_tbc/Cargo.toml b/nearby/presence/ldt_tbc/Cargo.toml
index 0120c60..3c80114 100644
--- a/nearby/presence/ldt_tbc/Cargo.toml
+++ b/nearby/presence/ldt_tbc/Cargo.toml
@@ -5,4 +5,4 @@
 publish.workspace = true
 
 [dependencies]
-rand.workspace = true
\ No newline at end of file
+crypto_provider.workspace = true
\ No newline at end of file
diff --git a/nearby/presence/ldt_tbc/src/lib.rs b/nearby/presence/ldt_tbc/src/lib.rs
index 97dc5a5..e9ef476 100644
--- a/nearby/presence/ldt_tbc/src/lib.rs
+++ b/nearby/presence/ldt_tbc/src/lib.rs
@@ -23,6 +23,8 @@
 
 //! Defining traits for an LDT specific Tweakable Block Cipher
 
+use crypto_provider::{CryptoProvider, CryptoRng};
+
 /// The higher level trait defining the single block at a time Tweakable Block Cipher types.
 /// Holds associates types for both the [TweakableBlockCipherEncrypter] and corresponding
 /// [TweakableBlockCipherDecrypter]
@@ -81,11 +83,11 @@
 /// The array form of two concatenated tweakable block cipher keys.
 pub trait ConcatenatedKeyArray: Sized {
     /// Build a concatenated key from a secure RNG.
-    fn from_random<R: rand::Rng + rand::CryptoRng>(rng: &mut R) -> Self;
+    fn from_random<C: CryptoProvider>(rng: &mut C::CryptoRng) -> Self;
 }
 
 impl ConcatenatedKeyArray for [u8; 64] {
-    fn from_random<R: rand::Rng + rand::CryptoRng>(rng: &mut R) -> Self {
+    fn from_random<C: CryptoProvider>(rng: &mut C::CryptoRng) -> Self {
         let mut arr = [0; 64];
         rng.fill(&mut arr);
         arr
@@ -93,7 +95,7 @@
 }
 
 impl ConcatenatedKeyArray for [u8; 128] {
-    fn from_random<R: rand::Rng + rand::CryptoRng>(rng: &mut R) -> Self {
+    fn from_random<C: CryptoProvider>(rng: &mut C::CryptoRng) -> Self {
         let mut arr = [0; 128];
         rng.fill(&mut arr);
         arr
diff --git a/nearby/presence/np_hkdf/benches/np_hkdf.rs b/nearby/presence/np_hkdf/benches/np_hkdf.rs
index 8e5cae9..54e682d 100644
--- a/nearby/presence/np_hkdf/benches/np_hkdf.rs
+++ b/nearby/presence/np_hkdf/benches/np_hkdf.rs
@@ -13,15 +13,16 @@
 // limitations under the License.
 
 use criterion::{black_box, criterion_group, criterion_main, Criterion};
+use crypto_provider::{CryptoProvider, CryptoRng};
 use crypto_provider_rustcrypto::RustCrypto;
-use rand::Rng as _;
+use rand_ext::random_bytes;
 
 pub fn build_np_hkdf(c: &mut Criterion) {
-    let mut rng = rand_ext::seeded_rng();
+    let mut rng = <RustCrypto as CryptoProvider>::CryptoRng::new();
     for &num_keys in &[1_usize, 10, 100] {
         c.bench_function(&format!("build {num_keys} np_hkdf from key_seed"), |b| {
             let keys = (0..num_keys)
-                .map(|_| rng.gen::<[u8; 32]>())
+                .map(|_| random_bytes::<32, RustCrypto>(&mut rng))
                 .collect::<Vec<_>>();
             b.iter(|| {
                 for key_seed in keys.iter() {
@@ -31,7 +32,11 @@
         });
         c.bench_function(&format!("hkdf generate {num_keys} hmac keys"), |b| {
             let keys = (0..num_keys)
-                .map(|_| np_hkdf::NpKeySeedHkdf::<RustCrypto>::new(&rng.gen::<[u8; 32]>()))
+                .map(|_| {
+                    np_hkdf::NpKeySeedHkdf::<RustCrypto>::new(&random_bytes::<32, RustCrypto>(
+                        &mut rng,
+                    ))
+                })
                 .collect::<Vec<_>>();
             b.iter(|| {
                 for hkdf in keys.iter() {
@@ -41,7 +46,11 @@
         });
         c.bench_function(&format!("hkdf generate {num_keys} AES keys"), |b| {
             let keys = (0..num_keys)
-                .map(|_| np_hkdf::NpKeySeedHkdf::<RustCrypto>::new(&rng.gen::<[u8; 32]>()))
+                .map(|_| {
+                    np_hkdf::NpKeySeedHkdf::<RustCrypto>::new(&random_bytes::<32, RustCrypto>(
+                        &mut rng,
+                    ))
+                })
                 .collect::<Vec<_>>();
             b.iter(|| {
                 for hkdf in keys.iter() {
@@ -51,7 +60,11 @@
         });
         c.bench_function(&format!("hkdf generate {num_keys} LDT keys"), |b| {
             let keys = (0..num_keys)
-                .map(|_| np_hkdf::NpKeySeedHkdf::<RustCrypto>::new(&rng.gen::<[u8; 32]>()))
+                .map(|_| {
+                    np_hkdf::NpKeySeedHkdf::<RustCrypto>::new(&random_bytes::<32, RustCrypto>(
+                        &mut rng,
+                    ))
+                })
                 .collect::<Vec<_>>();
             b.iter(|| {
                 for hkdf in keys.iter() {
diff --git a/nearby/presence/rand_ext/Cargo.toml b/nearby/presence/rand_ext/Cargo.toml
index b1414ae..bbdb5af 100644
--- a/nearby/presence/rand_ext/Cargo.toml
+++ b/nearby/presence/rand_ext/Cargo.toml
@@ -5,6 +5,7 @@
 publish.workspace = true
 
 [dependencies]
+crypto_provider.workspace = true
 log.workspace = true
 rand = { workspace = true, features = ["std", "std_rng"] }
 rand_pcg.workspace = true
diff --git a/nearby/presence/rand_ext/src/lib.rs b/nearby/presence/rand_ext/src/lib.rs
index 56aa197..9819c6b 100644
--- a/nearby/presence/rand_ext/src/lib.rs
+++ b/nearby/presence/rand_ext/src/lib.rs
@@ -20,19 +20,34 @@
 extern crate alloc;
 
 use alloc::vec::Vec;
+use crypto_provider::{CryptoProvider, CryptoRng};
 use log::info;
 pub use rand;
-use rand::{Rng as _, SeedableRng as _};
+use rand::{Rng as _, SeedableRng};
 
-/// Returns a random vec with the provided length.
-pub fn random_vec<R: rand::Rng>(rng: &mut R, len: usize) -> Vec<u8> {
+/// Returns a random Vec with the provided length.
+pub fn random_vec<C: CryptoProvider>(rng: &mut C::CryptoRng, len: usize) -> Vec<u8> {
     let mut bytes = Vec::<u8>::new();
     bytes.extend((0..len).map(|_| rng.gen::<u8>()));
     bytes
 }
 
 /// Returns a random array with the provided length.
-pub fn random_bytes<const B: usize, R: rand::Rng>(rng: &mut R) -> [u8; B] {
+pub fn random_bytes<const B: usize, C: CryptoProvider>(rng: &mut C::CryptoRng) -> [u8; B] {
+    let mut bytes = [0; B];
+    rng.fill(bytes.as_mut_slice());
+    bytes
+}
+
+/// Uses a RustCrypto Rng to return a random Vec with the provided length
+pub fn random_vec_rc<R: rand::Rng>(rng: &mut R, len: usize) -> Vec<u8> {
+    let mut bytes = Vec::<u8>::new();
+    bytes.extend((0..len).map(|_| rng.gen::<u8>()));
+    bytes
+}
+
+/// Uses a RustCrypto Rng to return random bytes with the provided length
+pub fn random_bytes_rc<const B: usize, R: rand::Rng>(rng: &mut R) -> [u8; B] {
     let mut bytes = [0; B];
     rng.fill(bytes.as_mut_slice());
     bytes
diff --git a/nearby/presence/xts_aes/fuzz/Cargo.lock b/nearby/presence/xts_aes/fuzz/Cargo.lock
index a03bfe0..5408688 100644
--- a/nearby/presence/xts_aes/fuzz/Cargo.lock
+++ b/nearby/presence/xts_aes/fuzz/Cargo.lock
@@ -54,9 +54,9 @@
 
 [[package]]
 name = "base16ct"
-version = "0.2.0"
+version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf"
+checksum = "349a06037c7bf932dd7e7d1f653678b2038b9ad46a74102f1fc7bd7872678cce"
 
 [[package]]
 name = "block-buffer"
@@ -133,9 +133,9 @@
 
 [[package]]
 name = "crypto-bigint"
-version = "0.5.1"
+version = "0.4.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7c2538c4e68e52548bacb3e83ac549f903d44f011ac9d5abb5e132e67d0808f7"
+checksum = "ef2b4b23cddf68b89b8f8069890e8c270d54e2d5fe1b143820234805e4cb17ef"
 dependencies = [
  "generic-array",
  "rand_core",
@@ -157,9 +157,6 @@
 [[package]]
 name = "crypto_provider"
 version = "0.1.0"
-dependencies = [
- "bytes",
-]
 
 [[package]]
 name = "crypto_provider_rustcrypto"
@@ -210,12 +207,11 @@
 
 [[package]]
 name = "der"
-version = "0.7.1"
+version = "0.6.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc906908ea6458456e5eaa160a9c08543ec3d1e6f71e2235cedd660cb65f9df0"
+checksum = "f1a467a65c5e759bce6e65eaf91cc29f466cdc57cb65777bd646872a8a1fd4de"
 dependencies = [
  "const-oid",
- "zeroize",
 ]
 
 [[package]]
@@ -263,12 +259,13 @@
 
 [[package]]
 name = "elliptic-curve"
-version = "0.13.2"
+version = "0.12.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ea5a92946e8614bb585254898bb7dd1ddad241ace60c52149e3765e34cc039d"
+checksum = "e7bb888ab5300a19b8e5bceef25ac745ad065f3c9f7efc6de1b91958110891d3"
 dependencies = [
  "base16ct",
  "crypto-bigint",
+ "der",
  "digest",
  "ff",
  "generic-array",
@@ -282,9 +279,9 @@
 
 [[package]]
 name = "ff"
-version = "0.13.0"
+version = "0.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449"
+checksum = "d013fc25338cc558c5c2cfbad646908fb23591e2404481826742b651c9af7160"
 dependencies = [
  "rand_core",
  "subtle",
@@ -304,7 +301,6 @@
 dependencies = [
  "typenum",
  "version_check",
- "zeroize",
 ]
 
 [[package]]
@@ -320,9 +316,9 @@
 
 [[package]]
 name = "group"
-version = "0.13.0"
+version = "0.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63"
+checksum = "5dfbfb3a6cfbd390d5c9564ab283a0349b9b9fcd46a706c1eb10e0db70bfbac7"
 dependencies = [
  "ff",
  "rand_core",
@@ -370,7 +366,7 @@
 name = "ldt_tbc"
 version = "0.1.0"
 dependencies = [
- "rand",
+ "crypto_provider",
 ]
 
 [[package]]
@@ -410,9 +406,9 @@
 
 [[package]]
 name = "p256"
-version = "0.13.0"
+version = "0.12.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7270da3e5caa82afd3deb054cc237905853813aea3859544bc082c3fe55b8d47"
+checksum = "49c124b3cbce43bcbac68c58ec181d98ed6cc7e6d0aa7c3ba97b2563410b0e55"
 dependencies = [
  "elliptic-curve",
  "primeorder",
@@ -454,9 +450,9 @@
 
 [[package]]
 name = "primeorder"
-version = "0.13.0"
+version = "0.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7613fdcc0831c10060fa69833ea8fa2caa94b6456f51e25356a885b530a2e3d0"
+checksum = "0b54f7131b3dba65a2f414cf5bd25b66d4682e4608610668eae785750ba4c5b2"
 dependencies = [
  "elliptic-curve",
 ]
@@ -509,9 +505,9 @@
 
 [[package]]
 name = "sec1"
-version = "0.7.1"
+version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "48518a2b5775ba8ca5b46596aae011caa431e6ce7e4a67ead66d92f08884220e"
+checksum = "3be24c1842290c45df0a7bf069e0c268a747ad05a192f2fd7dcfdbc1cba40928"
 dependencies = [
  "base16ct",
  "der",
diff --git a/nearby/scripts/build-script.sh b/nearby/scripts/build-script.sh
index 7311df2..f559167 100755
--- a/nearby/scripts/build-script.sh
+++ b/nearby/scripts/build-script.sh
@@ -182,7 +182,8 @@
     git clone https://boringssl.googlesource.com/boringssl
   fi
   cd boringssl && mkdir -p build && cd build
-  cmake -G Ninja .. -DRUST_BINDINGS="$(gcc -dumpmachine)" && ninja
+  target=$(rustc -vV | awk '/host/ { print $2 }')
+  cmake -G Ninja .. -DRUST_BINDINGS="$target" && ninja
   # A valid Rust crate is built under `boringssl-build/boringssl/build/rust/bssl-sys`
 
   cd $projectroot/boringssl-build
