summaryrefslogtreecommitdiffstats
path: root/src/handshake/noise.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/handshake/noise.rs')
-rw-r--r--src/handshake/noise.rs42
1 files changed, 17 insertions, 25 deletions
diff --git a/src/handshake/noise.rs b/src/handshake/noise.rs
index 72e0f47..b0d492c 100644
--- a/src/handshake/noise.rs
+++ b/src/handshake/noise.rs
@@ -15,8 +15,6 @@ use rand::rngs::OsRng;
use generic_array::typenum::*;
use generic_array::GenericArray;
-use zerocopy::AsBytes;
-
use super::device::Device;
use super::messages::{NoiseInitiation, NoiseResponse};
use super::peer::{Peer, State};
@@ -140,9 +138,9 @@ pub fn create_initiation<T: Copy>(
device: &Device<T>,
peer: &Peer<T>,
sender: u32,
-) -> Result<Vec<u8>, HandshakeError> {
+ msg: &mut NoiseInitiation,
+) -> Result<(), HandshakeError> {
let mut rng = OsRng::new().unwrap();
- let mut msg: NoiseInitiation = Default::default();
// initialize state
@@ -214,9 +212,7 @@ pub fn create_initiation<T: Copy>(
sender,
});
- // return message as vector
-
- Ok(msg.as_bytes().to_vec())
+ Ok(())
}
pub fn consume_initiation<'a, T: Copy>(
@@ -294,7 +290,7 @@ pub fn create_response<T: Copy>(
sender: u32, // sending identifier
state: TemporaryState, // state from "consume_initiation"
msg: &mut NoiseResponse, // resulting response
-) -> Result<Output<T>, HandshakeError> {
+) -> Result<KeyPair, HandshakeError> {
let mut rng = OsRng::new().unwrap();
let (receiver, eph_r_pk, hs, ck) = state;
@@ -354,23 +350,19 @@ pub fn create_response<T: Copy>(
let (key_recv, key_send) = KDF2!(&ck, &[]);
- // return response and unconfirmed key-pair
-
- Ok((
- peer.identifier,
- Some(msg.as_bytes().to_vec()),
- Some(KeyPair {
- confirmed: false,
- send: Key {
- id: sender,
- key: key_send.into(),
- },
- recv: Key {
- id: receiver,
- key: key_recv.into(),
- },
- }),
- ))
+ // return unconfirmed key-pair
+
+ Ok(KeyPair {
+ confirmed: false,
+ send: Key {
+ id: sender,
+ key: key_send.into(),
+ },
+ recv: Key {
+ id: receiver,
+ key: key_recv.into(),
+ },
+ })
}
pub fn consume_response<T: Copy>(