1{
2 lib,
3 asn1crypto,
4 buildPythonPackage,
5 cryptography,
6 dnspython,
7 dsinternals,
8 fetchFromGitHub,
9 impacket,
10 ldap3,
11 pyasn1,
12 pycryptodome,
13 pyopenssl,
14 pythonOlder,
15 requests,
16 requests-ntlm,
17 unicrypto,
18 setuptools,
19}:
20
21buildPythonPackage rec {
22 pname = "certipy-ad";
23 version = "4.8.2";
24 pyproject = true;
25
26 disabled = pythonOlder "3.7";
27
28 src = fetchFromGitHub {
29 owner = "ly4k";
30 repo = "Certipy";
31 tag = version;
32 hash = "sha256-Era5iNLJkZIRvN/p3BiD/eDiDQme24G65VSG97tuEOQ=";
33 };
34
35 postPatch = ''
36 # pin does not apply because our ldap3 contains a patch to fix pyasn1 compability
37 substituteInPlace setup.py \
38 --replace "pyasn1==0.4.8" "pyasn1"
39 '';
40
41 nativeBuildInputs = [ setuptools ];
42
43 propagatedBuildInputs = [
44 asn1crypto
45 cryptography
46 dnspython
47 dsinternals
48 impacket
49 ldap3
50 pyasn1
51 pycryptodome
52 pyopenssl
53 requests
54 requests-ntlm
55 setuptools
56 unicrypto
57 ];
58
59 # Project has no tests
60 doCheck = false;
61
62 pythonImportsCheck = [ "certipy" ];
63
64 meta = with lib; {
65 description = "Library and CLI tool to enumerate and abuse misconfigurations in Active Directory Certificate Services";
66 mainProgram = "certipy";
67 homepage = "https://github.com/ly4k/Certipy";
68 changelog = "https://github.com/ly4k/Certipy/releases/tag/${version}";
69 license = with licenses; [ mit ];
70 maintainers = with maintainers; [ fab ];
71 };
72}