Ben Laurie
e5420be6cd
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
2013-02-05 16:46:16 +00:00
..
2013-01-22 23:00:02 +01:00
2013-02-05 16:46:15 +00:00
2008-11-12 03:58:08 +00:00
2012-10-04 15:03:08 +00:00
2012-06-27 13:04:17 +00:00
2012-04-22 13:31:37 +00:00
2013-01-22 23:00:02 +01:00
2009-12-22 11:45:59 +00:00
2013-01-23 01:14:13 +00:00
2011-02-03 12:04:40 +00:00
2011-09-02 11:20:41 +00:00
2010-05-26 23:23:44 +00:00
2009-09-06 15:49:12 +00:00
2011-06-20 20:05:38 +00:00
2011-09-05 09:54:59 +00:00
2012-10-05 20:51:31 +00:00
2012-10-05 20:51:31 +00:00
2012-10-05 20:51:31 +00:00
2012-02-27 16:33:16 +00:00
2013-01-20 01:12:15 +00:00
2013-02-05 16:46:16 +00:00
2011-05-19 17:39:49 +00:00
2007-01-21 13:07:17 +00:00
2010-11-24 13:48:12 +00:00
2005-05-16 16:55:47 +00:00
2009-12-09 15:00:20 +00:00
2007-08-31 10:12:35 +00:00
2007-06-07 16:07:57 +00:00
2013-01-22 23:00:02 +01:00
2006-02-04 01:45:59 +00:00
2010-04-14 07:47:53 +00:00
2010-01-25 16:07:51 +00:00
2013-02-05 16:46:15 +00:00
2010-06-15 17:25:15 +00:00
2012-03-13 19:19:57 +00:00
2012-03-22 15:43:06 +00:00
2012-02-27 16:46:54 +00:00
2010-06-15 17:25:15 +00:00
2012-01-15 13:40:40 +00:00
2007-09-18 21:10:32 +00:00
2013-01-22 23:00:02 +01:00
2010-08-02 21:54:23 +00:00
2009-02-14 21:49:38 +00:00
2013-02-05 16:46:15 +00:00
2008-12-23 11:33:01 +00:00
2013-01-22 23:00:02 +01:00
2011-03-22 23:56:18 +00:00
2009-02-19 09:42:51 +00:00
2009-05-15 16:37:08 +00:00
2011-01-03 01:22:09 +00:00
2009-07-27 21:08:53 +00:00
2012-02-12 18:25:11 +00:00
2013-01-22 23:00:02 +01:00
2012-12-06 18:25:18 +00:00
2012-12-06 18:25:18 +00:00
2008-04-17 10:19:16 +00:00
2011-08-12 12:32:10 +00:00
2006-11-21 21:29:44 +00:00
2013-02-05 16:46:15 +00:00
2010-01-26 13:55:33 +00:00
2012-07-04 17:27:43 +00:00
2013-02-05 16:46:15 +00:00
2004-04-19 18:09:28 +00:00
2003-10-29 22:25:04 +00:00
2000-02-01 02:21:16 +00:00
2008-07-04 23:12:52 +00:00
2010-02-12 17:02:13 +00:00
2011-03-19 09:44:53 +00:00
2004-07-10 13:16:02 +00:00
2004-09-23 22:11:39 +00:00
2011-03-19 09:44:53 +00:00
2004-09-23 22:11:39 +00:00
2006-10-23 07:41:05 +00:00
2004-09-23 22:11:39 +00:00
2010-07-26 22:09:59 +00:00
2010-08-02 21:54:23 +00:00
2007-06-23 18:47:51 +00:00
2009-04-16 17:22:51 +00:00
2012-04-19 11:44:51 +00:00
2004-07-10 13:16:02 +00:00
2004-08-03 19:15:21 +00:00
2004-07-10 13:16:02 +00:00
2009-06-01 12:14:15 +00:00
2005-09-20 20:19:07 +00:00
2011-03-19 09:44:53 +00:00
2008-10-07 22:55:27 +00:00
2005-12-16 10:37:24 +00:00
2012-05-10 16:01:57 +00:00
2008-11-11 12:23:18 +00:00
2012-04-27 20:21:26 +00:00
2010-01-19 21:40:58 +00:00
2010-02-12 17:02:13 +00:00
2010-09-05 19:48:01 +00:00
2010-09-05 19:48:01 +00:00
2012-07-05 08:49:02 +00:00
2003-11-28 13:10:58 +00:00
2011-03-19 09:44:53 +00:00
2013-01-22 23:00:02 +01:00
2010-02-12 17:02:13 +00:00