0
0
mirror of https://github.com/signalapp/libsignal.git synced 2024-09-20 03:52:17 +02:00

protocol: Test version bytes the same way as libsignal-protocol-java

This slipped in the original translation to Rust, but it doesn't
matter in practice because both nibbles of the version byte have had
the same value for a long time.
This commit is contained in:
Jordan Rose 2021-03-31 14:39:11 -07:00
parent 745a16aeab
commit 35810dc80b
2 changed files with 13 additions and 16 deletions

View File

@ -521,7 +521,7 @@ describe('SignalClient', () => {
assert.deepEqual(skr, skrFromBytes);
});
it('SignalMessage and PreKeySignalMessage', () => {
const messageVersion = 2;
const messageVersion = 3;
const macKey = Buffer.alloc(32, 0xab);
const senderRatchetKey = SignalClient.PrivateKey.generate().getPublicKey();
const counter = 9;

View File

@ -193,15 +193,14 @@ impl TryFrom<&[u8]> for SignalMessage {
return Err(SignalProtocolError::CiphertextMessageTooShort(value.len()));
}
let message_version = value[0] >> 4;
let ciphertext_version = value[0] & 0x0F;
if ciphertext_version < CIPHERTEXT_MESSAGE_CURRENT_VERSION {
if message_version < CIPHERTEXT_MESSAGE_CURRENT_VERSION {
return Err(SignalProtocolError::LegacyCiphertextVersion(
ciphertext_version,
message_version,
));
}
if ciphertext_version > CIPHERTEXT_MESSAGE_CURRENT_VERSION {
if message_version > CIPHERTEXT_MESSAGE_CURRENT_VERSION {
return Err(SignalProtocolError::UnrecognizedCiphertextVersion(
ciphertext_version,
message_version,
));
}
@ -333,15 +332,14 @@ impl TryFrom<&[u8]> for PreKeySignalMessage {
}
let message_version = value[0] >> 4;
let ciphertext_version = value[0] & 0x0F;
if ciphertext_version < CIPHERTEXT_MESSAGE_CURRENT_VERSION {
if message_version < CIPHERTEXT_MESSAGE_CURRENT_VERSION {
return Err(SignalProtocolError::LegacyCiphertextVersion(
ciphertext_version,
message_version,
));
}
if ciphertext_version > CIPHERTEXT_MESSAGE_CURRENT_VERSION {
if message_version > CIPHERTEXT_MESSAGE_CURRENT_VERSION {
return Err(SignalProtocolError::UnrecognizedCiphertextVersion(
ciphertext_version,
message_version,
));
}
@ -474,15 +472,14 @@ impl TryFrom<&[u8]> for SenderKeyMessage {
return Err(SignalProtocolError::CiphertextMessageTooShort(value.len()));
}
let message_version = value[0] >> 4;
let ciphertext_version = value[0] & 0x0F;
if ciphertext_version < CIPHERTEXT_MESSAGE_CURRENT_VERSION {
if message_version < CIPHERTEXT_MESSAGE_CURRENT_VERSION {
return Err(SignalProtocolError::LegacyCiphertextVersion(
ciphertext_version,
message_version,
));
}
if ciphertext_version > CIPHERTEXT_MESSAGE_CURRENT_VERSION {
if message_version > CIPHERTEXT_MESSAGE_CURRENT_VERSION {
return Err(SignalProtocolError::UnrecognizedCiphertextVersion(
ciphertext_version,
message_version,
));
}
let proto_structure =