Skip to main content

Python wrapper around the libsrtp library

Project description

License Version Python versions Tests Coverage Documentation

What is pylibsrtp?

pylibsrtp is a Python wrapper around libsrtp, making it possible to encrypt and decrypt Secure Real-time Transport Protocol (SRTP) packets from Python code.

SRTP is a profile of the Real-time Transport Protocol (RTP) which provides confidentiality, message authentication, and replay protection. It is defined by RFC 3711.

You can install pylibsrtp with pip:

$ pip install pylibsrtp

To learn more about pylibsrtp please read the documentation.

Example

#!/usr/bin/env python

from pylibsrtp import Policy, Session

key = (b'\x00' * 30)
rtp = b'\x80\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' + (b'\xd4' * 160)

# protect RTP
tx_policy = Policy(key=key, ssrc_type=Policy.SSRC_ANY_OUTBOUND)
tx_session = Session(policy=tx_policy)
srtp = tx_session.protect(rtp)

# unprotect RTP
rx_policy = Policy(key=key, ssrc_type=Policy.SSRC_ANY_INBOUND)
rx_session = Session(policy=rx_policy)
rtp2 = rx_session.unprotect(srtp)

# check roundtrip worked!
assert rtp2 == rtp

Building pylibsrtp

If you wish to build pylibsrtp yourself, you will need libsrtp version 2.0 or better.

On Debian/Ubuntu run:

$ apt install libsrtp2-dev

On Fedora/CentOS run:

$ dnf install libsrtp-devel

On OS X run:

$ brew install srtp

License

pylibsrtp is released under the BSD license.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pylibsrtp-0.10.0.tar.gz (10.6 kB view hashes)

Uploaded Source

Built Distributions

pylibsrtp-0.10.0-pp310-pypy310_pp73-win_amd64.whl (1.4 MB view hashes)

Uploaded PyPy Windows x86-64

pylibsrtp-0.10.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.1 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

pylibsrtp-0.10.0-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl (2.0 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ i686

pylibsrtp-0.10.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.4 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARM64

pylibsrtp-0.10.0-pp310-pypy310_pp73-macosx_10_9_x86_64.whl (1.7 MB view hashes)

Uploaded PyPy macOS 10.9+ x86-64

pylibsrtp-0.10.0-pp39-pypy39_pp73-win_amd64.whl (1.4 MB view hashes)

Uploaded PyPy Windows x86-64

pylibsrtp-0.10.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.1 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

pylibsrtp-0.10.0-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl (2.0 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ i686

pylibsrtp-0.10.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.4 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARM64

pylibsrtp-0.10.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl (1.7 MB view hashes)

Uploaded PyPy macOS 10.9+ x86-64

pylibsrtp-0.10.0-pp38-pypy38_pp73-win_amd64.whl (1.4 MB view hashes)

Uploaded PyPy Windows x86-64

pylibsrtp-0.10.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.1 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

pylibsrtp-0.10.0-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl (2.0 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ i686

pylibsrtp-0.10.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.4 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARM64

pylibsrtp-0.10.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl (1.7 MB view hashes)

Uploaded PyPy macOS 10.9+ x86-64

pylibsrtp-0.10.0-cp38-abi3-win_amd64.whl (1.4 MB view hashes)

Uploaded CPython 3.8+ Windows x86-64

pylibsrtp-0.10.0-cp38-abi3-win32.whl (1.1 MB view hashes)

Uploaded CPython 3.8+ Windows x86

pylibsrtp-0.10.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.1 MB view hashes)

Uploaded CPython 3.8+ manylinux: glibc 2.17+ x86-64

pylibsrtp-0.10.0-cp38-abi3-manylinux_2_17_i686.manylinux2014_i686.whl (2.1 MB view hashes)

Uploaded CPython 3.8+ manylinux: glibc 2.17+ i686

pylibsrtp-0.10.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.5 MB view hashes)

Uploaded CPython 3.8+ manylinux: glibc 2.17+ ARM64

pylibsrtp-0.10.0-cp38-abi3-macosx_11_0_arm64.whl (2.0 MB view hashes)

Uploaded CPython 3.8+ macOS 11.0+ ARM64

pylibsrtp-0.10.0-cp38-abi3-macosx_10_9_x86_64.whl (1.7 MB view hashes)

Uploaded CPython 3.8+ macOS 10.9+ x86-64

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page