summary refs log tree commit diff
path: root/pkgs/tools/security/onlykey-agent
diff options
context:
space:
mode:
authorWael M. Nasreddine <wael.nasreddine@gmail.com>2021-08-18 22:13:23 -0700
committerWael M. Nasreddine <wael.nasreddine@gmail.com>2021-08-19 12:51:17 -0700
commit8b8cd493ef8e70cdb97d05ce95ba37e75cdea431 (patch)
tree335d7d477cf381bbeb5db7e66c8204e8716b9179 /pkgs/tools/security/onlykey-agent
parent3861de42892e9a8dcf2145ad896e7548d479755a (diff)
downloadnixpkgs-8b8cd493ef8e70cdb97d05ce95ba37e75cdea431.tar
nixpkgs-8b8cd493ef8e70cdb97d05ce95ba37e75cdea431.tar.gz
nixpkgs-8b8cd493ef8e70cdb97d05ce95ba37e75cdea431.tar.bz2
nixpkgs-8b8cd493ef8e70cdb97d05ce95ba37e75cdea431.tar.lz
nixpkgs-8b8cd493ef8e70cdb97d05ce95ba37e75cdea431.tar.xz
nixpkgs-8b8cd493ef8e70cdb97d05ce95ba37e75cdea431.tar.zst
nixpkgs-8b8cd493ef8e70cdb97d05ce95ba37e75cdea431.zip
onlykey-agent: init at 1.0.2
Diffstat (limited to 'pkgs/tools/security/onlykey-agent')
-rw-r--r--pkgs/tools/security/onlykey-agent/default.nix61
1 files changed, 61 insertions, 0 deletions
diff --git a/pkgs/tools/security/onlykey-agent/default.nix b/pkgs/tools/security/onlykey-agent/default.nix
new file mode 100644
index 00000000000..84c65b91345
--- /dev/null
+++ b/pkgs/tools/security/onlykey-agent/default.nix
@@ -0,0 +1,61 @@
+{ lib
+, python3Packages
+, onlykey-cli
+}:
+
+let
+  # onlykey requires a patched version of libagent
+  lib-agent = with python3Packages; libagent.overridePythonAttrs (oa: rec{
+    version = "1.0.2";
+    src = fetchPypi {
+      inherit version;
+      pname = "lib-agent";
+      sha256 = "sha256-NAimivO3m4UUPM4JgLWGq2FbXOaXdQEL/DqZAcy+kEw=";
+    };
+    propagatedBuildInputs = oa.propagatedBuildInputs or [ ] ++ [
+      pynacl
+      docutils
+      pycryptodome
+      wheel
+    ];
+
+    # turn off testing because I can't get it to work
+    doCheck = false;
+    pythonImportsCheck = [ "libagent" ];
+
+    meta = oa.meta // {
+      description = "Using OnlyKey as hardware SSH and GPG agent";
+      homepage = "https://github.com/trustcrypto/onlykey-agent/tree/ledger";
+      maintainers = with maintainers; [ kalbasit ];
+    };
+  });
+in
+python3Packages.buildPythonApplication rec {
+  pname = "onlykey-agent";
+  version = "1.1.11";
+
+  src = python3Packages.fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-YH/cqQOVy5s6dTp2JwxM3s4xRTXgwhOr00whtHAwZZI=";
+  };
+
+  propagatedBuildInputs = with python3Packages; [ lib-agent onlykey-cli ];
+
+  # move the python library into the sitePackages.
+  postInstall = ''
+    mkdir $out/${python3Packages.python.sitePackages}/onlykey_agent
+    mv $out/bin/onlykey_agent.py $out/${python3Packages.python.sitePackages}/onlykey_agent/__init__.py
+    chmod a-x $out/${python3Packages.python.sitePackages}/onlykey_agent/__init__.py
+  '';
+
+  # no tests
+  doCheck = false;
+  pythonImportsCheck = [ "onlykey_agent" ];
+
+  meta = with lib; {
+    description = " The OnlyKey agent is essentially middleware that lets you use OnlyKey as a hardware SSH/GPG device.";
+    homepage = "https://github.com/trustcrypto/onlykey-agent";
+    license = licenses.lgpl3Only;
+    maintainers = with maintainers; [ kalbasit ];
+  };
+}