Received: by 2002:a25:d7c1:0:0:0:0:0 with SMTP id o184csp830412ybg; Sat, 26 Oct 2019 08:04:52 -0700 (PDT) X-Google-Smtp-Source: APXvYqwjl5rabIx2UslmiD2DX9LgxNORKlt08I2J08vkS6wwsv6FJ29lGKDkqoXK39GPY0H+vJdS X-Received: by 2002:a50:91f6:: with SMTP id h51mr9799134eda.99.1572102292300; Sat, 26 Oct 2019 08:04:52 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1572102292; cv=none; d=google.com; s=arc-20160816; b=YWU03K3Rt/7d/EaaklEoDXT0k64wYdciUVT5WPMj+eG5XHVzUN8Ro+sj1WvYId+TIy lJzdC/Wv12DS/a1jNEw+NR6XVNxCAoxFswT1IcxPYTiGjfewJhcEtdDOCGHUiGV+JGXg otmyNcJjF7/Kf3Mu54yDmaO691HICS5K8t5qgGnSmUFKZ+2H/sc74uCaj+d31lAQ0L2H s5XVFCxnpcMHxkds7ydCQ63dVuuvYWMrwlJnSZMKK/bGrp0opNECexChz4pZN9rNFzw1 BMhrIU5sATZEGw9arxeELO9fBoIXrGEcY9vJjQVyo7x3lt5tues/MV+l7dDRPSP9i0Rx tCZQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=YX9PeBiYB4z6tyZ7g7UzNJLY7tU0ltcTMGRXXHunNtE=; b=hn/2gRYTmwl274rZWiId1hPEoUQDYtByaKhSi6n5jksN1mTUsPoawgY9AMCx7KK5JE y/diRQd+pCvzJ3sJx0519qHNsp0uZeUf44iCodtWs2ZZe1W10+Dg0yh+rFBj4wsumTf8 vtkmoAgTi+HPcGvROHwyUJ1HPBCFliru+qftd/I2jaFEhlU5rtVotI1sczRMWhUihsUW k1z6BvBUYt6NgzwSnk31tUDc3b8PCeUy8JYbUrgK8zKjk7wmBQhA6v4VrlCA/VP02OkH 4UR9N3pOnmy6biYIFWxhJ72fmN4knuUgwkAp+4/d/qXCmBEqiDM2cdDTjdyVA1P9iMGR JJ3g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=CoKuuHoY; spf=pass (google.com: best guess record for domain of linux-crypto-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-crypto-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id h21si204857ejs.69.2019.10.26.08.04.25; Sat, 26 Oct 2019 08:04:52 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-crypto-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=CoKuuHoY; spf=pass (google.com: best guess record for domain of linux-crypto-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-crypto-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726189AbfJZPEK (ORCPT + 99 others); Sat, 26 Oct 2019 11:04:10 -0400 Received: from mail-wr1-f65.google.com ([209.85.221.65]:38000 "EHLO mail-wr1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726162AbfJZPEK (ORCPT ); Sat, 26 Oct 2019 11:04:10 -0400 Received: by mail-wr1-f65.google.com with SMTP id v9so5451024wrq.5 for ; Sat, 26 Oct 2019 08:04:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=YX9PeBiYB4z6tyZ7g7UzNJLY7tU0ltcTMGRXXHunNtE=; b=CoKuuHoY9/J6zlC1CJq/00HJVY+GqBkFupHAwVitwkfOYn72KEdXdOmGEZO0fwrGL9 ifsJDGncC/0bK5PP96i3oKqOyhqVds8IoRcmXIb8byRTkjPLUjeVSLG+cS7rTILxEnDr 7+X8uOTMmLFdJf6t2DnvhvyodSpMqAB7Hma9ZjP+qDljRRW6JAlRcc3HSBk1P2BoLGAJ uNt1y5+w8/LvqMmUzGxMPM4DVYxcHN6tQ7ATt8aHwo08wAARlCvkFuVSCEHBQB3LmnzA DfR6ZopIBPZu03M30K4VnPJcVZqvcLU7oK249kzvKhbkkwJOGyggRu3ESJJcJKIzi9aL Vfaw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=YX9PeBiYB4z6tyZ7g7UzNJLY7tU0ltcTMGRXXHunNtE=; b=HNaAVyXgDlBLITyYl4Azz1DnyexccvOJwOCkEWVXbvO4B496pJU0dQ/72wIe8/nMm0 RSxtQVongLycx+xp82leuQ52AZSm5Tmhr7WLauuooMZ53BUzoIDJUXhH3TXnKl4F5UDk KREErt7p4iIs35CMILMgqE0Td+SQCKrCRJhPP7GBwuoCM9+5PBT9LlkoKInoFXX1HOJx H8LVlQ9n8SaqyDFtP/WzS3PGPsyBjIrXip27WJG7fu4F7q5c5L4J+JkP89wwLd2UtsR9 izz+ds84yD4TVXUq6esgYCqbv1CuH1Ar9xTf7nWUa3pcWkzIA/wSxYTk9qW8CTJpeOMN 7YfA== X-Gm-Message-State: APjAAAXeDj4gISkGcBaU0lJAryol1g99cemLtTi0SIN1WCyzQFsPenCs tYI24CTjYlQrJO1fSlSKQxvNPPtQSM9oM4pJ3383vg== X-Received: by 2002:adf:9f08:: with SMTP id l8mr7338607wrf.325.1572102246965; Sat, 26 Oct 2019 08:04:06 -0700 (PDT) MIME-Version: 1.0 References: <20191017122549.4634-1-t-kristo@ti.com> <20191017122549.4634-8-t-kristo@ti.com> In-Reply-To: <20191017122549.4634-8-t-kristo@ti.com> From: Ard Biesheuvel Date: Sat, 26 Oct 2019 17:04:05 +0200 Message-ID: Subject: Re: [PATCH 07/10] crypto: omap-aes-gcm: fix corner case with only auth data To: Tero Kristo Cc: Herbert Xu , "David S. Miller" , "open list:HARDWARE RANDOM NUMBER GENERATOR CORE" , linux-omap@vger.kernel.org, linux-arm-kernel Content-Type: text/plain; charset="UTF-8" Sender: linux-crypto-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-crypto@vger.kernel.org On Thu, 17 Oct 2019 at 14:26, Tero Kristo wrote: > > Fix a corner case where only authdata is generated, without any provided > assocdata / cryptdata. Passing the empty scatterlists to OMAP AES core driver > in this case would confuse it, failing to map DMAs. > So this change appears to be the culprit for causing the remaining issue that I reported in the cover letter of the followup series that I sent out. The logic below does not account for the case where only assocdata is provided, which is a valid use of an AEAD. > Signed-off-by: Tero Kristo > --- > drivers/crypto/omap-aes-gcm.c | 22 ++++++++++++++-------- > 1 file changed, 14 insertions(+), 8 deletions(-) > > diff --git a/drivers/crypto/omap-aes-gcm.c b/drivers/crypto/omap-aes-gcm.c > index 9bbedbccfadf..dfd4d1cac421 100644 > --- a/drivers/crypto/omap-aes-gcm.c > +++ b/drivers/crypto/omap-aes-gcm.c > @@ -148,12 +148,14 @@ static int omap_aes_gcm_copy_buffers(struct omap_aes_dev *dd, > if (req->src == req->dst || dd->out_sg == sg_arr) > flags |= OMAP_CRYPTO_FORCE_COPY; > > - ret = omap_crypto_align_sg(&dd->out_sg, cryptlen, > - AES_BLOCK_SIZE, &dd->out_sgl, > - flags, > - FLAGS_OUT_DATA_ST_SHIFT, &dd->flags); > - if (ret) > - return ret; > + if (cryptlen) { > + ret = omap_crypto_align_sg(&dd->out_sg, cryptlen, > + AES_BLOCK_SIZE, &dd->out_sgl, > + flags, > + FLAGS_OUT_DATA_ST_SHIFT, &dd->flags); > + if (ret) > + return ret; > + } > > dd->in_sg_len = sg_nents_for_len(dd->in_sg, alen + clen); > dd->out_sg_len = sg_nents_for_len(dd->out_sg, clen); > @@ -287,8 +289,12 @@ static int omap_aes_gcm_handle_queue(struct omap_aes_dev *dd, > return err; > > err = omap_aes_write_ctrl(dd); > - if (!err) > - err = omap_aes_crypt_dma_start(dd); > + if (!err) { > + if (dd->in_sg_len && dd->out_sg_len) > + err = omap_aes_crypt_dma_start(dd); > + else > + omap_aes_gcm_dma_out_callback(dd); > + } > > if (err) { > omap_aes_gcm_finish_req(dd, err); > -- > 2.17.1 > > -- > Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki. Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki