// 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 getRawKey(String keyFor) async { String? encKey = await hiveKeysStorage.read(key: keyFor); if (encKey == null) { final List hiveKey = Hive.generateSecureKey(); encKey = base64UrlEncode(hiveKey); await hiveKeysStorage.write(key: keyFor, value: encKey); } return encKey; } /// /// Получение ключа шифрования /// /// Если ключа ранее не существовало - он будет создан /// Future getKey(String keyFor) async { String? encKey = await getRawKey(keyFor); return base64Url.decode(encKey); } /// /// Получение ключа шифрования в виде строки /// /// Если ключа ранее не существовало - он будет создан /// Future getStringKey(String keyFor) async { final Uint8List key = await getKey(keyFor); return String.fromCharCodes(key); } }