ima: enable support for larger default filedata hash algorithms
authorMimi Zohar <zohar@linux.vnet.ibm.com>
Fri, 7 Jun 2013 10:16:37 +0000 (12:16 +0200)
committerMimi Zohar <zohar@linux.vnet.ibm.com>
Sun, 27 Oct 2013 01:32:55 +0000 (21:32 -0400)
commite7a2ad7eb6f48ad80c70a22dd8167fb34b409466
treed1b7e58d2029a273a347b9b9a08f35c50b244d27
parent9b9d4ce592d283fc4c01da746c02a840c499bb7e
ima: enable support for larger default filedata hash algorithms

The IMA measurement list contains two hashes - a template data hash
and a filedata hash.  The template data hash is committed to the TPM,
which is limited, by the TPM v1.2 specification, to 20 bytes.  The
filedata hash is defined as 20 bytes as well.

Now that support for variable length measurement list templates was
added, the filedata hash is not limited to 20 bytes.  This patch adds
Kconfig support for defining larger default filedata hash algorithms
and replacing the builtin default with one specified on the kernel
command line.

<uapi/linux/hash_info.h> contains a list of hash algorithms.  The
Kconfig default hash algorithm is a subset of this list, but any hash
algorithm included in the list can be specified at boot, using the
'ima_hash=' kernel command line option.

Changelog v2:
- update Kconfig

Changelog:
- support hashes that are configured
- use generic HASH_ALGO_ definitions
- add Kconfig support
- hash_setup must be called only once (Dmitry)
- removed trailing whitespaces (Roberto Sassu)

Signed-off-by: Mimi Zohar <zohar@us.ibm.com>
Signed-off-by: Roberto Sassu <roberto.sassu@polito.it>
Documentation/kernel-parameters.txt
security/integrity/ima/Kconfig
security/integrity/ima/ima_main.c