X-Git-Url: http://www.privoxy.org/gitweb/?p=privoxy.git;a=blobdiff_plain;f=ssl.h;h=f4f69a67bf0ba36b2879b9dacc9347ec3bca5c59;hp=b552bfe23801ff23d0a3e6e6e242d8cce42f8583;hb=60513e33c518dd45644143581976e601d4d6aa60;hpb=2111876638f912fa7be56a3df315efbbfde91f38 diff --git a/ssl.h b/ssl.h index b552bfe2..f4f69a67 100644 --- a/ssl.h +++ b/ssl.h @@ -2,7 +2,7 @@ #define SSL_H_INCLUDED /********************************************************************* * -* File : $Source: /cvsroot/ijbswa/current/ssl.h,v $ +* File : $Source: $ * * Purpose : File with TLS/SSL extension. Contains methods for * creating, using and closing TLS/SSL connections. @@ -31,36 +31,31 @@ #include "project.h" -/* - * Values for flag determining certificate validity. - * These values are compatible with return value of function - * mbedtls_ssl_get_verify_result. There is not value for invalid - * certificate, this value is setted by function - * mbedtls_ssl_get_verify_result. - */ -#define SSL_CERT_VALID 0 -#define SSL_CERT_NOT_VERIFIED 0xFFFFFFFF - -/* Variables for one common RNG for all SSL use */ -static mbedtls_ctr_drbg_context ctr_drbg; -static mbedtls_entropy_context entropy; -static int rng_seeded; - -/* Boolean functions to get informations about TLS/SSL connections */ +/* Boolean functions to get information about TLS/SSL connections */ extern int client_use_ssl(const struct client_state *csp); extern int server_use_ssl(const struct client_state *csp); -extern size_t is_ssl_pending(mbedtls_ssl_context *ssl); -extern int tunnel_established_successfully(const char * response, unsigned int response_len); +extern size_t is_ssl_pending(struct ssl_attr *ssl_attr); +extern int tunnel_established_successfully(const char *response, unsigned int response_len); /* Functions for sending and receiving data over TLS/SSL connections */ -extern int ssl_send_data(mbedtls_ssl_context * ssl, const unsigned char * buf, size_t len); -extern int ssl_recv_data(mbedtls_ssl_context * ssl, unsigned char * buf, size_t maxLen); -extern long ssl_flush_socket(mbedtls_ssl_context * ssl, struct iob *iob); +extern int ssl_send_data(struct ssl_attr *ssl_attr, const unsigned char *buf, size_t len); +extern int ssl_send_data_delayed(struct ssl_attr *ssl_attr, const unsigned char *buf, + size_t len, unsigned int delay); +extern int ssl_recv_data(struct ssl_attr *ssl_attr, unsigned char *buf, size_t maxLen); +extern long ssl_flush_socket(struct ssl_attr *ssl_attr, struct iob *iob); extern void ssl_send_certificate_error(struct client_state *csp); /* Functions for opening and closing TLS/SSL connections */ extern int create_client_ssl_connection(struct client_state *csp); extern int create_server_ssl_connection(struct client_state *csp); extern void close_client_and_server_ssl_connections(struct client_state *csp); +extern void close_server_ssl_connection(struct client_state *csp); +extern void close_client_ssl_connection(struct client_state *csp); + +/* misc helper functions */ +extern int ssl_base64_encode(unsigned char *dst, size_t dlen, size_t *olen, + const unsigned char *src, size_t slen ); +extern void ssl_crt_verify_info(char *buf, size_t size, struct client_state *csp); +extern void ssl_release(void); #endif /* ndef SSL_H_INCLUDED */