From 68021b8a7f525bb2833104233113643f4a196336 Mon Sep 17 00:00:00 2001 From: Adam Ierymenko Date: Mon, 14 Nov 2022 11:51:55 -0500 Subject: [PATCH] cleanup --- controller/src/cache.rs | 18 ++++++------------ crypto/ZSSP.md | 6 ++++++ network-hypervisor/src/vl1/node.rs | 2 +- 3 files changed, 13 insertions(+), 13 deletions(-) create mode 100644 crypto/ZSSP.md diff --git a/controller/src/cache.rs b/controller/src/cache.rs index 0a6e5e41e..add498626 100644 --- a/controller/src/cache.rs +++ b/controller/src/cache.rs @@ -84,22 +84,16 @@ impl Cache { /// Delete a network, returning it if it existed. pub fn on_network_deleted(&self, network_id: NetworkId) -> Option<(Network, Vec)> { let mut by_nwid = self.by_nwid.write().unwrap(); - if let Some(network) = by_nwid.remove(&network_id) { - let mut members = network.1.lock().unwrap(); - Some((network.0, members.drain().map(|(_, v)| v).collect())) - } else { - None - } + let network = by_nwid.remove(&network_id)?; + let mut members = network.1.lock().unwrap(); + Some((network.0, members.drain().map(|(_, v)| v).collect())) } /// Delete a member, returning it if it existed. pub fn on_member_deleted(&self, network_id: NetworkId, node_id: Address) -> Option { let by_nwid = self.by_nwid.read().unwrap(); - if let Some(network) = by_nwid.get(&network_id) { - let mut members = network.1.lock().unwrap(); - members.remove(&node_id) - } else { - None - } + let network = by_nwid.get(&network_id)?; + let mut members = network.1.lock().unwrap(); + members.remove(&node_id) } } diff --git a/crypto/ZSSP.md b/crypto/ZSSP.md new file mode 100644 index 000000000..01ddd6e56 --- /dev/null +++ b/crypto/ZSSP.md @@ -0,0 +1,6 @@ +ZeroTier Secure Socket Protocol +====== + +ZSSP (ZeroTier Secure Socket Protocol) is an implementation of the Noise_IK pattern using FIPS/NIST compliant primitives. After Noise_IK negotiation is complete ZSSP also adds key ratcheting and optional (enabled by default) support for quantum data forward secrecy with Kyber1024. + +It's general purpose and could be used with any system but contains a few specific design choices to make it optimal for ZeroTier and easy to distinguish from legacy ZeroTier V1 traffic for backward compatibility. diff --git a/network-hypervisor/src/vl1/node.rs b/network-hypervisor/src/vl1/node.rs index 422c5c6ae..e4a7227bd 100644 --- a/network-hypervisor/src/vl1/node.rs +++ b/network-hypervisor/src/vl1/node.rs @@ -66,7 +66,7 @@ pub trait HostSystem: VL1AuthProvider + NodeStorage + 'static { /// Type for local system sockets. type LocalSocket: Sync + Send + Hash + PartialEq + Eq + Clone + ToString + Sized + 'static; - /// Type for local system interfaces. + /// Type for local system interfaces. type LocalInterface: Sync + Send + Hash + PartialEq + Eq + Clone + ToString + Sized + 'static; /// A VL1 level event occurred.