From patchwork Wed Apr 25 12:20:45 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ard Biesheuvel X-Patchwork-Id: 134265 Delivered-To: patch@linaro.org Received: by 10.46.151.6 with SMTP id r6csp791096lji; Wed, 25 Apr 2018 05:21:05 -0700 (PDT) X-Google-Smtp-Source: AB8JxZo+Z8wnjOTUcCGK4umg8w+rkesLDZAjuyQbJNp+oEleOJPNJK+uG/5yCLaMtUoedI1Zdak3 X-Received: by 2002:a17:902:bc49:: with SMTP id t9-v6mr2249896plz.109.1524658865134; Wed, 25 Apr 2018 05:21:05 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1524658865; cv=none; d=google.com; s=arc-20160816; b=nG76r6cLmldpuF66K3uF2HLeauAjLH6FK2a5hzSVtlnjH14j8EWom/0JcJh3oodWiq rfA1ShBiPCklexsPfyTjoskgje61j426jwXUjxeaZdC4GxG833nYvv72CXsfOIrldPKG oCWE6GXeT2GWNoa0XH/XAaM0jh2/ZsC42D0tFJMqn4kApsXoBDwauVcHzHNSQaq793HG qQO8/PmA1XRWqnTe97iqwoWKtBs45Q8FI1Ubs6tGg75wZ/vif9svZo1BWUNfBDBgS1Yc GlqyY7nL15VVXgWTJntkthb/d0gy2dNvab2pW/yZNWPNGEOYnYmbFH7O563XBmf2QOys RTZw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature:arc-authentication-results; bh=Xc7NY9Uc9eo541OfTsGH6pWtJ9Yq4jeY7rNGh8wSzzA=; b=U+GUjceeQV8h6Z8LagC/DazqNL18eyJDqO0JbSral9aO5d98nag3Kgxqk8UrKxtRJR cyTJiQ7jnzTeqjGH1c3gHjVk5SPacuroSF96qPdGazT66QujX2evGwo2UN41VkbrbRPE AfxyBd/QJMjNw9orUr7CWrRJmvDtGOt245/NebBtVPhVdnvhk8Eonku7VnqWeJLskcjv 1uSh2MOYsjr13KWZll2CX4m/nkUcnP3B65TPiPWaYWqW3xvfaw6L9hwN4DzXH4rAo3jc zZ1Q3Xdw7cURHWvV34A4NP19+lCwA+z2FT0MW4HuZgQZtDt0MVbtmkvua6MKCQBAB8s7 SNzw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=aaC64Nj9; 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 g15si13254377pgf.541.2018.04.25.05.21.04; Wed, 25 Apr 2018 05:21:05 -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=aaC64Nj9; 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 S1752700AbeDYMVD (ORCPT + 1 other); Wed, 25 Apr 2018 08:21:03 -0400 Received: from mail-wm0-f65.google.com ([74.125.82.65]:52703 "EHLO mail-wm0-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753098AbeDYMU7 (ORCPT ); Wed, 25 Apr 2018 08:20:59 -0400 Received: by mail-wm0-f65.google.com with SMTP id w195so6812508wmw.2 for ; Wed, 25 Apr 2018 05:20:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=Xc7NY9Uc9eo541OfTsGH6pWtJ9Yq4jeY7rNGh8wSzzA=; b=aaC64Nj9NXKRvH/L2xwr4B0g9jI9jMt03y9XuwXm5UmBdAhKMFZjapALC012PUq5vt nCXW4qnsXcEFLAOX4ELuuwhRA2KK8IjO1CG3z1qC20QZm1+cXOhwKPh+P8/ANMYqOCfY GqamPhtFFS0Fn7yybGZSLLvZ9O5Zm2UbE+2Hk= 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=Xc7NY9Uc9eo541OfTsGH6pWtJ9Yq4jeY7rNGh8wSzzA=; b=nCG2lcjjzSXJ29URA0qCehGN8L4PNAKY8SU/W8u8KD3J601xDDHRZgsAXdlmucNsof dKLN+RPe2xeTa5HAYJeY0YO+fSq/J5qhBPRq5Q4SCsUEoZRBbzsXSlCaQc8PyuBiUO17 RS2hrbBmKxqP5kjngsFR3II8GlFa6XKcAcgqEjMUsqmvjbxYO7dzKopXORrDm8Vdwh3W i/ItghvD+ziRQLTzKq4inDIX2fMFmBTb6loFX8rkr9W8jQpCSCLld7Tt46Atx3yO0m7Z ylpYZokQjHMSCiuOMNjhvLcoahBiKqUsIxieL0KZHkyxXd3CkKxYCDrVPWt0aADLX+yZ AWVw== X-Gm-Message-State: ALQs6tDEaVkN6UnckSiWQ/AN2P/mUMcMkpqgcf97H1iONS2E3DvaBBAi /Zz2awBAIcnso9CMWBSwaf/KIJMyWpQ= X-Received: by 10.28.141.138 with SMTP id p132mr1517021wmd.49.1524658858064; Wed, 25 Apr 2018 05:20:58 -0700 (PDT) Received: from localhost.localdomain ([2a01:e35:3995:5470:200:1aff:fe1b:b328]) by smtp.gmail.com with ESMTPSA id s14sm13073572wmb.5.2018.04.25.05.20.56 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 25 Apr 2018 05:20:57 -0700 (PDT) From: Ard Biesheuvel To: linux-crypto@vger.kernel.org Cc: linux-arm-kernel@lists.infradead.org, herbert@gondor.apana.org.au, gilad@benyossef.com, Ard Biesheuvel Subject: [PATCH 1/2] crypto: sm4 - export encrypt/decrypt routines to other drivers Date: Wed, 25 Apr 2018 14:20:45 +0200 Message-Id: <20180425122046.12695-2-ard.biesheuvel@linaro.org> X-Mailer: git-send-email 2.17.0 In-Reply-To: <20180425122046.12695-1-ard.biesheuvel@linaro.org> References: <20180425122046.12695-1-ard.biesheuvel@linaro.org> Sender: linux-crypto-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-crypto@vger.kernel.org In preparation of adding support for the SIMD based arm64 implementation of arm64, which requires a fallback to non-SIMD code when invoked in certain contexts, expose the generic SM4 encrypt and decrypt routines to other drivers. Signed-off-by: Ard Biesheuvel --- crypto/sm4_generic.c | 10 ++++++---- include/crypto/sm4.h | 3 +++ 2 files changed, 9 insertions(+), 4 deletions(-) -- 2.17.0 Acked-by: Gilad Ben-Yossef diff --git a/crypto/sm4_generic.c b/crypto/sm4_generic.c index f537a2766c55..c18eebfd5edd 100644 --- a/crypto/sm4_generic.c +++ b/crypto/sm4_generic.c @@ -190,21 +190,23 @@ static void sm4_do_crypt(const u32 *rk, u32 *out, const u32 *in) /* encrypt a block of text */ -static void sm4_encrypt(struct crypto_tfm *tfm, u8 *out, const u8 *in) +void crypto_sm4_encrypt(struct crypto_tfm *tfm, u8 *out, const u8 *in) { const struct crypto_sm4_ctx *ctx = crypto_tfm_ctx(tfm); sm4_do_crypt(ctx->rkey_enc, (u32 *)out, (u32 *)in); } +EXPORT_SYMBOL_GPL(crypto_sm4_encrypt); /* decrypt a block of text */ -static void sm4_decrypt(struct crypto_tfm *tfm, u8 *out, const u8 *in) +void crypto_sm4_decrypt(struct crypto_tfm *tfm, u8 *out, const u8 *in) { const struct crypto_sm4_ctx *ctx = crypto_tfm_ctx(tfm); sm4_do_crypt(ctx->rkey_dec, (u32 *)out, (u32 *)in); } +EXPORT_SYMBOL_GPL(crypto_sm4_decrypt); static struct crypto_alg sm4_alg = { .cra_name = "sm4", @@ -219,8 +221,8 @@ static struct crypto_alg sm4_alg = { .cia_min_keysize = SM4_KEY_SIZE, .cia_max_keysize = SM4_KEY_SIZE, .cia_setkey = crypto_sm4_set_key, - .cia_encrypt = sm4_encrypt, - .cia_decrypt = sm4_decrypt + .cia_encrypt = crypto_sm4_encrypt, + .cia_decrypt = crypto_sm4_decrypt } } }; diff --git a/include/crypto/sm4.h b/include/crypto/sm4.h index b64e64d20b28..7afd730d16ff 100644 --- a/include/crypto/sm4.h +++ b/include/crypto/sm4.h @@ -25,4 +25,7 @@ int crypto_sm4_set_key(struct crypto_tfm *tfm, const u8 *in_key, int crypto_sm4_expand_key(struct crypto_sm4_ctx *ctx, const u8 *in_key, unsigned int key_len); +void crypto_sm4_encrypt(struct crypto_tfm *tfm, u8 *out, const u8 *in); +void crypto_sm4_decrypt(struct crypto_tfm *tfm, u8 *out, const u8 *in); + #endif