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 pillow,
15 pyperclip,
16 pythonOlder,
17 rustPlatform,
18 rustc,
19 setuptools,
20 setuptools-rust,
21 tqdm,
22 unicrypto,
23}:
24
25buildPythonPackage rec {
26 pname = "aardwolf";
27 version = "0.2.11";
28 pyproject = true;
29
30 disabled = pythonOlder "3.7";
31
32 src = fetchFromGitHub {
33 owner = "skelsec";
34 repo = "aardwolf";
35 rev = "0586591e948977ca5945252c893ba8f766ff8d28";
36 hash = "sha256-daDxkQ7N0+yS2JOLfXJq4jv+5VQNnwtqIMy2p8j+Sag=";
37 };
38
39 cargoDeps = rustPlatform.fetchCargoVendor {
40 inherit pname version src;
41 sourceRoot = "${src.name}/aardwolf/utils/rlers";
42 hash = "sha256-doBraJQtekrO/ZZV9KFz7BdIgBVVWtQztUS2Gz8dDdA=";
43 };
44
45 cargoRoot = "aardwolf/utils/rlers";
46
47 build-system = [
48 setuptools
49 setuptools-rust
50 ];
51
52 nativeBuildInputs = [
53 rustPlatform.cargoSetupHook
54 cargo
55 rustc
56 ];
57
58 dependencies = [
59 arc4
60 asn1crypto
61 asn1tools
62 asyauth
63 asysocks
64 colorama
65 pillow
66 pyperclip
67 tqdm
68 unicrypto
69 ] ++ lib.optionals (stdenv.hostPlatform.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}