Geoff Thorpe [Sun, 14 Jan 2001 23:37:42 +0000 (23:37 +0000)]
Update the LHASH man page.
* Correct some prototypes and macros with respect to "const"ness.
* Add the extra macros and examples due to the lh_doall[_arg] modifications
made recently. The existing example is also reworked for consistency.
* Rewrite, tweak, and supplement bits of the existing comments that seemed
(IMHO) to be a little convoluted and misleading.
* Add a NOTE section that explains the use of macros and avoiding function
casts (ie. generate a wrapper as with the macros, or prototype any
callback functions exactly to not require casting). Also, explain the
"const" approach taken in LHASH for the purposes of API comprehensibility
and also application code auditing.
Bodo Möller [Fri, 12 Jan 2001 15:16:21 +0000 (15:16 +0000)]
Disable RegQueryValueEx() call.
Problem reported by "Wolfgang Marczy" <WMarczy@topcall.co.at>
in a message to openssl-dev (19 Dec 2000 13:40:51 +0100).
Fix typo in OCSP ASN1 module, this caused
invalid format in OCSP request signatures.
Add spaces to OCSP HTTP header.
Change X509_NAME_set() there's no reason
why it should return an error if the
destination points to NULL... though it
should if the destination is NULL.
Bodo Möller [Wed, 10 Jan 2001 18:09:57 +0000 (18:09 +0000)]
After discussion with Richard, change the new API for extended memory
allocation callbacks so that it is no longer visible to applications
that these live at a different call level than conventional memory
allocation callbacks.
Bodo Möller [Wed, 10 Jan 2001 16:46:00 +0000 (16:46 +0000)]
It's silly to use a different default for PERL than in the top
Makefile. (The default is never actually used though because
the top Makefile passes its value of PERL down to sub-Makefiles.)
Bodo Möller [Wed, 10 Jan 2001 14:10:17 +0000 (14:10 +0000)]
Change prototypes for new CRYPTO_..._mem_ex_functions functions so
that they match the function definitions (namely, remove file/line
parameters from free_func).
Richard Levitte [Wed, 10 Jan 2001 13:14:58 +0000 (13:14 +0000)]
As response to a user request to be able to use external memory
handling routines that need file name and line number information,
I've added a call level to our memory handling routines to allow that
kind of hooking.
Geoff Thorpe [Tue, 9 Jan 2001 16:59:56 +0000 (16:59 +0000)]
oops, void functions shouldn't try and return a value. Strangely, gcc
didn't even give a warning for this yet HPUX cc considered it an error.
Reported by Lutz(@openssl.org).
Lutz Jänicke [Tue, 9 Jan 2001 16:44:59 +0000 (16:44 +0000)]
Add automatic query of EGD sockets to RAND_poll(). The EGD sockets are
only queried when the /dev/[u]random devices did not return enough
entropy. Only the amount of entropy missing to reach the required minimum
is queried, as EGD may be drained.
Queried locations are: /etc/entropy, /var/run/egd-pool
Lutz Jänicke [Tue, 9 Jan 2001 10:58:36 +0000 (10:58 +0000)]
Don't cheat: when only getting several bytes from each source, n is incremented
correctly, but RAND_add(..,n) counts the increasing n several times.
Only RAND_add(..,n) once entropy collection is finished.
Geoff Thorpe [Tue, 9 Jan 2001 00:24:38 +0000 (00:24 +0000)]
Move all the existing function pointer casts associated with LHASH's two
"doall" functions to using type-safe wrappers. As and where required, this
can be replaced by redeclaring the underlying callbacks to use the
underlying "void"-based prototypes (eg. if performance suffers from an
extra level of function invocation).
Geoff Thorpe [Tue, 9 Jan 2001 00:13:25 +0000 (00:13 +0000)]
Get rid of the function pointer casting in the debugging memory code due
to LHASH usage. NB: The callback type used as been suctioned off into
crypto.h as CRYPTO_MEM_LEAK_CB to improve clarity.
Geoff Thorpe [Tue, 9 Jan 2001 00:02:09 +0000 (00:02 +0000)]
This adds macros to implement (and/or declare) type-safe wrapper functions
around the callbacks required in the LHASH code for the "doall" functions.
Also - fix the evil function pointer casting in the two lh_doall functions
by deferring to a static utility function. Previously lh_doall() was
invoking lh_doall_arg() by casting the callback to the 2-parameter
prototype and passing in a NULL argument. This appears to have been working
thus far but it's not a hot idea. If the extra level of indirection becomes
a performance hit, we can just provide two virtually identical
implementations for each variant later on.
Geoff Thorpe [Mon, 8 Jan 2001 22:03:27 +0000 (22:03 +0000)]
Whilst in the process of fixing outstanding function-pointer casts in the
LHASH code, this evil was uncovered. The cast was obscuring the fact that
the function was prototyped to take 2 parameters when in fact it is being
used as a callback that should take only one. Anyway, the function itself
ignores the second parameter (thankfully). A proper cure is on the way but
for now this corrects the inconsistency.
Richard Levitte [Mon, 8 Jan 2001 10:59:26 +0000 (10:59 +0000)]
Change RAND_poll for Unix to try a number of devices and only read
them for a short period of time (actually, poll them with select(),
then read() whatever is there), which is about 10ms (hard-coded value)
each.
Separate Windows and Unixly code, and start on a VMS variant that
currently just returns 0.
Set correct type in ASN1_STRING for
INTEGER and ENUMERATED types.
Make ASN1_INTEGER_get() and ASN1_ENUMERATED_get()
return -1 for invalid type rather than 0 (which is
often valid). -1 may also be valid but this is less
likely.
Load OCSP error strings in ERR_load_crypto_strings().
Richard Levitte [Sun, 31 Dec 2000 01:43:11 +0000 (01:43 +0000)]
Look for no-krb5 and add the definition of NO_KRB5 if it's there.
I've no idea were the KRB5 header files and libraries are placed on
Win32. When there's better knowledge, we might be able to process the
other KRB5-related arguments as well...
Richard Levitte [Sun, 31 Dec 2000 01:18:50 +0000 (01:18 +0000)]
Since asn1.h gets included recursively from many places, the easiest
is to have asn1.h include e_os.h and e_os2.h. Of course, this makes
the unofficial "non-export" status of e_os.h a bit delicate...
Rewrite PKCS#12 code and remove some of the old
horrible macros.
Fix two evil ASN1 bugs. Attempt to use 'ctx' when
NULL if input is indefinite length constructed
in asn1_check_tlen() and invalid pointer to ASN1_TYPE
when reusing existing structure (this took *ages* to
find because the new PKCS#12 code triggered it).
Richard Levitte [Sun, 31 Dec 2000 00:23:17 +0000 (00:23 +0000)]
If OPENSSL_BUILD_SHLIBCRYPTO (for files that end up as libcrypto
objects) or OPENSSL_BUILD_SHLIBSSL (for files that end up as libssl
objects) is defined, redefine OPENSSL_EXTERN to be OPENSSL_EXPORT.
This is actually only important on Win32, and can safely be ignored in
all other cases, at least for now.
Richard Levitte [Sun, 31 Dec 2000 00:06:47 +0000 (00:06 +0000)]
Remove anything connected to RSAref, since that's gone by now.
Add the C macros OPENSSL_BUILD_SHLIBCRYPTO and OPENSSL_BUILD_SHLIBSSL
to the build of the object files as appropriate for each library.
ASN1_ITEM versions of ASN1_d2i_{fp, bio} and replacement of
most of the old wrappers. A few of the old versions remain
because they are non standard and the corresponding ASN1
code has not been reimplemented yet.
Richard Levitte [Fri, 29 Dec 2000 00:05:14 +0000 (00:05 +0000)]
Enhancements to mkdef.pl:
* detect "unknown" algorithms (any C macro starting with NO_ that is
not explicitely mentioned in mkdef.pl as a known algorithm) and
report.
* add a number of algorithms that can be deselected.
* look in ssl/kssl.h as well.
* accept multiple whitespace (not just one SPC) in preprocessor lines.