nixpkgs/pkgs/by-name/br/bruteforce-luks/package.nix
aleksana 571c71e6f7 treewide: migrate packages to pkgs/by-name, take 1
We are migrating packages that meet below requirements:

1. using `callPackage`
2. called path is a directory
3. overriding set is empty (`{ }`)
4. not containing path expressions other than relative path (to
makenixpkgs-vet happy)
5. not referenced by nix files outside of the directory, other
than`pkgs/top-level/all-packages.nix`
6. not referencing nix files outside of the directory
7. not referencing `default.nix` (since it's changed to `package.nix`)
8. `outPath` doesn't change after migration

The tool is here: https://github.com/Aleksanaa/by-name-migrate.
2024-11-09 20:04:51 +08:00

49 lines
1.3 KiB
Nix

{
lib,
stdenv,
fetchFromGitHub,
autoreconfHook,
cryptsetup,
}:
stdenv.mkDerivation rec {
pname = "bruteforce-luks";
version = "1.4.1";
src = fetchFromGitHub {
owner = "glv2";
repo = "bruteforce-luks";
rev = version;
hash = "sha256-t07YyfCjaXQs/OMekcPNBT8DeSRtq2+8tUpsPP2pG7o=";
};
postPatch = ''
# the test hangs indefinetly when more than 3 threads are used, I haven't figured out why
substituteInPlace tests/Makefile.am \
--replace-fail " crack-volume3.sh" ""
'';
nativeBuildInputs = [ autoreconfHook ];
buildInputs = [ cryptsetup ];
enableParallelBuilding = true;
doCheck = true;
meta = {
homepage = "https://github.com/glv2/bruteforce-luks";
description = "Cracks passwords of LUKS encrypted volumes";
mainProgram = "bruteforce-luks";
longDescription = ''
The program tries to decrypt at least one of the key slots by trying
all the possible passwords. It is especially useful if you know
something about the password (i.e. you forgot a part of your password but
still remember most of it). Finding the password of a volume without
knowing anything about it would take way too much time (unless the
password is really short and/or weak). It can also use a dictionary.
'';
license = lib.licenses.gpl3Plus;
platforms = lib.platforms.linux;
};
}