GNOME Bugzilla – Bug 632206
SRTP support
Last modified: 2013-03-25 18:24:24 UTC
hi, is there any plan to support SRTP and ZRTP in gstreamer: http://en.wikipedia.org/wiki/Secure_Real-time_Transport_Protocol http://en.wikipedia.org/wiki/ZRTP there is an open source library fot srtp protocol: http://srtp.sourceforge.net/srtp.html
There is a branch of gst-p-bad with a srtp element, but it still needs a bit of fixing before it can be merged/used: http://git.collabora.co.uk/?p=user/tester/gst-plugins-bad.git;a=shortlog;h=refs/heads/srtp-fixes
would be it better to add to bad earlier to more people can test it?
It's not at the point where it needs to be tested, it's at the point where it needs to be kind of working first.
any progress?
no
I ported changes from ocrete repository to a recent gst-plugins-bad version, also i fixed some errors to make it compile and removed libsrtp to make the plugin external. The code is here https://github.com/madmac2501/gst-srtp At the moment i don't plan to do anymore.
There were some issues with making libsrtp external, but I don't remember the details. Although I do remember that debian has a patched version of libsrtp and that you must check against a non-debianized version to be sure it's correct.
I updated my srtp branch, I pushed it on git.collabora.co.uk.. I think it's a good start.. That said, re-keying needs to happen more often than I expected, so the signalling has to be up to par, etc..
Now merged upstream !! commit 4eb960d6c348216f4ba946b8ae3e3b64a54c7766 Author: Olivier Crête <olivier.crete@collabora.com> Date: Tue Mar 12 19:47:51 2013 -0400 srtp: Add SRTP plugin based on libsrtp In large part the work of Gabriel Millaire
Hi Olivier, I installed the gstreamer with srtp support, but when I test it, I always obtain the message "Dropping buffer" in the client (receiver). Can you share with us a server and a client example? Thanks.
There was a bug preventing specifying the key through the CAPS, it has now been fixed. And here is an example (which I also put in the doc in the elements). A more dynamic application probably wants to provide the SRTP key by listening to the "request-key" signal from srtpdec to provide the key just-in-time. gst-launch-1.0 udpsrc port=5004 caps='application/x-srtp, payload=(int)8, ssrc=(uint)1356955624, timestamp-offset=(uint)1784313208, seqnum-offset=(uint)43241, srtp-key=(buffer)012345678901234567890123456789012345678901234567890123456789, srtp-cipher=(string)aes-128-icm, srtp-auth=(string)hmac-sha1-80, srtcp-cipher=(string)aes-128-icm, srtcp-auth=(string)hmac-sha1-80' ! srtpdec ! rtppcmadepay gst-launch-1.0 audiotestsrc ! alawenc ! rtppcmapay ! 'application/x-rtp, payload=(int)8, ssrc=(uint)1356955624' ! srtpenc key="012345678901234567890123456789012345678901234567890123456789" ! udpsink port=5004