Thread (25 messages) 25 messages, 4 authors, 2021-06-28

Re: [RFC][PATCH 03/12] digest_lists: Basic definitions

From: Greg KH <gregkh@linuxfoundation.org>
Date: 2021-06-27 10:53:53
Also in: linux-doc, linux-integrity, linux-kselftest, lkml

On Fri, Jun 25, 2021 at 06:56:05PM +0200, Roberto Sassu wrote:
quoted hunk ↗ jump to hunk
--- /dev/null
+++ b/include/uapi/linux/digest_lists.h
@@ -0,0 +1,43 @@
+/* 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>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, version 2 of the
+ * License.
As you already have the SPDX line up there, you do not need this
paragraph.  Please remove it from all of the new files you have added in
this series.
+ *
+ * File: digest_lists.h
We know the filename, no need to have it here again.
+ *      Digest list definitions exported to user space.
Now this is what probably needs more information...
+ */
+
+#ifndef _UAPI__LINUX_DIGEST_LISTS_H
+#define _UAPI__LINUX_DIGEST_LISTS_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 };
+
For enums you export to userspace, you need to specify the values so
that all compilers get them right.
+struct compact_list_hdr {
+	__u8 version;
You should never need a version, that way lies madness.
+	__u8 _reserved;
You better be testing this for 0, right?
+	__le16 type;
+	__le16 modifiers;
+	__le16 algo;
+	__le32 count;
+	__le32 datalen;
Why are user/kernel apis specified in little endian format?  Why would
that matter?  Shouldn't they just be "native" endian?

thanks,

greg k-h
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help