![Thomas Gleixner](/assets/img/avatar_default.png)
Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public licence as published by the free software foundation either version 2 of the licence or at your option any later version extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 114 file(s). Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Reviewed-by: Allison Randal <allison@lohutok.net> Reviewed-by: Kate Stewart <kstewart@linuxfoundation.org> Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190520170857.552531963@linutronix.de Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
61 lines
1.7 KiB
C
61 lines
1.7 KiB
C
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
|
/* Asymmetric public-key cryptography key subtype
|
|
*
|
|
* See Documentation/crypto/asymmetric-keys.txt
|
|
*
|
|
* Copyright (C) 2012 Red Hat, Inc. All Rights Reserved.
|
|
* Written by David Howells (dhowells@redhat.com)
|
|
*/
|
|
|
|
#ifndef _KEYS_ASYMMETRIC_SUBTYPE_H
|
|
#define _KEYS_ASYMMETRIC_SUBTYPE_H
|
|
|
|
#include <linux/seq_file.h>
|
|
#include <keys/asymmetric-type.h>
|
|
|
|
struct kernel_pkey_query;
|
|
struct kernel_pkey_params;
|
|
struct public_key_signature;
|
|
|
|
/*
|
|
* Keys of this type declare a subtype that indicates the handlers and
|
|
* capabilities.
|
|
*/
|
|
struct asymmetric_key_subtype {
|
|
struct module *owner;
|
|
const char *name;
|
|
unsigned short name_len; /* length of name */
|
|
|
|
/* Describe a key of this subtype for /proc/keys */
|
|
void (*describe)(const struct key *key, struct seq_file *m);
|
|
|
|
/* Destroy a key of this subtype */
|
|
void (*destroy)(void *payload_crypto, void *payload_auth);
|
|
|
|
int (*query)(const struct kernel_pkey_params *params,
|
|
struct kernel_pkey_query *info);
|
|
|
|
/* Encrypt/decrypt/sign data */
|
|
int (*eds_op)(struct kernel_pkey_params *params,
|
|
const void *in, void *out);
|
|
|
|
/* Verify the signature on a key of this subtype (optional) */
|
|
int (*verify_signature)(const struct key *key,
|
|
const struct public_key_signature *sig);
|
|
};
|
|
|
|
/**
|
|
* asymmetric_key_subtype - Get the subtype from an asymmetric key
|
|
* @key: The key of interest.
|
|
*
|
|
* Retrieves and returns the subtype pointer of the asymmetric key from the
|
|
* type-specific data attached to the key.
|
|
*/
|
|
static inline
|
|
struct asymmetric_key_subtype *asymmetric_key_subtype(const struct key *key)
|
|
{
|
|
return key->payload.data[asym_subtype];
|
|
}
|
|
|
|
#endif /* _KEYS_ASYMMETRIC_SUBTYPE_H */
|