Update `rsa` dependency (and use `x25519-dalek` prerelease)
- arti#448 and arti!607 highlight an issue with upgrading `rsa`: namely, the `x25519-dalek` version previously used has a hard dependency on `zeroize` 1.3, which creates a dependency conflict. - However, `x25519-dalek` version `2.0.0-pre.1` relaxes this dependency. Reviewing the changelogs, it doesn't look like that version is substantially different from the current one at all, so it should be safe to use despite the "prerelease" tag. - The new `x25519-dalek` version also bumps `rand_core`, which means we don't have to use the RNG compat wrapper in `tor-llcrypto` as much. closes arti#448
This commit is contained in:
parent
372ff61552
commit
c2e2da5dc3
|
@ -452,7 +452,7 @@ version = "0.5.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "b88d82667eca772c4aa12f0f1348b3ae643424c8876448f3f7bd5787032e234c"
|
checksum = "b88d82667eca772c4aa12f0f1348b3ae643424c8876448f3f7bd5787032e234c"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"autocfg 1.1.0",
|
"autocfg",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
@ -472,15 +472,6 @@ dependencies = [
|
||||||
"winapi 0.3.9",
|
"winapi 0.3.9",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "autocfg"
|
|
||||||
version = "0.1.8"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
checksum = "0dde43e75fd43e8a1bf86103336bc699aa8d17ad1be60c76c0bdfd4828e19b78"
|
|
||||||
dependencies = [
|
|
||||||
"autocfg 1.1.0",
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "autocfg"
|
name = "autocfg"
|
||||||
version = "1.1.0"
|
version = "1.1.0"
|
||||||
|
@ -680,9 +671,9 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "const-oid"
|
name = "const-oid"
|
||||||
version = "0.6.2"
|
version = "0.7.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "9d6f2aa4d0537bcc1c74df8755072bd31c1ef1a3a1b85a68e8404a8c353b7b8b"
|
checksum = "e4c78c047431fee22c1a7bb92e00ad095a02a983affe4d8a72e2a2c62c1b94f3"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "convert_case"
|
name = "convert_case"
|
||||||
|
@ -756,12 +747,11 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "crypto-bigint"
|
name = "crypto-bigint"
|
||||||
version = "0.2.11"
|
version = "0.3.2"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "f83bd3bb4314701c568e340cd8cf78c975aa0ca79e03d3f6d1677d5b0c9c0c03"
|
checksum = "03c6a1d5fa1de37e071642dfa44ec552ca5b299adb128fab16138e24b548fd21"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"generic-array",
|
"generic-array",
|
||||||
"rand_core 0.6.3",
|
|
||||||
"subtle",
|
"subtle",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -806,9 +796,9 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "curve25519-dalek"
|
name = "curve25519-dalek"
|
||||||
version = "3.2.1"
|
version = "3.2.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "90f9d052967f590a76e62eb387bd0bbb1b000182c3cefe5364db6b7211651bc0"
|
checksum = "0b9fdf9972b2bd6af2d913799d9ebc165ea4d2e65878e329d9c6b372c4491b61"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"byteorder",
|
"byteorder",
|
||||||
"digest 0.9.0",
|
"digest 0.9.0",
|
||||||
|
@ -895,12 +885,13 @@ checksum = "3ee2393c4a91429dffb4bedf19f4d6abf27d8a732c8ce4980305d782e5426d57"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "der"
|
name = "der"
|
||||||
version = "0.4.5"
|
version = "0.5.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "79b71cca7d95d7681a4b3b9cdf63c8dbc3730d0584c2c74e31416d64a90493f4"
|
checksum = "6919815d73839e7ad218de758883aae3a257ba6759ce7a9992501efbb53d705c"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"const-oid",
|
"const-oid",
|
||||||
"crypto-bigint",
|
"crypto-bigint",
|
||||||
|
"pem-rfc7468",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
@ -1792,7 +1783,7 @@ version = "0.4.7"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "327fa5b6a6940e4699ec49a9beae1ea4845c6bab9314e4f84ac68742139d8c53"
|
checksum = "327fa5b6a6940e4699ec49a9beae1ea4845c6bab9314e4f84ac68742139d8c53"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"autocfg 1.1.0",
|
"autocfg",
|
||||||
"scopeguard",
|
"scopeguard",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -2041,18 +2032,17 @@ version = "0.4.3"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "f93ab6289c7b344a8a9f60f88d80aa20032336fe78da341afc91c8a2341fc75f"
|
checksum = "f93ab6289c7b344a8a9f60f88d80aa20032336fe78da341afc91c8a2341fc75f"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"autocfg 1.1.0",
|
"autocfg",
|
||||||
"num-integer",
|
"num-integer",
|
||||||
"num-traits",
|
"num-traits",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "num-bigint-dig"
|
name = "num-bigint-dig"
|
||||||
version = "0.7.0"
|
version = "0.8.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "4547ee5541c18742396ae2c895d0717d0f886d8823b8399cdaf7b07d63ad0480"
|
checksum = "566d173b2f9406afbc5510a90925d5a2cd80cae4605631f1212303df265de011"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"autocfg 0.1.8",
|
|
||||||
"byteorder",
|
"byteorder",
|
||||||
"lazy_static",
|
"lazy_static",
|
||||||
"libm",
|
"libm",
|
||||||
|
@ -2079,7 +2069,7 @@ version = "0.1.45"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
|
checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"autocfg 1.1.0",
|
"autocfg",
|
||||||
"num-traits",
|
"num-traits",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -2089,7 +2079,7 @@ version = "0.1.43"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252"
|
checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"autocfg 1.1.0",
|
"autocfg",
|
||||||
"num-integer",
|
"num-integer",
|
||||||
"num-traits",
|
"num-traits",
|
||||||
]
|
]
|
||||||
|
@ -2100,7 +2090,7 @@ version = "0.4.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0"
|
checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"autocfg 1.1.0",
|
"autocfg",
|
||||||
"num-integer",
|
"num-integer",
|
||||||
"num-traits",
|
"num-traits",
|
||||||
]
|
]
|
||||||
|
@ -2111,7 +2101,7 @@ version = "0.2.15"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
|
checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"autocfg 1.1.0",
|
"autocfg",
|
||||||
"libm",
|
"libm",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -2202,7 +2192,7 @@ version = "0.9.74"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "835363342df5fba8354c5b453325b110ffd54044e588c539cf2f20a8014e4cb1"
|
checksum = "835363342df5fba8354c5b453325b110ffd54044e588c539cf2f20a8014e4cb1"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"autocfg 1.1.0",
|
"autocfg",
|
||||||
"cc",
|
"cc",
|
||||||
"libc",
|
"libc",
|
||||||
"openssl-src",
|
"openssl-src",
|
||||||
|
@ -2289,9 +2279,9 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pem-rfc7468"
|
name = "pem-rfc7468"
|
||||||
version = "0.2.3"
|
version = "0.3.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "8f22eb0e3c593294a99e9ff4b24cf6b752d43f193aa4415fe5077c159996d497"
|
checksum = "01de5d978f34aa4b2296576379fcc416034702fd94117c56ffd8a1a767cefb30"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"base64ct",
|
"base64ct",
|
||||||
]
|
]
|
||||||
|
@ -2380,24 +2370,22 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pkcs1"
|
name = "pkcs1"
|
||||||
version = "0.2.4"
|
version = "0.3.3"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "116bee8279d783c0cf370efa1a94632f2108e5ef0bb32df31f051647810a4e2c"
|
checksum = "a78f66c04ccc83dd4486fd46c33896f4e17b24a7a3a6400dedc48ed0ddd72320"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"der",
|
"der",
|
||||||
"pem-rfc7468",
|
"pkcs8",
|
||||||
"zeroize",
|
"zeroize",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pkcs8"
|
name = "pkcs8"
|
||||||
version = "0.7.6"
|
version = "0.8.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "ee3ef9b64d26bad0536099c816c6734379e45bbd5f14798def6809e5cc350447"
|
checksum = "7cabda3fb821068a9a4fab19a683eac3af12edf0f34b94a8be53c4972b8149d0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"der",
|
"der",
|
||||||
"pem-rfc7468",
|
|
||||||
"pkcs1",
|
|
||||||
"spki",
|
"spki",
|
||||||
"zeroize",
|
"zeroize",
|
||||||
]
|
]
|
||||||
|
@ -2699,20 +2687,20 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "rsa"
|
name = "rsa"
|
||||||
version = "0.5.0"
|
version = "0.6.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "e05c2603e2823634ab331437001b411b9ed11660fbc4066f3908c84a9439260d"
|
checksum = "4cf22754c49613d2b3b119f0e5d46e34a2c628a937e3024b8762de4e7d8c710b"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"byteorder",
|
"byteorder",
|
||||||
"digest 0.9.0",
|
"digest 0.10.3",
|
||||||
"lazy_static",
|
|
||||||
"num-bigint-dig",
|
"num-bigint-dig",
|
||||||
"num-integer",
|
"num-integer",
|
||||||
"num-iter",
|
"num-iter",
|
||||||
"num-traits",
|
"num-traits",
|
||||||
"pkcs1",
|
"pkcs1",
|
||||||
"pkcs8",
|
"pkcs8",
|
||||||
"rand 0.8.5",
|
"rand_core 0.6.3",
|
||||||
|
"smallvec",
|
||||||
"subtle",
|
"subtle",
|
||||||
"zeroize",
|
"zeroize",
|
||||||
]
|
]
|
||||||
|
@ -3113,10 +3101,11 @@ checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "spki"
|
name = "spki"
|
||||||
version = "0.4.1"
|
version = "0.5.4"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "5c01a0c15da1b0b0e1494112e7af814a678fec9bd157881b49beac661e9b6f32"
|
checksum = "44d01ac02a6ccf3e07db148d2be087da624fea0221a16152ed01f0496a6b0a27"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
|
"base64ct",
|
||||||
"der",
|
"der",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -4499,12 +4488,12 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "x25519-dalek"
|
name = "x25519-dalek"
|
||||||
version = "1.2.0"
|
version = "2.0.0-pre.1"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "2392b6b94a576b4e2bf3c5b2757d63f10ada8020a2e4d08ac849ebcf6ea8e077"
|
checksum = "e5da623d8af10a62342bcbbb230e33e58a63255a58012f8653c578e54bab48df"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"curve25519-dalek",
|
"curve25519-dalek",
|
||||||
"rand_core 0.5.1",
|
"rand_core 0.6.3",
|
||||||
"zeroize",
|
"zeroize",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -4529,9 +4518,9 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "zeroize"
|
name = "zeroize"
|
||||||
version = "1.3.0"
|
version = "1.5.6"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "4756f7db3f7b5574938c3eb1c117038b8e07f95ee6718c0efad4ac21508f1efd"
|
checksum = "20b578acffd8516a6c3f2a1bdefc1ec37e547bb4e0fb8b6b01a4cafc886b4442"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"zeroize_derive",
|
"zeroize_derive",
|
||||||
]
|
]
|
||||||
|
|
|
@ -35,7 +35,7 @@ hex = "0.4"
|
||||||
old_rand_core = { package = "rand_core", version = "0.5.1" }
|
old_rand_core = { package = "rand_core", version = "0.5.1" }
|
||||||
openssl = { version = "0.10.30", optional = true }
|
openssl = { version = "0.10.30", optional = true }
|
||||||
rand_core = "0.6.2"
|
rand_core = "0.6.2"
|
||||||
rsa = "0.5.0"
|
rsa = "0.6.0"
|
||||||
serde = "1.0.103"
|
serde = "1.0.103"
|
||||||
sha-1 = "0.10.0"
|
sha-1 = "0.10.0"
|
||||||
sha2 = "0.10.0"
|
sha2 = "0.10.0"
|
||||||
|
@ -45,7 +45,7 @@ simple_asn1 = "0.6"
|
||||||
subtle = "2"
|
subtle = "2"
|
||||||
thiserror = "1"
|
thiserror = "1"
|
||||||
typenum = { version = "1.15.0", optional = true }
|
typenum = { version = "1.15.0", optional = true }
|
||||||
x25519-dalek = "1.2"
|
x25519-dalek = "2.0.0-pre.1"
|
||||||
zeroize = "1"
|
zeroize = "1"
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
//! This module should expose RustCrypto trait-based wrappers,
|
//! This module should expose RustCrypto trait-based wrappers,
|
||||||
//! but the [`rsa`] crate didn't support them as of initial writing.
|
//! but the [`rsa`] crate didn't support them as of initial writing.
|
||||||
use arrayref::array_ref;
|
use arrayref::array_ref;
|
||||||
use rsa::pkcs1::{FromRsaPrivateKey, FromRsaPublicKey};
|
use rsa::pkcs1::{DecodeRsaPrivateKey, DecodeRsaPublicKey};
|
||||||
use std::fmt;
|
use std::fmt;
|
||||||
use subtle::{Choice, ConstantTimeEq};
|
use subtle::{Choice, ConstantTimeEq};
|
||||||
use zeroize::Zeroize;
|
use zeroize::Zeroize;
|
||||||
|
|
|
@ -8,29 +8,32 @@
|
||||||
//!
|
//!
|
||||||
//! # Example:
|
//! # Example:
|
||||||
//!
|
//!
|
||||||
//! As of May 2021, if you're using the current version of
|
//! As of July 2022, if you're using the current version of
|
||||||
//! [`x25519-dalek`], and the latest [`rand_core`], then you can't use
|
//! [`ed25519-dalek`], and the latest [`rand_core`], then you can't use
|
||||||
//! this code, because of the compatibility issue mentioned above.
|
//! this code, because of the compatibility issue mentioned above.
|
||||||
//!
|
//!
|
||||||
//! ```compile_fail
|
//! ```compile_fail
|
||||||
//! use rand_core::OsRng;
|
//! use rand_core::OsRng;
|
||||||
//! use x25519_dalek::EphemeralSecret;
|
//! use ed25519_dalek::Keypair;
|
||||||
//!
|
//!
|
||||||
//! let my_secret = EphemeralSecret::new(OsRng);
|
//! let keypair = Keypair::generate(&mut OsRng);
|
||||||
//! ```
|
//! ```
|
||||||
//!
|
//!
|
||||||
|
//! (This used to be a problem for `x25519-dalek` too, but that crate has
|
||||||
|
//! been updated to a version that doesn't have this problem.)
|
||||||
|
//!
|
||||||
//! But instead, you can wrap the random number generator using the
|
//! But instead, you can wrap the random number generator using the
|
||||||
//! [`RngCompatExt`] extension trait.
|
//! [`RngCompatExt`] extension trait.
|
||||||
//!
|
//!
|
||||||
//! ```
|
//! ```
|
||||||
//! use tor_llcrypto::util::rand_compat::RngCompatExt;
|
//! use tor_llcrypto::util::rand_compat::RngCompatExt;
|
||||||
//! use rand_core::OsRng;
|
//! use rand_core::OsRng;
|
||||||
//! use x25519_dalek::EphemeralSecret;
|
//! use ed25519_dalek::Keypair;
|
||||||
//!
|
//!
|
||||||
//! let my_secret = EphemeralSecret::new(OsRng.rng_compat());
|
//! let keypair = Keypair::generate(&mut OsRng.rng_compat());
|
||||||
//! ```
|
//! ```
|
||||||
//!
|
//!
|
||||||
//! The wrapped RNG can be used with the old version of the RngCode
|
//! The wrapped RNG can be used with the old version of the RngCore
|
||||||
//! trait, as well as the new one.
|
//! trait, as well as the new one.
|
||||||
|
|
||||||
use old_rand_core::{CryptoRng as OldCryptoRng, Error as OldError, RngCore as OldRngCore};
|
use old_rand_core::{CryptoRng as OldCryptoRng, Error as OldError, RngCore as OldRngCore};
|
||||||
|
|
|
@ -7,7 +7,6 @@ use tor_bytes::{Reader, Writer};
|
||||||
use tor_llcrypto::d;
|
use tor_llcrypto::d;
|
||||||
use tor_llcrypto::pk::curve25519::*;
|
use tor_llcrypto::pk::curve25519::*;
|
||||||
use tor_llcrypto::pk::rsa::RsaIdentity;
|
use tor_llcrypto::pk::rsa::RsaIdentity;
|
||||||
use tor_llcrypto::util::rand_compat::RngCompatExt;
|
|
||||||
|
|
||||||
use digest::Mac;
|
use digest::Mac;
|
||||||
use rand_core::{CryptoRng, RngCore};
|
use rand_core::{CryptoRng, RngCore};
|
||||||
|
@ -134,7 +133,7 @@ fn client_handshake_ntor_v1<R>(
|
||||||
where
|
where
|
||||||
R: RngCore + CryptoRng,
|
R: RngCore + CryptoRng,
|
||||||
{
|
{
|
||||||
let my_sk = StaticSecret::new(rng.rng_compat());
|
let my_sk = StaticSecret::new(rng);
|
||||||
let my_public = PublicKey::from(&my_sk);
|
let my_public = PublicKey::from(&my_sk);
|
||||||
|
|
||||||
client_handshake_ntor_v1_no_keygen(my_public, my_sk, relay_public)
|
client_handshake_ntor_v1_no_keygen(my_public, my_sk, relay_public)
|
||||||
|
@ -262,7 +261,7 @@ where
|
||||||
// actually going to find our nodeid or keyid. Perhaps we should
|
// actually going to find our nodeid or keyid. Perhaps we should
|
||||||
// delay that till later? It shouldn't matter for most cases,
|
// delay that till later? It shouldn't matter for most cases,
|
||||||
// though.
|
// though.
|
||||||
let ephem = EphemeralSecret::new(rng.rng_compat());
|
let ephem = EphemeralSecret::new(rng);
|
||||||
let ephem_pub = PublicKey::from(&ephem);
|
let ephem_pub = PublicKey::from(&ephem);
|
||||||
|
|
||||||
server_handshake_ntor_v1_no_keygen(ephem_pub, ephem, msg, keys)
|
server_handshake_ntor_v1_no_keygen(ephem_pub, ephem, msg, keys)
|
||||||
|
@ -323,7 +322,7 @@ mod tests {
|
||||||
#[test]
|
#[test]
|
||||||
fn simple() -> Result<()> {
|
fn simple() -> Result<()> {
|
||||||
use crate::crypto::handshake::{ClientHandshake, ServerHandshake};
|
use crate::crypto::handshake::{ClientHandshake, ServerHandshake};
|
||||||
let mut rng = testing_rng().rng_compat();
|
let mut rng = testing_rng();
|
||||||
let relay_secret = StaticSecret::new(&mut rng);
|
let relay_secret = StaticSecret::new(&mut rng);
|
||||||
let relay_public = PublicKey::from(&relay_secret);
|
let relay_public = PublicKey::from(&relay_secret);
|
||||||
let relay_identity = RsaIdentity::from_bytes(&[12; 20]).unwrap();
|
let relay_identity = RsaIdentity::from_bytes(&[12; 20]).unwrap();
|
||||||
|
@ -353,7 +352,7 @@ mod tests {
|
||||||
|
|
||||||
fn make_fake_ephem_key(bytes: &[u8]) -> EphemeralSecret {
|
fn make_fake_ephem_key(bytes: &[u8]) -> EphemeralSecret {
|
||||||
assert_eq!(bytes.len(), 32);
|
assert_eq!(bytes.len(), 32);
|
||||||
let mut rng = FakePRNG::new(bytes).rng_compat();
|
let mut rng = FakePRNG::new(bytes);
|
||||||
EphemeralSecret::new(&mut rng)
|
EphemeralSecret::new(&mut rng)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -405,7 +404,7 @@ mod tests {
|
||||||
#[test]
|
#[test]
|
||||||
fn failing_handshakes() {
|
fn failing_handshakes() {
|
||||||
use crate::crypto::handshake::{ClientHandshake, ServerHandshake};
|
use crate::crypto::handshake::{ClientHandshake, ServerHandshake};
|
||||||
let mut rng = testing_rng().rng_compat();
|
let mut rng = testing_rng();
|
||||||
|
|
||||||
// Set up keys.
|
// Set up keys.
|
||||||
let relay_secret = StaticSecret::new(&mut rng);
|
let relay_secret = StaticSecret::new(&mut rng);
|
||||||
|
|
|
@ -16,5 +16,5 @@ set -euo pipefail
|
||||||
cargo +nightly update -Z minimal-versions
|
cargo +nightly update -Z minimal-versions
|
||||||
cargo update \
|
cargo update \
|
||||||
-p crc32fast \
|
-p crc32fast \
|
||||||
-p zeroize_derive:1.1.1 \
|
-p zeroize_derive:1.3.2 \
|
||||||
-p env_logger:0.5.0
|
-p env_logger:0.5.0
|
||||||
|
|
Loading…
Reference in New Issue