about summary refs log tree commit diff
path: root/nixpkgs/pkgs/tools/security/apg/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/tools/security/apg/default.nix')
-rw-r--r--nixpkgs/pkgs/tools/security/apg/default.nix72
1 files changed, 72 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/tools/security/apg/default.nix b/nixpkgs/pkgs/tools/security/apg/default.nix
new file mode 100644
index 000000000000..db490c7822f8
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/apg/default.nix
@@ -0,0 +1,72 @@
+{ stdenv, fetchurl, openssl }:
+stdenv.mkDerivation rec {
+  name = "apg-2.3.0b";
+  src = fetchurl {
+    url = "http://www.adel.nursat.kz/apg/download/${name}.tar.gz";
+    sha256 = "14lbq81xrcsmpk1b9qmqyz7n6ypf08zcxvcvp6f7ybcyf0lj1rfi";
+  };
+  configurePhase = ''
+    substituteInPlace Makefile --replace /usr/local "$out"
+  '';
+  makeFlags = stdenv.lib.optionals stdenv.isDarwin ["CC=cc"];
+
+  patches = [
+    ./apg.patch
+    ./phony-install-target.patch
+  ];
+
+  postPatch = stdenv.lib.optionalString stdenv.isDarwin ''
+    sed -i -e 's|APG_CLIBS += -lcrypt|APG_CLIBS += -L${openssl.out}/lib -lcrypto|' Makefile
+  '';
+
+  meta = {
+    description = "Tools for random password generation";
+    longDescription = ''
+      APG (Automated Password Generator) is the tool set for random
+      password generation.
+
+      Standalone version
+
+        Generates some random words of required type and prints them
+        to standard output.
+
+      Network version
+
+        APG server: When client's request is arrived generates some
+        random words of predefined type and send them to client over
+        the network (according to RFC0972).
+
+        APG client: Sends the password generation request to the APG
+        server, wait for generated Passwords arrival and then prints
+        them to the standard output.
+
+     Advantages
+
+       * Built-in ANSI X9.17 RNG (Random Number Generator) (CAST/SHA1)
+       * Built-in password quality checking system (it has support for
+         Bloom filter for faster access)
+       * Two Password Generation Algorithms:
+           1. Pronounceable Password Generation Algorithm (according to
+              NIST FIPS 181)
+           2. Random Character Password Generation Algorithm with 35
+              configurable modes of operation
+       * Configurable password length parameters
+       * Configurable amount of generated passwords
+       * Ability to initialize RNG with user string
+       * Support for /dev/random
+       * Ability to crypt() generated passwords and print them as
+         additional output
+       * Special parameters to use APG in script
+       * Ability to log password generation requests for network version
+       * Ability to control APG service access using tcpd
+       * Ability to use password generation service from any type of box
+         (Mac, WinXX, etc.) that connected to network
+       * Ability to enforce remote users to use only allowed type of
+         password generation
+    '';
+    homepage = http://www.adel.nursat.kz/apg/;
+    license = stdenv.lib.licenses.bsd3;
+    maintainers = with stdenv.lib.maintainers; [ astsmtl ];
+    platforms = stdenv.lib.platforms.unix;
+  };
+}