Re: [PATCH v1.5 3/5] key: add tpm_send command

From: David Safford
Date: Wed Nov 24 2010 - 07:46:47 EST


On Tue, 2010-11-23 at 20:32 -0600, Serge Hallyn wrote:
> Quoting Mimi Zohar (zohar@xxxxxxxxxxxxxxxxxx):
> > Add internal kernel tpm_send() command used to seal/unseal keys.
...
> > +int tpm_send(u32 chip_num, void *cmd, size_t buflen)
>
> Hate to nit-pick, but any particular reason you're not following the
> rest of the file and using 'struct tpm_cmd_t *cmd' here?
>
> Acked-by: Serge E. Hallyn <serge.hallyn@xxxxxxxxxxxxx>

We put some thought into this one. TPM command packets are
binary blobs with lots of optional and variable length fields,
and there are at least three common approaches to creating them:
structures (as used in tpm.c), load/store (as used in trousers
and trusted-keys), and an sprintf like format string (as used
in the original libtpm.) Each has its advantages and disadvantages.
Structures are nice for the simple TPM commands, but they become
unwieldy for the complex commands like seal and unseal. Load/store
is much more readable for the complex seal and unseal commands.
Format strings are nice for creating the most complex commands
in the fewest lines of code, but are way overkill for simple ones.

With the void *cmd, we are allowing the other modules to pick
whichever method most suits their needs.

dave
--
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/