Skip to content

Commit fefeff0

Browse files
author
Roman Proskuryakov
authored
Merge pull request #373 from tox-rs/drop_peer_session_pk
Do not store peer_session_pk
2 parents b161708 + b8c634c commit fefeff0

File tree

2 files changed

+7
-59
lines changed

2 files changed

+7
-59
lines changed

src/toxcore/net_crypto/crypto_connection.rs

Lines changed: 2 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -174,8 +174,6 @@ pub enum ConnectionStatus {
174174
sent_nonce: Nonce,
175175
/// Nonce that should be used to decrypt incoming packets
176176
received_nonce: Nonce,
177-
/// `PublicKey` of the other side for this session
178-
peer_session_pk: PublicKey,
179177
/// `PrecomputedKey` for this session that is used to encrypt and
180178
/// decrypt data packets
181179
session_precomputed_key: PrecomputedKey,
@@ -189,8 +187,6 @@ pub enum ConnectionStatus {
189187
sent_nonce: Nonce,
190188
/// Nonce that should be used to decrypt incoming packets
191189
received_nonce: Nonce,
192-
/// `PublicKey` of the other side for this session
193-
peer_session_pk: PublicKey,
194190
/// `PrecomputedKey` for this session that is used to encrypt and
195191
/// decrypt data packets
196192
session_precomputed_key: PrecomputedKey,
@@ -401,7 +397,6 @@ impl CryptoConnection {
401397
let status = ConnectionStatus::NotConfirmed {
402398
sent_nonce,
403399
received_nonce,
404-
peer_session_pk,
405400
session_precomputed_key: precompute(&peer_session_pk, &session_sk),
406401
packet: StatusPacket::new_crypto_handshake(handshake)
407402
};
@@ -771,28 +766,20 @@ mod tests {
771766
let connection_c = connection.clone();
772767
assert_eq!(connection_c, connection);
773768

774-
let (peer_session_pk, _peer_session_sk) = gen_keypair();
775-
let (_session_pk, session_sk) = gen_keypair();
776-
let session_precomputed_key = precompute(&peer_session_pk, &session_sk);
777769
connection.status = ConnectionStatus::NotConfirmed {
778770
sent_nonce: gen_nonce(),
779771
received_nonce: gen_nonce(),
780-
peer_session_pk,
781-
session_precomputed_key,
772+
session_precomputed_key: precompute(&gen_keypair().0, &gen_keypair().1),
782773
packet: StatusPacket::new_crypto_handshake(crypto_handshake),
783774
};
784775

785776
let connection_c = connection.clone();
786777
assert_eq!(connection_c, connection);
787778

788-
let (peer_session_pk, _peer_session_sk) = gen_keypair();
789-
let (_session_pk, session_sk) = gen_keypair();
790-
let session_precomputed_key = precompute(&peer_session_pk, &session_sk);
791779
connection.status = ConnectionStatus::Established {
792780
sent_nonce: gen_nonce(),
793781
received_nonce: gen_nonce(),
794-
peer_session_pk,
795-
session_precomputed_key,
782+
session_precomputed_key: precompute(&gen_keypair().0, &gen_keypair().1),
796783
};
797784

798785
let connection_c = connection.clone();
@@ -871,7 +858,6 @@ mod tests {
871858
connection.status = ConnectionStatus::Established {
872859
sent_nonce: gen_nonce(),
873860
received_nonce: gen_nonce(),
874-
peer_session_pk: gen_keypair().0,
875861
session_precomputed_key: precompute(&gen_keypair().0, &gen_keypair().1),
876862
};
877863

@@ -900,7 +886,6 @@ mod tests {
900886
connection.status = ConnectionStatus::NotConfirmed {
901887
sent_nonce: gen_nonce(),
902888
received_nonce: gen_nonce(),
903-
peer_session_pk: gen_keypair().0,
904889
session_precomputed_key: precompute(&gen_keypair().0, &gen_keypair().1),
905890
packet: StatusPacket::new_crypto_handshake(crypto_handshake),
906891
};

src/toxcore/net_crypto/mod.rs

Lines changed: 5 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -450,7 +450,6 @@ impl NetCrypto {
450450
ConnectionStatus::NotConfirmed {
451451
sent_nonce,
452452
received_nonce: payload.base_nonce,
453-
peer_session_pk: payload.session_pk,
454453
session_precomputed_key: precompute(&payload.session_pk, &connection.session_sk),
455454
packet: StatusPacket::new_crypto_handshake(handshake)
456455
}
@@ -459,7 +458,6 @@ impl NetCrypto {
459458
| ConnectionStatus::NotConfirmed { sent_nonce, ref packet, .. } => ConnectionStatus::NotConfirmed {
460459
sent_nonce,
461460
received_nonce: payload.base_nonce,
462-
peer_session_pk: payload.session_pk,
463461
session_precomputed_key: precompute(&payload.session_pk, &connection.session_sk),
464462
packet: packet.clone()
465463
},
@@ -636,10 +634,10 @@ impl NetCrypto {
636634
*/
637635
fn handle_crypto_data(&self, connection: &mut CryptoConnection, packet: &CryptoData, udp: bool)
638636
-> impl Future<Item = (), Error = HandlePacketError> + Send {
639-
let (sent_nonce, mut received_nonce, peer_session_pk, session_precomputed_key) = match connection.status {
640-
ConnectionStatus::NotConfirmed { sent_nonce, received_nonce, peer_session_pk, ref session_precomputed_key, .. }
641-
| ConnectionStatus::Established { sent_nonce, received_nonce, peer_session_pk, ref session_precomputed_key } => {
642-
(sent_nonce, received_nonce, peer_session_pk, session_precomputed_key.clone())
637+
let (sent_nonce, mut received_nonce, session_precomputed_key) = match connection.status {
638+
ConnectionStatus::NotConfirmed { sent_nonce, received_nonce, ref session_precomputed_key, .. }
639+
| ConnectionStatus::Established { sent_nonce, received_nonce, ref session_precomputed_key } => {
640+
(sent_nonce, received_nonce, session_precomputed_key.clone())
643641
},
644642
_ => {
645643
return Box::new(future::err(HandlePacketError::from(HandlePacketErrorKind::CannotHandleCryptoData)))
@@ -688,7 +686,6 @@ impl NetCrypto {
688686
connection.status = ConnectionStatus::Established {
689687
sent_nonce,
690688
received_nonce,
691-
peer_session_pk,
692689
session_precomputed_key
693690
};
694691

@@ -1417,10 +1414,7 @@ mod tests {
14171414
net_crypto.handle_crypto_handshake(&mut connection, &crypto_handshake).wait().unwrap();
14181415

14191416
let received_nonce = unpack!(connection.status, ConnectionStatus::NotConfirmed, received_nonce);
1420-
let peer_session_pk = unpack!(connection.status, ConnectionStatus::NotConfirmed, peer_session_pk);
1421-
14221417
assert_eq!(received_nonce, base_nonce);
1423-
assert_eq!(peer_session_pk, session_pk);
14241418

14251419
let packet = unpack!(connection.status, ConnectionStatus::NotConfirmed, packet);
14261420
let packet = unpack!(packet.dht_packet(), Packet::CryptoHandshake);
@@ -1486,12 +1480,9 @@ mod tests {
14861480

14871481
net_crypto.handle_crypto_handshake(&mut connection, &crypto_handshake).wait().unwrap();
14881482

1489-
// Nonce and session pk should be taken from the packet
1483+
// Nonce should be taken from the packet
14901484
let received_nonce = unpack!(connection.status, ConnectionStatus::NotConfirmed, received_nonce);
1491-
let peer_session_pk = unpack!(connection.status, ConnectionStatus::NotConfirmed, peer_session_pk);
1492-
14931485
assert_eq!(received_nonce, base_nonce);
1494-
assert_eq!(peer_session_pk, session_pk);
14951486

14961487
// cookie should not be updated
14971488
let packet = unpack!(connection.status, ConnectionStatus::NotConfirmed, packet);
@@ -1534,7 +1525,6 @@ mod tests {
15341525
connection.status = ConnectionStatus::Established {
15351526
sent_nonce: gen_nonce(),
15361527
received_nonce: gen_nonce(),
1537-
peer_session_pk,
15381528
session_precomputed_key,
15391529
};
15401530

@@ -1816,10 +1806,7 @@ mod tests {
18161806
let connection = connections.get(&peer_real_pk).unwrap().read().clone();
18171807

18181808
let received_nonce = unpack!(connection.status, ConnectionStatus::NotConfirmed, received_nonce);
1819-
let peer_session_pk = unpack!(connection.status, ConnectionStatus::NotConfirmed, peer_session_pk);
1820-
18211809
assert_eq!(received_nonce, base_nonce);
1822-
assert_eq!(peer_session_pk, session_pk);
18231810

18241811
let packet = unpack!(connection.status, ConnectionStatus::NotConfirmed, packet);
18251812
let packet = unpack!(packet.dht_packet(), Packet::CryptoHandshake);
@@ -1882,10 +1869,7 @@ mod tests {
18821869
assert_eq!(connection.get_udp_addr_v4(), Some(addr));
18831870

18841871
let received_nonce = unpack!(connection.status, ConnectionStatus::NotConfirmed, received_nonce);
1885-
let peer_session_pk = unpack!(connection.status, ConnectionStatus::NotConfirmed, peer_session_pk);
1886-
18871872
assert_eq!(received_nonce, base_nonce);
1888-
assert_eq!(peer_session_pk, session_pk);
18891873

18901874
let packet = unpack!(connection.status, ConnectionStatus::NotConfirmed, packet);
18911875
let packet = unpack!(packet.dht_packet(), Packet::CryptoHandshake);
@@ -1976,7 +1960,6 @@ mod tests {
19761960
connection.status = ConnectionStatus::Established {
19771961
sent_nonce: gen_nonce(),
19781962
received_nonce,
1979-
peer_session_pk,
19801963
session_precomputed_key: session_precomputed_key.clone(),
19811964
};
19821965

@@ -2037,7 +2020,6 @@ mod tests {
20372020
connection.status = ConnectionStatus::Established {
20382021
sent_nonce: gen_nonce(),
20392022
received_nonce,
2040-
peer_session_pk,
20412023
session_precomputed_key: session_precomputed_key.clone(),
20422024
};
20432025

@@ -2115,7 +2097,6 @@ mod tests {
21152097
connection.status = ConnectionStatus::Established {
21162098
sent_nonce: gen_nonce(),
21172099
received_nonce,
2118-
peer_session_pk,
21192100
session_precomputed_key: session_precomputed_key.clone(),
21202101
};
21212102

@@ -2187,7 +2168,6 @@ mod tests {
21872168
connection.status = ConnectionStatus::Established {
21882169
sent_nonce: gen_nonce(),
21892170
received_nonce,
2190-
peer_session_pk,
21912171
session_precomputed_key: session_precomputed_key.clone(),
21922172
};
21932173

@@ -2243,7 +2223,6 @@ mod tests {
22432223
connection.status = ConnectionStatus::Established {
22442224
sent_nonce: gen_nonce(),
22452225
received_nonce,
2246-
peer_session_pk,
22472226
session_precomputed_key: session_precomputed_key.clone(),
22482227
};
22492228

@@ -2333,7 +2312,6 @@ mod tests {
23332312
connection.status = ConnectionStatus::Established {
23342313
sent_nonce: gen_nonce(),
23352314
received_nonce,
2336-
peer_session_pk,
23372315
session_precomputed_key: session_precomputed_key.clone(),
23382316
};
23392317

@@ -2392,7 +2370,6 @@ mod tests {
23922370
connection.status = ConnectionStatus::Established {
23932371
sent_nonce: gen_nonce(),
23942372
received_nonce,
2395-
peer_session_pk,
23962373
session_precomputed_key: session_precomputed_key.clone(),
23972374
};
23982375

@@ -2469,7 +2446,6 @@ mod tests {
24692446
connection.status = ConnectionStatus::Established {
24702447
sent_nonce: gen_nonce(),
24712448
received_nonce,
2472-
peer_session_pk,
24732449
session_precomputed_key: session_precomputed_key.clone(),
24742450
};
24752451

@@ -2539,7 +2515,6 @@ mod tests {
25392515
connection.status = ConnectionStatus::Established {
25402516
sent_nonce: gen_nonce(),
25412517
received_nonce,
2542-
peer_session_pk,
25432518
session_precomputed_key: session_precomputed_key.clone(),
25442519
};
25452520

@@ -2592,7 +2567,6 @@ mod tests {
25922567
connection.status = ConnectionStatus::Established {
25932568
sent_nonce: gen_nonce(),
25942569
received_nonce,
2595-
peer_session_pk,
25962570
session_precomputed_key: session_precomputed_key.clone(),
25972571
};
25982572

@@ -2648,7 +2622,6 @@ mod tests {
26482622
connection.status = ConnectionStatus::Established {
26492623
sent_nonce: gen_nonce(),
26502624
received_nonce,
2651-
peer_session_pk,
26522625
session_precomputed_key: session_precomputed_key.clone(),
26532626
};
26542627

@@ -2746,7 +2719,6 @@ mod tests {
27462719
connection.status = ConnectionStatus::Established {
27472720
sent_nonce: gen_nonce(),
27482721
received_nonce,
2749-
peer_session_pk,
27502722
session_precomputed_key: session_precomputed_key.clone(),
27512723
};
27522724

@@ -3128,7 +3100,6 @@ mod tests {
31283100
connection.status = ConnectionStatus::Established {
31293101
sent_nonce,
31303102
received_nonce,
3131-
peer_session_pk,
31323103
session_precomputed_key: session_precomputed_key.clone(),
31333104
};
31343105

@@ -3186,7 +3157,6 @@ mod tests {
31863157
connection.status = ConnectionStatus::Established {
31873158
sent_nonce,
31883159
received_nonce,
3189-
peer_session_pk,
31903160
session_precomputed_key: session_precomputed_key.clone(),
31913161
};
31923162

@@ -3253,7 +3223,6 @@ mod tests {
32533223
connection.status = ConnectionStatus::Established {
32543224
sent_nonce: gen_nonce(),
32553225
received_nonce,
3256-
peer_session_pk,
32573226
session_precomputed_key,
32583227
};
32593228

@@ -3303,7 +3272,6 @@ mod tests {
33033272
connection.status = ConnectionStatus::Established {
33043273
sent_nonce,
33053274
received_nonce,
3306-
peer_session_pk,
33073275
session_precomputed_key: session_precomputed_key.clone(),
33083276
};
33093277

@@ -3366,7 +3334,6 @@ mod tests {
33663334
connection.status = ConnectionStatus::Established {
33673335
sent_nonce,
33683336
received_nonce,
3369-
peer_session_pk,
33703337
session_precomputed_key: session_precomputed_key.clone(),
33713338
};
33723339

@@ -3439,7 +3406,6 @@ mod tests {
34393406
connection.status = ConnectionStatus::Established {
34403407
sent_nonce,
34413408
received_nonce,
3442-
peer_session_pk,
34433409
session_precomputed_key: session_precomputed_key.clone(),
34443410
};
34453411

@@ -3496,7 +3462,6 @@ mod tests {
34963462
connection.status = ConnectionStatus::Established {
34973463
sent_nonce,
34983464
received_nonce,
3499-
peer_session_pk,
35003465
session_precomputed_key,
35013466
};
35023467

@@ -3576,7 +3541,6 @@ mod tests {
35763541
connection.status = ConnectionStatus::Established {
35773542
sent_nonce,
35783543
received_nonce,
3579-
peer_session_pk,
35803544
session_precomputed_key: session_precomputed_key.clone(),
35813545
};
35823546

@@ -3884,7 +3848,6 @@ mod tests {
38843848
connection.status = ConnectionStatus::Established {
38853849
sent_nonce,
38863850
received_nonce,
3887-
peer_session_pk,
38883851
session_precomputed_key: session_precomputed_key.clone(),
38893852
};
38903853

0 commit comments

Comments
 (0)