boringssl/include/openssl
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
..
aead.h Implement all TLS ciphers with stateful AEADs. 2015-01-14 20:30:26 +00:00
aes.h Add visibility rules. 2014-07-31 22:03:11 +00:00
asn1_mac.h Add visibility rules. 2014-07-31 22:03:11 +00:00
asn1.h Fix various certificate fingerprint issues. 2015-01-09 19:41:59 +00:00
asn1t.h Fix Windows shared library build. 2014-10-01 02:01:53 +00:00
base64.h Introduce EVP_DecodeBase64. 2014-08-25 23:00:28 +00:00
base.h Move the X509_NAME typedef into x509.h. 2014-10-28 22:38:38 +00:00
bio.h Cleanup of setting external buffer 2014-11-24 17:46:00 +00:00
bn.h Add declarations for Android compatibility funcs. 2015-01-08 00:22:22 +00:00
buf.h Add visibility rules. 2014-07-31 22:03:11 +00:00
bytestring.h Extended master secret support. 2014-10-24 21:19:44 +00:00
chacha.h Move public headers to include/openssl/ 2014-07-14 22:42:18 +00:00
cipher.h Implement all TLS ciphers with stateful AEADs. 2015-01-14 20:30:26 +00:00
conf.h Convert all zero-argument functions to '(void)' 2014-08-21 01:06:07 +00:00
cpu.h Convert all zero-argument functions to '(void)' 2014-08-21 01:06:07 +00:00
crypto.h Add a CRYPTO_library_init and static-initializer-less build option. 2014-09-12 00:10:53 +00:00
des.h Add visibility rules. 2014-07-31 22:03:11 +00:00
dh.h Windows build fixes. 2014-08-11 22:10:02 +00:00
digest.h Add EVP_md5_sha1. 2014-12-02 20:45:07 +00:00
dsa.h Fix DER checks for DSA_check_signature and add tests. 2015-01-12 22:29:10 +00:00
dtls1.h Add outgoing messages to the handshake hash at set_handshake_header. 2014-12-16 01:43:51 +00:00
ec_key.h Add visibility rules. 2014-07-31 22:03:11 +00:00
ec.h Remove EC_GROUP_set_point_conversion_form 2014-12-09 18:47:03 +00:00
ecdh.h Add visibility rules. 2014-07-31 22:03:11 +00:00
ecdsa.h Add visibility rules. 2014-07-31 22:03:11 +00:00
engine.h Add generic OPERATION_NOT_SUPPORTED error code. 2014-10-09 23:55:39 +00:00
err.h Free more memory in cleanup functions. 2015-01-13 00:04:35 +00:00
evp.h Add malloc failure tests. 2014-11-19 01:24:46 +00:00
ex_data.h Add visibility rules. 2014-07-31 22:03:11 +00:00
hkdf.h Implement HKDF. 2014-12-18 20:13:06 +00:00
hmac.h Add visibility rules. 2014-07-31 22:03:11 +00:00
lhash_macros.h Move public headers to include/openssl/ 2014-07-14 22:42:18 +00:00
lhash.h s/comparision/comparison/. 2015-01-06 10:49:48 -08:00
md4.h Add digest_test with tests for all existing EVP_MDs. 2014-11-06 01:49:03 +00:00
md5.h Readd MD4. 2014-08-26 21:51:48 +00:00
mem.h Add visibility rules. 2014-07-31 22:03:11 +00:00
modes.h Add visibility rules. 2014-07-31 22:03:11 +00:00
obj_mac.h Renegerate OID outputs. 2014-12-04 22:13:50 +00:00
obj.h Clarify a comment. 2014-08-14 09:42:46 -07:00
objects.h Move public headers to include/openssl/ 2014-07-14 22:42:18 +00:00
opensslfeatures.h Readd MD4. 2014-08-26 21:51:48 +00:00
opensslv.h Move public headers to include/openssl/ 2014-07-14 22:42:18 +00:00
ossl_typ.h Move public headers to include/openssl/ 2014-07-14 22:42:18 +00:00
pem.h unifdef OPENSSL_NO_BIO. 2014-12-02 19:27:19 +00:00
pkcs7.h Move public headers to include/openssl/ 2014-07-14 22:42:18 +00:00
pkcs8.h Add void in place of empty function arguments. 2015-01-06 00:27:07 +00:00
pkcs12.h Move public headers to include/openssl/ 2014-07-14 22:42:18 +00:00
poly1305.h Move public headers to include/openssl/ 2014-07-14 22:42:18 +00:00
pqueue.h Export pqueue functions. 2014-09-03 21:38:19 +00:00
rand.h Convert all zero-argument functions to '(void)' 2014-08-21 01:06:07 +00:00
rc4.h Add visibility rules. 2014-07-31 22:03:11 +00:00
rsa.h Add EVP_PKEY_supports_digest. 2014-11-18 22:18:36 +00:00
safe_stack.h Move public headers to include/openssl/ 2014-07-14 22:42:18 +00:00
sha.h Fix SHA*_Final documentation. 2014-10-06 23:51:50 +00:00
srtp.h Add less dangerous versions of SRTP functions. 2014-10-27 21:58:09 +00:00
ssl2.h Move public headers to include/openssl/ 2014-07-14 22:42:18 +00:00
ssl3.h Implement all TLS ciphers with stateful AEADs. 2015-01-14 20:30:26 +00:00
ssl23.h Clean up s23_srvr.c. 2014-08-12 21:10:56 +00:00
ssl.h Implement all TLS ciphers with stateful AEADs. 2015-01-14 20:30:26 +00:00
stack_macros.h Mark all SSL_CIPHERs as const. 2014-08-18 17:55:05 +00:00
stack.h s/comparision/comparison/. 2015-01-06 10:49:48 -08:00
thread.h Also export some deprecated functions. 2014-08-01 10:33:29 -07:00
time_support.h Move public headers to include/openssl/ 2014-07-14 22:42:18 +00:00
tls1.h Update references to RFCs. 2014-12-05 17:26:13 +00:00
type_check.h Move public headers to include/openssl/ 2014-07-14 22:42:18 +00:00
x509_vfy.h Add visibility rules. 2014-07-31 22:03:11 +00:00
x509.h Fix various certificate fingerprint issues. 2015-01-09 19:41:59 +00:00
x509v3.h Fix Windows shared library build. 2014-10-01 02:01:53 +00:00