Andy Polyakov [Wed, 9 Dec 2015 23:03:06 +0000 (00:03 +0100)]
make update.
Reviewed-by: Richard Levitte <levitte@openssl.org>
Andy Polyakov [Wed, 9 Dec 2015 22:02:11 +0000 (23:02 +0100)]
Configure: make no-chacha and no-poly1305 work.
Reviewed-by: Richard Levitte <levitte@openssl.org>
Andy Polyakov [Wed, 9 Dec 2015 20:47:00 +0000 (21:47 +0100)]
Wire ChaCha20-Poly1305 to TLS.
Reviewed-by: Richard Levitte <levitte@openssl.org>
Andy Polyakov [Wed, 9 Dec 2015 20:36:19 +0000 (21:36 +0100)]
evp/c_allc.c: wire ChaCha20-Poly1305 and add tests.
Reviewed-by: Richard Levitte <levitte@openssl.org>
Andy Polyakov [Wed, 9 Dec 2015 20:35:30 +0000 (21:35 +0100)]
test/evp_test.c: allow generic AEAD ciphers to be tested.
Reviewed-by: Richard Levitte <levitte@openssl.org>
Andy Polyakov [Wed, 9 Dec 2015 20:30:56 +0000 (21:30 +0100)]
crypto/evp: add e_chacha20_poly1305.c.
Reviewed-by: Richard Levitte <levitte@openssl.org>
Andy Polyakov [Wed, 9 Dec 2015 20:18:00 +0000 (21:18 +0100)]
evp/evp_enc.c: allow EVP_CIPHER.ctx_size to be 0.
In such case it would be EVP_CIPHER.cleanup's reponsibility to wipe
EVP_CIPHEX_CTX.cipher_data.
Reviewed-by: Richard Levitte <levitte@openssl.org>
Andy Polyakov [Wed, 9 Dec 2015 20:15:28 +0000 (21:15 +0100)]
Add ChaCha20-Poly1305 and ChaCha20 NIDs.
Reviewed-by: Richard Levitte <levitte@openssl.org>
Andy Polyakov [Wed, 9 Dec 2015 20:11:49 +0000 (21:11 +0100)]
Add reference ChaCha20 and Poly1305 implementations.
Reviewed-by: Emilia Käsper <emilia@openssl.org>
Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Kurt Roeckx <kurt@openssl.org>
Dr. Stephen Henson [Thu, 10 Dec 2015 03:58:31 +0000 (03:58 +0000)]
make default_ec_key_meth static
Reviewed-by: Rich Salz <rsalz@openssl.org>
Dr. Stephen Henson [Wed, 9 Dec 2015 23:51:13 +0000 (23:51 +0000)]
remove deleted directories from mkfiles.pl
Reviewed-by: Matt Caswell <matt@openssl.org>
Richard Levitte [Wed, 9 Dec 2015 22:59:04 +0000 (23:59 +0100)]
Fix warnings about unused variables when EC is disabled.
Reviewed-by: Stephen Henson <steve@openssl.org>
Richard Levitte [Wed, 9 Dec 2015 22:56:57 +0000 (23:56 +0100)]
Move the definitions of EC_KEY and EC_KEY_METHOD to ossl_typ.h
Most of all, that has inclusion of openssl/engine.h work even if EC
has been disabled. This is the same as has been done for DH, DSA, RSA
and more...
Reviewed-by: Stephen Henson <steve@openssl.org>
Dr. Stephen Henson [Wed, 9 Dec 2015 13:41:44 +0000 (13:41 +0000)]
add CHANGES and NEWS entry
Todo: update documentation.
Reviewed-by: Richard Levitte <levitte@openssl.org>
Dr. Stephen Henson [Wed, 9 Dec 2015 16:12:46 +0000 (16:12 +0000)]
remove ECDSA error line
Reviewed-by: Richard Levitte <levitte@openssl.org>
Dr. Stephen Henson [Wed, 9 Dec 2015 13:49:41 +0000 (13:49 +0000)]
add compatibility headers
Reviewed-by: Richard Levitte <levitte@openssl.org>
Dr. Stephen Henson [Wed, 9 Dec 2015 13:10:36 +0000 (13:10 +0000)]
Use NULL comparison
Reviewed-by: Richard Levitte <levitte@openssl.org>
Dr. Stephen Henson [Wed, 9 Dec 2015 00:27:10 +0000 (00:27 +0000)]
add block comment
Reviewed-by: Richard Levitte <levitte@openssl.org>
Dr. Stephen Henson [Wed, 9 Dec 2015 00:12:34 +0000 (00:12 +0000)]
set standard EC method in eng_openssl
Reviewed-by: Richard Levitte <levitte@openssl.org>
Dr. Stephen Henson [Wed, 9 Dec 2015 00:01:30 +0000 (00:01 +0000)]
make update
Reviewed-by: Richard Levitte <levitte@openssl.org>
Dr. Stephen Henson [Tue, 8 Dec 2015 23:59:40 +0000 (23:59 +0000)]
remove ecdsa.h header references.
Reviewed-by: Richard Levitte <levitte@openssl.org>
Dr. Stephen Henson [Wed, 28 Oct 2015 21:28:22 +0000 (21:28 +0000)]
EC_KEY_METHOD accessors.
Set of accessors to set and get each field.
Reviewed-by: Richard Levitte <levitte@openssl.org>
Dr. Stephen Henson [Wed, 28 Oct 2015 16:51:47 +0000 (16:51 +0000)]
make errors
Reviewed-by: Richard Levitte <levitte@openssl.org>
Dr. Stephen Henson [Wed, 28 Oct 2015 16:57:51 +0000 (16:57 +0000)]
Top level ECDSA sign/verify redirection.
Reviewed-by: Richard Levitte <levitte@openssl.org>
Dr. Stephen Henson [Wed, 28 Oct 2015 12:29:43 +0000 (12:29 +0000)]
Engine EC_KEY_METHOD functionality.
Rename ENGINE _EC_KEY functions to _EC.
Add support for EC_KEY_METHOD in ENGINE_set_default et al. Copy
ec_meth.
Reviewed-by: Richard Levitte <levitte@openssl.org>
Dr. Stephen Henson [Tue, 27 Oct 2015 20:18:42 +0000 (20:18 +0000)]
remove ecdsa from mkdef.pl
Reviewed-by: Richard Levitte <levitte@openssl.org>
Dr. Stephen Henson [Tue, 27 Oct 2015 20:02:13 +0000 (20:02 +0000)]
remove ECDSA_METHOD from ENGINE
Reviewed-by: Richard Levitte <levitte@openssl.org>
Dr. Stephen Henson [Tue, 27 Oct 2015 19:57:28 +0000 (19:57 +0000)]
remove ECDSA_METHOD typedef
Reviewed-by: Richard Levitte <levitte@openssl.org>
Dr. Stephen Henson [Tue, 27 Oct 2015 19:56:15 +0000 (19:56 +0000)]
add missing prototypes
Reviewed-by: Richard Levitte <levitte@openssl.org>
Dr. Stephen Henson [Tue, 27 Oct 2015 19:39:32 +0000 (19:39 +0000)]
remove ecdsa.h header
Reviewed-by: Richard Levitte <levitte@openssl.org>
Dr. Stephen Henson [Tue, 27 Oct 2015 19:34:17 +0000 (19:34 +0000)]
add ECDSA_size to ec_asn1.c
Reviewed-by: Richard Levitte <levitte@openssl.org>
Dr. Stephen Henson [Tue, 27 Oct 2015 19:32:46 +0000 (19:32 +0000)]
remove errors
Reviewed-by: Richard Levitte <levitte@openssl.org>
Dr. Stephen Henson [Tue, 27 Oct 2015 19:24:54 +0000 (19:24 +0000)]
remove crypto/ecdsa
Reviewed-by: Richard Levitte <levitte@openssl.org>
Dr. Stephen Henson [Tue, 27 Oct 2015 19:23:29 +0000 (19:23 +0000)]
add sign/verify methods
Reviewed-by: Richard Levitte <levitte@openssl.org>
Dr. Stephen Henson [Tue, 27 Oct 2015 19:18:59 +0000 (19:18 +0000)]
return errors for unsupported operations
Reviewed-by: Richard Levitte <levitte@openssl.org>
Dr. Stephen Henson [Tue, 27 Oct 2015 19:18:00 +0000 (19:18 +0000)]
Remove reference to ECDSA_OpenSSL.
Reviewed-by: Richard Levitte <levitte@openssl.org>
Dr. Stephen Henson [Tue, 27 Oct 2015 19:11:00 +0000 (19:11 +0000)]
Move and adapt ECDSA sign and verify functions.
Reviewed-by: Richard Levitte <levitte@openssl.org>
Dr. Stephen Henson [Tue, 27 Oct 2015 18:51:37 +0000 (18:51 +0000)]
modify ecdsatest to use accessor
Reviewed-by: Richard Levitte <levitte@openssl.org>
Dr. Stephen Henson [Tue, 27 Oct 2015 18:51:04 +0000 (18:51 +0000)]
Add ECDSA_SIG accessor.
Reviewed-by: Richard Levitte <levitte@openssl.org>
Dr. Stephen Henson [Tue, 27 Oct 2015 18:39:07 +0000 (18:39 +0000)]
move ECDSA_SIG prototypes
Reviewed-by: Richard Levitte <levitte@openssl.org>
Dr. Stephen Henson [Tue, 27 Oct 2015 18:33:42 +0000 (18:33 +0000)]
make errors
Reviewed-by: Richard Levitte <levitte@openssl.org>
Dr. Stephen Henson [Tue, 27 Oct 2015 18:29:41 +0000 (18:29 +0000)]
extend EC_KEY_METHOD for signing support
Reviewed-by: Richard Levitte <levitte@openssl.org>
Dr. Stephen Henson [Tue, 27 Oct 2015 18:19:32 +0000 (18:19 +0000)]
adapt ossl_ecdsa.c to crypto/ec
Reviewed-by: Richard Levitte <levitte@openssl.org>
Dr. Stephen Henson [Tue, 27 Oct 2015 18:18:18 +0000 (18:18 +0000)]
move ECDSA_SIG definition
Reviewed-by: Richard Levitte <levitte@openssl.org>
Dr. Stephen Henson [Tue, 27 Oct 2015 16:48:36 +0000 (16:48 +0000)]
Move ECDSA implementation to crypto/ec
Reviewed-by: Richard Levitte <levitte@openssl.org>
Dr. Stephen Henson [Tue, 27 Oct 2015 16:45:47 +0000 (16:45 +0000)]
Move ECDSA_SIG ASN.1 to crypto/ec
Reviewed-by: Richard Levitte <levitte@openssl.org>
Dr. Stephen Henson [Sun, 25 Oct 2015 13:09:50 +0000 (13:09 +0000)]
Add set methods.
Add set_group, set_public and set_private methods. An EC_KEY_METHOD can use
these to perform any appropriate operation when the key components are set,
such as caching data in some more convenient ENGINE specific format or
returning an error if the parameters are invalid or the operation is
not supported.
Reviewed-by: Richard Levitte <levitte@openssl.org>
Dr. Stephen Henson [Fri, 23 Oct 2015 18:19:57 +0000 (19:19 +0100)]
EC_KEY_METHOD copy support
Reviewed-by: Richard Levitte <levitte@openssl.org>
Dr. Stephen Henson [Fri, 23 Oct 2015 18:10:24 +0000 (19:10 +0100)]
EC_KEY_METHOD init and finish support
Reviewed-by: Richard Levitte <levitte@openssl.org>
Dr. Stephen Henson [Fri, 23 Oct 2015 17:46:58 +0000 (18:46 +0100)]
ENGINE fixes
Reviewed-by: Richard Levitte <levitte@openssl.org>
Dr. Stephen Henson [Thu, 22 Oct 2015 18:22:53 +0000 (19:22 +0100)]
remove ECDH from mkdef.pl
Reviewed-by: Richard Levitte <levitte@openssl.org>
Dr. Stephen Henson [Thu, 22 Oct 2015 15:17:50 +0000 (16:17 +0100)]
remove ECDH_METHOD typedef
Reviewed-by: Richard Levitte <levitte@openssl.org>
Dr. Stephen Henson [Thu, 22 Oct 2015 18:02:49 +0000 (19:02 +0100)]
remove ecdh.h header
Remove redundant ecdh.h header and any references to it.
Reviewed-by: Richard Levitte <levitte@openssl.org>
Dr. Stephen Henson [Thu, 22 Oct 2015 17:59:32 +0000 (18:59 +0100)]
remove ECDH error loading
Reviewed-by: Richard Levitte <levitte@openssl.org>
Dr. Stephen Henson [Thu, 22 Oct 2015 17:54:49 +0000 (18:54 +0100)]
Remove crypto/ecdh update Makefile.org
Reviewed-by: Richard Levitte <levitte@openssl.org>
Dr. Stephen Henson [Thu, 22 Oct 2015 15:17:50 +0000 (16:17 +0100)]
remove ECDH_METHOD from ENGINE
Reviewed-by: Richard Levitte <levitte@openssl.org>
Dr. Stephen Henson [Thu, 22 Oct 2015 17:51:25 +0000 (18:51 +0100)]
make errors
Reviewed-by: Richard Levitte <levitte@openssl.org>
Dr. Stephen Henson [Thu, 22 Oct 2015 17:48:59 +0000 (18:48 +0100)]
Add compute key support to EC_KEY_METHOD
Reviewed-by: Richard Levitte <levitte@openssl.org>
Dr. Stephen Henson [Thu, 22 Oct 2015 17:47:11 +0000 (18:47 +0100)]
Adapt ecdh_compute_key
Rename ecdh_compute_key into ossl_ecdh_compute_key and modify it
to use EC error codes. Remove superfluous old ECDH functions.
Reviewed-by: Richard Levitte <levitte@openssl.org>
Dr. Stephen Henson [Thu, 22 Oct 2015 17:35:56 +0000 (18:35 +0100)]
move ECDH implementation to crypto/ec
Reviewed-by: Richard Levitte <levitte@openssl.org>
Dr. Stephen Henson [Thu, 22 Oct 2015 14:47:38 +0000 (15:47 +0100)]
Move ECDH_KDF_X9_62 to crypto/ec
Reviewed-by: Richard Levitte <levitte@openssl.org>
Dr. Stephen Henson [Thu, 22 Oct 2015 13:53:23 +0000 (14:53 +0100)]
EC_KEY_METHOD keygen support.
Add keygen to EC_KEY_METHOD. Redirect EC_KEY_generate_key through
method and set the current EC key generation function as the default.
Reviewed-by: Richard Levitte <levitte@openssl.org>
Dr. Stephen Henson [Tue, 20 Oct 2015 23:36:54 +0000 (00:36 +0100)]
make errors
Reviewed-by: Richard Levitte <levitte@openssl.org>
Dr. Stephen Henson [Mon, 19 Oct 2015 13:38:43 +0000 (14:38 +0100)]
Support for EC_KEY_METHOD.
Add EC_KEY_METHOD. This is part of the EC revision and will make EC behave
more like other algorithms. Specifically:
EC_KEY_METHOD is part of EC_KEY.
It is part of ENGINE.
Default or key specific implementations can be provided to redirect some
or all operations.
Reviewed-by: Richard Levitte <levitte@openssl.org>
Ben Laurie [Wed, 9 Dec 2015 13:37:30 +0000 (13:37 +0000)]
Link library for backtrace() on BSD...
Reviewed-by: Rich Salz <rsalz@openssl.org>
Richard Levitte [Tue, 8 Dec 2015 23:09:47 +0000 (00:09 +0100)]
NEWS: Add a bit of precision regarding removal of cipher suites
Suggested by Benjamin Kaduk <bkaduk@akamai.com>
Reviewed-by: Matt Caswell <matt@openssl.org>
Richard Levitte [Tue, 8 Dec 2015 22:36:18 +0000 (23:36 +0100)]
Additional NEWS
Reviewed-by: Tim Hudson <tjh@openssl.org>
Rich Salz [Tue, 8 Dec 2015 21:07:09 +0000 (16:07 -0500)]
Refer to website for acknowledgements.
Reviewed-by: Steve Marquess <marquess@openssl.com>
Richard Levitte [Tue, 8 Dec 2015 14:34:52 +0000 (15:34 +0100)]
Not all 'find's know -xtype, use -type instead
Reviewed-by: Rich Salz <rsalz@openssl.org>
Richard Levitte [Tue, 8 Dec 2015 11:43:05 +0000 (12:43 +0100)]
Adapt the OS X build to use the OS X tar
As part of this, move release creation to a script to be called from
.travis.yml. That makes it much easier to test outside of travis.
Reviewed-by: Rich Salz <rsalz@openssl.org>
Richard Levitte [Tue, 8 Dec 2015 11:42:27 +0000 (12:42 +0100)]
Make it possible to affect the way dists are made
Introducing DISTTARVARS to propagate changed variables down to the
tar-making target.
Reviewed-by: Rich Salz <rsalz@openssl.org>
Dr. Stephen Henson [Tue, 8 Dec 2015 16:49:12 +0000 (16:49 +0000)]
Update NEWS
Reviewed-by: Matt Caswell <matt@openssl.org>
Dr. Stephen Henson [Mon, 7 Dec 2015 16:09:13 +0000 (16:09 +0000)]
Extended master secret test script.
Reviewed-by: Matt Caswell <matt@openssl.org>
Dr. Stephen Henson [Sun, 6 Dec 2015 17:49:14 +0000 (17:49 +0000)]
Add extms extension
Reviewed-by: Matt Caswell <matt@openssl.org>
Dr. Stephen Henson [Tue, 8 Dec 2015 02:07:43 +0000 (02:07 +0000)]
TLSProxy update
Add function to delete extensions and fix ClientHello repacking.
Reviewed-by: Matt Caswell <matt@openssl.org>
Dr. Stephen Henson [Sat, 5 Dec 2015 18:58:49 +0000 (18:58 +0000)]
update errors
Reviewed-by: Matt Caswell <matt@openssl.org>
Dr. Stephen Henson [Fri, 4 Dec 2015 19:48:15 +0000 (19:48 +0000)]
Extended master secret fixes and checks.
Add new flag TLS1_FLAGS_RECEIVED_EXTMS which is set when the peer sends
the extended master secret extension.
Server now sends extms if and only if the client sent extms.
Check consistency of extms extension when resuming sessions following (where
practical) RFC7627.
Reviewed-by: Matt Caswell <matt@openssl.org>
Matt Caswell [Tue, 8 Dec 2015 13:00:59 +0000 (13:00 +0000)]
Fix merge error
Commit
6140f0365 added some new ctrl constants. However due to a
merge error one of these values was duplicated with an existing
value.
Reviewed-by: Rich Salz <rsalz@openssl.org>
Dmitry Belyavskiy [Wed, 30 Sep 2015 19:42:57 +0000 (22:42 +0300)]
Add some new cipher ctrl constants
These are needed for GOST
Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
Richard Levitte [Tue, 8 Dec 2015 00:01:13 +0000 (01:01 +0100)]
Cleanup the EVP_MD_CTX before exit rather than after
Reviewed-by: Matt Caswell <matt@openssl.org>
Richard Levitte [Mon, 7 Dec 2015 23:11:47 +0000 (00:11 +0100)]
Remove double semi (;)
When in the middle of declarations, some C compilers will complain.
Reviewed-by: Matt Caswell <matt@openssl.org>
Richard Levitte [Mon, 7 Dec 2015 19:49:17 +0000 (20:49 +0100)]
Remove typedef of HMAC_CTX from crypto/hmac/hmac_lcl.h
This is already defined in include/openssl/ossl_typ.h.
Reviewed-by: Matt Caswell <matt@openssl.org>
Richard Levitte [Mon, 7 Dec 2015 19:37:08 +0000 (20:37 +0100)]
Fix clang complaints about uninitialised variables.
Reviewed-by: Rich Salz <rsalz@openssl.org>
Richard Levitte [Mon, 7 Dec 2015 15:50:15 +0000 (16:50 +0100)]
Change tar owner and group to just 0
It seems like some tar versions don't like the name:id form for
--owner and --group. The closest known anonymous user being 0 (root),
that seems to be the most appropriate user/group to assign ownership
to. It matters very little when unpacking either way.
Reviewed-by: Rich Salz <rsalz@openssl.org>
Richard Levitte [Tue, 1 Dec 2015 02:28:22 +0000 (03:28 +0100)]
Add an entry in CHANGES
Reviewed-by: Rich Salz <rsalz@openssl.org>
Richard Levitte [Fri, 4 Dec 2015 12:04:54 +0000 (13:04 +0100)]
Document EVP_MD constructors, destructors and manipulators
Reviewed-by: Rich Salz <rsalz@openssl.org>
Richard Levitte [Mon, 30 Nov 2015 22:43:59 +0000 (23:43 +0100)]
Document the HMAC changes
Reviewed-by: Rich Salz <rsalz@openssl.org>
Richard Levitte [Tue, 1 Dec 2015 02:19:11 +0000 (03:19 +0100)]
Document the EVP_MD_CTX changes
Reviewed-by: Rich Salz <rsalz@openssl.org>
Richard Levitte [Fri, 27 Nov 2015 13:47:08 +0000 (14:47 +0100)]
make update
Reviewed-by: Rich Salz <rsalz@openssl.org>
Richard Levitte [Wed, 2 Dec 2015 21:49:24 +0000 (22:49 +0100)]
Cleanup: fix all sources that used HMAC_CTX_init
Reviewed-by: Rich Salz <rsalz@openssl.org>
Richard Levitte [Wed, 2 Dec 2015 21:47:31 +0000 (22:47 +0100)]
Cleanup: rename HMAC_CTX_init to HMAC_CTX_reset
Reviewed-by: Rich Salz <rsalz@openssl.org>
Richard Levitte [Tue, 1 Dec 2015 23:52:56 +0000 (00:52 +0100)]
Cleanup: support EVP_MD_CTX_(create|init|destroy) for deprecated use
Reviewed-by: Rich Salz <rsalz@openssl.org>
Richard Levitte [Tue, 1 Dec 2015 23:49:35 +0000 (00:49 +0100)]
Cleanup: fix all sources that used EVP_MD_CTX_(create|init|destroy)
Reviewed-by: Rich Salz <rsalz@openssl.org>
Richard Levitte [Tue, 1 Dec 2015 23:26:19 +0000 (00:26 +0100)]
Cleanup: rename EVP_MD_CTX_(create|init|destroy) to EVP_MD_CTX_(new|reset|free)
Looking over names, it seems like we usually use names ending with
_new and _free as object constructors and destructors. Also, since
EVP_MD_CTX_init is now used to reset a EVP_MD_CTX, it might as well be
named accordingly.
Reviewed-by: Rich Salz <rsalz@openssl.org>
Richard Levitte [Tue, 1 Dec 2015 23:22:30 +0000 (00:22 +0100)]
Cleanup: Remove M_EVP_MD_* macros
These macros were only meant for crypto/evp, and are now entirely
unused.
Reviewed-by: Rich Salz <rsalz@openssl.org>
Richard Levitte [Mon, 30 Nov 2015 22:43:27 +0000 (23:43 +0100)]
Adapt the rest of the source to the removal of (EVP_MD_CTX|HMAC_CTX)_cleanup
Reviewed-by: Rich Salz <rsalz@openssl.org>
Richard Levitte [Mon, 30 Nov 2015 22:42:39 +0000 (23:42 +0100)]
Remove HMAC_CTX_cleanup and combine its functionality into EVP_MD_CTX_init
This follows the same idea as the combination of EVP_MD_CTX_cleanup
and EVP_MD_CTX_init into one function.
Reviewed-by: Rich Salz <rsalz@openssl.org>
Richard Levitte [Tue, 1 Dec 2015 00:38:35 +0000 (01:38 +0100)]
Remove EVP_MD_CTX_cleanup and put its functionality into EVP_MD_CTX_init
The idea is that with EVP_MD_CTX_create() and EVP_MD_CTX_destroy(),
EVP_MD_CTX_cleanup and EVP_MD_CTX_init is not used the same as before.
Instead, we need a single function that can be used to reinitialise an
existing EVP_MD_CTX that's been created with EVP_MD_CTX_create()
previously. Combining EVP_MD_CTX_cleanup and EVP_MD_CTX_init into
that one function is the answer.
Reviewed-by: Rich Salz <rsalz@openssl.org>
Richard Levitte [Mon, 30 Nov 2015 12:44:28 +0000 (13:44 +0100)]
Adapt the rest of the source to the opaque HMAC_CTX
Reviewed-by: Rich Salz <rsalz@openssl.org>
Richard Levitte [Mon, 30 Nov 2015 12:34:20 +0000 (13:34 +0100)]
Make the definition of HMAC_CTX opaque
This moves the definition to crypto/hmac/hmac_lcl.h. Constructor and
destructor added, and the typedef moved to include/openssl/ossl_typ.h.
Reviewed-by: Rich Salz <rsalz@openssl.org>