FFmpeg
|
RTMPE protocol. More...
#include "libavutil/blowfish.h"
#include "libavutil/intreadwrite.h"
#include "libavutil/opt.h"
#include "libavutil/rc4.h"
#include "libavutil/xtea.h"
#include "internal.h"
#include "rtmp.h"
#include "rtmpdh.h"
#include "rtmpcrypt.h"
#include "url.h"
Go to the source code of this file.
Data Structures | |
struct | RTMPEContext |
Macros | |
#define | OFFSET(x) offsetof(RTMPEContext, x) |
#define | DEC AV_OPT_FLAG_DECODING_PARAM |
Functions | |
int | ff_rtmpe_gen_pub_key (URLContext *h, uint8_t *buf) |
Initialize the Diffie-Hellmann context and generate the public key. More... | |
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. More... | |
static void | rtmpe8_sig (const uint8_t *in, uint8_t *out, int key_id) |
static void | rtmpe9_sig (const uint8_t *in, uint8_t *out, int key_id) |
void | ff_rtmpe_encrypt_sig (URLContext *h, uint8_t *sig, const uint8_t *digest, int type) |
Encrypt the signature. More... | |
int | ff_rtmpe_update_keystream (URLContext *h) |
Update the keystream and set RC4 keys for encryption. More... | |
static int | rtmpe_close (URLContext *h) |
static int | rtmpe_open (URLContext *h, const char *uri, int flags) |
static int | rtmpe_read (URLContext *h, uint8_t *buf, int size) |
static int | rtmpe_write (URLContext *h, const uint8_t *buf, int size) |
Variables | |
static const uint8_t | rtmpe8_keys [16][16] |
static const uint8_t | rtmpe9_keys [16][24] |
static const AVOption | ffrtmpcrypt_options [] |
static const AVClass | ffrtmpcrypt_class |
const URLProtocol | ff_ffrtmpcrypt_protocol |
RTMPE protocol.
Definition in file rtmpcrypt.c.
#define OFFSET | ( | x | ) | offsetof(RTMPEContext, x) |
Definition at line 313 of file rtmpcrypt.c.
#define DEC AV_OPT_FLAG_DECODING_PARAM |
Definition at line 314 of file rtmpcrypt.c.
int ff_rtmpe_gen_pub_key | ( | URLContext * | h, |
uint8_t * | buf | ||
) |
Initialize the Diffie-Hellmann context and generate the public key.
h | an URLContext |
buf | handshake data (1536 bytes) |
Definition at line 122 of file rtmpcrypt.c.
Referenced by rtmp_handshake().
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.
h | an URLContext |
serverdata | server data (1536 bytes) |
clientdata | client data (1536 bytes) |
type | the position of the server digest |
Definition at line 145 of file rtmpcrypt.c.
Referenced by rtmp_handshake().
Definition at line 184 of file rtmpcrypt.c.
Referenced by ff_rtmpe_encrypt_sig().
Definition at line 192 of file rtmpcrypt.c.
Referenced by ff_rtmpe_encrypt_sig().
void ff_rtmpe_encrypt_sig | ( | URLContext * | h, |
uint8_t * | signature, | ||
const uint8_t * | digest, | ||
int | type | ||
) |
Encrypt the signature.
h | an URLContext |
signature | the signature to encrypt |
digest | the digest used for finding the encryption key |
type | type of encryption (8 for XTEA, 9 for Blowfish) |
Definition at line 207 of file rtmpcrypt.c.
Referenced by rtmp_handshake().
int ff_rtmpe_update_keystream | ( | URLContext * | h | ) |
Update the keystream and set RC4 keys for encryption.
h | an URLContext |
Definition at line 223 of file rtmpcrypt.c.
Referenced by rtmp_handshake().
|
static |
Definition at line 238 of file rtmpcrypt.c.
Referenced by rtmpe_open().
|
static |
Definition at line 248 of file rtmpcrypt.c.
|
static |
Definition at line 277 of file rtmpcrypt.c.
|
static |
Definition at line 297 of file rtmpcrypt.c.
|
static |
Definition at line 52 of file rtmpcrypt.c.
Referenced by rtmpe8_sig().
|
static |
Definition at line 87 of file rtmpcrypt.c.
Referenced by rtmpe9_sig().
|
static |
Definition at line 316 of file rtmpcrypt.c.
|
static |
Definition at line 321 of file rtmpcrypt.c.
const URLProtocol ff_ffrtmpcrypt_protocol |
Definition at line 328 of file rtmpcrypt.c.