brintos

brintos / linux-shallow public Read only

0
0
Text · 1.2 KiB · 7eb4b00 Raw
47 lines · c
1/* SPDX-License-Identifier: GPL-2.0+ */2/*3 * Module signature handling.4 *5 * Copyright (C) 2012 Red Hat, Inc. All Rights Reserved.6 * Written by David Howells (dhowells@redhat.com)7 */8 9#ifndef _LINUX_MODULE_SIGNATURE_H10#define _LINUX_MODULE_SIGNATURE_H11 12#include <linux/types.h>13 14/* In stripped ARM and x86-64 modules, ~ is surprisingly rare. */15#define MODULE_SIG_STRING "~Module signature appended~\n"16 17enum pkey_id_type {18	PKEY_ID_PGP,		/* OpenPGP generated key ID */19	PKEY_ID_X509,		/* X.509 arbitrary subjectKeyIdentifier */20	PKEY_ID_PKCS7,		/* Signature in PKCS#7 message */21};22 23/*24 * Module signature information block.25 *26 * The constituents of the signature section are, in order:27 *28 *	- Signer's name29 *	- Key identifier30 *	- Signature data31 *	- Information block32 */33struct module_signature {34	u8	algo;		/* Public-key crypto algorithm [0] */35	u8	hash;		/* Digest algorithm [0] */36	u8	id_type;	/* Key identifier type [PKEY_ID_PKCS7] */37	u8	signer_len;	/* Length of signer's name [0] */38	u8	key_id_len;	/* Length of key identifier [0] */39	u8	__pad[3];40	__be32	sig_len;	/* Length of signature data */41};42 43int mod_check_sig(const struct module_signature *ms, size_t file_len,44		  const char *name);45 46#endif /* _LINUX_MODULE_SIGNATURE_H */47