On Mon, Jul 26, 2021 at 06:36:50PM +0200, Roberto Sassu wrote: > --- /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@xxxxxxxxxx> > + * > + * 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 >