add gpg auto-unlock
This commit is contained in:
		
							parent
							
								
									a8a8be5a59
								
							
						
					
					
						commit
						c5e919a2dc
					
				
					 4 changed files with 75 additions and 0 deletions
				
			
		
							
								
								
									
										30
									
								
								scripts/_gpg-unlock.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								scripts/_gpg-unlock.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,30 @@
 | 
			
		|||
{ config, pkgs, lib, ... }:
 | 
			
		||||
pkgs.writeShellScriptBin "_gpg-unlock" ''
 | 
			
		||||
  ${pkgs.gnupg}/bin/gpg-connect-agent reloadagent /bye
 | 
			
		||||
 | 
			
		||||
  set -xe
 | 
			
		||||
 | 
			
		||||
  test -f "$HOME/.config/.preset-password" || {
 | 
			
		||||
    notify-send "No preset password found"
 | 
			
		||||
    exit 0;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  get_keygrip() {
 | 
			
		||||
    ${pkgs.gnupg}/bin/gpg --list-secret-keys --with-keygrip |
 | 
			
		||||
    awk '
 | 
			
		||||
    /^ssb/ {
 | 
			
		||||
        ssb=1
 | 
			
		||||
    }
 | 
			
		||||
    /Keygrip/{
 | 
			
		||||
        if (ssb) print $3
 | 
			
		||||
    }'
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  keygrip=$(get_keygrip)
 | 
			
		||||
 | 
			
		||||
  test -n "$keygrip" || exit 0
 | 
			
		||||
 | 
			
		||||
  cat "$HOME/.config/.preset-password" |
 | 
			
		||||
      base64 -d |
 | 
			
		||||
      ${pkgs.gnupg}/libexec/gpg-preset-passphrase --preset "$keygrip"
 | 
			
		||||
''
 | 
			
		||||
| 
						 | 
				
			
			@ -6,4 +6,5 @@
 | 
			
		|||
  terminal = import ./terminal.nix { inherit config pkgs lib; };
 | 
			
		||||
  wpass = import ./wpass.nix { inherit config pkgs lib; };
 | 
			
		||||
  screenshotsh = import ./screenshotsh.nix { inherit config pkgs lib; };
 | 
			
		||||
  _gpg-unlock = import ./_gpg-unlock.nix { inherit config pkgs lib; };
 | 
			
		||||
})
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue