digsig.h (1212B)
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[]; 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[]; 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 */