Documentation
Includes
config.h
#include "config.h"
MBEDTLS_CONFIG_FILE
#include MBEDTLS_CONFIG_FILE
ssl.h
#include "ssl.h"
cipher.h
#include "cipher.h"
md5.h
#include "md5.h"
sha1.h
#include "sha1.h"
sha256.h
#include "sha256.h"
sha512.h
#include "sha512.h"
ecjpake.h
#include "ecjpake.h"
Macros
Marco MBEDTLS_SSL_INTERNAL_H
#define MBEDTLS_SSL_INTERNAL_H
Marco inline
#define inline __inline
Marco MBEDTLS_SSL_MIN_MAJOR_VERSION
#define MBEDTLS_SSL_MIN_MAJOR_VERSION MBEDTLS_SSL_MAJOR_VERSION_3
Marco MBEDTLS_SSL_MIN_MINOR_VERSION
#define MBEDTLS_SSL_MIN_MINOR_VERSION MBEDTLS_SSL_MINOR_VERSION_0
Marco MBEDTLS_SSL_MIN_MINOR_VERSION
#define MBEDTLS_SSL_MIN_MINOR_VERSION MBEDTLS_SSL_MINOR_VERSION_1
Marco MBEDTLS_SSL_MIN_MINOR_VERSION
#define MBEDTLS_SSL_MIN_MINOR_VERSION MBEDTLS_SSL_MINOR_VERSION_2
Marco MBEDTLS_SSL_MIN_MINOR_VERSION
#define MBEDTLS_SSL_MIN_MINOR_VERSION MBEDTLS_SSL_MINOR_VERSION_3
Marco MBEDTLS_SSL_MIN_VALID_MINOR_VERSION
#define MBEDTLS_SSL_MIN_VALID_MINOR_VERSION MBEDTLS_SSL_MINOR_VERSION_1
Marco MBEDTLS_SSL_MIN_VALID_MAJOR_VERSION
#define MBEDTLS_SSL_MIN_VALID_MAJOR_VERSION MBEDTLS_SSL_MAJOR_VERSION_3
Marco MBEDTLS_SSL_MAX_MAJOR_VERSION
#define MBEDTLS_SSL_MAX_MAJOR_VERSION MBEDTLS_SSL_MAJOR_VERSION_3
Marco MBEDTLS_SSL_MAX_MINOR_VERSION
#define MBEDTLS_SSL_MAX_MINOR_VERSION MBEDTLS_SSL_MINOR_VERSION_3
Marco MBEDTLS_SSL_MAX_MINOR_VERSION
#define MBEDTLS_SSL_MAX_MINOR_VERSION MBEDTLS_SSL_MINOR_VERSION_2
Marco MBEDTLS_SSL_MAX_MINOR_VERSION
#define MBEDTLS_SSL_MAX_MINOR_VERSION MBEDTLS_SSL_MINOR_VERSION_1
Marco MBEDTLS_SSL_MAX_MINOR_VERSION
#define MBEDTLS_SSL_MAX_MINOR_VERSION MBEDTLS_SSL_MINOR_VERSION_0
Marco MBEDTLS_SSL__ECP_RESTARTABLE
#define MBEDTLS_SSL__ECP_RESTARTABLE
Marco MBEDTLS_SSL_INITIAL_HANDSHAKE
#define MBEDTLS_SSL_INITIAL_HANDSHAKE 0
Marco MBEDTLS_SSL_RENEGOTIATION_IN_PROGRESS
#define MBEDTLS_SSL_RENEGOTIATION_IN_PROGRESS 1 /* In progress */
Marco MBEDTLS_SSL_RENEGOTIATION_DONE
#define MBEDTLS_SSL_RENEGOTIATION_DONE 2 /* Done or aborted */
Marco MBEDTLS_SSL_RENEGOTIATION_PENDING
#define MBEDTLS_SSL_RENEGOTIATION_PENDING 3 /* Requested (server only) */
Marco MBEDTLS_SSL_RETRANS_PREPARING
#define MBEDTLS_SSL_RETRANS_PREPARING 0
Marco MBEDTLS_SSL_RETRANS_SENDING
#define MBEDTLS_SSL_RETRANS_SENDING 1
Marco MBEDTLS_SSL_RETRANS_WAITING
#define MBEDTLS_SSL_RETRANS_WAITING 2
Marco MBEDTLS_SSL_RETRANS_FINISHED
#define MBEDTLS_SSL_RETRANS_FINISHED 3
Marco MBEDTLS_SSL_COMPRESSION_ADD
#define MBEDTLS_SSL_COMPRESSION_ADD 1024
Marco MBEDTLS_SSL_COMPRESSION_ADD
#define MBEDTLS_SSL_COMPRESSION_ADD 0
Marco MBEDTLS_SSL_MAC_ADD
#define MBEDTLS_SSL_MAC_ADD 48 /* SHA-384 used for HMAC */
Marco MBEDTLS_SSL_MAC_ADD
#define MBEDTLS_SSL_MAC_ADD 32 /* SHA-256 used for HMAC */
Marco MBEDTLS_SSL_MAC_ADD
#define MBEDTLS_SSL_MAC_ADD 20 /* SHA-1 used for HMAC */
Marco MBEDTLS_SSL_MAC_ADD
#define MBEDTLS_SSL_MAC_ADD 16
Marco MBEDTLS_SSL_PADDING_ADD
#define MBEDTLS_SSL_PADDING_ADD 256
Marco MBEDTLS_SSL_PADDING_ADD
#define MBEDTLS_SSL_PADDING_ADD 0
Marco MBEDTLS_SSL_PAYLOAD_OVERHEAD
#define MBEDTLS_SSL_PAYLOAD_OVERHEAD ( MBEDTLS_SSL_COMPRESSION_ADD + \
MBEDTLS_MAX_IV_LENGTH + \
MBEDTLS_SSL_MAC_ADD + \
MBEDTLS_SSL_PADDING_ADD \
)
Marco MBEDTLS_SSL_IN_PAYLOAD_LEN
#define MBEDTLS_SSL_IN_PAYLOAD_LEN ( MBEDTLS_SSL_PAYLOAD_OVERHEAD + \
( MBEDTLS_SSL_IN_CONTENT_LEN ) )
Marco MBEDTLS_SSL_OUT_PAYLOAD_LEN
#define MBEDTLS_SSL_OUT_PAYLOAD_LEN ( MBEDTLS_SSL_PAYLOAD_OVERHEAD + \
( MBEDTLS_SSL_OUT_CONTENT_LEN ) )
Marco MBEDTLS_SSL_MAX_BUFFERED_HS
#define MBEDTLS_SSL_MAX_BUFFERED_HS 4
Marco MBEDTLS_TLS_EXT_ADV_CONTENT_LEN
#define MBEDTLS_TLS_EXT_ADV_CONTENT_LEN ( \
(MBEDTLS_SSL_IN_CONTENT_LEN > MBEDTLS_SSL_OUT_CONTENT_LEN) \
? ( MBEDTLS_SSL_OUT_CONTENT_LEN ) \
: ( MBEDTLS_SSL_IN_CONTENT_LEN ) \
)
#define MBEDTLS_SSL_HEADER_LEN 13
Marco MBEDTLS_SSL_IN_BUFFER_LEN
#define MBEDTLS_SSL_IN_BUFFER_LEN \
( ( MBEDTLS_SSL_HEADER_LEN ) + ( MBEDTLS_SSL_IN_PAYLOAD_LEN ) )
Marco MBEDTLS_SSL_OUT_BUFFER_LEN
#define MBEDTLS_SSL_OUT_BUFFER_LEN \
( ( MBEDTLS_SSL_HEADER_LEN ) + ( MBEDTLS_SSL_OUT_PAYLOAD_LEN ) )
Marco MBEDTLS_SSL_COMPRESS_BUFFER_LEN
#define MBEDTLS_SSL_COMPRESS_BUFFER_LEN ( \
( MBEDTLS_SSL_IN_BUFFER_LEN > MBEDTLS_SSL_OUT_BUFFER_LEN ) \
? MBEDTLS_SSL_IN_BUFFER_LEN \
: MBEDTLS_SSL_OUT_BUFFER_LEN \
)
#define MBEDTLS_TLS_EXT_SUPPORTED_POINT_FORMATS_PRESENT (1 << 0)
Marco MBEDTLS_TLS_EXT_ECJPAKE_KKPP_OK
#define MBEDTLS_TLS_EXT_ECJPAKE_KKPP_OK (1 << 1)
Functions
Func mbedtls_ssl_sig_hash_set_add
void mbedtls_ssl_sig_hash_set_add( mbedtls_ssl_sig_hash_set_t *set,
mbedtls_pk_type_t sig_alg,
mbedtls_md_type_t md_alg );
Func mbedtls_ssl_sig_hash_set_const_hash
void mbedtls_ssl_sig_hash_set_const_hash( mbedtls_ssl_sig_hash_set_t *set,
mbedtls_md_type_t md_alg );
void mbedtls_ssl_transform_free( mbedtls_ssl_transform *transform );
Func mbedtls_ssl_handshake_free
void mbedtls_ssl_handshake_free( mbedtls_ssl_context *ssl );
Func mbedtls_ssl_handshake_client_step
int mbedtls_ssl_handshake_client_step( mbedtls_ssl_context *ssl );
Func mbedtls_ssl_handshake_server_step
int mbedtls_ssl_handshake_server_step( mbedtls_ssl_context *ssl );
Func mbedtls_ssl_handshake_wrapup
void mbedtls_ssl_handshake_wrapup( mbedtls_ssl_context *ssl );
Func mbedtls_ssl_send_fatal_handshake_failure
int mbedtls_ssl_send_fatal_handshake_failure( mbedtls_ssl_context *ssl );
Func mbedtls_ssl_reset_checksum
void mbedtls_ssl_reset_checksum( mbedtls_ssl_context *ssl );
Func mbedtls_ssl_derive_keys
int mbedtls_ssl_derive_keys( mbedtls_ssl_context *ssl );
Func mbedtls_ssl_handle_message_type
int mbedtls_ssl_handle_message_type( mbedtls_ssl_context *ssl );
Func mbedtls_ssl_prepare_handshake_record
int mbedtls_ssl_prepare_handshake_record( mbedtls_ssl_context *ssl );
Func mbedtls_ssl_update_handshake_status
void mbedtls_ssl_update_handshake_status( mbedtls_ssl_context *ssl );
Func mbedtls_ssl_read_record
int mbedtls_ssl_read_record( mbedtls_ssl_context *ssl,
unsigned update_hs_digest );
int mbedtls_ssl_fetch_input( mbedtls_ssl_context *ssl, size_t nb_want );
Func mbedtls_ssl_write_handshake_msg
int mbedtls_ssl_write_handshake_msg( mbedtls_ssl_context *ssl );
Func mbedtls_ssl_write_record
int mbedtls_ssl_write_record( mbedtls_ssl_context *ssl, uint8_t force_flush );
Func mbedtls_ssl_flush_output
int mbedtls_ssl_flush_output( mbedtls_ssl_context *ssl );
Func mbedtls_ssl_parse_certificate
int mbedtls_ssl_parse_certificate( mbedtls_ssl_context *ssl );
Func mbedtls_ssl_write_certificate
int mbedtls_ssl_write_certificate( mbedtls_ssl_context *ssl );
Func mbedtls_ssl_parse_change_cipher_spec
int mbedtls_ssl_parse_change_cipher_spec( mbedtls_ssl_context *ssl );
Func mbedtls_ssl_write_change_cipher_spec
int mbedtls_ssl_write_change_cipher_spec( mbedtls_ssl_context *ssl );
Func mbedtls_ssl_parse_finished
int mbedtls_ssl_parse_finished( mbedtls_ssl_context *ssl );
Func mbedtls_ssl_write_finished
int mbedtls_ssl_write_finished( mbedtls_ssl_context *ssl );
Func mbedtls_ssl_optimize_checksum
void mbedtls_ssl_optimize_checksum( mbedtls_ssl_context *ssl,
const mbedtls_ssl_ciphersuite_t *ciphersuite_info );
Func mbedtls_ssl_psk_derive_premaster
int mbedtls_ssl_psk_derive_premaster( mbedtls_ssl_context *ssl, mbedtls_key_exchange_type_t key_ex );
Func mbedtls_ssl_set_calc_verify_md
int mbedtls_ssl_set_calc_verify_md( mbedtls_ssl_context *ssl, int md );
Func mbedtls_ssl_check_curve
int mbedtls_ssl_check_curve( const mbedtls_ssl_context *ssl, mbedtls_ecp_group_id grp_id );
Func mbedtls_ssl_check_sig_hash
int mbedtls_ssl_check_sig_hash( const mbedtls_ssl_context *ssl,
mbedtls_md_type_t md );
Func mbedtls_ssl_check_cert_usage
int mbedtls_ssl_check_cert_usage( const mbedtls_x509_crt *cert,
const mbedtls_ssl_ciphersuite_t *ciphersuite,
int cert_endpoint,
uint32_t *flags );
Func mbedtls_ssl_write_version
void mbedtls_ssl_write_version( int major, int minor, int transport,
unsigned char ver[2] );
Func mbedtls_ssl_read_version
void mbedtls_ssl_read_version( int *major, int *minor, int transport,
const unsigned char ver[2] );
Func mbedtls_ssl_send_flight_completed
void mbedtls_ssl_send_flight_completed( mbedtls_ssl_context *ssl );
Func mbedtls_ssl_recv_flight_completed
void mbedtls_ssl_recv_flight_completed( mbedtls_ssl_context *ssl );
Func mbedtls_ssl_resend
int mbedtls_ssl_resend( mbedtls_ssl_context *ssl );
Func mbedtls_ssl_flight_transmit
int mbedtls_ssl_flight_transmit( mbedtls_ssl_context *ssl );
Func mbedtls_ssl_dtls_replay_check
int mbedtls_ssl_dtls_replay_check( mbedtls_ssl_context *ssl );
Func mbedtls_ssl_dtls_replay_update
void mbedtls_ssl_dtls_replay_update( mbedtls_ssl_context *ssl );
Func return
return( diff );
Func mbedtls_ssl_get_key_exchange_md_ssl_tls
int mbedtls_ssl_get_key_exchange_md_ssl_tls( mbedtls_ssl_context *ssl,
unsigned char *output,
unsigned char *data, size_t data_len );
Func mbedtls_ssl_get_key_exchange_md_tls1_2
int mbedtls_ssl_get_key_exchange_md_tls1_2( mbedtls_ssl_context *ssl,
unsigned char *hash, size_t *hashlen,
unsigned char *data, size_t data_len,
mbedtls_md_type_t md_alg );
Vars
Variable ecrs_n
size_t ecrs_n;
Variable out_msg_seq
unsigned int out_msg_seq;
Variable in_msg_seq
unsigned int in_msg_seq;
Variable char
unsigned char *verify_cookie;
Variable char
unsigned char verify_cookie_len;
Variable retransmit_timeout
uint32_t retransmit_timeout;
Variable char
unsigned char retransmit_state;
Variable flight
mbedtls_ssl_flight_item *flight;
Variable cur_msg
mbedtls_ssl_flight_item *cur_msg;
Variable char
unsigned char *cur_msg_p;
Variable in_flight_start_seq
unsigned int in_flight_start_seq;
mbedtls_ssl_transform *alt_transform_out;
Variable char
unsigned char alt_out_ctr[8];
Variable uint16_t
uint16_t mtu;
Variable mbedtls_md5_context
mbedtls_md5_context fin_md5;
Variable mbedtls_sha1_context
mbedtls_sha1_context fin_sha1;
Variable mbedtls_sha256_context
mbedtls_sha256_context fin_sha256;
Variable mbedtls_sha512_context
mbedtls_sha512_context fin_sha512;
Variable update_checksum
void (*update_checksum)(mbedtls_ssl_context *, const unsigned char *, size_t);
Variable calc_verify
void (*calc_verify)(mbedtls_ssl_context *, unsigned char *);
Variable calc_finished
void (*calc_finished)(mbedtls_ssl_context *, unsigned char *, int);
Variable tls_prf
int (*tls_prf)(const unsigned char *, size_t, const char *,
const unsigned char *, size_t,
unsigned char *, size_t);
Variable pmslen
size_t pmslen;
Variable char
unsigned char randbytes[64];
Variable char
unsigned char premaster[MBEDTLS_PREMASTER_SIZE];
Variable resume
int resume;
Variable max_major_ver
int max_major_ver;
Variable max_minor_ver
int max_minor_ver;
Variable cli_exts
int cli_exts;
Variable new_session_ticket
int new_session_ticket;
Variable extended_ms
int extended_ms;
Variable async_in_progress
unsigned int async_in_progress : 1;
Variable user_async_ctx
void *user_async_ctx;
Variable mbedtls_md_type_t
mbedtls_md_type_t mbedtls_ssl_sig_hash_set_find( mbedtls_ssl_sig_hash_set_t *set,
mbedtls_pk_type_t sig_alg );
Variable char
unsigned char mbedtls_ssl_sig_from_pk( mbedtls_pk_context *pk );
Variable char
unsigned char mbedtls_ssl_sig_from_pk_alg( mbedtls_pk_type_t type );
Variable mbedtls_pk_type_t
mbedtls_pk_type_t mbedtls_ssl_pk_alg_from_sig( unsigned char sig );
Variable mbedtls_md_type_t
mbedtls_md_type_t mbedtls_ssl_md_alg_from_hash( unsigned char hash );
Variable char
unsigned char mbedtls_ssl_hash_from_md_alg( int md );
Consts
Types
Typedefs
Typedef mbedtls_ssl_hs_buffer
typedef struct mbedtls_ssl_hs_buffer mbedtls_ssl_hs_buffer;