SenderKeyMessage.fromSerialized constructor
SenderKeyMessage.fromSerialized(
- Uint8List serialized
Implementation
SenderKeyMessage.fromSerialized(Uint8List serialized) {
final messageParts = ByteUtil.split(serialized, 1,
serialized.length - 1 - signatureLength, signatureLength);
final version = messageParts[0][0];
final message = messageParts[1];
// ignore: unused_local_variable
final signature = messageParts[2];
if (ByteUtil.highBitsToInt(version) < 3) {
throw LegacyMessageException(
'Legacy message: ${ByteUtil.highBitsToInt(version)}');
}
if (ByteUtil.highBitsToInt(version) > CiphertextMessage.currentVersion) {
throw InvalidMessageException(
'Unknown version: ${ByteUtil.highBitsToInt(version)}');
}
final senderKeyMessage = protocol.SenderKeyMessage.fromBuffer(message);
if (!senderKeyMessage.hasId() ||
!senderKeyMessage.hasIteration() ||
!senderKeyMessage.hasCiphertext()) {
throw InvalidMessageException('Incomplete message.');
}
_serialized = serialized;
_messageVersion = ByteUtil.highBitsToInt(version);
_keyId = senderKeyMessage.id;
_iteration = senderKeyMessage.iteration;
_ciphertext = Uint8List.fromList(senderKeyMessage.ciphertext);
}