]> www.infradead.org Git - users/hch/misc.git/commitdiff
smb: client: Remove obsolete crypto_shash allocations
authorEric Biggers <ebiggers@kernel.org>
Sun, 12 Oct 2025 01:57:37 +0000 (18:57 -0700)
committerSteve French <stfrench@microsoft.com>
Thu, 16 Oct 2025 03:10:28 +0000 (22:10 -0500)
Now that the SMB client accesses MD5, HMAC-MD5, HMAC-SHA256, and SHA-512
only via the library API and not via crypto_shash, allocating
crypto_shash objects for these algorithms is no longer necessary.
Remove all these allocations, their corresponding kconfig selections,
and their corresponding module soft dependencies.

Reviewed-by: Stefan Metzmacher <metze@samba.org>
Acked-by: Ard Biesheuvel <ardb@kernel.org>
Signed-off-by: Eric Biggers <ebiggers@kernel.org>
Signed-off-by: Steve French <stfrench@microsoft.com>
fs/smb/client/Kconfig
fs/smb/client/cifsencrypt.c
fs/smb/client/cifsfs.c
fs/smb/client/cifsglob.h
fs/smb/client/smb2transport.c

index f5a980bdfc93969456fe9c66dbc51b21a4a46330..17bd368574e942e80b8519b0df3ed29ca376c504 100644 (file)
@@ -5,11 +5,7 @@ config CIFS
        select NLS
        select NLS_UCS2_UTILS
        select CRYPTO
-       select CRYPTO_MD5
-       select CRYPTO_SHA256
-       select CRYPTO_SHA512
        select CRYPTO_CMAC
-       select CRYPTO_HMAC
        select CRYPTO_AEAD2
        select CRYPTO_CCM
        select CRYPTO_GCM
index bbcf3b05c19ab4b0f3ebb0ea415f2160523e1a7a..801824825ecf2cff163bae8a643e9e5683a025dc 100644 (file)
@@ -693,9 +693,6 @@ void
 cifs_crypto_secmech_release(struct TCP_Server_Info *server)
 {
        cifs_free_hash(&server->secmech.aes_cmac);
-       cifs_free_hash(&server->secmech.hmacsha256);
-       cifs_free_hash(&server->secmech.md5);
-       cifs_free_hash(&server->secmech.sha512);
 
        if (server->secmech.enc) {
                crypto_free_aead(server->secmech.enc);
index 05b1fa76e8ccf1e86f0c174593cd6e1acb84608d..4f959f1e08d235071a151c1438c753fcd05099e5 100644 (file)
@@ -2139,13 +2139,9 @@ MODULE_DESCRIPTION
        "also older servers complying with the SNIA CIFS Specification)");
 MODULE_VERSION(CIFS_VERSION);
 MODULE_SOFTDEP("ecb");
-MODULE_SOFTDEP("hmac");
-MODULE_SOFTDEP("md5");
 MODULE_SOFTDEP("nls");
 MODULE_SOFTDEP("aes");
 MODULE_SOFTDEP("cmac");
-MODULE_SOFTDEP("sha256");
-MODULE_SOFTDEP("sha512");
 MODULE_SOFTDEP("aead2");
 MODULE_SOFTDEP("ccm");
 MODULE_SOFTDEP("gcm");
index c5034cf9ac9eb7be8ceb9123bbfa5464c3b9cccd..16a00a61fd2ce03b564bc5164df9988220c06410 100644 (file)
@@ -222,9 +222,6 @@ struct session_key {
 
 /* crypto hashing related structure/fields, not specific to a sec mech */
 struct cifs_secmech {
-       struct shash_desc *md5; /* md5 hash function, for CIFS/SMB1 signatures */
-       struct shash_desc *hmacsha256; /* hmac-sha256 hash function, for SMB2 signatures */
-       struct shash_desc *sha512; /* sha512 hash function, for SMB3.1.1 preauth hash */
        struct shash_desc *aes_cmac; /* block-cipher based MAC function, for SMB3 signatures */
 
        struct crypto_aead *enc; /* smb3 encryption AEAD TFM (AES-CCM and AES-GCM) */
index 89258accc220341e1359ed3e6239f1b085a35f70..cd689bc27bfdcb1e67d3114dbbb823274c40fe8e 100644 (file)
@@ -31,49 +31,18 @@ static int
 smb3_crypto_shash_allocate(struct TCP_Server_Info *server)
 {
        struct cifs_secmech *p = &server->secmech;
-       int rc;
-
-       rc = cifs_alloc_hash("hmac(sha256)", &p->hmacsha256);
-       if (rc)
-               goto err;
-
-       rc = cifs_alloc_hash("cmac(aes)", &p->aes_cmac);
-       if (rc)
-               goto err;
 
-       return 0;
-err:
-       cifs_free_hash(&p->hmacsha256);
-       return rc;
+       return cifs_alloc_hash("cmac(aes)", &p->aes_cmac);
 }
 
 int
 smb311_crypto_shash_allocate(struct TCP_Server_Info *server)
 {
        struct cifs_secmech *p = &server->secmech;
-       int rc = 0;
 
-       rc = cifs_alloc_hash("hmac(sha256)", &p->hmacsha256);
-       if (rc)
-               return rc;
-
-       rc = cifs_alloc_hash("cmac(aes)", &p->aes_cmac);
-       if (rc)
-               goto err;
-
-       rc = cifs_alloc_hash("sha512", &p->sha512);
-       if (rc)
-               goto err;
-
-       return 0;
-
-err:
-       cifs_free_hash(&p->aes_cmac);
-       cifs_free_hash(&p->hmacsha256);
-       return rc;
+       return cifs_alloc_hash("cmac(aes)", &p->aes_cmac);
 }
 
-
 static
 int smb3_get_sign_key(__u64 ses_id, struct TCP_Server_Info *server, u8 *key)
 {