lol
1{ stdenv, fetchurl, p7zip, patchelf, gmp }:
2
3assert stdenv.isLinux;
4
5let
6 bits = if stdenv.system == "x86_64-linux" then "64" else "32";
7 libPath = stdenv.lib.makeLibraryPath [ stdenv.cc.libc gmp ];
8
9 fixBin = x: ''
10 patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
11 --set-rpath ${libPath} ${x}
12 '';
13in
14stdenv.mkDerivation rec {
15 name = "hashcat-${version}";
16 version = "0.49";
17
18 src = fetchurl {
19 url = "http://hashcat.net/files/${name}.7z";
20 sha256 = "0va07flncihgmnri5wj0jn636w86x5qwm4jmj2halcyg7qwqijh2";
21 };
22
23 buildInputs = [ p7zip patchelf ];
24
25 unpackPhase = "7z x $src > /dev/null && cd ${name}";
26
27 installPhase = ''
28 mkdir -p $out/bin $out/libexec
29 cp -R * $out/libexec
30
31 echo -n "/" > $out/bin/eula.accepted
32 ln -s $out/libexec/hashcat-cli${bits}.bin $out/bin/hashcat
33 ln -s $out/libexec/hashcat-cliXOP.bin $out/bin/hashcat-xop
34 ln -s $out/libexec/hashcat-cliAVX.bin $out/bin/hashcat-avx
35 '';
36
37 fixupPhase = ''
38 ${fixBin "$out/libexec/hashcat-cli${bits}.bin"}
39 ${fixBin "$out/libexec/hashcat-cliXOP.bin"}
40 ${fixBin "$out/libexec/hashcat-cliAVX.bin"}
41 '';
42
43 meta = {
44 description = "Fast password cracker";
45 homepage = "http://hashcat.net/hashcat/";
46 license = stdenv.lib.licenses.unfreeRedistributable;
47 platforms = stdenv.lib.platforms.linux;
48 maintainers = [ stdenv.lib.maintainers.thoughtpolice ];
49 };
50}