Skip to content

Commit

Permalink
Remove export ciphers from the DEFAULT cipher list
Browse files Browse the repository at this point in the history
They are moved to the COMPLEMENTOFDEFAULT instead.
This also fixes SSLv2 to be part of COMPLEMENTOFDEFAULT.

Reviewed-by: Rich Salz <rsalz@openssl.org>
  • Loading branch information
kroeckx committed Mar 7, 2015
1 parent 6ee3997 commit f417997
Show file tree
Hide file tree
Showing 4 changed files with 13 additions and 6 deletions.
3 changes: 2 additions & 1 deletion CHANGES
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@

Changes between 1.0.2 and 1.0.2a [xx XXX xxxx]

*)
*) Removed the export ciphers from the DEFAULT ciphers
[Kurt Roeckx]

Changes between 1.0.1l and 1.0.2 [22 Jan 2015]

Expand Down
4 changes: 2 additions & 2 deletions doc/apps/ciphers.pod
Original file line number Diff line number Diff line change
Expand Up @@ -109,8 +109,8 @@ The following is a list of all permitted cipher strings and their meanings.

=item B<DEFAULT>

the default cipher list. This is determined at compile time and, as of OpenSSL
1.0.0, is normally B<ALL:!aNULL:!eNULL>. This must be the first cipher string
the default cipher list. This is determined at compile time and
is normally B<ALL:!EXPORT:!aNULL:!eNULL:!SSLv2>. This must be the firstcipher string
specified.

=item B<COMPLEMENTOFDEFAULT>
Expand Down
2 changes: 1 addition & 1 deletion ssl/ssl.h
Original file line number Diff line number Diff line change
Expand Up @@ -338,7 +338,7 @@ extern "C" {
* The following cipher list is used by default. It also is substituted when
* an application-defined cipher list string starts with 'DEFAULT'.
*/
# define SSL_DEFAULT_CIPHER_LIST "ALL:!aNULL:!eNULL:!SSLv2"
# define SSL_DEFAULT_CIPHER_LIST "ALL:!EXPORT:!aNULL:!eNULL:!SSLv2"
/*
* As of OpenSSL 1.0.0, ssl_create_cipher_list() in ssl/ssl_ciph.c always
* starts with a reasonable order, and all we have to do for DEFAULT is
Expand Down
10 changes: 8 additions & 2 deletions ssl/ssl_ciph.c
Original file line number Diff line number Diff line change
Expand Up @@ -235,8 +235,8 @@ static const SSL_CIPHER cipher_aliases[] = {
* "COMPLEMENTOFDEFAULT" (does *not* include ciphersuites not found in
* ALL!)
*/
{0, SSL_TXT_CMPDEF, 0, SSL_kEDH | SSL_kEECDH, SSL_aNULL, ~SSL_eNULL, 0, 0,
0, 0, 0, 0},
{0, SSL_TXT_CMPDEF, 0, 0, SSL_aNULL, ~SSL_eNULL, 0, ~SSL_SSLV2,
SSL_EXP_MASK, 0, 0, 0},

/*
* key exchange aliases (some of those using only a single bit here
Expand Down Expand Up @@ -1027,6 +1027,10 @@ static void ssl_cipher_apply_rule(unsigned long cipher_id,
if (cipher_id && cipher_id != cp->id)
continue;
#endif
if (algo_strength == SSL_EXP_MASK && SSL_C_IS_EXPORT(cp))
goto ok;
if (alg_ssl == ~SSL_SSLV2 && cp->algorithm_ssl == SSL_SSLV2)
goto ok;
if (alg_mkey && !(alg_mkey & cp->algorithm_mkey))
continue;
if (alg_auth && !(alg_auth & cp->algorithm_auth))
Expand All @@ -1045,6 +1049,8 @@ static void ssl_cipher_apply_rule(unsigned long cipher_id,
continue;
}

ok:

#ifdef CIPHER_DEBUG
fprintf(stderr, "Action = %d\n", rule);
#endif
Expand Down

0 comments on commit f417997

Please sign in to comment.