From c0051f852e48b9212ef421188055eb94c4d54e73 Mon Sep 17 00:00:00 2001 From: michael starke Date: Mon, 15 Jul 2013 22:10:27 +0200 Subject: [PATCH] Added export to XML action for Version2 Databases Small updates to Database Settings window --- KeePassKit | 2 +- MacPass/Base.lproj/MainMenu.xib | 31 +- MacPass/DatabaseSettingsWindow.xib | 694 ++++++++---------- MacPass/MPDocument.h | 2 + MacPass/MPDocument.m | 10 + MacPass/MPDocumentWindowController.h | 1 + MacPass/MPDocumentWindowController.m | 16 +- MacPassTests/CustomIcon_Password_1234.xml | 150 ++++ .../Databases/CustomIcon_Password_1234.kdbx | Bin 0 -> 2206 bytes 9 files changed, 532 insertions(+), 374 deletions(-) create mode 100644 MacPassTests/CustomIcon_Password_1234.xml create mode 100644 MacPassTests/Databases/CustomIcon_Password_1234.kdbx diff --git a/KeePassKit b/KeePassKit index 7c88d470..e010bc5f 160000 --- a/KeePassKit +++ b/KeePassKit @@ -1 +1 @@ -Subproject commit 7c88d470043e62aec061758155c82f1225cf0ec7 +Subproject commit e010bc5fabd23be7336d922aa00eba56d6f17d1a diff --git a/MacPass/Base.lproj/MainMenu.xib b/MacPass/Base.lproj/MainMenu.xib index 99a1ea4d..b7fd19ba 100644 --- a/MacPass/Base.lproj/MainMenu.xib +++ b/MacPass/Base.lproj/MainMenu.xib @@ -262,6 +262,15 @@ + + + Export As XML… + E + 1048576 + 2147483647 + + + Revert to Saved @@ -811,6 +820,14 @@ 1255 + + + exportDatabase: + + + + 1260 + showPreferences: @@ -914,6 +931,7 @@ + @@ -1249,6 +1267,11 @@ + + 1259 + + + @@ -1266,6 +1289,7 @@ com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -1322,7 +1346,7 @@ - 1258 + 1260 @@ -1382,6 +1406,7 @@ NSWindowController id + id id @@ -1389,6 +1414,10 @@ editPassword: id + + exportDatabase: + id + showDatabaseSettings: id diff --git a/MacPass/DatabaseSettingsWindow.xib b/MacPass/DatabaseSettingsWindow.xib index aa021f30..d3af97c9 100644 --- a/MacPass/DatabaseSettingsWindow.xib +++ b/MacPass/DatabaseSettingsWindow.xib @@ -55,7 +55,7 @@ 15 2 - {{196, 240}, {467, 293}} + {{196, 240}, {546, 293}} 1618477056 Window NSWindow @@ -68,7 +68,7 @@ 268 - {{384, 13}, {69, 32}} + {{463, 13}, {69, 32}} _NS:9 @@ -96,10 +96,10 @@ 12 - {{13, 41}, {441, 246}} + {{13, 41}, {520, 246}} - + _NS:9 @@ -111,7 +111,7 @@ 268 - {{136, 148}, {210, 22}} + {{136, 148}, {280, 22}} _NS:9 @@ -209,7 +209,7 @@ 2322 - {208, 121} + {278, 121} _NS:13 @@ -228,7 +228,7 @@ - 208 + 278 1 @@ -271,7 +271,7 @@ - {{1, 1}, {208, 121}} + {{1, 1}, {278, 121}} _NS:11 @@ -301,8 +301,9 @@ 256 - {{193, 1}, {16, 121}} + {{263, 1}, {16, 121}} + _NS:83 NO @@ -324,7 +325,7 @@ 0.94565218687057495 - {{136, 17}, {210, 123}} + {{136, 17}, {280, 123}} _NS:9 @@ -337,7 +338,7 @@ 1 - {{10, 33}, {421, 200}} + {{10, 33}, {500, 200}} _NS:11 @@ -347,7 +348,7 @@ - + 256 @@ -355,7 +356,6 @@ 268 {{69, 126}, {68, 17}} - _NS:1535 YES @@ -380,7 +380,6 @@ {{139, 92}, {170, 26}} - _NS:9 YES @@ -405,7 +404,6 @@ 268 {{86, 96}, {51, 17}} - _NS:1535 YES @@ -426,7 +424,7 @@ 268 {{142, 69}, {164, 19}} - + _NS:9 YES @@ -454,7 +452,6 @@ 268 {{314, 122}, {31, 25}} - _NS:22 YES @@ -483,7 +480,6 @@ 268 {{314, 91}, {31, 25}} - _NS:22 YES @@ -512,7 +508,6 @@ 268 {{142, 124}, {164, 22}} - _NS:9 YES @@ -533,12 +528,10 @@ NO - {{10, 33}, {421, 200}} - - + {{10, 33}, {500, 200}} - Protection + Password @@ -661,6 +654,7 @@ 268 {{138, 38}, {107, 18}} + _NS:9 YES @@ -682,28 +676,29 @@ NO - {{10, 33}, {421, 200}} + {{10, 33}, {500, 200}} - Display + Protection - + 256 268 - {{15, 154}, {149, 18}} + {{15, 154}, {307, 18}} + _NS:9 YES - -2080374784 + -1543503872 268435456 Enable Entry History @@ -725,6 +720,7 @@ 268 {{15, 55}, {138, 18}} + _NS:9 YES @@ -749,12 +745,14 @@ 268 - {{43, 35}, {187, 18}} + {{57, 32}, {187, 18}} + + _NS:9 YES - -2080374784 + -1543503872 268435456 Empty Recycle Bin on Quit @@ -774,13 +772,14 @@ 268 - {{42, 131}, {94, 17}} + {{56, 128}, {94, 17}} + _NS:1535 YES - 68157504 + 605028416 272630784 Maxium Items @@ -794,13 +793,14 @@ 268 - {{42, 106}, {142, 17}} + {{56, 103}, {142, 17}} + _NS:1535 YES - 68157504 + 605028416 272630784 Maintainance Intervall @@ -814,13 +814,14 @@ 268 - {{187, 101}, {122, 26}} + {{201, 98}, {122, 26}} + _NS:9 YES - -2076180416 + -1539309504 2048 _NS:9 @@ -889,13 +890,14 @@ 268 - {{189, 129}, {96, 22}} + {{203, 126}, {96, 22}} + _NS:9 YES - -1804599231 + -1267728319 272630784 @@ -910,13 +912,14 @@ 268 - {{290, 126}, {19, 27}} + {{304, 123}, {19, 27}} + _NS:1099 YES - 786464 + 537657376 0 _NS:1099 @@ -929,8 +932,9 @@ 268 - {{187, 54}, {220, 26}} + {{157, 51}, {220, 26}} + _NS:9 {750, 750} @@ -947,45 +951,11 @@ 400 75 - - - A Folder - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - + YES OtherViews - - - - - Item 2 - - 2147483647 - - - _popUpItemAction: - - - - - Item 3 - - 1048576 - 2147483647 - - - _popUpItemAction: - - - + -1 @@ -997,7 +967,9 @@ NO - {{10, 33}, {421, 200}} + {{10, 33}, {500, 200}} + + Advanced @@ -1005,19 +977,19 @@ - + 0 YES YES - + 268 - {{302, 13}, {82, 32}} + {{381, 13}, {82, 32}} @@ -1040,12 +1012,12 @@ NO - {467, 293} + {546, 293} - {{0, 0}, {1920, 1058}} + {{0, 0}, {1680, 1028}} {10000000000000, 10000000000000} YES @@ -1450,22 +1422,6 @@ 24 3 - - - 6 - 0 - - 6 - 1 - - 0.0 - - 1000 - - 6 - 24 - 2 - 5 @@ -1498,6 +1454,22 @@ 24 3 + + + 6 + 0 + + 6 + 1 + + 0.0 + + 1000 + + 6 + 24 + 2 + 3 @@ -1598,6 +1570,38 @@ + + + 6 + 0 + + 6 + 1 + + 0.0 + + 1000 + + 6 + 24 + 2 + + + + 3 + 0 + + 4 + 1 + + 8 + + 1000 + + 6 + 24 + 3 + 5 @@ -1614,71 +1618,7 @@ 24 3 - - - 3 - 0 - - 3 - 1 - - 0.0 - - 1000 - - 6 - 24 - 2 - - - - 6 - 0 - - 6 - 1 - - 17 - - 1000 - - 9 - 40 - 3 - - - - 5 - 0 - - 5 - 1 - - 0.0 - - 1000 - - 9 - 40 - 2 - - - - 4 - 0 - - 4 - 1 - - 0.0 - - 1000 - - 6 - 24 - 2 - - + 6 0 @@ -1694,12 +1634,12 @@ 24 2 - + - 10 + 5 0 - - 10 + + 5 1 0.0 @@ -1710,7 +1650,7 @@ 24 2 - + 5 0 @@ -1722,8 +1662,24 @@ 1000 - 9 - 40 + 6 + 24 + 3 + + + + 3 + 0 + + 4 + 1 + + 8 + + 1000 + + 6 + 24 3 @@ -1742,11 +1698,59 @@ 24 2 - - + + + 4 + 0 + + 4 + 1 + + 54 + + 1000 + + 3 + 9 + 3 + + + 5 0 - + + 6 + 1 + + 8 + + 1000 + + 6 + 24 + 3 + + + + 4 + 0 + + 4 + 1 + + 34 + + 1000 + + 3 + 9 + 3 + + + + 5 + 0 + 5 1 @@ -1758,44 +1762,12 @@ 24 2 - - - 4 + + + 10 0 - - 4 - 1 - - 37 - - 1000 - - 3 - 9 - 3 - - - - 3 - 0 - - 4 - 1 - - 6 - - 1000 - - 6 - 24 - 3 - - - - 5 - 0 - - 5 + + 10 1 0.0 @@ -1822,6 +1794,22 @@ 29 3 + + + 10 + 0 + + 10 + 1 + + 0.0 + + 1000 + + 6 + 24 + 2 + 3 @@ -1854,38 +1842,6 @@ 40 2 - - - 3 - 0 - - 4 - 1 - - 8 - - 1000 - - 6 - 24 - 3 - - - - 9 - 0 - - 9 - 1 - - 0.0 - - 1000 - - 9 - 40 - 2 - 5 @@ -1919,13 +1875,13 @@ 3 + - - + @@ -2114,7 +2070,7 @@ - + 7 0 @@ -2122,7 +2078,7 @@ 0 1 - 210 + 280 1000 @@ -2164,11 +2120,6 @@ - - 425 - - - 435 @@ -2284,6 +2235,22 @@ + + + 7 + 0 + + 0 + 1 + + 303 + + 1000 + + 3 + 9 + 1 + @@ -2351,16 +2318,6 @@ - - 561 - - - - - 562 - - - 564 @@ -2441,16 +2398,6 @@ - - 586 - - - - - 587 - - - 593 @@ -2485,11 +2432,6 @@ - - 596 - - - 598 @@ -2508,11 +2450,6 @@ - - 601 - - - 602 @@ -2906,33 +2843,9 @@ 680 - - - - - + - - 681 - - - - - 682 - - - - - 683 - - - - - 686 - - - 710 @@ -2948,11 +2861,6 @@ - - 674 - - - 673 @@ -2991,11 +2899,6 @@ - - 685 - - - 374 @@ -3016,11 +2919,6 @@ - - 843 - - - 844 @@ -3031,21 +2929,6 @@ - - 848 - - - - - 849 - - - - - 850 - - - 853 @@ -3234,6 +3117,76 @@ + + 1055 + + + + + 1056 + + + + + 1058 + + + + + 1059 + + + + + 1060 + + + + + 1064 + + + + + 1067 + + + + + 1068 + + + + + 1071 + + + + + 1074 + + + + + 1075 + + + + + 1076 + + + + + 1077 + + + + + 1078 + + + @@ -3270,6 +3223,20 @@ com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -3285,7 +3252,7 @@ com.apple.InterfaceBuilder.CocoaPlugin - + com.apple.InterfaceBuilder.CocoaPlugin @@ -3307,36 +3274,35 @@ + - com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - + - - + - - - - - - - - - - - + + + + + + + + + + + com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -3355,7 +3321,6 @@ com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -3384,6 +3349,9 @@ com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + + + com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -3399,8 +3367,6 @@ com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin @@ -3416,8 +3382,6 @@ com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin @@ -3425,12 +3389,10 @@ com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -3470,7 +3432,6 @@ com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin @@ -3478,22 +3439,13 @@ com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -3512,7 +3464,7 @@ - 1050 + 1078 diff --git a/MacPass/MPDocument.h b/MacPass/MPDocument.h index d57ecbbf..ba50dd86 100644 --- a/MacPass/MPDocument.h +++ b/MacPass/MPDocument.h @@ -67,6 +67,8 @@ APPKIT_EXTERN NSString *const MPDocumentGroupKey; - (void)useGroupAsTrash:(KdbGroup *)group; +#pragma mark Export +- (void)writeXMLToURL:(NSURL *)url; #pragma mark Undo Data Manipulation /* Undoable Intiialization of elements */ diff --git a/MacPass/MPDocument.m b/MacPass/MPDocument.m index aae78b3a..21f45fb5 100644 --- a/MacPass/MPDocument.m +++ b/MacPass/MPDocument.m @@ -17,6 +17,7 @@ #import "KdbLib.h" #import "Kdb3Node.h" #import "Kdb4Node.h" +#import "Kdb4Persist.h" #import "KdbPassword.h" #import "KdbGroup+Undo.h" #import "KdbGroup+KVOAdditions.h" @@ -27,6 +28,8 @@ #import "Kdb3Tree+NewTree.h" #import "Kdb4Tree+NewTree.h" +#import "DataOutputStream.h" + NSString *const MPDocumentDidAddGroupNotification = @"com.hicknhack.macpass.MPDocumentDidAddGroupNotification"; NSString *const MPDocumentWillDelteGroupNotification = @"com.hicknhack.macpass.MPDocumentDidDelteGroupNotification"; NSString *const MPDocumentDidAddEntryNotification = @"com.hicknhack.macpass.MPDocumentDidAddEntryNotification"; @@ -160,6 +163,13 @@ NSString *const MPDocumentGroupKey = @"MPDocumentGroupKey"; [super close]; } +- (void)writeXMLToURL:(NSURL *)url { + DataOutputStream *outputStream = [[DataOutputStream alloc] init]; + Kdb4Persist *persist = [[Kdb4Persist alloc] initWithTree:self.treeV4 outputStream:outputStream randomStream:nil]; + [persist persist]; + [outputStream.data writeToURL:url atomically:YES]; +} + #pragma mark Lock/Unlock/Decrypt - (BOOL)unlockWithPassword:(NSString *)password keyFileURL:(NSURL *)keyFileURL { diff --git a/MacPass/MPDocumentWindowController.h b/MacPass/MPDocumentWindowController.h index dd8ef12a..b381b69f 100644 --- a/MacPass/MPDocumentWindowController.h +++ b/MacPass/MPDocumentWindowController.h @@ -38,6 +38,7 @@ APPKIT_EXTERN NSString *const MPCurrentItemChangedNotification; - (void)performFindPanelAction:(id)sender; - (IBAction)editPassword:(id)sender; - (IBAction)showDatabaseSettings:(id)sender; +- (IBAction)exportDatabase:(id)sender; - (void)lock:(id)sender; diff --git a/MacPass/MPDocumentWindowController.m b/MacPass/MPDocumentWindowController.m index 6016b8ac..1ea7c54d 100644 --- a/MacPass/MPDocumentWindowController.m +++ b/MacPass/MPDocumentWindowController.m @@ -162,13 +162,27 @@ NSString *const MPCurrentItemChangedNotification = @"com.hicknhack.macpass.MPCur } #pragma mark Actions +- (void)exportDatabase:(id)sender { + NSSavePanel *savePanel = [NSSavePanel savePanel]; + [savePanel setAllowsOtherFileTypes:YES]; + [savePanel beginSheetModalForWindow:self.window completionHandler:^(NSInteger result) { + if(result == NSFileHandlingPanelOKButton) { + [[self document] writeXMLToURL:savePanel.URL]; + } + }]; +} - (void)performFindPanelAction:(id)sender { [self.entryViewController showFilter:sender]; } - (BOOL)validateMenuItem:(NSMenuItem *)menuItem { + BOOL enabled = YES; MPDocument *document = [self document]; - return !( document.isLocked || document.isReadOnly ); + if([menuItem action] == @selector(exportDatabase:)) { + enabled = (nil != document.treeV4); + } + enabled &= !( document.isLocked || document.isReadOnly ); + return enabled; } - (BOOL)validateToolbarItem:(NSToolbarItem *)theItem { diff --git a/MacPassTests/CustomIcon_Password_1234.xml b/MacPassTests/CustomIcon_Password_1234.xml new file mode 100644 index 00000000..9de4e06a --- /dev/null +++ b/MacPassTests/CustomIcon_Password_1234.xml @@ -0,0 +1,150 @@ + + + + KeePassX + + 2013-07-15T19:35:54Z + + 2013-07-15T19:35:54Z + + 2013-07-15T19:35:54Z + 365 + + 2013-07-15T19:36:02Z + -1 + -1 + + False + False + True + False + False + + + + RaP8u/B18ngIutqc2B5c9g== + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAA3NCSVQICAjb4U/gAAAACXBIWXMAAAsSAAALEgHS3X78AAACHUlEQVQokV2SzUtUYRTGn/Pe915HZyIwJ0FDEsqCXORGaBFYLWoR7foDglZt+xuCFu76G9q0iFBKMgQhhUhIhIRM7EuHq+N8ODN37uf7ntNCR249q7P4wfOccx4SEfRkwY4oEIyVNAoLJVdZTxxD0KeMQk4OKxCSKF5893KgJEkkcAyJzjOQnJiZRSp7P01rh4Ot+devjFjLeUT+cQCJyez3zRVH2sTd+/euB60O0T+IEjAACAAWIwfNg5lrZ5HWkNZxtL24NEcCgCEnVM+BACjlYG9jFU5HzCFnR+Duw1vjQdTpAUyAolyqSqU2PbGPqLrwYXf+/VdYH40vywtz1vZiCTR6s8mi0eK21Npg7NZ9sQWElLC+MymNuj9UHiFSICgc7wA0age8u0CpWLt/6VzxwlCfZK2+NHTT/eWltxADAGB9vEoUhmVnh6KqQb+WdPpKod6o0e+P1loNmSmO+od3R86PQZQGFEm2tbU+5c9K/Ed321BUGrx4Rg1mnZZrGZbKvPFpfW749iPxigowzSCbLG2nvzak6SPu2m61k4zFXHQ7KQIgDhAXJiovmkGsJaHM8I+11YmVm/CAzAOlrPHm21U/bD2ZqoIsGcWKlcHm5dnxB08pC41ee24/P3NsZPVJbYgoX8rjF7e5nDze0bFSCjoZvmGUUr2LAaAcnyrX4ywxxX6XiVkobTbR77H5r7yncjnp6tIA2z6v8BeUfknGrtTw7gAAAABJRU5ErkJggg== + + + True + AAAAAAAAAAAAAAAAAAAAAA== + 2013-07-15T19:35:54Z + AAAAAAAAAAAAAAAAAAAAAA== + 2013-07-15T19:35:54Z + 10 + 6291456 + AAAAAAAAAAAAAAAAAAAAAA== + AAAAAAAAAAAAAAAAAAAAAA== + + + + + + 8XPXLHyIoM9KLqrjDHjsZQ== + Root + + 48 + + 2013-07-15T19:35:54Z + 2013-07-15T19:35:54Z + 2013-07-15T19:35:54Z + 2013-07-15T19:35:54Z + False + 0 + 2013-07-15T19:35:54Z + + True + + null + null + AAAAAAAAAAAAAAAAAAAAAA== + + XW1C9XAjxqVKt4bJsOpgRQ== + 0 + RaP8u/B18ngIutqc2B5c9g== + + + + + + 2013-07-15T19:37:38Z + 2013-07-15T19:36:04Z + 2013-07-15T19:37:38Z + 2013-07-15T19:36:04Z + False + 0 + 2013-07-15T19:36:08Z + + + Title + CustomIcon + + + UserName + + + + Password + + + + URL + + + + Notes + + + + True + 0 + + + + + XW1C9XAjxqVKt4bJsOpgRQ== + 0 + + + + + + 2013-07-15T19:36:08Z + 2013-07-15T19:36:04Z + 2013-07-15T19:36:08Z + 2013-07-15T19:36:04Z + False + 0 + 2013-07-15T19:36:08Z + + + Title + CustomIcon + + + UserName + + + + Password + + + + URL + + + + Notes + + + + True + 0 + + + + + + + + diff --git a/MacPassTests/Databases/CustomIcon_Password_1234.kdbx b/MacPassTests/Databases/CustomIcon_Password_1234.kdbx new file mode 100644 index 0000000000000000000000000000000000000000..c46afbde810967b5c1ef302da778f34d16e166f9 GIT binary patch literal 2206 zcmV;P2x0dF*`k_f`%AR}00RI55CAd3^5(yBLr}h01tDtuTK@wC0096100bZaA*(s+ zBOj?+<7r*ai+V_CUbtDGaFwPX(pu!O?e9$11t0)8Q~Z>{(pwLeE35W4el5Ki*mEI@ z0B6N@nJis6$lMqP2mnyS00000000LN0L*@%vpiimw*w#P5Gq;OWC$Pty?vI{pxfFj zgajX%=p!?$3kKymM1SzZG!%M2#5@GP2_OLH@Cu&w3QF+5ZjJ}kv`$bzGJz_E1>xjp zM_l1ONg60000401XNa3g8g2mPlcvf2A_u#&Fk?;$aJj)#|@eL&+?uXHi9V z(Qs+SARzzTX_5D(b*yTnV6A!C%UmEwoYw<~>xf@Z(-N=8%GjXh-&oJH$|b#KZ<(x? zWL*_3rge~K!vs0&UM9X14h&9<+Y8@G(;79c$8DhvoOd8=GM2f_sl&dP6}bh5%KYk%4+0jBAU(*vWa=evI^1nYkCgI;(aO}p( zG>Ps>XsJ81Iz)^rFWc^>EmiZkRXQ~2A-@sYCf=>Uc?_*g;F1VFJJ2re)^cAlI+MoB zAXeYyw&rX?(Qu6cCYnTY%I;fQy}4JX_+rWa&R+x?I(e&jO6HhhtG^?y^L6O|!oDTh zC^4ab4*c&TZjQtlCeUQewMMq0vD7fGpT%b_a~!OLoQ};uiFe|GWM$+0o=8ZKzS7K| z{;FRxS9|H3Js)_+-GxYO-UcKFLc#9X0PxWGvl?GyxwwM)26j(IQHD#^pp6?6#fFuks05hPzmeX2yM zPE+cFSFp=QLpbrc*{`AkGS0ZY(1+L_dwQXiaR?yT8mN<)PJC?Twh{XvARaEwaxWx8zO+z`(%W>o_V%%lUZ}bBh}u zn{@Z7ikD-~y4Qze1qRNFR*xpbEJ0j_K`#f1)aL(Y6CTqrMif!d<%3Cq&Bc zQAwMftIoETq9R-MK=P^y1JNjmeh?a$Ffwb+cWhs9^eXMTUbrLZfG2uwx*?E!%gfhz zwWR5r_lnYcbZjs1@~V)$HWyIY*Degh($A`;GOw%M7Bn%8_D3w{zVG z%9sFoqJ#X8nm#3*a3nEFo&AXim9XjbM|nr*@K=XsKqz5Zl50inps4g=_s^9+rGbPu zwHapN9~do2>pUR&c-dkt&0ZVH7cXP>NNUgru=TY z-Ji36PqxdsEtXfafu~D>SQOf)&GEH!yo!+G+8~OF`q;L!ApLg_#29>81xuxgY9f;TS{)`Z?1^i)H4Ah;>x- z7@^MOb!x}~vsSlKqRH8!iq=We8`+jIc4D9hQxcDiB(f!lP)^IBl|L;3wDdvo>CS~L zTraNI=HVPomHWBv7OUS`x6H{%4}6Q5Bq!|2%HG1dFA^rIrWG2$G7jX;yAjo<8rc1* z!1HUf-<0gAs+-&HL&M=I87oEAYCRZuz4ICs4(vt?w^TaqT;+S|7%|0ApYtVdce2I$ z`W@iLqN4QjDTk|PdG2>!*Pc`bf-8-?;j^#2hRJOhe&*IsX|W-;K5cpWb+bNzX~>6XjeEc<)Zh^yj#nv9!9V+e1gN_o%#QpD gUW~xRpPd?Ro9p+Y);z{s#46puB8f1ohtdAXRurO9`~Uy| literal 0 HcmV?d00001