Fix the cipher decision scheme for export ciphers: the export bits are *not*
authorRalf S. Engelschall <rse@openssl.org>
Thu, 25 Feb 1999 11:03:18 +0000 (11:03 +0000)
committerRalf S. Engelschall <rse@openssl.org>
Thu, 25 Feb 1999 11:03:18 +0000 (11:03 +0000)
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.

Submitted by: Richard Levitte <levitte@stacken.kth.se>
Reviewed by: Ralf S. Engelschall

CHANGES
ssl/s3_lib.c

diff --git a/CHANGES b/CHANGES
index 44ff6d4..801432f 100644 (file)
--- 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 <levitte@stacken.kth.se>]
+
   *) Fix 'port' variable from `int' to `unsigned int' in crypto/bio/b_sock.c
      [Richard Levitte <levitte@stacken.kth.se>]
 
index b7bcf86..1dd03b1 100644 (file)
@@ -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