Files
David Cermak 6255b400ae bump(libsrtp): Initial version v2.8.0
2.8.0
Features
- add component (libsrtp v2.8.0 + ESP-IDF mbedTLS port) (e5997168)
Bug Fixes
- drop hand-authored CHANGELOG.md (auto-generated by bump commit) (ff81166c)
- address PR #1060 review feedback (04f64489)
Updated
- ci(libsrtp): Add libsrtp into components to publish (ee4fc8e9)
2026-06-22 11:56:52 +02:00
..
2026-06-22 11:56:52 +02:00

libsrtp

Component Registry

libsrtp (Cisco) port for ESP-IDF using the mbedtls crypto backend with AES-GCM.

Used for SRTP/SRTCP packet protection in WebRTC and other RTP-based protocols on ESP32-series chips.

Not the same as espressif/esp_libsrtp. The existing espressif/esp_libsrtp component is a pre-built closed-source libSRTP binary distributed via esp-adf-libs (Custom license). libsrtp is an open-source wrapper around upstream cisco/libsrtp 2.x — built from source as part of your project, BSD-3-Clause upstream + Apache-2.0 port code. Pick libsrtp when you need the source-built, open-source path (e.g. for WebRTC integrations); pick esp_libsrtp when you're already on the ADF binary stack.

Features

  • libsrtp v2.8.0 (commit 24b3bf8)
  • mbedtls crypto backend (AES-CM, AES-GCM, HMAC-SHA1) — IDF's mbedTLS routes AES through the on-chip AES peripheral when CONFIG_MBEDTLS_HARDWARE_AES=y (default)
  • AEAD profiles: AEAD_AES_128_GCM, AEAD_AES_256_GCM
  • SRTP profiles: AES_CM_128_HMAC_SHA1_80, AES_CM_128_HMAC_SHA1_32

Add to a project

idf.py add-dependency "espressif/libsrtp^2.8.0"

Or in your project's main/idf_component.yml:

dependencies:
  espressif/libsrtp: "^2.8.0"

Requires ESP-IDF ≥ 5.4.

Tests

  • test_apps/ — embedded Unity smoke test (init/shutdown + version). Run with pytest_libsrtp.py against esp32 / esp32c3.
  • host_test/ — IDF Linux-target binary that performs an AES-GCM-128 protect/unprotect roundtrip. Run with pytest_libsrtp_linux.py.

Source

This wrapper bundles cisco/libsrtp as a git submodule pinned at the upstream release tag. All SRTP cryptographic implementation is upstream; this repo adds only the ESP-IDF build glue (CMakeLists.txt, port/config.h) plus one small port-side delta in port/crypto_kernel.c (replaces the upstream crypto/kernel/crypto_kernel.c) to opt out of the AES-ICM-192 cipher registration when GCM is enabled. Re-port from upstream when bumping the libsrtp submodule.

License

Apache-2.0 AND BSD-3-Clause — the ESP-IDF port glue under this repo (CMakeLists.txt, port/, Kconfig, build scripts) is Apache-2.0 (see LICENSE); the bundled libsrtp/ submodule remains under upstream's BSD-3-Clause (see libsrtp/LICENSE).