fix: Migrate to custom protobuf
This commit is contained in:
@@ -3,7 +3,7 @@ import 'package:omemo_dart/src/protobuf/protobuf.dart';
|
||||
|
||||
class OmemoAuthenticatedMessage {
|
||||
|
||||
const OmemoAuthenticatedMessage(this.mac, this.message);
|
||||
OmemoAuthenticatedMessage();
|
||||
|
||||
factory OmemoAuthenticatedMessage.fromBuffer(List<int> data) {
|
||||
var i = 0;
|
||||
@@ -20,18 +20,20 @@ class OmemoAuthenticatedMessage {
|
||||
}
|
||||
final message = data.sublist(i + 2, i + 2 + data[i + 1]);
|
||||
|
||||
return OmemoAuthenticatedMessage(mac, message);
|
||||
return OmemoAuthenticatedMessage()
|
||||
..mac = mac
|
||||
..message = message;
|
||||
}
|
||||
|
||||
final List<int> mac;
|
||||
final List<int> message;
|
||||
List<int>? mac;
|
||||
List<int>? message;
|
||||
|
||||
List<int> writeToBuffer() {
|
||||
return concat([
|
||||
[fieldId(1, fieldTypeByteArray), mac.length],
|
||||
mac,
|
||||
[fieldId(2, fieldTypeByteArray), message.length],
|
||||
message,
|
||||
[fieldId(1, fieldTypeByteArray), mac!.length],
|
||||
mac!,
|
||||
[fieldId(2, fieldTypeByteArray), message!.length],
|
||||
message!,
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@ import 'package:omemo_dart/src/protobuf/protobuf.dart';
|
||||
|
||||
class OmemoKeyExchange {
|
||||
|
||||
const OmemoKeyExchange(this.pkId, this.spkId, this.ik, this.ek, this.message);
|
||||
OmemoKeyExchange();
|
||||
|
||||
factory OmemoKeyExchange.fromBuffer(List<int> data) {
|
||||
var i = 0;
|
||||
@@ -40,26 +40,31 @@ class OmemoKeyExchange {
|
||||
}
|
||||
final message = OmemoAuthenticatedMessage.fromBuffer(data.sublist(i + 2));
|
||||
|
||||
return OmemoKeyExchange(pkId, spkId, ik, ek, message);
|
||||
return OmemoKeyExchange()
|
||||
..pkId = pkId
|
||||
..spkId = spkId
|
||||
..ik = ik
|
||||
..ek = ek
|
||||
..message = message;
|
||||
}
|
||||
|
||||
final int pkId;
|
||||
final int spkId;
|
||||
final List<int> ik;
|
||||
final List<int> ek;
|
||||
final OmemoAuthenticatedMessage message;
|
||||
int? pkId;
|
||||
int? spkId;
|
||||
List<int>? ik;
|
||||
List<int>? ek;
|
||||
OmemoAuthenticatedMessage? message;
|
||||
|
||||
List<int> writeToBuffer() {
|
||||
final msg = message.writeToBuffer();
|
||||
final msg = message!.writeToBuffer();
|
||||
return concat([
|
||||
[fieldId(1, fieldTypeUint32)],
|
||||
encodeVarint(pkId),
|
||||
encodeVarint(pkId!),
|
||||
[fieldId(2, fieldTypeUint32)],
|
||||
encodeVarint(spkId),
|
||||
[fieldId(3, fieldTypeByteArray), ik.length],
|
||||
ik,
|
||||
[fieldId(4, fieldTypeByteArray), ek.length],
|
||||
ek,
|
||||
encodeVarint(spkId!),
|
||||
[fieldId(3, fieldTypeByteArray), ik!.length],
|
||||
ik!,
|
||||
[fieldId(4, fieldTypeByteArray), ek!.length],
|
||||
ek!,
|
||||
[fieldId(5, fieldTypeByteArray), msg.length],
|
||||
msg,
|
||||
]);
|
||||
|
||||
@@ -3,7 +3,7 @@ import 'package:omemo_dart/src/protobuf/protobuf.dart';
|
||||
|
||||
class OmemoMessage {
|
||||
|
||||
const OmemoMessage(this.n, this.pn, this.dhPub, this.ciphertext);
|
||||
OmemoMessage();
|
||||
|
||||
factory OmemoMessage.fromBuffer(List<int> data) {
|
||||
var i = 0;
|
||||
@@ -41,28 +41,32 @@ class OmemoMessage {
|
||||
ciphertext = data.sublist(i + 2, i + 2 + data[i + 1]);
|
||||
}
|
||||
|
||||
return OmemoMessage(n, pn, dhPub, ciphertext);
|
||||
return OmemoMessage()
|
||||
..n = n
|
||||
..pn = pn
|
||||
..dhPub = dhPub
|
||||
..ciphertext = ciphertext;
|
||||
}
|
||||
|
||||
final int n;
|
||||
final int pn;
|
||||
final List<int> dhPub;
|
||||
final List<int>? ciphertext;
|
||||
int? n;
|
||||
int? pn;
|
||||
List<int>? dhPub;
|
||||
List<int>? ciphertext;
|
||||
|
||||
List<int> writeToBuffer() {
|
||||
final data = concat([
|
||||
[8],
|
||||
encodeVarint(n),
|
||||
[16],
|
||||
encodeVarint(pn),
|
||||
[((3 << 3) | 2), dhPub.length],
|
||||
dhPub,
|
||||
[fieldId(1, fieldTypeUint32)],
|
||||
encodeVarint(n!),
|
||||
[fieldId(2, fieldTypeUint32)],
|
||||
encodeVarint(pn!),
|
||||
[fieldId(3, fieldTypeByteArray), dhPub!.length],
|
||||
dhPub!,
|
||||
]);
|
||||
|
||||
if (ciphertext != null) {
|
||||
return concat([
|
||||
data,
|
||||
[((4 << 3) | 2), ciphertext!.length],
|
||||
[fieldId(4, fieldTypeByteArray), ciphertext!.length],
|
||||
ciphertext!,
|
||||
]);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user