cake_wallet/lib/entities/get_encryption_key.dart

21 lines
731 B
Dart
Raw Normal View History

2020-01-04 19:31:52 +00:00
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
import 'package:cw_core/cake_hive.dart';
2020-01-04 19:31:52 +00:00
Future<List<int>> getEncryptionKey(
2022-10-12 17:09:57 +00:00
{required String forKey, required FlutterSecureStorage secureStorage}) async {
final stringifiedKey = await secureStorage.read(key: 'transactionDescriptionsBoxKey');
2020-01-04 19:31:52 +00:00
List<int> key;
if (stringifiedKey == null) {
key = CakeHive.generateSecureKey();
2020-01-04 19:31:52 +00:00
final keyStringified = key.join(',');
String storageKey = 'transactionDescriptionsBoxKey';
await secureStorage.delete(key: storageKey);
await secureStorage.write(key: storageKey, value: keyStringified);
2020-01-04 19:31:52 +00:00
} else {
key = stringifiedKey.split(',').map((i) => int.parse(i)).toList();
2020-01-04 19:31:52 +00:00
}
return key;
}