Lines Matching refs:ssl
1 /*! \file ssl/ssl_lib.c
2 * \brief Version independent SSL functions.
7 * This package is an SSL implementation written
9 * The implementation was written so as to conform with Netscapes SSL.
14 * lhash, DES, etc., code; not just the SSL code. The SSL documentation
167 (int (*)(SSL *,int))ssl_undefined_function,
168 (int (*)(SSL *, unsigned char *, int))ssl_undefined_function,
170 (int (*)(SSL *, unsigned char *, unsigned char *, int))ssl_undefined_function,
171 (int (*)(SSL*, int))ssl_undefined_function,
172 (int (*)(SSL *, const char*, int, unsigned char *))ssl_undefined_function,
174 (int (*)(SSL *, int, unsigned char *))ssl_undefined_function,
180 (int (*)(SSL *, unsigned char *, size_t, const char *,
185 int SSL_clear(SSL *s)
257 /** Used to change an SSL_CTXs default SSL method type */
275 SSL *SSL_new(SSL_CTX *ctx)
277 SSL *s;
290 s=(SSL *)OPENSSL_malloc(sizeof(SSL));
292 memset(s,0,sizeof(SSL));
306 * parameters for the per-SSL copy, ssl_cert_new would be
412 int SSL_set_session_id_context(SSL *ssl,const unsigned char *sid_ctx,
420 ssl->sid_ctx_length=sid_ctx_len;
421 memcpy(ssl->sid_ctx,sid_ctx,sid_ctx_len);
434 int SSL_set_generate_session_id(SSL *ssl, GEN_SESSION_CB cb)
437 ssl->generate_session_id = cb;
442 int SSL_has_matching_session_id(const SSL *ssl, const unsigned char *id,
449 * use by this SSL. */
455 r.ssl_version = ssl->version;
471 p = lh_SSL_SESSION_retrieve(ssl->ctx->sessions, &r);
481 int SSL_set_purpose(SSL *s, int purpose)
491 int SSL_set_trust(SSL
501 int SSL_set1_param(SSL *ssl, X509_VERIFY_PARAM *vpm)
503 return X509_VERIFY_PARAM_set1(ssl->param, vpm);
506 void SSL_free(SSL *s)
515 REF_PRINT("SSL",s);
607 void SSL_set_bio(SSL *s,BIO *rbio,BIO *wbio)
627 BIO *SSL_get_rbio(const SSL *s)
630 BIO *SSL_get_wbio(const SSL *s)
633 int SSL_get_fd(const SSL *s)
638 int SSL_get_rfd(const SSL *s)
650 int SSL_get_wfd(const SSL *s)
663 int SSL_set_fd(SSL *s,int fd)
682 int SSL_set_wfd(SSL *s,int fd)
704 int SSL_set_rfd(SSL *s,int fd)
732 size_t SSL_get_finished(const SSL *s, void *buf, size_t count)
747 size_t SSL_get_peer_finished(const SSL *s, void *buf, size_t count)
762 int SSL_get_verify_mode(const SSL *s)
767 int SSL_get_verify_depth(const SSL *s)
772 int (*SSL_get_verify_callback(const SSL *s))(int,X509_STORE_CTX *)
792 void SSL_set_verify(SSL *s,int mode,
800 void SSL_set_verify_depth(SSL *s,int depth)
805 void SSL_set_read_ahead(SSL *s,int yes)
810 int SSL_get_read_ahead(const SSL *s)
815 int SSL_pending(const SSL *s)
827 X509 *SSL_get_peer_certificate(const SSL *s)
843 STACK_OF(X509) *SSL_get_peer_cert_chain(const SSL *s)
860 void SSL_copy_session_id(SSL *t,const SSL *f)
864 /* Do we need to to SSL locking? */
907 int SSL_check_private_key(const SSL *ssl)
909 if (ssl == NULL)
914 if (ssl->cert == NULL)
919 if (ssl->cert->key->x509 == NULL)
924 if (ssl->cert->key->privatekey == NULL)
929 return(X509_check_private_key(ssl->cert->key->x509,
930 ssl->cert->key->privatekey));
933 int SSL_accept(SSL *s)
942 int SSL_connect(SSL *s)
951 long SSL_get_default_timeout(const SSL *s)
956 int SSL_read(SSL *s,void *buf,int num)
972 int SSL_peek(SSL *s,void *buf,int num)
987 int SSL_write(SSL *s,const void *buf,int num)
1004 int SSL_shutdown(SSL *s)
1024 int SSL_renegotiate(SSL *s)
1034 int SSL_renegotiate_abbreviated(SSL *s)
1044 int SSL_renegotiate_pending(SSL *s)
1051 long SSL_ctrl(SSL *s,int cmd,long larg,void *parg)
1109 long SSL_callback_ctrl(SSL *s, int cmd, void (*fp)(void))
1114 s->msg_callback = (void (*)(int write_p, int version, int content_type, const void *buf, size_t len, SSL *ssl, void *arg))(fp);
1211 ctx->msg_callback = (void (*)(int write_p, int version, int content_type, const void *buf, size_t len, SSL *ssl, void *arg))(fp);
1242 /** return a STACK of the ciphers available for the SSL and in order of
1244 STACK_OF(SSL_CIPHER) *SSL_get_ciphers(const SSL *s)
1261 /** return a STACK of the ciphers available for the SSL and in order of
1263 STACK_OF(SSL_CIPHER) *ssl_get_ciphers_by_id(SSL *s)
1281 const char *SSL_get_cipher_list(const SSL *s,int n)
1319 /** specify the ciphers to be used by the SSL */
1320 int SSL_set_cipher_list(SSL *s,const char *str)
1337 /** specify the ciphers to be used by the SSL */
1338 int SSL_set_cipher_lists(SSL *s,STACK_OF(SSL_CIPHER) *sk)
1364 char *SSL_get_shared_ciphers(const SSL *s,char *buf,int len)
1399 int ssl_cipher_list_to_bytes(SSL *s,STACK_OF(SSL_CIPHER) *sk,unsigned char *p,
1452 STACK_OF(SSL_CIPHER) *ssl_bytes_to_cipher_list(SSL *s,unsigned char *p,int num,
1524 const char *SSL_get_servername(const SSL *s, const int type)
1534 int SSL_get_servername_type(const SSL *s)
1616 void SSL_get0_next_proto_negotiated(const SSL *s, const unsigned char **data, unsigned *len)
1630 * not be modified, but one should assume that the SSL* keeps a reference to
1635 void SSL_CTX_set_next_protos_advertised_cb(SSL_CTX *ctx, int (*cb) (SSL *ssl, const unsigned char **out, unsigned int *outlen, void *arg), void *arg)
1651 void SSL_CTX_set_next_proto_select_cb(SSL_CTX *ctx, int (*cb) (SSL *s, unsigned char **out, unsigned char *outlen, const unsigned char *in, unsigned int inlen, void *arg), void *arg)
1659 int SSL_export_keying_material(SSL *s, unsigned char *out, size_t olen,
1700 * ssl.h. */
2245 int ssl_check_srvr_ecc_cert_and_alg(X509 *x, SSL *s)
2317 X509 *ssl_get_server_send_cert(SSL *s)
2380 EVP_PKEY *ssl_get_sign_pkey(SSL *s,const SSL_CIPHER *cipher, const EVP_MD **pmd)
2412 void ssl_update_cache(SSL *s,int mode)
2444 const SSL_METHOD *SSL_get_ssl_method(SSL *s)
2449 int SSL_set_ssl_method(SSL *s, const SSL_METHOD *meth)
2476 int SSL_get_error(const SSL *s,int i)
2563 int SSL_do_handshake(SSL *s)
2584 void SSL_set_accept_state(SSL *s)
2596 void SSL_set_connect_state(SSL *s)
2608 int ssl_undefined_function(SSL *s)
2620 int ssl_undefined_const_function(const SSL *s)
2648 const char *SSL_get_version(const SSL *s)
2658 const char* SSL_authentication_method(const SSL* ssl)
2660 if (ssl->cert != NULL && ssl->cert->rsa_tmp != NULL)
2662 switch (ssl->version)
2667 return SSL_CIPHER_authentication_method(ssl->s3->tmp.new_cipher);
2671 SSL *SSL_dup(SSL *s)
2675 SSL *ret;
2802 void ssl_clear_cipher_ctx(SSL *s)
2831 X509 *SSL_get_certificate(const SSL *s)
2840 EVP_PKEY *SSL_get_privatekey(SSL *s)
2848 const SSL_CIPHER *SSL_get_current_cipher(const SSL *s)
2855 const void *SSL_get_current_compression(SSL *s)
2859 const void *SSL_get_current_expansion(SSL *s)
2865 const COMP_METHOD *SSL_get_current_compression(SSL *s)
2872 const COMP_METHOD *SSL_get_current_expansion(SSL *s)
2880 int ssl_init_wbio_buffer(SSL *s,int push)
2916 void ssl_free_wbio_buffer(SSL *s)
2942 void SSL_set_quiet_shutdown(SSL *s,int mode)
2947 int SSL_get_quiet_shutdown(const SSL *s)
2952 void SSL_set_shutdown(SSL *s,int mode)
2957 int SSL_get_shutdown(const SSL *s)
2962 int SSL_version(const SSL *s)
2967 SSL_CTX *SSL_get_SSL_CTX(const SSL *ssl)
2969 return(ssl->ctx);
2972 SSL_CTX *SSL_set_SSL_CTX(SSL *ssl, SSL_CTX* ctx)
2974 if (ssl->ctx == ctx)
2975 return ssl->ctx;
2978 ctx = ssl->initial_ctx;
2980 if (ssl->cert != NULL)
2981 ssl_cert_free(ssl->cert);
2982 ssl->cert = ssl_cert_dup(ctx->cert);
2984 if (ssl->ctx != NULL)
2985 SSL_CTX_free(ssl->ctx); /* decrement reference count */
2986 ssl->ctx = ctx;
2987 return(ssl->ctx);
3003 void SSL_set_info_callback(SSL *ssl,
3004 void (*cb)(const SSL *ssl,int type,int val))
3006 ssl->info_callback=cb;
3011 void (*SSL_get_info_callback(const SSL *ssl))(const SSL * /*ssl*/,int /*type*/,int /*val*/)
3013 return ssl->info_callback;
3016 int SSL_state(const SSL *ssl)
3018 return(ssl->state);
3021 void SSL_set_state(SSL *ssl, int state)
3023 ssl->state = state;
3026 void SSL_set_verify_result(SSL *ssl,long arg)
3028 ssl->verify_result=arg;
3031 long SSL_get_verify_result(const SSL *ssl)
3033 return(ssl->verify_result);
3043 int SSL_set_ex_data(SSL *s,int idx,void *arg)
3048 void *SSL_get_ex_data(const SSL *s,int idx)
3070 int ssl_ok(SSL *s)
3087 int SSL_want(const SSL *s)
3094 * \param ctx the SSL context.
3099 void SSL_CTX_set_tmp_rsa_callback(SSL_CTX *ctx,RSA *(*cb)(SSL *ssl,
3106 void SSL_set_tmp_rsa_callback(SSL *ssl,RSA *(*cb)(SSL *ssl,
3110 SSL_callback_ctrl(ssl,SSL_CTRL_SET_TMP_RSA_CB,(void (*)(void))cb);
3117 * \param ssl the SSL session.
3125 RSA *cb(SSL *ssl,int is_export,int keylength)
3131 * \param ctx the SSL context.
3136 void SSL_CTX_set_tmp_dh_callback(SSL_CTX *ctx,DH *(*dh)(SSL *ssl,int is_export,
3142 void SSL_set_tmp_dh_callback(SSL *ssl,DH *(*dh)(SSL *ssl,int is_export,
3145 SSL_callback_ctrl(ssl,SSL_CTRL_SET_TMP_DH_CB,(void (*)(void))dh);
3150 void SSL_CTX_set_tmp_ecdh_callback(SSL_CTX *ctx,EC_KEY *(*ecdh)(SSL *ssl,int is_export,
3156 void SSL_set_tmp_ecdh_callback(SSL *ssl,EC_KEY *(*ecdh)(SSL *ssl,int is_export,
3159 SSL_callback_ctrl(ssl,SSL_CTRL_SET_TMP_ECDH_CB,(void (*)(void))ecdh);
3184 int SSL_use_psk_identity_hint(SSL *s, const char *identity_hint)
3210 const char *SSL_get_psk_identity_hint(const SSL *s)
3217 const char *SSL_get_psk_identity(const SSL *s)
3224 void SSL_set_psk_client_callback(SSL *s,
3225 unsigned int (*cb)(SSL *ssl, const char *hint,
3233 unsigned int (*cb)(SSL *ssl, const char *hint,
3240 void SSL_set_psk_server_callback(SSL *s,
3241 unsigned int (*cb)(SSL *ssl, const char *identity,
3248 unsigned int (*cb)(SSL *ssl, const char *identity,
3255 void SSL_CTX_set_msg_callback(SSL_CTX *ctx, void (*cb)(int write_p, int version, int content_type, const void *buf, size_t len, SSL *ssl, void *arg))
3259 void SSL_set_msg_callback(SSL *ssl, void (*cb)(int write_p, int version, int content_type, const void *buf, size_t len, SSL *ssl, void *arg))
3261 SSL_callback_ctrl(ssl, SSL_CTRL_SET_MSG_CALLBACK, (void (*)(void))cb);
3264 int SSL_cutthrough_complete(const SSL *s)
3270 (SSL_get_mode((SSL*)s) & SSL_MODE_HANDSHAKE_CUTTHROUGH) && /* cutthrough enabled */
3297 void SSL_set_debug(SSL *s, int debug)
3302 int SSL_cache_hit(SSL *s)