]> git.ipfire.org Git - thirdparty/openssl.git/commit
Fix encrypt-then-mac implementation for DTLS
authorDavid Woodhouse <David.Woodhouse@intel.com>
Wed, 12 Oct 2016 22:12:04 +0000 (23:12 +0100)
committerMatt Caswell <matt@openssl.org>
Mon, 17 Oct 2016 22:17:39 +0000 (23:17 +0100)
commite23d5071ec4c7aa6bb2b0f2c3e0fc2182ed7e63f
treeed8e1464484e0e8d2d196bf1c99a3219865eac22
parentb2e54eb834e2d5a79d03f12a818d68f82c0e3d13
Fix encrypt-then-mac implementation for DTLS

OpenSSL 1.1.0 will negotiate EtM on DTLS but will then not actually *do* it.

If we use DTLSv1.2 that will hopefully be harmless since we'll tend to use
an AEAD ciphersuite anyway. But if we're using DTLSv1, then we certainly
will end up using CBC, so EtM is relevant — and we fail to interoperate with
anything that implements EtM correctly.

Fixing it in HEAD and 1.1.0c will mean that 1.1.0[ab] are incompatible with
1.1.0c+... for the limited case of non-AEAD ciphers, where they're *already*
incompatible with other implementations due to this bug anyway. That seems
reasonable enough, so let's do it. The only alternative is just to turn it
off for ever... which *still* leaves 1.0.0[ab] failing to communicate with
non-OpenSSL implementations anyway.

Tested against itself as well as against GnuTLS both with and without EtM.

Reviewed-by: Tim Hudson <tjh@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
ssl/record/rec_layer_d1.c
ssl/record/ssl3_record.c