···11+{ stdenv, fetchFromGitHub, autoreconfHook, cryptsetup }:
22+33+stdenv.mkDerivation rec {
44+ name = "bruteforce-luks-${version}";
55+ version = "1.2.0";
66+77+ src = fetchFromGitHub {
88+ sha256 = "0d01rn45dg7ysa75r8z0b31hj1z7w47vv5vr359pl71zxgzngjd2";
99+ rev = version;
1010+ repo = "bruteforce-luks";
1111+ owner = "glv2";
1212+ };
1313+1414+ nativeBuildInputs = [ autoreconfHook ];
1515+ buildInputs = [ cryptsetup ];
1616+1717+ enableParallelBuilding = true;
1818+1919+ doCheck = true;
2020+2121+ meta = with stdenv.lib; {
2222+ inherit (src.meta) homepage;
2323+ description = "Cracks passwords of LUKS encrypted volumes";
2424+ longDescription = ''
2525+ The program tries to decrypt at least one of the key slots by trying
2626+ all the possible passwords. It is especially useful if you know
2727+ something about the password (i.e. you forgot a part of your password but
2828+ still remember most of it). Finding the password of a volume without
2929+ knowing anything about it would take way too much time (unless the
3030+ password is really short and/or weak). It can also use a dictionary.
3131+ '';
3232+ license = licenses.gpl3Plus;
3333+ platforms = platforms.linux;
3434+ maintainers = with maintainers; [ nckx ];
3535+ };
3636+}