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

1383941434452

Comments

  • cindyhoskey
    cindyhoskey
    Community Member

    @MrC I was able to import it as a csv. Thank you for making this utility, and thank you for helping! It's much appreciated!

  • MrC
    MrC
    Volunteer Moderator

    @cindyhoskey , and other chrome converter users,

    The issue is being caused due to something going wrong in the code that loads the relevant Windows cryptography library when using 64-bit Strawberry Perl.

    Until I get the issue resolved, any chrome converter users should use the 32-bit portable Strawberry Perl. I've tested that this works.

    Sorry for the inconvenience.

  • kccoNCSU
    kccoNCSU
    Community Member

    @MrC I've attempted to convert Sticky Password several times but come up with "Can't open perl script "convert_to_1pf.pl": No such file or directory" every time.

    I found this closed topic with the same issue and followed the advice there as well. Still no luck.

  • MrC
    MrC
    Volunteer Moderator
    edited April 2018

    @kccoNCSU ,

    Make sure you are using the 1.10 version of the converter suite, in Testing Bits, mentioned in the first post of the thread.

    Also, I see you wrote convert_to_1pf.pl - the script name is convert_to_1p4.pl - make sure that is what you are typing.

  • kccoNCSU
    kccoNCSU
    Community Member

    Thanks @MrC I used the 1.10 version of converter suite and version 5.24 of Perl.

  • MrC
    MrC
    Volunteer Moderator
    edited April 2018

    I can't tell from your response, @kccoNCSU , if you got it to work, or if you still need help.

    If you still need help, in the command shell, please type in the following and hit Enter, and show the result in your reply:

    dir
    
  • kccoNCSU
    kccoNCSU
    Community Member

    Sorry, no I didn't get it to work.

    Directory: C:\Users\ra102373

    Mode LastWriteTime Length Name
    ---- ------------- ------ ----
    d-r--- 4/9/2018 10:50 AM 3D Objects
    d-r--- 4/9/2018 10:50 AM Contacts
    d-r--- 4/21/2018 4:44 PM Desktop
    d-r--- 4/19/2018 12:58 PM Documents
    d-r--- 4/21/2018 4:26 PM Downloads
    d-r--- 4/9/2018 10:50 AM Favorites
    d-r--- 4/21/2018 2:08 PM iCloudDrive
    d-r--- 4/9/2018 10:50 AM Links
    d-r--- 4/19/2018 9:05 AM Music
    d-r--- 12/1/2017 11:12 AM OneDrive
    dar--- 4/21/2018 2:15 PM OneDrive - Interstate Batteries
    d-r--- 4/20/2018 6:27 AM Pictures
    d----- 12/1/2017 8:51 AM Roaming
    d-r--- 4/9/2018 10:50 AM Saved Games
    d-r--- 4/9/2018 10:50 AM Searches
    d----- 4/14/2018 3:55 PM Ubiquiti UniFi
    d-r--- 4/9/2018 10:50 AM Videos

  • MrC
    MrC
    Volunteer Moderator

    @kccoNCSU ,

    Ok, I see the problem. The command shell's directory is not correct.

    Presuming your convert_to_1p4 folder is on your Desktop, run the command:

    cd Desktop\convert_to_1p4

    and then try the converter command.

  • kccoNCSU
    kccoNCSU
    Community Member

    C:\Users\ra102373\Desktop\convert_to_1p4>perl convert_to_1p4.pl stickypassword -v ..\pm_export.xml
    'perl' is not recognized as an internal or external command,
    operable program or batch file.

  • MrC
    MrC
    Volunteer Moderator

    @kccoNCSU ,

    This would indicate you are not running the portableshell.bat. It is required so that it sets up the environment to find the Perl binary. This is step 3b in the README.pdf. After you've launched it, do the cd command above, and run the converter.

  • kccoNCSU
    kccoNCSU
    Community Member

    Thanks! Finally got it. I followed that direction before but I guess it was leaving me in the wrong directory. After running the .bat file the command was pointing to windows\system32 everytime.

    So I ran the .bat file, then cd users\ra102373\Desktop\convert_to_1p4, then the converter.

    Thanks so much for the help!

  • MrC
    MrC
    Volunteer Moderator

    @kccoNCSU ,

    Outstanding!

    Enjoy 1Password!

  • alphasystems
    alphasystems
    Community Member

    Hi there.

    Just tested your converter with the latest enpass (5.6.3). The AppleScript does not show enpass as converter option.
    The terminal call works, but converts ALL Logins to Secure Notes (which is a problem when you have round about 2000 logins).

    Any idea or help on this problem ?

    Kindest regards

    Joern

  • MrC
    MrC
    Volunteer Moderator
    edited April 2018

    @alphasystems ,

    It sure doesn't!

    I just updated the 1.10 version, in Testing Bits. You can re-download the package and use it.

    We'll have to further explore why all your items are converting to Secure Notes. Did you export as CSV?

    Which platform did you export these on?

  • alphasystems
    alphasystems
    Community Member

    Hi there.

    Jip. Export as CSV, all items. Nearly every stuff is converted to secure notes, e.g. finance. I just use the default groups.
    Export on a Mac, Import on a Mac...

    Kindest regards

    Joern

  • MrC
    MrC
    Volunteer Moderator
    edited April 2018

    @alphasystems ,

    The enpass converter works by matching field labels in the CSV. Enpass' CSV format is in the form of the Title of the entry, followed by a sequence of label,value, pairs. And the final value is the Notes for the entry. The converter tries to match the stock labels available in Enpass.

    Example:

    Check out the labels the converter is looking for, for Logins:

    and here's a sample Login entry from the CSV:

    "my login","Username","Jose User","Email","jose@example.com","Password","super""secret,wcomma","Phone","555-1212","URL","www.example.com","Security question","My secret Q is ""SERIOUSLY, Secret""",""

    Are your labels in English?

  • alphasystems
    alphasystems
    Community Member

    no, the labels are in german, some in english. depends on the translation of enpass.

  • MrC
    MrC
    Volunteer Moderator

    @alphasystems ,

    Darn, that's what I thought, but was hoping against.

    Enpass doesn't store its localization strings in a typical manner, so I'm going to have to generate them, and this will be a little painful. Give me a day (or two) to work this out, and I'll get back to you.

  • alphasystems
    alphasystems
    Community Member

    Wow, thx. Great support... !!! :)

  • MrC
    MrC
    Volunteer Moderator

    @alphasystems ,

    You're welcome.

    I had this almost entirely done, but found some hiccups due to very poor, ambiguous translations in the Enpass export. So I have to do it a different way. Sigh.

  • MrC
    MrC
    Volunteer Moderator
    edited April 2018

    @alphasystems ,

    Localizing the Enpass export is proving to be very frustrating. There are two problems which make record detection and field mapping problematic in non-English languages.

    1. Enpass uses the same field name more than once in a record.
    2. Enpass omits the Field/Value pair if there is no Value.

    Example of a fully-filled instant messaging record:

    ...,"Typ","AIM","ID","myAIMid","Server","aim.com","Port","999","Benutzername","myAIMnick","Benutzername","me@example.com","Kennwort","garbage"

    Notice that Benutzername is used as both the "Nick name" and the "Username". This becomes a problem when one of the Field/Value pairs is missing:

    ...,"Typ","AIM","ID","myAIMid","Server","aim.com","Port","999","Benutzername","myAIMnick","Kennwort","garbage"

    There is no way to know which Benutzername field this was inside Enpass, and makes field assignment guesswork. But it is worse than that...

    When I wrote the initial converter, it used each record's unique English field names to hint at the record's type (aka category). A minimum number of key fields is required to determine a type, and there are only a few non-essential field name duplicates within a few record types. So this basically guaranteed that I could match record entries to types. However, when factoring in localized field names, this method is no longer valid, since I don't know how the translations will work out. Example, in the above instant message case, I could use the field "Nick name", when found, to hint that the record type is an instant messaging record. But I could not use Username, since that field appears in many types. In the German translation, with both "Nick name" and "Username" translating to the same "Benutzername", it would be erroneous to decide the record type was instant messaging.

    Since I have no access to record templates and strings in Enpass, I have to generate my own. And my original strategy was to use my sample, fully-filled English record samples, exported as English as the record / field template for generating the strings for other languages - I simply re-export with Enpass set to another language, compare the two files, and generate an English --> other language strings file for use in matching fields.

    Both #1 and #2 above make type detection and field assignment very problematic.

    I'm continuing to think about this...

    Edit: ... and this just occurred to me. How about changing your Enpass language to English, restarting Enpass, exporting as English, and trying the converter that way?

  • alphasystems
    alphasystems
    Community Member

    Hi.

    I can try this... is it possible to create a new "test tresor" in 1password for a test import... ?

  • MrC
    MrC
    Volunteer Moderator

    @alphasystems ,

    Yes, you can create a test vault to import. I do all my testing this way. Also, you can use the converters --tag option to tag the items so that you can easily select/delete them. I do this routinely too.

  • alphasystems
    alphasystems
    Community Member

    I tried to change to english, convert it and import it (Version 1.10 of your converter). Result:

    Imported 2105 items (37 items expanded to 75 items)
    Exported 4 bankacct items
    Exported 13 creditcard items
    Exported 31 software items
    Exported 6 membership items
    Exported 294 login items
    Exported 1 email item
    Exported 1794 note items
    Exported 2143 total items

    Same Problem.. in enpass I have 1731 logins and 109 notes

  • MrC
    MrC
    Volunteer Moderator
    edited April 2018

    @alphasystems ,

    For one of those Login items that goes to a Secure Note, can you tell me what the field names are? The entry should look like this:

    "TITLE","Username","myusername","Email","jose@example.com","Password","secret","Phone","555-1212","URL","www.example.com","Security question","My secret Q is blank",""

    I want to know the field labels in Bold above, exactly as written in the CSV file.

  • alphasystems
    alphasystems
    Community Member

    "website.com","Location","https://www.website.com","url","https://www.website.com","email","xxxx@me.com","password","xxxxxxxx","htmlAction","https://www.website.com","htmlMethod","post",""

  • MrC
    MrC
    Volunteer Moderator
    edited April 2018

    @alphasystems ,

    This makes no sense to me at all, and does not look even remotely like a typical Enpass export for a Login item. There is no htmlAction or htmlMethod field in any CSV export I've seen. Nor is there a Location field in any Login entry (a Server entry does have a Location field). Those two field/value pairs should be a single Security question / value pair.

    Where did these come from? Did you happen to import some other password manager's export into Enpass, and these were Field/Value pairs from there?

  • alphasystems
    alphasystems
    Community Member

    jup. I tried several tools before i switched to enpass two years ago.

  • MrC
    MrC
    Volunteer Moderator
    edited April 2018

    @alphasystems ,

    Do all (or most) of the Logins that did not get imported correctly (as Logins) have those same fields? If so, I can quickly create a customized version of the enpass converter for you that will work with these.

    Or do you have lots of varieties, with lots of different fields, etc.?

  • jriga
    jriga
    Community Member

    @MrC This is really very kind of you to make this converter; thanks! I've been working through the steps and your documentation for nearly three hours and am waving the white flag. I'm moving a team's passwords from Password Safe (pwSafe) to 1Password. I have access to both PC and Mac versions of Password Safe, as well as PC and Mac versions of 1Password.

    I am using Stable Bits 1.09 and so far have:

    • Exported my Password Safe on my Mac as TXT
    • Didn't see 'passwordsafe' in the Apple Script prompt, so moved the project to Windows 10, 64-bit
    • Exported my Password Safe on Windows as TXT and XML from Password Safe 3.46.0 and placed on Desktop
    • Downloaded Strawberry-Perl-5.26.2.1-64bit-portable
    • Unzipped it to c:myperl
    • Unzipped Stable Bits to Desktop
    • Run portableshell.bat
    • It dropped me off in the System32 folder, so cd to c:users\myuserdirectory\desktop/convert_to_1p4_1.09 dir and ran install_modules.bat
    • That ran for a few mins and completed successfully
    • Used your command: perl convert_to_1p4.pl passwordsafe -v ..\ passwordsafename.xml
    • It acts like it can't find the file, and the directory looks wrong, so I cd to c:users\myuserdirectory\desktop\convert_to_1p4_1.09\onepassword-utilities\convert_to_1p4 and then use the command perl convert_to_1p4.pl passwordsafe -v ..\ passwordsafename.xml
    • It looks like it's going to run and then fails at line 15 of the convert_to_1p4.pl file

    Any ideas on what I'm doing wrong?

This discussion has been closed.