diff options
Diffstat (limited to 'modules/athena-bccr')
| -rw-r--r-- | modules/athena-bccr/default.nix | 14 | ||||
| -rw-r--r-- | modules/athena-bccr/hm.nix | 14 | ||||
| -rw-r--r-- | modules/athena-bccr/options.nix | 30 | ||||
| -rw-r--r-- | modules/athena-bccr/sys.nix | 53 |
4 files changed, 0 insertions, 111 deletions
diff --git a/modules/athena-bccr/default.nix b/modules/athena-bccr/default.nix deleted file mode 100644 index 93c5660..0000000 --- a/modules/athena-bccr/default.nix +++ /dev/null @@ -1,14 +0,0 @@ -{ - config, - lib, - pkgs, - doctrine, - ... -}: -doctrine.lib.mkModule { - inherit config; - name = "athena-bccr"; - hm = ./hm.nix; - sys = ./sys.nix; - options = ./options.nix; -} diff --git a/modules/athena-bccr/hm.nix b/modules/athena-bccr/hm.nix deleted file mode 100644 index 0678e3c..0000000 --- a/modules/athena-bccr/hm.nix +++ /dev/null @@ -1,14 +0,0 @@ -{ - pkgs, - lib, - cfg, - doctrine, - ... -}: let - athena = pkgs.${doctrine.prefix}.athena-bccr.${cfg.release}; -in { - home.packages = [ - athena.firmador - (athena.gaudi.override {inherit (cfg) gaudiHash;}) - ]; -} diff --git a/modules/athena-bccr/options.nix b/modules/athena-bccr/options.nix deleted file mode 100644 index eb61cf5..0000000 --- a/modules/athena-bccr/options.nix +++ /dev/null @@ -1,30 +0,0 @@ -{lib, ...}: -with lib.types; { - hm = { - gaudiHash = lib.mkOption { - type = nullOr str; - default = null; - description = "hash of the Gaudi client"; - }; - - release = lib.mkOption { - type = str; - default = "latest"; - description = "pinned athena-bccr release tag"; - }; - }; - - sys = { - group = lib.mkOption { - type = str; - default = "users"; - description = "user group with full access to the smartcard reader"; - }; - - release = lib.mkOption { - type = str; - default = "latest"; - description = "pinned athena-bccr release tag"; - }; - }; -} diff --git a/modules/athena-bccr/sys.nix b/modules/athena-bccr/sys.nix deleted file mode 100644 index 5457ca5..0000000 --- a/modules/athena-bccr/sys.nix +++ /dev/null @@ -1,53 +0,0 @@ -{ - pkgs, - lib, - cfg, - doctrine, - ... -}: let - athena = pkgs.${doctrine.prefix}.athena-bccr.${cfg.release}; - inherit (athena) vendor; -in { - environment = { - etc = - { - "pkcs11/modules/${vendor}".text = '' - module: ${athena.pkcs11-module} - ''; - } - // lib.optionalAttrs (vendor == "athena") { - "Athena".source = "${athena.card-driver}/etc/Athena"; - }; - - systemPackages = [athena.card-driver]; - }; - - security = { - #FIXME: Extremadamente peligroso si BCCR o MICITT caen, investigar polĂtica nacional de root CA - pki.certificateFiles = ["${athena.bccr-cacerts}/root-ca.pem"]; - - polkit = { - enable = lib.mkDefault true; - - extraConfig = '' - polkit.addRule(function(action, subject) { - if ((action.id == "org.debian.pcsc-lite.access_pcsc" || action.id == "org.debian.pcsc-lite.access_card") && - subject.isInGroup("users")) { - return polkit.Result.YES; - } - }); - ''; - }; - }; - - services = { - pcscd.enable = true; - - udev.extraRules = '' - # Athena Smartcard Solutions, Inc. ASEDrive V3CR - ATTRS{idVendor}=="0dc3", ATTRS{idProduct}=="1004", MODE="660", GROUP="${cfg.group}", TAG+="uaccess" - ''; - }; - - users.groups.${cfg.group} = {}; -} |
