156 lines
4.5 KiB
Diff
156 lines
4.5 KiB
Diff
|
From 97903498364ae2596e790cb2c2ce9ac76c04d64a Mon Sep 17 00:00:00 2001
|
||
|
From: Danmei Chen <danmei.chen@belledonne-communications.com>
|
||
|
Date: Fri, 19 Jan 2018 10:04:07 +0100
|
||
|
Subject: [PATCH] add compability with srtp2
|
||
|
|
||
|
---
|
||
|
cmake/FindSRTP.cmake | 24 ++++++++++++++++++++----
|
||
|
src/CMakeLists.txt | 1 +
|
||
|
src/crypto/ms_srtp.c | 10 ++--------
|
||
|
src/utils/srtp_prefix.h | 41 +++++++++++++++++++++++++++++++++++++++++
|
||
|
4 files changed, 64 insertions(+), 12 deletions(-)
|
||
|
create mode 100644 src/utils/srtp_prefix.h
|
||
|
|
||
|
diff --git a/cmake/FindSRTP.cmake b/cmake/FindSRTP.cmake
|
||
|
index 988b846a..f720ce7e 100644
|
||
|
--- a/cmake/FindSRTP.cmake
|
||
|
+++ b/cmake/FindSRTP.cmake
|
||
|
@@ -31,20 +31,36 @@ set(_SRTP_ROOT_PATHS
|
||
|
)
|
||
|
|
||
|
find_path(SRTP_INCLUDE_DIRS
|
||
|
- NAMES srtp/srtp.h
|
||
|
+ NAMES srtp2/srtp.h
|
||
|
HINTS _SRTP_ROOT_PATHS
|
||
|
PATH_SUFFIXES include
|
||
|
)
|
||
|
|
||
|
if(SRTP_INCLUDE_DIRS)
|
||
|
set(HAVE_SRTP_SRTP_H 1)
|
||
|
-endif()
|
||
|
-
|
||
|
-find_library(SRTP_LIBRARIES
|
||
|
+ set(SRTP_VERSION 2)
|
||
|
+ find_library(SRTP_LIBRARIES
|
||
|
+ NAMES srtp2
|
||
|
+ HINTS ${_SRTP_ROOT_PATHS}
|
||
|
+ PATH_SUFFIXES bin lib
|
||
|
+ )
|
||
|
+else()
|
||
|
+ find_path(SRTP_INCLUDE_DIRS
|
||
|
+ NAMES srtp/srtp.h
|
||
|
+ HINTS _SRTP_ROOT_PATHS
|
||
|
+ PATH_SUFFIXES include
|
||
|
+ )
|
||
|
+ if(SRTP_INCLUDE_DIRS)
|
||
|
+ set(HAVE_SRTP_SRTP_H 1)
|
||
|
+ set(SRTP_VERSION 1)
|
||
|
+ endif()
|
||
|
+ find_library(SRTP_LIBRARIES
|
||
|
NAMES srtp
|
||
|
HINTS ${_SRTP_ROOT_PATHS}
|
||
|
PATH_SUFFIXES bin lib
|
||
|
)
|
||
|
+endif()
|
||
|
+
|
||
|
|
||
|
include(FindPackageHandleStandardArgs)
|
||
|
find_package_handle_standard_args(SRTP
|
||
|
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
|
||
|
index da429764..c46faa62 100644
|
||
|
--- a/src/CMakeLists.txt
|
||
|
+++ b/src/CMakeLists.txt
|
||
|
@@ -183,6 +183,7 @@ set(VOIP_SOURCE_FILES_C
|
||
|
utils/pcap_sender.c
|
||
|
utils/pcap_sender.h
|
||
|
utils/stream_regulator.c
|
||
|
+ utils/srtp_prefix.h
|
||
|
voip/audioconference.c
|
||
|
voip/audiostream.c
|
||
|
voip/bandwidthcontroller.c
|
||
|
diff --git a/src/crypto/ms_srtp.c b/src/crypto/ms_srtp.c
|
||
|
index 5a510c99..67810316 100644
|
||
|
--- a/src/crypto/ms_srtp.c
|
||
|
+++ b/src/crypto/ms_srtp.c
|
||
|
@@ -25,6 +25,7 @@
|
||
|
#include "mediastreamer2/ms_srtp.h"
|
||
|
#include "mediastreamer2/mediastream.h"
|
||
|
|
||
|
+
|
||
|
#ifdef HAVE_SRTP
|
||
|
|
||
|
/*srtp defines all this stuff*/
|
||
|
@@ -34,13 +35,7 @@
|
||
|
#undef PACKAGE_TARNAME
|
||
|
#undef PACKAGE_VERSION
|
||
|
|
||
|
-#if defined(MS2_WINDOWS_PHONE)
|
||
|
-// Windows phone doesn't use make install
|
||
|
-#include <srtp.h>
|
||
|
-#else
|
||
|
-#include <srtp/srtp.h>
|
||
|
-#endif
|
||
|
-
|
||
|
+#include "srtp_prefix.h"
|
||
|
|
||
|
#include "ortp/b64.h"
|
||
|
|
||
|
@@ -352,7 +347,6 @@ int ms_srtp_init(void)
|
||
|
srtp_init_done++;
|
||
|
}else{
|
||
|
ms_fatal("Couldn't initialize SRTP library: %d.", st);
|
||
|
- err_reporting_init("mediastreamer2");
|
||
|
}
|
||
|
}else srtp_init_done++;
|
||
|
return (int)st;
|
||
|
diff --git a/src/utils/srtp_prefix.h b/src/utils/srtp_prefix.h
|
||
|
new file mode 100644
|
||
|
index 00000000..68bde496
|
||
|
--- /dev/null
|
||
|
+++ b/src/utils/srtp_prefix.h
|
||
|
@@ -0,0 +1,41 @@
|
||
|
+/*
|
||
|
+ mediastreamer2 library - modular sound and video processing and streaming
|
||
|
+ Copyright (C) 2006-2014 Belledonne Communications, Grenoble
|
||
|
+
|
||
|
+ 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||
|
+*/
|
||
|
+#ifndef __SRTP2_H__
|
||
|
+#define __SRTP2_H__
|
||
|
+
|
||
|
+#if defined(MS2_WINDOWS_PHONE)
|
||
|
+// Windows phone doesn't use make install
|
||
|
+#include <srtp.h>
|
||
|
+#elif SRTP_VERSION==1
|
||
|
+#include <srtp/srtp.h>
|
||
|
+#else
|
||
|
+#include <srtp2/srtp.h>
|
||
|
+#define err_status_t srtp_err_status_t
|
||
|
+#define err_status_ok srtp_err_status_ok
|
||
|
+#define crypto_policy_t srtp_crypto_policy_t
|
||
|
+#define crypto_policy_set_aes_cm_256_hmac_sha1_80 srtp_crypto_policy_set_aes_cm_256_hmac_sha1_80
|
||
|
+#define crypto_policy_set_aes_cm_128_hmac_sha1_32 srtp_crypto_policy_set_aes_cm_128_hmac_sha1_32
|
||
|
+#define crypto_policy_set_aes_cm_128_null_auth srtp_crypto_policy_set_aes_cm_128_null_auth
|
||
|
+#define crypto_policy_set_null_cipher_hmac_sha1_80 srtp_crypto_policy_set_null_cipher_hmac_sha1_80
|
||
|
+#define crypto_policy_set_aes_cm_128_hmac_sha1_80 srtp_crypto_policy_set_aes_cm_128_hmac_sha1_80
|
||
|
+#define crypto_policy_set_aes_cm_256_hmac_sha1_32 srtp_crypto_policy_set_aes_cm_256_hmac_sha1_32
|
||
|
+#define ssrc_t srtp_ssrc_t
|
||
|
+#endif
|
||
|
+
|
||
|
+#endif
|
||
|
--
|
||
|
2.21.0
|
||
|
|