Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

On the usage os OsRng #86

Open
S3j5b0 opened this issue Feb 9, 2022 · 2 comments
Open

On the usage os OsRng #86

S3j5b0 opened this issue Feb 9, 2022 · 2 comments

Comments

@S3j5b0
Copy link

S3j5b0 commented Feb 9, 2022

Hi, this is more of a question than a issue.

In the example that you give of creating keypairs, you use the rand_core Osrng:


use rand_core::OsRng;
use x25519_dalek::{EphemeralSecret, PublicKey};

let alice_secret = EphemeralSecret::new(OsRng);
let alice_public = PublicKey::from(&alice_secret);

After reading a bit up on the osrng, I read that it was not a cryptographically secure source of randomness, and that I should use a resource that specifcally had a focus on that.

The most common option for a csprg, seems to be the StdRng in the rand crate. That I was advised to use.

Is it possible to use use rand::{rngs::StdRng}; to create keypairs in your crate? or is the use of osrng completely unproblematic?

@sgkoishi
Copy link

sgkoishi commented Feb 14, 2022

The secret itself requires RngCore + CryptoRng and StdRng already impl that - but different version... The rest of the world use rand_core 0.6 but this crate use rand_core 0.5 so you'll get
the trait bound "XxxRng: rand_core::RngCore" is not satisfied the trait "rand_core::RngCore" is not implemented for "XxxRng"
the trait bound "XxxRng: rand_core::CryptoRng" is not satisfied the trait "rand_core::CryptoRng" is not implemented for "XxxRng"

There is a pr for version bump and everything should be fine and you can use StdRng or OsRng from rand_core 0.6 or whatever (hopefully, but nobody review or merge the pr)

@kohsine
Copy link

kohsine commented Jul 28, 2022

Can I use something other than OsRng? I've been trying to substitute other cores but I'm getting trait not satisfied errors.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants