32 lines
669 B
Nix
32 lines
669 B
Nix
|
{ lib, config, pkgs, ...}:
|
||
|
|
||
|
let
|
||
|
cfg = config.ptw.services.yubikey;
|
||
|
in {
|
||
|
options.ptw.services.yubikey = {
|
||
|
enable = lib.mkEnableOption "Enable everything for using a YubiKey";
|
||
|
};
|
||
|
|
||
|
config = lib.mkIf cfg.enable {
|
||
|
services = {
|
||
|
# Unprivileged access to the YubiKey
|
||
|
udev.packages = [ pkgs.yubikey-personalization ];
|
||
|
|
||
|
# Allow using the YubiKey as a smart card
|
||
|
pcscd.enable = true;
|
||
|
};
|
||
|
|
||
|
environment.systemPackages = with pkgs; [
|
||
|
# Management
|
||
|
yubikey-manager-qt yubikey-manager yubico-piv-tool
|
||
|
];
|
||
|
|
||
|
programs = {
|
||
|
gnupg.agent = {
|
||
|
enable = true;
|
||
|
enableSSHSupport = true;
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
}
|