[PATCH v2] unit: Add better check for pkcs8_key_parser availability

Bastien Nocera <[email protected]> Thu, 19 Feb 2026 12:20:01 +0100
Newsgroups dev.linux.lists.iwd
Message-ID <[email protected]>
Check whether the pkcs8_key_parser kernel module is available (whether
built-in or as a module) before announcing that we support PKCS#8.
---
Changes since v1:
- Fix missing #include

 unit/test-eapol.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/unit/test-eapol.c b/unit/test-eapol.c
index 58f3e054a5ae..2ffc3e700108 100644
--- a/unit/test-eapol.c
+++ b/unit/test-eapol.c
@@ -27,6 +27,7 @@
 #include <stdio.h>
 #include <string.h>
 #include <assert.h>
+#include <sys/stat.h>
 #include <linux/if_ether.h>
 #include <ell/ell.h>
 
@@ -3923,6 +3924,16 @@ static bool aes_precheck(const void *data)
 
 static bool pkcs8_precheck(const void *data)
 {
+	struct stat s;
+
+	/* Despite the path, this directory exists whether the module
+	 * is external or built-in. */
+	if (stat ("/sys/module/pkcs8_key_parser", &s) != 0)
+		return false;
+
+	if (!S_ISDIR (s.st_mode))
+		return false;
+
 	return (IS_ENABLED(HAVE_PKCS8_SUPPORT) &&
 		l_cipher_is_supported(L_CIPHER_AES) &&
 		l_cipher_is_supported(L_CIPHER_AES_CBC) &&
-- 
2.53.0