1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148
|
Metadata-Version: 2.4
Name: pylibsrtp
Version: 0.12.0
Summary: Python wrapper around the libsrtp library
Author-email: Jeremy Lainé <jeremy.laine@m4x.org>
License: BSD-3-Clause
Project-URL: homepage, https://github.com/aiortc/pylibsrtp
Project-URL: documentation, https://pylibsrtp.readthedocs.io/
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Communications :: Telephony
Classifier: Topic :: Security :: Cryptography
Requires-Python: >=3.9
Description-Content-Type: text/x-rst
License-File: LICENSE
Requires-Dist: cffi>=1.0.0
Provides-Extra: dev
Requires-Dist: coverage[toml]>=7.2.2; extra == "dev"
Dynamic: license-file
pylibsrtp
=========
.. image:: https://img.shields.io/pypi/l/pylibsrtp.svg
:target: https://pypi.python.org/pypi/pylibsrtp
:alt: License
.. image:: https://img.shields.io/pypi/v/pylibsrtp.svg
:target: https://pypi.python.org/pypi/pylibsrtp
:alt: Version
.. image:: https://img.shields.io/pypi/pyversions/pylibsrtp.svg
:target: https://pypi.python.org/pypi/pylibsrtp
:alt: Python versions
.. image:: https://github.com/aiortc/pylibsrtp/workflows/tests/badge.svg
:target: https://github.com/aiortc/pylibsrtp/actions
:alt: Tests
.. image:: https://img.shields.io/codecov/c/github/aiortc/pylibsrtp.svg
:target: https://codecov.io/gh/aiortc/pylibsrtp
:alt: Coverage
.. image:: https://readthedocs.org/projects/pylibsrtp/badge/?version=latest
:target: https://pylibsrtp.readthedocs.io/
:alt: 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``:
.. code-block:: console
$ pip install pylibsrtp
To learn more about ``pylibsrtp`` please `read the documentation`_.
.. _libsrtp: https://github.com/cisco/libsrtp
.. _RFC 3711: https://tools.ietf.org/html/rfc3711
.. _read the documentation: https://pylibsrtp.readthedocs.io/en/stable/
Example
-------
.. code:: python
#!/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.
Linux
.....
On Debian/Ubuntu run:
.. code-block:: console
$ apt install libsrtp2-dev
On Fedora/CentOS run:
.. code-block:: console
$ dnf install libsrtp-devel
macOS
.....
On macOS run:
.. code-block:: console
$ brew install srtp
You will need to set some environment variables to link against libsrtp:
.. code-block:: console
export CFLAGS=-I$(brew --prefix openssl)/include -I$(brew --prefix srtp)/include
export LDFLAGS=-L$(brew --prefix openssl)/lib -L$(brew --prefix srtp)/lib
License
-------
``pylibsrtp`` is released under the `BSD license`_.
.. _BSD license: https://pylibsrtp.readthedocs.io/en/stable/license.html
|