gopasspw / gopassbridge

A web extension for Firefox and Chrome to insert login credentials from gopass
MIT License
264 stars 24 forks source link

Gopass bridge on macOS Firefox fails because of incorrect message size #151

Closed hcl31415 closed 4 years ago

hcl31415 commented 4 years ago

On macOS with newly installed Firefox gopass-bridge fails because of wrong message size:

Native application tried to send message of 1162690894 bytes, which exceeds the limit of 1048576 bytes.

macOS: 10.14.6

Firefox: 76.0.1 (64-bit)

GPG: gpg (GnuPG/MacGPG2) 2.2.17 libgcrypt 1.8.5

Gopass: gopass 1.9.2

martinhoefling commented 4 years ago

Can you please provide the content of

❯ cat ~/Library/Application\ Support/Mozilla/NativeMessagingHosts/com.justwatch.gopass.json
{
    "name": "com.justwatch.gopass",
    "description": "Gopass wrapper to search and return passwords",
    "path": "/Users/martin/.config/gopass/gopass_wrapper.sh",
    "type": "stdio",
    "allowed_extensions": [
        "{eec37db0-22ad-4bf1-9068-5ae08df8c7e9}"
    ]
}

and the gopass_wrapper.sh

❯ cat /Users/martin/.config/gopass/gopass_wrapper.sh
#!/bin/sh

if [ -f ~/.gpg-agent-info ] && [ -n "$(pgrep gpg-agent)" ]; then
    source ~/.gpg-agent-info
    export GPG_AGENT_INFO
else
    eval $(gpg-agent --daemon)
fi

export PATH="$PATH:/usr/local/bin" # required on MacOS/brew
export GPG_TTY="$(tty)"

/usr/local/bin/gopass jsonapi listen

exit $?
hcl31415 commented 4 years ago

Seems pretty much the same as yours:

gpg-agent is running, sourcing ~/.gpg-agent-info returns /Users/hcl/.gnupg/S.gpg-agent:1226:1 (agent is also active behind this socket).

FYI: I could also replicate this behaviour on another machine with Catalina installed. It works fine though on Arch Linux with the same version of Firefox.

Manifest:

hcl@artesonraju: ~ > cat Library/Application\ Support/Mozilla/NativeMessagingHosts/com.justwatch.gopass.json
{
    "name": "com.justwatch.gopass",
    "description": "Gopass wrapper to search and return passwords",
    "path": "/Users/hcl/Library/Application Support/gopass/gopass_wrapper.sh",
    "type": "stdio",
    "allowed_extensions": [
        "{eec37db0-22ad-4bf1-9068-5ae08df8c7e9}"
    ]
}

Wrapper:

hcl@artesonraju: ~ > cat .config/gopass/gopass_wrapper.sh
#!/bin/sh

if [ -f ~/.gpg-agent-info ] && [ -n "$(pgrep gpg-agent)" ]; then
    source ~/.gpg-agent-info
    export GPG_AGENT_INFO
else
    eval $(gpg-agent --daemon)
fi

export PATH="$PATH:/usr/local/bin" # required on MacOS/brew
export GPG_TTY="$(tty)"

/usr/local/bin/gopass jsonapi listen

exit $?
hcl31415 commented 4 years ago

Actually, I could narrow down the problem: It doesn't seem to be directly related to gopass or gopass-bridge.

It fails only if one uses gpg included in GPGTools for Mac, the error disappears, when reverting to brew installed gpg (GPGTools still behave correctly with only the brew installed gpg binaries).

So I think that issue can be closed.

martinhoefling commented 4 years ago

OK, thx for investigating.

LostLaplace commented 3 years ago

I am seeing this issue even with the brew gpg package installed and the mactools GPGSuite not installed. Any other ideas?