]> git.proxmox.com Git - mirror_qemu.git/blame - crypto/afalgpriv.h
ohci: check device is not NULL before calling usb_ep_get()
[mirror_qemu.git] / crypto / afalgpriv.h
CommitLineData
f0d92b56
LM
1/*
2 * QEMU Crypto af_alg support
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#ifndef QCRYPTO_AFALGPRIV_H
15#define QCRYPTO_AFALGPRIV_H
16
17#include <linux/if_alg.h>
18
19#define SALG_TYPE_LEN_MAX 14
20#define SALG_NAME_LEN_MAX 64
21
25c60df3
LM
22#ifndef SOL_ALG
23#define SOL_ALG 279
24#endif
25
26#define AFALG_TYPE_CIPHER "skcipher"
9a059773 27#define AFALG_TYPE_HASH "hash"
25c60df3
LM
28
29#define ALG_OPTYPE_LEN 4
30#define ALG_MSGIV_LEN(len) (sizeof(struct af_alg_iv) + (len))
31
f0d92b56
LM
32typedef struct QCryptoAFAlg QCryptoAFAlg;
33
34struct QCryptoAFAlg {
35 int tfmfd;
36 int opfd;
37 struct msghdr *msg;
38 struct cmsghdr *cmsg;
39};
40
41/**
42 * qcrypto_afalg_comm_alloc:
43 * @type: the type of crypto operation
44 * @name: the name of crypto operation
45 *
46 * Allocate a QCryptoAFAlg object and bind itself to
47 * a AF_ALG socket.
48 *
49 * Returns:
50 * a new QCryptoAFAlg object, or NULL in error.
51 */
52QCryptoAFAlg *
53qcrypto_afalg_comm_alloc(const char *type, const char *name,
54 Error **errp);
55
56/**
57 * afalg_comm_free:
58 * @afalg: the QCryptoAFAlg object
59 *
60 * Free the @afalg.
61 */
62void qcrypto_afalg_comm_free(QCryptoAFAlg *afalg);
63
64#endif