ima: rework CONFIG_IMA dependency block

[ Upstream commit 91e326563ee34509c35267808a4b1b3ea3db62a8 ]

Changing the direct dependencies of IMA_BLACKLIST_KEYRING and
IMA_LOAD_X509 caused them to no longer depend on IMA, but a
a configuration without IMA results in link failures:

arm-linux-gnueabi-ld: security/integrity/iint.o: in function `integrity_load_keys':
iint.c:(.init.text+0xd8): undefined reference to `ima_load_x509'

aarch64-linux-ld: security/integrity/digsig_asymmetric.o: in function `asymmetric_verify':
digsig_asymmetric.c:(.text+0x104): undefined reference to `ima_blacklist_keyring'

Adding explicit dependencies on IMA would fix this, but a more reliable
way to do this is to enclose the entire Kconfig file in an 'if IMA' block.
This also allows removing the existing direct dependencies.

Fixes: be210c6d3597f ("ima: Finish deprecation of IMA_TRUSTED_KEYRING Kconfig")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Mimi Zohar <zohar@linux.ibm.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
Arnd Bergmann
2023-09-27 09:22:14 +02:00
committed by Greg Kroah-Hartman
parent 77f82df960
commit d8f2ba9ec3

View File

@@ -29,9 +29,11 @@ config IMA
to learn more about IMA. to learn more about IMA.
If unsure, say N. If unsure, say N.
if IMA
config IMA_KEXEC config IMA_KEXEC
bool "Enable carrying the IMA measurement list across a soft boot" bool "Enable carrying the IMA measurement list across a soft boot"
depends on IMA && TCG_TPM && HAVE_IMA_KEXEC depends on TCG_TPM && HAVE_IMA_KEXEC
default n default n
help help
TPM PCRs are only reset on a hard reboot. In order to validate TPM PCRs are only reset on a hard reboot. In order to validate
@@ -43,7 +45,6 @@ config IMA_KEXEC
config IMA_MEASURE_PCR_IDX config IMA_MEASURE_PCR_IDX
int int
depends on IMA
range 8 14 range 8 14
default 10 default 10
help help
@@ -53,7 +54,7 @@ config IMA_MEASURE_PCR_IDX
config IMA_LSM_RULES config IMA_LSM_RULES
bool bool
depends on IMA && AUDIT && (SECURITY_SELINUX || SECURITY_SMACK || SECURITY_APPARMOR) depends on AUDIT && (SECURITY_SELINUX || SECURITY_SMACK || SECURITY_APPARMOR)
default y default y
help help
Disabling this option will disregard LSM based policy rules. Disabling this option will disregard LSM based policy rules.
@@ -61,7 +62,6 @@ config IMA_LSM_RULES
choice choice
prompt "Default template" prompt "Default template"
default IMA_NG_TEMPLATE default IMA_NG_TEMPLATE
depends on IMA
help help
Select the default IMA measurement template. Select the default IMA measurement template.
@@ -80,14 +80,12 @@ endchoice
config IMA_DEFAULT_TEMPLATE config IMA_DEFAULT_TEMPLATE
string string
depends on IMA
default "ima-ng" if IMA_NG_TEMPLATE default "ima-ng" if IMA_NG_TEMPLATE
default "ima-sig" if IMA_SIG_TEMPLATE default "ima-sig" if IMA_SIG_TEMPLATE
choice choice
prompt "Default integrity hash algorithm" prompt "Default integrity hash algorithm"
default IMA_DEFAULT_HASH_SHA1 default IMA_DEFAULT_HASH_SHA1
depends on IMA
help help
Select the default hash algorithm used for the measurement Select the default hash algorithm used for the measurement
list, integrity appraisal and audit log. The compiled default list, integrity appraisal and audit log. The compiled default
@@ -117,7 +115,6 @@ endchoice
config IMA_DEFAULT_HASH config IMA_DEFAULT_HASH
string string
depends on IMA
default "sha1" if IMA_DEFAULT_HASH_SHA1 default "sha1" if IMA_DEFAULT_HASH_SHA1
default "sha256" if IMA_DEFAULT_HASH_SHA256 default "sha256" if IMA_DEFAULT_HASH_SHA256
default "sha512" if IMA_DEFAULT_HASH_SHA512 default "sha512" if IMA_DEFAULT_HASH_SHA512
@@ -126,7 +123,6 @@ config IMA_DEFAULT_HASH
config IMA_WRITE_POLICY config IMA_WRITE_POLICY
bool "Enable multiple writes to the IMA policy" bool "Enable multiple writes to the IMA policy"
depends on IMA
default n default n
help help
IMA policy can now be updated multiple times. The new rules get IMA policy can now be updated multiple times. The new rules get
@@ -137,7 +133,6 @@ config IMA_WRITE_POLICY
config IMA_READ_POLICY config IMA_READ_POLICY
bool "Enable reading back the current IMA policy" bool "Enable reading back the current IMA policy"
depends on IMA
default y if IMA_WRITE_POLICY default y if IMA_WRITE_POLICY
default n if !IMA_WRITE_POLICY default n if !IMA_WRITE_POLICY
help help
@@ -147,7 +142,6 @@ config IMA_READ_POLICY
config IMA_APPRAISE config IMA_APPRAISE
bool "Appraise integrity measurements" bool "Appraise integrity measurements"
depends on IMA
default n default n
help help
This option enables local measurement integrity appraisal. This option enables local measurement integrity appraisal.
@@ -303,7 +297,6 @@ config IMA_APPRAISE_SIGNED_INIT
config IMA_MEASURE_ASYMMETRIC_KEYS config IMA_MEASURE_ASYMMETRIC_KEYS
bool bool
depends on IMA
depends on ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y depends on ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y
default y default y
@@ -319,3 +312,5 @@ config IMA_SECURE_AND_OR_TRUSTED_BOOT
help help
This option is selected by architectures to enable secure and/or This option is selected by architectures to enable secure and/or
trusted boot based on IMA runtime policies. trusted boot based on IMA runtime policies.
endif