Merge in changes from the 0.9.6-stable branch.
authorRichard Levitte <levitte@openssl.org>
Wed, 4 Apr 2001 16:34:38 +0000 (16:34 +0000)
committerRichard Levitte <levitte@openssl.org>
Wed, 4 Apr 2001 16:34:38 +0000 (16:34 +0000)
13 files changed:
CHANGES
Configure
Makefile.org
apps/Makefile.ssl
apps/s_server.c
crypto/dso/dso_vms.c
crypto/ebcdic.c
crypto/pkcs12/p12_kiss.c
ssl/s3_enc.c
ssl/t1_enc.c
test/Makefile.ssl
tools/c_rehash.in
util/mklink.pl

diff --git a/CHANGES b/CHANGES
index 288d067f8713675e085e3842950c383bfef2b908..533aa4b47fbd7229dbf9268f1fda03538c8f3fc0 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -4,6 +4,13 @@
 
  Changes between 0.9.6 and 0.9.6a  [xx XXX 2001]
 
+  *) Change Configure and Makefiles to provide EXE_EXT, which will contain
+     the default extension for executables, if any.  Also, make the perl
+     scripts that use symlink() to test if it really exists and use "cp"
+     if it doesn't.  All this made OpenSSL compilable and installable in
+     CygWin.
+     [Richard Levitte]
+
   *) Fix for asn1_GetSequence() for indefinite length constructed data.
      If SEQUENCE is length is indefinite just set c->slen to the total
      amount of data available.
@@ -28,6 +35,9 @@
   *) MIPS assembler BIGNUM division bug fix. 
      [Andy Polyakov]
 
+  *) Disabled incorrect Alpha assembler code.
+     [Richard Levitte]
+
   *) Fix PKCS#7 decode routines so they correctly update the length
      after reading an EOC for the EXPLICIT tag.
      [Steve Henson]
index 70f46c79bd501fd9fe28a03cec42a3f5b2d40e44..ca09a23279f22d7b57f90e2c88c8568fba21f08e 100755 (executable)
--- a/Configure
+++ b/Configure
@@ -374,7 +374,7 @@ my %table=(
 
 # DGUX, 88100.
 "dgux-R3-gcc", "gcc:-O3 -fomit-frame-pointer::(unknown)::RC4_INDEX DES_UNROLL:::",
-"dgux-R4-gcc", "gcc:-O3 -fomit-frame-pointer::(unknown):-lnsl -lsocket:RC4_INDEX:RC4_INDEX DES_UNROLL:::",
+"dgux-R4-gcc", "gcc:-O3 -fomit-frame-pointer::(unknown):-lnsl -lsocket:RC4_INDEX DES_UNROLL:::",
 "dgux-R4-x86-gcc",     "gcc:-O3 -fomit-frame-pointer -DL_ENDIAN::(unknown):-lnsl -lsocket:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}",
 
 # SCO 3 - Tim Rice <tim@multitalents.net>
@@ -441,6 +441,7 @@ my @WinTargets=qw(VC-NT VC-WIN32 VC-WIN16 VC-W31-16 VC-W31-32 VC-MSDOS BC-32
 
 my $prefix="";
 my $openssldir="";
+my $exe_ext="";
 my $install_prefix="";
 my $no_threads=0;
 my $no_shared=1;
@@ -657,6 +658,7 @@ print "Configuring for $target\n";
 
 my $IsWindows=scalar grep /^$target$/,@WinTargets;
 
+$exe_ext=".exe" if ($target eq "CygWin32");
 $openssldir="/usr/local/ssl" if ($openssldir eq "" and $prefix eq "");
 $prefix=$openssldir if $prefix eq "";
 
@@ -859,6 +861,7 @@ while (<IN>)
        s/^CFLAG=.*$/CFLAG= $cflags/;
        s/^DEPFLAG=.*$/DEPFLAG= $depflags/;
        s/^EX_LIBS=.*$/EX_LIBS= $lflags/;
+       s/^EXE_EXT=.*$/EXE_EXT= $exe_ext/;
        s/^BN_ASM=.*$/BN_ASM= $bn_obj/;
        s/^DES_ENC=.*$/DES_ENC= $des_obj/;
        s/^BF_ENC=.*$/BF_ENC= $bf_obj/;
index 209129e6d7625ad9d381290c7653366f88749815..ad6a8434289bba213bc3554b430cc735d908d1ca 100644 (file)
@@ -59,6 +59,7 @@ CFLAG= -DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O3 -m486 -Wall -DSHA1_ASM -DMD
 DEPFLAG= 
 PEX_LIBS= 
 EX_LIBS= 
+EXE_EXT= 
 AR=ar r
 RANLIB= ranlib
 PERL= perl
@@ -201,7 +202,7 @@ sub_all:
        do \
        if [ -d "$$i" ]; then \
                (cd $$i && echo "making all in $$i..." && \
-               $(MAKE) CC='${CC}' PLATFORM='${PLATFORM}' CFLAG='${CFLAG}' SDIRS='$(SDIRS)' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' BN_ASM='${BN_ASM}' DES_ENC='${DES_ENC}' BF_ENC='${BF_ENC}' CAST_ENC='${CAST_ENC}' RC4_ENC='${RC4_ENC}' RC5_ENC='${RC5_ENC}' SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' MD5_ASM_OBJ='${MD5_ASM_OBJ}' RMD160_ASM_OBJ='${RMD160_ASM_OBJ}' AR='${AR}' PROCESSOR='${PROCESSOR}' PERL='${PERL}' RANLIB='${RANLIB}' all ) || exit 1; \
+               $(MAKE) CC='${CC}' PLATFORM='${PLATFORM}' CFLAG='${CFLAG}' SDIRS='$(SDIRS)' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' BN_ASM='${BN_ASM}' DES_ENC='${DES_ENC}' BF_ENC='${BF_ENC}' CAST_ENC='${CAST_ENC}' RC4_ENC='${RC4_ENC}' RC5_ENC='${RC5_ENC}' SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' MD5_ASM_OBJ='${MD5_ASM_OBJ}' RMD160_ASM_OBJ='${RMD160_ASM_OBJ}' AR='${AR}' PROCESSOR='${PROCESSOR}' PERL='${PERL}' RANLIB='${RANLIB}' EXE_EXT='${EXE_EXT}' all ) || exit 1; \
        else \
                $(MAKE) $$i; \
        fi; \
@@ -250,7 +251,7 @@ link-shared:
 
 build-shared: clean-shared do_$(SHLIB_TARGET) link-shared
 
-do_bsd-gcc-shared: linux-shared
+do_bsd-gcc-shared: do_gnu-shared
 do_linux-shared: do_gnu-shared
 do_gnu-shared:
        libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \
@@ -349,7 +350,7 @@ test:   tests
 
 tests: rehash
        @(cd test && echo "testing..." && \
-       $(MAKE) CC='${CC}' CFLAG='${CFLAG}' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' BN_ASM='${BN_ASM}' DES_ENC='${DES_ENC}' BF_ENC='${BF_ENC}' CAST_ENC='${CAST_ENC}' RC4_ENC='${RC4_ENC}' RC5_ENC='${RC5_ENC}' SDIRS='${SDIRS}' SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' MD5_ASM_OBJ='${MD5_ASM_OBJ}' RMD160_ASM_OBJ='${RMD160_ASM_OBJ}' AR='${AR}' tests );
+       $(MAKE) CC='${CC}' CFLAG='${CFLAG}' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' BN_ASM='${BN_ASM}' DES_ENC='${DES_ENC}' BF_ENC='${BF_ENC}' CAST_ENC='${CAST_ENC}' RC4_ENC='${RC4_ENC}' RC5_ENC='${RC5_ENC}' SDIRS='${SDIRS}' SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' MD5_ASM_OBJ='${MD5_ASM_OBJ}' RMD160_ASM_OBJ='${RMD160_ASM_OBJ}' AR='${AR}' EXE_EXT='${EXE_EXT}' tests );
        @apps/openssl version -a
 
 report:
@@ -440,7 +441,7 @@ install: all install_docs
        do \
        if [ -d "$$i" ]; then \
                (cd $$i; echo "installing $$i..."; \
-               $(MAKE) CC='${CC}' CFLAG='${CFLAG}' INSTALL_PREFIX='${INSTALL_PREFIX}' INSTALLTOP='${INSTALLTOP}' OPENSSLDIR='${OPENSSLDIR}' EX_LIBS='${EX_LIBS}' SDIRS='${SDIRS}' RANLIB='${RANLIB}' install ); \
+               $(MAKE) CC='${CC}' CFLAG='${CFLAG}' INSTALL_PREFIX='${INSTALL_PREFIX}' INSTALLTOP='${INSTALLTOP}' OPENSSLDIR='${OPENSSLDIR}' EX_LIBS='${EX_LIBS}' SDIRS='${SDIRS}' RANLIB='${RANLIB}' EXE_EXT='${EXE_EXT}' install ); \
        fi; \
        done
        @for i in $(LIBS) ;\
index bc703ffd2b5f6aff5ed50c5dcd28400e9154a3a6..dbf4a35e2e6f06ed807a7ed6fccc8b95c632ead4 100644 (file)
@@ -18,6 +18,7 @@ RM=           rm -f
 
 PEX_LIBS=
 EX_LIBS= 
+EXE_EXT= 
 
 CFLAGS= -DMONOLITH $(INCLUDES) $(CFLAG)
 
@@ -32,7 +33,7 @@ PROGRAM= openssl
 
 SCRIPTS=CA.sh CA.pl der_chop
 
-EXE= $(PROGRAM)
+EXE= $(PROGRAM)$(EXE_EXT)
 
 E_EXE= verify asn1pars req dgst dh dhparam enc passwd gendh errstr \
        ca crl rsa rsautl dsa dsaparam \
@@ -77,7 +78,7 @@ top:
 
 all:   exe
 
-exe:   $(EXE)
+exe:   $(PROGRAM)
 
 req: sreq.o $(A_OBJ) $(DLIBCRYPTO)
        $(CC) -o req $(CFLAG) sreq.o $(A_OBJ) $(RAND_OBJ) $(PEX_LIBS) $(LIBCRYPTO) $(EX_LIBS)
index 46bf0768331a72049be81b3d1dd1a96f2c06dd15..a107b8c14a1a227138c6fce00ab569daaa09809d 100644 (file)
@@ -1432,9 +1432,11 @@ static int www_body(char *hostname, int s, unsigned char *context)
                                break;
                                }
 
+#if 0
                        /* append if a directory lookup */
                        if (e[-1] == '/')
                                strcat(p,"index.html");
+#endif
 
                        /* if a directory, do the index thang */
                        if (stat(p,&st_buf) < 0)
@@ -1446,7 +1448,13 @@ static int www_body(char *hostname, int s, unsigned char *context)
                                }
                        if (S_ISDIR(st_buf.st_mode))
                                {
+#if 0 /* must check buffer size */
                                strcat(p,"/index.html");
+#else
+                               BIO_puts(io,text);
+                               BIO_printf(io,"'%s' is a directory\r\n",p);
+                               break;
+#endif
                                }
 
                        if ((file=BIO_new_file(p,"r")) == NULL)
index 8ff7090129ceab311e244cea023e7b8a5325d839..ab48b63eb76eca5007957f638c018ac80cc1fb3a 100644 (file)
@@ -62,7 +62,6 @@
 #ifdef VMS
 #pragma message disable DOLLARID
 #include <lib$routines.h>
-#include <libfisdef.h>
 #include <stsdef.h>
 #include <descrip.h>
 #include <starlet.h>
@@ -260,7 +259,8 @@ void vms_bind_sym(DSO *dso, const char *symname, void **sym)
        {
        DSO_VMS_INTERNAL *ptr;
        int status;
-       int flags = LIB$M_FIS_MIXEDCASE;
+       int flags = (1<<4); /* LIB$M_FIS_MIXEDCASE, but this symbol isn't
+                               defined in VMS older than 7.0 or so */
        struct dsc$descriptor_s symname_dsc;
        *sym = NULL;
 
index 31397b2add7756a2e803e9f612e74cd5cf40ab4f..91a7a8bcb4300625059d7d133411723f51b427ae 100644 (file)
@@ -211,7 +211,7 @@ ascii2ebcdic(void *dest, const void *srce, size_t count)
 }
 
 #else /*CHARSET_EBCDIC*/
-#ifdef PEDANTIC
+#if defined(PEDANTIC) || defined(VMS) || defined(__VMS)
 static void *dummy=&dummy;
 #endif
 #endif
index 1fbbd6c99f90dad4365c559692e7c3eec9c04734..5d67f19b45522a22e7f4146f0589850ca7dd815d 100644 (file)
@@ -264,6 +264,7 @@ static int parse_bag(PKCS12_SAFEBAG *bag, const char *pass, int passlen,
                if (lkey) {
                        *keymatch |= MATCH_CERT;
                        if (cert) *cert = x509;
+                       else X509_free(x509);
                } else {
                        if(ca) sk_X509_push (*ca, x509);
                        else X509_free(x509);
index 012a4b8740772e56241f03013cb97cc0e5a18503..9f52c39ca978970ef65bc0baf0fe0e90e603ac83 100644 (file)
@@ -504,7 +504,10 @@ int ssl3_mac(SSL *ssl, unsigned char *md, int send)
        EVP_DigestFinal( &md_ctx,md,&md_size);
 
        for (i=7; i>=0; i--)
-               if (++seq[i]) break; 
+               {
+               ++seq[i];
+               if (seq[i] != 0) break; 
+               }
 
        return(md_size);
        }
index 0d34357eb474e58238c3c499aa61c4f3e6962527..d10a23af8eb5352e9b1d30d86fd7410689560b43 100644 (file)
@@ -572,7 +572,10 @@ printf("rec=");
 #endif
 
        for (i=7; i>=0; i--)
-               if (++seq[i]) break; 
+               {
+               ++seq[i];
+               if (seq[i] != 0) break; 
+               }
 
 #ifdef TLS_DEBUG
 {unsigned int z; for (z=0; z<md_size; z++) printf("%02X ",md[z]); printf("\n"); }
index f9cd4f27ce2010360a2413ba0c7ab3efa284703d..2cfe3de4106f42e8555009145557190acdd7cc4e 100644 (file)
@@ -192,7 +192,7 @@ test_bn:
        @./$(BNTEST) >tmp.bntest
        @echo quit >>tmp.bntest
        @echo "running bc"
-       @<tmp.bntest sh -c "`sh ./bctest`" | $(PERL) -e '$$i=0; while (<STDIN>) {if (/^test (.*)/) {print STDERR "\nverify $$1";} elsif (!/^0$$/) {die "\nFailed! bc: $$_";} else {print STDERR "."; $$i++;}} print STDERR "\n$$i tests passed\n"'
+       @<tmp.bntest sh -c "`sh ./bctest || true`" | $(PERL) -e '$$i=0; while (<STDIN>) {if (/^test (.*)/) {print STDERR "\nverify $$1";} elsif (!/^0$$/) {die "\nFailed! bc: $$_";} else {print STDERR "."; $$i++;}} print STDERR "\n$$i tests passed\n"'
        @echo 'test a^b%c implementations'
        ./$(EXPTEST)
 
index baec7c14ff4308a3062996597f0c27a1dbef54d0..26db8999d8c8bf9173c99f5e29b10cfd87bdd3a5 100644 (file)
@@ -117,7 +117,12 @@ sub link_hash_cert {
                }
                $hash .= ".$suffix";
                print "$fname => $hash\n";
-               symlink $fname, $hash;
+               $symlink_exists=eval {symlink("",""); 1};
+               if ($symlink_exists) {
+                       symlink $fname, $hash;
+               } else {
+                       system ("cp", $fname, $hash);
+               }
                $hashlist{$hash} = $fprint;
 }
 
@@ -142,7 +147,12 @@ sub link_hash_crl {
                }
                $hash .= ".r$suffix";
                print "$fname => $hash\n";
-               symlink $fname, $hash;
+               $symlink_exists=eval {symlink("",""); 1};
+               if ($symlink_exists) {
+                       symlink $fname, $hash;
+               } else {
+                       system ("cp", $fname, $hash);
+               }
                $hashlist{$hash} = $fprint;
 }
 
index d7b997ada72371edeac5009405c0d652b0038840..9e9c9a514677af6385dbe8e9d15f02e65ffe72a4 100755 (executable)
@@ -48,8 +48,13 @@ foreach $dirname (@from_path) {
 my $to = join('/', @to_path);
 
 my $file;
+$symlink_exists=eval {symlink("",""); 1};
 foreach $file (@files) {
     my $err = "";
-    symlink("$to/$file", "$from/$file") or $err = " [$!]";
+    if ($symlink_exists) {
+       symlink("$to/$file", "$from/$file") or $err = " [$!]";
+    } else {
+       system ("cp", "$file", "$from/$file") and $err = " [$!]";
+    }
     print $file . " => $from/$file$err\n";
 }