crypto: add block encryption framework
commit7d9690148ac25bc755a759adab7d63f517d092b1
authorDaniel P. Berrange <berrange@redhat.com>
Sat, 24 Oct 2015 10:44:13 +0000 (24 11:44 +0100)
committerDaniel P. Berrange <berrange@redhat.com>
Thu, 17 Mar 2016 14:41:15 +0000 (17 14:41 +0000)
tree4d0602424dc0864328c4c6617f318d646a3a0f51
parenteaec903c5b830ed9d9610ba72072b97763c2f996
crypto: add block encryption framework

Add a generic framework for supporting different block encryption
formats. Upon instantiating a QCryptoBlock object, it will read
the encryption header and extract the encryption keys. It is
then possible to call methods to encrypt/decrypt data buffers.

There is also a mode whereby it will create/initialize a new
encryption header on a previously unformatted volume.

The initial framework comes with support for the legacy QCow
AES based encryption. This enables code in the QCow driver to
be consolidated later.

Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
crypto/Makefile.objs
crypto/block-qcow.c [new file with mode: 0644]
crypto/block-qcow.h [new file with mode: 0644]
crypto/block.c [new file with mode: 0644]
crypto/blockpriv.h [new file with mode: 0644]
include/crypto/block.h [new file with mode: 0644]
qapi/crypto.json
tests/.gitignore
tests/Makefile
tests/test-crypto-block.c [new file with mode: 0644]