linux/drivers/staging/greybus/greybus_authentication.h

/* SPDX-License-Identifier: (GPL-2.0 OR BSD-3-Clause) */
/*
 * Greybus Component Authentication User Header
 *
 * Copyright(c) 2016 Google Inc. All rights reserved.
 * Copyright(c) 2016 Linaro Ltd. All rights reserved.
 */

#ifndef __GREYBUS_AUTHENTICATION_USER_H
#define __GREYBUS_AUTHENTICATION_USER_H

#include <linux/ioctl.h>
#include <linux/types.h>

#define CAP_CERTIFICATE_MAX_SIZE
#define CAP_SIGNATURE_MAX_SIZE

/* Certificate class types */
#define CAP_CERT_IMS_EAPC
#define CAP_CERT_IMS_EASC
#define CAP_CERT_IMS_EARC
#define CAP_CERT_IMS_IAPC
#define CAP_CERT_IMS_IASC
#define CAP_CERT_IMS_IARC

/* IMS Certificate response result codes */
#define CAP_IMS_RESULT_CERT_FOUND
#define CAP_IMS_RESULT_CERT_CLASS_INVAL
#define CAP_IMS_RESULT_CERT_CORRUPT
#define CAP_IMS_RESULT_CERT_NOT_FOUND

/* Authentication types */
#define CAP_AUTH_IMS_PRI
#define CAP_AUTH_IMS_SEC
#define CAP_AUTH_IMS_RSA

/* Authenticate response result codes */
#define CAP_AUTH_RESULT_CR_SUCCESS
#define CAP_AUTH_RESULT_CR_BAD_TYPE
#define CAP_AUTH_RESULT_CR_WRONG_EP
#define CAP_AUTH_RESULT_CR_NO_KEY
#define CAP_AUTH_RESULT_CR_SIG_FAIL

/* IOCTL support */
struct cap_ioc_get_endpoint_uid {} __packed;

struct cap_ioc_get_ims_certificate {} __packed;

struct cap_ioc_authenticate {} __packed;

#define CAP_IOCTL_BASE
#define CAP_IOC_GET_ENDPOINT_UID
#define CAP_IOC_GET_IMS_CERTIFICATE
#define CAP_IOC_AUTHENTICATE

#endif /* __GREYBUS_AUTHENTICATION_USER_H */