KeePassJava2
KeePassJava2 copied to clipboard
Basic support for KDBX4 with DOM
Changes
- Write to and save DOM databases with KDBX4 format (Issue #13)
- Read, write, and save KDBX4 databases with Argon2d or Argon2id as the KDF
- Java 11 compatibility and updated dependencies (Issue #30 and Issue #26)
- Introduces methods to save KDBX databases with user-defined headers (Issue #36)
Notes
- Doesn't solve Issue #28; Entry fields (i.e. passwords, title, url, etc.) are still stored and returned as Strings.
- Breaks the simple-xml representation pretty much entirely.
- Custom icons, custom data, and other aspects of KDBX4 files beyond creating and saving new Groups/Entries have not yet been implemented.
- Should still be compatible with Android even with bouncycastle (though I did not personally test this); KeePassDX seems to use it, so it is possible
- Databases are saved as KDBX4 by default
If necessary, I can rollback changes so KDBX3.1 is still the default save format.
Hi
Thanks for this. It will take me a bit of time to review, but a few things:
a) DOM database support is robust but very slow, so only supporting DOM is not really an objective b) looks like some simplification could be achieved in HmacBlockOutputStream (and looks like there is a bug, as commented) c) Could really do with some tests
I will make the time to review, high time that version 4 read/write was supported, probably wont't accept in exactly this form, but thank you for all this. I will be back.
Jo
@jorabin Thanks for the feedback, always appreciated! I'll try to fix the issues with simple-xml and actually write some JUnit tests (sorry about that!) in the coming months. On a side note, do you know of any way to make simple-xml work with things like custom icons? It would be great if it could work in any scenario, but if custom icons are enough pose problems, I don't think it would be worth the risk to try and use it on an actual database.
I know you've closed this issue, but I wanted to give a heads up that I finally pushed 2.2-SNAPSHOT with support for V4. Will address some of the other things "soon".