2023-07-16 21:41:40 -04:00
|
|
|
import 'dart:typed_data';
|
|
|
|
|
2023-08-01 00:39:50 -04:00
|
|
|
import '../veilid_support/veilid_support.dart';
|
2023-07-16 21:41:40 -04:00
|
|
|
|
|
|
|
import 'proto/veilidchat.pb.dart' as proto;
|
|
|
|
|
2023-07-26 14:20:29 -04:00
|
|
|
export 'proto/veilidchat.pb.dart';
|
|
|
|
|
2023-07-16 21:41:40 -04:00
|
|
|
/// CryptoKey protobuf marshaling
|
|
|
|
///
|
|
|
|
extension CryptoKeyProto on CryptoKey {
|
|
|
|
proto.CryptoKey toProto() {
|
2023-08-03 00:49:48 -04:00
|
|
|
final b = decode().buffer.asByteData();
|
2023-07-26 17:42:11 -04:00
|
|
|
final out = proto.CryptoKey()
|
2023-08-03 00:49:48 -04:00
|
|
|
..u0 = b.getUint32(0 * 4)
|
|
|
|
..u1 = b.getUint32(1 * 4)
|
|
|
|
..u2 = b.getUint32(2 * 4)
|
|
|
|
..u3 = b.getUint32(3 * 4)
|
|
|
|
..u4 = b.getUint32(4 * 4)
|
|
|
|
..u5 = b.getUint32(5 * 4)
|
|
|
|
..u6 = b.getUint32(6 * 4)
|
|
|
|
..u7 = b.getUint32(7 * 4);
|
2023-07-16 21:41:40 -04:00
|
|
|
return out;
|
|
|
|
}
|
|
|
|
|
|
|
|
static CryptoKey fromProto(proto.CryptoKey p) {
|
2023-08-03 00:49:48 -04:00
|
|
|
final b = ByteData(32)
|
|
|
|
..setUint32(0 * 4, p.u0)
|
|
|
|
..setUint32(1 * 4, p.u1)
|
|
|
|
..setUint32(2 * 4, p.u2)
|
|
|
|
..setUint32(3 * 4, p.u3)
|
|
|
|
..setUint32(4 * 4, p.u4)
|
|
|
|
..setUint32(5 * 4, p.u5)
|
|
|
|
..setUint32(6 * 4, p.u6)
|
|
|
|
..setUint32(7 * 4, p.u7);
|
|
|
|
return CryptoKey.fromBytes(Uint8List.view(b.buffer));
|
2023-07-16 21:41:40 -04:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/// Signature protobuf marshaling
|
|
|
|
///
|
|
|
|
extension SignatureProto on Signature {
|
|
|
|
proto.Signature toProto() {
|
2023-08-03 00:49:48 -04:00
|
|
|
final b = decode().buffer.asByteData();
|
2023-07-26 17:42:11 -04:00
|
|
|
final out = proto.Signature()
|
2023-08-03 00:49:48 -04:00
|
|
|
..u0 = b.getUint32(0 * 4)
|
|
|
|
..u1 = b.getUint32(1 * 4)
|
|
|
|
..u2 = b.getUint32(2 * 4)
|
|
|
|
..u3 = b.getUint32(3 * 4)
|
|
|
|
..u4 = b.getUint32(4 * 4)
|
|
|
|
..u5 = b.getUint32(5 * 4)
|
|
|
|
..u6 = b.getUint32(6 * 4)
|
|
|
|
..u7 = b.getUint32(7 * 4)
|
|
|
|
..u8 = b.getUint32(8 * 4)
|
|
|
|
..u9 = b.getUint32(9 * 4)
|
|
|
|
..u10 = b.getUint32(10 * 4)
|
|
|
|
..u11 = b.getUint32(11 * 4)
|
|
|
|
..u12 = b.getUint32(12 * 4)
|
|
|
|
..u13 = b.getUint32(13 * 4)
|
|
|
|
..u14 = b.getUint32(14 * 4)
|
|
|
|
..u15 = b.getUint32(15 * 4);
|
2023-07-16 21:41:40 -04:00
|
|
|
return out;
|
|
|
|
}
|
|
|
|
|
|
|
|
static Signature fromProto(proto.Signature p) {
|
2023-08-03 00:49:48 -04:00
|
|
|
final b = ByteData(64)
|
|
|
|
..setUint32(0 * 4, p.u0)
|
|
|
|
..setUint32(1 * 4, p.u1)
|
|
|
|
..setUint32(2 * 4, p.u2)
|
|
|
|
..setUint32(3 * 4, p.u3)
|
|
|
|
..setUint32(4 * 4, p.u4)
|
|
|
|
..setUint32(5 * 4, p.u5)
|
|
|
|
..setUint32(6 * 4, p.u6)
|
|
|
|
..setUint32(7 * 4, p.u7)
|
|
|
|
..setUint32(8 * 4, p.u8)
|
|
|
|
..setUint32(9 * 4, p.u9)
|
|
|
|
..setUint32(10 * 4, p.u10)
|
|
|
|
..setUint32(11 * 4, p.u11)
|
|
|
|
..setUint32(12 * 4, p.u12)
|
|
|
|
..setUint32(13 * 4, p.u13)
|
|
|
|
..setUint32(14 * 4, p.u14)
|
|
|
|
..setUint32(15 * 4, p.u15);
|
|
|
|
return Signature.fromBytes(Uint8List.view(b.buffer));
|
2023-07-16 21:41:40 -04:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/// Nonce protobuf marshaling
|
|
|
|
///
|
|
|
|
extension NonceProto on Nonce {
|
2023-08-03 00:49:48 -04:00
|
|
|
proto.Nonce toProto() {
|
|
|
|
final b = decode().buffer.asByteData();
|
|
|
|
final out = proto.Nonce()
|
|
|
|
..u0 = b.getUint32(0 * 4)
|
|
|
|
..u1 = b.getUint32(1 * 4)
|
|
|
|
..u2 = b.getUint32(2 * 4)
|
|
|
|
..u3 = b.getUint32(3 * 4)
|
|
|
|
..u4 = b.getUint32(4 * 4)
|
|
|
|
..u5 = b.getUint32(5 * 4);
|
2023-07-16 21:41:40 -04:00
|
|
|
return out;
|
|
|
|
}
|
|
|
|
|
|
|
|
static Nonce fromProto(proto.Nonce p) {
|
2023-08-03 00:49:48 -04:00
|
|
|
final b = ByteData(24)
|
|
|
|
..setUint32(0 * 4, p.u0)
|
|
|
|
..setUint32(1 * 4, p.u1)
|
|
|
|
..setUint32(2 * 4, p.u2)
|
|
|
|
..setUint32(3 * 4, p.u3)
|
|
|
|
..setUint32(4 * 4, p.u4)
|
|
|
|
..setUint32(5 * 4, p.u5);
|
|
|
|
return Nonce.fromBytes(Uint8List.view(b.buffer));
|
2023-07-16 21:41:40 -04:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/// TypedKey protobuf marshaling
|
|
|
|
///
|
|
|
|
extension TypedKeyProto on TypedKey {
|
|
|
|
proto.TypedKey toProto() {
|
2023-07-26 17:42:11 -04:00
|
|
|
final out = proto.TypedKey()
|
|
|
|
..kind = kind
|
|
|
|
..value = value.toProto();
|
2023-07-16 21:41:40 -04:00
|
|
|
return out;
|
|
|
|
}
|
|
|
|
|
2023-07-26 17:42:11 -04:00
|
|
|
static TypedKey fromProto(proto.TypedKey p) =>
|
|
|
|
TypedKey(kind: p.kind, value: CryptoKeyProto.fromProto(p.value));
|
2023-07-16 21:41:40 -04:00
|
|
|
}
|
2023-08-01 00:39:50 -04:00
|
|
|
|
|
|
|
/// KeyPair protobuf marshaling
|
|
|
|
///
|
|
|
|
extension KeyPairProto on KeyPair {
|
|
|
|
proto.KeyPair toProto() {
|
|
|
|
final out = proto.KeyPair()
|
|
|
|
..key = key.toProto()
|
|
|
|
..secret = secret.toProto();
|
|
|
|
return out;
|
|
|
|
}
|
|
|
|
|
|
|
|
static KeyPair fromProto(proto.KeyPair p) => KeyPair(
|
|
|
|
key: CryptoKeyProto.fromProto(p.key),
|
|
|
|
secret: CryptoKeyProto.fromProto(p.secret));
|
|
|
|
}
|
|
|
|
|
|
|
|
/// OwnedDHTRecordPointer protobuf marshaling
|
|
|
|
///
|
|
|
|
extension OwnedDHTRecordPointerProto on OwnedDHTRecordPointer {
|
|
|
|
proto.OwnedDHTRecordPointer toProto() {
|
|
|
|
final out = proto.OwnedDHTRecordPointer()
|
|
|
|
..recordKey = recordKey.toProto()
|
|
|
|
..owner = owner.toProto();
|
|
|
|
return out;
|
|
|
|
}
|
|
|
|
|
|
|
|
static OwnedDHTRecordPointer fromProto(proto.OwnedDHTRecordPointer p) =>
|
|
|
|
OwnedDHTRecordPointer(
|
|
|
|
recordKey: TypedKeyProto.fromProto(p.recordKey),
|
|
|
|
owner: KeyPairProto.fromProto(p.owner));
|
|
|
|
}
|