X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fsrc%2Ftls-openssl.c;h=2104711bb96230013a2c27948abd6ded697c6533;hb=edc33b5f1aca3f17ee8ca0b93689e6d14009df54;hp=e9628ba29a1e50488a836b20b9ab4d3e0da8fb08;hpb=754a0503134b184183f64c04ed30a3524fc3860b;p=user%2Fhenk%2Fcode%2Fexim.git diff --git a/src/src/tls-openssl.c b/src/src/tls-openssl.c index e9628ba29..2104711bb 100644 --- a/src/src/tls-openssl.c +++ b/src/src/tls-openssl.c @@ -1,5 +1,3 @@ -/* $Cambridge: exim/src/src/tls-openssl.c,v 1.28 2010/06/12 17:56:32 jetmore Exp $ */ - /************************************************* * Exim - an Internet mail transport agent * *************************************************/ @@ -443,7 +441,6 @@ yet reflect that. It should be a safe change anyway, even 0.9.8 versions have the accessor functions use const in the prototype. */ const SSL_CIPHER *c; uschar *ver; -int bits; switch (ssl->session->ssl_version) { @@ -464,10 +461,10 @@ switch (ssl->session->ssl_version) } c = (const SSL_CIPHER *) SSL_get_current_cipher(ssl); -SSL_CIPHER_get_bits(c, &bits); +SSL_CIPHER_get_bits(c, &tls_bits); string_format(cipherbuf, sizeof(cipherbuf), "%s:%s:%u", ver, - SSL_CIPHER_get_name(c), bits); + SSL_CIPHER_get_name(c), tls_bits); tls_cipher = cipherbuf; DEBUG(D_tls) debug_printf("Cipher: %s\n", cipherbuf); @@ -1180,7 +1177,7 @@ all options unless explicitly for DTLS, let the administrator choose which to apply. This list is current as of: - ==> 0.9.8n <== */ + ==> 1.0.0c <== */ static struct exim_openssl_option exim_openssl_options[] = { /* KEEP SORTED ALPHABETICALLY! */ #ifdef SSL_OP_ALL @@ -1219,6 +1216,18 @@ static struct exim_openssl_option exim_openssl_options[] = { #ifdef SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION { US"no_session_resumption_on_renegotiation", SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION }, #endif +#ifdef SSL_OP_NO_SSLv2 + { US"no_sslv2", SSL_OP_NO_SSLv2 }, +#endif +#ifdef SSL_OP_NO_SSLv3 + { US"no_sslv3", SSL_OP_NO_SSLv3 }, +#endif +#ifdef SSL_OP_NO_TICKET + { US"no_ticket", SSL_OP_NO_TICKET }, +#endif +#ifdef SSL_OP_NO_TLSv1 + { US"no_tlsv1", SSL_OP_NO_TLSv1 }, +#endif #ifdef SSL_OP_SINGLE_DH_USE { US"single_dh_use", SSL_OP_SINGLE_DH_USE }, #endif @@ -1291,11 +1300,10 @@ uschar *s, *end; uschar keep_c; BOOL adding, item_parsed; +result = 0L; /* We grandfather in as default the one option which we used to set always. */ #ifdef SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS -result = SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS; -#else -result = 0L; +result |= SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS; #endif if (option_spec == NULL) @@ -1312,7 +1320,7 @@ for (s=option_spec; *s != '\0'; /**/) if (*s != '+' && *s != '-') { DEBUG(D_tls) debug_printf("malformed openssl option setting: " - "+ or - expected but found \"%s\"", s); + "+ or - expected but found \"%s\"\n", s); return FALSE; } adding = *s++ == '+'; @@ -1322,7 +1330,7 @@ for (s=option_spec; *s != '\0'; /**/) item_parsed = tls_openssl_one_option_parse(s, &item); if (!item_parsed) { - DEBUG(D_tls) debug_printf("openssl option setting unrecognised: \"%s\"", s); + DEBUG(D_tls) debug_printf("openssl option setting unrecognised: \"%s\"\n", s); return FALSE; } DEBUG(D_tls) debug_printf("openssl option, %s from %lx: %lx (%s)\n",