]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
bcachefs: use sha256() instead of crypto_shash API
authorEric Biggers <ebiggers@google.com>
Sun, 16 Mar 2025 03:47:17 +0000 (20:47 -0700)
committerKent Overstreet <kent.overstreet@linux.dev>
Mon, 24 Mar 2025 13:50:34 +0000 (09:50 -0400)
Just use sha256() instead of the clunky crypto API.  This is much
simpler.

Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/Kconfig
fs/bcachefs/bcachefs.h
fs/bcachefs/checksum.c
fs/bcachefs/str_hash.h
fs/bcachefs/super.c

index fc7efd0a7525e0d44779b4947a8ea251f225995d..c9798750202d388b86798425d675d4ac5aa5db79 100644 (file)
@@ -16,7 +16,7 @@ config BCACHEFS_FS
        select ZSTD_COMPRESS
        select ZSTD_DECOMPRESS
        select CRYPTO
-       select CRYPTO_SHA256
+       select CRYPTO_LIB_SHA256
        select CRYPTO_CHACHA20
        select CRYPTO_POLY1305
        select KEYS
index b432bb6e6f6e0fcfd4f7cb9c429a47ca634ec01d..0ea593e813f43d46398e35c97bf51eef5d77645d 100644 (file)
@@ -979,7 +979,6 @@ struct bch_fs {
        mempool_t               compress_workspace[BCH_COMPRESSION_OPT_NR];
        size_t                  zstd_workspace_size;
 
-       struct crypto_shash     *sha256;
        struct crypto_sync_skcipher *chacha20;
        struct crypto_shash     *poly1305;
 
index 15de9d794337dea3c555ff943a07353fb7875e35..7f9e4c59950c365a811e5fabe16b4cf495d5d37f 100644 (file)
@@ -801,8 +801,6 @@ void bch2_fs_encryption_exit(struct bch_fs *c)
                crypto_free_shash(c->poly1305);
        if (c->chacha20)
                crypto_free_sync_skcipher(c->chacha20);
-       if (c->sha256)
-               crypto_free_shash(c->sha256);
 }
 
 int bch2_fs_encryption_init(struct bch_fs *c)
@@ -811,14 +809,6 @@ int bch2_fs_encryption_init(struct bch_fs *c)
        struct bch_key key;
        int ret = 0;
 
-       c->sha256 = crypto_alloc_shash("sha256", 0, 0);
-       ret = PTR_ERR_OR_ZERO(c->sha256);
-       if (ret) {
-               c->sha256 = NULL;
-               bch_err(c, "error requesting sha256 module: %s", bch2_err_str(ret));
-               goto out;
-       }
-
        crypt = bch2_sb_field_get(c->disk_sb.sb, crypt);
        if (!crypt)
                goto out;
index f645a4547b04994445052b411377db1e50bee73a..575ad1e039040de640732fec866146ab1e058e2e 100644 (file)
@@ -12,7 +12,6 @@
 #include "super.h"
 
 #include <linux/crc32c.h>
-#include <crypto/hash.h>
 #include <crypto/sha2.h>
 
 static inline enum bch_str_hash_type
@@ -55,13 +54,10 @@ bch2_hash_info_init(struct bch_fs *c, const struct bch_inode_unpacked *bi)
        };
 
        if (unlikely(info.type == BCH_STR_HASH_siphash_old)) {
-               SHASH_DESC_ON_STACK(desc, c->sha256);
                u8 digest[SHA256_DIGEST_SIZE];
 
-               desc->tfm = c->sha256;
-
-               crypto_shash_digest(desc, (void *) &bi->bi_hash_seed,
-                                   sizeof(bi->bi_hash_seed), digest);
+               sha256((const u8 *)&bi->bi_hash_seed,
+                      sizeof(bi->bi_hash_seed), digest);
                memcpy(&info.siphash_key, digest, sizeof(info.siphash_key));
        }
 
index 6de3a5751561eb51c60285c7a4a9b13304b73a97..8e928b3d8ef4a0b8671da35033d86637ca6ece0e 100644 (file)
@@ -75,7 +75,6 @@
 MODULE_LICENSE("GPL");
 MODULE_AUTHOR("Kent Overstreet <kent.overstreet@gmail.com>");
 MODULE_DESCRIPTION("bcachefs filesystem");
-MODULE_SOFTDEP("pre: sha256");
 MODULE_SOFTDEP("pre: chacha20");
 MODULE_SOFTDEP("pre: poly1305");
 MODULE_SOFTDEP("pre: xxhash");