FFmpeg
Main Page
Related Pages
Modules
Data Structures
Files
Examples
File List
Globals
•
All
Data Structures
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
libavformat
rtmpcrypt.h
Go to the documentation of this file.
1
/*
2
* RTMPE encryption utilities
3
* Copyright (c) 2012 Samuel Pitoiset
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_RTMPCRYPT_H
23
#define AVFORMAT_RTMPCRYPT_H
24
25
#include <stdint.h>
26
27
#include "
url.h
"
28
29
/**
30
* Initialize the Diffie-Hellmann context and generate the public key.
31
*
32
* @param h an URLContext
33
* @param buf handshake data (1536 bytes)
34
* @return zero on success, negative value otherwise
35
*/
36
int
ff_rtmpe_gen_pub_key
(
URLContext
*h,
uint8_t
*buf);
37
38
/**
39
* Compute the shared secret key and initialize the RC4 encryption.
40
*
41
* @param h an URLContext
42
* @param serverdata server data (1536 bytes)
43
* @param clientdata client data (1536 bytes)
44
* @param type the position of the server digest
45
* @return zero on success, negative value otherwise
46
*/
47
int
ff_rtmpe_compute_secret_key
(
URLContext
*h,
const
uint8_t
*serverdata,
48
const
uint8_t
*clientdata,
int
type);
49
50
/**
51
* Encrypt the signature.
52
*
53
* @param h an URLContext
54
* @param signature the signature to encrypt
55
* @param digest the digest used for finding the encryption key
56
* @param type type of encryption (8 for XTEA, 9 for Blowfish)
57
*/
58
void
ff_rtmpe_encrypt_sig
(
URLContext
*h,
uint8_t
*
signature
,
59
const
uint8_t
*digest,
int
type);
60
61
/**
62
* Update the keystream and set RC4 keys for encryption.
63
*
64
* @param h an URLContext
65
* @return zero on success, negative value otherwise
66
*/
67
int
ff_rtmpe_update_keystream
(
URLContext
*h);
68
69
#endif
/* AVFORMAT_RTMPCRYPT_H */
Generated on Sat May 25 2013 03:58:48 for FFmpeg by
1.8.2