forked from fabian/nix
		
	modules/athena-bccr: initial commit
This commit is contained in:
		
							parent
							
								
									e72efe6b59
								
							
						
					
					
						commit
						c651b8c470
					
				
					 4 changed files with 93 additions and 0 deletions
				
			
		
							
								
								
									
										14
									
								
								modules/athena-bccr/default.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								modules/athena-bccr/default.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,14 @@ | ||||||
|  | { | ||||||
|  |   config, | ||||||
|  |   lib, | ||||||
|  |   pkgs, | ||||||
|  |   doctrine, | ||||||
|  |   ... | ||||||
|  | }: | ||||||
|  | doctrine.lib.mkModule { | ||||||
|  |   inherit config; | ||||||
|  |   name = "athena-bccr"; | ||||||
|  |   hm = ./hm.nix; | ||||||
|  |   sys = ./sys.nix; | ||||||
|  |   options = ./options.nix; | ||||||
|  | } | ||||||
							
								
								
									
										14
									
								
								modules/athena-bccr/hm.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								modules/athena-bccr/hm.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,14 @@ | ||||||
|  | { | ||||||
|  |   pkgs, | ||||||
|  |   lib, | ||||||
|  |   cfg, | ||||||
|  |   doctrine, | ||||||
|  |   ... | ||||||
|  | }: let | ||||||
|  |   athena = pkgs.${doctrine.prefix}.athena-bccr.${cfg.release}; | ||||||
|  | in { | ||||||
|  |   home.packages = [ | ||||||
|  |     athena.firmador | ||||||
|  |     (athena.gaudi.override {inherit (cfg) gaudiHash;}) | ||||||
|  |   ]; | ||||||
|  | } | ||||||
							
								
								
									
										30
									
								
								modules/athena-bccr/options.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								modules/athena-bccr/options.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,30 @@ | ||||||
|  | {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"; | ||||||
|  |     }; | ||||||
|  |   }; | ||||||
|  | } | ||||||
							
								
								
									
										35
									
								
								modules/athena-bccr/sys.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								modules/athena-bccr/sys.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,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} = {}; | ||||||
|  | } | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Alejandro Soto
						Alejandro Soto