Move libs/srtp/* to modules/access/rtp/

This commit is contained in:
Rémi Denis-Courmont 2011-08-30 20:02:50 +03:00
parent e93de8eb50
commit b00db8ce60
12 changed files with 39 additions and 154 deletions

View File

@ -13,9 +13,6 @@ EXTRA_SUBDIRS = m4 \
DIST_SUBDIRS = $(BASE_SUBDIRS) $(EXTRA_SUBDIRS)
SUBDIRS = po compat src
if HAVE_GCRYPT
SUBDIRS += libs/srtp
endif
if BUILD_VLC
SUBDIRS += bin
endif

View File

@ -4259,7 +4259,6 @@ AC_SUBST(FILE_LIBVLC_DLL)
AC_CONFIG_FILES([
Makefile
doc/Makefile
libs/srtp/Makefile
modules/Makefile
m4/Makefile
po/Makefile.in

View File

@ -1,2 +0,0 @@
test-aes
test-recv

View File

@ -1,48 +0,0 @@
# Secure RTP with libgcrypt
# Copyright (C) 2007 Rémi Denis-Courmont
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
AM_CPPFLAGS = @GCRYPT_CFLAGS@
noinst_HEADERS = srtp.h
EXTRA_PROGRAMS = srtp
noinst_LTLIBRARIES = libvlc_srtp.la
check_PROGRAMS = test-aes test-recv
TESTS = $(check_PROGRAMS)
libvlc_srtp_la_SOURCES = srtp.c
libvlc_srtp_la_LIBADD = @GCRYPT_LIBS@
srtp_SOURCES = recv.c
srtp_LDADD = libvlc_srtp.la
test_recv_LDADD = libvlc_srtp.la
test_aes_LDADD = @GCRYPT_LIBS@
lcov-run:
rm -Rf *.gcda lcov
$(MAKE) $(AM_MAKEFLAGS) check
lcov-pre.out:
lcov -c -d . -o lcov.tmp
lcov.out: lcov-pre.out
lcov -r lcov.tmp '*test*' > lcov.out
lcov: lcov.out
genhtml lcov.out -o lcov
.PHONY: lcov-run

View File

@ -1,93 +0,0 @@
/*
* Secure RTP with libgcrypt
* Copyright (C) 2007 Rémi Denis-Courmont
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include <stdint.h>
#include <stddef.h>
#include "srtp.h"
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <netinet/in.h>
int main (void)
{
int fd = socket (AF_INET, SOCK_DGRAM, 0);
struct sockaddr_in addr;
memset (&addr, 0, sizeof (addr));
addr.sin_family = AF_INET;
#ifdef HAVE_SA_LEN
addr.sin_len = sizeof (addr);
#endif
addr.sin_port = htons (10000);
addr.sin_addr.s_addr = htonl (0x7f000001);
if (bind (fd, (struct sockaddr *)&addr, sizeof (addr)))
return 1;
static const uint8_t key[16] =
"\x12\x34\x56\x78\x9A\xBC\xDE\xF0"
"\x12\x34\x56\x78\x9A\xBC\xDE\xF0";
static const uint8_t salt[14] =
"\x12\x34\x56\x78\x90" "\x12\x34\x56\x78\x90" "\x12\x34\x56\x78";
srtp_session_t *s = srtp_create (SRTP_ENCR_AES_CM, SRTP_AUTH_HMAC_SHA1, 10,
SRTP_PRF_AES_CM, 0);
if (s == NULL)
return 1;
if (srtp_setkey (s, key, 16, salt, 14))
goto error;
uint8_t buf[1500];
size_t len;
#if 0
memset (buf, 0, sizeof (buf));
buf[0] = 2 << 6;
buf[1] = 1;
memcpy (buf + 2, &(uint16_t){ htons (9527) }, 2);
memcpy (buf + 8, "\xde\xad\xbe\xef", 4);
memcpy (buf + 4, &(uint32_t){ htonl (1) }, 4);
strcpy ((char *)buf + 12, "a\n");
len = 12 + strlen ((char *)buf + 12) + 1;
#endif
for (;;)
{
len = read (fd, buf, sizeof (buf));
int val = srtp_recv (s, buf, &len);
if (val)
{
fprintf (stderr, "Cannot decrypt: %s\n", strerror (val));
continue;
}
puts ((char *)buf + 12);
//if (srtp_send (s, buf, &len, sizeof (buf)) || srtp_recv (s, buf, &len))
// break;
puts ((char *)buf + 12);
}
error:
srtp_destroy (s);
close (fd);
return 0;
}

2
modules/access/rtp/.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
srtp-test-aes
srtp-test-recv

View File

@ -11,10 +11,40 @@ librtp_plugin_la_CFLAGS = $(AM_CFLAGS)
librtp_plugin_la_LIBADD = $(AM_LIBADD) $(SOCKET_LIBS)
librtp_plugin_la_DEPENDENCIES =
# Secure RTP library
libvlc_srtp_la_SOURCES = srtp.c
libvlc_srtp_la_CPPFLAGS =
libvlc_srtp_la_CFLAGS = $(GCRYPT_CFLAGS)
libvlc_srtp_la_LDFLAGS =
libvlc_srtp_la_LIBADD = $(GCRYPT_LIBS)
srtp_test_recv_CPPFLAGS =
srtp_test_recv_LDADD = libvlc_srtp.la
srtp_test_aes_CPPFLAGS =
srtp_test_aes_LDADD = $(GCRYPT_LIBS)
if HAVE_GCRYPT
librtp_plugin_la_CFLAGS += -DHAVE_SRTP -I$(top_srcdir)/libs/srtp \
$(GCRYPT_CFLAGS)
librtp_plugin_la_LIBADD += $(top_builddir)/libs/srtp/libvlc_srtp.la \
$(GCRYPT_LIBS)
librtp_plugin_la_DEPENDENCIES += $(top_builddir)/libs/srtp/libvlc_srtp.la
noinst_HEADERS = srtp.h
noinst_LTLIBRARIES = libvlc_srtp.la
check_PROGRAMS = srtp-test-aes srtp-test-recv
TESTS = $(check_PROGRAMS)
librtp_plugin_la_CFLAGS += -DHAVE_SRTP $(GCRYPT_CFLAGS)
librtp_plugin_la_LIBADD += libvlc_srtp.la $(GCRYPT_LIBS)
librtp_plugin_la_DEPENDENCIES += libvlc_srtp.la
endif
lcov-run:
rm -Rf *.gcda lcov
$(MAKE) $(AM_MAKEFLAGS) check
lcov-pre.out:
lcov -c -d . -o lcov.tmp
lcov.out: lcov-pre.out
lcov -r lcov.tmp '*test*' > lcov.out
lcov: lcov.out
genhtml lcov.out -o lcov
.PHONY: lcov-run

View File

@ -47,8 +47,8 @@ libstream_out_rtp_plugin_la_CFLAGS = $(AM_CFLAGS)
libstream_out_rtp_plugin_la_LIBADD = $(AM_LIBADD) $(SOCKET_LIBS)
libstream_out_rtp_plugin_la_DEPENDENCIES =
if HAVE_GCRYPT
SRTP_CFLAGS = -I$(top_srcdir)/libs/srtp
SRTP_LIBS = $(top_builddir)/libs/srtp/libvlc_srtp.la
SRTP_CFLAGS = -I$(top_srcdir)/modules/access/rtp
SRTP_LIBS = $(top_builddir)/modules/access/rtp/libvlc_srtp.la
libstream_out_rtp_plugin_la_CFLAGS += -DHAVE_SRTP $(SRTP_CFLAGS) \
$(GCRYPT_CFLAGS)
libstream_out_rtp_plugin_la_LIBADD += $(SRTP_LIBS) $(GCRYPT_LIBS)