master
h 46 lines 1.14 KB
Raw
1 /*
2 * QEMU Crypto hash driver supports
3 *
4 * Copyright (c) 2024 Seagate Technology LLC and/or its Affiliates
5 * Copyright (c) 2017 HUAWEI TECHNOLOGIES CO., LTD.
6 *
7 * Authors:
8 * Longpeng(Mike) <longpeng2@huawei.com>
9 *
10 * This work is licensed under the terms of the GNU GPL, version 2 or
11 * (at your option) any later version. See the COPYING file in the
12 * top-level directory.
13 *
14 */
15
16 #ifndef QCRYPTO_HASHPRIV_H
17 #define QCRYPTO_HASHPRIV_H
18
19 #include "crypto/hash.h"
20
21 typedef struct QCryptoHashDriver QCryptoHashDriver;
22
23 struct QCryptoHashDriver {
24 QCryptoHash *(*hash_new)(QCryptoHashAlgo alg, Error **errp);
25 int (*hash_update)(QCryptoHash *hash,
26 const struct iovec *iov,
27 size_t niov,
28 Error **errp);
29 int (*hash_finalize)(QCryptoHash *hash,
30 uint8_t **result,
31 size_t *resultlen,
32 Error **errp);
33 void (*hash_free)(QCryptoHash *hash);
34 };
35
36 extern QCryptoHashDriver qcrypto_hash_lib_driver;
37
38 #ifdef CONFIG_AF_ALG
39
40 #include "afalgpriv.h"
41
42 extern QCryptoHashDriver qcrypto_hash_afalg_driver;
43
44 #endif
45
46 #endif