aboutsummaryrefslogtreecommitdiff
path: root/home-manager/modules/programs/gpg.nix
diff options
context:
space:
mode:
authorKatharina Fey <kookie@spacekookie.de>2019-10-05 12:06:29 +0000
committerKatharina Fey <kookie@spacekookie.de>2019-10-05 12:42:50 +0000
commit1148b1d122bc03e9a3665856c9b7bb96bd4e3994 (patch)
tree1a9586de593790e236349d5caa0abdff7f3f6856 /home-manager/modules/programs/gpg.nix
parent919d4e75699aa4ba456fd2d3d416a0522c9c7294 (diff)
parent8bddc1adab0f7a51476f819fa2197353e8e1d136 (diff)
Add 'home-manager/' from commit '8bddc1adab0f7a51476f819fa2197353e8e1d136'
git-subtree-dir: home-manager git-subtree-mainline: 919d4e75699aa4ba456fd2d3d416a0522c9c7294 git-subtree-split: 8bddc1adab0f7a51476f819fa2197353e8e1d136
Diffstat (limited to 'home-manager/modules/programs/gpg.nix')
-rw-r--r--home-manager/modules/programs/gpg.nix61
1 files changed, 61 insertions, 0 deletions
diff --git a/home-manager/modules/programs/gpg.nix b/home-manager/modules/programs/gpg.nix
new file mode 100644
index 00000000000..4588c59c882
--- /dev/null
+++ b/home-manager/modules/programs/gpg.nix
@@ -0,0 +1,61 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+ cfg = config.programs.gpg;
+
+ cfgText =
+ concatStringsSep "\n"
+ (attrValues
+ (mapAttrs (key: value:
+ if isString value
+ then "${key} ${value}"
+ else optionalString value key)
+ cfg.settings));
+
+in {
+ options.programs.gpg = {
+ enable = mkEnableOption "GnuPG";
+
+ settings = mkOption {
+ type = types.attrsOf (types.either types.str types.bool);
+ example = {
+ no-comments = false;
+ s2k-cipher-algo = "AES128";
+ };
+ description = ''
+ GnuPG configuration options. Available options are described
+ in the gpg manpage:
+ <link xlink:href="https://gnupg.org/documentation/manpage.html"/>.
+ '';
+ };
+ };
+
+ config = mkIf cfg.enable {
+ programs.gpg.settings = {
+ personal-cipher-preferences = mkDefault "AES256 AES192 AES";
+ personal-digest-preferences = mkDefault "SHA512 SHA384 SHA256";
+ personal-compress-preferences = mkDefault "ZLIB BZIP2 ZIP Uncompressed";
+ default-preference-list = mkDefault "SHA512 SHA384 SHA256 AES256 AES192 AES ZLIB BZIP2 ZIP Uncompressed";
+ cert-digest-algo = mkDefault "SHA512";
+ s2k-digest-algo = mkDefault "SHA512";
+ s2k-cipher-algo = mkDefault "AES256";
+ charset = mkDefault "utf-8";
+ fixed-list-mode = mkDefault true;
+ no-comments = mkDefault true;
+ no-emit-version = mkDefault true;
+ keyid-format = mkDefault "0xlong";
+ list-options = mkDefault "show-uid-validity";
+ verify-options = mkDefault "show-uid-validity";
+ with-fingerprint = mkDefault true;
+ require-cross-certification = mkDefault true;
+ no-symkey-cache = mkDefault true;
+ use-agent = mkDefault true;
+ };
+
+ home.packages = [ pkgs.gnupg ];
+
+ home.file.".gnupg/gpg.conf".text = cfgText;
+ };
+}