1{
2 lib,
3 asn1crypto,
4 buildPythonPackage,
5 cryptography,
6 dnspython,
7 fetchFromGitHub,
8 gssapi,
9 hatchling,
10 ldap3,
11 msldap,
12 pyasn1,
13 pytestCheckHook,
14 pythonOlder,
15 winacl,
16}:
17
18buildPythonPackage rec {
19 pname = "bloodyad";
20 version = "2.0.3";
21 pyproject = true;
22
23 disabled = pythonOlder "3.8";
24
25 src = fetchFromGitHub {
26 owner = "CravateRouge";
27 repo = "bloodyAD";
28 rev = "refs/tags/v${version}";
29 hash = "sha256-+Lw9Apm+zzUlM19fGgxOb2bTmmKQ1Nd7dUjF9rhHXKQ=";
30 };
31
32 build-system = [ hatchling ];
33
34 dependencies = [
35 asn1crypto
36 cryptography
37 dnspython
38 gssapi
39 ldap3
40 msldap
41 pyasn1
42 winacl
43 ];
44
45 nativeCheckInputs = [ pytestCheckHook ];
46
47 pythonImportsCheck = [ "bloodyAD" ];
48
49 disabledTests = [
50 # Tests require network access
51 "test_01AuthCreateUser"
52 "test_02SearchAndGetChildAndGetWritable"
53 "test_03UacOwnerGenericShadowGroupPasswordDCSync"
54 "test_04ComputerRbcdGetSetAttribute"
55 "test_06AddRemoveGetDnsRecord"
56 ];
57
58 meta = with lib; {
59 description = "Module for Active Directory Privilege Escalations";
60 homepage = "https://github.com/CravateRouge/bloodyAD";
61 changelog = "https://github.com/CravateRouge/bloodyAD/releases/tag/v${version}";
62 license = licenses.mit;
63 maintainers = with maintainers; [ fab ];
64 };
65}