From patchwork Fri Sep 13 15:20:36 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pascal van Leeuwen X-Patchwork-Id: 11144997 X-Patchwork-Delegate: herbert@gondor.apana.org.au Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 1702114DB for ; Fri, 13 Sep 2019 16:23:36 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id E01C32089F for ; Fri, 13 Sep 2019 16:23:35 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="ORv8ERz0" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2388661AbfIMQXf (ORCPT ); Fri, 13 Sep 2019 12:23:35 -0400 Received: from mail-ed1-f67.google.com ([209.85.208.67]:43448 "EHLO mail-ed1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2388221AbfIMQXf (ORCPT ); Fri, 13 Sep 2019 12:23:35 -0400 Received: by mail-ed1-f67.google.com with SMTP id c19so27508018edy.10 for ; Fri, 13 Sep 2019 09:23:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=ohQE0si9snxRCMigJTreUpd2MR3/iIaRGRu9qae4I8Y=; b=ORv8ERz0dqgKdY+sDS3eaMliUhtXpbqtpFK6OaBD2n7hkfcpSSeooIqkucPFb7sH55 AVeZTRDTDzTKbcb8Bh1CgbFg/oMAV+KE3/lx0m1m2u9SST3o837y74Rx2IAVeByZbl5f TYHH/xT2IxRGZUVn5teoF85BlUyvYwchwcyomPc3sX6RJ7rkYR/z8Ju8aPh5elb0Ltsj mryw9rim6G+KFkKJ0nwJbFsrIxKjdpI7KmXzHQTOqZn3CiL1Elf7AbG+fgggelUZupZl 6D+Rn3yAovrJ2X8rADqDkkaULpvldkzPRyWLmRC2/3T8/mvQnzXcCuiTp1QZLHz2CFKV Lbeg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=ohQE0si9snxRCMigJTreUpd2MR3/iIaRGRu9qae4I8Y=; b=Z8jPrKagXpSR+bHjY7edmp8onM7XXMcVVwjX7c/tpboYx6mpWwshNnNMA9fsfIJcIU 7xhp3EFjixxNja9D02Yo+zRTI75pKemuaeQtNyqboxFCqxFYpqEvYta9gcgSS/G59bU8 zTpUR+4RtTVUU5Hq7RMT4T3kMGjY0ikdqUFpgwd1RrVcwOMsHct4eSI+Nm5al1y3FG/f wJj/kcygoui3Z147MfHlLPWxebxZ/m+jKsJXld2dbV77Dbi8oNkdwJFdHTYKVmIlX5vr SHueD7X64PVXDG/zSZtUNSLtljI2ykoOKRPLc8jG8lAQAEJ6PrUIp7nKgWF/t5wSZ9td /pKQ== X-Gm-Message-State: APjAAAWOd5AuKwnR0aNtQFwdeKBMHXrizP84yZ6OuahYzhCQVatgu7Rc 3Ckiz6i5SQgRm3tqLo1bEf/nE5Vk X-Google-Smtp-Source: APXvYqxmN+xrxfDepLNfhBOkX9eKyBj4bgSpQLl/dIr4zoxXcUC2KQuvGWfV66I7Gt+xuGuWoUswDg== X-Received: by 2002:a50:f045:: with SMTP id u5mr4872709edl.297.1568391812750; Fri, 13 Sep 2019 09:23:32 -0700 (PDT) Received: from localhost.localdomain.com ([188.204.2.113]) by smtp.gmail.com with ESMTPSA id r18sm5497669edl.6.2019.09.13.09.23.31 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 13 Sep 2019 09:23:31 -0700 (PDT) From: Pascal van Leeuwen X-Google-Original-From: Pascal van Leeuwen To: linux-crypto@vger.kernel.org Cc: antoine.tenart@bootlin.com, herbert@gondor.apana.org.au, davem@davemloft.net, Pascal van Leeuwen Subject: [PATCHv3 1/3] crypto: inside-secure - Added support for basic SM3 ahash Date: Fri, 13 Sep 2019 17:20:36 +0200 Message-Id: <1568388038-1268-2-git-send-email-pvanleeuwen@verimatrix.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1568388038-1268-1-git-send-email-pvanleeuwen@verimatrix.com> References: <1568388038-1268-1-git-send-email-pvanleeuwen@verimatrix.com> Sender: linux-crypto-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-crypto@vger.kernel.org Added support for the SM3 ahash algorithm changes since v1: - moved definition of CONTEXT_CONTROL_CRYPTO_ALG_SM3 (0x7) up above 0xf changes since v2: - allow compilation if CONFIG_CRYPTO_SM3 is not set Acked-by: Antoine Tenart Signed-off-by: Pascal van Leeuwen --- drivers/crypto/inside-secure/safexcel.c | 1 + drivers/crypto/inside-secure/safexcel.h | 8 ++++ drivers/crypto/inside-secure/safexcel_hash.c | 64 ++++++++++++++++++++++++++++ 3 files changed, 73 insertions(+) diff --git a/drivers/crypto/inside-secure/safexcel.c b/drivers/crypto/inside-secure/safexcel.c index 5886bcd..826d1fb 100644 --- a/drivers/crypto/inside-secure/safexcel.c +++ b/drivers/crypto/inside-secure/safexcel.c @@ -1176,6 +1176,7 @@ static int safexcel_request_ring_irq(void *pdev, int irqid, &safexcel_alg_chacha20, &safexcel_alg_chachapoly, &safexcel_alg_chachapoly_esp, + &safexcel_alg_sm3, }; static int safexcel_register_algorithms(struct safexcel_crypto_priv *priv) diff --git a/drivers/crypto/inside-secure/safexcel.h b/drivers/crypto/inside-secure/safexcel.h index 282d59e..e2993b5 100644 --- a/drivers/crypto/inside-secure/safexcel.h +++ b/drivers/crypto/inside-secure/safexcel.h @@ -373,6 +373,7 @@ struct safexcel_context_record { #define CONTEXT_CONTROL_CRYPTO_ALG_XCBC128 (0x1 << 23) #define CONTEXT_CONTROL_CRYPTO_ALG_XCBC192 (0x2 << 23) #define CONTEXT_CONTROL_CRYPTO_ALG_XCBC256 (0x3 << 23) +#define CONTEXT_CONTROL_CRYPTO_ALG_SM3 (0x7 << 23) #define CONTEXT_CONTROL_CRYPTO_ALG_POLY1305 (0xf << 23) #define CONTEXT_CONTROL_INV_FR (0x5 << 24) #define CONTEXT_CONTROL_INV_TR (0x6 << 24) @@ -663,6 +664,12 @@ enum safexcel_eip_version { /* Priority we use for advertising our algorithms */ #define SAFEXCEL_CRA_PRIORITY 300 +/* SM3 digest result for zero length message */ +#define EIP197_SM3_ZEROM_HASH "\x1A\xB2\x1D\x83\x55\xCF\xA1\x7F" \ + "\x8E\x61\x19\x48\x31\xE8\x1A\x8F" \ + "\x22\xBE\xC8\xC7\x28\xFE\xFB\x74" \ + "\x7E\xD0\x35\xEB\x50\x82\xAA\x2B" + /* EIP algorithm presence flags */ enum safexcel_eip_algorithms { SAFEXCEL_ALG_BC0 = BIT(5), @@ -869,5 +876,6 @@ int safexcel_hmac_setkey(const char *alg, const u8 *key, unsigned int keylen, extern struct safexcel_alg_template safexcel_alg_chacha20; extern struct safexcel_alg_template safexcel_alg_chachapoly; extern struct safexcel_alg_template safexcel_alg_chachapoly_esp; +extern struct safexcel_alg_template safexcel_alg_sm3; #endif diff --git a/drivers/crypto/inside-secure/safexcel_hash.c b/drivers/crypto/inside-secure/safexcel_hash.c index 0224779..873b774 100644 --- a/drivers/crypto/inside-secure/safexcel_hash.c +++ b/drivers/crypto/inside-secure/safexcel_hash.c @@ -10,6 +10,7 @@ #include #include #include +#include #include #include #include @@ -776,6 +777,14 @@ static int safexcel_ahash_final(struct ahash_request *areq) else if (ctx->alg == CONTEXT_CONTROL_CRYPTO_ALG_SHA512) memcpy(areq->result, sha512_zero_message_hash, SHA512_DIGEST_SIZE); + else if (ctx->alg == CONTEXT_CONTROL_CRYPTO_ALG_SM3) { + if (IS_ENABLED(CONFIG_CRYPTO_SM3)) + memcpy(areq->result, sm3_zero_message_hash, + SM3_DIGEST_SIZE); + else + memcpy(areq->result, + EIP197_SM3_ZEROM_HASH, SM3_DIGEST_SIZE); + } return 0; } else if (unlikely(req->digest == CONTEXT_CONTROL_DIGEST_XCM && @@ -2221,3 +2230,58 @@ struct safexcel_alg_template safexcel_alg_cmac = { }, }, }; + +static int safexcel_sm3_init(struct ahash_request *areq) +{ + struct safexcel_ahash_ctx *ctx = crypto_ahash_ctx(crypto_ahash_reqtfm(areq)); + struct safexcel_ahash_req *req = ahash_request_ctx(areq); + + memset(req, 0, sizeof(*req)); + + ctx->alg = CONTEXT_CONTROL_CRYPTO_ALG_SM3; + req->digest = CONTEXT_CONTROL_DIGEST_PRECOMPUTED; + req->state_sz = SM3_DIGEST_SIZE; + req->block_sz = SM3_BLOCK_SIZE; + + return 0; +} + +static int safexcel_sm3_digest(struct ahash_request *areq) +{ + int ret = safexcel_sm3_init(areq); + + if (ret) + return ret; + + return safexcel_ahash_finup(areq); +} + +struct safexcel_alg_template safexcel_alg_sm3 = { + .type = SAFEXCEL_ALG_TYPE_AHASH, + .algo_mask = SAFEXCEL_ALG_SM3, + .alg.ahash = { + .init = safexcel_sm3_init, + .update = safexcel_ahash_update, + .final = safexcel_ahash_final, + .finup = safexcel_ahash_finup, + .digest = safexcel_sm3_digest, + .export = safexcel_ahash_export, + .import = safexcel_ahash_import, + .halg = { + .digestsize = SM3_DIGEST_SIZE, + .statesize = sizeof(struct safexcel_ahash_export_state), + .base = { + .cra_name = "sm3", + .cra_driver_name = "safexcel-sm3", + .cra_priority = SAFEXCEL_CRA_PRIORITY, + .cra_flags = CRYPTO_ALG_ASYNC | + CRYPTO_ALG_KERN_DRIVER_ONLY, + .cra_blocksize = SM3_BLOCK_SIZE, + .cra_ctxsize = sizeof(struct safexcel_ahash_ctx), + .cra_init = safexcel_ahash_cra_init, + .cra_exit = safexcel_ahash_cra_exit, + .cra_module = THIS_MODULE, + }, + }, + }, +}; From patchwork Fri Sep 13 15:20:37 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pascal van Leeuwen X-Patchwork-Id: 11145001 X-Patchwork-Delegate: herbert@gondor.apana.org.au Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 668BD14E5 for ; Fri, 13 Sep 2019 16:23:38 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 45F8E20CC7 for ; Fri, 13 Sep 2019 16:23:38 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="VVEaYoQX" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2388673AbfIMQXh (ORCPT ); Fri, 13 Sep 2019 12:23:37 -0400 Received: from mail-ed1-f52.google.com ([209.85.208.52]:36743 "EHLO mail-ed1-f52.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2388221AbfIMQXh (ORCPT ); Fri, 13 Sep 2019 12:23:37 -0400 Received: by mail-ed1-f52.google.com with SMTP id f2so21214445edw.3 for ; Fri, 13 Sep 2019 09:23:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=t03O1lGA2w1JthcCeg9Z1ZYH3gKBRQCUleElET66vhg=; b=VVEaYoQXLyiNULnroC4LCOAYl1VGLQXOvcG2uxaNBve0z/YUCwng1zrNQfajcG1kKk k8pSE1AB4nAGxEOHb7a7JW4v52yyJM+6475/+nXNBGfPo+DKS6C63Nb5JmoE5wvPp5mB sX5hnYrcg9MQqEgHOpNCxQqt0BCnnNixWAoim8Z7sF8nvfjh6NU5E3O/tGHaI+VdcMws LWnnX5aXrFKE2anjA/p85/93dpNU/KoRNpu8NjdDSO9g5nryzkH3/1VmUNa1LO+TpGGb QwF0nAaz3dYlwFJi9QBgA1t1G6pug4wZbX/+OAAEUNVnNueDcrBpDAW/KnAa0qKA7yo7 f7lg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=t03O1lGA2w1JthcCeg9Z1ZYH3gKBRQCUleElET66vhg=; b=qC6S5l1lrt6ukKXOStzaMYPYv1SENJecpMRWYxA+boOqwUXmc+FlAiZucWn2iSzFqM /5/Wx6nO1nhUPNYo51bc6f/col2ajKU8UYmAWzzqBvGSz+JlD5BichWkFfkmFwOm/Opd 9EU6oESui2dz9BQtYIsgZfHdGxn0PcawkcMYZVS4qIGWaEM9qZj+NgxHp7Nj3ryuez0l gDHz2kLZ0a2UN9iPVzbxJwBYIflZE/TNTYr56Nh3Ob1bFF4Ja5A9BASEJfTBBy7UaxuT 9KZEs6F4EkLdeGAIaXYK0yruadauGgpNZn+XHdEF9fcx2/fAxNaG9AK2BFzU+GHvb2wz JPpw== X-Gm-Message-State: APjAAAW0bsV/zDWslTMgpFni6jvR8AwALhq7VvHDyZ8mUMjpa7ilk8+g al3rTgdJHSFSMl2W9sxfbnOa534o X-Google-Smtp-Source: APXvYqwT8EF4fMYovVvDPrgbyK0pHZIfkT/8/EPaEjI6Iw8V+qd2Hs3FtgvbZ353Uj8RqiFZInGPYw== X-Received: by 2002:a17:907:2102:: with SMTP id qn2mr40700600ejb.266.1568391813691; Fri, 13 Sep 2019 09:23:33 -0700 (PDT) Received: from localhost.localdomain.com ([188.204.2.113]) by smtp.gmail.com with ESMTPSA id r18sm5497669edl.6.2019.09.13.09.23.32 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 13 Sep 2019 09:23:32 -0700 (PDT) From: Pascal van Leeuwen X-Google-Original-From: Pascal van Leeuwen To: linux-crypto@vger.kernel.org Cc: antoine.tenart@bootlin.com, herbert@gondor.apana.org.au, davem@davemloft.net, Pascal van Leeuwen Subject: [PATCHv3 2/3] crypto: inside-secure - Added support for HMAC-SM3 ahash Date: Fri, 13 Sep 2019 17:20:37 +0200 Message-Id: <1568388038-1268-3-git-send-email-pvanleeuwen@verimatrix.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1568388038-1268-1-git-send-email-pvanleeuwen@verimatrix.com> References: <1568388038-1268-1-git-send-email-pvanleeuwen@verimatrix.com> Sender: linux-crypto-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-crypto@vger.kernel.org Added support for the hmac(sm3) ahash authentication algorithm changes since v1: - added Acked-by tag below, no changes to the source changes since v2: - nothing Acked-by: Antoine Tenart Signed-off-by: Pascal van Leeuwen --- drivers/crypto/inside-secure/safexcel.c | 1 + drivers/crypto/inside-secure/safexcel.h | 1 + drivers/crypto/inside-secure/safexcel_hash.c | 70 ++++++++++++++++++++++++++++ 3 files changed, 72 insertions(+) diff --git a/drivers/crypto/inside-secure/safexcel.c b/drivers/crypto/inside-secure/safexcel.c index 826d1fb..7d907d5 100644 --- a/drivers/crypto/inside-secure/safexcel.c +++ b/drivers/crypto/inside-secure/safexcel.c @@ -1177,6 +1177,7 @@ static int safexcel_request_ring_irq(void *pdev, int irqid, &safexcel_alg_chachapoly, &safexcel_alg_chachapoly_esp, &safexcel_alg_sm3, + &safexcel_alg_hmac_sm3, }; static int safexcel_register_algorithms(struct safexcel_crypto_priv *priv) diff --git a/drivers/crypto/inside-secure/safexcel.h b/drivers/crypto/inside-secure/safexcel.h index e2993b5..1b2d709 100644 --- a/drivers/crypto/inside-secure/safexcel.h +++ b/drivers/crypto/inside-secure/safexcel.h @@ -877,5 +877,6 @@ int safexcel_hmac_setkey(const char *alg, const u8 *key, unsigned int keylen, extern struct safexcel_alg_template safexcel_alg_chachapoly; extern struct safexcel_alg_template safexcel_alg_chachapoly_esp; extern struct safexcel_alg_template safexcel_alg_sm3; +extern struct safexcel_alg_template safexcel_alg_hmac_sm3; #endif diff --git a/drivers/crypto/inside-secure/safexcel_hash.c b/drivers/crypto/inside-secure/safexcel_hash.c index 873b774..272e5fd 100644 --- a/drivers/crypto/inside-secure/safexcel_hash.c +++ b/drivers/crypto/inside-secure/safexcel_hash.c @@ -2285,3 +2285,73 @@ struct safexcel_alg_template safexcel_alg_sm3 = { }, }, }; + +static int safexcel_hmac_sm3_setkey(struct crypto_ahash *tfm, const u8 *key, + unsigned int keylen) +{ + return safexcel_hmac_alg_setkey(tfm, key, keylen, "safexcel-sm3", + SM3_DIGEST_SIZE); +} + +static int safexcel_hmac_sm3_init(struct ahash_request *areq) +{ + struct safexcel_ahash_ctx *ctx = crypto_ahash_ctx(crypto_ahash_reqtfm(areq)); + struct safexcel_ahash_req *req = ahash_request_ctx(areq); + + memset(req, 0, sizeof(*req)); + + /* Start from ipad precompute */ + memcpy(req->state, ctx->ipad, SM3_DIGEST_SIZE); + /* Already processed the key^ipad part now! */ + req->len = SM3_BLOCK_SIZE; + req->processed = SM3_BLOCK_SIZE; + + ctx->alg = CONTEXT_CONTROL_CRYPTO_ALG_SM3; + req->digest = CONTEXT_CONTROL_DIGEST_PRECOMPUTED; + req->state_sz = SM3_DIGEST_SIZE; + req->block_sz = SM3_BLOCK_SIZE; + req->hmac = true; + + return 0; +} + +static int safexcel_hmac_sm3_digest(struct ahash_request *areq) +{ + int ret = safexcel_hmac_sm3_init(areq); + + if (ret) + return ret; + + return safexcel_ahash_finup(areq); +} + +struct safexcel_alg_template safexcel_alg_hmac_sm3 = { + .type = SAFEXCEL_ALG_TYPE_AHASH, + .algo_mask = SAFEXCEL_ALG_SM3, + .alg.ahash = { + .init = safexcel_hmac_sm3_init, + .update = safexcel_ahash_update, + .final = safexcel_ahash_final, + .finup = safexcel_ahash_finup, + .digest = safexcel_hmac_sm3_digest, + .setkey = safexcel_hmac_sm3_setkey, + .export = safexcel_ahash_export, + .import = safexcel_ahash_import, + .halg = { + .digestsize = SM3_DIGEST_SIZE, + .statesize = sizeof(struct safexcel_ahash_export_state), + .base = { + .cra_name = "hmac(sm3)", + .cra_driver_name = "safexcel-hmac-sm3", + .cra_priority = SAFEXCEL_CRA_PRIORITY, + .cra_flags = CRYPTO_ALG_ASYNC | + CRYPTO_ALG_KERN_DRIVER_ONLY, + .cra_blocksize = SM3_BLOCK_SIZE, + .cra_ctxsize = sizeof(struct safexcel_ahash_ctx), + .cra_init = safexcel_ahash_cra_init, + .cra_exit = safexcel_ahash_cra_exit, + .cra_module = THIS_MODULE, + }, + }, + }, +}; From patchwork Fri Sep 13 15:20:38 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pascal van Leeuwen X-Patchwork-Id: 11144999 X-Patchwork-Delegate: herbert@gondor.apana.org.au Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 1BC6814E5 for ; Fri, 13 Sep 2019 16:23:37 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id EF8052089F for ; Fri, 13 Sep 2019 16:23:36 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="RWYf1Z/x" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2388668AbfIMQXg (ORCPT ); Fri, 13 Sep 2019 12:23:36 -0400 Received: from mail-ed1-f67.google.com ([209.85.208.67]:38294 "EHLO mail-ed1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2388633AbfIMQXg (ORCPT ); Fri, 13 Sep 2019 12:23:36 -0400 Received: by mail-ed1-f67.google.com with SMTP id a23so25337927edv.5 for ; Fri, 13 Sep 2019 09:23:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=HqSAXCVPq+eCBwvTC7ec+BX66pvW28OzMSbp24OEq78=; b=RWYf1Z/x1Nyr0QujRsNR3AJ3F/bXPJGJ7L5PFZdVUVmghhKhOm9Tah5IURX69Y9YJT gk9QRo4u4FK9ZbmnsUbAr4Erah67xmdEyl3jCFkR9ai/++nAqEP8TUW9bwcCBoU4skSV 4S1t3u3Yec5pEAGAahrlLbZEd8PDceWeif0DnF0aJD1Nb0swYRM40OoFTbx7hrwZhXn1 xzn1eAVyXlQ7i1NWQ4ShWc0xhjT08DVTw26N8C3InJYx1YBABVvsGE7VjqXFX75pyWE4 u0qi/0sNYlIFHrxCTiy/73gzTOyjDLQG9ijYpiJknExDvKkMaeDwNaREIShBq8n05+7d Yrsg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=HqSAXCVPq+eCBwvTC7ec+BX66pvW28OzMSbp24OEq78=; b=SG/pYr2ZOEQxnekymmsvVJOjLfRut0pYZ14YQL5/ptxeAjb4n3ipg+qNAN93MtmbeO 4TBtHQJbPbj0uXKXixqqJiXbyfW0HU/bZrCffKnpXAsQrahF8id8S+qqIcGz2IqfUhzw H2S6ZyzW79dyXL0dFmwj80Bf6Y7XWhX+nfIGKVmvT7XF9Etp2f7OlzfZatWZOBaDRCzq C/pK4a7AkpL1xxZKuDEKv8il8grBBnTbkPQ2IksxZqSQnYkrPr9wJUJ3lTaUmS+li9ci GcpcDZ7aUXdgFOwe03B0tym9udvXWohiR+b94rwDCwXvzrdcSTTv6KLpQcGTw0pfFpx3 nI3g== X-Gm-Message-State: APjAAAWi76yhqBSMidTz+bpLR7O4ngsusqLLOFaAuqVcMiHfCDyppmyO K55ZwnlAm/cgUkSfqODCTEoV46zK X-Google-Smtp-Source: APXvYqw8nM9V8ZXhsqu4ZFI9FgSOgY9jfN9kcaH8R45jgfhKRxKKk1NRsjuAuW8SrlVUofs3Cnsnlw== X-Received: by 2002:a05:6402:3ca:: with SMTP id t10mr49047287edw.271.1568391814540; Fri, 13 Sep 2019 09:23:34 -0700 (PDT) Received: from localhost.localdomain.com ([188.204.2.113]) by smtp.gmail.com with ESMTPSA id r18sm5497669edl.6.2019.09.13.09.23.33 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 13 Sep 2019 09:23:33 -0700 (PDT) From: Pascal van Leeuwen X-Google-Original-From: Pascal van Leeuwen To: linux-crypto@vger.kernel.org Cc: antoine.tenart@bootlin.com, herbert@gondor.apana.org.au, davem@davemloft.net, Pascal van Leeuwen Subject: [PATCHv3 3/3] crypto: testmgr - Added testvectors for the hmac(sm3) ahash Date: Fri, 13 Sep 2019 17:20:38 +0200 Message-Id: <1568388038-1268-4-git-send-email-pvanleeuwen@verimatrix.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1568388038-1268-1-git-send-email-pvanleeuwen@verimatrix.com> References: <1568388038-1268-1-git-send-email-pvanleeuwen@verimatrix.com> Sender: linux-crypto-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-crypto@vger.kernel.org Added testvectors for the hmac(sm3) ahash authentication algorithm changes since v1 & v2: -nothing Signed-off-by: Pascal van Leeuwen --- crypto/testmgr.c | 6 ++++++ crypto/testmgr.h | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 62 insertions(+) diff --git a/crypto/testmgr.c b/crypto/testmgr.c index 001e62f..3604c9d 100644 --- a/crypto/testmgr.c +++ b/crypto/testmgr.c @@ -4921,6 +4921,12 @@ static int alg_test_null(const struct alg_test_desc *desc, .hash = __VECS(hmac_sha512_tv_template) } }, { + .alg = "hmac(sm3)", + .test = alg_test_hash, + .suite = { + .hash = __VECS(hmac_sm3_tv_template) + } + }, { .alg = "hmac(streebog256)", .test = alg_test_hash, .suite = { diff --git a/crypto/testmgr.h b/crypto/testmgr.h index 25572c3..1f56293 100644 --- a/crypto/testmgr.h +++ b/crypto/testmgr.h @@ -2935,6 +2935,62 @@ struct len_range_sel { } }; +/* Example vectors below taken from + * GM/T 0042-2015 Appendix D.3 + */ +static const struct hash_testvec hmac_sm3_tv_template[] = { + { + .key = "\x01\x02\x03\x04\x05\x06\x07\x08" + "\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10" + "\x11\x12\x13\x14\x15\x16\x17\x18" + "\x19\x1a\x1b\x1c\x1d\x1e\x1f\x20", + .ksize = 32, + .plaintext = "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq" + "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq", + .psize = 112, + .digest = "\xca\x05\xe1\x44\xed\x05\xd1\x85" + "\x78\x40\xd1\xf3\x18\xa4\xa8\x66" + "\x9e\x55\x9f\xc8\x39\x1f\x41\x44" + "\x85\xbf\xdf\x7b\xb4\x08\x96\x3a", + }, { + .key = "\x01\x02\x03\x04\x05\x06\x07\x08" + "\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10" + "\x11\x12\x13\x14\x15\x16\x17\x18" + "\x19\x1a\x1b\x1c\x1d\x1e\x1f\x20" + "\x21\x22\x23\x24\x25", + .ksize = 37, + .plaintext = "\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd" + "\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd" + "\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd" + "\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd", + .psize = 50, + .digest = "\x22\x0b\xf5\x79\xde\xd5\x55\x39" + "\x3f\x01\x59\xf6\x6c\x99\x87\x78" + "\x22\xa3\xec\xf6\x10\xd1\x55\x21" + "\x54\xb4\x1d\x44\xb9\x4d\xb3\xae", + }, { + .key = "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b" + "\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b\x0b" + "\x0b\x0b\x0b\x0b\x0b\x0b", + .ksize = 32, + .plaintext = "Hi There", + .psize = 8, + .digest = "\xc0\xba\x18\xc6\x8b\x90\xc8\x8b" + "\xc0\x7d\xe7\x94\xbf\xc7\xd2\xc8" + "\xd1\x9e\xc3\x1e\xd8\x77\x3b\xc2" + "\xb3\x90\xc9\x60\x4e\x0b\xe1\x1e", + }, { + .key = "Jefe", + .ksize = 4, + .plaintext = "what do ya want for nothing?", + .psize = 28, + .digest = "\x2e\x87\xf1\xd1\x68\x62\xe6\xd9" + "\x64\xb5\x0a\x52\x00\xbf\x2b\x10" + "\xb7\x64\xfa\xa9\x68\x0a\x29\x6a" + "\x24\x05\xf2\x4b\xec\x39\xf8\x82", + }, +}; + /* * SHA1 test vectors from from FIPS PUB 180-1 * Long vector from CAVS 5.0