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

KDBX 4 Compatibility issue: Non-standard format of encryption rounds #1598

Closed
mitchellknight opened this issue Sep 11, 2020 · 2 comments
Closed
Assignees
Labels
› Kdbxweb Core library: https://github.com/keeweb/kdbxweb Type ◦ Bug Something isn't working
Milestone

Comments

@mitchellknight
Copy link

Describe the bug
It appears that KeeWeb saves the encryption rounds in a non-standard format (using 4 bytes instead of 8). Some KDBX compatible apps just assume that missing bytes are zeros (and everything works fine) but apps that don't make this assumption will have issues.

To Reproduce
Steps to reproduce the behavior:

  1. Create a database with KDBX 4 / AES / 300000 key encryption rounds.
  2. Save database.
  3. Attempt to open database in KDBX 4 compatible software (KeePassium for iOS in my case).
  4. Database fails to open.

Expected behavior
Database opens and is ready for use.

Environment
macOS Catalina (KeePass) / iOS - Latest (KeePassium)

Kdbx File
Issue happened after I changed my KDBX 3 database to KDBX 4. Issue may not impact KDBX 3 files.

Logs
N/A.

Additional Details
The developer behind KeePassium is going to work around this specific issue on his end but it would be a good idea to fix the issue in KeeWeb in case other implementations have the same problem.

@mitchellknight mitchellknight added the Type ◦ Bug Something isn't working label Sep 11, 2020
@antelle
Copy link
Member

antelle commented Sep 11, 2020

Hi! Thanks for the detailed report! Just found how it's saved in KeePass and it's indeed Uint64 instead of Uint32 in KeeWeb. The issue should affect only KDBX4 with AES. A fix is coming soon...

@antelle antelle added the › Kdbxweb Core library: https://github.com/keeweb/kdbxweb label Sep 11, 2020
@antelle antelle added this to the v1.15.x milestone Sep 11, 2020
antelle pushed a commit to keeweb/kdbxweb that referenced this issue Sep 12, 2020
@antelle antelle self-assigned this Sep 12, 2020
@antelle
Copy link
Member

antelle commented Sep 12, 2020

Fixed, deployed to beta.keeweb.info, will be available in production soon.

keepassium added a commit to keepassium/KeePassium that referenced this issue Sep 20, 2020
Docs: update changelog
Release: version bump to 1.17.74
Chore: update in-app change log
Refine(backup): show a spinner when mass-deleting backup files
Refine(ios14): suggest re-adding the database if it is missing on iOS 14
Chore: replace hard-coded NSCocoaErrorDomain strings with a const
Refine(backup): keep the .latest backup file regardless of its age
Fix(fileKeeper): speed up maintenance of backup files
Fix(fileKeeper): freezing when there are hundreds of backup files (related #109)
Fix(urlRef): parsing file provider ID on iOS 14
Fix(appCover): warning about unbalanced calls to appearance transition
Fix(appIcon): unstable position of text labels on iOS 12 (fixes #123)
Fix(fileKeeper): backup directory not recognized on first launch
Fix(viewEntry): ambiguous constraints in cells
Fix(settings): ensure textScale is always valid
Fix(db2): opening kdbx4 with UInt32 transformRounds (keeweb/keeweb#1598)
Refactor(editGroup): simplify code
Refactor(editEntry): push icon picker to navVC instead of popover
Refactor(coo): make item icon picker a coordinator
Refactor: move ChooseIconVC to database/icon
Fix(fileTypes): opening files with unregistered extensions
Feat(autoFill): add Copy button to Caller ID
Chore: remove unused image
Fix: splash screen background color in dark mode
Refine: increase max length of generated passwords to 100
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
› Kdbxweb Core library: https://github.com/keeweb/kdbxweb Type ◦ Bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants