Dr. Stephen Henson [Tue, 13 May 2014 17:48:31 +0000 (18:48 +0100)]
Fix for CVE-2014-0195
A buffer overrun attack can be triggered by sending invalid DTLS fragments
to an OpenSSL DTLS client or server. This is potentially exploitable to
run arbitrary code on a vulnerable client or server.
Fixed by adding consistency check for DTLS fragments.
Thanks to Jüri Aedla for reporting this issue.
(cherry picked from commit
1632ef744872edc2aa2a53d487d3e79c965a4ad3)
Dr. Stephen Henson [Fri, 16 May 2014 11:49:48 +0000 (12:49 +0100)]
Fix for CVE-2014-0224
Only accept change cipher spec when it is expected instead of at any
time. This prevents premature setting of session keys before the master
secret is determined which an attacker could use as a MITM attack.
Thanks to KIKUCHI Masashi (Lepidum Co. Ltd.) for reporting this issue
and providing the initial fix this patch is based on.
(cherry picked from commit
bc8923b1ec9c467755cd86f7848c50ee8812e441)
Dr. Stephen Henson [Fri, 16 May 2014 11:55:16 +0000 (12:55 +0100)]
Additional CVE-2014-0224 protection.
Return a fatal error if an attempt is made to use a zero length
master secret.
(cherry picked from commit
006cd7083f76ed5cb0d9a914857e9231ef1bc317)
Dr. Stephen Henson [Fri, 16 May 2014 12:00:45 +0000 (13:00 +0100)]
Fix CVE-2014-0221
Unnecessary recursion when receiving a DTLS hello request can be used to
crash a DTLS client. Fixed by handling DTLS hello request without recursion.
Thanks to Imre Rad (Search-Lab Ltd.) for discovering this issue.
(cherry picked from commit
d3152655d5319ce883c8e3ac4b99f8de4c59d846)
Dr. Stephen Henson [Thu, 29 May 2014 14:00:05 +0000 (15:00 +0100)]
Fix CVE-2014-3470
Check session_cert is not NULL before dereferencing it.
(cherry picked from commit
8011cd56e39a433b1837465259a9bd24a38727fb)
Andy Polyakov [Wed, 4 Jun 2014 06:34:18 +0000 (08:34 +0200)]
aesp8-ppc.pl: fix typos.
Andy Polyakov [Wed, 4 Jun 2014 06:33:06 +0000 (08:33 +0200)]
evp/e_aes.c: add erroneously omitted break;
Libor Krystek [Tue, 3 Jun 2014 22:14:40 +0000 (23:14 +0100)]
Corrected OPENSSL_NO_EC_NISTP_64_GCC_128 usage in ec_lcl.h. PR#3370
David Benjamin [Mon, 2 Jun 2014 17:55:20 +0000 (18:55 +0100)]
Check there is enough room for extension.
zhu qun-ying [Mon, 2 Jun 2014 13:38:52 +0000 (14:38 +0100)]
Free up s->d1->buffered_app_data.q properly.
PR#3286
Andy Polyakov [Mon, 2 Jun 2014 19:48:02 +0000 (21:48 +0200)]
evp/e_aes.c: populate HWAES_* to remaning modes.
Submitted by: Ard Biesheuvel.
Dr. Stephen Henson [Mon, 2 Jun 2014 13:12:07 +0000 (14:12 +0100)]
Allow reordering of certificates when signing.
Add certificates if -nocerts and -certfile specified when signing
in smime application. This can be used this to specify the
order certificates appear in the PKCS#7 structure: some broken
applications require a certain ordering.
PR#3316
Sami Farin [Mon, 2 Jun 2014 11:24:19 +0000 (12:24 +0100)]
Typo: set i to -1 before goto.
PR#3302
Andy Polyakov [Sun, 1 Jun 2014 21:38:11 +0000 (23:38 +0200)]
Engage POWER8 AES support.
Matt Caswell [Sun, 1 Jun 2014 20:32:19 +0000 (21:32 +0100)]
Added SSLErr call for internal error in dtls1_buffer_record
David Ramos [Sun, 1 Jun 2014 20:28:41 +0000 (21:28 +0100)]
Delays the queue insertion until after the ssl3_setup_buffers() call due to use-after-free bug. PR#3362
Andy Polyakov [Sun, 1 Jun 2014 20:32:55 +0000 (22:32 +0200)]
armv4cpuid.S: switch to CNTVCT tick counter.
Andy Polyakov [Sun, 1 Jun 2014 20:29:50 +0000 (22:29 +0200)]
sha[1|256]-armv4: harmonize with arm_arch.h.
Andy Polyakov [Sun, 1 Jun 2014 20:20:37 +0000 (22:20 +0200)]
Engage ARMv8 AES support.
Dr. Stephen Henson [Sun, 1 Jun 2014 15:25:43 +0000 (16:25 +0100)]
Recognise padding extension.
Dr. Stephen Henson [Sun, 1 Jun 2014 15:08:18 +0000 (16:08 +0100)]
Option to disable padding extension.
Add TLS padding extension to SSL_OP_ALL so it is used with other
"bugs" options and can be turned off.
This replaces SSL_OP_SSLREF2_REUSE_CERT_TYPE_BUG which is an ancient
option referring to SSLv2 and SSLREF.
PR#3336
Andy Polyakov [Sun, 1 Jun 2014 16:03:51 +0000 (18:03 +0200)]
linux-aarch64: engage SHA modules.
Andy Polyakov [Sun, 1 Jun 2014 16:02:11 +0000 (18:02 +0200)]
Add SHA for ARMv8.
Andy Polyakov [Sun, 1 Jun 2014 15:21:06 +0000 (17:21 +0200)]
Add linux-aarch64 taget.
armcap.c is shared between 32- and 64-bit builds and features link-time
detection of getauxval.
Submitted by: Ard Biesheuvel.
Ben Laurie [Sun, 1 Jun 2014 14:37:08 +0000 (15:37 +0100)]
Merge branch 'erbridge-probable_primes'
Ben Laurie [Sun, 1 Jun 2014 14:30:01 +0000 (15:30 +0100)]
Credit to Felix.
Closes #116.
Ben Laurie [Sun, 1 Jun 2014 14:25:50 +0000 (15:25 +0100)]
Tidy up, don't exceed the number of requested bits.
Ben Laurie [Sat, 31 May 2014 17:26:37 +0000 (18:26 +0100)]
Constify and reduce coprime random bits to allow for multiplier.
Ben Laurie [Sat, 31 May 2014 17:24:55 +0000 (18:24 +0100)]
Zero prime doits.
Ben Laurie [Sat, 31 May 2014 17:20:03 +0000 (18:20 +0100)]
Add option to run all prime tests.
Felix Laurie von Massenbach [Tue, 27 May 2014 13:48:21 +0000 (14:48 +0100)]
Add a test to check we're really generating probable primes.
Felix Laurie von Massenbach [Tue, 27 May 2014 12:43:36 +0000 (13:43 +0100)]
Remove unused BIGNUMs.
Felix Laurie von Massenbach [Tue, 27 May 2014 12:38:59 +0000 (13:38 +0100)]
Only count successful generations.
Felix Laurie von Massenbach [Tue, 27 May 2014 12:23:21 +0000 (13:23 +0100)]
Refactor the first prime index.
Felix Laurie von Massenbach [Tue, 27 May 2014 11:55:20 +0000 (12:55 +0100)]
Try skipping over the adding and just picking a new random number.
Generates a number coprime to 2, 3, 5, 7, 11.
Speed:
Trial div (add) : trial div (retry) : coprime
1 : 0.42 : 0.84
Felix Laurie von Massenbach [Tue, 27 May 2014 11:41:20 +0000 (12:41 +0100)]
Remove editor barf on updating copyright.
Felix Laurie von Massenbach [Tue, 27 May 2014 01:13:33 +0000 (02:13 +0100)]
Add python script to generate the bits needed for the prime generator.
Felix Laurie von Massenbach [Tue, 27 May 2014 01:12:59 +0000 (02:12 +0100)]
Generate safe primes not divisible by 3, 5 or 7.
~2% speed improvement on trial division.
Felix Laurie von Massenbach [Mon, 26 May 2014 23:37:03 +0000 (00:37 +0100)]
Add a method to generate a prime that is guaranteed not to be divisible by 3 or 5.
Possibly some reduction in bias, but no speed gains.
Felix Laurie von Massenbach [Mon, 26 May 2014 23:33:42 +0000 (00:33 +0100)]
Run the prime speed tests for 10 seconds.
Felix Laurie von Massenbach [Mon, 26 May 2014 20:58:55 +0000 (21:58 +0100)]
Tidy up speed.c a little.
Felix Laurie von Massenbach [Mon, 26 May 2014 20:57:25 +0000 (21:57 +0100)]
Add speed test for prime trial division.
Felix Laurie von Massenbach [Mon, 26 May 2014 18:16:52 +0000 (19:16 +0100)]
Remove static from probable_prime_dh.
Felix Laurie von Massenbach [Mon, 26 May 2014 18:09:18 +0000 (19:09 +0100)]
Remove indentation from the goto targets.
Felix Laurie von Massenbach [Mon, 26 May 2014 16:19:28 +0000 (17:19 +0100)]
Strip trailing whitespace from Configure.
Felix Laurie von Massenbach [Mon, 26 May 2014 16:19:06 +0000 (17:19 +0100)]
Add a new target to Configure for me.
Dr. Stephen Henson [Sun, 1 Jun 2014 14:03:00 +0000 (15:03 +0100)]
Set default global mask to UTF8 only.
David Ramos [Sun, 1 Jun 2014 13:23:51 +0000 (14:23 +0100)]
Allocate extra space when NETSCAPE_HANG_BUG defined.
Make sure there is an extra 4 bytes for server done message when
NETSCAPE_HANG_BUG is defined.
PR#3361
David Ramos [Sun, 1 Jun 2014 12:03:05 +0000 (13:03 +0100)]
Initialise alg.
PR#3313
Dr. Stephen Henson [Fri, 30 May 2014 12:21:43 +0000 (13:21 +0100)]
Use correct digest when exporting keying material.
PR#3319
Dr. Stephen Henson [Fri, 30 May 2014 12:10:08 +0000 (13:10 +0100)]
Don't compile heartbeat test code on Windows (for now).
Hubert Kario [Thu, 12 Sep 2013 09:37:12 +0000 (11:37 +0200)]
add description of -attime to man page
the verify app man page didn't describe the usage of attime option
even though it was listed as a valid option in the -help message.
This patch fixes this omission.
Hubert Kario [Tue, 10 Sep 2013 13:59:13 +0000 (15:59 +0200)]
add description of -no_ecdhe option to s_server man page
While the -help message references this option, the man page
doesn't mention the -no_ecdhe option.
This patch fixes this omission.
Andy Polyakov [Thu, 29 May 2014 20:45:35 +0000 (22:45 +0200)]
aesv8-armx.pl: add CTR implementation.
Submitted by: Ard Biesheuvel.
Dr. Stephen Henson [Thu, 29 May 2014 13:07:49 +0000 (14:07 +0100)]
Set version number correctly.
PR#3249
František Bořánek [Thu, 29 May 2014 12:49:10 +0000 (13:49 +0100)]
Fix memory leak.
PR#3278
Martin Kaiser [Wed, 28 May 2014 09:16:06 +0000 (11:16 +0200)]
remove duplicate 0x for default RSASSA-PSS salt len
Andy Polyakov [Thu, 29 May 2014 13:10:12 +0000 (15:10 +0200)]
aesp8-ppc.pl: optimize CBC decrypt even further.
10-19% improvement depending on key length and endianness.
Peter Mosmans [Tue, 27 May 2014 22:26:11 +0000 (23:26 +0100)]
Fix for test_bn regular expression to work on Windows using MSYS. PR#3346
Matt Caswell [Mon, 26 May 2014 22:22:08 +0000 (23:22 +0100)]
Changed -strictpem to use PEM_read_bio
Matt Caswell [Mon, 26 May 2014 16:16:43 +0000 (17:16 +0100)]
Added -strictpem parameter to enable processing of PEM files with data prior to the BEGIN marker
Juli Mallett [Mon, 21 Apr 2014 21:30:09 +0000 (14:30 -0700)]
Fix cast of boolean where cast of LHS intended.
Closes #74.
Matt Caswell [Sun, 25 May 2014 22:37:53 +0000 (23:37 +0100)]
Fixed error in args for SSL_set_msg_callback and SSL_set_msg_callback_arg
Ben Laurie [Sun, 25 May 2014 16:25:56 +0000 (17:25 +0100)]
Make it build.
Closes #31.
Christian Heimes [Wed, 13 Nov 2013 00:46:42 +0000 (01:46 +0100)]
add test case to makefiles
Christian Heimes [Wed, 13 Nov 2013 00:42:48 +0000 (01:42 +0100)]
Implement tests for PKCS#5 PBKDF2 HMAC
Dr. Stephen Henson [Sat, 24 May 2014 22:55:19 +0000 (23:55 +0100)]
Don't use expired certificates if possible.
When looking for the issuer of a certificate, if current candidate is
expired, continue looking. Only return an expired certificate if no valid
certificates are found.
PR#3359
Dr. Stephen Henson [Sat, 24 May 2014 22:48:29 +0000 (23:48 +0100)]
Rename vpm_int.h to x509_lcl.h
Matt Caswell [Sat, 24 May 2014 22:55:27 +0000 (23:55 +0100)]
Fix for non compilation with TLS_DEBUG defined
Ben Laurie [Sat, 24 May 2014 14:42:18 +0000 (15:42 +0100)]
Only copy opensslconf.h at init time.
Martin Kaiser [Fri, 23 May 2014 23:04:25 +0000 (00:04 +0100)]
Modify the description of -noout to match the manpage. PR#3364
Martin Kaiser [Fri, 23 May 2014 23:02:24 +0000 (00:02 +0100)]
Add an NSS output format to sess_id to export to export the session id and the master key in NSS keylog format. PR#3352
Luiz Angelo Daros de Luca [Fri, 23 May 2014 22:05:38 +0000 (23:05 +0100)]
OpenSSL is able to generate a certificate with name constraints with any possible
subjectAltName field. The Name Contraint example in x509v3_config(5) even use IP
as an example:
nameConstraints=permitted;IP:192.168.0.0/255.255.0.0
However, until now, the verify code for IP name contraints did not exist. Any
check with a IP Address Name Constraint results in a "unsupported name constraint
type" error.
This patch implements support for IP Address Name Constraint (v4 and v6). This code
validaded correcly certificates with multiple IPv4/IPv6 address checking against
a CA certificate with these constraints:
permitted;IP.1=10.9.0.0/255.255.0.0
permitted;IP.2=10.48.0.0/255.255.0.0
permitted;IP.3=10.148.0.0/255.255.0.0
permitted;IP.4=fdc8:123f:e31f::/ffff:ffff:ffff::
Signed-off-by: Luiz Angelo Daros de Luca <luizluca@gmail.com>
Andy Polyakov [Fri, 23 May 2014 18:15:06 +0000 (20:15 +0200)]
aesp8-ppc.pl: add optimized CBC decrypt.
Andy Polyakov [Fri, 23 May 2014 18:14:38 +0000 (20:14 +0200)]
vpaes-ppc.pl: comply with ABI.
Ben Laurie [Thu, 22 May 2014 21:00:17 +0000 (22:00 +0100)]
Merge branch 'heartbeat-test' of git://github.com/mbland/openssl
Mike Bland [Thu, 22 May 2014 18:41:47 +0000 (14:41 -0400)]
Fix heartbeat_test for -DOPENSSL_NO_HEARTBEATS
Replaces the entire test with a trivial implementation when
OPENSSL_NO_HEARTBEATS is defined.
Ben Laurie [Thu, 22 May 2014 09:11:40 +0000 (10:11 +0100)]
Check length first in BUF_strnlen().
Matt Caswell [Wed, 21 May 2014 23:07:35 +0000 (00:07 +0100)]
Fixed minor copy&paste error, and stray space causing rendering problem
Matt Caswell [Wed, 21 May 2014 23:00:23 +0000 (00:00 +0100)]
Fixed unterminated B tag, causing build to fail with newer pod2man versions
Ben Laurie [Wed, 21 May 2014 11:03:02 +0000 (12:03 +0100)]
Remove redundant test.
Ben Laurie [Wed, 21 May 2014 10:54:54 +0000 (11:54 +0100)]
Implement BUF_strnlen() and use it instead of strlen().
Viktor Dukhovni [Wed, 21 May 2014 09:57:44 +0000 (10:57 +0100)]
Fixes to host checking.
Fixes to host checking wild card support and add support for
setting host checking flags when verifying a certificate
chain.
Dr. Stephen Henson [Wed, 21 May 2014 09:50:19 +0000 (10:50 +0100)]
Fix for PKCS12_create if no-rc2 specified.
Use triple DES for certificate encryption if no-rc2 is
specified.
PR#3357
Dr. Stephen Henson [Wed, 21 May 2014 09:39:11 +0000 (10:39 +0100)]
Change default cipher in smime app to des3.
PR#3357
Andy Polyakov [Tue, 20 May 2014 21:32:12 +0000 (23:32 +0200)]
aesv8-armx.pl: fix typo.
Andy Polyakov [Tue, 20 May 2014 20:50:28 +0000 (22:50 +0200)]
aesv8-armx.pl: optimize by adding 128-bit code paths.
Ben Laurie [Tue, 20 May 2014 12:52:31 +0000 (13:52 +0100)]
Don't allocate more than is needed in BUF_strndup().
Dr. Stephen Henson [Tue, 20 May 2014 10:18:30 +0000 (11:18 +0100)]
For portability use BUF_strndup instead of strndup.
Dr. Stephen Henson [Tue, 20 May 2014 00:48:51 +0000 (01:48 +0100)]
Adding padding extension to trace code.
Dr. Stephen Henson [Tue, 20 May 2014 00:45:50 +0000 (01:45 +0100)]
Fix bug in signature algorithm copy.
Janpopan [Sun, 4 May 2014 16:13:43 +0000 (18:13 +0200)]
Fix a wrong parameter count ERR_add_error_data
Ben Laurie [Mon, 19 May 2014 16:40:52 +0000 (17:40 +0100)]
Merge branch 'mbland-heartbeat-test'
Ben Laurie [Mon, 19 May 2014 16:38:56 +0000 (17:38 +0100)]
Fixup for ancient compilers.
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.
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().
Ben Laurie [Tue, 29 Apr 2014 17:36:39 +0000 (18:36 +0100)]
Make it build/run.
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
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.
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)