HDMI 1.4/2.0 TX Subsystem
71
PG235 October 4, 2017
Chapter
5:
Example Design
1. Import Example from SDK and choose hdcp_key_utility.
2. Open hdcp_key_utility.c from the SDK project.
3. The arrays Hdcp22Lc128, Hdcp22Key, Hdcp14Key1, and Hdcp14Key2 hold the HDCP
keys and are empty. Fill these arrays with the acquired HDCP keys. The arrays are
defined in big endian byte order.
4. Save the file and compile the design.
5. Run the design.
The terminal displays the following output:
HDCP Key EEPROM v1.0
This tool encrypts and stores the HDCP 2.2 certificate and HDCP 1.4 keys into the
EEPROM on the HDMI FMC board
Enter Password ->
The HDCP keys are encrypted using this password. The same password is used in the
reference design to decrypt the HDCP keys.
The application is terminated after completing the programming of HDCP keys.
Note:
The keys only need to be programmed into the EEPROM once.
Formatting HDCP Keys for HDCP 1.x
The hdcp_key_utility.c has two (empty) HDCP 1.x key arrays.
• The Hdcp14Key1 array
This array holds the HDCP 1.x RX KSV and Keys.
• The Hdcp14Key2 array
This array holds the HDCP 1.x RX KSV and Keys.
The arrays have a size of 328 bytes and contain the Key Selection Vector (KSV) (5 bytes
padded with zeros to 8 bytes) and key set (320 bytes), where each key is 7 bytes padded
with zeros to 8 bytes.
To format the HDCP 1.x keys for the key_utility, follow the steps below:
1. Discard the 20 byte SHA-1.
2. Pad each key on the right with one byte of 0s (KSV is already padded).
You should now have 1 x 8 byte KSV + 40 x 8 byte Keys.
3. Byte swap each 8 byte set to reverse their order (convert from Little-endian to
Big-endian).