Compare commits
69 Commits
OpenSSL_0_
...
OpenSSL_0_
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
110c6f72ec | ||
|
|
27f7d430ce | ||
|
|
5964e95c0a | ||
|
|
f78ae9c0f2 | ||
|
|
e072e16e92 | ||
|
|
7a79b5601a | ||
|
|
74b0c41e47 | ||
|
|
bbfbd4b270 | ||
|
|
88ec5a637f | ||
|
|
75fcbb43a7 | ||
|
|
e4e049e489 | ||
|
|
225e35bd36 | ||
|
|
9f81f23742 | ||
|
|
0ae4ad9e9f | ||
|
|
a157379adc | ||
|
|
1ed3815650 | ||
|
|
27310553b1 | ||
|
|
78490b9cc2 | ||
|
|
86ccb91ddb | ||
|
|
8e4552ed30 | ||
|
|
bc4a5ed341 | ||
|
|
d5157a6244 | ||
|
|
d07e7c32c2 | ||
|
|
8f35294c1b | ||
|
|
2bdcfbd7a3 | ||
|
|
46b695d850 | ||
|
|
6076f21f5e | ||
|
|
be34231656 | ||
|
|
54e73364f1 | ||
|
|
c6b220d933 | ||
|
|
d1c5c168b5 | ||
|
|
931756b833 | ||
|
|
39e76bc454 | ||
|
|
961b565690 | ||
|
|
142cdf5ec9 | ||
|
|
1e2b14e9ca | ||
|
|
4fe70c7812 | ||
|
|
21eb91c79e | ||
|
|
9d80973ea1 | ||
|
|
e4fb312330 | ||
|
|
1296e72d1d | ||
|
|
f077cf68af | ||
|
|
a69cc10af1 | ||
|
|
2dd060d94e | ||
|
|
546490c00e | ||
|
|
409a5de586 | ||
|
|
84b1e84af1 | ||
|
|
5250725ba5 | ||
|
|
84d5ad6181 | ||
|
|
96c15b8aad | ||
|
|
4fc2bf07b5 | ||
|
|
2007fe63f8 | ||
|
|
ee435c0d9c | ||
|
|
3f691235da | ||
|
|
86a925b27e | ||
|
|
954d8e4f79 | ||
|
|
b575dff21a | ||
|
|
b35ca7b257 | ||
|
|
0102bb94cb | ||
|
|
57bc7769b7 | ||
|
|
0461b8c90b | ||
|
|
bd8e228d60 | ||
|
|
bad99f6a9d | ||
|
|
5600a9cba1 | ||
|
|
607ae30be8 | ||
|
|
37d9503a67 | ||
|
|
a1033894d7 | ||
|
|
0480574310 | ||
|
|
dab0aaa612 |
35
CHANGES
35
CHANGES
@@ -2,6 +2,41 @@
|
||||
OpenSSL CHANGES
|
||||
_______________
|
||||
|
||||
Changes between 0.9.7a and 0.9.7b [10 Apr 2003]
|
||||
|
||||
*) Countermeasure against the Klima-Pokorny-Rosa extension of
|
||||
Bleichbacher's attack on PKCS #1 v1.5 padding: treat
|
||||
a protocol version number mismatch like a decryption error
|
||||
in ssl3_get_client_key_exchange (ssl/s3_srvr.c).
|
||||
[Bodo Moeller]
|
||||
|
||||
*) Turn on RSA blinding by default in the default implementation
|
||||
to avoid a timing attack. Applications that don't want it can call
|
||||
RSA_blinding_off() or use the new flag RSA_FLAG_NO_BLINDING.
|
||||
They would be ill-advised to do so in most cases.
|
||||
[Ben Laurie, Steve Henson, Geoff Thorpe, Bodo Moeller]
|
||||
|
||||
*) Change RSA blinding code so that it works when the PRNG is not
|
||||
seeded (in this case, the secret RSA exponent is abused as
|
||||
an unpredictable seed -- if it is not unpredictable, there
|
||||
is no point in blinding anyway). Make RSA blinding thread-safe
|
||||
by remembering the creator's thread ID in rsa->blinding and
|
||||
having all other threads use local one-time blinding factors
|
||||
(this requires more computation than sharing rsa->blinding, but
|
||||
avoids excessive locking; and if an RSA object is not shared
|
||||
between threads, blinding will still be very fast).
|
||||
[Bodo Moeller]
|
||||
|
||||
*) Fixed a typo bug that would cause ENGINE_set_default() to set an
|
||||
ENGINE as defaults for all supported algorithms irrespective of
|
||||
the 'flags' parameter. 'flags' is now honoured, so applications
|
||||
should make sure they are passing it correctly.
|
||||
[Geoff Thorpe]
|
||||
|
||||
*) Target "mingw" now allows native Windows code to be generated in
|
||||
the Cygwin environment as well as with the MinGW compiler.
|
||||
[Ulf Moeller]
|
||||
|
||||
Changes between 0.9.7 and 0.9.7a [19 Feb 2003]
|
||||
|
||||
*) In ssl3_get_record (ssl/s3_pkt.c), minimize information leaked
|
||||
|
||||
@@ -219,7 +219,7 @@ my %table=(
|
||||
# './Configure irix-[g]cc' manually.
|
||||
# -mips4 flag is added by ./config when appropriate.
|
||||
"irix-mips3-gcc","gcc:-mabi=n32 -mmips-as -O3 -DTERMIOS -DB_ENDIAN -DBN_DIV3W::-D_SGI_MP_SOURCE:::MD2_CHAR RC4_INDEX RC4_CHAR RC4_CHUNK_LL DES_UNROLL DES_RISC2 DES_PTR BF_PTR SIXTY_FOUR_BIT:${mips3_irix_asm}:dlfcn:irix-shared:::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
"irix-mips3-cc", "cc:-n32 -O2 -use_readonly_const -DTERMIOS -DB_ENDIAN -DBN_DIV3W::-D_SGI_MP_SOURCE:::DES_PTR RC4_CHAR RC4_CHUNK_LL DES_RISC2 DES_UNROLL BF_PTR SIXTY_FOUR_BIT:${mips3_irix_asm}:dlfcn:irix-shared:::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
"irix-mips3-cc", "cc:-n32 -mips3 -O2 -use_readonly_const -DTERMIOS -DB_ENDIAN -DBN_DIV3W::-D_SGI_MP_SOURCE:::DES_PTR RC4_CHAR RC4_CHUNK_LL DES_RISC2 DES_UNROLL BF_PTR SIXTY_FOUR_BIT:${mips3_irix_asm}:dlfcn:irix-shared:::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
# N64 ABI builds.
|
||||
"irix64-mips4-gcc","gcc:-mabi=64 -mips4 -mmips-as -O3 -DTERMIOS -DB_ENDIAN -DBN_DIV3W::-D_SGI_MP_SOURCE:::RC4_CHAR RC4_CHUNK DES_RISC2 DES_UNROLL SIXTY_FOUR_BIT_LONG:${mips3_irix_asm}:dlfcn:irix-shared:::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
"irix64-mips4-cc", "cc:-64 -mips4 -O2 -use_readonly_const -DTERMIOS -DB_ENDIAN -DBN_DIV3W::-D_SGI_MP_SOURCE:::RC4_CHAR RC4_CHUNK DES_RISC2 DES_UNROLL SIXTY_FOUR_BIT_LONG:${mips3_irix_asm}:dlfcn:irix-shared:::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
@@ -390,6 +390,7 @@ my %table=(
|
||||
"linux-s390", "gcc:-DB_ENDIAN -DTERMIO -DNO_ASM -O3 -fomit-frame-pointer -Wall::-D_REENTRANT::-ldl:BN_LLONG::::::::::dlfcn:linux-shared:-fPIC::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
|
||||
"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)",
|
||||
"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)",
|
||||
@@ -506,10 +507,8 @@ my %table=(
|
||||
"BC-32","bcc32::::WIN32::BN_LLONG DES_PTR RC4_INDEX EXPORT_VAR_AS_FN::::::::::win32",
|
||||
"BC-16","bcc:::(unknown):WIN16::BN_LLONG DES_PTR RC4_INDEX SIXTEEN_BIT:::",
|
||||
|
||||
# Mingw32
|
||||
# (Note: the real CFLAGS for Windows builds are defined by util/mk1mf.pl
|
||||
# and its library files in util/pl/*)
|
||||
"Mingw32", "gcc:-DL_ENDIAN -fomit-frame-pointer -O3 -m486 -Wall:::::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}::::::::::win32",
|
||||
# MinGW
|
||||
"mingw", "gcc:-DL_ENDIAN -fomit-frame-pointer -O3 -march=i486 -mno-cygwin -Wall:::MINGW32:-mno-cygwin -lwsock32 -lgdi32:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_out_asm}:win32::::.dll",
|
||||
|
||||
# UWIN
|
||||
"UWIN", "cc:-DTERMIOS -DL_ENDIAN -O -Wall:::UWIN::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}::::::::::win32",
|
||||
|
||||
3
FAQ
3
FAQ
@@ -68,7 +68,7 @@ OpenSSL - Frequently Asked Questions
|
||||
* Which is the current version of OpenSSL?
|
||||
|
||||
The current version is available from <URL: http://www.openssl.org>.
|
||||
OpenSSL 0.9.7a was released on February 19, 2003.
|
||||
OpenSSL 0.9.7b was released on April 10, 2003.
|
||||
|
||||
In addition to the current stable release, you can also access daily
|
||||
snapshots of the OpenSSL development version at <URL:
|
||||
@@ -732,6 +732,7 @@ The general answer is to check the config.log file generated when running
|
||||
the OpenSSH configure script. It should contain the detailed information
|
||||
on why the OpenSSL library was not detected or considered incompatible.
|
||||
|
||||
|
||||
* Can I use OpenSSL's SSL library with non-blocking I/O?
|
||||
|
||||
Yes; make sure to read the SSL_get_error(3) manual page!
|
||||
|
||||
132
INSTALL.W32
132
INSTALL.W32
@@ -10,13 +10,20 @@
|
||||
|
||||
You need Perl for Win32. Unless you will build on Cygwin, you will need
|
||||
ActiveState Perl, available from http://www.activestate.com/ActivePerl.
|
||||
For Cygwin users, there's more info in the Cygwin section.
|
||||
|
||||
and one of the following C compilers:
|
||||
|
||||
* Visual C++
|
||||
* Borland C
|
||||
* GNU C (Mingw32 or Cygwin)
|
||||
* GNU C (Cygwin or MinGW)
|
||||
|
||||
If you are compiling from a tarball or a CVS snapshot then the Win32 files
|
||||
may well be not up to date. This may mean that some "tweaking" is required to
|
||||
get it all to work. See the trouble shooting section later on for if (when?)
|
||||
it goes wrong.
|
||||
|
||||
Visual C++
|
||||
----------
|
||||
|
||||
If you want to compile in the assembly language routines with Visual C++ then
|
||||
you will need an assembler. This is worth doing because it will result in
|
||||
@@ -39,14 +46,6 @@
|
||||
http://www.kernel.org/pub/software/devel/nasm/binaries/win32/
|
||||
The NASM binary nasmw.exe needs to be installed anywhere on your PATH.
|
||||
|
||||
If you are compiling from a tarball or a CVS snapshot then the Win32 files
|
||||
may well be not up to date. This may mean that some "tweaking" is required to
|
||||
get it all to work. See the trouble shooting section later on for if (when?)
|
||||
it goes wrong.
|
||||
|
||||
Visual C++
|
||||
----------
|
||||
|
||||
Firstly you should run Configure:
|
||||
|
||||
> perl Configure VC-WIN32
|
||||
@@ -120,18 +119,72 @@
|
||||
* Run make:
|
||||
> make -f bcb.mak
|
||||
|
||||
GNU C (Mingw32)
|
||||
---------------
|
||||
GNU C (Cygwin)
|
||||
--------------
|
||||
|
||||
To build OpenSSL, you need the Mingw32 package and GNU make.
|
||||
Cygwin provides a bash shell and GNU tools environment running
|
||||
on NT 4.0, Windows 9x, Windows ME, Windows 2000, and Windows XP.
|
||||
Consequently, a make of OpenSSL with Cygwin is closer to a GNU
|
||||
bash environment such as Linux than to other the other Win32
|
||||
makes.
|
||||
|
||||
Cygwin implements a Posix/Unix runtime system (cygwin1.dll).
|
||||
It is also possible to create Win32 binaries that only use the
|
||||
Microsoft C runtime system (msvcrt.dll or crtdll.dll) using
|
||||
MinGW. MinGW can be used in the Cygwin development environment
|
||||
or in a standalone setup as described in the following section.
|
||||
|
||||
To build OpenSSL using Cygwin:
|
||||
|
||||
* Install Cygwin (see http://cygwin.com/)
|
||||
|
||||
* Install Perl and ensure it is in the path. Both Cygwin perl
|
||||
(5.6.1-2 or newer) and ActivePerl work.
|
||||
|
||||
* Run the Cygwin bash shell
|
||||
|
||||
* $ tar zxvf openssl-x.x.x.tar.gz
|
||||
$ cd openssl-x.x.x
|
||||
|
||||
To build the Cygwin version of OpenSSL:
|
||||
|
||||
$ ./config
|
||||
[...]
|
||||
$ make
|
||||
[...]
|
||||
$ make test
|
||||
$ make install
|
||||
|
||||
This will create a default install in /usr/local/ssl.
|
||||
|
||||
To build the MinGW version (native Windows) in Cygwin:
|
||||
|
||||
$ ./Configure mingw
|
||||
[...]
|
||||
$ make
|
||||
[...]
|
||||
$ make test
|
||||
$ make install
|
||||
|
||||
Cygwin Notes:
|
||||
|
||||
"make test" and normal file operations may fail in directories
|
||||
mounted as text (i.e. mount -t c:\somewhere /home) due to Cygwin
|
||||
stripping of carriage returns. To avoid this ensure that a binary
|
||||
mount is used, e.g. mount -b c:\somewhere /home.
|
||||
|
||||
"bc" is not provided in older Cygwin distribution. This causes a
|
||||
non-fatal error in "make test" but is otherwise harmless. If
|
||||
desired and needed, GNU bc can be built with Cygwin without change.
|
||||
|
||||
GNU C (MinGW)
|
||||
-------------
|
||||
|
||||
* Compiler installation:
|
||||
|
||||
Mingw32 is available from <ftp://ftp.xraylith.wisc.edu/pub/khan/
|
||||
gnu-win32/mingw32/gcc-2.95.2/gcc-2.95.2-msvcrt.exe>. Extract it
|
||||
to a directory such as C:\gcc-2.95.2 and add c:\gcc-2.95.2\bin to
|
||||
the PATH environment variable in "System Properties"; or edit and
|
||||
run C:\gcc-2.95.2\mingw32.bat to set the PATH.
|
||||
MinGW is available from http://www.mingw.org. Run the installer and
|
||||
set the MinGW bin directory to the PATH in "System Properties" or
|
||||
autoexec.bat.
|
||||
|
||||
* Compile OpenSSL:
|
||||
|
||||
@@ -153,49 +206,6 @@
|
||||
> cd out
|
||||
> ..\ms\test
|
||||
|
||||
GNU C (Cygwin)
|
||||
--------------
|
||||
|
||||
Cygwin provides a bash shell and GNU tools environment running
|
||||
on NT 4.0, Windows 9x, Windows ME, Windows 2000, and Windows XP.
|
||||
Consequently, a make of OpenSSL with Cygwin is closer to a GNU
|
||||
bash environment such as Linux than to other W32 makes which are
|
||||
based on a single makefile approach. Cygwin implements Posix/Unix
|
||||
calls through cygwin1.dll, and is contrasted to Mingw32 which links
|
||||
dynamically to msvcrt.dll or crtdll.dll.
|
||||
|
||||
To build OpenSSL using Cygwin:
|
||||
|
||||
* Install Cygwin (see http://cygwin.com/)
|
||||
|
||||
* Install Perl and ensure it is in the path (recent Cygwin perl
|
||||
(version 5.6.1-2 of the latter has been reported to work) or
|
||||
ActivePerl)
|
||||
|
||||
* Run the Cygwin bash shell
|
||||
|
||||
* $ tar zxvf openssl-x.x.x.tar.gz
|
||||
$ cd openssl-x.x.x
|
||||
$ ./config
|
||||
[...]
|
||||
$ make
|
||||
[...]
|
||||
$ make test
|
||||
$ make install
|
||||
|
||||
This will create a default install in /usr/local/ssl.
|
||||
|
||||
Cygwin Notes:
|
||||
|
||||
"make test" and normal file operations may fail in directories
|
||||
mounted as text (i.e. mount -t c:\somewhere /home) due to Cygwin
|
||||
stripping of carriage returns. To avoid this ensure that a binary
|
||||
mount is used, e.g. mount -b c:\somewhere /home.
|
||||
|
||||
"bc" is not provided in older Cygwin distribution. This causes a
|
||||
non-fatal error in "make test" but is otherwise harmless. If
|
||||
desired and needed, GNU bc can be built with Cygwin without change.
|
||||
|
||||
|
||||
Installation
|
||||
------------
|
||||
|
||||
2
LICENSE
2
LICENSE
@@ -12,7 +12,7 @@
|
||||
---------------
|
||||
|
||||
/* ====================================================================
|
||||
* Copyright (c) 1998-2002 The OpenSSL Project. All rights reserved.
|
||||
* Copyright (c) 1998-2003 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
|
||||
|
||||
34
Makefile.org
34
Makefile.org
@@ -412,7 +412,8 @@ do_svr3-shared:
|
||||
for obj in `ar t lib$$i.a` ; do \
|
||||
OBJS="$${OBJS} `grep $$obj allobjs`" ; \
|
||||
done ; \
|
||||
set -x; ${CC} -G -o lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
|
||||
set -x; ${CC} ${SHARED_LDFLAGS} \
|
||||
-G -o lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
|
||||
-h lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
|
||||
$${OBJS} $$libs ${EX_LIBS} ) || exit 1; \
|
||||
libs="-l$$i $$libs"; \
|
||||
@@ -429,13 +430,16 @@ do_svr5-shared:
|
||||
libs="$(LIBKRB5) $$libs"; \
|
||||
fi; \
|
||||
( PATH=/usr/ccs/bin:$$PATH ; export PATH; \
|
||||
SHARE_FLAG='-G'; \
|
||||
(${CC} -v 2>&1 | grep gcc) > /dev/null && SHARE_FLAG='-shared'; \
|
||||
find . -name "*.o" -print > allobjs ; \
|
||||
OBJS= ; export OBJS ; \
|
||||
for obj in `ar t lib$$i.a` ; do \
|
||||
OBJS="$${OBJS} `grep $$obj allobjs`" ; \
|
||||
done ; \
|
||||
set -x; ${CC} ${SHARED_LDFLAGS} \
|
||||
-G -o lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
|
||||
set -x; LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH \
|
||||
${CC} ${SHARED_LDFLAGS} \
|
||||
$${SHARE_FLAG} -o lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
|
||||
-h lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
|
||||
$${OBJS} $$libs ${EX_LIBS} ) || exit 1; \
|
||||
libs="-l$$i $$libs"; \
|
||||
@@ -589,10 +593,10 @@ Makefile.ssl: Makefile.org
|
||||
@false
|
||||
|
||||
libclean:
|
||||
rm -f *.a */lib */*/lib
|
||||
rm -f *.map *.so *.so.* engines/*.so *.a */lib */*/lib
|
||||
|
||||
clean:
|
||||
rm -f shlib/*.o *.o core a.out fluff *.map rehash.time testlog make.log cctest cctest.c
|
||||
clean: libclean
|
||||
rm -f shlib/*.o *.o core a.out fluff rehash.time testlog make.log cctest cctest.c
|
||||
@for i in $(DIRS) ;\
|
||||
do \
|
||||
if [ -d "$$i" ]; then \
|
||||
@@ -602,7 +606,7 @@ clean:
|
||||
fi; \
|
||||
done;
|
||||
rm -f openssl.pc
|
||||
rm -f *.a *.o speed.* *.map *.so .pure core
|
||||
rm -f speed.* .pure
|
||||
rm -f $(TARFILE)
|
||||
@for i in $(ONEDIRS) ;\
|
||||
do \
|
||||
@@ -652,7 +656,10 @@ rehash: rehash.time
|
||||
rehash.time: certs
|
||||
@(OPENSSL="`pwd`/apps/openssl"; OPENSSL_DEBUG_MEMORY=on; \
|
||||
export OPENSSL OPENSSL_DEBUG_MEMORY; \
|
||||
LD_LIBRARY_PATH="`pwd`"; DYLD_LIBRARY_PATH="`pwd`"; SHLIB_PATH="`pwd`"; LIBPATH="`pwd`"; \
|
||||
LD_LIBRARY_PATH="`pwd`:$$LD_LIBRARY_PATH"; \
|
||||
DYLD_LIBRARY_PATH="`pwd`:$$DYLD_LIBRARY_PATH"; \
|
||||
SHLIB_PATH="`pwd`:$$SHLIB_PATH"; \
|
||||
LIBPATH="`pwd`:$$LIBPATH"; \
|
||||
if [ "$(PLATFORM)" = "Cygwin" ]; then PATH="`pwd`:$$PATH"; fi; \
|
||||
export LD_LIBRARY_PATH DYLD_LIBRARY_PATH SHLIB_PATH LIBPATH PATH; \
|
||||
$(PERL) tools/c_rehash certs)
|
||||
@@ -663,10 +670,13 @@ test: tests
|
||||
tests: rehash
|
||||
@(cd test && echo "testing..." && \
|
||||
$(MAKE) CC='${CC}' PLATFORM='${PLATFORM}' CFLAG='${CFLAG}' SDIRS='$(SDIRS)' INSTALLTOP='${INSTALLTOP}' PEX_LIBS='${PEX_LIBS}' EX_LIBS='${EX_LIBS}' BN_ASM='${BN_ASM}' DES_ENC='${DES_ENC}' BF_ENC='${BF_ENC}' CAST_ENC='${CAST_ENC}' RC4_ENC='${RC4_ENC}' RC5_ENC='${RC5_ENC}' SHA1_ASM_OBJ='${SHA1_ASM_OBJ}' MD5_ASM_OBJ='${MD5_ASM_OBJ}' RMD160_ASM_OBJ='${RMD160_ASM_OBJ}' AR='${AR}' PROCESSOR='${PROCESSOR}' PERL='${PERL}' RANLIB='${RANLIB}' TESTS='${TESTS}' KRB5_INCLUDES='${KRB5_INCLUDES}' LIBKRB5='${LIBKRB5}' EXE_EXT='${EXE_EXT}' SHARED_LIBS='${SHARED_LIBS}' SHLIB_EXT='${SHLIB_EXT}' SHLIB_TARGET='${SHLIB_TARGET}' TESTS='${TESTS}' OPENSSL_DEBUG_MEMORY=on tests );
|
||||
@LD_LIBRARY_PATH="`pwd`"; DYLD_LIBRARY_PATH="`pwd`"; SHLIB_PATH="`pwd`"; LIBPATH="`pwd`"; \
|
||||
if [ "$(PLATFORM)" = "Cygwin" ]; then PATH="`pwd`:$$PATH"; fi; \
|
||||
export LD_LIBRARY_PATH DYLD_LIBRARY_PATH SHLIB_PATH LIBPATH PATH; \
|
||||
apps/openssl version -a
|
||||
@LD_LIBRARY_PATH="`pwd`:$$LD_LIBRARY_PATH"; \
|
||||
DYLD_LIBRARY_PATH="`pwd`:$$DYLD_LIBRARY_PATH"; \
|
||||
SHLIB_PATH="`pwd`:$$SHLIB_PATH"; \
|
||||
LIBPATH="`pwd`:$$LIBPATH"; \
|
||||
if [ "$(PLATFORM)" = "Cygwin" ]; then PATH="`pwd`:$$PATH"; fi; \
|
||||
export LD_LIBRARY_PATH DYLD_LIBRARY_PATH SHLIB_PATH LIBPATH PATH; \
|
||||
apps/openssl version -a
|
||||
|
||||
report:
|
||||
@$(PERL) util/selftest.pl
|
||||
|
||||
18
NEWS
18
NEWS
@@ -5,6 +5,17 @@
|
||||
This file gives a brief overview of the major changes between each OpenSSL
|
||||
release. For more details please read the CHANGES file.
|
||||
|
||||
Major changes between OpenSSL 0.9.7a and OpenSSL 0.9.7b:
|
||||
|
||||
o Security: counter the Klima-Pokorny-Rosa extension of
|
||||
Bleichbacher's attack
|
||||
o Security: make RSA blinding default.
|
||||
o Configuration: Irix fixes, AIX fixes, better mingw support.
|
||||
o Support for new platforms: linux-ia64-ecc.
|
||||
o Build: shared library support fixes.
|
||||
o ASN.1: treat domainComponent correctly.
|
||||
o Documentation: fixes and additions.
|
||||
|
||||
Major changes between OpenSSL 0.9.7 and OpenSSL 0.9.7a:
|
||||
|
||||
o Security: Important security related bugfixes.
|
||||
@@ -62,6 +73,13 @@
|
||||
o SSL/TLS: add callback to retrieve SSL/TLS messages.
|
||||
o SSL/TLS: support AES cipher suites (RFC3268).
|
||||
|
||||
Major changes between OpenSSL 0.9.6i and OpenSSL 0.9.6j:
|
||||
|
||||
o Security: counter the Klima-Pokorny-Rosa extension of
|
||||
Bleichbacher's attack
|
||||
o Security: make RSA blinding default.
|
||||
o Build: shared library support fixes.
|
||||
|
||||
Major changes between OpenSSL 0.9.6h and OpenSSL 0.9.6i:
|
||||
|
||||
o Important security related bugfixes.
|
||||
|
||||
31
PROBLEMS
31
PROBLEMS
@@ -98,3 +98,34 @@ config-line. './Configure aix43-cc shared' is working, but not
|
||||
libraries. It's possible to build 64-bit shared libraries by running
|
||||
'env OBJECT_MODE=64 make', but we need more elegant solution. Preferably one
|
||||
supporting even gcc shared builds. See RT#463 for background information.
|
||||
|
||||
* Problems building shared libraries on SCO OpenServer Release 5.0.6
|
||||
with gcc 2.95.3
|
||||
|
||||
The symptoms appear when running the test suite, more specifically
|
||||
test/ectest, with the following result:
|
||||
|
||||
OSSL_LIBPATH="`cd ..; pwd`"; LD_LIBRARY_PATH="$OSSL_LIBPATH:$LD_LIBRARY_PATH"; DYLD_LIBRARY_PATH="$OSSL_LIBPATH:$DYLD_LIBRARY_PATH"; SHLIB_PATH="$OSSL_LIBPATH:$SHLIB_PATH"; LIBPATH="$OSSL_LIBPATH:$LIBPATH"; if [ "debug-sco5-gcc" = "Cygwin" ]; then PATH="${LIBPATH}:$PATH"; fi; export LD_LIBRARY_PATH DYLD_LIBRARY_PATH SHLIB_PATH LIBPATH PATH; ./ectest
|
||||
ectest.c:186: ABORT
|
||||
|
||||
The cause of the problem seems to be that isxdigit(), called from
|
||||
BN_hex2bn(), returns 0 on a perfectly legitimate hex digit. Further
|
||||
investigation shows that any of the isxxx() macros return 0 on any
|
||||
input. A direct look in the information array that the isxxx() use,
|
||||
called __ctype, shows that it contains all zeroes...
|
||||
|
||||
Taking a look at the newly created libcrypto.so with nm, one can see
|
||||
that the variable __ctype is defined in libcrypto's .bss (which
|
||||
explains why it is filled with zeroes):
|
||||
|
||||
$ nm -Pg libcrypto.so | grep __ctype
|
||||
__ctype B 0011659c
|
||||
__ctype2 U
|
||||
|
||||
Curiously, __ctype2 is undefined, in spite of being declared in
|
||||
/usr/include/ctype.h in exactly the same way as __ctype.
|
||||
|
||||
Any information helping to solve this issue would be deeply
|
||||
appreciated.
|
||||
|
||||
NOTE: building non-shared doesn't come with this problem.
|
||||
|
||||
2
README
2
README
@@ -1,5 +1,5 @@
|
||||
|
||||
OpenSSL 0.9.7a Feb 19 2003
|
||||
OpenSSL 0.9.7b 10 Apr 2003
|
||||
|
||||
Copyright (c) 1998-2003 The OpenSSL Project
|
||||
Copyright (c) 1995-1998 Eric A. Young, Tim J. Hudson
|
||||
|
||||
16
STATUS
16
STATUS
@@ -1,12 +1,14 @@
|
||||
|
||||
OpenSSL STATUS Last modified at
|
||||
______________ $Date: 2003/02/19 12:33:52 $
|
||||
______________ $Date: 2003/04/10 20:22:12 $
|
||||
|
||||
DEVELOPMENT STATE
|
||||
|
||||
o OpenSSL 0.9.8: Under development...
|
||||
o OpenSSL 0.9.7b: Released on April 10th, 2003
|
||||
o OpenSSL 0.9.7a: Released on February 19th, 2003
|
||||
o OpenSSL 0.9.7: Released on December 31st, 2002
|
||||
o OpenSSL 0.9.6j: Released on April 10th, 2003
|
||||
o OpenSSL 0.9.6i: Released on February 19th, 2003
|
||||
o OpenSSL 0.9.6h: Released on December 5th, 2002
|
||||
o OpenSSL 0.9.6g: Released on August 9th, 2002
|
||||
@@ -29,17 +31,7 @@
|
||||
|
||||
RELEASE SHOWSTOPPERS
|
||||
|
||||
o [2002-11-21]
|
||||
PR 343 mentions that scrubbing memory with 'memset(ptr, 0, n)' may
|
||||
be optimized away in modern compilers. This is definitely not good
|
||||
and needs to be fixed immediately. The formula to use is presented
|
||||
in:
|
||||
|
||||
http://online.securityfocus.com/archive/82/297918/2002-10-27/2002-11-02/0
|
||||
|
||||
The problem report that mentions this is:
|
||||
|
||||
https://www.aet.TU-Cottbus.DE/rt2/Ticket/Display.html?id=343
|
||||
o
|
||||
|
||||
AVAILABLE PATCHES
|
||||
|
||||
|
||||
77
TABLE
77
TABLE
@@ -300,31 +300,6 @@ $shared_extension =
|
||||
$ranlib =
|
||||
$arflags =
|
||||
|
||||
*** Mingw32
|
||||
$cc = gcc
|
||||
$cflags = -DL_ENDIAN -fomit-frame-pointer -O3 -m486 -Wall
|
||||
$unistd =
|
||||
$thread_cflag =
|
||||
$sys_id =
|
||||
$lflags =
|
||||
$bn_ops = BN_LLONG DES_PTR DES_RISC1 DES_UNROLL RC4_INDEX MD2_INT
|
||||
$bn_obj =
|
||||
$des_obj =
|
||||
$bf_obj =
|
||||
$md5_obj =
|
||||
$sha1_obj =
|
||||
$cast_obj =
|
||||
$rc4_obj =
|
||||
$rmd160_obj =
|
||||
$rc5_obj =
|
||||
$dso_scheme = win32
|
||||
$shared_target=
|
||||
$shared_cflag =
|
||||
$shared_ldflag =
|
||||
$shared_extension =
|
||||
$ranlib =
|
||||
$arflags =
|
||||
|
||||
*** NetBSD-m68
|
||||
$cc = gcc
|
||||
$cflags = -DTERMIOS -O3 -fomit-frame-pointer -Wall -DB_ENDIAN
|
||||
@@ -2752,7 +2727,7 @@ $arflags =
|
||||
|
||||
*** irix-mips3-cc
|
||||
$cc = cc
|
||||
$cflags = -n32 -O2 -use_readonly_const -DTERMIOS -DB_ENDIAN -DBN_DIV3W
|
||||
$cflags = -n32 -mips3 -O2 -use_readonly_const -DTERMIOS -DB_ENDIAN -DBN_DIV3W
|
||||
$unistd =
|
||||
$thread_cflag = -D_SGI_MP_SOURCE
|
||||
$sys_id =
|
||||
@@ -3050,6 +3025,31 @@ $shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR)
|
||||
$ranlib =
|
||||
$arflags =
|
||||
|
||||
*** linux-ia64-ecc
|
||||
$cc = ecc
|
||||
$cflags = -DL_ENDIAN -DTERMIO -O2 -Wall
|
||||
$unistd =
|
||||
$thread_cflag = -D_REENTRANT
|
||||
$sys_id =
|
||||
$lflags = -ldl
|
||||
$bn_ops = SIXTY_FOUR_BIT_LONG RC4_CHUNK RC4_CHAR
|
||||
$bn_obj = asm/ia64.o
|
||||
$des_obj =
|
||||
$bf_obj =
|
||||
$md5_obj =
|
||||
$sha1_obj =
|
||||
$cast_obj =
|
||||
$rc4_obj =
|
||||
$rmd160_obj =
|
||||
$rc5_obj =
|
||||
$dso_scheme = dlfcn
|
||||
$shared_target= linux-shared
|
||||
$shared_cflag = -fPIC
|
||||
$shared_ldflag =
|
||||
$shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR)
|
||||
$ranlib =
|
||||
$arflags =
|
||||
|
||||
*** linux-k6
|
||||
$cc = gcc
|
||||
$cflags = -DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -mcpu=k6 -Wall
|
||||
@@ -3425,6 +3425,31 @@ $shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR)
|
||||
$ranlib =
|
||||
$arflags =
|
||||
|
||||
*** mingw
|
||||
$cc = gcc
|
||||
$cflags = -DL_ENDIAN -fomit-frame-pointer -O3 -march=i486 -mno-cygwin -Wall
|
||||
$unistd =
|
||||
$thread_cflag =
|
||||
$sys_id = MINGW32
|
||||
$lflags = -mno-cygwin -lwsock32 -lgdi32
|
||||
$bn_ops = BN_LLONG DES_PTR DES_RISC1 DES_UNROLL RC4_INDEX MD2_INT
|
||||
$bn_obj = asm/bn86-out.o asm/co86-out.o
|
||||
$des_obj = asm/dx86-out.o asm/yx86-out.o
|
||||
$bf_obj = asm/bx86-out.o
|
||||
$md5_obj = asm/mx86-out.o
|
||||
$sha1_obj = asm/sx86-out.o
|
||||
$cast_obj = asm/cx86-out.o
|
||||
$rc4_obj = asm/rx86-out.o
|
||||
$rmd160_obj = asm/rm86-out.o
|
||||
$rc5_obj = asm/r586-out.o
|
||||
$dso_scheme = win32
|
||||
$shared_target=
|
||||
$shared_cflag =
|
||||
$shared_ldflag =
|
||||
$shared_extension = .dll
|
||||
$ranlib =
|
||||
$arflags =
|
||||
|
||||
*** ncr-scde
|
||||
$cc = cc
|
||||
$cflags = -O6 -Xa -Hoff=BEHAVED -686 -Hwide -Hiw
|
||||
|
||||
@@ -87,6 +87,7 @@ all: exe
|
||||
exe: $(PROGRAM)
|
||||
|
||||
req: sreq.o $(A_OBJ) $(DLIBCRYPTO)
|
||||
LD_LIBRARY_PATH=..:$$LD_LIBRARY_PATH \
|
||||
$(CC) -o req $(CFLAG) sreq.o $(A_OBJ) $(RAND_OBJ) $(PEX_LIBS) $(LIBCRYPTO) $(EX_LIBS)
|
||||
|
||||
sreq.o: req.c
|
||||
@@ -147,10 +148,14 @@ $(PROGRAM): progs.h $(E_OBJ) $(PROGRAM).o $(DLIBCRYPTO) $(DLIBSSL)
|
||||
if [ "$(SHLIB_TARGET)" = "hpux-shared" -o "$(SHLIB_TARGET)" = "darwin-shared" ] ; then \
|
||||
$(CC) -o $(PROGRAM) $(CFLAGS) $(PROGRAM).o $(E_OBJ) $(PEX_LIBS) $(DLIBSSL) $(LIBKRB5) $(DLIBCRYPTO) $(EX_LIBS) ; \
|
||||
else \
|
||||
LD_LIBRARY_PATH=..:$$LD_LIBRARY_PATH \
|
||||
$(CC) -o $(PROGRAM) $(CFLAGS) $(PROGRAM).o $(E_OBJ) $(PEX_LIBS) $(LIBSSL) $(LIBKRB5) $(LIBCRYPTO) $(EX_LIBS) ; \
|
||||
fi
|
||||
-(cd ..; OPENSSL="`pwd`/apps/openssl"; export OPENSSL; \
|
||||
LIBPATH="`pwd`"; LD_LIBRARY_PATH="`pwd`"; DYLD_LIBRARY_PATH="`pwd`"; SHLIB_PATH="`pwd`"; \
|
||||
LD_LIBRARY_PATH="`pwd`:$$LD_LIBRARY_PATH"; \
|
||||
DYLD_LIBRARY_PATH="`pwd`:$$DYLD_LIBRARY_PATH"; \
|
||||
SHLIB_PATH="`pwd`:$$SHLIB_PATH"; \
|
||||
LIBPATH="`pwd`:$$LIBPATH"; \
|
||||
if [ "$(PLATFORM)" = "Cygwin" ]; then PATH="`pwd`:$$PATH"; fi; \
|
||||
export LD_LIBRARY_PATH DYLD_LIBRARY_PATH SHLIB_PATH LIBPATH PATH; \
|
||||
$(PERL) tools/c_rehash certs)
|
||||
|
||||
@@ -140,10 +140,6 @@
|
||||
#include "apps.h"
|
||||
#undef NON_MAIN
|
||||
|
||||
#ifdef OPENSSL_SYS_WINDOWS
|
||||
# include "bss_file.c"
|
||||
#endif
|
||||
|
||||
typedef struct {
|
||||
char *name;
|
||||
unsigned long flag;
|
||||
|
||||
@@ -2193,7 +2193,7 @@ again2:
|
||||
|
||||
#ifdef X509_V3
|
||||
/* Make it an X509 v3 certificate. */
|
||||
if (!X509_set_version(x509,2)) goto err;
|
||||
if (!X509_set_version(ret,2)) goto err;
|
||||
#endif
|
||||
|
||||
if (BN_to_ASN1_INTEGER(serial,ci->serialNumber) == NULL)
|
||||
|
||||
@@ -81,6 +81,7 @@ static char *crl_usage[]={
|
||||
" -in arg - input file - default stdin\n",
|
||||
" -out arg - output file - default stdout\n",
|
||||
" -hash - print hash value\n",
|
||||
" -fingerprint - print the crl fingerprint\n",
|
||||
" -issuer - print issuer DN\n",
|
||||
" -lastupdate - lastUpdate field\n",
|
||||
" -nextupdate - nextUpdate field\n",
|
||||
|
||||
@@ -520,4 +520,10 @@ end:
|
||||
apps_shutdown();
|
||||
OPENSSL_EXIT(ret);
|
||||
}
|
||||
#else
|
||||
|
||||
# if PEDANTIC
|
||||
static void *dummy=&dummy;
|
||||
# endif
|
||||
|
||||
#endif
|
||||
|
||||
@@ -524,7 +524,7 @@ int MAIN(int argc, char **argv)
|
||||
BIO_printf (bio_err, "-serial n serial number to check\n");
|
||||
BIO_printf (bio_err, "-signer file certificate to sign OCSP request with\n");
|
||||
BIO_printf (bio_err, "-signkey file private key to sign OCSP request with\n");
|
||||
BIO_printf (bio_err, "-sign_certs file additional certificates to include in signed request\n");
|
||||
BIO_printf (bio_err, "-sign_other file additional certificates to include in signed request\n");
|
||||
BIO_printf (bio_err, "-no_certs don't include any certificates in signed request\n");
|
||||
BIO_printf (bio_err, "-req_text print text form of request\n");
|
||||
BIO_printf (bio_err, "-resp_text print text form of response\n");
|
||||
@@ -544,10 +544,10 @@ int MAIN(int argc, char **argv)
|
||||
BIO_printf (bio_err, "-validity_period n maximum validity discrepancy in seconds\n");
|
||||
BIO_printf (bio_err, "-status_age n maximum status age in seconds\n");
|
||||
BIO_printf (bio_err, "-noverify don't verify response at all\n");
|
||||
BIO_printf (bio_err, "-verify_certs file additional certificates to search for signer\n");
|
||||
BIO_printf (bio_err, "-verify_other file additional certificates to search for signer\n");
|
||||
BIO_printf (bio_err, "-trust_other don't verify additional certificates\n");
|
||||
BIO_printf (bio_err, "-no_intern don't search certificates contained in response for signer\n");
|
||||
BIO_printf (bio_err, "-no_sig_verify don't check signature on response\n");
|
||||
BIO_printf (bio_err, "-no_signature_verify don't check signature on response\n");
|
||||
BIO_printf (bio_err, "-no_cert_verify don't check signing certificate\n");
|
||||
BIO_printf (bio_err, "-no_chain don't chain verify response\n");
|
||||
BIO_printf (bio_err, "-no_cert_checks don't do additional checks on signing certificate\n");
|
||||
|
||||
@@ -358,12 +358,6 @@ int MAIN(int argc, char **argv)
|
||||
if (--argc < 1) goto bad;
|
||||
if (!set_name_ex(&nmflag, *(++argv))) goto bad;
|
||||
}
|
||||
else if (strcmp(*argv,"-setalias") == 0)
|
||||
{
|
||||
if (--argc < 1) goto bad;
|
||||
alias= *(++argv);
|
||||
trustout = 1;
|
||||
}
|
||||
#ifndef OPENSSL_NO_ENGINE
|
||||
else if (strcmp(*argv,"-engine") == 0)
|
||||
{
|
||||
|
||||
8
config
8
config
@@ -458,7 +458,7 @@ if [ "${SYSTEM}-${MACHINE}" = "Linux-alpha" ]; then
|
||||
fi
|
||||
|
||||
if [ "${SYSTEM}" = "AIX" ]; then # favor vendor cc over gcc
|
||||
(cc) 2>&1 | grep -iv "command not found" > /dev/null && CC=cc
|
||||
(cc) 2>&1 | grep -iv "not found" > /dev/null && CC=cc
|
||||
fi
|
||||
|
||||
CCVER=${CCVER:-0}
|
||||
@@ -473,7 +473,7 @@ echo Operating system: $GUESSOS
|
||||
# more time that I want to waste at the moment
|
||||
case "$GUESSOS" in
|
||||
mips2-sgi-irix)
|
||||
CPU=`(hinv -t cpu) 2>/dev/null | sed 's/^CPU:[^R]*R\([0-9]*\).*/\1/'`
|
||||
CPU=`(hinv -t cpu) 2>/dev/null | head -1 | sed 's/^CPU:[^R]*R\([0-9]*\).*/\1/'`
|
||||
CPU=${CPU:-0}
|
||||
if [ $CPU -ge 4000 ]; then
|
||||
options="$options -mips2"
|
||||
@@ -481,7 +481,7 @@ case "$GUESSOS" in
|
||||
OUT="irix-$CC"
|
||||
;;
|
||||
mips3-sgi-irix)
|
||||
CPU=`(hinv -t cpu) 2>/dev/null | sed 's/^CPU:[^R]*R\([0-9]*\).*/\1/'`
|
||||
CPU=`(hinv -t cpu) 2>/dev/null | head -1 | sed 's/^CPU:[^R]*R\([0-9]*\).*/\1/'`
|
||||
CPU=${CPU:-0}
|
||||
if [ $CPU -ge 5000 ]; then
|
||||
options="$options -mips4"
|
||||
@@ -497,7 +497,7 @@ case "$GUESSOS" in
|
||||
echo " You have about 5 seconds to press Ctrl-C to abort."
|
||||
(stty -icanon min 0 time 50; read waste) < /dev/tty
|
||||
fi
|
||||
CPU=`(hinv -t cpu) 2>/dev/null | sed 's/^CPU:[^R]*R\([0-9]*\).*/\1/'`
|
||||
CPU=`(hinv -t cpu) 2>/dev/null | head -1 | sed 's/^CPU:[^R]*R\([0-9]*\).*/\1/'`
|
||||
CPU=${CPU:-0}
|
||||
if [ $CPU -ge 5000 ]; then
|
||||
options="$options -mips4"
|
||||
|
||||
@@ -173,6 +173,7 @@ static ASN1_STRING_TABLE tbl_standard[] = {
|
||||
{NID_friendlyName, -1, -1, B_ASN1_BMPSTRING, STABLE_NO_MASK},
|
||||
{NID_name, 1, ub_name, DIRSTRING_TYPE, 0},
|
||||
{NID_dnQualifier, -1, -1, B_ASN1_PRINTABLESTRING, STABLE_NO_MASK},
|
||||
{NID_domainComponent, 1, -1, B_ASN1_IA5STRING, STABLE_NO_MASK},
|
||||
{NID_ms_csp_name, -1, -1, B_ASN1_BMPSTRING, STABLE_NO_MASK}
|
||||
};
|
||||
|
||||
@@ -249,4 +250,38 @@ static void st_free(ASN1_STRING_TABLE *tbl)
|
||||
if(tbl->flags & STABLE_FLAGS_MALLOC) OPENSSL_free(tbl);
|
||||
}
|
||||
|
||||
|
||||
IMPLEMENT_STACK_OF(ASN1_STRING_TABLE)
|
||||
|
||||
#ifdef STRING_TABLE_TEST
|
||||
|
||||
main()
|
||||
{
|
||||
ASN1_STRING_TABLE *tmp;
|
||||
int i, last_nid = -1;
|
||||
|
||||
for (tmp = tbl_standard, i = 0;
|
||||
i < sizeof(tbl_standard)/sizeof(ASN1_STRING_TABLE); i++, tmp++)
|
||||
{
|
||||
if (tmp->nid < last_nid)
|
||||
{
|
||||
last_nid = 0;
|
||||
break;
|
||||
}
|
||||
last_nid = tmp->nid;
|
||||
}
|
||||
|
||||
if (last_nid != 0)
|
||||
{
|
||||
printf("Table order OK\n");
|
||||
exit(0);
|
||||
}
|
||||
|
||||
for (tmp = tbl_standard, i = 0;
|
||||
i < sizeof(tbl_standard)/sizeof(ASN1_STRING_TABLE); i++, tmp++)
|
||||
printf("Index %d, NID %d, Name=%s\n", i, tmp->nid,
|
||||
OBJ_nid2ln(tmp->nid));
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
@@ -132,7 +132,7 @@ extern "C" {
|
||||
#define B_ASN1_NUMERICSTRING 0x0001
|
||||
#define B_ASN1_PRINTABLESTRING 0x0002
|
||||
#define B_ASN1_T61STRING 0x0004
|
||||
#define B_ASN1_TELETEXSTRING 0x0008
|
||||
#define B_ASN1_TELETEXSTRING 0x0004
|
||||
#define B_ASN1_VIDEOTEXSTRING 0x0008
|
||||
#define B_ASN1_IA5STRING 0x0010
|
||||
#define B_ASN1_GRAPHICSTRING 0x0020
|
||||
|
||||
@@ -378,7 +378,7 @@ _dopr(
|
||||
case 'p':
|
||||
value = (long)va_arg(args, void *);
|
||||
fmtint(sbuffer, buffer, &currlen, maxlen,
|
||||
value, 16, min, max, flags);
|
||||
value, 16, min, max, flags|DP_F_NUM);
|
||||
break;
|
||||
case 'n': /* XXX */
|
||||
if (cflags == DP_C_SHORT) {
|
||||
@@ -482,8 +482,9 @@ fmtint(
|
||||
int flags)
|
||||
{
|
||||
int signvalue = 0;
|
||||
char *prefix = "";
|
||||
unsigned LLONG uvalue;
|
||||
char convert[DECIMAL_SIZE(value)+1];
|
||||
char convert[DECIMAL_SIZE(value)+3];
|
||||
int place = 0;
|
||||
int spadlen = 0;
|
||||
int zpadlen = 0;
|
||||
@@ -501,6 +502,10 @@ fmtint(
|
||||
else if (flags & DP_F_SPACE)
|
||||
signvalue = ' ';
|
||||
}
|
||||
if (flags & DP_F_NUM) {
|
||||
if (base == 8) prefix = "0";
|
||||
if (base == 16) prefix = "0x";
|
||||
}
|
||||
if (flags & DP_F_UP)
|
||||
caps = 1;
|
||||
do {
|
||||
@@ -514,7 +519,7 @@ fmtint(
|
||||
convert[place] = 0;
|
||||
|
||||
zpadlen = max - place;
|
||||
spadlen = min - OSSL_MAX(max, place) - (signvalue ? 1 : 0);
|
||||
spadlen = min - OSSL_MAX(max, place) - (signvalue ? 1 : 0) - strlen(prefix);
|
||||
if (zpadlen < 0)
|
||||
zpadlen = 0;
|
||||
if (spadlen < 0)
|
||||
@@ -536,6 +541,12 @@ fmtint(
|
||||
if (signvalue)
|
||||
doapr_outch(sbuffer, buffer, currlen, maxlen, signvalue);
|
||||
|
||||
/* prefix */
|
||||
while (*prefix) {
|
||||
doapr_outch(sbuffer, buffer, currlen, maxlen, *prefix);
|
||||
prefix++;
|
||||
}
|
||||
|
||||
/* zeros */
|
||||
if (zpadlen > 0) {
|
||||
while (zpadlen > 0) {
|
||||
@@ -692,7 +703,7 @@ fmtfp(
|
||||
* Decimal point. This should probably use locale to find the correct
|
||||
* char to print out.
|
||||
*/
|
||||
if (max > 0) {
|
||||
if (max > 0 || (flags & DP_F_NUM)) {
|
||||
doapr_outch(sbuffer, buffer, currlen, maxlen, '.');
|
||||
|
||||
while (fplace > 0)
|
||||
|
||||
@@ -248,6 +248,8 @@ typedef struct bn_blinding_st
|
||||
BIGNUM *A;
|
||||
BIGNUM *Ai;
|
||||
BIGNUM *mod; /* just a reference */
|
||||
unsigned long thread_id; /* added in OpenSSL 0.9.6j and 0.9.7b;
|
||||
* used only by crypto/rsa/rsa_eay.c, rsa_lib.c */
|
||||
} BN_BLINDING;
|
||||
|
||||
/* Used for montgomery multiplication */
|
||||
|
||||
@@ -68,10 +68,6 @@
|
||||
#include <openssl/x509.h>
|
||||
#include <openssl/err.h>
|
||||
|
||||
#ifdef OPENSSL_SYS_WINDOWS
|
||||
#include "../bio/bss_file.c"
|
||||
#endif
|
||||
|
||||
const int num0 = 100; /* number of tests */
|
||||
const int num1 = 50; /* additional tests for some functions */
|
||||
const int num2 = 5; /* number of tests for slow functions */
|
||||
@@ -96,11 +92,6 @@ int test_sqrt(BIO *bp,BN_CTX *ctx);
|
||||
int rand_neg(void);
|
||||
static int results=0;
|
||||
|
||||
#ifdef OPENSSL_NO_STDIO
|
||||
#define APPS_WIN16
|
||||
#include "bss_file.c"
|
||||
#endif
|
||||
|
||||
static unsigned char lst[]="\xC6\x4F\x43\x04\x2A\xEA\xCA\x6E\x58\x36\x80\x5B\xE8\xC9"
|
||||
"\x9B\x04\x5D\x48\x36\xC2\xFD\x16\xC9\x64\xF0";
|
||||
|
||||
|
||||
@@ -66,9 +66,6 @@
|
||||
#include <openssl/bn.h>
|
||||
#include <openssl/rand.h>
|
||||
#include <openssl/err.h>
|
||||
#ifdef OPENSSL_SYS_WINDOWS
|
||||
#include "../bio/bss_file.c"
|
||||
#endif
|
||||
|
||||
#define NUM_BITS (BN_BITS*2)
|
||||
|
||||
|
||||
@@ -112,17 +112,14 @@ dh_gen.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
dh_gen.o: ../../include/openssl/ossl_typ.h ../../include/openssl/safestack.h
|
||||
dh_gen.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
dh_gen.o: ../cryptlib.h dh_gen.c
|
||||
dh_key.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
dh_key.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
|
||||
dh_key.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
|
||||
dh_key.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
|
||||
dh_key.o: ../../include/openssl/engine.h ../../include/openssl/err.h
|
||||
dh_key.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
|
||||
dh_key.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
dh_key.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
|
||||
dh_key.o: ../../e_os.h ../../include/openssl/bio.h ../../include/openssl/bn.h
|
||||
dh_key.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
dh_key.o: ../../include/openssl/dh.h ../../include/openssl/e_os2.h
|
||||
dh_key.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
|
||||
dh_key.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
dh_key.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rand.h
|
||||
dh_key.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
|
||||
dh_key.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
|
||||
dh_key.o: ../cryptlib.h dh_key.c
|
||||
dh_key.o: ../../include/openssl/symhacks.h ../cryptlib.h dh_key.c
|
||||
dh_lib.o: ../../e_os.h ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
dh_lib.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
|
||||
dh_lib.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
|
||||
|
||||
@@ -61,9 +61,6 @@
|
||||
#include <openssl/bn.h>
|
||||
#include <openssl/rand.h>
|
||||
#include <openssl/dh.h>
|
||||
#ifndef OPENSSL_NO_ENGINE
|
||||
#include <openssl/engine.h>
|
||||
#endif
|
||||
|
||||
static int generate_key(DH *dh);
|
||||
static int compute_key(unsigned char *key, const BIGNUM *pub_key, DH *dh);
|
||||
|
||||
@@ -62,9 +62,6 @@
|
||||
|
||||
#include "../e_os.h"
|
||||
|
||||
#ifdef OPENSSL_SYS_WINDOWS
|
||||
#include "../bio/bss_file.c"
|
||||
#endif
|
||||
#include <openssl/crypto.h>
|
||||
#include <openssl/bio.h>
|
||||
#include <openssl/bn.h>
|
||||
@@ -87,10 +84,6 @@ int main(int argc, char *argv[])
|
||||
#endif
|
||||
|
||||
static void MS_CALLBACK cb(int p, int n, void *arg);
|
||||
#ifdef OPENSSL_NO_STDIO
|
||||
#define APPS_WIN16
|
||||
#include "bss_file.c"
|
||||
#endif
|
||||
|
||||
static const char rnd_seed[] = "string to make the random number generator think it has entropy";
|
||||
|
||||
|
||||
@@ -143,35 +143,29 @@ dsa_ossl.o: ../../e_os.h ../../include/openssl/asn1.h
|
||||
dsa_ossl.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
|
||||
dsa_ossl.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
dsa_ossl.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
|
||||
dsa_ossl.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h
|
||||
dsa_ossl.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
|
||||
dsa_ossl.o: ../../include/openssl/opensslconf.h
|
||||
dsa_ossl.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
|
||||
dsa_ossl.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
|
||||
dsa_ossl.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
dsa_ossl.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
|
||||
dsa_ossl.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
|
||||
dsa_ossl.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
|
||||
dsa_ossl.o: ../../include/openssl/rand.h ../../include/openssl/safestack.h
|
||||
dsa_ossl.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
dsa_ossl.o: ../cryptlib.h dsa_ossl.c
|
||||
dsa_sign.o: ../../e_os.h ../../include/openssl/asn1.h
|
||||
dsa_sign.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
|
||||
dsa_sign.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
dsa_sign.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
|
||||
dsa_sign.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h
|
||||
dsa_sign.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
|
||||
dsa_sign.o: ../../include/openssl/opensslconf.h
|
||||
dsa_sign.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
|
||||
dsa_sign.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
|
||||
dsa_sign.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
dsa_sign.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
|
||||
dsa_sign.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
|
||||
dsa_sign.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
|
||||
dsa_sign.o: ../../include/openssl/rand.h ../../include/openssl/safestack.h
|
||||
dsa_sign.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
dsa_sign.o: ../cryptlib.h dsa_sign.c
|
||||
dsa_vrf.o: ../../e_os.h ../../include/openssl/asn1.h
|
||||
dsa_vrf.o: ../../include/openssl/asn1_mac.h ../../include/openssl/bio.h
|
||||
dsa_vrf.o: ../../include/openssl/bn.h ../../include/openssl/buffer.h
|
||||
dsa_vrf.o: ../../include/openssl/crypto.h ../../include/openssl/dh.h
|
||||
dsa_vrf.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
|
||||
dsa_vrf.o: ../../include/openssl/engine.h ../../include/openssl/err.h
|
||||
dsa_vrf.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
|
||||
dsa_vrf.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
dsa_vrf.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
|
||||
dsa_vrf.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
|
||||
dsa_vrf.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
dsa_vrf.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rand.h
|
||||
dsa_vrf.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
|
||||
dsa_vrf.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
|
||||
dsa_vrf.o: ../cryptlib.h dsa_vrf.c
|
||||
dsa_vrf.o: ../../include/openssl/symhacks.h ../cryptlib.h dsa_vrf.c
|
||||
|
||||
@@ -64,9 +64,6 @@
|
||||
#include <openssl/dsa.h>
|
||||
#include <openssl/rand.h>
|
||||
#include <openssl/asn1.h>
|
||||
#ifndef OPENSSL_NO_ENGINE
|
||||
#include <openssl/engine.h>
|
||||
#endif
|
||||
|
||||
static DSA_SIG *dsa_do_sign(const unsigned char *dgst, int dlen, DSA *dsa);
|
||||
static int dsa_sign_setup(DSA *dsa, BN_CTX *ctx_in, BIGNUM **kinvp, BIGNUM **rp);
|
||||
|
||||
@@ -64,9 +64,6 @@
|
||||
#include <openssl/dsa.h>
|
||||
#include <openssl/rand.h>
|
||||
#include <openssl/asn1.h>
|
||||
#ifndef OPENSSL_NO_ENGINE
|
||||
#include <openssl/engine.h>
|
||||
#endif
|
||||
|
||||
DSA_SIG * DSA_do_sign(const unsigned char *dgst, int dlen, DSA *dsa)
|
||||
{
|
||||
|
||||
@@ -65,9 +65,6 @@
|
||||
#include <openssl/rand.h>
|
||||
#include <openssl/asn1.h>
|
||||
#include <openssl/asn1_mac.h>
|
||||
#ifndef OPENSSL_NO_ENGINE
|
||||
#include <openssl/engine.h>
|
||||
#endif
|
||||
|
||||
int DSA_do_verify(const unsigned char *dgst, int dgst_len, DSA_SIG *sig,
|
||||
DSA *dsa)
|
||||
|
||||
@@ -68,12 +68,6 @@
|
||||
#include <openssl/rand.h>
|
||||
#include <openssl/bio.h>
|
||||
#include <openssl/err.h>
|
||||
#ifndef OPENSSL_NO_ENGINE
|
||||
#include <openssl/engine.h>
|
||||
#endif
|
||||
#ifdef OPENSSL_SYS_WINDOWS
|
||||
#include "../bio/bss_file.c"
|
||||
#endif
|
||||
|
||||
#ifdef OPENSSL_NO_DSA
|
||||
int main(int argc, char *argv[])
|
||||
|
||||
@@ -66,18 +66,18 @@ int ENGINE_set_default(ENGINE *e, unsigned int flags)
|
||||
if((flags & ENGINE_METHOD_DIGESTS) && !ENGINE_set_default_digests(e))
|
||||
return 0;
|
||||
#ifndef OPENSSL_NO_RSA
|
||||
if((flags & ENGINE_METHOD_RSA) & !ENGINE_set_default_RSA(e))
|
||||
if((flags & ENGINE_METHOD_RSA) && !ENGINE_set_default_RSA(e))
|
||||
return 0;
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_DSA
|
||||
if((flags & ENGINE_METHOD_DSA) & !ENGINE_set_default_DSA(e))
|
||||
if((flags & ENGINE_METHOD_DSA) && !ENGINE_set_default_DSA(e))
|
||||
return 0;
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_DH
|
||||
if((flags & ENGINE_METHOD_DH) & !ENGINE_set_default_DH(e))
|
||||
if((flags & ENGINE_METHOD_DH) && !ENGINE_set_default_DH(e))
|
||||
return 0;
|
||||
#endif
|
||||
if((flags & ENGINE_METHOD_RAND) & !ENGINE_set_default_RAND(e))
|
||||
if((flags & ENGINE_METHOD_RAND) && !ENGINE_set_default_RAND(e))
|
||||
return 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -70,7 +70,7 @@ links:
|
||||
@$(TOP)/util/point.sh Makefile.ssl Makefile
|
||||
@$(PERL) $(TOP)/util/mklink.pl ../../include/openssl $(EXHEADER)
|
||||
@$(PERL) $(TOP)/util/mklink.pl ../../test $(TEST)
|
||||
@$(PERL) $(TOP)/util/mklink.pl ../../test $(TESTDATA)
|
||||
cp $(TESTDATA) ../../test
|
||||
@$(PERL) $(TOP)/util/mklink.pl ../../apps $(APPS)
|
||||
|
||||
install:
|
||||
@@ -496,21 +496,19 @@ evp_acnf.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
|
||||
evp_acnf.o: ../../include/openssl/conf.h ../../include/openssl/crypto.h
|
||||
evp_acnf.o: ../../include/openssl/des.h ../../include/openssl/des_old.h
|
||||
evp_acnf.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
|
||||
evp_acnf.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h
|
||||
evp_acnf.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
evp_acnf.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
|
||||
evp_acnf.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
|
||||
evp_acnf.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
|
||||
evp_acnf.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
evp_acnf.o: ../../include/openssl/opensslconf.h
|
||||
evp_acnf.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
|
||||
evp_acnf.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
|
||||
evp_acnf.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
|
||||
evp_acnf.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
|
||||
evp_acnf.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
|
||||
evp_acnf.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
evp_acnf.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
evp_acnf.o: ../../include/openssl/rand.h ../../include/openssl/rc2.h
|
||||
evp_acnf.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
|
||||
evp_acnf.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
|
||||
evp_acnf.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
|
||||
evp_acnf.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
evp_acnf.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
|
||||
evp_acnf.o: ../cryptlib.h evp_acnf.c
|
||||
evp_acnf.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
|
||||
evp_acnf.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
|
||||
evp_acnf.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
|
||||
evp_acnf.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
||||
evp_acnf.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
|
||||
evp_acnf.o: ../../include/openssl/ui_compat.h ../cryptlib.h evp_acnf.c
|
||||
evp_enc.o: ../../e_os.h ../../include/openssl/aes.h
|
||||
evp_enc.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
evp_enc.o: ../../include/openssl/blowfish.h ../../include/openssl/bn.h
|
||||
|
||||
@@ -271,7 +271,7 @@ static int enc_write(BIO *b, const char *in, int inl)
|
||||
if (i <= 0)
|
||||
{
|
||||
BIO_copy_next_retry(b);
|
||||
return(i);
|
||||
return (ret == inl) ? i : ret - inl;
|
||||
}
|
||||
n-=i;
|
||||
ctx->buf_off+=i;
|
||||
@@ -325,10 +325,7 @@ again:
|
||||
{
|
||||
i=enc_write(b,NULL,0);
|
||||
if (i < 0)
|
||||
{
|
||||
ret=i;
|
||||
break;
|
||||
}
|
||||
return i;
|
||||
}
|
||||
|
||||
if (!ctx->finished)
|
||||
|
||||
@@ -73,7 +73,9 @@ void OPENSSL_add_all_algorithms_noconf(void)
|
||||
{
|
||||
OpenSSL_add_all_ciphers();
|
||||
OpenSSL_add_all_digests();
|
||||
#if defined(__OpenBSD__) || defined(__FreeBSD__)
|
||||
#ifndef OPENSSL_NO_ENGINE
|
||||
# if defined(__OpenBSD__) || defined(__FreeBSD__)
|
||||
ENGINE_setup_bsd_cryptodev();
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -187,12 +187,12 @@ int EVP_DigestInit_ex(EVP_MD_CTX *ctx, const EVP_MD *type, ENGINE *impl)
|
||||
ctx->engine = NULL;
|
||||
}
|
||||
else
|
||||
#endif
|
||||
if(!ctx->digest)
|
||||
{
|
||||
EVPerr(EVP_F_EVP_DIGESTINIT, EVP_R_NO_DIGEST_SET);
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
if (ctx->digest != type)
|
||||
{
|
||||
if (ctx->digest && ctx->digest->ctx_size)
|
||||
|
||||
@@ -59,9 +59,6 @@
|
||||
#include "cryptlib.h"
|
||||
#include <openssl/evp.h>
|
||||
#include <openssl/conf.h>
|
||||
#ifndef OPENSSL_NO_ENGINE
|
||||
#include <openssl/engine.h>
|
||||
#endif
|
||||
|
||||
|
||||
/* Load all algorithms and configure OpenSSL.
|
||||
|
||||
@@ -80,8 +80,10 @@ struct tm *OPENSSL_gmtime(const time_t *timer, struct tm *result)
|
||||
ts = result;
|
||||
#elif !defined(OPENSSL_SYS_VMS)
|
||||
ts = gmtime(timer);
|
||||
if (ts != NULL)
|
||||
memcpy(result, ts, sizeof(struct tm));
|
||||
if (ts == NULL)
|
||||
return NULL;
|
||||
|
||||
memcpy(result, ts, sizeof(struct tm));
|
||||
ts = result;
|
||||
#endif
|
||||
#ifdef OPENSSL_SYS_VMS
|
||||
|
||||
@@ -110,7 +110,7 @@ Content-Length: %d\r\n\r\n";
|
||||
}
|
||||
/* Parse the HTTP response. This will look like this:
|
||||
* "HTTP/1.0 200 OK". We need to obtain the numeric code and
|
||||
* informational message.
|
||||
* (optional) informational message.
|
||||
*/
|
||||
|
||||
/* Skip to first white space (passed protocol info) */
|
||||
@@ -138,13 +138,19 @@ Content-Length: %d\r\n\r\n";
|
||||
if(*r) goto err;
|
||||
/* Skip over any leading white space in message */
|
||||
while(*q && isspace((unsigned char)*q)) q++;
|
||||
if(!*q) goto err;
|
||||
if(*q) {
|
||||
/* Finally zap any trailing white space in message (include CRLF) */
|
||||
/* We know q has a non white space character so this is OK */
|
||||
for(r = q + strlen(q) - 1; isspace((unsigned char)*r); r--) *r = 0;
|
||||
for(r = q + strlen(q) - 1; isspace((unsigned char)*r); r--) *r = 0;
|
||||
}
|
||||
if(retcode != 200) {
|
||||
OCSPerr(OCSP_F_OCSP_SENDREQ_BIO,OCSP_R_SERVER_RESPONSE_ERROR);
|
||||
ERR_add_error_data(4, "Code=", p, ",Reason=", q);
|
||||
if(!*q) {
|
||||
ERR_add_error_data(2, "Code=", p);
|
||||
}
|
||||
else {
|
||||
ERR_add_error_data(4, "Code=", p, ",Reason=", q);
|
||||
}
|
||||
goto err;
|
||||
}
|
||||
/* Find blank line marking beginning of content */
|
||||
|
||||
@@ -25,8 +25,8 @@
|
||||
* (Prior to 0.9.5a beta1, a different scheme was used: MMNNFFRBB for
|
||||
* major minor fix final patch/beta)
|
||||
*/
|
||||
#define OPENSSL_VERSION_NUMBER 0x0090701fL
|
||||
#define OPENSSL_VERSION_TEXT "OpenSSL 0.9.7a Feb 19 2003"
|
||||
#define OPENSSL_VERSION_NUMBER 0x0090702fL
|
||||
#define OPENSSL_VERSION_TEXT "OpenSSL 0.9.7b 10 Apr 2003"
|
||||
#define OPENSSL_VERSION_PTEXT " part of " OPENSSL_VERSION_TEXT
|
||||
|
||||
|
||||
|
||||
@@ -107,7 +107,7 @@ static int newpass_p12(PKCS12 *p12, char *oldpass, char *newpass)
|
||||
{
|
||||
STACK_OF(PKCS7) *asafes, *newsafes;
|
||||
STACK_OF(PKCS12_SAFEBAG) *bags;
|
||||
int i, bagnid, pbe_nid, pbe_iter, pbe_saltlen;
|
||||
int i, bagnid, pbe_nid = 0, pbe_iter = 0, pbe_saltlen = 0;
|
||||
PKCS7 *p7, *p7new;
|
||||
ASN1_OCTET_STRING *p12_data_tmp = NULL, *macnew = NULL;
|
||||
unsigned char mac[EVP_MAX_MD_SIZE];
|
||||
|
||||
@@ -104,14 +104,12 @@ rsa_chk.o: rsa_chk.c
|
||||
rsa_eay.o: ../../e_os.h ../../include/openssl/asn1.h
|
||||
rsa_eay.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
|
||||
rsa_eay.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
rsa_eay.o: ../../include/openssl/dh.h ../../include/openssl/dsa.h
|
||||
rsa_eay.o: ../../include/openssl/e_os2.h ../../include/openssl/engine.h
|
||||
rsa_eay.o: ../../include/openssl/err.h ../../include/openssl/lhash.h
|
||||
rsa_eay.o: ../../include/openssl/opensslconf.h ../../include/openssl/opensslv.h
|
||||
rsa_eay.o: ../../include/openssl/ossl_typ.h ../../include/openssl/rand.h
|
||||
rsa_eay.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
|
||||
rsa_eay.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
rsa_eay.o: ../../include/openssl/ui.h ../cryptlib.h rsa_eay.c
|
||||
rsa_eay.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
|
||||
rsa_eay.o: ../../include/openssl/lhash.h ../../include/openssl/opensslconf.h
|
||||
rsa_eay.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
rsa_eay.o: ../../include/openssl/rand.h ../../include/openssl/rsa.h
|
||||
rsa_eay.o: ../../include/openssl/safestack.h ../../include/openssl/stack.h
|
||||
rsa_eay.o: ../../include/openssl/symhacks.h ../cryptlib.h rsa_eay.c
|
||||
rsa_err.o: ../../include/openssl/asn1.h ../../include/openssl/bio.h
|
||||
rsa_err.o: ../../include/openssl/bn.h ../../include/openssl/crypto.h
|
||||
rsa_err.o: ../../include/openssl/e_os2.h ../../include/openssl/err.h
|
||||
@@ -217,21 +215,21 @@ rsa_sign.o: ../../include/openssl/buffer.h ../../include/openssl/cast.h
|
||||
rsa_sign.o: ../../include/openssl/crypto.h ../../include/openssl/des.h
|
||||
rsa_sign.o: ../../include/openssl/des_old.h ../../include/openssl/dh.h
|
||||
rsa_sign.o: ../../include/openssl/dsa.h ../../include/openssl/e_os2.h
|
||||
rsa_sign.o: ../../include/openssl/engine.h ../../include/openssl/err.h
|
||||
rsa_sign.o: ../../include/openssl/evp.h ../../include/openssl/idea.h
|
||||
rsa_sign.o: ../../include/openssl/lhash.h ../../include/openssl/md2.h
|
||||
rsa_sign.o: ../../include/openssl/md4.h ../../include/openssl/md5.h
|
||||
rsa_sign.o: ../../include/openssl/mdc2.h ../../include/openssl/obj_mac.h
|
||||
rsa_sign.o: ../../include/openssl/objects.h ../../include/openssl/opensslconf.h
|
||||
rsa_sign.o: ../../include/openssl/err.h ../../include/openssl/evp.h
|
||||
rsa_sign.o: ../../include/openssl/idea.h ../../include/openssl/lhash.h
|
||||
rsa_sign.o: ../../include/openssl/md2.h ../../include/openssl/md4.h
|
||||
rsa_sign.o: ../../include/openssl/md5.h ../../include/openssl/mdc2.h
|
||||
rsa_sign.o: ../../include/openssl/obj_mac.h ../../include/openssl/objects.h
|
||||
rsa_sign.o: ../../include/openssl/opensslconf.h
|
||||
rsa_sign.o: ../../include/openssl/opensslv.h ../../include/openssl/ossl_typ.h
|
||||
rsa_sign.o: ../../include/openssl/pkcs7.h ../../include/openssl/rand.h
|
||||
rsa_sign.o: ../../include/openssl/rc2.h ../../include/openssl/rc4.h
|
||||
rsa_sign.o: ../../include/openssl/rc5.h ../../include/openssl/ripemd.h
|
||||
rsa_sign.o: ../../include/openssl/rsa.h ../../include/openssl/safestack.h
|
||||
rsa_sign.o: ../../include/openssl/sha.h ../../include/openssl/stack.h
|
||||
rsa_sign.o: ../../include/openssl/symhacks.h ../../include/openssl/ui.h
|
||||
rsa_sign.o: ../../include/openssl/ui_compat.h ../../include/openssl/x509.h
|
||||
rsa_sign.o: ../../include/openssl/x509_vfy.h ../cryptlib.h rsa_sign.c
|
||||
rsa_sign.o: ../../include/openssl/pkcs7.h ../../include/openssl/rc2.h
|
||||
rsa_sign.o: ../../include/openssl/rc4.h ../../include/openssl/rc5.h
|
||||
rsa_sign.o: ../../include/openssl/ripemd.h ../../include/openssl/rsa.h
|
||||
rsa_sign.o: ../../include/openssl/safestack.h ../../include/openssl/sha.h
|
||||
rsa_sign.o: ../../include/openssl/stack.h ../../include/openssl/symhacks.h
|
||||
rsa_sign.o: ../../include/openssl/ui.h ../../include/openssl/ui_compat.h
|
||||
rsa_sign.o: ../../include/openssl/x509.h ../../include/openssl/x509_vfy.h
|
||||
rsa_sign.o: ../cryptlib.h rsa_sign.c
|
||||
rsa_ssl.o: ../../e_os.h ../../include/openssl/asn1.h
|
||||
rsa_ssl.o: ../../include/openssl/bio.h ../../include/openssl/bn.h
|
||||
rsa_ssl.o: ../../include/openssl/buffer.h ../../include/openssl/crypto.h
|
||||
|
||||
@@ -158,6 +158,11 @@ struct rsa_st
|
||||
#define RSA_FLAG_CACHE_PUBLIC 0x02
|
||||
#define RSA_FLAG_CACHE_PRIVATE 0x04
|
||||
#define RSA_FLAG_BLINDING 0x08
|
||||
#define RSA_FLAG_NO_BLINDING 0x80 /* new with 0.9.6j and 0.9.7b; the built-in
|
||||
* RSA implementation now uses blinding by
|
||||
* default (ignoring RSA_FLAG_BLINDING),
|
||||
* but other engines might not need it
|
||||
*/
|
||||
#define RSA_FLAG_THREAD_SAFE 0x10
|
||||
/* This flag means the private key operations will be handled by rsa_mod_exp
|
||||
* and that they do not depend on the private key components being present:
|
||||
@@ -170,6 +175,8 @@ struct rsa_st
|
||||
*/
|
||||
#define RSA_FLAG_SIGN_VER 0x40
|
||||
|
||||
#define RSA_FLAG_NO_BLINDING 0x80
|
||||
|
||||
#define RSA_PKCS1_PADDING 1
|
||||
#define RSA_SSLV23_PADDING 2
|
||||
#define RSA_NO_PADDING 3
|
||||
|
||||
@@ -61,9 +61,6 @@
|
||||
#include <openssl/bn.h>
|
||||
#include <openssl/rsa.h>
|
||||
#include <openssl/rand.h>
|
||||
#ifndef OPENSSL_NO_ENGINE
|
||||
#include <openssl/engine.h>
|
||||
#endif
|
||||
|
||||
#ifndef RSA_NULL
|
||||
|
||||
@@ -195,6 +192,59 @@ err:
|
||||
return(r);
|
||||
}
|
||||
|
||||
static int rsa_eay_blinding(RSA *rsa, BN_CTX *ctx)
|
||||
{
|
||||
int ret = 1;
|
||||
CRYPTO_w_lock(CRYPTO_LOCK_RSA);
|
||||
/* Check again inside the lock - the macro's check is racey */
|
||||
if(rsa->blinding == NULL)
|
||||
ret = RSA_blinding_on(rsa, ctx);
|
||||
CRYPTO_w_unlock(CRYPTO_LOCK_RSA);
|
||||
return ret;
|
||||
}
|
||||
|
||||
#define BLINDING_HELPER(rsa, ctx, err_instr) \
|
||||
do { \
|
||||
if((!((rsa)->flags & RSA_FLAG_NO_BLINDING)) && \
|
||||
((rsa)->blinding == NULL) && \
|
||||
!rsa_eay_blinding(rsa, ctx)) \
|
||||
err_instr \
|
||||
} while(0)
|
||||
|
||||
static BN_BLINDING *setup_blinding(RSA *rsa, BN_CTX *ctx)
|
||||
{
|
||||
BIGNUM *A, *Ai;
|
||||
BN_BLINDING *ret = NULL;
|
||||
|
||||
/* added in OpenSSL 0.9.6j and 0.9.7b */
|
||||
|
||||
/* NB: similar code appears in RSA_blinding_on (rsa_lib.c);
|
||||
* this should be placed in a new function of its own, but for reasons
|
||||
* of binary compatibility can't */
|
||||
|
||||
BN_CTX_start(ctx);
|
||||
A = BN_CTX_get(ctx);
|
||||
if ((RAND_status() == 0) && rsa->d != NULL && rsa->d->d != NULL)
|
||||
{
|
||||
/* if PRNG is not properly seeded, resort to secret exponent as unpredictable seed */
|
||||
RAND_add(rsa->d->d, rsa->d->dmax * sizeof rsa->d->d[0], 0);
|
||||
if (!BN_pseudo_rand_range(A,rsa->n)) goto err;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!BN_rand_range(A,rsa->n)) goto err;
|
||||
}
|
||||
if ((Ai=BN_mod_inverse(NULL,A,rsa->n,ctx)) == NULL) goto err;
|
||||
|
||||
if (!rsa->meth->bn_mod_exp(A,A,rsa->e,rsa->n,ctx,rsa->_method_mod_n))
|
||||
goto err;
|
||||
ret = BN_BLINDING_new(A,Ai,rsa->n);
|
||||
BN_free(Ai);
|
||||
err:
|
||||
BN_CTX_end(ctx);
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* signing */
|
||||
static int RSA_eay_private_encrypt(int flen, const unsigned char *from,
|
||||
unsigned char *to, RSA *rsa, int padding)
|
||||
@@ -203,6 +253,8 @@ static int RSA_eay_private_encrypt(int flen, const unsigned char *from,
|
||||
int i,j,k,num=0,r= -1;
|
||||
unsigned char *buf=NULL;
|
||||
BN_CTX *ctx=NULL;
|
||||
int local_blinding = 0;
|
||||
BN_BLINDING *blinding = NULL;
|
||||
|
||||
BN_init(&f);
|
||||
BN_init(&ret);
|
||||
@@ -239,10 +291,39 @@ static int RSA_eay_private_encrypt(int flen, const unsigned char *from,
|
||||
goto err;
|
||||
}
|
||||
|
||||
if ((rsa->flags & RSA_FLAG_BLINDING) && (rsa->blinding == NULL))
|
||||
RSA_blinding_on(rsa,ctx);
|
||||
if (rsa->flags & RSA_FLAG_BLINDING)
|
||||
if (!BN_BLINDING_convert(&f,rsa->blinding,ctx)) goto err;
|
||||
BLINDING_HELPER(rsa, ctx, goto err;);
|
||||
blinding = rsa->blinding;
|
||||
|
||||
/* Now unless blinding is disabled, 'blinding' is non-NULL.
|
||||
* But the BN_BLINDING object may be owned by some other thread
|
||||
* (we don't want to keep it constant and we don't want to use
|
||||
* lots of locking to avoid race conditions, so only a single
|
||||
* thread can use it; other threads have to use local blinding
|
||||
* factors) */
|
||||
if (!(rsa->flags & RSA_FLAG_NO_BLINDING))
|
||||
{
|
||||
if (blinding == NULL)
|
||||
{
|
||||
RSAerr(RSA_F_RSA_EAY_PRIVATE_ENCRYPT, ERR_R_INTERNAL_ERROR);
|
||||
goto err;
|
||||
}
|
||||
}
|
||||
|
||||
if (blinding != NULL)
|
||||
{
|
||||
if (blinding->thread_id != CRYPTO_thread_id())
|
||||
{
|
||||
/* we need a local one-time blinding factor */
|
||||
|
||||
blinding = setup_blinding(rsa, ctx);
|
||||
if (blinding == NULL)
|
||||
goto err;
|
||||
local_blinding = 1;
|
||||
}
|
||||
}
|
||||
|
||||
if (blinding)
|
||||
if (!BN_BLINDING_convert(&f, blinding, ctx)) goto err;
|
||||
|
||||
if ( (rsa->flags & RSA_FLAG_EXT_PKEY) ||
|
||||
((rsa->p != NULL) &&
|
||||
@@ -256,8 +337,8 @@ static int RSA_eay_private_encrypt(int flen, const unsigned char *from,
|
||||
if (!rsa->meth->bn_mod_exp(&ret,&f,rsa->d,rsa->n,ctx,NULL)) goto err;
|
||||
}
|
||||
|
||||
if (rsa->flags & RSA_FLAG_BLINDING)
|
||||
if (!BN_BLINDING_invert(&ret,rsa->blinding,ctx)) goto err;
|
||||
if (blinding)
|
||||
if (!BN_BLINDING_invert(&ret, blinding, ctx)) goto err;
|
||||
|
||||
/* put in leading 0 bytes if the number is less than the
|
||||
* length of the modulus */
|
||||
@@ -271,6 +352,8 @@ err:
|
||||
if (ctx != NULL) BN_CTX_free(ctx);
|
||||
BN_clear_free(&ret);
|
||||
BN_clear_free(&f);
|
||||
if (local_blinding)
|
||||
BN_BLINDING_free(blinding);
|
||||
if (buf != NULL)
|
||||
{
|
||||
OPENSSL_cleanse(buf,num);
|
||||
@@ -287,6 +370,8 @@ static int RSA_eay_private_decrypt(int flen, const unsigned char *from,
|
||||
unsigned char *p;
|
||||
unsigned char *buf=NULL;
|
||||
BN_CTX *ctx=NULL;
|
||||
int local_blinding = 0;
|
||||
BN_BLINDING *blinding = NULL;
|
||||
|
||||
BN_init(&f);
|
||||
BN_init(&ret);
|
||||
@@ -318,10 +403,39 @@ static int RSA_eay_private_decrypt(int flen, const unsigned char *from,
|
||||
goto err;
|
||||
}
|
||||
|
||||
if ((rsa->flags & RSA_FLAG_BLINDING) && (rsa->blinding == NULL))
|
||||
RSA_blinding_on(rsa,ctx);
|
||||
if (rsa->flags & RSA_FLAG_BLINDING)
|
||||
if (!BN_BLINDING_convert(&f,rsa->blinding,ctx)) goto err;
|
||||
BLINDING_HELPER(rsa, ctx, goto err;);
|
||||
blinding = rsa->blinding;
|
||||
|
||||
/* Now unless blinding is disabled, 'blinding' is non-NULL.
|
||||
* But the BN_BLINDING object may be owned by some other thread
|
||||
* (we don't want to keep it constant and we don't want to use
|
||||
* lots of locking to avoid race conditions, so only a single
|
||||
* thread can use it; other threads have to use local blinding
|
||||
* factors) */
|
||||
if (!(rsa->flags & RSA_FLAG_NO_BLINDING))
|
||||
{
|
||||
if (blinding == NULL)
|
||||
{
|
||||
RSAerr(RSA_F_RSA_EAY_PRIVATE_DECRYPT, ERR_R_INTERNAL_ERROR);
|
||||
goto err;
|
||||
}
|
||||
}
|
||||
|
||||
if (blinding != NULL)
|
||||
{
|
||||
if (blinding->thread_id != CRYPTO_thread_id())
|
||||
{
|
||||
/* we need a local one-time blinding factor */
|
||||
|
||||
blinding = setup_blinding(rsa, ctx);
|
||||
if (blinding == NULL)
|
||||
goto err;
|
||||
local_blinding = 1;
|
||||
}
|
||||
}
|
||||
|
||||
if (blinding)
|
||||
if (!BN_BLINDING_convert(&f, blinding, ctx)) goto err;
|
||||
|
||||
/* do the decrypt */
|
||||
if ( (rsa->flags & RSA_FLAG_EXT_PKEY) ||
|
||||
@@ -337,8 +451,8 @@ static int RSA_eay_private_decrypt(int flen, const unsigned char *from,
|
||||
goto err;
|
||||
}
|
||||
|
||||
if (rsa->flags & RSA_FLAG_BLINDING)
|
||||
if (!BN_BLINDING_invert(&ret,rsa->blinding,ctx)) goto err;
|
||||
if (blinding)
|
||||
if (!BN_BLINDING_invert(&ret, blinding, ctx)) goto err;
|
||||
|
||||
p=buf;
|
||||
j=BN_bn2bin(&ret,p); /* j is only used with no-padding mode */
|
||||
|
||||
@@ -62,6 +62,7 @@
|
||||
#include <openssl/lhash.h>
|
||||
#include <openssl/bn.h>
|
||||
#include <openssl/rsa.h>
|
||||
#include <openssl/rand.h>
|
||||
#ifndef OPENSSL_NO_ENGINE
|
||||
#include <openssl/engine.h>
|
||||
#endif
|
||||
@@ -72,7 +73,9 @@ static const RSA_METHOD *default_RSA_meth=NULL;
|
||||
|
||||
RSA *RSA_new(void)
|
||||
{
|
||||
return(RSA_new_method(NULL));
|
||||
RSA *r=RSA_new_method(NULL);
|
||||
|
||||
return r;
|
||||
}
|
||||
|
||||
void RSA_set_default_method(const RSA_METHOD *meth)
|
||||
@@ -307,7 +310,8 @@ void RSA_blinding_off(RSA *rsa)
|
||||
BN_BLINDING_free(rsa->blinding);
|
||||
rsa->blinding=NULL;
|
||||
}
|
||||
rsa->flags&= ~RSA_FLAG_BLINDING;
|
||||
rsa->flags &= ~RSA_FLAG_BLINDING;
|
||||
rsa->flags |= RSA_FLAG_NO_BLINDING;
|
||||
}
|
||||
|
||||
int RSA_blinding_on(RSA *rsa, BN_CTX *p_ctx)
|
||||
@@ -326,15 +330,32 @@ int RSA_blinding_on(RSA *rsa, BN_CTX *p_ctx)
|
||||
if (rsa->blinding != NULL)
|
||||
BN_BLINDING_free(rsa->blinding);
|
||||
|
||||
/* NB: similar code appears in setup_blinding (rsa_eay.c);
|
||||
* this should be placed in a new function of its own, but for reasons
|
||||
* of binary compatibility can't */
|
||||
|
||||
BN_CTX_start(ctx);
|
||||
A = BN_CTX_get(ctx);
|
||||
if (!BN_rand_range(A,rsa->n)) goto err;
|
||||
if ((RAND_status() == 0) && rsa->d != NULL && rsa->d->d != NULL)
|
||||
{
|
||||
/* if PRNG is not properly seeded, resort to secret exponent as unpredictable seed */
|
||||
RAND_add(rsa->d->d, rsa->d->dmax * sizeof rsa->d->d[0], 0);
|
||||
if (!BN_pseudo_rand_range(A,rsa->n)) goto err;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!BN_rand_range(A,rsa->n)) goto err;
|
||||
}
|
||||
if ((Ai=BN_mod_inverse(NULL,A,rsa->n,ctx)) == NULL) goto err;
|
||||
|
||||
if (!rsa->meth->bn_mod_exp(A,A,rsa->e,rsa->n,ctx,rsa->_method_mod_n))
|
||||
goto err;
|
||||
rsa->blinding=BN_BLINDING_new(A,Ai,rsa->n);
|
||||
rsa->flags|=RSA_FLAG_BLINDING;
|
||||
goto err;
|
||||
if ((rsa->blinding=BN_BLINDING_new(A,Ai,rsa->n)) == NULL) goto err;
|
||||
/* to make things thread-safe without excessive locking,
|
||||
* rsa->blinding will be used just by the current thread: */
|
||||
rsa->blinding->thread_id = CRYPTO_thread_id();
|
||||
rsa->flags |= RSA_FLAG_BLINDING;
|
||||
rsa->flags &= ~RSA_FLAG_NO_BLINDING;
|
||||
BN_free(Ai);
|
||||
ret=1;
|
||||
err:
|
||||
|
||||
@@ -62,9 +62,6 @@
|
||||
#include <openssl/rsa.h>
|
||||
#include <openssl/objects.h>
|
||||
#include <openssl/x509.h>
|
||||
#ifndef OPENSSL_NO_ENGINE
|
||||
#include <openssl/engine.h>
|
||||
#endif
|
||||
|
||||
/* Size of an SSL signature: MD5+SHA1 */
|
||||
#define SSL_SIG_LENGTH 36
|
||||
@@ -79,12 +76,11 @@ int RSA_sign(int type, const unsigned char *m, unsigned int m_len,
|
||||
const unsigned char *s = NULL;
|
||||
X509_ALGOR algor;
|
||||
ASN1_OCTET_STRING digest;
|
||||
#ifndef OPENSSL_NO_ENGINE
|
||||
if((rsa->flags & RSA_FLAG_SIGN_VER)
|
||||
&& ENGINE_get_RSA(rsa->engine)->rsa_sign)
|
||||
return ENGINE_get_RSA(rsa->engine)->rsa_sign(type,
|
||||
m, m_len, sigret, siglen, rsa);
|
||||
#endif
|
||||
if((rsa->flags & RSA_FLAG_SIGN_VER) && rsa->meth->rsa_sign)
|
||||
{
|
||||
return rsa->meth->rsa_sign(type, m, m_len,
|
||||
sigret, siglen, rsa);
|
||||
}
|
||||
/* Special case: SSL signature, just check the length */
|
||||
if(type == NID_md5_sha1) {
|
||||
if(m_len != SSL_SIG_LENGTH) {
|
||||
@@ -159,12 +155,11 @@ int RSA_verify(int dtype, const unsigned char *m, unsigned int m_len,
|
||||
return(0);
|
||||
}
|
||||
|
||||
#ifndef OPENSSL_NO_ENGINE
|
||||
if((rsa->flags & RSA_FLAG_SIGN_VER)
|
||||
&& ENGINE_get_RSA(rsa->engine)->rsa_verify)
|
||||
return ENGINE_get_RSA(rsa->engine)->rsa_verify(dtype,
|
||||
m, m_len, sigbuf, siglen, rsa);
|
||||
#endif
|
||||
if((rsa->flags & RSA_FLAG_SIGN_VER) && rsa->meth->rsa_verify)
|
||||
{
|
||||
return rsa->meth->rsa_verify(dtype, m, m_len,
|
||||
sigbuf, siglen, rsa);
|
||||
}
|
||||
|
||||
s=(unsigned char *)OPENSSL_malloc((unsigned int)siglen);
|
||||
if (s == NULL)
|
||||
|
||||
@@ -16,9 +16,6 @@ int main(int argc, char *argv[])
|
||||
}
|
||||
#else
|
||||
#include <openssl/rsa.h>
|
||||
#ifndef OPENSSL_NO_ENGINE
|
||||
#include <openssl/engine.h>
|
||||
#endif
|
||||
|
||||
#define SetKey \
|
||||
key->n = BN_bin2bn(n, sizeof(n)-1, key->n); \
|
||||
|
||||
@@ -86,11 +86,6 @@
|
||||
#include <openssl/err.h>
|
||||
#include <openssl/rand.h>
|
||||
|
||||
#ifdef OPENSSL_NO_FP_API
|
||||
#define APPS_WIN16
|
||||
#include "../buffer/bss_file.c"
|
||||
#endif
|
||||
|
||||
#define TEST_SERVER_CERT "../../apps/server.pem"
|
||||
#define TEST_CLIENT_CERT "../../apps/client.pem"
|
||||
|
||||
|
||||
@@ -285,7 +285,8 @@ int X509_load_cert_crl_file(X509_LOOKUP *ctx, const char *file, int type)
|
||||
if(itmp->x509) {
|
||||
X509_STORE_add_cert(ctx->store_ctx, itmp->x509);
|
||||
count++;
|
||||
} else if(itmp->crl) {
|
||||
}
|
||||
if(itmp->crl) {
|
||||
X509_STORE_add_crl(ctx->store_ctx, itmp->crl);
|
||||
count++;
|
||||
}
|
||||
|
||||
@@ -178,7 +178,7 @@ int X509V3_extensions_print(BIO *bp, char *title, STACK_OF(X509_EXTENSION) *exts
|
||||
ASN1_OBJECT *obj;
|
||||
X509_EXTENSION *ex;
|
||||
ex=sk_X509_EXTENSION_value(exts, i);
|
||||
if (BIO_printf(bp,"%*s",indent, "") <= 0) return 0;
|
||||
if (indent && BIO_printf(bp,"%*s",indent, "") <= 0) return 0;
|
||||
obj=X509_EXTENSION_get_object(ex);
|
||||
i2a_ASN1_OBJECT(bp,obj);
|
||||
j=X509_EXTENSION_get_critical(ex);
|
||||
|
||||
@@ -48,7 +48,7 @@ you have your own certificate authority, you may sign it yourself, or
|
||||
if you need a self-signed certificate (because you just want a test
|
||||
certificate or because you are setting up your own CA).
|
||||
|
||||
The certificate is created like this:
|
||||
The certificate request is created like this:
|
||||
|
||||
openssl req -new -key privkey.pem -out cert.csr
|
||||
|
||||
@@ -71,13 +71,11 @@ received.
|
||||
If you don't want to deal with another certificate authority, or just
|
||||
want to create a test certificate for yourself, or are setting up a
|
||||
certificate authority of your own, you may want to make the requested
|
||||
certificate a self-signed one. If you have created a certificate
|
||||
request as shown above, you can sign it using the 'openssl x509'
|
||||
command, for example like this (to create a self-signed CA
|
||||
certificate):
|
||||
certificate a self-signed one. This is similar to creating a
|
||||
certificate request, but creates a certificate instead of a
|
||||
certificate request (1095 is 3 years):
|
||||
|
||||
openssl x509 -req -in cert.csr -extfile openssl.cnf -extensions v3_ca \
|
||||
-signkey privkey.pem -out cacert.pem -trustout
|
||||
openssl req -new -x509 -key privkey.pem -out cacert.pem -days 1095
|
||||
|
||||
|
||||
5. What to do with the certificate
|
||||
|
||||
@@ -11,6 +11,10 @@ B<openssl> B<ocsp>
|
||||
[B<-issuer file>]
|
||||
[B<-cert file>]
|
||||
[B<-serial n>]
|
||||
[B<-signer file>]
|
||||
[B<-signkey file>]
|
||||
[B<-sign_other file>]
|
||||
[B<-no_certs>]
|
||||
[B<-req_text>]
|
||||
[B<-resp_text>]
|
||||
[B<-text>]
|
||||
@@ -20,27 +24,36 @@ B<openssl> B<ocsp>
|
||||
[B<-respin file>]
|
||||
[B<-nonce>]
|
||||
[B<-no_nonce>]
|
||||
[B<-url responder_url>]
|
||||
[B<-url URL>]
|
||||
[B<-host host:n>]
|
||||
[B<-path>]
|
||||
[B<-CApath file>]
|
||||
[B<-CApath dir>]
|
||||
[B<-CAfile file>]
|
||||
[B<-VAfile file>]
|
||||
[B<-verify_certs file>]
|
||||
[B<-validity_period n>]
|
||||
[B<-status_age n>]
|
||||
[B<-noverify>]
|
||||
[B<-verify_other file>]
|
||||
[B<-trust_other>]
|
||||
[B<-no_intern>]
|
||||
[B<-no_sig_verify>]
|
||||
[B<-no_signature_verify>]
|
||||
[B<-no_cert_verify>]
|
||||
[B<-no_chain>]
|
||||
[B<-no_cert_checks>]
|
||||
[B<-validity_period nsec>]
|
||||
[B<-status_age nsec>]
|
||||
[B<-port num>]
|
||||
[B<-index file>]
|
||||
[B<-CA file>]
|
||||
[B<-rsigner file>]
|
||||
[B<-rkey file>]
|
||||
[B<-rother file>]
|
||||
[B<-resp_no_certs>]
|
||||
[B<-nmin n>]
|
||||
[B<-ndays n>]
|
||||
[B<-resp_key_id>]
|
||||
[B<-nrequest n>]
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
B<WARNING: this documentation is preliminary and subject to change.>
|
||||
|
||||
The Online Certificate Status Protocol (OCSP) enables applications to
|
||||
determine the (revocation) state of an identified certificate (RFC 2560).
|
||||
|
||||
@@ -83,6 +96,10 @@ the B<signkey> option is not present then the private key is read
|
||||
from the same file as the certificate. If neither option is specified then
|
||||
the OCSP request is not signed.
|
||||
|
||||
=item B<-sign_other filename>
|
||||
|
||||
Additional certificates to include in the signed request.
|
||||
|
||||
=item B<-nonce>, B<-no_nonce>
|
||||
|
||||
Add an OCSP nonce extension to a request or disable OCSP nonce addition.
|
||||
@@ -120,7 +137,7 @@ or "/" by default.
|
||||
file or pathname containing trusted CA certificates. These are used to verify
|
||||
the signature on the OCSP response.
|
||||
|
||||
=item B<-verify_certs file>
|
||||
=item B<-verify_other file>
|
||||
|
||||
file containing additional certificates to search when attempting to locate
|
||||
the OCSP response signing certificate. Some responders omit the actual signer's
|
||||
@@ -151,7 +168,7 @@ ignore certificates contained in the OCSP response when searching for the
|
||||
signers certificate. With this option the signers certificate must be specified
|
||||
with either the B<-verify_certs> or B<-VAfile> options.
|
||||
|
||||
=item B<-no_sig_verify>
|
||||
=item B<-no_signature_verify>
|
||||
|
||||
don't check the signature on the OCSP response. Since this option tolerates invalid
|
||||
signatures on OCSP responses it will normally only be used for testing purposes.
|
||||
|
||||
@@ -33,6 +33,7 @@ B<openssl> B<s_client>
|
||||
[B<-no_tls1>]
|
||||
[B<-bugs>]
|
||||
[B<-cipher cipherlist>]
|
||||
[B<-starttls protocol>]
|
||||
[B<-engine id>]
|
||||
[B<-rand file(s)>]
|
||||
|
||||
@@ -163,6 +164,12 @@ the server determines which cipher suite is used it should take the first
|
||||
supported cipher in the list sent by the client. See the B<ciphers>
|
||||
command for more information.
|
||||
|
||||
=item B<-starttls protocol>
|
||||
|
||||
send the protocol-specific message(s) to switch to TLS for communication.
|
||||
B<protocol> is a keyword for the intended protocol. Currently, the only
|
||||
supported keyword is "smtp".
|
||||
|
||||
=item B<-engine id>
|
||||
|
||||
specifying an engine (by it's unique B<id> string) will cause B<s_client>
|
||||
|
||||
@@ -42,6 +42,7 @@ B<openssl> B<s_server>
|
||||
[B<-WWW>]
|
||||
[B<-HTTP>]
|
||||
[B<-engine id>]
|
||||
[B<-id_prefix arg>]
|
||||
[B<-rand file(s)>]
|
||||
|
||||
=head1 DESCRIPTION
|
||||
@@ -209,6 +210,13 @@ to attempt to obtain a functional reference to the specified engine,
|
||||
thus initialising it if needed. The engine will then be set as the default
|
||||
for all available algorithms.
|
||||
|
||||
=item B<-id_prefix arg>
|
||||
|
||||
generate SSL/TLS session IDs prefixed by B<arg>. This is mostly useful
|
||||
for testing any SSL/TLS code (eg. proxies) that wish to deal with multiple
|
||||
servers, when each of which might be generating a unique range of session
|
||||
IDs (eg. with a certain prefix).
|
||||
|
||||
=item B<-rand file(s)>
|
||||
|
||||
a file or files containing random data used to seed the random number
|
||||
|
||||
@@ -28,7 +28,7 @@ BIO_flush() on an encryption BIO that is being written through is
|
||||
used to signal that no more data is to be encrypted: this is used
|
||||
to flush and possibly pad the final block through the BIO.
|
||||
|
||||
BIO_set_cipher() sets the cipher of BIO <b> to B<cipher> using key B<key>
|
||||
BIO_set_cipher() sets the cipher of BIO B<b> to B<cipher> using key B<key>
|
||||
and IV B<iv>. B<enc> should be set to 1 for encryption and zero for
|
||||
decryption.
|
||||
|
||||
|
||||
@@ -20,12 +20,22 @@ It also calls the free()ing procedures for indirectly affected items, if
|
||||
applicable: the session cache, the list of ciphers, the list of Client CAs,
|
||||
the certificates and keys.
|
||||
|
||||
=head1 WARNINGS
|
||||
|
||||
If a session-remove callback is set (SSL_CTX_sess_set_remove_cb()), this
|
||||
callback will be called for each session being freed from B<ctx>'s
|
||||
session cache. This implies, that all corresponding sessions from an
|
||||
external session cache are removed as well. If this is not desired, the user
|
||||
should explicitly unset the callback by calling
|
||||
SSL_CTX_sess_set_remove_cb(B<ctx>, NULL) prior to calling SSL_CTX_free().
|
||||
|
||||
=head1 RETURN VALUES
|
||||
|
||||
SSL_CTX_free() does not provide diagnostic information.
|
||||
|
||||
=head1 SEE ALSO
|
||||
|
||||
L<SSL_CTX_new(3)|SSL_CTX_new(3)>, L<ssl(3)|ssl(3)>
|
||||
L<SSL_CTX_new(3)|SSL_CTX_new(3)>, L<ssl(3)|ssl(3)>,
|
||||
L<SSL_CTX_sess_set_get_cb(3)|SSL_CTX_sess_set_get_cb(3)>
|
||||
|
||||
=cut
|
||||
|
||||
@@ -60,10 +60,11 @@ B<sess>. If the callback returns B<0>, the session will be immediately
|
||||
removed again.
|
||||
|
||||
The remove_session_cb() is called, whenever the SSL engine removes a session
|
||||
from the internal cache. This happens if the session is removed because
|
||||
it is expired or when a connection was not shutdown cleanly. The
|
||||
remove_session_cb() is passed the B<ctx> and the ssl session B<sess>.
|
||||
It does not provide any feedback.
|
||||
from the internal cache. This happens when the session is removed because
|
||||
it is expired or when a connection was not shutdown cleanly. It also happens
|
||||
for all sessions in the internal session cache when
|
||||
L<SSL_CTX_free(3)|SSL_CTX_free(3)> is called. The remove_session_cb() is passed
|
||||
the B<ctx> and the ssl session B<sess>. It does not provide any feedback.
|
||||
|
||||
The get_session_cb() is only called on SSL/TLS servers with the session id
|
||||
proposed by the client. The get_session_cb() is always called, also when
|
||||
@@ -80,6 +81,7 @@ L<SSL_SESSION_free(3)|SSL_SESSION_free(3)>.
|
||||
L<ssl(3)|ssl(3)>, L<d2i_SSL_SESSION(3)|d2i_SSL_SESSION(3)>,
|
||||
L<SSL_CTX_set_session_cache_mode(3)|SSL_CTX_set_session_cache_mode(3)>,
|
||||
L<SSL_CTX_flush_sessions(3)|SSL_CTX_flush_sessions(3)>,
|
||||
L<SSL_SESSION_free(3)|SSL_SESSION_free(3)>
|
||||
L<SSL_SESSION_free(3)|SSL_SESSION_free(3)>,
|
||||
L<SSL_CTX_free(3)|SSL_CTX_free(3)>
|
||||
|
||||
=cut
|
||||
|
||||
@@ -176,7 +176,7 @@ will send his list of preferences to the client and the client chooses.
|
||||
=item SSL_OP_NETSCAPE_CA_DN_BUG
|
||||
|
||||
If we accept a netscape connection, demand a client cert, have a
|
||||
non-self-sighed CA which does not have it's CA in netscape, and the
|
||||
non-self-signed CA which does not have its CA in netscape, and the
|
||||
browser has a cert, it will crash/hang. Works for 3.x and 4.xbeta
|
||||
|
||||
=item SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
@rem OpenSSL with Mingw32+GNU as
|
||||
@rem ---------------------------
|
||||
|
||||
perl Configure Mingw32 %1 %2 %3 %4 %5 %6 %7 %8
|
||||
perl Configure mingw %1 %2 %3 %4 %5 %6 %7 %8
|
||||
|
||||
@echo off
|
||||
|
||||
@@ -66,21 +66,16 @@ cd ..\..\..
|
||||
echo Generating makefile
|
||||
perl util\mkfiles.pl >MINFO
|
||||
perl util\mk1mf.pl gaswin Mingw32 >ms\mingw32a.mak
|
||||
perl util\mk1mf.pl gaswin Mingw32-files >ms\mingw32f.mak
|
||||
echo Generating DLL definition files
|
||||
perl util\mkdef.pl 32 libeay >ms\libeay32.def
|
||||
if errorlevel 1 goto end
|
||||
perl util\mkdef.pl 32 ssleay >ms\ssleay32.def
|
||||
if errorlevel 1 goto end
|
||||
|
||||
rem Create files -- this can be skipped if using the GNU file utilities
|
||||
make -f ms/mingw32f.mak
|
||||
echo You can ignore the error messages above
|
||||
|
||||
copy ms\tlhelp32.h outinc
|
||||
rem copy ms\tlhelp32.h outinc
|
||||
|
||||
echo Building the libraries
|
||||
make -f ms/mingw32a.mak
|
||||
mingw32-make -f ms/mingw32a.mak
|
||||
if errorlevel 1 goto end
|
||||
|
||||
echo Generating the DLLs and input libraries
|
||||
|
||||
@@ -4,17 +4,12 @@
|
||||
@rem Makefile
|
||||
perl util\mkfiles.pl >MINFO
|
||||
perl util\mk1mf.pl Mingw32 >ms\mingw32.mak
|
||||
perl util\mk1mf.pl Mingw32-files >ms\mingw32f.mak
|
||||
@rem DLL definition files
|
||||
perl util\mkdef.pl 32 libeay >ms\libeay32.def
|
||||
if errorlevel 1 goto end
|
||||
perl util\mkdef.pl 32 ssleay >ms\ssleay32.def
|
||||
if errorlevel 1 goto end
|
||||
|
||||
@rem Create files -- this can be skipped if using the GNU file utilities
|
||||
make -f ms/mingw32f.mak
|
||||
echo You can ignore the error messages above
|
||||
|
||||
@rem Build the libraries
|
||||
make -f ms/mingw32.mak
|
||||
if errorlevel 1 goto end
|
||||
|
||||
@@ -67,6 +67,10 @@ echo dsatest
|
||||
dsatest
|
||||
if errorlevel 1 goto done
|
||||
|
||||
echo ectest
|
||||
ectest
|
||||
if errorlevel 1 goto done
|
||||
|
||||
echo testenc
|
||||
call %test%\testenc openssl
|
||||
if errorlevel 1 goto done
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
%define libmaj 0
|
||||
%define libmin 9
|
||||
%define librel 7
|
||||
%define librev a
|
||||
%define librev b
|
||||
Release: 1
|
||||
|
||||
%define openssldir /var/ssl
|
||||
|
||||
48
shlib/sco5-shared-gcc.sh
Executable file
48
shlib/sco5-shared-gcc.sh
Executable file
@@ -0,0 +1,48 @@
|
||||
#!/bin/sh
|
||||
|
||||
major="0"
|
||||
minor="9.7b"
|
||||
|
||||
slib=libssl
|
||||
sh_slib=$slib.so.$major.$minor
|
||||
|
||||
clib=libcrypto
|
||||
sh_clib=$clib.so.$major.$minor
|
||||
|
||||
FLAGS="-O3 -fomit-frame-pointer"
|
||||
SHFLAGS="-DPIC -fPIC"
|
||||
|
||||
touch $sh_clib
|
||||
touch $sh_slib
|
||||
|
||||
echo collecting all object files for $clib.so
|
||||
OBJS=
|
||||
find . -name \*.o -print > allobjs
|
||||
for obj in `ar t libcrypto.a`
|
||||
do
|
||||
OBJS="$OBJS `grep $obj allobjs`"
|
||||
done
|
||||
|
||||
echo linking $clib.so
|
||||
gcc -G -o $sh_clib -h $sh_clib $OBJS -lnsl -lsocket
|
||||
|
||||
rm -f $clib.so
|
||||
ln -s $sh_clib $clib.so
|
||||
|
||||
echo collecting all object files for $slib.so
|
||||
OBJS=
|
||||
for obj in `ar t libssl.a`
|
||||
do
|
||||
OBJS="$OBJS `grep $obj allobjs`"
|
||||
done
|
||||
|
||||
echo linking $slib.so
|
||||
gcc -G -o $sh_slib -h $sh_slib $OBJS -L. -lcrypto
|
||||
|
||||
rm -f $slib.so
|
||||
ln -s $sh_slib $slib.so
|
||||
|
||||
mv libRSAglue.a libRSAglue.a.orig
|
||||
mv libcrypto.a libcrypto.a.orig
|
||||
mv libssl.a libssl.a.orig
|
||||
|
||||
28
shlib/sco5-shared-installed
Executable file
28
shlib/sco5-shared-installed
Executable file
@@ -0,0 +1,28 @@
|
||||
#!/bin/sh
|
||||
|
||||
major="0"
|
||||
minor="9.7b"
|
||||
|
||||
slib=libssl
|
||||
sh_slib=$slib.so.$major.$minor
|
||||
|
||||
clib=libcrypto
|
||||
sh_clib=$clib.so.$major.$minor
|
||||
|
||||
# If you want them in /usr/local/lib then change INSTALLTOP to point there.
|
||||
#INSTALLTOP=/usr/local/ssl/lib
|
||||
INSTALLTOP=/usr/local/lib
|
||||
|
||||
cp -p $sh_clib $INSTALLTOP
|
||||
cp -p $sh_slib $INSTALLTOP
|
||||
|
||||
PWD=`pwd`
|
||||
cd $INSTALLTOP
|
||||
rm -f $INSTALLTOP/$clib.so
|
||||
ln -s $INSTALLTOP/$sh_clib $clib.so
|
||||
|
||||
rm -f $INSTALLTOP/$slib.so
|
||||
ln -s $INSTALLTOP/$sh_slib $slib.so
|
||||
|
||||
cd $PWD
|
||||
|
||||
48
shlib/sco5-shared.sh
Executable file
48
shlib/sco5-shared.sh
Executable file
@@ -0,0 +1,48 @@
|
||||
#!/bin/sh
|
||||
|
||||
major="0"
|
||||
minor="9.7b"
|
||||
|
||||
slib=libssl
|
||||
sh_slib=$slib.so.$major.$minor
|
||||
|
||||
clib=libcrypto
|
||||
sh_clib=$clib.so.$major.$minor
|
||||
|
||||
FLAGS="-O -DFILIO_H -Kalloca"
|
||||
SHFLAGS="-Kpic -DPIC"
|
||||
|
||||
touch $sh_clib
|
||||
touch $sh_slib
|
||||
|
||||
echo collecting all object files for $clib.so
|
||||
OBJS=
|
||||
find . -name \*.o -print > allobjs
|
||||
for obj in `ar t libcrypto.a`
|
||||
do
|
||||
OBJS="$OBJS `grep $obj allobjs`"
|
||||
done
|
||||
|
||||
echo linking $clib.so
|
||||
cc -G -o $sh_clib -h $sh_clib $OBJS -lnsl -lsocket
|
||||
|
||||
rm -f $clib.so
|
||||
ln -s $sh_clib $clib.so
|
||||
|
||||
echo collecting all object files for $slib.so
|
||||
OBJS=
|
||||
for obj in `ar t libssl.a`
|
||||
do
|
||||
OBJS="$OBJS `grep $obj allobjs`"
|
||||
done
|
||||
|
||||
echo linking $slib.so
|
||||
cc -G -o $sh_slib -h $sh_slib $OBJS -L. -lcrypto
|
||||
|
||||
rm -f $slib.so
|
||||
ln -s $sh_slib $slib.so
|
||||
|
||||
mv libRSAglue.a libRSAglue.a.orig
|
||||
mv libcrypto.a libcrypto.a.orig
|
||||
mv libssl.a libssl.a.orig
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#!/usr/bin/sh
|
||||
|
||||
major="0"
|
||||
minor="9.7"
|
||||
minor="9.7b"
|
||||
|
||||
slib=libssl
|
||||
sh_slib=$slib.so.$major.$minor
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#!/usr/bin/sh
|
||||
|
||||
major="0"
|
||||
minor="9.7"
|
||||
minor="9.7b"
|
||||
|
||||
slib=libssl
|
||||
sh_slib=$slib.so.$major.$minor
|
||||
@@ -25,4 +25,3 @@ rm -f $INSTALLTOP/$slib.so
|
||||
ln -s $INSTALLTOP/$sh_slib $slib.so
|
||||
|
||||
cd $PWD
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#!/usr/bin/sh
|
||||
|
||||
major="0"
|
||||
minor="9.7"
|
||||
minor="9.7b"
|
||||
|
||||
slib=libssl
|
||||
sh_slib=$slib.so.$major.$minor
|
||||
|
||||
@@ -70,6 +70,7 @@
|
||||
|
||||
#define _XOPEN_SOURCE /* glibc2 needs this to declare strptime() */
|
||||
#include <time.h>
|
||||
#undef _XOPEN_SOURCE /* To avoid clashes with anything else... */
|
||||
#include <string.h>
|
||||
|
||||
#include <openssl/ssl.h>
|
||||
|
||||
@@ -1447,7 +1447,7 @@ static int ssl3_get_client_key_exchange(SSL *s)
|
||||
if (i != SSL_MAX_MASTER_KEY_LENGTH)
|
||||
{
|
||||
al=SSL_AD_DECODE_ERROR;
|
||||
SSLerr(SSL_F_SSL3_GET_CLIENT_KEY_EXCHANGE,SSL_R_BAD_RSA_DECRYPT);
|
||||
/* SSLerr(SSL_F_SSL3_GET_CLIENT_KEY_EXCHANGE,SSL_R_BAD_RSA_DECRYPT); */
|
||||
}
|
||||
|
||||
if ((al == -1) && !((p[0] == (s->client_version>>8)) && (p[1] == (s->client_version & 0xff))))
|
||||
@@ -1463,30 +1463,28 @@ static int ssl3_get_client_key_exchange(SSL *s)
|
||||
(p[0] == (s->version>>8)) && (p[1] == (s->version & 0xff))))
|
||||
{
|
||||
al=SSL_AD_DECODE_ERROR;
|
||||
SSLerr(SSL_F_SSL3_GET_CLIENT_KEY_EXCHANGE,SSL_R_BAD_PROTOCOL_VERSION_NUMBER);
|
||||
goto f_err;
|
||||
/* SSLerr(SSL_F_SSL3_GET_CLIENT_KEY_EXCHANGE,SSL_R_BAD_PROTOCOL_VERSION_NUMBER); */
|
||||
|
||||
/* The Klima-Pokorny-Rosa extension of Bleichenbacher's attack
|
||||
* (http://eprint.iacr.org/2003/052/) exploits the version
|
||||
* number check as a "bad version oracle" -- an alert would
|
||||
* reveal that the plaintext corresponding to some ciphertext
|
||||
* made up by the adversary is properly formatted except
|
||||
* that the version number is wrong. To avoid such attacks,
|
||||
* we should treat this just like any other decryption error. */
|
||||
}
|
||||
}
|
||||
|
||||
if (al != -1)
|
||||
{
|
||||
#if 0
|
||||
goto f_err;
|
||||
#else
|
||||
/* Some decryption failure -- use random value instead as countermeasure
|
||||
* against Bleichenbacher's attack on PKCS #1 v1.5 RSA padding
|
||||
* (see RFC 2246, section 7.4.7.1).
|
||||
* But note that due to length and protocol version checking, the
|
||||
* attack is impractical anyway (see section 5 in D. Bleichenbacher:
|
||||
* "Chosen Ciphertext Attacks Against Protocols Based on the RSA
|
||||
* Encryption Standard PKCS #1", CRYPTO '98, LNCS 1462, pp. 1-12).
|
||||
*/
|
||||
* (see RFC 2246, section 7.4.7.1). */
|
||||
ERR_clear_error();
|
||||
i = SSL_MAX_MASTER_KEY_LENGTH;
|
||||
p[0] = s->client_version >> 8;
|
||||
p[1] = s->client_version & 0xff;
|
||||
RAND_pseudo_bytes(p+2, i-2); /* should be RAND_bytes, but we cannot work around a failure */
|
||||
#endif
|
||||
}
|
||||
|
||||
s->session->master_key_length=
|
||||
|
||||
@@ -668,13 +668,14 @@ static int ssl_cipher_process_rulestr(const char *rule_str,
|
||||
* So additionally check whether the cipher name found
|
||||
* has the correct length. We can save a strlen() call:
|
||||
* just checking for the '\0' at the right place is
|
||||
* sufficient, we have to strncmp() anyway.
|
||||
* sufficient, we have to strncmp() anyway. (We cannot
|
||||
* use strcmp(), because buf is not '\0' terminated.)
|
||||
*/
|
||||
j = found = 0;
|
||||
while (ca_list[j])
|
||||
{
|
||||
if ((ca_list[j]->name[buflen] == '\0') &&
|
||||
!strncmp(buf, ca_list[j]->name, buflen))
|
||||
if (!strncmp(buf, ca_list[j]->name, buflen) &&
|
||||
(ca_list[j]->name[buflen] == '\0'))
|
||||
{
|
||||
found = 1;
|
||||
break;
|
||||
|
||||
@@ -142,7 +142,6 @@
|
||||
|
||||
#ifdef OPENSSL_SYS_WINDOWS
|
||||
#include <winsock.h>
|
||||
#include "../crypto/bio/bss_file.c"
|
||||
#else
|
||||
#include OPENSSL_UNISTD
|
||||
#endif
|
||||
|
||||
@@ -121,7 +121,11 @@ tests: exe apps $(TESTS)
|
||||
apps:
|
||||
@(cd ..; $(MAKE) DIRS=apps all)
|
||||
|
||||
SET_SO_PATHS=LIBPATH="`cd ..; pwd`"; LD_LIBRARY_PATH="$$LIBPATH"; DYLD_LIBRARY_PATH="$$LIBPATH"; SHLIB_PATH="$$LIBPATH"; \
|
||||
SET_SO_PATHS=OSSL_LIBPATH="`cd ..; pwd`"; \
|
||||
LD_LIBRARY_PATH="$$OSSL_LIBPATH:$$LD_LIBRARY_PATH"; \
|
||||
DYLD_LIBRARY_PATH="$$OSSL_LIBPATH:$$DYLD_LIBRARY_PATH"; \
|
||||
SHLIB_PATH="$$OSSL_LIBPATH:$$SHLIB_PATH"; \
|
||||
LIBPATH="$$OSSL_LIBPATH:$$LIBPATH"; \
|
||||
if [ "$(PLATFORM)" = "Cygwin" ]; then PATH="$${LIBPATH}:$$PATH"; fi; \
|
||||
export LD_LIBRARY_PATH DYLD_LIBRARY_PATH SHLIB_PATH LIBPATH PATH
|
||||
|
||||
@@ -289,6 +293,7 @@ $(RSATEST): $(RSATEST).o $(DLIBCRYPTO)
|
||||
if [ "$(SHLIB_TARGET)" = "hpux-shared" -o "$(SHLIB_TARGET)" = "darwin-shared" ] ; then \
|
||||
$(CC) -o $(RSATEST) $(CFLAGS) $(RSATEST).o $(PEX_LIBS) $(DLIBCRYPTO) $(EX_LIBS) ; \
|
||||
else \
|
||||
LD_LIBRARY_PATH=..:$$LD_LIBRARY_PATH \
|
||||
$(CC) -o $(RSATEST) $(CFLAGS) $(RSATEST).o $(PEX_LIBS) $(LIBCRYPTO) $(EX_LIBS) ; \
|
||||
fi
|
||||
|
||||
@@ -296,6 +301,7 @@ $(BNTEST): $(BNTEST).o $(DLIBCRYPTO)
|
||||
if [ "$(SHLIB_TARGET)" = "hpux-shared" -o "$(SHLIB_TARGET)" = "darwin-shared" ] ; then \
|
||||
$(CC) -o $(BNTEST) $(CFLAGS) $(BNTEST).o $(PEX_LIBS) $(DLIBCRYPTO) $(EX_LIBS) ; \
|
||||
else \
|
||||
LD_LIBRARY_PATH=..:$$LD_LIBRARY_PATH \
|
||||
$(CC) -o $(BNTEST) $(CFLAGS) $(BNTEST).o $(PEX_LIBS) $(LIBCRYPTO) $(EX_LIBS) ; \
|
||||
fi
|
||||
|
||||
@@ -303,6 +309,7 @@ $(ECTEST): $(ECTEST).o $(DLIBCRYPTO)
|
||||
if [ "$(SHLIB_TARGET)" = "hpux-shared" -o "$(SHLIB_TARGET)" = "darwin-shared" ] ; then \
|
||||
$(CC) -o $(ECTEST) $(CFLAGS) $(ECTEST).o $(PEX_LIBS) $(DLIBCRYPTO) $(EX_LIBS) ; \
|
||||
else \
|
||||
LD_LIBRARY_PATH=..:$$LD_LIBRARY_PATH \
|
||||
$(CC) -o $(ECTEST) $(CFLAGS) $(ECTEST).o $(PEX_LIBS) $(LIBCRYPTO) $(EX_LIBS) ; \
|
||||
fi
|
||||
|
||||
@@ -310,6 +317,7 @@ $(EXPTEST): $(EXPTEST).o $(DLIBCRYPTO)
|
||||
if [ "$(SHLIB_TARGET)" = "hpux-shared" -o "$(SHLIB_TARGET)" = "darwin-shared" ] ; then \
|
||||
$(CC) -o $(EXPTEST) $(CFLAGS) $(EXPTEST).o $(PEX_LIBS) $(DLIBCRYPTO) $(EX_LIBS) ; \
|
||||
else \
|
||||
LD_LIBRARY_PATH=..:$$LD_LIBRARY_PATH \
|
||||
$(CC) -o $(EXPTEST) $(CFLAGS) $(EXPTEST).o $(PEX_LIBS) $(LIBCRYPTO) $(EX_LIBS) ; \
|
||||
fi
|
||||
|
||||
@@ -317,6 +325,7 @@ $(IDEATEST): $(IDEATEST).o $(DLIBCRYPTO)
|
||||
if [ "$(SHLIB_TARGET)" = "hpux-shared" -o "$(SHLIB_TARGET)" = "darwin-shared" ] ; then \
|
||||
$(CC) -o $(IDEATEST) $(CFLAGS) $(IDEATEST).o $(PEX_LIBS) $(DLIBCRYPTO) $(EX_LIBS) ; \
|
||||
else \
|
||||
LD_LIBRARY_PATH=..:$$LD_LIBRARY_PATH \
|
||||
$(CC) -o $(IDEATEST) $(CFLAGS) $(IDEATEST).o $(PEX_LIBS) $(LIBCRYPTO) $(EX_LIBS) ; \
|
||||
fi
|
||||
|
||||
@@ -324,6 +333,7 @@ $(MD2TEST): $(MD2TEST).o $(DLIBCRYPTO)
|
||||
if [ "$(SHLIB_TARGET)" = "hpux-shared" -o "$(SHLIB_TARGET)" = "darwin-shared" ] ; then \
|
||||
$(CC) -o $(MD2TEST) $(CFLAGS) $(MD2TEST).o $(PEX_LIBS) $(DLIBCRYPTO) $(EX_LIBS) ; \
|
||||
else \
|
||||
LD_LIBRARY_PATH=..:$$LD_LIBRARY_PATH \
|
||||
$(CC) -o $(MD2TEST) $(CFLAGS) $(MD2TEST).o $(PEX_LIBS) $(LIBCRYPTO) $(EX_LIBS) ; \
|
||||
fi
|
||||
|
||||
@@ -331,6 +341,7 @@ $(SHATEST): $(SHATEST).o $(DLIBCRYPTO)
|
||||
if [ "$(SHLIB_TARGET)" = "hpux-shared" -o "$(SHLIB_TARGET)" = "darwin-shared" ] ; then \
|
||||
$(CC) -o $(SHATEST) $(CFLAGS) $(SHATEST).o $(PEX_LIBS) $(DLIBCRYPTO) $(EX_LIBS) ; \
|
||||
else \
|
||||
LD_LIBRARY_PATH=..:$$LD_LIBRARY_PATH \
|
||||
$(CC) -o $(SHATEST) $(CFLAGS) $(SHATEST).o $(PEX_LIBS) $(LIBCRYPTO) $(EX_LIBS) ; \
|
||||
fi
|
||||
|
||||
@@ -338,6 +349,7 @@ $(SHA1TEST): $(SHA1TEST).o $(DLIBCRYPTO)
|
||||
if [ "$(SHLIB_TARGET)" = "hpux-shared" -o "$(SHLIB_TARGET)" = "darwin-shared" ] ; then \
|
||||
$(CC) -o $(SHA1TEST) $(CFLAGS) $(SHA1TEST).o $(PEX_LIBS) $(DLIBCRYPTO) $(EX_LIBS) ; \
|
||||
else \
|
||||
LD_LIBRARY_PATH=..:$$LD_LIBRARY_PATH \
|
||||
$(CC) -o $(SHA1TEST) $(CFLAGS) $(SHA1TEST).o $(PEX_LIBS) $(LIBCRYPTO) $(EX_LIBS) ; \
|
||||
fi
|
||||
|
||||
@@ -345,6 +357,7 @@ $(RMDTEST): $(RMDTEST).o $(DLIBCRYPTO)
|
||||
if [ "$(SHLIB_TARGET)" = "hpux-shared" -o "$(SHLIB_TARGET)" = "darwin-shared" ] ; then \
|
||||
$(CC) -o $(RMDTEST) $(CFLAGS) $(RMDTEST).o $(PEX_LIBS) $(DLIBCRYPTO) $(EX_LIBS) ; \
|
||||
else \
|
||||
LD_LIBRARY_PATH=..:$$LD_LIBRARY_PATH \
|
||||
$(CC) -o $(RMDTEST) $(CFLAGS) $(RMDTEST).o $(PEX_LIBS) $(LIBCRYPTO) $(EX_LIBS) ; \
|
||||
fi
|
||||
|
||||
@@ -352,6 +365,7 @@ $(MDC2TEST): $(MDC2TEST).o $(DLIBCRYPTO)
|
||||
if [ "$(SHLIB_TARGET)" = "hpux-shared" -o "$(SHLIB_TARGET)" = "darwin-shared" ] ; then \
|
||||
$(CC) -o $(MDC2TEST) $(CFLAGS) $(MDC2TEST).o $(PEX_LIBS) $(DLIBCRYPTO) $(EX_LIBS) ; \
|
||||
else \
|
||||
LD_LIBRARY_PATH=..:$$LD_LIBRARY_PATH \
|
||||
$(CC) -o $(MDC2TEST) $(CFLAGS) $(MDC2TEST).o $(PEX_LIBS) $(LIBCRYPTO) $(EX_LIBS) ; \
|
||||
fi
|
||||
|
||||
@@ -359,6 +373,7 @@ $(MD4TEST): $(MD4TEST).o $(DLIBCRYPTO)
|
||||
if [ "$(SHLIB_TARGET)" = "hpux-shared" -o "$(SHLIB_TARGET)" = "darwin-shared" ] ; then \
|
||||
$(CC) -o $(MD4TEST) $(CFLAGS) $(MD4TEST).o $(PEX_LIBS) $(DLIBCRYPTO) $(EX_LIBS) ; \
|
||||
else \
|
||||
LD_LIBRARY_PATH=..:$$LD_LIBRARY_PATH \
|
||||
$(CC) -o $(MD4TEST) $(CFLAGS) $(MD4TEST).o $(PEX_LIBS) $(LIBCRYPTO) $(EX_LIBS) ; \
|
||||
fi
|
||||
|
||||
@@ -366,6 +381,7 @@ $(MD5TEST): $(MD5TEST).o $(DLIBCRYPTO)
|
||||
if [ "$(SHLIB_TARGET)" = "hpux-shared" -o "$(SHLIB_TARGET)" = "darwin-shared" ] ; then \
|
||||
$(CC) -o $(MD5TEST) $(CFLAGS) $(MD5TEST).o $(PEX_LIBS) $(DLIBCRYPTO) $(EX_LIBS) ; \
|
||||
else \
|
||||
LD_LIBRARY_PATH=..:$$LD_LIBRARY_PATH \
|
||||
$(CC) -o $(MD5TEST) $(CFLAGS) $(MD5TEST).o $(PEX_LIBS) $(LIBCRYPTO) $(EX_LIBS) ; \
|
||||
fi
|
||||
|
||||
@@ -373,6 +389,7 @@ $(HMACTEST): $(HMACTEST).o $(DLIBCRYPTO)
|
||||
if [ "$(SHLIB_TARGET)" = "hpux-shared" -o "$(SHLIB_TARGET)" = "darwin-shared" ] ; then \
|
||||
$(CC) -o $(HMACTEST) $(CFLAGS) $(HMACTEST).o $(PEX_LIBS) $(DLIBCRYPTO) $(EX_LIBS) ; \
|
||||
else \
|
||||
LD_LIBRARY_PATH=..:$$LD_LIBRARY_PATH \
|
||||
$(CC) -o $(HMACTEST) $(CFLAGS) $(HMACTEST).o $(PEX_LIBS) $(LIBCRYPTO) $(EX_LIBS) ; \
|
||||
fi
|
||||
|
||||
@@ -380,6 +397,7 @@ $(RC2TEST): $(RC2TEST).o $(DLIBCRYPTO)
|
||||
if [ "$(SHLIB_TARGET)" = "hpux-shared" -o "$(SHLIB_TARGET)" = "darwin-shared" ] ; then \
|
||||
$(CC) -o $(RC2TEST) $(CFLAGS) $(RC2TEST).o $(PEX_LIBS) $(DLIBCRYPTO) $(EX_LIBS) ; \
|
||||
else \
|
||||
LD_LIBRARY_PATH=..:$$LD_LIBRARY_PATH \
|
||||
$(CC) -o $(RC2TEST) $(CFLAGS) $(RC2TEST).o $(PEX_LIBS) $(LIBCRYPTO) $(EX_LIBS) ; \
|
||||
fi
|
||||
|
||||
@@ -387,6 +405,7 @@ $(BFTEST): $(BFTEST).o $(DLIBCRYPTO)
|
||||
if [ "$(SHLIB_TARGET)" = "hpux-shared" -o "$(SHLIB_TARGET)" = "darwin-shared" ] ; then \
|
||||
$(CC) -o $(BFTEST) $(CFLAGS) $(BFTEST).o $(PEX_LIBS) $(DLIBCRYPTO) $(EX_LIBS) ; \
|
||||
else \
|
||||
LD_LIBRARY_PATH=..:$$LD_LIBRARY_PATH \
|
||||
$(CC) -o $(BFTEST) $(CFLAGS) $(BFTEST).o $(PEX_LIBS) $(LIBCRYPTO) $(EX_LIBS) ; \
|
||||
fi
|
||||
|
||||
@@ -394,6 +413,7 @@ $(CASTTEST): $(CASTTEST).o $(DLIBCRYPTO)
|
||||
if [ "$(SHLIB_TARGET)" = "hpux-shared" -o "$(SHLIB_TARGET)" = "darwin-shared" ] ; then \
|
||||
$(CC) -o $(CASTTEST) $(CFLAGS) $(CASTTEST).o $(PEX_LIBS) $(DLIBCRYPTO) $(EX_LIBS) ; \
|
||||
else \
|
||||
LD_LIBRARY_PATH=..:$$LD_LIBRARY_PATH \
|
||||
$(CC) -o $(CASTTEST) $(CFLAGS) $(CASTTEST).o $(PEX_LIBS) $(LIBCRYPTO) $(EX_LIBS) ; \
|
||||
fi
|
||||
|
||||
@@ -401,6 +421,7 @@ $(RC4TEST): $(RC4TEST).o $(DLIBCRYPTO)
|
||||
if [ "$(SHLIB_TARGET)" = "hpux-shared" -o "$(SHLIB_TARGET)" = "darwin-shared" ] ; then \
|
||||
$(CC) -o $(RC4TEST) $(CFLAGS) $(RC4TEST).o $(PEX_LIBS) $(DLIBCRYPTO) $(EX_LIBS) ; \
|
||||
else \
|
||||
LD_LIBRARY_PATH=..:$$LD_LIBRARY_PATH \
|
||||
$(CC) -o $(RC4TEST) $(CFLAGS) $(RC4TEST).o $(PEX_LIBS) $(LIBCRYPTO) $(EX_LIBS) ; \
|
||||
fi
|
||||
|
||||
@@ -408,6 +429,7 @@ $(RC5TEST): $(RC5TEST).o $(DLIBCRYPTO)
|
||||
if [ "$(SHLIB_TARGET)" = "hpux-shared" -o "$(SHLIB_TARGET)" = "darwin-shared" ] ; then \
|
||||
$(CC) -o $(RC5TEST) $(CFLAGS) $(RC5TEST).o $(PEX_LIBS) $(DLIBCRYPTO) $(EX_LIBS) ; \
|
||||
else \
|
||||
LD_LIBRARY_PATH=..:$$LD_LIBRARY_PATH \
|
||||
$(CC) -o $(RC5TEST) $(CFLAGS) $(RC5TEST).o $(PEX_LIBS) $(LIBCRYPTO) $(EX_LIBS) ; \
|
||||
fi
|
||||
|
||||
@@ -415,6 +437,7 @@ $(DESTEST): $(DESTEST).o $(DLIBCRYPTO)
|
||||
if [ "$(SHLIB_TARGET)" = "hpux-shared" -o "$(SHLIB_TARGET)" = "darwin-shared" ] ; then \
|
||||
$(CC) -o $(DESTEST) $(CFLAGS) $(DESTEST).o $(PEX_LIBS) $(DLIBCRYPTO) $(EX_LIBS) ; \
|
||||
else \
|
||||
LD_LIBRARY_PATH=..:$$LD_LIBRARY_PATH \
|
||||
$(CC) -o $(DESTEST) $(CFLAGS) $(DESTEST).o $(PEX_LIBS) $(LIBCRYPTO) $(EX_LIBS) ; \
|
||||
fi
|
||||
|
||||
@@ -422,6 +445,7 @@ $(RANDTEST): $(RANDTEST).o $(DLIBCRYPTO)
|
||||
if [ "$(SHLIB_TARGET)" = "hpux-shared" -o "$(SHLIB_TARGET)" = "darwin-shared" ] ; then \
|
||||
$(CC) -o $(RANDTEST) $(CFLAGS) $(RANDTEST).o $(PEX_LIBS) $(DLIBCRYPTO) $(EX_LIBS) ; \
|
||||
else \
|
||||
LD_LIBRARY_PATH=..:$$LD_LIBRARY_PATH \
|
||||
$(CC) -o $(RANDTEST) $(CFLAGS) $(RANDTEST).o $(PEX_LIBS) $(LIBCRYPTO) $(EX_LIBS) ; \
|
||||
fi
|
||||
|
||||
@@ -429,6 +453,7 @@ $(DHTEST): $(DHTEST).o $(DLIBCRYPTO)
|
||||
if [ "$(SHLIB_TARGET)" = "hpux-shared" -o "$(SHLIB_TARGET)" = "darwin-shared" ] ; then \
|
||||
$(CC) -o $(DHTEST) $(CFLAGS) $(DHTEST).o $(PEX_LIBS) $(DLIBCRYPTO) $(EX_LIBS) ; \
|
||||
else \
|
||||
LD_LIBRARY_PATH=..:$$LD_LIBRARY_PATH \
|
||||
$(CC) -o $(DHTEST) $(CFLAGS) $(DHTEST).o $(PEX_LIBS) $(LIBCRYPTO) $(EX_LIBS) ; \
|
||||
fi
|
||||
|
||||
@@ -436,6 +461,7 @@ $(DSATEST): $(DSATEST).o $(DLIBCRYPTO)
|
||||
if [ "$(SHLIB_TARGET)" = "hpux-shared" -o "$(SHLIB_TARGET)" = "darwin-shared" ] ; then \
|
||||
$(CC) -o $(DSATEST) $(CFLAGS) $(DSATEST).o $(PEX_LIBS) $(DLIBCRYPTO) $(EX_LIBS) ; \
|
||||
else \
|
||||
LD_LIBRARY_PATH=..:$$LD_LIBRARY_PATH \
|
||||
$(CC) -o $(DSATEST) $(CFLAGS) $(DSATEST).o $(PEX_LIBS) $(LIBCRYPTO) $(EX_LIBS) ; \
|
||||
fi
|
||||
|
||||
@@ -443,6 +469,7 @@ $(METHTEST): $(METHTEST).o $(DLIBCRYPTO)
|
||||
if [ "$(SHLIB_TARGET)" = "hpux-shared" -o "$(SHLIB_TARGET)" = "darwin-shared" ] ; then \
|
||||
$(CC) -o $(METHTEST) $(CFLAGS) $(METHTEST).o $(PEX_LIBS) $(DLIBCRYPTO) $(EX_LIBS) ; \
|
||||
else \
|
||||
LD_LIBRARY_PATH=..:$$LD_LIBRARY_PATH \
|
||||
$(CC) -o $(METHTEST) $(CFLAGS) $(METHTEST).o $(PEX_LIBS) $(LIBCRYPTO) $(EX_LIBS) ; \
|
||||
fi
|
||||
|
||||
@@ -450,6 +477,7 @@ $(SSLTEST): $(SSLTEST).o $(DLIBSSL) $(DLIBCRYPTO)
|
||||
if [ "$(SHLIB_TARGET)" = "hpux-shared" -o "$(SHLIB_TARGET)" = "darwin-shared" ] ; then \
|
||||
$(CC) -o $(SSLTEST) $(CFLAGS) $(SSLTEST).o $(PEX_LIBS) $(DLIBSSL) $(LIBKRB5) $(DLIBCRYPTO) $(EX_LIBS) ; \
|
||||
else \
|
||||
LD_LIBRARY_PATH=..:$$LD_LIBRARY_PATH \
|
||||
$(CC) -o $(SSLTEST) $(CFLAGS) $(SSLTEST).o $(PEX_LIBS) $(LIBSSL) $(LIBKRB5) $(LIBCRYPTO) $(EX_LIBS) ; \
|
||||
fi
|
||||
|
||||
@@ -457,6 +485,7 @@ $(ENGINETEST): $(ENGINETEST).o $(DLIBCRYPTO)
|
||||
if [ "$(SHLIB_TARGET)" = "hpux-shared" -o "$(SHLIB_TARGET)" = "darwin-shared" ] ; then \
|
||||
$(CC) -o $(ENGINETEST) $(CFLAGS) $(ENGINETEST).o $(PEX_LIBS) $(DLIBCRYPTO) $(EX_LIBS) ; \
|
||||
else \
|
||||
LD_LIBRARY_PATH=..:$$LD_LIBRARY_PATH \
|
||||
$(CC) -o $(ENGINETEST) $(CFLAGS) $(ENGINETEST).o $(PEX_LIBS) $(LIBCRYPTO) $(EX_LIBS) ; \
|
||||
fi
|
||||
|
||||
@@ -464,6 +493,7 @@ $(EVPTEST): $(EVPTEST).o $(DLIBCRYPTO)
|
||||
if [ "$(SHLIB_TARGET)" = "hpux-shared" -o "$(SHLIB_TARGET)" = "darwin-shared" ] ; then \
|
||||
$(CC) -o $(EVPTEST) $(CFLAGS) $(EVPTEST).o $(PEX_LIBS) $(DLIBCRYPTO) $(EX_LIBS) ; \
|
||||
else \
|
||||
LD_LIBRARY_PATH=..:$$LD_LIBRARY_PATH \
|
||||
$(CC) -o $(EVPTEST) $(CFLAGS) $(EVPTEST).o $(PEX_LIBS) $(LIBCRYPTO) $(EX_LIBS) ; \
|
||||
fi
|
||||
|
||||
@@ -474,6 +504,7 @@ $(EVPTEST): $(EVPTEST).o $(DLIBCRYPTO)
|
||||
# if [ "$(SHLIB_TARGET)" = "hpux-shared" -o "$(SHLIB_TARGET)" = "darwin-shared" ] ; then \
|
||||
# $(CC) -o $(AESTEST) $(CFLAGS) $(AESTEST).o $(PEX_LIBS) $(DLIBCRYPTO) $(EX_LIBS) ; \
|
||||
# else \
|
||||
# LD_LIBRARY_PATH=..:$$LD_LIBRARY_PATH \
|
||||
# $(CC) -o $(AESTEST) $(CFLAGS) $(AESTEST).o $(PEX_LIBS) $(LIBCRYPTO) $(EX_LIBS) ; \
|
||||
# fi
|
||||
|
||||
@@ -481,6 +512,7 @@ dummytest: dummytest.o $(DLIBCRYPTO)
|
||||
if [ "$(SHLIB_TARGET)" = "hpux-shared" -o "$(SHLIB_TARGET)" = "darwin-shared" ] ; then \
|
||||
$(CC) -o dummytest $(CFLAGS) dummytest.o $(PEX_LIBS) $(DLIBCRYPTO) $(EX_LIBS) ; \
|
||||
else \
|
||||
LD_LIBRARY_PATH=..:$$LD_LIBRARY_PATH \
|
||||
$(CC) -o dummytest $(CFLAGS) dummytest.o $(PEX_LIBS) $(LIBCRYPTO) $(EX_LIBS) ; \
|
||||
fi
|
||||
|
||||
@@ -524,16 +556,14 @@ dhtest.o: ../include/openssl/lhash.h ../include/openssl/opensslconf.h
|
||||
dhtest.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
|
||||
dhtest.o: ../include/openssl/rand.h ../include/openssl/safestack.h
|
||||
dhtest.o: ../include/openssl/stack.h ../include/openssl/symhacks.h dhtest.c
|
||||
dsatest.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
|
||||
dsatest.o: ../include/openssl/bn.h ../include/openssl/crypto.h
|
||||
dsatest.o: ../include/openssl/dh.h ../include/openssl/dsa.h
|
||||
dsatest.o: ../include/openssl/e_os2.h ../include/openssl/engine.h
|
||||
dsatest.o: ../e_os.h ../include/openssl/bio.h ../include/openssl/bn.h
|
||||
dsatest.o: ../include/openssl/crypto.h ../include/openssl/dh.h
|
||||
dsatest.o: ../include/openssl/dsa.h ../include/openssl/e_os2.h
|
||||
dsatest.o: ../include/openssl/err.h ../include/openssl/lhash.h
|
||||
dsatest.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
|
||||
dsatest.o: ../include/openssl/ossl_typ.h ../include/openssl/rand.h
|
||||
dsatest.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
|
||||
dsatest.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
|
||||
dsatest.o: ../include/openssl/ui.h dsatest.c
|
||||
dsatest.o: ../include/openssl/safestack.h ../include/openssl/stack.h
|
||||
dsatest.o: ../include/openssl/symhacks.h dsatest.c
|
||||
ectest.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
|
||||
ectest.o: ../include/openssl/bn.h ../include/openssl/crypto.h
|
||||
ectest.o: ../include/openssl/dh.h ../include/openssl/dsa.h
|
||||
@@ -698,14 +728,12 @@ rmdtest.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
|
||||
rmdtest.o: ../include/openssl/ui.h ../include/openssl/ui_compat.h rmdtest.c
|
||||
rsa_test.o: ../e_os.h ../include/openssl/asn1.h ../include/openssl/bio.h
|
||||
rsa_test.o: ../include/openssl/bn.h ../include/openssl/crypto.h
|
||||
rsa_test.o: ../include/openssl/dh.h ../include/openssl/dsa.h
|
||||
rsa_test.o: ../include/openssl/e_os2.h ../include/openssl/engine.h
|
||||
rsa_test.o: ../include/openssl/err.h ../include/openssl/lhash.h
|
||||
rsa_test.o: ../include/openssl/opensslconf.h ../include/openssl/opensslv.h
|
||||
rsa_test.o: ../include/openssl/ossl_typ.h ../include/openssl/rand.h
|
||||
rsa_test.o: ../include/openssl/rsa.h ../include/openssl/safestack.h
|
||||
rsa_test.o: ../include/openssl/stack.h ../include/openssl/symhacks.h
|
||||
rsa_test.o: ../include/openssl/ui.h rsa_test.c
|
||||
rsa_test.o: ../include/openssl/e_os2.h ../include/openssl/err.h
|
||||
rsa_test.o: ../include/openssl/lhash.h ../include/openssl/opensslconf.h
|
||||
rsa_test.o: ../include/openssl/opensslv.h ../include/openssl/ossl_typ.h
|
||||
rsa_test.o: ../include/openssl/rand.h ../include/openssl/rsa.h
|
||||
rsa_test.o: ../include/openssl/safestack.h ../include/openssl/stack.h
|
||||
rsa_test.o: ../include/openssl/symhacks.h rsa_test.c
|
||||
sha1test.o: ../e_os.h ../include/openssl/aes.h ../include/openssl/asn1.h
|
||||
sha1test.o: ../include/openssl/bio.h ../include/openssl/blowfish.h
|
||||
sha1test.o: ../include/openssl/bn.h ../include/openssl/cast.h
|
||||
|
||||
@@ -663,6 +663,7 @@ sub var_add
|
||||
return("") if $no_rsa && $dir =~ /^rsaref/;
|
||||
return("") if $no_dsa && $dir =~ /\/dsa/;
|
||||
return("") if $no_dh && $dir =~ /\/dh/;
|
||||
return("") if $no_ec && $dir =~ /\/ec/;
|
||||
if ($no_des && $dir =~ /\/des/)
|
||||
{
|
||||
if ($val =~ /read_pwd/)
|
||||
|
||||
@@ -440,7 +440,12 @@ sub do_defs
|
||||
}
|
||||
|
||||
s/\/\*.*?\*\///gs; # ignore comments
|
||||
if (/\/\*/) { # if we have part
|
||||
$line = $_; # of a comment,
|
||||
next; # continue reading
|
||||
}
|
||||
s/{[^{}]*}//gs; # ignore {} blocks
|
||||
print STDERR "DEBUG: \$def=\"$def\"\n" if $debug && $def ne "";
|
||||
print STDERR "DEBUG: \$_=\"$_\"\n" if $debug;
|
||||
if (/^\#\s*ifndef\s+(.*)/) {
|
||||
push(@tag,"-");
|
||||
@@ -814,14 +819,14 @@ sub do_defs
|
||||
} elsif (/\(\*(\w*(\{[0-9]+\})?)\([^\)]+/) {
|
||||
$s = $1;
|
||||
print STDERR "DEBUG: found ANSI C function $s\n" if $debug;
|
||||
} elsif (/\w+\W+(\w+)\W*\(\s*\)$/s) {
|
||||
} elsif (/\w+\W+(\w+)\W*\(\s*\)(\s*__attribute__\(.*\)\s*)?$/s) {
|
||||
# K&R C
|
||||
print STDERR "DEBUG: found K&R C function $s\n" if $debug;
|
||||
next;
|
||||
} elsif (/\w+\W+\w+(\{[0-9]+\})?\W*\(.*\)$/s) {
|
||||
while (not /\(\)$/s) {
|
||||
s/[^\(\)]*\)$/\)/s;
|
||||
s/\([^\(\)]*\)\)$/\)/s;
|
||||
} elsif (/\w+\W+\w+(\{[0-9]+\})?\W*\(.*\)(\s*__attribute__\(.*\)\s*)?$/s) {
|
||||
while (not /\(\)(\s*__attribute__\(.*\)\s*)?$/s) {
|
||||
s/[^\(\)]*\)(\s*__attribute__\(.*\)\s*)?$/\)/s;
|
||||
s/\([^\(\)]*\)\)(\s*__attribute__\(.*\)\s*)?$/\)/s;
|
||||
}
|
||||
s/\(void\)//;
|
||||
/(\w+(\{[0-9]+\})?)\W*\(\)/s;
|
||||
|
||||
@@ -132,16 +132,16 @@ while (($hdr, $lib) = each %libinc)
|
||||
my $name = $1;
|
||||
$name =~ tr/[a-z]/[A-Z]/;
|
||||
$ftrans{$name} = $1;
|
||||
} elsif (/\w+\W+(\w+)\W*\(\s*\)$/s){
|
||||
} elsif (/\w+\W+(\w+)\W*\(\s*\)(\s*__attribute__\(.*\)\s*)?$/s){
|
||||
# K&R C
|
||||
next ;
|
||||
} elsif (/\w+\W+\w+\W*\(.*\)$/s) {
|
||||
while (not /\(\)$/s) {
|
||||
s/[^\(\)]*\)$/\)/s;
|
||||
s/\([^\(\)]*\)\)$/\)/s;
|
||||
} elsif (/\w+\W+\w+\W*\(.*\)(\s*__attribute__\(.*\)\s*)?$/s) {
|
||||
while (not /\(\)(\s*__attribute__\(.*\)\s*)?$/s) {
|
||||
s/[^\(\)]*\)(\s*__attribute__\(.*\)\s*)?$/\)/s;
|
||||
s/\([^\(\)]*\)\)(\s*__attribute__\(.*\)\s*)?$/\)/s;
|
||||
}
|
||||
s/\(void\)//;
|
||||
/(\w+)\W*\(\)/s;
|
||||
/(\w+(\{[0-9]+\})?)\W*\(\)/s;
|
||||
my $name = $1;
|
||||
$name =~ tr/[a-z]/[A-Z]/;
|
||||
$ftrans{$name} = $1;
|
||||
@@ -262,7 +262,7 @@ foreach $lib (keys %csrc)
|
||||
} else {
|
||||
push @out,
|
||||
"/* ====================================================================\n",
|
||||
" * Copyright (c) 2001-2002 The OpenSSL Project. All rights reserved.\n",
|
||||
" * Copyright (c) 2001-2003 The OpenSSL Project. All rights reserved.\n",
|
||||
" *\n",
|
||||
" * Redistribution and use in source and binary forms, with or without\n",
|
||||
" * modification, are permitted provided that the following conditions\n",
|
||||
@@ -404,7 +404,7 @@ EOF
|
||||
print OUT <<"EOF";
|
||||
/* $cfile */
|
||||
/* ====================================================================
|
||||
* Copyright (c) 1999-2002 The OpenSSL Project. All rights reserved.
|
||||
* Copyright (c) 1999-2003 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
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
#!/usr/local/bin/perl
|
||||
#
|
||||
# Mingw32.pl -- Mingw32 with GNU cp (Mingw32f.pl uses DOS tools)
|
||||
# Mingw32.pl -- Mingw
|
||||
#
|
||||
|
||||
$o='/';
|
||||
$cp='cp';
|
||||
$rm='rem'; # use 'rm -f' if using GNU file utilities
|
||||
$rm='rm -f';
|
||||
$mkdir='gmkdir';
|
||||
|
||||
# gcc wouldn't accept backslashes in paths
|
||||
#$o='\\';
|
||||
#$cp='copy';
|
||||
#$rm='del';
|
||||
$o='\\';
|
||||
$cp='copy';
|
||||
$rm='del';
|
||||
$mkdir='mkdir';
|
||||
|
||||
# C compiler stuff
|
||||
|
||||
@@ -19,29 +19,29 @@ $cc='gcc';
|
||||
if ($debug)
|
||||
{ $cflags="-DL_ENDIAN -DDSO_WIN32 -g2 -ggdb"; }
|
||||
else
|
||||
{ $cflags="-DL_ENDIAN -DDSO_WIN32 -fomit-frame-pointer -O3 -m486 -Wall"; }
|
||||
{ $cflags="-DL_ENDIAN -DDSO_WIN32 -fomit-frame-pointer -O3 -mcpu=i486 -Wall"; }
|
||||
|
||||
if ($gaswin and !$no_asm)
|
||||
{
|
||||
$bn_asm_obj='$(OBJ_D)/bn-win32.o';
|
||||
$bn_asm_obj='$(OBJ_D)\bn-win32.o';
|
||||
$bn_asm_src='crypto/bn/asm/bn-win32.s';
|
||||
$bnco_asm_obj='$(OBJ_D)/co-win32.o';
|
||||
$bnco_asm_obj='$(OBJ_D)\co-win32.o';
|
||||
$bnco_asm_src='crypto/bn/asm/co-win32.s';
|
||||
$des_enc_obj='$(OBJ_D)/d-win32.o $(OBJ_D)/y-win32.o';
|
||||
$des_enc_obj='$(OBJ_D)\d-win32.o $(OBJ_D)\y-win32.o';
|
||||
$des_enc_src='crypto/des/asm/d-win32.s crypto/des/asm/y-win32.s';
|
||||
$bf_enc_obj='$(OBJ_D)/b-win32.o';
|
||||
$bf_enc_obj='$(OBJ_D)\b-win32.o';
|
||||
$bf_enc_src='crypto/bf/asm/b-win32.s';
|
||||
# $cast_enc_obj='$(OBJ_D)/c-win32.o';
|
||||
# $cast_enc_obj='$(OBJ_D)\c-win32.o';
|
||||
# $cast_enc_src='crypto/cast/asm/c-win32.s';
|
||||
$rc4_enc_obj='$(OBJ_D)/r4-win32.o';
|
||||
$rc4_enc_obj='$(OBJ_D)\r4-win32.o';
|
||||
$rc4_enc_src='crypto/rc4/asm/r4-win32.s';
|
||||
$rc5_enc_obj='$(OBJ_D)/r5-win32.o';
|
||||
$rc5_enc_obj='$(OBJ_D)\r5-win32.o';
|
||||
$rc5_enc_src='crypto/rc5/asm/r5-win32.s';
|
||||
$md5_asm_obj='$(OBJ_D)/m5-win32.o';
|
||||
$md5_asm_obj='$(OBJ_D)\m5-win32.o';
|
||||
$md5_asm_src='crypto/md5/asm/m5-win32.s';
|
||||
$rmd160_asm_obj='$(OBJ_D)/rm-win32.o';
|
||||
$rmd160_asm_obj='$(OBJ_D)\rm-win32.o';
|
||||
$rmd160_asm_src='crypto/ripemd/asm/rm-win32.s';
|
||||
$sha1_asm_obj='$(OBJ_D)/s1-win32.o';
|
||||
$sha1_asm_obj='$(OBJ_D)\s1-win32.o';
|
||||
$sha1_asm_src='crypto/sha/asm/s1-win32.s';
|
||||
$cflags.=" -DBN_ASM -DMD5_ASM -DSHA1_ASM";
|
||||
}
|
||||
|
||||
@@ -1,73 +0,0 @@
|
||||
#!/usr/local/bin/perl
|
||||
#
|
||||
# Mingw32f.pl -- copy files; Mingw32.pl is needed to do the compiling.
|
||||
#
|
||||
|
||||
$o='\\';
|
||||
$cp='copy';
|
||||
$rm='del';
|
||||
|
||||
# C compiler stuff
|
||||
|
||||
$cc='gcc';
|
||||
if ($debug)
|
||||
{ $cflags="-g2 -ggdb -DDSO_WIN32"; }
|
||||
else
|
||||
{ $cflags="-O3 -fomit-frame-pointer -DDSO_WIN32"; }
|
||||
|
||||
$obj='.o';
|
||||
$ofile='-o ';
|
||||
|
||||
# EXE linking stuff
|
||||
$link='${CC}';
|
||||
$lflags='${CFLAGS}';
|
||||
$efile='-o ';
|
||||
$exep='';
|
||||
$ex_libs="-lwsock32 -lgdi32";
|
||||
|
||||
# static library stuff
|
||||
$mklib='ar r';
|
||||
$mlflags='';
|
||||
$ranlib='ranlib';
|
||||
$plib='lib';
|
||||
$libp=".a";
|
||||
$shlibp=".a";
|
||||
$lfile='';
|
||||
|
||||
$asm='as';
|
||||
$afile='-o ';
|
||||
$bn_asm_obj="";
|
||||
$bn_asm_src="";
|
||||
$des_enc_obj="";
|
||||
$des_enc_src="";
|
||||
$bf_enc_obj="";
|
||||
$bf_enc_src="";
|
||||
|
||||
sub do_lib_rule
|
||||
{
|
||||
local($obj,$target,$name,$shlib)=@_;
|
||||
local($ret,$_,$Name);
|
||||
|
||||
$target =~ s/\//$o/g if $o ne '/';
|
||||
$target="$target";
|
||||
($Name=$name) =~ tr/a-z/A-Z/;
|
||||
|
||||
$ret.="$target: \$(${Name}OBJ)\n";
|
||||
$ret.="\t\$(RM) $target\n";
|
||||
$ret.="\t\$(MKLIB) $target \$(${Name}OBJ)\n";
|
||||
$ret.="\t\$(RANLIB) $target\n\n";
|
||||
}
|
||||
|
||||
sub do_link_rule
|
||||
{
|
||||
local($target,$files,$dep_libs,$libs)=@_;
|
||||
local($ret,$_);
|
||||
|
||||
$file =~ s/\//$o/g if $o ne '/';
|
||||
$n=&bname($target);
|
||||
$ret.="$target: $files $dep_libs\n";
|
||||
$ret.="\t\$(LINK) ${efile}$target \$(LFLAGS) $files $libs\n\n";
|
||||
return($ret);
|
||||
}
|
||||
1;
|
||||
|
||||
Reference in New Issue
Block a user