Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
4349 Serge 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 
26
 
27
struct AVAES;
28
struct AVHMAC;
29
 
30
struct SRTPContext {
31
    struct AVAES *aes;
32
    struct AVHMAC *hmac;
33
    int rtp_hmac_size, rtcp_hmac_size;
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];
39
    int seq_largest, seq_initialized;
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 */