Bodo Möller [Thu, 8 Nov 2001 14:32:06 +0000 (14:32 +0000)]
Don't define _REENTRANT here in e_os.h. On systems where we need
_REENTRANT if threads support is enabled, the ./Configure entry must
define it so that it ends up in CFLAG.
Richard Levitte [Tue, 6 Nov 2001 11:37:14 +0000 (11:37 +0000)]
des_old.h doesn't really need to include des.h, so don't. That will
avoid clashes with other code that have their own DES_ functions but
really only use OpenSSL's old des_ functions.
Richard Levitte [Tue, 30 Oct 2001 08:00:59 +0000 (08:00 +0000)]
Change the shared library support so the shared libraries get built
sooner and the programs get built against the shared libraries.
This requires a bit more work. Things like -rpath and the possibility
to still link the programs statically should be included. Some
cleanup is also needed. This will be worked on.
Bugfixes for noemailDN option. Make it use the
correct name (instead of NULL) if nomailDN is
not set, fix memory leaks and retain DN structure
when deleting emailAddress.
Richard Levitte [Thu, 25 Oct 2001 16:55:17 +0000 (16:55 +0000)]
Change the DES documentation to reflect the current status. Note that
some password reading functions are really part of the UI
compatibility library...
Bodo Möller [Thu, 25 Oct 2001 08:25:19 +0000 (08:25 +0000)]
Add '-noemailDN' option to 'openssl ca'. This prevents inclusion of
the e-mail address in the DN (i.e., it will go into a certificate
extension only). The new configuration file option 'email_in_dn = no'
has the same effect.
Richard Levitte [Wed, 24 Oct 2001 21:21:12 +0000 (21:21 +0000)]
Due to an increasing number of clashes between modern OpenSSL and
libdes (which is still used out there) or other des implementations,
the OpenSSL DES functions are renamed to begin with DES_ instead of
des_. Compatibility routines are provided and declared by including
openssl/des_old.h. Those declarations are the same as were in des.h
when the OpenSSL project started, which is exactly how libdes looked
at that time, and hopefully still looks today.
The compatibility functions will be removed in some future release, at
the latest in version 1.0.
Bodo Möller [Wed, 24 Oct 2001 19:03:22 +0000 (19:03 +0000)]
Fix SSL handshake functions and SSL_clear() such that SSL_clear()
never resets s->method to s->ctx->method when called from within
one of the SSL handshake functions.
Bodo Möller [Sat, 20 Oct 2001 17:56:36 +0000 (17:56 +0000)]
New functions SSL[_CTX]_set_msg_callback().
New macros SSL[_CTX]_set_msg_callback_arg().
Message callback imlementation for SSL 3.0/TLS 1.0 (no SSL 2.0 yet).
New '-msg' option for 'openssl s_client' and 'openssl s_server'
that enable a message callback that displays all protocol messages.
In ssl3_get_client_hello (ssl/s3_srvr.c), generate a fatal alert if
client_version is smaller than the protocol version in use.
Also change ssl23_get_client_hello (ssl/s23_srvr.c) to select TLS 1.0
if the client demanded SSL 3.0 but only TLS 1.0 is enabled; then the
client will at least see that alert.
Fix SSL[_CTX]_ctrl prototype (void * instead of char * for generic
pointer).
Bodo Möller [Tue, 16 Oct 2001 13:09:24 +0000 (13:09 +0000)]
Add per-SSL 'msg_callback' with 'msg_callback_arg'.
Both have per-SSL_CTX defaults.
These new values can be set by calling SSL[_CTX]_[callback_]ctrl
with codes SSL_CTRL_SET_MSG_CALLBACK and SSL_CTRL_SET_MSG_CALLBACK_ARG.
So far, the callback is never actually called.
Also rearrange some SSL_CTX struct members (some exist just in
SSL_CTXs, others are defaults for SSLs and are either copied
during SSL_new, or used if the value in the SSL is not set;
these three classes of members were not in a logical order),
and add some missing assignments to SSL_dup.
Bodo Möller [Tue, 16 Oct 2001 00:56:04 +0000 (00:56 +0000)]
The message header for fake SSL 3.0/TLS 1.0 client hellos created from
SSL 2.0 client hellos added with the previous commit was totally wrong --
it must start with the message type, not the protocol version.
(Not that this particular header is actually used anywhere ...)
Bodo Möller [Mon, 15 Oct 2001 19:49:25 +0000 (19:49 +0000)]
Change ssl3_get_message and the functions using it so that complete
'Handshake' protocol structures are kept in memory, including
'msg_type' and 'length'.
(This is in preparation of future support for callbacks that get to
peek at handshake messages and the like.)
Lutz Jänicke [Fri, 12 Oct 2001 12:29:16 +0000 (12:29 +0000)]
Update information as a partial response to the post
From: "Chris D. Peterson" <cpeterson@aventail.com>
Subject: Implementation Issues with OpenSSL
To: openssl-users@openssl.org
Date: Wed, 22 Aug 2001 16:13:17 -0700
The patch included in the original post may improve the internal session
list handling (and is therefore worth a seperate investigation).
No change to the list handling will however solve the problems of incorrect
SSL_SESSION_free() calls. The session list is only one possible point of
failure, dangling pointers would also occur for SSL object currently
using the session. The correct solution is to only use SSL_SESSION_free()
when applicable!
Richard Levitte [Thu, 11 Oct 2001 19:38:40 +0000 (19:38 +0000)]
In certain cases, no encoding has been set up for the b64 filter. In
such cases, a flush should *not* attempt to finalise the encoding, as
the EVP_ENCODE_CTX structure will only be filled with garbage. For
the same reason, do the same check when a wpending is performed.
Richard Levitte [Wed, 10 Oct 2001 14:46:41 +0000 (14:46 +0000)]
For systems where gcc is used and where we don't know if GNU ld is
used or not, let's ask collect2 which ld it uses and choose to use the
target do-gnu_shared if GNU ld is used.
This solves the reported problems on Solaris systems where GNU cc is
used but GNU ld isn't, and probably on other systems with similar
setups.
Richard Levitte [Wed, 10 Oct 2001 08:27:28 +0000 (08:27 +0000)]
It seems like gcc does canonicalisation of file names. More
specifically, a starting './' is removed. makedepend doesn't do this,
resulting in another possible commit war, so let's fix that by doing a
poor mans canonicalisation of file names that gives the same effect as
doing dependencies through gcc.
Richard Levitte [Wed, 10 Oct 2001 07:55:02 +0000 (07:55 +0000)]
To avoid commit wars over dependencies, let's make it so things that
depend on the environment, like the presence of the OpenBSD crypto
device or of Kerberos, do not change the dependencies within OpenSSL.
Geoff Thorpe [Tue, 9 Oct 2001 01:38:31 +0000 (01:38 +0000)]
evp_test.c and evptests.txt both need to be linked in the test/ directory
however for different reasons. This separation should prevent the win32
build from interpreting evptests.txt as source code.
Geoff Thorpe [Mon, 8 Oct 2001 17:24:10 +0000 (17:24 +0000)]
EVP_EncryptInit_ex() and EVP_DecryptInit_ex() had been defined in evp.h but
not implemented. (Bug reported by Martin Szotkowski)
This also changes the non-"_ex" versions to defer directly to
EVP_CipherInit_ex() rather than EVP_CipherInit() to avoid an unecessary
level of indirection.
Geoff Thorpe [Mon, 8 Oct 2001 17:08:17 +0000 (17:08 +0000)]
As ENGINE_load_openbsd_dev_crypto() is an API function, it makes sense for
it to be defined on all platforms whether or not it is of any practical
use on them. This also resolves linker problems on "special" platforms,
such as win32.