{ config, pkgs, lib, ... }:
with lib;
let cfg = config.custom.hardware.tpm;
in {
  options.custom.hardware.tpm = { enable = mkEnableOption "Enables tpm"; };

  config = mkIf cfg.enable {

    security.tpm2 = {
      enable = true;
      # expose /run/current-system/sw/lib/libtpm2_pkcs11.so
      pkcs11.enable = true;
      # TPM2TOOLS_TCTI and TPM2_PKCS11_TCTI env variables
      tctiEnvironment.enable = true;
    };

    #tss group has access to TPM devices
    users.users.${config.mainUser.name}.extraGroups = [ "tss" ];
    environment.systemPackages = with pkgs; [ tpm2-tools ];
  };
}
