oweals/openssl.git
10 years agoFixup for ancient compilers.
Ben Laurie [Mon, 19 May 2014 16:38:56 +0000 (17:38 +0100)]
Fixup for ancient compilers.

10 years agoZero-initialize heartbeat test write buffer
Mike Bland [Thu, 1 May 2014 14:10:14 +0000 (10:10 -0400)]
Zero-initialize heartbeat test write buffer

The previous calls to memset() were added to tear_down() when I noticed the
test spuriously failing in opt mode, with different results each time. This
appeared to be because the allocator zeros out memory in debug mode, but not
in opt mode. Since the heartbeat functions silently drop the request on error
without modifying the contents of the write buffer, whatever random contents
were in memory before being reallocated to the write buffer used in the test
would cause nondeterministic test failures in the Heartbleed regression cases.
Adding these calls allowed the test to pass in both debug and opt modes.

Ben Laurie notified me offline that the test was aborting in
debug-ben-debug-64-clang mode, configured with GitConfigure and built with
GitMake. Looking into this, I realized the first memset() call was zeroing out
a reference count used by SSL_free() that was checked in
debug-ben-debug-64-clang mode but not in the normal debug mode.

Removing the memset() calls from tear_down() and adding a memset() for the
write buffer in set_up() addresses the issue and allows the test to
successfully execute in debug, opt, and debug-ben-debug-64-clang modes.

10 years agoMore through error checks in set_up
Mike Bland [Thu, 1 May 2014 14:08:18 +0000 (10:08 -0400)]
More through error checks in set_up

Checks the return values of ssl_init_wbio_buffer() and ssl3_setup_buffers().

10 years agoMake it build/run.
Ben Laurie [Tue, 29 Apr 2014 17:36:39 +0000 (18:36 +0100)]
Make it build/run.

10 years agoUnit/regression test for TLS heartbeats.
Mike Bland [Wed, 16 Apr 2014 11:21:26 +0000 (07:21 -0400)]
Unit/regression test for TLS heartbeats.

Regression test against CVE-2014-0160 (Heartbleed).

More info: http://mike-bland.com/tags/heartbleed.html

10 years agoAdd "teaser" AES module for ARMv8.
Andy Polyakov [Mon, 19 May 2014 06:46:44 +0000 (08:46 +0200)]
Add "teaser" AES module for ARMv8.

"Teaser" means that it's initial proof-of-concept to build EVP module
upon.

10 years agoMoved note about lack of support for AEAD modes out of BUGS section to SUPPORTED...
Matt Caswell [Thu, 15 May 2014 20:13:38 +0000 (21:13 +0100)]
Moved note about lack of support for AEAD modes out of BUGS section to SUPPORTED CIPHERS section (bug has been fixed, but still no support for AEAD)

10 years agoEnc doesn't support AEAD ciphers.
Dr. Stephen Henson [Thu, 15 May 2014 13:05:47 +0000 (14:05 +0100)]
Enc doesn't support AEAD ciphers.
(cherry picked from commit 09184dddead165901700b31eb39d540ba30f93c5)

10 years agoFix grammar error in verify pod. PR#3355
Jeffrey Walton [Wed, 14 May 2014 21:49:30 +0000 (22:49 +0100)]
Fix grammar error in verify pod. PR#3355

10 years agoAdd information to BUGS section of enc documentation. PR#3354
Jeffrey Walton [Wed, 14 May 2014 21:48:26 +0000 (22:48 +0100)]
Add information to BUGS section of enc documentation. PR#3354

10 years agoCorrected POD syntax errors. PR#3353
Michal Bozon [Wed, 14 May 2014 20:07:51 +0000 (21:07 +0100)]
Corrected POD syntax errors. PR#3353

10 years agoHave the .pc files depend on each other rather than duplicating the
Mike Frysinger [Mon, 12 May 2014 22:31:51 +0000 (23:31 +0100)]
Have the .pc files depend on each other rather than duplicating the
various link settings. PR#3332

10 years agoCheck sk_SSL_CIPHER_num() after assigning sk.
Kurt Roeckx [Mon, 12 May 2014 16:19:14 +0000 (18:19 +0200)]
Check sk_SSL_CIPHER_num() after assigning sk.

10 years agoCorrect the return type on the signature for X509_STORE_CTX_get_ex_data given in...
Jean-Paul Calderone [Thu, 3 Apr 2014 00:47:38 +0000 (20:47 -0400)]
Correct the return type on the signature for X509_STORE_CTX_get_ex_data given in the pod file.

10 years agoReplace manual ASN1 decoder with ASN1_get_object
Serguei E. Leontiev [Sun, 11 May 2014 18:46:42 +0000 (19:46 +0100)]
Replace manual ASN1 decoder with ASN1_get_object

Replace manual ASN.1 decoder with ASN1_get object. This
will decode the tag and length properly and check against
it does not exceed the supplied buffer length.

PR#3335

10 years agoCorrect example.
Dr. Stephen Henson [Sat, 10 May 2014 01:04:23 +0000 (02:04 +0100)]
Correct example.

10 years agoAdd "teaser" AES module for PowerISA 2.07.
Andy Polyakov [Mon, 12 May 2014 08:35:29 +0000 (10:35 +0200)]
Add "teaser" AES module for PowerISA 2.07.

"Teaser" means that it's not integrated yet and purpose of this
commit is primarily informational, to exhibit design choices,
such as how to handle alignment and endianness. In other words
it's proof-of-concept code that EVP module will build upon.

10 years agoFixed NULL pointer dereference. See PR#3321
Matt Caswell [Sun, 11 May 2014 23:38:37 +0000 (00:38 +0100)]
Fixed NULL pointer dereference. See PR#3321

10 years agoSet authkey to NULL and check malloc return value.
Kurt Roeckx [Thu, 1 May 2014 11:10:01 +0000 (13:10 +0200)]
Set authkey to NULL and check malloc return value.

10 years agodgram_sctp_ctrl: authkey memory leak
Martin Brejcha [Thu, 1 May 2014 10:07:09 +0000 (12:07 +0200)]
dgram_sctp_ctrl: authkey memory leak

PR: 3327

10 years agoAvoid out-of-bounds write in SSL_get_shared_ciphers
Günther Noack [Thu, 1 May 2014 11:33:11 +0000 (13:33 +0200)]
Avoid out-of-bounds write in SSL_get_shared_ciphers

PR: 3317

10 years agoFix infinite loop. PR#3347
Viktor Dukhovni [Sun, 11 May 2014 19:28:56 +0000 (20:28 +0100)]
Fix infinite loop. PR#3347

10 years agoMove length check earlier to ensure we don't go beyond the end of the user's buffer...
Matt Caswell [Sun, 11 May 2014 10:27:26 +0000 (11:27 +0100)]
Move length check earlier to ensure we don't go beyond the end of the user's buffer. PR#3320

10 years agosafety check to ensure we dont send out beyond the users buffer
Tim Hudson [Sat, 26 Apr 2014 15:55:47 +0000 (01:55 +1000)]
safety check to ensure we dont send out beyond the users buffer

10 years agoFixed CRLF in file
Matt Caswell [Sat, 10 May 2014 00:19:50 +0000 (01:19 +0100)]
Fixed CRLF in file

10 years agoReturn an error if no recipient type matches.
Dr. Stephen Henson [Thu, 8 May 2014 12:10:56 +0000 (13:10 +0100)]
Return an error if no recipient type matches.

If the key type does not match any CMS recipient type return
an error instead of using a random key (MMA mitigation). This
does not leak any useful information to an attacker.

PR#3348

10 years agos_client/s_server: support unix domain sockets
Geoff Thorpe [Sat, 26 Apr 2014 05:22:54 +0000 (01:22 -0400)]
s_client/s_server: support unix domain sockets

The "-unix <path>" argument allows s_server and s_client to use a unix
domain socket in the filesystem instead of IPv4 ("-connect", "-port",
"-accept", etc). If s_server exits gracefully, such as when "-naccept"
is used and the requested number of SSL/TLS connections have occurred,
then the domain socket file is removed. On ctrl-C, it is likely that
the stale socket file will be left over, such that s_server would
normally fail to restart with the same arguments. For this reason,
s_server also supports an "-unlink" option, which will clean up any
stale socket file before starting.

If you have any reason to want encrypted IPC within an O/S instance,
this concept might come in handy. Otherwise it just demonstrates that
there is nothing about SSL/TLS that limits it to TCP/IP in any way.

(There might also be benchmarking and profiling use in this path, as
unix domain sockets are much lower overhead than connecting over local
IP addresses).

Signed-off-by: Geoff Thorpe <geoff@openssl.org>
10 years agocoverity 966576 - close socket in error path
Tim Hudson [Mon, 5 May 2014 00:53:39 +0000 (10:53 +1000)]
coverity 966576 - close socket in error path

10 years agoPR#3342 fix resource leak coverity issue 966577
Tim Hudson [Mon, 5 May 2014 00:39:30 +0000 (10:39 +1000)]
PR#3342 fix resource leak coverity issue 966577

10 years agofix coverity issue 966597 - error line is not always initialised
Tim Hudson [Sun, 4 May 2014 22:22:42 +0000 (08:22 +1000)]
fix coverity issue 966597 - error line is not always initialised

10 years agoFixed NULL pointer dereference in PKCS7_dataDecode reported by David Ramos in PR...
Matt Caswell [Wed, 7 May 2014 22:21:02 +0000 (23:21 +0100)]
Fixed NULL pointer dereference in PKCS7_dataDecode reported by David Ramos in PR#3339

10 years agoevp: prevent underflow in base64 decoding
Geoff Thorpe [Sun, 4 May 2014 22:44:14 +0000 (18:44 -0400)]
evp: prevent underflow in base64 decoding

This patch resolves RT ticket #2608.

Thanks to Robert Dugal for originally spotting this, and to David
Ramos for noticing that the ball had been dropped.

Signed-off-by: Geoff Thorpe <geoff@openssl.org>
10 years agobignum: allow concurrent BN_MONT_CTX_set_locked()
Geoff Thorpe [Sun, 4 May 2014 20:19:22 +0000 (16:19 -0400)]
bignum: allow concurrent BN_MONT_CTX_set_locked()

The lazy-initialisation of BN_MONT_CTX was serialising all threads, as
noted by Daniel Sands and co at Sandia. This was to handle the case that
2 or more threads race to lazy-init the same context, but stunted all
scalability in the case where 2 or more threads are doing unrelated
things! We favour the latter case by punishing the former. The init work
gets done by each thread that finds the context to be uninitialised, and
we then lock the "set" logic after that work is done - the winning
thread's work gets used, the losing threads throw away what they've done.

Signed-off-by: Geoff Thorpe <geoff@openssl.org>
10 years agoInitialize num properly.
Dr. Stephen Henson [Tue, 6 May 2014 13:07:37 +0000 (14:07 +0100)]
Initialize num properly.

PR#3289
PR#3345

10 years agoSet Enveloped data version to 2 if ktri version not zero.
Dr. Stephen Henson [Mon, 5 May 2014 22:56:43 +0000 (23:56 +0100)]
Set Enveloped data version to 2 if ktri version not zero.

10 years ago- fix coverity issues 966593-966596
Tim Hudson [Sun, 4 May 2014 20:41:22 +0000 (06:41 +1000)]
- fix coverity issues 966593-966596

10 years agoapps/s_server: document '-naccept' cmd-line argument
Geoff Thorpe [Sun, 4 May 2014 22:46:42 +0000 (18:46 -0400)]
apps/s_server: document '-naccept' cmd-line argument

Signed-off-by: Geoff Thorpe <geoff@openssl.org>
10 years agomd5/asm/md5-[586|x86_64].pl: +15% on Atom.
Andy Polyakov [Sun, 4 May 2014 14:56:00 +0000 (16:56 +0200)]
md5/asm/md5-[586|x86_64].pl: +15% on Atom.

[MD5 is hardly relevant, just cleaning up repository]

10 years agoC64x+ assembply pack: add RC4 module.
Andy Polyakov [Sun, 4 May 2014 14:39:59 +0000 (16:39 +0200)]
C64x+ assembply pack: add RC4 module.

10 years agoC64x+ assembly pack: make it work with older toolchain.
Andy Polyakov [Sun, 4 May 2014 14:38:32 +0000 (16:38 +0200)]
C64x+ assembly pack: make it work with older toolchain.

10 years agosha/asm/sha1-armv4-large.pl: add NEON and ARMv8 code paths.
Andy Polyakov [Sun, 4 May 2014 08:57:55 +0000 (10:57 +0200)]
sha/asm/sha1-armv4-large.pl: add NEON and ARMv8 code paths.
sha/asm/sha256-armv4.pl: add ARMv8 code path.

10 years agocrypto/armcap.c: detect ARMv8 capabilities [in 32-bit build].
Andy Polyakov [Sun, 4 May 2014 08:55:49 +0000 (10:55 +0200)]
crypto/armcap.c: detect ARMv8 capabilities [in 32-bit build].

10 years agoDouble free in i2o_ECPublicKey
David Ramos [Sat, 3 May 2014 10:00:27 +0000 (12:00 +0200)]
Double free in i2o_ECPublicKey

PR: 3338

10 years agodso: eliminate VMS code on non-VMS systems
Geoff Thorpe [Sun, 27 Apr 2014 20:06:50 +0000 (16:06 -0400)]
dso: eliminate VMS code on non-VMS systems

Even though the meat of dso_vms.c is compiled out on non-VMS builds,
the (pre-)compiler still traverses some of the macro handling. This
trips up at least one non-VMS build configuration, so this commit
makes the skip-VMS case more robust.

Signed-off-by: Geoff Thorpe <geoff@openssl.org>
10 years agotypo in SSL_get_peer_cert_chain docs
Jeff Trawick [Sun, 13 Apr 2014 13:10:17 +0000 (15:10 +0200)]
typo in SSL_get_peer_cert_chain docs

RT: 3304

10 years agoFixed spelling error in error message. Fix supplied by Marcos Marado
Matt Caswell [Wed, 30 Apr 2014 23:23:57 +0000 (00:23 +0100)]
Fixed spelling error in error message. Fix supplied by Marcos Marado

10 years agobignum: fix boundary condition in montgomery logic
Geoff Thorpe [Wed, 30 Apr 2014 15:39:24 +0000 (11:39 -0400)]
bignum: fix boundary condition in montgomery logic

It's not clear whether this inconsistency could lead to an actual
computation error, but it involved a BIGNUM being passed around the
montgomery logic in an inconsistent state. This was found using flags
-DBN_DEBUG -DBN_DEBUG_RAND, and working backwards from this assertion
in 'ectest';

ectest: bn_mul.c:960: BN_mul: Assertion `(_bnum2->top == 0) ||
(_bnum2->d[_bnum2->top - 1] != 0)' failed

Signed-off-by: Geoff Thorpe <geoff@openssl.org>
10 years agoMore warnings.
Ben Laurie [Tue, 29 Apr 2014 17:19:54 +0000 (18:19 +0100)]
More warnings.

10 years agoFix SSL_CONF_cmd missing =back
Matt Caswell [Sun, 27 Apr 2014 17:57:34 +0000 (18:57 +0100)]
Fix SSL_CONF_cmd missing =back

10 years agoFixed minor errors in docs
Matt Caswell [Sat, 26 Apr 2014 20:56:36 +0000 (21:56 +0100)]
Fixed minor errors in docs

10 years agoPKCS5_PBKDF2_HMAC documentation submitted by Jeffrey Walton
Matt Caswell [Sat, 26 Apr 2014 20:44:26 +0000 (21:44 +0100)]
PKCS5_PBKDF2_HMAC documentation submitted by Jeffrey Walton

10 years agodoc: Add missing =back directive.
Chris Rorvick [Sat, 26 Apr 2014 16:10:45 +0000 (11:10 -0500)]
doc: Add missing =back directive.

Signed-off-by: Chris Rorvick <chris@rorvick.com>
10 years agoFix version documentation.
mancha [Fri, 25 Apr 2014 14:58:49 +0000 (14:58 +0000)]
Fix version documentation.

Specify -f is for compilation flags. Add -d to synopsis section.

Closes #77.

10 years agoFix eckey_priv_encode()
mancha [Thu, 24 Apr 2014 19:06:20 +0000 (19:06 +0000)]
Fix eckey_priv_encode()

Fix eckey_priv_encode to return an error on failure of i2d_ECPrivateKey.

10 years agomake depend
Geoff Thorpe [Fri, 25 Apr 2014 04:44:17 +0000 (00:44 -0400)]
make depend

10 years agoapps: constify some string parameters
Geoff Thorpe [Fri, 25 Apr 2014 18:27:02 +0000 (14:27 -0400)]
apps: constify some string parameters

There are certainly many more constifiable strings in the various
interfaces, which I hope to get to eventually.

Signed-off-by: Geoff Thorpe <geoff@openssl.org>
10 years agoutil/mkerr.pl: fix perl warning
Geoff Thorpe [Fri, 25 Apr 2014 05:20:16 +0000 (01:20 -0400)]
util/mkerr.pl: fix perl warning

Gets rid of this;

defined(@array) is deprecated at ../util/mkerr.pl line 792.
        (Maybe you should just omit the defined()?)
defined(@array) is deprecated at ../util/mkerr.pl line 800.
        (Maybe you should just omit the defined()?)

Signed-off-by: Geoff Thorpe <geoff@openssl.org>
10 years agoRemove latest version, it's pretty redundant and just one more thing
Mark J. Cox [Fri, 25 Apr 2014 07:12:13 +0000 (08:12 +0100)]
Remove latest version, it's pretty redundant and just one more thing
to keep up to date with releases.  Reported because
http://www.openssl.org/support/faq.html#MISC1 was out of date

10 years agoutil/mkdef.pl: o_time.h doesn't exist any more
Geoff Thorpe [Fri, 25 Apr 2014 04:58:16 +0000 (00:58 -0400)]
util/mkdef.pl: o_time.h doesn't exist any more

o_time.h was removed in commit ff49a94, which breaks "make update"
unless mkdir.pl is updated accordingly.

Signed-off-by: Geoff Thorpe <geoff@openssl.org>
10 years agoAdd new sponsors
Steve Marquess [Thu, 24 Apr 2014 11:13:05 +0000 (07:13 -0400)]
Add new sponsors

10 years agobn/asm/armv4-gf2m.pl, modes/asm/ghash-armv4.pl: faster multiplication
Andy Polyakov [Thu, 24 Apr 2014 08:16:58 +0000 (10:16 +0200)]
bn/asm/armv4-gf2m.pl, modes/asm/ghash-armv4.pl: faster multiplication
algorithm suggested in following paper:

Câmara, D.; Gouvêa, C. P. L.; López, J. & Dahab, R.: Fast Software
Polynomial Multiplication on ARM Processors using the NEON Engine.

http://conradoplg.cryptoland.net/files/2010/12/mocrysen13.pdf

10 years agoaes/asm/bsaes-x86_64.pl: Atom-specific optimization.
Andy Polyakov [Thu, 24 Apr 2014 08:13:30 +0000 (10:13 +0200)]
aes/asm/bsaes-x86_64.pl: Atom-specific optimization.

10 years agoFix use after free.
Ben Laurie [Wed, 23 Apr 2014 06:24:03 +0000 (07:24 +0100)]
Fix use after free.

10 years agoFix double frees.
Ben Laurie [Tue, 22 Apr 2014 11:38:26 +0000 (12:38 +0100)]
Fix double frees.

10 years agoFix SSL_CTX_get{first,next}_certificate.
Kaspar Brand [Mon, 21 Apr 2014 15:52:28 +0000 (16:52 +0100)]
Fix SSL_CTX_get{first,next}_certificate.

Fix typo that stopped SSL_CTX_get_{first,next}_certificate from working.

10 years agoDocument -debug_decrypt option.
Dr. Stephen Henson [Wed, 16 Apr 2014 11:15:43 +0000 (12:15 +0100)]
Document -debug_decrypt option.

10 years agoExtension checking fixes.
Dr. Stephen Henson [Tue, 15 Apr 2014 17:48:54 +0000 (18:48 +0100)]
Extension checking fixes.

When looking for an extension we need to set the last found
position to -1 to properly search all extensions.

PR#3309.

10 years agoClarify CMS_decrypt behaviour.
Dr. Stephen Henson [Tue, 15 Apr 2014 17:17:12 +0000 (18:17 +0100)]
Clarify CMS_decrypt behaviour.

10 years agoAdd new key fingerprint.
Dr. Stephen Henson [Fri, 11 Apr 2014 01:50:51 +0000 (02:50 +0100)]
Add new key fingerprint.

10 years agoFix free errors in ocsp utility.
Dr. Stephen Henson [Wed, 9 Apr 2014 14:42:40 +0000 (15:42 +0100)]
Fix free errors in ocsp utility.

Keep copy of any host, path and port values allocated by
OCSP_parse_url and free as necessary.

10 years agossleay_rand_add returns a value in 1.1.0
Dr. Stephen Henson [Wed, 9 Apr 2014 14:35:51 +0000 (15:35 +0100)]
ssleay_rand_add returns a value in 1.1.0

10 years agoUpdate NEWS
Dr. Stephen Henson [Sat, 5 Apr 2014 23:51:06 +0000 (00:51 +0100)]
Update NEWS

10 years agoReturn if ssleay_rand_add called with zero num.
Dr. Stephen Henson [Sun, 6 Apr 2014 22:11:20 +0000 (23:11 +0100)]
Return if ssleay_rand_add called with zero num.

Treat a zero length passed to ssleay_rand_add a no op: the existing logic
zeroes the md value which is very bad. OpenSSL itself never does this
internally and the actual call doesn't make sense as it would be passing
zero bytes of entropy.

Thanks to Marcus Meissner <meissner@suse.de> for reporting this bug.
(cherry picked from commit 5be1ae28ef3c4bdec95b94f14e0e939157be550a)

10 years agoAdd heartbeat extension bounds check.
Dr. Stephen Henson [Sat, 5 Apr 2014 23:51:06 +0000 (00:51 +0100)]
Add heartbeat extension bounds check.

A missing bounds check in the handling of the TLS heartbeat extension
can be used to reveal up to 64k of memory to a connected client or
server.

Thanks for Neel Mehta of Google Security for discovering this bug and to
Adam Langley <agl@chromium.org> and Bodo Moeller <bmoeller@acm.org> for
preparing the fix (CVE-2014-0160)
(cherry picked from commit 96db9023b881d7cd9f379b0c154650d6c108e9a3)

10 years agoDocument -verify_return_error option.
Dr. Stephen Henson [Mon, 7 Apr 2014 12:02:10 +0000 (13:02 +0100)]
Document -verify_return_error option.

10 years agocrypto/modes/gcm128.c: more strict aliasing fixes.
Andy Polyakov [Sun, 6 Apr 2014 15:19:54 +0000 (17:19 +0200)]
crypto/modes/gcm128.c: more strict aliasing fixes.

10 years agovpaes-[x86_64|ppc].pl: fix typo, which for some reason triggers rkhunter.
Andy Polyakov [Sun, 6 Apr 2014 10:50:36 +0000 (12:50 +0200)]
vpaes-[x86_64|ppc].pl: fix typo, which for some reason triggers rkhunter.

10 years agoSet TLS padding extension value.
Dr. Stephen Henson [Sat, 5 Apr 2014 19:43:54 +0000 (20:43 +0100)]
Set TLS padding extension value.

Enable TLS padding extension using official value from:

http://www.iana.org/assignments/tls-extensiontype-values/tls-extensiontype-values.xhtml

10 years agoFor more than 160 bits of security disable SHA1 HMAC
Dr. Stephen Henson [Sat, 5 Apr 2014 12:39:35 +0000 (13:39 +0100)]
For more than 160 bits of security disable SHA1 HMAC

10 years agoUpdate security framework docs.
Dr. Stephen Henson [Sat, 5 Apr 2014 12:29:41 +0000 (13:29 +0100)]
Update security framework docs.

10 years agoUpdate FAQ.
Dr. Stephen Henson [Fri, 4 Apr 2014 11:46:39 +0000 (12:46 +0100)]
Update FAQ.

10 years agoUse correct length when prompting for password.
Dr. Stephen Henson [Fri, 4 Apr 2014 11:44:43 +0000 (12:44 +0100)]
Use correct length when prompting for password.

Use bufsiz - 1 not BUFSIZ - 1 when prompting for a password in
the openssl utility.

Thanks to Rob Mackinnon, Leviathan Security for reporting this issue.

10 years agoDocument new crl option.
Dr. Stephen Henson [Thu, 3 Apr 2014 12:27:08 +0000 (13:27 +0100)]
Document new crl option.

10 years agoAdd option to generate old hash format.
Tim Hudson [Thu, 3 Apr 2014 12:23:51 +0000 (13:23 +0100)]
Add option to generate old hash format.

New -hash_old to generate CRL hashes using old
(before OpenSSL 1.0.0) algorithm.

10 years agoFix base64 decoding bug.
Eric Young [Wed, 2 Apr 2014 18:50:33 +0000 (19:50 +0100)]
Fix base64 decoding bug.

A short PEM encoded sequence if passed to the BIO, and the file
had 2 \n following would fail.

PR#3289

10 years agoDon't try and verify signatures if key is NULL (CVE-2013-0166)
Dr. Stephen Henson [Thu, 24 Jan 2013 13:30:42 +0000 (13:30 +0000)]
Don't try and verify signatures if key is NULL (CVE-2013-0166)
Add additional check to catch this in ASN1_item_verify too.
(cherry picked from commit 66e8211c0b1347970096e04b18aa52567c325200)

10 years agoFix warning.
Ben Laurie [Sat, 29 Mar 2014 19:51:58 +0000 (19:51 +0000)]
Fix warning.

10 years agoAdd initial security framework docs.
Dr. Stephen Henson [Fri, 28 Mar 2014 16:40:56 +0000 (16:40 +0000)]
Add initial security framework docs.

10 years agoSet security level in cipher string.
Dr. Stephen Henson [Tue, 18 Mar 2014 14:35:22 +0000 (14:35 +0000)]
Set security level in cipher string.

Allow setting of security level in cipher string using the
@SECLEVEL=N syntax.

10 years agoSet security level to zero is ssltest
Dr. Stephen Henson [Sun, 16 Feb 2014 12:50:18 +0000 (12:50 +0000)]
Set security level to zero is ssltest

Since ssltest needs to test low security ciphersuites and keys
set security level to zero so they aren't rejected.

10 years agoSecurity callback debug print out.
Dr. Stephen Henson [Mon, 17 Feb 2014 00:10:00 +0000 (00:10 +0000)]
Security callback debug print out.

Add a debugging security callback option to s_client/s_server. This will
print out each security parameter as it is accepted or rejected.

10 years agoSecurity framework.
Dr. Stephen Henson [Sun, 15 Dec 2013 13:32:24 +0000 (13:32 +0000)]
Security framework.

Security callback: selects which parameters are permitted including
sensible defaults based on bits of security.

The "parameters" which can be selected include: ciphersuites,
curves, key sizes, certificate signature algorithms, supported
signature algorithms, DH parameters, SSL/TLS version, session tickets
and compression.

In some cases prohibiting the use of a parameters will mean they are
not advertised to the peer: for example cipher suites and ECC curves.
In other cases it will abort the handshake: e.g DH parameters or the
peer key size.

Documentation to follow...

10 years agoCheck return value of ssl3_output_cert_chain
Dr. Stephen Henson [Tue, 18 Mar 2014 14:19:22 +0000 (14:19 +0000)]
Check return value of ssl3_output_cert_chain

10 years agoAllow return of supported ciphers.
Dr. Stephen Henson [Tue, 14 Jan 2014 14:55:21 +0000 (14:55 +0000)]
Allow return of supported ciphers.

New function ssl_cipher_disabled.

Check for disabled client ciphers using ssl_cipher_disabled.

New function to return only supported ciphers.

New option to ciphers utility to print only supported ciphers.

10 years agoAuto DH support.
Dr. Stephen Henson [Wed, 22 Jan 2014 16:22:48 +0000 (16:22 +0000)]
Auto DH support.

Add auto DH parameter support. This is roughly equivalent to the
ECDH auto curve selection but for DH. An application can just call

SSL_CTX_set_auto_dh(ctx, 1);

and appropriate DH parameters will be used based on the size of the
server key.

Unlike ECDH there is no way a peer can indicate the range of DH parameters
it supports. Some peers cannot handle DH keys larger that 1024 bits for
example. In this case if you call:

SSL_CTX_set_auto_dh(ctx, 2);

Only 1024 bit DH parameters will be used.

If the server key is 7680 bits or more in size then 8192 bit DH parameters
will be used: these will be *very* slow.

The old export ciphersuites aren't supported but those are very
insecure anyway.

10 years agoAdd functions returning security bits.
Dr. Stephen Henson [Sat, 18 Jan 2014 14:51:40 +0000 (14:51 +0000)]
Add functions returning security bits.

Add functions to return the "bits of security" for various public key
algorithms. Based on SP800-57.

10 years agoFix memory leak with client auth.
Dr. Stephen Henson [Thu, 27 Mar 2014 16:10:50 +0000 (16:10 +0000)]
Fix memory leak with client auth.
(cherry picked from commit bc5ec653ba65fedb1619c8182088497de8a97a70)

10 years agoAdd -no_resumption_on_reneg to SSL_CONF.
Dr. Stephen Henson [Thu, 27 Mar 2014 15:51:25 +0000 (15:51 +0000)]
Add -no_resumption_on_reneg to SSL_CONF.
(cherry picked from commit 1f44dac24d1cb752b1a06be9091bb03a88a8598e)

10 years agoUpdate chain building function.
Dr. Stephen Henson [Thu, 27 Mar 2014 14:20:16 +0000 (14:20 +0000)]
Update chain building function.

Don't clear verification errors from the error queue unless
SSL_BUILD_CHAIN_FLAG_CLEAR_ERROR is set.

If errors occur during verification and SSL_BUILD_CHAIN_FLAG_IGNORE_ERROR
is set return 2 so applications can issue warnings.
(cherry picked from commit 2dd6976f6d02f98b30c376951ac38f780a86b3b5)

10 years agoAllow duplicate certs in ssl_build_cert_chain
Emilia Kasper [Mon, 24 Mar 2014 11:33:54 +0000 (12:33 +0100)]
Allow duplicate certs in ssl_build_cert_chain