X-Git-Url: http://www.privoxy.org/gitweb/?a=blobdiff_plain;f=openssl.c;h=507c3f81dd001ce37658e199cb844f0224e8e008;hb=93f88b61fcb2d70e215c554d925ff9f4f4b34eb1;hp=2ab67c96a3d7d64a31d3dc08472fa0c7a826afde;hpb=b14150078393effcdaf37c436b789919e2ea12af;p=privoxy.git diff --git a/openssl.c b/openssl.c index 2ab67c96..507c3f81 100644 --- a/openssl.c +++ b/openssl.c @@ -3,7 +3,8 @@ * File : $Source: /cvsroot/ijbswa/current/openssl.c,v $ * * Purpose : File with TLS/SSL extension. Contains methods for - * creating, using and closing TLS/SSL connections. + * creating, using and closing TLS/SSL connections + * using OpenSSL (or LibreSSL). * * Copyright : Written by and Copyright (c) 2020 Maxim Antonov * Copyright (C) 2017 Vaclav Svec. FIT CVUT. @@ -61,7 +62,7 @@ static int generate_host_certificate(struct client_state *csp); static void free_client_ssl_structures(struct client_state *csp); static void free_server_ssl_structures(struct client_state *csp); -static int ssl_store_cert(struct client_state *csp, X509* crt); +static int ssl_store_cert(struct client_state *csp, X509 *crt); static void log_ssl_errors(int debuglevel, const char* fmt, ...) __attribute__((format(printf, 2, 3))); static int ssl_inited = 0; @@ -265,7 +266,7 @@ extern int ssl_recv_data(struct ssl_attr *ssl_attr, unsigned char *buf, size_t m * Returns : 0 on success and negative value on error * *********************************************************************/ -static int ssl_store_cert(struct client_state *csp, X509* crt) +static int ssl_store_cert(struct client_state *csp, X509 *crt) { long len = 0; struct certs_chain *last = &(csp->server_certs_chain); @@ -387,7 +388,7 @@ static int ssl_store_cert(struct client_state *csp, X509* crt) ul = (unsigned long)l; neg = ""; } - if (BIO_printf(bio, " %s%lu (%s0x%lx)\n", neg, ul, neg, ul) <= 0) + if (BIO_printf(bio, "%s%lu (%s0x%lx)\n", neg, ul, neg, ul) <= 0) { log_ssl_errors(LOG_LEVEL_ERROR, "BIO_printf() for serial failed"); ret = -1; @@ -869,7 +870,9 @@ extern int create_client_ssl_connection(struct client_state *csp) goto exit; } - log_error(LOG_LEVEL_CONNECT, "Client successfully connected over TLS/SSL"); + log_error(LOG_LEVEL_CONNECT, "Client successfully connected over %s (%s).", + SSL_get_version(ssl), SSL_get_cipher_name(ssl)); + csp->ssl_with_client_is_opened = 1; ret = 0; @@ -1179,7 +1182,8 @@ extern int create_server_ssl_connection(struct client_state *csp) } } - log_error(LOG_LEVEL_CONNECT, "Server successfully connected over TLS/SSL"); + log_error(LOG_LEVEL_CONNECT, "Server successfully connected over %s (%s).", + SSL_get_version(ssl), SSL_get_cipher_name(ssl)); /* * Server certificate chain is valid, so we can clean @@ -1286,7 +1290,7 @@ static void log_ssl_errors(int debuglevel, const char* fmt, ...) extern int ssl_base64_encode(unsigned char *dst, size_t dlen, size_t *olen, const unsigned char *src, size_t slen) { - *olen = 4 * ((slen/3) + ((slen%3) ? 1 : 0)) + 1; + *olen = 4 * ((slen/3) + ((slen%3) ? 1 : 0)) + 1; if (*olen > dlen) { return ENOBUFS; @@ -1572,7 +1576,7 @@ exit: * pointer to certificate instance otherwise * *********************************************************************/ -static X509* ssl_certificate_load(const char *cert_path) +static X509 *ssl_certificate_load(const char *cert_path) { X509 *cert = NULL; FILE *cert_f = NULL;