first commit

This commit is contained in:
2025-03-03 20:59:42 +03:00
commit 273e68557a
1099 changed files with 17880 additions and 0 deletions

View File

@@ -0,0 +1,52 @@
// Dart imports:
import 'dart:convert';
import 'dart:typed_data';
import 'package:hive_ce/hive.dart';
import 'package:remever/common/storage.dart';
import 'core_service.dart';
///
/// Сервис для работы с ключами шифрования
///
class EncKeysService extends CoreService {
///
/// Получение ключа для шифрования
///
Future<String> getRawKey(String keyFor) async {
String? encKey = await hiveKeysStorage.read(key: keyFor);
if (encKey == null) {
final List<int> hiveKey = Hive.generateSecureKey();
encKey = base64UrlEncode(hiveKey);
await hiveKeysStorage.write(key: keyFor, value: encKey);
}
return encKey;
}
///
/// Получение ключа шифрования
///
/// Если ключа ранее не существовало - он будет создан
///
Future<Uint8List> getKey(String keyFor) async {
String? encKey = await getRawKey(keyFor);
return base64Url.decode(encKey);
}
///
/// Получение ключа шифрования в виде строки
///
/// Если ключа ранее не существовало - он будет создан
///
Future<String> getStringKey(String keyFor) async {
final Uint8List key = await getKey(keyFor);
return String.fromCharCodes(key);
}
}