mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2026-05-05 09:57:21 +02:00
f9909cf0a2
This structure definition is used outside the kernel proper. For example in kmod and the kernel build environment. To allow reuse, move it to a new UAPI header. While it is not a true UAPI, it is a common practice to have non-UAPI interface definitions in the kernel's UAPI headers. Signed-off-by: Thomas Weißschuh <thomas.weissschuh@linutronix.de> Reviewed-by: Petr Pavlu <petr.pavlu@suse.com> Reviewed-by: Nicolas Schier <nsc@kernel.org> Signed-off-by: Sami Tolvanen <samitolvanen@google.com>
42 lines
1.1 KiB
C
42 lines
1.1 KiB
C
/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
|
|
/*
|
|
* Module signature handling.
|
|
*
|
|
* Copyright (C) 2012 Red Hat, Inc. All Rights Reserved.
|
|
* Written by David Howells (dhowells@redhat.com)
|
|
*/
|
|
|
|
#ifndef _UAPI_LINUX_MODULE_SIGNATURE_H
|
|
#define _UAPI_LINUX_MODULE_SIGNATURE_H
|
|
|
|
#include <linux/types.h>
|
|
|
|
/* In stripped ARM and x86-64 modules, ~ is surprisingly rare. */
|
|
#define MODULE_SIGNATURE_MARKER "~Module signature appended~\n"
|
|
|
|
enum module_signature_type {
|
|
MODULE_SIGNATURE_TYPE_PKCS7 = 2, /* Signature in PKCS#7 message */
|
|
};
|
|
|
|
/*
|
|
* Module signature information block.
|
|
*
|
|
* The constituents of the signature section are, in order:
|
|
*
|
|
* - Signer's name
|
|
* - Key identifier
|
|
* - Signature data
|
|
* - Information block
|
|
*/
|
|
struct module_signature {
|
|
__u8 algo; /* Public-key crypto algorithm [0] */
|
|
__u8 hash; /* Digest algorithm [0] */
|
|
__u8 id_type; /* Key identifier type [enum module_signature_type] */
|
|
__u8 signer_len; /* Length of signer's name [0] */
|
|
__u8 key_id_len; /* Length of key identifier [0] */
|
|
__u8 __pad[3];
|
|
__be32 sig_len; /* Length of signature data */
|
|
};
|
|
|
|
#endif /* _UAPI_LINUX_MODULE_SIGNATURE_H */
|