The Integrity
Check Value (ICV) comparison checks the authentication tag during the packet's decryption. The
Symmetric Cryptographic Accelerator
Hard IP performs the ICV comparison.
Figure 13. ICV Comparison Block and Signals
Follow these steps when performing ICV comparison:
- You send a packet for decryption. To indicate decryption operation, you set the tuser.encrypt_decrypt appropriately.
- You send the authentication tag together with the packet when the tlast signal is asserted.
- The soft logic receives the authentication tag (ICV) and stores it in a FIFO and sends the packet for to the AES/SM4 Inline Cryptographic Accelerator for decryption.
- When the decryption completes, the AES/SM4 Inline Cryptographic Accelerator asserts the tuser.mac_iv_tweak_en signal. The tdata[127:0] contains the MAC output from the AES/SM4 Inline Cryptographic Accelerator. The soft logic then compares it with the stored authentication tag.
- A difference between received and stored authentication tags results in the tuser.auth_err signal assertion.