Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Native helper application #23

Open
luckyrat opened this issue Sep 4, 2017 · 6 comments

Comments

Projects
None yet
4 participants
@luckyrat
Copy link
Member

commented Sep 4, 2017

Create a separate helper application for Kee to communicate with, instead of direct WebSocket communication with the KeePassRPC server.

This will allow KeePass to be launched from the browser and potentially allow concurrent KeePass instances to be supported without the need for manual TCP port configuration at both ends.

  • Must not prevent existing WebSockets KPRPC client from functioning.
  • Will be launched by the browser and follow the lifecycle of the WebExtension in the browser.
  • More than one may be running at the same time.
  • Needs to be able to:
    • Launch KeePass if it's not running
    • Connect to KeePassRPC server
    • Ideally, detect presence or not of the KeePassRPC plugin (e.g. by determining that a KeePass process is active but KeePassRPC is not listening)
    • Proxy all KPRPC requests between Kee and the KeePassRPC server.
  • Could adjust usage of the agreed communications port to just initial handshaking and then hand off later communication to a different port in order to better support multiple instances and multiple user sessions running KeePass concurrently?
  • Will likely require changes at both ends of the existing KeePassRPC connection to ensure that connection status can be correctly reported to the user.

I have no plans to implement this at the moment but welcome either "reaction" feedback on this issue or offers to implement it from other people. For me, just using the built-in "Run KeePass at Windows startup" option will likely be good enough but I'm happy to advise and review implementations of a native application if anyone else feels strongly about the need for any features that this native application will enable.

@Aetf

This comment has been minimized.

Copy link

commented Sep 4, 2017

If launching application isn't possible in new versions of Firefox, how would you launch such a native helper?

@luckyrat

This comment has been minimized.

Copy link
Member Author

commented Sep 4, 2017

The browser would do it for us: https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Native_messaging

We have to use a separate application though, rather than KeePass itself because we don't control the command line I/O for KeePass.

@Aetf

This comment has been minimized.

Copy link

commented Sep 4, 2017

Interesting, I didn't know that API before. Thanks for clarifying. :)

I'm just asking out of curiosity though, since "run at start up" options works fine for me...

@johgoe

This comment has been minimized.

Copy link

commented Sep 11, 2017

Is there a reason to keep KeePassRPC instead og keepasshttp like the chrome plugins does?

@mygithuber

This comment has been minimized.

Copy link

commented Nov 21, 2017

Maybe this helps calling external programs (like KeePass) from inside Firefox-57:

Same problem with FDM (Free Download Manager). Its AddOn uses a helper called 'native client' with node.exe for starting FDM...

https://add0n.com/download-with.html?from=fdm
https://www.freedownloadmanager.org/

@luckyrat

This comment has been minimized.

Copy link
Member Author

commented Mar 27, 2019

https://github.com/smorks/keepassnatmsg might provide some inspiration to anyone that wants to take this on.

It apparently embeds a native helper application installer within the plgx. It's not clear how easily it can be repurposed to work with KeePassRPC but it's really the native messaging STDIN/OUT stuff I currently have no clue about so that's probably not a big concern.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.