Merge remote-tracking branch 'remotes/dgilbert-gitlab/tags/pull-migration-20210726a...
[qemu/armbru.git] / crypto / cipherpriv.h
blob396527857d686ba0225547f5fa6bffaa673f7f95
1 /*
2 * QEMU Crypto cipher driver supports
4 * Copyright (c) 2017 HUAWEI TECHNOLOGIES CO., LTD.
6 * Authors:
7 * Longpeng(Mike) <longpeng2@huawei.com>
9 * This work is licensed under the terms of the GNU GPL, version 2 or
10 * (at your option) any later version. See the COPYING file in the
11 * top-level directory.
15 #ifndef QCRYPTO_CIPHERPRIV_H
16 #define QCRYPTO_CIPHERPRIV_H
18 #include "qapi/qapi-types-crypto.h"
20 struct QCryptoCipherDriver {
21 int (*cipher_encrypt)(QCryptoCipher *cipher,
22 const void *in,
23 void *out,
24 size_t len,
25 Error **errp);
27 int (*cipher_decrypt)(QCryptoCipher *cipher,
28 const void *in,
29 void *out,
30 size_t len,
31 Error **errp);
33 int (*cipher_setiv)(QCryptoCipher *cipher,
34 const uint8_t *iv, size_t niv,
35 Error **errp);
37 void (*cipher_free)(QCryptoCipher *cipher);
40 #ifdef CONFIG_AF_ALG
42 #include "afalgpriv.h"
44 extern QCryptoCipher *
45 qcrypto_afalg_cipher_ctx_new(QCryptoCipherAlgorithm alg,
46 QCryptoCipherMode mode,
47 const uint8_t *key,
48 size_t nkey, Error **errp);
50 #endif
52 #endif