<div dir="ltr"><div>Hello,</div><div><br></div><div>I'm working on a firefox addon using pass script to retrieve login and password to fill websites forms.</div><div><br></div><div>It already works well, but I'm facing an issue about passphrase :</div>

<div>I can't make the gpg-agent passphrase dialogbox to work when pass is executed from firefox.</div><div><br></div><div>I have this error message :</div><div>Error opening terminal: unknown.<br></div><div>gpg-agent[17014]: command get_passphrase failed: End of file</div>

<div>gpg: problem with the agent: End of file</div><div>gpg: decryption failed: No secret key</div><div><br></div><div>It force me to make my own Firefox dialog box to ask the passphrase and to transmit it to the pass script.</div>

<div>That's why I made this little patch to add a passphrase option to the pass script for the ls command. If you apply it, it will allow everybody to use the addon without any particular effort.</div><div><br></div>
<div>
I know it may not be the best to bypass the default gpg-agent behavior to get the passphrase. But right now, I didn't found any other solution.</div><div>If someone have an other idee, let my know.</div><div><br></div>

<div>Thank you,</div><div>Johan.</div><div><br></div><div>---</div><div> src/password-store.sh | 9 +++++++--</div><div> 1 file changed, 7 insertions(+), 2 deletions(-)</div><div><br></div><div>diff --git a/src/password-store.sh b/src/password-store.sh</div>

<div>index 2500253..a4de733 100755</div><div>--- a/src/password-store.sh</div><div>+++ b/src/password-store.sh</div><div>@@ -193,11 +193,12 @@ case "$command" in</div><div> <span class="" style="white-space:pre">  </span>show|ls|list)</div>

<div> <span class="" style="white-space:pre">           </span>clip=0</div><div> </div><div>-<span class="" style="white-space:pre">            </span>opts="$($GETOPT -o c -l clip -n "$program" -- "$@")"</div>
<div>
+<span class="" style="white-space:pre">              </span>opts="$($GETOPT -o cp: -l clip,passphrase: -n "$program" -- "$@")"</div><div> <span class="" style="white-space:pre">          </span>err=$?</div><div>

 <span class="" style="white-space:pre">              </span>eval set -- "$opts"</div><div> <span class="" style="white-space:pre">             </span>while true; do case $1 in</div><div> <span class="" style="white-space:pre">                 </span>-c|--clip) clip=1; shift ;;</div>

<div>+<span class="" style="white-space:pre">                   </span>-p|--passphrase) shift; PASS_PHRASE="$1"; shift ;;</div><div> <span class="" style="white-space:pre">                      </span>--) shift; break ;;</div><div> <span class="" style="white-space:pre">               </span>esac done</div>

<div> </div><div>@@ -210,7 +211,11 @@ case "$command" in</div><div> <span class="" style="white-space:pre">           </span>passfile="$PREFIX/$path.gpg"</div><div> <span class="" style="white-space:pre">            </span>if [[ -f $passfile ]]; then</div>

<div> <span class="" style="white-space:pre">                   </span>if [[ $clip -eq 0 ]]; then</div><div>-<span class="" style="white-space:pre">                                </span>exec gpg2 -d $GPG_OPTS "$passfile"</div><div>+<span class="" style="white-space:pre">                              </span>if [[ -z "$PASS_PHRASE" ]]; then</div>

<div>+<span class="" style="white-space:pre">                                   </span>exec gpg2 -d $GPG_OPTS "$passfile"</div><div>+<span class="" style="white-space:pre">                              </span>else</div><div>+<span class="" style="white-space:pre">                                      </span>exec gpg2 -d $GPG_OPTS --passphrase "$PASS_PHRASE" "$passfile"</div>

<div>+<span class="" style="white-space:pre">                           </span>fi</div><div> <span class="" style="white-space:pre">                        </span>else</div><div> <span class="" style="white-space:pre">                              </span>pass="$(gpg2 -d $GPG_OPTS "$passfile" | head -n 1)"</div>

<div> <span class="" style="white-space:pre">                           </span>[[ -n $pass ]] || exit 1</div><div>-- </div><div>1.8.4</div><div><div style="text-align:left"><br></div></div>
</div>