1 /* SPDX-License-Identifier: GPL-2.0-only */ << 2 /* 1 /* 3 * Copyright (C) 2011 Nokia Corporation 2 * Copyright (C) 2011 Nokia Corporation 4 * Copyright (C) 2011 Intel Corporation 3 * Copyright (C) 2011 Intel Corporation 5 * 4 * 6 * Author: 5 * Author: 7 * Dmitry Kasatkin <dmitry.kasatkin@nokia.com> 6 * Dmitry Kasatkin <dmitry.kasatkin@nokia.com> 8 * <dmitry.kasatkin@intel.com> 7 * <dmitry.kasatkin@intel.com> >> 8 * >> 9 * This program is free software; you can redistribute it and/or modify >> 10 * it under the terms of the GNU General Public License as published by >> 11 * the Free Software Foundation, version 2 of the License. >> 12 * 9 */ 13 */ 10 14 11 #ifndef _DIGSIG_H 15 #ifndef _DIGSIG_H 12 #define _DIGSIG_H 16 #define _DIGSIG_H 13 17 14 #include <linux/key.h> 18 #include <linux/key.h> 15 19 16 enum pubkey_algo { 20 enum pubkey_algo { 17 PUBKEY_ALGO_RSA, 21 PUBKEY_ALGO_RSA, 18 PUBKEY_ALGO_MAX, 22 PUBKEY_ALGO_MAX, 19 }; 23 }; 20 24 21 enum digest_algo { 25 enum digest_algo { 22 DIGEST_ALGO_SHA1, 26 DIGEST_ALGO_SHA1, 23 DIGEST_ALGO_SHA256, 27 DIGEST_ALGO_SHA256, 24 DIGEST_ALGO_MAX 28 DIGEST_ALGO_MAX 25 }; 29 }; 26 30 27 struct pubkey_hdr { 31 struct pubkey_hdr { 28 uint8_t version; /* key 32 uint8_t version; /* key format version */ 29 uint32_t timestamp; /* key 33 uint32_t timestamp; /* key made, always 0 for now */ 30 uint8_t algo; 34 uint8_t algo; 31 uint8_t nmpi; 35 uint8_t nmpi; 32 char mpi[]; !! 36 char mpi[0]; 33 } __packed; 37 } __packed; 34 38 35 struct signature_hdr { 39 struct signature_hdr { 36 uint8_t version; /* sig 40 uint8_t version; /* signature format version */ 37 uint32_t timestamp; /* sig 41 uint32_t timestamp; /* signature made */ 38 uint8_t algo; 42 uint8_t algo; 39 uint8_t hash; 43 uint8_t hash; 40 uint8_t keyid[8]; 44 uint8_t keyid[8]; 41 uint8_t nmpi; 45 uint8_t nmpi; 42 char mpi[]; !! 46 char mpi[0]; 43 } __packed; 47 } __packed; 44 48 45 #if defined(CONFIG_SIGNATURE) || defined(CONFI 49 #if defined(CONFIG_SIGNATURE) || defined(CONFIG_SIGNATURE_MODULE) 46 50 47 int digsig_verify(struct key *keyring, const c 51 int digsig_verify(struct key *keyring, const char *sig, int siglen, 48 const 52 const char *digest, int digestlen); 49 53 50 #else 54 #else 51 55 52 static inline int digsig_verify(struct key *ke 56 static inline int digsig_verify(struct key *keyring, const char *sig, 53 int siglen, co 57 int siglen, const char *digest, int digestlen) 54 { 58 { 55 return -EOPNOTSUPP; 59 return -EOPNOTSUPP; 56 } 60 } 57 61 58 #endif /* CONFIG_SIGNATURE */ 62 #endif /* CONFIG_SIGNATURE */ 59 63 60 #endif /* _DIGSIG_H */ 64 #endif /* _DIGSIG_H */ 61 65
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.