Recent changes from 0.9.7-stable
authorRichard Levitte <levitte@openssl.org>
Thu, 2 Oct 2003 10:55:25 +0000 (10:55 +0000)
committerRichard Levitte <levitte@openssl.org>
Thu, 2 Oct 2003 10:55:25 +0000 (10:55 +0000)
19 files changed:
CHANGES
FAQ
Makefile.org
NEWS
README
STATUS
TABLE
crypto/asn1/asn1_lib.c
crypto/asn1/tasn_dec.c
crypto/des/cfb_enc.c
crypto/opensslv.h
crypto/x509/x509_vfy.c
doc/crypto/EVP_BytesToKey.pod
doc/crypto/EVP_DigestInit.pod
doc/crypto/des.pod
doc/crypto/ui.pod
ssl/ssl_ciph.c
ssl/ssltest.c
util/extract-names.pl

diff --git a/CHANGES b/CHANGES
index 4997509f20ba2c668567e4855626b33ba7208229..9655a97429c624697db77fd08930a9ea09aa956d 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -2,7 +2,23 @@
  OpenSSL CHANGES
  _______________
 
- Changes between 0.9.7b and 0.9.7c  [xx XXX 2003]
+ Changes between 0.9.7c and 0.9.7d  [xx XXX XXXX]
+
+  *)
+
+ Changes between 0.9.7b and 0.9.7c  [30 Sep 2003]
+
+  *) Fix various bugs revealed by running the NISCC test suite:
+
+     Stop out of bounds reads in the ASN1 code when presented with
+     invalid tags (CAN-2003-0543 and CAN-2003-0544).
+     
+     Free up ASN1_TYPE correctly if ANY type is invalid (CAN-2003-0545).
+
+     If verify callback ignores invalid public key errors don't try to check
+     certificate signature with the NULL public key.
+
+     [Steve Henson]
 
   *) New -ignore_err option in ocsp application to stop the server
      exiting on the first error in a request.
@@ -1980,7 +1996,17 @@ des-cbc           3624.96k     5258.21k     5530.91k     5624.30k     5628.26k
   *) Clean old EAY MD5 hack from e_os.h.
      [Richard Levitte]
 
- Changes between 0.9.6j and 0.9.6k  [xx XXX 2003]
+ Changes between 0.9.6j and 0.9.6k  [30 Sep 2003]
+
+  *) Fix various bugs revealed by running the NISCC test suite:
+
+     Stop out of bounds reads in the ASN1 code when presented with
+     invalid tags (CAN-2003-0543 and CAN-2003-0544).
+     
+     If verify callback ignores invalid public key errors don't try to check
+     certificate signature with the NULL public key.
+
+     [Steve Henson]
 
   *) In ssl3_accept() (ssl/s3_srvr.c) only accept a client certificate
      if the server requested one: as stated in TLS 1.0 and SSL 3.0
diff --git a/FAQ b/FAQ
index 7812ae88cb7a3726e9e2060b3939b1a9982b6ea5..ca5683def779faa633fa9b38552f1857680b6d82 100644 (file)
--- a/FAQ
+++ b/FAQ
@@ -68,7 +68,7 @@ OpenSSL  -  Frequently Asked Questions
 * Which is the current version of OpenSSL?
 
 The current version is available from <URL: http://www.openssl.org>.
-OpenSSL 0.9.7b was released on April 10, 2003.
+OpenSSL 0.9.7c was released on September 30, 2003.
 
 In addition to the current stable release, you can also access daily
 snapshots of the OpenSSL development version at <URL:
index 8191f99e068785a2981edce04cc1a7b4b8ed3a6d..5a9134dcb98a247d4e660abaef079956187178ef 100644 (file)
@@ -860,7 +860,7 @@ install: all install_docs
                fi; \
        done;
        cp openssl.pc $(INSTALL_PREFIX)$(INSTALLTOP)/lib/pkgconfig
-       chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/pkgconfig
+       chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/pkgconfig/openssl.pc
 
 install_docs:
        @$(PERL) $(TOP)/util/mkdir-p.pl \
@@ -885,6 +885,7 @@ install_docs:
                        >  $(INSTALL_PREFIX)$(MANDIR)/man$$sec/$$fn.$${sec}$(MANSUFFIX); \
                $(PERL) util/extract-names.pl < $$i | \
                        grep -v $$filecase "^$$fn\$$" | \
+                       grep -v "[      ]" | \
                        (cd $(INSTALL_PREFIX)$(MANDIR)/man$$sec/; \
                         while read n; do \
                                $$here/util/point.sh $$fn.$${sec}$(MANSUFFIX) "$$n".$${sec}$(MANSUFFIX); \
@@ -901,6 +902,7 @@ install_docs:
                        >  $(INSTALL_PREFIX)$(MANDIR)/man$$sec/$$fn.$${sec}$(MANSUFFIX); \
                $(PERL) util/extract-names.pl < $$i | \
                        grep -v $$filecase "^$$fn\$$" | \
+                       grep -v "[      ]" | \
                        (cd $(INSTALL_PREFIX)$(MANDIR)/man$$sec/; \
                         while read n; do \
                                $$here/util/point.sh $$fn.$${sec}$(MANSUFFIX) "$$n".$${sec}$(MANSUFFIX); \
diff --git a/NEWS b/NEWS
index dce63f0549a3d98cc46b20432d9431d35bf21900..f0282ebb87558f8b6f08ca1d6b74c4323f08b0e9 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -5,6 +5,13 @@
   This file gives a brief overview of the major changes between each OpenSSL
   release. For more details please read the CHANGES file.
 
+  Major changes between OpenSSL 0.9.7b and OpenSSL 0.9.7c:
+
+      o Security: fix various ASN1 parsing bugs.
+      o New -ignore_err option to OCSP utility.
+      o Various interop and bug fixes in S/MIME code.
+      o SSL/TLS protocol fix for unrequested client certificates.
+
   Major changes between OpenSSL 0.9.7a and OpenSSL 0.9.7b:
 
       o Security: counter the Klima-Pokorny-Rosa extension of
       o SSL/TLS: add callback to retrieve SSL/TLS messages.
       o SSL/TLS: support AES cipher suites (RFC3268).
 
+  Major changes between OpenSSL 0.9.6j and OpenSSL 0.9.6k:
+
+      o Security: fix various ASN1 parsing bugs.
+      o SSL/TLS protocol fix for unrequested client certificates.
+
   Major changes between OpenSSL 0.9.6i and OpenSSL 0.9.6j:
 
       o Security: counter the Klima-Pokorny-Rosa extension of
diff --git a/README b/README
index 148b81857efd2c482aafb0476122f03ffd817f96..65e3a124263b90fdd5698485a6a378d548619cba 100644 (file)
--- a/README
+++ b/README
@@ -1,5 +1,5 @@
 
- OpenSSL 0.9.7c-dev xx XXX 2003
+ OpenSSL 0.9.7c 30 Sep 2003
 
  Copyright (c) 1998-2003 The OpenSSL Project
  Copyright (c) 1995-1998 Eric A. Young, Tim J. Hudson
diff --git a/STATUS b/STATUS
index b6fa59e43851b919d51b3268f40ca62cde0b53eb..7f3b29eb6065713e2b5756230883efc56e9d0a26 100644 (file)
--- a/STATUS
+++ b/STATUS
@@ -1,13 +1,15 @@
 
   OpenSSL STATUS                           Last modified at
-  ______________                           $Date: 2003/04/10 20:22:12 $
+  ______________                           $Date: 2003/10/02 10:55:20 $
 
   DEVELOPMENT STATE
 
     o  OpenSSL 0.9.8:  Under development...
+    o  OpenSSL 0.9.7c: Released on September 30th, 2003
     o  OpenSSL 0.9.7b: Released on April     10th, 2003
     o  OpenSSL 0.9.7a: Released on February  19th, 2003
     o  OpenSSL 0.9.7:  Released on December  31st, 2002
+    o  OpenSSL 0.9.6k: Released on September 30th, 2003
     o  OpenSSL 0.9.6j: Released on April     10th, 2003
     o  OpenSSL 0.9.6i: Released on February  19th, 2003
     o  OpenSSL 0.9.6h: Released on December   5th, 2002
diff --git a/TABLE b/TABLE
index 0cbf837c4fc8c29b200d58345357f262d36bd6b2..328b561c9b5cf1460136ee8723170c863e063690 100644 (file)
--- a/TABLE
+++ b/TABLE
@@ -4275,6 +4275,31 @@ $shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR)
 $ranlib       = 
 $arflags      = 
 
+*** vxworks-mipsle
+$cc           = ccmips
+$cflags       = -B$(WIND_BASE)/host/$(WIND_HOST_TYPE)/lib/gcc-lib/ -DL_ENDIAN -EL -Wl,-EL -mips2 -mno-branch-likely -G 0 -fno-builtin -msoft-float -DCPU=MIPS32 -DMIPSEL -DNO_STRINGS_H -I$(WIND_BASE)/target/h
+$unistd       = 
+$thread_cflag = 
+$sys_id       = VXWORKS
+$lflags       = -r
+$bn_ops       = 
+$bn_obj       = 
+$des_obj      = 
+$bf_obj       = 
+$md5_obj      = 
+$sha1_obj     = 
+$cast_obj     = 
+$rc4_obj      = 
+$rmd160_obj   = 
+$rc5_obj      = 
+$dso_scheme   = 
+$shared_target= 
+$shared_cflag = 
+$shared_ldflag = 
+$shared_extension = 
+$ranlib       = ranlibmips
+$arflags      = 
+
 *** vxworks-ppc405
 $cc           = ccppc
 $cflags       = -g -msoft-float -mlongcall -DCPU=PPC405 -I$(WIND_BASE)/target/h
@@ -4377,7 +4402,7 @@ $arflags      =
 
 *** vxworks-ppc860
 $cc           = ccppc
-$cflags       = -g -msoft-float -DCPU=PPC860 -DNO_STRINGS_H -I$(WIND_BASE)/target/h
+$cflags       = -nostdinc -msoft-float -DCPU=PPC860 -DNO_STRINGS_H -I$(WIND_BASE)/target/h
 $unistd       = 
 $thread_cflag = 
 $sys_id       = VXWORKS
index 0638870ab78f7471677245b7eade38295658916d..e30d5dd303c9a9dc93ebffddd6538c7e000a4b8b 100644 (file)
@@ -104,10 +104,12 @@ int ASN1_get_object(unsigned char **pp, long *plength, int *ptag, int *pclass,
                        l<<=7L;
                        l|= *(p++)&0x7f;
                        if (--max == 0) goto err;
+                       if (l > (INT_MAX >> 7L)) goto err;
                        }
                l<<=7L;
                l|= *(p++)&0x7f;
                tag=(int)l;
+               if (--max == 0) goto err;
                }
        else
                { 
index 76fc023230a87cb52d91d9f296a4b68dc8cd8e23..2426cb6253a302cb3b7cf26edb165f68eadf9b14 100644 (file)
@@ -691,6 +691,7 @@ static int asn1_d2i_ex_primitive(ASN1_VALUE **pval, unsigned char **in, long inl
 
 int asn1_ex_c2i(ASN1_VALUE **pval, unsigned char *cont, int len, int utype, char *free_cont, const ASN1_ITEM *it)
 {
+       ASN1_VALUE **opval = NULL;
        ASN1_STRING *stmp;
        ASN1_TYPE *typ = NULL;
        int ret = 0;
@@ -705,6 +706,7 @@ int asn1_ex_c2i(ASN1_VALUE **pval, unsigned char *cont, int len, int utype, char
                        *pval = (ASN1_VALUE *)typ;
                } else typ = (ASN1_TYPE *)*pval;
                if(utype != typ->type) ASN1_TYPE_set(typ, utype, NULL);
+               opval = pval;
                pval = (ASN1_VALUE **)&typ->value.ptr;
        }
        switch(utype) {
@@ -796,7 +798,12 @@ int asn1_ex_c2i(ASN1_VALUE **pval, unsigned char *cont, int len, int utype, char
 
        ret = 1;
        err:
-       if(!ret) ASN1_TYPE_free(typ);
+       if(!ret)
+               {
+               ASN1_TYPE_free(typ);
+               if (opval)
+                       *opval = NULL;
+               }
        return ret;
 }
 
index 2600bdfc93a9a4cdbed01cccec9e56c7e7d6f12a..1ea04904607049d3785fa58b6220a3f8e66fef14 100644 (file)
@@ -56,6 +56,7 @@
  * [including the GNU Public Licence.]
  */
 
+#include "e_os.h"
 #include "des_locl.h"
 
 /* The input and output are loaded in multiples of 8 bits.
index b5cc2016d0083ee9b618ffecca880e66a91f696a..102f11454176a4c2603de1cf76e6739e4b1ca619 100644 (file)
@@ -25,8 +25,8 @@
  * (Prior to 0.9.5a beta1, a different scheme was used: MMNNFFRBB for
  *  major minor fix final patch/beta)
  */
-#define OPENSSL_VERSION_NUMBER 0x00907030L
-#define OPENSSL_VERSION_TEXT   "OpenSSL 0.9.7c-dev xx XXX 2003"
+#define OPENSSL_VERSION_NUMBER 0x00907040L
+#define OPENSSL_VERSION_TEXT   "OpenSSL 0.9.7d-dev [fips] xx XXX XXXX"
 #define OPENSSL_VERSION_PTEXT  " part of " OPENSSL_VERSION_TEXT
 
 
index f60054bd398dff568da2b80f9e580bd06cecae1c..2bb21b443ec0674b9738935302ad2173a5066e81 100644 (file)
@@ -674,7 +674,7 @@ static int internal_verify(X509_STORE_CTX *ctx)
                                ok=(*cb)(0,ctx);
                                if (!ok) goto end;
                                }
-                       if (X509_verify(xs,pkey) <= 0)
+                       else if (X509_verify(xs,pkey) <= 0)
                                /* XXX  For the final trusted self-signed cert,
                                 * this is a waste of time.  That check should
                                 * optional so that e.g. 'openssl x509' can be
index 5ce4add0821c7bec7e0f4946df8d54959ff977c7..016381f3e994a1f3fbf6de207dc930da2979f7cc 100644 (file)
@@ -2,7 +2,7 @@
 
 =head1 NAME
 
- EVP_BytesToKey - password based encryption routine
+EVP_BytesToKey - password based encryption routine
 
 =head1 SYNOPSIS
 
index 5901c3952660c17923fb5fdf06f26e73f428cf7f..1cb315e739dd1b9055a75073ef6082dce34cf275 100644 (file)
@@ -4,7 +4,7 @@
 
 EVP_MD_CTX_init, EVP_MD_CTX_create, EVP_DigestInit_ex, EVP_DigestUpdate,
 EVP_DigestFinal_ex, EVP_MD_CTX_cleanup, EVP_MD_CTX_destroy, EVP_MAX_MD_SIZE,
-EVP_MD_CTX_copy_ex EVP_MD_CTX_copy, EVP_MD_type, EVP_MD_pkey_type, EVP_MD_size,
+EVP_MD_CTX_copy_ex, EVP_MD_CTX_copy, EVP_MD_type, EVP_MD_pkey_type, EVP_MD_size,
 EVP_MD_block_size, EVP_MD_CTX_md, EVP_MD_CTX_size, EVP_MD_CTX_block_size, EVP_MD_CTX_type,
 EVP_md_null, EVP_md2, EVP_md5, EVP_sha, EVP_sha1, EVP_dss, EVP_dss1, EVP_mdc2,
 EVP_ripemd160, EVP_get_digestbyname, EVP_get_digestbynid, EVP_get_digestbyobj -
index 528c73acac6188c6deb69970b6279460f805cb27..6f0cf1cc5e5f1fc006cdaea404fa8be6e640fe02 100644 (file)
@@ -283,7 +283,7 @@ DES_cbc_encrypt is used.
 =head1 NOTES
 
 Single-key DES is insecure due to its short key size.  ECB mode is
-not suitable for most applications; see L<DES_modes(7)|DES_modes(7)>.
+not suitable for most applications; see L<des_modes(7)|des_modes(7)>.
 
 The L<evp(3)|evp(3)> library provides higher-level encryption functions.
 
index 2b3535a7461859be52a0d42849109ab682463c8d..6df68d604a82a8b63cf47e6185ad7cef43bd7229 100644 (file)
@@ -5,7 +5,7 @@
 UI_new, UI_new_method, UI_free, UI_add_input_string, UI_dup_input_string,
 UI_add_verify_string, UI_dup_verify_string, UI_add_input_boolean,
 UI_dup_input_boolean, UI_add_info_string, UI_dup_info_string,
-UI_add_error_string, UI_dup_error_string, UI_construct_prompt
+UI_add_error_string, UI_dup_error_string, UI_construct_prompt,
 UI_add_user_data, UI_get0_user_data, UI_get0_result, UI_process,
 UI_ctrl, UI_set_default_method, UI_get_default_method, UI_get_method,
 UI_set_method, UI_OpenSSL, ERR_load_UI_strings - New User Interface
index 888b667fa12ce50f64b0f5e9680714c070c49576..585c70e4b3849cc620e41e9d1b514cb4cad428ae 100644 (file)
@@ -1129,11 +1129,11 @@ int SSL_COMP_add_compression_method(int id, COMP_METHOD *cm)
                {
                MemCheck_on();
                SSLerr(SSL_F_SSL_COMP_ADD_COMPRESSION_METHOD,ERR_R_MALLOC_FAILURE);
-               return(0);
+               return(1);
                }
        else
                {
                MemCheck_on();
-               return(1);
+               return(0);
                }
        }
index 0800d243da965f727981f98e6dba8f6286045ce1..c7f33d9a7fcf4755cb68a6c6eaae6c84435e571a 100644 (file)
@@ -596,7 +596,14 @@ bad:
        if (cm != NULL)
                {
                if (cm->type != NID_undef)
-                       SSL_COMP_add_compression_method(comp, cm);
+                       {
+                       if (SSL_COMP_add_compression_method(comp, cm) != 0)
+                               {
+                               fprintf(stderr,
+                                       "Failed to add compression method\n");
+                               ERR_print_errors_fp(stderr);
+                               }
+                       }
                else
                        {
                        fprintf(stderr,
index 9f2ad5ef166c7e5c13a4f654dc03db1ac631ef09..744a8e2324e6cc7aaa2641d644ac2cfe1eeeafe8 100644 (file)
@@ -10,6 +10,8 @@ while(<STDIN>) {
        if (/ - /) {
            s/ - .*//;
            s/,[ \t]+/,/g;
+           s/^[ \t]+//g;
+           s/[ \t]+$//g;
            push @words, split ',';
        }
     }