| 1234567891011121314151617181920212223242526272829303132333435363738394041 |
- import 'dart:async';
- import 'dart:convert';
- import 'dart:io';
- import 'package:encrypt/encrypt_io.dart';
- import 'package:flutter_secure_storage/flutter_secure_storage.dart';
- import 'package:encrypt/encrypt.dart';
- import 'package:path_provider/path_provider.dart';
- import 'package:pointycastle/asymmetric/api.dart';
- import 'global.dart';
- Future<RSAPrivateKey?> getRSAPrivateKey(String username) async {
- try {
- final storage = FlutterSecureStorage();
- String? s = await storage.read(key: 'e2ee chat private key of $username');
- Directory tempDir = await getTemporaryDirectory();
- String tempPath = tempDir.path;
- String filePath = '$tempPath/public.pem';
- final file = File(filePath);
- final privateKey = await parseKeyFromFile<RSAPrivateKey>(filePath);
- file.delete();
- return privateKey;
- } catch (e) {
- debug('get rsa private key failed: $e');
- }
- }
- Future<RSAPublicKey?> getRSAPublicKey(String contents) async {
- try {
- Directory tempDir = await getTemporaryDirectory();
- String tempPath = tempDir.path;
- String filePath = '$tempPath/private.pem';
- final file = File(filePath);
- file.writeAsString(contents);
- final publicKey = await parseKeyFromFile<RSAPublicKey>(filePath);
- return publicKey;
- } catch (e) {
- debug('get rsa public key failed: $e');
- }
- }
|