Files
IKAR/lib/core/plugins/plugin_outgoing_text.dart
T

31 lines
814 B
Dart

class PluginOutgoingText {
const PluginOutgoingText({required this.plaintext, required this.wireText});
final String plaintext;
final String wireText;
bool get encrypted => plaintext != wireText;
}
class PluginOutgoingTextException implements Exception {
const PluginOutgoingTextException(this.message);
final String message;
@override
String toString() => message;
}
Future<PluginOutgoingText> preparePluginOutgoingText(
String plaintext,
Future<String?> Function(String plaintext) encrypt,
) async {
final wireText = await encrypt(plaintext);
if (wireText == null) {
throw const PluginOutgoingTextException(
'Не удалось зашифровать сообщение плагина',
);
}
return PluginOutgoingText(plaintext: plaintext, wireText: wireText);
}