MrC's Convert to 1Password Utility (mrc-converter-suite)

145791052

Comments

  • MrCMrC Community Moderator

    @tonyv32 - today I have a mild cold, and so your very kind post helped make me feel better - thanks you!

  • I used this to move over about 1000 records from eWallet. Although it didn't handle all the records correctly due to the wrong template being selected for use in 1Password, this was much, much easier than trying to do this manually. Thank you very much for creating this utility. 1Password should give you an award :)

  • MrCMrC Community Moderator

    Hi @FuriousFan ,

    You're welcome. It is possible we might be able to customize the converter to better place records for you. I wrote the converter with this ability as a goal. Contact me offline at the email address at the top of the script, and describe what the issues are and what you'd like to see.

  • @MrC I was finally able to get around to testing the --modified change (spent too much time this week working on my work laptop making it bootable again). The --modified change works as I expected. I did the import with 5.3 BETA-22 (latest this morning).

    As a note for others: I was able to do another merge of my separate SplashID files, and export a vid file. I then use the converter to build a new 1Password import file (this one has the --modified date entered instead of the date being in the notes). I created a new vault in 1Password and imported the file there. All looked wonderful! I them copied my changes from the Primary vault that I made since the last import to the new vault and merged them in. Finally, I emptied the Primary vault and moved the items from the new vault there.

    Thanks again for the option. Hopefully it will make it into the production importer once there is a standard release with the import fix in it.

    PS. One question. On Yosemite, it seems the normal Perl version is 5.18.2. Is there a reason not to use this and instead use the 5.16.3 as described in your readme?

  • MrCMrC Community Moderator

    Thanks for the feedback @kf0s - this is great news. I will add the modified data capabilities to the other converters. I was awaiting your feedback before I moved forward, so your timing was good.

    Regarding Perl versions... its a good question. When I wrote the converters, Windows users had to use Perl 5.16.3 due to later versions of ActivePerl not having available the modules required for the converters. So I just left that 5.16.3 requirement. But we've left ActivePerl and I'm recommending Strawberry Perl.

    I now have to verify that the changes made to Perl 5.18 and 5.20 don't affect the converter code, and re-qualify against them. And I have to verify that the required modules are available and work there too.

  • @MrC Although I'd love to be able to work with you on this, I have already accepted the fact that I'll need to do some manual work. I can do this a bit at a time so it's no big deal. Unfortunately, I have very little free time otherwise I'd take you up on your kind offer. Again, thanks so much for this utility, you really are an amazing resource and person.

  • brentybrenty

    Team Member

    Again, thanks so much for this utility, you really are an amazing resource and person.

    :) :+1:

  • Followed the proper procedure from what I can see, and encountering a perl error in one of the scripts...

    C:\Users\Jimmy\Desktop\convert_to_1p4>perl convert_to_1p4.pl lastpass -v ..\pm_export.txt

    These errors are returned:
    Use of uninitialized value in numeric eq (==) at Converters/Lastpass.pm line 319, <$io> line 2 (#1)
    Use of uninitialized value in string ne at Converters/Lastpass.pm line 320,<$io> line 2 (#1)
    Use of uninitialized value in string ne at Converters/Lastpass.pm line 325,<$io> line 2 (#1)
    Use of uninitialized value in string ne at Converters/Lastpass.pm line 328,<$io> line 2 (#1)
    Use of uninitialized value $title in string ne at Converters/Lastpass.pm line444, <$io> line 2 (#1)

    CSV_PP ERROR: 2034 - EIF - Loose unescaped quote

    Unexpected failure parsing CSV: row 2 at Converters/Lastpass.pm line 400, <$io>line 3.
    Imported 1 card
    Exported 1 note item
    Exported 1 total item

    I took a quick glance over the perl code, and I'm not spotting an "$io" veriable even being referenced at those line numbers of the file mentioned...

  • MrCMrC Community Moderator

    Hi @JimNim,

    It looks like you are converting on a Windows platform. Did the export from LastPass occur on a Mac platform, by any chance?

  • Hi @MrC - I did everything from a Windows system. Is that a hint that I need to perform a dos2unix conversion of the newline characters?

  • MrCMrC Community Moderator

    Hi @JimNim,

    I think you did not use the LastPass extension to export the data, and instead copy/pasted the web page full of exported data that occurs if you use the Tools > Export item on the LastPass vault's web page.

    If you copy and pasted into Notepad, then the data will both contain extra blank lines at the front and end of the pasted data. Remove those. Then, use dos2unix to convert the data from DOS/Windows to Unix line endings. Be sure you're saving as UTF-8.

    Its easier to use the Extension's menu item: Tools > Advanced Tools > Export To > LastPass CSV File.

  • Thanks @MrC - I did actually use the browser extension to export the data originally, but didn't follow the process for UTF-8 encoding. Already went back and tried again with UTF-8 after I asked if you were hinting at unix encoding being needed, and it worked perfectly!
    And now I realize I did actually overlook clearly-stated instructions in the README about using UTF-8, I just didn't realize that info was hiding down at the bottom.

    Thanks again for the help!

  • MrCMrC Community Moderator

    You're welcome,

    With such lengthy instructions, it is really hard to ensure all the details are tracked - I'm keenly aware of how difficult this can be for users not used to such an environment. I wish it were easier - its conceptually simple, but with so many steps, it can feel complicated and error-prone.

    Great to hear your data is now imported into 1Password. I hope you enjoy it as much as I have.

  • brentybrenty

    Team Member
    edited April 2015

    @JimNim: Awesome! Yeah, text encoding is easy to overlook. I'm glad that you were able to use that information to get it working. MrC does an incredible job maintaining these resources, and is an incredible resource himself. Cheers! :)

  • MrCMrC Community Moderator
    edited April 2015

    FYI: I've updated version 1.04 in the _testing folder this weekend. The current changes are:

    Version 1.04:
    - New: Data Guardian converter now available.
    - New: Datavault converter now available.
    - New: Passpack converter now available.
    - New: PasswordWallet converter now available.
    - New: Option --modified will set the 'last modified' field for a 1Password entry based on the exported modification
    date provided by a password manager's export data. See 'Option: --modified' in the README file.
    - Fix: An item's notes from OS X Keychain converter could contain a stringified ARRAY reference name.
    - Fix: The modification and creation dates were missing from the notes section for the OS X Keychain converter.
    - Internal: Remove extraneous, remnant argument to UUID generation call.

  • Hello fantastic MrC!

    I'm having issues getting my information from the keychain converter to 1password.

    I'm on Yosemite 10.10.2 and have tried the typing and the drag and drop. I've tried specifying the keychain convertor with both a drag and drop and typing just keychain or keychain.pm

    I get either:
    "specify one of the converters above on the command line to see complete options"
    or
    "Invalid converter specified"

    I created the .txt file from my keychain in my Mac as a .txt file.

    Help! ;D

  • MrCMrC Community Moderator

    Hi @mrssoup ,

    Who doesn't love Soup!

    Can you copy and paste your command line here?

  • Right? Last name is Campbell, so Soup is the thing. ;)

    perl /Users/MrsSoup/Desktop/convert_to_1p4/convert_to_1p4.pl Keychain.pm -v /Users/MrsSoup/Desktop/pm_export.txt is one of the things I've done.

  • MrCMrC Community Moderator

    Try this instead:

    cd /Users/MrsSoup/Desktop/convert_to_1p4
    perl5.16 convert_to_1p4.pl  keychain -v ../pm_export.txt
    

    You want to specify the converter's name (not the module file - i.e. keychain vs. keychain.pm).

    Also, you want to be in the directory where convert_to_1p4.pl resides.

  • YAY! It worked! I don't know what was wrong, cuz I tried the keychain one too....ahhh well, it works now and that's what matters!

    THANK YOU!!!!

  • brentybrenty

    Team Member
    edited April 2015

    @mrssoup: It's always a typo that gets me. After staring at the command line for too long my eyes start to cross! :p

    I'm glad to hear that worked for you. MrC has the antidote for all of our keychain ills! :+1:

  • ptr727ptr727
    edited April 2015

    Hi, converting eWallet to 1Password.

    eWallet export to text created lots of links not found entries, I assume this is due to me going from eWallet to eWallet Go back to eWallet.
    I edited the exported text file to make sure all empty categories are deleted, and all cards with missing links are deleted.
    After converting, and importing, I get multiple "an item named x already exists, would you like to replace the item.

    I searched the eWallet text export file and there is only 1 entry for each of the alleged duplicates.
    But, the created pif file contains two entries for the single export entry, but I'm not sure if it is a duplicate or a reference.

    eWallet Text:

    Card California Water Service Company
    Bank Name California Water Service Company
    Telephone +1 (310) 257-1400
    Account Number 12345
    URL https://secure3.i-doxs.net/calwater/
    User Name foo
    Password bar

    PIF:

    {"typeName":"wallet.financial.BankAccountUS","title":"California Water Service Company","uuid":"e6ad8ef7f67d4c43be4f7cf508aca6cf","openContents":{"tags":["All"]},"secureContents":{"bankName":"California Water Service Company","accountNo":"12345","branchPhone":"+1 (310) 257-1400","sections":[{"fields":[{"n":"bankName","k":"string","v":"California Water Service Company","t":"bank name"},{"n":"accountNo","k":"string","v":"12345","t":"account number"}],"name":"","title":""},{"fields":[{"n":"branchPhone","k":"string","v":"+1 (310) 257-1400","t":"phone"}],"name":"branchInfo","title":"Branch Information"}]}}

    {"createdAt":946713600,"location":"https://secure3.i-doxs.net/calwater/","typeName":"webforms.WebForm","title":"California Water Service Company","uuid":"444988774e184c6eb2ade69ac6742ccd","openContents":{"tags":["All"]},"secureContents":{"password":"bar","fields":[{"designation":"username","value":"foo","name":"username","type":"T"},{"designation":"password","value":"bar","name":"password","type":"P"}],"url":"https://secure3.i-doxs.net/calwater/","URLs":[{"url":"https://secure3.i-doxs.net/calwater/","label":"website"}],"username":"foo"}}

    If I say to replace, the entries in question appear to be blank, no details other than name.
    If I respond no, then there are two entries, one a bank card and one a login card.

    Any idea how to get the entries merged?
    P.

  • MrCMrC Community Moderator
    edited April 2015

    Hi @ptr727,

    Can you clarify what you mean by "links not found entries" ?

    The "an item named x already exists..." message is from 1Password for Windows, which warns you that a same-named item already exists (or was just imported). Just say No - don't replace them. I find this a curious behavior of the 1P Windows version.

    The two entries you see are because the single eWallet item does not naturally fit into a single 1Password category. The converter splits the record into two or more records, with the appropriate fields from the original record being sent to the 1Password records (I call this "exploding" a record). In your case, a Bank Account + Login record are created for the single eWallet bank account record. The Bank Account record contains bank-relevant details, and the Login contains the items that allow you to login to the bank's website via 1Password's click-and-fill or auto-fill behavior.

    Makes sense?

  • Ok, thanks, the split makes sense, too bad that there is not a way to keep login details associated with account details.
    Is this just an import limitation, or in general how P1 works, I'm new to it so I have yet to actually create a new entry by hand?

    The eWallet export errors look as follows:

    Card Sparkletts
    Note The source card for this shortcut cannot be found.

    I have hundreds of them, I think it is due to switching from eWallet to eWallet Go and then back to eWallet, maybe the original categories get lost when I make edits in eWallet Go. I must just say I'm pretty miffed at eWallet for making me buy Go to get mobile to desktop sync, then discontinuing Go and adding the feature to eWallet, again requiring me to pay to upgrade. P1 is not much better when it comes to the sales model, have to buy for Windows, iOS, and Android, but I am betting on them building a better product.

    P.

  • MrCMrC Community Moderator
    edited April 2015

    You can easily defeat record splitting in the converter. Ask if you're interested and I'll explain. But you'll likely want to create separate records for Logins so that you can get the 1Password Login behavior.

    I don't know what "Note The source card for this shortcut cannot be found" is, but I'd be inclined to agree with you that something about the conversion from eWallet and eWallet Go got botched. That would be a question for Ilium Software. Probably it has to do what how records were stored in eWallet Go, and that they are not converting correctly. Sorry I can't help here more.

  • MrCMrC Community Moderator

    @ptr727 - I was able to reproduce the issue you saw when you say Yes to Replace same-titled records during the import process, and have sent the developer a 1PIF to reproduce the problem. He's pretty fast at getting these things addressed, so hopefully it won't be too long and I'll ping you again here.

  • Will the convert_to_1p4.pl script be updated with a converter for Dashlane? Or is one of the included converters already compatible with Dashlane?

    I tried using the lastpass converter on a Dashlane export csv and got 40 "Untitled" notes that I couldn't access* and no logins.

    *this might be due to having an expired trial of 1Password 5. I don't really want to buy the software until I can be reasonably sure I'll be able to import my 461 logins and 40 notes, though

  • MrCMrC Community Moderator

    Hi @plasma - see my reply to your other post.

    The Unititled notes would be because the CSV didn't match some particular known format. Each converter is specific to a particular password manager's export format, so the LastPass converter won't work on Dashlane's exported data.

  • @MrC , got it. Thank you!

  • MrC: I'm trying to follow your detailed instructions, but I keep running into a roadblock. I have the "convert_to_1p4" folder with all its contents on my OS 10.10.3 desktop. When I enter "cd Desktop/convert_to_1p4" in Terminal, I get the following message: "-bash: cd: Desktop/convert_to_1p4: No such file or directory." Can you tell me what I'm doing wrong?

This discussion has been closed.