decryptFileData function
Implementation
String decryptFileData(ByteData data) {
const passphraseUtf8 = "h0uAdkGReYwu0zuv8eR4AJQNVqCKZxIe";
const saltPharse = "yIXmS8GVxGbmX2DL";
if (data.lengthInBytes == 0) {
throw const ImproperSSLPinningConfig();
}
log("read infoencrypted file", name: "com.quixxi.security");
Uint8List fileContent =
data.buffer.asUint8List(data.offsetInBytes, data.lengthInBytes);
String ivHex = '717569787869736869656c6470617373';
Uint8List salt = convertStringToUint8List(saltPharse);
Uint8List passphrase = convertStringToUint8List(passphraseUtf8);
Uint8List key = generateKey(salt, passphrase);
Uint8List iv = Uint8List.fromList(hex.decode(ivHex));
String encodedString = utf8.decode(fileContent);
if (!isBase64(encodedString)) {
throw const ImproperSSLPinningConfig();
}
Uint8List decodedFileContent = base64.decode(encodedString);
Uint8List decrypted = decrypt(decodedFileContent, key, iv);
String decryptedString = String.fromCharCodes(decrypted);
return decryptedString;
}