at 23.05-pre 82 lines 2.0 kB view raw
1{ lib 2, fetchFromGitLab 3, python3 4}: 5let 6 py = python3.override { 7 packageOverrides = self: super: { 8 9 cmd2 = super.cmd2.overridePythonAttrs (oldAttrs: rec { 10 version = "1.5.0"; 11 src = oldAttrs.src.override { 12 inherit version; 13 sha256 = "0qiax309my534drk81lihq9ghngr96qnm40kbmgc9ay4fncqq6kh"; 14 }; 15 doCheck = false; 16 }); 17 }; 18 }; 19in 20with py.pkgs; 21 22buildPythonApplication rec { 23 pname = "expliot"; 24 version = "0.9.8"; 25 26 src = fetchFromGitLab { 27 owner = "expliot_framework"; 28 repo = pname; 29 rev = version; 30 hash = "sha256-7Cuj3YKKwDxP2KKueJR9ZO5Bduv+lw0Y87Rw4b0jbGY="; 31 }; 32 33 propagatedBuildInputs = [ 34 aiocoap 35 awsiotpythonsdk 36 bluepy 37 can 38 cmd2 39 cryptography 40 paho-mqtt 41 pyi2cflash 42 pymodbus 43 pynetdicom 44 pyparsing 45 pyserial 46 pyspiflash 47 upnpy 48 xmltodict 49 zeroconf 50 ]; 51 52 postPatch = '' 53 # https://gitlab.com/expliot_framework/expliot/-/merge_requests/113 54 substituteInPlace setup.py \ 55 --replace "pynetdicom>=1.5.1,<2" "pynetdicom>=2,<3" \ 56 --replace "cryptography>=3.0,<4" "cryptography>=35,<40" \ 57 --replace "python-can>=3.3.3,<4" "python-can>=3.3.3,<5" \ 58 --replace "pyparsing>=2.4.7,<3" "pyparsing>=2.4.7,<4" 59 ''; 60 61 # Project has no tests 62 doCheck = false; 63 64 pythonImportsCheck = [ 65 "expliot" 66 ]; 67 68 meta = with lib; { 69 description = "IoT security testing and exploitation framework"; 70 longDescription = '' 71 EXPLIoT is a Framework for security testing and exploiting IoT 72 products and IoT infrastructure. It provides a set of plugins 73 (test cases) which are used to perform the assessment and can 74 be extended easily with new ones. The name EXPLIoT (pronounced 75 expl-aa-yo-tee) is a pun on the word exploit and explains the 76 purpose of the framework i.e. IoT exploitation. 77 ''; 78 homepage = "https://expliot.readthedocs.io/"; 79 license = with licenses; [ agpl3Plus ]; 80 maintainers = with maintainers; [ fab ]; 81 }; 82}