Messages in this thread | | | Date | Wed, 24 Nov 2010 08:59:25 -0600 | From | Serge Hallyn <> | Subject | Re: [PATCH v1.5 3/5] key: add tpm_send command |
| |
Quoting David Safford (safford@watson.ibm.com): > On Tue, 2010-11-23 at 20:32 -0600, Serge Hallyn wrote: > > Quoting Mimi Zohar (zohar@linux.vnet.ibm.com): > > > 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@canonical.com> > > 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.
Jinkeys, that's complicated :)
But doesn't that mean that the transmit_cmd() parameters are lying? Should the second argument for transmit_cmd() be a union?
(If only to help out the lamentable reader)
thanks, -serge
| |