linux/include/linux/digsig.h
<<
>>
Prefs
   1/*
   2 * Copyright (C) 2011 Nokia Corporation
   3 * Copyright (C) 2011 Intel Corporation
   4 *
   5 * Author:
   6 * Dmitry Kasatkin <dmitry.kasatkin@nokia.com>
   7 *                 <dmitry.kasatkin@intel.com>
   8 *
   9 * This program is free software; you can redistribute it and/or modify
  10 * it under the terms of the GNU General Public License as published by
  11 * the Free Software Foundation, version 2 of the License.
  12 *
  13 */
  14
  15#ifndef _DIGSIG_H
  16#define _DIGSIG_H
  17
  18#include <linux/key.h>
  19
  20enum pubkey_algo {
  21        PUBKEY_ALGO_RSA,
  22        PUBKEY_ALGO_MAX,
  23};
  24
  25enum digest_algo {
  26        DIGEST_ALGO_SHA1,
  27        DIGEST_ALGO_SHA256,
  28        DIGEST_ALGO_MAX
  29};
  30
  31struct pubkey_hdr {
  32        uint8_t         version;        /* key format version */
  33        uint32_t        timestamp;      /* key made, always 0 for now */
  34        uint8_t         algo;
  35        uint8_t         nmpi;
  36        char            mpi[0];
  37} __packed;
  38
  39struct signature_hdr {
  40        uint8_t         version;        /* signature format version */
  41        uint32_t        timestamp;      /* signature made */
  42        uint8_t         algo;
  43        uint8_t         hash;
  44        uint8_t         keyid[8];
  45        uint8_t         nmpi;
  46        char            mpi[0];
  47} __packed;
  48
  49#if defined(CONFIG_SIGNATURE) || defined(CONFIG_SIGNATURE_MODULE)
  50
  51int digsig_verify(struct key *keyring, const char *sig, int siglen,
  52                                        const char *digest, int digestlen);
  53
  54#else
  55
  56static inline int digsig_verify(struct key *keyring, const char *sig,
  57                                int siglen, const char *digest, int digestlen)
  58{
  59        return -EOPNOTSUPP;
  60}
  61
  62#endif /* CONFIG_SIGNATURE */
  63
  64#endif /* _DIGSIG_H */
  65