summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Levitte <levitte@openssl.org>2004-07-12 12:39:52 +0000
committerRichard Levitte <levitte@openssl.org>2004-07-12 12:39:52 +0000
commitc4798d102050c10950eb69a93eacff03f8202dfe (patch)
tree13391095c98c3978c2016509edeb44717e8ded27
parentc16750dcecc668f1a195e43f3f63752ae457bc39 (diff)
downloadopenssl-new-c4798d102050c10950eb69a93eacff03f8202dfe.tar.gz
Recent changes from HEAD.
-rw-r--r--CHANGES3
-rwxr-xr-xConfigure27
-rw-r--r--Makefile.org6
-rw-r--r--README16
-rw-r--r--TABLE139
-rw-r--r--apps/Makefile.ssl10
-rw-r--r--apps/asn1pars.c10
-rw-r--r--apps/speed.c7
-rwxr-xr-xconfig23
-rw-r--r--crypto/Makefile.ssl8
-rw-r--r--crypto/asn1/p5_pbev2.c8
-rw-r--r--crypto/bn/asm/ia64.S217
-rw-r--r--crypto/bn/bn.h1
-rw-r--r--crypto/bn/bn_err.c1
-rw-r--r--crypto/bn/bn_gf2m.c6
-rw-r--r--crypto/crypto-lib.com4
-rw-r--r--crypto/ec/ec2_smpt.c17
-rw-r--r--crypto/ec/ec_curve.c186
-rw-r--r--crypto/ec/ecp_smpl.c7
-rw-r--r--crypto/evp/evp_lib.c4
-rw-r--r--crypto/evp/evp_test.c9
-rw-r--r--crypto/o_str.c8
-rw-r--r--crypto/o_str.h2
-rw-r--r--crypto/pem/pem.h2
-rw-r--r--crypto/rand/rand_egd.c2
-rw-r--r--crypto/rc4/Makefile.ssl2
-rw-r--r--crypto/sha/asm/sha512-sse2.pl45
-rw-r--r--crypto/symhacks.h2
-rw-r--r--crypto/x509v3/ext_dat.h4
-rw-r--r--crypto/x509v3/pcy_node.c1
-rw-r--r--crypto/x509v3/v3_int.c7
-rw-r--r--doc/crypto/BN_num_bytes.pod26
-rw-r--r--e_os2.h5
-rwxr-xr-xmakevms.com3
-rw-r--r--ssl/Makefile.ssl40
-rw-r--r--ssl/ssl_cert.c127
-rw-r--r--test/Makefile.ssl150
-rwxr-xr-xutil/libeay.num2
-rwxr-xr-xutil/mkdef.pl1
-rwxr-xr-xutil/ssleay.num2
40 files changed, 629 insertions, 511 deletions
diff --git a/CHANGES b/CHANGES
index 41a087f28d..49630ea76e 100644
--- a/CHANGES
+++ b/CHANGES
@@ -712,6 +712,9 @@
Changes between 0.9.7d and 0.9.7e [XX xxx XXXX]
+ *) Add Delta CRL to the extension code.
+ [Steve Henson]
+
*) Various fixes to s3_pkt.c so alerts are sent properly.
[David Holmes <d.holmes@f5.com>]
diff --git a/Configure b/Configure
index fe635ddfac..acee08d984 100755
--- a/Configure
+++ b/Configure
@@ -142,7 +142,7 @@ my %table=(
"debug-rse","cc:-DTERMIOS -DL_ENDIAN -pipe -O -g -ggdb3 -Wall::(unknown):::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}",
"debug-bodo", "gcc:-DL_ENDIAN -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DBIO_PAIR_DEBUG -DPEDANTIC -g -m486 -pedantic -Wshadow -Wall::-D_REENTRANT:::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}",
"debug-ulf", "gcc:-DTERMIOS -DL_ENDIAN -march=i486 -Wall -DBN_DEBUG -DBN_DEBUG_RAND -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DOPENSSL_NO_ASM -g -Wformat -Wshadow -Wmissing-prototypes -Wmissing-declarations:::CYGWIN32::::win32:cygwin-shared:::.dll",
-"debug-steve", "gcc:-DL_ENDIAN -DREF_CHECK -DCONF_DEBUG -DDEBUG_SAFESTACK -DCRYPTO_MDEBUG_ALL -DPEDANTIC -g -mcpu=i486 -pedantic -Wall -Werror -Wshadow -pipe::-D_REENTRANT::-rdynamic -ldl:${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared",
+"debug-steve", "gcc:-DL_ENDIAN -DREF_CHECK -DCONF_DEBUG -DDEBUG_SAFESTACK -DCRYPTO_MDEBUG_ALL -DPEDANTIC -g -mcpu=i486 -pedantic -Wno-long-long -Wall -Werror -Wshadow -pipe::-D_REENTRANT::-rdynamic -ldl:${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared",
"debug-steve-linux-pseudo64", "gcc:-DL_ENDIAN -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DDEBUG_SAFESTACK -DCRYPTO_MDEBUG_ALL -DOPENSSL_NO_ASM -g -mcpu=i486 -Wall -Werror -Wshadow -pipe::-D_REENTRANT::-rdynamic -ldl:SIXTY_FOUR_BIT::dlfcn:linux-shared",
"debug-levitte-linux-elf","gcc:-DLEVITTE_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_DEBUG -DBN_DEBUG_RAND -DCRYPTO_MDEBUG -DENGINE_CONF_DEBUG -DL_ENDIAN -DTERMIO -D_POSIX_SOURCE -DPEDANTIC -ggdb -g3 -mcpu=i486 -pedantic -ansi -Wall -Wshadow -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wno-long-long -Wundef -Wconversion -pipe::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
"debug-levitte-linux-noasm","gcc:-DLEVITTE_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_DEBUG -DBN_DEBUG_RAND -DCRYPTO_MDEBUG -DENGINE_CONF_DEBUG -DOPENSSL_NO_ASM -DL_ENDIAN -DTERMIO -D_POSIX_SOURCE -DPEDANTIC -ggdb -g3 -mcpu=i486 -pedantic -ansi -Wall -Wshadow -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wno-long-long -Wundef -Wconversion -pipe::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}::::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
@@ -155,6 +155,12 @@ my %table=(
"gcc", "gcc:-O3::(unknown):::BN_LLONG:::",
"cc", "cc:-O::(unknown)::::::",
+####VOS Configurations
+"vos-gcc","gcc:-b hppa1.1-stratus-vos -O3 -Wall -Wuninitialized -D_POSIX_C_SOURCE=200112L -D_BSD::(unknown):VOS:-Wl,-map:BN_LLONG:::::::::::::.so:",
+"debug-vos-gcc","gcc:-b hppa1.1-stratus-vos -O0 -g -Wall -D_POSIX_C_SOURCE=200112L -D_BSD -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG::(unknown):VOS:-Wl,-map:BN_LLONG:::::::::::::.so:",
+"vos-vcc","vcc:-b i386-stratus-vos -O3 -D_POSIX_C_SOURCE=200112L -D_BSD::(unknown):VOS:-Wl,-map::::::::::::::.so:",
+"debug-vos-vcc","vcc:-b i386-stratus-vos -O0 -g -D_POSIX_C_SOURCE=200112L -D_BSD -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG::(unknown):VOS:-Wl,-map::::::::::::::.so:",
+
#### Solaris x86 with GNU C setups
# -DOPENSSL_NO_INLINE_ASM switches off inline assembler. We have to do it
# here because whenever GNU C instantiates an assembler template it
@@ -385,7 +391,7 @@ my %table=(
"debug-linux-pentium","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -g -mcpu=pentium -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn",
"debug-linux-ppro","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -g -mcpu=pentiumpro -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn",
"debug-linux-elf","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -g -m486 -Wall::-D_REENTRANT::-lefence -ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-"debug-linux-elf-noefence","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -g -m486 -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn",
+"debug-linux-elf-noefence","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -g -m486 -Wall::-D_REENTRANT::-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
"linux-aout", "gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -m486 -Wall::(unknown):::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_out_asm}",
"linux-mipsel", "gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG RC2_CHAR RC4_INDEX DES_INT DES_UNROLL DES_RISC2::::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
"linux-mips", "gcc:-DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG RC2_CHAR RC4_INDEX DES_INT DES_UNROLL DES_RISC2::::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
@@ -396,7 +402,7 @@ my %table=(
"linux-s390x", "gcc:-DB_ENDIAN -DTERMIO -DNO_ASM -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG::::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
"linux-ia64", "gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK RC4_CHAR:asm/ia64.o:::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
"linux-ia64-ecc", "ecc:-DL_ENDIAN -DTERMIO -O2 -Wall::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK RC4_CHAR:asm/ia64.o:::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-"linux-x86_64", "gcc:-m64 -DL_ENDIAN -DTERMIO -O3 -Wall -DMD32_REG_T=int::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK RC4_CHAR BF_PTR2 DES_INT DES_UNROLL:asm/x86_64-gcc.o:::::::::dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+"linux-x86_64", "gcc:-m64 -DL_ENDIAN -DTERMIO -O3 -Wall -DMD32_REG_T=int::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG RC4_CHUNK BF_PTR2 DES_INT DES_UNROLL:asm/x86_64-gcc.o::::::asm/rc4-amd64.o:::dlfcn:linux-shared:-fPIC:-m64:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
"NetBSD-sparc", "gcc:-DTERMIOS -O3 -fomit-frame-pointer -mv8 -Wall -DB_ENDIAN::(unknown):::BN_LLONG MD2_CHAR RC4_INDEX DES_UNROLL::::::::::dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
"NetBSD-m68", "gcc:-DTERMIOS -O3 -fomit-frame-pointer -Wall -DB_ENDIAN::(unknown):::BN_LLONG MD2_CHAR RC4_INDEX DES_UNROLL::::::::::dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
"NetBSD-x86", "gcc:-DTERMIOS -O3 -fomit-frame-pointer -m486 -Wall::(unknown):::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}::::::::::dlfcn:bsd-gcc-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
@@ -654,10 +660,6 @@ my $no_sha=0;
my $no_rsa=0;
my $no_dh=0;
-$default_ranlib= &which("ranlib") or $default_ranlib="true";
-$perl=$ENV{'PERL'} or $perl=&which("perl5") or $perl=&which("perl")
- or $perl="perl";
-
&usage if ($#ARGV < 0);
my $flags;
@@ -954,9 +956,14 @@ my $IsMK1MF=scalar grep /^$target$/,@MK1MF_Builds;
$exe_ext=".exe" if ($target eq "Cygwin");
$exe_ext=".exe" if ($target eq "DJGPP");
+$exe_ext=".pm" if ($target eq "vos-gcc" or $target eq "debug-vos-gcc" or $target eq "vos-vcc" or $target eq "debug-vos-vcc");
$openssldir="/usr/local/ssl" if ($openssldir eq "" and $prefix eq "");
$prefix=$openssldir if $prefix eq "";
+$default_ranlib= &which("ranlib") or $default_ranlib="true";
+$perl=$ENV{'PERL'} or $perl=&which("perl5") or $perl=&which("perl")
+ or $perl="perl";
+
chop $openssldir if $openssldir =~ /\/$/;
chop $prefix if $prefix =~ /\/$/;
@@ -1693,10 +1700,10 @@ sub which
my $path;
foreach $path (split /:/, $ENV{PATH})
{
- if (-f "$path/$name" and -x _)
+ if (-f "$path/$name$exe_ext" and -x _)
{
- return "$path/$name" unless ($name eq "perl" and
- system("$path/$name -e " . '\'exit($]<5.0);\''));
+ return "$path/$name$exe_ext" unless ($name eq "perl" and
+ system("$path/$name$exe_ext -e " . '\'exit($]<5.0);\''));
}
}
}
diff --git a/Makefile.org b/Makefile.org
index b64bf33da1..96b9ff885a 100644
--- a/Makefile.org
+++ b/Makefile.org
@@ -377,7 +377,7 @@ dclean:
rehash: rehash.time
rehash.time: certs
- @(OPENSSL="`pwd`/apps/openssl"; OPENSSL_DEBUG_MEMORY=on; \
+ @(OPENSSL="`pwd`/apps/openssl$(EXE_EXT)"; OPENSSL_DEBUG_MEMORY=on; \
export OPENSSL OPENSSL_DEBUG_MEMORY; \
LD_LIBRARY_PATH="`pwd`:$$LD_LIBRARY_PATH"; \
DYLD_LIBRARY_PATH="`pwd`:$$DYLD_LIBRARY_PATH"; \
@@ -493,7 +493,9 @@ dist:
dist_pem_h:
(cd crypto/pem; $(MAKE) CC='${CC}' SDIRS='${SDIRS}' CFLAG='${CFLAG}' pem.h; $(MAKE) clean)
-install: all install_docs
+install: all install_docs install_sw
+
+install_sw:
@$(PERL) $(TOP)/util/mkdir-p.pl $(INSTALL_PREFIX)$(INSTALLTOP)/bin \
$(INSTALL_PREFIX)$(INSTALLTOP)/lib \
$(INSTALL_PREFIX)$(INSTALLTOP)/lib/engines \
diff --git a/README b/README
index 0c242c7ef2..2ab8488bf3 100644
--- a/README
+++ b/README
@@ -173,11 +173,17 @@
textual explanation of what your patch does.
Note: For legal reasons, contributions from the US can be accepted only
- if a TSA notification and a copy of the patch is sent to crypt@bis.doc.gov;
- see http://www.bis.doc.gov/Encryption/PubAvailEncSourceCodeNofify.html [sic]
- and http://w3.access.gpo.gov/bis/ear/pdf/740.pdf (EAR Section 740.13(e)).
-
- The preferred format for changes is "diff -u" output. You might
+ if a TSU notification and a copy of the patch are sent to crypt@bis.doc.gov
+ (formerly BXA) with a copy to the ENC Encryption Request Coordinator;
+ please take some time to look at
+ http://www.bis.doc.gov/Encryption/PubAvailEncSourceCodeNofify.html [sic]
+ and
+ http://w3.access.gpo.gov/bis/ear/pdf/740.pdf (EAR Section 740.13(e))
+ for the details. If "your encryption source code is too large to serve as
+ an email attachment", they are glad to receive it by fax instead; hope you
+ have a cheap long-distance plan.
+
+ Our preferred format for changes is "diff -u" output. You might
generate it like this:
# cd openssl-work
diff --git a/TABLE b/TABLE
index a3f2fd89e5..d6589c95c8 100644
--- a/TABLE
+++ b/TABLE
@@ -1818,10 +1818,10 @@ $rc4_obj = asm/rx86-elf.o
$rmd160_obj = asm/rm86-elf.o
$rc5_obj = asm/r586-elf.o
$dso_scheme = dlfcn
-$shared_target=
-$shared_cflag =
+$shared_target= linux-shared
+$shared_cflag = -fPIC
$shared_ldflag =
-$shared_extension =
+$shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR)
$ranlib =
$arflags =
@@ -2002,7 +2002,7 @@ $arflags =
*** debug-steve
$cc = gcc
-$cflags = -DL_ENDIAN -DREF_CHECK -DCONF_DEBUG -DDEBUG_SAFESTACK -DCRYPTO_MDEBUG_ALL -DPEDANTIC -g -mcpu=i486 -pedantic -Wall -Werror -Wshadow -pipe
+$cflags = -DL_ENDIAN -DREF_CHECK -DCONF_DEBUG -DDEBUG_SAFESTACK -DCRYPTO_MDEBUG_ALL -DPEDANTIC -g -mcpu=i486 -pedantic -Wno-long-long -Wall -Werror -Wshadow -pipe
$unistd =
$thread_cflag = -D_REENTRANT
$sys_id =
@@ -2075,6 +2075,56 @@ $shared_extension =
$ranlib =
$arflags =
+*** debug-vos-gcc
+$cc = gcc
+$cflags = -b hppa1.1-stratus-vos -O0 -g -Wall -D_POSIX_C_SOURCE=200112L -D_BSD -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG
+$unistd =
+$thread_cflag = (unknown)
+$sys_id = VOS
+$lflags = -Wl,-map
+$bn_ops = BN_LLONG
+$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 = .so
+$shared_extension =
+$ranlib =
+$arflags =
+
+*** debug-vos-vcc
+$cc = vcc
+$cflags = -b i386-stratus-vos -O0 -g -D_POSIX_C_SOURCE=200112L -D_BSD -DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG -DCRYPTO_MDEBUG
+$unistd =
+$thread_cflag = (unknown)
+$sys_id = VOS
+$lflags = -Wl,-map
+$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 = .so
+$shared_extension =
+$ranlib =
+$arflags =
+
*** dgux-R3-gcc
$cc = gcc
$cflags = -O3 -fomit-frame-pointer
@@ -3081,7 +3131,7 @@ $cflags = -DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -Wall
$unistd =
$thread_cflag = -D_REENTRANT
$sys_id =
-$lflags =
+$lflags = -ldl
$bn_ops = BN_LLONG
$bn_obj =
$des_obj =
@@ -3532,14 +3582,14 @@ $unistd =
$thread_cflag = -D_REENTRANT
$sys_id =
$lflags = -ldl
-$bn_ops = SIXTY_FOUR_BIT_LONG RC4_CHUNK RC4_CHAR BF_PTR2 DES_INT DES_UNROLL
+$bn_ops = SIXTY_FOUR_BIT_LONG RC4_CHUNK BF_PTR2 DES_INT DES_UNROLL
$bn_obj = asm/x86_64-gcc.o
$des_obj =
$bf_obj =
$md5_obj =
$sha1_obj =
$cast_obj =
-$rc4_obj =
+$rc4_obj = asm/rc4-amd64.o
$rmd160_obj =
$rc5_obj =
$dso_scheme = dlfcn
@@ -3675,6 +3725,31 @@ $shared_extension =
$ranlib =
$arflags =
+*** netware-libc-gcc
+$cc = i586-netware-gcc
+$cflags = -nostdinc -I/ndk/libc/include -I/ndk/libc/include/winsock -DL_ENDIAN -DNETWARE_LIBC -DOPENSSL_SYSNAME_NETWARE -DTERMIO -O2 -Wall
+$unistd =
+$thread_cflag =
+$sys_id =
+$lflags = RC4_INDEX MD2_INT
+$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 =
+$arflags =
+
*** newsos4-gcc
$cc = gcc
$cflags = -O -DB_ENDIAN
@@ -4425,6 +4500,56 @@ $shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR)
$ranlib =
$arflags =
+*** vos-gcc
+$cc = gcc
+$cflags = -b hppa1.1-stratus-vos -O3 -Wall -Wuninitialized -D_POSIX_C_SOURCE=200112L -D_BSD
+$unistd =
+$thread_cflag = (unknown)
+$sys_id = VOS
+$lflags = -Wl,-map
+$bn_ops = BN_LLONG
+$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 = .so
+$shared_extension =
+$ranlib =
+$arflags =
+
+*** vos-vcc
+$cc = vcc
+$cflags = -b i386-stratus-vos -O3 -D_POSIX_C_SOURCE=200112L -D_BSD
+$unistd =
+$thread_cflag = (unknown)
+$sys_id = VOS
+$lflags = -Wl,-map
+$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 = .so
+$shared_extension =
+$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
diff --git a/apps/Makefile.ssl b/apps/Makefile.ssl
index 90225904be..3d75664660 100644
--- a/apps/Makefile.ssl
+++ b/apps/Makefile.ssl
@@ -85,7 +85,7 @@ top:
all: exe
-exe: $(PROGRAM)
+exe: $(EXE)
req: sreq.o $(A_OBJ) $(DLIBCRYPTO)
shlib_target=; if [ -n "$(SHARED_LIBS)" ]; then \
@@ -151,8 +151,8 @@ $(DLIBSSL):
$(DLIBCRYPTO):
(cd ..; $(MAKE) DIRS=crypto all)
-$(PROGRAM): progs.h $(E_OBJ) $(PROGRAM).o $(DLIBCRYPTO) $(DLIBSSL)
- $(RM) $(PROGRAM)
+$(EXE): progs.h $(E_OBJ) $(PROGRAM).o $(DLIBCRYPTO) $(DLIBSSL)
+ $(RM) $(EXE)
shlib_target=; if [ -n "$(SHARED_LIBS)" ]; then \
shlib_target="$(SHLIB_TARGET)"; \
fi; \
@@ -162,12 +162,12 @@ $(PROGRAM): progs.h $(E_OBJ) $(PROGRAM).o $(DLIBCRYPTO) $(DLIBSSL)
LIBRARIES="$(LIBSSL) $(LIBKRB5) $(LIBCRYPTO)" ; \
fi; \
$(NEWMAKE) -f $(TOP)/Makefile.shared \
- APPNAME=$(PROGRAM) LDFLAGS="$(CFLAG)" \
+ APPNAME=$(EXE) LDFLAGS="$(CFLAG)" \
OBJECTS="$(PROGRAM).o $(E_OBJ)" \
LIBDEPS="$(PEX_LIBS) $$LIBRARIES $(EX_LIBS)" \
LIBRPATH=$(INSTALLTOP)/lib \
link_app.$${shlib_target}
- -(cd ..; OPENSSL="`pwd`/apps/openssl"; export OPENSSL; \
+ -(cd ..; OPENSSL="`pwd`/apps/$(EXE)"; export OPENSSL; \
LD_LIBRARY_PATH="`pwd`:$$LD_LIBRARY_PATH"; \
DYLD_LIBRARY_PATH="`pwd`:$$DYLD_LIBRARY_PATH"; \
SHLIB_PATH="`pwd`:$$SHLIB_PATH"; \
diff --git a/apps/asn1pars.c b/apps/asn1pars.c
index 305db15903..f1d8bc8b98 100644
--- a/apps/asn1pars.c
+++ b/apps/asn1pars.c
@@ -309,6 +309,7 @@ bad:
for (i=0; i<sk_num(osk); i++)
{
ASN1_TYPE *atmp;
+ int typ;
j=atoi(sk_value(osk,i));
if (j == 0)
{
@@ -327,6 +328,15 @@ bad:
ERR_print_errors(bio_err);
goto end;
}
+ typ = ASN1_TYPE_get(at);
+ if ((typ == V_ASN1_OBJECT)
+ || (typ == V_ASN1_NULL))
+ {
+ BIO_printf(bio_err, "Can't parse %s type\n",
+ typ == V_ASN1_NULL ? "NULL" : "OBJECT");
+ ERR_print_errors(bio_err);
+ goto end;
+ }
/* hmm... this is a little evil but it works */
tmpbuf=at->value.asn1_string->data;
tmplen=at->value.asn1_string->length;
diff --git a/apps/speed.c b/apps/speed.c
index c398009be5..a3b0833b69 100644
--- a/apps/speed.c
+++ b/apps/speed.c
@@ -253,11 +253,7 @@
#endif
#undef BUFSIZE
-/* BUFSIZE needs to be one cipherblock larger than the largest number in the
- lengths array (see below), to make space for padding when doing EVP tests.
- 1024 extra bytes may seem much, but hey, it doesn't hurt!
- -- Richard Levitte */
-#define BUFSIZE ((long)1024*9+1)
+#define BUFSIZE ((long)1024*8+1)
int run=0;
static char ftime_used = 0, times_used = 0, gettimeofday_used = 0, getrusage_used = 0;
@@ -1812,6 +1808,7 @@ int MAIN(int argc, char **argv)
EVP_DecryptInit_ex(&ctx,evp_cipher,NULL,key16,iv);
else
EVP_EncryptInit_ex(&ctx,evp_cipher,NULL,key16,iv);
+ EVP_CIPHER_CTX_set_padding(&ctx, 0);
Time_F(START);
if(decrypt)
diff --git a/config b/config
index 29fc9cd4e0..d69ffaf355 100755
--- a/config
+++ b/config
@@ -23,6 +23,7 @@
PREFIX=""
SUFFIX=""
TEST="false"
+EXE=""
# pick up any command line args to config
for i
@@ -284,6 +285,14 @@ case "${SYSTEM}:${RELEASE}:${VERSION}:${MACHINE}" in
echo "${MACHINE}-whatever-sysv4"; exit 0
;;
+ VOS:*:*:i786)
+ echo "i386-stratus-vos"; exit 0
+ ;;
+
+ VOS:*:*:*)
+ echo "hppa1.1-stratus-vos"; exit 0
+ ;;
+
*:4*:R4*:m88k)
echo "${MACHINE}-whatever-sysv4"; exit 0
;;
@@ -672,6 +681,10 @@ EOF
*-*-UnixWare21*) OUT="unixware-2.1" ;;
*-*-Unixware20*) OUT="unixware-2.0" ;;
*-*-Unixware21*) OUT="unixware-2.1" ;;
+ *-*-vos)
+ options="$options no-threads no-shared no-asm no-dso"
+ EXE=".pm"
+ OUT="vos-$CC" ;;
BS2000-siemens-sysv4) OUT="BS2000-OSD" ;;
RM*-siemens-sysv4) OUT="ReliantUNIX" ;;
*-siemens-sysv4) OUT="SINIX" ;;
@@ -819,8 +832,8 @@ fi
if [ ".$PERL" = . ] ; then
for i in . `echo $PATH | sed 's/:/ /g'`; do
- if [ -f "$i/perl5" ] ; then
- PERL="$i/perl5"
+ if [ -f "$i/perl5$EXE" ] ; then
+ PERL="$i/perl5$EXE"
break;
fi;
done
@@ -828,9 +841,9 @@ fi
if [ ".$PERL" = . ] ; then
for i in . `echo $PATH | sed 's/:/ /g'`; do
- if [ -f "$i/perl" ] ; then
- if "$i/perl" -e 'exit($]<5.0)'; then
- PERL="$i/perl"
+ if [ -f "$i/perl$EXE" ] ; then
+ if "$i/perl$EXE" -e 'exit($]<5.0)'; then
+ PERL="$i/perl$EXE"
break;
fi;
fi;
diff --git a/crypto/Makefile.ssl b/crypto/Makefile.ssl
index 88dec01917..45fd130446 100644
--- a/crypto/Makefile.ssl
+++ b/crypto/Makefile.ssl
@@ -38,14 +38,14 @@ GENERAL=Makefile README crypto-lib.com install.com
LIB= $(TOP)/libcrypto.a
SHARED_LIB= libcrypto$(SHLIB_EXT)
-LIBSRC= cryptlib.c mem.c mem_clr.c mem_dbg.c cversion.c ex_data.c tmdiff.c cpt_err.c ebcdic.c uid.c o_time.c o_str.c
-LIBOBJ= cryptlib.o mem.o mem_clr.o mem_dbg.o cversion.o ex_data.o tmdiff.o cpt_err.o ebcdic.o uid.o o_time.o o_str.o
+LIBSRC= cryptlib.c mem.c mem_clr.c mem_dbg.c cversion.c ex_data.c tmdiff.c cpt_err.c ebcdic.c uid.c o_time.c o_str.c o_dir.c
+LIBOBJ= cryptlib.o mem.o mem_clr.o mem_dbg.o cversion.o ex_data.o tmdiff.o cpt_err.o ebcdic.o uid.o o_time.o o_str.o o_dir.o
SRC= $(LIBSRC)
EXHEADER= crypto.h tmdiff.h opensslv.h opensslconf.h ebcdic.h symhacks.h \
ossl_typ.h
-HEADER= cryptlib.h buildinf.h md32_common.h o_time.h o_str.h $(EXHEADER)
+HEADER= cryptlib.h buildinf.h md32_common.h o_time.h o_str.h o_dir.h $(EXHEADER)
ALL= $(GENERAL) $(SRC) $(HEADER)
@@ -214,6 +214,8 @@ mem_dbg.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
mem_dbg.o: ../include/openssl/ossl_typ.h ../include/openssl/safestack.h
mem_dbg.o: ../include/openssl/stack.h ../include/openssl/symhacks.h cryptlib.h
mem_dbg.o: mem_dbg.c
+o_dir.o: ../e_os.h ../include/openssl/e_os2.h ../include/openssl/opensslconf.h
+o_dir.o: LPdir_unix.c o_dir.c o_dir.h
o_str.o: ../include/openssl/e_os2.h ../include/openssl/opensslconf.h o_str.c
o_str.o: o_str.h
o_time.o: ../include/openssl/e_os2.h ../include/openssl/opensslconf.h o_time.c
diff --git a/crypto/asn1/p5_pbev2.c b/crypto/asn1/p5_pbev2.c
index 91e1c8987d..1aff49570a 100644
--- a/crypto/asn1/p5_pbev2.c
+++ b/crypto/asn1/p5_pbev2.c
@@ -1,6 +1,6 @@
/* p5_pbev2.c */
/* Written by Dr Stephen N Henson (shenson@bigfoot.com) for the OpenSSL
- * project 1999.
+ * project 1999-2004.
*/
/* ====================================================================
* Copyright (c) 1999 The OpenSSL Project. All rights reserved.
@@ -113,8 +113,9 @@ X509_ALGOR *PKCS5_pbe2_set(const EVP_CIPHER *cipher, int iter,
if(!(scheme->parameter = ASN1_TYPE_new())) goto merr;
/* Create random IV */
- if (RAND_pseudo_bytes(iv, EVP_CIPHER_iv_length(cipher)) < 0)
- goto err;
+ if (EVP_CIPHER_iv_length(cipher) &&
+ RAND_pseudo_bytes(iv, EVP_CIPHER_iv_length(cipher)) < 0)
+ goto err;
EVP_CIPHER_CTX_init(&ctx);
@@ -123,6 +124,7 @@ X509_ALGOR *PKCS5_pbe2_set(const EVP_CIPHER *cipher, int iter,
if(EVP_CIPHER_param_to_asn1(&ctx, scheme->parameter) < 0) {
ASN1err(ASN1_F_PKCS5_PBE2_SET,
ASN1_R_ERROR_SETTING_CIPHER_PARAMS);
+ EVP_CIPHER_CTX_cleanup(&ctx);
goto err;
}
EVP_CIPHER_CTX_cleanup(&ctx);
diff --git a/crypto/bn/asm/ia64.S b/crypto/bn/asm/ia64.S
index 7dfda85566..7b82b820e6 100644
--- a/crypto/bn/asm/ia64.S
+++ b/crypto/bn/asm/ia64.S
@@ -1,6 +1,6 @@
.explicit
.text
-.ident "ia64.S, Version 2.0"
+.ident "ia64.S, Version 2.1"
.ident "IA-64 ISA artwork by Andy Polyakov <appro@fy.chalmers.se>"
//
@@ -35,7 +35,7 @@
// What does it mean? You might ratiocinate that the original code
// should run just faster... Because sum of latencies is smaller...
// Wrong! Note that getf latency increased. This means that if a loop is
-// scheduled for lower latency (and they are), then it will suffer from
+// scheduled for lower latency (as they were), then it will suffer from
// stall condition and the code will therefore turn anti-scalable, e.g.
// original bn_mul_words spun at 5*n or 2.5 times slower than expected
// on Itanium2! What to do? Reschedule loops for Itanium2? But then
@@ -145,6 +145,12 @@
// -Drum=nop.m in command line.
//
+#if defined(_HPUX_SOURCE) && !defined(_LP64)
+#define ADDP addp4
+#else
+#define ADDP add
+#endif
+
#if 1
//
// bn_[add|sub]_words routines.
@@ -178,27 +184,12 @@ bn_add_words:
brp.loop.imp .L_bn_add_words_ctop,.L_bn_add_words_cend-16
}
.body
-{ .mib;
-#if defined(_HPUX_SOURCE) && defined(_ILP32)
- addp4 r14=0,r32 // rp
-#else
- mov r14=r32 // rp
-#endif
+{ .mib; ADDP r14=0,r32 // rp
mov r9=pr };;
-{ .mii;
-#if defined(_HPUX_SOURCE) && defined(_ILP32)
- addp4 r15=0,r33 // ap
-#else
- mov r15=r33 // ap
-#endif
+{ .mii; ADDP r15=0,r33 // ap
mov ar.lc=r10
mov ar.ec=6 }
-{ .mib;
-#if defined(_HPUX_SOURCE) && defined(_ILP32)
- addp4 r16=0,r34 // bp
-#else
- mov r16=r34 // bp
-#endif
+{ .mib; ADDP r16=0,r34 // bp
mov pr.rot=1<<16 };;
.L_bn_add_words_ctop:
@@ -246,27 +237,12 @@ bn_sub_words:
brp.loop.imp .L_bn_sub_words_ctop,.L_bn_sub_words_cend-16
}
.body
-{ .mib;
-#if defined(_HPUX_SOURCE) && defined(_ILP32)
- addp4 r14=0,r32 // rp
-#else
- mov r14=r32 // rp
-#endif
+{ .mib; ADDP r14=0,r32 // rp
mov r9=pr };;
-{ .mii;
-#if defined(_HPUX_SOURCE) && defined(_ILP32)
- addp4 r15=0,r33 // ap
-#else
- mov r15=r33 // ap
-#endif
+{ .mii; ADDP r15=0,r33 // ap
mov ar.lc=r10
mov ar.ec=6 }
-{ .mib;
-#if defined(_HPUX_SOURCE) && defined(_ILP32)
- addp4 r16=0,r34 // bp
-#else
- mov r16=r34 // bp
-#endif
+{ .mib; ADDP r16=0,r34 // bp
mov pr.rot=1<<16 };;
.L_bn_sub_words_ctop:
@@ -332,16 +308,10 @@ bn_mul_words:
#ifndef XMA_TEMPTATION
-{ .mii;
-#if defined(_HPUX_SOURCE) && defined(_ILP32)
- addp4 r14=0,r32 // rp
- addp4 r15=0,r33 // ap
-#else
- mov r14=r32 // rp
- mov r15=r33 // ap
-#endif
+{ .mmi; ADDP r14=0,r32 // rp
+ ADDP r15=0,r33 // ap
mov ar.lc=r10 }
-{ .mii; mov r40=0 // serves as r35 at first (p27)
+{ .mmi; mov r40=0 // serves as r35 at first (p27)
mov ar.ec=13 };;
// This loop spins in 2*(n+12) ticks. It's scheduled for data in Itanium
@@ -424,89 +394,64 @@ bn_mul_words:
.global bn_mul_add_words#
.proc bn_mul_add_words#
.align 64
-//.skip 0 // makes the loop split at 64-byte boundary
+.skip 48 // makes the loop body aligned at 64-byte boundary
bn_mul_add_words:
.prologue
.fframe 0
.save ar.pfs,r2
-{ .mii; alloc r2=ar.pfs,4,12,0,16
- cmp4.le p6,p0=r34,r0 };;
-{ .mfb; mov r8=r0 // return value
-(p6) br.ret.spnt.many b0 };;
-
.save ar.lc,r3
-{ .mii; sub r10=r34,r0,1
- mov r3=ar.lc
- mov r9=pr };;
+ .save pr,r9
+{ .mmi; alloc r2=ar.pfs,4,4,0,8
+ cmp4.le p6,p0=r34,r0
+ mov r3=ar.lc };;
+{ .mib; mov r8=r0 // return value
+ sub r10=r34,r0,1
+(p6) br.ret.spnt.many b0 };;
.body
-{ .mib; setf.sig f8=r35 // w
- mov pr.rot=0x800001<<16
- // ------^----- serves as (p50) at first (p27)
+{ .mib; setf.sig f8=r35 // w
+ mov r9=pr
brp.loop.imp .L_bn_mul_add_words_ctop,.L_bn_mul_add_words_cend-16
}
-{ .mii;
-#if defined(_HPUX_SOURCE) && defined(_ILP32)
- addp4 r14=0,r32 // rp
- addp4 r15=0,r33 // ap
-#else
- mov r14=r32 // rp
- mov r15=r33 // ap
-#endif
+{ .mmi; ADDP r14=0,r32 // rp
+ ADDP r15=0,r33 // ap
mov ar.lc=r10 }
-{ .mii; mov r40=0 // serves as r35 at first (p27)
-#if defined(_HPUX_SOURCE) && defined(_ILP32)
- addp4 r18=0,r32 // rp copy
-#else
- mov r18=r32 // rp copy
-#endif
- mov ar.ec=15 };;
-
-// This loop spins in 3*(n+14) ticks on Itanium and should spin in
-// 2*(n+14) on "wider" IA-64 implementations (to be verified with new
-// µ-architecture manuals as they become available). As usual it's
-// possible to compress the epilogue, down to 10 in this case, at the
-// cost of scalability. Compressed (and therefore non-scalable) loop
-// running at 3*(n+11) would buy you ~10% on Itanium but take ~35%
-// from "wider" IA-64 so let it be scalable! Special attention was
-// paid for having the loop body split at 64-byte boundary. ld8 is
-// scheduled for L1 cache as the data is more than likely there.
-// Indeed, bn_mul_words has put it there a moment ago:-)
+{ .mii; ADDP r16=0,r32 // rp copy
+ mov pr.rot=0x2001<<16
+ // ------^----- serves as (p40) at first (p27)
+ mov ar.ec=11 };;
+
+// This loop spins in 3*(n+10) ticks on Itanium and in 2*(n+10) on
+// Itanium 2. Yes, unlike previous versions it scales:-) Previous
+// version was peforming *all* additions in IALU and was starving
+// for those even on Itanium 2. In this version one addition is
+// moved to FPU and is folded with multiplication. This is at cost
+// of propogating the result from previous call to this subroutine
+// to L2 cache... In other words negligible even for shorter keys.
+// *Overall* performance improvement [over previous version] varies
+// from 11 to 22 percent depending on key length.
.L_bn_mul_add_words_ctop:
-{ .mfi; (p25) getf.sig r36=f52 // low
- (p21) xmpy.lu f48=f37,f8
- (p28) cmp.ltu p54,p50=r41,r39 }
-{ .mfi; (p16) ldf8 f32=[r15],8
- (p21) xmpy.hu f40=f37,f8
- (p28) add r45=r45,r41 };;
-{ .mii; (p25) getf.sig r32=f44 // high
- .pred.rel "mutex",p50,p54
- (p50) add r40=r38,r35 // (p27)
- (p54) add r40=r38,r35,1 } // (p27)
-{ .mfb; (p28) cmp.ltu.unc p60,p0=r45,r41
- (p0) nop.f 0x0
- (p0) nop.b 0x0 }
-{ .mii; (p27) ld8 r44=[r18],8
- (p62) cmp.eq.or p61,p0=-1,r46
- (p62) add r46=1,r46 }
-{ .mfb; (p30) st8 [r14]=r47,8
- (p0) nop.f 0x0
+.pred.rel "mutex",p40,p42
+{ .mfi; (p23) getf.sig r36=f45 // low
+ (p20) xma.lu f42=f36,f8,f50 // low
+ (p40) add r39=r39,r35 } // (p27)
+{ .mfi; (p16) ldf8 f32=[r15],8 // *(ap++)
+ (p20) xma.hu f36=f36,f8,f50 // high
+ (p42) add r39=r39,r35,1 };; // (p27)
+{ .mmi; (p24) getf.sig r32=f40 // high
+ (p16) ldf8 f46=[r16],8 // *(rp1++)
+ (p40) cmp.ltu p41,p39=r39,r35 } // (p27)
+{ .mib; (p26) st8 [r14]=r39,8 // *(rp2++)
+ (p42) cmp.leu p41,p39=r39,r35 // (p27)
br.ctop.sptk .L_bn_mul_add_words_ctop};;
.L_bn_mul_add_words_cend:
-{ .mii; nop.m 0x0
-.pred.rel "mutex",p53,p57
-(p53) add r8=r38,r0
-(p57) add r8=r38,r0,1 }
-{ .mfb; nop.m 0x0
- nop.f 0x0
- nop.b 0x0 };;
-{ .mii;
-(p63) add r8=1,r8
- mov pr=r9,0x1ffff
- mov ar.lc=r3 }
-{ .mfb; rum 1<<5 // clear um.mfh
- nop.f 0x0
+{ .mmi; .pred.rel "mutex",p40,p42
+(p40) add r8=r35,r0
+(p42) add r8=r35,r0,1
+ mov pr=r9,0x1ffff }
+{ .mib; rum 1<<5 // clear um.mfh
+ mov ar.lc=r3
br.ret.sptk.many b0 };;
.endp bn_mul_add_words#
#endif
@@ -527,7 +472,8 @@ bn_sqr_words:
sxt4 r34=r34 };;
{ .mii; cmp.le p6,p0=r34,r0
mov r8=r0 } // return value
-{ .mfb; nop.f 0x0
+{ .mfb; ADDP r32=0,r32
+ nop.f 0x0
(p6) br.ret.spnt.many b0 };;
.save ar.lc,r3
@@ -536,11 +482,7 @@ bn_sqr_words:
mov r9=pr };;
.body
-#if defined(_HPUX_SOURCE) && defined(_ILP32)
-{ .mii; addp4 r32=0,r32
- addp4 r33=0,r33 };;
-#endif
-{ .mib;
+{ .mib; ADDP r33=0,r33
mov pr.rot=1<<16
brp.loop.imp .L_bn_sqr_words_ctop,.L_bn_sqr_words_cend-16
}
@@ -605,7 +547,7 @@ bn_sqr_comba8:
.prologue
.fframe 0
.save ar.pfs,r2
-#if defined(_HPUX_SOURCE) && defined(_ILP32)
+#if defined(_HPUX_SOURCE) && !defined(_LP64)
{ .mii; alloc r2=ar.pfs,2,1,0,0
addp4 r33=0,r33
addp4 r32=0,r32 };;
@@ -631,6 +573,10 @@ bn_sqr_comba8:
// clause in Itanium µ-architecture manual? Comments are welcomed and
// highly appreciated.
//
+// On Itanium 2 it takes ~190 ticks. This is because of stalls on
+// result from getf.sig. I do nothing about it at this point for
+// reasons depicted below.
+//
// However! It should be noted that even 160 ticks is darn good result
// as it's over 10 (yes, ten, spelled as t-e-n) times faster than the
// C version (compiled with gcc with inline assembler). I really
@@ -673,7 +619,7 @@ bn_mul_comba8:
.prologue
.fframe 0
.save ar.pfs,r2
-#if defined(_HPUX_SOURCE) && defined(_ILP32)
+#if defined(_HPUX_SOURCE) && !defined(_LP64)
{ .mii; alloc r2=ar.pfs,3,0,0,0
addp4 r33=0,r33
addp4 r34=0,r34 };;
@@ -1231,7 +1177,7 @@ bn_sqr_comba4:
.prologue
.fframe 0
.save ar.pfs,r2
-#if defined(_HPUX_SOURCE) && defined(_ILP32)
+#if defined(_HPUX_SOURCE) && !defined(_LP64)
{ .mii; alloc r2=ar.pfs,2,1,0,0
addp4 r32=0,r32
addp4 r33=0,r33 };;
@@ -1264,7 +1210,7 @@ bn_mul_comba4:
.prologue
.fframe 0
.save ar.pfs,r2
-#if defined(_HPUX_SOURCE) && defined(_ILP32)
+#if defined(_HPUX_SOURCE) && !defined(_LP64)
{ .mii; alloc r2=ar.pfs,3,0,0,0
addp4 r33=0,r33
addp4 r34=0,r34 };;
@@ -1448,8 +1394,8 @@ bn_mul_comba4:
#define I r21
#if 0
-// Some preprocessors (most notably HP-UX) apper to be allergic to
-// macros enclosed to parenthesis as these three will be.
+// Some preprocessors (most notably HP-UX) appear to be allergic to
+// macros enclosed to parenthesis [as these three were].
#define cont p16
#define break p0 // p20
#define equ p24
@@ -1581,9 +1527,18 @@ bn_div_words:
// output: f8 = (int)(a/b)
// clobbered: f8,f9,f10,f11,pred
pred=p15
-// This procedure is essentially Intel code and therefore is
-// copyrighted to Intel Corporation (I suppose...). It's sligtly
-// modified for specific needs.
+// One can argue that this snippet is copyrighted to Intel
+// Corporation, as it's essentially identical to one of those
+// found in "Divide, Square Root and Remainder" section at
+// http://www.intel.com/software/products/opensource/libraries/num.htm.
+// Yes, I admit that the referred code was used as template,
+// but after I realized that there hardly is any other instruction
+// sequence which would perform this operation. I mean I figure that
+// any independent attempt to implement high-performance division
+// will result in code virtually identical to the Intel code. It
+// should be noted though that below division kernel is 1 cycle
+// faster than Intel one (note commented splits:-), not to mention
+// original prologue (rather lack of one) and epilogue.
.align 32
.skip 16
.L_udiv64_32_b6:
diff --git a/crypto/bn/bn.h b/crypto/bn/bn.h
index 11f5a9e65b..1b3d574641 100644
--- a/crypto/bn/bn.h
+++ b/crypto/bn/bn.h
@@ -802,6 +802,7 @@ void ERR_load_BN_strings(void);
#define BN_R_NOT_IMPLEMENTED 116
#define BN_R_NOT_INITIALIZED 107
#define BN_R_NO_INVERSE 108
+#define BN_R_NO_SOLUTION 117
#define BN_R_P_IS_NOT_PRIME 112
#define BN_R_TOO_MANY_ITERATIONS 113
#define BN_R_TOO_MANY_TEMPORARY_VARIABLES 109
diff --git a/crypto/bn/bn_err.c b/crypto/bn/bn_err.c
index 747591f9cb..b42208ae0b 100644
--- a/crypto/bn/bn_err.c
+++ b/crypto/bn/bn_err.c
@@ -116,6 +116,7 @@ static ERR_STRING_DATA BN_str_reasons[]=
{BN_R_NOT_IMPLEMENTED ,"not implemented"},
{BN_R_NOT_INITIALIZED ,"not initialized"},
{BN_R_NO_INVERSE ,"no inverse"},
+{BN_R_NO_SOLUTION ,"no solution"},
{BN_R_P_IS_NOT_PRIME ,"p is not prime"},
{BN_R_TOO_MANY_ITERATIONS ,"too many iterations"},
{BN_R_TOO_MANY_TEMPORARY_VARIABLES ,"too many temporary variables"},
diff --git a/crypto/bn/bn_gf2m.c b/crypto/bn/bn_gf2m.c
index c10287e9cb..3fbf0e1b48 100644
--- a/crypto/bn/bn_gf2m.c
+++ b/crypto/bn/bn_gf2m.c
@@ -992,7 +992,11 @@ int BN_GF2m_mod_solve_quad_arr(BIGNUM *r, const BIGNUM *a_, const unsigned int p
if (!BN_GF2m_mod_sqr_arr(w, z, p, ctx)) goto err;
if (!BN_GF2m_add(w, z, w)) goto err;
- if (BN_GF2m_cmp(w, a)) goto err;
+ if (BN_GF2m_cmp(w, a))
+ {
+ BNerr(BN_F_BN_GF2M_MOD_SOLVE_QUAD_ARR, BN_R_NO_SOLUTION);
+ goto err;
+ }
if (!BN_copy(r, z)) goto err;
bn_check_top(r);
diff --git a/crypto/crypto-lib.com b/crypto/crypto-lib.com
index bc872a35d7..19efe4cadb 100644
--- a/crypto/crypto-lib.com
+++ b/crypto/crypto-lib.com
@@ -161,7 +161,7 @@ $!
$ APPS_DES = "DES/DES,CBC3_ENC"
$ APPS_PKCS7 = "ENC/ENC;DEC/DEC;SIGN/SIGN;VERIFY/VERIFY,EXAMPLE"
$
-$ LIB_ = "cryptlib,mem,mem_clr,mem_dbg,cversion,ex_data,tmdiff,cpt_err,ebcdic,uid,o_time,o_str"
+$ LIB_ = "cryptlib,mem,mem_clr,mem_dbg,cversion,ex_data,tmdiff,cpt_err,ebcdic,uid,o_time,o_str,o_dir"
$ LIB_MD2 = "md2_dgst,md2_one"
$ LIB_MD4 = "md4_dgst,md4_one"
$ LIB_MD5 = "md5_dgst,md5_one"
@@ -275,7 +275,7 @@ $!
$! Setup exceptional compilations
$!
$ COMPILEWITH_CC3 = ",bss_rtcp,"
-$ COMPILEWITH_CC4 = ",a_utctm,bss_log,o_time,"
+$ COMPILEWITH_CC4 = ",a_utctm,bss_log,o_time,o_dir"
$ COMPILEWITH_CC5 = ",md2_dgst,md4_dgst,md5_dgst,mdc2dgst," + -
"sha_dgst,sha1dgst,rmd_dgst,bf_enc,"
$!
diff --git a/crypto/ec/ec2_smpt.c b/crypto/ec/ec2_smpt.c
index f7e3d38150..72a8d57051 100644
--- a/crypto/ec/ec2_smpt.c
+++ b/crypto/ec/ec2_smpt.c
@@ -77,6 +77,9 @@ int ec_GF2m_simple_set_compressed_coordinates(const EC_GROUP *group, EC_POINT *p
BIGNUM *tmp, *x, *y, *z;
int ret = 0, z0;
+ /* clear error queue */
+ ERR_clear_error();
+
if (ctx == NULL)
{
ctx = new_ctx = BN_CTX_new();
@@ -104,7 +107,19 @@ int ec_GF2m_simple_set_compressed_coordinates(const EC_GROUP *group, EC_POINT *p
if (!group->meth->field_div(group, tmp, &group->b, tmp, ctx)) goto err;
if (!BN_GF2m_add(tmp, &group->a, tmp)) goto err;
if (!BN_GF2m_add(tmp, x, tmp)) goto err;
- if (!BN_GF2m_mod_solve_quad_arr(z, tmp, group->poly, ctx)) goto err;
+ if (!BN_GF2m_mod_solve_quad_arr(z, tmp, group->poly, ctx))
+ {
+ unsigned long err = ERR_peek_last_error();
+
+ if (ERR_GET_LIB(err) == ERR_LIB_BN && ERR_GET_REASON(err) == BN_R_NO_SOLUTION)
+ {
+ ERR_clear_error();
+ ECerr(EC_F_EC_GF2M_SIMPLE_SET_COMPRESSED_COORDINATES, EC_R_INVALID_COMPRESSED_POINT);
+ }
+ else
+ ECerr(EC_F_EC_GF2M_SIMPLE_SET_COMPRESSED_COORDINATES, ERR_R_BN_LIB);
+ goto err;
+ }
z0 = (BN_is_odd(z)) ? 1 : 0;
if (!group->meth->field_mul(group, y, x, z, ctx)) goto err;
if (z0 != y_bit)
diff --git a/crypto/ec/ec_curve.c b/crypto/ec/ec_curve.c
index c5b54c733e..a523b206c7 100644
--- a/crypto/ec/ec_curve.c
+++ b/crypto/ec/ec_curve.c
@@ -3,7 +3,7 @@
* Written by Nils Larsch for the OpenSSL project.
*/
/* ====================================================================
- * Copyright (c) 1998-2002 The OpenSSL Project. All rights reserved.
+ * Copyright (c) 1998-2004 The OpenSSL Project. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -102,7 +102,7 @@ static const EC_CURVE_DATA _EC_NIST_PRIME_192 = {
"07192b95ffc8da78631011ed6b24cdd573f977a11e794811",
"FFFFFFFFFFFFFFFFFFFFFFFF99DEF836146BC9B1B4D22831",1,
_EC_NIST_PRIME_192_SEED, 20,
- "192 bit prime curve from X9.62 and SECG"
+ "NIST/X9.62/SECG curve over a 192 bit prime field"
};
static const unsigned char _EC_NIST_PRIME_224_SEED[] = {
@@ -117,7 +117,7 @@ static const EC_CURVE_DATA _EC_NIST_PRIME_224 = {
"bd376388b5f723fb4c22dfe6cd4375a05a07476444d5819985007e34",
"FFFFFFFFFFFFFFFFFFFFFFFFFFFF16A2E0B8F03E13DD29455C5C2A3D",1,
_EC_NIST_PRIME_224_SEED, 20,
- "SECG/NIST recommended curve over a 224 bit prime field"
+ "NIST/SECG curve over a 224 bit prime field"
};
static const unsigned char _EC_NIST_PRIME_384_SEED[] = {
@@ -138,7 +138,7 @@ static const EC_CURVE_DATA _EC_NIST_PRIME_384 = {
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7634D81F4372DDF581A0"
"DB248B0A77AECEC196ACCC52973",1,
_EC_NIST_PRIME_384_SEED, 20,
- "SECG/NIST recommended curve over a 384 bit prime field"
+ "NIST/SECG curve over a 384 bit prime field"
};
static const unsigned char _EC_NIST_PRIME_521_SEED[] = {
@@ -159,7 +159,7 @@ static const EC_CURVE_DATA _EC_NIST_PRIME_521 = {
"1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA51"
"868783BF2F966B7FCC0148F709A5D03BB5C9B8899C47AEBB6FB71E91386409",1,
_EC_NIST_PRIME_521_SEED, 20,
- "SECG/NIST recommended curve over a 521 bit prime field"
+ "NIST/SECG curve over a 521 bit prime field"
};
/* the x9.62 prime curves (minus the nist prime curves) */
static const unsigned char _EC_X9_62_PRIME_192V2_SEED[] = {
@@ -174,7 +174,7 @@ static const EC_CURVE_DATA _EC_X9_62_PRIME_192V2 = {
"6574d11d69b6ec7a672bb82a083df2f2b0847de970b2de15",
"FFFFFFFFFFFFFFFFFFFFFFFE5FB1A724DC80418648D8DD31",1,
_EC_X9_62_PRIME_192V2_SEED, 20,
- "192 bit prime curve from X9.62"
+ "X9.62 curve over a 192 bit prime field"
};
static const unsigned char _EC_X9_62_PRIME_192V3_SEED[] = {
@@ -189,7 +189,7 @@ static const EC_CURVE_DATA _EC_X9_62_PRIME_192V3 = {
"38a90f22637337334b49dcb66a6dc8f9978aca7648a943b0",
"FFFFFFFFFFFFFFFFFFFFFFFF7A62D031C83F4294F640EC13",1,
_EC_X9_62_PRIME_192V3_SEED, 20,
- "192 bit prime curve from X9.62"
+ "X9.62 curve over a 192 bit prime field"
};
static const unsigned char _EC_X9_62_PRIME_239V1_SEED[] = {
@@ -204,7 +204,7 @@ static const EC_CURVE_DATA _EC_X9_62_PRIME_239V1 = {
"7debe8e4e90a5dae6e4054ca530ba04654b36818ce226b39fccb7b02f1ae",
"7FFFFFFFFFFFFFFFFFFFFFFF7FFFFF9E5E9A9F5D9071FBD1522688909D0B",1,
_EC_X9_62_PRIME_239V1_SEED, 20,
- "239 bit prime curve from X9.62"
+ "X9.62 curve over a 239 bit prime field"
};
static const unsigned char _EC_X9_62_PRIME_239V2_SEED[] = {
@@ -219,7 +219,7 @@ static const EC_CURVE_DATA _EC_X9_62_PRIME_239V2 = {
"5b0125e4dbea0ec7206da0fc01d9b081329fb555de6ef460237dff8be4ba",
"7FFFFFFFFFFFFFFFFFFFFFFF800000CFA7E8594377D414C03821BC582063",1,
_EC_X9_62_PRIME_239V2_SEED, 20,
- "239 bit prime curve from X9.62"
+ "X9.62 curve over a 239 bit prime field"
};
static const unsigned char _EC_X9_62_PRIME_239V3_SEED[] = {
@@ -234,7 +234,7 @@ static const EC_CURVE_DATA _EC_X9_62_PRIME_239V3 = {
"1607e6898f390c06bc1d552bad226f3b6fcfe48b6e818499af18e3ed6cf3",
"7FFFFFFFFFFFFFFFFFFFFFFF7FFFFF975DEB41B3A6057C3C432146526551",1,
_EC_X9_62_PRIME_239V3_SEED, 20,
- "239 bit prime curve from X9.62"
+ "X9.62 curve over a 239 bit prime field"
};
static const unsigned char _EC_X9_62_PRIME_256V1_SEED[] = {
@@ -249,7 +249,7 @@ static const EC_CURVE_DATA _EC_X9_62_PRIME_256V1 = {
"4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5",
"FFFFFFFF00000000FFFFFFFFFFFFFFFFBCE6FAADA7179E84F3B9CAC2FC632551",1,
_EC_X9_62_PRIME_256V1_SEED, 20,
- "256 bit prime curve from X9.62 and SECG"
+ "X9.62/SECG curve over a 256 bit prime field"
};
/* the secg prime curves (minus the nist and x9.62 prime curves) */
static const unsigned char _EC_SECG_PRIME_112R1_SEED[] = {
@@ -264,7 +264,7 @@ static const EC_CURVE_DATA _EC_SECG_PRIME_112R1 = {
"a89ce5af8724c0a23e0e0ff77500",
"DB7C2ABF62E35E7628DFAC6561C5",1,
_EC_SECG_PRIME_112R1_SEED, 20,
- "SECG/WTLS recommended curve over a 112 bit prime field"
+ "SECG/WTLS curve over a 112 bit prime field"
};
static const unsigned char _EC_SECG_PRIME_112R2_SEED[] = {
@@ -279,7 +279,7 @@ static const EC_CURVE_DATA _EC_SECG_PRIME_112R2 = {
"adcd46f5882e3747def36e956e97",
"36DF0AAFD8B8D7597CA10520D04B",4,
_EC_SECG_PRIME_112R2_SEED, 20,
- "SECG recommended curve over a 112 bit prime field"
+ "SECG curve over a 112 bit prime field"
};
static const unsigned char _EC_SECG_PRIME_128R1_SEED[] = {
@@ -294,7 +294,7 @@ static const EC_CURVE_DATA _EC_SECG_PRIME_128R1 = {
"cf5ac8395bafeb13c02da292dded7a83",
"FFFFFFFE0000000075A30D1B9038A115",1,
_EC_SECG_PRIME_128R1_SEED, 20,
- "SECG recommended curve over a 128 bit prime field"
+ "SECG curve over a 128 bit prime field"
};
static const unsigned char _EC_SECG_PRIME_128R2_SEED[] = {
@@ -309,7 +309,7 @@ static const EC_CURVE_DATA _EC_SECG_PRIME_128R2 = {
"27b6916a894d3aee7106fe805fc34b44",
"3FFFFFFF7FFFFFFFBE0024720613B5A3",4,
_EC_SECG_PRIME_128R2_SEED, 20,
- "SECG recommended curve over a 128 bit prime field"
+ "SECG curve over a 128 bit prime field"
};
static const EC_CURVE_DATA _EC_SECG_PRIME_160K1 = {
@@ -321,7 +321,7 @@ static const EC_CURVE_DATA _EC_SECG_PRIME_160K1 = {
"938cf935318fdced6bc28286531733c3f03c4fee",
"0100000000000000000001B8FA16DFAB9ACA16B6B3",1,
NULL, 0,
- "SECG recommended curve over a 160 bit prime field"
+ "SECG curve over a 160 bit prime field"
};
static const unsigned char _EC_SECG_PRIME_160R1_SEED[] = {
@@ -336,7 +336,7 @@ static const EC_CURVE_DATA _EC_SECG_PRIME_160R1 = {
"23a628553168947d59dcc912042351377ac5fb32",
"0100000000000000000001F4C8F927AED3CA752257",1,
_EC_SECG_PRIME_160R1_SEED, 20,
- "SECG recommended curve over a 160 bit prime field"
+ "SECG curve over a 160 bit prime field"
};
static const unsigned char _EC_SECG_PRIME_160R2_SEED[] = {
@@ -351,7 +351,7 @@ static const EC_CURVE_DATA _EC_SECG_PRIME_160R2 = {
"feaffef2e331f296e071fa0df9982cfea7d43f2e",
"0100000000000000000000351EE786A818F3A1A16B",1,
_EC_SECG_PRIME_160R2_SEED, 20,
- "SECG/WTLS recommended curve over a 160 bit prime field"
+ "SECG/WTLS curve over a 160 bit prime field"
};
static const EC_CURVE_DATA _EC_SECG_PRIME_192K1 = {
@@ -363,7 +363,7 @@ static const EC_CURVE_DATA _EC_SECG_PRIME_192K1 = {
"9b2f2f6d9c5628a7844163d015be86344082aa88d95e2f9d",
"FFFFFFFFFFFFFFFFFFFFFFFE26F2FC170F69466A74DEFD8D",1,
NULL, 20,
- "SECG recommended curve over a 192 bit prime field"
+ "SECG curve over a 192 bit prime field"
};
static const EC_CURVE_DATA _EC_SECG_PRIME_224K1 = {
@@ -375,7 +375,7 @@ static const EC_CURVE_DATA _EC_SECG_PRIME_224K1 = {
"7e089fed7fba344282cafbd6f7e319f7c0b0bd59e2ca4bdb556d61a5",
"010000000000000000000000000001DCE8D2EC6184CAF0A971769FB1F7",1,
NULL, 20,
- "SECG recommended curve over a 224 bit prime field"
+ "SECG curve over a 224 bit prime field"
};
static const EC_CURVE_DATA _EC_SECG_PRIME_256K1 = {
@@ -387,7 +387,7 @@ static const EC_CURVE_DATA _EC_SECG_PRIME_256K1 = {
"483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",
"FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141",1,
NULL, 20,
- "SECG recommended curve over a 256 bit prime field"
+ "SECG curve over a 256 bit prime field"
};
/* some wap/wtls curves */
@@ -400,7 +400,7 @@ static const EC_CURVE_DATA _EC_WTLS_8 = {
"2",
"0100000000000001ECEA551AD837E9",1,
NULL, 20,
- "112 bit prime curve from the WTLS standard"
+ "WTLS curve over a 112 bit prime field"
};
static const EC_CURVE_DATA _EC_WTLS_9 = {
@@ -412,7 +412,7 @@ static const EC_CURVE_DATA _EC_WTLS_9 = {
"2",
"0100000000000000000001CDC98AE0E2DE574ABF33",1,
NULL, 20,
- "160 bit prime curve from the WTLS standard"
+ "WTLS curve over a 160 bit prime field"
};
static const EC_CURVE_DATA _EC_WTLS_12 = {
@@ -424,7 +424,7 @@ static const EC_CURVE_DATA _EC_WTLS_12 = {
"bd376388b5f723fb4c22dfe6cd4375a05a07476444d5819985007e34",
"FFFFFFFFFFFFFFFFFFFFFFFFFFFF16A2E0B8F03E13DD29455C5C2A3D", 1,
NULL, 0,
- "224 bit prime curve from the WTLS standard"
+ "WTLS curvs over a 224 bit prime field"
};
/* characteristic two curves */
@@ -440,7 +440,7 @@ static const EC_CURVE_DATA _EC_SECG_CHAR2_113R1 = {
"00A52830277958EE84D1315ED31886",
"0100000000000000D9CCEC8A39E56F", 2,
_EC_SECG_CHAR2_113R1_SEED, 20,
- "SECG recommended curve over a 113 bit binary field"
+ "SECG curve over a 113 bit binary field"
};
static const unsigned char _EC_SECG_CHAR2_113R2_SEED[] = {
@@ -455,7 +455,7 @@ static const EC_CURVE_DATA _EC_SECG_CHAR2_113R2 = {
"00B3ADC94ED1FE674C06E695BABA1D",
"010000000000000108789B2496AF93", 2,
_EC_SECG_CHAR2_113R2_SEED, 20,
- "SECG recommended curve over a 113 bit binary field"
+ "SECG curve over a 113 bit binary field"
};
static const unsigned char _EC_SECG_CHAR2_131R1_SEED[] = {
@@ -470,7 +470,7 @@ static const EC_CURVE_DATA _EC_SECG_CHAR2_131R1 = {
"078C6E7EA38C001F73C8134B1B4EF9E150",
"0400000000000000023123953A9464B54D", 2,
_EC_SECG_CHAR2_131R1_SEED, 20,
- "SECG/WTLS recommended curve over a 131 bit binary field"
+ "SECG/WTLS curve over a 131 bit binary field"
};
static const unsigned char _EC_SECG_CHAR2_131R2_SEED[] = {
@@ -485,10 +485,10 @@ static const EC_CURVE_DATA _EC_SECG_CHAR2_131R2 = {
"0648F06D867940A5366D9E265DE9EB240F",
"0400000000000000016954A233049BA98F", 2,
_EC_SECG_CHAR2_131R2_SEED, 20,
- "SECG recommended curve over a 131 bit binary field"
+ "SECG curve over a 131 bit binary field"
};
-static const EC_CURVE_DATA _EC_SECG_CHAR2_163K1 = {
+static const EC_CURVE_DATA _EC_NIST_CHAR2_163K = {
NID_X9_62_characteristic_two_field,
"0800000000000000000000000000000000000000C9",
"1",
@@ -497,7 +497,7 @@ static const EC_CURVE_DATA _EC_SECG_CHAR2_163K1 = {
"0289070FB05D38FF58321F2E800536D538CCDAA3D9",
"04000000000000000000020108A2E0CC0D99F8A5EF", 2,
NULL, 0,
- "\n\tSECG/NIST/WTLS recommended curve over a 163 bit binary field"
+ "NIST/SECG/WTLS curve over a 163 bit binary field"
};
static const unsigned char _EC_SECG_CHAR2_163R1_SEED[] = {
@@ -520,13 +520,13 @@ static const EC_CURVE_DATA _EC_SECG_CHAR2_163R1 = {
#else
NULL, 0,
#endif
- "SECG recommended curve over a 163 bit binary field"
+ "SECG curve over a 163 bit binary field"
};
-static const unsigned char _EC_SECG_CHAR2_163R2_SEED[] = {
+static const unsigned char _EC_NIST_CHAR2_163B_SEED[] = {
0x85,0xE2,0x5B,0xFE,0x5C,0x86,0x22,0x6C,0xDB,0x12,
0x01,0x6F,0x75,0x53,0xF9,0xD0,0xE6,0x93,0xA2,0x68};
-static const EC_CURVE_DATA _EC_SECG_CHAR2_163R2 ={
+static const EC_CURVE_DATA _EC_NIST_CHAR2_163B ={
NID_X9_62_characteristic_two_field,
"0800000000000000000000000000000000000000C9",
"1",
@@ -538,11 +538,11 @@ static const EC_CURVE_DATA _EC_SECG_CHAR2_163R2 ={
* basis representation (and not the polynomial representation used here)
*/
#if 0
- _EC_SECG_CHAR2_163R2_SEED, 20,
+ _EC_NIST_CHAR2_163B_SEED, 20,
#else
NULL, 0,
#endif
- "SECG/NIST recommended curve over a 163 bit binary field"
+ "NIST/SECG curve over a 163 bit binary field"
};
static const unsigned char _EC_SECG_CHAR2_193R1_SEED[] = {
@@ -557,7 +557,7 @@ static const EC_CURVE_DATA _EC_SECG_CHAR2_193R1 = {
"0025E399F2903712CCF3EA9E3A1AD17FB0B3201B6AF7CE1B05",
"01000000000000000000000000C7F34A778F443ACC920EBA49", 2,
_EC_SECG_CHAR2_193R1_SEED, 20,
- "SECG recommended curve over a 193 bit binary field"
+ "SECG curve over a 193 bit binary field"
};
static const unsigned char _EC_SECG_CHAR2_193R2_SEED[] = {
@@ -572,10 +572,10 @@ static const EC_CURVE_DATA _EC_SECG_CHAR2_193R2 = {
"01CE94335607C304AC29E7DEFBD9CA01F596F927224CDECF6C",
"010000000000000000000000015AAB561B005413CCD4EE99D5", 2,
_EC_SECG_CHAR2_193R2_SEED, 20,
- "SECG recommended curve over a 193 bit binary field"
+ "SECG curve over a 193 bit binary field"
};
-static const EC_CURVE_DATA _EC_SECG_CHAR2_233K1 = {
+static const EC_CURVE_DATA _EC_NIST_CHAR2_233K = {
NID_X9_62_characteristic_two_field,
"020000000000000000000000000000000000000004000000000000000001",
"0",
@@ -584,13 +584,13 @@ static const EC_CURVE_DATA _EC_SECG_CHAR2_233K1 = {
"01DB537DECE819B7F70F555A67C427A8CD9BF18AEB9B56E0C11056FAE6A3",
"008000000000000000000000000000069D5BB915BCD46EFB1AD5F173ABDF", 4,
NULL, 0,
- "\n\tSECG/NIST/WTLS recommended curve over a 233 bit binary field"
+ "NIST/SECG/WTLS curve over a 233 bit binary field"
};
-static const unsigned char _EC_SECG_CHAR2_233R1_SEED[] = {
+static const unsigned char _EC_NIST_CHAR2_233B_SEED[] = {
0x74,0xD5,0x9F,0xF0,0x7F,0x6B,0x41,0x3D,0x0E,0xA1,
0x4B,0x34,0x4B,0x20,0xA2,0xDB,0x04,0x9B,0x50,0xC3};
-static const EC_CURVE_DATA _EC_SECG_CHAR2_233R1 = {
+static const EC_CURVE_DATA _EC_NIST_CHAR2_233B = {
NID_X9_62_characteristic_two_field,
"020000000000000000000000000000000000000004000000000000000001",
"000000000000000000000000000000000000000000000000000000000001",
@@ -598,8 +598,8 @@ static const EC_CURVE_DATA _EC_SECG_CHAR2_233R1 = {
"00FAC9DFCBAC8313BB2139F1BB755FEF65BC391F8B36F8F8EB7371FD558B",
"01006A08A41903350678E58528BEBF8A0BEFF867A7CA36716F7E01F81052",
"01000000000000000000000000000013E974E72F8A6922031D2603CFE0D7", 2,
- _EC_SECG_CHAR2_233R1_SEED, 20,
- "\n\tSECG/NIST/WTLS recommended curve over a 233 bit binary field"
+ _EC_NIST_CHAR2_233B_SEED, 20,
+ "NIST/SECG/WTLS curve over a 233 bit binary field"
};
static const EC_CURVE_DATA _EC_SECG_CHAR2_239K1 = {
@@ -611,10 +611,10 @@ static const EC_CURVE_DATA _EC_SECG_CHAR2_239K1 = {
"76310804F12E549BDB011C103089E73510ACB275FC312A5DC6B76553F0CA",
"2000000000000000000000000000005A79FEC67CB6E91F1C1DA800E478A5", 4,
NULL, 0,
- "SECG recommended curve over a 239 bit binary field"
+ "SECG curve over a 239 bit binary field"
};
-static const EC_CURVE_DATA _EC_SECG_CHAR2_283K1 = {
+static const EC_CURVE_DATA _EC_NIST_CHAR2_283K = {
NID_X9_62_characteristic_two_field,
"080000000000000000000000000000000000000000000000000000000000000000001"
"0A1",
@@ -627,13 +627,13 @@ static const EC_CURVE_DATA _EC_SECG_CHAR2_283K1 = {
"01FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9AE2ED07577265DFF7F94451E061E163"
"C61", 4,
NULL, 20,
- "SECG/NIST recommended curve over a 283 bit binary field"
+ "NIST/SECG curve over a 283 bit binary field"
};
-static const unsigned char _EC_SECG_CHAR2_283R1_SEED[] = {
+static const unsigned char _EC_NIST_CHAR2_283B_SEED[] = {
0x77,0xE2,0xB0,0x73,0x70,0xEB,0x0F,0x83,0x2A,0x6D,
0xD5,0xB6,0x2D,0xFC,0x88,0xCD,0x06,0xBB,0x84,0xBE};
-static const EC_CURVE_DATA _EC_SECG_CHAR2_283R1 = {
+static const EC_CURVE_DATA _EC_NIST_CHAR2_283B = {
NID_X9_62_characteristic_two_field,
"080000000000000000000000000000000000000000000000000000000000000000001"
"0A1",
@@ -647,11 +647,11 @@ static const EC_CURVE_DATA _EC_SECG_CHAR2_283R1 = {
"2F4",
"03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF90399660FC938A90165B042A7CEFADB"
"307", 2,
- _EC_SECG_CHAR2_283R1_SEED, 20,
- "SECG/NIST recommended curve over a 283 bit binary field"
+ _EC_NIST_CHAR2_283B_SEED, 20,
+ "NIST/SECG curve over a 283 bit binary field"
};
-static const EC_CURVE_DATA _EC_SECG_CHAR2_409K1 = {
+static const EC_CURVE_DATA _EC_NIST_CHAR2_409K = {
NID_X9_62_characteristic_two_field,
"020000000000000000000000000000000000000000000000000000000000000000000"
"00000000000008000000000000000000001",
@@ -664,13 +664,13 @@ static const EC_CURVE_DATA _EC_SECG_CHAR2_409K1 = {
"007FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5F83B2D4EA20400"
"EC4557D5ED3E3E7CA5B4B5C83B8E01E5FCF", 4,
NULL, 0,
- "SECG/NIST recommended curve over a 409 bit binary field"
+ "NIST/SECG curve over a 409 bit binary field"
};
-static const unsigned char _EC_SECG_CHAR2_409R1_SEED[] = {
+static const unsigned char _EC_NIST_CHAR2_409B_SEED[] = {
0x40,0x99,0xB5,0xA4,0x57,0xF9,0xD6,0x9F,0x79,0x21,
0x3D,0x09,0x4C,0x4B,0xCD,0x4D,0x42,0x62,0x21,0x0B};
-static const EC_CURVE_DATA _EC_SECG_CHAR2_409R1 = {
+static const EC_CURVE_DATA _EC_NIST_CHAR2_409B = {
NID_X9_62_characteristic_two_field,
"020000000000000000000000000000000000000000000000000000000000000000000"
"00000000000008000000000000000000001",
@@ -684,11 +684,11 @@ static const EC_CURVE_DATA _EC_SECG_CHAR2_409R1 = {
"F1FDF4B4F40D2181B3681C364BA0273C706",
"010000000000000000000000000000000000000000000000000001E2AAD6A612F3330"
"7BE5FA47C3C9E052F838164CD37D9A21173", 2,
- _EC_SECG_CHAR2_409R1_SEED, 20,
- "SECG/NIST recommended curve over a 409 bit binary field"
+ _EC_NIST_CHAR2_409B_SEED, 20,
+ "NIST/SECG curve over a 409 bit binary field"
};
-static const EC_CURVE_DATA _EC_SECG_CHAR2_571K1 = {
+static const EC_CURVE_DATA _EC_NIST_CHAR2_571K = {
NID_X9_62_characteristic_two_field,
"800000000000000000000000000000000000000000000000000000000000000000000"
"000000000000000000000000000000000000000000000000000000000000000000000"
@@ -705,13 +705,13 @@ static const EC_CURVE_DATA _EC_SECG_CHAR2_571K1 = {
"000131850E1F19A63E4B391A8DB917F4138B630D84BE5D639381E91DEB45CFE778F63"
"7C1001", 4,
NULL, 0,
- "SECG/NIST recommended curve over a 571 bit binary field"
+ "NIST/SECG curve over a 571 bit binary field"
};
-static const unsigned char _EC_SECG_CHAR2_571R1_SEED[] = {
+static const unsigned char _EC_NIST_CHAR2_571B_SEED[] = {
0x2A,0xA0,0x58,0xF7,0x3A,0x0E,0x33,0xAB,0x48,0x6B,
0x0F,0x61,0x04,0x10,0xC5,0x3A,0x7F,0x13,0x23,0x10};
-static const EC_CURVE_DATA _EC_SECG_CHAR2_571R1 = {
+static const EC_CURVE_DATA _EC_NIST_CHAR2_571B = {
NID_X9_62_characteristic_two_field,
"800000000000000000000000000000000000000000000000000000000000000000000"
"000000000000000000000000000000000000000000000000000000000000000000000"
@@ -731,8 +731,8 @@ static const EC_CURVE_DATA _EC_SECG_CHAR2_571R1 = {
"03FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
"FFFE661CE18FF55987308059B186823851EC7DD9CA1161DE93D5174D66E8382E9BB2F"
"E84E47", 2,
- _EC_SECG_CHAR2_571R1_SEED, 20,
- "SECG/NIST recommended curve over a 571 bit binary field"
+ _EC_NIST_CHAR2_571B_SEED, 20,
+ "NIST/SECG curve over a 571 bit binary field"
};
static const unsigned char _EC_X9_62_CHAR2_163V1_SEED[] = {
@@ -747,7 +747,7 @@ static const EC_CURVE_DATA _EC_X9_62_CHAR2_163V1 = {
"01EC23211B5966ADEA1D3F87F7EA5848AEF0B7CA9F",
"0400000000000000000001E60FC8821CC74DAEAFC1", 2,
_EC_X9_62_CHAR2_163V1_SEED, 20,
- "163 bit binary curve from X9.62"
+ "X9.62 curve over a 163 bit binary field"
};
static const unsigned char _EC_X9_62_CHAR2_163V2_SEED[] = {
@@ -762,7 +762,7 @@ static const EC_CURVE_DATA _EC_X9_62_CHAR2_163V2 = {
"079F684DDF6684C5CD258B3890021B2386DFD19FC5",
"03FFFFFFFFFFFFFFFFFFFDF64DE1151ADBB78F10A7", 2,
_EC_X9_62_CHAR2_163V2_SEED, 20,
- "163 bit binary curve from X9.62"
+ "X9.62 curve over a 163 bit binary field"
};
static const unsigned char _EC_X9_62_CHAR2_163V3_SEED[] = {
@@ -777,7 +777,7 @@ static const EC_CURVE_DATA _EC_X9_62_CHAR2_163V3 = {
"05B935590C155E17EA48EB3FF3718B893DF59A05D0",
"03FFFFFFFFFFFFFFFFFFFE1AEE140F110AFF961309", 2,
_EC_X9_62_CHAR2_163V3_SEED, 20,
- "163 bit binary curve from X9.62"
+ "X9.62 curve over a 163 bit binary field"
};
static const EC_CURVE_DATA _EC_X9_62_CHAR2_176V1 = {
@@ -789,7 +789,7 @@ static const EC_CURVE_DATA _EC_X9_62_CHAR2_176V1 = {
"6FA4539C2DADDDD6BAB5167D61B436E1D92BB16A562C",
"00010092537397ECA4F6145799D62B0A19CE06FE26AD", 0xFF6E,
NULL, 0,
- "176 bit binary curve from X9.62"
+ "X9.62 curve over a 176 bit binary field"
};
static const unsigned char _EC_X9_62_CHAR2_191V1_SEED[] = {
@@ -804,7 +804,7 @@ static const EC_CURVE_DATA _EC_X9_62_CHAR2_191V1 = {
"765BE73433B3F95E332932E70EA245CA2418EA0EF98018FB",
"40000000000000000000000004A20E90C39067C893BBB9A5", 2,
_EC_X9_62_CHAR2_191V1_SEED, 20,
- "191 bit binary curve from X9.62"
+ "X9.62 curve over a 191 bit binary field"
};
static const unsigned char _EC_X9_62_CHAR2_191V2_SEED[] = {
@@ -819,7 +819,7 @@ static const EC_CURVE_DATA _EC_X9_62_CHAR2_191V2 = {
"17434386626D14F3DBF01760D9213A3E1CF37AEC437D668A",
"20000000000000000000000050508CB89F652824E06B8173", 4,
_EC_X9_62_CHAR2_191V2_SEED, 20,
- "191 bit binary curve from X9.62"
+ "X9.62 curve over a 191 bit binary field"
};
static const unsigned char _EC_X9_62_CHAR2_191V3_SEED[] = {
@@ -834,7 +834,7 @@ static const EC_CURVE_DATA _EC_X9_62_CHAR2_191V3 = {
"545A39176196575D985999366E6AD34CE0A77CD7127B06BE",
"155555555555555555555555610C0B196812BFB6288A3EA3", 6,
_EC_X9_62_CHAR2_191V3_SEED, 20,
- "191 bit binary curve from X9.62"
+ "X9.62 curve over a 191 bit binary field"
};
static const EC_CURVE_DATA _EC_X9_62_CHAR2_208W1 = {
@@ -846,7 +846,7 @@ static const EC_CURVE_DATA _EC_X9_62_CHAR2_208W1 = {
"0F55B51A06E78E9AC38A035FF520D8B01781BEB1A6BB08617DE3",
"000101BAF95C9723C57B6C21DA2EFF2D5ED588BDD5717E212F9D", 0xFE48,
NULL, 0,
- "208 bit binary curve from X9.62"
+ "X9.62 curve over a 208 bit binary field"
};
static const unsigned char _EC_X9_62_CHAR2_239V1_SEED[] = {
@@ -861,7 +861,7 @@ static const EC_CURVE_DATA _EC_X9_62_CHAR2_239V1 = {
"61D8EE5077C33FECF6F1A16B268DE469C3C7744EA9A971649FC7A9616305",
"2000000000000000000000000000000F4D42FFE1492A4993F1CAD666E447", 4,
_EC_X9_62_CHAR2_239V1_SEED, 20,
- "239 bit binary curve from X9.62"
+ "X9.62 curve over a 239 bit binary field"
};
static const unsigned char _EC_X9_62_CHAR2_239V2_SEED[] = {
@@ -876,7 +876,7 @@ static const EC_CURVE_DATA _EC_X9_62_CHAR2_239V2 = {
"5667334C45AFF3B5A03BAD9DD75E2C71A99362567D5453F7FA6E227EC833",
"1555555555555555555555555555553C6F2885259C31E3FCDF154624522D", 6,
_EC_X9_62_CHAR2_239V2_SEED, 20,
- "239 bit binary curve from X9.62"
+ "X9.62 curve over a 239 bit binary field"
};
static const unsigned char _EC_X9_62_CHAR2_239V3_SEED[] = {
@@ -891,7 +891,7 @@ static const EC_CURVE_DATA _EC_X9_62_CHAR2_239V3 = {
"2E5A0EAF6E5E1305B9004DCE5C0ED7FE59A35608F33837C816D80B79F461",
"0CCCCCCCCCCCCCCCCCCCCCCCCCCCCCAC4912D2D9DF903EF9888B8A0E4CFF", 0xA,
_EC_X9_62_CHAR2_239V3_SEED, 20,
- "239 bit binary curve from X9.62"
+ "X9.62 curve over a 239 bit binary field"
};
static const EC_CURVE_DATA _EC_X9_62_CHAR2_272W1 = {
@@ -905,7 +905,7 @@ static const EC_CURVE_DATA _EC_X9_62_CHAR2_272W1 = {
"000100FAF51354E0E39E4892DF6E319C72C8161603FA45AA7B998A167B8F1E629521",
0xFF06,
NULL, 0,
- "272 bit binary curve from X9.62"
+ "X9.62 curve over a 272 bit binary field"
};
static const EC_CURVE_DATA _EC_X9_62_CHAR2_304W1 = {
@@ -923,7 +923,7 @@ static const EC_CURVE_DATA _EC_X9_62_CHAR2_304W1 = {
"000101D556572AABAC800101D556572AABAC8001022D5C91DD173F8FB561DA6899164"
"443051D", 0xFE2E,
NULL, 0,
- "304 bit binary curve from X9.62"
+ "X9.62 curve over a 304 bit binary field"
};
static const unsigned char _EC_X9_62_CHAR2_359V1_SEED[] = {
@@ -944,7 +944,7 @@ static const EC_CURVE_DATA _EC_X9_62_CHAR2_359V1 = {
"01AF286BCA1AF286BCA1AF286BCA1AF286BCA1AF286BC9FB8F6B85C556892C20A7EB9"
"64FE7719E74F490758D3B", 0x4C,
_EC_X9_62_CHAR2_359V1_SEED, 20,
- "359 bit binary curve from X9.62"
+ "X9.62 curve over a 359 bit binary field"
};
static const EC_CURVE_DATA _EC_X9_62_CHAR2_368W1 = {
@@ -962,7 +962,7 @@ static const EC_CURVE_DATA _EC_X9_62_CHAR2_368W1 = {
"00010090512DA9AF72B08349D98A5DD4C7B0532ECA51CE03E2D10F3B7AC579BD87E90"
"9AE40A6F131E9CFCE5BD967", 0xFF70,
NULL, 0,
- "368 bit binary curve from X9.62"
+ "X9.62 curve over a 368 bit binary field"
};
static const EC_CURVE_DATA _EC_X9_62_CHAR2_431R1 = {
@@ -980,7 +980,7 @@ static const EC_CURVE_DATA _EC_X9_62_CHAR2_431R1 = {
"0340340340340340340340340340340340340340340340340340340323C313FAB5058"
"9703B5EC68D3587FEC60D161CC149C1AD4A91", 0x2760,
NULL, 0,
- "431 bit binary curve from X9.62"
+ "X9.62 curve over a 431 bit binary field"
};
static const EC_CURVE_DATA _EC_WTLS_1 = {
@@ -992,7 +992,7 @@ static const EC_CURVE_DATA _EC_WTLS_1 = {
"00F44B4AF1ECC2630E08785CEBCC15",
"00FFFFFFFFFFFFFFFDBF91AF6DEA73", 2,
NULL, 0,
- "113 bit binary curve from the WTLS standard"
+ "WTLS curve over a 113 bit binary field"
};
/* IPSec curves */
@@ -1064,25 +1064,25 @@ static const ec_list_element curve_list[] = {
{ NID_X9_62_prime239v3, &_EC_X9_62_PRIME_239V3},
{ NID_X9_62_prime256v1, &_EC_X9_62_PRIME_256V1},
/* characteristic two field curves */
- /* secg curves */
+ /* NIST/SECG curves */
{ NID_sect113r1, &_EC_SECG_CHAR2_113R1},
{ NID_sect113r2, &_EC_SECG_CHAR2_113R2},
{ NID_sect131r1, &_EC_SECG_CHAR2_131R1},
{ NID_sect131r2, &_EC_SECG_CHAR2_131R2},
- { NID_sect163k1, &_EC_SECG_CHAR2_163K1},
+ { NID_sect163k1, &_EC_NIST_CHAR2_163K },
{ NID_sect163r1, &_EC_SECG_CHAR2_163R1},
- { NID_sect163r2, &_EC_SECG_CHAR2_163R2},
+ { NID_sect163r2, &_EC_NIST_CHAR2_163B },
{ NID_sect193r1, &_EC_SECG_CHAR2_193R1},
{ NID_sect193r2, &_EC_SECG_CHAR2_193R2},
- { NID_sect233k1, &_EC_SECG_CHAR2_233K1},
- { NID_sect233r1, &_EC_SECG_CHAR2_233R1},
+ { NID_sect233k1, &_EC_NIST_CHAR2_233K },
+ { NID_sect233r1, &_EC_NIST_CHAR2_233B },
{ NID_sect239k1, &_EC_SECG_CHAR2_239K1},
- { NID_sect283k1, &_EC_SECG_CHAR2_283K1},
- { NID_sect283r1, &_EC_SECG_CHAR2_283R1},
- { NID_sect409k1, &_EC_SECG_CHAR2_409K1},
- { NID_sect409r1, &_EC_SECG_CHAR2_409R1},
- { NID_sect571k1, &_EC_SECG_CHAR2_571K1},
- { NID_sect571r1, &_EC_SECG_CHAR2_571R1},
+ { NID_sect283k1, &_EC_NIST_CHAR2_283K },
+ { NID_sect283r1, &_EC_NIST_CHAR2_283B },
+ { NID_sect409k1, &_EC_NIST_CHAR2_409K },
+ { NID_sect409r1, &_EC_NIST_CHAR2_409B },
+ { NID_sect571k1, &_EC_NIST_CHAR2_571K },
+ { NID_sect571r1, &_EC_NIST_CHAR2_571B },
/* X9.62 curves */
{ NID_X9_62_c2pnb163v1, &_EC_X9_62_CHAR2_163V1},
{ NID_X9_62_c2pnb163v2, &_EC_X9_62_CHAR2_163V2},
@@ -1102,15 +1102,15 @@ static const ec_list_element curve_list[] = {
{ NID_X9_62_c2tnb431r1, &_EC_X9_62_CHAR2_431R1},
/* the WAP/WTLS curves */
{ NID_wap_wsg_idm_ecid_wtls1, &_EC_WTLS_1},
- { NID_wap_wsg_idm_ecid_wtls3, &_EC_SECG_CHAR2_163K1},
+ { NID_wap_wsg_idm_ecid_wtls3, &_EC_NIST_CHAR2_163K},
{ NID_wap_wsg_idm_ecid_wtls4, &_EC_SECG_CHAR2_113R1},
{ NID_wap_wsg_idm_ecid_wtls5, &_EC_X9_62_CHAR2_163V1},
{ NID_wap_wsg_idm_ecid_wtls6, &_EC_SECG_PRIME_112R1},
{ NID_wap_wsg_idm_ecid_wtls7, &_EC_SECG_PRIME_160R2},
{ NID_wap_wsg_idm_ecid_wtls8, &_EC_WTLS_8},
{ NID_wap_wsg_idm_ecid_wtls9, &_EC_WTLS_9 },
- { NID_wap_wsg_idm_ecid_wtls10, &_EC_SECG_CHAR2_233K1},
- { NID_wap_wsg_idm_ecid_wtls11, &_EC_SECG_CHAR2_233R1},
+ { NID_wap_wsg_idm_ecid_wtls10, &_EC_NIST_CHAR2_233K},
+ { NID_wap_wsg_idm_ecid_wtls11, &_EC_NIST_CHAR2_233B},
{ NID_wap_wsg_idm_ecid_wtls12, &_EC_WTLS_12},
/* IPSec curves */
{ NID_ipsec3, &_EC_IPSEC_155_ID3},
diff --git a/crypto/ec/ecp_smpl.c b/crypto/ec/ecp_smpl.c
index 9937719520..87ebf7b89e 100644
--- a/crypto/ec/ecp_smpl.c
+++ b/crypto/ec/ecp_smpl.c
@@ -640,6 +640,9 @@ int ec_GFp_simple_set_compressed_coordinates(const EC_GROUP *group, EC_POINT *po
BIGNUM *tmp1, *tmp2, *x, *y;
int ret = 0;
+ /* clear error queue*/
+ ERR_clear_error();
+
if (ctx == NULL)
{
ctx = new_ctx = BN_CTX_new();
@@ -711,11 +714,11 @@ int ec_GFp_simple_set_compressed_coordinates(const EC_GROUP *group, EC_POINT *po
if (!BN_mod_sqrt(y, tmp1, &group->field, ctx))
{
- unsigned long err = ERR_peek_error();
+ unsigned long err = ERR_peek_last_error();
if (ERR_GET_LIB(err) == ERR_LIB_BN && ERR_GET_REASON(err) == BN_R_NOT_A_SQUARE)
{
- (void)ERR_get_error();
+ ERR_clear_error();
ECerr(EC_F_EC_GFP_SIMPLE_SET_COMPRESSED_COORDINATES, EC_R_INVALID_COMPRESSED_POINT);
}
else
diff --git a/crypto/evp/evp_lib.c b/crypto/evp/evp_lib.c
index b532c45de3..36213964dd 100644
--- a/crypto/evp/evp_lib.c
+++ b/crypto/evp/evp_lib.c
@@ -68,7 +68,7 @@ int EVP_CIPHER_param_to_asn1(EVP_CIPHER_CTX *c, ASN1_TYPE *type)
if (c->cipher->set_asn1_parameters != NULL)
ret=c->cipher->set_asn1_parameters(c,type);
else
- ret=1;
+ ret=-1;
return(ret);
}
@@ -79,7 +79,7 @@ int EVP_CIPHER_asn1_to_param(EVP_CIPHER_CTX *c, ASN1_TYPE *type)
if (c->cipher->get_asn1_parameters != NULL)
ret=c->cipher->get_asn1_parameters(c,type);
else
- ret=1;
+ ret=-1;
return(ret);
}
diff --git a/crypto/evp/evp_test.c b/crypto/evp/evp_test.c
index 28460173f7..2dc8b8c158 100644
--- a/crypto/evp/evp_test.c
+++ b/crypto/evp/evp_test.c
@@ -162,6 +162,7 @@ static void test1(const EVP_CIPHER *c,const unsigned char *key,int kn,
if(!EVP_EncryptInit_ex(&ctx,c,NULL,key,iv))
{
fprintf(stderr,"EncryptInit failed\n");
+ ERR_print_errors_fp(stderr);
test1_exit(10);
}
EVP_CIPHER_CTX_set_padding(&ctx,0);
@@ -169,11 +170,13 @@ static void test1(const EVP_CIPHER *c,const unsigned char *key,int kn,
if(!EVP_EncryptUpdate(&ctx,out,&outl,plaintext,pn))
{
fprintf(stderr,"Encrypt failed\n");
+ ERR_print_errors_fp(stderr);
test1_exit(6);
}
if(!EVP_EncryptFinal_ex(&ctx,out+outl,&outl2))
{
fprintf(stderr,"EncryptFinal failed\n");
+ ERR_print_errors_fp(stderr);
test1_exit(7);
}
@@ -198,6 +201,7 @@ static void test1(const EVP_CIPHER *c,const unsigned char *key,int kn,
if(!EVP_DecryptInit_ex(&ctx,c,NULL,key,iv))
{
fprintf(stderr,"DecryptInit failed\n");
+ ERR_print_errors_fp(stderr);
test1_exit(11);
}
EVP_CIPHER_CTX_set_padding(&ctx,0);
@@ -205,11 +209,13 @@ static void test1(const EVP_CIPHER *c,const unsigned char *key,int kn,
if(!EVP_DecryptUpdate(&ctx,out,&outl,ciphertext,cn))
{
fprintf(stderr,"Decrypt failed\n");
+ ERR_print_errors_fp(stderr);
test1_exit(6);
}
if(!EVP_DecryptFinal_ex(&ctx,out+outl,&outl2))
{
fprintf(stderr,"DecryptFinal failed\n");
+ ERR_print_errors_fp(stderr);
test1_exit(7);
}
@@ -272,16 +278,19 @@ static int test_digest(const char *digest,
if(!EVP_DigestInit_ex(&ctx,d, NULL))
{
fprintf(stderr,"DigestInit failed\n");
+ ERR_print_errors_fp(stderr);
EXIT(100);
}
if(!EVP_DigestUpdate(&ctx,plaintext,pn))
{
fprintf(stderr,"DigestUpdate failed\n");
+ ERR_print_errors_fp(stderr);
EXIT(101);
}
if(!EVP_DigestFinal_ex(&ctx,md,&mdn))
{
fprintf(stderr,"DigestFinal failed\n");
+ ERR_print_errors_fp(stderr);
EXIT(101);
}
EVP_MD_CTX_cleanup(&ctx);
diff --git a/crypto/o_str.c b/crypto/o_str.c
index 42b25d078f..7189d13352 100644
--- a/crypto/o_str.c
+++ b/crypto/o_str.c
@@ -57,9 +57,13 @@
*/
#include <ctype.h>
-#include <strings.h>
-#include "o_str.h"
#include <openssl/e_os2.h>
+#ifdef OPENSSL_SYS_WINDOWS
+# include <string.h>
+#else
+# include <strings.h>
+#endif
+#include "o_str.h"
#undef strncasecmp
#undef strcasecmp
diff --git a/crypto/o_str.h b/crypto/o_str.h
index 744a6e27d3..4a70a9e00b 100644
--- a/crypto/o_str.h
+++ b/crypto/o_str.h
@@ -59,7 +59,7 @@
#ifndef HEADER_O_STR_H
#define HEADER_O_STR_H
-#include <string.h>
+#include <stddef.h> /* to get size_t */
int OPENSSL_strcasecmp(const char *str1, const char *str2);
int OPENSSL_strncasecmp(const char *str1, const char *str2, size_t n);
diff --git a/crypto/pem/pem.h b/crypto/pem/pem.h
index 57a2cfe92c..ce5b75c315 100644
--- a/crypto/pem/pem.h
+++ b/crypto/pem/pem.h
@@ -229,7 +229,7 @@ int PEM_write_##name(FILE *fp, type *x) \
{ \
return(PEM_ASN1_write((int (*)())i2d_##asn1,str,fp, (char *)x, \
NULL,NULL,0,NULL,NULL)); \
-}
+}
#define IMPLEMENT_PEM_write_cb_fp(name, type, str, asn1) \
int PEM_write_##name(FILE *fp, type *x, const EVP_CIPHER *enc, \
diff --git a/crypto/rand/rand_egd.c b/crypto/rand/rand_egd.c
index 3eb36c7e5a..e34f07c5e8 100644
--- a/crypto/rand/rand_egd.c
+++ b/crypto/rand/rand_egd.c
@@ -95,7 +95,7 @@
* RAND_egd() is a wrapper for RAND_egd_bytes() with numbytes=255.
*/
-#if defined(OPENSSL_SYS_WIN32) || defined(OPENSSL_SYS_VMS) || defined(OPENSSL_SYS_MSDOS) || defined(OPENSSL_SYS_VXWORKS) || defined(OPENSSL_SYS_NETWARE)
+#if defined(OPENSSL_SYS_WIN32) || defined(OPENSSL_SYS_VMS) || defined(OPENSSL_SYS_MSDOS) || defined(OPENSSL_SYS_VXWORKS) || defined(OPENSSL_SYS_NETWARE) || defined(OPENSSL_SYS_VOS)
int RAND_query_egd_bytes(const char *path, unsigned char *buf, int bytes)
{
return(-1);
diff --git a/crypto/rc4/Makefile.ssl b/crypto/rc4/Makefile.ssl
index 3e602662be..a965c02d94 100644
--- a/crypto/rc4/Makefile.ssl
+++ b/crypto/rc4/Makefile.ssl
@@ -67,6 +67,8 @@ asm/rx86bsdi.o: asm/rx86unix.cpp
asm/rx86unix.cpp: asm/rc4-586.pl ../perlasm/x86asm.pl
(cd asm; $(PERL) rc4-586.pl cpp >rx86unix.cpp)
+asm/rc4-amd64.s: asm/rc4-amd64.pl; $(PERL) $< $@
+
files:
$(PERL) $(TOP)/util/files.pl Makefile.ssl >> $(TOP)/MINFO
diff --git a/crypto/sha/asm/sha512-sse2.pl b/crypto/sha/asm/sha512-sse2.pl
index 797aedacd7..0596d5c503 100644
--- a/crypto/sha/asm/sha512-sse2.pl
+++ b/crypto/sha/asm/sha512-sse2.pl
@@ -23,7 +23,7 @@
# 2.4GHz P4 1.4GHz AMD32 1.4GHz AMD64(*)
# SHA256/gcc(*) 54 43 59
# SHA512/gcc 17 23 92
-# SHA512/sse2 54(**) 55(**)
+# SHA512/sse2 61(**) 57(**)
# SHA512/icc 26 28
# SHA256/icc(*) 65 54
#
@@ -81,9 +81,6 @@ sub SHA2_ROUND()
&movq ("mm4",&QWP($Foff,$W512)); # load f
&movq ("mm5",&QWP($Goff,$W512)); # load g
&movq ("mm6",&QWP($Hoff,$W512)); # load h
- &movq (&QWP($Foff,$W512),$E); # f = e
- &movq (&QWP($Goff,$W512),"mm4"); # g = f
- &movq (&QWP($Hoff,$W512),"mm5"); # h = g
&movq ("mm2",$E); # %mm2 is sliding right
&movq ("mm3",$E); # %mm3 is sliding left
@@ -100,6 +97,10 @@ sub SHA2_ROUND()
&pxor ("mm7","mm2");
&pxor ("mm7","mm3"); # T1=Sigma1_512(e)
+ &movq (&QWP($Foff,$W512),$E); # f = e
+ &movq (&QWP($Goff,$W512),"mm4"); # g = f
+ &movq (&QWP($Hoff,$W512),"mm5"); # h = g
+
&pxor ("mm4","mm5"); # f^=g
&pand ("mm4",$E); # f&=e
&pxor ("mm4","mm5"); # f^=g
@@ -108,9 +109,6 @@ sub SHA2_ROUND()
&movq ("mm2",&QWP($Boff,$W512)); # load b
&movq ("mm3",&QWP($Coff,$W512)); # load c
&movq ($E,&QWP($Doff,$W512)); # e = d
- &movq (&QWP($Boff,$W512),$A); # b = a
- &movq (&QWP($Coff,$W512),"mm2"); # c = b
- &movq (&QWP($Doff,$W512),"mm3"); # d = c
&paddq ("mm7","mm6"); # T1+=h
&paddq ("mm7",&QWP(0,$K512,$kidx,8)); # T1+=K512[i]
@@ -132,12 +130,15 @@ sub SHA2_ROUND()
&pxor ("mm6","mm4");
&pxor ("mm6","mm5"); # T2=Sigma0_512(a)
- &movq ("mm4","mm2"); # %mm4=b
- &pand ("mm2",$A); # b&=a
- &pand ("mm4","mm3"); # %mm4&=c
- &pand ("mm3",$A); # c&=a
- &pxor ("mm4","mm2"); # %mm4^=b&a
- &pxor ("mm4","mm3"); # %mm4^=c&a
+ &movq (&QWP($Boff,$W512),$A); # b = a
+ &movq (&QWP($Coff,$W512),"mm2"); # c = b
+ &movq (&QWP($Doff,$W512),"mm3"); # d = c
+
+ &movq ("mm4",$A); # %mm4=a
+ &por ($A,"mm3"); # a=a|c
+ &pand ("mm4","mm3"); # %mm4=a&c
+ &pand ($A,"mm2"); # a=(a|c)&b
+ &por ("mm4",$A); # %mm4=(a&c)|((a|c)&b)
&paddq ("mm6","mm4"); # T2+=Maj(a,b,c)
&movq ($A,"mm7"); # a=T1
@@ -201,8 +202,6 @@ $func="sha512_block_sse2";
# available memory slots to fill. It will only relieve some
# pressure off memory bus...
-&align(8);
-&set_label("_1st_loop"); # 0-15
# flip input stream byte order...
&mov ("eax",&DWP(0,$data,$Widx,8));
&mov ("ebx",&DWP(4,$data,$Widx,8));
@@ -213,10 +212,24 @@ $func="sha512_block_sse2";
&mov (&DWP(128+0,$W512,$Widx,8),"ebx"); # copy of W512[i]
&mov (&DWP(128+4,$W512,$Widx,8),"eax");
+&align(8);
+&set_label("_1st_loop"); # 0-15
+ # flip input stream byte order...
+ &mov ("eax",&DWP(0+8,$data,$Widx,8));
+ &mov ("ebx",&DWP(4+8,$data,$Widx,8));
+ &bswap ("eax");
+ &bswap ("ebx");
+ &mov (&DWP(0+8,$W512,$Widx,8),"ebx"); # W512[i]
+ &mov (&DWP(4+8,$W512,$Widx,8),"eax");
+ &mov (&DWP(128+0+8,$W512,$Widx,8),"ebx"); # copy of W512[i]
+ &mov (&DWP(128+4+8,$W512,$Widx,8),"eax");
+&set_label("_1st_looplet");
&SHA2_ROUND($Widx,$Widx); &inc($Widx);
-&cmp ($Widx,16)
+&cmp ($Widx,15)
&jl (&label("_1st_loop"));
+&je (&label("_1st_looplet")); # playing similar trick on 2nd loop
+ # does not improve performance...
$Kidx = "ebx"; # start using %ebx as Kidx
&mov ($Kidx,$Widx);
diff --git a/crypto/symhacks.h b/crypto/symhacks.h
index 67fa4304b3..40237178d9 100644
--- a/crypto/symhacks.h
+++ b/crypto/symhacks.h
@@ -157,10 +157,8 @@
#define SSL_get_ex_data_X509_STORE_CTX_idx SSL_get_ex_d_X509_STORE_CTX_idx
#undef SSL_add_file_cert_subjects_to_stack
#define SSL_add_file_cert_subjects_to_stack SSL_add_file_cert_subjs_to_stk
-#if 0 /* This function is not defined i VMS. */
#undef SSL_add_dir_cert_subjects_to_stack
#define SSL_add_dir_cert_subjects_to_stack SSL_add_dir_cert_subjs_to_stk
-#endif
#undef SSL_CTX_use_certificate_chain_file
#define SSL_CTX_use_certificate_chain_file SSL_CTX_use_cert_chain_file
#undef SSL_CTX_set_cert_verify_callback
diff --git a/crypto/x509v3/ext_dat.h b/crypto/x509v3/ext_dat.h
index bf693698b7..7be8565189 100644
--- a/crypto/x509v3/ext_dat.h
+++ b/crypto/x509v3/ext_dat.h
@@ -60,7 +60,8 @@
extern X509V3_EXT_METHOD v3_bcons, v3_nscert, v3_key_usage, v3_ext_ku;
extern X509V3_EXT_METHOD v3_pkey_usage_period, v3_sxnet, v3_info, v3_sinfo;
extern X509V3_EXT_METHOD v3_ns_ia5_list[], v3_alt[], v3_skey_id, v3_akey_id;
-extern X509V3_EXT_METHOD v3_crl_num, v3_crl_reason, v3_crl_invdate, v3_cpols, v3_crld;
+extern X509V3_EXT_METHOD v3_crl_num, v3_crl_reason, v3_crl_invdate;
+extern X509V3_EXT_METHOD v3_delta_crl, v3_cpols, v3_crld;
extern X509V3_EXT_METHOD v3_ocsp_nonce, v3_ocsp_accresp, v3_ocsp_acutoff;
extern X509V3_EXT_METHOD v3_ocsp_crlid, v3_ocsp_nocheck, v3_ocsp_serviceloc;
extern X509V3_EXT_METHOD v3_crl_hold;
@@ -91,6 +92,7 @@ static X509V3_EXT_METHOD *standard_exts[] = {
&v3_akey_id,
&v3_crld,
&v3_ext_ku,
+&v3_delta_crl,
&v3_crl_reason,
#ifndef OPENSSL_NO_OCSP
&v3_crl_invdate,
diff --git a/crypto/x509v3/pcy_node.c b/crypto/x509v3/pcy_node.c
index 254f3484d4..dcc1554e29 100644
--- a/crypto/x509v3/pcy_node.c
+++ b/crypto/x509v3/pcy_node.c
@@ -56,7 +56,6 @@
*
*/
-#include <memory.h>
#include <openssl/asn1.h>
#include <openssl/x509.h>
#include <openssl/x509v3.h>
diff --git a/crypto/x509v3/v3_int.c b/crypto/x509v3/v3_int.c
index fd6bebbb73..85e79c05ca 100644
--- a/crypto/x509v3/v3_int.c
+++ b/crypto/x509v3/v3_int.c
@@ -67,6 +67,13 @@ X509V3_EXT_METHOD v3_crl_num = {
0,
0,0,0,0, NULL};
+X509V3_EXT_METHOD v3_delta_crl = {
+ NID_delta_crl, 0, ASN1_ITEM_ref(ASN1_INTEGER),
+ 0,0,0,0,
+ (X509V3_EXT_I2S)i2s_ASN1_INTEGER,
+ 0,
+ 0,0,0,0, NULL};
+
static void * s2i_asn1_int(X509V3_EXT_METHOD *meth, X509V3_CTX *ctx, char *value)
{
return s2i_ASN1_INTEGER(meth, value);
diff --git a/doc/crypto/BN_num_bytes.pod b/doc/crypto/BN_num_bytes.pod
index 61589fb9ac..a6a2e3f819 100644
--- a/doc/crypto/BN_num_bytes.pod
+++ b/doc/crypto/BN_num_bytes.pod
@@ -16,8 +16,14 @@ BN_num_bits, BN_num_bytes, BN_num_bits_word - get BIGNUM size
=head1 DESCRIPTION
-These functions return the size of a B<BIGNUM> in bytes or bits,
-and the size of an unsigned integer in bits.
+BN_num_bytes() returns the size of a B<BIGNUM> in bytes.
+
+BN_num_bits_word() returns the number of significant bits in a word.
+If we take 0x00000432 as an example, it returns 11, not 16, not 32.
+Basically, except for a zero, it returns I<floor(log2(w))+1>.
+
+BN_num_bits() returns the number of significant bits in a B<BIGNUM>,
+following the same principle as BN_num_bits_word().
BN_num_bytes() is a macro.
@@ -25,9 +31,23 @@ BN_num_bytes() is a macro.
The size.
+=head1 NOTES
+
+Some have tried using BN_num_bits() on individual numbers in RSA keys,
+DH keys and DSA keys, and found that they don't always come up with
+the number of bits they expected (something like 512, 1024, 2048,
+...). This is because generating a number with some specific number
+of bits doesn't always set the highest bits, thereby making the number
+of I<significant> bits a little lower. If you want to know the "key
+size" of such a key, either use functions like RSA_size(), DH_size()
+and DSA_size(), or use BN_num_bytes() and multiply with 8 (although
+there's no real guarantee that will match the "key size", just a lot
+more probability).
+
=head1 SEE ALSO
-L<bn(3)|bn(3)>
+L<bn(3)|bn(3)>, L<DH_size(3)|DH_size(3)>, L<DSA_size(3)|DSA_size(3)>,
+L<RSA_size(3)|RSA_size(3)>
=head1 HISTORY
diff --git a/e_os2.h b/e_os2.h
index ecfc6c5d4e..04d00ec78d 100644
--- a/e_os2.h
+++ b/e_os2.h
@@ -195,6 +195,11 @@ extern "C" {
# endif
#endif
+/* --------------------------------- VOS ----------------------------------- */
+#ifdef OPENSSL_SYSNAME_VOS
+# define OPENSSL_SYS_VOS
+#endif
+
/* ------------------------------- VxWorks --------------------------------- */
#ifdef OPENSSL_SYSNAME_VXWORKS
# define OPENSSL_SYS_VXWORKS
diff --git a/makevms.com b/makevms.com
index 8033ffc8d7..860540001e 100755
--- a/makevms.com
+++ b/makevms.com
@@ -365,7 +365,7 @@ $! Copy a lot of files around.
$!
$ SOFTLINKS:
$!
-$! Tell The User We Are Partly Rebuilding The [.TEST] Directory.
+$! Tell The User We Are Partly Rebuilding The [.APPS] Directory.
$!
$ WRITE SYS$OUTPUT "Rebuilding The '[.APPS]MD4.C', '[.APPS]MD5.C' And '[.APPS]RMD160.C' Files."
$!
@@ -396,6 +396,7 @@ $!
$! Copy all the *TEST.C files from [.CRYPTO...] into [.TEST]
$!
$ COPY SYS$DISK:[.CRYPTO.*]%*TEST.C SYS$DISK:[.TEST]
+$ COPY SYS$DISK:[.CRYPTO.SHA]SHA%%%T.C SYS$DISK:[.TEST]
$ COPY SYS$DISK:[.CRYPTO.EVP]EVPTESTS.TXT SYS$DISK:[.TEST]
$!
$! Copy all the *TEST.C files from [.SSL...] into [.TEST]
diff --git a/ssl/Makefile.ssl b/ssl/Makefile.ssl
index 3adc71e5d8..d82699d18f 100644
--- a/ssl/Makefile.ssl
+++ b/ssl/Makefile.ssl
@@ -500,26 +500,26 @@ ssl_asn1.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h
ssl_asn1.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
ssl_asn1.o: ../include/openssl/tls1.h ../include/openssl/x509.h
ssl_asn1.o: ../include/openssl/x509_vfy.h ssl_asn1.c ssl_locl.h
-ssl_cert.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
-ssl_cert.o: ../include/openssl/bn.h ../include/openssl/buffer.h
-ssl_cert.o: ../include/openssl/comp.h ../include/openssl/conf.h
-ssl_cert.o: ../include/openssl/crypto.h ../include/openssl/dh.h
-ssl_cert.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
-ssl_cert.o: ../include/openssl/ec.h ../include/openssl/ecdh.h
-ssl_cert.o: ../include/openssl/ecdsa.h ../include/openssl/err.h
-ssl_cert.o: ../include/openssl/evp.h ../include/openssl/kssl.h
-ssl_cert.o: ../include/openssl/lhash.h ../include/openssl/obj_mac.h
-ssl_cert.o: ../include/openssl/objects.h ../include/openssl/opensslconf.h
-ssl_cert.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
-ssl_cert.o: ../include/openssl/pem.h ../include/openssl/pem2.h
-ssl_cert.o: ../include/openssl/pkcs7.h ../include/openssl/rsa.h
-ssl_cert.o: ../include/openssl/safestack.h ../include/openssl/sha.h
-ssl_cert.o: ../include/openssl/ssl.h ../include/openssl/ssl2.h
-ssl_cert.o: ../include/openssl/ssl23.h ../include/openssl/ssl3.h
-ssl_cert.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
-ssl_cert.o: ../include/openssl/tls1.h ../include/openssl/x509.h
-ssl_cert.o: ../include/openssl/x509_vfy.h ../include/openssl/x509v3.h
-ssl_cert.o: ssl_cert.c ssl_locl.h
+ssl_cert.o: ../crypto/o_dir.h ../e_os.h ../include/openssl/asn1.h
+ssl_cert.o: ../include/openssl/bio.h ../include/openssl/bn.h
+ssl_cert.o: ../include/openssl/buffer.h ../include/openssl/comp.h
+ssl_cert.o: ../include/openssl/conf.h ../include/openssl/crypto.h
+ssl_cert.o: ../include/openssl/dh.h ../include/openssl/dsa.h
+ssl_cert.o: ../include/openssl/e_os2.h ../include/openssl/ec.h
+ssl_cert.o: ../include/openssl/ecdh.h ../include/openssl/ecdsa.h
+ssl_cert.o: ../include/openssl/err.h ../include/openssl/evp.h
+ssl_cert.o: ../include/openssl/kssl.h ../include/openssl/lhash.h
+ssl_cert.o: ../include/openssl/obj_mac.h ../include/openssl/objects.h
+ssl_cert.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
+ssl_cert.o: ../include/openssl/ossl_typ.h ../include/openssl/pem.h
+ssl_cert.o: ../include/openssl/pem2.h ../include/openssl/pkcs7.h
+ssl_cert.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
+ssl_cert.o: ../include/openssl/sha.h ../include/openssl/ssl.h
+ssl_cert.o: ../include/openssl/ssl2.h ../include/openssl/ssl23.h
+ssl_cert.o: ../include/openssl/ssl3.h ../include/openssl/stack.h
+ssl_cert.o: ../include/openssl/symhacks.h ../include/openssl/tls1.h
+ssl_cert.o: ../include/openssl/x509.h ../include/openssl/x509_vfy.h
+ssl_cert.o: ../include/openssl/x509v3.h ssl_cert.c ssl_locl.h
ssl_ciph.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
ssl_ciph.o: ../include/openssl/buffer.h ../include/openssl/comp.h
ssl_ciph.o: ../include/openssl/crypto.h ../include/openssl/dsa.h
diff --git a/ssl/ssl_cert.c b/ssl/ssl_cert.c
index 258da8b21d..4cab28a200 100644
--- a/ssl/ssl_cert.c
+++ b/ssl/ssl_cert.c
@@ -116,19 +116,7 @@
# include <sys/types.h>
#endif
-#if !defined(OPENSSL_SYS_WIN32) && !defined(OPENSSL_SYS_VMS) && !defined(NeXT) && !defined(MAC_OS_pre_X)
-#include <dirent.h>
-#endif
-
-#if defined(WIN32)
-#include <windows.h>
-#endif
-
-#ifdef NeXT
-#include <sys/dir.h>
-#define dirent direct
-#endif
-
+#include "o_dir.h"
#include <openssl/objects.h>
#include <openssl/bio.h>
#include <openssl/pem.h>
@@ -761,131 +749,52 @@ err:
* certs may have been added to \c stack.
*/
-#ifndef OPENSSL_SYS_WIN32
-#ifndef OPENSSL_SYS_VMS /* XXXX This may be fixed in the future */
-#ifndef OPENSSL_SYS_MACINTOSH_CLASSIC /* XXXXX: Better scheme needed! */
-
int SSL_add_dir_cert_subjects_to_stack(STACK_OF(X509_NAME) *stack,
const char *dir)
{
- DIR *d;
- struct dirent *dstruct;
+ OPENSSL_DIR_CTX *d = NULL;
+ const char *filename;
int ret = 0;
CRYPTO_w_lock(CRYPTO_LOCK_READDIR);
- d = opendir(dir);
/* Note that a side effect is that the CAs will be sorted by name */
- if(!d)
- {
- SYSerr(SYS_F_OPENDIR, get_last_sys_error());
- ERR_add_error_data(3, "opendir('", dir, "')");
- SSLerr(SSL_F_SSL_ADD_DIR_CERT_SUBJECTS_TO_STACK, ERR_R_SYS_LIB);
- goto err;
- }
-
- while((dstruct=readdir(d)))
+
+ while((filename = OPENSSL_DIR_read(&d, dir)))
{
char buf[1024];
int r;
-
- if(strlen(dir)+strlen(dstruct->d_name)+2 > sizeof buf)
+
+ if(strlen(dir)+strlen(filename)+2 > sizeof buf)
{
SSLerr(SSL_F_SSL_ADD_DIR_CERT_SUBJECTS_TO_STACK,SSL_R_PATH_TOO_LONG);
goto err;
}
-
- r = BIO_snprintf(buf,sizeof buf,"%s/%s",dir,dstruct->d_name);
+
+#ifdef OPENSSL_SYS_VMS
+ r = BIO_snprintf(buf,sizeof buf,"%s%s",dir,filename);
+#else
+ r = BIO_snprintf(buf,sizeof buf,"%s/%s",dir,filename);
+#endif
if (r <= 0 || r >= (int)sizeof(buf))
goto err;
if(!SSL_add_file_cert_subjects_to_stack(stack,buf))
goto err;
}
- ret = 1;
-
-err:
- if (d) closedir(d);
- CRYPTO_w_unlock(CRYPTO_LOCK_READDIR);
- return ret;
- }
-
-#endif
-#endif
-
-#else /* OPENSSL_SYS_WIN32 */
-
-int SSL_add_dir_cert_subjects_to_stack(STACK_OF(X509_NAME) *stack,
- const char *dir)
- {
- WIN32_FIND_DATA FindFileData;
- HANDLE hFind;
- int ret = 0;
-#ifdef OPENSSL_SYS_WINCE
- WCHAR* wdir = NULL;
-#endif
-
- CRYPTO_w_lock(CRYPTO_LOCK_READDIR);
-
-#ifdef OPENSSL_SYS_WINCE
- /* convert strings to UNICODE */
- {
- BOOL result = FALSE;
- int i;
- wdir = malloc((strlen(dir)+1)*2);
- if (wdir == NULL)
- goto err_noclose;
- for (i=0; i<(int)strlen(dir)+1; i++)
- wdir[i] = (short)dir[i];
- }
-#endif
-#ifdef OPENSSL_SYS_WINCE
- hFind = FindFirstFile(wdir, &FindFileData);
-#else
- hFind = FindFirstFile(dir, &FindFileData);
-#endif
- /* Note that a side effect is that the CAs will be sorted by name */
- if(hFind == INVALID_HANDLE_VALUE)
+ if (errno)
{
SYSerr(SYS_F_OPENDIR, get_last_sys_error());
- ERR_add_error_data(3, "opendir('", dir, "')");
+ ERR_add_error_data(3, "OPENSSL_DIR_read(&ctx, '", dir, "')");
SSLerr(SSL_F_SSL_ADD_DIR_CERT_SUBJECTS_TO_STACK, ERR_R_SYS_LIB);
- goto err_noclose;
- }
-
- do
- {
- char buf[1024];
- int r;
-
-#ifdef OPENSSL_SYS_WINCE
- if(strlen(dir)+_tcslen(FindFileData.cFileName)+2 > sizeof buf)
-#else
- if(strlen(dir)+strlen(FindFileData.cFileName)+2 > sizeof buf)
-#endif
- {
- SSLerr(SSL_F_SSL_ADD_DIR_CERT_SUBJECTS_TO_STACK,SSL_R_PATH_TOO_LONG);
- goto err;
- }
-
- r = BIO_snprintf(buf,sizeof buf,"%s/%s",dir,FindFileData.cFileName);
- if (r <= 0 || r >= sizeof buf)
- goto err;
- if(!SSL_add_file_cert_subjects_to_stack(stack,buf))
- goto err;
+ goto err;
}
- while (FindNextFile(hFind, &FindFileData) != FALSE);
+
ret = 1;
err:
- FindClose(hFind);
-err_noclose:
-#ifdef OPENSSL_SYS_WINCE
- if (wdir != NULL)
- free(wdir);
-#endif
+ if (d) OPENSSL_DIR_end(&d);
CRYPTO_w_unlock(CRYPTO_LOCK_READDIR);
return ret;
}
-#endif
diff --git a/test/Makefile.ssl b/test/Makefile.ssl
index de522ed72d..b5c23a639f 100644
--- a/test/Makefile.ssl
+++ b/test/Makefile.ssl
@@ -68,16 +68,16 @@ EVPTEST= evp_test
TESTS= alltests
-EXE= $(BNTEST) $(ECTEST) $(ECDSATEST) $(ECDHTEST) $(IDEATEST) \
- $(MD2TEST) $(MD4TEST) $(MD5TEST) $(HMACTEST) \
- $(RC2TEST) $(RC4TEST) $(RC5TEST) \
- $(DESTEST) $(SHATEST) $(SHA1TEST) $(SHA256TEST) $(SHA512TEST) \
- $(MDC2TEST) $(RMDTEST) \
- $(RANDTEST) $(DHTEST) $(ENGINETEST) \
- $(BFTEST) $(CASTTEST) $(SSLTEST) $(EXPTEST) $(DSATEST) $(RSATEST) \
- $(EVPTEST)
+EXE= $(BNTEST)$(EXE_EXT) $(ECTEST)$(EXE_EXT) $(ECDSATEST)$(EXE_EXT) $(ECDHTEST)$(EXE_EXT) $(IDEATEST)$(EXE_EXT) \
+ $(MD2TEST)$(EXE_EXT) $(MD4TEST)$(EXE_EXT) $(MD5TEST)$(EXE_EXT) $(HMACTEST)$(EXE_EXT) \
+ $(RC2TEST)$(EXE_EXT) $(RC4TEST)$(EXE_EXT) $(RC5TEST)$(EXE_EXT) \
+ $(DESTEST)$(EXE_EXT) $(SHATEST)$(EXE_EXT) $(SHA1TEST)$(EXE_EXT) $(SHA256TEST)$(EXE_EXT) $(SHA512TEST)$(EXE_EXT) \
+ $(MDC2TEST)$(EXE_EXT) $(RMDTEST)$(EXE_EXT) \
+ $(RANDTEST)$(EXE_EXT) $(DHTEST)$(EXE_EXT) $(ENGINETEST)$(EXE_EXT) \
+ $(BFTEST)$(EXE_EXT) $(CASTTEST)$(EXE_EXT) $(SSLTEST)$(EXE_EXT) $(EXPTEST)$(EXE_EXT) $(DSATEST)$(EXE_EXT) $(RSATEST)$(EXE_EXT) \
+ $(EVPTEST)$(EXE_EXT)
-# $(METHTEST)
+# $(METHTEST)$(EXE_EXT)
OBJ= $(BNTEST).o $(ECTEST).o $(ECDSATEST).o $(ECDHTEST).o $(IDEATEST).o \
$(MD2TEST).o $(MD4TEST).o $(MD5TEST).o \
@@ -107,7 +107,7 @@ top:
all: exe
-exe: $(EXE) dummytest
+exe: $(EXE) dummytest$(EXE_EXT)
files:
$(PERL) $(TOP)/util/files.pl Makefile.ssl >> $(TOP)/MINFO
@@ -310,7 +310,7 @@ $(DLIBSSL):
$(DLIBCRYPTO):
(cd ..; $(MAKE) DIRS=crypto all)
-$(RSATEST): $(RSATEST).o $(DLIBCRYPTO)
+$(RSATEST)$(EXE_EXT): $(RSATEST).o $(DLIBCRYPTO)
shlib_target=; if [ -n "$(SHARED_LIBS)" ]; then \
shlib_target="$(SHLIB_TARGET)"; \
fi; \
@@ -320,13 +320,13 @@ $(RSATEST): $(RSATEST).o $(DLIBCRYPTO)
LIBRARIES="$(LIBCRYPTO)"; \
fi; \
$(NEWMAKE) -f $(TOP)/Makefile.shared \
- APPNAME=$(RSATEST) LDFLAGS="$(CFLAGS)" \
+ APPNAME=$(RSATEST)$(EXE_EXT) LDFLAGS="$(CFLAGS)" \
OBJECTS="$(RSATEST).o" \
LIBDEPS="$(PEX_LIBS) $$LIBRARIES $(EX_LIBS)" \
LIBRPATH=$(INSTALLTOP)/lib \
link_app.$${shlib_target}
-$(BNTEST): $(BNTEST).o $(DLIBCRYPTO)
+$(BNTEST)$(EXE_EXT): $(BNTEST).o $(DLIBCRYPTO)
shlib_target=; if [ -n "$(SHARED_LIBS)" ]; then \
shlib_target="$(SHLIB_TARGET)"; \
fi; \
@@ -336,13 +336,13 @@ $(BNTEST): $(BNTEST).o $(DLIBCRYPTO)
LIBRARIES="$(LIBCRYPTO)"; \
fi; \
$(NEWMAKE) -f $(TOP)/Makefile.shared \
- APPNAME=$(BNTEST) LDFLAGS="$(CFLAGS)" \
+ APPNAME=$(BNTEST)$(EXE_EXT) LDFLAGS="$(CFLAGS)" \
OBJECTS="$(BNTEST).o" \
LIBDEPS="$(PEX_LIBS) $$LIBRARIES $(EX_LIBS)" \
LIBRPATH=$(INSTALLTOP)/lib \
link_app.$${shlib_target}
-$(ECTEST): $(ECTEST).o $(DLIBCRYPTO)
+$(ECTEST)$(EXE_EXT): $(ECTEST).o $(DLIBCRYPTO)
shlib_target=; if [ -n "$(SHARED_LIBS)" ]; then \
shlib_target="$(SHLIB_TARGET)"; \
fi; \
@@ -352,13 +352,13 @@ $(ECTEST): $(ECTEST).o $(DLIBCRYPTO)
LIBRARIES="$(LIBCRYPTO)"; \
fi; \
$(NEWMAKE) -f $(TOP)/Makefile.shared \
- APPNAME=$(ECTEST) LDFLAGS="$(CFLAGS)" \
+ APPNAME=$(ECTEST)$(EXE_EXT) LDFLAGS="$(CFLAGS)" \
OBJECTS="$(ECTEST).o" \
LIBDEPS="$(PEX_LIBS) $$LIBRARIES $(EX_LIBS)" \
LIBRPATH=$(INSTALLTOP)/lib \
link_app.$${shlib_target}
-$(EXPTEST): $(EXPTEST).o $(DLIBCRYPTO)
+$(EXPTEST)$(EXE_EXT): $(EXPTEST).o $(DLIBCRYPTO)
shlib_target=; if [ -n "$(SHARED_LIBS)" ]; then \
shlib_target="$(SHLIB_TARGET)"; \
fi; \
@@ -368,13 +368,13 @@ $(EXPTEST): $(EXPTEST).o $(DLIBCRYPTO)
LIBRARIES="$(LIBCRYPTO)"; \
fi; \
$(NEWMAKE) -f $(TOP)/Makefile.shared \
- APPNAME=$(EXPTEST) LDFLAGS="$(CFLAGS)" \
+ APPNAME=$(EXPTEST)$(EXE_EXT) LDFLAGS="$(CFLAGS)" \
OBJECTS="$(EXPTEST).o" \
LIBDEPS="$(PEX_LIBS) $$LIBRARIES $(EX_LIBS)" \
LIBRPATH=$(INSTALLTOP)/lib \
link_app.$${shlib_target}
-$(IDEATEST): $(IDEATEST).o $(DLIBCRYPTO)
+$(IDEATEST)$(EXE_EXT): $(IDEATEST).o $(DLIBCRYPTO)
shlib_target=; if [ -n "$(SHARED_LIBS)" ]; then \
shlib_target="$(SHLIB_TARGET)"; \
fi; \
@@ -384,13 +384,13 @@ $(IDEATEST): $(IDEATEST).o $(DLIBCRYPTO)
LIBRARIES="$(LIBCRYPTO)"; \
fi; \
$(NEWMAKE) -f $(TOP)/Makefile.shared \
- APPNAME=$(IDEATEST) LDFLAGS="$(CFLAGS)" \
+ APPNAME=$(IDEATEST)$(EXE_EXT) LDFLAGS="$(CFLAGS)" \
OBJECTS="$(IDEATEST).o" \
LIBDEPS="$(PEX_LIBS) $$LIBRARIES $(EX_LIBS)" \
LIBRPATH=$(INSTALLTOP)/lib \
link_app.$${shlib_target}
-$(MD2TEST): $(MD2TEST).o $(DLIBCRYPTO)
+$(MD2TEST)$(EXE_EXT): $(MD2TEST).o $(DLIBCRYPTO)
shlib_target=; if [ -n "$(SHARED_LIBS)" ]; then \
shlib_target="$(SHLIB_TARGET)"; \
fi; \
@@ -400,13 +400,13 @@ $(MD2TEST): $(MD2TEST).o $(DLIBCRYPTO)
LIBRARIES="$(LIBCRYPTO)"; \
fi; \
$(NEWMAKE) -f $(TOP)/Makefile.shared \
- APPNAME=$(MD2TEST) LDFLAGS="$(CFLAGS)" \
+ APPNAME=$(MD2TEST)$(EXE_EXT) LDFLAGS="$(CFLAGS)" \
OBJECTS="$(MD2TEST).o" \
LIBDEPS="$(PEX_LIBS) $$LIBRARIES $(EX_LIBS)" \
LIBRPATH=$(INSTALLTOP)/lib \
link_app.$${shlib_target}
-$(SHATEST): $(SHATEST).o $(DLIBCRYPTO)
+$(SHATEST)$(EXE_EXT): $(SHATEST).o $(DLIBCRYPTO)
shlib_target=; if [ -n "$(SHARED_LIBS)" ]; then \
shlib_target="$(SHLIB_TARGET)"; \
fi; \
@@ -416,13 +416,13 @@ $(SHATEST): $(SHATEST).o $(DLIBCRYPTO)
LIBRARIES="$(LIBCRYPTO)"; \
fi; \
$(NEWMAKE) -f $(TOP)/Makefile.shared \
- APPNAME=$(SHATEST) LDFLAGS="$(CFLAGS)" \
+ APPNAME=$(SHATEST)$(EXE_EXT) LDFLAGS="$(CFLAGS)" \
OBJECTS="$(SHATEST).o" \
LIBDEPS="$(PEX_LIBS) $$LIBRARIES $(EX_LIBS)" \
LIBRPATH=$(INSTALLTOP)/lib \
link_app.$${shlib_target}
-$(SHA1TEST): $(SHA1TEST).o $(DLIBCRYPTO)
+$(SHA1TEST)$(EXE_EXT): $(SHA1TEST).o $(DLIBCRYPTO)
shlib_target=; if [ -n "$(SHARED_LIBS)" ]; then \
shlib_target="$(SHLIB_TARGET)"; \
fi; \
@@ -432,13 +432,13 @@ $(SHA1TEST): $(SHA1TEST).o $(DLIBCRYPTO)
LIBRARIES="$(LIBCRYPTO)"; \
fi; \
$(NEWMAKE) -f $(TOP)/Makefile.shared \
- APPNAME=$(SHA1TEST) LDFLAGS="$(CFLAGS)" \
+ APPNAME=$(SHA1TEST)$(EXE_EXT) LDFLAGS="$(CFLAGS)" \
OBJECTS="$(SHA1TEST).o" \
LIBDEPS="$(PEX_LIBS) $$LIBRARIES $(EX_LIBS)" \
LIBRPATH=$(INSTALLTOP)/lib \
link_app.$${shlib_target}
-$(SHA256TEST): $(SHA256TEST).o $(DLIBCRYPTO)
+$(SHA256TEST)$(EXE_EXT): $(SHA256TEST).o $(DLIBCRYPTO)
shlib_target=; if [ -n "$(SHARED_LIBS)" ]; then \
shlib_target="$(SHLIB_TARGET)"; \
fi; \
@@ -448,13 +448,13 @@ $(SHA256TEST): $(SHA256TEST).o $(DLIBCRYPTO)
LIBRARIES="$(LIBCRYPTO)"; \
fi; \
$(NEWMAKE) -f $(TOP)/Makefile.shared \
- APPNAME=$(SHA256TEST) LDFLAGS="$(CFLAGS)" \
+ APPNAME=$(SHA256TEST)$(EXE_EXT) LDFLAGS="$(CFLAGS)" \
OBJECTS="$(SHA256TEST).o" \
LIBDEPS="$(PEX_LIBS) $$LIBRARIES $(EX_LIBS)" \
LIBRPATH=$(INSTALLTOP)/lib \
link_app.$${shlib_target}
-$(SHA512TEST): $(SHA512TEST).o $(DLIBCRYPTO)
+$(SHA512TEST)$(EXE_EXT): $(SHA512TEST).o $(DLIBCRYPTO)
shlib_target=; if [ -n "$(SHARED_LIBS)" ]; then \
shlib_target="$(SHLIB_TARGET)"; \
fi; \
@@ -464,13 +464,13 @@ $(SHA512TEST): $(SHA512TEST).o $(DLIBCRYPTO)
LIBRARIES="$(LIBCRYPTO)"; \
fi; \
$(NEWMAKE) -f $(TOP)/Makefile.shared \
- APPNAME=$(SHA512TEST) LDFLAGS="$(CFLAGS)" \
+ APPNAME=$(SHA512TEST)$(EXE_EXT) LDFLAGS="$(CFLAGS)" \
OBJECTS="$(SHA512TEST).o" \
LIBDEPS="$(PEX_LIBS) $$LIBRARIES $(EX_LIBS)" \
LIBRPATH=$(INSTALLTOP)/lib \
link_app.$${shlib_target}
-$(RMDTEST): $(RMDTEST).o $(DLIBCRYPTO)
+$(RMDTEST)$(EXE_EXT): $(RMDTEST).o $(DLIBCRYPTO)
shlib_target=; if [ -n "$(SHARED_LIBS)" ]; then \
shlib_target="$(SHLIB_TARGET)"; \
fi; \
@@ -480,13 +480,13 @@ $(RMDTEST): $(RMDTEST).o $(DLIBCRYPTO)
LIBRARIES="$(LIBCRYPTO)"; \
fi; \
$(NEWMAKE) -f $(TOP)/Makefile.shared \
- APPNAME=$(RMDTEST) LDFLAGS="$(CFLAGS)" \
+ APPNAME=$(RMDTEST)$(EXE_EXT) LDFLAGS="$(CFLAGS)" \
OBJECTS="$(RMDTEST).o" \
LIBDEPS="$(PEX_LIBS) $$LIBRARIES $(EX_LIBS)" \
LIBRPATH=$(INSTALLTOP)/lib \
link_app.$${shlib_target}
-$(MDC2TEST): $(MDC2TEST).o $(DLIBCRYPTO)
+$(MDC2TEST)$(EXE_EXT): $(MDC2TEST).o $(DLIBCRYPTO)
shlib_target=; if [ -n "$(SHARED_LIBS)" ]; then \
shlib_target="$(SHLIB_TARGET)"; \
fi; \
@@ -496,13 +496,13 @@ $(MDC2TEST): $(MDC2TEST).o $(DLIBCRYPTO)
LIBRARIES="$(LIBCRYPTO)"; \
fi; \
$(NEWMAKE) -f $(TOP)/Makefile.shared \
- APPNAME=$(MDC2TEST) LDFLAGS="$(CFLAGS)" \
+ APPNAME=$(MDC2TEST)$(EXE_EXT) LDFLAGS="$(CFLAGS)" \
OBJECTS="$(MDC2TEST).o" \
LIBDEPS="$(PEX_LIBS) $$LIBRARIES $(EX_LIBS)" \
LIBRPATH=$(INSTALLTOP)/lib \
link_app.$${shlib_target}
-$(MD4TEST): $(MD4TEST).o $(DLIBCRYPTO)
+$(MD4TEST)$(EXE_EXT): $(MD4TEST).o $(DLIBCRYPTO)
shlib_target=; if [ -n "$(SHARED_LIBS)" ]; then \
shlib_target="$(SHLIB_TARGET)"; \
fi; \
@@ -512,13 +512,13 @@ $(MD4TEST): $(MD4TEST).o $(DLIBCRYPTO)
LIBRARIES="$(LIBCRYPTO)"; \
fi; \
$(NEWMAKE) -f $(TOP)/Makefile.shared \
- APPNAME=$(MD4TEST) LDFLAGS="$(CFLAGS)" \
+ APPNAME=$(MD4TEST)$(EXE_EXT) LDFLAGS="$(CFLAGS)" \
OBJECTS="$(MD4TEST).o" \
LIBDEPS="$(PEX_LIBS) $$LIBRARIES $(EX_LIBS)" \
LIBRPATH=$(INSTALLTOP)/lib \
link_app.$${shlib_target}
-$(MD5TEST): $(MD5TEST).o $(DLIBCRYPTO)
+$(MD5TEST)$(EXE_EXT): $(MD5TEST).o $(DLIBCRYPTO)
shlib_target=; if [ -n "$(SHARED_LIBS)" ]; then \
shlib_target="$(SHLIB_TARGET)"; \
fi; \
@@ -528,13 +528,13 @@ $(MD5TEST): $(MD5TEST).o $(DLIBCRYPTO)
LIBRARIES="$(LIBCRYPTO)"; \
fi; \
$(NEWMAKE) -f $(TOP)/Makefile.shared \
- APPNAME=$(MD5TEST) LDFLAGS="$(CFLAGS)" \
+ APPNAME=$(MD5TEST)$(EXE_EXT) LDFLAGS="$(CFLAGS)" \
OBJECTS="$(MD5TEST).o" \
LIBDEPS="$(PEX_LIBS) $$LIBRARIES $(EX_LIBS)" \
LIBRPATH=$(INSTALLTOP)/lib \
link_app.$${shlib_target}
-$(HMACTEST): $(HMACTEST).o $(DLIBCRYPTO)
+$(HMACTEST)$(EXE_EXT): $(HMACTEST).o $(DLIBCRYPTO)
shlib_target=; if [ -n "$(SHARED_LIBS)" ]; then \
shlib_target="$(SHLIB_TARGET)"; \
fi; \
@@ -544,13 +544,13 @@ $(HMACTEST): $(HMACTEST).o $(DLIBCRYPTO)
LIBRARIES="$(LIBCRYPTO)"; \
fi; \
$(NEWMAKE) -f $(TOP)/Makefile.shared \
- APPNAME=$(HMACTEST) LDFLAGS="$(CFLAGS)" \
+ APPNAME=$(HMACTEST)$(EXE_EXT) LDFLAGS="$(CFLAGS)" \
OBJECTS="$(HMACTEST).o" \
LIBDEPS="$(PEX_LIBS) $$LIBRARIES $(EX_LIBS)" \
LIBRPATH=$(INSTALLTOP)/lib \
link_app.$${shlib_target}
-$(RC2TEST): $(RC2TEST).o $(DLIBCRYPTO)
+$(RC2TEST)$(EXE_EXT): $(RC2TEST).o $(DLIBCRYPTO)
shlib_target=; if [ -n "$(SHARED_LIBS)" ]; then \
shlib_target="$(SHLIB_TARGET)"; \
fi; \
@@ -560,13 +560,13 @@ $(RC2TEST): $(RC2TEST).o $(DLIBCRYPTO)
LIBRARIES="$(LIBCRYPTO)"; \
fi; \
$(NEWMAKE) -f $(TOP)/Makefile.shared \
- APPNAME=$(RC2TEST) LDFLAGS="$(CFLAGS)" \
+ APPNAME=$(RC2TEST)$(EXE_EXT) LDFLAGS="$(CFLAGS)" \
OBJECTS="$(RC2TEST).o" \
LIBDEPS="$(PEX_LIBS) $$LIBRARIES $(EX_LIBS)" \
LIBRPATH=$(INSTALLTOP)/lib \
link_app.$${shlib_target}
-$(BFTEST): $(BFTEST).o $(DLIBCRYPTO)
+$(BFTEST)$(EXE_EXT): $(BFTEST).o $(DLIBCRYPTO)
shlib_target=; if [ -n "$(SHARED_LIBS)" ]; then \
shlib_target="$(SHLIB_TARGET)"; \
fi; \
@@ -576,13 +576,13 @@ $(BFTEST): $(BFTEST).o $(DLIBCRYPTO)
LIBRARIES="$(LIBCRYPTO)"; \
fi; \
$(NEWMAKE) -f $(TOP)/Makefile.shared \
- APPNAME=$(BFTEST) LDFLAGS="$(CFLAGS)" \
+ APPNAME=$(BFTEST)$(EXE_EXT) LDFLAGS="$(CFLAGS)" \
OBJECTS="$(BFTEST).o" \
LIBDEPS="$(PEX_LIBS) $$LIBRARIES $(EX_LIBS)" \
LIBRPATH=$(INSTALLTOP)/lib \
link_app.$${shlib_target}
-$(CASTTEST): $(CASTTEST).o $(DLIBCRYPTO)
+$(CASTTEST)$(EXE_EXT): $(CASTTEST).o $(DLIBCRYPTO)
shlib_target=; if [ -n "$(SHARED_LIBS)" ]; then \
shlib_target="$(SHLIB_TARGET)"; \
fi; \
@@ -592,13 +592,13 @@ $(CASTTEST): $(CASTTEST).o $(DLIBCRYPTO)
LIBRARIES="$(LIBCRYPTO)"; \
fi; \
$(NEWMAKE) -f $(TOP)/Makefile.shared \
- APPNAME=$(CASTTEST) LDFLAGS="$(CFLAGS)" \
+ APPNAME=$(CASTTEST)$(EXE_EXT) LDFLAGS="$(CFLAGS)" \
OBJECTS="$(CASTTEST).o" \
LIBDEPS="$(PEX_LIBS) $$LIBRARIES $(EX_LIBS)" \
LIBRPATH=$(INSTALLTOP)/lib \
link_app.$${shlib_target}
-$(RC4TEST): $(RC4TEST).o $(DLIBCRYPTO)
+$(RC4TEST)$(EXE_EXT): $(RC4TEST).o $(DLIBCRYPTO)
shlib_target=; if [ -n "$(SHARED_LIBS)" ]; then \
shlib_target="$(SHLIB_TARGET)"; \
fi; \
@@ -608,13 +608,13 @@ $(RC4TEST): $(RC4TEST).o $(DLIBCRYPTO)
LIBRARIES="$(LIBCRYPTO)"; \
fi; \
$(NEWMAKE) -f $(TOP)/Makefile.shared \
- APPNAME=$(RC4TEST) LDFLAGS="$(CFLAGS)" \
+ APPNAME=$(RC4TEST)$(EXE_EXT) LDFLAGS="$(CFLAGS)" \
OBJECTS="$(RC4TEST).o" \
LIBDEPS="$(PEX_LIBS) $$LIBRARIES $(EX_LIBS)" \
LIBRPATH=$(INSTALLTOP)/lib \
link_app.$${shlib_target}
-$(RC5TEST): $(RC5TEST).o $(DLIBCRYPTO)
+$(RC5TEST)$(EXE_EXT): $(RC5TEST).o $(DLIBCRYPTO)
shlib_target=; if [ -n "$(SHARED_LIBS)" ]; then \
shlib_target="$(SHLIB_TARGET)"; \
fi; \
@@ -624,13 +624,13 @@ $(RC5TEST): $(RC5TEST).o $(DLIBCRYPTO)
LIBRARIES="$(LIBCRYPTO)"; \
fi; \
$(NEWMAKE) -f $(TOP)/Makefile.shared \
- APPNAME=$(RC5TEST) LDFLAGS="$(CFLAGS)" \
+ APPNAME=$(RC5TEST)$(EXE_EXT) LDFLAGS="$(CFLAGS)" \
OBJECTS="$(RC5TEST).o" \
LIBDEPS="$(PEX_LIBS) $$LIBRARIES $(EX_LIBS)" \
LIBRPATH=$(INSTALLTOP)/lib \
link_app.$${shlib_target}
-$(DESTEST): $(DESTEST).o $(DLIBCRYPTO)
+$(DESTEST)$(EXE_EXT): $(DESTEST).o $(DLIBCRYPTO)
shlib_target=; if [ -n "$(SHARED_LIBS)" ]; then \
shlib_target="$(SHLIB_TARGET)"; \
fi; \
@@ -640,13 +640,13 @@ $(DESTEST): $(DESTEST).o $(DLIBCRYPTO)
LIBRARIES="$(LIBCRYPTO)"; \
fi; \
$(NEWMAKE) -f $(TOP)/Makefile.shared \
- APPNAME=$(DESTEST) LDFLAGS="$(CFLAGS)" \
+ APPNAME=$(DESTEST)$(EXE_EXT) LDFLAGS="$(CFLAGS)" \
OBJECTS="$(DESTEST).o" \
LIBDEPS="$(PEX_LIBS) $$LIBRARIES $(EX_LIBS)" \
LIBRPATH=$(INSTALLTOP)/lib \
link_app.$${shlib_target}
-$(RANDTEST): $(RANDTEST).o $(DLIBCRYPTO)
+$(RANDTEST)$(EXE_EXT): $(RANDTEST).o $(DLIBCRYPTO)
shlib_target=; if [ -n "$(SHARED_LIBS)" ]; then \
shlib_target="$(SHLIB_TARGET)"; \
fi; \
@@ -656,13 +656,13 @@ $(RANDTEST): $(RANDTEST).o $(DLIBCRYPTO)
LIBRARIES="$(LIBCRYPTO)"; \
fi; \
$(NEWMAKE) -f $(TOP)/Makefile.shared \
- APPNAME=$(RANDTEST) LDFLAGS="$(CFLAGS)" \
+ APPNAME=$(RANDTEST)$(EXE_EXT) LDFLAGS="$(CFLAGS)" \
OBJECTS="$(RANDTEST).o" \
LIBDEPS="$(PEX_LIBS) $$LIBRARIES $(EX_LIBS)" \
LIBRPATH=$(INSTALLTOP)/lib \
link_app.$${shlib_target}
-$(DHTEST): $(DHTEST).o $(DLIBCRYPTO)
+$(DHTEST)$(EXE_EXT): $(DHTEST).o $(DLIBCRYPTO)
shlib_target=; if [ -n "$(SHARED_LIBS)" ]; then \
shlib_target="$(SHLIB_TARGET)"; \
fi; \
@@ -672,13 +672,13 @@ $(DHTEST): $(DHTEST).o $(DLIBCRYPTO)
LIBRARIES="$(LIBCRYPTO)"; \
fi; \
$(NEWMAKE) -f $(TOP)/Makefile.shared \
- APPNAME=$(DHTEST) LDFLAGS="$(CFLAGS)" \
+ APPNAME=$(DHTEST)$(EXE_EXT) LDFLAGS="$(CFLAGS)" \
OBJECTS="$(DHTEST).o" \
LIBDEPS="$(PEX_LIBS) $$LIBRARIES $(EX_LIBS)" \
LIBRPATH=$(INSTALLTOP)/lib \
link_app.$${shlib_target}
-$(DSATEST): $(DSATEST).o $(DLIBCRYPTO)
+$(DSATEST)$(EXE_EXT): $(DSATEST).o $(DLIBCRYPTO)
shlib_target=; if [ -n "$(SHARED_LIBS)" ]; then \
shlib_target="$(SHLIB_TARGET)"; \
fi; \
@@ -688,13 +688,13 @@ $(DSATEST): $(DSATEST).o $(DLIBCRYPTO)
LIBRARIES="$(LIBCRYPTO)"; \
fi; \
$(NEWMAKE) -f $(TOP)/Makefile.shared \
- APPNAME=$(DSATEST) LDFLAGS="$(CFLAGS)" \
+ APPNAME=$(DSATEST)$(EXE_EXT) LDFLAGS="$(CFLAGS)" \
OBJECTS="$(DSATEST).o" \
LIBDEPS="$(PEX_LIBS) $$LIBRARIES $(EX_LIBS)" \
LIBRPATH=$(INSTALLTOP)/lib \
link_app.$${shlib_target}
-$(METHTEST): $(METHTEST).o $(DLIBCRYPTO)
+$(METHTEST)$(EXE_EXT): $(METHTEST).o $(DLIBCRYPTO)
shlib_target=; if [ -n "$(SHARED_LIBS)" ]; then \
shlib_target="$(SHLIB_TARGET)"; \
fi; \
@@ -704,13 +704,13 @@ $(METHTEST): $(METHTEST).o $(DLIBCRYPTO)
LIBRARIES="$(LIBCRYPTO)"; \
fi; \
$(NEWMAKE) -f $(TOP)/Makefile.shared \
- APPNAME=$(METHTEST) LDFLAGS="$(CFLAGS)" \
+ APPNAME=$(METHTEST)$(EXE_EXT) LDFLAGS="$(CFLAGS)" \
OBJECTS="$(METHTEST).o" \
LIBDEPS="$(PEX_LIBS) $$LIBRARIES $(EX_LIBS)" \
LIBRPATH=$(INSTALLTOP)/lib \
link_app.$${shlib_target}
-$(SSLTEST): $(SSLTEST).o $(DLIBSSL) $(DLIBCRYPTO)
+$(SSLTEST)$(EXE_EXT): $(SSLTEST).o $(DLIBSSL) $(DLIBCRYPTO)
shlib_target=; if [ -n "$(SHARED_LIBS)" ]; then \
shlib_target="$(SHLIB_TARGET)"; \
fi; \
@@ -720,13 +720,13 @@ $(SSLTEST): $(SSLTEST).o $(DLIBSSL) $(DLIBCRYPTO)
LIBRARIES="$(LIBSSL) $(LIBKRB5) $(LIBCRYPTO)"; \
fi; \
$(NEWMAKE) -f $(TOP)/Makefile.shared \
- APPNAME=$(SSLTEST) LDFLAGS="$(CFLAGS)" \
+ APPNAME=$(SSLTEST)$(EXE_EXT) LDFLAGS="$(CFLAGS)" \
OBJECTS="$(SSLTEST).o" \
LIBDEPS="$(PEX_LIBS) $$LIBRARIES $(EX_LIBS)" \
LIBRPATH=$(INSTALLTOP)/lib \
link_app.$${shlib_target}
-$(ENGINETEST): $(ENGINETEST).o $(DLIBCRYPTO)
+$(ENGINETEST)$(EXE_EXT): $(ENGINETEST).o $(DLIBCRYPTO)
shlib_target=; if [ -n "$(SHARED_LIBS)" ]; then \
shlib_target="$(SHLIB_TARGET)"; \
fi; \
@@ -736,13 +736,13 @@ $(ENGINETEST): $(ENGINETEST).o $(DLIBCRYPTO)
LIBRARIES="$(LIBCRYPTO)"; \
fi; \
$(NEWMAKE) -f $(TOP)/Makefile.shared \
- APPNAME=$(ENGINETEST) LDFLAGS="$(CFLAGS)" \
+ APPNAME=$(ENGINETEST)$(EXE_EXT) LDFLAGS="$(CFLAGS)" \
OBJECTS="$(ENGINETEST).o" \
LIBDEPS="$(PEX_LIBS) $$LIBRARIES $(EX_LIBS)" \
LIBRPATH=$(INSTALLTOP)/lib \
link_app.$${shlib_target}
-$(EVPTEST): $(EVPTEST).o $(DLIBCRYPTO)
+$(EVPTEST)$(EXE_EXT): $(EVPTEST).o $(DLIBCRYPTO)
shlib_target=; if [ -n "$(SHARED_LIBS)" ]; then \
shlib_target="$(SHLIB_TARGET)"; \
fi; \
@@ -752,13 +752,13 @@ $(EVPTEST): $(EVPTEST).o $(DLIBCRYPTO)
LIBRARIES="$(LIBCRYPTO)"; \
fi; \
$(NEWMAKE) -f $(TOP)/Makefile.shared \
- APPNAME=$(EVPTEST) LDFLAGS="$(CFLAGS)" \
+ APPNAME=$(EVPTEST)$(EXE_EXT) LDFLAGS="$(CFLAGS)" \
OBJECTS="$(EVPTEST).o" \
LIBDEPS="$(PEX_LIBS) $$LIBRARIES $(EX_LIBS)" \
LIBRPATH=$(INSTALLTOP)/lib \
link_app.$${shlib_target}
-$(ECDSATEST): $(ECDSATEST).o $(DLIBCRYPTO)
+$(ECDSATEST)$(EXE_EXT): $(ECDSATEST).o $(DLIBCRYPTO)
shlib_target=; if [ -n "$(SHARED_LIBS)" ]; then \
shlib_target="$(SHLIB_TARGET)"; \
fi; \
@@ -768,13 +768,13 @@ $(ECDSATEST): $(ECDSATEST).o $(DLIBCRYPTO)
LIBRARIES="$(LIBCRYPTO)"; \
fi; \
$(NEWMAKE) -f $(TOP)/Makefile.shared \
- APPNAME=$(ECDSATEST) LDFLAGS="$(CFLAGS)" \
+ APPNAME=$(ECDSATEST)$(EXE_EXT) LDFLAGS="$(CFLAGS)" \
OBJECTS="$(ECDSATEST).o" \
LIBDEPS="$(PEX_LIBS) $$LIBRARIES $(EX_LIBS)" \
LIBRPATH=$(INSTALLTOP)/lib \
link_app.$${shlib_target}
-$(ECDHTEST): $(ECDHTEST).o $(DLIBCRYPTO)
+$(ECDHTEST)$(EXE_EXT): $(ECDHTEST).o $(DLIBCRYPTO)
shlib_target=; if [ -n "$(SHARED_LIBS)" ]; then \
shlib_target="$(SHLIB_TARGET)"; \
fi; \
@@ -784,7 +784,7 @@ $(ECDHTEST): $(ECDHTEST).o $(DLIBCRYPTO)
LIBRARIES="$(LIBCRYPTO)"; \
fi; \
$(NEWMAKE) -f $(TOP)/Makefile.shared \
- APPNAME=$(ECDHTEST) LDFLAGS="$(CFLAGS)" \
+ APPNAME=$(ECDHTEST)$(EXE_EXT) LDFLAGS="$(CFLAGS)" \
OBJECTS="$(ECDHTEST).o" \
LIBDEPS="$(PEX_LIBS) $$LIBRARIES $(EX_LIBS)" \
LIBRPATH=$(INSTALLTOP)/lib \
@@ -793,14 +793,14 @@ $(ECDHTEST): $(ECDHTEST).o $(DLIBCRYPTO)
#$(AESTEST).o: $(AESTEST).c
# $(CC) -c $(CFLAGS) -DINTERMEDIATE_VALUE_KAT -DTRACE_KAT_MCT $(AESTEST).c
-#$(AESTEST): $(AESTEST).o $(DLIBCRYPTO)
+#$(AESTEST)$(EXE_EXT): $(AESTEST).o $(DLIBCRYPTO)
# if [ "$(SHLIB_TARGET)" = "hpux-shared" -o "$(SHLIB_TARGET)" = "darwin-shared" ] ; then \
-# $(CC) -o $(AESTEST) $(CFLAGS) $(AESTEST).o $(PEX_LIBS) $(DLIBCRYPTO) $(EX_LIBS) ; \
+# $(CC) -o $(AESTEST)$(EXE_EXT) $(CFLAGS) $(AESTEST).o $(PEX_LIBS) $(DLIBCRYPTO) $(EX_LIBS) ; \
# else \
-# $(CC) -o $(AESTEST) $(CFLAGS) $(AESTEST).o $(PEX_LIBS) $(LIBCRYPTO) $(EX_LIBS) ; \
+# $(CC) -o $(AESTEST)$(EXE_EXT) $(CFLAGS) $(AESTEST).o $(PEX_LIBS) $(LIBCRYPTO) $(EX_LIBS) ; \
# fi
-dummytest: dummytest.o $(DLIBCRYPTO)
+dummytest$(EXE_EXT): dummytest.o $(DLIBCRYPTO)
shlib_target=; if [ -n "$(SHARED_LIBS)" ]; then \
shlib_target="$(SHLIB_TARGET)"; \
fi; \
@@ -810,7 +810,7 @@ dummytest: dummytest.o $(DLIBCRYPTO)
LIBRARIES="$(LIBCRYPTO)"; \
fi; \
$(NEWMAKE) -f $(TOP)/Makefile.shared \
- APPNAME=dummytest LDFLAGS="$(CFLAGS)" \
+ APPNAME=dummytest$(EXE_EXT) LDFLAGS="$(CFLAGS)" \
OBJECTS="dummytest.o" \
LIBDEPS="$(PEX_LIBS) $$LIBRARIES $(EX_LIBS)" \
LIBRPATH=$(INSTALLTOP)/lib \
diff --git a/util/libeay.num b/util/libeay.num
index 3f70cd9586..2dc32dc7dd 100755
--- a/util/libeay.num
+++ b/util/libeay.num
@@ -3231,3 +3231,5 @@ EVP_sha384 3633 EXIST::FUNCTION:SHA,SHA512
EVP_sha512 3634 EXIST::FUNCTION:SHA,SHA512
EVP_sha224 3635 EXIST::FUNCTION:SHA,SHA256
EVP_sha256 3636 EXIST::FUNCTION:SHA,SHA256
+OPENSSL_DIR_end 3637 EXIST::FUNCTION:
+OPENSSL_DIR_read 3638 EXIST::FUNCTION:
diff --git a/util/mkdef.pl b/util/mkdef.pl
index c4cfa47375..204a056a48 100755
--- a/util/mkdef.pl
+++ b/util/mkdef.pl
@@ -221,6 +221,7 @@ my $ssl="ssl/ssl.h";
$ssl.=" ssl/kssl.h";
my $crypto ="crypto/crypto.h";
+$crypto.=" crypto/o_dir.h";
$crypto.=" crypto/des/des.h crypto/des/des_old.h" ; # unless $no_des;
$crypto.=" crypto/idea/idea.h" ; # unless $no_idea;
$crypto.=" crypto/rc4/rc4.h" ; # unless $no_rc4;
diff --git a/util/ssleay.num b/util/ssleay.num
index faaa227473..e3c33661d7 100755
--- a/util/ssleay.num
+++ b/util/ssleay.num
@@ -170,7 +170,7 @@ SSL_add_file_cert_subjs_to_stk 185 EXIST:VMS:FUNCTION:STDIO
SSL_set_tmp_rsa_callback 186 EXIST::FUNCTION:RSA
SSL_set_tmp_dh_callback 187 EXIST::FUNCTION:DH
SSL_add_dir_cert_subjects_to_stack 188 EXIST:!VMS:FUNCTION:STDIO
-SSL_add_dir_cert_subjs_to_stk 188 NOEXIST::FUNCTION:
+SSL_add_dir_cert_subjs_to_stk 188 EXIST:VMS:FUNCTION:STDIO
SSL_set_session_id_context 189 EXIST::FUNCTION:
SSL_CTX_use_certificate_chain_file 222 EXIST:!VMS:FUNCTION:STDIO
SSL_CTX_use_cert_chain_file 222 EXIST:VMS:FUNCTION:STDIO