Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

[deleted]


Just curious, is there a reason why you decided to design your own storage format instead of reusing kdbx4?


Thanks for the question. Frankly, at the time, I was under the impression that Keypass what a quite powerful and thus complex beast. I wanted something simple with just the data I needed saved (ie app name, username and password, nothing more) so I went ahead and created the new format.

It was actually interesting to work on a new file format. The version 1 was not formally versioned. I realised that for the version 2, I would need to add a version number to the file format. Of course, the world doesn't care about any of that, but I learned something doing it and am happy about that.


I can definitely understand the simplicity argument; it is much lower barrier to just throw something together than to start reading some spec that has lot more stuff than what you need.

Designing things yourself is enjoyable and educational, so that is also a good reason.

The flipside here is that keepass format has passed quite a lot of scruitny over time, so the design should be pretty decent at this point (especially from security perspective). All that complexity that might feel overwhelming at the beginning also gives you room to grow over time.

As long as your code is well architected and your featureset somewhat conservative, switching out the storage layer shouldn't be too difficult if you ever change your mind. So from that perspective it makes sense to keep going with your own format as long as you feel like it, and focus on more important things.


I really wish folks would just use kdbx4 as a standard. Or any other format, I just want portability.


I think there are better ways to have portability. Pass [1] handles this nicely with import-scripts. Unfortunately, it seems like it can import into pass, not into any other password managers.

[1] https://www.passwordstore.org/




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: