[PATCH] certs: select PKCS7_MESSAGE_PARSER if needed

From: Arnd Bergmann
Date: Thu Feb 25 2021 - 07:57:43 EST


From: Arnd Bergmann <arnd@xxxxxxxx>

When CONFIG_SYSTEM_BLACKLIST_KEYRING and CONFIG_INTEGRITY_PLATFORM_KEYRING
are both enabled, the system blacklist tries calling the
pkcs7_validate_trust() function, causing a link failure if the driver
that defines it is disabled or a loadable module:

ld.lld: error: undefined symbol: pkcs7_validate_trust
>>> referenced by blacklist.c
>>> blacklist.o:(is_key_on_revocation_list) in archive certs/built-in.a

Add a Kconfig 'select' statement for this specific case that force-
enables the pkcs7 code as well.

Fixes: 30fdba3f40fd ("certs: Add EFI_CERT_X509_GUID support for dbx entries")
Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>
---
certs/Kconfig | 1 +
1 file changed, 1 insertion(+)

diff --git a/certs/Kconfig b/certs/Kconfig
index 379a6e198459..21192bb25c79 100644
--- a/certs/Kconfig
+++ b/certs/Kconfig
@@ -68,6 +68,7 @@ config SECONDARY_TRUSTED_KEYRING
config SYSTEM_BLACKLIST_KEYRING
bool "Provide system-wide ring of blacklisted keys"
depends on KEYS
+ select PKCS7_MESSAGE_PARSER if INTEGRITY_PLATFORM_KEYRING
help
Provide a system keyring to which blacklisted keys can be added.
Keys in the keyring are considered entirely untrusted. Keys in this
--
2.29.2