📄 ssl3.h
字号:
#define SSL3_RT_HANDSHAKE 22#define SSL3_RT_APPLICATION_DATA 23#define SSL3_AL_WARNING 1#define SSL3_AL_FATAL 2#define SSL3_AD_CLOSE_NOTIFY 0#define SSL3_AD_UNEXPECTED_MESSAGE 10 /* fatal */#define SSL3_AD_BAD_RECORD_MAC 20 /* fatal */#define SSL3_AD_DECOMPRESSION_FAILURE 30 /* fatal */#define SSL3_AD_HANDSHAKE_FAILURE 40 /* fatal */#define SSL3_AD_NO_CERTIFICATE 41#define SSL3_AD_BAD_CERTIFICATE 42#define SSL3_AD_UNSUPPORTED_CERTIFICATE 43#define SSL3_AD_CERTIFICATE_REVOKED 44#define SSL3_AD_CERTIFICATE_EXPIRED 45#define SSL3_AD_CERTIFICATE_UNKNOWN 46#define SSL3_AD_ILLEGAL_PARAMETER 47 /* fatal */typedef struct ssl3_record_st {/*r */ int type; /* type of record *//*rw*/ unsigned int length; /* How many bytes available *//*r */ unsigned int off; /* read/write offset into 'buf' *//*rw*/ unsigned char *data; /* pointer to the record data *//*rw*/ unsigned char *input; /* where the decode bytes are *//*r */ unsigned char *comp; /* only used with decompression - malloc()ed */ } SSL3_RECORD;typedef struct ssl3_buffer_st { unsigned char *buf; /* at least SSL3_RT_MAX_PACKET_SIZE bytes, * see ssl3_setup_buffers() */ size_t len; /* buffer size */ int offset; /* where to 'copy from' */ int left; /* how many bytes left */ } SSL3_BUFFER;#define SSL3_CT_RSA_SIGN 1#define SSL3_CT_DSS_SIGN 2#define SSL3_CT_RSA_FIXED_DH 3#define SSL3_CT_DSS_FIXED_DH 4#define SSL3_CT_RSA_EPHEMERAL_DH 5#define SSL3_CT_DSS_EPHEMERAL_DH 6#define SSL3_CT_FORTEZZA_DMS 20#define SSL3_CT_NUMBER 7#define SSL3_FLAGS_NO_RENEGOTIATE_CIPHERS 0x0001#define SSL3_FLAGS_DELAY_CLIENT_FINISHED 0x0002#define SSL3_FLAGS_POP_BUFFER 0x0004#define TLS1_FLAGS_TLS_PADDING_BUG 0x0008typedef struct ssl3_state_st { long flags; int delay_buf_pop_ret; unsigned char read_sequence[8]; unsigned char read_mac_secret[EVP_MAX_MD_SIZE]; unsigned char write_sequence[8]; unsigned char write_mac_secret[EVP_MAX_MD_SIZE]; unsigned char server_random[SSL3_RANDOM_SIZE]; unsigned char client_random[SSL3_RANDOM_SIZE]; /* flags for countermeasure against known-IV weakness */ int need_empty_fragments; int empty_fragment_done; SSL3_BUFFER rbuf; /* read IO goes into here */ SSL3_BUFFER wbuf; /* write IO goes into here */ SSL3_RECORD rrec; /* each decoded record goes in here */ SSL3_RECORD wrec; /* goes out from here */ /* storage for Alert/Handshake protocol data received but not * yet processed by ssl3_read_bytes: */ unsigned char alert_fragment[2]; unsigned int alert_fragment_len; unsigned char handshake_fragment[4]; unsigned int handshake_fragment_len; /* partial write - check the numbers match */ unsigned int wnum; /* number of bytes sent so far */ int wpend_tot; /* number bytes written */ int wpend_type; int wpend_ret; /* number of bytes submitted */ const unsigned char *wpend_buf; /* used during startup, digest all incoming/outgoing packets */ EVP_MD_CTX finish_dgst1; EVP_MD_CTX finish_dgst2; /* this is set whenerver we see a change_cipher_spec message * come in when we are not looking for one */ int change_cipher_spec; int warn_alert; int fatal_alert; /* we allow one fatal and one warning alert to be outstanding, * send close alert via the warning alert */ int alert_dispatch; unsigned char send_alert[2]; /* This flag is set when we should renegotiate ASAP, basically when * there is no more data in the read or write buffers */ int renegotiate; int total_renegotiations; int num_renegotiations; int in_read_app_data; struct { /* actually only needs to be 16+20 */ unsigned char cert_verify_md[EVP_MAX_MD_SIZE*2]; /* actually only need to be 16+20 for SSLv3 and 12 for TLS */ unsigned char finish_md[EVP_MAX_MD_SIZE*2]; int finish_md_len; unsigned char peer_finish_md[EVP_MAX_MD_SIZE*2]; int peer_finish_md_len; unsigned long message_size; int message_type; /* used to hold the new cipher we are going to use */ SSL_CIPHER *new_cipher;#ifndef OPENSSL_NO_DH DH *dh;#endif /* used when SSL_ST_FLUSH_DATA is entered */ int next_state; int reuse_message; /* used for certificate requests */ int cert_req; int ctype_num; char ctype[SSL3_CT_NUMBER]; STACK_OF(X509_NAME) *ca_names; int use_rsa_tmp; int key_block_length; unsigned char *key_block; const EVP_CIPHER *new_sym_enc; const EVP_MD *new_hash;#ifndef OPENSSL_NO_COMP const SSL_COMP *new_compression;#else char *new_compression;#endif int cert_request; } tmp; } SSL3_STATE;/* SSLv3 *//*client *//* extra state */#define SSL3_ST_CW_FLUSH (0x100|SSL_ST_CONNECT)/* write to server */#define SSL3_ST_CW_CLNT_HELLO_A (0x110|SSL_ST_CONNECT)#define SSL3_ST_CW_CLNT_HELLO_B (0x111|SSL_ST_CONNECT)/* read from server */#define SSL3_ST_CR_SRVR_HELLO_A (0x120|SSL_ST_CONNECT)#define SSL3_ST_CR_SRVR_HELLO_B (0x121|SSL_ST_CONNECT)#define SSL3_ST_CR_CERT_A (0x130|SSL_ST_CONNECT)#define SSL3_ST_CR_CERT_B (0x131|SSL_ST_CONNECT)#define SSL3_ST_CR_KEY_EXCH_A (0x140|SSL_ST_CONNECT)#define SSL3_ST_CR_KEY_EXCH_B (0x141|SSL_ST_CONNECT)#define SSL3_ST_CR_CERT_REQ_A (0x150|SSL_ST_CONNECT)#define SSL3_ST_CR_CERT_REQ_B (0x151|SSL_ST_CONNECT)#define SSL3_ST_CR_SRVR_DONE_A (0x160|SSL_ST_CONNECT)#define SSL3_ST_CR_SRVR_DONE_B (0x161|SSL_ST_CONNECT)/* write to server */#define SSL3_ST_CW_CERT_A (0x170|SSL_ST_CONNECT)#define SSL3_ST_CW_CERT_B (0x171|SSL_ST_CONNECT)#define SSL3_ST_CW_CERT_C (0x172|SSL_ST_CONNECT)#define SSL3_ST_CW_CERT_D (0x173|SSL_ST_CONNECT)#define SSL3_ST_CW_KEY_EXCH_A (0x180|SSL_ST_CONNECT)#define SSL3_ST_CW_KEY_EXCH_B (0x181|SSL_ST_CONNECT)#define SSL3_ST_CW_CERT_VRFY_A (0x190|SSL_ST_CONNECT)#define SSL3_ST_CW_CERT_VRFY_B (0x191|SSL_ST_CONNECT)#define SSL3_ST_CW_CHANGE_A (0x1A0|SSL_ST_CONNECT)#define SSL3_ST_CW_CHANGE_B (0x1A1|SSL_ST_CONNECT)#define SSL3_ST_CW_FINISHED_A (0x1B0|SSL_ST_CONNECT)#define SSL3_ST_CW_FINISHED_B (0x1B1|SSL_ST_CONNECT)/* read from server */#define SSL3_ST_CR_CHANGE_A (0x1C0|SSL_ST_CONNECT)#define SSL3_ST_CR_CHANGE_B (0x1C1|SSL_ST_CONNECT)#define SSL3_ST_CR_FINISHED_A (0x1D0|SSL_ST_CONNECT)#define SSL3_ST_CR_FINISHED_B (0x1D1|SSL_ST_CONNECT)/* server *//* extra state */#define SSL3_ST_SW_FLUSH (0x100|SSL_ST_ACCEPT)/* read from client *//* Do not change the number values, they do matter */#define SSL3_ST_SR_CLNT_HELLO_A (0x110|SSL_ST_ACCEPT)#define SSL3_ST_SR_CLNT_HELLO_B (0x111|SSL_ST_ACCEPT)#define SSL3_ST_SR_CLNT_HELLO_C (0x112|SSL_ST_ACCEPT)/* write to client */#define SSL3_ST_SW_HELLO_REQ_A (0x120|SSL_ST_ACCEPT)#define SSL3_ST_SW_HELLO_REQ_B (0x121|SSL_ST_ACCEPT)#define SSL3_ST_SW_HELLO_REQ_C (0x122|SSL_ST_ACCEPT)#define SSL3_ST_SW_SRVR_HELLO_A (0x130|SSL_ST_ACCEPT)#define SSL3_ST_SW_SRVR_HELLO_B (0x131|SSL_ST_ACCEPT)#define SSL3_ST_SW_CERT_A (0x140|SSL_ST_ACCEPT)#define SSL3_ST_SW_CERT_B (0x141|SSL_ST_ACCEPT)#define SSL3_ST_SW_KEY_EXCH_A (0x150|SSL_ST_ACCEPT)#define SSL3_ST_SW_KEY_EXCH_B (0x151|SSL_ST_ACCEPT)#define SSL3_ST_SW_CERT_REQ_A (0x160|SSL_ST_ACCEPT)#define SSL3_ST_SW_CERT_REQ_B (0x161|SSL_ST_ACCEPT)#define SSL3_ST_SW_SRVR_DONE_A (0x170|SSL_ST_ACCEPT)#define SSL3_ST_SW_SRVR_DONE_B (0x171|SSL_ST_ACCEPT)/* read from client */#define SSL3_ST_SR_CERT_A (0x180|SSL_ST_ACCEPT)#define SSL3_ST_SR_CERT_B (0x181|SSL_ST_ACCEPT)#define SSL3_ST_SR_KEY_EXCH_A (0x190|SSL_ST_ACCEPT)#define SSL3_ST_SR_KEY_EXCH_B (0x191|SSL_ST_ACCEPT)#define SSL3_ST_SR_CERT_VRFY_A (0x1A0|SSL_ST_ACCEPT)#define SSL3_ST_SR_CERT_VRFY_B (0x1A1|SSL_ST_ACCEPT)#define SSL3_ST_SR_CHANGE_A (0x1B0|SSL_ST_ACCEPT)#define SSL3_ST_SR_CHANGE_B (0x1B1|SSL_ST_ACCEPT)#define SSL3_ST_SR_FINISHED_A (0x1C0|SSL_ST_ACCEPT)#define SSL3_ST_SR_FINISHED_B (0x1C1|SSL_ST_ACCEPT)/* write to client */#define SSL3_ST_SW_CHANGE_A (0x1D0|SSL_ST_ACCEPT)#define SSL3_ST_SW_CHANGE_B (0x1D1|SSL_ST_ACCEPT)#define SSL3_ST_SW_FINISHED_A (0x1E0|SSL_ST_ACCEPT)#define SSL3_ST_SW_FINISHED_B (0x1E1|SSL_ST_ACCEPT)#define SSL3_MT_HELLO_REQUEST 0#define SSL3_MT_CLIENT_HELLO 1#define SSL3_MT_SERVER_HELLO 2#define SSL3_MT_CERTIFICATE 11#define SSL3_MT_SERVER_KEY_EXCHANGE 12#define SSL3_MT_CERTIFICATE_REQUEST 13#define SSL3_MT_SERVER_DONE 14#define SSL3_MT_CERTIFICATE_VERIFY 15#define SSL3_MT_CLIENT_KEY_EXCHANGE 16#define SSL3_MT_FINISHED 20#define SSL3_MT_CCS 1/* These are used when changing over to a new cipher */#define SSL3_CC_READ 0x01#define SSL3_CC_WRITE 0x02#define SSL3_CC_CLIENT 0x10#define SSL3_CC_SERVER 0x20#define SSL3_CHANGE_CIPHER_CLIENT_WRITE (SSL3_CC_CLIENT|SSL3_CC_WRITE) #define SSL3_CHANGE_CIPHER_SERVER_READ (SSL3_CC_SERVER|SSL3_CC_READ)#define SSL3_CHANGE_CIPHER_CLIENT_READ (SSL3_CC_CLIENT|SSL3_CC_READ)#define SSL3_CHANGE_CIPHER_SERVER_WRITE (SSL3_CC_SERVER|SSL3_CC_WRITE)#ifdef __cplusplus}#endif#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -