Skip to content

Commit 10279a1

Browse files
fix: migrating to new key encoding (#598)
1 parent 983bc29 commit 10279a1

File tree

1 file changed

+26
-4
lines changed

1 file changed

+26
-4
lines changed

lib/paiement/tools/key_service.dart

Lines changed: 26 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import 'dart:convert';
12
import 'package:cryptography_plus/cryptography_plus.dart';
23
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
34

@@ -20,12 +21,13 @@ class KeyService {
2021
final publicKey = await keyPair.extractPublicKey();
2122
await _secureStorage.write(
2223
key: 'privateKey',
23-
value: String.fromCharCodes(privateKey),
24+
value: base64.encode(privateKey),
2425
);
2526
await _secureStorage.write(
2627
key: 'publicKey',
27-
value: String.fromCharCodes(publicKey.bytes),
28+
value: base64.encode(publicKey.bytes),
2829
);
30+
await _secureStorage.write(key: 'migrated', value: 'true');
2931
}
3032

3133
Future saveKeyId(String keyId) async {
@@ -38,8 +40,28 @@ class KeyService {
3840
if (privateKeyString == null || publicKeyString == null) {
3941
return null;
4042
}
41-
final privateKey = privateKeyString.codeUnits;
42-
final publicKey = publicKeyString.codeUnits;
43+
final migrated = await _secureStorage.read(key: 'migrated');
44+
if (migrated == null) {
45+
final privateKey = privateKeyString.codeUnits;
46+
final publicKey = publicKeyString.codeUnits;
47+
48+
await _secureStorage.write(
49+
key: 'privateKey',
50+
value: base64.encode(privateKey),
51+
);
52+
await _secureStorage.write(
53+
key: 'publicKey',
54+
value: base64.encode(publicKey),
55+
);
56+
await _secureStorage.write(key: 'migrated', value: 'true');
57+
return SimpleKeyPairData(
58+
privateKey,
59+
publicKey: SimplePublicKey(publicKey, type: KeyPairType.ed25519),
60+
type: KeyPairType.ed25519,
61+
);
62+
}
63+
final privateKey = base64.decode(privateKeyString);
64+
final publicKey = base64.decode(publicKeyString);
4365
return SimpleKeyPairData(
4466
privateKey,
4567
publicKey: SimplePublicKey(publicKey, type: KeyPairType.ed25519),

0 commit comments

Comments
 (0)