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

Outdated _DATETIME_ specification #7

Open
palant opened this issue Apr 8, 2023 · 5 comments
Open

Outdated _DATETIME_ specification #7

palant opened this issue Apr 8, 2023 · 5 comments

Comments

@palant
Copy link

palant commented Apr 8, 2023

Note: I meant this to be a pull request but I cannot quite figure out the toolchain you use to generate all the formats from rfc.md. The tools I try produce a way too verbose diff.

Section 3.1.1 currently claims _DATETIME_ to be in ISO 8601 format. This actually changed from KDBX 3.1 to KDBX 4.0 however. The new format is a base64-encoded 64 bit LE integer representing a number of seconds since 0001-01-01 00:00:00 UTC. There is a corresponding note at the bottom of https://keepass.info/help/kb/kdbx_4.html.

@phoerious
Copy link
Member

Good catch, although I think that the behaviour is very inconsistent. Not even sure if this should be part of the XML spec, but it should definitely be mentioned.

@palant
Copy link
Author

palant commented Apr 13, 2023

Not sure what’s inconsistent here. In my test database I can see only one ISO date: _LAST_MODIFIED key stored under <CustomData>. That’s a non-standard entry by KeePassXC. Everything else is base64-encoded dates and only those.

@phoerious
Copy link
Member

It's inconsistent that we have two different formats for the XML plaintext and the XML-In-KDBX formats. Also, I don't really see the point of a binary date format for performance reasons. If you are really concerned about that, you should drop the XML serialisation altogether and replace the entire thing with a binary format.

@palant
Copy link
Author

palant commented Apr 14, 2023

Ah, I see. Yes, I was also surprised when I read about performance being the reason for this change. I cannot imagine there being enough dates in a database to justify this change, even if all of them are processed at once.

Question is: is this RFC describing the KDBX format as it currently exists or the format we’d rather have? If it’s the latter, I’d certainly have more suggestions. 😃

@phoerious
Copy link
Member

It's entirely descriptive. You can formulate wishes for KDBX5, though.

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

No branches or pull requests

2 participants