mirror of
https://github.com/mii443/qemu.git
synced 2025-12-03 11:08:25 +00:00
crypto: introduce some common functions for af_alg backend
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>
This commit is contained in:
committed by
Daniel P. Berrange
parent
14a5a2aef4
commit
f0d92b56d8
54
crypto/afalgpriv.h
Normal file
54
crypto/afalgpriv.h
Normal file
@@ -0,0 +1,54 @@
|
||||
/*
|
||||
* 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
|
||||
Reference in New Issue
Block a user