diff options
author | Longpeng(Mike) <longpeng2@huawei.com> | 2017-07-14 14:03:58 -0400 |
---|---|---|
committer | Daniel P. Berrange <berrange@redhat.com> | 2017-07-19 10:11:04 +0100 |
commit | 75c800780919e389e6c272d84b31a33ec348ff79 (patch) | |
tree | 7378c7bf211c2d6c8be33f8d490fa8de86a6370a /crypto/cipherpriv.h | |
parent | d962c6266c5361f62f16b3c7b1c5b587502eaf77 (diff) |
crypto: cipher: add cipher driver framework
1) makes the public APIs in cipher-nettle/gcrypt/builtin static,
and rename them with "nettle/gcrypt/builtin" prefix.
2) introduces cipher framework, including QCryptoCipherDriver
and new public APIs.
Reviewed-by: Gonglei <arei.gonglei@huawei.com>
Signed-off-by: Longpeng(Mike) <longpeng2@huawei.com>
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
Diffstat (limited to 'crypto/cipherpriv.h')
-rw-r--r-- | crypto/cipherpriv.h | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/crypto/cipherpriv.h b/crypto/cipherpriv.h new file mode 100644 index 0000000000..4af5e85436 --- /dev/null +++ b/crypto/cipherpriv.h @@ -0,0 +1,40 @@ +/* + * QEMU Crypto cipher driver supports + * + * Copyright (c) 2017 HUAWEI TECHNOLOGIES CO., LTD. + * + * Authors: + * Longpeng(Mike) <longpeng2@huawei.com> + * + * This work is licensed under the terms of the GNU GPL, version 2 or + * (at your option) any later version. See the COPYING file in the + * top-level directory. + * + */ + +#ifndef QCRYPTO_CIPHERPRIV_H +#define QCRYPTO_CIPHERPRIV_H + +typedef struct QCryptoCipherDriver QCryptoCipherDriver; + +struct QCryptoCipherDriver { + int (*cipher_encrypt)(QCryptoCipher *cipher, + const void *in, + void *out, + size_t len, + Error **errp); + + int (*cipher_decrypt)(QCryptoCipher *cipher, + const void *in, + void *out, + size_t len, + Error **errp); + + int (*cipher_setiv)(QCryptoCipher *cipher, + const uint8_t *iv, size_t niv, + Error **errp); + + void (*cipher_free)(QCryptoCipher *cipher); +}; + +#endif |