From 509c699cdf9bc661cd84f9a761932e0ee1002fdd Mon Sep 17 00:00:00 2001 From: Simon Garrelou Date: Mon, 16 Oct 2023 13:07:38 +0200 Subject: Add miasm, msynth, passwdqc --- default.nix | 24 +++++++++++++++++++++ pkgs/miasm/package.nix | 53 +++++++++++++++++++++++++++++++++++++++++++++++ pkgs/msynth/package.nix | 37 +++++++++++++++++++++++++++++++++ pkgs/passwdqc/package.nix | 34 ++++++++++++++++++++++++++++++ 4 files changed, 148 insertions(+) create mode 100644 default.nix create mode 100644 pkgs/miasm/package.nix create mode 100644 pkgs/msynth/package.nix create mode 100644 pkgs/passwdqc/package.nix diff --git a/default.nix b/default.nix new file mode 100644 index 0000000..1a2f679 --- /dev/null +++ b/default.nix @@ -0,0 +1,24 @@ +{ pkgs ? import {} }: +let + setupPkg = { name, extraArgs ? {} }: pkgs.callPackage ./pkgs/${name}/package.nix extraArgs; +in +rec { + miasm = setupPkg { + name = "miasm"; + extraArgs = { + inherit (pkgs.python3.pkgs) buildPythonPackage; + inherit (pkgs.python3Packages) future pyparsing; + }; + }; + + msynth = setupPkg { + name = "msynth"; + extraArgs = { + inherit (pkgs.python3.pkgs) buildPythonPackage; + inherit (pkgs.python3Packages) z3 future; + inherit miasm; + }; + }; + + passwdqc = setupPkg { name = "passwdqc"; }; +} diff --git a/pkgs/miasm/package.nix b/pkgs/miasm/package.nix new file mode 100644 index 0000000..9f653a8 --- /dev/null +++ b/pkgs/miasm/package.nix @@ -0,0 +1,53 @@ +{ lib +, buildPythonPackage +, fetchPypi +, fetchFromGitHub + +, pyparsing +, future +}: +let + oldPyparsing = pyparsing.overridePythonAttrs(old: rec { + version = "2.4.7"; + format = "setuptools"; + src = fetchPypi { + pname = "pyparsing"; + inherit version; + hash = "sha256-wgPsh4O/dxoVWyByebm8y43qAtjwyeX46tUHvDJG7ME="; + }; + }); +in +buildPythonPackage rec { + pname = "miasm"; + version = "0.1.5"; + format = "setuptools"; + + #disabled = pythonOlder "3.6"; + + src = fetchFromGitHub { + owner = "cea-sec"; + repo = "miasm"; + rev = "v${version}"; + hash = "sha256-/yaMYYFSF7PT9pmbz71nF2Cq4ACiOuvlyKAU3WgQZrU="; + name = "${pname}-${version}"; + }; + + patchPhase = '' + sed -i 's/^VERSION =.*/VERSION = "'"${version}"'"/' miasm/__init__.py + ''; + + propagatedBuildInputs = [ + future + oldPyparsing + ]; + + doCheck = false; + + pythonImportsCheck = [ "miasm" ]; + + meta = with lib; { + description = "Reverse engineering framework in Python"; + license = licenses.gpl2; + homepage = "https://miasm.re/"; + }; +} diff --git a/pkgs/msynth/package.nix b/pkgs/msynth/package.nix new file mode 100644 index 0000000..cf44368 --- /dev/null +++ b/pkgs/msynth/package.nix @@ -0,0 +1,37 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub + +, future +, z3 +, miasm +}: +buildPythonPackage rec { + pname = "msynth"; + version = "d072f07ed82c74e3a1846b963b037e0f8df96d29"; + format = "setuptools"; + + #disabled = pythonOlder "3.6"; + + src = fetchFromGitHub { + owner = "mrphrazer"; + repo = "msynth"; + rev = "${version}"; + hash = "sha256-HJLR8b2n1nQ8BKz0vX+41Yt0/g8IL27IVBvt4pnLI/0="; + name = "${pname}-${version}"; + }; + + propagatedBuildInputs = [ + future + miasm + z3 + ]; + + doCheck = false; + + pythonImportsCheck = [ "msynth" ]; + + meta = with lib; { + license = licenses.gpl2; + }; +} diff --git a/pkgs/passwdqc/package.nix b/pkgs/passwdqc/package.nix new file mode 100644 index 0000000..c8393bc --- /dev/null +++ b/pkgs/passwdqc/package.nix @@ -0,0 +1,34 @@ +{ lib +, fetchzip +, libxcrypt +, linux-pam +, stdenv +}: +stdenv.mkDerivation rec { + pname = "passwdqc"; + version = "2.0.3"; + + src = fetchzip { + url = "https://www.openwall.com/passwdqc/passwdqc-${version}.tar.gz"; + hash = "sha256-EgPeccqS+DDDMBVMc4bd70EMnXFuyglftxuqoaYHwNY="; + }; + + propagatedBuildInputs = [ + linux-pam + libxcrypt + ]; + + makeFlags = [ + "DESTDIR=$(out)" + "BINDIR=/bin" + "DEVEL_LIBDIR=/lib" + "INCLUDEDIR=/include" + ]; + + meta = with lib; { + description = "password/passphrase strength checking and enforcement"; + homepage = "https://www.openwall.com/passwdqc/"; + license = licenses.bsd0; + maintainers = [ maintainers.simsor ]; + }; +} -- cgit v1.2.3