Kee Vault 2 is free!

I’m delighted to announce that Kee Vault 2 for Android will be available to everyone for free! The pre-release version is available now in the Google Play store. It’s fully featured and working excellently on our test phones but we need you to help us to test it on a wider variety of devices before we officially launch and promote it.

Kee Vault supporters that contribute with a regular subscription payment still enjoy these additional benefits of the Kee Vault service:

  • Access from an unlimited number of devices, including https://keevault.pm on any desktop machine or iOS device.
  • Automatic backup protection of your passwords, in case your device gets lost or breaks.

We can’t wait to hear what you think of the new app so please install it now from Google Play: https://play.google.com/store/apps/details?id=com.keevault.keevault

Personally, I’ve always wanted to enable as many people as possible to benefit from great quality password management with no strings attached. The only way to do that while supplying an ongoing service is to require a small contribution from users towards the costs associated with that service.

“Free until we decide we have captured enough of your data to hold you to ransom”, “free because we overcharge a small portion of naive customers to subsidise you” or “free because we sell your personal data” are the most common strategies used by companies offering free services on the internet. No doubt there are companies that start out believing it’ll be different for them but it’s likely only a matter of time until the reality of mounting bills forces a change of strategy and it’s always you that suffers. Therefore I’ve always required a subscription from those users that benefit from the Kee Vault service and I’m grateful to all the users that share this vision.

With Kee Vault 2, we can offer an alternative approach for those who cannot afford to pay for the best quality password management service so I’m really pleased that we can donate the full Kee Vault app experience on Android without any account sign-up being necessary.

This is a cost to us - time to support some additional users and some extra development and maintenance of the app to enable the free service - but unlike with Kee Vault 1 there is no ongoing cost to us or other users when someone uses the free version of the app. This means we can confidently offer the app for free on Android without the risk of needing to break that promise in future.

By the way, if we develop an iOS variant of Kee Vault 2 we would like to offer that for free too but we haven’t finalised our plans for the next phase of development on version 2 so we can’t yet say whether this will be possible. As always, you’ll hear about it here first.

Having trouble with the Play Store link above?

Google don’t always roll out new apps to everyone at the same time or in the same way. The link is working for some people already but just in case you have a problem, you could try the following additional links which they have told us to supply you with:

If you’re on your Android phone now: https://play.google.com/store/apps/details?id=com.keevault.keevault
If you’re reading this on a different device: https://play.google.com/apps/testing/com.keevault.keevault

3 Likes

Thank you for this.

I have been using Keepass2 on my Android phone for a while, with a direct copy of my PC-based KDBX file (Keepass version: 2.49 (64-bit))

Phone: LG (LMK300TM) running Android 10

I tried importing this file into KeeVault, but it failed, with a message in the Log Console indicating that the KDBX version 3.1 was unsupported, requiring verson 4.x instead.

Is that something I can work around, or is Keepass on my PC outdated ?

I’m getting the same thing too

Thanks for trying it out. I will investigate whether it’s possible to add support for importing older versions of KDBX files or at least make the error message more helpful.

Until then, you can upgrade your KDBX file to version 4 using KeePass. Go to File > Database Settings > Security tab and then change the “Key derivation function” to any Argon2 option except Argon2id (this is a new option in the latest version of KeePass which we don’t yet support - again, I’ll try to add support for this soon).

2 Likes

Thank you very much for this. I installed it on two different Android smartphones running Android 10. If you need more data, no problem. When I installed com.keevault.keevault from the Google Playstore, it installes fine and then asks me for my eMail address. Also fine. Then it asks me for my password (which I never set yet) and tells me that my password is incorrect. What might I be doing wrong and how should I do it correctly?

If you just want to use it separately on each Android smartphone you just click the “use the app for free” option rather than entering your email address (unusual I know, but since we do not have any need to collect email addresses for free users, you do not need to supply one).

If you want to sync your passwords across both of those devices (or more), you would need to subscribe to the Kee Vault service at https://keevault.pm and then sign-in using the email and password you create there.

1 Like

Thanks again!

When trying to import my Datenbank.kdbx I get an error message. Sorry the log is so long, but I don’t know what is important and what is not. Here goes:

[I] Initialized logger

[I] Initialized WidgetsFlutterBinding

[I] Initialized PSL

[D] starting account cubit

[D] no user found

[D] account cubit started

[V] App State: AppLifecycleState.inactive

[V] App State: AppLifecycleState.paused

[V] App State: AppLifecycleState.resumed

[D] creating new local vault

[D] kdbx.format: 2022-01-12 16:38:26.505214: Saving JQN31qvoRUugjAs+ogjTug== (locked: false)

[D] kdbx_var_dictionary: 2022-01-12 16:38:26.508311: Reading VarDictionary 1.0

[D] kdbx.header: 2022-01-12 16:38:26.509971: Writing header HeaderFields.CipherID (16)

[D] kdbx.header: 2022-01-12 16:38:26.510055: Writing header HeaderFields.CompressionFlags (4)

[D] kdbx.header: 2022-01-12 16:38:26.510108: Writing header HeaderFields.MasterSeed (32)

[D] kdbx.header: 2022-01-12 16:38:26.510246: Writing header HeaderFields.EncryptionIV (16)

[D] kdbx.header: 2022-01-12 16:38:26.510351: Writing header HeaderFields.KdfParameters (139)

[D] kdbx.header: 2022-01-12 16:38:26.510416: Writing header HeaderFields.EndOfHeader (0)

[D] kdbx_var_dictionary: 2022-01-12 16:38:26.512660: Reading VarDictionary 1.0

[D] key_encrypter_kdf: 2022-01-12 16:38:26.512966: Must be using argon2

[V] Starting argon2

[D] Finished argon2 in 142ms

[D] kdbx.header: 2022-01-12 16:38:26.658292: Writing header InnerHeaderFields.InnerRandomStreamID (1) (4)

[D] kdbx.header: 2022-01-12 16:38:26.658383: Writing header InnerHeaderFields.InnerRandomStreamKey (2) (64)

[D] kdbx.header: 2022-01-12 16:38:26.658450: Writing header InnerHeaderFields.EndOfHeader (0) (0)

[D] kdbx.format: 2022-01-12 16:38:26.667740: We need AES

[D] Will require a full password to be entered every 60 days

[D] Quick unlock unavailable

[D] kdbx.header: 2022-01-12 16:38:26.701826: Reading version: 4.0

[D] kdbx.header: 2022-01-12 16:38:26.701983: Reading header HeaderFields.CipherID (2) (size: 16)}

[D] kdbx.header: 2022-01-12 16:38:26.702039: Reading header HeaderFields.CompressionFlags (3) (size: 4)}

[D] kdbx.header: 2022-01-12 16:38:26.702094: Reading header HeaderFields.MasterSeed (4) (size: 32)}

[D] kdbx.header: 2022-01-12 16:38:26.702167: Reading header HeaderFields.EncryptionIV (7) (size: 16)}

[D] kdbx.header: 2022-01-12 16:38:26.702218: Reading header HeaderFields.KdfParameters (11) (size: 139)}

[D] kdbx.header: 2022-01-12 16:38:26.702286: EndOfHeader HeaderFields.EndOfHeader

[D] kdbx.format: 2022-01-12 16:38:26.702409: Header hash matches.

[D] kdbx_var_dictionary: 2022-01-12 16:38:26.702460: Reading VarDictionary 1.0

[D] key_encrypter_kdf: 2022-01-12 16:38:26.702628: Must be using argon2

[V] Starting argon2

[D] Finished argon2 in 133ms

[D] kdbx.format: 2022-01-12 16:38:26.837501: We need AES

[D] kdbx.format: 2022-01-12 16:38:26.837694: decrypting 576 with block size 16

[D] kdbx.format: 2022-01-12 16:38:26.838774: compression: Compression.gzip

[D] kdbx.header: 2022-01-12 16:38:26.839112: Reading header InnerHeaderFields.InnerRandomStreamID (1) (size: 4)}

[D] kdbx.header: 2022-01-12 16:38:26.839173: Reading header InnerHeaderFields.InnerRandomStreamKey (2) (size: 64)}

[D] kdbx.header: 2022-01-12 16:38:26.839219: EndOfHeader InnerHeaderFields.EndOfHeader

[D] kdbx.format: 2022-01-12 16:38:26.850588: successfully read Meta.

[D] new local vault created

[D] Supplied config for import is not newer than our current one so we are ignoring it.

[V] App State: AppLifecycleState.inactive

[V] App State: AppLifecycleState.resumed

[V] App State: AppLifecycleState.inactive

[V] App State: AppLifecycleState.paused

[V] App State: AppLifecycleState.resumed

[D] attempting to open source vault

[D] kdbx.header: 2022-01-12 16:39:35.344494: Reading version: 3.1

[D] kdbx.header: 2022-01-12 16:39:35.344613: Reading header HeaderFields.CipherID (2) (size: 16)}

[D] kdbx.header: 2022-01-12 16:39:35.344679: Reading header HeaderFields.CompressionFlags (3) (size: 4)}

[D] kdbx.header: 2022-01-12 16:39:35.344730: Reading header HeaderFields.MasterSeed (4) (size: 32)}

[D] kdbx.header: 2022-01-12 16:39:35.344781: Reading header HeaderFields.TransformSeed (5) (size: 32)}

[D] kdbx.header: 2022-01-12 16:39:35.344832: Reading header HeaderFields.TransformRounds (6) (size: 8)}

[D] kdbx.header: 2022-01-12 16:39:35.344890: Reading header HeaderFields.EncryptionIV (7) (size: 16)}

[D] kdbx.header: 2022-01-12 16:39:35.344942: Reading header HeaderFields.ProtectedStreamKey (8) (size: 32)}

[D] kdbx.header: 2022-01-12 16:39:35.344992: Reading header HeaderFields.StreamStartBytes (9) (size: 32)}

[D] kdbx.header: 2022-01-12 16:39:35.345064: Reading header HeaderFields.InnerRandomStreamID (10) (size: 4)}

[D] kdbx.header: 2022-01-12 16:39:35.345136: EndOfHeader HeaderFields.EndOfHeader

[D] kdbx.header: 2022-01-12 16:39:35.345184: Reading version: 3.1

[D] kdbx.header: 2022-01-12 16:39:35.345235: Reading header HeaderFields.CipherID (2) (size: 16)}

[D] kdbx.header: 2022-01-12 16:39:35.345287: Reading header HeaderFields.CompressionFlags (3) (size: 4)}

[D] kdbx.header: 2022-01-12 16:39:35.345342: Reading header HeaderFields.MasterSeed (4) (size: 32)}

[D] kdbx.header: 2022-01-12 16:39:35.345397: Reading header HeaderFields.TransformSeed (5) (size: 32)}

[D] kdbx.header: 2022-01-12 16:39:35.345525: Reading header HeaderFields.TransformRounds (6) (size: 8)}

[D] kdbx.header: 2022-01-12 16:39:35.345604: Reading header HeaderFields.EncryptionIV (7) (size: 16)}

[D] kdbx.header: 2022-01-12 16:39:35.345655: Reading header HeaderFields.ProtectedStreamKey (8) (size: 32)}

[D] kdbx.header: 2022-01-12 16:39:35.345706: Reading header HeaderFields.StreamStartBytes (9) (size: 32)}

[D] kdbx.header: 2022-01-12 16:39:35.345755: Reading header HeaderFields.InnerRandomStreamID (10) (size: 4)}

[D] kdbx.header: 2022-01-12 16:39:35.345814: EndOfHeader HeaderFields.EndOfHeader

[D] kdbx.format: 2022-01-12 16:39:35.345889: Unsupported version for KdbxHeader{sig1: 2594363651, sig2: 3041655655, version: 3.1}

[D] Supplied config for import is not newer than our current one so we are ignoring it.

[E] Import failed: KdbxUnsupportedException{hint: Unsupported kdbx version 3.1. Only 4.x is supported.} ; #0 KdbxFormat.readTwice (package:kdbx/src/kdbx_format.dart:610)

#1 LocalVaultFile.unlock (package:keevault/vault_file.dart:183)

#2 VaultCubit.importKdbx (package:keevault/cubit/vault_cubit.dart:1067)

#3 ImportExportWidget._import (package:keevault/widgets/import_export.dart:176)

[V] App State: AppLifecycleState.inactive

[V] App State: AppLifecycleState.paused

[V] App State: AppLifecycleState.resumed

[D] attempting to open source vault

[D] kdbx.header: 2022-01-12 16:40:08.208372: Reading version: 3.1

[D] kdbx.header: 2022-01-12 16:40:08.208466: Reading header HeaderFields.CipherID (2) (size: 16)}

[D] kdbx.header: 2022-01-12 16:40:08.208543: Reading header HeaderFields.CompressionFlags (3) (size: 4)}

[D] kdbx.header: 2022-01-12 16:40:08.208611: Reading header HeaderFields.MasterSeed (4) (size: 32)}

[D] kdbx.header: 2022-01-12 16:40:08.208681: Reading header HeaderFields.TransformSeed (5) (size: 32)}

[D] kdbx.header: 2022-01-12 16:40:08.208749: Reading header HeaderFields.TransformRounds (6) (size: 8)}

[D] kdbx.header: 2022-01-12 16:40:08.208829: Reading header HeaderFields.EncryptionIV (7) (size: 16)}

[D] kdbx.header: 2022-01-12 16:40:08.208897: Reading header HeaderFields.ProtectedStreamKey (8) (size: 32)}

[D] kdbx.header: 2022-01-12 16:40:08.208966: Reading header HeaderFields.StreamStartBytes (9) (size: 32)}

[D] kdbx.header: 2022-01-12 16:40:08.209034: Reading header HeaderFields.InnerRandomStreamID (10) (size: 4)}

[D] kdbx.header: 2022-01-12 16:40:08.209117: EndOfHeader HeaderFields.EndOfHeader

[D] kdbx.header: 2022-01-12 16:40:08.209182: Reading version: 3.1

[D] kdbx.header: 2022-01-12 16:40:08.209248: Reading header HeaderFields.CipherID (2) (size: 16)}

[D] kdbx.header: 2022-01-12 16:40:08.209318: Reading header HeaderFields.CompressionFlags (3) (size: 4)}

[D] kdbx.header: 2022-01-12 16:40:08.209388: Reading header HeaderFields.MasterSeed (4) (size: 32)}

[D] kdbx.header: 2022-01-12 16:40:08.209460: Reading header HeaderFields.TransformSeed (5) (size: 32)}

[D] kdbx.header: 2022-01-12 16:40:08.209528: Reading header HeaderFields.TransformRounds (6) (size: 8)}

[D] kdbx.header: 2022-01-12 16:40:08.209610: Reading header HeaderFields.EncryptionIV (7) (size: 16)}

[D] kdbx.header: 2022-01-12 16:40:08.209680: Reading header HeaderFields.ProtectedStreamKey (8) (size: 32)}

[D] kdbx.header: 2022-01-12 16:40:08.209757: Reading header HeaderFields.StreamStartBytes (9) (size: 32)}

[D] kdbx.header: 2022-01-12 16:40:08.209828: Reading header HeaderFields.InnerRandomStreamID (10) (size: 4)}

[D] kdbx.header: 2022-01-12 16:40:08.209916: EndOfHeader HeaderFields.EndOfHeader

[D] kdbx.format: 2022-01-12 16:40:08.210230: Unsupported version for KdbxHeader{sig1: 2594363651, sig2: 3041655655, version: 3.1}

[D] Supplied config for import is not newer than our current one so we are ignoring it.

[E] Import failed: KdbxUnsupportedException{hint: Unsupported kdbx version 3.1. Only 4.x is supported.} ; #0 KdbxFormat.readTwice (package:kdbx/src/kdbx_format.dart:610)

#1 LocalVaultFile.unlock (package:keevault/vault_file.dart:183)

#2 VaultCubit.importKdbx (package:keevault/cubit/vault_cubit.dart:1067)

#3 ImportExportWidget._import (package:keevault/widgets/import_export.dart:176)

[V] App State: AppLifecycleState.inactive

[V] App State: AppLifecycleState.paused

[V] App State: AppLifecycleState.resumed

[D] attempting to open source vault

[D] kdbx.header: 2022-01-12 16:40:21.746894: Reading version: 3.1

[D] kdbx.header: 2022-01-12 16:40:21.746989: Reading header HeaderFields.CipherID (2) (size: 16)}

[D] kdbx.header: 2022-01-12 16:40:21.747063: Reading header HeaderFields.CompressionFlags (3) (size: 4)}

[D] kdbx.header: 2022-01-12 16:40:21.747131: Reading header HeaderFields.MasterSeed (4) (size: 32)}

[D] kdbx.header: 2022-01-12 16:40:21.747198: Reading header HeaderFields.TransformSeed (5) (size: 32)}

[D] kdbx.header: 2022-01-12 16:40:21.747268: Reading header HeaderFields.TransformRounds (6) (size: 8)}

[D] kdbx.header: 2022-01-12 16:40:21.747353: Reading header HeaderFields.EncryptionIV (7) (size: 16)}

[D] kdbx.header: 2022-01-12 16:40:21.747427: Reading header HeaderFields.ProtectedStreamKey (8) (size: 32)}

[D] kdbx.header: 2022-01-12 16:40:21.747501: Reading header HeaderFields.StreamStartBytes (9) (size: 32)}

[D] kdbx.header: 2022-01-12 16:40:21.747577: Reading header HeaderFields.InnerRandomStreamID (10) (size: 4)}

[D] kdbx.header: 2022-01-12 16:40:21.747667: EndOfHeader HeaderFields.EndOfHeader

[D] kdbx.header: 2022-01-12 16:40:21.747740: Reading version: 3.1

[D] kdbx.header: 2022-01-12 16:40:21.747814: Reading header HeaderFields.CipherID (2) (size: 16)}

[D] kdbx.header: 2022-01-12 16:40:21.747895: Reading header HeaderFields.CompressionFlags (3) (size: 4)}

[D] kdbx.header: 2022-01-12 16:40:21.747974: Reading header HeaderFields.MasterSeed (4) (size: 32)}

[D] kdbx.header: 2022-01-12 16:40:21.748082: Reading header HeaderFields.TransformSeed (5) (size: 32)}

[D] kdbx.header: 2022-01-12 16:40:21.748162: Reading header HeaderFields.TransformRounds (6) (size: 8)}

[D] kdbx.header: 2022-01-12 16:40:21.748249: Reading header HeaderFields.EncryptionIV (7) (size: 16)}

[D] kdbx.header: 2022-01-12 16:40:21.748325: Reading header HeaderFields.ProtectedStreamKey (8) (size: 32)}

[D] kdbx.header: 2022-01-12 16:40:21.748400: Reading header HeaderFields.StreamStartBytes (9) (size: 32)}

[D] kdbx.header: 2022-01-12 16:40:21.748476: Reading header HeaderFields.InnerRandomStreamID (10) (size: 4)}

[D] kdbx.header: 2022-01-12 16:40:21.748567: EndOfHeader HeaderFields.EndOfHeader

[D] kdbx.format: 2022-01-12 16:40:21.748665: Unsupported version for KdbxHeader{sig1: 2594363651, sig2: 3041655655, version: 3.1}

[D] Supplied config for import is not newer than our current one so we are ignoring it.

[E] Import failed: KdbxUnsupportedException{hint: Unsupported kdbx version 3.1. Only 4.x is supported.} ; #0 KdbxFormat.readTwice (package:kdbx/src/kdbx_format.dart:610)

#1 LocalVaultFile.unlock (package:keevault/vault_file.dart:183)

#2 VaultCubit.importKdbx (package:keevault/cubit/vault_cubit.dart:1067)

#3 ImportExportWidget._import (package:keevault/widgets/import_export.dart:176)

[I] Initialized logger

[I] Initialized WidgetsFlutterBinding

[I] Initialized PSL

[D] starting account cubit

[D] no user found

[D] account cubit started

[V] App State: AppLifecycleState.inactive

[V] App State: AppLifecycleState.paused

[V] App State: AppLifecycleState.resumed

[D] creating new local vault

[D] kdbx.format: 2022-01-12 16:38:26.505214: Saving JQN31qvoRUugjAs+ogjTug== (locked: false)

[D] kdbx_var_dictionary: 2022-01-12 16:38:26.508311: Reading VarDictionary 1.0

[D] kdbx.header: 2022-01-12 16:38:26.509971: Writing header HeaderFields.CipherID (16)

[D] kdbx.header: 2022-01-12 16:38:26.510055: Writing header HeaderFields.CompressionFlags (4)

[D] kdbx.header: 2022-01-12 16:38:26.510108: Writing header HeaderFields.MasterSeed (32)

[D] kdbx.header: 2022-01-12 16:38:26.510246: Writing header HeaderFields.EncryptionIV (16)

[D] kdbx.header: 2022-01-12 16:38:26.510351: Writing header HeaderFields.KdfParameters (139)

[D] kdbx.header: 2022-01-12 16:38:26.510416: Writing header HeaderFields.EndOfHeader (0)

[D] kdbx_var_dictionary: 2022-01-12 16:38:26.512660: Reading VarDictionary 1.0

[D] key_encrypter_kdf: 2022-01-12 16:38:26.512966: Must be using argon2

[V] Starting argon2

[D] Finished argon2 in 142ms

[D] kdbx.header: 2022-01-12 16:38:26.658292: Writing header InnerHeaderFields.InnerRandomStreamID (1) (4)

[D] kdbx.header: 2022-01-12 16:38:26.658383: Writing header InnerHeaderFields.InnerRandomStreamKey (2) (64)

[D] kdbx.header: 2022-01-12 16:38:26.658450: Writing header InnerHeaderFields.EndOfHeader (0) (0)

[D] kdbx.format: 2022-01-12 16:38:26.667740: We need AES

[D] Will require a full password to be entered every 60 days

[D] Quick unlock unavailable

[D] kdbx.header: 2022-01-12 16:38:26.701826: Reading version: 4.0

[D] kdbx.header: 2022-01-12 16:38:26.701983: Reading header HeaderFields.CipherID (2) (size: 16)}

[D] kdbx.header: 2022-01-12 16:38:26.702039: Reading header HeaderFields.CompressionFlags (3) (size: 4)}

[D] kdbx.header: 2022-01-12 16:38:26.702094: Reading header HeaderFields.MasterSeed (4) (size: 32)}

[D] kdbx.header: 2022-01-12 16:38:26.702167: Reading header HeaderFields.EncryptionIV (7) (size: 16)}

[D] kdbx.header: 2022-01-12 16:38:26.702218: Reading header HeaderFields.KdfParameters (11) (size: 139)}

[D] kdbx.header: 2022-01-12 16:38:26.702286: EndOfHeader HeaderFields.EndOfHeader

[D] kdbx.format: 2022-01-12 16:38:26.702409: Header hash matches.

[D] kdbx_var_dictionary: 2022-01-12 16:38:26.702460: Reading VarDictionary 1.0

[D] key_encrypter_kdf: 2022-01-12 16:38:26.702628: Must be using argon2

[V] Starting argon2

[D] Finished argon2 in 133ms

[D] kdbx.format: 2022-01-12 16:38:26.837501: We need AES

[D] kdbx.format: 2022-01-12 16:38:26.837694: decrypting 576 with block size 16

[D] kdbx.format: 2022-01-12 16:38:26.838774: compression: Compression.gzip

[D] kdbx.header: 2022-01-12 16:38:26.839112: Reading header InnerHeaderFields.InnerRandomStreamID (1) (size: 4)}

[D] kdbx.header: 2022-01-12 16:38:26.839173: Reading header InnerHeaderFields.InnerRandomStreamKey (2) (size: 64)}

[D] kdbx.header: 2022-01-12 16:38:26.839219: EndOfHeader InnerHeaderFields.EndOfHeader

[D] kdbx.format: 2022-01-12 16:38:26.850588: successfully read Meta.

[D] new local vault created

[D] Supplied config for import is not newer than our current one so we are ignoring it.

[V] App State: AppLifecycleState.inactive

[V] App State: AppLifecycleState.resumed

[V] App State: AppLifecycleState.inactive

[V] App State: AppLifecycleState.paused

[V] App State: AppLifecycleState.resumed

[D] attempting to open source vault

[D] kdbx.header: 2022-01-12 16:39:35.344494: Reading version: 3.1

[D] kdbx.header: 2022-01-12 16:39:35.344613: Reading header HeaderFields.CipherID (2) (size: 16)}

[D] kdbx.header: 2022-01-12 16:39:35.344679: Reading header HeaderFields.CompressionFlags (3) (size: 4)}

[D] kdbx.header: 2022-01-12 16:39:35.344730: Reading header HeaderFields.MasterSeed (4) (size: 32)}

[D] kdbx.header: 2022-01-12 16:39:35.344781: Reading header HeaderFields.TransformSeed (5) (size: 32)}

[D] kdbx.header: 2022-01-12 16:39:35.344832: Reading header HeaderFields.TransformRounds (6) (size: 8)}

[D] kdbx.header: 2022-01-12 16:39:35.344890: Reading header HeaderFields.EncryptionIV (7) (size: 16)}

[D] kdbx.header: 2022-01-12 16:39:35.344942: Reading header HeaderFields.ProtectedStreamKey (8) (size: 32)}

[D] kdbx.header: 2022-01-12 16:39:35.344992: Reading header HeaderFields.StreamStartBytes (9) (size: 32)}

[D] kdbx.header: 2022-01-12 16:39:35.345064: Reading header HeaderFields.InnerRandomStreamID (10) (size: 4)}

[D] kdbx.header: 2022-01-12 16:39:35.345136: EndOfHeader HeaderFields.EndOfHeader

[D] kdbx.header: 2022-01-12 16:39:35.345184: Reading version: 3.1

[D] kdbx.header: 2022-01-12 16:39:35.345235: Reading header HeaderFields.CipherID (2) (size: 16)}

[D] kdbx.header: 2022-01-12 16:39:35.345287: Reading header HeaderFields.CompressionFlags (3) (size: 4)}

[D] kdbx.header: 2022-01-12 16:39:35.345342: Reading header HeaderFields.MasterSeed (4) (size: 32)}

[D] kdbx.header: 2022-01-12 16:39:35.345397: Reading header HeaderFields.TransformSeed (5) (size: 32)}

[D] kdbx.header: 2022-01-12 16:39:35.345525: Reading header HeaderFields.TransformRounds (6) (size: 8)}

[D] kdbx.header: 2022-01-12 16:39:35.345604: Reading header HeaderFields.EncryptionIV (7) (size: 16)}

[D] kdbx.header: 2022-01-12 16:39:35.345655: Reading header HeaderFields.ProtectedStreamKey (8) (size: 32)}

[D] kdbx.header: 2022-01-12 16:39:35.345706: Reading header HeaderFields.StreamStartBytes (9) (size: 32)}

[D] kdbx.header: 2022-01-12 16:39:35.345755: Reading header HeaderFields.InnerRandomStreamID (10) (size: 4)}

[D] kdbx.header: 2022-01-12 16:39:35.345814: EndOfHeader HeaderFields.EndOfHeader

[D] kdbx.format: 2022-01-12 16:39:35.345889: Unsupported version for KdbxHeader{sig1: 2594363651, sig2: 3041655655, version: 3.1}

[D] Supplied config for import is not newer than our current one so we are ignoring it.

[E] Import failed: KdbxUnsupportedException{hint: Unsupported kdbx version 3.1. Only 4.x is supported.} ; #0 KdbxFormat.readTwice (package:kdbx/src/kdbx_format.dart:610)

#1 LocalVaultFile.unlock (package:keevault/vault_file.dart:183)

#2 VaultCubit.importKdbx (package:keevault/cubit/vault_cubit.dart:1067)

#3 ImportExportWidget._import (package:keevault/widgets/import_export.dart:176)

[V] App State: AppLifecycleState.inactive

[V] App State: AppLifecycleState.paused

[V] App State: AppLifecycleState.resumed

[D] attempting to open source vault

[D] kdbx.header: 2022-01-12 16:40:08.208372: Reading version: 3.1

[D] kdbx.header: 2022-01-12 16:40:08.208466: Reading header HeaderFields.CipherID (2) (size: 16)}

[D] kdbx.header: 2022-01-12 16:40:08.208543: Reading header HeaderFields.CompressionFlags (3) (size: 4)}

[D] kdbx.header: 2022-01-12 16:40:08.208611: Reading header HeaderFields.MasterSeed (4) (size: 32)}

[D] kdbx.header: 2022-01-12 16:40:08.208681: Reading header HeaderFields.TransformSeed (5) (size: 32)}

[D] kdbx.header: 2022-01-12 16:40:08.208749: Reading header HeaderFields.TransformRounds (6) (size: 8)}

[D] kdbx.header: 2022-01-12 16:40:08.208829: Reading header HeaderFields.EncryptionIV (7) (size: 16)}

[D] kdbx.header: 2022-01-12 16:40:08.208897: Reading header HeaderFields.ProtectedStreamKey (8) (size: 32)}

[D] kdbx.header: 2022-01-12 16:40:08.208966: Reading header HeaderFields.StreamStartBytes (9) (size: 32)}

[D] kdbx.header: 2022-01-12 16:40:08.209034: Reading header HeaderFields.InnerRandomStreamID (10) (size: 4)}

[D] kdbx.header: 2022-01-12 16:40:08.209117: EndOfHeader HeaderFields.EndOfHeader

[D] kdbx.header: 2022-01-12 16:40:08.209182: Reading version: 3.1

[D] kdbx.header: 2022-01-12 16:40:08.209248: Reading header HeaderFields.CipherID (2) (size: 16)}

[D] kdbx.header: 2022-01-12 16:40:08.209318: Reading header HeaderFields.CompressionFlags (3) (size: 4)}

[D] kdbx.header: 2022-01-12 16:40:08.209388: Reading header HeaderFields.MasterSeed (4) (size: 32)}

[D] kdbx.header: 2022-01-12 16:40:08.209460: Reading header HeaderFields.TransformSeed (5) (size: 32)}

[D] kdbx.header: 2022-01-12 16:40:08.209528: Reading header HeaderFields.TransformRounds (6) (size: 8)}

[D] kdbx.header: 2022-01-12 16:40:08.209610: Reading header HeaderFields.EncryptionIV (7) (size: 16)}

[D] kdbx.header: 2022-01-12 16:40:08.209680: Reading header HeaderFields.ProtectedStreamKey (8) (size: 32)}

[D] kdbx.header: 2022-01-12 16:40:08.209757: Reading header HeaderFields.StreamStartBytes (9) (size: 32)}

[D] kdbx.header: 2022-01-12 16:40:08.209828: Reading header HeaderFields.InnerRandomStreamID (10) (size: 4)}

[D] kdbx.header: 2022-01-12 16:40:08.209916: EndOfHeader HeaderFields.EndOfHeader

[D] kdbx.format: 2022-01-12 16:40:08.210230: Unsupported version for KdbxHeader{sig1: 2594363651, sig2: 3041655655, version: 3.1}

[D] Supplied config for import is not newer than our current one so we are ignoring it.

[E] Import failed: KdbxUnsupportedException{hint: Unsupported kdbx version 3.1. Only 4.x is supported.} ; #0 KdbxFormat.readTwice (package:kdbx/src/kdbx_format.dart:610)

#1 LocalVaultFile.unlock (package:keevault/vault_file.dart:183)

#2 VaultCubit.importKdbx (package:keevault/cubit/vault_cubit.dart:1067)

#3 ImportExportWidget._import (package:keevault/widgets/import_export.dart:176)

[V] App State: AppLifecycleState.inactive

[V] App State: AppLifecycleState.paused

[V] App State: AppLifecycleState.resumed

[D] attempting to open source vault

[D] kdbx.header: 2022-01-12 16:40:21.746894: Reading version: 3.1

[D] kdbx.header: 2022-01-12 16:40:21.746989: Reading header HeaderFields.CipherID (2) (size: 16)}

[D] kdbx.header: 2022-01-12 16:40:21.747063: Reading header HeaderFields.CompressionFlags (3) (size: 4)}

[D] kdbx.header: 2022-01-12 16:40:21.747131: Reading header HeaderFields.MasterSeed (4) (size: 32)}

[D] kdbx.header: 2022-01-12 16:40:21.747198: Reading header HeaderFields.TransformSeed (5) (size: 32)}

[D] kdbx.header: 2022-01-12 16:40:21.747268: Reading header HeaderFields.TransformRounds (6) (size: 8)}

[D] kdbx.header: 2022-01-12 16:40:21.747353: Reading header HeaderFields.EncryptionIV (7) (size: 16)}

[D] kdbx.header: 2022-01-12 16:40:21.747427: Reading header HeaderFields.ProtectedStreamKey (8) (size: 32)}

[D] kdbx.header: 2022-01-12 16:40:21.747501: Reading header HeaderFields.StreamStartBytes (9) (size: 32)}

[D] kdbx.header: 2022-01-12 16:40:21.747577: Reading header HeaderFields.InnerRandomStreamID (10) (size: 4)}

[D] kdbx.header: 2022-01-12 16:40:21.747667: EndOfHeader HeaderFields.EndOfHeader

[D] kdbx.header: 2022-01-12 16:40:21.747740: Reading version: 3.1

[D] kdbx.header: 2022-01-12 16:40:21.747814: Reading header HeaderFields.CipherID (2) (size: 16)}

[D] kdbx.header: 2022-01-12 16:40:21.747895: Reading header HeaderFields.CompressionFlags (3) (size: 4)}

[D] kdbx.header: 2022-01-12 16:40:21.747974: Reading header HeaderFields.MasterSeed (4) (size: 32)}

[D] kdbx.header: 2022-01-12 16:40:21.748082: Reading header HeaderFields.TransformSeed (5) (size: 32)}

[D] kdbx.header: 2022-01-12 16:40:21.748162: Reading header HeaderFields.TransformRounds (6) (size: 8)}

[D] kdbx.header: 2022-01-12 16:40:21.748249: Reading header HeaderFields.EncryptionIV (7) (size: 16)}

[D] kdbx.header: 2022-01-12 16:40:21.748325: Reading header HeaderFields.ProtectedStreamKey (8) (size: 32)}

[D] kdbx.header: 2022-01-12 16:40:21.748400: Reading header HeaderFields.StreamStartBytes (9) (size: 32)}

[D] kdbx.header: 2022-01-12 16:40:21.748476: Reading header HeaderFields.InnerRandomStreamID (10) (size: 4)}

[D] kdbx.header: 2022-01-12 16:40:21.748567: EndOfHeader HeaderFields.EndOfHeader

[D] kdbx.format: 2022-01-12 16:40:21.748665: Unsupported version for KdbxHeader{sig1: 2594363651, sig2: 3041655655, version: 3.1}

[D] Supplied config for import is not newer than our current one so we are ignoring it.

[E] Import failed: KdbxUnsupportedException{hint: Unsupported kdbx version 3.1. Only 4.x is supported.} ; #0 KdbxFormat.readTwice (package:kdbx/src/kdbx_format.dart:610)

#1 LocalVaultFile.unlock (package:keevault/vault_file.dart:183)

#2 VaultCubit.importKdbx (package:keevault/cubit/vault_cubit.dart:1067)

#3 ImportExportWidget._import (package:keevault/widgets/import_export.dart:176)

I signed up for https://keevault.pm and confirmed my eMail. Works fine on the PC. However, on Android I still get the red “Try again”. Should I just wait for a while? I would like to try to import my Datenbank.kdbx as it is so much easier than starting from scratch. Your help is very much appreciated, by the way.

See the earlier post about saving your KeePass database into KDBX 4.x format. That should get the import working just fine. I’m making progress on improving the error message for imports and have got KDBX version 3 support implemented but it will be a little while before I can test it enough to release a new version of the app so the above workaround is still needed for the time being.

Did you definitely start the sign-in process again on your Android device by typing in your email address? If you’re using the correct email address and password then there shouldn’t be any need to wait for a while. Maybe check that your Android keyboard isn’t doing anything unexpected with special characters or autocorrect (I have programmed the app to request that this doesn’t happen but I’m unsure how reliably different keyboards will work so perhaps this could explain the problem).

1 Like

I have found the problem. It doesn’t like capital letters in the eMail address. If I use all small letters, no problem. Thanks again! I think I have bothered you enough for one day! :slight_smile:

Thank you. Changing the “Key Derivation function” worked. The interface took a little getting used to - especially trying to figure out how to purge the data imported during my initial attempt.

Sorry for how difficult that was! I have made sure that the next version of the app will ignore the case of the letters in email addresses. Thanks for letting me know about the problem.

1 Like