root/include/linux/digsig.h

/* [<][>][^][v][top][bottom][index][help] */

DEFINITIONS

This source file includes following definitions.
  1. digsig_verify

/*
 * Copyright (C) 2011 Nokia Corporation
 * Copyright (C) 2011 Intel Corporation
 *
 * Author:
 * Dmitry Kasatkin <dmitry.kasatkin@nokia.com>
 *                 <dmitry.kasatkin@intel.com>
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, version 2 of the License.
 *
 */

#ifndef _DIGSIG_H
#define _DIGSIG_H

#include <linux/key.h>

enum pubkey_algo {
        PUBKEY_ALGO_RSA,
        PUBKEY_ALGO_MAX,
};

enum digest_algo {
        DIGEST_ALGO_SHA1,
        DIGEST_ALGO_SHA256,
        DIGEST_ALGO_MAX
};

struct pubkey_hdr {
        uint8_t         version;        /* key format version */
        uint32_t        timestamp;      /* key made, always 0 for now */
        uint8_t         algo;
        uint8_t         nmpi;
        char            mpi[0];
} __packed;

struct signature_hdr {
        uint8_t         version;        /* signature format version */
        uint32_t        timestamp;      /* signature made */
        uint8_t         algo;
        uint8_t         hash;
        uint8_t         keyid[8];
        uint8_t         nmpi;
        char            mpi[0];
} __packed;

#if defined(CONFIG_SIGNATURE) || defined(CONFIG_SIGNATURE_MODULE)

int digsig_verify(struct key *keyring, const char *sig, int siglen,
                                        const char *digest, int digestlen);

#else

static inline int digsig_verify(struct key *keyring, const char *sig,
                                int siglen, const char *digest, int digestlen)
{
        return -EOPNOTSUPP;
}

#endif /* CONFIG_SIGNATURE */

#endif /* _DIGSIG_H */

/* [<][>][^][v][top][bottom][index][help] */