On Mon, Sep 09, 2019 at 01:18:35PM +0100, James Bottomley wrote:
> Most complex TPM commands require appending TPM2B buffers to the
> command body.  Since TPM2B types are essentially variable size arrays,
> it makes it impossible to represent these complex command arguments as
> structures and we simply have to build them up using append primitives
> like these.
> 
> Signed-off-by: James Bottomley <james.bottom...@hansenpartnership.com>

I think a better idea would be to have headerless TPM buffers and also
it makes sense to have a separate length field in the struct to keep the
code sane given that sometimes the buffer does not store the length.

E.g.

enum tpm_buf_flags {
        TPM_BUF_OVERFLOW        = BIT(0),
        TPM_BUF_HEADERLESS      = BIT(1),
};

struct tpm_buf {
        unsigned int length;
        struct page *data_page;
        unsigned int flags;
        u8 *data;
};

/Jarkko

Reply via email to