Add srtp lib package

This patch adds support for the Secure Real-time Transport Protocol (SRTP)
library libsrtp.

This is needed for closing #8915 ticket.

Signed-off-by: Victor Seva <linuxmaniac@torreviejawireless.org>

git-svn-id: svn://svn.openwrt.org/openwrt/packages@29807 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
jow 2012-01-19 15:43:12 +00:00
parent c3d62a22d7
commit 79c9e8681d
6 changed files with 308 additions and 0 deletions

63
libs/srtp/Makefile Normal file
View File

@ -0,0 +1,63 @@
#
# Copyright (C) 2011 OpenWrt.org
# Copyright (C) 2011 Victor Seva <linuxmaniac@torreviejawireless.org>
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=srtp
PKG_VERSION:=1.4.4
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tgz
PKG_SOURCE_URL:=@SF/srtp
PKG_MD5SUM:=9b449edb011c934ca97009e7e0566d22
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)
include $(INCLUDE_DIR)/package.mk
TARGET_CFLAGS += $(FPIC)
define Package/libsrtp
SECTION:=libs
CATEGORY:=Libraries
TITLE:=Secure Real-time Transport Protocol (SRTP) library
URL:=http://sourceforge.net/projects/srtp
MAINTAINER:=Victor Seva <linuxmaniac@torreviejawireless.com>
endef
define Package/libsrtp/description
Open-source implementation of the Secure Real-time Transport
Protocol (SRTP) originally authored by Cisco Systems, Inc.
It is available under a BSD-style license.
endef
define Build/Configure
$(call Build/Configure/Default, \
--disable-stdout \
--enable-syslog \
)
endef
define Build/Compile
$(MAKE) -C $(PKG_BUILD_DIR) \
DESTDIR="$(PKG_INSTALL_DIR)" all install
endef
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/include
$(CP) $(PKG_INSTALL_DIR)/usr/include/srtp $(1)/usr/include/
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libsrtp.{a,so*} $(1)/usr/lib/
endef
define Package/libsrtp/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libsrtp.so.* \
$(1)/usr/lib/
endef
$(eval $(call BuildPackage,libsrtp))

View File

@ -0,0 +1,59 @@
Description: Fix MIPS namespace collision
Author: Thiemo Seufer <ths@networkno.de>
Origin: vendor, http://bugs.debian.org/cgi-bin/bugreport.cgi?msg=24;bug=439976
Bug-Debian: http://bugs.debian.org/439976
Last-Update: 2010-02-28
--- a/test/srtp_driver.c
+++ b/test/srtp_driver.c
@@ -338,7 +338,7 @@
if (do_codec_timing) {
srtp_policy_t policy;
int ignore;
- double mips = mips_estimate(1000000000, &ignore);
+ double mips_est = mips_estimate(1000000000, &ignore);
crypto_policy_set_rtp_default(&policy.rtp);
crypto_policy_set_rtcp_default(&policy.rtcp);
@@ -350,33 +350,33 @@
policy.allow_repeat_tx = 0;
policy.next = NULL;
- printf("mips estimate: %e\n", mips);
+ printf("mips estimate: %e\n", mips_est);
printf("testing srtp processing time for voice codecs:\n");
printf("codec\t\tlength (octets)\t\tsrtp instructions/second\n");
printf("G.711\t\t%d\t\t\t%e\n", 80,
- (double) mips * (80 * 8) /
+ (double) mips_est * (80 * 8) /
srtp_bits_per_second(80, &policy) / .01 );
printf("G.711\t\t%d\t\t\t%e\n", 160,
- (double) mips * (160 * 8) /
+ (double) mips_est * (160 * 8) /
srtp_bits_per_second(160, &policy) / .02);
printf("G.726-32\t%d\t\t\t%e\n", 40,
- (double) mips * (40 * 8) /
+ (double) mips_est * (40 * 8) /
srtp_bits_per_second(40, &policy) / .01 );
printf("G.726-32\t%d\t\t\t%e\n", 80,
- (double) mips * (80 * 8) /
+ (double) mips_est * (80 * 8) /
srtp_bits_per_second(80, &policy) / .02);
printf("G.729\t\t%d\t\t\t%e\n", 10,
- (double) mips * (10 * 8) /
+ (double) mips_est * (10 * 8) /
srtp_bits_per_second(10, &policy) / .01 );
printf("G.729\t\t%d\t\t\t%e\n", 20,
- (double) mips * (20 * 8) /
+ (double) mips_est * (20 * 8) /
srtp_bits_per_second(20, &policy) / .02 );
printf("Wideband\t%d\t\t\t%e\n", 320,
- (double) mips * (320 * 8) /
+ (double) mips_est * (320 * 8) /
srtp_bits_per_second(320, &policy) / .01 );
printf("Wideband\t%d\t\t\t%e\n", 640,
- (double) mips * (640 * 8) /
+ (double) mips_est * (640 * 8) /
srtp_bits_per_second(640, &policy) / .02 );
}

View File

@ -0,0 +1,33 @@
Description: Fix data alignment
Author: "Martin Guy" <martinwguy@yahoo.it>
Origin: vendor, http://bugs.debian.org/cgi-bin/bugreport.cgi?msg=5;bug=470505
Bug: http://sourceforge.net/tracker/index.php?func=detail&aid=1912057&group_id=38894&atid=423799
Bug-Debian: http://bugs.debian.org/470505
Last-Update: 2011-05-30
--- a/test/srtp_driver.c
+++ b/test/srtp_driver.c
@@ -1195,7 +1195,6 @@
* These packets were made with the default SRTP policy.
*/
-
err_status_t
srtp_validate() {
uint8_t srtp_plaintext_ref[28] = {
@@ -1204,14 +1203,14 @@
0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab,
0xab, 0xab, 0xab, 0xab
};
- uint8_t srtp_plaintext[38] = {
+ uint8_t srtp_plaintext[38] __attribute__((aligned(4))) = {
0x80, 0x0f, 0x12, 0x34, 0xde, 0xca, 0xfb, 0xad,
0xca, 0xfe, 0xba, 0xbe, 0xab, 0xab, 0xab, 0xab,
0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab, 0xab,
0xab, 0xab, 0xab, 0xab, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
- uint8_t srtp_ciphertext[38] = {
+ uint8_t srtp_ciphertext[38] __attribute__((aligned(4))) = {
0x80, 0x0f, 0x12, 0x34, 0xde, 0xca, 0xfb, 0xad,
0xca, 0xfe, 0xba, 0xbe, 0x4e, 0x55, 0xdc, 0x4c,
0xe7, 0x99, 0x78, 0xd8, 0x8c, 0xa4, 0xd2, 0x15,

View File

@ -0,0 +1,94 @@
Description: Update Doxyfile and header template
Author: Jonas Smedegaard <dr@jones.dk>
Last-Update: 2010-02-28
--- a/doc/Makefile.in
+++ b/doc/Makefile.in
@@ -25,6 +25,7 @@
echo "*** Sorry, can't build doc outside source dir"; exit 1; \
fi
sed 's/LIBSRTPVERSION/$(version)/' header.template > header.tex
+ doxygen -u
doxygen
sed 's/\subsection/\section/' latex/index.tex > latex/index.tmp
mv latex/index.tmp latex/index.tex
@@ -38,7 +39,7 @@
cp latex/refman.pdf crypto.pdf
clean:
- rm -rf latex/ header.tex
+ rm -rf latex/ header.tex Doxyfile.bak
for a in * ; do \
if [ -f "$$a~" ] ; then rm -f $$a~; fi; \
done;
--- a/doc/header.template
+++ b/doc/header.template
@@ -6,28 +6,40 @@
%
\documentclass[letterpaper]{book}
\usepackage{makeidx}
-\usepackage{fancyhdr}
\usepackage{graphicx}
\usepackage{multicol}
\usepackage{float}
+\usepackage{listings}
+\usepackage{color}
+\usepackage{ifthen}
+\usepackage[table]{xcolor}
\usepackage{textcomp}
\usepackage{alltt}
-\usepackage{times}
-\usepackage{graphicx}
-\ifx\pdfoutput\undefined
-\usepackage[ps2pdf,
+\usepackage{ifpdf}
+\ifpdf
+\usepackage[pdftex,
pagebackref=true,
colorlinks=true,
- linkcolor=blue
+ linkcolor=blue,
+ unicode
]{hyperref}
\else
-\usepackage[pdftex,
+\usepackage[ps2pdf,
pagebackref=true,
colorlinks=true,
- linkcolor=blue
+ linkcolor=blue,
+ unicode
]{hyperref}
+\usepackage{pspicture}
\fi
+\usepackage[utf8]{inputenc}
+\usepackage{mathptmx}
+\usepackage[scaled=.90]{helvet}
+\usepackage{courier}
+\usepackage{sectsty}
+\usepackage[titles]{tocloft}
\usepackage{doxygen}
+\lstset{language=C++,inputencoding=utf8,basicstyle=\footnotesize,breaklines=true,breakatwhitespace=true,tabsize=3,numbers=left }
\makeindex
\setcounter{tocdepth}{1}
\renewcommand{\footrulewidth}{0.4pt}
@@ -59,7 +71,9 @@
\selectfont
+\renewcommand{\familydefault}{\sfdefault}
\begin{document}
+\hypersetup{pageanchor=false}
\begin{titlepage}
\vspace*{4cm}
%\begin{center}
@@ -107,9 +121,6 @@
\clearemptydoublepage
\pagenumbering{roman}
\tableofcontents
-%\clearemptydoublepage
-
\clearemptydoublepage
\pagenumbering{arabic}
-
-
+\hypersetup{pageanchor=true}

View File

@ -0,0 +1,55 @@
Description: Hack build routines to compile shared library
Author: loki_val and solar
Origin: http://sources.gentoo.org/viewcvs.py/gentoo-x86/net-libs/libsrtp/files/libsrtp-1.4.4-shared.patch
Last-Update: 2010-03-19
--- a/Makefile.in
+++ b/Makefile.in
@@ -15,7 +15,7 @@
.PHONY: all test build_table_apps
-all: test
+all: libsrtp.so test
runtest: build_table_apps test
@echo "running libsrtp test applications..."
@@ -67,7 +67,7 @@
# implicit rules for object files and test apps
%.o: %.c
- $(COMPILE) -c $< -o $@
+ $(COMPILE) -fPIC -c $< -o $@
%$(EXE): %.c
$(COMPILE) $(LDFLAGS) $< -o $@ $(SRTPLIB) $(LIBS)
@@ -105,6 +105,9 @@
ar cr libsrtp.a $^
$(RANLIB) libsrtp.a
+libsrtp.so: $(srtpobj) $(cryptobj) $(gdoi)
+ $(CC) $(LDFLAGS) -shared -Wl,-soname,libsrtp.so.0 -o libsrtp.so.0.0 $^
+
# libcryptomath.a contains general-purpose routines that are used to
# generate tables and verify cryptoalgorithm implementations - this
# library is not meant to be included in production code
@@ -198,6 +201,11 @@
cp $(srcdir)/crypto/include/*.h $(DESTDIR)$(includedir)/srtp
if [ "$(srcdir)" != "." ]; then cp crypto/include/*.h $(DESTDIR)$(includedir)/srtp; fi
if [ -f libsrtp.a ]; then cp libsrtp.a $(DESTDIR)$(libdir)/; fi
+ if [ -f libsrtp.so.0.0 ]; then \
+ cp libsrtp.so.0.0 $(DESTDIR)$(libdir)/; \
+ ln -s libsrtp.so.0.0 $(DESTDIR)$(libdir)/libsrtp.so.0; \
+ ln -s libsrtp.so.0.0 $(DESTDIR)$(libdir)/libsrtp.so; \
+ fi
uninstall:
rm -f $(DESTDIR)$(includedir)/srtp/*.h
@@ -206,7 +214,7 @@
clean:
rm -rf $(cryptobj) $(srtpobj) $(cryptomath) TAGS \
- libcryptomath.a libsrtp.a core *.core test/core
+ libcryptomath.a libsrtp.a libsrtp.so.0.0 core *.core test/core
for a in * */* */*/*; do \
if [ -f "$$a~" ] ; then rm -f $$a~; fi; \
done;

4
libs/srtp/patches/series Normal file
View File

@ -0,0 +1,4 @@
1003_fix_mips_namespace_collision.patch
1005_fix_data_alignment.patch
1007_update_Doxyfile.patch
1008_shared-lib.patch