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