hdcp-gen-key is a command-line tool for generating HDCP (High-bandwidth Digital Content Protection) keys for versions 1.0 through 1.4.
It utilizes Intel's Master Key Matrix for key generation.
- Generates HDCP keys for versions 1.0-1.4.
- Utilizes Intel's Master Key Matrix.
- Supports custom Key Selection Vectors (KSVs) or can generate valid random KSVs.
- Offers a wide range of output formats:
- Human-readable text (informational, source/sink only, full details).
- Machine-readable formats: JSON, YAML, XML, TOML.
- Can output source device keys, sink device keys, or both, optionally including the KSV and the derived HDCP shared key.
Before you begin, ensure you have the following installed:
- Git
- CMake (version 3.16 or higher recommended)
- A C++ compiler that supports C++11 (GCC, Clang, MSVC)
- (Optional, for documentation) Doxygen
- Clone the repository:
git clone https://github.com/SavaLione/hdcp-gen-key.git
- Navigate to the project directory:
cd hdcp-gen-key - Create and enter a build directory:
mkdir build cd build - Configure the project with CMake:
cmake ..
- Compile the project:
- Linux/BSD:
make
- Windows using MSBuild (typically found with Visual Studio):
(You might need to adjust the path to
MSBuild.exe hdcp-gen-key.sln
MSBuild.exeor open the.slnfile in Visual Studio IDE and build from there.) - Windows using Ninja:
ninja
- Linux/BSD:
The executable hdcp-gen-key (or hdcp-gen-key.exe on Windows) will be located in the build directory (or a subdirectory like build/Release depending on your generator and configuration).
After building, you can run hdcp-gen-key from the build directory.
Show help message:
./hdcp-gen-key --helpGenerate keys with a randomly generated KSV and default output format (text_informational):
./hdcp-gen-keySpecify a Key Selection Vector (KSV) and use the default output:
./hdcp-gen-key -k 00000fffffGenerate only the source device key as a line of space-separated hex values, using a random KSV:
./hdcp-gen-key --out text_line_sourceSpecify a KSV and output KSV, source key, sink key, and shared key in JSON format:
./hdcp-gen-key -k 00000fffff -o json_fullRefer to the -h or --help output for a full list of options and output formats.
This project supports Doxygen for code documentation.
To generate the documentation, navigate to the project's root directory and run:
doxygen doxyfileThe output will be generated in the docs/ directory.
hdcp-gen-key is licensed under the terms of The GNU General Public License v3.0.