mirror of
https://github.com/twonlyapp/twonly-app.git
synced 2026-04-19 06:42:53 +00:00
32 lines
1.1 KiB
Dart
32 lines
1.1 KiB
Dart
import 'package:drift/drift.dart';
|
|
import 'package:libsignal_protocol_dart/libsignal_protocol_dart.dart';
|
|
import 'package:twonly/globals.dart';
|
|
import 'package:twonly/src/database/twonly.db.dart';
|
|
|
|
class ConnectSenderKeyStore extends SenderKeyStore {
|
|
@override
|
|
Future<SenderKeyRecord> loadSenderKey(SenderKeyName senderKeyName) async {
|
|
final identity = await (twonlyDB.select(twonlyDB.signalSenderKeyStores)
|
|
..where((t) => t.senderKeyName.equals(senderKeyName.serialize())))
|
|
.getSingleOrNull();
|
|
if (identity == null) {
|
|
throw InvalidKeyIdException(
|
|
'No such sender key record! - $senderKeyName',
|
|
);
|
|
}
|
|
return SenderKeyRecord.fromSerialized(identity.senderKey);
|
|
}
|
|
|
|
@override
|
|
Future<void> storeSenderKey(
|
|
SenderKeyName senderKeyName,
|
|
SenderKeyRecord record,
|
|
) async {
|
|
await twonlyDB.into(twonlyDB.signalSenderKeyStores).insert(
|
|
SignalSenderKeyStoresCompanion(
|
|
senderKey: Value(record.serialize()),
|
|
senderKeyName: Value(senderKeyName.serialize()),
|
|
),
|
|
);
|
|
}
|
|
}
|