Geoff Thorpe [Tue, 1 Aug 2000 12:22:14 +0000 (12:22 +0000)]
ENGINE_ctrl() had been insisting that the ENGINE supplied was already
initialised for use, but one of the useful things about ENGINE_ctrl()
is that it can be a useful way to provide settings that should be
used during initialisation. Instead, I've altered the code to insist
that the engine has a valid *structural* reference (rather than a
*functional* one).
Richard Levitte [Tue, 1 Aug 2000 12:21:46 +0000 (12:21 +0000)]
Merge from main trunk, conflicts resolved
Geoff Thorpe [Mon, 31 Jul 2000 15:05:30 +0000 (15:05 +0000)]
This commit takes care of a couple of things;
(a) a couple of typos in the source code
(b) adds a ctrl command and handling code to enable or disable the fork()
checking that CHIL can do when applications are calling fork() in
their application and using the library from multiple child processes
after the one initialisation.
(c) adds another ctrl command to prevent the initialisation of the CHIL
library from providing mutex-handling callbacks, even if the library
has suitable callbacks already available. This can simplify (and
optimise) applications that do not use multi-threading.
cvs2svn [Sun, 30 Jul 2000 01:28:00 +0000 (01:28 +0000)]
This commit was manufactured by cvs2svn to create branch 'BRANCH_engine'.
Dr. Stephen Henson [Sun, 30 Jul 2000 01:27:59 +0000 (01:27 +0000)]
Document the new DN printing options.
Change a few names to be more meaningful.
Fix typos in CA.pl docs.
Bodo Möller [Sat, 29 Jul 2000 19:27:20 +0000 (19:27 +0000)]
Document rollback issues.
Bodo Möller [Sat, 29 Jul 2000 18:50:41 +0000 (18:50 +0000)]
Fix SSL 2.0 rollback checking: The previous implementation of the
test was never triggered due to an off-by-one error.
In s23_clnt.c, don't use special rollback-attack detection padding
(RSA_SSLV23_PADDING) if SSL 2.0 is the only protocol enabled in the
client; similarly, in s23_srvr.c, don't do the rollback check if
SSL 2.0 is the only protocol enabled in the server.
Dr. Stephen Henson [Fri, 28 Jul 2000 01:58:15 +0000 (01:58 +0000)]
New ASN1_STRING_print_ex() and X509_NAME_print_ex()
functions. These are intended to be replacements
for the ancient ASN1_STRING_print() and X509_NAME_print()
functions.
The new functions support RFC2253 and various pretty
printing options. It is also possible to display
international characters if the terminal properly handles
UTF8 encoding (Linux seems to tolerate this if the
"unicode_start" script is run).
Still needs to be documented, integrated into other
utilities and extensively tested.
Richard Levitte [Thu, 27 Jul 2000 21:32:23 +0000 (21:32 +0000)]
There's a slight possibility that a is 0 in BN_sub_word(), and might
therefore have unallocated parts. Therefore, a check for the 0 case
is needed, resulting with the same thing as when a is negative.
Richard Levitte [Thu, 27 Jul 2000 21:17:14 +0000 (21:17 +0000)]
In the case where a < 0 and |a| < w, the result (assigned to a) from
BN_add_word becomes wrongly negative...
This was discovered by Darrel Hankerson <dhankers@cacr.math.uwaterloo.ca>
Richard Levitte [Thu, 27 Jul 2000 20:14:39 +0000 (20:14 +0000)]
Looks like Win32 builds do not define THREADS. However, they're still
supporting threads, which means that th assertion is supperbly
dangerous, so make sure it's not compiled under Win32, period.
Richard Levitte [Thu, 27 Jul 2000 17:28:25 +0000 (17:28 +0000)]
Add the possibility to get hexdumps of unprintable data when using
'openssl asn1parse'. As a side effect, the functions ASN1_parse_dump
and BIO_dump_indent are added.
Dr. Stephen Henson [Thu, 27 Jul 2000 01:27:22 +0000 (01:27 +0000)]
Fix a bug in the new i2d_{ENUMERATED,INTEGER} that
didn't recognise NULL to mean 'don't output anything'
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, 26 Jul 2000 16:53:58 +0000 (16:53 +0000)]
When data are written out in very small blocks (less than 3 bytes in
size) through the base64 filter, b64_write() messes up it's parameters
in such a way that instead of writing correct base64 output, the first
4 characters of that output is repeated over and over. This fix
corrects that problem.
Richard Levitte [Wed, 26 Jul 2000 08:32:00 +0000 (08:32 +0000)]
There's a deadlock when ssleay_rand_bytes is called the first time, since
it wants to stir the pool using ssleay_rand_add. This fix provides the
possibility to call ssleay_rand_add inside a locked state by simply telling
it not to do any locking through a static variable. This isn't the most
elegant way one could do this, but it does retain thread safety during the
stirring process.
Dr. Stephen Henson [Wed, 26 Jul 2000 01:39:23 +0000 (01:39 +0000)]
Fix warnings.
In crypto/err/err.c need to initialise p to
NULL in case thread_hash is NULL. Otherwise
p will be uninitialized.
Dr. Stephen Henson [Wed, 26 Jul 2000 01:18:37 +0000 (01:18 +0000)]
Make NEG_PUBKEY_BUG on by default.
ASN1_TIME fixes.
New function c2i_ASN1_OBJECT().
Richard Levitte [Wed, 26 Jul 2000 01:14:16 +0000 (01:14 +0000)]
Darrel Hankerson <dhankers@cacr.math.uwaterloo.ca> correctly discovered
that of the result pointer to bn_mul was the same as one of the two arguments,
That argument might have it's sign destroyed. He provided this fix.
Richard Levitte [Tue, 25 Jul 2000 16:56:39 +0000 (16:56 +0000)]
Avoid a race condition if another thread happens to remove the error
state at the same time.
Richard Levitte [Mon, 24 Jul 2000 20:50:21 +0000 (20:50 +0000)]
Add support for solaris shared libraries, currently just experimental
(there's no way to get it through configuration yet).
Richard Levitte [Mon, 24 Jul 2000 20:36:46 +0000 (20:36 +0000)]
Avoid loops, and make sure that it's possible to still build shared
libraries even if the "shared" configuration option wasn't chosen.
Richard Levitte [Mon, 24 Jul 2000 20:34:29 +0000 (20:34 +0000)]
This isn't entirely necessary if you do everything right from the
start, but can save you some trouble. Just ignore "shared" if it
comes up among the given options, at least for now...
Richard Levitte [Mon, 24 Jul 2000 10:02:47 +0000 (10:02 +0000)]
"make update"
Richard Levitte [Mon, 24 Jul 2000 09:57:02 +0000 (09:57 +0000)]
Add a note on installation under Win32.
Richard Levitte [Mon, 24 Jul 2000 07:01:57 +0000 (07:01 +0000)]
Show the running line count and definition cont in debug mode. That
has helped me a bit when I ran into trouble.
Ulf Möller [Fri, 21 Jul 2000 19:00:38 +0000 (19:00 +0000)]
Profiling option for mk1mf.pl
Bodo Möller [Fri, 21 Jul 2000 15:17:04 +0000 (15:17 +0000)]
crypto/err.c bugfix
Richard Levitte [Fri, 21 Jul 2000 15:08:53 +0000 (15:08 +0000)]
Redo and enhance the support for building shared libraries. Currently
there's support for building under Linux and True64 (using examples
from the programming manuals), including versioning that is currently
the same as OpenSSL versions but should really be a different series.
With this change, it's up to the users to decide if they want shared
libraries as well as the static ones. This decision now has to be
done at configuration time (well, not really, those who know what they
do can still do it the same way as before).
The OpenSSL programs (openssl and the test programs) are currently
always linked statically, but this may change in the future in a
configurable manner. The necessary makefile variables to enable this
are in place.
Also note that I have done absolutely nothing about the Windows target
to get something similar. On the other hand, DLLs are already the
default there, but without versioning, and I've no idea what the
possibilities for such a thing are there...
Bodo Möller [Fri, 21 Jul 2000 15:07:56 +0000 (15:07 +0000)]
Bugfix: use write locks, not just read locks
Richard Levitte [Fri, 21 Jul 2000 12:50:06 +0000 (12:50 +0000)]
We do PKCS8 as well
Ulf Möller [Fri, 21 Jul 2000 02:14:15 +0000 (02:14 +0000)]
oops.
Ulf Möller [Fri, 21 Jul 2000 01:13:26 +0000 (01:13 +0000)]
don't print debug output
Ulf Möller [Wed, 19 Jul 2000 21:43:23 +0000 (21:43 +0000)]
Move RNG initialization to RAND_poll(), and shared definitions to
rand_lcl.h
Ulf Möller [Wed, 19 Jul 2000 21:35:35 +0000 (21:35 +0000)]
Randomness polling function for Win9x.
Bodo Möller [Sat, 15 Jul 2000 18:10:35 +0000 (18:10 +0000)]
Document -purpose option in usage string.
Dr. Stephen Henson [Wed, 12 Jul 2000 23:55:30 +0000 (23:55 +0000)]
Make req seed the PRNG if signing with
an already existing DSA key.
Document the new smime options.
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)
Richard Levitte [Tue, 11 Jul 2000 21:44:53 +0000 (21:44 +0000)]
FAQ about ar "missing" on Solaris.
Bodo Möller [Tue, 11 Jul 2000 20:35:45 +0000 (20:35 +0000)]
Add an early reference to BN_CTX_new so that the usage of BN_CTX_start
is easier to grasp.
Dr. Stephen Henson [Mon, 10 Jul 2000 18:33:05 +0000 (18:33 +0000)]
Fix some typose in the i2d/d2i functions that
call the i2c/c2i (they were not using the
content length for the headers).
Fix ASN1 long form tag encoding. This never
worked but it was never tested since it is
only used for tags > 30.
New options to smime program to allow the
PKCS#7 format to be specified and the content
supplied externally.
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...