| /* |
| * 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 { |
| int (*hash_bytesv)(QCryptoHashAlgo alg, |
| const struct iovec *iov, |
| size_t niov, |
| uint8_t **result, |
| size_t *resultlen, |
| Error **errp); |
| 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 |