oweals/openssl.git
9 years agotls1_heartbeat: check for NULL after allocating buf
Jonas Maebe [Mon, 9 Dec 2013 16:21:43 +0000 (17:21 +0100)]
tls1_heartbeat: check for NULL after allocating buf

Signed-off-by: Kurt Roeckx <kurt@roeckx.be>
Reviewed-by: Matt Caswell <matt@openssl.org>
9 years agotls1_process_heartbeat: check for NULL after allocating buffer
Jonas Maebe [Sun, 7 Dec 2014 16:38:51 +0000 (17:38 +0100)]
tls1_process_heartbeat: check for NULL after allocating buffer

Signed-off-by: Kurt Roeckx <kurt@roeckx.be>
Reviewed-by: Matt Caswell <matt@openssl.org>
9 years agoSSL_set_session: check for NULL after allocating s->kssl_ctx->client_princ
Jonas Maebe [Mon, 9 Dec 2013 16:02:44 +0000 (17:02 +0100)]
SSL_set_session: check for NULL after allocating s->kssl_ctx->client_princ

Signed-off-by: Kurt Roeckx <kurt@roeckx.be>
Reviewed-by: Matt Caswell <matt@openssl.org>
9 years agoserverinfo_process_buffer: check result of realloc(ctx->cert->key->serverinfo) and...
Jonas Maebe [Mon, 9 Dec 2013 15:57:04 +0000 (16:57 +0100)]
serverinfo_process_buffer: check result of realloc(ctx->cert->key->serverinfo) and don't leak memory if it fails

Signed-off-by: Kurt Roeckx <kurt@roeckx.be>
Reviewed-by: Matt Caswell <matt@openssl.org>
9 years agossl3_digest_cached_records: check for NULL after allocating s->s3->handshake_dgst
Jonas Maebe [Mon, 9 Dec 2013 15:45:44 +0000 (16:45 +0100)]
ssl3_digest_cached_records: check for NULL after allocating s->s3->handshake_dgst

Signed-off-by: Kurt Roeckx <kurt@roeckx.be>
Reviewed-by: Matt Caswell <matt@openssl.org>
9 years agossl3_get_certificate_request: check for NULL after allocating s->cert->ctypes
Jonas Maebe [Sun, 8 Dec 2013 22:30:09 +0000 (23:30 +0100)]
ssl3_get_certificate_request: check for NULL after allocating s->cert->ctypes

Signed-off-by: Kurt Roeckx <kurt@roeckx.be>
Reviewed-by: Matt Caswell <matt@openssl.org>
9 years agoSSL_COMP_add_compression_method: exit if allocating the new compression method struct...
Jonas Maebe [Mon, 2 Dec 2013 21:07:02 +0000 (22:07 +0100)]
SSL_COMP_add_compression_method: exit if allocating the new compression method struct fails

Signed-off-by: Kurt Roeckx <kurt@roeckx.be>
Reviewed-by: Matt Caswell <matt@openssl.org>
9 years agoMove bn internal functions into bn_int.h and bn_lcl.h
Matt Caswell [Sun, 2 Nov 2014 20:16:59 +0000 (20:16 +0000)]
Move bn internal functions into bn_int.h and bn_lcl.h

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoUpdate documentation following BN opaquify
Matt Caswell [Sun, 2 Nov 2014 19:45:04 +0000 (19:45 +0000)]
Update documentation following BN opaquify

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoMake bn opaque
Matt Caswell [Tue, 28 Oct 2014 23:16:06 +0000 (23:16 +0000)]
Make bn opaque

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoUpdate apps for bn opaque change
Matt Caswell [Tue, 28 Oct 2014 23:36:27 +0000 (23:36 +0000)]
Update apps for bn opaque change

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoDisable engines that will fail to build when bn is made opaque
Matt Caswell [Tue, 28 Oct 2014 23:04:39 +0000 (23:04 +0000)]
Disable engines that will fail to build when bn is made opaque

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoImplement internally opaque bn access from ts
Matt Caswell [Tue, 28 Oct 2014 23:04:10 +0000 (23:04 +0000)]
Implement internally opaque bn access from ts

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoImplement internally opaque bn access from srp
Matt Caswell [Thu, 30 Oct 2014 23:21:39 +0000 (23:21 +0000)]
Implement internally opaque bn access from srp

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoImplement internally opaque bn access from rsa
Matt Caswell [Tue, 28 Oct 2014 23:00:29 +0000 (23:00 +0000)]
Implement internally opaque bn access from rsa

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoImplement internally opaque bn access from evp
Matt Caswell [Tue, 28 Oct 2014 22:59:34 +0000 (22:59 +0000)]
Implement internally opaque bn access from evp

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoImplement internally opaque bn access from ec
Matt Caswell [Tue, 28 Oct 2014 22:58:56 +0000 (22:58 +0000)]
Implement internally opaque bn access from ec

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoImplement internally opaque bn access from dsa
Matt Caswell [Tue, 28 Oct 2014 22:56:18 +0000 (22:56 +0000)]
Implement internally opaque bn access from dsa

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoImplement internally opaque bn access from dh
Matt Caswell [Thu, 30 Oct 2014 23:58:19 +0000 (23:58 +0000)]
Implement internally opaque bn access from dh

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoImplement internally opaque bn access from asn1
Matt Caswell [Fri, 31 Oct 2014 00:01:18 +0000 (00:01 +0000)]
Implement internally opaque bn access from asn1

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoPrepare exptest for bn opaquify
Matt Caswell [Mon, 24 Nov 2014 10:36:27 +0000 (10:36 +0000)]
Prepare exptest for bn opaquify

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoPrepare for bn opaquify. Implement internal helper functions.
Matt Caswell [Mon, 24 Nov 2014 10:06:20 +0000 (10:06 +0000)]
Prepare for bn opaquify. Implement internal helper functions.

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoRemove internal bn dependancies from speed.c
Matt Caswell [Mon, 24 Nov 2014 10:05:04 +0000 (10:05 +0000)]
Remove internal bn dependancies from speed.c

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoInclude <openssl/foo.h> instead of "foo.h"
Geoff Thorpe [Sat, 11 Oct 2014 18:31:53 +0000 (14:31 -0400)]
Include <openssl/foo.h> instead of "foo.h"

Exported headers shouldn't be included as "foo.h" by code from the same
module, it should only do so for module-internal headers. This is
because the symlinking of exported headers (from include/openssl/foo.h
to crypto/foo/foo.h) is being removed, and the exported headers are
being moved to the include/openssl/ directory instead.

Change-Id: I4c1d80849544713308ddc6999a549848afc25f94
Signed-off-by: Geoff Thorpe <geoff@openssl.org>
Reviewed-by: Rich Salz <rsalz@openssl.org>
9 years agoFixed memory leak in the event of a failure of BUF_MEM_grow
Matt Caswell [Thu, 4 Dec 2014 09:56:16 +0000 (09:56 +0000)]
Fixed memory leak in the event of a failure of BUF_MEM_grow

Reviewed-by: Richard Levitte <levitte@openssl.org>
9 years agoFix memory leak in SSL_new if errors occur.
Matt Caswell [Thu, 4 Dec 2014 09:46:44 +0000 (09:46 +0000)]
Fix memory leak in SSL_new if errors occur.

Reviewed-by: Richard Levitte <levitte@openssl.org>
9 years agoRemove fips directories from mkfiles.pl
Dr. Stephen Henson [Mon, 8 Dec 2014 13:59:28 +0000 (13:59 +0000)]
Remove fips directories from mkfiles.pl

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoRemove references to deleted fips directory from Makefile.org
Dr. Stephen Henson [Mon, 8 Dec 2014 12:34:52 +0000 (12:34 +0000)]
Remove references to deleted fips directory from Makefile.org

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoremove OPENSSL_FIPSAPI
Dr. Stephen Henson [Mon, 20 Oct 2014 12:13:59 +0000 (13:13 +0100)]
remove OPENSSL_FIPSAPI

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoremove FIPS_*_SIZE_T
Dr. Stephen Henson [Sun, 19 Oct 2014 00:43:06 +0000 (01:43 +0100)]
remove FIPS_*_SIZE_T

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoremove FIPS module code from crypto/evp
Dr. Stephen Henson [Sun, 19 Oct 2014 00:29:04 +0000 (01:29 +0100)]
remove FIPS module code from crypto/evp

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoremove FIPS module code from crypto/bn
Dr. Stephen Henson [Sun, 19 Oct 2014 00:28:41 +0000 (01:28 +0100)]
remove FIPS module code from crypto/bn

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoremove FIPS module code from crypto/ecdh
Dr. Stephen Henson [Sun, 19 Oct 2014 00:14:21 +0000 (01:14 +0100)]
remove FIPS module code from crypto/ecdh

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoremove FIPS module code from crypto/ecdsa
Dr. Stephen Henson [Sun, 19 Oct 2014 00:11:59 +0000 (01:11 +0100)]
remove FIPS module code from crypto/ecdsa

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoRemove FIPS module code from crypto/dh
Dr. Stephen Henson [Sun, 19 Oct 2014 00:08:28 +0000 (01:08 +0100)]
Remove FIPS module code from crypto/dh

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoremove FIPS module code from crypto/dsa
Dr. Stephen Henson [Sun, 19 Oct 2014 00:06:56 +0000 (01:06 +0100)]
remove FIPS module code from crypto/dsa

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoremove FIPS module code from crypto/rsa
Dr. Stephen Henson [Sun, 19 Oct 2014 00:04:07 +0000 (01:04 +0100)]
remove FIPS module code from crypto/rsa

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoRemove FIPS error library from openssl.ec mkerr.pl
Dr. Stephen Henson [Sat, 18 Oct 2014 23:44:19 +0000 (00:44 +0100)]
Remove FIPS error library from openssl.ec mkerr.pl

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agomake depend
Dr. Stephen Henson [Sat, 18 Oct 2014 23:42:08 +0000 (00:42 +0100)]
make depend

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoRemove fips.h reference.
Dr. Stephen Henson [Sat, 18 Oct 2014 23:40:07 +0000 (00:40 +0100)]
Remove fips.h reference.

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoRemove fips_constseg references.
Dr. Stephen Henson [Sat, 18 Oct 2014 23:35:57 +0000 (00:35 +0100)]
Remove fips_constseg references.

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoremove another FIPSCANISTER reference
Dr. Stephen Henson [Sat, 18 Oct 2014 23:31:28 +0000 (00:31 +0100)]
remove another FIPSCANISTER reference

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoremove unnecessary OPENSSL_FIPS reference
Dr. Stephen Henson [Sat, 18 Oct 2014 23:22:10 +0000 (00:22 +0100)]
remove unnecessary OPENSSL_FIPS reference

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoRemove OPENSSL_FIPSCANISTER code.
Dr. Stephen Henson [Sat, 18 Oct 2014 22:59:37 +0000 (23:59 +0100)]
Remove OPENSSL_FIPSCANISTER code.

OPENSSL_FIPSCANISTER is only set if the fips module is being built
(as opposed to being used). Since the fips module wont be built in
master this is redundant.
Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoRemove FIPSCANISTERINTERNAL reference.
Dr. Stephen Henson [Sat, 18 Oct 2014 22:59:11 +0000 (23:59 +0100)]
Remove FIPSCANISTERINTERNAL reference.

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoRemove fips utility build rules from test/Makefile
Dr. Stephen Henson [Sat, 18 Oct 2014 22:56:45 +0000 (23:56 +0100)]
Remove fips utility build rules from test/Makefile

The fips test utilities are only build if an FIPS module is being
built from source. As this isn't done in master these are redundant.
Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoRemove fipscanister build functionality from makefiles.
Dr. Stephen Henson [Sat, 18 Oct 2014 22:47:03 +0000 (23:47 +0100)]
Remove fipscanister build functionality from makefiles.

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoRemove fipscanister from Configure, delete fips directory
Dr. Stephen Henson [Sat, 18 Oct 2014 22:46:00 +0000 (23:46 +0100)]
Remove fipscanister from Configure, delete fips directory

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoRemove some unnecessary OPENSSL_FIPS references
Dr. Stephen Henson [Sat, 18 Oct 2014 19:14:36 +0000 (20:14 +0100)]
Remove some unnecessary OPENSSL_FIPS references

FIPS_mode() exists in all versions of OpenSSL but always returns 0 if OpenSSL is not FIPS
capable.
Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoAdd CHANGES entry for OCB
Matt Caswell [Mon, 8 Dec 2014 00:04:25 +0000 (00:04 +0000)]
Add CHANGES entry for OCB

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoAdded OPENSSL_NO_OCB guards
Matt Caswell [Sun, 7 Dec 2014 23:53:22 +0000 (23:53 +0000)]
Added OPENSSL_NO_OCB guards

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoAdd documentation for OCB mode
Matt Caswell [Sat, 6 Dec 2014 20:55:53 +0000 (20:55 +0000)]
Add documentation for OCB mode

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoAdd tests for OCB mode
Matt Caswell [Sat, 6 Dec 2014 20:55:36 +0000 (20:55 +0000)]
Add tests for OCB mode

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoAdd EVP support for OCB mode
Matt Caswell [Sat, 6 Dec 2014 20:55:10 +0000 (20:55 +0000)]
Add EVP support for OCB mode

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoAdd support for OCB mode as per RFC7253
Matt Caswell [Sat, 6 Dec 2014 20:53:35 +0000 (20:53 +0000)]
Add support for OCB mode as per RFC7253

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoClarify the return values for SSL_get_shared_curve.
Emilia Kasper [Thu, 4 Dec 2014 14:00:11 +0000 (15:00 +0100)]
Clarify the return values for SSL_get_shared_curve.

Reviewed-by: Matt Caswell <matt@openssl.org>
9 years agoAdd extra checks for odd-length EC curve lists.
Emilia Kasper [Mon, 1 Dec 2014 15:55:55 +0000 (16:55 +0100)]
Add extra checks for odd-length EC curve lists.

Odd-length lists should be rejected everywhere upon parsing. Nevertheless,
be extra careful and add guards against off-by-one reads.

Also, drive-by replace inexplicable double-negation with an explicit comparison.

Reviewed-by: Matt Caswell <matt@openssl.org>
9 years agoReject elliptic curve lists of odd lengths.
Emilia Kasper [Mon, 1 Dec 2014 14:04:02 +0000 (15:04 +0100)]
Reject elliptic curve lists of odd lengths.

The Supported Elliptic Curves extension contains a vector of NamedCurves
of 2 bytes each, so the total length must be even. Accepting odd-length
lists was observed to lead to a non-exploitable one-byte out-of-bounds
read in the latest development branches (1.0.2 and master). Released
versions of OpenSSL are not affected.

Thanks to Felix Groebert of the Google Security Team for reporting this issue.

Reviewed-by: Matt Caswell <matt@openssl.org>
9 years agoFix broken build
Emilia Kasper [Fri, 5 Dec 2014 15:08:12 +0000 (16:08 +0100)]
Fix broken build

Add includes missing from commit 33eab3f6af51c6d7fe68ee4960930df4f1616bd5

Reviewed-by: Geoff Thorpe <geoff@openssl.org>
9 years agoReplace GOST_R_MALLOC_FAILURE and GOST_R_NO_MEMORY with ERR_R_MALLOC_FAILURE
Kurt Roeckx [Thu, 4 Dec 2014 17:34:29 +0000 (18:34 +0100)]
Replace GOST_R_MALLOC_FAILURE and GOST_R_NO_MEMORY with ERR_R_MALLOC_FAILURE

Reviewed-by: Richard Levitte <levitte@openssl.org>
9 years agocapi_get_provname: Check return values
Kurt Roeckx [Thu, 4 Dec 2014 17:16:42 +0000 (18:16 +0100)]
capi_get_provname: Check return values

Reviewed-by: Richard Levitte <levitte@openssl.org>
9 years agossl_create_cipher_list: check whether push onto cipherstack succeeds
Jonas Maebe [Mon, 2 Dec 2013 21:04:47 +0000 (22:04 +0100)]
ssl_create_cipher_list: check whether push onto cipherstack succeeds

Signed-off-by: Kurt Roeckx <kurt@roeckx.be>
Reviewed-by: Richard Levitte <levitte@openssl.org>
9 years agossl_cert_dup: Fix memory leak
Jonas Maebe [Mon, 2 Dec 2013 20:46:46 +0000 (21:46 +0100)]
ssl_cert_dup: Fix memory leak

Always use goto err on failure and call ssl_cert_free() on the error path so all
fields and "ret" itself are freed

Signed-off-by: Kurt Roeckx <kurt@roeckx.be>
Reviewed-by: Richard Levitte <levitte@openssl.org>
9 years agodtls1_new: free s on error path
Kurt Roeckx [Mon, 2 Dec 2013 17:07:14 +0000 (18:07 +0100)]
dtls1_new: free s on error path

Reviewed-by: Richard Levitte <levitte@openssl.org>
9 years agodtls1_heartbeat: check for NULL after allocating s->cert->ctypes
Jonas Maebe [Sun, 8 Dec 2013 22:29:43 +0000 (23:29 +0100)]
dtls1_heartbeat: check for NULL after allocating s->cert->ctypes

Signed-off-by: Kurt Roeckx <kurt@roeckx.be>
Reviewed-by: Richard Levitte <levitte@openssl.org>
9 years agodtls1_process_heartbeat: check for NULL after allocating buffer
Jonas Maebe [Sun, 8 Dec 2013 22:29:17 +0000 (23:29 +0100)]
dtls1_process_heartbeat: check for NULL after allocating buffer

Signed-off-by: Kurt Roeckx <kurt@roeckx.be>
Reviewed-by: Richard Levitte <levitte@openssl.org>
9 years agocapi_get_key: check for NULL after allocating key
Jonas Maebe [Sun, 8 Dec 2013 22:05:56 +0000 (23:05 +0100)]
capi_get_key: check for NULL after allocating key

Signed-off-by: Kurt Roeckx <kurt@roeckx.be>
Reviewed-by: Richard Levitte <levitte@openssl.org>
9 years agocapi_cert_get_fname: check for NULL after allocating wfname
Jonas Maebe [Sun, 8 Dec 2013 22:05:23 +0000 (23:05 +0100)]
capi_cert_get_fname: check for NULL after allocating wfname

Signed-off-by: Kurt Roeckx <kurt@roeckx.be>
Reviewed-by: Richard Levitte <levitte@openssl.org>
9 years agocapi_get_provname: free name on error if it was malloc'ed
Jonas Maebe [Sun, 8 Dec 2013 22:04:54 +0000 (23:04 +0100)]
capi_get_provname: free name on error if it was malloc'ed

Signed-off-by: Kurt Roeckx <kurt@roeckx.be>
Reviewed-by: Richard Levitte <levitte@openssl.org>
9 years agopkey_gost_mac_keygen: check for NULL after allocating keydata
Jonas Maebe [Sun, 8 Dec 2013 21:54:58 +0000 (22:54 +0100)]
pkey_gost_mac_keygen: check for NULL after allocating keydata

Signed-off-by: Kurt Roeckx <kurt@roeckx.be>
Reviewed-by: Richard Levitte <levitte@openssl.org>
9 years agopkey_gost_ctrl: check for NULL after allocating pctx->shared_ukm
Jonas Maebe [Sun, 8 Dec 2013 21:54:33 +0000 (22:54 +0100)]
pkey_gost_ctrl: check for NULL after allocating pctx->shared_ukm

Signed-off-by: Kurt Roeckx <kurt@roeckx.be>
Reviewed-by: Richard Levitte <levitte@openssl.org>
9 years agoUpdate changes to indicate that SSLv2 support has been removed
Kurt Roeckx [Thu, 4 Dec 2014 14:50:03 +0000 (15:50 +0100)]
Update changes to indicate that SSLv2 support has been removed

Reviewed-by: Matt Caswell <matt@openssl.org>
9 years agoRemove incorrect code inadvertently introduced through commit 59669b6ab.
Matt Caswell [Thu, 4 Dec 2014 09:22:50 +0000 (09:22 +0000)]
Remove incorrect code inadvertently introduced through commit 59669b6ab.

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoRemove SSLv2 support
Kurt Roeckx [Sun, 30 Nov 2014 14:35:22 +0000 (15:35 +0100)]
Remove SSLv2 support

The only support for SSLv2 left is receiving a SSLv2 compatible client hello.

Reviewed-by: Richard Levitte <levitte@openssl.org>
9 years agoNew location on website for binaries.
Rich Salz [Wed, 3 Dec 2014 15:55:31 +0000 (10:55 -0500)]
New location on website for binaries.

Reviewed-by: Bodo Moeller <bodo@openssl.org>
9 years agoRemove "#if 0" code
Matt Caswell [Wed, 3 Dec 2014 09:21:09 +0000 (09:21 +0000)]
Remove "#if 0" code

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoOnly use the fallback mtu after 2 unsuccessful retransmissions if it is less
Matt Caswell [Tue, 2 Dec 2014 11:16:35 +0000 (11:16 +0000)]
Only use the fallback mtu after 2 unsuccessful retransmissions if it is less
than the mtu we are already using

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoUpdates to s_client and s_server to remove the constant 28 (for IPv4 header
Matt Caswell [Mon, 1 Dec 2014 23:57:44 +0000 (23:57 +0000)]
Updates to s_client and s_server to remove the constant 28 (for IPv4 header
and UDP header) when setting an mtu. This constant is not always correct (e.g.
if using IPv6). Use the new DTLS_CTRL functions instead.

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoIf we really get a situation where the underlying mtu is less than the minimum
Matt Caswell [Tue, 2 Dec 2014 00:16:55 +0000 (00:16 +0000)]
If we really get a situation where the underlying mtu is less than the minimum
we will support then dtls1_do_write can go into an infinite loop. This commit
fixes that.

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoFix dtls_query_mtu so that it will always either complete with an mtu that is
Matt Caswell [Mon, 1 Dec 2014 22:18:18 +0000 (22:18 +0000)]
Fix dtls_query_mtu so that it will always either complete with an mtu that is
at least the minimum or it will fail.
There were some instances in dtls1_query_mtu where the final mtu can end up
being less than the minimum, i.e. where the user has set an mtu manually. This
shouldn't be allowed. Also remove dtls1_guess_mtu that, despite having
logic for guessing an mtu, was actually only ever used to work out the minimum
mtu to use.

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoRemove instances in libssl of the constant 28 (for size of IPv4 header + UDP)
Matt Caswell [Mon, 1 Dec 2014 23:58:05 +0000 (23:58 +0000)]
Remove instances in libssl of the constant 28 (for size of IPv4 header + UDP)
and instead use the value provided by the underlying BIO. Also provide some
new DTLS_CTRLs so that the library user can set the mtu without needing to
know this constant. These new DTLS_CTRLs provide the capability to set the
link level mtu to be used (i.e. including this IP/UDP overhead). The previous
DTLS_CTRLs required the library user to subtract this overhead first.

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoThere are a number of instances throughout the code where the constant 28 is
Matt Caswell [Mon, 1 Dec 2014 23:49:47 +0000 (23:49 +0000)]
There are a number of instances throughout the code where the constant 28 is
used with no explanation. Some of this was introduced as part of RT#1929. The
value 28 is the length of the IP header (20 bytes) plus the UDP header (8
bytes). However use of this constant is incorrect because there may be
instances where a different value is needed, e.g. an IPv4 header is 20 bytes
but an IPv6 header is 40. Similarly you may not be using UDP (e.g. SCTP).
This commit introduces a new BIO_CTRL that provides the value to be used for
this mtu "overhead". It will be used by subsequent commits.

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoThe first call to query the mtu in dtls1_do_write correctly checks that the
Matt Caswell [Mon, 1 Dec 2014 11:41:25 +0000 (11:41 +0000)]
The first call to query the mtu in dtls1_do_write correctly checks that the
mtu that we have received is not less than the minimum. If its less it uses the
minimum instead. The second call to query the mtu does not do that, but
instead uses whatever comes back. We have seen an instance in RT#3592 where we
have got an unreasonably small mtu come back. This commit makes both query
checks consistent.

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoThe SSL_OP_NO_QUERY_MTU option is supposed to stop the mtu from being
Matt Caswell [Mon, 1 Dec 2014 11:13:15 +0000 (11:13 +0000)]
The SSL_OP_NO_QUERY_MTU option is supposed to stop the mtu from being
automatically updated, and we should use the one provided instead.
Unfortunately there are a couple of locations where this is not respected.

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoVerify that we have a sensible message len and fail if not
Matt Caswell [Mon, 1 Dec 2014 11:10:38 +0000 (11:10 +0000)]
Verify that we have a sensible message len and fail if not
RT#3592 provides an instance where the OPENSSL_assert that this commit
replaces can be hit. I was able to recreate this issue by forcing the
underlying BIO to misbehave and come back with very small mtu values. This
happens the second time around the while loop after we have detected that the
MTU has been exceeded following the call to dtls1_write_bytes.

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoUse the SSLv23 method by default
Kurt Roeckx [Sat, 29 Nov 2014 15:17:54 +0000 (16:17 +0100)]
Use the SSLv23 method by default

If SSLv2 and SSLv3 are both disabled we still support SSL/TLS.

Reviewed-by: Richard Levitte <levitte@openssl.org>
9 years agoRemove all .cvsignore files
Rich Salz [Fri, 28 Nov 2014 23:24:53 +0000 (18:24 -0500)]
Remove all .cvsignore files

Reviewed-by: Tim Hudson <tjh@openssl.org>
9 years agoCheck for FindNextFile when defining it rather than FindFirstFile
Richard Levitte [Fri, 28 Nov 2014 22:06:20 +0000 (23:06 +0100)]
Check for FindNextFile when defining it rather than FindFirstFile

Reviewed-by: Matt Caswell <matt@openssl.org>
9 years ago[PR3597] Advance to the next state variant when reusing messages.
Richard Levitte [Fri, 28 Nov 2014 19:40:10 +0000 (20:40 +0100)]
[PR3597] Advance to the next state variant when reusing messages.

Previously, state variant was not advanced, which resulted in state
being stuck in the st1 variant (usually "_A").

This broke certificate callback retry logic when accepting connections
that were using SSLv2 ClientHello (hence reusing the message), because
their state never advanced to SSL3_ST_SR_CLNT_HELLO_C variant required
for the retry code path.

Reported by Yichun Zhang (agentzh).

Signed-off-by: Piotr Sikora <piotr@cloudflare.com>
Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
9 years agoCorrect some layout issues, convert all remaining tabs to appropriate amounts of...
Richard Levitte [Fri, 28 Nov 2014 15:31:10 +0000 (16:31 +0100)]
Correct some layout issues, convert all remaining tabs to appropriate amounts of spaces.

Reviewed-by: Matt Caswell <matt@openssl.org>
9 years agoImproves the proxy certificates howto doc.
Alok Menghrajani [Fri, 14 Nov 2014 18:39:41 +0000 (10:39 -0800)]
Improves the proxy certificates howto doc.

The current documentation contains a bunch of spelling and grammar mistakes. I also
found it hard to understand some paragraphs, so here is my attempt to improve its
readability.

Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
9 years agoFix warning in ssl2_enc
Matt Caswell [Thu, 27 Nov 2014 20:32:21 +0000 (20:32 +0000)]
Fix warning in ssl2_enc

Reviewed-by: Richard Levitte <levitte@openssl.org>
9 years agoRemove more references to dtls1_enc
Matt Caswell [Thu, 27 Nov 2014 20:31:59 +0000 (20:31 +0000)]
Remove more references to dtls1_enc

Reviewed-by: Richard Levitte <levitte@openssl.org>
9 years agoCheck EVP_Cipher return values for SSL2
Matt Caswell [Tue, 18 Nov 2014 15:03:55 +0000 (15:03 +0000)]
Check EVP_Cipher return values for SSL2

Reviewed-by: Richard Levitte <levitte@openssl.org>
9 years agoDelete unused file
Matt Caswell [Tue, 18 Nov 2014 13:51:20 +0000 (13:51 +0000)]
Delete unused file

Reviewed-by: Richard Levitte <levitte@openssl.org>
9 years agoAdd checks to the return value of EVP_Cipher to prevent silent encryption failure.
Matt Caswell [Tue, 18 Nov 2014 12:56:26 +0000 (12:56 +0000)]
Add checks to the return value of EVP_Cipher to prevent silent encryption failure.

PR#1767

Reviewed-by: Richard Levitte <levitte@openssl.org>
9 years agoRemove redundant checks in ssl_cert_dup. This was causing spurious error messages...
Matt Caswell [Thu, 27 Nov 2014 11:06:43 +0000 (11:06 +0000)]
Remove redundant checks in ssl_cert_dup. This was causing spurious error messages when using GOST

PR#3613

Reviewed-by: Richard Levitte <levitte@openssl.org>
9 years agoTidy up ocsp help output
Matt Caswell [Thu, 27 Nov 2014 10:15:47 +0000 (10:15 +0000)]
Tidy up ocsp help output

Reviewed-by: Dr. Stephen Henson <steve@openssl.org>
9 years agoAdd documentation on -timeout option in the ocsp utility
André Guerreiro [Thu, 27 Nov 2014 10:11:33 +0000 (10:11 +0000)]
Add documentation on -timeout option in the ocsp utility

PR#3612

Reviewed-by: Dr. Stephen Henson <steve@openssl.org>
9 years agoNetWare compilation fix.
Guenter [Thu, 27 Nov 2014 13:33:47 +0000 (13:33 +0000)]
NetWare compilation fix.

Workaround for NetWare CodeWarrior compiler which doesn't properly lookup
includes when in same directory as the C file which includes it.

PR#3569
Reviewed-by: Stephen Henson <steve@openssl.org>
Reviewed-by: Richard Levitte <levitte@openssl.org>