~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/certs/Makefile

Version: ~ [ linux-6.11.5 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.58 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.114 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.169 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.228 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.284 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.322 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /certs/Makefile (Version linux-6.11.5) and /certs/Makefile (Version linux-4.15.18)


  1 # SPDX-License-Identifier: GPL-2.0                  1 # SPDX-License-Identifier: GPL-2.0
  2 #                                                   2 #
  3 # Makefile for the linux kernel signature chec      3 # Makefile for the linux kernel signature checking certificates.
  4 #                                                   4 #
  5                                                     5 
  6 obj-$(CONFIG_SYSTEM_TRUSTED_KEYRING) += system      6 obj-$(CONFIG_SYSTEM_TRUSTED_KEYRING) += system_keyring.o system_certificates.o
  7 obj-$(CONFIG_SYSTEM_BLACKLIST_KEYRING) += blac !!   7 obj-$(CONFIG_SYSTEM_BLACKLIST_KEYRING) += blacklist.o
  8 obj-$(CONFIG_SYSTEM_REVOCATION_LIST) += revoca !!   8 ifneq ($(CONFIG_SYSTEM_BLACKLIST_HASH_LIST),"")
                                                   >>   9 obj-$(CONFIG_SYSTEM_BLACKLIST_KEYRING) += blacklist_hashes.o
                                                   >>  10 else
                                                   >>  11 obj-$(CONFIG_SYSTEM_BLACKLIST_KEYRING) += blacklist_nohashes.o
                                                   >>  12 endif
  9                                                    13 
 10 $(obj)/blacklist_hashes.o: $(obj)/blacklist_ha !!  14 ifeq ($(CONFIG_SYSTEM_TRUSTED_KEYRING),y)
 11 CFLAGS_blacklist_hashes.o := -I $(obj)         << 
 12                                                    15 
 13 quiet_cmd_check_and_copy_blacklist_hash_list = !!  16 $(eval $(call config_filename,SYSTEM_TRUSTED_KEYS))
 14       cmd_check_and_copy_blacklist_hash_list = << 
 15         $(if $(CONFIG_SYSTEM_BLACKLIST_HASH_LI << 
 16         $(AWK) -f $(src)/check-blacklist-hashe << 
 17         { cat $(CONFIG_SYSTEM_BLACKLIST_HASH_L << 
 18         echo NULL > $@)                        << 
 19                                                << 
 20 $(obj)/blacklist_hash_list: $(CONFIG_SYSTEM_BL << 
 21         $(call if_changed,check_and_copy_black << 
 22                                                << 
 23 targets += blacklist_hash_list                 << 
 24                                                << 
 25 quiet_cmd_extract_certs  = CERT    $@          << 
 26       cmd_extract_certs  = $(obj)/extract-cert << 
 27 extract-cert-in = $(filter-out $(obj)/extract- << 
 28                                                    17 
                                                   >>  18 # GCC doesn't include .incbin files in -MD generated dependencies (PR#66871)
 29 $(obj)/system_certificates.o: $(obj)/x509_cert     19 $(obj)/system_certificates.o: $(obj)/x509_certificate_list
 30                                                    20 
 31 $(obj)/x509_certificate_list: $(CONFIG_SYSTEM_ !!  21 # Cope with signing_key.x509 existing in $(srctree) not $(objtree)
 32         $(call if_changed,extract_certs)       !!  22 AFLAGS_system_certificates.o := -I$(srctree)
                                                   >>  23 
                                                   >>  24 quiet_cmd_extract_certs  = EXTRACT_CERTS   $(patsubst "%",%,$(2))
                                                   >>  25       cmd_extract_certs  = scripts/extract-cert $(2) $@ || ( rm $@; exit 1)
 33                                                    26 
 34 targets += x509_certificate_list                   27 targets += x509_certificate_list
                                                   >>  28 $(obj)/x509_certificate_list: scripts/extract-cert $(SYSTEM_TRUSTED_KEYS_SRCPREFIX)$(SYSTEM_TRUSTED_KEYS_FILENAME) FORCE
                                                   >>  29         $(call if_changed,extract_certs,$(SYSTEM_TRUSTED_KEYS_SRCPREFIX)$(CONFIG_SYSTEM_TRUSTED_KEYS))
                                                   >>  30 endif # CONFIG_SYSTEM_TRUSTED_KEYRING
                                                   >>  31 
                                                   >>  32 clean-files := x509_certificate_list .x509.list
 35                                                    33 
                                                   >>  34 ifeq ($(CONFIG_MODULE_SIG),y)
                                                   >>  35 ###############################################################################
                                                   >>  36 #
 36 # If module signing is requested, say by allye     37 # If module signing is requested, say by allyesconfig, but a key has not been
 37 # supplied, then one will need to be generated     38 # supplied, then one will need to be generated to make sure the build does not
 38 # fail and that the kernel may be used afterwa     39 # fail and that the kernel may be used afterwards.
 39 #                                                  40 #
                                                   >>  41 ###############################################################################
                                                   >>  42 ifndef CONFIG_MODULE_SIG_HASH
                                                   >>  43 $(error Could not determine digest type to use from kernel config)
                                                   >>  44 endif
                                                   >>  45 
                                                   >>  46 redirect_openssl        = 2>&1
                                                   >>  47 quiet_redirect_openssl  = 2>&1
                                                   >>  48 silent_redirect_openssl = 2>/dev/null
                                                   >>  49 
 40 # We do it this way rather than having a boole     50 # We do it this way rather than having a boolean option for enabling an
 41 # external private key, because 'make randconf     51 # external private key, because 'make randconfig' might enable such a
 42 # boolean option and we unfortunately can't ma     52 # boolean option and we unfortunately can't make it depend on !RANDCONFIG.
 43 ifeq ($(CONFIG_MODULE_SIG_KEY),certs/signing_k !!  53 ifeq ($(CONFIG_MODULE_SIG_KEY),"certs/signing_key.pem")
 44                                                !!  54 $(obj)/signing_key.pem: $(obj)/x509.genkey
 45 keytype-$(CONFIG_MODULE_SIG_KEY_TYPE_ECDSA) := !!  55         @$(kecho) "###"
 46                                                !!  56         @$(kecho) "### Now generating an X.509 key pair to be used for signing modules."
 47 quiet_cmd_gen_key = GENKEY  $@                 !!  57         @$(kecho) "###"
 48       cmd_gen_key = openssl req -new -nodes -u !!  58         @$(kecho) "### If this takes a long time, you might wish to run rngd in the"
 49                 -batch -x509 -config $< \      !!  59         @$(kecho) "### background to keep the supply of entropy topped up.  It"
 50                 -outform PEM -out $@ -keyout $ !!  60         @$(kecho) "### needs to be run as root, and uses a hardware random"
 51                                                !!  61         @$(kecho) "### number generator if one is available."
 52 $(obj)/signing_key.pem: $(obj)/x509.genkey FOR !!  62         @$(kecho) "###"
 53         $(call if_changed,gen_key)             !!  63         $(Q)openssl req -new -nodes -utf8 -$(CONFIG_MODULE_SIG_HASH) -days 36500 \
                                                   >>  64                 -batch -x509 -config $(obj)/x509.genkey \
                                                   >>  65                 -outform PEM -out $(obj)/signing_key.pem \
                                                   >>  66                 -keyout $(obj)/signing_key.pem \
                                                   >>  67                 $($(quiet)redirect_openssl)
                                                   >>  68         @$(kecho) "###"
                                                   >>  69         @$(kecho) "### Key pair generated."
                                                   >>  70         @$(kecho) "###"
 54                                                    71 
 55 targets += signing_key.pem                     << 
 56                                                << 
 57 quiet_cmd_copy_x509_config = COPY    $@        << 
 58       cmd_copy_x509_config = cat $(src)/defaul << 
 59                                                << 
 60 # You can provide your own config file. If not << 
 61 $(obj)/x509.genkey:                                72 $(obj)/x509.genkey:
 62         $(call cmd,copy_x509_config)           !!  73         @$(kecho) Generating X.509 key generation config
 63                                                !!  74         @echo  >$@ "[ req ]"
                                                   >>  75         @echo >>$@ "default_bits = 4096"
                                                   >>  76         @echo >>$@ "distinguished_name = req_distinguished_name"
                                                   >>  77         @echo >>$@ "prompt = no"
                                                   >>  78         @echo >>$@ "string_mask = utf8only"
                                                   >>  79         @echo >>$@ "x509_extensions = myexts"
                                                   >>  80         @echo >>$@
                                                   >>  81         @echo >>$@ "[ req_distinguished_name ]"
                                                   >>  82         @echo >>$@ "#O = Unspecified company"
                                                   >>  83         @echo >>$@ "CN = Build time autogenerated kernel key"
                                                   >>  84         @echo >>$@ "#emailAddress = unspecified.user@unspecified.company"
                                                   >>  85         @echo >>$@
                                                   >>  86         @echo >>$@ "[ myexts ]"
                                                   >>  87         @echo >>$@ "basicConstraints=critical,CA:FALSE"
                                                   >>  88         @echo >>$@ "keyUsage=digitalSignature"
                                                   >>  89         @echo >>$@ "subjectKeyIdentifier=hash"
                                                   >>  90         @echo >>$@ "authorityKeyIdentifier=keyid"
 64 endif # CONFIG_MODULE_SIG_KEY                      91 endif # CONFIG_MODULE_SIG_KEY
 65                                                    92 
 66 $(obj)/system_certificates.o: $(obj)/signing_k !!  93 $(eval $(call config_filename,MODULE_SIG_KEY))
 67                                                    94 
 68 PKCS11_URI := $(filter pkcs11:%, $(CONFIG_MODU !!  95 # If CONFIG_MODULE_SIG_KEY isn't a PKCS#11 URI, depend on it
 69 ifdef PKCS11_URI                               !!  96 ifeq ($(patsubst pkcs11:%,%,$(firstword $(MODULE_SIG_KEY_FILENAME))),$(firstword $(MODULE_SIG_KEY_FILENAME)))
 70 $(obj)/signing_key.x509: extract-cert-in := $( !!  97 X509_DEP := $(MODULE_SIG_KEY_SRCPREFIX)$(MODULE_SIG_KEY_FILENAME)
 71 endif                                              98 endif
 72                                                    99 
 73 $(obj)/signing_key.x509: $(filter-out $(PKCS11 !! 100 # GCC PR#66871 again.
 74         $(call if_changed,extract_certs)       !! 101 $(obj)/system_certificates.o: $(obj)/signing_key.x509
 75                                                   102 
 76 targets += signing_key.x509                       103 targets += signing_key.x509
 77                                                !! 104 $(obj)/signing_key.x509: scripts/extract-cert $(X509_DEP) FORCE
 78 $(obj)/revocation_certificates.o: $(obj)/x509_ !! 105         $(call if_changed,extract_certs,$(MODULE_SIG_KEY_SRCPREFIX)$(CONFIG_MODULE_SIG_KEY))
 79                                                !! 106 endif # CONFIG_MODULE_SIG
 80 $(obj)/x509_revocation_list: $(CONFIG_SYSTEM_R << 
 81         $(call if_changed,extract_certs)       << 
 82                                                << 
 83 targets += x509_revocation_list                << 
 84                                                << 
 85 hostprogs := extract-cert                      << 
 86                                                << 
 87 HOSTCFLAGS_extract-cert.o = $(shell $(HOSTPKG_ << 
 88 HOSTLDLIBS_extract-cert = $(shell $(HOSTPKG_CO << 
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php