Update handshake deserialize to error on wrong messages

This commit is contained in:
Igor Katson 2024-03-09 19:56:34 +00:00
parent 5a12095959
commit 8b4f3afa42
No known key found for this signature in database
GPG key ID: B4EC22B66D61A3F5

View file

@ -524,6 +524,13 @@ impl Handshake<ByteBuf<'static>> {
let pstr_len = *b
.first()
.ok_or(MessageDeserializeError::NotEnoughData(1, "handshake"))?;
if pstr_len as usize != PSTR_BT1.len() {
return Err(MessageDeserializeError::Other(anyhow::anyhow!(
"pstr should be {} bytes long, but received {}",
PSTR_BT1.len(),
pstr_len
)));
}
let expected_len = 1usize + pstr_len as usize + 48;
let hbuf = b
.get(..expected_len)