From 3072d56417cbbdbd378eacbd8765204c811b8b4f Mon Sep 17 00:00:00 2001 From: Jedrzej Stuczynski Date: Thu, 9 Jan 2020 15:01:41 +0000 Subject: [PATCH] Into SphinxNode trait for ProviderNode --- common/topology/src/lib.rs | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/common/topology/src/lib.rs b/common/topology/src/lib.rs index ae46d18d54..b8bf9d6e4d 100644 --- a/common/topology/src/lib.rs +++ b/common/topology/src/lib.rs @@ -42,6 +42,18 @@ pub struct MixProviderNode { pub version: String, } +impl Into for MixProviderNode { + fn into(self) -> SphinxNode { + let address_bytes = addressing::encoded_bytes_from_socket_address(self.mixnet_listener); + let decoded_key_bytes = base64::decode_config(&self.pub_key, base64::URL_SAFE).unwrap(); + let mut key_bytes = [0; 32]; + key_bytes.copy_from_slice(&decoded_key_bytes[..]); + let key = MontgomeryPoint(key_bytes); + + SphinxNode::new(address_bytes, key) + } +} + #[derive(Debug)] pub struct CocoNode { pub host: String,