Skip to content

Instantly share code, notes, and snippets.

@mrgrain
Last active February 28, 2024 16:55
Show Gist options
  • Save mrgrain/9c3519952d9af811bd7bf50bfcfaa16f to your computer and use it in GitHub Desktop.
Save mrgrain/9c3519952d9af811bd7bf50bfcfaa16f to your computer and use it in GitHub Desktop.
1Password CLI pinentry for gpg-agent
#!/bin/sh
COMMAND="op read $OP_PIN_ITEM"
echo "OK"
while read cmd rest; do
echo "cmd=$cmd rest=$rest" >&2
echo "cmd=$cmd rest=$rest" >> $LOG
case "$cmd" in
\#*)
echo "OK"
;;
GETPIN)
PASSPHRASE=${PASSPHRASE-`$COMMAND`}
echo "D ${PASSPHRASE}"
echo "OK"
;;
BYE)
echo "OK"
exit 0
;;
*)
echo "OK"
;;
esac
done
@ZlatyChlapec
Copy link

slightly adjusted fish version:

cat pinentry-1password.fish
#!/usr/bin/env fish

echo "OK"
set key "GPG-898DFASD78345D"
set passphrase ""
set vault "Private"

while read cmd val
  #echo "cmd=$cmd val=$val" >> /tmp/logs
  switch $cmd
    case SETDESC
      set passphrase (op read op://$vault/$key/password)
    case GETPIN
      echo "D $passphrase"
    case SETERROR
       echo "ERR 31 Invalid passphrase"
    case BYE
      exit 0
  end
  echo "OK"
end

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment