فهرست منبع

encrypt (not complete)

ignalxy 4 سال پیش
والد
کامیت
6ccd6ab4c1
2فایلهای تغییر یافته به همراه10 افزوده شده و 10 حذف شده
  1. 6 6
      lib/presenter/login.dart
  2. 4 4
      lib/presenter/user_chat.dart

+ 6 - 6
lib/presenter/login.dart

@@ -44,15 +44,15 @@ class LoginPresenter extends ProfilePresenter {
   User? get user => profile.user;
 
   @Transient()
-  Future<String?> get _secretKey async {
+  Future<Key?> get secretKey async {
     if (user == null) return null;
     final storage = FlutterSecureStorage();
-    String? _key = await storage.read(key: _keyKey);
-    if (_key == null) {
-      _key = Key.fromSecureRandom(256).base64;
-      await storage.write(key: _keyKey, value: _key);
+    String? _base64 = await storage.read(key: _keyKey);
+    if (_base64 == null) {
+      _base64 = Key.fromSecureRandom(256).base64;
+      await storage.write(key: _keyKey, value: _base64);
     }
-    return _key;
+    return Key.fromBase64(_base64);
   }
 
   String get _keyKey => "e2ee_chat secret key of ${user!.username}";

+ 4 - 4
lib/presenter/user_chat.dart

@@ -11,7 +11,6 @@ import 'package:e2ee_chat/objectbox.g.dart';
 import 'package:e2ee_chat/presenter/login.dart';
 import 'package:flutter/material.dart';
 import 'package:objectbox/objectbox.dart';
-import 'package:rxdart/rxdart.dart';
 
 import 'chat_list.dart';
 
@@ -73,15 +72,16 @@ class UserChatPresenter extends ChatListPresenter {
     // messages.forEach((message) => list.add(message.chatMessage));
   }
 
-  ChatMessage chatMessageFromMessagePackage(String encText) {
-    // Map<String, dynamic> json0 = jsonDecode(s);
-    // String plaintext = json0["plaintext"];
+  Future<ChatMessage> chatMessageFromMessagePackage(String encText) async {
+    Key? key = await LoginPresenter().secretKey;
+    String plaintext = ;
     ChatMessage? _message;
     try {
       _message = ChatMessage.fromJson(jsonDecode(encText));
     } catch (e) {
       try {
 
+        _message = ChatMessage.fromJson()
       } catch (e) {
 
       }