summary refs log tree commit diff
path: root/pkgs/tools/security/pyrit/default.nix
blob: 93ae86416e13c2d4b402da8b821f5db1b9d9733c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
{ stdenv, lib, fetchFromGitHub, python2Packages, openssl, zlib, libpcap, opencl-headers, ocl-icd }:

let
  version = "2019-12-13";
  src = fetchFromGitHub {
    owner = "JPaulMora";
    repo = "Pyrit";
    rev = "f0f1913c645b445dd391fb047b812b5ba511782c";
    sha256 = "1npkvngc4g3g6mpjip2wwhvcd4a75jy3dbddxhxhzrrz4p7259gr";
  };

  cpyrit_opencl = python2Packages.buildPythonPackage {
    pname = "cpyrit-opencl";
    inherit version;

    src = "${src}/modules/cpyrit_opencl";

    buildInputs = [ opencl-headers ocl-icd openssl zlib ];

    postInstall = let
      python = python2Packages.python;
    in ''
      # pyrit uses "import _cpyrit_cuda" so put the output in the root site-packages
      mv $out/lib/${python.libPrefix}/site-packages/cpyrit/_cpyrit_opencl.so $out/lib/${python.libPrefix}/site-packages/
    '';
  };
in
python2Packages.buildPythonApplication rec {
  pname = "pyrit";
  inherit version src;

  buildInputs = [ openssl zlib libpcap ];
  propagatedBuildInputs = [ cpyrit_opencl ];

  meta = with stdenv.lib; {
    homepage = "https://github.com/JPaulMora/Pyrit";
    description = "GPGPU-driven WPA/WPA2-PSK key cracker";
    license = licenses.gpl3;
    platforms = platforms.linux;
    maintainers = with maintainers; [ danielfullmer ];
  };
}