Skip to content

Commit cb7edf1

Browse files
committed
refactor(rng): reduce thread_rng calls
1 parent afaf211 commit cb7edf1

File tree

2 files changed

+34
-30
lines changed

2 files changed

+34
-30
lines changed

tox_core/src/net_crypto/mod.rs

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -453,9 +453,10 @@ impl NetCrypto {
453453
return Err(HandlePacketError::invalid_request_id(cookie_request_id, payload.id))
454454
}
455455

456-
let sent_nonce = crypto_box::generate_nonce(&mut rand::thread_rng());
456+
let mut rng = rand::thread_rng();
457+
let sent_nonce = crypto_box::generate_nonce(&mut rng);
457458
let our_cookie = Cookie::new(connection.peer_real_pk.clone(), connection.peer_dht_pk.clone());
458-
let our_encrypted_cookie = EncryptedCookie::new(&mut thread_rng(), &self.symmetric_key, &our_cookie);
459+
let our_encrypted_cookie = EncryptedCookie::new(&mut rng, &self.symmetric_key, &our_cookie);
459460
let handshake_payload = CryptoHandshakePayload {
460461
base_nonce: sent_nonce.into(),
461462
session_pk: connection.session_pk.clone(),
@@ -553,9 +554,10 @@ impl NetCrypto {
553554

554555
connection.status = match connection.status {
555556
ConnectionStatus::CookieRequesting { .. } => {
556-
let sent_nonce = crypto_box::generate_nonce(&mut rand::thread_rng());
557+
let mut rng = rand::thread_rng();
558+
let sent_nonce = crypto_box::generate_nonce(&mut rng);
557559
let our_cookie = Cookie::new(connection.peer_real_pk.clone(), connection.peer_dht_pk.clone());
558-
let our_encrypted_cookie = EncryptedCookie::new(&mut thread_rng(), &self.symmetric_key, &our_cookie);
560+
let our_encrypted_cookie = EncryptedCookie::new(&mut rng, &self.symmetric_key, &our_cookie);
559561
let handshake_payload = CryptoHandshakePayload {
560562
base_nonce: sent_nonce.into(),
561563
session_pk: connection.session_pk.clone(),
@@ -1746,7 +1748,7 @@ mod tests {
17461748
let base_nonce = crypto_box::generate_nonce(&mut rng).into();
17471749
let session_pk = SecretKey::generate(&mut rng).public_key();
17481750
let our_cookie = Cookie::new(peer_real_pk, peer_dht_pk);
1749-
let our_encrypted_cookie = EncryptedCookie::new(&mut thread_rng(), &net_crypto.symmetric_key, &our_cookie);
1751+
let our_encrypted_cookie = EncryptedCookie::new(&mut rng, &net_crypto.symmetric_key, &our_cookie);
17501752
let cookie = EncryptedCookie {
17511753
nonce: [42; xsalsa20poly1305::NONCE_SIZE],
17521754
payload: vec![43; 88]
@@ -1815,7 +1817,7 @@ mod tests {
18151817
let base_nonce = crypto_box::generate_nonce(&mut rng).into();
18161818
let session_pk = SecretKey::generate(&mut rng).public_key();
18171819
let our_cookie = Cookie::new(peer_real_pk, peer_dht_pk);
1818-
let our_encrypted_cookie = EncryptedCookie::new(&mut thread_rng(), &net_crypto.symmetric_key, &our_cookie);
1820+
let our_encrypted_cookie = EncryptedCookie::new(&mut rng, &net_crypto.symmetric_key, &our_cookie);
18191821
let other_cookie = EncryptedCookie {
18201822
nonce: [42; xsalsa20poly1305::NONCE_SIZE],
18211823
payload: vec![43; 88]
@@ -1882,7 +1884,7 @@ mod tests {
18821884
let base_nonce = crypto_box::generate_nonce(&mut rng).into();
18831885
let session_pk = SecretKey::generate(&mut rng).public_key();
18841886
let our_cookie = Cookie::new(peer_real_pk, peer_dht_pk);
1885-
let our_encrypted_cookie = EncryptedCookie::new(&mut thread_rng(), &net_crypto.symmetric_key, &our_cookie);
1887+
let our_encrypted_cookie = EncryptedCookie::new(&mut rng, &net_crypto.symmetric_key, &our_cookie);
18861888
let cookie = EncryptedCookie {
18871889
nonce: [42; xsalsa20poly1305::NONCE_SIZE],
18881890
payload: vec![43; 88]
@@ -1932,7 +1934,7 @@ mod tests {
19321934
let base_nonce = crypto_box::generate_nonce(&mut rng).into();
19331935
let session_pk = SecretKey::generate(&mut rng).public_key();
19341936
let our_cookie = Cookie::new(peer_real_pk, peer_dht_pk);
1935-
let our_encrypted_cookie = EncryptedCookie::new(&mut thread_rng(), &net_crypto.symmetric_key, &our_cookie);
1937+
let our_encrypted_cookie = EncryptedCookie::new(&mut rng, &net_crypto.symmetric_key, &our_cookie);
19361938
let cookie = EncryptedCookie {
19371939
nonce: [42; xsalsa20poly1305::NONCE_SIZE],
19381940
payload: vec![43; 88]
@@ -1983,7 +1985,7 @@ mod tests {
19831985
let session_pk = SecretKey::generate(&mut rng).public_key();
19841986
let mut our_cookie = Cookie::new(peer_real_pk, peer_dht_pk);
19851987
our_cookie.time -= COOKIE_TIMEOUT + 1;
1986-
let our_encrypted_cookie = EncryptedCookie::new(&mut thread_rng(), &net_crypto.symmetric_key, &our_cookie);
1988+
let our_encrypted_cookie = EncryptedCookie::new(&mut rng, &net_crypto.symmetric_key, &our_cookie);
19871989
let cookie = EncryptedCookie {
19881990
nonce: [42; xsalsa20poly1305::NONCE_SIZE],
19891991
payload: vec![43; 88]
@@ -2034,7 +2036,7 @@ mod tests {
20342036
let base_nonce = crypto_box::generate_nonce(&mut rng).into();
20352037
let session_pk = SecretKey::generate(&mut rng).public_key();
20362038
let our_cookie = Cookie::new(another_peer_real_pk, peer_dht_pk);
2037-
let our_encrypted_cookie = EncryptedCookie::new(&mut thread_rng(), &net_crypto.symmetric_key, &our_cookie);
2039+
let our_encrypted_cookie = EncryptedCookie::new(&mut rng, &net_crypto.symmetric_key, &our_cookie);
20382040
let cookie = EncryptedCookie {
20392041
nonce: [42; xsalsa20poly1305::NONCE_SIZE],
20402042
payload: vec![43; 88]
@@ -2089,7 +2091,7 @@ mod tests {
20892091
let base_nonce = crypto_box::generate_nonce(&mut rng).into();
20902092
let session_pk = SecretKey::generate(&mut rng).public_key();
20912093
let our_cookie = Cookie::new(peer_real_pk.clone(), new_dht_pk.clone());
2092-
let our_encrypted_cookie = EncryptedCookie::new(&mut thread_rng(), &net_crypto.symmetric_key, &our_cookie);
2094+
let our_encrypted_cookie = EncryptedCookie::new(&mut rng, &net_crypto.symmetric_key, &our_cookie);
20932095
let cookie = EncryptedCookie {
20942096
nonce: [42; xsalsa20poly1305::NONCE_SIZE],
20952097
payload: vec![43; 88]
@@ -2154,7 +2156,7 @@ mod tests {
21542156
let base_nonce = crypto_box::generate_nonce(&mut rng).into();
21552157
let session_pk = SecretKey::generate(&mut rng).public_key();
21562158
let our_cookie = Cookie::new(peer_real_pk.clone(), peer_dht_pk.clone());
2157-
let our_encrypted_cookie = EncryptedCookie::new(&mut thread_rng(), &net_crypto.symmetric_key, &our_cookie);
2159+
let our_encrypted_cookie = EncryptedCookie::new(&mut rng, &net_crypto.symmetric_key, &our_cookie);
21582160
let cookie = EncryptedCookie {
21592161
nonce: [42; xsalsa20poly1305::NONCE_SIZE],
21602162
payload: vec![43; 88]
@@ -2235,7 +2237,7 @@ mod tests {
22352237
let base_nonce = crypto_box::generate_nonce(&mut rng).into();
22362238
let session_pk = SecretKey::generate(&mut rng).public_key();
22372239
let our_cookie = Cookie::new(peer_real_pk.clone(), peer_dht_pk);
2238-
let our_encrypted_cookie = EncryptedCookie::new(&mut thread_rng(), &net_crypto.symmetric_key, &our_cookie);
2240+
let our_encrypted_cookie = EncryptedCookie::new(&mut rng, &net_crypto.symmetric_key, &our_cookie);
22392241
let cookie = EncryptedCookie {
22402242
nonce: [42; xsalsa20poly1305::NONCE_SIZE],
22412243
payload: vec![43; 88]
@@ -2321,7 +2323,7 @@ mod tests {
23212323
let base_nonce = crypto_box::generate_nonce(&mut rng).into();
23222324
let session_pk = SecretKey::generate(&mut rng).public_key();
23232325
let our_cookie = Cookie::new(peer_real_pk.clone(), new_peer_dht_pk.clone());
2324-
let our_encrypted_cookie = EncryptedCookie::new(&mut thread_rng(), &net_crypto.symmetric_key, &our_cookie);
2326+
let our_encrypted_cookie = EncryptedCookie::new(&mut rng, &net_crypto.symmetric_key, &our_cookie);
23252327
let cookie = EncryptedCookie {
23262328
nonce: [42; xsalsa20poly1305::NONCE_SIZE],
23272329
payload: vec![43; 88]
@@ -2413,7 +2415,7 @@ mod tests {
24132415
let base_nonce = crypto_box::generate_nonce(&mut rng).into();
24142416
let session_pk = SecretKey::generate(&mut rng).public_key();
24152417
let our_cookie = Cookie::new(peer_real_pk.clone(), peer_dht_pk);
2416-
let our_encrypted_cookie = EncryptedCookie::new(&mut thread_rng(), &net_crypto.symmetric_key, &our_cookie);
2418+
let our_encrypted_cookie = EncryptedCookie::new(&mut rng, &net_crypto.symmetric_key, &our_cookie);
24172419
let cookie = EncryptedCookie {
24182420
nonce: [42; xsalsa20poly1305::NONCE_SIZE],
24192421
payload: vec![43; 88]
@@ -2502,7 +2504,7 @@ mod tests {
25022504
let base_nonce = crypto_box::generate_nonce(&mut rng).into();
25032505
let session_pk = SecretKey::generate(&mut rng).public_key();
25042506
let our_cookie = Cookie::new(peer_real_pk, peer_dht_pk);
2505-
let our_encrypted_cookie = EncryptedCookie::new(&mut thread_rng(), &net_crypto.symmetric_key, &our_cookie);
2507+
let our_encrypted_cookie = EncryptedCookie::new(&mut rng, &net_crypto.symmetric_key, &our_cookie);
25062508
let cookie = EncryptedCookie {
25072509
nonce: [42; xsalsa20poly1305::NONCE_SIZE],
25082510
payload: vec![43; 88]
@@ -2550,7 +2552,7 @@ mod tests {
25502552
let base_nonce = crypto_box::generate_nonce(&mut rng).into();
25512553
let session_pk = SecretKey::generate(&mut rng).public_key();
25522554
let our_cookie = Cookie::new(peer_real_pk, peer_dht_pk);
2553-
let our_encrypted_cookie = EncryptedCookie::new(&mut thread_rng(), &net_crypto.symmetric_key, &our_cookie);
2555+
let our_encrypted_cookie = EncryptedCookie::new(&mut rng, &net_crypto.symmetric_key, &our_cookie);
25542556
let cookie = EncryptedCookie {
25552557
nonce: [42; xsalsa20poly1305::NONCE_SIZE],
25562558
payload: vec![43; 88]

tox_core/src/onion/client/mod.rs

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -491,6 +491,7 @@ impl OnionClient {
491491

492492
state.paths_pool.path_nodes.put(PackedNode::new(announce_data.saddr, announce_data.pk.clone()));
493493

494+
let mut rng = thread_rng();
494495
for node in &payload.nodes {
495496
// skip LAN nodes if the packet wasn't received from LAN
496497
if !IsGlobal::is_global(&node.ip()) && is_global {
@@ -512,7 +513,7 @@ impl OnionClient {
512513
continue
513514
};
514515

515-
let request_id = state.announce_requests.new_ping_id(&mut thread_rng(), AnnounceRequestData {
516+
let request_id = state.announce_requests.new_ping_id(&mut rng, AnnounceRequestData {
516517
pk: node.pk.clone(),
517518
saddr: node.saddr,
518519
path_id: path.id(),
@@ -654,6 +655,7 @@ impl OnionClient {
654655
);
655656
let mut packets_sent = false;
656657
let mut good_nodes_count = 0;
658+
let mut rng = thread_rng();
657659
for node in close_nodes.iter_mut() {
658660
if !node.is_timed_out() {
659661
good_nodes_count += 1;
@@ -696,7 +698,7 @@ impl OnionClient {
696698
node.unsuccessful_pings += 1;
697699
node.ping_time = clock_now();
698700

699-
let request_id = announce_requests.new_ping_id(&mut thread_rng(), AnnounceRequestData {
701+
let request_id = announce_requests.new_ping_id(&mut rng, AnnounceRequestData {
700702
pk: node.pk.clone(),
701703
saddr: node.saddr,
702704
path_id: path.id(),
@@ -726,7 +728,7 @@ impl OnionClient {
726728
break
727729
};
728730

729-
let request_id = announce_requests.new_ping_id(&mut thread_rng(), AnnounceRequestData {
731+
let request_id = announce_requests.new_ping_id(&mut rng, AnnounceRequestData {
730732
pk: node.pk.clone(),
731733
saddr: node.saddr,
732734
path_id: path.id(),
@@ -1254,7 +1256,7 @@ mod tests {
12541256
path_id: path.id(),
12551257
friend_pk: None,
12561258
};
1257-
let request_id = state.announce_requests.new_ping_id(&mut thread_rng(), request_data);
1259+
let request_id = state.announce_requests.new_ping_id(&mut rng, request_data);
12581260

12591261
drop(state);
12601262

@@ -1332,7 +1334,7 @@ mod tests {
13321334
path_id: path.id(),
13331335
friend_pk: Some(friend_pk),
13341336
};
1335-
let request_id = state.announce_requests.new_ping_id(&mut thread_rng(), request_data);
1337+
let request_id = state.announce_requests.new_ping_id(&mut rng, request_data);
13361338

13371339
drop(state);
13381340

@@ -1383,7 +1385,7 @@ mod tests {
13831385
path_id: path.id(),
13841386
friend_pk: None,
13851387
};
1386-
let request_id = state.announce_requests.new_ping_id(&mut thread_rng(), request_data);
1388+
let request_id = state.announce_requests.new_ping_id(&mut rng, request_data);
13871389

13881390
// insert request to a node to announce_requests so that it won't be pinged again
13891391
let node_pk = SecretKey::generate(&mut rng).public_key();
@@ -1394,7 +1396,7 @@ mod tests {
13941396
path_id: path.id(),
13951397
friend_pk: None,
13961398
};
1397-
let _node_request_id = state.announce_requests.new_ping_id(&mut thread_rng(), node_request_data);
1399+
let _node_request_id = state.announce_requests.new_ping_id(&mut rng, node_request_data);
13981400

13991401
drop(state);
14001402

@@ -1461,7 +1463,7 @@ mod tests {
14611463
path_id: path.id(),
14621464
friend_pk: Some(friend_pk.clone()),
14631465
};
1464-
let request_id = state.announce_requests.new_ping_id(&mut thread_rng(), request_data);
1466+
let request_id = state.announce_requests.new_ping_id(&mut rng, request_data);
14651467

14661468
drop(state);
14671469

@@ -1534,7 +1536,7 @@ mod tests {
15341536
path_id: path.id(),
15351537
friend_pk: None,
15361538
};
1537-
let request_id = state.announce_requests.new_ping_id(&mut thread_rng(), request_data);
1539+
let request_id = state.announce_requests.new_ping_id(&mut rng, request_data);
15381540

15391541
drop(state);
15401542

@@ -1586,7 +1588,7 @@ mod tests {
15861588
},
15871589
friend_pk: Some(friend_pk),
15881590
};
1589-
let request_id = state.announce_requests.new_ping_id(&mut thread_rng(), request_data);
1591+
let request_id = state.announce_requests.new_ping_id(&mut rng, request_data);
15901592

15911593
drop(state);
15921594

@@ -1637,7 +1639,7 @@ mod tests {
16371639
},
16381640
friend_pk: Some(friend_pk),
16391641
};
1640-
let request_id = state.announce_requests.new_ping_id(&mut thread_rng(), request_data);
1642+
let request_id = state.announce_requests.new_ping_id(&mut rng, request_data);
16411643

16421644
drop(state);
16431645

@@ -1690,7 +1692,7 @@ mod tests {
16901692
path_id: path.id(),
16911693
friend_pk: Some(friend_pk.clone()),
16921694
};
1693-
let request_id = state.announce_requests.new_ping_id(&mut thread_rng(), request_data);
1695+
let request_id = state.announce_requests.new_ping_id(&mut rng, request_data);
16941696

16951697
// insert request to a node to announce_requests so that it won't be pinged again
16961698
let node_pk = SecretKey::generate(&mut rng).public_key();
@@ -1701,7 +1703,7 @@ mod tests {
17011703
path_id: path.id(),
17021704
friend_pk: Some(friend_pk),
17031705
};
1704-
let _node_request_id = state.announce_requests.new_ping_id(&mut thread_rng(), node_request_data);
1706+
let _node_request_id = state.announce_requests.new_ping_id(&mut rng, node_request_data);
17051707

17061708
drop(state);
17071709

0 commit comments

Comments
 (0)