xref: /openbmc/qemu/crypto/hmacpriv.h (revision f6476697)
1 /*
2  * QEMU Crypto hmac driver supports
3  *
4  * Copyright (c) 2017 HUAWEI TECHNOLOGIES CO., LTD.
5  *
6  * Authors:
7  *    Longpeng(Mike) <longpeng2@huawei.com>
8  *
9  * This work is licensed under the terms of the GNU GPL, version 2 or
10  * (at your option) any later version.  See the COPYING file in the
11  * top-level directory.
12  *
13  */
14 
15 #ifndef QCRYPTO_HMACPRIV_H
16 #define QCRYPTO_HMACPRIV_H
17 
18 typedef struct QCryptoHmacDriver QCryptoHmacDriver;
19 
20 struct QCryptoHmacDriver {
21     int (*hmac_bytesv)(QCryptoHmac *hmac,
22                        const struct iovec *iov,
23                        size_t niov,
24                        uint8_t **result,
25                        size_t *resultlen,
26                        Error **errp);
27 
28     void (*hmac_free)(QCryptoHmac *hmac);
29 };
30 
31 extern void *qcrypto_hmac_ctx_new(QCryptoHashAlgorithm alg,
32                                   const uint8_t *key, size_t nkey,
33                                   Error **errp);
34 extern QCryptoHmacDriver qcrypto_hmac_lib_driver;
35 
36 #ifdef CONFIG_AF_ALG
37 
38 #include "afalgpriv.h"
39 
40 extern QCryptoAFAlg *
41 qcrypto_afalg_hmac_ctx_new(QCryptoHashAlgorithm alg,
42                            const uint8_t *key, size_t nkey,
43                            Error **errp);
44 extern QCryptoHmacDriver qcrypto_hmac_afalg_driver;
45 
46 #endif
47 
48 #endif
49