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