FD.io VPP  v20.09-64-g4f7b92f0a
Vector Packet Processing
tls_openssl.c File Reference
+ Include dependency graph for tls_openssl.c:

Go to the source code of this file.

Macros

#define MAX_CRYPTO_LEN   64
 

Functions

static u32 openssl_ctx_alloc (void)
 
static void openssl_ctx_free (tls_ctx_t *ctx)
 
tls_ctx_topenssl_ctx_get (u32 ctx_index)
 
tls_ctx_topenssl_ctx_get_w_thread (u32 ctx_index, u8 thread_index)
 
static u32 openssl_listen_ctx_alloc (void)
 
static void openssl_listen_ctx_free (openssl_listen_ctx_t *lctx)
 
openssl_listen_ctx_topenssl_lctx_get (u32 lctx_index)
 
static int openssl_read_from_bio_into_fifo (svm_fifo_t *f, BIO *bio, u32 enq_max)
 
static int openssl_read_from_ssl_into_fifo (svm_fifo_t *f, SSL *ssl)
 
static int openssl_write_from_fifo_into_bio (svm_fifo_t *f, BIO *bio, u32 len)
 
static int openssl_write_from_fifo_into_ssl (svm_fifo_t *f, SSL *ssl, u32 len)
 
static int openssl_try_handshake_read (openssl_ctx_t *oc, session_t *tls_session)
 
static int openssl_try_handshake_write (openssl_ctx_t *oc, session_t *tls_session)
 
static void openssl_handle_handshake_failure (tls_ctx_t *ctx)
 
int openssl_ctx_handshake_rx (tls_ctx_t *ctx, session_t *tls_session)
 
static void openssl_confirm_app_close (tls_ctx_t *ctx)
 
static int openssl_ctx_write (tls_ctx_t *ctx, session_t *app_session, transport_send_params_t *sp)
 
static int openssl_ctx_read (tls_ctx_t *ctx, session_t *tls_session)
 
static int openssl_ctx_init_client (tls_ctx_t *ctx)
 
static int openssl_start_listen (tls_ctx_t *lctx)
 
static int openssl_stop_listen (tls_ctx_t *lctx)
 
static int openssl_ctx_init_server (tls_ctx_t *ctx)
 
static u8 openssl_handshake_is_over (tls_ctx_t *ctx)
 
static int openssl_transport_close (tls_ctx_t *ctx)
 
static int openssl_app_close (tls_ctx_t *ctx)
 
int tls_init_ca_chain (void)
 
int tls_openssl_set_ciphers (char *ciphers)
 
static clib_error_ttls_openssl_init (vlib_main_t *vm)
 
 VLIB_PLUGIN_REGISTER ()
 

Variables

openssl_main_t openssl_main
 
static const tls_engine_vft_t openssl_engine
 

Macro Definition Documentation

◆ MAX_CRYPTO_LEN

#define MAX_CRYPTO_LEN   64

Definition at line 30 of file tls_openssl.c.

Function Documentation

◆ openssl_app_close()

static int openssl_app_close ( tls_ctx_t ctx)
static

Definition at line 832 of file tls_openssl.c.

+ Here is the call graph for this function:

◆ openssl_confirm_app_close()

static void openssl_confirm_app_close ( tls_ctx_t ctx)
static

Definition at line 410 of file tls_openssl.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ openssl_ctx_alloc()

static u32 openssl_ctx_alloc ( void  )
static

Definition at line 34 of file tls_openssl.c.

+ Here is the call graph for this function:

◆ openssl_ctx_free()

static void openssl_ctx_free ( tls_ctx_t ctx)
static

Definition at line 53 of file tls_openssl.c.

+ Here is the call graph for this function:

◆ openssl_ctx_get()

tls_ctx_t* openssl_ctx_get ( u32  ctx_index)

Definition at line 71 of file tls_openssl.c.

+ Here is the call graph for this function:

◆ openssl_ctx_get_w_thread()

tls_ctx_t* openssl_ctx_get_w_thread ( u32  ctx_index,
u8  thread_index 
)

Definition at line 80 of file tls_openssl.c.

+ Here is the caller graph for this function:

◆ openssl_ctx_handshake_rx()

int openssl_ctx_handshake_rx ( tls_ctx_t ctx,
session_t tls_session 
)

Definition at line 326 of file tls_openssl.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ openssl_ctx_init_client()

static int openssl_ctx_init_client ( tls_ctx_t ctx)
static

Definition at line 544 of file tls_openssl.c.

+ Here is the call graph for this function:

◆ openssl_ctx_init_server()

static int openssl_ctx_init_server ( tls_ctx_t ctx)
static

Definition at line 749 of file tls_openssl.c.

+ Here is the call graph for this function:

◆ openssl_ctx_read()

static int openssl_ctx_read ( tls_ctx_t ctx,
session_t tls_session 
)
inlinestatic

Definition at line 484 of file tls_openssl.c.

+ Here is the call graph for this function:

◆ openssl_ctx_write()

static int openssl_ctx_write ( tls_ctx_t ctx,
session_t app_session,
transport_send_params_t sp 
)
inlinestatic

Definition at line 417 of file tls_openssl.c.

+ Here is the call graph for this function:

◆ openssl_handle_handshake_failure()

static void openssl_handle_handshake_failure ( tls_ctx_t ctx)
static

Definition at line 297 of file tls_openssl.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ openssl_handshake_is_over()

static u8 openssl_handshake_is_over ( tls_ctx_t ctx)
static

Definition at line 806 of file tls_openssl.c.

+ Here is the caller graph for this function:

◆ openssl_lctx_get()

openssl_listen_ctx_t* openssl_lctx_get ( u32  lctx_index)

Definition at line 107 of file tls_openssl.c.

+ Here is the caller graph for this function:

◆ openssl_listen_ctx_alloc()

static u32 openssl_listen_ctx_alloc ( void  )
static

Definition at line 88 of file tls_openssl.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ openssl_listen_ctx_free()

static void openssl_listen_ctx_free ( openssl_listen_ctx_t lctx)
static

Definition at line 101 of file tls_openssl.c.

+ Here is the caller graph for this function:

◆ openssl_read_from_bio_into_fifo()

static int openssl_read_from_bio_into_fifo ( svm_fifo_t f,
BIO *  bio,
u32  enq_max 
)
static

Definition at line 113 of file tls_openssl.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ openssl_read_from_ssl_into_fifo()

static int openssl_read_from_ssl_into_fifo ( svm_fifo_t f,
SSL *  ssl 
)
static

Definition at line 146 of file tls_openssl.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ openssl_start_listen()

static int openssl_start_listen ( tls_ctx_t lctx)
static

Definition at line 640 of file tls_openssl.c.

+ Here is the call graph for this function:

◆ openssl_stop_listen()

static int openssl_stop_listen ( tls_ctx_t lctx)
static

Definition at line 731 of file tls_openssl.c.

+ Here is the call graph for this function:

◆ openssl_transport_close()

static int openssl_transport_close ( tls_ctx_t ctx)
static

Definition at line 815 of file tls_openssl.c.

+ Here is the call graph for this function:

◆ openssl_try_handshake_read()

static int openssl_try_handshake_read ( openssl_ctx_t oc,
session_t tls_session 
)
static

Definition at line 239 of file tls_openssl.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ openssl_try_handshake_write()

static int openssl_try_handshake_write ( openssl_ctx_t oc,
session_t tls_session 
)
static

Definition at line 253 of file tls_openssl.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ openssl_write_from_fifo_into_bio()

static int openssl_write_from_fifo_into_bio ( svm_fifo_t f,
BIO *  bio,
u32  len 
)
static

Definition at line 183 of file tls_openssl.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ openssl_write_from_fifo_into_ssl()

static int openssl_write_from_fifo_into_ssl ( svm_fifo_t f,
SSL *  ssl,
u32  len 
)
static

Definition at line 211 of file tls_openssl.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ tls_init_ca_chain()

int tls_init_ca_chain ( void  )

Definition at line 864 of file tls_openssl.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ tls_openssl_init()

static clib_error_t* tls_openssl_init ( vlib_main_t vm)
static

Definition at line 933 of file tls_openssl.c.

+ Here is the call graph for this function:

◆ tls_openssl_set_ciphers()

int tls_openssl_set_ciphers ( char *  ciphers)

Definition at line 912 of file tls_openssl.c.

+ Here is the caller graph for this function:

◆ VLIB_PLUGIN_REGISTER()

VLIB_PLUGIN_REGISTER ( )

Variable Documentation

◆ openssl_engine

const tls_engine_vft_t openssl_engine
static
Initial value:
= {
.ctx_alloc = openssl_ctx_alloc,
.ctx_free = openssl_ctx_free,
.ctx_get = openssl_ctx_get,
.ctx_get_w_thread = openssl_ctx_get_w_thread,
.ctx_init_server = openssl_ctx_init_server,
.ctx_init_client = openssl_ctx_init_client,
.ctx_write = openssl_ctx_write,
.ctx_read = openssl_ctx_read,
.ctx_handshake_is_over = openssl_handshake_is_over,
.ctx_start_listen = openssl_start_listen,
.ctx_stop_listen = openssl_stop_listen,
.ctx_transport_close = openssl_transport_close,
.ctx_app_close = openssl_app_close,
}
static int openssl_transport_close(tls_ctx_t *ctx)
Definition: tls_openssl.c:815
static u8 openssl_handshake_is_over(tls_ctx_t *ctx)
Definition: tls_openssl.c:806
static u32 openssl_ctx_alloc(void)
Definition: tls_openssl.c:34
static void openssl_ctx_free(tls_ctx_t *ctx)
Definition: tls_openssl.c:53
static int openssl_stop_listen(tls_ctx_t *lctx)
Definition: tls_openssl.c:731
tls_ctx_t * openssl_ctx_get(u32 ctx_index)
Definition: tls_openssl.c:71
static int openssl_ctx_init_client(tls_ctx_t *ctx)
Definition: tls_openssl.c:544
static int openssl_app_close(tls_ctx_t *ctx)
Definition: tls_openssl.c:832
static int openssl_ctx_read(tls_ctx_t *ctx, session_t *tls_session)
Definition: tls_openssl.c:484
static int openssl_ctx_write(tls_ctx_t *ctx, session_t *app_session, transport_send_params_t *sp)
Definition: tls_openssl.c:417
tls_ctx_t * openssl_ctx_get_w_thread(u32 ctx_index, u8 thread_index)
Definition: tls_openssl.c:80
static int openssl_ctx_init_server(tls_ctx_t *ctx)
Definition: tls_openssl.c:749
static int openssl_start_listen(tls_ctx_t *lctx)
Definition: tls_openssl.c:640

Definition at line 847 of file tls_openssl.c.

◆ openssl_main

openssl_main_t openssl_main

Definition at line 32 of file tls_openssl.c.