Validating Internal Key Writes - 1.0 English

Versal Adaptive SoC Integrated 400G High Speed Channelized Cryptography Engine Subsystem Product Guide (PG372)

Document ID
PG372
Release Date
2024-01-30
Version
1.0 English

The value of the key configured for an internal SA is not user-readable. Instead, the HSC Subsystem returns a CRC32 digest of the key to validate key writes. Note that the CRC32 value is calculated over all 256 bits of the key entry for each SA regardless of the key size for that SA. The following procedure describes how to read the CRC32 digest of the key for an internal SA with index SA_INDEX[9:0] in the TX core.

  1. Set the TX_INDIRECT_AXS_CTL_REG register:
    1. Set the tx_ind_axs_ctrl_wrn field to 0 (TX_INDIRECT_AXS_CTL_REG[1]=0) to indicate a read function.
    2. Set tx_ind_axs_ctrl_grp = 2’b00 (TX_INDIRECT_AXS_CTL_REG[3:2] = 2’b00) to indicate the indirect access to the encryption SA keys table.
    3. Set tx_ind_axs_ctrl_num = SA_INDEX[9:0] (TX_INDIRECT_AXS_CTL_REG[17:8] = SA_INDEX[9:0]).
    4. Set the tx_ind_axs_ctrl_ena field to 1 (TX_INDIRECT_AXS_CTL_REG[0]=1).
  2. Wait for the tx_ind_axs_ctrl_ena bit to clear (or a pulse is generated on the stat_rsvd_out_tx_top[120] pin).
  3. Read TX_INDIRECT_AXS_RDATA_REG_LSB[31:0] for the CRC32 digest of the internal SA key.

The procedure to validate a key write in an internal SA table for RX is similar but uses the corresponding set of indirect register access registers for the decryption path.