Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757602AbcJQH2p (ORCPT ); Mon, 17 Oct 2016 03:28:45 -0400 Received: from s3.sipsolutions.net ([5.9.151.49]:49035 "EHLO sipsolutions.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750752AbcJQH2j (ORCPT ); Mon, 17 Oct 2016 03:28:39 -0400 Message-ID: <1476689310.19992.1.camel@sipsolutions.net> Subject: Re: [PATCH] crypto: ccm - avoid scatterlist for MAC encryption From: Johannes Berg To: Ard Biesheuvel , luto@amacapital.net, sergey.senozhatsky.work@gmail.com, netdev@vger.kernel.org, herbert@gondor.apana.org.au, davem@davemloft.net, linux-wireless@vger.kernel.org, linux-kernel@vger.kernel.org, j@w1.fi Date: Mon, 17 Oct 2016 09:28:30 +0200 In-Reply-To: <1476551776-8099-1-git-send-email-ard.biesheuvel@linaro.org> (sfid-20161015_191624_228877_FEFB7F65) References: <1476551776-8099-1-git-send-email-ard.biesheuvel@linaro.org> (sfid-20161015_191624_228877_FEFB7F65) Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.20.5-1 Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1157 Lines: 23 On Sat, 2016-10-15 at 18:16 +0100, Ard Biesheuvel wrote: > The CCM code goes out of its way to perform the CTR encryption of the > MAC using the subordinate CTR driver. To this end, it tweaks the > input and output scatterlists so the aead_req 'odata' and/or > 'auth_tag' fields [which may live on the stack] are prepended to the > CTR payload. This involves calling sg_set_buf() on addresses which > are not direct mapped, which is not supported. > Since the calculation of the MAC keystream involves a single call > into the cipher, to which we have a handle already given that the > CBC-MAC calculation uses it as well, just calculate the MAC keystream > directly, and record it in the aead_req private context so we can > apply it to the MAC in cypto_ccm_auth_mac(). This greatly simplifies > the scatterlist manipulation, and no longer requires scatterlists to > refer to buffers that may live on the stack. No objection from me, Herbert? I'm getting a bit nervous though - I'd rather have any fix first so people get things working again - so maybe I'll apply your other patch and mine first, and then we can replace yours by this later. johannes