dev
dart 56 lines 1.53 KB
Raw
1 import 'package:encrypt/encrypt.dart';
2 // import 'package:password/password.dart';
3 import 'package:cake_wallet/.secrets.g.dart' as secrets;
4
5 String encrypt({required String source, required String key}) {
6 final _key = Key.fromUtf8(key);
7 final iv = IV.allZerosOfLength(16);
8 final encrypter = Encrypter(AES(_key));
9 final encrypted = encrypter.encrypt(source, iv: iv);
10
11 return encrypted.base64;
12 }
13
14 String decrypt({required String source, required String key}) {
15 final _key = Key.fromUtf8(key);
16 final iv = IV.allZerosOfLength(16);
17 final encrypter = Encrypter(AES(_key));
18 final decrypted = encrypter.decrypt64(source, iv: iv);
19
20 return decrypted;
21 }
22
23 String hash({required String source}) {
24 // FIX-ME: Uninplemented
25 throw Exception('Unimplemented');
26 // final algorithm = PBKDF2();
27 // final hash = Password.hash(source, algorithm);
28
29 // return hash;
30 }
31
32 String encodedPinCode({required String pin}) {
33 final source = '${secrets.salt}$pin';
34
35 return encrypt(source: source, key: secrets.key);
36 }
37
38 String decodedPinCode({required String pin}) {
39 final decrypted = decrypt(source: pin, key: secrets.key);
40
41 return decrypted.substring(secrets.key.length, decrypted.length);
42 }
43
44 String encodeWalletPassword({required String password}) {
45 final source = password;
46 final _key = secrets.shortKey + secrets.walletSalt;
47
48 return encrypt(source: source, key: _key);
49 }
50
51 String decodeWalletPassword({required String password}) {
52 final source = password;
53 final _key = secrets.shortKey + secrets.walletSalt;
54
55 return decrypt(source: source, key: _key);
56 }