No description
| src/elgato_decrypter | ||
| LICENSE | ||
| pyproject.toml | ||
| README.md | ||
Elgato Stream Deck Manifest Decrypter
A command-line tool to decrypt encrypted manifest files (manifest.json) used by the Elgato Stream Deck application. It supports decrypting standalone manifest files as well as in-place decryption of .streamDeckPlugin packages.
Note: This tool requires the StreamDeck.exe binary to be installed on your system, as it dynamically extracts the necessary decryption keys from the application binary at runtime. It does not contain any embedded secrets or proprietary keys.
Features
- Manifest Decryption: Decrypts individual encrypted
manifest.jsonfiles. - Plugin Decryption: Handles
.streamDeckPlugin(ZIP) files, decrypting the internal manifest in-place. - Dynamic Key Extraction: Parses the installed
StreamDeck.exeto retrieve cryptographic constants, ensuring compatibility across versions. - Safe: No hardcoded keys or secrets are distributed with this tool.
Installation
pip install elgato-decrypter
Usage
Decrypt a single manifest file
elgato-decrypter path/to/encrypted/manifest.json [output_file.json]
Decrypt a plugin package (in-place)
elgato-decrypter path/to/plugin.streamDeckPlugin
Specify custom Stream Deck binary path
By default, the tool looks for StreamDeck.exe in C:\Program Files\Elgato\StreamDeck\StreamDeck.exe. If you have it installed elsewhere:
elgato-decrypter path/to/manifest.json --binary "D:\Games\Elgato\StreamDeck.exe"
Technical Details
The encryption scheme uses a combination of:
- Custom PCG-based XOR stream cipher
- X25519 Elliptic Curve Diffie-Hellman (ECDH) key exchange
- HKDF-SHA256 key derivation
- AES-256-GCM authenticated encryption
For full technical details, see the project documentation.
License
MIT License