about summary refs log tree commit diff
path: root/pkgs/tools/networking/cantoolz
diff options
context:
space:
mode:
authorFabian Affolter <mail@fabian-affolter.ch>2021-01-17 11:40:49 +0100
committerFabian Affolter <mail@fabian-affolter.ch>2021-01-17 11:40:49 +0100
commita79ef12d0b47e8fdb88c005f0b62e542f053a219 (patch)
tree9f425228ba0b1b7345d9a959a49131cf147cb764 /pkgs/tools/networking/cantoolz
parent210b6509eda2a217adb8b2ec2eebe95c33ad146e (diff)
cantoolz: init at 3.7.0
Diffstat (limited to 'pkgs/tools/networking/cantoolz')
-rw-r--r--pkgs/tools/networking/cantoolz/default.nix62
1 files changed, 62 insertions, 0 deletions
diff --git a/pkgs/tools/networking/cantoolz/default.nix b/pkgs/tools/networking/cantoolz/default.nix
new file mode 100644
index 0000000000000..11a0315184c9a
--- /dev/null
+++ b/pkgs/tools/networking/cantoolz/default.nix
@@ -0,0 +1,62 @@
+{ lib
+, bitstring
+, buildPythonApplication
+, fetchFromGitHub
+, fetchpatch
+, flask
+, mido
+, numpy
+, pyserial
+, pytestCheckHook
+, pythonOlder
+}:
+
+buildPythonApplication rec {
+  pname = "cantoolz";
+  version = "3.7.0";
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "CANToolz";
+    repo = "CANToolz";
+    rev = "v${version}";
+    sha256 = "0xkj7zyx6pz866q61c84mdagpgdyd633v85hk7qxhamca33rc4yi";
+  };
+
+  patches = [
+    (fetchpatch {
+      # Replace time.clock() which was removed, https://github.com/CANToolz/CANToolz/pull/30
+      url = "https://github.com/CANToolz/CANToolz/pull/30/commits/d75574523d3b273c40fb714532c4de27f9e6dd3e.patch";
+      sha256 = "0g91hywg5q6f2qk1awgklywigclrbhh6a6mwd0kpbkk1wawiiwbc";
+    })
+  ];
+
+  propagatedBuildInputs = [
+    flask
+    pyserial
+    mido
+    numpy
+    bitstring
+  ];
+
+  checkInputs = [ pytestCheckHook ];
+  disabledTests = [ "test_process" ];
+  pythonImportsCheck = [ "cantoolz" ];
+
+  meta = with lib; {
+    description = "Black-box CAN network analysis framework";
+    longDescription = ''
+      CANToolz is a framework for analysing CAN networks and devices. It
+      provides multiple modules that can be chained using CANToolz's pipe
+      system and used by security researchers, automotive/OEM security
+      testers in black-box analysis.
+
+      CANToolz can be used for ECU discovery, MitM testing, fuzzing, brute
+      forcing, scanning or R&D, testing and validation. More can easily be
+      implemented with a new module.
+    '';
+    homepage = "https://github.com/CANToolz/CANToolz";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}