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