From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-13.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id B2CBBC432BE for ; Tue, 10 Aug 2021 11:29:13 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 953DD61073 for ; Tue, 10 Aug 2021 11:29:13 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S238284AbhHJL3e convert rfc822-to-8bit (ORCPT ); Tue, 10 Aug 2021 07:29:34 -0400 Received: from mail-40131.protonmail.ch ([185.70.40.131]:43282 "EHLO mail-40131.protonmail.ch" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238252AbhHJL3e (ORCPT ); Tue, 10 Aug 2021 07:29:34 -0400 Date: Tue, 10 Aug 2021 11:29:04 +0000 Authentication-Results: mail-40131.protonmail.ch; dkim=none To: Ahmad Fatoum From: David Gstir Cc: =?utf-8?Q?Horia_Geant=C4=83?= , Aymen Sghaier , Herbert Xu , "David S. Miller" , kernel@pengutronix.de, James Bottomley , Jarkko Sakkinen , Mimi Zohar , David Howells , James Morris , Eric Biggers , "Serge E. Hallyn" , Udit Agarwal , Jan Luebbe , Richard Weinberger , Franck LENORMAND , Sumit Garg , linux-integrity@vger.kernel.org, keyrings@vger.kernel.org, linux-crypto@vger.kernel.org, linux-kernel@vger.kernel.org, linux-security-module@vger.kernel.org Reply-To: David Gstir Subject: Re: [PATCH 3/4] crypto: caam - add in-kernel interface for blob generator Message-ID: <796E18E6-1329-40D6-B12F-4CE6C90DD988@sigma-star.at> In-Reply-To: <4078060ab2e44114af8204b4defea4f3d4b9e285.1626885907.git-series.a.fatoum@pengutronix.de> References: <4078060ab2e44114af8204b4defea4f3d4b9e285.1626885907.git-series.a.fatoum@pengutronix.de> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8BIT Precedence: bulk List-ID: X-Mailing-List: keyrings@vger.kernel.org Hi Ahmad, > On 21.07.2021, at 18:48, Ahmad Fatoum wrote: [...] > diff --git a/drivers/crypto/caam/blob_gen.c b/drivers/crypto/caam/blob_gen.c > new file mode 100644 > index 000000000000..513d3f90e438 > --- /dev/null > +++ b/drivers/crypto/caam/blob_gen.c > @@ -0,0 +1,230 @@ [...] > + > +int caam_encap_blob(struct caam_blob_priv *priv, const char *keymod, > + void *input, void *output, size_t length) > +{ > + u32 *desc; > + struct device *jrdev = &priv->jrdev; > + dma_addr_t dma_in, dma_out; > + struct caam_blob_job_result testres; > + size_t keymod_len = strlen(keymod); > + int ret; > + > + if (length <= CAAM_BLOB_OVERHEAD || keymod_len > CAAM_BLOB_KEYMOD_LENGTH) The docs for this function mention the length <= CAAM_BLOB_MAX_LEN restriction. This is not checked here. Is this intended? Since you already assert that MAX_BLOB_SIZE <= CAAM_BLOB_MAX_LEN in security/keys/trusted-keys/trusted_caam.c, this will never be an issue for CAAM-based trusted-keys though. > + return -EINVAL; > + > + desc = caam_blob_alloc_desc(keymod_len); > + if (!desc) { > + dev_err(jrdev, "unable to allocate desc\n"); > + return -ENOMEM; > + } > + [...] > diff --git a/include/soc/fsl/caam-blob.h b/include/soc/fsl/caam-blob.h > new file mode 100644 > index 000000000000..aebbc9335f64 > --- /dev/null > +++ b/include/soc/fsl/caam-blob.h > @@ -0,0 +1,56 @@ > +/* SPDX-License-Identifier: GPL-2.0-only */ > +/* > + * Copyright (C) 2020 Pengutronix, Ahmad Fatoum > + */ > + > +#ifndef __CAAM_BLOB_GEN > +#define __CAAM_BLOB_GEN > + > +#include > + > +#define CAAM_BLOB_KEYMOD_LENGTH 16 > +#define CAAM_BLOB_OVERHEAD (32 + 16) > +#define CAAM_BLOB_MAX_LEN 4096 > + > +struct caam_blob_priv; > + > +/** caam_blob_gen_init - initialize blob generation > + * > + * returns either pointer to new caam_blob_priv instance > + * or error pointer > + */ > +struct caam_blob_priv *caam_blob_gen_init(void); > + > +/** caam_blob_gen_init - free blob generation resources s/init/exit/ > + * > + * @priv: instance returned by caam_blob_gen_init > + */ > +void caam_blob_gen_exit(struct caam_blob_priv *priv); Except these minor things, I noticed no issues with this whole series: Reviewed-by: David Gstir