📄 ssl.h
字号:
(char *(*)())SSL_SESSION_new,(char *(*)())d2i_SSL_SESSION, \ (bp),(unsigned char **)(s_id))#define i2d_SSL_SESSION_bio(bp,s_id) ASN1_i2d_bio(i2d_SSL_SESSION, \ bp,(unsigned char *)s_id)#define PEM_read_SSL_SESSION(fp,x,cb,u) (SSL_SESSION *)PEM_ASN1_read( \ (char *(*)())d2i_SSL_SESSION,PEM_STRING_SSL_SESSION,fp,(char **)x,cb,u)#define PEM_read_bio_SSL_SESSION(bp,x,cb,u) (SSL_SESSION *)PEM_ASN1_read_bio( \ (char *(*)())d2i_SSL_SESSION,PEM_STRING_SSL_SESSION,bp,(char **)x,cb,u)#define PEM_write_SSL_SESSION(fp,x) \ PEM_ASN1_write((int (*)())i2d_SSL_SESSION, \ PEM_STRING_SSL_SESSION,fp, (char *)x, NULL,NULL,0,NULL,NULL)#define PEM_write_bio_SSL_SESSION(bp,x) \ PEM_ASN1_write_bio((int (*)())i2d_SSL_SESSION, \ PEM_STRING_SSL_SESSION,bp, (char *)x, NULL,NULL,0,NULL,NULL)#endif#define SSL_AD_REASON_OFFSET 1000/* These alert types are for SSLv3 and TLSv1 */#define SSL_AD_CLOSE_NOTIFY SSL3_AD_CLOSE_NOTIFY#define SSL_AD_UNEXPECTED_MESSAGE SSL3_AD_UNEXPECTED_MESSAGE /* fatal */#define SSL_AD_BAD_RECORD_MAC SSL3_AD_BAD_RECORD_MAC /* fatal */#define SSL_AD_DECRYPTION_FAILED TLS1_AD_DECRYPTION_FAILED#define SSL_AD_RECORD_OVERFLOW TLS1_AD_RECORD_OVERFLOW#define SSL_AD_DECOMPRESSION_FAILURE SSL3_AD_DECOMPRESSION_FAILURE/* fatal */#define SSL_AD_HANDSHAKE_FAILURE SSL3_AD_HANDSHAKE_FAILURE/* fatal */#define SSL_AD_NO_CERTIFICATE SSL3_AD_NO_CERTIFICATE /* Not for TLS */#define SSL_AD_BAD_CERTIFICATE SSL3_AD_BAD_CERTIFICATE#define SSL_AD_UNSUPPORTED_CERTIFICATE SSL3_AD_UNSUPPORTED_CERTIFICATE#define SSL_AD_CERTIFICATE_REVOKED SSL3_AD_CERTIFICATE_REVOKED#define SSL_AD_CERTIFICATE_EXPIRED SSL3_AD_CERTIFICATE_EXPIRED#define SSL_AD_CERTIFICATE_UNKNOWN SSL3_AD_CERTIFICATE_UNKNOWN#define SSL_AD_ILLEGAL_PARAMETER SSL3_AD_ILLEGAL_PARAMETER /* fatal */#define SSL_AD_UNKNOWN_CA TLS1_AD_UNKNOWN_CA /* fatal */#define SSL_AD_ACCESS_DENIED TLS1_AD_ACCESS_DENIED /* fatal */#define SSL_AD_DECODE_ERROR TLS1_AD_DECODE_ERROR /* fatal */#define SSL_AD_DECRYPT_ERROR TLS1_AD_DECRYPT_ERROR#define SSL_AD_EXPORT_RESTRICTION TLS1_AD_EXPORT_RESTRICTION/* fatal */#define SSL_AD_PROTOCOL_VERSION TLS1_AD_PROTOCOL_VERSION /* fatal */#define SSL_AD_INSUFFICIENT_SECURITY TLS1_AD_INSUFFICIENT_SECURITY/* fatal */#define SSL_AD_INTERNAL_ERROR TLS1_AD_INTERNAL_ERROR /* fatal */#define SSL_AD_USER_CANCELLED TLS1_AD_USER_CANCELLED#define SSL_AD_NO_RENEGOTIATION TLS1_AD_NO_RENEGOTIATION#define SSL_ERROR_NONE 0#define SSL_ERROR_SSL 1#define SSL_ERROR_WANT_READ 2#define SSL_ERROR_WANT_WRITE 3#define SSL_ERROR_WANT_X509_LOOKUP 4#define SSL_ERROR_SYSCALL 5 /* look at error stack/return value/errno */#define SSL_ERROR_ZERO_RETURN 6#define SSL_ERROR_WANT_CONNECT 7#define SSL_CTRL_NEED_TMP_RSA 1#define SSL_CTRL_SET_TMP_RSA 2#define SSL_CTRL_SET_TMP_DH 3#define SSL_CTRL_SET_TMP_RSA_CB 4#define SSL_CTRL_SET_TMP_DH_CB 5/* Add these ones */#define SSL_CTRL_GET_SESSION_REUSED 6#define SSL_CTRL_GET_CLIENT_CERT_REQUEST 7#define SSL_CTRL_GET_NUM_RENEGOTIATIONS 8#define SSL_CTRL_CLEAR_NUM_RENEGOTIATIONS 9#define SSL_CTRL_GET_TOTAL_RENEGOTIATIONS 10#define SSL_CTRL_GET_FLAGS 11#define SSL_CTRL_EXTRA_CHAIN_CERT 12/* Stats */#define SSL_CTRL_SESS_NUMBER 20#define SSL_CTRL_SESS_CONNECT 21#define SSL_CTRL_SESS_CONNECT_GOOD 22#define SSL_CTRL_SESS_CONNECT_RENEGOTIATE 23#define SSL_CTRL_SESS_ACCEPT 24#define SSL_CTRL_SESS_ACCEPT_GOOD 25#define SSL_CTRL_SESS_ACCEPT_RENEGOTIATE 26#define SSL_CTRL_SESS_HIT 27#define SSL_CTRL_SESS_CB_HIT 28#define SSL_CTRL_SESS_MISSES 29#define SSL_CTRL_SESS_TIMEOUTS 30#define SSL_CTRL_SESS_CACHE_FULL 31#define SSL_CTRL_OPTIONS 32#define SSL_CTRL_MODE 33#define SSL_CTRL_GET_READ_AHEAD 40#define SSL_CTRL_SET_READ_AHEAD 41#define SSL_CTRL_SET_SESS_CACHE_SIZE 42#define SSL_CTRL_GET_SESS_CACHE_SIZE 43#define SSL_CTRL_SET_SESS_CACHE_MODE 44#define SSL_CTRL_GET_SESS_CACHE_MODE 45#define SSL_session_reused(ssl) \ SSL_ctrl((ssl),SSL_CTRL_GET_SESSION_REUSED,0,NULL)#define SSL_num_renegotiations(ssl) \ SSL_ctrl((ssl),SSL_CTRL_GET_NUM_RENEGOTIATIONS,0,NULL)#define SSL_clear_num_renegotiations(ssl) \ SSL_ctrl((ssl),SSL_CTRL_CLEAR_NUM_RENEGOTIATIONS,0,NULL)#define SSL_total_renegotiations(ssl) \ SSL_ctrl((ssl),SSL_CTRL_GET_TOTAL_RENEGOTIATIONS,0,NULL)#define SSL_CTX_need_tmp_RSA(ctx) \ SSL_CTX_ctrl(ctx,SSL_CTRL_NEED_TMP_RSA,0,NULL)#define SSL_CTX_set_tmp_rsa(ctx,rsa) \ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_TMP_RSA,0,(char *)rsa)#define SSL_CTX_set_tmp_dh(ctx,dh) \ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_TMP_DH,0,(char *)dh)#define SSL_need_tmp_RSA(ssl) \ SSL_ctrl(ssl,SSL_CTRL_NEED_TMP_RSA,0,NULL)#define SSL_set_tmp_rsa(ssl,rsa) \ SSL_ctrl(ssl,SSL_CTRL_SET_TMP_RSA,0,(char *)rsa)#define SSL_set_tmp_dh(ssl,dh) \ SSL_ctrl(ssl,SSL_CTRL_SET_TMP_DH,0,(char *)dh)#define SSL_CTX_add_extra_chain_cert(ctx,x509) \ SSL_CTX_ctrl(ctx,SSL_CTRL_EXTRA_CHAIN_CERT,0,(char *)x509)/* VMS uses only 31 characters for symbols. */#ifdef VMS#undef SSL_CTX_set_cert_verify_callback#define SSL_CTX_set_cert_verify_callback SSL_CTX_set_cert_verify_cb#undef SSL_CTX_use_certificate_chain_file#define SSL_CTX_use_certificate_chain_file SSL_CTX_use_cert_chain_file#undef SSL_CTX_set_default_verify_paths#define SSL_CTX_set_default_verify_paths SSL_CTX_set_def_verify_paths#undef SSL_get_ex_data_X509_STORE_CTX_idx#define SSL_get_ex_data_X509_STORE_CTX_idx SSL_get_ex_data_X509_STOR_CTX_i#undef SSL_add_file_cert_subjects_to_stack#define SSL_add_file_cert_subjects_to_stack SSL_add_file_cert_sub_to_stack#undef SSL_add_dir_cert_subjects_to_stack#define SSL_add_dir_cert_subjects_to_stack SSL_add_dir_cert_sub_to_stack#endif#ifndef NO_BIOBIO_METHOD *BIO_f_ssl(void);BIO *BIO_new_ssl(SSL_CTX *ctx,int client);BIO *BIO_new_ssl_connect(SSL_CTX *ctx);BIO *BIO_new_buffer_ssl_connect(SSL_CTX *ctx);int BIO_ssl_copy_session_id(BIO *to,BIO *from);void BIO_ssl_shutdown(BIO *ssl_bio);#endifint SSL_CTX_set_cipher_list(SSL_CTX *,const char *str);SSL_CTX *SSL_CTX_new(SSL_METHOD *meth);void SSL_CTX_free(SSL_CTX *);long SSL_CTX_set_timeout(SSL_CTX *ctx,long t);long SSL_CTX_get_timeout(SSL_CTX *ctx);X509_STORE *SSL_CTX_get_cert_store(SSL_CTX *);void SSL_CTX_set_cert_store(SSL_CTX *,X509_STORE *);int SSL_want(SSL *s);int SSL_clear(SSL *s);void SSL_CTX_flush_sessions(SSL_CTX *ctx,long tm);SSL_CIPHER *SSL_get_current_cipher(SSL *s);int SSL_CIPHER_get_bits(SSL_CIPHER *c,int *alg_bits);char * SSL_CIPHER_get_version(SSL_CIPHER *c);const char * SSL_CIPHER_get_name(SSL_CIPHER *c);int SSL_get_fd(SSL *s);const char * SSL_get_cipher_list(SSL *s,int n);char * SSL_get_shared_ciphers(SSL *s, char *buf, int len);int SSL_get_read_ahead(SSL * s);int SSL_pending(SSL *s);#ifndef NO_SOCKint SSL_set_fd(SSL *s, int fd);int SSL_set_rfd(SSL *s, int fd);int SSL_set_wfd(SSL *s, int fd);#endif#ifndef NO_BIOvoid SSL_set_bio(SSL *s, BIO *rbio,BIO *wbio);BIO * SSL_get_rbio(SSL *s);BIO * SSL_get_wbio(SSL *s);#endifint SSL_set_cipher_list(SSL *s, const char *str);void SSL_set_read_ahead(SSL *s, int yes);int SSL_get_verify_mode(SSL *s);int SSL_get_verify_depth(SSL *s);int (*SSL_get_verify_callback(SSL *s))(int,X509_STORE_CTX *);void SSL_set_verify(SSL *s, int mode, int (*callback)(int ok,X509_STORE_CTX *ctx));void SSL_set_verify_depth(SSL *s, int depth);#ifndef NO_RSAint SSL_use_RSAPrivateKey(SSL *ssl, RSA *rsa);#endifint SSL_use_RSAPrivateKey_ASN1(SSL *ssl, unsigned char *d, long len);int SSL_use_PrivateKey(SSL *ssl, EVP_PKEY *pkey);int SSL_use_PrivateKey_ASN1(int pk,SSL *ssl, unsigned char *d, long len);int SSL_use_certificate(SSL *ssl, X509 *x);int SSL_use_certificate_ASN1(SSL *ssl, unsigned char *d, int len);#ifndef NO_STDIOint SSL_use_RSAPrivateKey_file(SSL *ssl, const char *file, int type);int SSL_use_PrivateKey_file(SSL *ssl, const char *file, int type);int SSL_use_certificate_file(SSL *ssl, const char *file, int type);int SSL_CTX_use_RSAPrivateKey_file(SSL_CTX *ctx, const char *file, int type);int SSL_CTX_use_PrivateKey_file(SSL_CTX *ctx, const char *file, int type);int SSL_CTX_use_certificate_file(SSL_CTX *ctx, const char *file, int type);int SSL_CTX_use_certificate_chain_file(SSL_CTX *ctx, const char *file); /* PEM type */STACK_OF(X509_NAME) *SSL_load_client_CA_file(const char *file);int SSL_add_file_cert_subjects_to_stack(STACK_OF(X509_NAME) *stackCAs, const char *file);int SSL_add_dir_cert_subjects_to_stack(STACK_OF(X509_NAME) *stackCAs, const char *dir);#endifvoid ERR_load_SSL_strings(void );void SSL_load_error_strings(void );char * SSL_state_string(SSL *s);char * SSL_rstate_string(SSL *s);char * SSL_state_string_long(SSL *s);char * SSL_rstate_string_long(SSL *s);long SSL_SESSION_get_time(SSL_SESSION *s);long SSL_SESSION_set_time(SSL_SESSION *s, long t);long SSL_SESSION_get_timeout(SSL_SESSION *s);long SSL_SESSION_set_timeout(SSL_SESSION *s, long t);void SSL_copy_session_id(SSL *to,SSL *from);SSL_SESSION *SSL_SESSION_new(void);unsigned long SSL_SESSION_hash(SSL_SESSION *a);int SSL_SESSION_cmp(SSL_SESSION *a,SSL_SESSION *b);#ifndef NO_FP_APIint SSL_SESSION_print_fp(FILE *fp,SSL_SESSION *ses);#endif#ifndef NO_BIOint SSL_SESSION_print(BIO *fp,SSL_SESSION *ses);#endifvoid SSL_SESSION_free(SSL_SESSION *ses);int i2d_SSL_SESSION(SSL_SESSION *in,unsigned char **pp);int SSL_set_session(SSL *to, SSL_SESSION *session);int SSL_CTX_add_session(SSL_CTX *s, SSL_SESSION *c);int SSL_CTX_remove_session(SSL_CTX *,SSL_SESSION *c);SSL_SESSION *d2i_SSL_SESSION(SSL_SESSION **a,unsigned char **pp,long length);#ifdef HEADER_X509_HX509 * SSL_get_peer_certificate(SSL *s);#endifSTACK_OF(X509) *SSL_get_peer_cert_chain(SSL *s);#ifdef VMS#define SSL_CTX_set_default_passwd_cb_userdata SSL_CTX_set_def_passwd_cb_ud#endifint SSL_CTX_get_verify_mode(SSL_CTX *ctx);int SSL_CTX_get_verify_depth(SSL_CTX *ctx);int (*SSL_CTX_get_verify_callback(SSL_CTX *ctx))(int,X509_STORE_CTX *);void SSL_CTX_set_verify(SSL_CTX *ctx,int mode, int (*callback)(int, X509_STORE_CTX *));void SSL_CTX_set_verify_depth(SSL_CTX *ctx,int depth);void SSL_CTX_set_cert_verify_callback(SSL_CTX *ctx, int (*cb)(),char *arg);#ifndef NO_RSAint SSL_CTX_use_RSAPrivateKey(SSL_CTX *ctx, RSA *rsa);#endifint SSL_CTX_use_RSAPrivateKey_ASN1(SSL_CTX *ctx, unsigned char *d, long len);int SSL_CTX_use_PrivateKey(SSL_CTX *ctx, EVP_PKEY *pkey);int SSL_CTX_use_PrivateKey_ASN1(int pk,SSL_CTX *ctx, unsigned char *d, long len);int SSL_CTX_use_certificate(SSL_CTX *ctx, X509 *x);int SSL_CTX_use_certificate_ASN1(SSL_CTX *ctx, int len, unsigned char *d);void SSL_CTX_set_default_passwd_cb(SSL_CTX *ctx, pem_password_cb *cb);void SSL_CTX_set_default_passwd_cb_userdata(SSL_CTX *ctx, void *u);int SSL_CTX_check_private_key(SSL_CTX *ctx);int SSL_check_private_key(SSL *ctx);int SSL_CTX_set_session_id_context(SSL_CTX *ctx,const unsigned char *sid_ctx, unsigned int sid_ctx_len);SSL * SSL_new(SSL_CTX *ctx);int SSL_set_session_id_context(SSL *ssl,const unsigned char *sid_ctx, unsigned int sid_ctx_len);int SSL_CTX_set_purpose(SSL_CTX *s, int purpose);int SSL_set_purpose(SSL *s, int purpose);int SSL_CTX_set_trust(SSL_CTX *s, int trust);int SSL_set_trust(SSL *s, int trust);void SSL_free(SSL *ssl);int SSL_accept(SSL *ssl);int SSL_connect(SSL *ssl);int SSL_read(SSL *ssl,char *buf,int num);int SSL_peek(SSL *ssl,char *buf,int num);int SSL_write(SSL *ssl,const char *buf,int num);long SSL_ctrl(SSL *ssl,int cmd, long larg, char *parg);long SSL_callback_ctrl(SSL *, int, void (*)());long SSL_CTX_ctrl(SSL_CTX *ctx,int cmd, long larg, char *parg);long SSL_CTX_callback_ctrl(SSL_CTX *, int, void (*)());int SSL_get_error(SSL *s,int ret_code);const char *SSL_get_version(SSL *s);/* This sets the 'default' SSL version that SSL_new() will create */int SSL_CTX_set_ssl_version(SSL_CTX *ctx,SSL_METHOD *meth);SSL_METHOD *SSLv2_method(void); /* SSLv2 */SSL_METHOD *SSLv2_server_method(void); /* SSLv2 */SSL_METHOD *SSLv2_client_method(void); /* SSLv2 */SSL_METHOD *SSLv3_method(void); /* SSLv3 */SSL_METHOD *SSLv3_server_method(void); /* SSLv3 */SSL_METHOD *SSLv3_client_method(void); /* SSLv3 */SSL_METHOD *SSLv23_method(void); /* SSLv3 but can rollback to v2 */SSL_METHOD *SSLv23_server_method(void); /* SSLv3 but can rollback to v2 */SSL_METHOD *SSLv23_client_method(void); /* SSLv3 but can rollback to v2 */SSL_METHOD *TLSv1_method(void); /* TLSv1.0 */SSL_METHOD *TLSv1_server_method(void); /* TLSv1.0 */SSL_METHOD *TLSv1_client_method(void); /* TLSv1.0 */STACK_OF(SSL_CIPHER) *SSL_get_ciphers(SSL *s);int SSL_do_handshake(SSL *s);int SSL_renegotiate(SSL *s);int SSL_shutdown(SSL *s);SSL_METHOD *SSL_get_ssl_method(SSL *s);int SSL_set_ssl_method(SSL *s,SSL_METHOD *method);char *SSL_alert_type_string_long(int value);char *SSL_alert_type_string(int value);char *SSL_alert_desc_string_long(int value);char *SSL_alert_desc_string(int value);void SSL_set_client_CA_list(SSL *s, STACK_OF(X509_NAME) *list);void SSL_CTX_set_client_CA_list(SSL_CTX *ctx, STACK_OF(X509_NAME) *list);STACK_OF(X509_NAME) *SSL_get_client_CA_list(SSL *s);STACK_OF(X509_NAME) *SSL_CTX_get_client_CA_list(SSL_CTX *s);int SSL_add_client_CA(SSL *ssl,X509 *x);int SSL_CTX_add_client_CA(SSL_CTX *ctx,X509 *x);void SSL_set_connect_state(SSL *s);void SSL_set_accept_state(SSL *s);long SSL_get_default_timeout(SSL *s);int SSL_library_init(void );char *SSL_CIPHER_description(SSL_CIPHER *,char *buf,int size);STACK_OF(X509_NAME) *SSL_dup_CA_list(STACK_OF(X509_NAME) *sk);SSL *SSL_dup(SSL *ssl);X509 *SSL_get_certificate(SSL *ssl);/* EVP_PKEY */ struct evp_pkey_st *SSL_get_privatekey(SSL *ssl);void SSL_CTX_set_quiet_shutdown(SSL_CTX *ctx,int mode);int SSL_CTX_get_quiet_shutdown(SSL_CTX *ctx);void SSL_set_quiet_shutdown(SSL *ssl,int mode);int SSL_get_quiet_shutdown(SSL *ssl);void SSL_set_shutdown(SSL *ssl,int mode);int SSL_get_shutdown(SSL *ssl);int SSL_version(SSL *ssl);int SSL_CTX_set_default_verify_paths(SSL_CTX *ctx);int SSL_CTX_load_verify_locations(SSL_CTX *ctx, const char *CAfile, const char *CApath);#define SSL_get0_session SSL_get_session /* just peek at pointer */SSL_SESSION *SSL_get_session(SSL *ssl);SSL_SESSION *SSL_get1_session(SSL *ssl); /* obtain a reference count */SSL_CTX *SSL_get_SSL_CTX(SSL *ssl);void SSL_set_info_callback(SSL *ssl,void (*cb)());void (*SSL_get_info_callback(SSL *ssl))();int SSL_state(SSL *ssl);void SSL_set_verify_result(SSL *ssl,long v);long SSL_get_verify_result(SSL *ssl);int SSL_set_ex_data(SSL *ssl,int idx,void *data);void *SSL_get_ex_data(SSL *ssl,int idx);int SSL_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func);int SSL_SESSION_set_ex_data(SSL_SESSION *ss,int idx,void *data);void *SSL_SESSION_get_ex_data(SSL_SESSION *ss,int idx);int SSL_SESSION_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func);int SSL_CTX_set_ex_data(SSL_CTX *ssl,int idx,void *data);void *SSL_CTX_get_ex_data(SSL_CTX *ssl,int idx);int SSL_CTX_get_ex_new_index(long argl, void *argp, CRYPTO_EX_new *new_func, CRYPTO_EX_dup *dup_func, CRYPTO_EX_free *free_func);int SSL_get_ex_data_X509_STORE_CTX_idx(void );#define SSL_CTX_sess_set_cache_size(ctx,t) \ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_SESS_CACHE_SIZE,t,NULL)#define SSL_CTX_sess_get_cache_size(ctx) \ SSL_CTX_ctrl(ctx,SSL_CTRL_GET_SESS_CACHE_SIZE,0,NULL)#define SSL_CTX_set_session_cache_mode(ctx,m) \ SSL_CTX_ctrl(ctx,SSL_CTRL_SET_SESS_CACHE_MODE,m,NULL)#define SSL_CTX_get_session_cache_mode(ctx) \
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -