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 21typedef struct QCryptoHashDriver QCryptoHashDriver; 22 23struct 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 36extern QCryptoHashDriver qcrypto_hash_lib_driver; 37 38#ifdef CONFIG_AF_ALG 39 40#include "afalgpriv.h" 41 42extern QCryptoHashDriver qcrypto_hash_afalg_driver; 43 44#endif 45 46#endif 47

