Richard Levitte [Thu, 26 Apr 2001 19:45:31 +0000 (19:45 +0000)]
make update
Geoff Thorpe [Thu, 26 Apr 2001 19:35:44 +0000 (19:35 +0000)]
This adds 2 things to the ENGINE code.
* "ex_data" - a CRYPTO_EX_DATA structure in the ENGINE structure itself
that allows an ENGINE to store its own information there rather than in
global variables. It follows the declarations and implementations used
in RSA code, for better or worse. However there's a problem when storing
state with ENGINEs because, unlike related structure types in OpenSSL,
there is no ENGINE-vs-ENGINE_METHOD separation. Because of what ENGINE
is, it has method pointers as its structure elements ... which leads
to;
* ENGINE_FLAGS_BY_ID_COPY - if an ENGINE should not be used just as a
reference to an "implementation" (eg. to get to a hardware device), but
should also be able to maintain state, then this flag can be set by the
ENGINE implementation. The result is that any call to ENGINE_by_id()
will not result in the existing ENGINE being returned (with its
structural reference count incremented) but instead a new copy of the
ENGINE will be returned that can maintain its own state independantly of
any other copies returned in the past or future. Eg. key-generation
might involve a series of ENGINE-specific control commands to set
algorithms, sizes, module-keys, ids, ACLs, etc. A final command could
generate the key. An ENGINE doing this would *have* to declare
ENGINE_FLAGS_BY_ID_COPY so that the state of that process can be
maintained "per-handle" and unaffected by other code having a reference
to the same ENGINE structure.
Richard Levitte [Thu, 26 Apr 2001 16:08:10 +0000 (16:08 +0000)]
Clean up ENGINE before exiting.
Richard Levitte [Thu, 26 Apr 2001 16:07:08 +0000 (16:07 +0000)]
Provide the possibility to clean up internal ENGINE structures. This
takes care of what would otherwise be seen as a memory leak.
Richard Levitte [Thu, 26 Apr 2001 15:53:42 +0000 (15:53 +0000)]
gcc warns when certain values of an enumeration aren't taken care of,
unless there's a default clause.
Richard Levitte [Thu, 26 Apr 2001 15:45:12 +0000 (15:45 +0000)]
Check for OPENSSL_NO_RSA, OPENSSL_NO_DSA and OPENSSL_NO_DH and disable
appropriate code if any of them is defined.
Richard Levitte [Thu, 26 Apr 2001 15:04:22 +0000 (15:04 +0000)]
engine.h includes all the needed header files, so don't do it again
here.
Richard Levitte [Thu, 26 Apr 2001 12:01:12 +0000 (12:01 +0000)]
We shouldn't skip over header files to avoid functions of disabled algorithms. The selection is done in a different way
Richard Levitte [Thu, 26 Apr 2001 08:26:18 +0000 (08:26 +0000)]
User OPENSSL_UNISTD instead of <unistd.h>.
Spotted by Mark Crispin <MRC@Panda.COM>
Geoff Thorpe [Wed, 25 Apr 2001 22:40:55 +0000 (22:40 +0000)]
This change to the "dl", "dlfcn", and "win32" DSO_METHODs adds the filename
or symbol name to the error stack in the event a load or bind operation
failed.
Lutz Jänicke [Wed, 25 Apr 2001 15:24:47 +0000 (15:24 +0000)]
Typo (reported by Petr Lancaric <Petr.Lancaric@ips-ag.cz>)
Geoff Thorpe [Sun, 22 Apr 2001 17:21:19 +0000 (17:21 +0000)]
Make update.
Dr. Stephen Henson [Sat, 21 Apr 2001 12:06:01 +0000 (12:06 +0000)]
Fix ASN1 bug when decoding OTHER type.
Various S/MIME DSA related fixes.
Richard Levitte [Fri, 20 Apr 2001 13:09:10 +0000 (13:09 +0000)]
Script to create shareable images (shared libraries in Unixly terms)
on VMS.
Richard Levitte [Fri, 20 Apr 2001 12:37:14 +0000 (12:37 +0000)]
VMS was behind when it comes to OCSP.
Geoff Thorpe [Thu, 19 Apr 2001 23:06:00 +0000 (23:06 +0000)]
Add notes about the new ENGINE functionality.
Geoff Thorpe [Thu, 19 Apr 2001 02:08:26 +0000 (02:08 +0000)]
Changes to "openssl engine" to support the new control command code in
ENGINE.
* Extra verbosity can be added with more "v"'s, eg. '-vvv' gives
information about input flags and descriptions for each control command
in each ENGINE. Check the output of "openssl engine -vvv" for example.
* '-pre <cmd>' and '-post <cmd>' can be used to invoke control commands on
the specified ENGINE (or on all of them if no engine id is specified,
although that usually gets pretty ugly). '-post' commands are only
attempted if '-t' is specified and the engine successfully initialises.
'-pre' commands are always attempted whether or not '-t' causes an
initialisation to be tried afterwards. Multiple '-pre' and/or '-post'
commands can be specified and they will be called in the order they
occur on the command line.
Parameterised commands (the normal case, there are currently no
unparameterised ones) are split into command and argument via a separating
colon. Eg. "openssl engine -pre SO_PATH:/lib/libdriver.so <id>" results in
the call;
ENGINE_ctrl_cmd_string(e, "SO_PATH", "/lib/libdriver.so", 0);
Application code should similarly allow arbitrary name-value string pairs
to be passed into ENGINEs in a manner matching that in apps/engine.c,
either using the same colon-separated format, or entered as two distinct
strings. Eg. as stored in a registry. The last parameter of
ENGINE_ctrl_cmd_string can be changed from 0 to 1 if the command should
only be attempted if it's supported by the specified ENGINE (eg. for
commands like "FORK_CHECK:1" that may or may not apply to the run-time
ENGINE).
Geoff Thorpe [Thu, 19 Apr 2001 01:45:40 +0000 (01:45 +0000)]
Some more tweaks to ENGINE code.
This change adds some basic control commands to the existing ENGINEs
(except the software 'openssl' engine). All these engines currently load
shared-libraries for hardware APIs, so they've all been given "SO_PATH"
commands that will configure the chosen ENGINE to load its shared library
from the given path. Eg. by calling;
ENGINE_ctrl_cmd_string(e, "SO_PATH", <path>, 0).
The nCipher 'chil' ENGINE has also had "FORK_CHECK" and "THREAD_LOCKING"
commands added so these settings could be handled via application-level
configuration rather than in application source code.
Changes to "openssl engine" to test and examine these control commands will
be made shortly. It will also provide the necessary tips to application
programs wanting to support these dynamic control commands.
Geoff Thorpe [Thu, 19 Apr 2001 00:41:55 +0000 (00:41 +0000)]
Some BIG tweaks to ENGINE code.
This change adds some new functionality to the ENGINE code and API to
make it possible for ENGINEs to describe and implement their own control
commands that can be interrogated and used by calling applications at
run-time. The source code includes numerous comments explaining how it all
works and some of the finer details. But basically, an ENGINE will normally
declare an array of ENGINE_CMD_DEFN entries in its ENGINE - and the various
new ENGINE_CTRL_*** command types take care of iterating through this list
of definitions, converting command numbers to names, command names to
numbers, getting descriptions, getting input flags, etc. These
administrative commands are handled directly in the base ENGINE code rather
than in each ENGINE's ctrl() handler, unless they specify the
ENGINE_FLAGS_MANUAL_CMD_CTRL flag (ie. if they're doing something clever or
dynamic with the command definitions).
There is also a new function, ENGINE_cmd_is_executable(), that will
determine if an ENGINE control command is of an "executable" type that
can be used in another new function, ENGINE_ctrl_cmd_string(). If not, the
control command is not supposed to be exposed out to user/config level
access - eg. it could involve the exchange of binary data, returning
results to calling code, etc etc. If the command is executable then
ENGINE_ctrl_cmd_string() can be called using a name/arg string pair. The
control command's input flags will be used to determine necessary
conversions before the control command is called, and commands of this
form will always return zero or one (failure or success, respectively).
This is set up so that arbitrary applications can support control commands
in a consistent way so that tweaking particular ENGINE behaviour is
specific to the ENGINE and the host environment, and independant of the
application or OpenSSL.
Some code demonstrating this stuff in action will applied shortly to the
various ENGINE implementations, as well as "openssl engine" support for
executing arbitrary control commands before and/or after initialising
various ENGINEs.
Geoff Thorpe [Wed, 18 Apr 2001 21:46:00 +0000 (21:46 +0000)]
Some more tweaks to ENGINE code.
The existing ENGINEs (including the default 'openssl' software engine) were
static, declared inside the source file for each engine implementation. The
reason this was not going boom was that all the ENGINEs had reference
counts that never hit zero (once linked into the internal list, each would
always have at least 1 lasting structural reference).
To fix this so it will stay standing when an "unload" function is added to
match ENGINE_load_builtin_engines(), the "constructor" functions for each
ENGINE implementation have been changed to dynamically allocate and
construct their own ENGINEs using API functions. The other benefit of this
is that no ENGINE implementation has to include the internal "engine_int.h"
header file any more.
Geoff Thorpe [Wed, 18 Apr 2001 21:12:02 +0000 (21:12 +0000)]
Make a note of the recent ENGINE developments.
Bodo Möller [Wed, 18 Apr 2001 15:11:42 +0000 (15:11 +0000)]
typo
Bodo Möller [Wed, 18 Apr 2001 15:07:35 +0000 (15:07 +0000)]
fix md_rand.c locking bugs
Geoff Thorpe [Wed, 18 Apr 2001 04:47:01 +0000 (04:47 +0000)]
Make the shared library name and function symbol for the "nuron" ENGINE
static data where they could be parameterised by ctrl() commands.
Geoff Thorpe [Wed, 18 Apr 2001 04:18:16 +0000 (04:18 +0000)]
Some more tweaks from ENGINE code.
Previously RAND_get_rand_method was returning a non-const pointer, but it
should be const. As with all other such cases, METHOD pointers are stored and
returned as "const". The only methods one should be able to alter are methods
"local" to the relevant code, in which case a non-const handle to the methods
should already exist.
This change has been forced by the constifying of the ENGINE code (before
which RAND_METHOD was the only method pointer in an ENGINE structure that was
not constant).
Geoff Thorpe [Wed, 18 Apr 2001 03:57:05 +0000 (03:57 +0000)]
Some more tweaks to ENGINE code.
ENGINE handler functions should take the ENGINE structure as a parameter -
this is because ENGINE structures can be copied, and like other
structure/method setups in OpenSSL, it should be possible for init(),
finish(), ctrl(), etc to adjust state inside the ENGINE structures rather
than globally. This commit includes the dependant changes in the ENGINE
implementations.
Geoff Thorpe [Wed, 18 Apr 2001 03:03:16 +0000 (03:03 +0000)]
Some more tweaks to ENGINE code.
Previous changes permanently removed the commented-out old code for where
it was possible to create and use an ENGINE statically, and this code gets
rid of the ENGINE_FLAGS_MALLOCED flag that supported the distinction with
dynamically allocated ENGINEs. It also moves the area for ENGINE_FLAGS_***
values from engine_int.h to engine.h - because it should be possible to
declare ENGINEs just from declarations in exported headers.
Geoff Thorpe [Wed, 18 Apr 2001 02:01:36 +0000 (02:01 +0000)]
Some more tweaks to ENGINE code.
* Constify the get/set functions, and add some that functions were missing.
* Add a new 'ENGINE_cpy()' function that will produce a new ENGINE based
copied from an original (except for the references, ie. the new copy will
be like an ENGINE returned from 'ENGINE_new()' - a structural reference).
* Removed the "null parameter" checking in the get/set functions - it is
legitimate to set NULL values as a way of *changing* an ENGINE (ie.
removing a handler that previously existed). Also, passing a NULL pointer
for an ENGINE is obviously wrong for these functions, so don't bother
checking for it. The result is a number of error codes and strings could
be removed.
Geoff Thorpe [Wed, 18 Apr 2001 01:07:28 +0000 (01:07 +0000)]
Structural references should never be decremented directly - so leave that
to ENGINE_free(). Also, remove "#if 0" code that has no useful future.
Geoff Thorpe [Wed, 18 Apr 2001 00:43:23 +0000 (00:43 +0000)]
This moves string constants out of vendor headers and into C files.
Geoff Thorpe [Tue, 17 Apr 2001 23:53:58 +0000 (23:53 +0000)]
'make update'
Lutz Jänicke [Tue, 17 Apr 2001 13:18:56 +0000 (13:18 +0000)]
Clarify request of client certificates. This is a FAQ.
Ben Laurie [Mon, 16 Apr 2001 03:00:57 +0000 (03:00 +0000)]
Fix warning.
Lutz Jänicke [Sat, 14 Apr 2001 14:50:02 +0000 (14:50 +0000)]
Constify (Jason Molenda <jason@molenda.com>)
Lutz Jänicke [Thu, 12 Apr 2001 21:11:31 +0000 (21:11 +0000)]
Missing link ("Greg Stark" <gstark@ethentica.com>)
Lutz Jänicke [Thu, 12 Apr 2001 16:02:34 +0000 (16:02 +0000)]
Fix wrong information with respect to CAs listed to the client
(follows from technical discussion with Amit Chopra <amitc@pspl.co.in>).
Bodo Möller [Thu, 12 Apr 2001 12:42:20 +0000 (12:42 +0000)]
update so that changes going into the 0.9.6 tree can be logged
Bodo Möller [Thu, 12 Apr 2001 12:03:41 +0000 (12:03 +0000)]
undo previous change ...
Bodo Möller [Thu, 12 Apr 2001 12:01:47 +0000 (12:01 +0000)]
update from 0.9.6a
Lutz Jänicke [Thu, 12 Apr 2001 11:45:42 +0000 (11:45 +0000)]
Typo (Jun-ichiro itojun Hagino <itojun@iijlab.net>)
Richard Levitte [Wed, 11 Apr 2001 14:14:54 +0000 (14:14 +0000)]
Correct typo.
Richard Levitte [Wed, 11 Apr 2001 14:11:55 +0000 (14:11 +0000)]
Add -keyform.
Richard Levitte [Wed, 11 Apr 2001 13:04:20 +0000 (13:04 +0000)]
Show an example of moving the emailAddress object from the subkect DN
to subjectAltName when signing a certificate.
Richard Levitte [Wed, 11 Apr 2001 12:55:06 +0000 (12:55 +0000)]
Make it possible to move the emailAddress object to the subjectAltName
extension instead of just copying it. That makes a certificate comply
even more with PKIX recommendations according to RFC 2459.
Bodo Möller [Wed, 11 Apr 2001 10:35:38 +0000 (10:35 +0000)]
Add information on 0.9.6a (in a form such that the list can be
verified by looking at 'diff -u ../openssl-0.9.6a/CHANGES CHANGES')
Richard Levitte [Wed, 11 Apr 2001 10:06:02 +0000 (10:06 +0000)]
NetBSD and OpenBSD use TOD as well
Bodo Möller [Tue, 10 Apr 2001 07:59:43 +0000 (07:59 +0000)]
Mention automatically queried EGD sockets (OpenSSL 0.9.7).
0.9.5 is obsolete, so we don't have to discuss its 'openssl rsa'
seeding bug.
Lutz Jänicke [Mon, 9 Apr 2001 16:01:38 +0000 (16:01 +0000)]
Some clarifications about $RANDFILE usage.
Lutz Jänicke [Mon, 9 Apr 2001 15:55:58 +0000 (15:55 +0000)]
OpenSSH 1.2.2p1 is dead and gone. Errors detecting the OpenSSL library
are however still common and are solved by checking config.log.
Richard Levitte [Mon, 9 Apr 2001 14:17:26 +0000 (14:17 +0000)]
Correct info in the FAQ.
Bodo Möller [Mon, 9 Apr 2001 09:28:24 +0000 (09:28 +0000)]
Adjust BN_mod_inverse algorithm selection according to experiments on
Ultra-Sparcs (both 32-bit and 64-bit compilations)
Bodo Möller [Mon, 9 Apr 2001 07:15:16 +0000 (07:15 +0000)]
update (0.9.6a)
Bodo Möller [Sun, 8 Apr 2001 18:47:23 +0000 (18:47 +0000)]
comment
Bodo Möller [Sun, 8 Apr 2001 18:41:35 +0000 (18:41 +0000)]
code documentation
Bodo Möller [Sun, 8 Apr 2001 18:23:44 +0000 (18:23 +0000)]
binary algorithm for modular inversion
Bodo Möller [Sun, 8 Apr 2001 18:22:53 +0000 (18:22 +0000)]
avoid '||' since Ultrix apparently doesn't understand it
Bodo Möller [Sun, 8 Apr 2001 13:49:45 +0000 (13:49 +0000)]
'||', '&&' and 'test -x' apparently don't work on Ultrix;
also 'test' appears to be available as '[' only in 'if' conditions.
Bodo Möller [Sun, 8 Apr 2001 13:47:51 +0000 (13:47 +0000)]
Avoid assert() in the library.
Lutz Jänicke [Sun, 8 Apr 2001 10:51:14 +0000 (10:51 +0000)]
Add forgotten "-passin" option to smime.c usage help.
Richard Levitte [Sun, 8 Apr 2001 05:41:42 +0000 (05:41 +0000)]
Resize a local buffer to accomodate the size requirements of AES.
Protect against future mistakes with an assert().
Richard Levitte [Sun, 8 Apr 2001 04:35:58 +0000 (04:35 +0000)]
Add the possibility to have AES removed in Windows as well.
Spotted by Harald Koch <chk@pobox.com>
Bodo Möller [Thu, 5 Apr 2001 11:40:16 +0000 (11:40 +0000)]
Don't use 'tt' uninitialized when reporting an error
(we don't have an ASN1_TEMPLATE to complain about at this stage,
so errtt == NULL should be OK)
Richard Levitte [Thu, 5 Apr 2001 10:19:12 +0000 (10:19 +0000)]
Fix couple of memory leaks in PKCS7_dataDecode().
(provided by Stephen)
Richard Levitte [Thu, 5 Apr 2001 10:09:53 +0000 (10:09 +0000)]
Unixware config.
Bodo Möller [Wed, 4 Apr 2001 16:26:31 +0000 (16:26 +0000)]
don't use shell functions
Richard Levitte [Wed, 4 Apr 2001 16:03:00 +0000 (16:03 +0000)]
Correct a typo. linux != linus.
Richard Levitte [Wed, 4 Apr 2001 15:50:30 +0000 (15:50 +0000)]
Incorporate some changes that make OpenSSL compilable in CygWin.
Richard Levitte [Wed, 4 Apr 2001 13:52:56 +0000 (13:52 +0000)]
Since vms.mar handles 32-bit integers, do not use it on Alpha, that's
just a slowdown.
Richard Levitte [Wed, 4 Apr 2001 13:51:35 +0000 (13:51 +0000)]
OpenVMS/Alpha should use 64 bits. If nothing else, there's
performance to gain.
Richard Levitte [Wed, 4 Apr 2001 04:24:24 +0000 (04:24 +0000)]
Make do_bsd-gcc-shared depend on do_gnu-shared instead of the non-existent linux-shared
Bodo Möller [Tue, 3 Apr 2001 14:03:47 +0000 (14:03 +0000)]
Fix warnings.
Bodo Möller [Tue, 3 Apr 2001 14:03:19 +0000 (14:03 +0000)]
Make sure OPENSSL_SYS_... is defined when we need it.
Bodo Möller [Tue, 3 Apr 2001 13:50:30 +0000 (13:50 +0000)]
This change should be suitable as a workaround for the Solaris x86
compiler bug reported in <
01032110293775.22278@weba3.iname.net>
(the '++seq[i]' condition is evaluated as 256 rather than 0
when the previous value is 255).
Richard Levitte [Tue, 3 Apr 2001 09:42:36 +0000 (09:42 +0000)]
Plug a memory leak. Spotted by "Shijin" <shijin@comex.com>
Richard Levitte [Tue, 3 Apr 2001 09:02:07 +0000 (09:02 +0000)]
Reports on Windows, DG-UX and older OpenVMS.
Richard Levitte [Tue, 3 Apr 2001 08:31:39 +0000 (08:31 +0000)]
libfisdef.h and LIB do not exist on older VMS versions
Richard Levitte [Tue, 3 Apr 2001 08:05:03 +0000 (08:05 +0000)]
Remove a typo in dgux-R4-gcc.
Geoff Thorpe [Mon, 2 Apr 2001 17:47:16 +0000 (17:47 +0000)]
ENGINE_load_[private|public]_key had error handling that could return
without releasing a lock. This is the same fix as applied to
OpenSSL-engine-0_9_6-stable, minus the ENGINE_ctrl() change - the HEAD
already had that fixed.
Geoff Thorpe [Mon, 2 Apr 2001 17:21:36 +0000 (17:21 +0000)]
Actually there were two error cases that could return without releasing the
lock - stupidly, my last change addressed only one of them.
Geoff Thorpe [Mon, 2 Apr 2001 17:06:36 +0000 (17:06 +0000)]
Don't return an error until the global lock is released.
Richard Levitte [Mon, 2 Apr 2001 14:39:20 +0000 (14:39 +0000)]
Reports on VMS.
Dr. Stephen Henson [Mon, 2 Apr 2001 00:59:19 +0000 (00:59 +0000)]
Rewrite CHOICE field setting code to properly handle
combine in CHOICE options.
This was causing d2i_DSAPublicKey() to misbehave.
Richard Levitte [Sun, 1 Apr 2001 15:18:35 +0000 (15:18 +0000)]
A few more reports.
Richard Levitte [Sat, 31 Mar 2001 14:03:09 +0000 (14:03 +0000)]
Note reports.
Bodo Möller [Sat, 31 Mar 2001 07:48:07 +0000 (07:48 +0000)]
avoid buffer overflow
Ulf Möller [Sat, 31 Mar 2001 01:23:10 +0000 (01:23 +0000)]
Note the Alpha asm change
Richard Levitte [Fri, 30 Mar 2001 21:43:06 +0000 (21:43 +0000)]
linux-elf verified.
Richard Levitte [Fri, 30 Mar 2001 20:54:12 +0000 (20:54 +0000)]
Beta 3 has been released and announced.
Bodo Möller [Fri, 30 Mar 2001 14:55:50 +0000 (14:55 +0000)]
this time *really* fix the /../ check ...
Bodo Möller [Fri, 30 Mar 2001 10:47:21 +0000 (10:47 +0000)]
For -WWW, fix test for ".." directory references (and avoid warning for
index -1).
Bodo Möller [Fri, 30 Mar 2001 10:46:15 +0000 (10:46 +0000)]
News for 0.9.6a.
Bodo Möller [Fri, 30 Mar 2001 09:19:18 +0000 (09:19 +0000)]
Fix bctest, and add a workaround that should solve the problem with
FreeBSD's /bin/sh.
Richard Levitte [Fri, 30 Mar 2001 07:26:54 +0000 (07:26 +0000)]
Complete the des_encrypt to des_encrypt1 rename in the main
development line as well.
Richard Levitte [Thu, 29 Mar 2001 20:30:23 +0000 (20:30 +0000)]
One des_encrypt to des_encrypt1 I forgot to commit...
Richard Levitte [Thu, 29 Mar 2001 15:15:10 +0000 (15:15 +0000)]
Stress the news about the name change.
Richard Levitte [Thu, 29 Mar 2001 10:49:27 +0000 (10:49 +0000)]
I forgot to rename des_encrypt to des_encrypt1 in libeay.num.
Richard Levitte [Thu, 29 Mar 2001 07:45:37 +0000 (07:45 +0000)]
Since there has been reports of clashes between OpenSSL's
des_encrypt() and des_encrypt() defined on some systems (Solaris and
Unixware and maybe others), we rename des_encrypt() to des_encrypt1().
This should have very little impact on external software unless
someone has written a mode of DES, since that's all des_encrypt() is
meant for.
Richard Levitte [Wed, 28 Mar 2001 13:36:13 +0000 (13:36 +0000)]
Add news section for OpenSSL 0.9.6a. Please add what's missing
Ulf Möller [Wed, 28 Mar 2001 05:10:38 +0000 (05:10 +0000)]
check CRT
Ulf Möller [Wed, 28 Mar 2001 04:56:58 +0000 (04:56 +0000)]
check CRT