To protect your privacy: email us with billing or account questions instead of posting here.

mrc convertor suite [Bitwarden, Solved]

jimmy1987
jimmy1987
Community Member
edited December 2023 in Memberships

So I'm migrating my bitwarden to 1password and it works fine using the mrc suite, however after importing the 1pux file every single one of my passwords now have a note that says fido2credentials and a random number.

Removing this from every single password manually is not really doable with over 500 passwords. How can I import them without that note?


1Password Version: Not Provided
Extension Version: Not Provided
OS Version: Not Provided
Browser: Not Provided

Comments

  • MrC
    MrC
    Volunteer Moderator

    Hi @jimmy1987

    I'd be happy to provide you with a customized version of the bitwarden converter that simply ignores that field.

    Can you provide me with a sample from the JSON export file that contains that field? You can obfuscate any confidential details.

    I'm doing some updates on my VMs right now, so can't create this myself at the moment.

  • jimmy1987
    jimmy1987
    Community Member

    Hi @MrC

    here you go, I took the top one, but every item has it.

    "items": [
    {
    "passwordHistory": null,
    "revisionDate": "2023-11-25T20:58:32.660Z",
    "creationDate": "2023-11-25T20:58:32.650Z",
    "deletedDate": null,
    "id": "id",
    "organizationId": null,
    "folderId": null,
    "type": 1,
    "reprompt": 0,
    "name": "1password.community",
    "notes": null,
    "favorite": false,
    "login": {
    "fido2Credentials": [],
    "uris": [
    {
    "match": null,
    "uri": "https://1password.community"
    }
    ],
    "username": "username",
    "password": "password",
    "totp": null

    the field fido2credentials 1password takes as notes.

  • MrC
    MrC
    Volunteer Moderator
    edited November 2023

    @jimmy1987

    LOL - your timing was excellent. I had just minutes before created an export using the latest Bitwarden!

    I've updated the converter suite to ignore the empty fido2Credentials array. You can download the updated version, re-convert, and re-import to see if the change works for you.

  • jimmy1987
    jimmy1987
    Community Member

    @MrC

    Worked perfectly! :)

  • MrC
    MrC
    Volunteer Moderator

    Cheers, and thanks for reporting this.

    Enjoy 1Password!

  • Thank you MrC. 😊

    -Dave

  • msaf
    msaf
    Community Member

    Hi,
    First of all thanks for creating and maintaining this helpful tool!! Using a lot of custom fields it is basically the only way for moving from Bitwarden to 1Password.

    Since the latest Bitwarden releases it is possible to store passkeys. They a are stored in a HASH in the "fido2Credentials" field. Unfortunately, this cannot be handled by the converter. Im not even sure that 1Password would import a passkey (see below)?

    Anyway, where is the issue (using the latest version, 2023-11-26):

    Not an ARRAY reference at
        mrc-converter-suite/./MCS/Generators/PUX.pm line 1123 (#1)
        (F) Perl was trying to evaluate a reference to an array value, but found
        a reference to something else instead.  You can use the ref() function
        to find out what kind of ref it really was.  See perlref.
    
    Uncaught exception from user code:
        Not an ARRAY reference at mrc-converter-suite/./MCS/Generators/PUX.pm line 1123.
        MCS::Generators::PUX::to_string(ARRAY(0x131d2b9e0)) called at mrc-converter-suite/./MCS/Generators/PUX.pm line 551
        MCS::Generators::PUX::new_item(MCS::Generators::PUX=HASH(0x1118a1330), "login", HASH(0x111a0a768)) called at mrc-converter-suite/./MCS/Generators/PUX.pm line 412
        MCS::Generators::PUX::gen_conversion_file(MCS::Generators::PUX=HASH(0x1118a1330), HASH(0x131b5b018), "./output/export", undef) called at convert.pl line 213
    
    

    MCS/Generators/PUX.pm:551: Calls "to_string" with $f->{'value'}, which seems to be an ARRAY that contains a HASH in case of a passkey (printed using Data::Dumper):

    print Dumper($f->{'value'});
    $VAR1 = [
              {
                'rpName' => 'Service',
                'credentialId' => '12345... uuid',
                'creationDate' => '1999...',
                'userDisplayName' => 'My-name',
                'counter' => '1',
                ...
              }
            ];
    

    Ok, since this is only a debug statement, we could get rid of it; temporarily. Then a "1pux" file is generated, which unfortunately 1Password refuses to import. It says something like "this is a know problem and we are currently working on it". So, maybe it is not possible to import passkeys at all at the moment.

    As quick fix we could completely ignore fido2Credentials, but this of course omits valid values, too:
    Converters/Bitwarden.pm:246:

      next if $key eq 'fido2Credentials'; #hack and ! @$field;
    
  • MrC
    MrC
    Volunteer Moderator

    @msaf.

    I’ll take a look at this in the morning.

  • MrC
    MrC
    Volunteer Moderator
    edited December 2023

    @msaf

    How does this look for you?

    Since 1Password doesn't export passkeys into a 1PUX, I don't have a template for possible conversion of the Bitwarden passkey into 1Password's. And since they don't export passkeys, I doubt its 1PUX importer could handle them anyway.

  • msaf
    msaf
    Community Member

    Hi, Looks better! :-) I'm unsure if the key data could and should be re-used, but no information is lost and in any case with this it's visible that a passkey was used. Then we can search for such entries and decide what to do with it (delete and/or re-create). Your tool should be integrated into the product and you get paid by 1Password!! ;-)

  • MrC
    MrC
    Volunteer Moderator

    @msaf

    Great, thanks. I tend to learn towards keeping as much data as possible, allowing users to decide. I can always provide custom options or converters to skip this field.

    I'll be posting an update later today, so this change will be included.

    Thanks for you kind words and assistance.

This discussion has been closed.