Chat Fixes & User Chat Counter
parent
a08f1c6d77
commit
3e666eb6be
@ -1,188 +1,28 @@
|
|||||||
// import 'dart:convert';
|
import 'dart:convert';
|
||||||
//
|
|
||||||
// import 'package:encrypt/encrypt.dart';
|
import 'package:flutter/services.dart';
|
||||||
// import 'package:crypto/crypto.dart';
|
|
||||||
//
|
class Encryption {
|
||||||
// class Encryption {
|
static final Encryption _instance = Encryption._internal();
|
||||||
// static final Encryption instance = Encryption._();
|
static const MethodChannel _channel = MethodChannel('flutter_des');
|
||||||
//
|
static const key = "PeShVmYp";
|
||||||
// late IV _iv;
|
static const iv = "j70IbWYn";
|
||||||
// late Encrypter _encrypter;
|
|
||||||
//
|
Encryption._internal();
|
||||||
// Encryption._() {
|
|
||||||
// const mykey = 'PeShVmYp';
|
factory Encryption() => _instance;
|
||||||
// const myiv = 'j70IbWYn';
|
|
||||||
// var keyUtf8 = utf8.encode(mykey);
|
Future<String> encrypt({required String val}) async {
|
||||||
// var ivUtf8 = utf8.encode(myiv);
|
Uint8List? crypt = await _channel.invokeMethod('encrypt', [val, key, iv]);
|
||||||
// var key = sha256.convert(keyUtf8).toString().substring(0, 32);
|
String data = base64Encode(crypt!.toList());
|
||||||
// var iv = sha256.convert(ivUtf8).toString().substring(0, 16);
|
print("Base64Enc: " + data);
|
||||||
// _iv = IV.fromUtf8(iv);
|
return data;
|
||||||
//
|
}
|
||||||
// _encrypter = Encrypter(AES(Key.fromUtf8(key), mode: AESMode.cbc));
|
|
||||||
// }
|
Future<String> decrypt({required String encodedVal}) async {
|
||||||
//
|
var deco = base64Decode(encodedVal);
|
||||||
// String encrypt(String value) {
|
String? decCrypt = await _channel.invokeMethod('decrypt', [deco, key, iv]);
|
||||||
// return _encrypter.encrypt(value, iv: _iv).base64;
|
print("Base64ToStringDec: " + decCrypt!);
|
||||||
// }
|
return decCrypt!;
|
||||||
//
|
}
|
||||||
// String decrypt(String base64value) {
|
}
|
||||||
// var encrypted = Encrypted.fromBase64(base64value);
|
|
||||||
// return _encrypter.decrypt(encrypted, iv: _iv);
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// //
|
|
||||||
// // void passEncrypt(String text, String pass) async {
|
|
||||||
// // var salt = randomUint8List(8);
|
|
||||||
// // var keyndIV = deriveKeyAndIV(pass, salt);
|
|
||||||
// // var key = encrypt.Key(keyndIV.item1);
|
|
||||||
// // var iv = encrypt.IV(keyndIV.item2);
|
|
||||||
// // var encrypter = encrypt.Encrypter(encrypt.AES(key, mode: encrypt.AESMode.cbc, padding: "PKCS7"));
|
|
||||||
// // var encrypted = encrypter.encrypt(text, iv: iv);
|
|
||||||
// // Uint8List encryptedBytesWithSalt = Uint8List.fromList(createUint8ListFromString("Salted__") + salt + encrypted.bytes);
|
|
||||||
// // var resulttt = base64.encode(encryptedBytesWithSalt);
|
|
||||||
// // print("Enc : " + resulttt);
|
|
||||||
// //
|
|
||||||
// // decryptAESCryptoJS(resulttt, pass);
|
|
||||||
// // }
|
|
||||||
// //
|
|
||||||
// // Uint8List randomUint8List(int length) {
|
|
||||||
// // assert(length > 0);
|
|
||||||
// // var random = Random();
|
|
||||||
// // var ret = Uint8List(length);
|
|
||||||
// // for (var i = 0; i < length; i++) {
|
|
||||||
// // ret[i] = random.nextInt(256);
|
|
||||||
// // }
|
|
||||||
// // return ret;
|
|
||||||
// // }
|
|
||||||
// //
|
|
||||||
// // void decryptAESCryptoJS(String encrypted, String passphrase) {
|
|
||||||
// // try {
|
|
||||||
// // Uint8List encryptedBytesWithSalt = base64.decode(encrypted);
|
|
||||||
// // Uint8List encryptedBytes = encryptedBytesWithSalt.sublist(16, encryptedBytesWithSalt.length);
|
|
||||||
// // var salt = encryptedBytesWithSalt.sublist(8, 16);
|
|
||||||
// // var keyndIV = deriveKeyAndIV(passphrase, salt);
|
|
||||||
// // var key = encrypt.Key(keyndIV.item1);
|
|
||||||
// // var iv = encrypt.IV(keyndIV.item2);
|
|
||||||
// // var encrypter = encrypt.Encrypter(encrypt.AES(key, mode: encrypt.AESMode.cbc, padding: "PKCS7"));
|
|
||||||
// // var decrypted = encrypter.decrypt64(base64.encode(encryptedBytes), iv: iv);
|
|
||||||
// // print("Dec : " + decrypted);
|
|
||||||
// // // return decrypted;
|
|
||||||
// // } catch (error) {
|
|
||||||
// // throw error;
|
|
||||||
// // }
|
|
||||||
// // }
|
|
||||||
// //
|
|
||||||
// // Future<void> enc(String input) async {
|
|
||||||
// // var ekey = "PeShVmYpPeShVmYp";
|
|
||||||
// // var eIV = "j70IbWYnj70IbWYn";
|
|
||||||
// //
|
|
||||||
// // var abc = Encryption.instance.encrypt(input);
|
|
||||||
// // //
|
|
||||||
// // // var inputByt = utf8.encode(input);
|
|
||||||
// // // final encrypted = encrypter.encrypt(plainText);
|
|
||||||
// // // final decrypted = encrypter.decrypt(encrypted);
|
|
||||||
// // //
|
|
||||||
// // // print(decrypted); // Lorem ipsum dolor sit amet, consectetur adipiscing elit
|
|
||||||
// // // print(encrypted.base64); // R4PxiU3h8YoIRqVowBXm36ZcCeNeZ4s1OvVBTfFlZRdmohQqOpPQqD1YecJeZMAop/hZ4OxqgC1WtwvX/hP9mw==
|
|
||||||
// // // ///
|
|
||||||
// //
|
|
||||||
// // var key = encrypt.Key.fromUtf8(ekey.substring(0, 8));
|
|
||||||
// // var iv = encrypt.IV.fromLength(8);
|
|
||||||
// // var encrypter = Encrypter(AES(key));
|
|
||||||
// // var encrypted = encrypter.encrypt(input, iv: iv);
|
|
||||||
// // var decrypted = encrypter.decrypt(encrypted, iv: iv);
|
|
||||||
// // print("====== ORI ==========");
|
|
||||||
// // print("e4PTDencHsiLJv0XcbT2I4tafb7dqJP9c72PEnhp1Uv6U2GZ/gODtA==");
|
|
||||||
// // print("====== ENC ==========");
|
|
||||||
// // print(encrypted.base64);
|
|
||||||
// // print("====== DEC ==========");
|
|
||||||
// // print(decrypted);
|
|
||||||
// // print("====== B64 ==========");
|
|
||||||
// // String bs64 = base64.encode(utf8.encode(input));
|
|
||||||
// // print(bs64);
|
|
||||||
// //
|
|
||||||
// // // try {
|
|
||||||
// // // var cipher = _cipher;
|
|
||||||
// // // var secretBox = await cipher.encrypt(
|
|
||||||
// // // iByt,
|
|
||||||
// // // secretKey: SecretKeyData(eByt),
|
|
||||||
// // // nonce: eIvByt,
|
|
||||||
// // // );
|
|
||||||
// // // print(utf8.decode(secretBox.cipherText));
|
|
||||||
// // // } catch (error) {
|
|
||||||
// // // print(error);
|
|
||||||
// // // return;
|
|
||||||
// // // }
|
|
||||||
// // }
|
|
||||||
// // ///Accepts encrypted data and decrypt it. Returns plain text
|
|
||||||
// // String decryptWithAES(String key, Encrypted encryptedData) {
|
|
||||||
// // var cipherKey = encrypt.Key.fromUtf8(key);
|
|
||||||
// // var encryptService = Encrypter(AES(cipherKey, mode: AESMode.cbc,padding: null));
|
|
||||||
// // var initVector = IV.fromUtf8(key.substring(0, 16));
|
|
||||||
// // return encryptService.decrypt(encryptedData, iv: initVector);
|
|
||||||
// // }
|
|
||||||
// //
|
|
||||||
// // ///Encrypts the given plainText using the key. Returns encrypted data
|
|
||||||
// // Encrypted encryptWithAES(String key, String plainText) {
|
|
||||||
// // var cipherKey = encrypt.Key.fromUtf8(key);
|
|
||||||
// // var encryptService = Encrypter(AES(cipherKey, mode: AESMode.cbc,padding: null));
|
|
||||||
// // var initVector = IV.fromUtf8("j70IbWYn");
|
|
||||||
// // Encrypted encryptedData = encryptService.encrypt(plainText, iv: initVector);
|
|
||||||
// // print(encryptedData.base64);
|
|
||||||
// // return encryptedData;
|
|
||||||
// // }
|
|
||||||
// //
|
|
||||||
// // Tuple2<Uint8List, Uint8List> deriveKeyAndIV(String passphrase, Uint8List salt) {
|
|
||||||
// // var password = createUint8ListFromString(passphrase);
|
|
||||||
// // Uint8List concatenatedHashes = Uint8List(0);
|
|
||||||
// // Uint8List currentHash = Uint8List(0);
|
|
||||||
// // bool enoughBytesForKey = false;
|
|
||||||
// // Uint8List preHash = Uint8List(0);
|
|
||||||
// //
|
|
||||||
// // while (!enoughBytesForKey) {
|
|
||||||
// // int preHashLength = currentHash.length + password.length + salt.length;
|
|
||||||
// // if (currentHash.length > 0)
|
|
||||||
// // preHash = Uint8List.fromList(currentHash + password + salt);
|
|
||||||
// // else
|
|
||||||
// // preHash = Uint8List.fromList(password + salt);
|
|
||||||
// //
|
|
||||||
// // currentHash = preHash;
|
|
||||||
// // concatenatedHashes = Uint8List.fromList(concatenatedHashes + currentHash);
|
|
||||||
// // if (concatenatedHashes.length >= 48) enoughBytesForKey = true;
|
|
||||||
// // }
|
|
||||||
// //
|
|
||||||
// // var keyBtyes = concatenatedHashes.sublist(0, 32);
|
|
||||||
// // var ivBtyes = concatenatedHashes.sublist(32, 48);
|
|
||||||
// // return new Tuple2(keyBtyes, ivBtyes);
|
|
||||||
// // }
|
|
||||||
// //
|
|
||||||
// // Uint8List createUint8ListFromString(String s) {
|
|
||||||
// // var ret = new Uint8List(s.length);
|
|
||||||
// // for (var i = 0; i < s.length; i++) {
|
|
||||||
// // ret[i] = s.codeUnitAt(i);
|
|
||||||
// // }
|
|
||||||
// // return ret;
|
|
||||||
// // }
|
|
||||||
// //
|
|
||||||
// // Uint8List genRandomWithNonZero(int seedLength) {
|
|
||||||
// // var random = Random.secure();
|
|
||||||
// // const int randomMax = 245;
|
|
||||||
// // Uint8List uint8list = Uint8List(seedLength);
|
|
||||||
// // for (int i = 0; i < seedLength; i++) {
|
|
||||||
// // uint8list[i] = random.nextInt(randomMax) + 1;
|
|
||||||
// // }
|
|
||||||
// // return uint8list;
|
|
||||||
// // }
|
|
||||||
// //
|
|
||||||
// //
|
|
||||||
// //
|
|
||||||
// // void test(String text, String kk) {
|
|
||||||
// // Uint8List key = Uint8List.fromList(utf8.encode(kk));
|
|
||||||
// // PaddedBlockCipher cipher = exp.PaddedBlockCipherImpl(exp.PKCS7Padding(), exp.ECBBlockCipher(exp.AESEngine()));
|
|
||||||
// // cipher.init(true, PaddedBlockCipherParameters<CipherParameters, CipherParameters>(KeyParameter(key), null));
|
|
||||||
// // var byte = Uint8List.fromList(utf8.encode(text));
|
|
||||||
// // var data = cipher.process(byte);
|
|
||||||
// // print(data);
|
|
||||||
// // }
|
|
||||||
//
|
|
||||||
// }
|
|
||||||
|
@ -0,0 +1,33 @@
|
|||||||
|
// To parse this JSON data, do
|
||||||
|
//
|
||||||
|
// final chatUserImageModel = chatUserImageModelFromJson(jsonString);
|
||||||
|
|
||||||
|
import 'dart:convert';
|
||||||
|
|
||||||
|
List<ChatUserImageModel> chatUserImageModelFromJson(String str) => List<ChatUserImageModel>.from(json.decode(str).map((x) => ChatUserImageModel.fromJson(x)));
|
||||||
|
|
||||||
|
String chatUserImageModelToJson(List<ChatUserImageModel> data) => json.encode(List<dynamic>.from(data.map((x) => x.toJson())));
|
||||||
|
|
||||||
|
class ChatUserImageModel {
|
||||||
|
ChatUserImageModel({
|
||||||
|
this.email,
|
||||||
|
this.profilePicture,
|
||||||
|
this.mobileNumber,
|
||||||
|
});
|
||||||
|
|
||||||
|
String? email;
|
||||||
|
String? profilePicture;
|
||||||
|
String? mobileNumber;
|
||||||
|
|
||||||
|
factory ChatUserImageModel.fromJson(Map<String, dynamic> json) => ChatUserImageModel(
|
||||||
|
email: json["email"] == null ? null : json["email"],
|
||||||
|
profilePicture: json["profilePicture"] == null ? null : json["profilePicture"],
|
||||||
|
mobileNumber: json["mobileNumber"] == null ? null : json["mobileNumber"],
|
||||||
|
);
|
||||||
|
|
||||||
|
Map<String, dynamic> toJson() => {
|
||||||
|
"email": email == null ? null : email,
|
||||||
|
"profilePicture": profilePicture == null ? null : profilePicture,
|
||||||
|
"mobileNumber": mobileNumber == null ? null : mobileNumber,
|
||||||
|
};
|
||||||
|
}
|
Loading…
Reference in New Issue