FFmpeg
Data Structures | Macros | Functions | Variables
tls_mbedtls.c File Reference
#include <mbedtls/version.h>
#include <mbedtls/ctr_drbg.h>
#include <mbedtls/entropy.h>
#include <mbedtls/net_sockets.h>
#include <mbedtls/platform.h>
#include <mbedtls/ssl.h>
#include <mbedtls/x509_crt.h>
#include <mbedtls/debug.h>
#include "avformat.h"
#include "internal.h"
#include "url.h"
#include "tls.h"
#include "libavutil/mem.h"
#include "libavutil/parseutils.h"
#include "libavutil/avstring.h"

Go to the source code of this file.

Data Structures

struct  TLSContext
 

Macros

#define OFFSET(x)   offsetof(TLSContext, x)
 

Functions

static int tls_close (URLContext *h)
 
static int handle_transport_error (URLContext *h, const char *func_name, int react_on_eagain, int ret)
 
static int mbedtls_send (void *ctx, const unsigned char *buf, size_t len)
 
static int mbedtls_recv (void *ctx, unsigned char *buf, size_t len)
 
static void mbedtls_debug (void *ctx, int lvl, const char *file, int line, const char *msg)
 
static void handle_pk_parse_error (URLContext *h, int ret)
 
static void handle_handshake_error (URLContext *h, int ret)
 
static void parse_options (TLSContext *tls_ctxc, const char *uri)
 
static int tls_open (URLContext *h, const char *uri, int flags, AVDictionary **options)
 
static int handle_tls_error (URLContext *h, const char *func_name, int ret)
 
static int tls_read (URLContext *h, uint8_t *buf, int size)
 
static int tls_write (URLContext *h, const uint8_t *buf, int size)
 
static int tls_get_file_handle (URLContext *h)
 
static int tls_get_short_seek (URLContext *h)
 

Variables

static const AVOption options []
 
static const AVClass tls_class
 
const URLProtocol ff_tls_protocol
 

Macro Definition Documentation

◆ OFFSET

#define OFFSET (   x)    offsetof(TLSContext, x)

Definition at line 55 of file tls_mbedtls.c.

Function Documentation

◆ tls_close()

static int tls_close ( URLContext h)
static

Definition at line 57 of file tls_mbedtls.c.

Referenced by tls_open().

◆ handle_transport_error()

static int handle_transport_error ( URLContext h,
const char *  func_name,
int  react_on_eagain,
int  ret 
)
static

Definition at line 74 of file tls_mbedtls.c.

Referenced by mbedtls_recv(), and mbedtls_send().

◆ mbedtls_send()

static int mbedtls_send ( void *  ctx,
const unsigned char *  buf,
size_t  len 
)
static

Definition at line 91 of file tls_mbedtls.c.

Referenced by tls_open().

◆ mbedtls_recv()

static int mbedtls_recv ( void *  ctx,
unsigned char *  buf,
size_t  len 
)
static

Definition at line 104 of file tls_mbedtls.c.

Referenced by tls_open().

◆ mbedtls_debug()

static void mbedtls_debug ( void *  ctx,
int  lvl,
const char *  file,
int  line,
const char *  msg 
)
static

Definition at line 117 of file tls_mbedtls.c.

Referenced by tls_open().

◆ handle_pk_parse_error()

static void handle_pk_parse_error ( URLContext h,
int  ret 
)
static

Definition at line 124 of file tls_mbedtls.c.

Referenced by tls_open().

◆ handle_handshake_error()

static void handle_handshake_error ( URLContext h,
int  ret 
)
static

Definition at line 142 of file tls_mbedtls.c.

Referenced by tls_open().

◆ parse_options()

static void parse_options ( TLSContext tls_ctxc,
const char *  uri 
)
static

Definition at line 178 of file tls_mbedtls.c.

Referenced by tls_open().

◆ tls_open()

static int tls_open ( URLContext h,
const char *  uri,
int  flags,
AVDictionary **  options 
)
static

Definition at line 189 of file tls_mbedtls.c.

◆ handle_tls_error()

static int handle_tls_error ( URLContext h,
const char *  func_name,
int  ret 
)
static

Definition at line 334 of file tls_mbedtls.c.

Referenced by tls_read(), and tls_write().

◆ tls_read()

static int tls_read ( URLContext h,
uint8_t *  buf,
int  size 
)
static

Definition at line 356 of file tls_mbedtls.c.

◆ tls_write()

static int tls_write ( URLContext h,
const uint8_t *  buf,
int  size 
)
static

Definition at line 371 of file tls_mbedtls.c.

◆ tls_get_file_handle()

static int tls_get_file_handle ( URLContext h)
static

Definition at line 386 of file tls_mbedtls.c.

◆ tls_get_short_seek()

static int tls_get_short_seek ( URLContext h)
static

Definition at line 392 of file tls_mbedtls.c.

Variable Documentation

◆ options

const AVOption options[]
static
Initial value:
= {
{"key_password", "Password for the private key file", OFFSET(priv_key_pw), AV_OPT_TYPE_STRING, .flags = TLS_OPTFL },
{ NULL }
}

Definition at line 398 of file tls_mbedtls.c.

Referenced by tls_open().

◆ tls_class

const AVClass tls_class
static
Initial value:
= {
.class_name = "tls",
.item_name = av_default_item_name,
.option = options,
}

Definition at line 404 of file tls_mbedtls.c.

◆ ff_tls_protocol

const URLProtocol ff_tls_protocol
Initial value:
= {
.name = "tls",
.url_open2 = tls_open,
.url_read = tls_read,
.url_write = tls_write,
.url_close = tls_close,
.url_get_file_handle = tls_get_file_handle,
.url_get_short_seek = tls_get_short_seek,
.priv_data_size = sizeof(TLSContext),
.priv_data_class = &tls_class,
}

Definition at line 411 of file tls_mbedtls.c.

TLSContext
Definition: tls_gnutls.c:44
URL_PROTOCOL_FLAG_NETWORK
#define URL_PROTOCOL_FLAG_NETWORK
Definition: url.h:33
TLS_COMMON_OPTIONS
#define TLS_COMMON_OPTIONS(pstruct, options_field)
Definition: tls.h:46
tls_close
static int tls_close(URLContext *h)
Definition: tls_mbedtls.c:57
TLS_OPTFL
#define TLS_OPTFL
Definition: tls.h:45
LIBAVUTIL_VERSION_INT
#define LIBAVUTIL_VERSION_INT
Definition: version.h:85
NULL
#define NULL
Definition: coverity.c:32
av_default_item_name
const char * av_default_item_name(void *ptr)
Return the context name.
Definition: log.c:237
OFFSET
#define OFFSET(x)
Definition: tls_mbedtls.c:55
tls_read
static int tls_read(URLContext *h, uint8_t *buf, int size)
Definition: tls_mbedtls.c:356
options
static const AVOption options[]
Definition: tls_mbedtls.c:398
tls_class
static const AVClass tls_class
Definition: tls_mbedtls.c:404
tls_get_short_seek
static int tls_get_short_seek(URLContext *h)
Definition: tls_mbedtls.c:392
tls_open
static int tls_open(URLContext *h, const char *uri, int flags, AVDictionary **options)
Definition: tls_mbedtls.c:189
tls_write
static int tls_write(URLContext *h, const uint8_t *buf, int size)
Definition: tls_mbedtls.c:371
flags
#define flags(name, subs,...)
Definition: cbs_av1.c:482
tls_get_file_handle
static int tls_get_file_handle(URLContext *h)
Definition: tls_mbedtls.c:386
AV_OPT_TYPE_STRING
@ AV_OPT_TYPE_STRING
Underlying C type is a uint8_t* that is either NULL or points to a C string allocated with the av_mal...
Definition: opt.h:276