Using the AES Encryption Key Block from the Block RAM
- 32-byte AES key
- Valid HDCP keys
Note:
AMD does not provide any of the above keys. The application
delivered with this software is created with invalid keys and hence does not play
HDCP content.
Follow the steps mentioned here to generate the AES encrypted HDCP key block:
- Unzip the project and go to the
hdcp_util/keys
directory. You can find the encryption block in this directory. - Modify the
gDefaultKey
array in the following file to a user specified 32 bytes unique key. This is the 32-byte AES key mentioned in point (1) abovehdcp_util/keys/key-encryptor/common/src/keyfile.c
- Navigate to hdcp_util/keys/key-encryptor/build/linux folder and execute the
following command from linux terminal.
./build.sh
This creates hdcp-enc.bin file in the same folder.
- From the same directory, execute the following command to create
the AES encrypted file keymgmt_data.c.
./hdcp-enc.bin -c devb1_keys.dat devb2_keys.dat …. devb<n>_keys.dat
Note: The user-provided devb<n>_keys.dat file is expected to have one and only one original HDCP key. An original HDCP key has one 5 byte Key Selection Vector and 40 private keys. If you have multiple HDCP keys, each key should be housed exclusively in one .dat file. - The AES encrypted HDCP key block is now created as an array in the keymgmt_data.c file.
- Ensure that the following AES keys in the reference design matches with the keys in step 2.
\**kc705_system_directly**\**sw_directly**\src\keys.c
The HDCP keys are now encrypted and ready to be used. You can any of the following two ways to use the HDCP keys.