• David Howells's avatar
    MODSIGN: Automatically generate module signing keys if missing · d441108c
    David Howells authored
    Automatically generate keys for module signing if they're absent so that
    allyesconfig doesn't break.  The builder should consider generating their own
    key and certificate, however, so that the keys are appropriately named.
    
    The private key for the module signer should be placed in signing_key.priv
    (unencrypted!) and the public key in an X.509 certificate as signing_key.x509.
    
    If a transient key is desired for signing the modules, a config file for
    'openssl req' can be placed in x509.genkey, looking something like the
    following:
    
    	[ req ]
    	default_bits = 4096
    	distinguished_name = req_distinguished_name
    	prompt = no
    	x509_extensions = myexts
    
    	[ req_distinguished_name ]
    	O = Magarathea
    	CN = Glacier signing key
    	emailAddress = slartibartfast@magrathea.h2g2
    
    	[ myexts ]
    	basicConstraints=critical,CA:FALSE
    	keyUsage=digitalSignature
    	subjectKeyIdentifier=hash
    	authorityKeyIdentifier=hash
    
    The build process will use this to configure:
    
    	openssl req -new -nodes -utf8 -sha1 -days 36500 -batch \
    		-x509 -config x509.genkey \
    		-outform DER -out signing_key.x509 \
    		-keyout signing_key.priv
    
    to generate the key.
    
    Note that it is required that the X.509 certificate have a subjectKeyIdentifier
    and an authorityKeyIdentifier.  Without those, the certificate will be
    rejected.  These can be used to check the validity of a certificate.
    
    Note that 'make distclean' will remove signing_key.{priv,x509} and x509.genkey,
    whether or not they were generated automatically.
    Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
    Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
    d441108c
Makefile 6.45 KB