Thanks to visit codestin.com
Credit goes to Github.com

Skip to content

A command-line tool for generating HDCP (High-bandwidth Digital Content Protection) keys for versions 1.0 through 1.4

License

Notifications You must be signed in to change notification settings

SavaLione/hdcp-gen-key

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

hdcp-gen-key

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.

Features

  • 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.

Prerequisites

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

Building

  1. Clone the repository:
    git clone https://github.com/SavaLione/hdcp-gen-key.git
  2. Navigate to the project directory:
    cd hdcp-gen-key
  3. Create and enter a build directory:
    mkdir build
    cd build
  4. Configure the project with CMake:
    cmake ..
  5. Compile the project:
    • Linux/BSD:
      make
    • Windows using MSBuild (typically found with Visual Studio):
      MSBuild.exe hdcp-gen-key.sln
      (You might need to adjust the path to MSBuild.exe or open the .sln file in Visual Studio IDE and build from there.)
    • Windows using Ninja:
      ninja

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).

Usage

After building, you can run hdcp-gen-key from the build directory.

Examples:

Show help message:

./hdcp-gen-key --help

Generate keys with a randomly generated KSV and default output format (text_informational):

./hdcp-gen-key

Specify a Key Selection Vector (KSV) and use the default output:

./hdcp-gen-key -k 00000fffff

Generate only the source device key as a line of space-separated hex values, using a random KSV:

./hdcp-gen-key --out text_line_source

Specify a KSV and output KSV, source key, sink key, and shared key in JSON format:

./hdcp-gen-key -k 00000fffff -o json_full

Refer to the -h or --help output for a full list of options and output formats.

Documentation

This project supports Doxygen for code documentation.

To generate the documentation, navigate to the project's root directory and run:

doxygen doxyfile

The output will be generated in the docs/ directory.

License

hdcp-gen-key is licensed under the terms of The GNU General Public License v3.0.

About

A command-line tool for generating HDCP (High-bandwidth Digital Content Protection) keys for versions 1.0 through 1.4

Topics

Resources

License

Stars

Watchers

Forks