Geoff Thorpe [Wed, 26 Jul 2000 22:11:13 +0000 (22:11 +0000)]
Try to catch some memory leaks in the error case.
Richard Levitte [Wed, 12 Jul 2000 16:34:34 +0000 (16:34 +0000)]
Merge from main, all conflicts resolved.
(I do this far too seldom...)
Richard Levitte [Wed, 12 Jul 2000 15:14:12 +0000 (15:14 +0000)]
Avoid the conflict between () and (void)
cvs2svn [Sat, 8 Jul 2000 07:56:13 +0000 (07:56 +0000)]
This commit was manufactured by cvs2svn to create branch 'BRANCH_engine'.
Richard Levitte [Sat, 8 Jul 2000 07:56:12 +0000 (07:56 +0000)]
Corrected small bug that could add ',L' when it shouldn't
Richard Levitte [Fri, 7 Jul 2000 17:13:54 +0000 (17:13 +0000)]
Add the possibility to use an engine as random byte generator.
Richard Levitte [Fri, 7 Jul 2000 17:08:10 +0000 (17:08 +0000)]
Cut'n'paste error corrected
Richard Levitte [Fri, 7 Jul 2000 17:04:44 +0000 (17:04 +0000)]
Handle the hwcrhk private key with a bit more consistency. Also, for the
random numbers generator, always return status 1 since the entropy is
already presumably there...
Richard Levitte [Fri, 7 Jul 2000 17:02:21 +0000 (17:02 +0000)]
Some error checking when loading keys
Richard Levitte [Fri, 7 Jul 2000 17:00:36 +0000 (17:00 +0000)]
API change.
Richard Levitte [Fri, 7 Jul 2000 16:57:16 +0000 (16:57 +0000)]
Change the overall RAND routines to actually make use of engines.
This seems to work, but I'm a little unsure that I got it all right,
and would like this to be reviewed.
Dr. Stephen Henson [Fri, 7 Jul 2000 13:24:36 +0000 (13:24 +0000)]
New ASN1 functions that just deal with
content octets, not tag+length.
Richard Levitte [Thu, 6 Jul 2000 18:40:10 +0000 (18:40 +0000)]
Add the possibility to load prvate and public keys from an engine and
implement it for nCipher hardware. The interface in itself should be
clear enough, but the nCipher implementation is currently not the
best when it comes to getting a passphrase from the user. However,
getting it better is a little hard until a better user interaction
method is create.
Also, use the possibility in req, so we can start to create CSR's with
keys from the nForce box.
WARNING: I've made *no* tests yet, mostly because I didn't implement
this on the machine where I have an nForce box to play with. All I
know is that it compiles cleanly on Linux...
Richard Levitte [Wed, 5 Jul 2000 17:46:58 +0000 (17:46 +0000)]
More experiments show that you can set your data segment size soft
limit higher and thereby get through compilation of sha_dgst.c.
Richard Levitte [Wed, 5 Jul 2000 16:39:04 +0000 (16:39 +0000)]
Change the FAQ entry a bit, giving the details as I observed them.
Richard Levitte [Wed, 5 Jul 2000 16:00:18 +0000 (16:00 +0000)]
Don't initialise the pointers to mutex functions directly in the structure.
This is correctly taken care of by hwcrhk_init(). While we're at it, give
this engine the official name of the library used (CHIL, for Cryptographic
Hardware Interface Library).
Richard Levitte [Wed, 5 Jul 2000 02:52:47 +0000 (02:52 +0000)]
Document the change.
Richard Levitte [Wed, 5 Jul 2000 02:45:36 +0000 (02:45 +0000)]
I got sick and tired of having to keep track of NIDs when such a thing
could be done automagically, much like the numbering in libeay.num and
ssleay.num. The solution works as follows:
- New object identifiers are inserted in objects.txt, following the
syntax given in objects.README.
- objects.pl is used to process obj_mac.num and create a new
obj_mac.h.
- obj_dat.pl is used to create a new obj_dat.h, using the data in
obj_mac.h.
This is currently kind of a hack, and the perl code in objects.pl
isn't very elegant, but it works as I intended. The simplest way to
check that it worked correctly is to look in obj_dat.h and check the
array nid_objs and make sure the objects haven't moved around (this is
important!). Additions are OK, as well as consistent name changes.
Richard Levitte [Wed, 5 Jul 2000 02:23:55 +0000 (02:23 +0000)]
Beautification
Richard Levitte [Tue, 4 Jul 2000 14:02:36 +0000 (14:02 +0000)]
Add a blurb on how to solve the problem with failing compiltaion of sha_dgst.c on Alpha True64 Unix
Ulf Möller [Mon, 3 Jul 2000 17:26:51 +0000 (17:26 +0000)]
Add PRNGD link.
Dr. Stephen Henson [Sun, 2 Jul 2000 21:11:11 +0000 (21:11 +0000)]
Update STATUS.
Bodo Möller [Sun, 2 Jul 2000 19:42:19 +0000 (19:42 +0000)]
Return bignum '0' when BN_rand is asked for a 0 bit random number.
Bodo Möller [Sun, 2 Jul 2000 19:40:44 +0000 (19:40 +0000)]
Fix code structure (if ... else if ... where both parts
may be disabled by preprocessor symbols)
Bodo Möller [Sun, 2 Jul 2000 18:16:38 +0000 (18:16 +0000)]
Don't dereference NULL pointers.
Submitted by: bowe@chip.ma.certco.com
Ben Laurie [Sat, 1 Jul 2000 16:30:27 +0000 (16:30 +0000)]
Don't let top go below zero!
Ben Laurie [Sat, 1 Jul 2000 16:25:20 +0000 (16:25 +0000)]
Use up-to-date functions.
Richard Levitte [Fri, 30 Jun 2000 17:52:33 +0000 (17:52 +0000)]
Merge in the latest changes from the main trunk, and extra in apps/speed.c
Richard Levitte [Fri, 30 Jun 2000 17:16:46 +0000 (17:16 +0000)]
Give the user the option to measure real time instead of user CPU time.
Richard Levitte [Fri, 30 Jun 2000 15:58:37 +0000 (15:58 +0000)]
Check for missing engine name, and also, do not count up the number of given algorithms when an engine is given
Richard Levitte [Fri, 30 Jun 2000 15:54:48 +0000 (15:54 +0000)]
p_CSwift_AttachKeyParam actually returns more than one kind of error. Detect the input size error, treat any that are not specially checked as 'request failed', not as 'provide parameters', and for those, add the actual status code to the error message
Richard Levitte [Fri, 30 Jun 2000 15:52:07 +0000 (15:52 +0000)]
Cryptoswitch actually has a few more statuses than SW_OK. Let's provide the possibility for a better granularity in error checking
Richard Levitte [Fri, 30 Jun 2000 11:02:02 +0000 (11:02 +0000)]
Make it possible to turn off compilation of hardware support through
the configuration parameter 'no-hw'.
Richard Levitte [Thu, 29 Jun 2000 21:26:46 +0000 (21:26 +0000)]
`make update'
Richard Levitte [Thu, 29 Jun 2000 21:20:14 +0000 (21:20 +0000)]
It makes much more sense and is much more consistent with the rest of
OpenSSL to have to opt out hardware support instead of having to opt
it in. And since the hardware support modules are self-contained and
actually check that the vendor stuff is loadable, it still works as
expected, or at least, so I think...
Richard Levitte [Thu, 29 Jun 2000 16:33:59 +0000 (16:33 +0000)]
Give the programmer of extra engines the possibility to actually make
it functional :-).
Richard Levitte [Thu, 29 Jun 2000 16:32:34 +0000 (16:32 +0000)]
Make the use of logstream thread-safe.
Richard Levitte [Thu, 29 Jun 2000 16:17:28 +0000 (16:17 +0000)]
Use the new control to add a log stream.
Richard Levitte [Thu, 29 Jun 2000 16:16:50 +0000 (16:16 +0000)]
When closing the hwcrhk engine, also remove the reference to the
logstream.
Richard Levitte [Thu, 29 Jun 2000 14:26:07 +0000 (14:26 +0000)]
Add the possibility to control some engine internals.
Richard Levitte [Thu, 29 Jun 2000 13:00:07 +0000 (13:00 +0000)]
Rename 'hwcrhk' to 'ncipher' in all public symbols. Redo the logging function so it takes a BIO. Make module-local functions static
Richard Levitte [Thu, 29 Jun 2000 12:58:52 +0000 (12:58 +0000)]
The error ENGINE_R_HWCRYPTOHOOK_REPORTS should never have been used
Richard Levitte [Wed, 28 Jun 2000 16:47:45 +0000 (16:47 +0000)]
Undo the changes I just made. I'm not sure what I was thinking of.
The message to everyone is "Do not hack OpenSSL when stressed"...
Richard Levitte [Wed, 28 Jun 2000 16:24:29 +0000 (16:24 +0000)]
Document my latest changes.
Richard Levitte [Wed, 28 Jun 2000 16:10:56 +0000 (16:10 +0000)]
Make it possible for users of the openssl applications to specify the
EGD should be used as seeding input, and where the named socket is.
Richard Levitte [Wed, 28 Jun 2000 16:09:54 +0000 (16:09 +0000)]
Make it possible for people to tell where the EGD socket is through
the RANDEGD environment variable.
Richard Levitte [Wed, 28 Jun 2000 14:32:12 +0000 (14:32 +0000)]
That's it, I've seen questions about this one time too many for
today. Time to add extra info so the poor users know where to
go with their troubles.
Richard Levitte [Wed, 28 Jun 2000 10:33:37 +0000 (10:33 +0000)]
Make sure we use /usr/sbin/sysctl, especially since /usr/sbin is not
always in the users $PATH...
Richard Levitte [Mon, 26 Jun 2000 23:15:16 +0000 (23:15 +0000)]
Rename 'hwcrhk' to 'ncipher' in all public symbols
Richard Levitte [Mon, 26 Jun 2000 16:12:01 +0000 (16:12 +0000)]
Added references to RFCs 1421 to 1424, that describe PEM.
Suggested by Randolph Bentson <bentson@grieg.holmsjoen.com>
Geoff Thorpe [Mon, 26 Jun 2000 15:58:33 +0000 (15:58 +0000)]
Strange how one line can make a world of difference, particularly when
the one line turns an error return value into a success return value.
:-) "openssl speed -engine hwcrhk rsa1024" now passes through ok.
Geoff Thorpe [Mon, 26 Jun 2000 13:36:04 +0000 (13:36 +0000)]
Get rid of those annoying "?"s from cvs update :-)
Richard Levitte [Fri, 23 Jun 2000 22:24:53 +0000 (22:24 +0000)]
Things merged from the main trunk, among others some well needed Win32
fixes.
Bodo Möller [Fri, 23 Jun 2000 18:00:16 +0000 (18:00 +0000)]
BSD-style MD5-based password algorithm in 'openssl passwd'.
(Still needs to be tested against the original using sample passwords
of different length.)
Geoff Thorpe [Fri, 23 Jun 2000 17:29:05 +0000 (17:29 +0000)]
Steve fixed up some strange errors introduced into dso_win32.c, and I'm
just converting some spaces to tabs from his fix. :-)
Bodo Möller [Fri, 23 Jun 2000 08:10:28 +0000 (08:10 +0000)]
Actually comment out the parts of BN_MOD_MUL_WORD that I inteded to
comment out in the previous commit
Bodo Möller [Fri, 23 Jun 2000 05:51:37 +0000 (05:51 +0000)]
In BN_mod_exp_mont_word, avoid one application of BN_MOD_MUL_WORD,
and for small 'a' also a couple of calls to
BN_mod_mul_montgomery(r, r, r, ...).
Richard Levitte [Thu, 22 Jun 2000 22:07:27 +0000 (22:07 +0000)]
Move add_oid_section to apps.c, so it can be shared by several
applications. Also, have it and the certificate and key loading
functions take a BIO argument for error output.
Richard Levitte [Thu, 22 Jun 2000 21:17:46 +0000 (21:17 +0000)]
Document the change in req.
Richard Levitte [Thu, 22 Jun 2000 21:16:01 +0000 (21:16 +0000)]
Change req so the new parameter '-rand file' uses the given file in
addition to the file given through the RANDFILE option or environment
variable.
Richard Levitte [Thu, 22 Jun 2000 18:02:23 +0000 (18:02 +0000)]
On case-insensitive systems, the 'install' target gets matched against
the 'INSTALL' file, which means that 9 times of 10, the BlowFish
headers won't get installed. Avoid this in the same way it's done in
crypto/des/Makefile.ssl, where someone apparently has thought of this...
Richard Levitte [Thu, 22 Jun 2000 17:42:50 +0000 (17:42 +0000)]
Move the certificate and key loading functions to apps.c, so they can
be shared by several applications.
Richard Levitte [Thu, 22 Jun 2000 09:59:21 +0000 (09:59 +0000)]
Forgot the self-documentation within req.
Richard Levitte [Thu, 22 Jun 2000 09:19:59 +0000 (09:19 +0000)]
Document the change in req.
Richard Levitte [Thu, 22 Jun 2000 09:13:43 +0000 (09:13 +0000)]
Small change to accept the command line parameter '-rand file'. This
parameter takes precedence over the RANDFILE option in the
configuration file.
Dr. Stephen Henson [Thu, 22 Jun 2000 00:34:27 +0000 (00:34 +0000)]
Change mkstack.pl so it now sorts each group
into lexical order. Previously it depended on
the order of files in the directory.
This should now mean that all systems will
agree on the order of safestack.h and will
not change it needlessly and avoid massive
needless commits to safestack.h in future.
It wont however avoid this one :-(
Ulf Möller [Wed, 21 Jun 2000 21:20:46 +0000 (21:20 +0000)]
use faster version
Geoff Thorpe [Wed, 21 Jun 2000 14:12:25 +0000 (14:12 +0000)]
* This adds some checking to the 'dlfcn' DSO_METHOD that at least lets
it cope with OpenBSD which doesn't understand "RTLD_NOW".
* Added the dso_scheme config string entry for OpenBSD-x86 to give it
DSO support.
* 'make update' that has also absorbed some of Steve's mkstack changes
for the ASN-related macros.
Dr. Stephen Henson [Wed, 21 Jun 2000 02:25:30 +0000 (02:25 +0000)]
Fixes for Win32 build.
This is mostly a work around for the old VC++ problem
that it treats func() as func(void).
Various prototypes had been added to 'compare' function
pointers that triggered this. This could be fixed by removing
the prototype, adding function pointer casts to every call or
changing the passed function to use the expected arguments.
I mostly did the latter.
The mkdef.pl script was modified to remove the typesafe
functions which no longer exist.
Oh and some functions called OPENSSL_freeLibrary() were
changed back to FreeLibrary(), wonder how that happened :-)
Dr. Stephen Henson [Tue, 20 Jun 2000 18:45:28 +0000 (18:45 +0000)]
Handle ASN1_SET_OF and PKCS12_STACK_OF using function
casts in the same way as STACK_OF.
Geoff Thorpe [Tue, 20 Jun 2000 14:12:35 +0000 (14:12 +0000)]
'make update' in the engine branch.
Geoff Thorpe [Tue, 20 Jun 2000 14:06:06 +0000 (14:06 +0000)]
'make update'
Geoff Thorpe [Tue, 20 Jun 2000 13:59:48 +0000 (13:59 +0000)]
Now that the branch has been updated with the DSO changes in the head,
correct the DSO-dependant code in the engine code.
Bodo Möller [Mon, 19 Jun 2000 17:38:22 +0000 (17:38 +0000)]
Avoid unnecessary links and incomplete program file in apps/.
Richard Levitte [Mon, 19 Jun 2000 17:35:39 +0000 (17:35 +0000)]
Merge ... stuff from main trunk, all conflicts resolved, and addition
of dynamic lock support in the nCipher code.
Richard Levitte [Mon, 19 Jun 2000 17:28:22 +0000 (17:28 +0000)]
Merge ... stuff from main trunk, all conflicts resolved, and addition
of dynamic lock support in the nCipher code.
Richard Levitte [Mon, 19 Jun 2000 16:51:41 +0000 (16:51 +0000)]
'make update'
Richard Levitte [Mon, 19 Jun 2000 16:38:27 +0000 (16:38 +0000)]
Add the missing callback pointer handling functions.
Also, make sure empty slots of the dynamic lock stack are used.
Actually, I'm not really sure this is the right thing to do, and may
remove it, with an endlessly growing stack as result...
Richard Levitte [Mon, 19 Jun 2000 15:28:36 +0000 (15:28 +0000)]
The dynamic thread API changed, and so does the documentation.
Richard Levitte [Mon, 19 Jun 2000 14:44:57 +0000 (14:44 +0000)]
Merge ... stuff from main trunk, all conflicts resolved.
Bodo Möller [Mon, 19 Jun 2000 13:53:15 +0000 (13:53 +0000)]
Add OPENSSL_free at the end of CRYPTO_destroy_dynlockid.
Richard Levitte [Mon, 19 Jun 2000 13:38:09 +0000 (13:38 +0000)]
Redo the support for dynamic locks. First of all, it was terribly
insecure, so a static lock is added to isolate the sensitive parts.
Also, to avoid one thread freeing a lock that is used by another, a
reference counter is added.
Richard Levitte [Sun, 18 Jun 2000 16:07:41 +0000 (16:07 +0000)]
With the new stack hack macros, there's no need to shorten the names
any more.
Richard Levitte [Sun, 18 Jun 2000 16:06:44 +0000 (16:06 +0000)]
Modifications for VMS.
Richard Levitte [Sun, 18 Jun 2000 15:59:04 +0000 (15:59 +0000)]
Add support for dynamically created and destroyed mutexes. This will
be needed in some ENGINE code, and might serve elsewhere as well.
Note that it's implemented in such a way that the locking itself is
done through the same CRYPTO_lock function as the static locks.
WARNING: This is currently experimental and untested code (it will get
tested soon, though :-)).
Richard Levitte [Sun, 18 Jun 2000 14:06:40 +0000 (14:06 +0000)]
First of all, with the current macros, we should never get any
type-specific stack function. Second, even when we don't build any of
those functions, DECLARE_STACK_OF lines should not find themselves
into $def.
Bodo Möller [Sat, 17 Jun 2000 23:41:44 +0000 (23:41 +0000)]
Using speaking "variable" names in macros so that e.g. grepping for
sk_whatever_insert and sk_whatever_set immediately reveals the subtle
difference in parameter order.
Change mkstack.pl so that safestack.h is not rewritten when
nothing has changed.
Dr. Stephen Henson [Fri, 16 Jun 2000 23:29:26 +0000 (23:29 +0000)]
Safe stack reorganisation in terms of function casts.
After some messing around this seems to work but needs
a few more tests. Working out the syntax for sk_set_cmp_func()
(cast it to a function that itself returns a function pointer)
was painful :-(
Needs some testing to see what other compilers think of this
syntax.
Also needs similar stuff for ASN1_SET_OF etc etc.
Richard Levitte [Fri, 16 Jun 2000 15:25:41 +0000 (15:25 +0000)]
Change to have a single library that works on both Win9x and WinNT.
As far as I understand, it still needs to be compiled on NT...
Contributed by Arne Ansper <arne@ats.cyber.ee>
Bodo Möller [Fri, 16 Jun 2000 14:35:05 +0000 (14:35 +0000)]
typo
Bodo Möller [Fri, 16 Jun 2000 14:29:51 +0000 (14:29 +0000)]
In EVP_BytesToKey, replace explicit "8" by "PKCS5_SALT_LEN".
Bodo Möller [Fri, 16 Jun 2000 14:24:37 +0000 (14:24 +0000)]
There are compilers that complain if a variable has the same name as a
label. (Reported by Alexei Bakharevski.)
Geoff Thorpe [Fri, 16 Jun 2000 10:45:36 +0000 (10:45 +0000)]
Currently the DSO_METHOD interface has one entry point to bind all
"symbols" including functions (of all prototypes( and variables. Whilst
casting any function type to another violates ANSI C (I believe), it is
a necessary evil in shared-library APIs. However, it is quite
conceivable that functions in general and data symbols could very well
be represented differently to each other on some systems, as Bodo said;
> Since the function/object distinction is a lot more likely to be
> important on real-life platforms supporting DSO *and* it can be quite
> easily done *and* it will silence compilers that don't like
> assignments from void pointers to function pointer variables, why
> not do it?
I agree. So this change splits the "dso_bind" handler in DSO_METHOD
into "dso_bind_var" and "dso_bind_func". Similarly the exported
function DSO_bind() has been split in two. I've also put together
changes for the various DSO_METHOD implementations, but so far only
DSO_dlfcn() has been tested. BTW: The prototype for dso_bind had been
a bit strange so I've taken the opportunity to change its shape (in
both variations).
Also, the README has been updated - particularly with a note about
using customised native name-translation for shared libraries (and that
you can't do it yet).
Dr. Stephen Henson [Thu, 15 Jun 2000 23:48:05 +0000 (23:48 +0000)]
Add support for the modified SGC key format used in IIS.
Richard Levitte [Thu, 15 Jun 2000 20:57:25 +0000 (20:57 +0000)]
This seems to work better with enums...
Geoff Thorpe [Thu, 15 Jun 2000 17:50:08 +0000 (17:50 +0000)]
The README for the engine code was quite out of date. Hopefully it is
now less so.
Geoff Thorpe [Thu, 15 Jun 2000 17:32:42 +0000 (17:32 +0000)]
(1) In the atalla initialisation, use the test from Ben's earlier
Atalla code to see if the accelerator is running.
(2) Turn some spaces into tabs.
Geoff Thorpe [Thu, 15 Jun 2000 17:14:45 +0000 (17:14 +0000)]
Ah, ok so my problem had been typographical rather than philosophical.
It's cute to observe that Atalla having no RSA-specific form of mod_exp
causes a DSA server to achieve about 6 times as many signatures per
second than an RSA server. :-)
Richard Levitte [Thu, 15 Jun 2000 11:10:15 +0000 (11:10 +0000)]
Make sure that bs is not getting free'd again.
Reported by Robert Eiglmaier <robert.eiglmaier@ixos.de>
Geoff Thorpe [Wed, 14 Jun 2000 17:54:28 +0000 (17:54 +0000)]
Little typo.