oweals/openssl.git
11 years agoDTLS 1.2 cached record support.
Dr. Stephen Henson [Wed, 27 Mar 2013 15:50:42 +0000 (15:50 +0000)]
DTLS 1.2 cached record support.

Add DTLS1.2 support for cached records when computing handshake macs
instead of the MD5+SHA1 case for DTLS < 1.2 (this is a port of the
equivalent TLS 1.2 code to DTLS).

11 years agoMake binary curve ASN.1 work in FIPS mode.
Matt Caswell [Tue, 26 Mar 2013 15:39:50 +0000 (15:39 +0000)]
Make binary curve ASN.1 work in FIPS mode.

Don't check for binary curves by checking methods: the values will
be different in FIPS mode as they are redirected to the validated module
version.

11 years agoProvisional DTLS 1.2 support.
Dr. Stephen Henson [Wed, 20 Mar 2013 15:49:14 +0000 (15:49 +0000)]
Provisional DTLS 1.2 support.

Add correct flags for DTLS 1.2, update s_server and s_client to handle
DTLS 1.2 methods.

Currently no support for version negotiation: i.e. if client/server selects
DTLS 1.2 it is that or nothing.

11 years agoRemove versions test from dtls1_buffer_message
Dr. Stephen Henson [Tue, 26 Mar 2013 14:46:18 +0000 (14:46 +0000)]
Remove versions test from dtls1_buffer_message

Since this is always called from DTLS code it is safe to assume the header
length should be the DTLS value. This avoids the need to check the version
number and should work with any version of DTLS (not just 1.0).

11 years agoExtend DTLS method macros.
Dr. Stephen Henson [Tue, 19 Mar 2013 15:51:26 +0000 (15:51 +0000)]
Extend DTLS method macros.

Extend DTLS method creation macros to support version numbers and encryption
methods. Update existing code.

11 years agoEnable various DTLS extensions.
Dr. Stephen Henson [Tue, 19 Mar 2013 15:49:35 +0000 (15:49 +0000)]
Enable various DTLS extensions.

Some TLS extensions were disabled for DTLS. Possibly because they caused
problems with the old duplicated code. Enable them again.

11 years agoaesni-x86_64.pl: optimize CTR even further.
Andy Polyakov [Tue, 26 Mar 2013 13:29:18 +0000 (14:29 +0100)]
aesni-x86_64.pl: optimize CTR even further.

Based on suggestions from Shay Gueron and Vlad Krasnov.
PR: 3021

11 years agoghash-x86_64.pl: add AVX code path.
Andy Polyakov [Sun, 24 Mar 2013 22:44:35 +0000 (23:44 +0100)]
ghash-x86_64.pl: add AVX code path.

11 years agoaesni-x86_64.pl: optimize CTR even further.
Andy Polyakov [Tue, 19 Mar 2013 19:03:02 +0000 (20:03 +0100)]
aesni-x86_64.pl: optimize CTR even further.

11 years agoghash-x86_64.pl: minor optimization.
Andy Polyakov [Tue, 19 Mar 2013 19:02:11 +0000 (20:02 +0100)]
ghash-x86_64.pl: minor optimization.

11 years agoDisable compression for DTLS.
Dr. Stephen Henson [Tue, 19 Mar 2013 13:43:06 +0000 (13:43 +0000)]
Disable compression for DTLS.

The only standard compression method is stateful and is incompatible with
DTLS.

11 years agoTypo.
Dr. Stephen Henson [Tue, 19 Mar 2013 12:41:13 +0000 (12:41 +0000)]
Typo.

11 years agoe_aes_cbc_hmac_sha1.c: fix rare bad record mac on AES-NI plaforms.
Andy Polyakov [Mon, 18 Mar 2013 18:29:41 +0000 (19:29 +0100)]
e_aes_cbc_hmac_sha1.c: fix rare bad record mac on AES-NI plaforms.

PR: 3002

11 years agoUse enc_flags when deciding protocol variations.
Dr. Stephen Henson [Wed, 13 Mar 2013 15:33:24 +0000 (15:33 +0000)]
Use enc_flags when deciding protocol variations.

Use the enc_flags field to determine whether we should use explicit IV,
signature algorithms or SHA256 default PRF instead of hard coding which
versions support each requirement.

11 years agoUse appropriate versions of SSL3_ENC_METHOD
Dr. Stephen Henson [Wed, 13 Mar 2013 13:30:44 +0000 (13:30 +0000)]
Use appropriate versions of SSL3_ENC_METHOD

11 years agoDTLS revision.
Dr. Stephen Henson [Mon, 11 Mar 2013 15:34:28 +0000 (15:34 +0000)]
DTLS revision.

Revise DTLS code. There was a *lot* of code duplication in the
DTLS code that generates records. This makes it harder to maintain and
sometimes a TLS update is omitted by accident from the DTLS code.

Specifically almost all of the record generation functions have code like
this:

some_pointer = buffer + HANDSHAKE_HEADER_LENGTH;
... Record creation stuff ...
set_handshake_header(ssl, SSL_MT_SOMETHING, message_len);

...

write_handshake_message(ssl);

Where the "Record creation stuff" is identical between SSL/TLS and DTLS or
in some cases has very minor differences.

By adding a few fields to SSL3_ENC to include the header length, some flags
and function pointers for handshake header setting and handshake writing the
code can cope with both cases.

Note: although this passes "make test" and some simple DTLS tests there may
be some minor differences in the DTLS code that have to be accounted for.

11 years agoAvoid unnecessary fragmentation.
Michael Tuexen [Mon, 18 Mar 2013 14:30:38 +0000 (14:30 +0000)]
Avoid unnecessary fragmentation.

11 years agoEncode INTEGER correctly.
Dr. Stephen Henson [Mon, 18 Mar 2013 14:19:40 +0000 (14:19 +0000)]
Encode INTEGER correctly.

If an ASN1_INTEGER structure is allocated but not explicitly set encode
it as zero: don't generate an invalid zero length INTEGER.
(cherry picked from commit 1643edc63c3e15b6db5a15a728bc288f2cc2bbc7)

11 years agoTypo.
Dr. Stephen Henson [Mon, 18 Mar 2013 13:58:32 +0000 (13:58 +0000)]
Typo.
(cherry picked from commit 1546fb780bc11556a18d70c5fb29af4a9d5beaff)

11 years agoDTLS trace support.
Dr. Stephen Henson [Fri, 8 Mar 2013 16:45:37 +0000 (16:45 +0000)]
DTLS trace support.

Add DTLS record header parsing, different client hello format and add
HelloVerifyRequest message type.

Add code to d1_pkt.c to send message headers to the message callback.

11 years agoevptests.txt: additional GCM test vectors.
Andy Polyakov [Wed, 6 Mar 2013 18:24:05 +0000 (19:24 +0100)]
evptests.txt: additional GCM test vectors.

11 years agoGCM and CCM test support
Dr. Stephen Henson [Wed, 6 Mar 2013 15:45:15 +0000 (15:45 +0000)]
GCM and CCM test support

Add code to support GCM an CCM modes in evp_test. On encrypt this
will compare the expected ciphertext and tag. On decrypt it will
compare the expected plaintext: tag comparison is done internally.

Add a simple CCM test case and convert all tests from crypto/modes/gcm128.c

11 years agoAdd CCM ciphers to tables.
Dr. Stephen Henson [Wed, 6 Mar 2013 15:41:29 +0000 (15:41 +0000)]
Add CCM ciphers to tables.

11 years agoghash-x86_64.pl: fix length handling bug.
Andy Polyakov [Wed, 6 Mar 2013 09:42:21 +0000 (10:42 +0100)]
ghash-x86_64.pl: fix length handling bug.

Thanks to Shay Gueron & Vlad Krasnov for report.

11 years agotypo
Dr. Stephen Henson [Tue, 5 Mar 2013 21:19:39 +0000 (21:19 +0000)]
typo

11 years agoInitial CCM code.
Dr. Stephen Henson [Tue, 5 Mar 2013 18:29:14 +0000 (18:29 +0000)]
Initial CCM code.

Simple example of CCM code use: translated from the FIPS self tests.

11 years agoUse CFLAG for LFLAGS instead of the nonexistent CFLAGS.
Ben Laurie [Tue, 5 Mar 2013 05:55:19 +0000 (05:55 +0000)]
Use CFLAG for LFLAGS instead of the nonexistent CFLAGS.

11 years agoIgnore mk1mf.pl output directories.
Ben Laurie [Tue, 5 Mar 2013 04:29:41 +0000 (04:29 +0000)]
Ignore mk1mf.pl output directories.

11 years agoRemove unused variable.
Ben Laurie [Mon, 4 Mar 2013 22:48:38 +0000 (22:48 +0000)]
Remove unused variable.

11 years agoActually comment out the cpuid asm!
Ben Laurie [Mon, 4 Mar 2013 20:31:59 +0000 (20:31 +0000)]
Actually comment out the cpuid asm!

11 years agoMerge branch 'master' of openssl.net:openssl
Ben Laurie [Mon, 4 Mar 2013 20:26:17 +0000 (20:26 +0000)]
Merge branch 'master' of openssl.net:openssl

Conflicts:
util/mk1mf.pl

11 years agoFix WIN32 build.
Dr. Stephen Henson [Mon, 4 Mar 2013 19:14:57 +0000 (19:14 +0000)]
Fix WIN32 build.

Make assembly language handling conditional on the "copy" platform
as Windows does its own thing here.

11 years agox86cpuid.pl: make it work with older CPUs.
Andy Polyakov [Mon, 4 Mar 2013 19:05:04 +0000 (20:05 +0100)]
x86cpuid.pl: make it work with older CPUs.

PR: 3005

11 years agoOnly copy headers if they've changed.
Ben Laurie [Mon, 4 Mar 2013 16:56:18 +0000 (16:56 +0000)]
Only copy headers if they've changed.

11 years agoDon't make CPUID stuff twice.
Ben Laurie [Mon, 4 Mar 2013 16:10:47 +0000 (16:10 +0000)]
Don't make CPUID stuff twice.

11 years agoHandle assembler files.
Ben Laurie [Mon, 4 Mar 2013 14:11:18 +0000 (14:11 +0000)]
Handle assembler files.

11 years agoMissing MINFO generation.
Ben Laurie [Mon, 4 Mar 2013 14:10:13 +0000 (14:10 +0000)]
Missing MINFO generation.

11 years agoOverride local vars for MINFO build.
Ben Laurie [Mon, 4 Mar 2013 14:09:17 +0000 (14:09 +0000)]
Override local vars for MINFO build.

11 years agoAllow variables to be overridden on the command line.
Ben Laurie [Mon, 4 Mar 2013 14:08:23 +0000 (14:08 +0000)]
Allow variables to be overridden on the command line.

11 years agoTake the first definition of a variable.
Ben Laurie [Sun, 3 Mar 2013 02:56:45 +0000 (02:56 +0000)]
Take the first definition of a variable.

11 years agoUse "copy" instead of "auto".
Ben Laurie [Sat, 2 Mar 2013 04:44:36 +0000 (04:44 +0000)]
Use "copy" instead of "auto".

11 years agoRemove pointless diagnostic.
Ben Laurie [Wed, 27 Feb 2013 22:21:14 +0000 (22:21 +0000)]
Remove pointless diagnostic.

11 years agoPreserve the C compiler.
Ben Laurie [Wed, 27 Feb 2013 22:20:37 +0000 (22:20 +0000)]
Preserve the C compiler.

11 years agoInherit CFLAGS when plaform is "auto".
Ben Laurie [Wed, 27 Feb 2013 22:07:26 +0000 (22:07 +0000)]
Inherit CFLAGS when plaform is "auto".

11 years agoInclude correctly.
Ben Laurie [Wed, 27 Feb 2013 05:01:36 +0000 (05:01 +0000)]
Include correctly.

11 years agoRemove empty command.
Ben Laurie [Wed, 27 Feb 2013 04:34:26 +0000 (04:34 +0000)]
Remove empty command.

11 years agoSpelling.
Ben Laurie [Wed, 27 Feb 2013 04:16:23 +0000 (04:16 +0000)]
Spelling.

11 years agoAdd dependency on destination directory.
Ben Laurie [Wed, 27 Feb 2013 04:12:11 +0000 (04:12 +0000)]
Add dependency on destination directory.

11 years agoSpelling.
Ben Laurie [Wed, 27 Feb 2013 04:09:38 +0000 (04:09 +0000)]
Spelling.

11 years agoAdd reallyclean target.
Ben Laurie [Wed, 27 Feb 2013 04:07:55 +0000 (04:07 +0000)]
Add reallyclean target.

11 years agox86_64-gf2m.pl: fix typo.
Andy Polyakov [Fri, 1 Mar 2013 21:36:36 +0000 (22:36 +0100)]
x86_64-gf2m.pl: fix typo.

11 years agox86_64-gf2m.pl: add missing Windows build fix for #2963.
Andy Polyakov [Fri, 1 Mar 2013 20:43:10 +0000 (21:43 +0100)]
x86_64-gf2m.pl: add missing Windows build fix for #2963.

PR: 3004

11 years agoIgnore MINFO.
Ben Laurie [Tue, 26 Feb 2013 21:50:40 +0000 (21:50 +0000)]
Ignore MINFO.

11 years agoMissing files target.
Ben Laurie [Tue, 26 Feb 2013 21:50:26 +0000 (21:50 +0000)]
Missing files target.

11 years agoAdd function CMS_RecipientInfo_encrypt
Dr. Stephen Henson [Tue, 26 Feb 2013 16:48:49 +0000 (16:48 +0000)]
Add function CMS_RecipientInfo_encrypt

Add CMS_RecipientInfo_encrypt: this function encrypts an existing content
encryption key to match the key in the RecipientInfo structure: this is
useful if a new recpient is added to and existing enveloped data structure.

Add documentation.

11 years agoFix error codes.
Dr. Stephen Henson [Tue, 26 Feb 2013 16:46:58 +0000 (16:46 +0000)]
Fix error codes.

11 years agoDemo code for SSL_CONF API
Dr. Stephen Henson [Tue, 26 Feb 2013 16:33:05 +0000 (16:33 +0000)]
Demo code for SSL_CONF API

Two example programs one for command line argument processing and
one for configuration file processing.

11 years agoUpdate SSL_CONF docs.
Dr. Stephen Henson [Tue, 26 Feb 2013 15:27:56 +0000 (15:27 +0000)]
Update SSL_CONF docs.

Fix some typos and update version number first added: it has now been
backported to OpenSSL 1.0.2.

11 years agoFix ignored return value warnings.
Ben Laurie [Thu, 21 Feb 2013 18:30:04 +0000 (18:30 +0000)]
Fix ignored return value warnings.

Not sure why I am getting these now and not before.

11 years agomake depend.
Ben Laurie [Thu, 21 Feb 2013 18:17:38 +0000 (18:17 +0000)]
make depend.

11 years agoFix POD errors to stop make install_docs dying with pod2man 2.5.0+
Nick Alcock [Fri, 15 Feb 2013 17:44:11 +0000 (17:44 +0000)]
Fix POD errors to stop make install_docs dying with pod2man 2.5.0+

podlators 2.5.0 has switched to dying on POD syntax errors. This means
that a bunch of long-standing erroneous POD in the openssl documentation
now leads to fatal errors from pod2man, halting installation.

Unfortunately POD constraints mean that you have to sort numeric lists
in ascending order if they start with 1: you cannot do 1, 0, 2 even if
you want 1 to appear first. I've reshuffled such (alas, I wish there
were a better way but I don't know of one).

11 years agosha256-586.pl: code refresh.
Andy Polyakov [Fri, 15 Feb 2013 10:23:06 +0000 (11:23 +0100)]
sha256-586.pl: code refresh.

11 years agosha1-586.pl: code refresh.
Andy Polyakov [Thu, 14 Feb 2013 21:20:17 +0000 (22:20 +0100)]
sha1-586.pl: code refresh.

11 years agoghash-x86[_64].pl: code refresh.
Andy Polyakov [Thu, 14 Feb 2013 15:28:09 +0000 (16:28 +0100)]
ghash-x86[_64].pl: code refresh.

11 years ago[aesni-]sha1-x86_64.pl: code refresh.
Andy Polyakov [Thu, 14 Feb 2013 15:14:02 +0000 (16:14 +0100)]
[aesni-]sha1-x86_64.pl: code refresh.

11 years agosha512-x86_64.pl: add AVX2 code path.
Andy Polyakov [Thu, 14 Feb 2013 14:39:42 +0000 (15:39 +0100)]
sha512-x86_64.pl: add AVX2 code path.

11 years agobn_nist.c: work around clang 3.0 bug.
Andy Polyakov [Thu, 14 Feb 2013 08:51:41 +0000 (09:51 +0100)]
bn_nist.c: work around clang 3.0 bug.

11 years agoUpate FAQ.
Dr. Stephen Henson [Tue, 12 Feb 2013 16:02:45 +0000 (16:02 +0000)]
Upate FAQ.

Add description of "allocate and encode" operation for ASN1 routines.

Document how versioning will for after the letter release reaches
y.

11 years agoCheck DTLS_BAD_VER for version number.
David Woodhouse [Tue, 12 Feb 2013 14:55:32 +0000 (14:55 +0000)]
Check DTLS_BAD_VER for version number.

The version check for DTLS1_VERSION was redundant as
DTLS1_VERSION > TLS1_1_VERSION, however we do need to
check for DTLS1_BAD_VER for compatibility.

PR:2984

11 years agoFix in ssltest is no-ssl2 configured
Dr. Stephen Henson [Mon, 11 Feb 2013 18:17:50 +0000 (18:17 +0000)]
Fix in ssltest is no-ssl2 configured
(cherry picked from commit cbf9b4aed3e209fe8a39e1d6f55aaf46d1369dc4)

11 years agoupdate FAQ
Dr. Stephen Henson [Mon, 11 Feb 2013 16:20:03 +0000 (16:20 +0000)]
update FAQ

11 years agoFAQ/README: we are now using Git instead of CVS
Lutz Jaenicke [Mon, 11 Feb 2013 10:29:05 +0000 (11:29 +0100)]
FAQ/README: we are now using Git instead of CVS
(cherry picked from commit f88dbb8385c199a2a28e9525c6bba3a64bda96af)

11 years agosparccpuid.S: work around emulator bug on T1.
Andy Polyakov [Mon, 11 Feb 2013 09:39:50 +0000 (10:39 +0100)]
sparccpuid.S: work around emulator bug on T1.

11 years agos3_cbc.c: make CBC_MAC_ROTATE_IN_PLACE universal.
Andy Polyakov [Fri, 8 Feb 2013 20:30:52 +0000 (21:30 +0100)]
s3_cbc.c: make CBC_MAC_ROTATE_IN_PLACE universal.

11 years agos3_cbc.c: get rid of expensive divisions.
Andy Polyakov [Fri, 8 Feb 2013 15:36:09 +0000 (16:36 +0100)]
s3_cbc.c: get rid of expensive divisions.

11 years agos3_cbc.c: fix warning [in Windows build].
Andy Polyakov [Fri, 8 Feb 2013 13:22:22 +0000 (14:22 +0100)]
s3_cbc.c: fix warning [in Windows build].

11 years agoe_aes_cbc_hmac_sha1.c: align calculated MAC at cache line.
Andy Polyakov [Fri, 8 Feb 2013 09:31:13 +0000 (10:31 +0100)]
e_aes_cbc_hmac_sha1.c: align calculated MAC at cache line.

It also ensures that valgring is happy.

11 years agossl/*: revert "remove SSL_RECORD->orig_len" and merge "fix IV".
Andy Polyakov [Fri, 8 Feb 2013 09:20:48 +0000 (10:20 +0100)]
ssl/*: revert "remove SSL_RECORD->orig_len" and merge "fix IV".

Revert is appropriate because binary compatibility is not an issue
in 1.1.

11 years agoFix for EXP-RC2-CBC-MD5
Adam Langley [Wed, 6 Feb 2013 16:05:40 +0000 (16:05 +0000)]
Fix for EXP-RC2-CBC-MD5

MD5 should use little endian order. Fortunately the only ciphersuite
affected is EXP-RC2-CBC-MD5 (TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5) which
is a rarely used export grade ciphersuite.
(cherry picked from commit f306b87d766e6ecf30824635c7c395b67cff9dbc)

11 years agoe_aes_cbc_hmac_sha1.c: cleanse temporary copy of HMAC secret.
Andy Polyakov [Sun, 3 Feb 2013 19:04:39 +0000 (20:04 +0100)]
e_aes_cbc_hmac_sha1.c: cleanse temporary copy of HMAC secret.
(cherry picked from commit 529d27ea472fc2c7ba9190a15a58cb84012d4ec6)

11 years agoe_aes_cbc_hmac_sha1.c: address the CBC decrypt timing issues.
Andy Polyakov [Sat, 2 Feb 2013 18:29:59 +0000 (19:29 +0100)]
e_aes_cbc_hmac_sha1.c: address the CBC decrypt timing issues.

Address CBC decrypt timing issues and reenable the AESNI+SHA1 stitch.
(cherry picked from commit 125093b59f3c2a2d33785b5563d929d0472f1721)

11 years agossl/*: remove SSL3_RECORD->orig_len to restore binary compatibility.
Andy Polyakov [Fri, 1 Feb 2013 14:31:50 +0000 (15:31 +0100)]
ssl/*: remove SSL3_RECORD->orig_len to restore binary compatibility.

Kludge alert. This is arranged by passing padding length in unused
bits of SSL3_RECORD->type, so that orig_len can be reconstructed.
(cherry picked from commit 8bfd4c659f180a6ce34f21c0e62956b362067fba)

11 years agoDon't access EVP_MD_CTX internals directly.
Dr. Stephen Henson [Fri, 1 Feb 2013 13:53:43 +0000 (13:53 +0000)]
Don't access EVP_MD_CTX internals directly.
(cherry picked from commit 04e45b52ee3be81121359cc1198fd01e38096e9f)

11 years agos3/s3_cbc.c: allow for compilations with NO_SHA256|512.
Andy Polyakov [Fri, 1 Feb 2013 09:10:32 +0000 (10:10 +0100)]
s3/s3_cbc.c: allow for compilations with NO_SHA256|512.
(cherry picked from commit d5371324d978e4096bf99b9d0fe71b2cb65d9dc8)

11 years agossl/s3_cbc.c: md_state alignment portability fix.
Andy Polyakov [Fri, 1 Feb 2013 08:59:56 +0000 (09:59 +0100)]
ssl/s3_cbc.c: md_state alignment portability fix.

RISCs are picky and alignment granted by compiler for md_state can be
insufficient for SHA512.
(cherry picked from commit 36260233e7e3396feed884d3f501283e0453c04f)

11 years agossl/s3_cbc.c: uint64_t portability fix.
Andy Polyakov [Fri, 1 Feb 2013 08:55:43 +0000 (09:55 +0100)]
ssl/s3_cbc.c: uint64_t portability fix.

Break dependency on uint64_t. It's possible to declare bits as
unsigned int, because TLS packets are limited in size and 32-bit
value can't overflow.
(cherry picked from commit cab13fc8473856a43556d41d8dac5605f4ba1f91)

11 years agotypo.
Dr. Stephen Henson [Thu, 31 Jan 2013 23:04:39 +0000 (23:04 +0000)]
typo.
(cherry picked from commit 34ab3c8c711ff79c2b768f0b17e4b2a78fd1df5d)

11 years agoAdd ordinal for CRYPTO_memcmp: since this will affect multiple
Dr. Stephen Henson [Thu, 31 Jan 2013 15:19:00 +0000 (15:19 +0000)]
Add ordinal for CRYPTO_memcmp: since this will affect multiple
branches it needs to be in a "gap".
(cherry picked from commit 81ce0e14e72e8e255ad1bd9c7cfaa47a6291919c)

11 years agoTiming fix mitigation for FIPS mode.
Dr. Stephen Henson [Tue, 29 Jan 2013 14:44:36 +0000 (14:44 +0000)]
Timing fix mitigation for FIPS mode.
We have to use EVP in FIPS mode so we can only partially mitigate
timing differences.

Make an extra call to EVP_DigestSignUpdate to hash additonal blocks
to cover any timing differences caused by removal of padding.
(cherry picked from commit b908e88ec15aa0a74805e3f2236fc4f83f2789c2)

11 years agoOops. Add missing file.
Ben Laurie [Mon, 28 Jan 2013 18:24:55 +0000 (18:24 +0000)]
Oops. Add missing file.
(cherry picked from commit 014265eb02e26f35c8db58e2ccbf100b0b2f0072)

11 years agoUpdate DTLS code to match CBC decoding in TLS.
Ben Laurie [Mon, 28 Jan 2013 17:34:33 +0000 (17:34 +0000)]
Update DTLS code to match CBC decoding in TLS.

This change updates the DTLS code to match the constant-time CBC
behaviour in the TLS.
(cherry picked from commit 9f27de170d1b7bef3d46d41382dc4dafde8b3900)

11 years agoDon't crash when processing a zero-length, TLS >= 1.1 record.
Ben Laurie [Mon, 28 Jan 2013 17:33:18 +0000 (17:33 +0000)]
Don't crash when processing a zero-length, TLS >= 1.1 record.

The previous CBC patch was bugged in that there was a path through enc()
in s3_pkt.c/d1_pkt.c which didn't set orig_len. orig_len would be left
at the previous value which could suggest that the packet was a
sufficient length when it wasn't.
(cherry picked from commit 6cb19b7681f600b2f165e4adc57547b097b475fd)

11 years agoMake CBC decoding constant time.
Ben Laurie [Mon, 28 Jan 2013 17:31:49 +0000 (17:31 +0000)]
Make CBC decoding constant time.

This patch makes the decoding of SSLv3 and TLS CBC records constant
time. Without this, a timing side-channel can be used to build a padding
oracle and mount Vaudenay's attack.

This patch also disables the stitched AESNI+SHA mode pending a similar
fix to that code.

In order to be easy to backport, this change is implemented in ssl/,
rather than as a generic AEAD mode. In the future this should be changed
around so that HMAC isn't in ssl/, but crypto/ as FIPS expects.
(cherry picked from commit e130841bccfc0bb9da254dc84e23bc6a1c78a64e)

11 years agoAdd and use a constant-time memcmp.
Ben Laurie [Mon, 28 Jan 2013 17:30:38 +0000 (17:30 +0000)]
Add and use a constant-time memcmp.

This change adds CRYPTO_memcmp, which compares two vectors of bytes in
an amount of time that's independent of their contents. It also changes
several MAC compares in the code to use this over the standard memcmp,
which may leak information about the size of a matching prefix.
(cherry picked from commit 2ee798880a246d648ecddadc5b91367bee4a5d98)

11 years agoFix for trace code: SSL3 doesn't include a length value for
Dr. Stephen Henson [Mon, 4 Feb 2013 14:53:47 +0000 (14:53 +0000)]
Fix for trace code: SSL3 doesn't include a length value for
encrypted premaster secret value.

11 years agox86_64 assembly pack: keep making Windows build more robust.
Andy Polyakov [Sat, 2 Feb 2013 18:52:43 +0000 (19:52 +0100)]
x86_64 assembly pack: keep making Windows build more robust.

PR: 2963 and a number of others

11 years agoDon't use C++ style comments.
Dr. Stephen Henson [Thu, 24 Jan 2013 23:22:33 +0000 (23:22 +0000)]
Don't use C++ style comments.

11 years agoFix warning: lenmax isn't used any more.
Dr. Stephen Henson [Thu, 24 Jan 2013 14:06:54 +0000 (14:06 +0000)]
Fix warning: lenmax isn't used any more.

11 years agoDon't include comp.h in cmd_cd.c if OPENSSL_NO_COMP set
Dr. Stephen Henson [Wed, 23 Jan 2013 01:04:36 +0000 (01:04 +0000)]
Don't include comp.h in cmd_cd.c if OPENSSL_NO_COMP set

11 years agofix domd
Dr. Stephen Henson [Wed, 23 Jan 2013 00:43:09 +0000 (00:43 +0000)]
fix domd