51 lines
983 B
Nix
51 lines
983 B
Nix
# unpackPhase
|
|
# patchPhase
|
|
# configurePhase
|
|
# buildPhase
|
|
# checkPhase
|
|
# installPhase
|
|
# fixupPhase
|
|
# installCheckPhase
|
|
# distPhase
|
|
{
|
|
stdenv,
|
|
gnupg,
|
|
key_name,
|
|
expire_date ? "0",
|
|
pgp_comment ? "${key_name}",
|
|
pgp_name ? "${key_name}",
|
|
...
|
|
}:
|
|
stdenv.mkDerivation (finalAttrs: {
|
|
name = "pgp-key-${key_name}";
|
|
nativeBuildInputs = [ gnupg ];
|
|
buildInputs = [ ];
|
|
|
|
unpackPhase = "true";
|
|
|
|
buildPhase = ''
|
|
mkdir keyring
|
|
export GNUPGHOME=$(readlink -f keyring)
|
|
|
|
gpg --batch --full-generate-key <<EOF
|
|
%no-protection
|
|
Key-Type: 1
|
|
Key-Length: 4096
|
|
Subkey-Type: 1
|
|
Subkey-Length: 4096
|
|
Expire-Date: ${expire_date}
|
|
Name-Comment: ${pgp_comment}
|
|
Name-Real: ${pgp_name}
|
|
EOF
|
|
|
|
|
|
'';
|
|
|
|
installPhase = ''
|
|
export GNUPGHOME=$(readlink -f keyring)
|
|
mkdir "$out"
|
|
gpg --export-secret-keys --armor "${pgp_name}" > "$out/${key_name}_private_key.asc"
|
|
gpg --export --armor "${pgp_name}" > "$out/${key_name}_public_key.asc"
|
|
'';
|
|
})
|