summaryrefslogtreecommitdiffstats
path: root/ssl/s3_enc.c
AgeCommit message (Collapse)Author
2014-06-13Fixed incorrect return code handling in ssl3_final_finish_mac.Matt Caswell
Based on an original patch by Joel Sing (OpenBSD) who also originally identified the issue.
2014-06-13Revert "Fixed incorrect return code handling in ssl3_final_finish_mac"Matt Caswell
This reverts commit 728bd41a159ea16a60111e7c1120ec2a005507b3. Missing attribution.
2014-06-10Fixed incorrect return code handling in ssl3_final_finish_macMatt Caswell
2013-02-06ssl/*: remove SSL3_RECORD->orig_len to restore binary compatibility.Andy Polyakov
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)
2013-02-06Update DTLS code to match CBC decoding in TLS.Ben Laurie
This change updates the DTLS code to match the constant-time CBC behaviour in the TLS. (cherry picked from commit 9f27de170d1b7bef3d46d41382dc4dafde8b3900)
2013-02-06Don't crash when processing a zero-length, TLS >= 1.1 record.Ben Laurie
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)
2013-02-06Make CBC decoding constant time.Ben Laurie
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)
2012-12-26SSL/TLS record tracing code (backport from HEAD).Dr. Stephen Henson
2012-01-04Clear bytes used for block padding of SSL 3.0 records. (CVE-2011-4576)Dr. Stephen Henson
2011-05-31set FIPS permitted flag before initalising digestDr. Stephen Henson
2011-05-20Add server client certificate support for TLS v1.2 . This is more complexDr. Stephen Henson
than client side as we need to keep the handshake record cache frozen when it contains all the records need to process the certificate verify message. (backport from HEAD).
2011-05-19add FIPS support to ssl: doesn't do anything on this branch yet as there is ↵Dr. Stephen Henson
no FIPS compilation support
2011-05-11Backport TLS v1.2 support from HEAD.Dr. Stephen Henson
This includes TLS v1.2 server and client support but at present client certificate support is not implemented.
2010-06-15Fix warnings (From HEAD, original patch by Ben).Dr. Stephen Henson
2009-04-16PR: 1894Dr. Stephen Henson
Submitted by: Ger Hobbelt <ger@hobbelt.com> Approved by: steve@openssl.org Fix various typos and stuff.
2009-04-05Fix error codes.Dr. Stephen Henson
2008-12-29If we're going to return errors (no matter how stupid), then we shouldBen Laurie
test for them!
2008-12-29Die earlier if hash is NULL. (Coverity IDs 137 & 138).Ben Laurie
2008-12-29Die earlier if we have no hash function.Ben Laurie
2008-12-27Handle the unlikely event that BIO_get_mem_data() returns -ve.Ben Laurie
2007-09-07Fix warnings: computed value not use, incompatible pointer initializationDr. Stephen Henson
and cast from pointer to int of different size (linux-x86_64 and align).
2007-08-31Update ssl code to support digests other than MD5+SHA1 in handshake.Dr. Stephen Henson
Submitted by: Victor B. Wagner <vitus@cryptocom.ru>
2007-06-04Update ssl library to support EVP_PKEY MAC API. Include generic MAC support.Dr. Stephen Henson
2007-02-17Reorganize the data used for SSL ciphersuite pattern matching.Bodo Möller
This change resolves a number of problems and obviates multiple kludges. A new feature is that you can now say "AES256" or "AES128" (not just "AES", which enables both). In some cases the ciphersuite list generated from a given string is affected by this change. I hope this is just in those cases where the previous behaviour did not make sense.
2007-02-16ensure that the EVP_CIPHER_CTX object is initializedNils Larsch
PR: 1490
2006-03-10add initial support for RFC 4279 PSK SSL ciphersuitesNils Larsch
PR: 1191 Submitted by: Mika Kousa and Pasi Eronen of Nokia Corporation Reviewed by: Nils Larsch
2006-01-07prepare for additional RFC3546 alertsBodo Möller
2006-01-07make sure that the unrecognized_name alert actually gets sentBodo Möller
Submitted by: Peter Sylvester
2005-10-01Fix compilation without OPENSSL_NO_COMP :-)Dr. Stephen Henson
2005-09-30Make OPENSSL_NO_COMP compile again.Dr. Stephen Henson
2005-04-26Add DTLS support.Ben Laurie
2003-11-04Avoid some shadowed variable names.Geoff Thorpe
Submitted by: Nils Larsch
2003-10-29A general spring-cleaning (in autumn) to fix up signed/unsigned warnings.Geoff Thorpe
I have tried to convert 'len' type variable declarations to unsigned as a means to address these warnings when appropriate, but when in doubt I have used casts in the comparisons instead. The better solution (that would get us all lynched by API users) would be to go through and convert all the function prototypes and structure definitions to use unsigned variables except when signed is necessary. The proliferation of (signed) "int" for strictly non-negative uses is unfortunate.
2003-02-12commentsBodo Möller
2002-11-28Cleanse memory using the new OPENSSL_cleanse() function.Richard Levitte
I've covered all the memset()s I felt safe modifying, but may have missed some.
2002-11-13Security fixes brought forward from 0.9.7.Ben Laurie
2002-07-10Reorder inclusion of header files:Lutz Jänicke
des_old.h redefines crypt: #define crypt(b,s)\ DES_crypt((b),(s)) This scheme leads to failure, if header files with the OS's true definition of crypt() are processed _after_ des_old.h was processed. This is e.g. the case on HP-UX with unistd.h. As evp.h now again includes des.h (which includes des_old.h), this problem only came up after this modification. Solution: move header files (indirectly) including e_os.h before the header files (indirectly) including evp.h. Submitted by: Reviewed by: PR:
2002-07-09emtpy fragments are not necessary for SSL_eNULLBodo Möller
(but noone uses it anyway) fix t1_enc.c: use OPENSSL_NO_RC4, not NO_RC4
2002-06-14New option SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS for disabling CBCBodo Möller
vulnerability workaround (included in SSL_OP_ALL). PR: #90
2002-04-13Implement known-IV countermeasure.Bodo Möller
Fix length checks in ssl3_get_client_hello(). Use s->s3->in_read_app_data differently to fix ssl3_read_internal().
2001-10-22Fix memory leak.Bodo Möller
2001-10-17Modify EVP cipher behaviour in a similar wayDr. Stephen Henson
to digests to retain compatibility.
2001-10-16Retain compatibility of EVP_DigestInit() and EVP_DigestFinal()Dr. Stephen Henson
with existing code. Modify library to use digest *_ex() functions.
2001-09-24commentBodo Möller
2001-09-20Fix ssl/s3_enc.c, ssl/t1_enc.c and ssl/s3_pkt.c so that we don'tBodo Möller
reveal whether illegal block cipher padding was found or a MAC verification error occured. In ssl/s2_pkt.c, verify that the purported number of padding bytes is in the legal range.
2001-07-30Really add the EVP and all of the DES changes.Ben Laurie
2001-06-19Change all calls to low level digest routines in the library andDr. Stephen Henson
applications to use EVP. Add missing calls to HMAC_cleanup() and don't assume HMAC_CTX can be copied using memcpy(). Note: this is almost identical to the patch submitted to openssl-dev by Verdon Walker <VWalker@novell.com> except some redundant EVP_add_digest_()/EVP_cleanup() calls were removed and some changes made to avoid compiler warnings.
2001-06-15pay attention to blocksize before attempting decryptionBodo Möller
2001-06-07Use memmove() instead of memcpy() on areas that may overlap.Richard Levitte
Spotted by Nalin Dahyabhai <nalin@redhat.com>
2001-04-08Avoid assert() in the library.Bodo Möller