summaryrefslogtreecommitdiff
path: root/trivionomicon/modules/athena-bccr/sys.nix
blob: 631185d37b24b5a64ae69c9e9bc734575e0cc430 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
{
  pkgs,
  lib,
  cfg,
  doctrine,
  ...
}: let
  athena = pkgs.${doctrine.prefix}.athena-bccr.${cfg.release};
in {
  environment = {
    etc = {
      "Athena".source = "${athena.ase-pkcs11}/etc/Athena";

      "pkcs11/modules/asep11".text = ''
        module: ${athena.libasep11}
      '';
    };

    systemPackages = [athena.ase-pkcs11];
  };

  #FIXME: Extremadamente peligroso si BCCR o MICITT caen, investigar política nacional de root CA
  security.pki.certificateFiles = ["${athena.bccr-cacerts}/root-ca.pem"];

  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} = {};
}