Re: [PATCH] keys, trusted: select TPM2 hash algorithm

From: Mimi Zohar
Date: Tue Oct 27 2015 - 09:55:18 EST


On Tue, 2015-10-27 at 12:42 +0200, Jarkko Sakkinen wrote:
> n Mon, Oct 26, 2015 at 07:44:39AM +0200, Jarkko Sakkinen wrote:
> > On Sun, Oct 25, 2015 at 03:21:31PM -0400, Mimi Zohar wrote:
> > > On Sat, 2015-10-24 at 15:42 +0300, Jarkko Sakkinen wrote:
> > > > Added 'hashalg=' option for selecting the hash algorithm.
> > > >
> > > > Currently available options are:
> > > >
> > > > * sha1
> > > > * sha256
> > > > * sha384
> > > > * sha512
> > > > * sm3_256
> > >
> > > Please consider using crypto/hash_info.c: hash_algo_name[], which
> > > already define the algorithm string names. Use
> > > include/crypto/hash_info.c to include a reference to this array.
> >
> > It wold work for me. I did ad-hoc because first example that I looked
> > at was EcryptFS.

After EVM, EcryptFS was the first subsystem to use trusted keys.
Support for larger digests was later added to IMA.

> > I need to add sm3_256 to that array.

Unless there is kernel crypto support for this algorithm, I would
conditionally include the algorithm, probably based on a Kconfig option.

> > I've found three different ways to write it:
> >
> > * sm3256 (various google hits)
> > * sm3-256 (various google hits)
> > * sm3_256 (TPM 2.0 Structures specification)
> >
> > Maybe the second option would be the most appropriate?

Right, If there aren't any standards, use the second option for the
string and an underscore for the variable name.

> > > Boot command line options should be prefixed with the subsystem name.
> > > So instead of hashalg, please use tpm_hashalg. The boot command line
> > > option needs to be documented in Documentation/kernel-parameters.txt.
> >
> > I see. My commit message is clearly inadequate. It's an option for the
> > keyring syscalls.

Sorry for the misunderstanding.

> BTW, in IMA I see you have the hash algorithm as a boot parameter. I
> guess it makes sense there because it works implicitly in the
> background?

The default hash algorithm is defined using the Kconfig IMA_DEFAULT_HASH
option, but can be specified on the boot command line using "ima_hash=".

> Sealing a trusted key is an explicit operation. That's why I thought
> it'd be better to have it as an option for the syscall. Does this logic
> make sense to your or not?

It does.

>
> PS. Hey one more thing: this was supposed to be RFC, forgot to add
> --subject-prefix="PATCH RFC". Sorry about that.

:)

Mimi

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/