diff --git a/CHANGES b/CHANGES index 44ff6d46390d2f43fb6cc82939936c7b81e5b5f8..801432f471af880e241c101453ff1c6250c08553 100644 --- a/CHANGES +++ b/CHANGES @@ -5,6 +5,12 @@ Changes between 0.9.1c and 0.9.2 + *) Fix the cipher decision scheme for export ciphers: the export bits are + *not* within SSL_MKEY_MASK or SSL_AUTH_MASK, they are within + SSL_EXP_MASK. So, the original variable has to be used instead of the + already masked variable. + [Richard Levitte ] + *) Fix 'port' variable from `int' to `unsigned int' in crypto/bio/b_sock.c [Richard Levitte ] diff --git a/ssl/s3_lib.c b/ssl/s3_lib.c index b7bcf86476ae4e8b79b513e3f69ebe8d6c08d304..1dd03b1265553b70866cf698ccce6dda29b5513c 100644 --- a/ssl/s3_lib.c +++ b/ssl/s3_lib.c @@ -771,11 +771,11 @@ STACK *have,*pref; emask=cert->export_mask; alg=c->algorithms&(SSL_MKEY_MASK|SSL_AUTH_MASK); - if (SSL_IS_EXPORT(alg)) + if (SSL_IS_EXPORT(c->algorithms)) { ok=((alg & emask) == alg)?1:0; #ifdef CIPHER_DEBUG - printf("%d:[%08lX:%08lX]%s\n",ok,alg,mask,c->name); + printf("%d:[%08lX:%08lX]%s (export)\n",ok,alg,mask,c->name); #endif } else