1 { lib, stdenv, fetchFromGitHub, openssl, autoreconfHook }:
2 stdenv.mkDerivation rec {
4 version = "unstable-2015-01-29";
6 src = fetchFromGitHub {
9 rev = "7ecdbac79156c8864fa3ff8d61e9f1eb264e56c2";
10 sha256 = "sha256-+7TrJACdm/i/pc0dsp8edEIOjx8cip+x0Qc2gONajSE=";
13 nativeBuildInputs = [ autoreconfHook ];
15 buildInputs = [ openssl ];
18 description = "Tools for random password generation";
20 APG (Automated Password Generator) is the tool set for random
25 Generates some random words of required type and prints them
30 APG server: When client's request is arrived generates some
31 random words of predefined type and send them to client over
32 the network (according to RFC0972).
34 APG client: Sends the password generation request to the APG
35 server, wait for generated Passwords arrival and then prints
36 them to the standard output.
40 * Built-in ANSI X9.17 RNG (Random Number Generator) (CAST/SHA1)
41 * Built-in password quality checking system (it has support for
42 Bloom filter for faster access)
43 * Two Password Generation Algorithms:
44 1. Pronounceable Password Generation Algorithm (according to
46 2. Random Character Password Generation Algorithm with 35
47 configurable modes of operation
48 * Configurable password length parameters
49 * Configurable amount of generated passwords
50 * Ability to initialize RNG with user string
51 * Support for /dev/random
52 * Ability to crypt() generated passwords and print them as
54 * Special parameters to use APG in script
55 * Ability to log password generation requests for network version
56 * Ability to control APG service access using tcpd
57 * Ability to use password generation service from any type of box
58 (Mac, WinXX, etc.) that connected to network
59 * Ability to enforce remote users to use only allowed type of
62 homepage = "https://github.com/wilx/apg";
63 license = lib.licenses.bsd3;
64 maintainers = with lib.maintainers; [ astsmtl ];
65 platforms = lib.platforms.unix;