From patchwork Fri May 19 08:28:37 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Herbert Xu X-Patchwork-Id: 96268 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp1082937vqo; Fri, 19 May 2023 01:52:11 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5psrRbc8a4vBSg0KYm3uaPFFSpXCLI0jCnxrYhswIZ5kVy83zeU/+qr2qivOnQyAoe1IGJ X-Received: by 2002:a17:902:ef84:b0:1ac:6c26:c32f with SMTP id iz4-20020a170902ef8400b001ac6c26c32fmr1771590plb.46.1684486330882; Fri, 19 May 2023 01:52:10 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1684486330; cv=none; d=google.com; s=arc-20160816; b=ac1UUSBlFTmnjfjrWqe22NQVjU/ThP4ybRio0qFFbBl3COU28TLqv+Y8e50QtgDeSb MbVxXJyqpgQvkJTxeEYiFAqi/nd4tx2zbYfipuHMVOrOZg5KrFfJCQ3L1rrFzRkO8xnZ OkYLQTJJI2wcbMEU3yll/IdVRIg67gyXieTcvRrcVXN/gU7tYcndP7oUCxxSA2MZ1m5J RYxTpP7dWPMWJEvFjigZsOYstOJMp7lt78Lo/8yUaT2ZrUAqERZlW782Q7fXVvDQAbq/ Ak5+31Z9lLv5EAABy5XtSUaCVmgRx8CykMmUs3FhVUlN+fY+GnJpTsCqC73qPj9u78u2 13Dw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:message-id:to:references:subject:date:from; bh=F4VzFW9WdoPbZhVaRCM2GKOt8DOeuiH3CuD5RJGH46k=; b=IPtPThTbGrVKTiaDENUKOeGY3jEIVy4KYB5PTIBHBEDA5JkHPZTaWYJttIN5O7rn1Y daYozOBUPQXG/jlg5aWjZ6MlOaQBqwdAFIOqQs+WkCbDAl+glSskSHqqM7XHj7alXKk/ r0Y30MOsGKQuLCsLuPMTz50i7yZQ7xhbcK//h3ui5zP+/RkdjgUB+5rtqPVUS54cm3/z cBmcN5rHjS1vFkFn5JIZa25cyBfBhTiHmsAki3CCoFgapsCJhEIE7KRW7yIbfNM2OFCc BR9KDbH6Sd0oGJzkZHNwC8FpSggDsmfRIBY8RKwTEoM2d53NMnA9LyVOGnYa0Xo/OhVN a6nw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id c9-20020a170902d48900b001aafecaa768si3277993plg.641.2023.05.19.01.51.56; Fri, 19 May 2023 01:52:10 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230274AbjESI3Q (ORCPT + 99 others); Fri, 19 May 2023 04:29:16 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57424 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230150AbjESI3N (ORCPT ); Fri, 19 May 2023 04:29:13 -0400 Received: from 167-179-156-38.a7b39c.syd.nbn.aussiebb.net (167-179-156-38.a7b39c.syd.nbn.aussiebb.net [167.179.156.38]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5E321E58; Fri, 19 May 2023 01:29:11 -0700 (PDT) Received: from loth.rohan.me.apana.org.au ([192.168.167.2]) by formenos.hmeau.com with smtp (Exim 4.94.2 #2 (Debian)) id 1pzvTZ-00AnMQ-5M; Fri, 19 May 2023 16:28:38 +0800 Received: by loth.rohan.me.apana.org.au (sSMTP sendmail emulation); Fri, 19 May 2023 16:28:37 +0800 From: "Herbert Xu" Date: Fri, 19 May 2023 16:28:37 +0800 Subject: [PATCH 3/3] crypto: cmac - Add support for cloning References: To: Dmitry Safonov , Linux Crypto Mailing List , linux-kernel@vger.kernel.org, David Ahern , Eric Dumazet , Paolo Abeni , Jakub Kicinski , "David S. Miller" , Andy Lutomirski , Ard Biesheuvel , Bob Gilligan , Dan Carpenter , David Laight , Dmitry Safonov <0x7f454c46@gmail.com>, Eric Biggers , "Eric W. Biederman" , Francesco Ruggeri , Hideaki YOSHIFUJI , Ivan Delalande , Leonard Crestez , Salam Noureddine , netdev@vger.kernel.org Message-Id: X-Spam-Status: No, score=2.7 required=5.0 tests=BAYES_00,HELO_DYNAMIC_IPADDR2, RDNS_DYNAMIC,SPF_HELO_NONE,SPF_PASS,TVD_RCVD_IP,T_SCC_BODY_TEXT_LINE, URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.6 X-Spam-Level: ** X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1766311938473295038?= X-GMAIL-MSGID: =?utf-8?q?1766311938473295038?= Allow hmac to be cloned. The underlying cipher needs to support cloning by not having a cra_init function (all implementations of aes that do not require a fallback can be cloned). Signed-off-by: Herbert Xu --- crypto/cmac.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/crypto/cmac.c b/crypto/cmac.c index bcc6f19a4f64..fce6b0f58e88 100644 --- a/crypto/cmac.c +++ b/crypto/cmac.c @@ -213,7 +213,22 @@ static int cmac_init_tfm(struct crypto_shash *tfm) ctx->child = cipher; return 0; -}; +} + +static int cmac_clone_tfm(struct crypto_shash *tfm, struct crypto_shash *otfm) +{ + struct cmac_tfm_ctx *octx = crypto_shash_ctx(otfm); + struct cmac_tfm_ctx *ctx = crypto_shash_ctx(tfm); + struct crypto_cipher *cipher; + + cipher = crypto_clone_cipher(octx->child); + if (IS_ERR(cipher)) + return PTR_ERR(cipher); + + ctx->child = cipher; + + return 0; +} static void cmac_exit_tfm(struct crypto_shash *tfm) { @@ -280,6 +295,7 @@ static int cmac_create(struct crypto_template *tmpl, struct rtattr **tb) inst->alg.final = crypto_cmac_digest_final; inst->alg.setkey = crypto_cmac_digest_setkey; inst->alg.init_tfm = cmac_init_tfm; + inst->alg.clone_tfm = cmac_clone_tfm; inst->alg.exit_tfm = cmac_exit_tfm; inst->free = shash_free_singlespawn_instance;