Skip to content
/ dsrtp Public
forked from belhoest/dsrtp

Decrypting captured SRTP and SRTCP packets.

License

Notifications You must be signed in to change notification settings

vojkic/dsrtp

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dsrtp

image

image

image

Simple front-end for decrypting captured SRTP and SRTCP packets using:

install

Install devel libpcap and libsrtp if you need to, e.g.:

sudo apt-get install libpcap-dev libsrtp0-dev

and then:

pip install dsrtp

usage

Can be via cli or as python lib.

cli

To e.g. decrypt captured packets and write them back to a capture file from command line:

dsrtp test/fixtures/av.pcap /tmp/rtp.pcap -k test/fixtures/av_material.hex -ld

If you have a cluttered capture (e.g. multiple SRTP streams) then you can select e.g. the in-bound stream by address:port like:

dsrtp test/fixtures/av.pcap /tmp/rtp.pcap -k test/fixtures/av_material.hex -ld -i 192.168.121.234:60401 

lib

To do the same in code:

import dsrtp

enc_km = open('test/fixtures/av_material.hex').read()
km = dsrtp.KeyingMaterial.unpack_hex(enc_km)
p = dsrtp.SRTPPolicy(ssrc_type=dsrtp.SRTPPolicy.SSRC_ANY_INBOUND, key=km.local)

with dsrtp.SRTP(p) as ctx, \
        open('test/fixtures/av.pcap', 'rb') as srtp_pcap, \
        open('/tmp/rtp.pcap', 'wb') as rtp_pcap:
  pkts = dsrtp.read_packets(srtp_pcap)
  decrypted_pkts = dsrtp.decrypt_packets(ctx, pkts)
  dsrtp.write_packets(rtp_pcap, decrypted_pkts)

dev

Create a venv:

mkvirtualenv dsrtp
pip install Cython

then get it:

git clone git@github.com:mayfieldrobotics/dsrtp.git
cd dsrtp
workon dsrtp
pip install -e .[test]

and test it:

py.test test/ --cov dsrtp --cov-report term-missing --pep8

release

Tests pass:

py.test test/ --cov dsrtp --cov-report term-missing --pep8

so update __version__ in dsrtp/__init__.py. Commit and tag it:

git commit -am "release v{version}"
git tag -a v{version} -m "release v{version}"
git push --tags

and travis will publish it to pypi.

About

Decrypting captured SRTP and SRTCP packets.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 100.0%