#include "xf_security/xts.hpp"
static void aes128XtsDecrypt ( hls::stream <ap_uint <128>>& ciphertextStrm, hls::stream <bool>& endCiphertextStrm, hls::stream <ap_uint <64>>& lenStrm, hls::stream <ap_uint <128>>& cipherkeyStrm, hls::stream <ap_uint <128>>& IVStrm, hls::stream <ap_uint <128>>& plaintextStrm, hls::stream <bool>& endPlaintextStrm )
aes128XtsDecrypt is XTS decryption mode with AES-128 single block cipher.
The algorithm reference is : “IEEE Standard for Cryptographic Protection of Data on Block-Oriented Storage Devices” The implementation is optimized for better performance in FPGA.
Parameters:
| ciphertextStrm | Input block stream text to be decrypted, each block is 128 bits. |
| endCiphertextStrm | End flag of block stream ciphertext, 1 bit. |
| lenStrm | Total length of plaintext in bit, 64 bits. |
| cipherkeyStrm | Input two cipher key used in decryption, 128 bits. |
| IVStrm | Initialization vector for the fisrt iteration of AES encrypition, 128 bits. |
| plaintextStrm | Output decrypted block stream text, each block is 128 bits. |
| endPlaintextStrm | End flag of block stream plaintext, 1 bit. |