| /* |
| * QEMU Crypto hmac driver supports |
| * |
| * 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_HMACPRIV_H |
| #define QCRYPTO_HMACPRIV_H |
| |
| typedef struct QCryptoHmacDriver QCryptoHmacDriver; |
| |
| struct QCryptoHmacDriver { |
| int (*hmac_bytesv)(QCryptoHmac *hmac, |
| const struct iovec *iov, |
| size_t niov, |
| uint8_t **result, |
| size_t *resultlen, |
| Error **errp); |
| |
| void (*hmac_free)(QCryptoHmac *hmac); |
| }; |
| |
| void *qcrypto_hmac_ctx_new(QCryptoHashAlgo alg, |
| const uint8_t *key, size_t nkey, |
| Error **errp); |
| extern QCryptoHmacDriver qcrypto_hmac_lib_driver; |
| |
| #ifdef CONFIG_AF_ALG |
| |
| #include "afalgpriv.h" |
| |
| QCryptoAFAlgo *qcrypto_afalg_hmac_ctx_new(QCryptoHashAlgo alg, |
| const uint8_t *key, size_t nkey, |
| Error **errp); |
| extern QCryptoHmacDriver qcrypto_hmac_afalg_driver; |
| |
| #endif |
| |
| #endif |