Skip to content

Add P25 voice decryption support - #1147

Open
lorenzolrom wants to merge 1 commit into
TrunkRecorder:masterfrom
lorenzolrom:p25-decryption-pr
Open

Add P25 voice decryption support#1147
lorenzolrom wants to merge 1 commit into
TrunkRecorder:masterfrom
lorenzolrom:p25-decryption-pr

Conversation

@lorenzolrom

Copy link
Copy Markdown

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.

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.
@robotastic

Copy link
Copy Markdown
Collaborator

This is really cool! I have no way of easily testing this - I would love for others to take a look. #1112 is an attempt at the same, but I don't think it finished. @blantonl can you take a look at this?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants