linux/include/keys/asymmetric-subtype.h
<<
>>
Prefs
   1/* Asymmetric public-key cryptography key subtype
   2 *
   3 * See Documentation/security/asymmetric-keys.txt
   4 *
   5 * Copyright (C) 2012 Red Hat, Inc. All Rights Reserved.
   6 * Written by David Howells (dhowells@redhat.com)
   7 *
   8 * This program is free software; you can redistribute it and/or
   9 * modify it under the terms of the GNU General Public Licence
  10 * as published by the Free Software Foundation; either version
  11 * 2 of the Licence, or (at your option) any later version.
  12 */
  13
  14#ifndef _KEYS_ASYMMETRIC_SUBTYPE_H
  15#define _KEYS_ASYMMETRIC_SUBTYPE_H
  16
  17#include <linux/seq_file.h>
  18#include <keys/asymmetric-type.h>
  19
  20struct public_key_signature;
  21
  22/*
  23 * Keys of this type declare a subtype that indicates the handlers and
  24 * capabilities.
  25 */
  26struct asymmetric_key_subtype {
  27        struct module           *owner;
  28        const char              *name;
  29        unsigned short          name_len;       /* length of name */
  30
  31        /* Describe a key of this subtype for /proc/keys */
  32        void (*describe)(const struct key *key, struct seq_file *m);
  33
  34        /* Destroy a key of this subtype */
  35        void (*destroy)(void *payload);
  36
  37        /* Verify the signature on a key of this subtype (optional) */
  38        int (*verify_signature)(const struct key *key,
  39                                const struct public_key_signature *sig);
  40};
  41
  42/**
  43 * asymmetric_key_subtype - Get the subtype from an asymmetric key
  44 * @key: The key of interest.
  45 *
  46 * Retrieves and returns the subtype pointer of the asymmetric key from the
  47 * type-specific data attached to the key.
  48 */
  49static inline
  50struct asymmetric_key_subtype *asymmetric_key_subtype(const struct key *key)
  51{
  52        return key->type_data.p[0];
  53}
  54
  55#endif /* _KEYS_ASYMMETRIC_SUBTYPE_H */
  56