| /* | |
| * QEMU Crypto hash driver supports | |
| * | |
| * Copyright (c) 2024 Seagate Technology LLC and/or its Affiliates | |
| * 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_HASHPRIV_H | |
| #define QCRYPTO_HASHPRIV_H | |
| #include "crypto/hash.h" | |
| typedef struct QCryptoHashDriver QCryptoHashDriver; | |
| struct QCryptoHashDriver { | |
| QCryptoHash *(*hash_new)(QCryptoHashAlgo alg, Error **errp); | |
| int (*hash_update)(QCryptoHash *hash, | |
| const struct iovec *iov, | |
| size_t niov, | |
| Error **errp); | |
| int (*hash_finalize)(QCryptoHash *hash, | |
| uint8_t **result, | |
| size_t *resultlen, | |
| Error **errp); | |
| void (*hash_free)(QCryptoHash *hash); | |
| }; | |
| extern QCryptoHashDriver qcrypto_hash_lib_driver; | |
| #ifdef CONFIG_AF_ALG | |
| #include "afalgpriv.h" | |
| extern QCryptoHashDriver qcrypto_hash_afalg_driver; | |
| #endif | |
| #endif |