~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/include/keys/asymmetric-subtype.h

Version: ~ [ linux-6.11.5 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.58 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.114 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.169 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.228 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.284 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.322 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 /* SPDX-License-Identifier: GPL-2.0-or-later */
  2 /* Asymmetric public-key cryptography key subtype
  3  *
  4  * See Documentation/crypto/asymmetric-keys.rst
  5  *
  6  * Copyright (C) 2012 Red Hat, Inc. All Rights Reserved.
  7  * Written by David Howells (dhowells@redhat.com)
  8  */
  9 
 10 #ifndef _KEYS_ASYMMETRIC_SUBTYPE_H
 11 #define _KEYS_ASYMMETRIC_SUBTYPE_H
 12 
 13 #include <linux/seq_file.h>
 14 #include <keys/asymmetric-type.h>
 15 
 16 struct kernel_pkey_query;
 17 struct kernel_pkey_params;
 18 struct public_key_signature;
 19 
 20 /*
 21  * Keys of this type declare a subtype that indicates the handlers and
 22  * capabilities.
 23  */
 24 struct asymmetric_key_subtype {
 25         struct module           *owner;
 26         const char              *name;
 27         unsigned short          name_len;       /* length of name */
 28 
 29         /* Describe a key of this subtype for /proc/keys */
 30         void (*describe)(const struct key *key, struct seq_file *m);
 31 
 32         /* Destroy a key of this subtype */
 33         void (*destroy)(void *payload_crypto, void *payload_auth);
 34 
 35         int (*query)(const struct kernel_pkey_params *params,
 36                      struct kernel_pkey_query *info);
 37 
 38         /* Encrypt/decrypt/sign data */
 39         int (*eds_op)(struct kernel_pkey_params *params,
 40                       const void *in, void *out);
 41 
 42         /* Verify the signature on a key of this subtype (optional) */
 43         int (*verify_signature)(const struct key *key,
 44                                 const struct public_key_signature *sig);
 45 };
 46 
 47 /**
 48  * asymmetric_key_subtype - Get the subtype from an asymmetric key
 49  * @key: The key of interest.
 50  *
 51  * Retrieves and returns the subtype pointer of the asymmetric key from the
 52  * type-specific data attached to the key.
 53  */
 54 static inline
 55 struct asymmetric_key_subtype *asymmetric_key_subtype(const struct key *key)
 56 {
 57         return key->payload.data[asym_subtype];
 58 }
 59 
 60 #endif /* _KEYS_ASYMMETRIC_SUBTYPE_H */
 61 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php