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
|
Metadata-Version: 1.1
Name: pylibsrtp
Version: 0.6.1
Summary: Python wrapper around the libsrtp library
Home-page: https://github.com/aiortc/pylibsrtp
Author: Jeremy Lainé
Author-email: jeremy.laine@m4x.org
License: BSD
Description: pylibsrtp
=========
|rtd| |pypi-v| |pypi-pyversions| |pypi-l| |pypi-wheel| |travis| |codecov|
.. |rtd| image:: https://readthedocs.org/projects/pylibsrtp/badge/?version=latest
:target: https://pylibsrtp.readthedocs.io/
.. |pypi-v| image:: https://img.shields.io/pypi/v/pylibsrtp.svg
:target: https://pypi.python.org/pypi/pylibsrtp
.. |pypi-pyversions| image:: https://img.shields.io/pypi/pyversions/pylibsrtp.svg
:target: https://pypi.python.org/pypi/pylibsrtp
.. |pypi-l| image:: https://img.shields.io/pypi/l/pylibsrtp.svg
:target: https://pypi.python.org/pypi/pylibsrtp
.. |pypi-wheel| image:: https://img.shields.io/pypi/wheel/pylibsrtp.svg
:target: https://pypi.python.org/pypi/pylibsrtp
.. |travis| image:: https://img.shields.io/travis/com/aiortc/pylibsrtp.svg
:target: https://travis-ci.com/aiortc/pylibsrtp
.. |codecov| image:: https://img.shields.io/codecov/c/github/aiortc/pylibsrtp.svg
:target: https://codecov.io/gh/aiortc/pylibsrtp
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.
On Debian/Ubuntu run:
.. code-block:: console
$ apt install libsrtp2-dev
On OS X run:
.. code-block:: console
$ brew install srtp
License
-------
``pylibsrtp`` is released under the `BSD license`_.
.. _BSD license: https://pylibsrtp.readthedocs.io/en/stable/license.html
Platform: UNKNOWN
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.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Topic :: Communications :: Telephony
Classifier: Topic :: Security :: Cryptography
|