decodeMessageFromImage function
Implementation
DecodeResponse decodeMessageFromImage(DecodeRequest req) {
Uint16List img = Uint16List.fromList(req.original.getBytes().toList());
Uint16List extracted = extractBitsFromImg(img);
Uint16List padded = padToBytes(extracted);
Uint16List byteMsg = bits2bytes(padded);
Uint16List sanitized = sanitizePaddingZeros(byteMsg);
String msg = bytes2msg(sanitized);
String token = req.token;
if (req.shouldDecrypt()) {
crypto.Key key = crypto.Key.fromUtf8(padCryptionKey(token));
crypto.IV iv = crypto.IV.fromLength(16);
crypto.Encrypter encrypter = crypto.Encrypter(crypto.AES(key));
crypto.Encrypted encryptedMsg = crypto.Encrypted.fromBase64(msg);
msg = encrypter.decrypt(encryptedMsg, iv: iv);
}
DecodeResponse response = DecodeResponse(msg);
return response;
}