zombiezen / sandpass

Password manager for Sandstorm
https://apps.sandstorm.io/app/rq41p170hcs5rzg66axggv8r90fjcssdky8891kq5s7jcpm1813h
Apache License 2.0
25 stars 7 forks source link

Feature: Support KeePass2 databases #6

Open zombiezen opened 8 years ago

zombiezen commented 8 years ago

(Not in scope for 1.0)

Since I started working on the reader/writer library, it seems as though the tide has turned to make the KeePass2 XML-based database format the lingua franca format over the v1 format, especially since KeePassX no longer writes it. This isn't as pressing as it can the database format still be read and written, it does call into question some scope things:

JamborJan commented 7 years ago

From my point of view the internal storage is not a big deal unless you need it for features like the desktop sync thing here https://github.com/zombiezen/sandpass/issues/22. I could imagine that something which allows simultaneous editing from different sessions would make sense.

To allow users to switch to your app importing from other formats is crucial. As KeePass apps usually don't provide a V1 export having the V2 format is important.

Furthermore to keep the spirit of open source applications and open data alive the same should be implemented for exporting data in case users want switch from your application to other solutions.

zombiezen commented 7 years ago

Acknowledged. Supporting the V2 format is definitely on the roadmap. I'm not 100% sure I understand what you are saying in the last paragraph: while it's not obvious, when you download the backup of the grain, the database is in the V1 format (by design).

JonTheNiceGuy commented 7 years ago

I think @JamborJan is saying you should have an "Export data" button, not just "export grain" button, so that if I decide I don't want to use sandpass anymore, I can walk away and just use Keepass, or import the data from your data-export into another application which supports keepass-formatted-data.

zombiezen commented 7 years ago

Happy to open a feature request for having a separate button, but if you dig into the zip file of an exported Sandpass grain, you will find a bonafide KDB v1 file, ready to be imported into another application. Supporting the V2 format allows folks to go from another solution into Sandpass. I suppose I wanted to make sure people could escape from my app first. :)