1. Introduction
2. Interface Overview
3. Parameters
4. Designing with the IP Core
5. Block Description
6. Cryptographic IP Data Profiles
7. Configuration Registers
8. Design Example
9. Symmetric Cryptographic Intel FPGA Hard IP User Guide Archives
10. Document Revision History for the Symmetric Cryptographic Intel FPGA Hard IP User Guide
4.1. Installing and Licensing Intel® FPGA IP Cores
4.2. Specifying the IP Core Parameters and Options
4.3. Generated File Structure
4.4. Symmetric Cryptographic IP Core Flow
4.5. Dynamically Disabling SM4 Capability
4.6. Error Handling
4.7. Error Reporting
4.8. Resetting the IP Core
4.9. Channel Definition and Allocation
4.10. Byte Ordering
4.11. AXI-ST Single Packet Mode
4.12. AXI-ST Multiple Packet Mode
5.3.5. MAC Dropping on Decryption
The Symmetric Cryptographic IP core support a feature to drop the 16 byte MAC tag on decryption request. The feature is available for MACsec only.
To enable this feature, set the decrypt_drop_mac_en parameter to 1. This feature is independent to ICV comparison feature where the ICV comparison result sent out to user is unaffected by this feature.
Profile | MACsec | MACsec | MACsec | MACsec | MACsec | |||
---|---|---|---|---|---|---|---|---|
MAC_IV_tweak_en | 0 | 1 | 1 | 1 | 1 | |||
data_en | 1 | 0 | 1 | 1 | 1 | |||
next_packet_en | 0 | 1 | 1 | 1 | 0 | |||
tlast | 0 | 1 | 1 | 1 | 1 | |||
num_empty_bytes | 0 | 64 | 48 to 63 | 32 to 63 | 16 to 63 | |||
DATA | ||||||||
data[127:0] | AAD/Text | MAC | AAD/Text | AAD/Text | AAD/Text | |||
data[255:128] | AAD/Text | AAD/Text | MAC | AAD/Text | AAD/Text | |||
data[391:256] | AAD/Text | AAD/Text | AAD/Text | MAC | AAD/Text | |||
data[511:392] | AAD/Text | AAD/Text | AAD/Text | AAD/Text | MAC |
Profile | MACsec | MACsec | MACsec | MACsec | MACsec | |||
---|---|---|---|---|---|---|---|---|
tvalid | 1 | 1 | 1 | 1 | 1 | |||
MAC_IV_tweak_en | 0 | 1 | 1 | 1 | 1 | |||
data_en | 1 | 0 | 1 | 1 | 1 | |||
next_packet_en | 0 | 1 | 1 | 1 | 0 | |||
tlast | 1 | 0 | 1 | 1 | 1 | |||
tkeep | All 1's | 1111_1111 1111_1111 1111_1111 1111_1111 1111_1111 1111_1111 0000_0000 0000_0000 |
1111_1111 1111_1111 1111_1111 1111_1111 0000_0000 0000_0000 1111_1111 1111_1111 |
1111_1111 1111_1111 0000_0000 0000_0000 1111_1111 1111_1111 1111_1111 1111_1111 |
0000_0000 0000_0000 1111_1111 1111_1111 1111_1111 1111_1111 1111_1111 1111_1111 |
|||
tuser_last_segment0 | 0 | 0 | 1 | 0 | 0 | |||
tuser_last_segment1 | 0 | 0 | 0 | 1 | 0 | |||
tuser_last_segment2 | 0 | 0 | 0 | 0 | 1 | |||
tuser_last_segment3 | 1 | 0 | 0 | 0 | 0 | |||
DATA | ||||||||
data[127:0] | AAD/Text | IDLE | AAD/Text | AAD/Text | AAD/Text | |||
data[255:128] | AAD/Text | AAD/Text | IDLE | AAD/Text | AAD/Text | |||
data[391:256] | AAD/Text | AAD/Text | AAD/Text | IDLE | AAD/Text | |||
data[511:392] | AAD/Text | AAD/Text | AAD/Text | AAD/Text | IDLE |
If MAC is located in segment 0 and there is no subsequent packets in segment 1, 2, or 3, the tvalid signal deasserts since all segments are the IDLE bytes after the MAC dropping.