mirror of
https://github.com/twonlyapp/twonly-app.git
synced 2026-01-15 23:28:39 +00:00
30 lines
1.1 KiB
Dart
30 lines
1.1 KiB
Dart
import 'package:drift/drift.dart';
|
|
import 'package:twonly/globals.dart';
|
|
import 'package:twonly/src/database/twonly_database.dart';
|
|
import 'package:libsignal_protocol_dart/libsignal_protocol_dart.dart';
|
|
|
|
class ConnectSenderKeyStore extends SenderKeyStore {
|
|
@override
|
|
Future<SenderKeyRecord> loadSenderKey(SenderKeyName senderKeyName) async {
|
|
SignalSenderKeyStore? 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()),
|
|
),
|
|
);
|
|
}
|
|
}
|