20 years agoFix an oversight - when checking a potential session ID for conflicts with
Geoff Thorpe [Fri, 23 Feb 2001 00:02:56 +0000 (00:02 +0000)]
Fix an oversight - when checking a potential session ID for conflicts with
an SSL_CTX's session cache, it is necessary to compare the ssl_version at
the same time (a conflict is defined, courtesy of SSL_SESSION_cmp(), as a
matching id/id_length pair and a matching ssl_version). However, the
SSL_SESSION that will result from the current negotiation does not
necessarily have the same ssl version as the "SSL_METHOD" in use by the
SSL_CTX - part of the work in a handshake is to agree on an ssl version!

This is fixed by having the check function accept an SSL pointer rather
than the SSL_CTX it belongs to.

[Thanks to Lutz for illuminating the full extent of my stupidity]

20 years agoDefine the right macro for Linux and other GNU-based systems to get a correct declara...
Richard Levitte [Thu, 22 Feb 2001 18:03:30 +0000 (18:03 +0000)]
Define the right macro for Linux and other GNU-based systems to get a correct declaration of strdup()

20 years agoe_os.h defines Getenv()
Richard Levitte [Thu, 22 Feb 2001 17:59:55 +0000 (17:59 +0000)]
e_os.h defines Getenv()

20 years agoCONF_METHOD is one of the few places where you find MS_FAR. I can't
Richard Levitte [Thu, 22 Feb 2001 17:41:15 +0000 (17:41 +0000)]
CONF_METHOD is one of the few places where you find MS_FAR.  I can't
really see why we need to define these function pointers with MS_FAR
if it's not done cosistently everywhere.

If we decide to support MS_FAR modifiers, it's better to have the
named something more unique for OpenSSL and to define them in e_os2.h.

20 years agoDefine the OPENSSL_NO_* macros as NO_* macros for the sake of applications thathaven...
Richard Levitte [Thu, 22 Feb 2001 17:36:41 +0000 (17:36 +0000)]
Define the OPENSSL_NO_* macros as NO_* macros for the sake of applications thathaven't yet been changed

20 years agoe_os.h problems have been solved in the main branch.
Bodo Möller [Thu, 22 Feb 2001 15:10:11 +0000 (15:10 +0000)]
e_os.h problems have been solved in the main branch.

20 years agoundo previous change: "e_os.h" is now the official name for the file
Bodo Möller [Thu, 22 Feb 2001 15:08:30 +0000 (15:08 +0000)]
undo previous change: "e_os.h" is now the official name for the file
to include (but the OpenSSL_0_9_6-stable branche still has

20 years agoinclude e_os.h as "openssl/e_os.h" (as elsewhere)
Bodo Möller [Thu, 22 Feb 2001 14:58:38 +0000 (14:58 +0000)]
include e_os.h as "openssl/e_os.h" (as elsewhere)

20 years agoe_os.h does not belong with the exported headers. Do not put it there
Richard Levitte [Thu, 22 Feb 2001 14:45:02 +0000 (14:45 +0000)]
e_os.h does not belong with the exported headers.  Do not put it there
and make all files the depend on it include it without prefixing it
with openssl/.

This means that all Makefiles will have $(TOP) as one of the include

20 years agoSince RAND_file_name() uses strlen, make sure the number that's
Richard Levitte [Thu, 22 Feb 2001 14:40:15 +0000 (14:40 +0000)]
Since RAND_file_name() uses strlen, make sure the number that's
compared to it has the type size_t.  Included the needed headers to
make that happen.

20 years agoUse e_os2.h rather than opensslconf.h, since some needed macros are
Richard Levitte [Thu, 22 Feb 2001 14:37:50 +0000 (14:37 +0000)]
Use e_os2.h rather than opensslconf.h, since some needed macros are
defined there.

20 years agoExported header files should not include e_os.h.
Richard Levitte [Thu, 22 Feb 2001 14:27:22 +0000 (14:27 +0000)]
Exported header files should not include e_os.h.

20 years agoSince opensslconf.h might be included over and over, undefine
Richard Levitte [Thu, 22 Feb 2001 14:24:50 +0000 (14:24 +0000)]
Since opensslconf.h might be included over and over, undefine
OPENSSL_UNISTD before redefining it, to avoid compiler warnings.

20 years agoOne indirection level too little compared to the
Richard Levitte [Thu, 22 Feb 2001 14:23:44 +0000 (14:23 +0000)]
One indirection level too little compared to the

20 years agoWindows does not know of strigs.h or strcasecmp, so when in Windows,
Richard Levitte [Thu, 22 Feb 2001 14:21:06 +0000 (14:21 +0000)]
Windows does not know of strigs.h or strcasecmp, so when in Windows,
make strcasecmp a macro to _stricmp.

20 years agoAlways include opensslconf.h, even if it's already been done before.
Richard Levitte [Thu, 22 Feb 2001 13:59:36 +0000 (13:59 +0000)]
Always include opensslconf.h, even if it's already been done before.
The reason is that some parts are only included when certain other
include files have been included.

Also, it seems that the rest of the OpenSSL code assumes that all
kinds of M$ Windows are MSDOS as well...

20 years agoWhen inside a #if 0..#endif, do not define anything.
Richard Levitte [Thu, 22 Feb 2001 13:24:17 +0000 (13:24 +0000)]
When inside a #if 0..#endif, do not define anything.

20 years agoSince SSL_add_dir_cert_subjects_to_stack isn't impemented on VMS,
Richard Levitte [Thu, 22 Feb 2001 13:22:20 +0000 (13:22 +0000)]
Since SSL_add_dir_cert_subjects_to_stack isn't impemented on VMS,
there's no point creating an alias for it.

20 years agoInclude e_os2.h instead of opensslconf.h.
Richard Levitte [Thu, 22 Feb 2001 13:19:50 +0000 (13:19 +0000)]
Include e_os2.h instead of opensslconf.h.
SSL_add_dir_cert_subjects_to_stack is not implemented on WIN32 and
VMS, so declare it the same way.

20 years agoRebuild ASN1 error codes to remove unused function and reason codes.
Dr. Stephen Henson [Thu, 22 Feb 2001 00:39:06 +0000 (00:39 +0000)]
Rebuild ASN1 error codes to remove unused function and reason codes.

20 years agoIf a callback is generating a new session ID for SSLv2, then upon exiting,
Geoff Thorpe [Wed, 21 Feb 2001 21:38:32 +0000 (21:38 +0000)]
If a callback is generating a new session ID for SSLv2, then upon exiting,
the ID will be padded out to 16 bytes if the callback attempted to generate
a shorter one. The problem is that the uniqueness checking function used in
callbacks may mistakenly think a 9-byte ID is unique when in fact its
padded 16-byte version is not. This makes the checking function detect
SSLv2 cases, and ensures the padded form is checked rather than the shorter
one passed by the callback.

20 years agoNote changes re: session ID generation callbacks, etc.
Geoff Thorpe [Wed, 21 Feb 2001 18:48:33 +0000 (18:48 +0000)]
Note changes re: session ID generation callbacks, etc.

20 years agoThis adds command-line support to s_server for controlling the generation
Geoff Thorpe [Wed, 21 Feb 2001 18:38:48 +0000 (18:38 +0000)]
This adds command-line support to s_server for controlling the generation
of session IDs. Namely, passing "-id_prefix <text>" will set a
generate_session_id() callback that generates session IDs as random data
with <text> block-copied over the top of the start of the ID. This can be
viewed by watching the session ID s_client's output when it connects.

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).

20 years agoThis change allows a callback to be used to override the generation of
Geoff Thorpe [Wed, 21 Feb 2001 18:06:26 +0000 (18:06 +0000)]
This change allows a callback to be used to override the generation of
SSL/TLS session IDs in a server. According to RFC2246, the session ID is an
arbitrary value chosen by the server. It can be useful to have some control
over this "arbitrary value" so as to choose it in ways that can aid in
things like external session caching and balancing (eg. clustering). The
default session ID generation is to fill the ID with random data.

The callback used by default is built in to ssl_sess.c, but registering a
callback in an SSL_CTX or in a particular SSL overrides this. BTW: SSL
callbacks will override SSL_CTX callbacks, and a new SSL structure inherits
any callback set in its 'parent' SSL_CTX. The header comments describe how
this mechanism ticks, and source code comments describe (hopefully) why it
ticks the way it does.

Man pages are on the way ...

[NB: Lutz was also hacking away and helping me to figure out how best to do

20 years ago'make update'
Geoff Thorpe [Wed, 21 Feb 2001 17:43:52 +0000 (17:43 +0000)]
'make update'

20 years ago'make update'
Richard Levitte [Wed, 21 Feb 2001 14:12:50 +0000 (14:12 +0000)]
'make update'

20 years agoModify to recognise and parse prprocessor conditionals of the
Richard Levitte [Wed, 21 Feb 2001 14:12:03 +0000 (14:12 +0000)]
Modify to recognise and parse prprocessor conditionals of the
form '#if defined(...) || defined(...) || ...' and '#if !defined(...)
&& !defined(...) && ...'.  This also avoids the growing number of
special cases it was previously handling (some of them wrongly).

20 years agoI had forgotten to change to use the new macro system.
Richard Levitte [Wed, 21 Feb 2001 12:03:20 +0000 (12:03 +0000)]
I had forgotten to change to use the new macro system.

20 years agostrdup() is a X/Open extension.
Richard Levitte [Tue, 20 Feb 2001 20:00:30 +0000 (20:00 +0000)]
strdup() is a X/Open extension.

20 years agoWith later version of DEC C on VMS, some functions (strcmp(), for
Richard Levitte [Tue, 20 Feb 2001 19:13:46 +0000 (19:13 +0000)]
With later version of DEC C on VMS, some functions (strcmp(), for
example) are declared with some extra linkage information.  This
generates a warning when using the function name as a value to a
regular function pointer with the "correct" definition of the
function.  Therefore, use a macro to cast the appropriate function on

20 years agoSome functions, like strdup() and strcasecmp(), are defined in
Richard Levitte [Tue, 20 Feb 2001 19:05:59 +0000 (19:05 +0000)]
Some functions, like strdup() and strcasecmp(), are defined in
strings.h according to X/Open.

20 years agoI forgot there was a reason why the inclusions and definition of u_int
Richard Levitte [Tue, 20 Feb 2001 17:37:02 +0000 (17:37 +0000)]
I forgot there was a reason why the inclusions and definition of u_int
was made in a certain sequence.  This change restores the earlier
"chain of command".

20 years agoOpenVMS catches up.
Richard Levitte [Tue, 20 Feb 2001 17:14:30 +0000 (17:14 +0000)]
OpenVMS catches up.

20 years agoThe callbacks in the NAME_FUNCS structure are not used directly as LHASH
Geoff Thorpe [Tue, 20 Feb 2001 16:31:15 +0000 (16:31 +0000)]
The callbacks in the NAME_FUNCS structure are not used directly as LHASH
callbacks, and their prototypes were consistent as they were. These casts
need reversing.

Also, I personally find line breaks during parameter lists (ie a line
ending in a comma) easier to read at a glance than line breaks at the end
of a function call and before a dereference on the return value (ie a line
ending in a closed-bracket followed by a line starting with "->").

20 years agomake it a loop as in dsa
Ulf Möller [Tue, 20 Feb 2001 16:17:25 +0000 (16:17 +0000)]
make it a loop as in dsa

20 years agoGet e_os2.h to get all the system definitions correctly.
Richard Levitte [Tue, 20 Feb 2001 14:07:03 +0000 (14:07 +0000)]
Get e_os2.h to get all the system definitions correctly.

20 years agoGet the right cast for lhash callback functions.
Richard Levitte [Tue, 20 Feb 2001 14:00:29 +0000 (14:00 +0000)]
Get the right cast for lhash callback functions.

20 years agoInclude string.h so mem*() functions get properly declared.
Richard Levitte [Tue, 20 Feb 2001 13:41:11 +0000 (13:41 +0000)]
Include string.h so mem*() functions get properly declared.

20 years agoFix typo.
Dr. Stephen Henson [Tue, 20 Feb 2001 13:30:28 +0000 (13:30 +0000)]
Fix typo.

20 years agoA new bunch of too long symbols to hack.
Richard Levitte [Tue, 20 Feb 2001 13:26:00 +0000 (13:26 +0000)]
A new bunch of too long symbols to hack.
OCSP_CRLID_new and OCSP_crlID_new clash on case-insensitive systems.

20 years agoDEC C on VMS is pedantic by definition.
Richard Levitte [Tue, 20 Feb 2001 13:24:23 +0000 (13:24 +0000)]
DEC C on VMS is pedantic by definition.

20 years agoInclude OpenSSL header files earlier so macros like OPENSSL_SYS_VMS
Richard Levitte [Tue, 20 Feb 2001 13:23:42 +0000 (13:23 +0000)]
Include OpenSSL header files earlier so macros like OPENSSL_SYS_VMS
get a chance to be defined.
Make a batter file name translator (uhm, no, that's not the finished
variant :-)).

20 years agoInclude OpenSSL header files earlier so macros like OPENSSL_SYS_VMS
Richard Levitte [Tue, 20 Feb 2001 13:22:35 +0000 (13:22 +0000)]
Include OpenSSL header files earlier so macros like OPENSSL_SYS_VMS
get a chance to be defined.

20 years agoInclude opensslconf.h or the like early to make sure system macros get
Richard Levitte [Tue, 20 Feb 2001 13:11:54 +0000 (13:11 +0000)]
Include opensslconf.h or the like early to make sure system macros get
correctly defined.

20 years agoLet VMS catch up.
Richard Levitte [Tue, 20 Feb 2001 13:10:14 +0000 (13:10 +0000)]
Let VMS catch up.

20 years agoDEC C on VMS is pedantic by definition.
Richard Levitte [Tue, 20 Feb 2001 13:06:55 +0000 (13:06 +0000)]
DEC C on VMS is pedantic by definition.

20 years agoUse sk_*_new_null() instead of sk_*_new(NULL). That avoids getting
Richard Levitte [Tue, 20 Feb 2001 13:06:10 +0000 (13:06 +0000)]
Use sk_*_new_null() instead of sk_*_new(NULL).  That avoids getting
lots of silly warnings from the compiler.

20 years agohonour '-no_tmp_rsa'
Bodo Möller [Tue, 20 Feb 2001 12:59:48 +0000 (12:59 +0000)]
honour '-no_tmp_rsa'

20 years agoInclude string.h so mem* functions get properly declared.
Richard Levitte [Tue, 20 Feb 2001 12:51:56 +0000 (12:51 +0000)]
Include string.h so mem* functions get properly declared.

20 years agoInclude OpenSSL header files earlier so macros like OPENSSL_SYS_VMS
Richard Levitte [Tue, 20 Feb 2001 12:44:46 +0000 (12:44 +0000)]
Include OpenSSL header files earlier so macros like OPENSSL_SYS_VMS
get a chance to be defined.

20 years agoInclude string.h so mem* functions get properly declared.
Richard Levitte [Tue, 20 Feb 2001 12:43:11 +0000 (12:43 +0000)]
Include string.h so mem* functions get properly declared.

20 years agoUse 0 instead of NULL, at least for function casts, since there are
Richard Levitte [Tue, 20 Feb 2001 12:40:42 +0000 (12:40 +0000)]
Use 0 instead of NULL, at least for function casts, since there are
variants of stdio.h that define NULL in such a way that it's "unsafe"
to use for function pointer casting.

20 years agoupdate
Bodo Möller [Tue, 20 Feb 2001 11:36:02 +0000 (11:36 +0000)]

20 years agoUse new-style system-id macros everywhere possible. I hope I haven't
Richard Levitte [Tue, 20 Feb 2001 08:13:47 +0000 (08:13 +0000)]
Use new-style system-id macros everywhere possible.  I hope I haven't
missed any.

This compiles and runs on Linux, and external applications have no
problems with it.  The definite test will be to build this on VMS.

20 years agoFix BN_[pseudo_]rand: 'mask' must be used even if top=-1.
Bodo Möller [Tue, 20 Feb 2001 08:10:38 +0000 (08:10 +0000)]
Fix BN_[pseudo_]rand: 'mask' must be used even if top=-1.

Mention BN_[pseudo_]rand with top=-1 in CHANGES.

20 years agoUse new-style system-id macros.
Richard Levitte [Tue, 20 Feb 2001 07:43:22 +0000 (07:43 +0000)]
Use new-style system-id macros.

20 years agoI'm sick of the warnings about long long...
Richard Levitte [Tue, 20 Feb 2001 07:22:11 +0000 (07:22 +0000)]
I'm sick of the warnings about long long...

20 years agoUse BN_rand_range().
Ulf Möller [Tue, 20 Feb 2001 00:43:59 +0000 (00:43 +0000)]
Use BN_rand_range().

20 years agoFix warning.
Ulf Möller [Tue, 20 Feb 2001 00:43:03 +0000 (00:43 +0000)]
Fix warning.

20 years agoBN_rand_range() needs a BN_rand() variant that doesn't set the MSB.
Ulf Möller [Tue, 20 Feb 2001 00:23:07 +0000 (00:23 +0000)]
BN_rand_range() needs a BN_rand() variant that doesn't set the MSB.

20 years agonote OPENSSL_issetugid().
Ulf Möller [Mon, 19 Feb 2001 23:58:56 +0000 (23:58 +0000)]
note OPENSSL_issetugid().

20 years agoTemporary fix for build break.
Ulf Möller [Mon, 19 Feb 2001 23:42:09 +0000 (23:42 +0000)]
Temporary fix for build break.
It's still inconsistent - probably better to undo the whole OPENSSL_NO_* thing.

20 years agoMake sure time() is properly declared.
Richard Levitte [Mon, 19 Feb 2001 22:47:40 +0000 (22:47 +0000)]
Make sure time() is properly declared.

20 years agoUse the new-style system-identity macros.
Richard Levitte [Mon, 19 Feb 2001 22:04:02 +0000 (22:04 +0000)]
Use the new-style system-identity macros.

20 years agoI forgot to document the system identification macros
Richard Levitte [Mon, 19 Feb 2001 16:15:13 +0000 (16:15 +0000)]
I forgot to document the system identification macros

20 years agoMake all configuration macros available for application by making
Richard Levitte [Mon, 19 Feb 2001 16:06:34 +0000 (16:06 +0000)]
Make all configuration macros available for application by making
sure they are available in opensslconf.h, by giving them names starting
with "OPENSSL_" to avoid conflicts with other packages and by making
sure e_os2.h will cover all platform-specific cases together with

I've checked fairly well that nothing breaks with this (apart from
external software that will adapt if they have used something like
NO_KRB5), but I can't guarantee it completely, so a review of this
change would be a good thing.

20 years agoRemove temporary files when done.
Richard Levitte [Mon, 19 Feb 2001 15:23:37 +0000 (15:23 +0000)]
Remove temporary files when done.

20 years agomake update
Richard Levitte [Mon, 19 Feb 2001 14:00:38 +0000 (14:00 +0000)]
make update

20 years agoAn obvious but hard-to-see cut'n'paste error corrected.
Richard Levitte [Mon, 19 Feb 2001 13:57:40 +0000 (13:57 +0000)]
An obvious but hard-to-see cut'n'paste error corrected.

20 years agoNew -set_serial options to 'req' and 'x509'.
Dr. Stephen Henson [Mon, 19 Feb 2001 13:38:32 +0000 (13:38 +0000)]
New -set_serial options to 'req' and 'x509'.

Remove the old broken bio read of serial numbers in the 'ca' index
file. This would choke if a revoked certificate was specified with
a negative serial number.

Fix typo in uid.c

20 years agoDo not insert things in syms{} and kind{} when parsing the header
Richard Levitte [Mon, 19 Feb 2001 13:33:04 +0000 (13:33 +0000)]
Do not insert things in syms{} and kind{} when parsing the header
files.  Instead, insert proper information in the $def string, which
will be properly munged later on.

20 years agoMake the choice of "makedepend" program choosable through a switch.
Richard Levitte [Mon, 19 Feb 2001 12:51:14 +0000 (12:51 +0000)]
Make the choice of "makedepend" program choosable through a switch.

20 years agoVMS follows suit.
Richard Levitte [Mon, 19 Feb 2001 11:30:22 +0000 (11:30 +0000)]
VMS follows suit.

20 years agoMemory leak detection bugfixes for multi-threading.
Bodo Möller [Mon, 19 Feb 2001 10:32:53 +0000 (10:32 +0000)]
Memory leak detection bugfixes for multi-threading.

20 years agoAdd uid.{c,o}
Bodo Möller [Mon, 19 Feb 2001 10:31:04 +0000 (10:31 +0000)]
Add uid.{c,o}

20 years agoPerl code patch contributed by "Kurt J. Pires" <>
Richard Levitte [Mon, 19 Feb 2001 09:29:53 +0000 (09:29 +0000)]
Perl code patch contributed by "Kurt J. Pires" <>
His own words are:

The patch adds no new functionality (other than a simple test package)
to the libraries, but it allows them to be compiled with Perl5.6.0.
It has only been tested under "Red Hat Linux release 7.0 (Guinness)"
with the unpatched verion of OpenSSL 0.9.6 released last September.

20 years agoMake it possible to use gcc to generate the dependency tables.
Richard Levitte [Fri, 16 Feb 2001 13:55:05 +0000 (13:55 +0000)]
Make it possible to use gcc to generate the dependency tables.

20 years agoispell
Ulf Möller [Fri, 16 Feb 2001 02:09:53 +0000 (02:09 +0000)]

20 years agopod format error
Ulf Möller [Fri, 16 Feb 2001 01:44:24 +0000 (01:44 +0000)]
pod format error

20 years agoNew options to 'ca' utility to support CRL entry extensions.
Dr. Stephen Henson [Fri, 16 Feb 2001 01:35:44 +0000 (01:35 +0000)]
New options to 'ca' utility to support CRL entry extensions.

Add revelant new X509V3 extensions.

Add OIDs.

Fix ASN1 memory leak code to pop info if external allocation used.

20 years agoMove entry to match chronologic orderering.
Lutz Jänicke [Thu, 15 Feb 2001 14:18:53 +0000 (14:18 +0000)]
Move entry to match chronologic orderering.

20 years agoDon't forget to mention minor change.
Lutz Jänicke [Thu, 15 Feb 2001 10:35:56 +0000 (10:35 +0000)]
Don't forget to mention minor change.

20 years agoAdd "-rand" option to s_client and s_server.
Lutz Jänicke [Thu, 15 Feb 2001 10:22:07 +0000 (10:22 +0000)]
Add "-rand" option to s_client and s_server.

20 years agoThat was misleading. The problem won't happen with 0.9.6a anyway.
Ulf Möller [Wed, 14 Feb 2001 16:55:22 +0000 (16:55 +0000)]
That was misleading. The problem won't happen with 0.9.6a anyway.

20 years agoInclude the newly reported problem with bc on FreeBSD 4.2.
Richard Levitte [Wed, 14 Feb 2001 07:45:59 +0000 (07:45 +0000)]
Include the newly reported problem with bc on FreeBSD 4.2.

20 years agoOption to disable standard block padding with EVP API.
Dr. Stephen Henson [Wed, 14 Feb 2001 02:11:52 +0000 (02:11 +0000)]
Option to disable standard block padding with EVP API.

Add -nopad option to enc command.

Update docs.

20 years agoNew function OPENSSL_issetugid(). Needs more work.
Ulf Möller [Wed, 14 Feb 2001 01:35:44 +0000 (01:35 +0000)]
New function OPENSSL_issetugid(). Needs more work.

20 years agoInitial OCSP SSL support.
Dr. Stephen Henson [Wed, 14 Feb 2001 01:12:41 +0000 (01:12 +0000)]
Initial OCSP SSL support.

20 years agoIRIX bugfix
Ulf Möller [Wed, 14 Feb 2001 00:14:09 +0000 (00:14 +0000)]
IRIX bugfix

20 years agoFinish first round of session cache documentation.
Lutz Jänicke [Tue, 13 Feb 2001 14:00:09 +0000 (14:00 +0000)]
Finish first round of session cache documentation.

20 years agoUpdate of linux-ppc. Contributed by MATSUURA Takanori
Richard Levitte [Tue, 13 Feb 2001 13:08:12 +0000 (13:08 +0000)]
Update of linux-ppc.  Contributed by MATSUURA Takanori

20 years agoNew manual page: SSL_CTX_set_mode.
Lutz Jänicke [Tue, 13 Feb 2001 11:43:11 +0000 (11:43 +0000)]
New manual page: SSL_CTX_set_mode.

20 years agoNew function OCSP_parse_url() and -url option for ocsp utility.
Dr. Stephen Henson [Tue, 13 Feb 2001 00:37:44 +0000 (00:37 +0000)]
New function OCSP_parse_url() and -url option for ocsp utility.

Doesn't handle SSL URLs yet.

20 years agoModify OCSP nonce behaviour.
Dr. Stephen Henson [Mon, 12 Feb 2001 23:28:45 +0000 (23:28 +0000)]
Modify OCSP nonce behaviour.

20 years agoWork around for libsafe "error".
Dr. Stephen Henson [Mon, 12 Feb 2001 03:22:49 +0000 (03:22 +0000)]
Work around for libsafe "error".

20 years agoRe-order a couple of static functions and "#if 0" out unused ones - this
Geoff Thorpe [Mon, 12 Feb 2001 02:30:19 +0000 (02:30 +0000)]
Re-order a couple of static functions and "#if 0" out unused ones - this
gets rid of gcc warnings.

20 years agoThis change was a quick experiment that I'd wanted to try that works quite
Geoff Thorpe [Mon, 12 Feb 2001 02:28:29 +0000 (02:28 +0000)]
This change was a quick experiment that I'd wanted to try that works quite
well (and is a good demonstration of how encapsulating the SSL in a
memory-based state machine can make it easier to apply to different

The change implements a new command-line switch "-flipped <0|1>" which, if
set to 1, reverses the usual interpretation of a client and server for SSL
tunneling. Normally, an ssl client (ie. "-server 0") accepts "cleartext"
connections and conducts SSL/TLS over a proxied connection acting as an SSL
client. Likewise, an ssl server (ie. "-server 1") accepts connections and
conducts SSL/TLS (as an SSL server) over them and passes "cleartext" over
the proxied connection. With "-flipped 1", an SSL client (specified with
"-server 0") in fact accepts SSL connections and proxies clear, whereas an
SSL server ("-server 1") accepts clear and proxies SSL. NB: most of this
diff is command-line handling, the actual meat of the change is simply the
line or two that plugs "clean" and "dirty" file descriptors into the item
that holds the state-machine - reverse them and you get the desired

This allows a network server to be an SSL client, and a network client to
be an SSL server. Apart from curiosity value, there's a couple of possibly
interesting applications - SSL/TLS is inherently vulnerable to trivial DoS
attacks, because the SSL server usually has to perform a private key
operation first, even if the client is authenticated. With this scenario,
the network client is the SSL server and performs the first private key
operation, whereas the network server serves as the SSL client. Another
possible application is when client-only authentication is required (ie.
the underlying protocol handles (or doesn't care about) authenticating the
server). Eg. an SSL/TLS version of 'ssh' could be concocted where the
client's signed certificate is used to validate login to a server system -
whether or not the client needs to validate who the server is can be
configured at the client end rather than at the server end (ie. a complete
inversion of what happens in normal SSL/TLS).

NB: This is just an experiment/play-thing, using "-flipped 1" probably
creates something that is interoperable with exactly nothing. :-)

20 years agoMore about session caching.
Lutz Jänicke [Sun, 11 Feb 2001 17:01:36 +0000 (17:01 +0000)]
More about session caching.

20 years agoInclude information that automatic query is a new feature.
Lutz Jänicke [Sat, 10 Feb 2001 19:10:36 +0000 (19:10 +0000)]
Include information that automatic query is a new feature.

20 years agoUpdate for 0.9.7 with SSL_OP_CIPHER_SERVER_PREFERENCE.
Lutz Jänicke [Sat, 10 Feb 2001 16:21:38 +0000 (16:21 +0000)]