We need to read one more byte of the REQUEST-CERTIFICATE message.
authorRichard Levitte <levitte@openssl.org>
Fri, 15 Nov 2002 09:15:55 +0000 (09:15 +0000)
committerRichard Levitte <levitte@openssl.org>
Fri, 15 Nov 2002 09:15:55 +0000 (09:15 +0000)
PR: 300

CHANGES
ssl/s2_clnt.c

diff --git a/CHANGES b/CHANGES
index 09509abd4bfc31d664d65025daf5544f610ae0b1..cf1bc8d785c282e5c24ad961bd10ea2bcda5943a 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -2082,6 +2082,10 @@ des-cbc           3624.96k     5258.21k     5530.91k     5624.30k     5628.26k
 
  Changes between 0.9.6g and 0.9.6h  [xx XXX xxxx]
 
+  *) Fix client_certificate (ssl/s2_clnt.c): The permissible total
+     length of the REQUEST-CERTIFICATE message is 18 .. 34, not 17 .. 33.
+     [Zeev Lieber <zeev-l@yahoo.com>]
+
   *) Change the default configuration reader to deal with last line not
      being properly terminated.
      [Richard Levitte]
index 681bfad8f7813b50d5641902b2e50c4719a5c3ad..da783230a521602326e8fba6cd1c4dd4d5f041fd 100644 (file)
@@ -770,8 +770,8 @@ static int client_certificate(SSL *s)
        if (s->state == SSL2_ST_SEND_CLIENT_CERTIFICATE_A)
                {
                i=ssl2_read(s,(char *)&(buf[s->init_num]),
-                       SSL2_MAX_CERT_CHALLENGE_LENGTH+1-s->init_num);
-               if (i<(SSL2_MIN_CERT_CHALLENGE_LENGTH+1-s->init_num))
+                       SSL2_MAX_CERT_CHALLENGE_LENGTH+2-s->init_num);
+               if (i<(SSL2_MIN_CERT_CHALLENGE_LENGTH+2-s->init_num))
                        return(ssl2_part_read(s,SSL_F_CLIENT_CERTIFICATE,i));
                s->init_num += i;
                if (s->msg_callback)