FFmpeg
srtp.h
Go to the documentation of this file.
1 /*
2  * SRTP encryption/decryption
3  * Copyright (c) 2012 Martin Storsjo
4  *
5  * This file is part of FFmpeg.
6  *
7  * FFmpeg is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU Lesser General Public
9  * License as published by the Free Software Foundation; either
10  * version 2.1 of the License, or (at your option) any later version.
11  *
12  * FFmpeg is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15  * Lesser General Public License for more details.
16  *
17  * You should have received a copy of the GNU Lesser General Public
18  * License along with FFmpeg; if not, write to the Free Software
19  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20  */
21 
22 #ifndef AVFORMAT_SRTP_H
23 #define AVFORMAT_SRTP_H
24 
25 #include <stdint.h>
26 
27 struct AVAES;
28 struct AVHMAC;
29 
30 struct SRTPContext {
31  struct AVAES *aes;
32  struct AVHMAC *hmac;
34  uint8_t master_key[16];
35  uint8_t master_salt[14];
36  uint8_t rtp_key[16], rtcp_key[16];
37  uint8_t rtp_salt[14], rtcp_salt[14];
38  uint8_t rtp_auth[20], rtcp_auth[20];
40  uint32_t roc;
41 
42  uint32_t rtcp_index;
43 };
44 
45 int ff_srtp_set_crypto(struct SRTPContext *s, const char *suite,
46  const char *params);
47 void ff_srtp_free(struct SRTPContext *s);
48 int ff_srtp_decrypt(struct SRTPContext *s, uint8_t *buf, int *lenptr);
49 int ff_srtp_encrypt(struct SRTPContext *s, const uint8_t *in, int len,
50  uint8_t *out, int outlen);
51 
52 #endif /* AVFORMAT_SRTP_H */
AVHMAC
Definition: hmac.c:40
out
FILE * out
Definition: movenc.c:55
ff_srtp_encrypt
int ff_srtp_encrypt(struct SRTPContext *s, const uint8_t *in, int len, uint8_t *out, int outlen)
Definition: srtp.c:239
SRTPContext::aes
struct AVAES * aes
Definition: srtp.h:31
SRTPContext
Definition: srtp.h:30
SRTPContext::rtcp_key
uint8_t rtcp_key[16]
Definition: srtp.h:36
ff_srtp_decrypt
int ff_srtp_decrypt(struct SRTPContext *s, uint8_t *buf, int *lenptr)
Definition: srtp.c:127
SRTPContext::rtcp_auth
uint8_t rtcp_auth[20]
Definition: srtp.h:38
SRTPContext::rtp_hmac_size
int rtp_hmac_size
Definition: srtp.h:33
s
#define s(width, name)
Definition: cbs_vp9.c:198
SRTPContext::rtp_salt
uint8_t rtp_salt[14]
Definition: srtp.h:37
SRTPContext::master_key
uint8_t master_key[16]
Definition: srtp.h:34
SRTPContext::roc
uint32_t roc
Definition: srtp.h:40
SRTPContext::rtcp_index
uint32_t rtcp_index
Definition: srtp.h:42
suite
FFmpeg currently uses a custom build this text attempts to document some of its obscure features and options Makefile the full command issued by make and its output will be shown on the screen DBG Preprocess x86 external assembler files to a dbg asm file in the object which then gets compiled Helps in developing those assembler files DESTDIR Destination directory for the install useful to prepare packages or install FFmpeg in cross environments GEN Set to ‘1’ to generate the missing or mismatched references Makefile builds all the libraries and the executables fate Run the fate test suite
Definition: build_system.txt:28
SRTPContext::rtcp_salt
uint8_t rtcp_salt[14]
Definition: srtp.h:37
ff_srtp_set_crypto
int ff_srtp_set_crypto(struct SRTPContext *s, const char *suite, const char *params)
Definition: srtp.c:66
SRTPContext::rtp_auth
uint8_t rtp_auth[20]
Definition: srtp.h:38
len
int len
Definition: vorbis_enc_data.h:426
SRTPContext::seq_largest
int seq_largest
Definition: srtp.h:39
AVAES
Definition: aes_internal.h:34
SRTPContext::master_salt
uint8_t master_salt[14]
Definition: srtp.h:35
SRTPContext::seq_initialized
int seq_initialized
Definition: srtp.h:39
SRTPContext::rtp_key
uint8_t rtp_key[16]
Definition: srtp.h:36
SRTPContext::rtcp_hmac_size
int rtcp_hmac_size
Definition: srtp.h:33
SRTPContext::hmac
struct AVHMAC * hmac
Definition: srtp.h:32
ff_srtp_free
void ff_srtp_free(struct SRTPContext *s)
Definition: srtp.c:32