Re: [RFC][PATCH v2 02/12] diglim: Basic definitions
From: Greg KH <gregkh@linuxfoundation.org>
Date: 2021-07-27 14:43:40
Also in:
linux-doc, linux-kselftest, linux-security-module, lkml
On Mon, Jul 26, 2021 at 06:36:50PM +0200, Roberto Sassu wrote:
quoted hunk ↗ jump to hunk
--- /dev/null +++ b/include/uapi/linux/diglim.h@@ -0,0 +1,51 @@ +/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ +/* + * Copyright (C) 2017-2021 Huawei Technologies Duesseldorf GmbH + * + * Author: Roberto Sassu <roberto.sassu@huawei.com> + * + * DIGLIM definitions exported to user space, useful for generating digest + * lists. + */ + +#ifndef _UAPI__LINUX_DIGLIM_H +#define _UAPI__LINUX_DIGLIM_H + +#include <linux/types.h> +#include <linux/hash_info.h> + +enum compact_types { COMPACT_KEY, COMPACT_PARSER, COMPACT_FILE, + COMPACT_METADATA, COMPACT_DIGEST_LIST, COMPACT__LAST }; + +enum compact_modifiers { COMPACT_MOD_IMMUTABLE, COMPACT_MOD__LAST }; + +enum compact_actions { COMPACT_ACTION_IMA_MEASURED, + COMPACT_ACTION_IMA_APPRAISED, + COMPACT_ACTION_IMA_APPRAISED_DIGSIG, + COMPACT_ACTION__LAST }; + +enum ops { DIGEST_LIST_ADD, DIGEST_LIST_DEL, DIGEST_LIST_OP__LAST }; + +/** + * struct compact_list_hdr - header of the following concatenated digests + * @version: version of the digest list + * @_reserved: field reserved for future use + * @type: type of digest list among enum compact_types + * @modifiers: additional attributes among (1 << enum compact_modifiers)
I do not understand this description, what does it mean?
+ * @algo: digest algorithm
Is this also a #define or an enum? Where is the list of them?
+ * @count: number of digests + * @datalen: length of concatenated digests
Where does this count and length come into play as nothing else is in this structure?
+ *
+ * A digest list is a set of blocks composed by struct compact_list_hdr and
+ * the following concatenated digests.
+ */
+struct compact_list_hdr {
+ __u8 version;
+ __u8 _reserved;You MUST check this for 0 today, and document it above. If not, you can never use it in the future.
+ __le16 type; + __le16 modifiers; + __le16 algo; + __le32 count; + __le32 datalen; +} __packed; +#endif /*_UAPI__LINUX_DIGLIM_H*/ -- 2.25.1