1 | /* |
2 | * Copyright 2011-2016 The OpenSSL Project Authors. All Rights Reserved. |
3 | * |
4 | * Licensed under the Apache License 2.0 (the "License"). You may not use |
5 | * this file except in compliance with the License. You can obtain a copy |
6 | * in the file LICENSE in the source distribution or at |
7 | * https://www.openssl.org/source/license.html |
8 | */ |
9 | |
10 | /* |
11 | * DTLS code by Eric Rescorla <ekr@rtfm.com> |
12 | * |
13 | * Copyright (C) 2006, Network Resonance, Inc. Copyright (C) 2011, RTFM, Inc. |
14 | */ |
15 | |
16 | #ifndef OPENSSL_SRTP_H |
17 | # define OPENSSL_SRTP_H |
18 | # pragma once |
19 | |
20 | # include <openssl/macros.h> |
21 | # ifndef OPENSSL_NO_DEPRECATED_3_0 |
22 | # define |
23 | # endif |
24 | |
25 | # include <openssl/ssl.h> |
26 | |
27 | #ifdef __cplusplus |
28 | extern "C" { |
29 | #endif |
30 | |
31 | # define SRTP_AES128_CM_SHA1_80 0x0001 |
32 | # define SRTP_AES128_CM_SHA1_32 0x0002 |
33 | # define SRTP_AES128_F8_SHA1_80 0x0003 |
34 | # define SRTP_AES128_F8_SHA1_32 0x0004 |
35 | # define SRTP_NULL_SHA1_80 0x0005 |
36 | # define SRTP_NULL_SHA1_32 0x0006 |
37 | |
38 | /* AEAD SRTP protection profiles from RFC 7714 */ |
39 | # define SRTP_AEAD_AES_128_GCM 0x0007 |
40 | # define SRTP_AEAD_AES_256_GCM 0x0008 |
41 | |
42 | /* DOUBLE AEAD SRTP protection profiles from RFC 8723 */ |
43 | # define SRTP_DOUBLE_AEAD_AES_128_GCM_AEAD_AES_128_GCM 0x0009 |
44 | # define SRTP_DOUBLE_AEAD_AES_256_GCM_AEAD_AES_256_GCM 0x000A |
45 | |
46 | /* ARIA SRTP protection profiles from RFC 8269 */ |
47 | # define SRTP_ARIA_128_CTR_HMAC_SHA1_80 0x000B |
48 | # define SRTP_ARIA_128_CTR_HMAC_SHA1_32 0x000C |
49 | # define SRTP_ARIA_256_CTR_HMAC_SHA1_80 0x000D |
50 | # define SRTP_ARIA_256_CTR_HMAC_SHA1_32 0x000E |
51 | # define SRTP_AEAD_ARIA_128_GCM 0x000F |
52 | # define SRTP_AEAD_ARIA_256_GCM 0x0010 |
53 | |
54 | # ifndef OPENSSL_NO_SRTP |
55 | |
56 | __owur int SSL_CTX_set_tlsext_use_srtp(SSL_CTX *ctx, const char *profiles); |
57 | __owur int SSL_set_tlsext_use_srtp(SSL *ssl, const char *profiles); |
58 | |
59 | __owur STACK_OF(SRTP_PROTECTION_PROFILE) *SSL_get_srtp_profiles(SSL *ssl); |
60 | __owur SRTP_PROTECTION_PROFILE *SSL_get_selected_srtp_profile(SSL *s); |
61 | |
62 | # endif |
63 | |
64 | #ifdef __cplusplus |
65 | } |
66 | #endif |
67 | |
68 | #endif |
69 | |