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