Summary:
Notes from Keychain.app can't be converted properly.
Steps to Reproduce:
I'm using a .keychain containing 115 text notes and nothing else to test migration from Keychain to 1Password. I've exported said .keychain as suggested in the README with
security dump-keychain -d test.keychain > test.txt
This resulted in a text file with all the items sorted by modification date and looks like the expected output form the security
command.
Running convert_to_1p4
like this:
./convert_to_1p4.pl keychain -v test.txt
gives me this output:
Examined 115 records
Skipped 113 non-login records
Skipped 0 duplicate records
Imported 2 records
Exported 2 login items
Exported 2 total items
113 of 115 notes items are completely skipped. The remaining 2 items are exported into the `.1pif`` file as password items.
Changing the export to
convert_to_1p4.pl keychain -i note -e note -v test.txt
results in a completely empty .1pif
file.
Debug output for skipped items looks like this:
main : Command Line: keychain -d test.txt
main : Output file: /Users/<usershortname>/Desktop/1P4_import.1pif
do_import : Entry 1
do_import : considering rules for CLASS
do_import : rule 1: called with genp
do_import : rule 1: returns 0 genp
do_import : considering rules for svce
do_import : rule 1: called with "Item - Title"
do_import : rule 1: returns 0 "Item - Title"
do_import : rule 2: called with "Item - Title"
do_import : rule 2: returns 1 Item - Title
do_import : rule 3: called with Item - Title
do_import : rule 3: returns 0 Item - Title
do_import : considering rules for srvr
do_import : considering rules for path
do_import : considering rules for ptcl
do_import : considering rules for acct
do_import : rule 1: called with <NULL>
do_import : rule 1: returns 0 <NULL>
do_import : rule 2: called with <NULL>
do_import : rule 2: returns 0 <NULL>
do_import : considering rules for mdat
do_import : rule 1: called with 0x32303034303531363135333134355A00 "20040516153145Z\000"
do_import : rule 1: returns 1 2004-05-16 15:31:45
do_import : considering rules for cdat
do_import : rule 1: called with 0x32303034303531363135333134315A00 "20040516153141Z\000"
do_import : rule 1: returns 1 2004-05-16 15:31:41
do_import : considering rules for DATA
do_import : rule 1: called with 0x<bunch of hex digits>...
do_import : rule 1: returns 1 0x<bunch of hex digits>...
__ANON__ : skipping non-password record: genp: Item - Title
Expected Results:
Notes should be exported as notes to be imported as notes again. Notes should not be skipped.
Actual Results:
Notes aren't converted to notes but logins. Most notes are completly skipped.
Regression:
Tried Perl 5.16 included in OS X Mavericks as well as perl5.16 built with MacPorts. Explicitly specifying the perl interpreter doesn't change any of the results.
Keychain.app doesn't find any problems with the .keychain
file.
Specifying -i note
results in the same 2 passwords ending up in the .1pif
.
Specifying -e note
results in an empty export file. (0 bytes)
Specyfing both results in an empty export file.
Notes:
OS X 10.9.5 (13F34)
Keychain.app Version 9.0 (55153)
1Password 4.4.3 (443000)
convert_to_1p4 1.0.2 (From Agilebits Website, as well as from GitHub.)