Skip to content

Commit

Permalink
crypto_kx: use CryptoRngCore; cleanup deps (#132)
Browse files Browse the repository at this point in the history
Uses the `CryptoRngCore` trait alias as introduced in `rand_core`
v0.6.4.

Also removes extraneous dependencies.
  • Loading branch information
tarcieri authored Jul 22, 2023
1 parent e70670d commit e29491f
Show file tree
Hide file tree
Showing 6 changed files with 13 additions and 17 deletions.
3 changes: 1 addition & 2 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

11 changes: 4 additions & 7 deletions crypto_kx/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "crypto_kx"
version = "0.2.0-pre.0"
version = "0.2.0"
description = "Pure Rust implementation of libsodium's crypto_kx using BLAKE2"
authors = ["C4DT", "RustCrypto Developers"]
license = "Apache-2.0 OR MIT"
Expand All @@ -16,20 +16,17 @@ rust-version = "1.60"
[dependencies]
blake2 = { version = "0.10", default-features = false }
curve25519-dalek = { version = "4", default-features = false, features = ["zeroize"] }
rand_core = "0.6"
rand_core = "0.6.4"

# optional dependencies
serdect = { version = "0.2", optional = true, default-features = false }

[target.'cfg(target_family = "wasm")'.dependencies]
getrandom = { version = "0.2", default-features = false, features = ["js"] }

[dev-dependencies]
rand_core = { version = "0.6", features = ["std"] }
rand_core = { version = "0.6", features = ["getrandom"] }

[features]
serde = ["serdect"]
std = ["blake2/std", "rand_core/std"]
getrandom = ["rand_core/getrandom"]

[package.metadata.docs.rs]
features = ["serde", "seal"]
Expand Down
4 changes: 2 additions & 2 deletions crypto_kx/src/keypair.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
use blake2::{digest::generic_array::sequence::Split, Blake2b512, Digest};
use rand_core::{CryptoRng, RngCore};
use rand_core::CryptoRngCore;

use crate::{ClientSessionKeys, PublicKey, SecretKey, ServerSessionKeys, SessionKey};

Expand All @@ -11,7 +11,7 @@ pub struct Keypair {

impl Keypair {
/// Generate a new random [`Keypair`].
pub fn generate(csprng: impl RngCore + CryptoRng) -> Self {
pub fn generate(csprng: &mut impl CryptoRngCore) -> Self {
SecretKey::generate(csprng).into()
}

Expand Down
4 changes: 2 additions & 2 deletions crypto_kx/src/keys/secret.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

use crate::{errors::InvalidLength, PublicKey};
use curve25519_dalek::MontgomeryPoint;
use rand_core::{CryptoRng, RngCore};
use rand_core::CryptoRngCore;

#[cfg(feature = "serde")]
use serdect::serde::{de, ser, Deserialize, Serialize};
Expand All @@ -16,7 +16,7 @@ impl SecretKey {
pub const BYTES: usize = 32;

/// Generate a new random [`SecretKey`].
pub fn generate(mut csprng: impl RngCore + CryptoRng) -> Self {
pub fn generate(csprng: &mut impl CryptoRngCore) -> Self {
let mut bytes = [0u8; Self::BYTES];
csprng.fill_bytes(&mut bytes);
bytes.into()
Expand Down
4 changes: 2 additions & 2 deletions crypto_kx/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@
//! use rand_core::OsRng;
//!
//! // Each generates a key on their machine.
//! let alice = Keypair::generate(OsRng);
//! let betty = Keypair::generate(OsRng);
//! let alice = Keypair::generate(&mut OsRng);
//! let betty = Keypair::generate(&mut OsRng);
//!
//! // Then Alice decides to send a message to Betty, so she computes the shared keys.
//! let alice_keys = alice.session_keys_to(betty.public());
Expand Down
4 changes: 2 additions & 2 deletions crypto_kx/tests/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ use rand_core::OsRng;

#[test]
fn client_keys_is_reverse_from_server_keys() {
let client = Keypair::generate(OsRng);
let server = Keypair::generate(OsRng);
let client = Keypair::generate(&mut OsRng);
let server = Keypair::generate(&mut OsRng);

let client_keys = client.session_keys_to(server.public());
let server_keys = server.session_keys_from(client.public());
Expand Down

0 comments on commit e29491f

Please sign in to comment.