boringssl/ssl
David Benjamin ea72bd0b60 Implement all TLS ciphers with stateful AEADs.
The EVP_CIPHER codepath should no longer be used with TLS. It still exists for
DTLS and SSLv3. The AEAD construction in TLS does not allow for
variable-overhead AEADs, so stateful AEADs do not include the length in the ad
parameter. Rather the AEADs internally append the unpadded length once it is
known. EVP_aead_rc4_md5_tls is modified to account for this.

Tests are added (and RC4-MD5's regenerated) for each of the new AEADs. The
cipher tests are all moved into crypto/cipher/test because there's now a lot of
them and they clutter the directory listing.

In ssl/, the stateful AEAD logic is also modified to account for stateful AEADs
with a fixed IV component, and for AEADs which use a random nonce (for the
explicit-IV CBC mode ciphers).

The new implementation fixes a bug/quirk in stateless CBC mode ciphers where
the fixed IV portion of the keyblock was generated regardless. This is at the
end, so it's only relevant for EAP-TLS which generates a MSK from the end of
the key block.

Change-Id: I2d8b8aa11deb43bde2fd733f4f90b5d5b8cb1334
Reviewed-on: https://boringssl-review.googlesource.com/2692
Reviewed-by: Adam Langley <agl@google.com>
2015-01-14 20:30:26 +00:00
..
pqueue Test insertion of duplicates in pqueue_test. 2014-11-06 01:46:57 +00:00
test Add a basic MTU test. 2015-01-12 22:37:25 +00:00
CMakeLists.txt Merge SSLv23_method and DTLS_ANY_VERSION. 2014-12-13 15:22:21 -08:00
d1_both.c Add outgoing messages to the handshake hash at set_handshake_header. 2014-12-16 01:43:51 +00:00
d1_clnt.c Reformatting of several DTLS source files. 2014-12-13 16:28:18 -08:00
d1_lib.c Implement all TLS ciphers with stateful AEADs. 2015-01-14 20:30:26 +00:00
d1_meth.c Implement SSL_clear with ssl_new and ssl_free. 2015-01-12 22:35:58 +00:00
d1_pkt.c Fix DTLS memory leak. 2015-01-09 19:41:47 +00:00
d1_srtp.c Reformat d1_{srtp|srvr}.c and s3_both.c 2014-12-15 18:42:07 -08:00
d1_srvr.c Reformat d1_{srtp|srvr}.c and s3_both.c 2014-12-15 18:42:07 -08:00
s3_both.c Touch up ssl3_get_message. 2014-12-17 00:16:23 +00:00
s3_cbc.c Reformatting of s3_{cbc|clnt}.c 2014-12-17 19:06:57 -08:00
s3_clnt.c Treat handshake_failure in response to ClientHello special. 2015-01-06 18:31:49 +00:00
s3_enc.c Reformat s3_{enc|lib}.c. 2014-12-18 12:09:22 -08:00
s3_lib.c Implement all TLS ciphers with stateful AEADs. 2015-01-14 20:30:26 +00:00
s3_meth.c Implement SSL_clear with ssl_new and ssl_free. 2015-01-12 22:35:58 +00:00
s3_pkt.c Reformat the rest of ssl/. 2014-12-18 17:43:03 -08:00
s3_srvr.c Reformat the rest of ssl/. 2014-12-18 17:43:03 -08:00
ssl_algs.c Reformat the rest of ssl/. 2014-12-18 17:43:03 -08:00
ssl_asn1.c Remove psk_identity_hint from SSL_SESSION. 2014-11-10 23:59:47 +00:00
ssl_cert.c Add (void) to some macros to satisfy compiler. 2015-01-12 23:46:03 +00:00
ssl_ciph.c Implement all TLS ciphers with stateful AEADs. 2015-01-14 20:30:26 +00:00
ssl_error.c Implement all TLS ciphers with stateful AEADs. 2015-01-14 20:30:26 +00:00
ssl_lib.c Implement all TLS ciphers with stateful AEADs. 2015-01-14 20:30:26 +00:00
ssl_locl.h Implement all TLS ciphers with stateful AEADs. 2015-01-14 20:30:26 +00:00
ssl_rsa.c Reformat the rest of ssl/. 2014-12-18 17:43:03 -08:00
ssl_sess.c Add (void) to some macros to satisfy compiler. 2015-01-12 23:46:03 +00:00
ssl_stat.c Reformat the rest of ssl/. 2014-12-18 17:43:03 -08:00
ssl_test.c Merge SSLv23_method and DTLS_ANY_VERSION. 2014-12-13 15:22:21 -08:00
ssl_txt.c Reformat the rest of ssl/. 2014-12-18 17:43:03 -08:00
t1_enc.c Implement all TLS ciphers with stateful AEADs. 2015-01-14 20:30:26 +00:00
t1_lib.c Reformat the rest of ssl/. 2014-12-18 17:43:03 -08:00
t1_reneg.c Reformat the rest of ssl/. 2014-12-18 17:43:03 -08:00