[PATCH] ksmbd: select CRYPTO_AES

From: Michail Andreas Michalopoulos

Date: Thu Oct 22 2026 - 20:40:57 EST


ksmbd allocates "gcm(aes)" and "ccm(aes)" AEAD transforms for SMB3
encryption, but SMB_SERVER only selects CRYPTO_GCM and CRYPTO_CCM, not
an AES cipher. With a configuration in which nothing else enables
CRYPTO_AES, ksmbd builds but cannot allocate the transforms, and every
session that uses encryption fails:

ksmbd: Failed to alloc encrypt aead : -2
ksmbd: crypto alloc failed

Select CRYPTO_AES, as the SMB client already does.

Fixes: a848c4f15ab6 ("cifsd: add Kconfig and Makefile")
Assisted-by: LLM
Signed-off-by: Michail Andreas Michalopoulos <mike.michalo@xxxxxxxxx>
---
On x86_64, defconfig plus SMB_SERVER=y ends up with CRYPTO_AES unset
once MAC80211, XFRM_ESP and CRYPTO_KRB5 are disabled; with this patch
olddefconfig enables it. Without CRYPTO_AES, ksmbd logs the messages
above when a client negotiates encryption (seen under UML on
ksmbd-for-next f75c93278608), and with CRYPTO_AES the same client
connects. Distribution configs already enable CRYPTO_AES, so this only
affects custom configs.

The smbtorture smb2 tests run here (dir, create, getinfo, setinfo,
rename, compound, streams, dosmode, read, lock) passed on the kernel
without CRYPTO_AES, as they do not negotiate encryption by default.

fs/smb/server/Kconfig | 1 +
1 file changed, 1 insertion(+)

diff --git a/fs/smb/server/Kconfig b/fs/smb/server/Kconfig
index b7665e0e494..f8b03605db5 100644
--- a/fs/smb/server/Kconfig
+++ b/fs/smb/server/Kconfig
@@ -16,6 +16,7 @@ config SMB_SERVER
select CRYPTO_AEAD2
select CRYPTO_CCM
select CRYPTO_GCM
+ select CRYPTO_AES
select ASN1
select OID_REGISTRY
select CRC32
--
2.43.0