aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/Makefile
diff options
context:
space:
mode:
authorDavid Howells <dhowells@redhat.com>2013-08-30 11:07:13 -0400
committerDavid Howells <dhowells@redhat.com>2013-09-25 12:17:01 -0400
commitf0e6d220a7cd93afa0260ac5e7849f00b05e035a (patch)
treedd9331cf8606bf6068261e1f02d67a26d1ba76f9 /kernel/Makefile
parent124df926090b32a998483f6e43ebeccdbe5b5302 (diff)
KEYS: Load *.x509 files into kernel keyring
Load all the files matching the pattern "*.x509" that are to be found in kernel base source dir and base build dir into the module signing keyring. The "extra_certificates" file is then redundant. Signed-off-by: David Howells <dhowells@redhat.com>
Diffstat (limited to 'kernel/Makefile')
-rw-r--r--kernel/Makefile35
1 files changed, 29 insertions, 6 deletions
diff --git a/kernel/Makefile b/kernel/Makefile
index 1ce47553fb02..c34e5f993a21 100644
--- a/kernel/Makefile
+++ b/kernel/Makefile
@@ -142,17 +142,40 @@ $(obj)/timeconst.h: $(obj)/hz.bc $(src)/timeconst.bc FORCE
142 $(call if_changed,bc) 142 $(call if_changed,bc)
143 143
144ifeq ($(CONFIG_MODULE_SIG),y) 144ifeq ($(CONFIG_MODULE_SIG),y)
145###############################################################################
145# 146#
146# Pull the signing certificate and any extra certificates into the kernel 147# Roll all the X.509 certificates that we can find together and pull
148# them into the kernel.
147# 149#
150###############################################################################
151X509_CERTIFICATES-y := $(wildcard *.x509) $(wildcard $(srctree)/*.x509)
152X509_CERTIFICATES-$(CONFIG_MODULE_SIG) += signing_key.x509
153X509_CERTIFICATES := $(sort $(X509_CERTIFICATES-y))
154
155ifeq ($(X509_CERTIFICATES),)
156$(warning *** No X.509 certificates found ***)
157endif
158
159ifneq ($(wildcard $(obj)/.x509.list),)
160ifneq ($(shell cat $(obj)/.x509.list),$(X509_CERTIFICATES))
161$(info X.509 certificate list changed)
162$(shell rm $(obj)/.x509.list)
163endif
164endif
165
166kernel/modsign_certificate.o: $(obj)/x509_certificate_list
148 167
149quiet_cmd_touch = TOUCH $@ 168quiet_cmd_x509certs = CERTS $@
150 cmd_touch = touch $@ 169 cmd_x509certs = cat $(X509_CERTIFICATES) /dev/null >$@
170targets += $(obj)/x509_certificate_list
171$(obj)/x509_certificate_list: $(X509_CERTIFICATES) $(obj)/.x509.list
172 $(call if_changed,x509certs)
151 173
152extra_certificates: 174targets += $(obj)/.x509.list
153 $(call cmd,touch) 175$(obj)/.x509.list:
176 @echo $(X509_CERTIFICATES) >$@
154 177
155kernel/modsign_certificate.o: signing_key.x509 extra_certificates 178clean-files := x509_certificate_list .x509.list
156 179
157############################################################################### 180###############################################################################
158# 181#