Skip to content

PreviousParentGroup breaks loading in SimpleDatabase #95

Description

@ape-nq

When editing a DB with KeepassXC and moving an entry between groups, the SimpleDatabase does not load it anymore:

java.lang.IllegalStateException: org.simpleframework.xml.core.ElementException: Element 'PreviousParentGroup' does not have a match in class org.linguafranca.pwdb.kdbx.simple.SimpleEntry at line 768
	at org.linguafranca.pwdb.kdbx.simple.SimpleSerializableDatabase.load(SimpleSerializableDatabase.java:80)
	at org.linguafranca.pwdb.kdbx.simple.SimpleSerializableDatabase.load(SimpleSerializableDatabase.java:41)
	at org.linguafranca.pwdb.kdbx.KdbxStreamFormat.load(KdbxStreamFormat.java:65)
	at org.linguafranca.pwdb.kdbx.simple.SimpleDatabase.load(SimpleDatabase.java:91)
	at de.gkvspitzenverband.qs.tf.security.passwords.PasswordManager.loadKdbxFile(PasswordManager.java:253)
	... 3 more
	Suppressed: org.bouncycastle.crypto.io.InvalidCipherTextIOException: Error finalising cipher
		at org.bouncycastle.crypto.io.CipherInputStream.finaliseCipher(Unknown Source)
		at org.bouncycastle.crypto.io.CipherInputStream.close(Unknown Source)
		at java.base/java.util.zip.InflaterInputStream.close(InflaterInputStream.java:247)
		at java.base/java.util.zip.GZIPInputStream.close(GZIPInputStream.java:168)
		at org.linguafranca.pwdb.kdbx.KdbxStreamFormat.load(KdbxStreamFormat.java:76)
		... 5 more
	Caused by: org.bouncycastle.crypto.InvalidCipherTextException: pad block corrupted
		at org.bouncycastle.crypto.paddings.PKCS7Padding.padCount(Unknown Source)
		at org.bouncycastle.crypto.paddings.PaddedBufferedBlockCipher.doFinal(Unknown Source)
		... 10 more
Caused by: org.simpleframework.xml.core.ElementException: Element 'PreviousParentGroup' does not have a match in class org.linguafranca.pwdb.kdbx.simple.SimpleEntry at line 768
	at org.simpleframework.xml.core.Composite.readElement(Composite.java:527)
	at org.simpleframework.xml.core.Composite.readElements(Composite.java:445)
	at org.simpleframework.xml.core.Composite.access$400(Composite.java:59)
	at org.simpleframework.xml.core.Composite$Builder.read(Composite.java:1383)
	at org.simpleframework.xml.core.Composite.read(Composite.java:201)
	at org.simpleframework.xml.core.Composite.read(Composite.java:148)
	at org.simpleframework.xml.core.Traverser.read(Traverser.java:92)
	at org.simpleframework.xml.core.CompositeInlineList.read(CompositeInlineList.java:190)```

With Version 4.1 there was a change in XML structure:

Each Entry/Group element may now contain a PreviousParentGroup element, whose value (inner text) is the UUID (Base64-encoded) of the previous parent group.

Suggested fix:

  • Add previousParentGroup to SimpleEntry

PR:

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions