From: Jay Wang <wanjay@amazon.com>
To: Herbert Xu <herbert@gondor.apana.org.au>,
"David S . Miller" <davem@davemloft.net>,
<linux-crypto@vger.kernel.org>
Cc: Jay Wang <jay.wang.upstream@gmail.com>,
Vegard Nossum <vegard.nossum@oracle.com>,
Nicolai Stange <nstange@suse.de>,
Ilia Okomin <ilya.okomin@oracle.com>,
Catalin Marinas <catalin.marinas@arm.com>,
"Will Deacon" <will@kernel.org>,
Thomas Gleixner <tglx@kernel.org>, Ingo Molnar <mingo@redhat.com>,
Borislav Petkov <bp@alien8.de>,
Luis Chamberlain <mcgrof@kernel.org>,
Petr Pavlu <petr.pavlu@suse.com>,
Nathan Chancellor <nathan@kernel.org>,
Nicolas Schier <nsc@kernel.org>,
<linux-arm-kernel@lists.infradead.org>, <x86@kernel.org>,
<linux-kbuild@vger.kernel.org>, <linux-modules@vger.kernel.org>
Subject: [PATCH 04/12] arm64: crypto: convert exported crypto symbol into pluggable interface for CONFIG_CRYPTO_SM4_ARM64_CE_BLK crypto
Date: Thu, 12 Feb 2026 03:21:04 +0000 [thread overview]
Message-ID: <20260212032117.9166-5-wanjay@amazon.com> (raw)
In-Reply-To: <20260212032117.9166-1-wanjay@amazon.com>
Apply Crypto API wrappers to the exported crypto symbol in
CONFIG_CRYPTO_SM4_ARM64_CE_BLK-related crypto to convert them into pluggable
interface.
Signed-off-by: Jay Wang <wanjay@amazon.com>
---
arch/arm64/crypto/Makefile | 2 +-
arch/arm64/crypto/fips140/fips140-api.c | 12 ++++++++++++
arch/arm64/crypto/sm4-ce-glue.c | 4 ++--
arch/arm64/crypto/sm4-ce.h | 16 +++++++++++-----
4 files changed, 26 insertions(+), 8 deletions(-)
diff --git a/arch/arm64/crypto/Makefile b/arch/arm64/crypto/Makefile
index a4fe2bf71c6b..59e94f714ef9 100644
--- a/arch/arm64/crypto/Makefile
+++ b/arch/arm64/crypto/Makefile
@@ -14,7 +14,7 @@ sm3-ce-y := sm3-ce-glue.o sm3-ce-core.o
crypto-objs-$(CONFIG_CRYPTO_SM4_ARM64_CE) += sm4-ce-cipher.o
sm4-ce-cipher-y := sm4-ce-cipher-glue.o sm4-ce-cipher-core.o
-obj-$(CONFIG_CRYPTO_SM4_ARM64_CE_BLK) += sm4-ce.o
+crypto-objs-$(CONFIG_CRYPTO_SM4_ARM64_CE_BLK) += sm4-ce.o
sm4-ce-y := sm4-ce-glue.o sm4-ce-core.o
obj-$(CONFIG_CRYPTO_SM4_ARM64_CE_CCM) += sm4-ce-ccm.o
diff --git a/arch/arm64/crypto/fips140/fips140-api.c b/arch/arm64/crypto/fips140/fips140-api.c
index e69de29bb2d1..a36c8f3b0741 100644
--- a/arch/arm64/crypto/fips140/fips140-api.c
+++ b/arch/arm64/crypto/fips140/fips140-api.c
@@ -0,0 +1,12 @@
+/*
+ * arch/arm64/crypto/sm4-ce-glue.c
+ */
+#if IS_BUILTIN(CONFIG_CRYPTO_SM4_ARM64_CE_BLK)
+
+#include <arch/arm64/crypto/sm4-ce.h>
+
+DEFINE_CRYPTO_API_STUB(sm4_ce_expand_key);
+DEFINE_CRYPTO_API_STUB(sm4_ce_crypt_block);
+DEFINE_CRYPTO_API_STUB(sm4_ce_cbc_enc);
+
+#endif
diff --git a/arch/arm64/crypto/sm4-ce-glue.c b/arch/arm64/crypto/sm4-ce-glue.c
index 0eeabfa9ef25..cf90b53ef46a 100644
--- a/arch/arm64/crypto/sm4-ce-glue.c
+++ b/arch/arm64/crypto/sm4-ce-glue.c
@@ -701,8 +701,8 @@ static void __exit sm4_exit(void)
crypto_unregister_skciphers(sm4_algs, ARRAY_SIZE(sm4_algs));
}
-module_cpu_feature_match(SM4, sm4_init);
-module_exit(sm4_exit);
+crypto_module_cpu_feature_match(SM4, sm4_init);
+crypto_module_exit(sm4_exit);
MODULE_DESCRIPTION("SM4 ECB/CBC/CTR/XTS using ARMv8 Crypto Extensions");
MODULE_ALIAS_CRYPTO("sm4-ce");
diff --git a/arch/arm64/crypto/sm4-ce.h b/arch/arm64/crypto/sm4-ce.h
index 1e235c4371eb..189f69762248 100644
--- a/arch/arm64/crypto/sm4-ce.h
+++ b/arch/arm64/crypto/sm4-ce.h
@@ -4,10 +4,16 @@
* Copyright (C) 2022 Tianjia Zhang <tianjia.zhang@linux.alibaba.com>
*/
-void sm4_ce_expand_key(const u8 *key, u32 *rkey_enc, u32 *rkey_dec,
- const u32 *fk, const u32 *ck);
+#include <crypto/api.h>
-void sm4_ce_crypt_block(const u32 *rkey, u8 *dst, const u8 *src);
+DECLARE_CRYPTO_API(CONFIG_CRYPTO_SM4_ARM64_CE_BLK, sm4_ce_expand_key, void,
+ (const u8 *key, u32 *rkey_enc, u32 *rkey_dec, const u32 *fk, const u32 *ck),
+ (key, rkey_enc, rkey_dec, fk, ck));
-void sm4_ce_cbc_enc(const u32 *rkey_enc, u8 *dst, const u8 *src,
- u8 *iv, unsigned int nblocks);
+DECLARE_CRYPTO_API(CONFIG_CRYPTO_SM4_ARM64_CE_BLK, sm4_ce_crypt_block, void,
+ (const u32 *rkey, u8 *dst, const u8 *src),
+ (rkey, dst, src));
+
+DECLARE_CRYPTO_API(CONFIG_CRYPTO_SM4_ARM64_CE_BLK, sm4_ce_cbc_enc, void,
+ (const u32 *rkey_enc, u8 *dst, const u8 *src, u8 *iv, unsigned int nblocks),
+ (rkey_enc, dst, src, iv, nblocks));
--
2.47.3
next prev parent reply other threads:[~2026-02-12 3:22 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-02-12 3:21 [PATCH v1 00/12] crypto: Standalone crypto module (Series 4/4): arm64 crypto Jay Wang
2026-02-12 3:21 ` [PATCH 01/12] arm64: crypto: convert exported crypto symbol into pluggable interface for CONFIG_CRYPTO_SM3_NEON crypto Jay Wang
2026-02-12 3:21 ` [PATCH 02/12] arm64: crypto: convert exported crypto symbol into pluggable interface for CONFIG_CRYPTO_SM3_ARM64_CE crypto Jay Wang
2026-02-12 3:21 ` [PATCH 03/12] arm64: crypto: convert exported crypto symbol into pluggable interface for CONFIG_CRYPTO_SM4_ARM64_CE crypto Jay Wang
2026-02-12 3:21 ` Jay Wang [this message]
2026-02-12 3:21 ` [PATCH 05/12] arm64: crypto: convert exported crypto symbol into pluggable interface for CONFIG_CRYPTO_SM4_ARM64_CE_CCM crypto Jay Wang
2026-02-12 3:21 ` [PATCH 06/12] arm64: crypto: convert exported crypto symbol into pluggable interface for CONFIG_CRYPTO_SM4_ARM64_CE_GCM crypto Jay Wang
2026-02-12 3:21 ` [PATCH 07/12] arm64: crypto: convert exported crypto symbol into pluggable interface for CONFIG_CRYPTO_SM4_ARM64_NEON_BLK crypto Jay Wang
2026-02-12 3:21 ` [PATCH 08/12] arm64: crypto: convert exported crypto symbol into pluggable interface for CONFIG_CRYPTO_GHASH_ARM64_CE crypto Jay Wang
2026-02-12 3:21 ` [PATCH 09/12] arm64: crypto: convert exported crypto symbol into pluggable interface for CONFIG_CRYPTO_AES_ARM64_CE_CCM crypto Jay Wang
2026-02-12 3:21 ` [PATCH 10/12] arm64: crypto: convert exported crypto symbol into pluggable interface for CONFIG_CRYPTO_AES_ARM64_CE_BLK crypto Jay Wang
2026-02-12 3:21 ` [PATCH 11/12] arm64: crypto: convert exported crypto symbol into pluggable interface for CONFIG_CRYPTO_AES_ARM64_NEON_BLK crypto Jay Wang
2026-02-12 3:21 ` [PATCH 12/12] arm64: crypto: convert exported crypto symbol into pluggable interface for CONFIG_CRYPTO_AES_ARM64_BS crypto Jay Wang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260212032117.9166-5-wanjay@amazon.com \
--to=wanjay@amazon.com \
--cc=bp@alien8.de \
--cc=catalin.marinas@arm.com \
--cc=davem@davemloft.net \
--cc=herbert@gondor.apana.org.au \
--cc=ilya.okomin@oracle.com \
--cc=jay.wang.upstream@gmail.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-crypto@vger.kernel.org \
--cc=linux-kbuild@vger.kernel.org \
--cc=linux-modules@vger.kernel.org \
--cc=mcgrof@kernel.org \
--cc=mingo@redhat.com \
--cc=nathan@kernel.org \
--cc=nsc@kernel.org \
--cc=nstange@suse.de \
--cc=petr.pavlu@suse.com \
--cc=tglx@kernel.org \
--cc=vegard.nossum@oracle.com \
--cc=will@kernel.org \
--cc=x86@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.