MrC's Convert to 1Password Utility (mrc-converter-suite)
Comments
-
Cheers, @creed_erickson .
0 -
Thank you so much MrC... i have been wanting to jump ship from another password manager to 1P for years but the daunting task of doing all those command line operations kept me away.. i finally decided to face my fears today and managed to do it. Subbed for the yearly plan... All because of your incredible work in detailing the steps. Thank you my friend :)
0 -
You're welcome. That's excellent news, and thanks for the follow-up posting. It helps others feel more confident they'll succeed as well.
Enjoy 1Password!
0 -
Thank you very very much @MrC
I'm just trying out 1Password and was so happy to discover your solutions and everyone's contribution to make the transition from Safari seamless.
0 -
You're very welcome @timmehthekid .
At first glance, I read your name as Tim Meth Kid! :-)
Happy New Year, and Enjoy 1Password!
0 -
Hi MrC, really appreciate your work.
Now I'm trying to extra passwords from iClound keychain
//Don't have 1password yet
OS: macOS Sierra (version 10.12.6)
using the latest stable bitswhen I run AppleScript_Conversion_Helper following instructions, I got the following:
"Examined 416 items
Skipped 416 non-login items
Skipped 0 duplicate items
Imported 0 items
Exported 0 total items"wondering what can I do for this? And I tried to manually select items in keychain, all types are not exportable (the button is grey)
0 -
News:
- There is a new Firefox native converter in the 1.11 version of the converter suite. It is in Testing Bits.
- I've included the Get_Safari11_Passwords and Get_Safari12_Passwords applescripts into the suite. Eventually I'll get them called via the AppleScript_Conversion_Helper.
- I will be eliminating the Stable Bits / Testing Bits concept very soon, and will instead just post updates to a singular update. This should eliminate a lot of confusion, and ensure users have access to the latest version. For in-development work, and customizations that will be shared narrowly, I'll use a sharing area such as In Progress (or something like that).
0 -
I am using Mac OS X High Sierra 10.13.6. I downloaded convert_to_ip4 today (so I have the latest version, apparently 1.11), and I am using Roboform 8.5.3. I successfully used the export function in Roboform 8 to export a csv file, and then successfully imported the logins in 1Password.com. All good.
However, now I want to import the Safenotes from Roboform 8. Using Roboform's Print List feature I created pm_export_safenotes.html as instructed in your ReadMe file. But when I use either the AppleScript_Conversion_Helper, or entering the terminal command manually, I receive the message "Unexpected RoboForm print list format; please report your platform and version of RoboForm" on the terminal. I have this same problem if I try to convert pm_export_logins.html or pm_export_identities.html .
I read the February 2018 conversation in this forum with @tajchiu and @sjk and @mrc's response, but I am not clear what action I am supposed to take. For one thing, I don't see how to download V1.09.
0 -
Can you tell me how you exported (saved) your SafeNotes? You'd want to use File > Print list > Safenotes.
I just tested this on Windows and it worked. I'm checking macOS now...
0 -
I just tested v8 macOS and it worked for me, so I'll await your reply.
Version 1.11 in Testing Bits is what you want.
$ perl convert_to_1p4.pl roboform -vd ~/Desktop/RoboForm\ Safenotes\ 2019-01-13\ 19-16-05.html main : Runninng script from '/Users/MrC/Documents/Coding/1P4_converters/convert_to_1p4' main : Command Line: roboform -vd /Users/MrC/Desktop/RoboForm Safenotes 2019-01-13 19-16-05.html main : Output file: /Users/MrC/Desktop/1P_import.1pif print_fileinfo : Input file info: "/Users/MrC/Desktop/RoboForm Safenotes 2019-01-13 19-16-05.html" print_fileinfo : size: 540 print_fileinfo : kind: HTML document text, UTF-8 Unicode (with BOM) text, with CRLF, LF line terminators print_fileinfo : mime: text/html; charset=utf-8 get_export_file_info: RoboForm export version: mac; type: safenotes do_import : notes => unfold_and_chop Testing abc ø ∫ ß ∂ î DONE do_import : title => a safe note find_card_type : type defaulting to 'note' print_record : title: a safe note tags: notes: Testing<CR><CR>abc<CR>ø ∫ ß ∂ î <CR>DONE Imported 1 item create_pif_record : Title: a safe note create_pif_record : notes: Testing<CR><CR>abc<CR>ø ∫ ß ∂ î <CR>DONE Exported 1 note item Exported 1 total item You may now import the file /Users/MrC/Desktop/1P_import.1pif into 1Password
Edit: I re-read - you exported as CSV. Don't use that method. See the README.pdf for directions on how to export from Roboform.
0 -
Yay! Import of Roboform 8 Safenotes worked beautifully. Thank you so much for being there for us!
I successfully exported the Print List file and saved it using these steps: (1) Open Robofom 8 app on OS X (2) Select File/PrintList / Safenotes. This opens the PrintList file on my Chrome Browser, but I ignored that. At the same time, a PrintList file was written automatically to my desktop (no "Save" needed) with the Safenotes in it, which I was then able to successfully convert.(What I did wrong the first time was go to my Chrome Browser where the PrintList file was open, and then select File/Save Page As... This created a file on my desktop which was unreadable by your converter.)
0 -
Excellent, and you're welcome, @mkassarjian ,
Enjoy 1Password!
0 -
On Testing Bits 1.11 I keep getting
C:\Users\xxx\Downloads\convert_to_1p4_1.11> perl .\convert_to_1p4.pl keepass2 --help Can't use an undefined value as an ARRAY reference at .\convert_to_1p4.pl line 93 (#1) (F) A value used as either a hard reference or a symbolic reference must be a defined value. This helps to delurk some insidious errors. Uncaught exception from user code: Can't use an undefined value as an ARRAY reference at .\convert_to_1p4.pl line 93.
on Windows 10, with Strawberry Perl 5, version 28, subversion 1 (v5.28.1) built for MSWin32-x64-multi-thread
Please note that this is specific to the Keepass2 converter, others seem to work fine.
0 -
Sorry about that. I'd re-worked the options processing code and missed one situation. I've just posted the fix in the 1.11 update.
0 -
@MrC nothing to be sorry about, I just wanted to let you know. After all, it's a test release and stable was working just fine for me. Thanks for your time and the great tool.
0 -
Thanks for the kind words. Your bug above, also revealed something else I was not handling well, and had never encountered. I've fixed this, and will post the update soon:
- convert_to_1p4.pl was not handling the situation where multiple conversion files were
passed on the command line and a converter supported only a single file. Converters can now
signal that they can accept a file list. Converters updated: roboform, txt2notes.
0 - convert_to_1p4.pl was not handling the situation where multiple conversion files were
-
@MrC
I am on windows 10 and installed the x32 portable perl as per the instructions. I am attempting to convert my 450 line password list from firefox. Here is my output on a missing module. Please advise if you have a chance. Thanks for your diligent work.
Cheers,
RyanC:\Users\Owner\Desktop\convert_to_1p4>perl convert_to_1p4.pl --help
Can't locate UUID/Tiny.pm in @INC (you may need to install the UUID::Tiny module) (@INC contains: C:/Users/Owner/Desktop/convert_to_1p4/. C:/Users/Owner/Desktop/convert_to_1p4/lib C:/myperl/perl/site/lib C:/myperl/perl/vendor/lib C:/myperl/perl/lib) at C:/Users/Owner/Desktop/convert_to_1p4/./Utils/PIF.pm line 17.
BEGIN failed--compilation aborted at C:/Users/Owner/Desktop/convert_to_1p4/./Utils/PIF.pm line 17.
Compilation failed in require at convert_to_1p4.pl line 18.
BEGIN failed--compilation aborted at convert_to_1p4.pl line 18 (#1)
(F) You said to do (or require, or use) a file that couldn't be found.
Perl looks for the file in all the locations mentioned in @INC, unless
the file name included the full path to the file. Perhaps you need
to set the PERL5LIB or PERL5OPT environment variable to say where the
extra library is, or maybe the script needs to add the library name
to @INC. Or maybe you just misspelled the name of the file. See
"require" in perlfunc and lib.Uncaught exception from user code:
Can't locate UUID/Tiny.pm in @INC (you may need to install the UUID::Tiny module) (@INC contains: C:/Users/Owner/Desktop/convert_to_1p4/. C:/Users/Owner/Desktop/convert_to_1p4/lib C:/myperl/perl/site/lib C:/myperl/perl/vendor/lib C:/myperl/perl/lib) at C:/Users/Owner/Desktop/convert_to_1p4/./Utils/PIF.pm line 17.
BEGIN failed--compilation aborted at C:/Users/Owner/Desktop/convert_to_1p4/./Utils/PIF.pm line 17.
Compilation failed in require at convert_to_1p4.pl line 18.
BEGIN failed--compilation aborted at convert_to_1p4.pl line 18.0 -
Sorry about that. A future change slipped into the 1.11 version I posted yesterday. I've updated the 1.11 archive.
However, the fix for you is easy. Just rename the folder Modules to lib (in lowercase, its an abbreviation for library).
0 -
Hi Awesome article! I have just installed 1password version 7.3.657 and wish to import a keepass2 xml file. I am using keepass version 2.41 on Windows 10 and have downloaded the stablebits.zip but cant seem to locate the perl zip, is it a seperate download? Thanks
0 -
Ok, Just read the readme properly and Have found the download link so ignore the last comment. thanks
0 -
Sorted after a couple of hours wrestling with windows 10 !! Nothing wrong with your code but had an issue with the userprofile variable, once I had sorted that out and read the instructions PROPERLY it worked like a dream and imported my Keepass2 database without any errors. Thank you so much for your expert coding and instructions. :)
0 -
Good to hear you got it sorted out.
However, you should use version 1.11 in Testing Bits. It include some changes for KeePass2.
0 -
Hi,
Many thanks for your effort writing such a usefull program!I just wanted to convert my firefox passwords to safe them more secure in 1password. I have Windows 7 x64, downloaded Strawberry Perl 5.28.1.1, executed the install_modules.bat and then used the version 1.11 of your script.
Unfortunately my user folder includes the umlaut ö, which was a problem several times before, so I think ist might be the issue here to:
C:\Users\göllner.thomas\Desktop\convert_to_1p4>perl convert_to_1p4.pl firefox -vd
main : Runninng script from 'C:/Users/g├Âllner.thomas/Desktop/convert_to_1p4'
main : Command Line: firefox -vd
main : Output file: C:\Users\g├Âllner.thomas\Desktop\1P_import.1pif
print_fileinfo : Input file info: "C:\Users\g├Âllner.thomas/AppData/Roaming/Mozilla/Firefox/Profiles/rjeqc3ze.default/key4.db"
print_fileinfo : size: 294912
print_fileinfo : Input file info: "C:\Users\g├Âllner.thomas/AppData/Roaming/Mozilla/Firefox/Profiles/rjeqc3ze.default/logins.json"
print_fileinfo : size: 70097
Profile 'default' at C:\Users\g├Âllner.thomas/AppData/Roaming/Mozilla/Firefox/Profiles/rjeqc3ze.default
Convert it? [Y to convert, N to skip] y
Enter the profiles master password [just hit Enter if none]:
getKey : *** Connecting to Firefox key4.db key database
DBI connect('dbname=C:\Users\g├Âllner.thomas/AppData/Roaming/Mozilla/Firefox/Profiles/rjeqc3ze.default/key4.db','',...) failed: unable to open database file at
C:/Users/g├Âllner.thomas/Desktop/convert_to_1p4/./Converters/Firefox.pm line 224.
Unable to open Firefox key4.db DB file: C:\Users\g├Âllner.thomas/AppData/Roaming/Mozilla/Firefox/Profiles/rjeqc3ze.default/key4.db
unable to open database fileCan you please have a look into it and maybe even fix it? May it be a workaround to copy the key4.db file to another folder? How can I then specify the folder to the converter?
Best regards,
Thomas0 -
I'm sorry, with this new line added it makes nothing at all:
C:\Users\göllner.thomas\Desktop\convert_to_1p4>perl convert_to_1p4.pl firefox -d
main : Runninng script from 'C:/Users/g├Âllner.thomas/Desktop/convert_to_1p4'
main : Command Line: firefox -d
main : Output file: C:\Users\g├Âllner.thomas\Desktop\1P_import.1pifC:\Users\göllner.thomas\Desktop\convert_to_1p4>
0 -
Very sorry about that. I had created a test profile with a Unicode character in the profile name, but didn't think to create a Windows user profile. This means, I missed checking for the Firefox "profile.ini", and the update I posted missed ALL profiles for Windows users! Oops.
The changes were more significant than I realized. But that's OK, since it encouraged me to write some code I wanted to complete anyway. Since the code change was significant, I limited it to only affect this single converter until I've had a chance to test it across the converters. I also have more changes to do, to really better handle various code pages in Windows. It doesn't appear from your profile name that it will matter for you.
I just posted an update - give it a try!
0 -
It doesn't work for me and I don't know why. Could someone please help me out?
Error: failed to load converter module 'firefox'
Can't locate Win32/Unicode/File.pm in @INC (you may need to install the Win32::Unicode::File module) (@INC contains: C:/Users/Enterhaken/Desktop/convert_to_1p4/. C:/Users/Enterhaken/Desktop/convert_to_1p4/Modules C:/myperl/perl/site/lib C:/myperl/perl/vendor/lib C:/myperl/perl/lib .) at C:/myperl/perl/lib/if.pm line 15.
BEGIN failed--compilation aborted at C:/Users/Enterhaken/Desktop/convert_to_1p4/./Utils/File.pm line 16.
Compilation failed in require at C:/Users/Enterhaken/Desktop/convert_to_1p4/./Converters/Firefox.pm line 40.
BEGIN failed--compilation aborted at C:/Users/Enterhaken/Desktop/convert_to_1p4/./Converters/Firefox.pm line 40.
Compilation failed in require at convert_to_1p4.pl line 50.Usage: convert_to_1p4.pl firefox ...
Use of uninitialized value $_[0] in split at
C:/Users/Enterhaken/Desktop/convert_to_1p4/./Utils/Utils.pm line 184 (#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.
Options:
Supported import types:
Supported export types:
0 -
It doesn't work for me and I don't know why. Could someone please help me out?
Error: failed to load converter module 'firefox'
Can't locate Win32/Unicode/File.pm in @INC (you may need to install the Win32::Unicode::File module) (@INC contains: C:/Users> /Enterhaken/Desktop/convert_to_1p4/. C:/Users/Enterhaken/Desktop/convert_to_1p4/Modules C:/myperl/perl/site/lib C:/myperl/perl/vendor/lib C:/myperl/perl/lib .) at C:/myperl/perl/lib/if.pm line 15.
BEGIN failed--compilation aborted at C:/Users/Enterhaken/Desktop/convert_to_1p4/./Utils/File.pm line 16.
Compilation failed in require at C:/Users/Enterhaken/Desktop/convert_to_1p4/./Converters/Firefox.pm line 40.
BEGIN failed--compilation aborted at C:/Users/Enterhaken/Desktop/convert_to_1p4/./Converters/Firefox.pm line 40.
Compilation failed in require at convert_to_1p4.pl line 50.Usage: convert_to_1p4.pl firefox ...
Use of uninitialized value $_[0] in split at
C:/Users/Enterhaken/Desktop/convert_to_1p4/./Utils/Utils.pm line 184 (#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.Options:
Supported import types:
Supported export types:
0