Ulf Möller [Tue, 5 Dec 2000 03:51:46 +0000 (03:51 +0000)]
PERLASM - the wierdest programming language since Intercal.
add debug output facilities.
Ulf Möller [Tue, 5 Dec 2000 02:00:40 +0000 (02:00 +0000)]
Use assert as in the rest of the BN library.
Bodo Möller [Mon, 4 Dec 2000 19:04:55 +0000 (19:04 +0000)]
Improve formatting.
Richard Levitte [Mon, 4 Dec 2000 17:17:03 +0000 (17:17 +0000)]
It's completely unnecessary to add a compression algorithm that is
really undefined.
Spotted by Jeffrey Altman <jaltman@columbia.edu>
Richard Levitte [Mon, 4 Dec 2000 17:11:59 +0000 (17:11 +0000)]
Remove the last bn_wexpand()s that made us break constness. Of
course, that means we need to handle the cases where the two arrays to
bn_mul_recursive() and bn_mul_part_recursive() differ in size.
I haven't yet changed the comments that describe bn_mul_recursive()
and bn_mul_part_recursive(). I want this to be tested by more people
before I consider this change final. Please test away!
Bodo Möller [Mon, 4 Dec 2000 09:24:54 +0000 (09:24 +0000)]
Change error message to "bignum too long"
Geoff Thorpe [Mon, 4 Dec 2000 04:54:59 +0000 (04:54 +0000)]
Sync up with a minor change in lhash.h
Geoff Thorpe [Mon, 4 Dec 2000 04:52:38 +0000 (04:52 +0000)]
ANSI C doesn't allow trailing semi-colons after a function's closing brace
so these macros probably shouldn't be used like that at all. So, this
change removes the misleading comment and also adds an implicit trailing
semi-colon to the DECLARE macros so they too don't require one.
Geoff Thorpe [Mon, 4 Dec 2000 04:35:04 +0000 (04:35 +0000)]
Update the documentation to the current state of the LHASH changes. There
will probably be more when the lh_doall[_arg] callbacks are similarly
tidied up, but this 'pod' should now be current.
Geoff Thorpe [Mon, 4 Dec 2000 03:35:35 +0000 (03:35 +0000)]
Make a note of the LHASH changes.
Geoff Thorpe [Mon, 4 Dec 2000 03:02:44 +0000 (03:02 +0000)]
Make the remaining LHASH macro changes. This should leave no remaining
cases of function pointer casting in lh_new() calls - and leave only the
lh_doall and lh_doall_arg cases to be finished.
Ben Laurie [Sun, 3 Dec 2000 10:04:22 +0000 (10:04 +0000)]
Fix warnings.
Bodo Möller [Sun, 3 Dec 2000 09:55:08 +0000 (09:55 +0000)]
include <limits.h>
Bodo Möller [Sun, 3 Dec 2000 09:39:04 +0000 (09:39 +0000)]
Don't allow BIGNUMs to become so large that computations with dmax
might overflow.
Geoff Thorpe [Sat, 2 Dec 2000 23:16:54 +0000 (23:16 +0000)]
Use the new LHASH macros to declare type-safe wrapper functions that can
be used as the hash/compare callbacks without function pointer casting.
For now, this is just happening in the apps/ directory whilst a few people
check the approach. The rest of the library will be moved across to the
same idea if there's no problems with this.
Geoff Thorpe [Sat, 2 Dec 2000 23:08:59 +0000 (23:08 +0000)]
Next step in tidying up the LHASH code. This commit defines DECLARE and
IMPLEMENT macros for defining wrapper functions for "hash" and "cmp" callbacks
that are specific to the underlying item type in a hash-table. This prevents
function pointer casting altogether, and also provides some type-safety
because the macro does per-variable casting from the (void *) type used in
LHASH itself to the type declared in the macro - and if that doesn't match the
prototype expected by the "hash" or "cmp" function then a compiler error will
result.
NB: IMPLEMENT macros are not required unless predeclared forms are required
(either in a header file, or further up in a C file than the implementation
needs to be). The DECLARE macros must occur after the type-specific hash/cmp
callbacks are declared. Also, the IMPLEMENT and DECLARE macros are such that
they can be prefixed with "static" if desired and a trailing semi-colon should
be appended (making it look more like a regular declaration and easier on
auto-formatting text-editors too).
Now that these macros are defined, I will next be commiting changes to a
number of places in the library where the casting was doing bad things. After
that, the final step will be to make the analogous changes for the lh_doall
and lh_doall_arg functions (more specifically, their callback parameters).
Richard Levitte [Sat, 2 Dec 2000 21:16:13 +0000 (21:16 +0000)]
Add a comment to explain the purpose of bn_cmp_part_words().
Ulf Möller [Sat, 2 Dec 2000 20:51:47 +0000 (20:51 +0000)]
last commit was wrong. Now it works. :)
Ulf Möller [Sat, 2 Dec 2000 19:34:42 +0000 (19:34 +0000)]
argl
Ulf Möller [Sat, 2 Dec 2000 18:50:31 +0000 (18:50 +0000)]
remember the problem with ftime()
Ulf Möller [Sat, 2 Dec 2000 16:20:04 +0000 (16:20 +0000)]
forgot to remove the loop variable
Ulf Möller [Sat, 2 Dec 2000 16:13:27 +0000 (16:13 +0000)]
Loops like this one:
if (bp == NULL)
for (j=0; j<10000; j++)
BN_add(&c,&a,&b);
seem to be pretty useless, and bp never is NULL anyway.
Ulf Möller [Sat, 2 Dec 2000 08:11:55 +0000 (08:11 +0000)]
Move the rijndael "test" to the bf and cast tests.
Ulf Möller [Sat, 2 Dec 2000 07:50:30 +0000 (07:50 +0000)]
Note the bntest change.
The *_part_words functions are not static.
Ulf Möller [Sat, 2 Dec 2000 07:32:57 +0000 (07:32 +0000)]
New function BN_bntest_rand() to detect more BN library bugs.
The bn_cmp_part_words bug was only caught in the BN_mod_mul() test,
not in the BN_mul() test, so apparently the choice of parameters in
some cases is bad.
Ulf Möller [Sat, 2 Dec 2000 07:28:43 +0000 (07:28 +0000)]
Fix bn_cmp_part_words() and move it to bn_lib.c.
Ulf Möller [Sat, 2 Dec 2000 07:20:47 +0000 (07:20 +0000)]
remove unused static function
Geoff Thorpe [Fri, 1 Dec 2000 20:31:52 +0000 (20:31 +0000)]
First step in tidying up the LHASH code. The callback prototypes (and
casts) used in the lhash code are about as horrible and evil as they can
be. For starters, the callback prototypes contain empty parameter lists.
Yuck.
This first change defines clearer prototypes - including "typedef"'d
function pointer types to use as "hash" and "compare" callbacks, as well as
the callbacks passed to the lh_doall and lh_doall_arg iteration functions.
Now at least more explicit (and clear) casting is required in all of the
dependant code - and that should be included in this commit.
The next step will be to hunt down and obliterate some of the function
pointer casting being used when it's not necessary - a particularly evil
variant exists in the implementation of lh_doall.
Richard Levitte [Fri, 1 Dec 2000 17:44:33 +0000 (17:44 +0000)]
Write a first HOWTO on how to create certificates. This is currently
a draft.
Richard Levitte [Fri, 1 Dec 2000 16:49:53 +0000 (16:49 +0000)]
Correct a mail address...
Richard Levitte [Fri, 1 Dec 2000 14:40:45 +0000 (14:40 +0000)]
Document the addition of Kerberos stuff.
Richard Levitte [Fri, 1 Dec 2000 14:33:19 +0000 (14:33 +0000)]
Typo corrected.
Bodo Möller [Fri, 1 Dec 2000 09:41:21 +0000 (09:41 +0000)]
functionality for BN_mod_sqrt timings
Bodo Möller [Fri, 1 Dec 2000 08:48:42 +0000 (08:48 +0000)]
"make depend"
Bodo Möller [Fri, 1 Dec 2000 08:46:47 +0000 (08:46 +0000)]
update
Ulf Möller [Fri, 1 Dec 2000 02:47:50 +0000 (02:47 +0000)]
GPL FAQ.
I hope this adequately summarizes the results of all those disussions.
Ulf Möller [Fri, 1 Dec 2000 01:53:08 +0000 (01:53 +0000)]
Borland C fix.
Ulf Möller [Fri, 1 Dec 2000 01:51:04 +0000 (01:51 +0000)]
typo
Richard Levitte [Fri, 1 Dec 2000 01:11:54 +0000 (01:11 +0000)]
Recognise Darwin as well. For now, have it do exactly the same thing as for Rhapsody
Bodo Möller [Thu, 30 Nov 2000 23:41:58 +0000 (23:41 +0000)]
COMP_zlib should always be declared, even if it is not functional.
Don't dump core in ssltest.
Bodo Möller [Thu, 30 Nov 2000 22:58:27 +0000 (22:58 +0000)]
Fix the recently introduced test that checks if the result is 0
Richard Levitte [Thu, 30 Nov 2000 22:53:34 +0000 (22:53 +0000)]
First tentative impementation of Kerberos 5 cryptos and keys for SSL/TLS. Implemented by Vern Staats <staatsvr@asc.hpc.mil>, further hacked and distributed by Jeffrey Altman <jaltnab@columbia.edu>
Bodo Möller [Thu, 30 Nov 2000 22:34:57 +0000 (22:34 +0000)]
Fix BN_rshift, which caused lots of trouble.
Bodo Möller [Thu, 30 Nov 2000 21:03:13 +0000 (21:03 +0000)]
Remove randomness from the test. These constants give me a segment
violation in test_kron on a 32 bit system.
Bodo Möller [Thu, 30 Nov 2000 20:03:24 +0000 (20:03 +0000)]
BN_mod_exp(r,a,p,m,ctx) should not be called with r == p.
But even if this is avoided, there are still segmentation violations
(during one of the BN_free()s at the end of test_kron
in some cases, in other cases during BN_kronecker, or
later in BN_sqrt; choosing a different exponentiation
algorithm in bntest.c appears to influence when the SIGSEGV
takes place).
Bodo Möller [Thu, 30 Nov 2000 19:35:51 +0000 (19:35 +0000)]
It's "#elif", not "#elsif".
Richard Levitte [Thu, 30 Nov 2000 17:41:01 +0000 (17:41 +0000)]
A few bug fixes for Windows.
Bodo Möller [Thu, 30 Nov 2000 17:35:17 +0000 (17:35 +0000)]
Changes to Lenka's Montgomery implementation.
Submitted by: Lenka Fibikova
Richard Levitte [Thu, 30 Nov 2000 13:04:14 +0000 (13:04 +0000)]
New format for the FAQ. We now have different sections for different
types of questions. Hopefully, that'll make them easier to spot, and
specially, easier to refer to.
Bodo Möller [Thu, 30 Nov 2000 12:53:53 +0000 (12:53 +0000)]
Corrections to the comments in BN_mod_inverse.
Richard Levitte [Thu, 30 Nov 2000 12:53:15 +0000 (12:53 +0000)]
The compression method may be undefined for some reason that has
generated errors. Therefore, print whatever error there may be...
Richard Levitte [Thu, 30 Nov 2000 12:22:35 +0000 (12:22 +0000)]
Simplify and provide the possibility to clean a compression method.
Richard Levitte [Thu, 30 Nov 2000 12:21:33 +0000 (12:21 +0000)]
comp_methods in a SSL_CTX points at an internal database. Do *not*
free that, since it's shared by all SSL_CTX's, present and future.
Richard Levitte [Thu, 30 Nov 2000 12:19:54 +0000 (12:19 +0000)]
Turn off memory checking when loading new compression algorithms.
Richard Levitte [Thu, 30 Nov 2000 12:18:10 +0000 (12:18 +0000)]
COMP_METHOD has a new argument since some time back...
Richard Levitte [Thu, 30 Nov 2000 11:57:31 +0000 (11:57 +0000)]
Make it possible to test SSL compression
Richard Levitte [Thu, 30 Nov 2000 11:56:00 +0000 (11:56 +0000)]
Change c_zlib further to allow loading a shared zlib on all operating
systems where such an operation is supported.
Bodo Möller [Thu, 30 Nov 2000 11:47:04 +0000 (11:47 +0000)]
BN_mod_exp problems ...
Richard Levitte [Thu, 30 Nov 2000 10:25:45 +0000 (10:25 +0000)]
Changes to c_zlib.c to make ZLIB.DLL dynamically loadable under
Windows. Really, this should probably be done on Unix as well, but
that will be a later story...
Bodo Möller [Thu, 30 Nov 2000 09:45:26 +0000 (09:45 +0000)]
Move reduction step from BN_mod_exp to BN_mod_exp_mont_word.
Fix BN_mod_exp_simple for a==0 (mod m).
Skip useless round in BN_mod_sqrt (1 is always a square, no need
to test BN_kronecker for it).
Geoff Thorpe [Thu, 30 Nov 2000 01:34:26 +0000 (01:34 +0000)]
* Fix a slight bug in the state-machine. This caused the client end of a
tunnel to not pro-actively close down when failing an SSL handshake.
* Change the cert-chain callback - originally this was the same one used in
s_client and s_server but the output's as ugly as sin, so I've prettied
tunala's copy output up a bit (and made the output level configurable).
* Remove the superfluous "errors" from the SSL state callback - these are just
non-blocking side-effects.
Bodo Möller [Thu, 30 Nov 2000 00:43:41 +0000 (00:43 +0000)]
bn_modfs.c is no longer needed, a BN_sqrt implementation
exists in bn_sqrt.c now
Bodo Möller [Thu, 30 Nov 2000 00:37:49 +0000 (00:37 +0000)]
Fix bntest.c problem -- one of the primes got lost
Bodo Möller [Thu, 30 Nov 2000 00:33:18 +0000 (00:33 +0000)]
Handle special cases correctly in exponentation functions.
test_bn still fails in the BN_sqrt test because
small primes appear to turn into zero for no
obvious reason, leading to "div by zero" errors.
Bodo Möller [Thu, 30 Nov 2000 00:20:20 +0000 (00:20 +0000)]
BN_mod_sqrt
Bodo Möller [Thu, 30 Nov 2000 00:18:19 +0000 (00:18 +0000)]
BN_sqrt
Ulf Möller [Wed, 29 Nov 2000 22:37:14 +0000 (22:37 +0000)]
Add a warning about the usage of the montgomery functions (if the inputs
are not reduced modulo m, the outputs won't be either).
Geoff Thorpe [Wed, 29 Nov 2000 20:02:00 +0000 (20:02 +0000)]
Amend the original CHANGES log entry. The ex_data handling has been
similarly modified now on DH and DSA.
Bodo Möller [Wed, 29 Nov 2000 19:59:59 +0000 (19:59 +0000)]
BN_legendre is no longer needed now that OpenSSL has BN_kronecker.
Geoff Thorpe [Wed, 29 Nov 2000 19:59:45 +0000 (19:59 +0000)]
Do to DH and DSA what has already been done to RSA. This involves moving
the initialisation and cleanup of "ex_data" elements to before an init()
handler and after a finish() handler respectively.
Bodo Möller [Wed, 29 Nov 2000 19:29:47 +0000 (19:29 +0000)]
mark a bug
Bodo Möller [Wed, 29 Nov 2000 19:26:33 +0000 (19:26 +0000)]
Fix BN_kronecker so that it works correctly if 'a' is negative
(we need the two's complement of BN_lsw then).
Geoff Thorpe [Wed, 29 Nov 2000 19:22:54 +0000 (19:22 +0000)]
More little changes to the tunala demo;
* A little bit of code-cleanup
* Reformat the usage string (not so wide)
* Allow adding an alternative (usually DSA) cert/key pair (a la s_server)
* Allow control over cert-chain verify depth
Bodo Möller [Wed, 29 Nov 2000 18:08:24 +0000 (18:08 +0000)]
BN_to_montgomery expects its inputs to be in the interval 0 .. modulus-1,
so we have to reduce the random numbers used in test_mont.
Before this change, test_mont failed in [debug-]solaris-sparcv9-gcc
configurations ("Montgomery multiplication test failed!" because
the multiplication result obtained with Montgomery multiplication
differed from the result obtained by BN_mod_mul).
Substituing the old version of bn_gcd.c (BN_mod_inverse) did not avoid
the problem.
The strange thing is that it I did not observe any problems
when using debug-solaris-sparcv8-gcc and solaris-sparcv9-cc,
as well as when compiling OpenSSL 0.9.6 in the solaric-sparcv9-gcc
configuration on the same system.
Lutz Jänicke [Wed, 29 Nov 2000 18:06:18 +0000 (18:06 +0000)]
Log security relevant change.
Ulf Möller [Wed, 29 Nov 2000 16:43:50 +0000 (16:43 +0000)]
fix for Borland C
Bodo Möller [Wed, 29 Nov 2000 16:43:03 +0000 (16:43 +0000)]
add missing braces
Lutz Jänicke [Wed, 29 Nov 2000 16:04:38 +0000 (16:04 +0000)]
Store verify_result with sessions to avoid potential security hole.
For the server side this was already done one year ago :-(
Bodo Möller [Wed, 29 Nov 2000 13:40:08 +0000 (13:40 +0000)]
Fix warnings in expspeed.c (but the segmentation fault remains)
Improve readability of bn_shift.c.
Add comment in bn_lib.c (why zero data between top and max?)
Change bntest.c output for BN_kronecker test
Bodo Möller [Wed, 29 Nov 2000 12:53:41 +0000 (12:53 +0000)]
BN_bin2bn did *not* contain an off-by-one error;
I'm still investigating what caused the segementation fault
(maybe "make clean; make" will cure it ...).
But BN_bin2bn should always reset ret->neg.
Bodo Möller [Wed, 29 Nov 2000 12:32:10 +0000 (12:32 +0000)]
Expand expspeed.c to make BN_kronecker timings.
This caused a segmentation fault in calls to malloc, so I cleaned up
bn_lib.c a little so that it is easier to see what is going on.
The bug turned out to be an off-by-one error in BN_bin2bn.
Bodo Möller [Wed, 29 Nov 2000 11:06:50 +0000 (11:06 +0000)]
Implement BN_kronecker test.
Modify "CHANGES" entry for BN_mod_inverse (it's not just avoiding BN_div
that increases performance, avoiding BN_mul also helps)
Bodo Möller [Wed, 29 Nov 2000 11:04:31 +0000 (11:04 +0000)]
avoid segmentation fault
Bodo Möller [Wed, 29 Nov 2000 09:57:13 +0000 (09:57 +0000)]
Make BN_mod_inverse a little faster
Bodo Möller [Wed, 29 Nov 2000 09:41:19 +0000 (09:41 +0000)]
Improve BN_mod_inverse performance.
Get the BN_mod_exp_mont bugfix (for handling negative inputs) correct
this time.
Richard Levitte [Wed, 29 Nov 2000 09:36:48 +0000 (09:36 +0000)]
Copy and paste error... bn_add_part_words() should of course call
bn_add_words(), not bn_sub_words()...
Geoff Thorpe [Wed, 29 Nov 2000 01:29:08 +0000 (01:29 +0000)]
Make s_client/s_server-style cert verification output configurable by
command line, and make the peer-authentication similarly configurable.
Ulf Möller [Wed, 29 Nov 2000 00:07:07 +0000 (00:07 +0000)]
use standard C
Geoff Thorpe [Tue, 28 Nov 2000 23:27:23 +0000 (23:27 +0000)]
Minor tweaks and improvements to the tunala demo.
- Add "-cipher" and "-out_state" command line arguments to control SSL
cipher-suites and handshake debug output respectively.
- Implemented error handling for SSL handshakes that break down. This uses
a cheat - storing a non-NULL pointer as "app_data" in the SSL structure
when the SSL should be killed.
Geoff Thorpe [Tue, 28 Nov 2000 19:09:58 +0000 (19:09 +0000)]
A typo and a couple of logic errors fixed. I think there may still be one
or two kinks lurking around, but it now appears to deal with the basic
test cases ok.
Bodo Möller [Tue, 28 Nov 2000 11:49:12 +0000 (11:49 +0000)]
Use BN_pseudo_rand instead of BN_rand
Bodo Möller [Tue, 28 Nov 2000 11:47:51 +0000 (11:47 +0000)]
Timings.
Bodo Möller [Tue, 28 Nov 2000 11:13:06 +0000 (11:13 +0000)]
Note that SSL_peek has been disabled.
Richard Levitte [Tue, 28 Nov 2000 10:20:02 +0000 (10:20 +0000)]
Addapt to added files in the BIGNUM section
Bodo Möller [Tue, 28 Nov 2000 07:53:35 +0000 (07:53 +0000)]
Correct a bug in BN_kronecker.
Sketch the test for BN_kronecker.
Bodo Möller [Tue, 28 Nov 2000 06:58:22 +0000 (06:58 +0000)]
Comments on SSL_peek deficiencies
Bodo Möller [Tue, 28 Nov 2000 06:48:36 +0000 (06:48 +0000)]
Disable SSL_peek until it is fixed.
Bodo Möller [Tue, 28 Nov 2000 06:41:05 +0000 (06:41 +0000)]
Add test_kron function, which will contain a test for BN_kronecker.
Bodo Möller [Tue, 28 Nov 2000 06:37:43 +0000 (06:37 +0000)]
Add bn_kron.c (BN_kronecker), which I forgot in the previous commit.
Also add the next file in advance so that I can't forget this one :-)
Bodo Möller [Mon, 27 Nov 2000 21:22:45 +0000 (21:22 +0000)]
Undo previous commit, which was an accident.