/pidgin/main: bd402b3a86f4: Manual merge release-2.x.y into master.
Mark Doliner <[email protected]>
| Newsgroups | gmane.comp.gnome.gaim.cvs |
|---|---|
| Message-ID | <[email protected]> |
Changeset: bd402b3a86f45d3c103602add10b17d95c710bba Author: Mark Doliner <[email protected]> Date: 2014-09-12 11:11 -0700 Branch: default URL: https://hg.pidgin.im/pidgin/main/rev/bd402b3a86f4 Description: Manual merge release-2.x.y into master. Only conflict was po/de.po. I think we shouldn't merge translations from one branch to the other, so I didn't update de.po in master. diffstat: ChangeLog | 6 +++++- libpurple/plugins/ssl/ssl-nss.c | 25 +++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletions(-) diffs (65 lines): diff --git a/ChangeLog b/ChangeLog --- a/ChangeLog +++ b/ChangeLog @@ -74,6 +74,10 @@ version 3.0.0 (??/??/????): was an offline message. (Flavius Anton) (#2497) version 2.10.10 (?/?/?): + General: + * Allow and prefer TLS 1.2 and 1.1 when using libnss. (Elrond and + Ashish Gupta) (#15909) + libpurple3 compatibility: * Encrypted account passwords are preserved until the new one is set. * Fix loading Google Talk and Facebook XMPP accounts. @@ -307,7 +311,7 @@ version 2.10.7 (02/13/2013): this issue and suggesting solutions. (#15277) * Updates to a number of dependencies, some of which have security related fixes. Thanks again to Jacob Appelbaum and Jurre van Bergen - for identifying the vulnerable libraries and to Dieter Verfaillie + for identifying the vulnerable libraries and to Dieter Verfaillie for helping getting the libraries updated. (#14571, #15285, #15286) * ATK 1.32.0-2 * Cyrus SASL 2.1.25 diff --git a/libpurple/plugins/ssl/ssl-nss.c b/libpurple/plugins/ssl/ssl-nss.c --- a/libpurple/plugins/ssl/ssl-nss.c +++ b/libpurple/plugins/ssl/ssl-nss.c @@ -133,6 +133,8 @@ static gchar *get_error_text(void) static void ssl_nss_init_nss(void) { + SSLVersionRange supported, enabled; + PR_Init(PR_SYSTEM_THREAD, PR_PRIORITY_NORMAL, 1); NSS_NoDB_Init("."); NSS_SetDomesticPolicy(); @@ -150,6 +152,29 @@ ssl_nss_init_nss(void) SSL_CipherPrefSetDefault(SSL_DHE_RSA_WITH_DES_CBC_SHA, 1); SSL_CipherPrefSetDefault(SSL_DHE_DSS_WITH_DES_CBC_SHA, 1); + /* Get the ranges of supported and enabled SSL versions */ + if ((SSL_VersionRangeGetSupported(ssl_variant_stream, &supported) == SECSuccess) && + (SSL_VersionRangeGetDefault(ssl_variant_stream, &enabled) == SECSuccess)) { + purple_debug_info("nss", "TLS supported versions: " + "0x%04hx through 0x%04hx\n", supported.min, supported.max); + purple_debug_info("nss", "TLS versions allowed by default: " + "0x%04hx through 0x%04hx\n", enabled.min, enabled.max); + + /* Make sure all versions of TLS supported by the local library are + enabled. (For some reason NSS doesn't enable newer versions of TLS + by default -- more context in ticket #15909.) */ + if (supported.max > enabled.max) { + enabled.max = supported.max; + if (SSL_VersionRangeSetDefault(ssl_variant_stream, &enabled) == SECSuccess) { + purple_debug_info("nss", "Changed allowed TLS versions to " + "0x%04hx through 0x%04hx\n", enabled.min, enabled.max); + } else { + purple_debug_error("nss", "Error setting allowed TLS versions to " + "0x%04hx through 0x%04hx\n", enabled.min, enabled.max); + } + } + } + _identity = PR_GetUniqueIdentity("Purple"); _nss_methods = PR_GetDefaultIOMethods(); }