Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753542AbbFHUfw (ORCPT ); Mon, 8 Jun 2015 16:35:52 -0400 Received: from mout.gmx.net ([212.227.15.18]:61745 "EHLO mout.gmx.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753048AbbFHUfo (ORCPT ); Mon, 8 Jun 2015 16:35:44 -0400 From: Peter =?iso-8859-15?q?H=FCwe?= To: Jarkko Sakkinen Subject: Re: [PATCH v2] tpm: introduce struct tpm_buf Date: Mon, 8 Jun 2015 22:39:32 +0200 User-Agent: KMail/1.13.7 (Linux/4.1.0-rc6; KDE/4.14.3; x86_64; ; ) Cc: jgunthorpe@obsidianresearch.com, safford@us.ibm.com, Marcel Selhorst , "moderated list:TPM DEVICE DRIVER" , open list References: <1433349555-30868-1-git-send-email-jarkko.sakkinen@linux.intel.com> In-Reply-To: <1433349555-30868-1-git-send-email-jarkko.sakkinen@linux.intel.com> MIME-Version: 1.0 Content-Type: Text/Plain; charset="iso-8859-15" Content-Transfer-Encoding: 7bit Message-Id: <201506082239.33639.PeterHuewe@gmx.de> X-Provags-ID: V03:K0:rCRO01vOeohaEBnqHJiYCEt+8OsAHC1u6g8SzTx4x+yDAPUorxI KC8IpwcC2PLaPyoy6qvPLQduEIuDqkTKF4gFRt6GzyMNPjOF/3uLq9m+GNl+3CnOAxQV5Si HigzhEMzyjLcB53uYeLBZ8+nIcE8UMINizbXLDrmqXqV8vtd2m0GinAW4bY6TpTV9BnUoOv rx6Mo10YTQcUVRvS5SSJQ== X-UI-Out-Filterresults: notjunk:1; Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1688 Lines: 55 Hi, Am Mittwoch, 3. Juni 2015, 18:39:14 schrieb Jarkko Sakkinen: > This patch introduces struct tpm_buf that provides a string buffer for > constructing TPM commands. This allows to construct variable sized TPM > commands. This feature is needed for TPM 2.0 commands in order to allow > policy authentication and algorithmic agility. > > The commands in the tpm2-cmd.c have been updated to use struct tpm_buf. > Lots of awkward length calculations could be dropped because the buffer > knows its length. > > The code is is along the lines of the string buffer code in > security/trusted/trusted.h. > > Changes since v1: > > - Fixed potential alignment issues in tpm_buf_tag(). > > Signed-off-by: Jarkko Sakkinen > +static inline void tpm_buf_append(struct tpm_buf *buf, > + const unsigned char *data, > + unsigned int len) > +{ > + struct tpm_input_header *head = (struct tpm_input_header *) buf->data; > + > + BUG_ON((len + tpm_buf_length(buf)) > TPM_BUF_SIZE); > + > + memcpy(&buf->data[tpm_buf_length(buf)], data, len); > + head->length = cpu_to_be32(tpm_buf_length(buf) + len); > +} > + > +static inline void tpm_buf_store(struct tpm_buf *buf, > + unsigned int pos, > + const unsigned char *data, > + unsigned int len) > +{ > + BUG_ON((pos + len) > TPM_BUF_SIZE); > + > + memcpy(&buf->data[pos], data, len); > +} Don't you have to update the ->length here? Thanks, Peter -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/