Module tor_llcrypto::util::rand_compat
source · [−]Expand description
Compatibility utilities for working with libraries that consume older versions of rand_core.
The dalek-crypto libraries are currently stuck on rand_core
0.5.1, but everywhere else in Arti we want to use the latest
rand_core (0.6.2 as of this writing). The extension trait in this
module lets us do so.
Example:
As of May 2021, if you’re using the current version of
[x25519-dalek], and the latest rand_core, then you can’t use
this code, because of the compatibility issue mentioned above.
use rand_core::OsRng;
use x25519_dalek::EphemeralSecret;
let my_secret = EphemeralSecret::new(OsRng);But instead, you can wrap the random number generator using the
RngCompatExt extension trait.
use tor_llcrypto::util::rand_compat::RngCompatExt;
use rand_core::OsRng;
use x25519_dalek::EphemeralSecret;
let my_secret = EphemeralSecret::new(OsRng.rng_compat());The wrapped RNG can be used with the old version of the RngCode trait, as well as the new one.
Structs
A new-style Rng, wrapped for backward compatibility.
Traits
Extension trait for the current versions of RngCore; adds a
compatibility-wrapper function.