#include <string.h>
#include <stdlib.h>
#include <time.h>
#include "xyssl/ssl.h"
Go to the source code of this file.
Defines | |
#define | _CRT_SECURE_NO_DEPRECATE 1 |
Functions | |
static int | ssl_write_client_hello (ssl_context *ssl) |
static int | ssl_parse_server_hello (ssl_context *ssl) |
static int | ssl_parse_server_key_exchange (ssl_context *ssl) |
static int | ssl_parse_certificate_request (ssl_context *ssl) |
static int | ssl_parse_server_hello_done (ssl_context *ssl) |
static int | ssl_write_client_key_exchange (ssl_context *ssl) |
static int | ssl_write_certificate_verify (ssl_context *ssl) |
int | ssl_client_start (ssl_context *ssl) |
Variables | |
static const char | _ssl_cli_src [] = "_ssl_cli_src" |
int ssl_client_start | ( | ssl_context * | ssl | ) |
Definition at line 438 of file ssl_cli.c.
References SSL_CERTIFICATE_REQUEST, SSL_CERTIFICATE_VERIFY, SSL_CLIENT_CERTIFICATE, SSL_CLIENT_CHANGE_CIPHER_SPEC, SSL_CLIENT_FINISHED, SSL_CLIENT_HELLO, SSL_CLIENT_KEY_EXCHANGE, ssl_flush_output(), SSL_HELLO_REQUEST, ssl_parse_certificate(), ssl_parse_certificate_request(), ssl_parse_change_cipher_spec(), ssl_parse_finished(), ssl_parse_server_hello(), ssl_parse_server_hello_done(), ssl_parse_server_key_exchange(), SSL_SERVER_CERTIFICATE, SSL_SERVER_CHANGE_CIPHER_SPEC, SSL_SERVER_FINISHED, SSL_SERVER_HELLO, SSL_SERVER_HELLO_DONE, SSL_SERVER_KEY_EXCHANGE, ssl_write_certificate(), ssl_write_certificate_verify(), ssl_write_change_cipher_spec(), ssl_write_client_hello(), ssl_write_client_key_exchange(), ssl_write_finished(), and ssl_context::state.
Referenced by ssl_handshake().
static int ssl_parse_certificate_request | ( | ssl_context * | ssl | ) | [static] |
Definition at line 264 of file ssl_cli.c.
References ssl_context::client_auth, ERR_SSL_CERTIFICATE_REQUIRED, ERR_SSL_PRIVATE_KEY_REQUIRED, ERR_SSL_UNEXPECTED_MESSAGE, ssl_context::in_msg, ssl_context::in_msgtype, ssl_context::own_cert, ssl_context::own_key, SSL_HS_CERTIFICATE_REQUEST, SSL_MSG_HANDSHAKE, ssl_read_record(), and ssl_context::state.
Referenced by ssl_client_start().
static int ssl_parse_server_hello | ( | ssl_context * | ssl | ) | [static] |
Definition at line 102 of file ssl_cli.c.
References ssl_context::cipher, ssl_context::cipherlist, ERR_SSL_BAD_HS_SERVER_HELLO, ERR_SSL_NO_CIPHER_CHOSEN, ERR_SSL_UNEXPECTED_MESSAGE, ssl_context::in_hslen, ssl_context::in_msg, ssl_context::in_msgtype, int, ssl_context::minor_ver, ssl_context::randbytes, ssl_context::resumed, ssl_context::sessid, ssl_context::sidlen, SSL_COMPRESS_NULL, ssl_derive_keys(), SSL_HS_SERVER_HELLO, SSL_MSG_HANDSHAKE, ssl_read_record(), SSL_SERVER_CHANGE_CIPHER_SPEC, SSLV3_MAJOR_VERSION, SSLV3_MINOR_VERSION, ssl_context::state, and TLS10_MINOR_VERSION.
Referenced by ssl_client_start().
static int ssl_parse_server_hello_done | ( | ssl_context * | ssl | ) | [static] |
Definition at line 307 of file ssl_cli.c.
References ssl_context::client_auth, ERR_SSL_BAD_HS_SERVER_HELLO_DONE, ERR_SSL_UNEXPECTED_MESSAGE, ssl_context::in_hslen, ssl_context::in_msg, ssl_context::in_msgtype, SSL_HS_SERVER_HELLO_DONE, SSL_MSG_HANDSHAKE, ssl_read_record(), and ssl_context::state.
Referenced by ssl_client_start().
static int ssl_parse_server_key_exchange | ( | ssl_context * | ssl | ) | [static] |
Definition at line 181 of file ssl_cli.c.
References ssl_context::cipher, ssl_context::dhm_ctx, dhm_read_params(), ERR_SSL_BAD_HS_SERVER_KEY_EXCHANGE, ERR_SSL_FEATURE_UNAVAILABLE, ERR_SSL_UNEXPECTED_MESSAGE, ssl_context::in_hslen, ssl_context::in_msg, ssl_context::in_msgtype, dhm_context::len, rsa_context::len, md5(), md5_finish(), md5_starts(), md5_update(), ssl_context::peer_cert, ssl_context::randbytes, _x509_cert::rsa, rsa_pkcs1_verify(), RSA_RAW, sha1(), sha1_finish(), sha1_starts(), sha1_update(), SSL3_EDH_RSA_DES_168_SHA, SSL_HS_SERVER_KEY_EXCHANGE, SSL_MSG_HANDSHAKE, ssl_read_record(), ssl_context::state, and TLS1_EDH_RSA_AES_256_SHA.
Referenced by ssl_client_start().
static int ssl_write_certificate_verify | ( | ssl_context * | ssl | ) | [static] |
Definition at line 401 of file ssl_cli.c.
References ssl_context::client_auth, rsa_context::len, ssl_context::out_msg, ssl_context::out_msglen, ssl_context::out_msgtype, ssl_context::own_key, rsa_pkcs1_sign(), RSA_RAW, ssl_calc_verify(), SSL_HS_CERTIFICATE_VERIFY, SSL_MSG_HANDSHAKE, ssl_write_record(), and ssl_context::state.
Referenced by ssl_client_start().
static int ssl_write_client_hello | ( | ssl_context * | ssl | ) | [static] |
Definition at line 31 of file ssl_cli.c.
References ssl_context::cipherlist, ssl_context::hs_md5, ssl_context::hs_sha1, ssl_context::major_ver, ssl_context::max_ver, md5_starts(), ssl_context::minor_ver, ssl_context::out_msg, ssl_context::out_msglen, ssl_context::out_msgtype, ssl_context::randbytes, ssl_context::rng_d, ssl_context::rng_f, ssl_context::sessid, sha1_starts(), ssl_context::sidlen, SSL_COMPRESS_NULL, SSL_HS_CLIENT_HELLO, SSL_MSG_HANDSHAKE, ssl_write_record(), SSLV3_MAJOR_VERSION, SSLV3_MINOR_VERSION, ssl_context::state, and TLS10_MINOR_VERSION.
Referenced by ssl_client_start().
static int ssl_write_client_key_exchange | ( | ssl_context * | ssl | ) | [static] |
Definition at line 328 of file ssl_cli.c.
References ssl_context::cipher, dhm_calc_secret(), ssl_context::dhm_ctx, dhm_make_public(), ERR_SSL_FEATURE_UNAVAILABLE, rsa_context::len, dhm_context::len, ssl_context::max_ver, ssl_context::minor_ver, ssl_context::out_msg, ssl_context::out_msglen, ssl_context::out_msgtype, ssl_context::peer_cert, ssl_context::pmslen, ssl_context::premaster, ssl_context::rng_d, ssl_context::rng_f, _x509_cert::rsa, rsa_pkcs1_encrypt(), SSL3_EDH_RSA_DES_168_SHA, ssl_derive_keys(), SSL_HS_CLIENT_KEY_EXCHANGE, SSL_MSG_HANDSHAKE, ssl_write_record(), SSLV3_MINOR_VERSION, ssl_context::state, and TLS1_EDH_RSA_AES_256_SHA.
Referenced by ssl_client_start().
const char _ssl_cli_src[] = "_ssl_cli_src" [static] |