diff --git a/Cargo.lock b/Cargo.lock index ba7dfe02dc..532a99e8c7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -558,6 +558,7 @@ 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)", "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)", "curve25519-dalek 1.2.3 (registry+https://github.com/rust-lang/crates.io-index)", "hkdf 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)", diff --git a/src/main.rs b/src/main.rs index c4ef9706d4..2e3e062e18 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,6 +1,6 @@ use tokio::net::TcpListener; use tokio::prelude::*; -use sphinx::SphinxPacket; +use sphinx::{SphinxPacket, ProcessedPacket}; #[tokio::main] async fn main() -> Result<(), Box> { @@ -14,7 +14,7 @@ async fn main() -> Result<(), Box> { let (mut inbound, _) = listener.accept().await?; tokio::spawn(async move { - let mut buf = [0; 1024]; + let mut buf = [0; 1024 + 333]; loop { let _ = match inbound.read(&mut buf).await { @@ -26,8 +26,11 @@ async fn main() -> Result<(), Box> { Ok(_) => { println!("Received a packet!"); let packet = SphinxPacket::from_bytes(buf.to_vec()).unwrap(); - let (unwrapped_packet, _) = packet.process(Default::default()); - let message = unwrapped_packet.payload.content; + let payload = match packet.process(Default::default()){ + ProcessedPacket::ProcessedPacketFinalHop(_,payload) => Some(payload) , + _ => None, + }.unwrap(); + let message = payload.get_content(); println!("Got message: {:?}", String::from_utf8(message).unwrap()); } Err(e) => {