ignalxy 4 роки тому
батько
коміт
f5b01af1ef
1 змінених файлів з 8 додано та 3 видалено
  1. 8 3
      lib/common/cipher.dart

+ 8 - 3
lib/common/cipher.dart

@@ -13,10 +13,15 @@ import 'global.dart';
 Future<RSAPrivateKey?> getRSAPrivateKey(String username) async {
 Future<RSAPrivateKey?> getRSAPrivateKey(String username) async {
   try {
   try {
     final storage = FlutterSecureStorage();
     final storage = FlutterSecureStorage();
-    String? s = await storage.read(key: 'e2ee chat private key of $username');
+    final _key = 'e2ee chat private key of $username';
+    String? s = await storage.read(key: _key);
+    if (s == null) {
+      // TODO: 如果没有私钥,需要生成
+      storage.write(key: _key, value: s);
+    }
     Directory tempDir = await getTemporaryDirectory();
     Directory tempDir = await getTemporaryDirectory();
     String tempPath = tempDir.path;
     String tempPath = tempDir.path;
-    String filePath = '$tempPath/public.pem';
+    String filePath = '$tempPath/private.pem';
     final file = File(filePath);
     final file = File(filePath);
     final privateKey = await parseKeyFromFile<RSAPrivateKey>(filePath);
     final privateKey = await parseKeyFromFile<RSAPrivateKey>(filePath);
     file.delete();
     file.delete();
@@ -30,7 +35,7 @@ Future<RSAPublicKey?> getRSAPublicKey(String contents) async {
   try {
   try {
     Directory tempDir = await getTemporaryDirectory();
     Directory tempDir = await getTemporaryDirectory();
     String tempPath = tempDir.path;
     String tempPath = tempDir.path;
-    String filePath = '$tempPath/private.pem';
+    String filePath = '$tempPath/public.pem';
     final file = File(filePath);
     final file = File(filePath);
     file.writeAsString(contents);
     file.writeAsString(contents);
     final publicKey = await parseKeyFromFile<RSAPublicKey>(filePath);
     final publicKey = await parseKeyFromFile<RSAPublicKey>(filePath);