2026-02-06 11:28:40 -05:00

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"
'';
})