Add P25 voice decryption support - #1147
Open
lorenzolrom wants to merge 1 commit into
Open
Conversation
Adds configured key loading and P25 voice decryption support for AES-256, DES-OFB, and ADP/RC4. Routes encrypted Phase 1 and Phase 2 voice frames through the OP25-derived decryptors before vocoding, propagates Phase 1 encryption status/algid/keyid JSON back to recorder state, and allows encrypted calls to be recorded and retained when matching keys are configured.
Collaborator
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Forked from https://github.com/blantonl/trunk-recorder/tree/add-p25-decryption.
Adds P25 voice decryption support for AES-256, DES-OFB, and ADP/RC4.
This adds an encryption key config path, loads configured keys into the OP25 frame assembler when a P25 recorder starts, and wires the OP25 Phase 1/Phase 2 voice paths through the appropriate decryptor before vocoding audio.
It also fixes the encrypted Phase 1 audio path so successfully decrypted audio is emitted instead of being muted, propagates Phase 1 encryption status JSON back to the recorder, and keeps encrypted calls with configured keys from being skipped or deleted as undecryptable encrypted traffic.
Testing:
Tested locally on macOS with a full CMake build. Also tested with live DES-OFB P25 traffic via OpenMHz; audio that previously started garbled and then muted now decodes correctly.
Notes:
This branch was rebuilt cleanly from current TrunkRecorder master for PR review and excludes unrelated fork/OTA-alias history.