john icon indicating copy to clipboard operation
john copied to clipboard

Support KeePass database format 4.x

Open solardiz opened this issue 2 years ago • 5 comments

Our keepass2john.c has:

uint32_t FileVersion32 = 0x00040000;
uint32_t FileVersion32_4 = 0x00040000;  // from KeePass 2.36 sources

// We currently support database formats up to KDBX v3.x. KDBX 4.x is not
// supported yet. See "KdbxFile.cs" in KeePass 2.36 for more information on
// KDBX 4.x format.
        if (uVersion >= FileVersion32_4) {
                fprintf(stderr, "! %s : File version '%x' is currently not supported!\n", encryptedDatabase, uVersion);
                goto bailout;
        }

This was actually triggered by a user (on Kali Linux 2021.1, but our keepass2john.c hasn't changed in this respect since 2017):

$ keepass2john test.kdbx
! test.kdbx : File version '40001' is currently not supported!

$ file test.kdbx
test.kdbx: Keepass password database 2.x KDBX

(The reporting by file doesn't mean much - it probably is unaware of newer versions.)

solardiz avatar Mar 27 '22 16:03 solardiz

Apparently, KDBX 4 uses Argon2 by default. We might want to handle that as a new format with its own set of tunable costs (Argon2's) or add the algorithm choice as a first tunable cost (but I'd prefer separate format, so that it's separately benchmarked, etc).

solardiz avatar Mar 29 '22 17:03 solardiz

Is there any update on this issue ? :smile:

krillin666 avatar Jul 21 '22 13:07 krillin666

@krillin666 No, and moreover no update is currently expected - as you can see, this issue isn't part of a milestone. So it just sits here. Maybe a new contributor would appear and take care of it.

solardiz avatar Jul 21 '22 15:07 solardiz