Ben Laurie 35a65e814b 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)

Conflicts:
	crypto/evp/c_allc.c
	ssl/ssl_algs.c
	ssl/ssl_locl.h
	ssl/t1_enc.c
(cherry picked from commit 3622239826698a0e534dcf0473204c724bb9b4b4)

Conflicts:
	ssl/d1_enc.c
	ssl/s3_enc.c
	ssl/s3_pkt.c
	ssl/ssl3.h
	ssl/ssl_algs.c
	ssl/t1_enc.c
2013-02-05 16:50:32 +00:00
..
2010-08-30 23:57:03 +00:00
2012-03-07 15:14:16 +00:00
2009-09-27 14:04:33 +00:00
2009-12-22 11:45:57 +00:00
2011-02-03 12:04:48 +00:00
2011-09-02 11:20:49 +00:00
2010-05-26 23:23:53 +00:00
2008-11-05 18:36:57 +00:00
2010-10-11 23:28:54 +00:00
2009-10-04 14:02:35 +00:00
2012-10-05 20:51:47 +00:00
2012-10-05 20:51:47 +00:00
2012-10-05 20:51:47 +00:00
2012-03-06 13:22:32 +00:00
2013-01-20 01:16:25 +00:00
2013-02-05 16:50:32 +00:00
2010-11-26 16:03:23 +00:00
2009-12-09 13:41:50 +00:00
2009-11-13 14:14:46 +00:00
2010-01-25 16:08:52 +00:00
2010-10-11 23:28:54 +00:00
2009-02-14 21:50:14 +00:00
2013-02-05 16:50:32 +00:00
2010-12-02 18:02:02 +00:00
2011-09-23 13:40:06 +00:00
2008-09-16 15:11:50 +00:00
2006-11-21 20:14:46 +00:00
2013-02-05 16:50:32 +00:00
2013-02-05 16:50:32 +00:00
2000-02-01 02:21:16 +00:00
2008-09-16 22:48:18 +00:00
2008-09-16 22:48:18 +00:00
2005-05-03 21:05:06 +00:00
2007-06-23 19:07:54 +00:00
2010-03-25 12:17:17 +00:00
2009-06-01 12:14:53 +00:00
2001-07-05 10:20:07 +00:00
2012-05-10 16:01:11 +00:00
2005-05-03 21:05:06 +00:00
2003-11-28 13:10:58 +00:00
2003-11-28 13:10:58 +00:00
2007-11-11 19:44:42 +00:00