convert mSecure v4.5.4 to 1Password v7.7: Renamed card type ... to Secure Notes [Solved]

bettyann88
bettyann88
Community Member
edited December 2020 in Mac

Hello,

I am trying to convert mSecure v4.5.4 to 1Password v7.7 (70700015) using the convert.pl on my mac OS High Sierra v10.13.6.

When I run this command:

perl convert.pl -v msecure pm_export.csv

I get these messages (I removed duplicates):

Renamed card type 'Bank Account' is not a default type, and is being mapped to Secure Notes
Renamed card type 'Combination' is not a default type, and is being mapped to Secure Notes
Renamed card type 'Credit Card' is not a default type, and is being mapped to Secure Notes
Renamed card type 'Insurance Info' is not a default type, and is being mapped to Secure Notes
Renamed card type 'Login' is not a default type, and is being mapped to Secure Notes
Renamed card type 'Membership' is not a default type, and is being mapped to Secure Notes
Renamed card type 'Registration Code' is not a default type, and is being mapped to Secure Notes

Imported 398 items
Exported 1 socialsecurity item
Exported 2 note items
Exported 3 total items
You may now import the file /Users/my_user_name/Desktop/1P_import.1pif into 1Password

When I run this command:

perl convert.pl msecure --debug pm_export.csv

I get these messages (I removed my username + passwords):

main                : Runninng script from '/Users/my_user_name/Desktop/mrc-converter-suite'
main                : Command Line: msecure --debug pm_export.csv
main                : Output file: /Users/my_user_name/Desktop/1P_import.1pif
print_fileinfo      : Input file info: "pm_export.csv"
print_fileinfo      :   size: 41342
print_fileinfo      :   kind: UTF-8 Unicode text
print_fileinfo      :   mime: text/plain; charset=utf-8
do_import           : ROW: 1 AAAS Science
do_import           :   field: Field_0 => pub.aaas.org
do_import           :   field: Field_1 => my_user_name@mymail.com | my_user_name
do_import           :   field: Field_2 => **password**
do_import           :   field: Field_3 =>
do_import           :   field: Field_4 =>
   [snip]
do_import           : ROW: 397 Zillow.com
do_import           :   field: Field_0 => zillow.com
do_import           :   field: Field_1 => my_user_name@mymail.com
do_import           :   field: Field_2 => **password**
do_import           :   field: Field_3 =>
do_import           :   field: Field_4 =>
do_import           : ROW: 398 Zoom
do_import           :   field: Field_0 => zoom.us
do_import           :   field: Field_1 => my_user_name@mymail.com
do_import           :   field: Field_2 => **password**
do_import           :   field: Field_3 =>
do_import           :   field: Field_4 =>
create_pif_record   : Title: Disk Encryption
create_pif_record   :   key test(name): Recovery Key
create_pif_record   :   key test(number): wwww-xxxx-yyyy-zzzz
create_pif_record   :   tags: Unassigned; mSecure::Social Security
create_pif_record   : Title: Voice Mail: Phone
create_pif_record   :   key test(password): **password**
create_pif_record   :   tags: Unassigned; mSecure::Voice Mail
create_pif_record   : Title: Unassigned: Social Security Numbers (SSN)
create_pif_record   :   key test(field1), Not found
create_pif_record   :   tags: Unassigned; mSecure::Unassigned
create_pif_record   :  *unmapped card field pushed to notes: Field1

the first and last few records of my exported .csv look like this:

mSecure CSV export file
Unassigned,Login,AAAS Science,AAAS Number 1234567890,pub.aaas.org,my_user_name@mymail.com | my_user_name,**password**,,,
Unassigned,Login,Zillow.com,,zillow.com,my_user_name@mymail.com,**password**,,,
Unassigned,Login,Zoom,,zoom.us,my_user_name@mymail.com,**password**,,,

Any idea what I'm doing wrong?
I am comfortable editing my .csv file if that would fix this.

Thank you.


1Password Version: 7.7
Extension Version: 70700015
OS Version: OSX 10.13.6
Sync Type: Not Provided

Comments

  • MrC
    MrC
    Volunteer Moderator
    edited November 2020

    @bettyann88

    Sorry for the delay, but after 7pm yesterday I was likely in a food coma! :-)

    Thanks for the great report, and using the debug facility to your advantage.

    I am confused by your macOS mSecure version of v4.5.4. The last version in the version 3 line was 3.5.7 on Sept 26, 2017. Version 5.0 was released on May 8th, 2017. I know of no version 4.x. Can you verify your version for me? Your Login entry having the category label of Login indicates this is not a version 3 export (which uses the category label of Web Logins. Version 5 changed the label to the simpler Login, and Login rows now contain 10 cells.

    [ Edit: I see there is an iOS version 4.5.4 - is that where you exported ? ]

    So, when I try the msecure5 converter on your data, I get:

    $ perl convert.pl msecure5 -v -d x
    main                : Runninng script from '/Users/cappella/Documents/Coding/mrc-converter-suite'
    main                : Command Line: msecure5 -v -d x
    main                : Output file: /Users/cappella/Desktop/1P_import.1pif
    print_fileinfo      : Input file info: "x"
    print_fileinfo      :   size: 296
    print_fileinfo      :   kind: ASCII text
    print_fileinfo      :   mime: text/plain; charset=us-ascii
    do_import           : ROW: 1
    do_import           :   field: URL => pub.aaas.org
    do_import           :   field: Username => my_user_name@mymail.com | my_user_name
    do_import           :   field: Password => **password**
    do_import           :   field: empty1 =>
    do_import           :   field: empty2 =>
    normalize_card_data : field: URL
    normalize_card_data : field: Username
    normalize_card_data : field: Password
    print_record        : title: AAAS Science
                          tags:  Unassigned; mSecure::Login
                          key(password): Password = **password**
                          key(username): Username = my_user_name@mymail.com | my_user_name
                          key(url): URL = pub.aaas.org
                          notes: AAAS Number 1234567890
    do_import           : ROW: 2
    do_import           :   field: URL => zillow.com
    do_import           :   field: Username => my_user_name@mymail.com
    do_import           :   field: Password => **password**
    do_import           :   field: empty1 =>
    do_import           :   field: empty2 =>
    normalize_card_data : field: URL
    normalize_card_data : field: Username
    normalize_card_data : field: Password
    print_record        : title: Zillow.com
                          tags:  Unassigned; mSecure::Login
                          key(password): Password = **password**
                          key(username): Username = my_user_name@mymail.com
                          key(url): URL = zillow.com
                          notes:
    do_import           : ROW: 3
    do_import           :   field: URL => zoom.us
    do_import           :   field: Username => my_user_name@mymail.com
    do_import           :   field: Password => **password**
    do_import           :   field: empty1 =>
    do_import           :   field: empty2 =>
    normalize_card_data : field: URL
    normalize_card_data : field: Username
    normalize_card_data : field: Password
    print_record        : title: Zoom
                          tags:  Unassigned; mSecure::Login
                          key(password): Password = **password**
                          key(username): Username = my_user_name@mymail.com
                          key(url): URL = zoom.us
                          notes:
    Imported 3 items
    create_pif_record   : Title: AAAS Science
    create_pif_record   :   key test(url): pub.aaas.org
    create_pif_record   :   key test(username): my_user_name@mymail.com | my_user_name
    create_pif_record   :   key test(password): **password**
    create_pif_record   :   notes: AAAS Number 1234567890
    create_pif_record   :   tags: Unassigned; mSecure::Login
    create_pif_record   : Title: Zillow.com
    create_pif_record   :   key test(url): zillow.com
    create_pif_record   :   key test(username): my_user_name@mymail.com
    create_pif_record   :   key test(password): **password**
    create_pif_record   :   tags: Unassigned; mSecure::Login
    create_pif_record   : Title: Zoom
    create_pif_record   :   key test(url): zoom.us
    create_pif_record   :   key test(username): my_user_name@mymail.com
    create_pif_record   :   key test(password): **password**
    create_pif_record   :   tags: Unassigned; mSecure::Login
    Exported 3 login items
    Exported 3 total items
    You may now import the file /Users/cappella/Desktop/1P_import.1pif into 1Password
    
  • bettyann88
    bettyann88
    Community Member

    Ah, @MrC! Yes, you're right -- i need to use msecure5.

    For sure I have mSecure v4.5.4 on my iPhone. I've attached a snapshot of the "About mSecure" screen below.

    I did try using msecure5 before asking for help but I got an error. Unfortunately, I did not look at the error closely enough. I assumed (wrongly!) that the error indicated that I should not use msecure5. In fact, the error was telling me that I had a date with a leading !. After removing those odd !, msecure5 does the conversion!

    The reason I used converter msecure is because it includes more import types that I have in my exported .csv file, eg, registrationcodes. When converting my .csv file using converter msecure5, I get these messages:

    Renamed card type 'Registration Code' is not a default type, and is being mapped to Secure Notes
    Renamed card type 'Social Security' is not a default type, and is being mapped to Secure Notes
    Renamed card type 'Unassigned' is not a default type, and is being mapped to Secure Notes
    Renamed card type 'Voice Mail' is not a default type, and is being mapped to Secure Notes
    

    This renaming occurs only on 22 of my 398 (5%) records. I'll try to change the card type to something else and see if that helps.

    Finally, I'll try to figure out this discrepancy:

    • The number of imported items = 398.
    • The number of exported items = 372.
    • The number of renamed cards = 22.
    • I need to find 4 records: 372 + 22 = 394 <> 398.

    egrep 'Imported|Exported|Renamed' out.out | cat -n

         1  Renamed card type 'Registration Code' is not a default type, and is being mapped to Secure Notes
         2  Renamed card type 'Registration Code' is not a default type, and is being mapped to Secure Notes
         3  Renamed card type 'Registration Code' is not a default type, and is being mapped to Secure Notes
         4  Renamed card type 'Registration Code' is not a default type, and is being mapped to Secure Notes
         5  Renamed card type 'Registration Code' is not a default type, and is being mapped to Secure Notes
         6  Renamed card type 'Registration Code' is not a default type, and is being mapped to Secure Notes
         7  Renamed card type 'Registration Code' is not a default type, and is being mapped to Secure Notes
         8  Renamed card type 'Registration Code' is not a default type, and is being mapped to Secure Notes
         9  Renamed card type 'Registration Code' is not a default type, and is being mapped to Secure Notes
        10  Renamed card type 'Registration Code' is not a default type, and is being mapped to Secure Notes
        11  Renamed card type 'Registration Code' is not a default type, and is being mapped to Secure Notes
        12  Renamed card type 'Social Security' is not a default type, and is being mapped to Secure Notes
        13  Renamed card type 'Voice Mail' is not a default type, and is being mapped to Secure Notes
        14  Renamed card type 'Registration Code' is not a default type, and is being mapped to Secure Notes
        15  Renamed card type 'Registration Code' is not a default type, and is being mapped to Secure Notes
        16  Renamed card type 'Registration Code' is not a default type, and is being mapped to Secure Notes
        17  Renamed card type 'Registration Code' is not a default type, and is being mapped to Secure Notes
        18  Renamed card type 'Unassigned' is not a default type, and is being mapped to Secure Notes
        19  Renamed card type 'Registration Code' is not a default type, and is being mapped to Secure Notes
        20  Renamed card type 'Registration Code' is not a default type, and is being mapped to Secure Notes
        21  Renamed card type 'Registration Code' is not a default type, and is being mapped to Secure Notes
        22  Renamed card type 'Registration Code' is not a default type, and is being mapped to Secure Notes
        23  Imported 398 items
        24  Exported 4 membership items
        25  Exported 2 creditcard items
        26  Exported 1 bankacct item
        27  Exported 364 login items
        28  Exported 1 note item
        29  Exported 372 total items
    

    Thank you so much for your help. Also, thank you for writing this perl script in the first place and providing support! I very much appreciate your generosity and kind spirit!

  • bettyann88
    bettyann88
    Community Member

    Ah, @MrC! Yes, you're right -- i need to use msecure5.

    For sure I have mSecure v4.5.4 on my iPhone. I've attached a snapshot of the "About mSecure" screen below.

    I did try using msecure5 before asking for help but I got an error. Unfortunately, I did not look at the error closely enough. I assumed (wrongly!) that the error indicated that I should not use msecure5. In fact, the error was telling me that I had a date with a leading !. After removing those odd !, msecure5 does the conversion!

    The reason I used converter msecure is because it includes more import types that I have in my exported .csv file, eg, registrationcodes. When converting my .csv file using converter msecure5, I get these messages:

    Renamed card type 'Registration Code' is not a default type, and is being mapped to Secure Notes
    Renamed card type 'Social Security' is not a default type, and is being mapped to Secure Notes
    Renamed card type 'Unassigned' is not a default type, and is being mapped to Secure Notes
    Renamed card type 'Voice Mail' is not a default type, and is being mapped to Secure Notes
    

    This renaming occurs only on 22 of my 398 (5%) records. I'll try to change the card type to something else and see if that helps.

    Finally, I'll try to figure out this discrepancy:

    • The number of imported items = 398.
    • The number of exported items = 372.
    • The number of renamed cards = 22.
    • I need to find 4 records: 372 + 22 = 394 <> 398.

    egrep 'Imported|Exported|Renamed' out.out | cat -n

         1  Renamed card type 'Registration Code' is not a default type, and is being mapped to Secure Notes
         2  Renamed card type 'Registration Code' is not a default type, and is being mapped to Secure Notes
         3  Renamed card type 'Registration Code' is not a default type, and is being mapped to Secure Notes
         4  Renamed card type 'Registration Code' is not a default type, and is being mapped to Secure Notes
         5  Renamed card type 'Registration Code' is not a default type, and is being mapped to Secure Notes
         6  Renamed card type 'Registration Code' is not a default type, and is being mapped to Secure Notes
         7  Renamed card type 'Registration Code' is not a default type, and is being mapped to Secure Notes
         8  Renamed card type 'Registration Code' is not a default type, and is being mapped to Secure Notes
         9  Renamed card type 'Registration Code' is not a default type, and is being mapped to Secure Notes
        10  Renamed card type 'Registration Code' is not a default type, and is being mapped to Secure Notes
        11  Renamed card type 'Registration Code' is not a default type, and is being mapped to Secure Notes
        12  Renamed card type 'Social Security' is not a default type, and is being mapped to Secure Notes
        13  Renamed card type 'Voice Mail' is not a default type, and is being mapped to Secure Notes
        14  Renamed card type 'Registration Code' is not a default type, and is being mapped to Secure Notes
        15  Renamed card type 'Registration Code' is not a default type, and is being mapped to Secure Notes
        16  Renamed card type 'Registration Code' is not a default type, and is being mapped to Secure Notes
        17  Renamed card type 'Registration Code' is not a default type, and is being mapped to Secure Notes
        18  Renamed card type 'Unassigned' is not a default type, and is being mapped to Secure Notes
        19  Renamed card type 'Registration Code' is not a default type, and is being mapped to Secure Notes
        20  Renamed card type 'Registration Code' is not a default type, and is being mapped to Secure Notes
        21  Renamed card type 'Registration Code' is not a default type, and is being mapped to Secure Notes
        22  Renamed card type 'Registration Code' is not a default type, and is being mapped to Secure Notes
        23  Imported 398 items
        24  Exported 4 membership items
        25  Exported 2 creditcard items
        26  Exported 1 bankacct item
        27  Exported 364 login items
        28  Exported 1 note item
        29  Exported 372 total items
    

    Thank you so much for your help. Also, thank you for writing this perl script in the first place and providing ongoing support!
    I very much appreciate your generosity and kind spirit!

  • bettyann88
    bettyann88
    Community Member
    edited November 2020

    I wonder if the 4 missing items get lost during this error:

    :Use of uninitialized value $val in substitution (s///) at
            /Users/bettyannchodkowski/Desktop/mrc-converter-suite/./Converters/Msecure5.pm line 310, <$io> line 81 (#1)
    Use of uninitialized value $val in concatenation (.) or string at
            /Users/bettyannchodkowski/Desktop/mrc-converter-suite/./Converters/Msecure5.pm line 312, <$io> line 81 (#1)
    Use of uninitialized value $val in substitution (s///) at
            /Users/bettyannchodkowski/Desktop/mrc-converter-suite/./Converters/Msecure5.pm line 310, <$io> line 97 (#1)
    Use of uninitialized value $val in concatenation (.) or string at
            /Users/bettyannchodkowski/Desktop/mrc-converter-suite/./Converters/Msecure5.pm line 312, <$io> line 97 (#1)
    Use of uninitialized value $val in substitution (s///) at
            /Users/bettyannchodkowski/Desktop/mrc-converter-suite/./Converters/Msecure5.pm line 310, <$io> line 105 (#1)
    Use of uninitialized value $val in concatenation (.) or string at
            /Users/bettyannchodkowski/Desktop/mrc-converter-suite/./Converters/Msecure5.pm line 312, <$io> line 105 (#1)
    

    Lines 310 and 312 deal with converting curly quotes:

    304         # process field columns beyond column 4 (notes)
    305         for my $cfs (@{$card_field_specs{$itype}{'fields'}}) {
    306         my $val = shift @$row;
    307 
    308         # msecure 5 replaces simple ASCII double quotes in some fields with unicode right and left quotes
    309         # during entry or upon export to CSV.
    310         $val =~ s/\x{201C}|\x{201D}/"/g;
    311 
    312         debug "\tfield: $cfs->[CFS_MATCHSTR] => $val";
    313         push @fieldlist, [ $cfs->[CFS_MATCHSTR] => $val ];
    314         }
    

    hmm, i wonder if line 306 is actually the problem -- there are no other rows?

    I do not see quotes in these items (nor in nearby items; neither above nor below). I'll keep looking....

  • MrC
    MrC
    Volunteer Moderator
    edited November 2020

    Again, great info @bettyann88 ,

    I've never tested against the iOS mSecure output, and don't have any sample exports for it. In fact, I wasn't aware it could be exported. So, it's good news for users that it does. Generally many of the converters are platform-specific, as vendors don't keep their features and export formats consistent across versions, let alone platforms. mSecure has been really lax, even sloppy, with their export "format"

    mSecure 5 had limited stock categories, and the converter handles those. But the converters were designed to be extended, so we can modify it to handle both the date differences and the additional categories. If you have only a few entries in your iOS mSecure 4.x export that were remapped to 1Password Secure Notes, it might not be worth the effort. But if many were, and you want to get them mapped correctly, I can explain how to customize the converter and help you do that (or with some sample data, give you the table entries you need to add). Your call.

    When I create converters, I try to carefully create sample data that will stress the edge cases of the export so that the converter works for as many people as possible without error. So until I can create and test an iOS mSecure 4 export, I can't yet know how well the msecure5 converter will work for this cross-platform/version case.

    The errors you show below are because the value $val is undefined (e.g. never assigned a value). This isn't a case that I expected, or didn't occur in my mSecure 5 export testing (I don't recall, but I'll check on this). The error messages indicate that lines 81, 97, and 105 in the input cause the issue. If you can get me a sample single sample row that triggers this, I'll check into it.

    Also, if you can get me a sample row that includes the date issue, I can show how to modify the converter to handle that.

    Ideally I'd like to have a solid, representative mSecure 4 for iOS output file, so that I can update the msecure5 to support that export.

  • bettyann88
    bettyann88
    Community Member

    Dear @MrC,

    now that i think about it, i backed up mSecure v4.5.4 from my iPhone to my mac via mBackup v3.0.1. then, on my mac, imported that mBackup into the mSecure 5 app that i newly download. i then exported from mSecure 5 to .csv.

    hmm, i realized i used mSecure 4 (iphone) --> mBackup 3 (mac) --> mBackup 5 (mac). that's asking for trouble.

    i thought of a more consistent pipeline:

    • backup mSecure 4 (iphone) --> mBackup 3 (mac).
    • export mBackup 3 (mac) to .csv using mBackup 3 (not mBackup 5).

    with this new .csv (that never goes into the mBackup 5 ecosystem), i can use the msecure converter more naturally.

    when i ran this:

    perl convert.pl -v msecure pm_export.csv
    

    i saw that all the 'Registration Codes' records generated these messages:

    **** Hit mSecure CSV quoting bug: row 5, card description 'Registration Codes: employee id' - compensating...
    

    and again i saw that the total number of exported records did not match the number of imported records.

    i then tried two things:
    1. created a small .csv of fake 'Registration Codes' records
    2. poked around in Converters/Msecure.pm

    based on pure observation / pattern matching, i modified hash %card_field_specs:

    191     [ 'rxphone',        0, 'Phone No.', ],
    192     ]},
    193 
    194     # modified registrationcodes based on observation / pattern matching
    195     registrationcodes =>    { textname => 'Registration Codes', type_out => 'note', fields => [
    196     [ 'regnumber',          0, 'Company', ],
    197     [ 'regname',            0, 'Name', ],
    198     [ 'regregistration',    0, 'Registration', ],
    199     [ 'regweb',             0, 'Web', ],
    200     [ 'regversion',         0, 'Version', ],
    201     [ 'regordernumber',     0, 'Order #', ],
    202     [ 'regorderdate',       0, 'Order Date' ],
    203     ]},
    204     
    205     # original registrationcodes
    206     registrationcodesorig =>    { textname => 'Registration Codes', type_out => 'note', fields => [
    207     [ 'regnumber',      0, 'Number', ],
    208     [ 'regdate',        0, 'Date', ],
    209     ]},
    210     
    211     socialsecurity =>       { textname => 'Social Security', fields => [
    

    i couldn't figure out if 'Registration Codes' could have a type_out other than note.

    i ran this modified code on my small .csv file of 10 records (which i'll include below).

    this attempt ... did something? both good and not so good?

    when i run convert.pl repeatedly, the total number of items exported changes! sometimes it exports 7 (out of 10) records. other times it exports all 10 (out of 10) records! i literally do nothing between each run.

    i am including the output of multiple runs below. note that i included a date stamp before each run.

    #-----------------------------------------------------
    $ date;  perl convert.pl -v msecure msecure_fake.csv
    Sat Nov 28 22:15:53 CST 2020
    **** Hit mSecure CSV quoting bug: row 2, card description 'Registration Codes: Fake' - compensating...
    **** Hit mSecure CSV quoting bug: row 3, card description 'Registration Codes: Fake2' - compensating...
    **** Hit mSecure CSV quoting bug: row 4, card description 'Registration Codes: Fake3' - compensating...
    **** Hit mSecure CSV quoting bug: row 5, card description 'Registration Codes: employee id' - compensating...
    **** Hit mSecure CSV quoting bug: row 6, card description 'Registration Codes: parking no' - compensating...
    **** Hit mSecure CSV quoting bug: row 7, card description 'Registration Codes: student id' - compensating...
    
    Imported 10 items
    Exported 1 membership item
    Exported 3 login items
    Exported 3 note items
    Exported 7 total items
    You may now import the file /Users/bettyannchodkowski/Desktop/1P_import.1pif into 1Password
    
    #-----------------------------------------------------
    $ date;  perl convert.pl -v msecure msecure_fake.csv
    Sat Nov 28 22:15:56 CST 2020
    Imported 10 items
    Exported 6 note items
    Exported 3 login items
    Exported 1 membership item
    Exported 10 total items
    You may now import the file /Users/bettyannchodkowski/Desktop/1P_import.1pif into 1Password
    
    #-----------------------------------------------------
    $ date;  perl convert.pl -v msecure msecure_fake.csv
    Sat Nov 28 22:15:58 CST 2020
    Imported 10 items
    Exported 1 membership item
    Exported 6 note items
    Exported 3 login items
    Exported 10 total items
    You may now import the file /Users/bettyannchodkowski/Desktop/1P_import.1pif into 1Password
    
    #-----------------------------------------------------
    $ date;  perl convert.pl -v msecure msecure_fake.csv
    Sat Nov 28 22:16:14 CST 2020
    **** Hit mSecure CSV quoting bug: row 2, card description 'Registration Codes: Fake' - compensating...
    **** Hit mSecure CSV quoting bug: row 3, card description 'Registration Codes: Fake2' - compensating...
    **** Hit mSecure CSV quoting bug: row 4, card description 'Registration Codes: Fake3' - compensating...
    **** Hit mSecure CSV quoting bug: row 5, card description 'Registration Codes: employee id' - compensating...
    **** Hit mSecure CSV quoting bug: row 6, card description 'Registration Codes: parking no' - compensating...
    **** Hit mSecure CSV quoting bug: row 7, card description 'Registration Codes: student id' - compensating...
    
    Imported 10 items
    Exported 1 membership item
    Exported 3 note items
    Exported 3 login items
    Exported 7 total items
    You may now import the file /Users/bettyannchodkowski/Desktop/1P_import.1pif into 1Password
    

    i wonder if there is something special i have to do after modifying the Msecure.pm file? clearly i'm doing something weird. maybe there is some path weirdness? it's been years since i've coded in python...

    the fake exported .csv file:

    mSecure CSV export file
    Unassigned,Web Logins,Web Login 01,1.234.567.8901,web_login_01.com,my_user_name,"pass,word01",
    Unassigned,Registration Codes,Fake,Notes are fake,Company is fake,Name is fake,Registration is fake,Web.is.fake.com,Version is fake,Order # is fake,Order date is fake,
    Unassigned,Registration Codes,Fake2,Notes are fake,Company is fake,Name is fake,Registration is fake,Web.is.fake.com,Version is fake,Order # is fake,Order date is fake,
    Unassigned,Registration Codes,Fake3,Notes are fake,Company is fake,Name is fake,Registration is fake,Web.is.fake.com,Version is fake,Order # is fake,Order date is fake,
    Unassigned,Registration Codes,employee id,,,,1234567,,,,,
    Unassigned,Registration Codes,parking no,,,,X098765,,,,,
    Unassigned,Registration Codes,student id,,,,111 222 333,,Y0 123 456 7,,,
    Unassigned,Web Logins,Web Login 02,1AB23,www.web_login_02.com,my_user_name@mymail.com,password02,
    Unassigned,Web Logins,Web Login 03,ABC
                                          hint abcd_1234,http://www.web_login_03.com,X12345678,password03,
    Unassigned,Insurance,My Insurance Auto,my_user_name / 12345678
    
                                                                  F: 1.123.456.7890
                                                                                   Emergency Road Service: 1.123.456.7890
                                                                                                                         http://www.insurance.com
    
    
                                                                                                                                                 ,abcd.ef.ghij,,,, 1.123.456.7890,
    

    (those [newlines] appear as ^K in my editor, vim.)

    note that records 2,3,4 are truly fake data that i created in mSecure on my iPhone specifically to see the actual names to add to %card_field_specs. all the other records were actual data but i removed identifying information.

    one more odd thing. when i run the modified .pm code on my complete exported .csv file (400 records), when no errors are reported (again, sometimes there are errors; sometimes there are not), only 395 records are exported. five (5) records go missing. i would like to read in the .1pif file to try to track down those missing 5 records. the easiest way would be for me to read in the .csv file and the .1pif programmatically.

    @MrC, would it be easy for you to point me to the code that writes the .1pif file?

    the .1pif file format looks like it may be json? or maybe just a conventional hash / dictionary? before i start guessing, i thought i'd ask if it might be easy for you to point me toward the part of code that would show me the format of .1pif.

    Thank you!
    Kind regards.


  • MrC
    MrC
    Volunteer Moderator

    @bettyann88

    I’ll fully reply in the morning. The mSecure CSV is terribly broken.

    Can you email me the fake CSV file, so that I’m certain to test with the same file data you are using? Feel free to obfuscate, but leave any commas or double quotes alone. This is a source of their issue.

    My email is at the top of the convert.pl file.

  • bettyann88
    bettyann88
    Community Member
    edited November 2020

    @MrC, I sent you a separate email with a fake .csv file attached.
    Thank you!

  • MrC
    MrC
    Volunteer Moderator

    @bettyann88 ,

    I'm going to take this offline, since the details will be interesting to very few, and the discussion is getting complex enough that forum posts are a bit difficult. We can summarize here when done.

  • MrC
    MrC
    Volunteer Moderator

    @bettyann88 and I resolved this offline. A customized msecure converter to work with her iOS msecure 4.x vault exported via mBackup was all that was needed.

    Yes! I was able to convert my mSecure records into 1password!

    Thanks so much for creating and maintaining convert.pl!!

    I've wanted to switch my password manager from mSecure for a while. But I had over 400 records and I didn't want to lose them.

    Enjoy 1Password!

This discussion has been closed.