belaviyo / keepass-macpass-helper

A helper extension to use KeePass/MacPass/KeePassXC from Firefox, Opera, and Chrome browsers
https://webextension.org/listing/keepass-helper.html
Mozilla Public License 2.0
101 stars 28 forks source link

Safari Extension no longer works for Safari 13 #33

Open crkurz opened 4 years ago

crkurz commented 4 years ago

Hi @belaviyo ,

stupid me, I was so curious and straight away upgraded from Safari 12 to Safari 13 ... and Safari has now removed my loved KeePass-macpass-helper. It says it is a legacy extension, which is no longer supported in Safari 13.

Is there a chance you could upgrade to a Safari 13 Extension?

May be the AppleDeveloper Article "Converting a Legacy Safari Extension to a Safari App Extension" helps? (just a random guess, as I am just a simple Java-Developer-Mind.)

Happy to contribute with some donation.

Thanks in advance for considering

georgesnow commented 4 years ago

you can unpack the code and use the Safari Extension Builder to run the extension. (if it still exists on Safari 13). I am currently doing that on Safari 12 because when I upgraded from Safari 11 to 12. Safari removed my keepasshelper extension and I didn't have a copy. And it forced me to do it that way.

I believe one of the other issue tickets on here does mention there is not any plans to update it. The new Safari Extension require Developer ID and a signed extension. What does that mean? Well, I discovered that also means you have to create a "helper app" and make it a login item in order to make it reliable. On top of the fact it needs to written in ObjC/Swift and the inject code is JavaScript (and CSS) the extension part can not be in HTML anymore

All that being said I have rough Safari Extension built in ObjC. It will connect to a KeePassHTTP helper (such as MacPass's plugin) and re-used JavaScript to inject a dummy username and password. I am stuck on the encryption part for the HTTP request. I am really not real familiar with encryption in programming. I am looking at posting the code on a public repo on Github (as my time permits) to get some community assistance, but I haven't as of yet. I just haven't had a chance to clean up the code.