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