diff --git a/.travis.yml b/.travis.yml index 947997b3..e66f0c2a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -19,7 +19,6 @@ addons: - libblkid-dev - libkeyutils-dev - liblz4-dev - - libscrypt-dev - libsodium-dev - liburcu-dev - libzstd-dev diff --git a/INSTALL b/INSTALL index f1d38774..b4d60bf4 100644 --- a/INSTALL +++ b/INSTALL @@ -6,7 +6,6 @@ Dependencies: * libblkid * libkeyutils * liblz4 - * libscrypt * libsodium * liburcu * libuuid @@ -17,7 +16,7 @@ Dependencies: Debian (Bullseye or later) and Ubuntu (20.04 or later): you can install these with apt install -y pkg-config libaio-dev libblkid-dev libkeyutils-dev \ - liblz4-dev libscrypt-dev libsodium-dev liburcu-dev libzstd-dev \ + liblz4-dev libsodium-dev liburcu-dev libzstd-dev \ uuid-dev zlib1g-dev valgrind libudev-dev git build-essential \ python3 python3-docutils @@ -25,10 +24,10 @@ Fedora: install the "Development tools" group along with: dnf install -y libaio-devel libsodium-devel \ libblkid-devel libzstd-devel zlib-devel userspace-rcu-devel \ lz4-devel libuuid-devel valgrind-devel keyutils-libs-devel \ - libscrypt-devel findutils + findutils Arch: install bcachefs-tools-git from the AUR. -Or to build from source, install libscrypt from the AUR along with, +Or to build from source, install build dependencies with pacman -S base-devel libaio keyutils libsodium liburcu zstd valgrind Then, just make && make install diff --git a/Makefile b/Makefile index e4f6820f..e94419fb 100644 --- a/Makefile +++ b/Makefile @@ -73,7 +73,7 @@ endif CFLAGS+=$(PKGCONFIG_CFLAGS) LDLIBS+=$(PKGCONFIG_LDLIBS) -LDLIBS+=-lm -lpthread -lrt -lscrypt -lkeyutils -laio -ldl +LDLIBS+=-lm -lpthread -lrt -lkeyutils -laio -ldl LDLIBS+=$(EXTRA_LDLIBS) ifeq ($(PREFIX),/usr) diff --git a/crypto.c b/crypto.c index 7f7fbd5a..43753a3e 100644 --- a/crypto.c +++ b/crypto.c @@ -12,7 +12,7 @@ #include #include -#include +#include #include #include "libbcachefs/checksum.h" @@ -84,12 +84,13 @@ struct bch_key derive_passphrase(struct bch_sb_field_crypt *crypt, switch (BCH_CRYPT_KDF_TYPE(crypt)) { case BCH_KDF_SCRYPT: - ret = libscrypt_scrypt((void *) passphrase, strlen(passphrase), - salt, sizeof(salt), - 1ULL << BCH_KDF_SCRYPT_N(crypt), - 1ULL << BCH_KDF_SCRYPT_R(crypt), - 1ULL << BCH_KDF_SCRYPT_P(crypt), - (void *) &key, sizeof(key)); + ret = crypto_pwhash_scryptsalsa208sha256_ll( + (void *) passphrase, strlen(passphrase), + salt, sizeof(salt), + 1ULL << BCH_KDF_SCRYPT_N(crypt), + 1ULL << BCH_KDF_SCRYPT_R(crypt), + 1ULL << BCH_KDF_SCRYPT_P(crypt), + (void *) &key, sizeof(key)); if (ret) die("scrypt error: %i", ret); break; @@ -170,9 +171,9 @@ void bch_sb_crypt_init(struct bch_sb *sb, if (passphrase) { SET_BCH_CRYPT_KDF_TYPE(crypt, BCH_KDF_SCRYPT); - SET_BCH_KDF_SCRYPT_N(crypt, ilog2(SCRYPT_N)); - SET_BCH_KDF_SCRYPT_R(crypt, ilog2(SCRYPT_r)); - SET_BCH_KDF_SCRYPT_P(crypt, ilog2(SCRYPT_p)); + SET_BCH_KDF_SCRYPT_N(crypt, ilog2(16384)); + SET_BCH_KDF_SCRYPT_R(crypt, ilog2(8)); + SET_BCH_KDF_SCRYPT_P(crypt, ilog2(16)); struct bch_key passphrase_key = derive_passphrase(crypt, passphrase); diff --git a/debian/control b/debian/control index f8752bb7..091161da 100644 --- a/debian/control +++ b/debian/control @@ -4,7 +4,7 @@ Section: utils Priority: optional Standards-Version: 3.9.5 Build-Depends: debhelper (>= 9), pkg-config, libaio-dev, libblkid-dev, - libkeyutils-dev, liblz4-dev, libscrypt-dev, libsodium-dev, liburcu-dev, + libkeyutils-dev, liblz4-dev, libsodium-dev, liburcu-dev, libzstd-dev, uuid-dev, zlib1g-dev, python3, python3-docutils Homepage: https://bcachefs.org/ diff --git a/default.nix b/default.nix index eee7300f..48f2aa93 100644 --- a/default.nix +++ b/default.nix @@ -5,7 +5,6 @@ , pkg-config , attr , libuuid -, libscrypt , libsodium , keyutils @@ -71,7 +70,6 @@ stdenv.mkDerivation { keyutils # libkeyutils lz4 # liblz4 - libscrypt libsodium liburcu libuuid diff --git a/packaging/bcachefs-tools.spec b/packaging/bcachefs-tools.spec index 4946cef9..00d0fbb4 100644 --- a/packaging/bcachefs-tools.spec +++ b/packaging/bcachefs-tools.spec @@ -15,7 +15,6 @@ BuildRequires: keyutils-libs-devel BuildRequires: libaio-devel BuildRequires: libattr-devel BuildRequires: libblkid-devel -BuildRequires: libscrypt-devel BuildRequires: libsodium-devel BuildRequires: libtool-ltdl-devel BuildRequires: libuuid-devel @@ -32,7 +31,6 @@ Requires: keyutils-libs Requires: libaio Requires: libattr Requires: libblkid -Requires: libscrypt Requires: libsodium Requires: libtool-ltdl Requires: libuuid