Skip to content

Commit a238795

Browse files
committed
Merge branch 'main' into verify-psk-inputs
2 parents 9294f92 + 1f06ba1 commit a238795

12 files changed

+49
-33
lines changed

Cargo.toml

+24-8
Original file line numberDiff line numberDiff line change
@@ -33,22 +33,38 @@ generic-array = { version = "0.14", default-features = false }
3333
digest = "0.10"
3434
hkdf = "0.12"
3535
hmac = "0.12"
36-
rand_core = { version = "0.6", default-features = false }
37-
p256 = { version = "0.13", default-features = false, features = ["arithmetic", "ecdh"], optional = true}
38-
p384 = { version = "0.13", default-features = false, features = ["arithmetic", "ecdh"], optional = true}
39-
p521 = { version = "0.13", default-features = false, features = ["arithmetic", "ecdh"], optional = true}
36+
rand_core = { version = "0.9", default-features = false }
37+
p256 = { version = "0.13", default-features = false, features = [
38+
"arithmetic",
39+
"ecdh",
40+
], optional = true }
41+
p384 = { version = "0.13", default-features = false, features = [
42+
"arithmetic",
43+
"ecdh",
44+
], optional = true }
45+
p521 = { version = "0.13", default-features = false, features = [
46+
"arithmetic",
47+
"ecdh",
48+
], optional = true }
4049
sha2 = { version = "0.10", default-features = false }
4150
subtle = { version = "2.6", default-features = false }
42-
x25519-dalek = { version = "2", default-features = false, features = ["static_secrets"], optional = true }
43-
zeroize = { version = "1", default-features = false, features = ["zeroize_derive"] }
51+
x25519-dalek = { version = "2", default-features = false, features = [
52+
"static_secrets",
53+
], optional = true }
54+
zeroize = { version = "1", default-features = false, features = [
55+
"zeroize_derive",
56+
] }
4457

4558
[dev-dependencies]
46-
criterion = { version = "0.4", features = ["html_reports"] }
59+
criterion = { version = "0.5", features = ["html_reports"] }
4760
hex = "0.4"
4861
hex-literal = "0.4"
4962
serde = { version = "1.0", features = ["derive"] }
5063
serde_json = "1.0"
51-
rand = { version = "0.8", default-features = false, features = ["getrandom", "std_rng"] }
64+
rand = { version = "0.9", default-features = false, features = [
65+
"os_rng",
66+
"std_rng",
67+
] }
5268

5369
[[example]]
5470
name = "client_server"

benches/benches.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ where
2323
Kdf: KdfTrait,
2424
Kem: KemTrait,
2525
{
26-
let mut csprng = StdRng::from_entropy();
26+
let mut csprng = StdRng::from_os_rng();
2727

2828
let mut group = c.benchmark_group(group_name);
2929

@@ -171,7 +171,7 @@ where
171171
Kdf: KdfTrait,
172172
Kem: KemTrait,
173173
{
174-
let mut csprng = StdRng::from_entropy();
174+
let mut csprng = StdRng::from_os_rng();
175175

176176
// Make up the recipient's keypair and setup an encryption context
177177
let (sk_recip, pk_recip) = Kem::gen_keypair(&mut csprng);

examples/agility.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -675,7 +675,7 @@ fn agile_setup_receiver(
675675
}
676676

677677
fn main() {
678-
let mut csprng = StdRng::from_entropy();
678+
let mut csprng = StdRng::from_os_rng();
679679

680680
let supported_aead_algs = &[
681681
AeadAlg::AesGcm128,

examples/client_server.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ type Kdf = HkdfSha384;
3333

3434
// Initializes the server with a fresh keypair
3535
fn server_init() -> (<Kem as KemTrait>::PrivateKey, <Kem as KemTrait>::PublicKey) {
36-
let mut csprng = StdRng::from_entropy();
36+
let mut csprng = StdRng::from_os_rng();
3737
Kem::gen_keypair(&mut csprng)
3838
}
3939

@@ -44,7 +44,7 @@ fn client_encrypt_msg(
4444
associated_data: &[u8],
4545
server_pk: &<Kem as KemTrait>::PublicKey,
4646
) -> (<Kem as KemTrait>::EncappedKey, Vec<u8>, AeadTag<Aead>) {
47-
let mut csprng = StdRng::from_entropy();
47+
let mut csprng = StdRng::from_os_rng();
4848

4949
// Encapsulate a key and use the resulting shared secret to encrypt a message. The AEAD context
5050
// is what you use to encrypt.

src/dhkex/ecdh_nistp.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -422,7 +422,7 @@ mod tests {
422422
/// Tests that an deserialize-serialize round-trip ends up at the same pubkey
423423
#[allow(dead_code)]
424424
fn test_pubkey_serialize_correctness<Kex: DhKeyExchange>() {
425-
let mut csprng = StdRng::from_entropy();
425+
let mut csprng = StdRng::from_os_rng();
426426

427427
// We can't do the same thing as in the X25519 tests, since a completely random point
428428
// is not likely to lie on the curve. Instead, we just generate a random point,
@@ -459,7 +459,7 @@ mod tests {
459459
where
460460
Kex::PrivateKey: PartialEq,
461461
{
462-
let mut csprng = StdRng::from_entropy();
462+
let mut csprng = StdRng::from_os_rng();
463463

464464
// Make a random keypair and serialize it
465465
let (sk, pk) = dhkex_gen_keypair::<Kex, _>(&mut csprng);

src/dhkex/x25519.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@ mod tests {
186186
fn test_pubkey_serialize_correctness() {
187187
type Kex = X25519;
188188

189-
let mut csprng = StdRng::from_entropy();
189+
let mut csprng = StdRng::from_os_rng();
190190

191191
// Fill a buffer with randomness
192192
let orig_bytes = {
@@ -210,7 +210,7 @@ mod tests {
210210
fn test_dh_serialize_correctness() {
211211
type Kex = X25519;
212212

213-
let mut csprng = StdRng::from_entropy();
213+
let mut csprng = StdRng::from_os_rng();
214214

215215
// Make a random keypair and serialize it
216216
let (sk, pk) = dhkex_gen_keypair::<Kex, _>(&mut csprng);

src/kem.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ mod tests {
123123
fn $test_name() {
124124
type Kem = $kem_ty;
125125

126-
let mut csprng = StdRng::from_entropy();
126+
let mut csprng = StdRng::from_os_rng();
127127
let (sk_recip, pk_recip) = Kem::gen_keypair(&mut csprng);
128128

129129
// Encapsulate a random shared secret
@@ -171,7 +171,7 @@ mod tests {
171171

172172
// Encapsulate a random shared secret
173173
let encapped_key = {
174-
let mut csprng = StdRng::from_entropy();
174+
let mut csprng = StdRng::from_os_rng();
175175
let (_, pk_recip) = Kem::gen_keypair(&mut csprng);
176176
Kem::encap(&pk_recip, None, &mut csprng).unwrap().1
177177
};

src/lib.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
//! type Aead = ChaCha20Poly1305;
2323
//! type Kdf = HkdfSha384;
2424
//!
25-
//! let mut csprng = StdRng::from_entropy();
25+
//! let mut csprng = StdRng::from_os_rng();
2626
//! # let (bob_sk, bob_pk) = Kem::gen_keypair(&mut csprng);
2727
//!
2828
//! // This is a description string for the session. Both Alice and Bob need to know this value.

src/op_mode.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ pub enum OpModeR<'a, Kem: KemTrait> {
5050
}
5151

5252
// Helper function for setup_receiver
53-
impl<'a, Kem: KemTrait> OpModeR<'a, Kem> {
53+
impl<Kem: KemTrait> OpModeR<'_, Kem> {
5454
/// Returns the sender's identity pubkey if it's specified
5555
pub(crate) fn get_pk_sender_id(&self) -> Option<&Kem::PublicKey> {
5656
match self {
@@ -78,7 +78,7 @@ pub enum OpModeS<'a, Kem: KemTrait> {
7878
}
7979

8080
// Helpers functions for setup_sender and testing
81-
impl<'a, Kem: KemTrait> OpModeS<'a, Kem> {
81+
impl<Kem: KemTrait> OpModeS<'_, Kem> {
8282
/// Returns the sender's identity pubkey if it's specified
8383
pub(crate) fn get_sender_id_keypair(&self) -> Option<(&Kem::PrivateKey, &Kem::PublicKey)> {
8484
match self {
@@ -100,7 +100,7 @@ pub(crate) trait OpMode<Kem: KemTrait> {
100100
fn get_psk_id(&self) -> &[u8];
101101
}
102102

103-
impl<'a, Kem: KemTrait> OpMode<Kem> for OpModeR<'a, Kem> {
103+
impl<Kem: KemTrait> OpMode<Kem> for OpModeR<'_, Kem> {
104104
// Defined in RFC 9180 §5 Table 1
105105
fn mode_id(&self) -> u8 {
106106
match self {
@@ -135,7 +135,7 @@ impl<'a, Kem: KemTrait> OpMode<Kem> for OpModeR<'a, Kem> {
135135

136136
// I know there's a bunch of code reuse here, but it's not so much that I feel the need to abstract
137137
// something away
138-
impl<'a, Kem: KemTrait> OpMode<Kem> for OpModeS<'a, Kem> {
138+
impl<Kem: KemTrait> OpMode<Kem> for OpModeS<'_, Kem> {
139139
// Defined in RFC 9180 §5 Table 1
140140
fn mode_id(&self) -> u8 {
141141
match self {

src/setup.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -218,7 +218,7 @@ mod test {
218218
type Kdf = $kdf_ty;
219219
type Kem = $kem_ty;
220220

221-
let mut csprng = StdRng::from_entropy();
221+
let mut csprng = StdRng::from_os_rng();
222222

223223
let info = b"why would you think in a million years that that would actually work";
224224

@@ -271,7 +271,7 @@ mod test {
271271
type Kdf = $kdf;
272272
type Kem = $kem;
273273

274-
let mut csprng = StdRng::from_entropy();
274+
let mut csprng = StdRng::from_os_rng();
275275

276276
let info = b"why would you think in a million years that that would actually work";
277277

src/single_shot.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ mod test {
172172
let msg = b"Good night, a-ding ding ding ding ding";
173173
let aad = b"Five four three two one";
174174

175-
let mut csprng = StdRng::from_entropy();
175+
let mut csprng = StdRng::from_os_rng();
176176

177177
// Set up an arbitrary info string, a random PSK, and an arbitrary PSK ID
178178
let info = b"why would you think in a million years that that would actually work";

src/test_util.rs

+6-6
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ use rand::{rngs::StdRng, CryptoRng, Rng, RngCore, SeedableRng};
1313

1414
/// Returns a random 32-byte buffer
1515
pub(crate) fn gen_rand_buf() -> [u8; 32] {
16-
let mut csprng = StdRng::from_entropy();
16+
let mut csprng = StdRng::from_os_rng();
1717
let mut buf = [0u8; 32];
1818
csprng.fill_bytes(&mut buf);
1919
buf
@@ -39,7 +39,7 @@ where
3939
Kdf: KdfTrait,
4040
Kem: KemTrait,
4141
{
42-
let mut csprng = StdRng::from_entropy();
42+
let mut csprng = StdRng::from_os_rng();
4343

4444
// Initialize the key and nonce
4545
let key = {
@@ -78,7 +78,7 @@ pub(crate) fn new_op_mode_pair<'a, Kdf: KdfTrait, Kem: KemTrait>(
7878
psk: &'a [u8],
7979
psk_id: &'a [u8],
8080
) -> (OpModeS<'a, Kem>, OpModeR<'a, Kem>) {
81-
let mut csprng = StdRng::from_entropy();
81+
let mut csprng = StdRng::from_os_rng();
8282
let (sk_sender, pk_sender) = Kem::gen_keypair(&mut csprng);
8383
let psk_bundle = PskBundle::new(psk, psk_id).unwrap();
8484

@@ -112,16 +112,16 @@ pub(crate) fn aead_ctx_eq<A: Aead, Kdf: KdfTrait, Kem: KemTrait>(
112112
sender: &mut AeadCtxS<A, Kdf, Kem>,
113113
receiver: &mut AeadCtxR<A, Kdf, Kem>,
114114
) -> bool {
115-
let mut csprng = StdRng::from_entropy();
115+
let mut csprng = StdRng::from_os_rng();
116116

117117
// Some random input data
118-
let msg_len = csprng.gen::<u8>() as usize;
118+
let msg_len = csprng.random::<u8>() as usize;
119119
let msg_buf = {
120120
let mut buf = [0u8; 255];
121121
csprng.fill_bytes(&mut buf);
122122
buf
123123
};
124-
let aad_len = csprng.gen::<u8>() as usize;
124+
let aad_len = csprng.random::<u8>() as usize;
125125
let aad_buf = {
126126
let mut buf = [0u8; 255];
127127
csprng.fill_bytes(&mut buf);

0 commit comments

Comments
 (0)