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 16 enum pubkey_algo { 17 PUBKEY_ALGO_RSA, 18 PUBKEY_ALGO_MAX, 19 }; 20 21 enum digest_algo { 22 DIGEST_ALGO_SHA1, 23 DIGEST_ALGO_SHA256, 24 DIGEST_ALGO_MAX 25 }; 26 27 struct 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 35 struct 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 47 int digsig_verify(struct key *keyring, const char *sig, int siglen, 48 const char *digest, int digestlen); 49 50 #else 51 52 static 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
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.