/* Used to hold functions for SSLv2 or SSLv3/TLSv1 functions */   typedef struct ssl_method_st   { 	int version; 	int (*ssl_new)(SSL *s); 	void (*ssl_clear)(SSL *s); 	void (*ssl_free)(SSL *s); 	int (*ssl_accept)(SSL *s); 	int (*ssl_connect)(SSL *s); 	int (*ssl_read)(SSL *s,void *buf,int len); 	int (*ssl_peek)(SSL *s,void *buf,int len); 	int (*ssl_write)(SSL *s,const void *buf,int len); 	int (*ssl_shutdown)(SSL *s); 	int (*ssl_renegotiate)(SSL *s); 	int (*ssl_renegotiate_check)(SSL *s); 	long (*ssl_ctrl)(SSL *s,int cmd,long larg,char *parg); 	long (*ssl_ctx_ctrl)(SSL_CTX *ctx,int cmd,long larg,char *parg);   	SSL_CIPHER *(*get_cipher_by_char)(const unsigned char *ptr); 	int (*put_cipher_by_char)(const SSL_CIPHER *cipher,unsigned char *ptr); 	int (*ssl_pending)(SSL *s); 	int (*num_ciphers)(void);   	SSL_CIPHER *(*get_cipher)(unsigned ncipher); 	struct ssl_method_st *(*get_ssl_method)(int version); 	long (*get_timeout)(void); 	struct ssl3_enc_method *ssl3_enc; /* Extra SSLv3/TLS stuff */ 	int (*ssl_version)(); 	long (*ssl_callback_ctrl)(SSL *s, int cb_id, void (*fp)()); 	long (*ssl_ctx_callback_ctrl)(SSL_CTX *s, int cb_id, void (*fp)());   } SSL_METHOD;
   |