original_kernel/include/crypto
David Howells bc1c373dd2 MODSIGN: Provide a utility to append a PKCS#7 signature to a module
Provide a utility that:

 (1) Digests a module using the specified hash algorithm (typically sha256).

     [The digest can be dumped into a file by passing the '-d' flag]

 (2) Generates a PKCS#7 message that:

     (a) Has detached data (ie. the module content).

     (b) Is signed with the specified private key.

     (c) Refers to the specified X.509 certificate.

     (d) Has an empty X.509 certificate list.

     [The PKCS#7 message can be dumped into a file by passing the '-p' flag]

 (3) Generates a signed module by concatenating the old module, the PKCS#7
     message, a descriptor and a magic string.  The descriptor contains the
     size of the PKCS#7 message and indicates the id_type as PKEY_ID_PKCS7.

 (4) Either writes the signed module to the specified destination or renames
     it over the source module.

This allows module signing to reuse the PKCS#7 handling code that was added
for PE file parsing for signed kexec.

Note that the utility is written in C and must be linked against the OpenSSL
crypto library.

Note further that I have temporarily dropped support for handling externally
created signatures until we can work out the best way to do those.  Hopefully,
whoever creates the signature can give me a PKCS#7 certificate.

Signed-off-by: David Howells <dhowells@redhat.com>
Tested-by: Vivek Goyal <vgoyal@redhat.com>
2015-08-07 16:26:13 +01:00
..
internal crypto: rng - Do not free default RNG when it becomes unused 2015-06-22 15:49:18 +08:00
ablk_helper.h
aead.h crypto: doc - Fix typo in crypto-API.xml 2015-06-04 15:05:08 +08:00
aes.h
akcipher.h crypto: akcipher - add PKE API 2015-06-17 17:03:14 +08:00
algapi.h
authenc.h
b128ops.h
blowfish.h
cast5.h
cast6.h
cast_common.h
compress.h
cryptd.h
crypto_wq.h
ctr.h
des.h
drbg.h crypto: drbg - reseed often if seedsource is degraded 2015-06-10 19:14:05 +08:00
gf128mul.h
hash.h crypto: doc - Fix typo in crypto-API.xml 2015-06-04 15:05:08 +08:00
hash_info.h
if_alg.h
lrw.h
mcryptd.h
md5.h crypto: md5 - add MD5 initial vectors 2015-05-18 12:20:18 +08:00
null.h crypto: null - Add default null skcipher 2015-05-22 11:25:55 +08:00
padlock.h
pcrypt.h
pkcs7.h PKCS#7: Allow detached data to be supplied for signature checking purposes 2015-08-07 16:26:13 +01:00
public_key.h MODSIGN: Provide a utility to append a PKCS#7 signature to a module 2015-08-07 16:26:13 +01:00
rng.h crypto: doc - Fix typo in crypto-API.xml 2015-06-04 15:05:08 +08:00
scatterwalk.h crypto: scatterwalk - Add scatterwalk_ffwd helper 2015-05-22 11:25:50 +08:00
serpent.h
sha.h
sha1_base.h
sha256_base.h
sha512_base.h
skcipher.h
twofish.h
vmac.h
xts.h