| /* SPDX-License-Identifier: GPL-2.0-only */ | |
| /* | |
| * Copyright (C) 2011 Nokia Corporation | |
| * Copyright (C) 2011 Intel Corporation | |
| * | |
| * Author: | |
| * Dmitry Kasatkin <dmitry.kasatkin@nokia.com> | |
| * <dmitry.kasatkin@intel.com> | |
| */ | |
| #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[]; | |
| } __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[]; | |
| } __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 */ |