cwist
Modern C web framework with libttak runtime
Loading...
Searching...
No Matches
ssl.h File Reference

mbedTLS TLS backend: OpenSSL-shaped seam over the CWIST TLS subset. More...

#include <stddef.h>
#include <stdint.h>
#include <openssl/evp.h>
#include <openssl/hmac.h>
Include dependency graph for ssl.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define TLS1_2_VERSION   0x0303
 
#define TLS1_3_VERSION   0x0304
 
#define SSL_ERROR_NONE   0
 
#define SSL_ERROR_SSL   1
 
#define SSL_ERROR_WANT_READ   2
 
#define SSL_ERROR_WANT_WRITE   3
 
#define SSL_ERROR_SYSCALL   5
 
#define SSL_ERROR_ZERO_RETURN   6
 
#define SSL_OP_NO_COMPRESSION   0x0001UL
 
#define SSL_OP_NO_RENEGOTIATION   0x0002UL
 
#define SSL_OP_CIPHER_SERVER_PREFERENCE   0x0004UL
 
#define SSL_OP_NO_TICKET   0x0008UL
 
#define SSL_OP_NO_TLSv1   0x0010UL
 
#define SSL_OP_NO_TLSv1_1   0x0020UL
 
#define SSL_OP_NO_TLSv1_2   0x0040UL
 
#define SSL_MODE_AUTO_RETRY   0x0001UL
 
#define SSL_SESS_CACHE_SERVER   0x0002L
 
#define SSL_FILETYPE_PEM   1
 
#define SSL_VERIFY_NONE   0x00
 
#define SSL_VERIFY_PEER   0x01
 
#define SSL_TLSEXT_ERR_OK   0
 
#define SSL_TLSEXT_ERR_NOACK   3
 
#define OPENSSL_NPN_NEGOTIATED   1
 
#define SSL_load_error_strings()   ((void)0)
 
#define OpenSSL_add_ssl_algorithms()   ((void)0)
 
#define EVP_cleanup()   ((void)0)
 
#define TLS_server_method   cwist_mtls_TLS_server_method
 
#define TLS_client_method   cwist_mtls_TLS_client_method
 
#define SSL_CTX_new   cwist_mtls_SSL_CTX_new
 
#define SSL_CTX_free   cwist_mtls_SSL_CTX_free
 
#define SSL_CTX_set_min_proto_version   cwist_mtls_SSL_CTX_set_min_proto_version
 
#define SSL_CTX_set_options   cwist_mtls_SSL_CTX_set_options
 
#define SSL_CTX_set_mode   cwist_mtls_SSL_CTX_set_mode
 
#define SSL_CTX_set_cipher_list   cwist_mtls_SSL_CTX_set_cipher_list
 
#define SSL_CTX_set_ciphersuites   cwist_mtls_SSL_CTX_set_ciphersuites
 
#define SSL_CTX_use_certificate_chain_file   cwist_mtls_SSL_CTX_use_certificate_chain_file
 
#define SSL_CTX_use_PrivateKey_file   cwist_mtls_SSL_CTX_use_PrivateKey_file
 
#define SSL_CTX_check_private_key   cwist_mtls_SSL_CTX_check_private_key
 
#define SSL_CTX_set_session_cache_mode   cwist_mtls_SSL_CTX_set_session_cache_mode
 
#define SSL_CTX_sess_set_cache_size   cwist_mtls_SSL_CTX_sess_set_cache_size
 
#define SSL_CTX_set_session_id_context   cwist_mtls_SSL_CTX_set_session_id_context
 
#define SSL_CTX_set_timeout   cwist_mtls_SSL_CTX_set_timeout
 
#define SSL_CTX_set_alpn_select_cb   cwist_mtls_SSL_CTX_set_alpn_select_cb
 
#define SSL_CTX_set_alpn_protos   cwist_mtls_SSL_CTX_set_alpn_protos
 
#define SSL_CTX_set_tlsext_ticket_key_cb   cwist_mtls_SSL_CTX_set_tlsext_ticket_key_cb
 
#define SSL_CTX_get_ex_new_index   cwist_mtls_SSL_CTX_get_ex_new_index
 
#define SSL_CTX_set_ex_data   cwist_mtls_SSL_CTX_set_ex_data
 
#define SSL_CTX_get_ex_data   cwist_mtls_SSL_CTX_get_ex_data
 
#define SSL_CTX_set_verify   cwist_mtls_SSL_CTX_set_verify
 
#define SSL_CTX_set_default_verify_paths   cwist_mtls_SSL_CTX_set_default_verify_paths
 
#define SSL_CTX_set1_groups_list   cwist_mtls_SSL_CTX_set1_groups_list
 
#define SSL_set_alpn_protos   cwist_mtls_SSL_set_alpn_protos
 
#define SSL_CTX_use_certificate_file   cwist_mtls_SSL_CTX_use_certificate_file
 
#define SSL_CTX_get_min_proto_version   cwist_mtls_SSL_CTX_get_min_proto_version
 
#define SSL_new   cwist_mtls_SSL_new
 
#define SSL_free   cwist_mtls_SSL_free
 
#define SSL_set_fd   cwist_mtls_SSL_set_fd
 
#define SSL_accept   cwist_mtls_SSL_accept
 
#define SSL_connect   cwist_mtls_SSL_connect
 
#define SSL_read   cwist_mtls_SSL_read
 
#define SSL_write   cwist_mtls_SSL_write
 
#define SSL_pending   cwist_mtls_SSL_pending
 
#define SSL_shutdown   cwist_mtls_SSL_shutdown
 
#define SSL_get_error   cwist_mtls_SSL_get_error
 
#define SSL_get_SSL_CTX   cwist_mtls_SSL_get_SSL_CTX
 
#define SSL_session_reused   cwist_mtls_SSL_session_reused
 
#define SSL_version   cwist_mtls_SSL_version
 
#define SSL_get_cipher_name   cwist_mtls_SSL_get_cipher_name
 
#define SSL_get0_alpn_selected   cwist_mtls_SSL_get0_alpn_selected
 
#define SSL_set_tlsext_host_name   cwist_mtls_SSL_set_tlsext_host_name
 
#define SSL_select_next_proto   cwist_mtls_SSL_select_next_proto
 

Typedefs

typedef struct cwist_mtls_ctx SSL_CTX
 
typedef struct cwist_mtls_ssl SSL
 
typedef struct cwist_mtls_method SSL_METHOD
 

Functions

const SSL_METHOD * cwist_mtls_TLS_server_method (void)
 
const SSL_METHOD * cwist_mtls_TLS_client_method (void)
 
SSL_CTX * cwist_mtls_SSL_CTX_new (const SSL_METHOD *method)
 
void cwist_mtls_SSL_CTX_free (SSL_CTX *ctx)
 
int cwist_mtls_SSL_CTX_set_min_proto_version (SSL_CTX *ctx, uint16_t version)
 
long cwist_mtls_SSL_CTX_set_options (SSL_CTX *ctx, unsigned long options)
 
long cwist_mtls_SSL_CTX_set_mode (SSL_CTX *ctx, long mode)
 
int cwist_mtls_SSL_CTX_set_cipher_list (SSL_CTX *ctx, const char *list)
 
int cwist_mtls_SSL_CTX_set_ciphersuites (SSL_CTX *ctx, const char *list)
 
int cwist_mtls_SSL_CTX_use_certificate_chain_file (SSL_CTX *ctx, const char *path)
 
int cwist_mtls_SSL_CTX_use_PrivateKey_file (SSL_CTX *ctx, const char *path, int type)
 
int cwist_mtls_SSL_CTX_check_private_key (const SSL_CTX *ctx)
 
long cwist_mtls_SSL_CTX_set_session_cache_mode (SSL_CTX *ctx, long mode)
 
long cwist_mtls_SSL_CTX_sess_set_cache_size (SSL_CTX *ctx, unsigned long size)
 
int cwist_mtls_SSL_CTX_set_session_id_context (SSL_CTX *ctx, const unsigned char *sid_ctx, unsigned int sid_ctx_len)
 
long cwist_mtls_SSL_CTX_set_timeout (SSL_CTX *ctx, long seconds)
 
void cwist_mtls_SSL_CTX_set_alpn_select_cb (SSL_CTX *ctx, int(*cb)(SSL *ssl, const unsigned char **out, unsigned char *outlen, const unsigned char *in, unsigned int inlen, void *arg), void *arg)
 
int cwist_mtls_SSL_CTX_set_alpn_protos (SSL_CTX *ctx, const unsigned char *protos, unsigned int protos_len)
 
int cwist_mtls_SSL_set_alpn_protos (SSL *ssl, const unsigned char *protos, unsigned int protos_len)
 
int cwist_mtls_SSL_CTX_use_certificate_file (SSL_CTX *ctx, const char *path, int type)
 
int cwist_mtls_SSL_CTX_get_min_proto_version (const SSL_CTX *ctx)
 
void cwist_mtls_SSL_CTX_set_tlsext_ticket_key_cb (SSL_CTX *ctx, int(*cb)(SSL *ssl, unsigned char *key_name, unsigned char *iv, EVP_CIPHER_CTX *ectx, HMAC_CTX *hctx, int enc))
 
int cwist_mtls_SSL_CTX_get_ex_new_index (long argl, void *argp, void *new_func, void *dup_func, void *free_func)
 
int cwist_mtls_SSL_CTX_set_ex_data (SSL_CTX *ctx, int idx, void *data)
 
void * cwist_mtls_SSL_CTX_get_ex_data (const SSL_CTX *ctx, int idx)
 
void cwist_mtls_SSL_CTX_set_verify (SSL_CTX *ctx, int mode, void *callback)
 
int cwist_mtls_SSL_CTX_set_default_verify_paths (SSL_CTX *ctx)
 
int cwist_mtls_SSL_CTX_set1_groups_list (SSL_CTX *ctx, const char *groups)
 
SSL * cwist_mtls_SSL_new (SSL_CTX *ctx)
 
void cwist_mtls_SSL_free (SSL *ssl)
 
int cwist_mtls_SSL_set_fd (SSL *ssl, int fd)
 
int cwist_mtls_SSL_accept (SSL *ssl)
 
int cwist_mtls_SSL_connect (SSL *ssl)
 
int cwist_mtls_SSL_read (SSL *ssl, void *buf, int num)
 
int cwist_mtls_SSL_write (SSL *ssl, const void *buf, int num)
 
int cwist_mtls_SSL_pending (const SSL *ssl)
 
int cwist_mtls_SSL_shutdown (SSL *ssl)
 
int cwist_mtls_SSL_get_error (const SSL *ssl, int ret)
 
SSL_CTX * cwist_mtls_SSL_get_SSL_CTX (const SSL *ssl)
 
int cwist_mtls_SSL_session_reused (const SSL *ssl)
 
int cwist_mtls_SSL_version (const SSL *ssl)
 
const char * cwist_mtls_SSL_get_cipher_name (const SSL *ssl)
 
void cwist_mtls_SSL_get0_alpn_selected (const SSL *ssl, const unsigned char **data, unsigned int *len)
 
int cwist_mtls_SSL_set_tlsext_host_name (SSL *ssl, const char *name)
 
int cwist_mtls_SSL_select_next_proto (unsigned char **out, unsigned char *outlen, const unsigned char *server, unsigned int server_len, const unsigned char *client, unsigned int client_len)
 

Detailed Description

mbedTLS TLS backend: OpenSSL-shaped seam over the CWIST TLS subset.

This header (and its siblings in this directory) is the CWIST TLS backend seam. When the library is built with CWIST_TLS=mbedtls the Makefile puts this directory on the include path instead of lib/boringssl/include, so every call site - public headers, https.c, http2.c, grpc_client.c - keeps its <openssl/ssl.h> include and its SSL_* call shape, but compiles against the declarations below. Each OpenSSL-flavoured name is a macro alias for a cwist_mtls_* function genuinely implemented on mbedTLS (mbedtls_ssl_*) in src/security/tls/backend_mbedtls.c, so the produced archive carries no BoringSSL object or symbol.

Design notes:

  • SSL / SSL_CTX / SSL_METHOD are opaque handles; no public struct changes, so the API baseline is untouched.
  • SSL_new() takes a reference on the SSL_CTX exactly like BoringSSL: the cwist_https_reload_context() hot-swap contract (old SSL_CTX stays alive until its last connection drains) is preserved by an internal refcount.
  • Error codes mirror BoringSSL's SSL_ERROR_* values; SSL_get_error() reports the outcome of the last operation on that connection.
  • Only the subset CWIST actually uses is provided. Anything outside it (X509 inspection, PKCS#7, ASN.1, DTLS) stays BoringSSL-only; the modules that need it (AIA chain autoload, ECH, WebRTC, HTTP/3) are compiled out or degraded when CWIST_TLS=mbedtls, as documented in the Makefile and docs/performance/tls-backends.md.

Definition in file ssl.h.

Macro Definition Documentation

◆ EVP_cleanup

#define EVP_cleanup ( )    ((void)0)

Definition at line 93 of file ssl.h.

◆ OpenSSL_add_ssl_algorithms

#define OpenSSL_add_ssl_algorithms ( )    ((void)0)

Definition at line 92 of file ssl.h.

◆ OPENSSL_NPN_NEGOTIATED

#define OPENSSL_NPN_NEGOTIATED   1

Definition at line 88 of file ssl.h.

◆ SSL_accept

#define SSL_accept   cwist_mtls_SSL_accept

Definition at line 169 of file ssl.h.

◆ SSL_connect

#define SSL_connect   cwist_mtls_SSL_connect

Definition at line 170 of file ssl.h.

◆ SSL_CTX_check_private_key

#define SSL_CTX_check_private_key   cwist_mtls_SSL_CTX_check_private_key

Definition at line 113 of file ssl.h.

◆ SSL_CTX_free

#define SSL_CTX_free   cwist_mtls_SSL_CTX_free

Definition at line 99 of file ssl.h.

◆ SSL_CTX_get_ex_data

#define SSL_CTX_get_ex_data   cwist_mtls_SSL_CTX_get_ex_data

Definition at line 123 of file ssl.h.

◆ SSL_CTX_get_ex_new_index

#define SSL_CTX_get_ex_new_index   cwist_mtls_SSL_CTX_get_ex_new_index

Definition at line 121 of file ssl.h.

◆ SSL_CTX_get_min_proto_version

#define SSL_CTX_get_min_proto_version   cwist_mtls_SSL_CTX_get_min_proto_version

Definition at line 151 of file ssl.h.

◆ SSL_CTX_new

#define SSL_CTX_new   cwist_mtls_SSL_CTX_new

Definition at line 98 of file ssl.h.

◆ SSL_CTX_sess_set_cache_size

#define SSL_CTX_sess_set_cache_size   cwist_mtls_SSL_CTX_sess_set_cache_size

Definition at line 115 of file ssl.h.

◆ SSL_CTX_set1_groups_list

#define SSL_CTX_set1_groups_list   cwist_mtls_SSL_CTX_set1_groups_list

Definition at line 126 of file ssl.h.

◆ SSL_CTX_set_alpn_protos

#define SSL_CTX_set_alpn_protos   cwist_mtls_SSL_CTX_set_alpn_protos

Definition at line 119 of file ssl.h.

◆ SSL_CTX_set_alpn_select_cb

#define SSL_CTX_set_alpn_select_cb   cwist_mtls_SSL_CTX_set_alpn_select_cb

Definition at line 118 of file ssl.h.

◆ SSL_CTX_set_cipher_list

#define SSL_CTX_set_cipher_list   cwist_mtls_SSL_CTX_set_cipher_list

Definition at line 109 of file ssl.h.

◆ SSL_CTX_set_ciphersuites

#define SSL_CTX_set_ciphersuites   cwist_mtls_SSL_CTX_set_ciphersuites

Definition at line 110 of file ssl.h.

◆ SSL_CTX_set_default_verify_paths

#define SSL_CTX_set_default_verify_paths   cwist_mtls_SSL_CTX_set_default_verify_paths

Definition at line 125 of file ssl.h.

◆ SSL_CTX_set_ex_data

#define SSL_CTX_set_ex_data   cwist_mtls_SSL_CTX_set_ex_data

Definition at line 122 of file ssl.h.

◆ SSL_CTX_set_min_proto_version

#define SSL_CTX_set_min_proto_version   cwist_mtls_SSL_CTX_set_min_proto_version

Definition at line 106 of file ssl.h.

◆ SSL_CTX_set_mode

#define SSL_CTX_set_mode   cwist_mtls_SSL_CTX_set_mode

Definition at line 108 of file ssl.h.

◆ SSL_CTX_set_options

#define SSL_CTX_set_options   cwist_mtls_SSL_CTX_set_options

Definition at line 107 of file ssl.h.

◆ SSL_CTX_set_session_cache_mode

#define SSL_CTX_set_session_cache_mode   cwist_mtls_SSL_CTX_set_session_cache_mode

Definition at line 114 of file ssl.h.

◆ SSL_CTX_set_session_id_context

#define SSL_CTX_set_session_id_context   cwist_mtls_SSL_CTX_set_session_id_context

Definition at line 116 of file ssl.h.

◆ SSL_CTX_set_timeout

#define SSL_CTX_set_timeout   cwist_mtls_SSL_CTX_set_timeout

Definition at line 117 of file ssl.h.

◆ SSL_CTX_set_tlsext_ticket_key_cb

#define SSL_CTX_set_tlsext_ticket_key_cb   cwist_mtls_SSL_CTX_set_tlsext_ticket_key_cb

Definition at line 120 of file ssl.h.

◆ SSL_CTX_set_verify

#define SSL_CTX_set_verify   cwist_mtls_SSL_CTX_set_verify

Definition at line 124 of file ssl.h.

◆ SSL_CTX_use_certificate_chain_file

#define SSL_CTX_use_certificate_chain_file   cwist_mtls_SSL_CTX_use_certificate_chain_file

Definition at line 111 of file ssl.h.

◆ SSL_CTX_use_certificate_file

#define SSL_CTX_use_certificate_file   cwist_mtls_SSL_CTX_use_certificate_file

Definition at line 149 of file ssl.h.

◆ SSL_CTX_use_PrivateKey_file

#define SSL_CTX_use_PrivateKey_file   cwist_mtls_SSL_CTX_use_PrivateKey_file

Definition at line 112 of file ssl.h.

◆ SSL_ERROR_NONE

#define SSL_ERROR_NONE   0

Definition at line 52 of file ssl.h.

◆ SSL_ERROR_SSL

#define SSL_ERROR_SSL   1

Definition at line 53 of file ssl.h.

◆ SSL_ERROR_SYSCALL

#define SSL_ERROR_SYSCALL   5

Definition at line 56 of file ssl.h.

◆ SSL_ERROR_WANT_READ

#define SSL_ERROR_WANT_READ   2

Definition at line 54 of file ssl.h.

◆ SSL_ERROR_WANT_WRITE

#define SSL_ERROR_WANT_WRITE   3

Definition at line 55 of file ssl.h.

◆ SSL_ERROR_ZERO_RETURN

#define SSL_ERROR_ZERO_RETURN   6

Definition at line 57 of file ssl.h.

◆ SSL_FILETYPE_PEM

#define SSL_FILETYPE_PEM   1

Definition at line 77 of file ssl.h.

◆ SSL_free

#define SSL_free   cwist_mtls_SSL_free

Definition at line 167 of file ssl.h.

◆ SSL_get0_alpn_selected

#define SSL_get0_alpn_selected   cwist_mtls_SSL_get0_alpn_selected

Definition at line 180 of file ssl.h.

◆ SSL_get_cipher_name

#define SSL_get_cipher_name   cwist_mtls_SSL_get_cipher_name

Definition at line 179 of file ssl.h.

◆ SSL_get_error

#define SSL_get_error   cwist_mtls_SSL_get_error

Definition at line 175 of file ssl.h.

◆ SSL_get_SSL_CTX

#define SSL_get_SSL_CTX   cwist_mtls_SSL_get_SSL_CTX

Definition at line 176 of file ssl.h.

◆ SSL_load_error_strings

#define SSL_load_error_strings ( )    ((void)0)

Definition at line 91 of file ssl.h.

◆ SSL_MODE_AUTO_RETRY

#define SSL_MODE_AUTO_RETRY   0x0001UL

Definition at line 71 of file ssl.h.

◆ SSL_new

#define SSL_new   cwist_mtls_SSL_new

Definition at line 166 of file ssl.h.

◆ SSL_OP_CIPHER_SERVER_PREFERENCE

#define SSL_OP_CIPHER_SERVER_PREFERENCE   0x0004UL

Definition at line 64 of file ssl.h.

◆ SSL_OP_NO_COMPRESSION

#define SSL_OP_NO_COMPRESSION   0x0001UL

Definition at line 62 of file ssl.h.

◆ SSL_OP_NO_RENEGOTIATION

#define SSL_OP_NO_RENEGOTIATION   0x0002UL

Definition at line 63 of file ssl.h.

◆ SSL_OP_NO_TICKET

#define SSL_OP_NO_TICKET   0x0008UL

Definition at line 65 of file ssl.h.

◆ SSL_OP_NO_TLSv1

#define SSL_OP_NO_TLSv1   0x0010UL

Definition at line 66 of file ssl.h.

◆ SSL_OP_NO_TLSv1_1

#define SSL_OP_NO_TLSv1_1   0x0020UL

Definition at line 67 of file ssl.h.

◆ SSL_OP_NO_TLSv1_2

#define SSL_OP_NO_TLSv1_2   0x0040UL

Definition at line 68 of file ssl.h.

◆ SSL_pending

#define SSL_pending   cwist_mtls_SSL_pending

Definition at line 173 of file ssl.h.

◆ SSL_read

#define SSL_read   cwist_mtls_SSL_read

Definition at line 171 of file ssl.h.

◆ SSL_select_next_proto

#define SSL_select_next_proto   cwist_mtls_SSL_select_next_proto

Definition at line 201 of file ssl.h.

◆ SSL_SESS_CACHE_SERVER

#define SSL_SESS_CACHE_SERVER   0x0002L

Definition at line 74 of file ssl.h.

◆ SSL_session_reused

#define SSL_session_reused   cwist_mtls_SSL_session_reused

Definition at line 177 of file ssl.h.

◆ SSL_set_alpn_protos

#define SSL_set_alpn_protos   cwist_mtls_SSL_set_alpn_protos

Definition at line 147 of file ssl.h.

◆ SSL_set_fd

#define SSL_set_fd   cwist_mtls_SSL_set_fd

Definition at line 168 of file ssl.h.

◆ SSL_set_tlsext_host_name

#define SSL_set_tlsext_host_name   cwist_mtls_SSL_set_tlsext_host_name

Definition at line 181 of file ssl.h.

◆ SSL_shutdown

#define SSL_shutdown   cwist_mtls_SSL_shutdown

Definition at line 174 of file ssl.h.

◆ SSL_TLSEXT_ERR_NOACK

#define SSL_TLSEXT_ERR_NOACK   3

Definition at line 85 of file ssl.h.

◆ SSL_TLSEXT_ERR_OK

#define SSL_TLSEXT_ERR_OK   0

Definition at line 84 of file ssl.h.

◆ SSL_VERIFY_NONE

#define SSL_VERIFY_NONE   0x00

Definition at line 80 of file ssl.h.

◆ SSL_VERIFY_PEER

#define SSL_VERIFY_PEER   0x01

Definition at line 81 of file ssl.h.

◆ SSL_version

#define SSL_version   cwist_mtls_SSL_version

Definition at line 178 of file ssl.h.

◆ SSL_write

#define SSL_write   cwist_mtls_SSL_write

Definition at line 172 of file ssl.h.

◆ TLS1_2_VERSION

#define TLS1_2_VERSION   0x0303

Definition at line 48 of file ssl.h.

◆ TLS1_3_VERSION

#define TLS1_3_VERSION   0x0304

Definition at line 49 of file ssl.h.

◆ TLS_client_method

#define TLS_client_method   cwist_mtls_TLS_client_method

Definition at line 97 of file ssl.h.

◆ TLS_server_method

#define TLS_server_method   cwist_mtls_TLS_server_method

Definition at line 96 of file ssl.h.

Typedef Documentation

◆ SSL

typedef struct cwist_mtls_ssl SSL

Definition at line 44 of file ssl.h.

◆ SSL_CTX

typedef struct cwist_mtls_ctx SSL_CTX

Definition at line 43 of file ssl.h.

◆ SSL_METHOD

typedef struct cwist_mtls_method SSL_METHOD

Definition at line 45 of file ssl.h.

Function Documentation

◆ cwist_mtls_SSL_accept()

int cwist_mtls_SSL_accept ( SSL *  ssl)

Definition at line 935 of file backend_mbedtls.c.

◆ cwist_mtls_SSL_connect()

int cwist_mtls_SSL_connect ( SSL *  ssl)

Definition at line 940 of file backend_mbedtls.c.

◆ cwist_mtls_SSL_CTX_check_private_key()

int cwist_mtls_SSL_CTX_check_private_key ( const SSL_CTX *  ctx)

Definition at line 619 of file backend_mbedtls.c.

References cap.

◆ cwist_mtls_SSL_CTX_free()

void cwist_mtls_SSL_CTX_free ( SSL_CTX *  ctx)

Definition at line 455 of file backend_mbedtls.c.

References cap.

Referenced by cwist_mtls_SSL_free().

◆ cwist_mtls_SSL_CTX_get_ex_data()

void * cwist_mtls_SSL_CTX_get_ex_data ( const SSL_CTX *  ctx,
int  idx 
)

Definition at line 820 of file backend_mbedtls.c.

References cap, and CWIST_MTLS_EX_DATA_MAX.

◆ cwist_mtls_SSL_CTX_get_ex_new_index()

int cwist_mtls_SSL_CTX_get_ex_new_index ( long  argl,
void *  argp,
void *  new_func,
void *  dup_func,
void *  free_func 
)

Definition at line 803 of file backend_mbedtls.c.

References cap, and CWIST_MTLS_EX_DATA_MAX.

◆ cwist_mtls_SSL_CTX_get_min_proto_version()

int cwist_mtls_SSL_CTX_get_min_proto_version ( const SSL_CTX *  ctx)

Definition at line 614 of file backend_mbedtls.c.

References cap, TLS1_2_VERSION, and TLS1_3_VERSION.

◆ cwist_mtls_SSL_CTX_new()

SSL_CTX * cwist_mtls_SSL_CTX_new ( const SSL_METHOD *  method)

Definition at line 394 of file backend_mbedtls.c.

References cap, cwist_free(), and cwist_malloc().

◆ cwist_mtls_SSL_CTX_sess_set_cache_size()

long cwist_mtls_SSL_CTX_sess_set_cache_size ( SSL_CTX *  ctx,
unsigned long  size 
)

Definition at line 630 of file backend_mbedtls.c.

References cap.

◆ cwist_mtls_SSL_CTX_set1_groups_list()

int cwist_mtls_SSL_CTX_set1_groups_list ( SSL_CTX *  ctx,
const char *  groups 
)

Definition at line 846 of file backend_mbedtls.c.

References cap.

◆ cwist_mtls_SSL_CTX_set_alpn_protos()

int cwist_mtls_SSL_CTX_set_alpn_protos ( SSL_CTX *  ctx,
const unsigned char *  protos,
unsigned int  protos_len 
)

Definition at line 692 of file backend_mbedtls.c.

References cap.

◆ cwist_mtls_SSL_CTX_set_alpn_select_cb()

void cwist_mtls_SSL_CTX_set_alpn_select_cb ( SSL_CTX *  ctx,
int(*)(SSL *ssl, const unsigned char **out, unsigned char *outlen, const unsigned char *in, unsigned int inlen, void *arg)  cb,
void *  arg 
)

Definition at line 653 of file backend_mbedtls.c.

References cap, and SSL_TLSEXT_ERR_OK.

◆ cwist_mtls_SSL_CTX_set_cipher_list()

int cwist_mtls_SSL_CTX_set_cipher_list ( SSL_CTX *  ctx,
const char *  list 
)

Definition at line 564 of file backend_mbedtls.c.

References cap.

◆ cwist_mtls_SSL_CTX_set_ciphersuites()

int cwist_mtls_SSL_CTX_set_ciphersuites ( SSL_CTX *  ctx,
const char *  list 
)

Definition at line 568 of file backend_mbedtls.c.

References cap.

◆ cwist_mtls_SSL_CTX_set_default_verify_paths()

int cwist_mtls_SSL_CTX_set_default_verify_paths ( SSL_CTX *  ctx)

Definition at line 832 of file backend_mbedtls.c.

References cap.

◆ cwist_mtls_SSL_CTX_set_ex_data()

int cwist_mtls_SSL_CTX_set_ex_data ( SSL_CTX *  ctx,
int  idx,
void *  data 
)

Definition at line 814 of file backend_mbedtls.c.

References cap, and CWIST_MTLS_EX_DATA_MAX.

◆ cwist_mtls_SSL_CTX_set_min_proto_version()

int cwist_mtls_SSL_CTX_set_min_proto_version ( SSL_CTX *  ctx,
uint16_t  version 
)

Definition at line 462 of file backend_mbedtls.c.

References cap, TLS1_2_VERSION, and TLS1_3_VERSION.

◆ cwist_mtls_SSL_CTX_set_mode()

long cwist_mtls_SSL_CTX_set_mode ( SSL_CTX *  ctx,
long  mode 
)

Definition at line 491 of file backend_mbedtls.c.

References cap, and SSL_MODE_AUTO_RETRY.

◆ cwist_mtls_SSL_CTX_set_options()

long cwist_mtls_SSL_CTX_set_options ( SSL_CTX *  ctx,
unsigned long  options 
)

Definition at line 475 of file backend_mbedtls.c.

References cap, SSL_OP_NO_TICKET, and SSL_OP_NO_TLSv1_2.

◆ cwist_mtls_SSL_CTX_set_session_cache_mode()

long cwist_mtls_SSL_CTX_set_session_cache_mode ( SSL_CTX *  ctx,
long  mode 
)

Definition at line 624 of file backend_mbedtls.c.

References cap, and SSL_SESS_CACHE_SERVER.

◆ cwist_mtls_SSL_CTX_set_session_id_context()

int cwist_mtls_SSL_CTX_set_session_id_context ( SSL_CTX *  ctx,
const unsigned char *  sid_ctx,
unsigned int  sid_ctx_len 
)

Definition at line 637 of file backend_mbedtls.c.

References cap.

◆ cwist_mtls_SSL_CTX_set_timeout()

long cwist_mtls_SSL_CTX_set_timeout ( SSL_CTX *  ctx,
long  seconds 
)

Definition at line 646 of file backend_mbedtls.c.

References cap.

◆ cwist_mtls_SSL_CTX_set_tlsext_ticket_key_cb()

void cwist_mtls_SSL_CTX_set_tlsext_ticket_key_cb ( SSL_CTX *  ctx,
int(*)(SSL *ssl, unsigned char *key_name, unsigned char *iv, EVP_CIPHER_CTX *ectx, HMAC_CTX *hctx, int enc)  cb 
)

◆ cwist_mtls_SSL_CTX_set_verify()

void cwist_mtls_SSL_CTX_set_verify ( SSL_CTX *  ctx,
int  mode,
void *  callback 
)

Definition at line 825 of file backend_mbedtls.c.

References cap, and SSL_VERIFY_PEER.

◆ cwist_mtls_SSL_CTX_use_certificate_chain_file()

int cwist_mtls_SSL_CTX_use_certificate_chain_file ( SSL_CTX *  ctx,
const char *  path 
)

Definition at line 583 of file backend_mbedtls.c.

References cap.

Referenced by cwist_mtls_SSL_CTX_use_certificate_file().

◆ cwist_mtls_SSL_CTX_use_certificate_file()

int cwist_mtls_SSL_CTX_use_certificate_file ( SSL_CTX *  ctx,
const char *  path,
int  type 
)

Definition at line 609 of file backend_mbedtls.c.

References cap, and cwist_mtls_SSL_CTX_use_certificate_chain_file().

◆ cwist_mtls_SSL_CTX_use_PrivateKey_file()

int cwist_mtls_SSL_CTX_use_PrivateKey_file ( SSL_CTX *  ctx,
const char *  path,
int  type 
)

Definition at line 596 of file backend_mbedtls.c.

References cap, and SSL_FILETYPE_PEM.

◆ cwist_mtls_SSL_free()

void cwist_mtls_SSL_free ( SSL *  ssl)

Definition at line 894 of file backend_mbedtls.c.

References cap, cwist_free(), and cwist_mtls_SSL_CTX_free().

◆ cwist_mtls_SSL_get0_alpn_selected()

void cwist_mtls_SSL_get0_alpn_selected ( const SSL *  ssl,
const unsigned char **  data,
unsigned int *  len 
)

Definition at line 1054 of file backend_mbedtls.c.

References cap.

◆ cwist_mtls_SSL_get_cipher_name()

const char * cwist_mtls_SSL_get_cipher_name ( const SSL *  ssl)

Definition at line 1031 of file backend_mbedtls.c.

References cap.

◆ cwist_mtls_SSL_get_error()

int cwist_mtls_SSL_get_error ( const SSL *  ssl,
int  ret 
)

Definition at line 1006 of file backend_mbedtls.c.

References cap, and SSL_ERROR_SSL.

◆ cwist_mtls_SSL_get_SSL_CTX()

SSL_CTX * cwist_mtls_SSL_get_SSL_CTX ( const SSL *  ssl)

Definition at line 1012 of file backend_mbedtls.c.

References cap.

◆ cwist_mtls_SSL_new()

SSL * cwist_mtls_SSL_new ( SSL_CTX *  ctx)

Definition at line 873 of file backend_mbedtls.c.

References cap, cwist_free(), cwist_malloc(), and SSL_ERROR_NONE.

◆ cwist_mtls_SSL_pending()

int cwist_mtls_SSL_pending ( const SSL *  ssl)

Definition at line 994 of file backend_mbedtls.c.

References cap.

◆ cwist_mtls_SSL_read()

int cwist_mtls_SSL_read ( SSL *  ssl,
void *  buf,
int  num 
)

◆ cwist_mtls_SSL_select_next_proto()

int cwist_mtls_SSL_select_next_proto ( unsigned char **  out,
unsigned char *  outlen,
const unsigned char *  server,
unsigned int  server_len,
const unsigned char *  client,
unsigned int  client_len 
)

Definition at line 320 of file backend_mbedtls.c.

References cap, and OPENSSL_NPN_NEGOTIATED.

◆ cwist_mtls_SSL_session_reused()

int cwist_mtls_SSL_session_reused ( const SSL *  ssl)

Definition at line 1016 of file backend_mbedtls.c.

References cap.

◆ cwist_mtls_SSL_set_alpn_protos()

int cwist_mtls_SSL_set_alpn_protos ( SSL *  ssl,
const unsigned char *  protos,
unsigned int  protos_len 
)

Definition at line 1066 of file backend_mbedtls.c.

References cap.

◆ cwist_mtls_SSL_set_fd()

int cwist_mtls_SSL_set_fd ( SSL *  ssl,
int  fd 
)

Definition at line 903 of file backend_mbedtls.c.

References cap.

◆ cwist_mtls_SSL_set_tlsext_host_name()

int cwist_mtls_SSL_set_tlsext_host_name ( SSL *  ssl,
const char *  name 
)

Definition at line 1061 of file backend_mbedtls.c.

References cap.

◆ cwist_mtls_SSL_shutdown()

int cwist_mtls_SSL_shutdown ( SSL *  ssl)

Definition at line 999 of file backend_mbedtls.c.

References cap.

◆ cwist_mtls_SSL_version()

int cwist_mtls_SSL_version ( const SSL *  ssl)

Definition at line 1023 of file backend_mbedtls.c.

References cap, TLS1_2_VERSION, and TLS1_3_VERSION.

◆ cwist_mtls_SSL_write()

int cwist_mtls_SSL_write ( SSL *  ssl,
const void *  buf,
int  num 
)

◆ cwist_mtls_TLS_client_method()

const SSL_METHOD * cwist_mtls_TLS_client_method ( void  )

Definition at line 355 of file backend_mbedtls.c.

◆ cwist_mtls_TLS_server_method()

const SSL_METHOD * cwist_mtls_TLS_server_method ( void  )

Definition at line 351 of file backend_mbedtls.c.