Linux-Modules Archive on lore.kernel.org
 help / Atom feed
* [PATCH 1/3] libkmod-module: do not crash modinfo on 0 key id len
@ 2016-06-05  3:13 Lucas De Marchi
  2016-06-05  3:13 ` [PATCH 2/3] libkmod-signature: handle PKCS#7 Lucas De Marchi
  2016-06-05  3:13 ` [PATCH 3/3] libkmod-module: modinfo: print signature id Lucas De Marchi
  0 siblings, 2 replies; 3+ messages in thread
From: Lucas De Marchi @ 2016-06-05  3:13 UTC (permalink / raw)
  To: linux-modules; +Cc: Michal Marek, Wouter van Kesteren, Lucas De Marchi

From: Lucas De Marchi <lucas.demarchi@intel.com>

---
 libkmod/libkmod-module.c | 38 +++++++++++++++++++++++---------------
 1 file changed, 23 insertions(+), 15 deletions(-)

diff --git a/libkmod/libkmod-module.c b/libkmod/libkmod-module.c
index 1460c67..a19e8bc 100644
--- a/libkmod/libkmod-module.c
+++ b/libkmod/libkmod-module.c
@@ -2253,22 +2253,30 @@ KMOD_EXPORT int kmod_module_get_info(const struct kmod_module *mod, struct kmod_
 			goto list_error;
 		count++;
 
-		/* Display the key id as 01:12:DE:AD:BE:EF:... */
-		key_hex = malloc(sig_info.key_id_len * 3);
-		if (key_hex == NULL)
-			goto list_error;
-		for (i = 0; i < (int)sig_info.key_id_len; i++) {
-			sprintf(key_hex + i * 3, "%02X",
-					(unsigned char)sig_info.key_id[i]);
-			if (i < (int)sig_info.key_id_len - 1)
-				key_hex[i * 3 + 2] = ':';
+		if (sig_info.key_id_len) {
+			/* Display the key id as 01:12:DE:AD:BE:EF:... */
+			key_hex = malloc(sig_info.key_id_len * 3);
+			if (key_hex == NULL)
+				goto list_error;
+			for (i = 0; i < (int)sig_info.key_id_len; i++) {
+				sprintf(key_hex + i * 3, "%02X",
+						(unsigned char)sig_info.key_id[i]);
+				if (i < (int)sig_info.key_id_len - 1)
+					key_hex[i * 3 + 2] = ':';
+			}
+			n = kmod_module_info_append(list, "sig_key", strlen("sig_key"),
+					key_hex, sig_info.key_id_len * 3 - 1);
+			free(key_hex);
+			if (n == NULL)
+				goto list_error;
+			count++;
+		} else {
+			n = kmod_module_info_append(list, "sig_key", strlen("sig_key"),
+					NULL, 0);
+			if (n == NULL)
+				goto list_error;
+			count++;
 		}
-		n = kmod_module_info_append(list, "sig_key", strlen("sig_key"),
-				key_hex, sig_info.key_id_len * 3 - 1);
-		free(key_hex);
-		if (n == NULL)
-			goto list_error;
-		count++;
 
 		n = kmod_module_info_append(list,
 				"sig_hashalgo", strlen("sig_hashalgo"),
-- 
2.5.5

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [PATCH 2/3] libkmod-signature: handle PKCS#7
  2016-06-05  3:13 [PATCH 1/3] libkmod-module: do not crash modinfo on 0 key id len Lucas De Marchi
@ 2016-06-05  3:13 ` Lucas De Marchi
  2016-06-05  3:13 ` [PATCH 3/3] libkmod-module: modinfo: print signature id Lucas De Marchi
  1 sibling, 0 replies; 3+ messages in thread
From: Lucas De Marchi @ 2016-06-05  3:13 UTC (permalink / raw)
  To: linux-modules; +Cc: Michal Marek, Wouter van Kesteren, Lucas De Marchi

From: Lucas De Marchi <lucas.demarchi@intel.com>

---
 libkmod/libkmod-signature.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/libkmod/libkmod-signature.c b/libkmod/libkmod-signature.c
index 6fc06fc..ef5fe6e 100644
--- a/libkmod/libkmod-signature.c
+++ b/libkmod/libkmod-signature.c
@@ -69,12 +69,14 @@ const char *const pkey_hash_algo[PKEY_HASH__LAST] = {
 enum pkey_id_type {
 	PKEY_ID_PGP,		/* OpenPGP generated key ID */
 	PKEY_ID_X509,		/* X.509 arbitrary subjectKeyIdentifier */
+	PKEY_ID_PKCS7,		/* Signature in PKCS#7 message */
 	PKEY_ID_TYPE__LAST
 };
 
 const char *const pkey_id_type[PKEY_ID_TYPE__LAST] = {
 	[PKEY_ID_PGP]		= "PGP",
 	[PKEY_ID_X509]		= "X509",
+	[PKEY_ID_PKCS7]		= "PKCS#7",
 };
 
 /*
-- 
2.5.5

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [PATCH 3/3] libkmod-module: modinfo: print signature id
  2016-06-05  3:13 [PATCH 1/3] libkmod-module: do not crash modinfo on 0 key id len Lucas De Marchi
  2016-06-05  3:13 ` [PATCH 2/3] libkmod-signature: handle PKCS#7 Lucas De Marchi
@ 2016-06-05  3:13 ` Lucas De Marchi
  1 sibling, 0 replies; 3+ messages in thread
From: Lucas De Marchi @ 2016-06-05  3:13 UTC (permalink / raw)
  To: linux-modules; +Cc: Michal Marek, Wouter van Kesteren, Lucas De Marchi

From: Lucas De Marchi <lucas.demarchi@intel.com>

This way it's possible to give at least the signature type for PKCS#7.
---
 libkmod/libkmod-module.c | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/libkmod/libkmod-module.c b/libkmod/libkmod-module.c
index a19e8bc..39a081d 100644
--- a/libkmod/libkmod-module.c
+++ b/libkmod/libkmod-module.c
@@ -2247,6 +2247,12 @@ KMOD_EXPORT int kmod_module_get_info(const struct kmod_module *mod, struct kmod_
 		struct kmod_list *n;
 		char *key_hex;
 
+		n = kmod_module_info_append(list, "signature", strlen("sig_id"),
+				sig_info.id_type, strlen(sig_info.id_type));
+		if (n == NULL)
+			goto list_error;
+		count++;
+
 		n = kmod_module_info_append(list, "signer", strlen("signer"),
 				sig_info.signer, sig_info.signer_len);
 		if (n == NULL)
@@ -2286,7 +2292,7 @@ KMOD_EXPORT int kmod_module_get_info(const struct kmod_module *mod, struct kmod_
 		count++;
 
 		/*
-		 * Omit sig_info.id_type and sig_info.algo for now, as these
+		 * Omit sig_info.algo for now, as these
 		 * are currently constant.
 		 */
 	}
-- 
2.5.5

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, back to index

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-06-05  3:13 [PATCH 1/3] libkmod-module: do not crash modinfo on 0 key id len Lucas De Marchi
2016-06-05  3:13 ` [PATCH 2/3] libkmod-signature: handle PKCS#7 Lucas De Marchi
2016-06-05  3:13 ` [PATCH 3/3] libkmod-module: modinfo: print signature id Lucas De Marchi

Linux-Modules Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/linux-modules/0 linux-modules/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 linux-modules linux-modules/ https://lore.kernel.org/linux-modules \
		linux-modules@vger.kernel.org linux-modules@archiver.kernel.org
	public-inbox-index linux-modules


Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.linux-modules


AGPL code for this site: git clone https://public-inbox.org/ public-inbox