mirror of
https://gitlab.com/qemu-project/qemu
synced 2024-10-03 17:54:05 +00:00
f0d92b56d8
The AF_ALG socket family is the userspace interface for linux crypto API, this patch adds af_alg family support and some common functions for af_alg backend. It'll be used by afalg-backend crypto latter. Signed-off-by: Longpeng(Mike) <longpeng2@huawei.com> Maintainer: modified to report an error if AF_ALG is requested but cannot be supported Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
55 lines
1.1 KiB
C
55 lines
1.1 KiB
C
/*
|
|
* QEMU Crypto af_alg support
|
|
*
|
|
* 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_AFALGPRIV_H
|
|
#define QCRYPTO_AFALGPRIV_H
|
|
|
|
#include <linux/if_alg.h>
|
|
|
|
#define SALG_TYPE_LEN_MAX 14
|
|
#define SALG_NAME_LEN_MAX 64
|
|
|
|
typedef struct QCryptoAFAlg QCryptoAFAlg;
|
|
|
|
struct QCryptoAFAlg {
|
|
int tfmfd;
|
|
int opfd;
|
|
struct msghdr *msg;
|
|
struct cmsghdr *cmsg;
|
|
};
|
|
|
|
/**
|
|
* qcrypto_afalg_comm_alloc:
|
|
* @type: the type of crypto operation
|
|
* @name: the name of crypto operation
|
|
*
|
|
* Allocate a QCryptoAFAlg object and bind itself to
|
|
* a AF_ALG socket.
|
|
*
|
|
* Returns:
|
|
* a new QCryptoAFAlg object, or NULL in error.
|
|
*/
|
|
QCryptoAFAlg *
|
|
qcrypto_afalg_comm_alloc(const char *type, const char *name,
|
|
Error **errp);
|
|
|
|
/**
|
|
* afalg_comm_free:
|
|
* @afalg: the QCryptoAFAlg object
|
|
*
|
|
* Free the @afalg.
|
|
*/
|
|
void qcrypto_afalg_comm_free(QCryptoAFAlg *afalg);
|
|
|
|
#endif
|