|
@@ -132,3 +132,52 @@ quiet_cmd_timeconst = TIMEC $@
|
|
|
targets += timeconst.h
|
|
|
$(obj)/timeconst.h: $(src)/timeconst.pl FORCE
|
|
|
$(call if_changed,timeconst)
|
|
|
+
|
|
|
+ifeq ($(CONFIG_MODULE_SIG),y)
|
|
|
+
|
|
|
+###############################################################################
|
|
|
+#
|
|
|
+# If module signing is requested, say by allyesconfig, but a key has not been
|
|
|
+# supplied, then one will need to be generated to make sure the build does not
|
|
|
+# fail and that the kernel may be used afterwards.
|
|
|
+#
|
|
|
+###############################################################################
|
|
|
+signing_key.priv signing_key.x509: x509.genkey
|
|
|
+ @echo "###"
|
|
|
+ @echo "### Now generating an X.509 key pair to be used for signing modules."
|
|
|
+ @echo "###"
|
|
|
+ @echo "### If this takes a long time, you might wish to run rngd in the"
|
|
|
+ @echo "### background to keep the supply of entropy topped up. It"
|
|
|
+ @echo "### needs to be run as root, and should use a hardware random"
|
|
|
+ @echo "### number generator if one is available, eg:"
|
|
|
+ @echo "###"
|
|
|
+ @echo "### rngd -r /dev/hwrandom"
|
|
|
+ @echo "###"
|
|
|
+ openssl req -new -nodes -utf8 -sha1 -days 36500 -batch \
|
|
|
+ -x509 -config x509.genkey \
|
|
|
+ -outform DER -out signing_key.x509 \
|
|
|
+ -keyout signing_key.priv
|
|
|
+ @echo "###"
|
|
|
+ @echo "### Key pair generated."
|
|
|
+ @echo "###"
|
|
|
+
|
|
|
+x509.genkey:
|
|
|
+ @echo Generating X.509 key generation config
|
|
|
+ @echo >x509.genkey "[ req ]"
|
|
|
+ @echo >>x509.genkey "default_bits = 4096"
|
|
|
+ @echo >>x509.genkey "distinguished_name = req_distinguished_name"
|
|
|
+ @echo >>x509.genkey "prompt = no"
|
|
|
+ @echo >>x509.genkey "x509_extensions = myexts"
|
|
|
+ @echo >>x509.genkey
|
|
|
+ @echo >>x509.genkey "[ req_distinguished_name ]"
|
|
|
+ @echo >>x509.genkey "O = Magrathea"
|
|
|
+ @echo >>x509.genkey "CN = Glacier signing key"
|
|
|
+ @echo >>x509.genkey "emailAddress = slartibartfast@magrathea.h2g2"
|
|
|
+ @echo >>x509.genkey
|
|
|
+ @echo >>x509.genkey "[ myexts ]"
|
|
|
+ @echo >>x509.genkey "basicConstraints=critical,CA:FALSE"
|
|
|
+ @echo >>x509.genkey "keyUsage=digitalSignature"
|
|
|
+ @echo >>x509.genkey "subjectKeyIdentifier=hash"
|
|
|
+ @echo >>x509.genkey "authorityKeyIdentifier=keyid"
|
|
|
+endif
|
|
|
+CLEAN_FILES += signing_key.priv signing_key.x509 x509.genkey
|