{ ... }: { text = '' # Check smartcard pin. function scunlock() { pkill keyboxd &> /dev/null # pkill gpg-agent &> /dev/null echo verify | gpg --card-edit --no-tty --command-fd=0 } # Encrypt files to myself. # Usage: encrypt function encrypt() { local IFS=$'\n' local targets=(''${@}) if [[ "''${targets}" = "" ]]; then help encrypt return 2 fi process() { gpg --encrypt --armor --recipient hi@voronind.com --output "''${target}.gpg" "''${target}" } _iterate_targets process ''${targets[@]} } # Decrypt files to myself. # Usage: decrypt [FILES] function decrypt() { local IFS=$'\n' local targets=(''${@}) [[ "''${targets}" = "" ]] && targets=(*.gpg) process() { gpg --decrypt --output "''${target%.gpg}" "''${target}" } _iterate_targets process ''${targets[@]} } # Sign a file. # Usage: sign function sign() { local IFS=$'\n' local targets=(''${@}) if [[ "''${targets}" = "" ]]; then help sign return 2 fi process() { gpg --detach-sig --armor --output "''${target}.sig" "''${target}" } _iterate_targets process ''${targets[@]} } # Verify a signature. All .sig files by default. # Usage: verify [FILES] function verify() { local IFS=$'\n' local targets=(''${@}) [[ "''${targets}" = "" ]] && targets=(*.sig) process() { gpg --verify "''${target}" } _iterate_targets process ''${targets[@]} } # Find user keys using keyservers. # Usage: gpg_find function gpg_find() { local email="''${1}" if [[ "''${email}" = "" ]]; then help gpg_find return 2 fi gpg --locate-keys "''${email}" \ || gpg --locate-keys --auto-key-locate hkps://keys.openpgp.org "''${email}" } # Update keys. function gpg_refresh() { gpg --refresh-keys } ''; }