MRC Converter Suite - invalid 1pux file - please, I need help! [Solved]

pauLee
pauLee
Community Member
edited April 17 in Lounge

Hello @MrC and all the others from the team,

I want to migrate from KeePassXC with the help of the MRC Converter Suite because I have a lot of entries with attachments.

I tried several entries with attachments but the suite produces 1pux files which can not be imported. The message I get:

Import failed: We couldn't finish importing your data due to a known issue that we're working on.

I also had entries with attachments (pdf-files) where the converter suite creates valid 1pux file but the pdf-files a 0kb in size.

Please, what's a good way to migrate my KeePass-DB (nearly 1.300 entries) with a lot of entries with attachements or passkeys or other additional informations?

KeePassXC version 2.7.7

Kind regards, Tom


1Password Version: 8.10.24
Extension Version: Not Provided
OS Version: Windows 11
Browser: Not Provided

Comments

  • MrC
    MrC
    Volunteer Moderator

    @pauLee

    There currently is no converter in the suite for KeePassXC.

    I believe the last time I looked, was mid 2019 or so. Please see this thread.

    Can you tell me what formats KeePassXC can export?

  • pauLee
    pauLee
    Community Member

    @MrC

    I think KeePassXC uses the same format like KeePass2 because I can open the kdbx-databse from KeePassXC without any issue in KeePass2. My databse is version 4 of the KDBX file format.

    KeePassXC can export as CSV, HTML and XML. I have choosen to export as XML.

    This is my output from the converter with a test-entry with attachments and I don't see any real errors:

    C:\Users\username\Desktop\mrc-converter-suite>convert.pl -v keepass2 C:\Users\username\Desktop\KP#1.xml --with_attachments
    Use of uninitialized value in subroutine entry at
            C:/Users/username/Desktop/mrc-converter-suite/./Converters/Keepass2.pm line 188 (#1)
        (W uninitialized) An undefined value was used as if it were already
        defined.  It was interpreted as a "" or a 0, but maybe it was a mistake.
        To suppress this warning assign a defined value to your variables.
    
        To help you figure out what was undefined, perl will try to tell you
        the name of the variable (if any) that was undefined.  In some cases
        it cannot do this, so it also tells you what operation you used the
        undefined value in.  Note, however, that perl optimizes your program
        and the operation displayed in the warning may not necessarily appear
        literally in your program.  For example, "that $foo" is usually
        optimized into "that " . $foo, and the warning will refer to the
        concatenation (.) operator, even though there is no . in
        your program.
    
    Attachment saved: C:\Users\username\Desktop\MCS_converted_attachments (2)\Remote Desktop Manager - Devolutions Cloud\Devolutions Hub Personal Notfallkit.pdf
    Attachment saved: C:\Users\username\Desktop\MCS_converted_attachments (2)\Remote Desktop Manager - Devolutions Cloud\Devolutions Wiederherstellungscodes.pdf
    Attachment saved: C:\Users\username\Desktop\MCS_converted_attachments (2)\Remote Desktop Manager - Devolutions Cloud\Private Key - Devolutions Account
    Import summary:
        1 item discovered
    Export summary:
        1 Login item
        1 total item
    You may now import the file below into 1Password 8:
        C:\Users\username\Desktop\MCS_converted.1pux
    
  • MrC
    MrC
    Volunteer Moderator

    @pauLee

    I'll have to take a look at the lattest XML export and attachment extraction. The error is showing the attachment data decoding is failing (or the converter's reference to the attachment data is empty).

  • pauLee
    pauLee
    Community Member

    @MrC
    That would be fantastic if you could help me. If I can support and test you, please let me know.

  • MrC
    MrC
    Volunteer Moderator

    @pauLee

    Sorry for the delay. Yesterday was consumed by emergency projects. I'll see if I can look at this later today.

  • MrC
    MrC
    Volunteer Moderator

    @pauLee

    Ok, I've finally had a look at the latest KeePass2 (version 2.56) and KeePassXC (2.7.7).

    The keepass2 converter handles KeePass2's XML (2.x) export correctly.

    KeePassXC does not, however, create a full XML export. It does not export attachments. The Binaries section in the XML (where attachments would be encoded) is missing. Furthermore, entries contain references to the missing data. This is why the keepass2 converter is creating 0 byte attachment files. KeePassXC's XML export is not identical to KeePass2's XML export, and the keepass2 converter cannot be used with this incompatible XML export format.

    So, use KeePass2 to create the XML 2.x export, as per the keepass2 converter's instructions, not KeePassXC.

    Regarding PassKeys... the converter does not support converting Passkeys, as 1Password itself does not provide a means to export or import PassKeys.

  • pauLee
    pauLee
    Community Member

    @MrC

    A quick test with one entry was successfull. I will need to investigate my complete KeePassXC Vault to convert and migrate next. I can report if you want.

    Thank you so much for your help!

  • MrC
    MrC
    Volunteer Moderator

    I'd love to hear how your conversion works out for you, @pauLee .

  • pauLee
    pauLee
    Community Member

    @MrC I was able to convert my complete export and it seems to work. Great!

    Only one issue I found:
    All my different folders in KeePassXC, like software licenes, secure notes and so on are not converted in the categories in 1PW, they are now only tags. And I'am unable to move them into these categories.

    Is there a way to convert the folders in categories?

  • MrC
    MrC
    Volunteer Moderator
    edited April 9

    @pauLee

    That's good progress.

    You can't move a record in 1Password to another category, so its worth doing this at conversion time, rather than having to create a new record in 1Password and copy/paste its fields.

    KeePass2 loosely supports a Login "category". And of course records may include custom fields, and may be placed into Folders. But Folder does not mean "category" in the sense that 1Password defines it. Folder is where you've decided to place a record; Category to 1Password is a defined set of fields and behaviors. So Folder does not mean Category.

    The keepass2 converter's default mapping table defines entries for what become 1Password Login and Secure Notes entries. Its two entries have a set of field labels, and the converter matches against these.

    The converter can be customized to add additional categories. It performs category detection by matching a record's field names. And since KeePass2 essentially defines only Logins, its default field names URL, UserName, and Password are used to assume the entry is a Login. Otherwise, its destination is a Secure Note.

    If your "categories" (e.g. records in your folders) have unique field labels, then it is trivial to add additional entries to the mapping table. But if they also have the same label names as those mentioned above for the Login category, the category detection code has to be modified to handle this ambiguity. Some converters prioritize logins last, so that other categories with same-named fields can be detected before attempts at matching logins (or other categories). And other converters use a field count, where a minimum number of fields must be matched.

    So the question becomes, do the records in your software licenses, etc. folders have unique and consistent field names? We'd need to have a good understanding of your field labels. Your folder names certainly could be used as a possible basis for creating 1Password categories, but the fields will end up in the Notes section of the record if there is no mapping in the converter for those field labels (i.e. KeePass custom field label to 1Password destination field).

    Let me know how you'd like to proceed. Feel free to work with me offline on this if you want. My email is at the top of the converter source code.

  • MrC
    MrC
    Volunteer Moderator

    Just to close on this, @pauLee and I worked offline. I created a custom version of the keepass2 converter to handle pauLee's special fields used for what are essentially "Software License" entries.

    From pauLee:

    it’s fantastic, all my entries are converted now. It’s so great that I don’t need to migrate them manually.