#define MBEDTLS_SSL_H
#include "config.h"
#include
#include "bignum.h"
#include "ecp.h"
#include "ssl_ciphersuites.h"
#include "x509_crt.h"
#include "x509_crl.h"
#include "dhm.h"
#include "ecdh.h"
#include "zlib.h"
#include "platform_time.h"
#define MBEDTLS_ERR_SSL_FEATURE_UNAVAILABLE
#define MBEDTLS_ERR_SSL_BAD_INPUT_DATA
#define MBEDTLS_ERR_SSL_INVALID_MAC
#define MBEDTLS_ERR_SSL_INVALID_RECORD
#define MBEDTLS_ERR_SSL_CONN_EOF
#define MBEDTLS_ERR_SSL_UNKNOWN_CIPHER
#define MBEDTLS_ERR_SSL_NO_CIPHER_CHOSEN
#define MBEDTLS_ERR_SSL_NO_RNG
#define MBEDTLS_ERR_SSL_NO_CLIENT_CERTIFICATE
#define MBEDTLS_ERR_SSL_CERTIFICATE_TOO_LARGE
#define MBEDTLS_ERR_SSL_CERTIFICATE_REQUIRED
#define MBEDTLS_ERR_SSL_PRIVATE_KEY_REQUIRED
#define MBEDTLS_ERR_SSL_CA_CHAIN_REQUIRED
#define MBEDTLS_ERR_SSL_UNEXPECTED_MESSAGE
#define MBEDTLS_ERR_SSL_FATAL_ALERT_MESSAGE
#define MBEDTLS_ERR_SSL_PEER_VERIFY_FAILED
#define MBEDTLS_ERR_SSL_PEER_CLOSE_NOTIFY
#define MBEDTLS_ERR_SSL_BAD_HS_CLIENT_HELLO
#define MBEDTLS_ERR_SSL_BAD_HS_SERVER_HELLO
#define MBEDTLS_ERR_SSL_BAD_HS_CERTIFICATE
#define MBEDTLS_ERR_SSL_BAD_HS_CERTIFICATE_REQUEST
#define MBEDTLS_ERR_SSL_BAD_HS_SERVER_KEY_EXCHANGE
#define MBEDTLS_ERR_SSL_BAD_HS_SERVER_HELLO_DONE
#define MBEDTLS_ERR_SSL_BAD_HS_CLIENT_KEY_EXCHANGE
#define MBEDTLS_ERR_SSL_BAD_HS_CLIENT_KEY_EXCHANGE_RP
#define MBEDTLS_ERR_SSL_BAD_HS_CLIENT_KEY_EXCHANGE_CS
#define MBEDTLS_ERR_SSL_BAD_HS_CERTIFICATE_VERIFY
#define MBEDTLS_ERR_SSL_BAD_HS_CHANGE_CIPHER_SPEC
#define MBEDTLS_ERR_SSL_BAD_HS_FINISHED
#define MBEDTLS_ERR_SSL_ALLOC_FAILED
#define MBEDTLS_ERR_SSL_HW_ACCEL_FAILED
#define MBEDTLS_ERR_SSL_HW_ACCEL_FALLTHROUGH
#define MBEDTLS_ERR_SSL_COMPRESSION_FAILED
#define MBEDTLS_ERR_SSL_BAD_HS_PROTOCOL_VERSION
#define MBEDTLS_ERR_SSL_BAD_HS_NEW_SESSION_TICKET
#define MBEDTLS_ERR_SSL_SESSION_TICKET_EXPIRED
#define MBEDTLS_ERR_SSL_PK_TYPE_MISMATCH
#define MBEDTLS_ERR_SSL_UNKNOWN_IDENTITY
#define MBEDTLS_ERR_SSL_INTERNAL_ERROR
#define MBEDTLS_ERR_SSL_COUNTER_WRAPPING
#define MBEDTLS_ERR_SSL_WAITING_SERVER_HELLO_RENEGO
#define MBEDTLS_ERR_SSL_HELLO_VERIFY_REQUIRED
#define MBEDTLS_ERR_SSL_BUFFER_TOO_SMALL
#define MBEDTLS_ERR_SSL_NO_USABLE_CIPHERSUITE
#define MBEDTLS_ERR_SSL_WANT_READ
#define MBEDTLS_ERR_SSL_WANT_WRITE
#define MBEDTLS_ERR_SSL_TIMEOUT
#define MBEDTLS_ERR_SSL_CLIENT_RECONNECT
#define MBEDTLS_ERR_SSL_UNEXPECTED_RECORD
#define MBEDTLS_ERR_SSL_NON_FATAL
#define MBEDTLS_ERR_SSL_INVALID_VERIFY_HASH
#define MBEDTLS_ERR_SSL_CONTINUE_PROCESSING
#define MBEDTLS_ERR_SSL_ASYNC_IN_PROGRESS
#define MBEDTLS_ERR_SSL_EARLY_MESSAGE
#define MBEDTLS_ERR_SSL_CRYPTO_IN_PROGRESS
#define MBEDTLS_SSL_MAJOR_VERSION_3
#define MBEDTLS_SSL_MINOR_VERSION_0
#define MBEDTLS_SSL_MINOR_VERSION_1
#define MBEDTLS_SSL_MINOR_VERSION_2
#define MBEDTLS_SSL_MINOR_VERSION_3
#define MBEDTLS_SSL_TRANSPORT_STREAM
#define MBEDTLS_SSL_TRANSPORT_DATAGRAM
#define MBEDTLS_SSL_MAX_HOST_NAME_LEN
#define MBEDTLS_SSL_MAX_FRAG_LEN_NONE
#define MBEDTLS_SSL_MAX_FRAG_LEN_512
#define MBEDTLS_SSL_MAX_FRAG_LEN_1024
#define MBEDTLS_SSL_MAX_FRAG_LEN_2048
#define MBEDTLS_SSL_MAX_FRAG_LEN_4096
#define MBEDTLS_SSL_MAX_FRAG_LEN_INVALID
#define MBEDTLS_SSL_IS_CLIENT
#define MBEDTLS_SSL_IS_SERVER
#define MBEDTLS_SSL_IS_NOT_FALLBACK
#define MBEDTLS_SSL_IS_FALLBACK
#define MBEDTLS_SSL_EXTENDED_MS_DISABLED
#define MBEDTLS_SSL_EXTENDED_MS_ENABLED
#define MBEDTLS_SSL_ETM_DISABLED
#define MBEDTLS_SSL_ETM_ENABLED
#define MBEDTLS_SSL_COMPRESS_NULL
#define MBEDTLS_SSL_COMPRESS_DEFLATE
#define MBEDTLS_SSL_VERIFY_NONE
#define MBEDTLS_SSL_VERIFY_OPTIONAL
#define MBEDTLS_SSL_VERIFY_REQUIRED
#define MBEDTLS_SSL_VERIFY_UNSET
#define MBEDTLS_SSL_LEGACY_RENEGOTIATION
#define MBEDTLS_SSL_SECURE_RENEGOTIATION
#define MBEDTLS_SSL_RENEGOTIATION_DISABLED
#define MBEDTLS_SSL_RENEGOTIATION_ENABLED
#define MBEDTLS_SSL_ANTI_REPLAY_DISABLED
#define MBEDTLS_SSL_ANTI_REPLAY_ENABLED
#define MBEDTLS_SSL_RENEGOTIATION_NOT_ENFORCED
#define MBEDTLS_SSL_RENEGO_MAX_RECORDS_DEFAULT
#define MBEDTLS_SSL_LEGACY_NO_RENEGOTIATION
#define MBEDTLS_SSL_LEGACY_ALLOW_RENEGOTIATION
#define MBEDTLS_SSL_LEGACY_BREAK_HANDSHAKE
#define MBEDTLS_SSL_TRUNC_HMAC_DISABLED
#define MBEDTLS_SSL_TRUNC_HMAC_ENABLED
#define MBEDTLS_SSL_TRUNCATED_HMAC_LEN
#define MBEDTLS_SSL_SESSION_TICKETS_DISABLED
#define MBEDTLS_SSL_SESSION_TICKETS_ENABLED
#define MBEDTLS_SSL_CBC_RECORD_SPLITTING_DISABLED
#define MBEDTLS_SSL_CBC_RECORD_SPLITTING_ENABLED
#define MBEDTLS_SSL_ARC4_ENABLED
#define MBEDTLS_SSL_ARC4_DISABLED
#define MBEDTLS_SSL_PRESET_DEFAULT
#define MBEDTLS_SSL_PRESET_SUITEB
#define MBEDTLS_SSL_CERT_REQ_CA_LIST_ENABLED
#define MBEDTLS_SSL_CERT_REQ_CA_LIST_DISABLED
#define MBEDTLS_SSL_DTLS_TIMEOUT_DFL_MIN
#define MBEDTLS_SSL_DTLS_TIMEOUT_DFL_MAX
#define MBEDTLS_SSL_DEFAULT_TICKET_LIFETIME
#define MBEDTLS_SSL_MAX_CONTENT_LEN
#define MBEDTLS_SSL_IN_CONTENT_LEN
#define MBEDTLS_SSL_OUT_CONTENT_LEN
#define MBEDTLS_SSL_DTLS_MAX_BUFFERING
#define MBEDTLS_SSL_VERIFY_DATA_MAX_LEN
#define MBEDTLS_SSL_VERIFY_DATA_MAX_LEN
#define MBEDTLS_SSL_EMPTY_RENEGOTIATION_INFO
#define MBEDTLS_SSL_FALLBACK_SCSV_VALUE
#define MBEDTLS_SSL_HASH_NONE
#define MBEDTLS_SSL_HASH_MD5
#define MBEDTLS_SSL_HASH_SHA1
#define MBEDTLS_SSL_HASH_SHA224
#define MBEDTLS_SSL_HASH_SHA256
#define MBEDTLS_SSL_HASH_SHA384
#define MBEDTLS_SSL_HASH_SHA512
#define MBEDTLS_SSL_SIG_ANON
#define MBEDTLS_SSL_SIG_RSA
#define MBEDTLS_SSL_SIG_ECDSA
#define MBEDTLS_SSL_CERT_TYPE_RSA_SIGN
#define MBEDTLS_SSL_CERT_TYPE_ECDSA_SIGN
#define MBEDTLS_SSL_MSG_CHANGE_CIPHER_SPEC
#define MBEDTLS_SSL_MSG_ALERT
#define MBEDTLS_SSL_MSG_HANDSHAKE
#define MBEDTLS_SSL_MSG_APPLICATION_DATA
#define MBEDTLS_SSL_ALERT_LEVEL_WARNING
#define MBEDTLS_SSL_ALERT_LEVEL_FATAL
#define MBEDTLS_SSL_ALERT_MSG_CLOSE_NOTIFY
#define MBEDTLS_SSL_ALERT_MSG_UNEXPECTED_MESSAGE
#define MBEDTLS_SSL_ALERT_MSG_BAD_RECORD_MAC
#define MBEDTLS_SSL_ALERT_MSG_DECRYPTION_FAILED
#define MBEDTLS_SSL_ALERT_MSG_RECORD_OVERFLOW
#define MBEDTLS_SSL_ALERT_MSG_DECOMPRESSION_FAILURE
#define MBEDTLS_SSL_ALERT_MSG_HANDSHAKE_FAILURE
#define MBEDTLS_SSL_ALERT_MSG_NO_CERT
#define MBEDTLS_SSL_ALERT_MSG_BAD_CERT
#define MBEDTLS_SSL_ALERT_MSG_UNSUPPORTED_CERT
#define MBEDTLS_SSL_ALERT_MSG_CERT_REVOKED
#define MBEDTLS_SSL_ALERT_MSG_CERT_EXPIRED
#define MBEDTLS_SSL_ALERT_MSG_CERT_UNKNOWN
#define MBEDTLS_SSL_ALERT_MSG_ILLEGAL_PARAMETER
#define MBEDTLS_SSL_ALERT_MSG_UNKNOWN_CA
#define MBEDTLS_SSL_ALERT_MSG_ACCESS_DENIED
#define MBEDTLS_SSL_ALERT_MSG_DECODE_ERROR
#define MBEDTLS_SSL_ALERT_MSG_DECRYPT_ERROR
#define MBEDTLS_SSL_ALERT_MSG_EXPORT_RESTRICTION
#define MBEDTLS_SSL_ALERT_MSG_PROTOCOL_VERSION
#define MBEDTLS_SSL_ALERT_MSG_INSUFFICIENT_SECURITY
#define MBEDTLS_SSL_ALERT_MSG_INTERNAL_ERROR
#define MBEDTLS_SSL_ALERT_MSG_INAPROPRIATE_FALLBACK
#define MBEDTLS_SSL_ALERT_MSG_USER_CANCELED
#define MBEDTLS_SSL_ALERT_MSG_NO_RENEGOTIATION
#define MBEDTLS_SSL_ALERT_MSG_UNSUPPORTED_EXT
#define MBEDTLS_SSL_ALERT_MSG_UNRECOGNIZED_NAME
#define MBEDTLS_SSL_ALERT_MSG_UNKNOWN_PSK_IDENTITY
#define MBEDTLS_SSL_ALERT_MSG_NO_APPLICATION_PROTOCOL
#define MBEDTLS_SSL_HS_HELLO_REQUEST
#define MBEDTLS_SSL_HS_CLIENT_HELLO
#define MBEDTLS_SSL_HS_SERVER_HELLO
#define MBEDTLS_SSL_HS_HELLO_VERIFY_REQUEST
#define MBEDTLS_SSL_HS_NEW_SESSION_TICKET
#define MBEDTLS_SSL_HS_CERTIFICATE
#define MBEDTLS_SSL_HS_SERVER_KEY_EXCHANGE
#define MBEDTLS_SSL_HS_CERTIFICATE_REQUEST
#define MBEDTLS_SSL_HS_SERVER_HELLO_DONE
#define MBEDTLS_SSL_HS_CERTIFICATE_VERIFY
#define MBEDTLS_SSL_HS_CLIENT_KEY_EXCHANGE
#define MBEDTLS_SSL_HS_FINISHED
#define MBEDTLS_TLS_EXT_SERVERNAME
#define MBEDTLS_TLS_EXT_SERVERNAME_HOSTNAME
#define MBEDTLS_TLS_EXT_MAX_FRAGMENT_LENGTH
#define MBEDTLS_TLS_EXT_TRUNCATED_HMAC
#define MBEDTLS_TLS_EXT_SUPPORTED_ELLIPTIC_CURVES
#define MBEDTLS_TLS_EXT_SUPPORTED_POINT_FORMATS
#define MBEDTLS_TLS_EXT_SIG_ALG
#define MBEDTLS_TLS_EXT_ALPN
#define MBEDTLS_TLS_EXT_ENCRYPT_THEN_MAC
#define MBEDTLS_TLS_EXT_EXTENDED_MASTER_SECRET
#define MBEDTLS_TLS_EXT_SESSION_TICKET
#define MBEDTLS_TLS_EXT_ECJPAKE_KKPP
#define MBEDTLS_TLS_EXT_RENEGOTIATION_INFO
#define MBEDTLS_PSK_MAX_LEN
mbedtls_ssl_premaster_secret
_pms_ecdh
#define MBEDTLS_PREMASTER_SIZE
mbedtls_ssl_states
MBEDTLS_SSL_HELLO_REQUEST
MBEDTLS_SSL_CLIENT_HELLO
MBEDTLS_SSL_SERVER_HELLO
MBEDTLS_SSL_SERVER_CERTIFICATE
MBEDTLS_SSL_SERVER_KEY_EXCHANGE
MBEDTLS_SSL_CERTIFICATE_REQUEST
MBEDTLS_SSL_SERVER_HELLO_DONE
MBEDTLS_SSL_CLIENT_CERTIFICATE
MBEDTLS_SSL_CLIENT_KEY_EXCHANGE
MBEDTLS_SSL_CERTIFICATE_VERIFY
MBEDTLS_SSL_CLIENT_CHANGE_CIPHER_SPEC
MBEDTLS_SSL_CLIENT_FINISHED
MBEDTLS_SSL_SERVER_CHANGE_CIPHER_SPEC
MBEDTLS_SSL_SERVER_FINISHED
MBEDTLS_SSL_FLUSH_BUFFERS
MBEDTLS_SSL_HANDSHAKE_WRAPUP
MBEDTLS_SSL_HANDSHAKE_OVER
MBEDTLS_SSL_SERVER_NEW_SESSION_TICKET
MBEDTLS_SSL_SERVER_HELLO_VERIFY_REQUEST_SENT
mbedtls_ssl_send_t
mbedtls_ssl_recv_t
mbedtls_ssl_recv_timeout_t
mbedtls_ssl_set_timer_t
mbedtls_ssl_session
mbedtls_ssl_context
mbedtls_ssl_config
mbedtls_ssl_transform
mbedtls_ssl_handshake_params
mbedtls_ssl_sig_hash_set_t
mbedtls_ssl_key_cert
mbedtls_ssl_session
ciphersuite
compression
id_len
id
master
peer_cert
verify_result
mbedtls_ssl_config
ciphersuite_list
f_dbg
p_dbg
f_rng
p_rng
f_get_cache
f_set_cache
p_cache
f_vrfy
p_vrfy
cert_profile
key_cert
ca_chain
ca_crl
sig_hashes
curve_list
read_timeout
max_major_ver
max_minor_ver
min_major_ver
min_minor_ver
endpoint
transport
authmode
allow_legacy_renegotiation
cert_req_ca_list
mbedtls_ssl_context
conf
state
major_ver
minor_ver
f_send
f_recv
f_recv_timeout
p_bio
session_in
session_out
session
session_negotiate
handshake
transform_in
transform_out
transform
transform_negotiate
p_timer
f_set_timer
f_get_timer
in_buf
in_ctr
in_hdr
in_len
in_iv
in_msg
in_offt
in_msgtype
in_msglen
in_left
in_hslen
nb_zero
keep_current_message
out_buf
out_ctr
out_hdr
out_len
out_iv
out_msg
out_msgtype
out_msglen
out_left
cur_out_ctr
client_auth
hostname
secure_renegotiation
#define MBEDTLS_SSL_CHANNEL_OUTBOUND
#define MBEDTLS_SSL_CHANNEL_INBOUND
mbedtls_ssl_get_ciphersuite_name(const int);
mbedtls_ssl_get_ciphersuite_id(const char *);
mbedtls_ssl_init(mbedtls_ssl_context *);
mbedtls_ssl_setup(mbedtls_ssl_context *, const mbedtls_ssl_config *);
mbedtls_ssl_session_reset(mbedtls_ssl_context *);
mbedtls_ssl_conf_endpoint(mbedtls_ssl_config *, int);
mbedtls_ssl_conf_transport(mbedtls_ssl_config *, int);
mbedtls_ssl_conf_authmode(mbedtls_ssl_config *, int);
mbedtls_ssl_conf_verify(mbedtls_ssl_config *, int (*)(void *, mbedtls_x509_crt *, int, uint32_t *), void *);
mbedtls_ssl_conf_rng(mbedtls_ssl_config *, int (*)(void *, unsigned char *, size_t), void *);
mbedtls_ssl_conf_dbg(mbedtls_ssl_config *, void (*)(void *, int, const char *, int, const char *), void *);
mbedtls_ssl_set_bio(mbedtls_ssl_context *, void *, mbedtls_ssl_send_t *, mbedtls_ssl_recv_t *, mbedtls_ssl_recv_timeout_t *);
mbedtls_ssl_conf_read_timeout(mbedtls_ssl_config *, uint32_t);
mbedtls_ssl_set_timer_cb(mbedtls_ssl_context *, void *, mbedtls_ssl_set_timer_t *, mbedtls_ssl_get_timer_t *);
mbedtls_ssl_ticket_write_t
mbedtls_ssl_ticket_parse_t
mbedtls_ssl_cookie_write_t
mbedtls_ssl_cookie_check_t
mbedtls_ssl_conf_session_cache(mbedtls_ssl_config *, void *, int (*)(void *, mbedtls_ssl_session *), int (*)(void *, const mbedtls_ssl_session *));
mbedtls_ssl_set_session(mbedtls_ssl_context *, const mbedtls_ssl_session *);
mbedtls_ssl_conf_ciphersuites(mbedtls_ssl_config *, const int *);
mbedtls_ssl_conf_ciphersuites_for_version(mbedtls_ssl_config *, const int *, int, int);
mbedtls_ssl_conf_cert_profile(mbedtls_ssl_config *, const mbedtls_x509_crt_profile *);
mbedtls_ssl_conf_ca_chain(mbedtls_ssl_config *, mbedtls_x509_crt *, mbedtls_x509_crl *);
mbedtls_ssl_conf_own_cert(mbedtls_ssl_config *, mbedtls_x509_crt *, mbedtls_pk_context *);
#define MBEDTLS_DEPRECATED
#define MBEDTLS_DEPRECATED
mbedtls_ssl_conf_curves(mbedtls_ssl_config *, const mbedtls_ecp_group_id *);
mbedtls_ssl_conf_sig_hashes(mbedtls_ssl_config *, const int *);
mbedtls_ssl_set_hostname(mbedtls_ssl_context *, const char *);
mbedtls_ssl_conf_max_version(mbedtls_ssl_config *, int, int);
mbedtls_ssl_conf_min_version(mbedtls_ssl_config *, int, int);
mbedtls_ssl_conf_cert_req_ca_list(mbedtls_ssl_config *, char);
mbedtls_ssl_conf_legacy_renegotiation(mbedtls_ssl_config *, int);
mbedtls_ssl_check_pending(const mbedtls_ssl_context *);
mbedtls_ssl_get_bytes_avail(const mbedtls_ssl_context *);
mbedtls_ssl_get_verify_result(const mbedtls_ssl_context *);
mbedtls_ssl_get_ciphersuite(const mbedtls_ssl_context *);
mbedtls_ssl_get_version(const mbedtls_ssl_context *);
mbedtls_ssl_get_record_expansion(const mbedtls_ssl_context *);
mbedtls_ssl_get_max_out_record_payload(const mbedtls_ssl_context *);
mbedtls_ssl_get_peer_cert(const mbedtls_ssl_context *);
mbedtls_ssl_get_session(const mbedtls_ssl_context *, mbedtls_ssl_session *);
mbedtls_ssl_handshake(mbedtls_ssl_context *);
mbedtls_ssl_handshake_step(mbedtls_ssl_context *);
mbedtls_ssl_read(mbedtls_ssl_context *, unsigned char *, size_t);
mbedtls_ssl_write(mbedtls_ssl_context *, const unsigned char *, size_t);
mbedtls_ssl_send_alert_message(mbedtls_ssl_context *, unsigned char, unsigned char);
mbedtls_ssl_close_notify(mbedtls_ssl_context *);
mbedtls_ssl_free(mbedtls_ssl_context *);
mbedtls_ssl_config_init(mbedtls_ssl_config *);
mbedtls_ssl_config_defaults(mbedtls_ssl_config *, int, int, int);
mbedtls_ssl_config_free(mbedtls_ssl_config *);
mbedtls_ssl_session_init(mbedtls_ssl_session *);
mbedtls_ssl_session_free(mbedtls_ssl_session *);