qemu-irix/crypto
Daniel P. Berrange d90481343f crypto: ensure XTS is only used with ciphers with 16 byte blocks
The XTS cipher mode needs to be used with a cipher which has
a block size of 16 bytes. If a mis-matching block size is used,
the code will either corrupt memory beyond the IV array, or
not fully encrypt/decrypt the IV.

This fixes a memory corruption crash when attempting to use
cast5-128 with xts, since the former has an 8 byte block size.

A test case is added to ensure the cipher creation fails with
such an invalid combination.

Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
(cherry picked from commit a5d2f44d0d)
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
2016-09-20 11:08:52 -05:00
..
Makefile.objs crypto: do an explicit check for nettle pbkdf functions 2016-03-30 14:55:11 +01:00
aes.c crypto: Clean up includes 2016-01-29 15:07:22 +00:00
afsplit.c crypto: add support for anti-forensic split algorithm 2016-03-17 14:41:14 +00:00
block-luks.c include/qemu/osdep.h: Don't include qapi/error.h 2016-03-22 22:20:15 +01:00
block-luks.h crypto: implement the LUKS block encryption format 2016-03-17 16:50:40 +00:00
block-qcow.c include/qemu/osdep.h: Don't include qapi/error.h 2016-03-22 22:20:15 +01:00
block-qcow.h crypto: add block encryption framework 2016-03-17 14:41:15 +00:00
block.c include/qemu/osdep.h: Don't include qapi/error.h 2016-03-22 22:20:15 +01:00
blockpriv.h crypto: add block encryption framework 2016-03-17 14:41:15 +00:00
cipher-builtin.c crypto: wire up XTS mode for cipher APIs 2016-03-17 14:41:15 +00:00
cipher-gcrypt.c crypto: ensure XTS is only used with ciphers with 16 byte blocks 2016-09-20 11:08:52 -05:00
cipher-nettle.c crypto: ensure XTS is only used with ciphers with 16 byte blocks 2016-09-20 11:08:52 -05:00
cipher.c include/qemu/osdep.h: Don't include qapi/error.h 2016-03-22 22:20:15 +01:00
desrfb.c crypto: Clean up includes 2016-01-29 15:07:22 +00:00
hash.c include/qemu/osdep.h: Don't include qapi/error.h 2016-03-22 22:20:15 +01:00
init.c include/qemu/osdep.h: Don't include qapi/error.h 2016-03-22 22:20:15 +01:00
ivgen-essiv.c include/crypto: Include qapi-types.h or qemu/bswap.h instead of qemu-common.h 2016-03-22 22:20:16 +01:00
ivgen-essiv.h crypto: add support for generating initialization vectors 2016-03-17 14:41:14 +00:00
ivgen-plain.c include/crypto: Include qapi-types.h or qemu/bswap.h instead of qemu-common.h 2016-03-22 22:20:16 +01:00
ivgen-plain.h crypto: add support for generating initialization vectors 2016-03-17 14:41:14 +00:00
ivgen-plain64.c include/crypto: Include qapi-types.h or qemu/bswap.h instead of qemu-common.h 2016-03-22 22:20:16 +01:00
ivgen-plain64.h crypto: add support for generating initialization vectors 2016-03-17 14:41:14 +00:00
ivgen.c include/qemu/osdep.h: Don't include qapi/error.h 2016-03-22 22:20:15 +01:00
ivgenpriv.h crypto: add support for generating initialization vectors 2016-03-17 14:41:14 +00:00
pbkdf-gcrypt.c include/qemu/osdep.h: Don't include qapi/error.h 2016-03-22 22:20:15 +01:00
pbkdf-nettle.c include/qemu/osdep.h: Don't include qapi/error.h 2016-03-22 22:20:15 +01:00
pbkdf-stub.c include/qemu/osdep.h: Don't include qapi/error.h 2016-03-22 22:20:15 +01:00
pbkdf.c include/qemu/osdep.h: Don't include qapi/error.h 2016-03-22 22:20:15 +01:00
random-gcrypt.c crypto: add cryptographic random byte source 2016-03-17 09:49:01 +00:00
random-gnutls.c crypto: add cryptographic random byte source 2016-03-17 09:49:01 +00:00
random-stub.c crypto: add cryptographic random byte source 2016-03-17 09:49:01 +00:00
secret.c include/qemu/osdep.h: Don't include qapi/error.h 2016-03-22 22:20:15 +01:00
tlscreds.c include/qemu/osdep.h: Don't include qapi/error.h 2016-03-22 22:20:15 +01:00
tlscredsanon.c include/qemu/osdep.h: Don't include qapi/error.h 2016-03-22 22:20:15 +01:00
tlscredspriv.h crypto: introduce new base module for TLS credentials 2015-09-15 14:47:37 +01:00
tlscredsx509.c include/qemu/osdep.h: Don't include qapi/error.h 2016-03-22 22:20:15 +01:00
tlssession.c include/qemu/osdep.h: Don't include qapi/error.h 2016-03-22 22:20:15 +01:00
xts.c crypto: import an implementation of the XTS cipher mode 2016-03-17 14:41:15 +00:00