From 7068dc7089b3bc5e7bf0239b16879d31e0f0d44f Mon Sep 17 00:00:00 2001 From: Jedrzej Stuczynski Date: Fri, 10 Jan 2020 10:05:01 +0000 Subject: [PATCH] Fixed compilation errors due to changes in sphinx crate --- Cargo.lock | 1 + clients/nym-client/src/utils/sphinx.rs | 8 +++++--- common/topology/src/lib.rs | 4 ++-- mixnode/src/mix_peer.rs | 5 +++-- 4 files changed, 11 insertions(+), 7 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index f5919935f7..b42f0b3d55 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1798,6 +1798,7 @@ version = "0.1.0" dependencies = [ "aes-ctr 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", "arrayref 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", + "base64 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", "blake2 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)", "chacha 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", diff --git a/clients/nym-client/src/utils/sphinx.rs b/clients/nym-client/src/utils/sphinx.rs index e329e81ba5..329a387d6b 100644 --- a/clients/nym-client/src/utils/sphinx.rs +++ b/clients/nym-client/src/utils/sphinx.rs @@ -1,7 +1,7 @@ use crate::utils::bytes; use addressing; use curve25519_dalek::montgomery::MontgomeryPoint; -use sphinx::route::{Destination, DestinationAddressBytes, Node, SURBIdentifier}; +use sphinx::route::{Destination, DestinationAddressBytes, Node, NodeAddressBytes, SURBIdentifier}; use sphinx::SphinxPacket; use std::net::SocketAddr; use topology::NymTopology; @@ -32,7 +32,9 @@ pub fn encapsulate_message( let key = MontgomeryPoint(key_bytes); let provider = Node::new( - addressing::encoded_bytes_from_socket_address(first_provider.mixnet_listener.clone()), + NodeAddressBytes::from_bytes(addressing::encoded_bytes_from_socket_address( + first_provider.mixnet_listener.clone(), + )), key, ); @@ -46,7 +48,7 @@ pub fn encapsulate_message( let packet = sphinx::SphinxPacket::new(message, &route[..], &recipient, &delays).unwrap(); let first_node_address = - addressing::socket_address_from_encoded_bytes(route.first().unwrap().address); + addressing::socket_address_from_encoded_bytes(route.first().unwrap().address.to_bytes()); (first_node_address, packet) } diff --git a/common/topology/src/lib.rs b/common/topology/src/lib.rs index 4d87a001ea..d356924cfc 100644 --- a/common/topology/src/lib.rs +++ b/common/topology/src/lib.rs @@ -1,7 +1,7 @@ use addressing; use curve25519_dalek::montgomery::MontgomeryPoint; use rand::seq::SliceRandom; -use sphinx::route::Node as SphinxNode; +use sphinx::route::{Node as SphinxNode, NodeAddressBytes}; use std::collections::HashMap; use std::net::SocketAddr; @@ -66,7 +66,7 @@ pub trait NymTopology { key_bytes.copy_from_slice(&decoded_key_bytes[..]); let key = MontgomeryPoint(key_bytes); SphinxNode { - address: address_bytes, + address: NodeAddressBytes::from_bytes(address_bytes), pub_key: key, } }) diff --git a/mixnode/src/mix_peer.rs b/mixnode/src/mix_peer.rs index d5a44bb29b..1ddb0a3481 100644 --- a/mixnode/src/mix_peer.rs +++ b/mixnode/src/mix_peer.rs @@ -1,4 +1,5 @@ use addressing; +use sphinx::route::NodeAddressBytes; use std::error::Error; use std::net::SocketAddr; use tokio::prelude::*; @@ -10,9 +11,9 @@ pub struct MixPeer { impl MixPeer { // note that very soon `next_hop_address` will be changed to `next_hop_metadata` - pub fn new(next_hop_address: [u8; 32]) -> MixPeer { + pub fn new(next_hop_address: NodeAddressBytes) -> MixPeer { let next_hop_socket_address = - addressing::socket_address_from_encoded_bytes(next_hop_address); + addressing::socket_address_from_encoded_bytes(next_hop_address.to_bytes()); MixPeer { connection: next_hop_socket_address, }