Checking of mac2 fields on initiation & response

In addition, moved the rng out.
This will allow allocating one instance per worker,
rather than every call.
This commit is contained in:
Mathias Hall-Andersen
2019-08-05 21:37:31 +02:00
parent baebac5bec
commit abc8cacf44
5 changed files with 119 additions and 76 deletions

View File

@@ -43,7 +43,6 @@ pub enum HandshakeError {
OldTimestamp,
InvalidState,
InvalidMac1,
InvalidMac2
}
impl fmt::Display for HandshakeError {
@@ -58,7 +57,6 @@ impl fmt::Display for HandshakeError {
HandshakeError::OldTimestamp => write!(f, "Timestamp is less/equal to the newest"),
HandshakeError::InvalidState => write!(f, "Message does not apply to handshake state"),
HandshakeError::InvalidMac1 => write!(f, "Message has invalid mac1 field"),
HandshakeError::InvalidMac2 => write!(f, "Message has invalid mac2 field"),
}
}
}
@@ -74,8 +72,7 @@ impl Error for HandshakeError {
}
pub type Output<T> = (
T, // external identifier associated with peer
// (e.g. a reference or vector index)
Option<T>, // external identifier associated with peer
Option<Vec<u8>>, // message to send
Option<KeyPair>, // resulting key-pair of successful handshake
);