Merge "res_srtp: Enable AES-256 and AES-GCM."

This commit is contained in:
zuul
2016-07-21 21:11:07 -05:00
committed by Gerrit Code Review
9 changed files with 811 additions and 119 deletions

View File

@@ -841,6 +841,16 @@
/* Define to 1 if you have the Secure RTP library. */
#undef HAVE_SRTP
/* Define to 1 if SRTP has the SRTP Library AES-192 (ICM) feature. */
#undef HAVE_SRTP_192
/* Define to 1 if SRTP has the SRTP Library AES-256 (ICM) feature. */
#undef HAVE_SRTP_256
/* Define to 1 if SRTP has the SRTP Library AES-128 (GCM) and AES-256 (GCM)
feature. */
#undef HAVE_SRTP_GCM
/* Define to 1 if SRTP has the SRTP Library Shutdown Function feature. */
#undef HAVE_SRTP_SHUTDOWN

View File

@@ -21,6 +21,8 @@
#ifndef _ASTERISK_RES_SRTP_H
#define _ASTERISK_RES_SRTP_H
#include "asterisk.h" /* for size_t */
struct ast_srtp;
struct ast_srtp_policy;
struct ast_rtp_instance;
@@ -52,9 +54,17 @@ struct ast_srtp_res {
/* Crypto suites */
enum ast_srtp_suite {
/* https://www.iana.org/assignments/srtp-protection/srtp-protection.xhtml */
AST_AES_CM_128_HMAC_SHA1_80 = 1,
AST_AES_CM_128_HMAC_SHA1_32 = 2,
AST_F8_128_HMAC_SHA1_80 = 3
AST_AES_CM_128_HMAC_SHA1_32,
AST_AES_CM_256_HMAC_SHA1_80,
AST_AES_CM_256_HMAC_SHA1_32,
AST_AES_GCM_128 = 7,
AST_AES_GCM_256,
AST_AES_GCM_128_8,
AST_AES_GCM_256_8,
AST_AES_CM_192_HMAC_SHA1_80,
AST_AES_CM_192_HMAC_SHA1_32,
};
struct ast_srtp_policy_res {

View File

@@ -20,8 +20,7 @@
*
* \brief SRTP and SDP Security descriptions
*
* Specified in RFC 4568
* Specified in RFC 3711
* Specified in RFC 3711, 6188, 7714, and 4568
*
* \author Mikael Magnusson <mikma@users.sourceforge.net>
*/
@@ -29,7 +28,8 @@
#ifndef _SDP_SRTP_H
#define _SDP_SRTP_H
#include <asterisk/rtp_engine.h>
#include "asterisk/linkedlists.h" /* for AST_LIST_ENTRY */
#include "asterisk/rtp_engine.h" /* for ast_rtp_instance */
struct ast_sdp_crypto;
@@ -37,12 +37,18 @@ struct ast_sdp_crypto;
struct ast_sdp_srtp {
unsigned int flags;
struct ast_sdp_crypto *crypto;
AST_LIST_ENTRY(ast_sdp_srtp) sdp_srtp_list;
};
/* SRTP flags */
#define AST_SRTP_CRYPTO_OFFER_OK (1 << 1)
#define AST_SRTP_CRYPTO_TAG_32 (1 << 2)
#define AST_SRTP_CRYPTO_TAG_80 (1 << 3)
#define AST_SRTP_CRYPTO_OFFER_OK (1 << 1)
#define AST_SRTP_CRYPTO_TAG_32 (1 << 2)
#define AST_SRTP_CRYPTO_TAG_80 (1 << 3)
#define AST_SRTP_CRYPTO_TAG_16 (1 << 4)
#define AST_SRTP_CRYPTO_TAG_8 (1 << 5)
#define AST_SRTP_CRYPTO_AES_192 (1 << 6)
#define AST_SRTP_CRYPTO_AES_256 (1 << 7)
#define AST_SRTP_CRYPTO_OLD_NAME (1 << 8)
/*!
* \brief allocate a ast_sdp_srtp structure