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

Adding support for KDBX4 file format #148

Closed
TheZ3ro opened this issue Jan 9, 2017 · 26 comments · Fixed by #1230
Closed

Adding support for KDBX4 file format #148

TheZ3ro opened this issue Jan 9, 2017 · 26 comments · Fixed by #1230
Assignees
Milestone

Comments

@TheZ3ro
Copy link
Contributor

TheZ3ro commented Jan 9, 2017

KeePass 2.35 introduces version 4 of the KDBX file format. This new format features both improvements and new capabilities. These are outlined in the following sections.

http://keepass.info/help/kb/kdbx_4.html

@TheZ3ro TheZ3ro changed the title Adding support for KDBX4 Adding support for KDBX4 file format Jan 9, 2017
@droidmonkey
Copy link
Member

That's gonna be a doozy to implement... looks like a fun challenge!

@TheZ3ro
Copy link
Contributor Author

TheZ3ro commented Jan 9, 2017

Yep, I think the same 😄

@debfx
Copy link
Contributor

debfx commented Jan 9, 2017

Dependency wise it requires ChaCha20 and Argon2.

ChaCha20 is implemented in libgcrypt 1.7 but the release is less than a year old so not widely supported in current Linux distros.

For Argon2 embedding https://github.com/P-H-C/phc-winner-argon2 seems to be the best option for now.

@fcore117
Copy link

Just include library statically, you do not have to folow Linux rules to stay behind with development.

@phoerious phoerious modified the milestone: v2.2.0 Jan 14, 2017
@TheZ3ro
Copy link
Contributor Author

TheZ3ro commented Mar 14, 2017

KeePassX related PR keepassx/keepassx#200

@Diapolo
Copy link

Diapolo commented Jun 15, 2017

Didn't see this sorry, so please keep us updated on your progress :). I appreciate your work on KDBX 4 support.

@grinapo
Copy link

grinapo commented Oct 6, 2017

Wouldn't the PR in @TheZ3ro's comment actually resolve this?

@droidmonkey
Copy link
Member

It kind of does, but the way it was implemented was not very good. It intertwined the code between kdbx3 and kdbx4 instead of building a new reader/writer class specifically for kdbx4.

@sergeevabc
Copy link

O ChaCha20, where art thou?

@phoerious
Copy link
Member

We are basically through all the ground work and will add new ciphers from here: #1230

@MyXelf
Copy link

MyXelf commented Jan 19, 2018

Is there any way to keep building the develop branch of KPXC on current Ubuntu LTS based Linux distros? Due to the lack of Argon2 and the required gcrypt libs, this looks like a dead end, at least until April this year.

I've been using the develop branch since a long time ago. Probably the suggestion would be to use the master branch, but there is a long list of features/bugfixes that are only in the develop branch as the most "stable" one (more than 6 months of code).

Perhaps due to the intrinsic complications of the KDBX4 implementation, I'm missing something and this WIP with no ETA can't be done in a feature branch.

Any suggestions are welcome, thanks

@ArchangeGabriel
Copy link

Why don’t you just build argon2 yourself? See #1401.

@phoerious
Copy link
Member

phoerious commented Jan 19, 2018

Ubuntu ships libargon2-0-dev starting with 16.04. For 14.04 you can install it from our PPA: https://launchpad.net/~phoerious/+archive/ubuntu/keepassxc

We also ship the required versions of libgcrypt20 and libgpg-error for both 14.04 and 16.04 through that PPA.

@MyXelf
Copy link

MyXelf commented Jan 19, 2018

Thanks for the suggestions. I'll try those.

@phoerious
Copy link
Member

@sergeevabc
Copy link

Is there a Windows build available with implemented KDBX4 features?

@phoerious
Copy link
Member

Not yet. We will release a beta version soon.

phoerious added a commit that referenced this issue Feb 27, 2018
- Add support for KDBX 4.0, Argon2 and ChaCha20 [#148, #1179, #1230, #1494]
- Add SSH Agent feature [#1098, #1450, #1463]
- Add preview panel with details of the selected entry [#879, #1338]
- Add more and configurable columns to entry table and allow copying of values by double click [#1305]
- Add KeePassXC-Browser API as a replacement for KeePassHTTP [#608]
- Deprecate KeePassHTTP [#1392]
- Add support for Steam one-time passwords [#1206]
- Add support for multiple Auto-Type sequences for a single entry [#1390]
- Adjust YubiKey HMAC-SHA1 challenge-response key generation for KDBX 4.0 [#1060]
- Replace qHttp with cURL for website icon downloads [#1460]
- Remove lock file [#1231]
- Add option to create backup file before saving [#1385]
- Ask to save a generated password before closing the entry password generator [#1499]
- Resolve placeholders recursively [#1078]
- Add Auto-Type button to the toolbar [#1056]
- Improve window focus handling for Auto-Type dialogs [#1204, #1490]
- Auto-Type dialog and password generator can now be exited with ESC [#1252, #1412]
- Add optional dark tray icon [#1154]
- Add new "Unsafe saving" option to work around saving problems with file sync services [#1385]
- Add IBus support to AppImage and additional image formats to Windows builds [#1534, #1537]
- Add diceware password generator to CLI [#1406]
- Add --key-file option to CLI [#816, #824]
- Add DBus interface for opening and closing KeePassXC databases [#283]
- Add KDBX compression options to database settings [#1419]
- Discourage use of old fixed-length key files in favor of arbitrary files [#1326, #1327]
- Correct reference resolution in entry fields [#1486]
- Fix window state and recent databases not being remembered on exit [#1453]
- Correct history item generation when configuring TOTP for an entry [#1446]
- Correct multiple TOTP bugs [#1414]
- Automatic saving after every change is now a default [#279]
- Allow creation of new entries during search [#1398]
- Correct menu issues on macOS [#1335]
- Allow compilation on OpenBSD [#1328]
- Improve entry attachments view [#1139, #1298]
- Fix auto lock for Gnome and Xfce [#910, #1249]
- Don't remember key files in file dialogs when the setting is disabled [#1188]
- Improve database merging and conflict resolution [#807, #1165]
- Fix macOS pasteboard issues [#1202]
- Improve startup times on some platforms [#1205]
- Hide the notes field by default [#1124]
- Toggle main window by clicking tray icon with the middle mouse button [#992]
- Fix custom icons not copied over when databases are merged [#1008]
- Allow use of DEL key to delete entries [#914]
- Correct intermittent crash due to stale history items [#1527]
- Sanitize newline characters in title, username and URL fields [#1502]
- Reopen previously opened databases in correct order [#774]
- Use system's zxcvbn library if available [#701]
- Implement various i18n improvements [#690, #875, #1436]
@ArchangeGabriel
Copy link

The FAQ should be updated: https://keepassxc.org/docs/#faq-kdbx4.

@phoerious
Copy link
Member

Done. Thanks for the reminder.

@antimech
Copy link

Why not make argon2 by default KDF?

@phoerious
Copy link
Member

It's going to be the default in 2.4.

@antimech
Copy link

@phoerious thanks for your answer!

@antimech
Copy link

@phoerious, btw. Where can I find upcoming release dates?

@antimech
Copy link

@Generator, thanks!

@phoerious
Copy link
Member

The release dates set for milestones are not accurate. They are merely ballpark guesses of when we think we'll be finished.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.