FFmpeg
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 */
type
it s the only field you need to keep assuming you have a context There is some magic you don t need to care about around this just let it vf type
Definition:
writing_filters.txt:86
signature
static const char signature[]
Definition:
ipmovie.c:615
ff_rtmpe_gen_pub_key
int ff_rtmpe_gen_pub_key(URLContext *h, uint8_t *buf)
Initialize the Diffie-Hellmann context and generate the public key.
Definition:
rtmpcrypt.c:122
ff_rtmpe_compute_secret_key
int ff_rtmpe_compute_secret_key(URLContext *h, const uint8_t *serverdata, const uint8_t *clientdata, int type)
Compute the shared secret key and initialize the RC4 encryption.
Definition:
rtmpcrypt.c:145
URLContext
Definition:
url.h:38
ff_rtmpe_update_keystream
int ff_rtmpe_update_keystream(URLContext *h)
Update the keystream and set RC4 keys for encryption.
Definition:
rtmpcrypt.c:223
url.h
uint8_t
uint8_t
Definition:
audio_convert.c:194
h
h
Definition:
vp9dsp_template.c:2038
ff_rtmpe_encrypt_sig
void ff_rtmpe_encrypt_sig(URLContext *h, uint8_t *signature, const uint8_t *digest, int type)
Encrypt the signature.
Definition:
rtmpcrypt.c:207
Generated on Wed Aug 24 2022 21:34:45 for FFmpeg by
1.8.17