mbedtls_ssl_config
ssl.h
mbedtls_ssl_protocol_version mbedtls_ssl_protocol_version mbedtls_ssl_config::private_max_tls_version private_max_tls_version mbedtls_ssl_config::private_max_tls_version

max. TLS version used

mbedtls_ssl_protocol_version mbedtls_ssl_protocol_version mbedtls_ssl_config::private_min_tls_version private_min_tls_version mbedtls_ssl_config::private_min_tls_version

min. TLS version used

uint8_t uint8_t mbedtls_ssl_config::private_endpoint private_endpoint mbedtls_ssl_config::private_endpoint

0: client, 1: server

uint8_t uint8_t mbedtls_ssl_config::private_transport private_transport mbedtls_ssl_config::private_transport

0: stream (TLS), 1: datagram (DTLS)

uint8_t uint8_t mbedtls_ssl_config::private_authmode private_authmode mbedtls_ssl_config::private_authmode

MBEDTLS_SSL_VERIFY_XXX

uint8_t uint8_t mbedtls_ssl_config::private_allow_legacy_renegotiation private_allow_legacy_renegotiation mbedtls_ssl_config::private_allow_legacy_renegotiation

MBEDTLS_LEGACY_XXX

uint8_t uint8_t mbedtls_ssl_config::private_mfl_code private_mfl_code mbedtls_ssl_config::private_mfl_code

desired fragment length indicator (MBEDTLS_SSL_MAX_FRAG_LEN_XXX)

uint8_t uint8_t mbedtls_ssl_config::private_encrypt_then_mac private_encrypt_then_mac mbedtls_ssl_config::private_encrypt_then_mac

negotiate encrypt-then-mac?

uint8_t uint8_t mbedtls_ssl_config::private_extended_ms private_extended_ms mbedtls_ssl_config::private_extended_ms

negotiate extended master secret?

uint8_t uint8_t mbedtls_ssl_config::private_anti_replay private_anti_replay mbedtls_ssl_config::private_anti_replay

detect and prevent replay?

uint8_t uint8_t mbedtls_ssl_config::private_disable_renegotiation private_disable_renegotiation mbedtls_ssl_config::private_disable_renegotiation

disable renegotiation?

uint8_t uint8_t mbedtls_ssl_config::private_session_tickets private_session_tickets mbedtls_ssl_config::private_session_tickets

Encodes two booleans, one stating whether TLS 1.2 session tickets are enabled or not, the other one whether the handling of TLS 1.3 NewSessionTicket messages is enabled or not. They are respectively set by mbedtls_ssl_conf_session_tickets() and mbedtls_ssl_conf_tls13_enable_signal_new_session_tickets(). use session tickets?

uint16_t uint16_t mbedtls_ssl_config::private_new_session_tickets_count private_new_session_tickets_count mbedtls_ssl_config::private_new_session_tickets_count

number of NewSessionTicket

uint8_t uint8_t mbedtls_ssl_config::private_cert_req_ca_list private_cert_req_ca_list mbedtls_ssl_config::private_cert_req_ca_list

enable sending CA list in Certificate Request messages?

uint8_t uint8_t mbedtls_ssl_config::private_respect_cli_pref private_respect_cli_pref mbedtls_ssl_config::private_respect_cli_pref

pick the ciphersuite according to the client's preferences rather than ours?

uint8_t uint8_t mbedtls_ssl_config::private_ignore_unexpected_cid private_ignore_unexpected_cid mbedtls_ssl_config::private_ignore_unexpected_cid

Should DTLS record with unexpected CID lead to failure?

uint8_t uint8_t mbedtls_ssl_config::private_dtls_srtp_mki_support private_dtls_srtp_mki_support mbedtls_ssl_config::private_dtls_srtp_mki_support
const int * const int* mbedtls_ssl_config::private_ciphersuite_list private_ciphersuite_list mbedtls_ssl_config::private_ciphersuite_list

Allowed ciphersuites for (D)TLS 1.2 (0-terminated)

int int mbedtls_ssl_config::private_tls13_kex_modes private_tls13_kex_modes mbedtls_ssl_config::private_tls13_kex_modes

Allowed TLS 1.3 key exchange modes.

void(* void(* mbedtls_ssl_config::private_f_dbg) (void *, int, const char *, int, const char *) )(void *, int, const char *, int, const char *) private_f_dbg mbedtls_ssl_config::private_f_dbg

Callback for printing debug output

void * void* mbedtls_ssl_config::private_p_dbg private_p_dbg mbedtls_ssl_config::private_p_dbg

context for the debug function

int(* int(* mbedtls_ssl_config::private_f_rng) (void *, unsigned char *, size_t) )(void *, unsigned char *, size_t) private_f_rng mbedtls_ssl_config::private_f_rng

Callback for getting (pseudo-)random numbers

void * void* mbedtls_ssl_config::private_p_rng private_p_rng mbedtls_ssl_config::private_p_rng

context for the RNG function

mbedtls_ssl_cache_get_t * mbedtls_ssl_cache_get_t* mbedtls_ssl_config::private_f_get_cache private_f_get_cache mbedtls_ssl_config::private_f_get_cache

Callback to retrieve a session from the cache

mbedtls_ssl_cache_set_t * mbedtls_ssl_cache_set_t* mbedtls_ssl_config::private_f_set_cache private_f_set_cache mbedtls_ssl_config::private_f_set_cache

Callback to store a session into the cache

void * void* mbedtls_ssl_config::private_p_cache private_p_cache mbedtls_ssl_config::private_p_cache

context for cache callbacks

int(* int(* mbedtls_ssl_config::private_f_sni) (void *, mbedtls_ssl_context *, const unsigned char *, size_t) )(void *, mbedtls_ssl_context *, const unsigned char *, size_t) private_f_sni mbedtls_ssl_config::private_f_sni

Callback for setting cert according to SNI extension

void * void* mbedtls_ssl_config::private_p_sni private_p_sni mbedtls_ssl_config::private_p_sni

context for SNI callback

int(* int(* mbedtls_ssl_config::private_f_vrfy) (void *, mbedtls_x509_crt *, int, uint32_t *) )(void *, mbedtls_x509_crt *, int, uint32_t *) private_f_vrfy mbedtls_ssl_config::private_f_vrfy

Callback to customize X.509 certificate chain verification

void * void* mbedtls_ssl_config::private_p_vrfy private_p_vrfy mbedtls_ssl_config::private_p_vrfy

context for X.509 verify calllback

int(* int(* mbedtls_ssl_config::private_f_psk) (void *, mbedtls_ssl_context *, const unsigned char *, size_t) )(void *, mbedtls_ssl_context *, const unsigned char *, size_t) private_f_psk mbedtls_ssl_config::private_f_psk

Callback to retrieve PSK key from identity

void * void* mbedtls_ssl_config::private_p_psk private_p_psk mbedtls_ssl_config::private_p_psk

context for PSK callback

int(* int(* mbedtls_ssl_config::private_f_cookie_write) (void *, unsigned char **, unsigned char *, const unsigned char *, size_t) )(void *, unsigned char **, unsigned char *, const unsigned char *, size_t) private_f_cookie_write mbedtls_ssl_config::private_f_cookie_write

Callback to create & write a cookie for ClientHello verification

int(* int(* mbedtls_ssl_config::private_f_cookie_check) (void *, const unsigned char *, size_t, const unsigned char *, size_t) )(void *, const unsigned char *, size_t, const unsigned char *, size_t) private_f_cookie_check mbedtls_ssl_config::private_f_cookie_check

Callback to verify validity of a ClientHello cookie

void * void* mbedtls_ssl_config::private_p_cookie private_p_cookie mbedtls_ssl_config::private_p_cookie

context for the cookie callbacks

int(* int(* mbedtls_ssl_config::private_f_ticket_write) (void *, const mbedtls_ssl_session *, unsigned char *, const unsigned char *, size_t *, uint32_t *) )(void *, const mbedtls_ssl_session *, unsigned char *, const unsigned char *, size_t *, uint32_t *) private_f_ticket_write mbedtls_ssl_config::private_f_ticket_write

Callback to create & write a session ticket

int(* int(* mbedtls_ssl_config::private_f_ticket_parse) (void *, mbedtls_ssl_session *, unsigned char *, size_t) )(void *, mbedtls_ssl_session *, unsigned char *, size_t) private_f_ticket_parse mbedtls_ssl_config::private_f_ticket_parse

Callback to parse a session ticket into a session structure

void * void* mbedtls_ssl_config::private_p_ticket private_p_ticket mbedtls_ssl_config::private_p_ticket

context for the ticket callbacks

size_t size_t mbedtls_ssl_config::private_cid_len private_cid_len mbedtls_ssl_config::private_cid_len

The length of CIDs for incoming DTLS records.

const mbedtls_x509_crt_profile * const mbedtls_x509_crt_profile* mbedtls_ssl_config::private_cert_profile private_cert_profile mbedtls_ssl_config::private_cert_profile

verification profile

mbedtls_ssl_key_cert * mbedtls_ssl_key_cert* mbedtls_ssl_config::private_key_cert private_key_cert mbedtls_ssl_config::private_key_cert

own certificate/key pair(s)

mbedtls_x509_crt * mbedtls_x509_crt* mbedtls_ssl_config::private_ca_chain private_ca_chain mbedtls_ssl_config::private_ca_chain

trusted CAs

mbedtls_x509_crl * mbedtls_x509_crl* mbedtls_ssl_config::private_ca_crl private_ca_crl mbedtls_ssl_config::private_ca_crl

trusted CAs CRLs

const int * const int* mbedtls_ssl_config::private_sig_hashes private_sig_hashes mbedtls_ssl_config::private_sig_hashes

allowed signature hashes

const uint16_t * const uint16_t* mbedtls_ssl_config::private_sig_algs private_sig_algs mbedtls_ssl_config::private_sig_algs

allowed signature algorithms

const mbedtls_ecp_group_id * const mbedtls_ecp_group_id* mbedtls_ssl_config::private_curve_list private_curve_list mbedtls_ssl_config::private_curve_list

allowed curves

const uint16_t * const uint16_t* mbedtls_ssl_config::private_group_list private_group_list mbedtls_ssl_config::private_group_list

allowed IANA NamedGroups

mbedtls_mpi mbedtls_mpi mbedtls_ssl_config::private_dhm_P private_dhm_P mbedtls_ssl_config::private_dhm_P

prime modulus for DHM

mbedtls_mpi mbedtls_mpi mbedtls_ssl_config::private_dhm_G private_dhm_G mbedtls_ssl_config::private_dhm_G

generator for DHM

unsigned char * unsigned char* mbedtls_ssl_config::private_psk private_psk mbedtls_ssl_config::private_psk

The raw pre-shared key. This field should only be set via mbedtls_ssl_conf_psk(). If either no PSK or an opaque PSK have been configured, this has value NULL.

size_t size_t mbedtls_ssl_config::private_psk_len private_psk_len mbedtls_ssl_config::private_psk_len

The length of the raw pre-shared key. This field should only be set via mbedtls_ssl_conf_psk(). Its value is non-zero if and only if `psk` is not `NULL`.

unsigned char * unsigned char* mbedtls_ssl_config::private_psk_identity private_psk_identity mbedtls_ssl_config::private_psk_identity

The PSK identity for PSK negotiation. This field should only be set via mbedtls_ssl_conf_psk(). This is set if and only if either `psk` or `psk_opaque` are set.

size_t size_t mbedtls_ssl_config::private_psk_identity_len private_psk_identity_len mbedtls_ssl_config::private_psk_identity_len

The length of PSK identity. This field should only be set via mbedtls_ssl_conf_psk(). Its value is non-zero if and only if `psk` is not `NULL` or `psk_opaque` is not `0`.

const char ** const char** mbedtls_ssl_config::private_alpn_list private_alpn_list mbedtls_ssl_config::private_alpn_list

ordered list of protocols

const mbedtls_ssl_srtp_profile * const mbedtls_ssl_srtp_profile* mbedtls_ssl_config::private_dtls_srtp_profile_list private_dtls_srtp_profile_list mbedtls_ssl_config::private_dtls_srtp_profile_list

ordered list of supported srtp profile

size_t size_t mbedtls_ssl_config::private_dtls_srtp_profile_list_len private_dtls_srtp_profile_list_len mbedtls_ssl_config::private_dtls_srtp_profile_list_len

number of supported profiles

uint32_t uint32_t mbedtls_ssl_config::private_read_timeout private_read_timeout mbedtls_ssl_config::private_read_timeout

timeout for mbedtls_ssl_read (ms)

uint32_t uint32_t mbedtls_ssl_config::private_hs_timeout_min private_hs_timeout_min mbedtls_ssl_config::private_hs_timeout_min

initial value of the handshake retransmission timeout (ms)

uint32_t uint32_t mbedtls_ssl_config::private_hs_timeout_max private_hs_timeout_max mbedtls_ssl_config::private_hs_timeout_max

maximum value of the handshake retransmission timeout (ms)

int int mbedtls_ssl_config::private_renego_max_records private_renego_max_records mbedtls_ssl_config::private_renego_max_records

grace period for renegotiation

unsigned char unsigned char mbedtls_ssl_config::private_renego_period[8] [8] private_renego_period mbedtls_ssl_config::private_renego_period

value of the record counters that triggers renegotiation

unsigned int unsigned int mbedtls_ssl_config::private_badmac_limit private_badmac_limit mbedtls_ssl_config::private_badmac_limit

limit of records with a bad MAC

unsigned int unsigned int mbedtls_ssl_config::private_dhm_min_bitlen private_dhm_min_bitlen mbedtls_ssl_config::private_dhm_min_bitlen

min. bit length of the DHM prime

mbedtls_ssl_user_data_t mbedtls_ssl_user_data_t mbedtls_ssl_config::private_user_data private_user_data mbedtls_ssl_config::private_user_data

User data pointer or handle.

The library sets this to `0` when creating a context and does not access it afterwards.

mbedtls_ssl_hs_cb_t mbedtls_ssl_hs_cb_t mbedtls_ssl_config::private_f_cert_cb private_f_cert_cb mbedtls_ssl_config::private_f_cert_cb

certificate selection callback

const mbedtls_x509_crt * const mbedtls_x509_crt* mbedtls_ssl_config::private_dn_hints private_dn_hints mbedtls_ssl_config::private_dn_hints

acceptable client cert issuers

SSL/TLS configuration to be shared between mbedtls_ssl_context structures.

mbedtls_asn1_buf
mbedtls_asn1_named_data
oid
val
next
mbedtls_asn1_sequence
buf
next
mbedtls_dtls_srtp_info_t
mbedtls_mpi
mbedtls_pk_context
mbedtls_ssl_config
private_cert_profile
private_ca_chain
private_dn_hints
private_ca_crl
private_dhm_G
private_dhm_P
private_user_data
private_f_cert_cb
mbedtls_ssl_context
private_conf
private_session
private_session_in
private_session_negotiate
private_session_out
private_dtls_srtp_info
private_user_data
mbedtls_ssl_session
private_peer_cert
private_app_secrets
mbedtls_ssl_tls13_application_secrets
mbedtls_ssl_user_data_t
mbedtls_x509_authority
authorityCertSerialNumber
keyIdentifier
raw
authorityCertIssuer
mbedtls_x509_crl
crl_ext
issuer_raw
private_sig
private_sig_oid2
raw
sig_oid
tbs
issuer
next_update
this_update
entry
next
mbedtls_x509_crl_entry
entry_ext
raw
serial
revocation_date
next
mbedtls_x509_crt
issuer_id
issuer_raw
pk_raw
private_sig
raw
serial
sig_oid
subject_id
subject_key_id
subject_raw
...
issuer
subject
valid_from
valid_to
pk
certificate_policies
ext_key_usage
subject_alt_names
authority_key_id
next
mbedtls_x509_crt_profile
mbedtls_x509_time
- mbedtls_ssl_config
  private_allow_legacy_renegotiation
- mbedtls_ssl_config
  private_alpn_list
- mbedtls_ssl_config
  private_anti_replay
- mbedtls_ssl_config
  private_authmode
- mbedtls_ssl_config
  private_badmac_limit
- mbedtls_ssl_config
  private_ca_chain
- mbedtls_ssl_config
  private_ca_crl
- mbedtls_ssl_config
  private_cert_profile
- mbedtls_ssl_config
  private_cert_req_ca_list
- mbedtls_ssl_config
  private_cid_len
- mbedtls_ssl_config
  private_ciphersuite_list
- mbedtls_ssl_config
  private_curve_list
- mbedtls_ssl_config
  private_dhm_G
- mbedtls_ssl_config
  private_dhm_min_bitlen
- mbedtls_ssl_config
  private_dhm_P
- mbedtls_ssl_config
  private_disable_renegotiation
- mbedtls_ssl_config
  private_dn_hints
- mbedtls_ssl_config
  private_dtls_srtp_mki_support
- mbedtls_ssl_config
  private_dtls_srtp_profile_list
- mbedtls_ssl_config
  private_dtls_srtp_profile_list_len
- mbedtls_ssl_config
  private_encrypt_then_mac
- mbedtls_ssl_config
  private_endpoint
- mbedtls_ssl_config
  private_extended_ms
- mbedtls_ssl_config
  private_f_cert_cb
- mbedtls_ssl_config
  private_f_cookie_check
- mbedtls_ssl_config
  private_f_cookie_write
- mbedtls_ssl_config
  private_f_dbg
- mbedtls_ssl_config
  private_f_get_cache
- mbedtls_ssl_config
  private_f_psk
- mbedtls_ssl_config
  private_f_rng
- mbedtls_ssl_config
  private_f_set_cache
- mbedtls_ssl_config
  private_f_sni
- mbedtls_ssl_config
  private_f_ticket_parse
- mbedtls_ssl_config
  private_f_ticket_write
- mbedtls_ssl_config
  private_f_vrfy
- mbedtls_ssl_config
  private_group_list
- mbedtls_ssl_config
  private_hs_timeout_max
- mbedtls_ssl_config
  private_hs_timeout_min
- mbedtls_ssl_config
  private_ignore_unexpected_cid
- mbedtls_ssl_config
  private_key_cert
- mbedtls_ssl_config
  private_max_tls_version
- mbedtls_ssl_config
  private_mfl_code
- mbedtls_ssl_config
  private_min_tls_version
- mbedtls_ssl_config
  private_new_session_tickets_count
- mbedtls_ssl_config
  private_p_cache
- mbedtls_ssl_config
  private_p_cookie
- mbedtls_ssl_config
  private_p_dbg
- mbedtls_ssl_config
  private_p_psk
- mbedtls_ssl_config
  private_p_rng
- mbedtls_ssl_config
  private_p_sni
- mbedtls_ssl_config
  private_p_ticket
- mbedtls_ssl_config
  private_p_vrfy
- mbedtls_ssl_config
  private_psk
- mbedtls_ssl_config
  private_psk_identity
- mbedtls_ssl_config
  private_psk_identity_len
- mbedtls_ssl_config
  private_psk_len
- mbedtls_ssl_config
  private_read_timeout
- mbedtls_ssl_config
  private_renego_max_records
- mbedtls_ssl_config
  private_renego_period
- mbedtls_ssl_config
  private_respect_cli_pref
- mbedtls_ssl_config
  private_session_tickets
- mbedtls_ssl_config
  private_sig_algs
- mbedtls_ssl_config
  private_sig_hashes
- mbedtls_ssl_config
  private_tls13_kex_modes
- mbedtls_ssl_config
  private_transport
- mbedtls_ssl_config
  private_user_data