1{
2 lib,
3 stdenv,
4 arc4,
5 asn1crypto,
6 asn1tools,
7 asyauth,
8 asysocks,
9 buildPythonPackage,
10 cargo,
11 colorama,
12 fetchFromGitHub,
13 iconv,
14 minikerberos,
15 pillow,
16 pyperclip,
17 pythonOlder,
18 rustPlatform,
19 rustc,
20 setuptools-rust,
21 tqdm,
22 unicrypto,
23 winsspi,
24}:
25
26buildPythonPackage rec {
27 pname = "aardwolf";
28 version = "0.2.8";
29 format = "setuptools";
30
31 disabled = pythonOlder "3.7";
32
33 src = fetchFromGitHub {
34 owner = "skelsec";
35 repo = "aardwolf";
36 rev = "refs/tags/${version}";
37 hash = "sha256-4kJsW0uwWfcgVruEdDw3QhbzfPDuLjmK+YvcLrgF4SI=";
38 };
39
40 cargoDeps = rustPlatform.fetchCargoTarball {
41 inherit src;
42 sourceRoot = "${src.name}/aardwolf/utils/rlers";
43 name = "${pname}-${version}";
44 hash = "sha256-i7fmdWOseRQGdvdBnlGi+lgWvhC2WFI2FwXU9JywYsc=";
45 };
46
47 cargoRoot = "aardwolf/utils/rlers";
48
49 nativeBuildInputs = [
50 rustPlatform.cargoSetupHook
51 setuptools-rust
52 cargo
53 rustc
54 ];
55
56 propagatedBuildInputs = [
57 arc4
58 asn1crypto
59 asn1tools
60 asyauth
61 asysocks
62 colorama
63 minikerberos
64 pillow
65 pyperclip
66 tqdm
67 unicrypto
68 winsspi
69 ] ++ lib.optionals (stdenv.isDarwin) [ iconv ];
70
71 # Module doesn't have tests
72 doCheck = false;
73
74 pythonImportsCheck = [ "aardwolf" ];
75
76 meta = with lib; {
77 description = "Asynchronous RDP protocol implementation";
78 mainProgram = "ardpscan";
79 homepage = "https://github.com/skelsec/aardwolf";
80 changelog = "https://github.com/skelsec/aardwolf/releases/tag/${version}";
81 license = with licenses; [ mit ];
82 maintainers = with maintainers; [ fab ];
83 };
84}