diff --git a/External/Crashlytics.framework/Versions/A/Crashlytics b/External/Crashlytics.framework/Versions/A/Crashlytics
index d16d2206..aa001c2b 100644
Binary files a/External/Crashlytics.framework/Versions/A/Crashlytics and b/External/Crashlytics.framework/Versions/A/Crashlytics differ
diff --git a/External/Crashlytics.framework/Versions/A/Resources/Info.plist b/External/Crashlytics.framework/Versions/A/Resources/Info.plist
index 91278850..bf21197c 100644
--- a/External/Crashlytics.framework/Versions/A/Resources/Info.plist
+++ b/External/Crashlytics.framework/Versions/A/Resources/Info.plist
@@ -7,7 +7,7 @@
CFBundleExecutable
Crashlytics
CFBundleIdentifier
- com.crashlytics.ios
+ com.crashlytics.sdk.mac
CFBundleInfoDictionaryVersion
6.0
CFBundleName
@@ -15,16 +15,16 @@
CFBundlePackageType
FMWK
CFBundleShortVersionString
- 2.1.5
+ 2.1.2
CFBundleSupportedPlatforms
- iPhoneOS
+ macosx
CFBundleVersion
- 16
+ 9
DTPlatformName
- iphoneos
+ macosx
MinimumOSVersion
- 4.0
+ 10.6
diff --git a/External/Crashlytics.framework/run b/External/Crashlytics.framework/run
index 62b42053..09c7c04a 100755
Binary files a/External/Crashlytics.framework/run and b/External/Crashlytics.framework/run differ
diff --git a/External/Pearl b/External/Pearl
index dbf08783..4a3c68dd 160000
--- a/External/Pearl
+++ b/External/Pearl
@@ -1 +1 @@
-Subproject commit dbf08783a3bfe61d27f73ef35cf6dd2fd5dc0567
+Subproject commit 4a3c68dda957adba490aae9b56df018e935d6c84
diff --git a/MasterPassword/ObjC/Mac/MPElementCollectionView.h b/MasterPassword/ObjC/Mac/MPElementCollectionView.h
new file mode 100644
index 00000000..7a99d723
--- /dev/null
+++ b/MasterPassword/ObjC/Mac/MPElementCollectionView.h
@@ -0,0 +1,25 @@
+/**
+ * Copyright Maarten Billemont (http://www.lhunath.com, lhunath@lyndir.com)
+ *
+ * See the enclosed file LICENSE for license information (LGPLv3). If you did
+ * not receive this file, see http://www.gnu.org/licenses/lgpl-3.0.txt
+ *
+ * @author Maarten Billemont
+ * @license http://www.gnu.org/licenses/lgpl-3.0.txt
+ */
+
+//
+// MPElementCollectionView.h
+// MPElementCollectionView
+//
+// Created by lhunath on 2/11/2014.
+// Copyright, lhunath (Maarten Billemont) 2014. All rights reserved.
+//
+
+#import
+
+@interface MPElementCollectionView : NSCollectionViewItem
+
+@property(nonatomic, weak) IBOutlet NSTextField *siteField;
+@property(nonatomic, weak) IBOutlet NSTextField *contentField;
+@end
diff --git a/MasterPassword/ObjC/Mac/MPElementCollectionView.m b/MasterPassword/ObjC/Mac/MPElementCollectionView.m
new file mode 100644
index 00000000..001f2660
--- /dev/null
+++ b/MasterPassword/ObjC/Mac/MPElementCollectionView.m
@@ -0,0 +1,23 @@
+/**
+ * Copyright Maarten Billemont (http://www.lhunath.com, lhunath@lyndir.com)
+ *
+ * See the enclosed file LICENSE for license information (LGPLv3). If you did
+ * not receive this file, see http://www.gnu.org/licenses/lgpl-3.0.txt
+ *
+ * @author Maarten Billemont
+ * @license http://www.gnu.org/licenses/lgpl-3.0.txt
+ */
+
+//
+// MPElementCollectionView.h
+// MPElementCollectionView
+//
+// Created by lhunath on 2/11/2014.
+// Copyright, lhunath (Maarten Billemont) 2014. All rights reserved.
+//
+
+#import "MPElementCollectionView.h"
+
+@implementation MPElementCollectionView {
+}
+@end
diff --git a/MasterPassword/ObjC/Mac/MPElementModel.h b/MasterPassword/ObjC/Mac/MPElementModel.h
new file mode 100644
index 00000000..f7abf918
--- /dev/null
+++ b/MasterPassword/ObjC/Mac/MPElementModel.h
@@ -0,0 +1,34 @@
+/**
+ * Copyright Maarten Billemont (http://www.lhunath.com, lhunath@lyndir.com)
+ *
+ * See the enclosed file LICENSE for license information (LGPLv3). If you did
+ * not receive this file, see http://www.gnu.org/licenses/lgpl-3.0.txt
+ *
+ * @author Maarten Billemont
+ * @license http://www.gnu.org/licenses/lgpl-3.0.txt
+ */
+
+//
+// MPElementModel.h
+// MPElementModel
+//
+// Created by lhunath on 2/11/2014.
+// Copyright, lhunath (Maarten Billemont) 2014. All rights reserved.
+//
+
+#import
+@class MPElementEntity;
+
+@interface MPElementModel : NSObject
+@property (nonatomic) NSString *site;
+@property (nonatomic) NSString *type;
+@property (nonatomic) NSString *content;
+@property (nonatomic) NSString *loginName;
+@property (nonatomic) NSNumber *uses;
+@property (nonatomic) NSDate *lastUsed;
+
+- (MPElementEntity *)entityForMainThread;
+- (MPElementEntity *)entityInContext:(NSManagedObjectContext *)moc;
+
+- (id)initWithEntity:(MPElementEntity *)entity;
+@end
diff --git a/MasterPassword/ObjC/Mac/MPElementModel.m b/MasterPassword/ObjC/Mac/MPElementModel.m
new file mode 100644
index 00000000..813d8d90
--- /dev/null
+++ b/MasterPassword/ObjC/Mac/MPElementModel.m
@@ -0,0 +1,68 @@
+/**
+ * Copyright Maarten Billemont (http://www.lhunath.com, lhunath@lyndir.com)
+ *
+ * See the enclosed file LICENSE for license information (LGPLv3). If you did
+ * not receive this file, see http://www.gnu.org/licenses/lgpl-3.0.txt
+ *
+ * @author Maarten Billemont
+ * @license http://www.gnu.org/licenses/lgpl-3.0.txt
+ */
+
+//
+// MPElementModel.h
+// MPElementModel
+//
+// Created by lhunath on 2/11/2014.
+// Copyright, lhunath (Maarten Billemont) 2014. All rights reserved.
+//
+
+#import "MPElementModel.h"
+#import "MPElementEntity.h"
+#import "MPEntities.h"
+#import "MPAppDelegate_Shared.h"
+#import "MPAppDelegate_Store.h"
+#import "MPMacAppDelegate.h"
+
+@interface MPElementModel()
+
+@property(nonatomic, strong) NSManagedObjectID *entityOID;
+@end
+
+@implementation MPElementModel {
+}
+
+- (id)initWithEntity:(MPElementEntity *)entity {
+
+ if (!(self = [super init]))
+ return nil;
+
+ self.site = entity.name;
+ self.lastUsed = entity.lastUsed;
+ self.loginName = entity.loginName;
+ self.type = entity.typeName;
+ self.uses = entity.uses_;
+ self.content = [entity.algorithm resolveContentForElement:entity usingKey:[MPAppDelegate_Shared get].key];
+ self.entityOID = entity.objectID;
+
+ return self;
+}
+
+- (MPElementEntity *)entityForMainThread {
+
+ return [self entityInContext:[MPMacAppDelegate managedObjectContextForMainThreadIfReady]];
+}
+
+- (MPElementEntity *)entityInContext:(NSManagedObjectContext *)moc {
+
+ if (!_entityOID)
+ return nil;
+
+ NSError *error;
+ MPElementEntity *entity = (MPElementEntity *)[moc existingObjectWithID:_entityOID error:&error];
+ if (!entity)
+ err(@"Couldn't retrieve active element: %@", error);
+
+ return entity;
+}
+
+@end
diff --git a/MasterPassword/ObjC/Mac/MPInitialWindow.xib b/MasterPassword/ObjC/Mac/MPInitialWindow.xib
index a61b5556..b84ef004 100644
--- a/MasterPassword/ObjC/Mac/MPInitialWindow.xib
+++ b/MasterPassword/ObjC/Mac/MPInitialWindow.xib
@@ -1,1367 +1,156 @@
-
-
-
- 1080
- 12D78
- 3084
- 1187.37
- 626.00
-
-
- IBNSLayoutConstraint
- NSButton
- NSButtonCell
- NSCustomObject
- NSCustomView
- NSImageCell
- NSImageView
- NSTextField
- NSTextFieldCell
- NSView
- NSWindowTemplate
-
-
- com.apple.InterfaceBuilder.CocoaPlugin
-
-
-
-
-
-
-
-
-
-
-
-
- iphoneAppStore:
-
-
-
- 206
-
-
-
- openAtLoginButton
-
-
-
- 571
-
-
-
- enableCloudButton
-
-
-
- 572
-
-
-
- togglePreference:
-
-
-
- 573
-
-
-
- togglePreference:
-
-
-
- 574
-
-
-
-
-
- 0
-
-
-
-
-
- -2
-
-
- File's Owner
-
-
- -1
-
-
- First Responder
-
-
- -3
-
-
- Application
-
-
- 1
-
-
-
-
-
-
-
- 2
-
-
-
-
- 4
- 0
-
- 4
- 1
-
- 10
-
- 1000
-
- 9
- 40
- 3
-
-
-
- 5
- 0
-
- 6
- 1
-
- 8
-
- 1000
-
- 6
- 24
- 3
-
-
-
- 6
- 0
-
- 6
- 1
-
- 20
-
- 1000
-
- 8
- 29
- 3
-
-
-
- 5
- 0
-
- 6
- 1
-
- 8
-
- 1000
-
- 6
- 24
- 3
-
-
-
- 4
- 0
-
- 4
- 1
-
- 10
-
- 1000
-
- 9
- 40
- 3
-
-
-
- 3
- 0
-
- 4
- 1
-
- 8
-
- 1000
-
- 9
- 40
- 3
-
-
-
- 11
- 0
-
- 11
- 1
-
- 0.0
-
- 1000
-
- 9
- 40
- 2
-
-
-
- 11
- 0
-
- 11
- 1
-
- 0.0
-
- 1000
-
- 6
- 24
- 2
-
-
-
- 5
- 0
-
- 5
- 1
-
- 23
-
- 1000
-
- 3
- 9
- 3
-
-
-
- 6
- 0
-
- 6
- 1
-
- 0.0
-
- 1000
-
- 8
- 29
- 3
-
-
-
- 5
- 0
-
- 5
- 1
-
- 0.0
-
- 1000
-
- 8
- 29
- 3
-
-
-
- 3
- 0
-
- 3
- 1
-
- 0.0
-
- 1000
-
- 9
- 40
- 3
-
-
-
-
-
-
-
- Container
-
-
- 369
-
-
-
-
- 3
- 0
-
- 4
- 1
-
- 8
-
- 1000
-
- 6
- 24
- 3
-
-
-
- 4
- 0
-
- 4
- 1
-
- 20
-
- 1000
-
- 8
- 29
- 3
-
-
-
- 9
- 0
-
- 9
- 1
-
- 0.0
-
- 1000
-
- 6
- 24
- 2
-
-
-
- 9
- 0
-
- 9
- 1
-
- 0.0
-
- 1000
-
- 6
- 24
- 2
-
-
-
- 3
- 0
-
- 3
- 1
-
- 20
-
- 1000
-
- 8
- 29
- 3
-
-
-
- 6
- 0
-
- 6
- 1
-
- 20
-
- 1000
-
- 8
- 29
- 3
-
-
-
- 5
- 0
-
- 5
- 1
-
- 20
-
- 1000
-
- 8
- 29
- 3
-
-
-
- 5
- 0
-
- 5
- 1
-
- 0.0
-
- 1000
-
- 8
- 29
- 3
-
-
-
- 3
- 0
-
- 3
- 1
-
- 0.0
-
- 1000
-
- 9
- 40
- 3
-
-
-
- 6
- 0
-
- 6
- 1
-
- 0.0
-
- 1000
-
- 8
- 29
- 3
-
-
-
- 4
- 0
-
- 4
- 1
-
- 0.0
-
- 1000
-
- 9
- 40
- 3
-
-
-
-
-
-
-
-
-
- 374
-
-
-
-
- 375
-
-
-
-
- 3
-
-
-
-
-
- 8
- 0
-
- 0
- 1
-
- 500
-
- 1000
-
- 3
- 9
- 1
-
-
-
- Image
-
-
- 4
-
-
-
-
- 378
-
-
-
-
- 379
-
-
-
-
- 380
-
-
-
-
- 381
-
-
-
-
- 268
-
-
-
-
-
-
-
- 269
-
-
-
-
- 385
-
-
-
-
- 387
-
-
-
-
- 283
-
-
-
-
-
-
-
- 284
-
-
-
-
- 393
-
-
-
-
- 409
-
-
-
-
-
- 7
- 0
-
- 0
- 1
-
- 122
-
- 1000
-
- 3
- 9
- 1
-
-
-
-
-
- 410
-
-
-
-
- 444
-
-
-
-
- 507
-
-
-
-
- 508
-
-
-
-
- 7
- 0
-
- 0
- 1
-
- 122
-
- 1000
-
- 3
- 9
- 1
-
-
-
-
-
-
- 509
-
-
-
-
- 510
-
-
-
-
- 513
-
-
-
-
- 514
-
-
-
-
- 515
-
-
-
-
- 396
-
-
-
-
- 173
-
-
-
-
-
- Store
-
-
- 395
-
-
-
-
- 174
-
-
-
-
- 542
-
-
-
-
- 543
-
-
-
-
- 544
-
-
-
-
- 545
-
-
-
-
- 546
-
-
-
-
- 562
-
-
-
-
-
- 7
- 0
-
- 0
- 1
-
- 530
-
- 1000
-
- 3
- 9
- 1
-
-
-
-
-
- 563
-
-
-
-
- 565
-
-
-
-
- 567
-
-
-
-
- 568
-
-
-
-
- 569
-
-
-
-
- 566
-
-
-
-
-
-
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
- com.apple.InterfaceBuilder.CocoaPlugin
-
-
- com.apple.InterfaceBuilder.CocoaPlugin
- {{357, 418}, {480, 270}}
-
-
- 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
-
-
-
-
- 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
- com.apple.InterfaceBuilder.CocoaPlugin
-
-
-
-
-
- 575
-
-
-
-
- MPAppDelegate_Shared
- PearlAppDelegate
-
- IBProjectSource
- ./Classes/MPAppDelegate_Shared.h
-
-
-
- MPMacAppDelegate
- MPAppDelegate_Shared
-
- id
- id
- NSMenuItem
- id
- id
- id
- id
-
-
-
- iphoneAppStore:
- id
-
-
- lock:
- id
-
-
- newUser:
- NSMenuItem
-
-
- rebuildCloud:
- id
-
-
- showPasswordWindow:
- id
-
-
- terminate:
- id
-
-
- togglePreference:
- id
-
-
-
- NSMenuItem
- NSMenuItem
- NSMenuItem
- NSButton
- NSMenuItem
- NSButton
- NSMenuItem
- NSMenuItem
- NSMenuItem
- NSMenuItem
- NSMenu
- NSMenuItem
- NSMenuItem
-
-
-
- createUserItem
- NSMenuItem
-
-
- dialogStyleHUD
- NSMenuItem
-
-
- dialogStyleRegular
- NSMenuItem
-
-
- enableCloudButton
- NSButton
-
-
- lockItem
- NSMenuItem
-
-
- openAtLoginButton
- NSButton
-
-
- openAtLoginItem
- NSMenuItem
-
-
- rememberPasswordItem
- NSMenuItem
-
-
- savePasswordItem
- NSMenuItem
-
-
- showItem
- NSMenuItem
-
-
- statusMenu
- NSMenu
-
-
- useCloudItem
- NSMenuItem
-
-
- usersItem
- NSMenuItem
-
-
-
- IBProjectSource
- ./Classes/MPMacAppDelegate.h
-
-
-
- NSLayoutConstraint
- NSObject
-
- IBProjectSource
- ./Classes/NSLayoutConstraint.h
-
-
-
- PearlAppDelegate
- UIResponder
-
- UINavigationController
- UIWindow
-
-
-
- navigationController
- UINavigationController
-
-
- window
- UIWindow
-
-
-
- IBProjectSource
- ./Classes/PearlAppDelegate.h
-
-
-
- UINavigationController
- UIViewController
-
- IBProjectSource
- ./Classes/UINavigationController.h
-
-
-
- UIWindow
- UIView
-
- IBProjectSource
- ./Classes/UIWindow.h
-
-
-
-
- 0
- IBCocoaFramework
- YES
- 3
-
- {150, 44}
- {1000, 600}
-
- YES
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Access your passwords
+from anywhere.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/MasterPassword/ObjC/Mac/MPPasswordWindowController.h b/MasterPassword/ObjC/Mac/MPPasswordWindowController.h
index 98a49c51..57572780 100644
--- a/MasterPassword/ObjC/Mac/MPPasswordWindowController.h
+++ b/MasterPassword/ObjC/Mac/MPPasswordWindowController.h
@@ -8,15 +8,13 @@
#import
-@interface MPPasswordWindowController : NSWindowController
+@interface MPPasswordWindowController : NSWindowController
-@property(nonatomic, weak) IBOutlet NSTextField *siteLabel;
+@property(nonatomic, strong) NSMutableArray *elements;
@property(nonatomic, weak) IBOutlet NSTextField *siteField;
-@property(nonatomic, weak) IBOutlet NSTextField *contentField;
@property(nonatomic, weak) IBOutlet NSTextField *tipField;
-@property(nonatomic, weak) IBOutlet NSComboBox *typeField;
@property(nonatomic, weak) IBOutlet NSView *contentContainer;
-@property(nonatomic, weak) IBOutlet NSProgressIndicator *progressView;
@property(nonatomic, weak) IBOutlet NSTextField *userLabel;
+@property(nonatomic, weak) IBOutlet NSCollectionView *siteCollectionView;
@end
diff --git a/MasterPassword/ObjC/Mac/MPPasswordWindowController.m b/MasterPassword/ObjC/Mac/MPPasswordWindowController.m
index 3a0628a3..0b0ff0bc 100644
--- a/MasterPassword/ObjC/Mac/MPPasswordWindowController.m
+++ b/MasterPassword/ObjC/Mac/MPPasswordWindowController.m
@@ -10,41 +10,38 @@
#import "MPMacAppDelegate.h"
#import "MPAppDelegate_Key.h"
#import "MPAppDelegate_Store.h"
+#import "MPElementModel.h"
#define MPAlertUnlockMP @"MPAlertUnlockMP"
#define MPAlertIncorrectMP @"MPAlertIncorrectMP"
#define MPAlertCreateSite @"MPAlertCreateSite"
-#define MPAlertChangeType @"MPAlertChangeType"
@interface MPPasswordWindowController()
@property(nonatomic) BOOL inProgress;
-@property(nonatomic) BOOL siteFieldPreventCompletion;
@property(nonatomic, strong) NSOperationQueue *backgroundQueue;
@property(nonatomic, strong) NSAlert *loadingDataAlert;
@property(nonatomic) BOOL closing;
+
@end
-@implementation MPPasswordWindowController {
- NSManagedObjectID *_activeElementOID;
-}
+@implementation MPPasswordWindowController
- (void)windowDidLoad {
if ([[MPMacConfig get].dialogStyleHUD boolValue]) {
self.window.styleMask = NSHUDWindowMask | NSTitledWindowMask | NSUtilityWindowMask | NSClosableWindowMask;
- self.siteLabel.textColor = [NSColor whiteColor];
+ self.userLabel.textColor = [NSColor whiteColor];
}
else {
self.window.styleMask = NSTexturedBackgroundWindowMask | NSResizableWindowMask | NSTitledWindowMask | NSClosableWindowMask;
- self.siteLabel.textColor = [NSColor controlTextColor];
+ self.userLabel.textColor = [NSColor controlTextColor];
}
self.backgroundQueue = [NSOperationQueue new];
self.backgroundQueue.maxConcurrentOperationCount = 1;
- [self setContent:@""];
[self.tipField setStringValue:@""];
[self.userLabel setStringValue:PearlString( @"%@'s password for:", [[MPMacAppDelegate get] activeUserForMainThread].name )];
@@ -57,40 +54,39 @@
// @"their passwords to change. You'll need to update your profile for that site with the new password."];
// [moc saveToStore];
// }];
- dispatch_async(dispatch_get_main_queue(), ^{
+ dispatch_async( dispatch_get_main_queue(), ^{
[self ensureLoadedAndUnlockedOrCloseIfLoggedOut:YES];
- });
+ } );
} forKeyPath:@"key" options:NSKeyValueObservingOptionInitial context:nil];
[[NSNotificationCenter defaultCenter] addObserverForName:NSWindowDidBecomeKeyNotification object:self.window
queue:[NSOperationQueue mainQueue] usingBlock:
- ^(NSNotification *note) {
- [self ensureLoadedAndUnlockedOrCloseIfLoggedOut:NO];
- [self.siteField selectText:nil];
- }];
+ ^(NSNotification *note) {
+ [self ensureLoadedAndUnlockedOrCloseIfLoggedOut:NO];
+ [self.siteField selectText:nil];
+ }];
[[NSNotificationCenter defaultCenter] addObserverForName:NSWindowWillCloseNotification object:self.window
queue:[NSOperationQueue mainQueue] usingBlock:
- ^(NSNotification *note) {
- NSWindow *sheet = [self.window attachedSheet];
- if (sheet)
- [NSApp endSheet:sheet];
-
- [NSApp hide:nil];
- self.closing = NO;
- }];
+ ^(NSNotification *note) {
+ NSWindow *sheet = [self.window attachedSheet];
+ if (sheet)
+ [NSApp endSheet:sheet];
+
+ [NSApp hide:nil];
+ self.closing = NO;
+ }];
[[NSNotificationCenter defaultCenter] addObserverForName:MPSignedOutNotification object:nil
queue:[NSOperationQueue mainQueue] usingBlock:
- ^(NSNotification *note) {
- _activeElementOID = nil;
- [self.siteField setStringValue:@""];
- [self.typeField deselectItemAtIndex:[self.typeField indexOfSelectedItem]];
- [self trySiteWithAction:NO];
- [self ensureLoadedAndUnlockedOrCloseIfLoggedOut:YES];
- }];
+ ^(NSNotification *note) {
+ self.siteField.stringValue = @"";
+ self.elements = nil;
+
+ [self ensureLoadedAndUnlockedOrCloseIfLoggedOut:YES];
+ }];
[[NSNotificationCenter defaultCenter] addObserverForName:USMStoreDidChangeNotification object:nil
queue:[NSOperationQueue mainQueue] usingBlock:
- ^(NSNotification *note) {
- [self ensureLoadedAndUnlockedOrCloseIfLoggedOut:NO];
- }];
+ ^(NSNotification *note) {
+ [self ensureLoadedAndUnlockedOrCloseIfLoggedOut:NO];
+ }];
[super windowDidLoad];
}
@@ -163,9 +159,7 @@
if ([MPMacAppDelegate get].key)
return;
- self.content = @"";
[self.siteField setStringValue:@""];
- [self.typeField deselectItemAtIndex:[self.typeField indexOfSelectedItem]];
[self.tipField setStringValue:@""];
NSAlert *alert = [NSAlert alertWithMessageText:@"Master Password is locked."
@@ -225,7 +219,6 @@
case NSAlertDefaultReturn: {
// "Unlock" button.
self.contentContainer.alphaValue = 0;
- [self.progressView startAnimation:nil];
self.inProgress = YES;
NSString *password = [(NSSecureTextField *)alert.accessoryView stringValue];
@@ -237,8 +230,6 @@
self.inProgress = NO;
dispatch_async( dispatch_get_current_queue(), ^{
- [self.progressView stopAnimation:nil];
-
if (success)
self.contentContainer.alphaValue = 1;
else {
@@ -263,8 +254,7 @@
case NSAlertDefaultReturn: {
[[MPMacAppDelegate get] addElementNamed:[self.siteField stringValue] completion:^(MPElementEntity *element) {
if (element) {
- _activeElementOID = element.objectID;
- [self trySiteWithAction:NO];
+ [self updateElements];
}
}];
break;
@@ -273,78 +263,55 @@
break;
}
}
- if (contextInfo == MPAlertChangeType) {
- switch (returnCode) {
- case NSAlertDefaultReturn: {
- MPElementType type = [self selectedType];
- [MPMacAppDelegate managedObjectContextPerformBlock:^(NSManagedObjectContext *context) {
- MPElementEntity *activeElement = [self activeElementInContext:context];
- _activeElementOID = [[MPMacAppDelegate get] changeElement:activeElement inContext:context
- toType:type].objectID;
- [context saveToStore];
+}
- dispatch_async( dispatch_get_main_queue(), ^{
- [self trySiteWithAction:NO];
- } );
- }];
- break;
- }
- default:
- break;
- }
+- (BOOL)control:(NSControl *)control textView:(NSTextView *)fieldEditor doCommandBySelector:(SEL)commandSelector {
+
+ if (commandSelector == @selector(cancel:)) { // Escape without completion.
+ [self close];
+ return YES;
}
-}
-
-- (MPElementType)selectedType {
-
- if (self.typeField.indexOfSelectedItem == 0)
- return MPElementTypeGeneratedMaximum;
- if (self.typeField.indexOfSelectedItem == 1)
- return MPElementTypeGeneratedLong;
- if (self.typeField.indexOfSelectedItem == 2)
- return MPElementTypeGeneratedMedium;
- if (self.typeField.indexOfSelectedItem == 3)
- return MPElementTypeGeneratedBasic;
- if (self.typeField.indexOfSelectedItem == 4)
- return MPElementTypeGeneratedShort;
- if (self.typeField.indexOfSelectedItem == 5)
- return MPElementTypeGeneratedPIN;
- if (self.typeField.indexOfSelectedItem == 6)
- return MPElementTypeStoredPersonal;
- if (self.typeField.indexOfSelectedItem == 7)
- return MPElementTypeStoredDevicePrivate;
-
- wrn(@"Unsupported type selected: %li, assuming Long.", self.typeField.indexOfSelectedItem);
- return MPElementTypeGeneratedLong;
-}
-
-- (void)comboBoxSelectionDidChange:(NSNotification *)notification {
-
- if (notification.object == self.typeField) {
- if ([self.typeField indexOfSelectedItem] < 0)
- return;
- MPElementEntity *activeElement = [self activeElementForMainThread];
- MPElementType selectedType = [self selectedType];
- if (!activeElement || activeElement.type == selectedType || !(selectedType & MPElementTypeClassGenerated))
- return;
-
- [[NSAlert alertWithMessageText:@"Change Password Type" defaultButton:@"Change Password"
- alternateButton:@"Cancel" otherButton:nil
- informativeTextWithFormat:@"Changing the password type for this site will cause the password to change.\n"
- @"You will need to update your account with the new password."]
- beginSheetModalForWindow:self.window modalDelegate:self didEndSelector:@selector(alertDidEnd:returnCode:contextInfo:)
- contextInfo:MPAlertChangeType];
+// if ((self.siteFieldPreventCompletion = [NSStringFromSelector( commandSelector ) hasPrefix:@"delete"])) { // Backspace any time.
+// _activeElementOID = nil;
+// [self trySiteWithAction:NO];
+// return NO;
+// }
+ if (commandSelector == @selector(insertNewline:)) { // Return without completion.
+ [self useSite];
+ return YES;
}
+
+ return NO;
}
-- (NSArray *)control:(NSControl *)control textView:(NSTextView *)textView completions:(NSArray *)words
- forPartialWordRange:(NSRange)charRange indexOfSelectedItem:(NSInteger *)index {
+- (void)controlTextDidChange:(NSNotification *)note {
- NSString *query = [[textView string] substringWithRange:charRange];
- if (![query length] || ![MPMacAppDelegate get].key)
- return nil;
+ if (note.object != self.siteField)
+ return;
+
+ // Update the site content as the site name changes.
+ if ([[NSApp currentEvent] type] == NSKeyDown &&
+ [[[NSApp currentEvent] charactersIgnoringModifiers] isEqualToString:@"\r"]) { // Return while completing.
+ [self useSite];
+ return;
+ }
+
+// if ([[NSApp currentEvent] type] == NSKeyDown &&
+// [[[NSApp currentEvent] charactersIgnoringModifiers] characterAtIndex:0] == 0x1b) { // Escape while completing.
+// [self trySiteWithAction:NO];
+// return;
+// }
+
+ [self updateElements];
+}
+
+- (void)updateElements {
+ NSString *query = [self.siteField.currentEditor string];
+ if (![query length] || ![MPMacAppDelegate get].key) {
+ self.elements = nil;
+ return;
+ }
- __block NSMutableArray *mutableResults = [NSMutableArray array];
[MPMacAppDelegate managedObjectContextPerformBlockAndWait:^(NSManagedObjectContext *context) {
NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:NSStringFromClass( [MPElementEntity class] )];
fetchRequest.sortDescriptors = [NSArray arrayWithObject:[[NSSortDescriptor alloc] initWithKey:@"lastUsed" ascending:NO]];
@@ -356,159 +323,83 @@
if (!siteResults)
err(@"While fetching elements for completion: %@", error);
else if ([siteResults count]) {
- _activeElementOID = ((NSManagedObject *)[siteResults objectAtIndex:0]).objectID;
+ NSMutableArray *newElements = [NSMutableArray arrayWithCapacity:[siteResults count]];
for (MPElementEntity *element in siteResults)
- [mutableResults addObject:element.name];
+ [newElements addObject:[[MPElementModel alloc] initWithEntity:element]];
+ self.elements = newElements;
}
- else
- _activeElementOID = nil;
}];
-
- if ([mutableResults count] < 2) {
- //[textView setString:[(MPElementEntity *)[siteResults objectAtIndex:0] name]];
- //[textView setSelectedRange:NSMakeRange( [query length], [[textView string] length] - [query length] )];
- [self trySiteWithAction:NO];
- }
-
- return mutableResults;
}
-- (BOOL)control:(NSControl *)control textView:(NSTextView *)fieldEditor doCommandBySelector:(SEL)commandSelector {
+- (MPElementModel *)selectedElement {
- if (commandSelector == @selector(cancel:)) { // Escape without completion.
- [self close];
- return YES;
- }
- if ((self.siteFieldPreventCompletion = [NSStringFromSelector( commandSelector ) hasPrefix:@"delete"])) { // Backspace any time.
- _activeElementOID = nil;
- [self trySiteWithAction:NO];
- return NO;
- }
- if (commandSelector == @selector(insertNewline:)) { // Return without completion.
- [self trySiteWithAction:YES];
- return YES;
- }
-
- return NO;
-}
-
-- (void)controlTextDidEndEditing:(NSNotification *)note {
-
- if (note.object != self.siteField)
- return;
-
- [self trySiteWithAction:NO];
-}
-
-- (void)controlTextDidChange:(NSNotification *)note {
-
- if (note.object != self.siteField)
- return;
-
- // Update the site content as the site name changes.
- if ([[NSApp currentEvent] type] == NSKeyDown &&
- [[[NSApp currentEvent] charactersIgnoringModifiers] isEqualToString:@"\r"]) { // Return while completing.
- [self trySiteWithAction:YES];
- return;
- }
-
- if ([[NSApp currentEvent] type] == NSKeyDown &&
- [[[NSApp currentEvent] charactersIgnoringModifiers] characterAtIndex:0] == 0x1b) { // Escape while completing.
- _activeElementOID = nil;
- [self trySiteWithAction:NO];
- return;
- }
-
- if (self.siteFieldPreventCompletion) {
- self.siteFieldPreventCompletion = NO;
- return;
- }
-
- self.siteFieldPreventCompletion = YES;
- [(NSText *)[note.userInfo objectForKey:@"NSFieldEditor"] complete:self];
- self.siteFieldPreventCompletion = NO;
-}
-
-- (MPElementEntity *)activeElementForMainThread {
-
- return [self activeElementInContext:[MPMacAppDelegate managedObjectContextForMainThreadIfReady]];
-}
-
-- (MPElementEntity *)activeElementInContext:(NSManagedObjectContext *)moc {
-
- if (!_activeElementOID)
+ NSIndexSet *selectedIndexes = self.siteCollectionView.selectionIndexes;
+ if (!selectedIndexes.count)
return nil;
- NSError *error;
- MPElementEntity *activeElement = (MPElementEntity *)[moc existingObjectWithID:_activeElementOID error:&error];
- if (!activeElement)
- err(@"Couldn't retrieve active element: %@", error);
-
- return activeElement;
+ return (MPElementModel *)self.elements[selectedIndexes.firstIndex];
}
-- (void)setContent:(NSString *)content {
+- (void)useSite {
- NSMutableParagraphStyle *paragraph = [NSMutableParagraphStyle new];
- paragraph.alignment = NSCenterTextAlignment;
+ MPElementModel *selectedElement = [self selectedElement];
+ if (selectedElement) {
+ // Performing action while content is available. Copy it.
+ [self copyContent:selectedElement.content];
- [self.contentField setAttributedStringValue:[[NSAttributedString alloc] initWithString:content attributes:@{
- NSParagraphStyleAttributeName : paragraph
- }]];
-}
-
-- (void)trySiteWithAction:(BOOL)doAction {
-
- NSString *siteName = [self.siteField stringValue];
- [self.progressView startAnimation:nil];
- [MPMacAppDelegate managedObjectContextPerformBlock:^(NSManagedObjectContext *context) {
- BOOL actionHandled = NO;
- MPElementEntity *activeElement = [self activeElementInContext:context];
- NSString *content = [activeElement.content description];
- NSString *typeName = [activeElement typeShortName];
- if (!content)
- content = @"";
-
- if (doAction) {
- if ([content length]) {
- // Performing action while content is available. Copy it.
- [self copyContent:content];
- }
- else if ([siteName length]) {
- // Performing action without content but a site name is written.
- [self createNewSite:siteName];
- actionHandled = YES;
- }
- }
-
- [[NSOperationQueue mainQueue] addOperationWithBlock:^{
- [self setContent:content];
- [self.progressView stopAnimation:nil];
- if (![[self.typeField stringValue] isEqualToString:typeName])
- [self.typeField selectItemWithObjectValue:typeName];
-
- self.tipField.alphaValue = 1;
- if (actionHandled)
- [self.tipField setStringValue:@""];
- else if ([content length] == 0) {
- if ([siteName length])
- [self.tipField setStringValue:@"Hit ⌤ (ENTER) to create a new site."];
- else
- [self.tipField setStringValue:@""];
- }
- else if (!doAction)
- [self.tipField setStringValue:@"Hit ⌤ (ENTER) to copy the password."];
- else {
- [self.tipField setStringValue:@"Copied! Hit ⎋ (ESC) to close window."];
- dispatch_after( dispatch_time( DISPATCH_TIME_NOW, (int64_t)(5.0f * NSEC_PER_SEC) ), dispatch_get_main_queue(), ^{
+ self.tipField.alphaValue = 1;
+ self.tipField.stringValue = @"Copied! Hit ⎋ (ESC) to close window.";
+ dispatch_after( dispatch_time( DISPATCH_TIME_NOW, (int64_t)(5.0f * NSEC_PER_SEC) ), dispatch_get_main_queue(),
+ ^{
[NSAnimationContext beginGrouping];
[[NSAnimationContext currentContext] setDuration:0.2f];
[self.tipField.animator setAlphaValue:0];
[NSAnimationContext endGrouping];
} );
- }
- }];
- }];
+ }
+ else {
+ NSString *siteName = [self.siteField stringValue];
+ if ([siteName length]) {
+ // Performing action without content but a site name is written.
+ [self createNewSite:siteName];
+ [self.tipField setStringValue:@""];
+ }
+ }
+
+// [MPMacAppDelegate managedObjectContextPerformBlock:^(NSManagedObjectContext *context) {
+// MPElementEntity *activeElement = [self activeElementInContext:context];
+// NSString *typeName = [activeElement typeShortName];
+// [activeElement.algorithm resolveContentForElement:activeElement usingKey:[MPAppDelegate_Shared get].key result:
+// ^(NSString *result) {
+// BOOL actionHandled = NO;
+// if (doAction) {
+// }
+//
+// [[NSOperationQueue mainQueue] addOperationWithBlock:^{
+// [self setContent:result];
+// if (actionHandled)
+// [self.tipField setStringValue:@""];
+// else if (![result length]) {
+// if ([siteName length])
+// [self.tipField setStringValue:@"Hit ⌤ (ENTER) to create a new site."];
+// else
+// [self.tipField setStringValue:@""];
+// }
+// else if (!doAction)
+// [self.tipField setStringValue:@"Hit ⌤ (ENTER) to copy the password."];
+// else {
+// [self.tipField setStringValue:@"Copied! Hit ⎋ (ESC) to close window."];
+// dispatch_after( dispatch_time( DISPATCH_TIME_NOW, (int64_t)(5.0f * NSEC_PER_SEC) ), dispatch_get_main_queue(),
+// ^{
+// [NSAnimationContext beginGrouping];
+// [[NSAnimationContext currentContext] setDuration:0.2f];
+// [self.tipField.animator setAlphaValue:0];
+// [NSAnimationContext endGrouping];
+// } );
+// }
+// }];
+// }];
+// }];
}
- (void)copyContent:(NSString *)content {
@@ -520,7 +411,7 @@
}
[MPMacAppDelegate managedObjectContextPerformBlock:^(NSManagedObjectContext *moc) {
- [[self activeElementInContext:moc] use];
+ [[self.selectedElement entityInContext:moc] use];
[moc saveToStore];
}];
}
@@ -536,4 +427,14 @@
}];
}
+- (void)insertObject:(MPElementModel *)model inElementsAtIndex:(NSUInteger)index {
+
+ [self.elements insertObject:model atIndex:index];
+}
+
+- (void)removeObjectFromElementsAtIndex:(NSUInteger)index {
+
+ [self.elements removeObjectAtIndex:index];
+}
+
@end
diff --git a/MasterPassword/ObjC/Mac/MPPasswordWindowController.xib b/MasterPassword/ObjC/Mac/MPPasswordWindowController.xib
index 2a455f7a..bb49c64a 100644
--- a/MasterPassword/ObjC/Mac/MPPasswordWindowController.xib
+++ b/MasterPassword/ObjC/Mac/MPPasswordWindowController.xib
@@ -1,1231 +1,224 @@
-
-
-
- 1080
- 12D78
- 3084
- 1187.37
- 626.00
-
- com.apple.InterfaceBuilder.CocoaPlugin
- 3084
-
-
- IBNSLayoutConstraint
- NSComboBox
- NSComboBoxCell
- NSCustomObject
- NSCustomView
- NSProgressIndicator
- NSTextField
- NSTextFieldCell
- NSView
- NSWindowTemplate
-
-
- com.apple.InterfaceBuilder.CocoaPlugin
-
-
- PluginDependencyRecalculationVersion
-
-
-
-
- MPPasswordWindowController
-
-
- FirstResponder
-
-
- NSApplication
-
-
- 267
- 2
- {{600, 530}, {480, 200}}
- 611845120
- Master Password
- NSPanel
-
-
- {480, 200}
- {480, 199}
-
-
- 256
-
-
-
- 268
-
-
-
- 268
- {{288, 131}, {115, 26}}
-
-
-
- _NS:9
- YES
-
- 72351808
- 272630784
-
-
- LucidaGrande
- 13
- 1044
-
-
- _NS:9
-
- YES
- 1
-
- 6
- System
- textBackgroundColor
-
- 3
- MQA
-
-
-
- 6
- System
- controlTextColor
-
- 3
- MAA
-
-
- 5
- YES
-
- Maximum
- Long
- Medium
- Basic
- Short
- PIN
- Personal
- Device
-
-
-
-
- 274
- {13, 168}
-
-
- _NS:24
- YES
- NO
- YES
-
-
- 10
- 10
- 1000
-
-
- 338690112
- 1024
-
-
- YES
-
- 6
- System
- controlBackgroundColor
-
- 3
- MC42NjY2NjY2NjY3AA
-
-
-
-
- 3
- YES
-
-
-
- 3
- 2
-
-
- 6
- System
- gridColor
-
- 3
- MC41AA
-
-
- 19
- tableViewAction:
- -765427712
-
-
-
- 1
- 15
- 0
- YES
- 0
- 1
-
- NO
-
- NO
-
-
-
- 268
- {{129, 163}, {223, 17}}
-
-
-
-
- 1
- 1
-
- 6
- System
- controlShadowColor
-
- 3
- MC4zMzMzMzMzMzMzAA
-
-
-
- _NS:1535
- YES
-
- 67108928
- 138414144
- Maarten Billemont's password for:
-
- _NS:1535
-
-
- 6
- System
- controlColor
-
-
-
-
- NO
-
-
-
- 268
- {{17, 20}, {446, 17}}
-
-
-
-
- 1
- 1
-
- 3
- MCAwLjkAA
-
-
- _NS:1505
- YES
-
- 67108928
- 138414144
- Hit enter to copy the password.
-
- _NS:1505
-
-
-
- 1
- MSAxIDEAA
-
-
- NO
-
-
-
- 268
- {{80, 133}, {200, 22}}
-
-
-
- _NS:9
- YES
-
- -1804599231
- 138413120
- apple.com
-
- Site name
- _NS:9
-
- 1
-
-
- 6
- System
- textColor
-
-
-
- NO
-
-
-
- 268
- {{17, 45}, {446, 80}}
-
-
-
-
- 1
- 1
-
- 3
- MCAwLjYAA
-
-
-
-
-
- YES
-
-
-
-
- YES
-
-
- _NS:9
- {250, 750}
- YES
-
- 67108864
- 138412032
- Getx2?QazuRicj
-
- SourceCodePro-Black
- 48
- 16
-
- _NS:9
-
- YES
-
-
- 1
- MC40NzQ1MDk4MDM5IDAuODY2NjY2NjY2NyAwLjk4NDMxMzcyNTUAA
-
-
- NO
-
-
-
- 268
- {{224, 84}, {32, 32}}
-
-
-
- _NS:945
- 28682
- 100
-
-
- {480, 200}
-
-
-
- _NS:9
- NSView
-
-
- {480, 200}
-
-
-
- YES
- _NS:21
-
- {{0, 0}, {1920, 1058}}
- {480, 221}
- {480, 222}
- YES
-
-
-
-
-
-
- window
-
-
-
- 40
-
-
-
- contentContainer
-
-
-
- 214
-
-
-
- userLabel
-
-
-
- 223
-
-
-
- siteField
-
-
-
- 224
-
-
-
- contentField
-
-
-
- 225
-
-
-
- tipField
-
-
-
- 226
-
-
-
- progressView
-
-
-
- 215
-
-
-
- typeField
-
-
-
- 263
-
-
-
- siteLabel
-
-
-
- 266
-
-
-
- delegate
-
-
-
- 39
-
-
-
- delegate
-
-
-
- 188
-
-
-
- delegate
-
-
-
- 265
-
-
-
-
-
- 0
-
-
-
-
-
- -2
-
-
- File's Owner
-
-
- -1
-
-
- First Responder
-
-
- -3
-
-
- Application
-
-
- 22
-
-
-
-
-
-
-
- 23
-
-
-
-
- 3
- 0
-
- 3
- 1
-
- 0.0
-
- 1000
-
- 8
- 29
- 3
-
-
-
- 6
- 0
-
- 6
- 1
-
- 0.0
-
- 1000
-
- 8
- 29
- 3
-
-
-
- 4
- 0
-
- 4
- 1
-
- 0.0
-
- 1000
-
- 8
- 29
- 3
-
-
-
- 5
- 0
-
- 5
- 1
-
- 0.0
-
- 1000
-
- 8
- 29
- 3
-
-
-
-
-
-
- 143
-
-
-
-
- 11
- 0
-
- 11
- 1
-
- 0.0
-
- 1000
-
- 6
- 24
- 2
-
-
-
- 5
- 0
-
- 6
- 1
-
- 8
-
- 1000
-
- 6
- 24
- 3
-
-
-
- 9
- 0
-
- 9
- 1
-
- 0.0
-
- 1000
-
- 6
- 24
- 2
-
-
-
- 10
- 0
-
- 10
- 1
-
- 0.0
-
- 1000
-
- 5
- 22
- 2
-
-
-
- 9
- 0
-
- 9
- 1
-
- 0.0
-
- 1000
-
- 6
- 24
- 2
-
-
-
- 4
- 0
-
- 4
- 1
-
- 20
-
- 1000
-
- 8
- 29
- 3
-
-
-
- 6
- 0
-
- 6
- 1
-
- 20
-
- 1000
-
- 8
- 29
- 3
-
-
-
- 5
- 0
-
- 5
- 1
-
- 20
-
- 1000
-
- 8
- 29
- 3
-
-
-
- 3
- 0
-
- 3
- 1
-
- 20
-
- 1000
-
- 8
- 29
- 3
-
-
-
- 5
- 0
-
- 5
- 1
-
- 80
-
- 1000
-
- 3
- 9
- 3
-
-
-
- 3
- 0
-
- 4
- 1
-
- 8
-
- 1000
-
- 6
- 24
- 3
-
-
-
- 3
- 0
-
- 4
- 1
-
- 8
-
- 1000
-
- 6
- 24
- 3
-
-
-
- 6
- 0
-
- 6
- 1
-
- 20
-
- 1000
-
- 8
- 29
- 3
-
-
-
- 5
- 0
-
- 5
- 1
-
- 20
-
- 1000
-
- 8
- 29
- 3
-
-
-
-
-
-
-
-
-
-
-
- 145
-
-
-
-
- 147
-
-
-
-
- 148
-
-
-
-
- 150
-
-
-
-
- 181
-
-
-
-
-
- 8
- 0
-
- 0
- 1
-
- 80
-
- 1000
-
- 3
- 9
- 1
-
-
-
-
-
- 187
-
-
-
-
- 182
-
-
-
-
-
- 7
- 0
-
- 0
- 1
-
- 200
-
- 1000
-
- 3
- 9
- 1
-
-
-
-
-
- 185
-
-
-
-
- 183
-
-
-
-
-
-
-
- 184
-
-
-
-
- 199
-
-
-
-
- 200
-
-
-
-
- 201
-
-
-
-
- 205
-
-
-
-
- 209
-
-
-
-
- 216
-
-
-
-
-
-
-
- 217
-
-
-
-
- 218
-
-
-
-
- 221
-
-
-
-
- 222
-
-
-
-
- 231
-
-
-
-
- 96
-
-
-
-
- 237
-
-
-
-
- 238
-
-
-
-
- 240
-
-
-
-
-
- 7
- 0
-
- 0
- 1
-
- 112
-
- 1000
-
- 3
- 9
- 1
-
-
-
-
-
- 241
-
-
-
-
- 254
-
-
-
-
- 256
-
-
-
-
- 258
-
-
-
-
- 260
-
-
-
-
- 261
-
-
-
-
- 262
-
-
-
-
-
-
- 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
- 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
-
- Maximum
- Long
- Medium
- Basic
- Short
- PIN
- Personal
- Device
-
- 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
-
-
-
-
-
- 266
-
-
-
-
- MPPasswordWindowController
- NSWindowController
-
- NSView
- NSTextField
- NSProgressIndicator
- NSTextField
- NSTextField
- NSTextField
- NSComboBox
- NSTextField
-
-
-
- contentContainer
- NSView
-
-
- contentField
- NSTextField
-
-
- progressView
- NSProgressIndicator
-
-
- siteField
- NSTextField
-
-
- siteLabel
- NSTextField
-
-
- tipField
- NSTextField
-
-
- typeField
- NSComboBox
-
-
- userLabel
- NSTextField
-
-
-
- IBProjectSource
- ./Classes/MPPasswordWindowController.h
-
-
-
- NSLayoutConstraint
- NSObject
-
- IBProjectSource
- ./Classes/NSLayoutConstraint.h
-
-
-
-
- 0
- IBCocoaFramework
-
- com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3
-
-
- YES
- 3
- YES
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ site
+ type
+ content
+ loginName
+ uses
+ lastUsed
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/MasterPassword/ObjC/Mac/MasterPassword-Mac.xcodeproj/project.pbxproj b/MasterPassword/ObjC/Mac/MasterPassword-Mac.xcodeproj/project.pbxproj
index 9c889ba7..9eea64e8 100644
--- a/MasterPassword/ObjC/Mac/MasterPassword-Mac.xcodeproj/project.pbxproj
+++ b/MasterPassword/ObjC/Mac/MasterPassword-Mac.xcodeproj/project.pbxproj
@@ -10,6 +10,8 @@
93D392EC39DA43C46C692C12 /* NSDictionary+Indexing.h in Headers */ = {isa = PBXBuildFile; fileRef = 93D393B97158D7BE9332EA53 /* NSDictionary+Indexing.h */; };
93D395F08A087F8A24689347 /* NSArray+Indexing.m in Sources */ = {isa = PBXBuildFile; fileRef = 93D39067C0AFDC581794E2B8 /* NSArray+Indexing.m */; };
93D39C34FE35830EF5BE1D2A /* NSArray+Indexing.h in Headers */ = {isa = PBXBuildFile; fileRef = 93D396D04E57792A54D437AC /* NSArray+Indexing.h */; };
+ 93D39C5789EFA607CF788082 /* MPElementModel.m in Sources */ = {isa = PBXBuildFile; fileRef = 93D39E73BF5CBF8E5B005CD3 /* MPElementModel.m */; };
+ 93D39C7C2BE7C0E0763B0177 /* MPElementCollectionView.m in Sources */ = {isa = PBXBuildFile; fileRef = 93D394495528B10D1B61A2C3 /* MPElementCollectionView.m */; };
93D39E281E3658B30550CB55 /* NSDictionary+Indexing.m in Sources */ = {isa = PBXBuildFile; fileRef = 93D39AA1EE2E1E7B81372240 /* NSDictionary+Indexing.m */; };
DA0933CA1747A56A00DE1CEF /* MPInitialWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = DA0933C91747A56A00DE1CEF /* MPInitialWindow.xib */; };
DA0933CC1747AD2D00DE1CEF /* shot-laptop-leaning-iphone.png in Resources */ = {isa = PBXBuildFile; fileRef = DA0933CB1747AD2D00DE1CEF /* shot-laptop-leaning-iphone.png */; };
@@ -32,15 +34,6 @@
DA3EF17D15A47744003ABF4E /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DA5BFA4A147E415C00F98B1E /* Foundation.framework */; };
DA4425CC1557BED40052177D /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DA5BFA4A147E415C00F98B1E /* Foundation.framework */; };
DA4DA1D91564471A00F6F596 /* libjrswizzle.a in Frameworks */ = {isa = PBXBuildFile; fileRef = DAC6326C148680650075AEA5 /* libjrswizzle.a */; };
- DA5E5C8817248AA1003798D8 /* crypto_aesctr.h in Headers */ = {isa = PBXBuildFile; fileRef = DA5E5C7B17248AA1003798D8 /* crypto_aesctr.h */; };
- DA5E5C8917248AA1003798D8 /* crypto_scrypt.h in Headers */ = {isa = PBXBuildFile; fileRef = DA5E5C7C17248AA1003798D8 /* crypto_scrypt.h */; };
- DA5E5C8A17248AA1003798D8 /* memlimit.h in Headers */ = {isa = PBXBuildFile; fileRef = DA5E5C7D17248AA1003798D8 /* memlimit.h */; };
- DA5E5C8B17248AA1003798D8 /* readpass.h in Headers */ = {isa = PBXBuildFile; fileRef = DA5E5C7E17248AA1003798D8 /* readpass.h */; };
- DA5E5C8C17248AA1003798D8 /* scryptenc.h in Headers */ = {isa = PBXBuildFile; fileRef = DA5E5C7F17248AA1003798D8 /* scryptenc.h */; };
- DA5E5C8D17248AA1003798D8 /* scryptenc_cpuperf.h in Headers */ = {isa = PBXBuildFile; fileRef = DA5E5C8017248AA1003798D8 /* scryptenc_cpuperf.h */; };
- DA5E5C8E17248AA1003798D8 /* sha256.h in Headers */ = {isa = PBXBuildFile; fileRef = DA5E5C8117248AA1003798D8 /* sha256.h */; };
- DA5E5C8F17248AA1003798D8 /* sysendian.h in Headers */ = {isa = PBXBuildFile; fileRef = DA5E5C8217248AA1003798D8 /* sysendian.h */; };
- DA5E5C9017248AA1003798D8 /* warn.h in Headers */ = {isa = PBXBuildFile; fileRef = DA5E5C8317248AA1003798D8 /* warn.h */; };
DA5E5C9417248AA1003798D8 /* libscryptenc-osx.a in Frameworks */ = {isa = PBXBuildFile; fileRef = DA5E5C8717248AA1003798D8 /* libscryptenc-osx.a */; };
DA5E5CF61724A667003798D8 /* MPAlgorithm.m in Sources */ = {isa = PBXBuildFile; fileRef = DA5E5C981724A667003798D8 /* MPAlgorithm.m */; };
DA5E5CF71724A667003798D8 /* MPAlgorithmV0.m in Sources */ = {isa = PBXBuildFile; fileRef = DA5E5C9A1724A667003798D8 /* MPAlgorithmV0.m */; };
@@ -130,6 +123,87 @@
DACA299A1705E2BD002C6C22 /* JRSwizzle.m in Sources */ = {isa = PBXBuildFile; fileRef = DACA298C1705E2BD002C6C22 /* JRSwizzle.m */; };
DAD9B5F01762CAA4001835F9 /* ServiceManagement.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DAD9B5EF1762CAA4001835F9 /* ServiceManagement.framework */; };
DAD9B5F11762CAB9001835F9 /* MasterPassword-Mac-LoginHelper.app in Copy LoginHelper */ = {isa = PBXBuildFile; fileRef = DAD9B5E6176299BA001835F9 /* MasterPassword-Mac-LoginHelper.app */; };
+ DAEB93D918AB0FFD000490CC /* aes.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEB938718AB0FFD000490CC /* aes.h */; };
+ DAEB93DA18AB0FFD000490CC /* asn1.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEB938818AB0FFD000490CC /* asn1.h */; };
+ DAEB93DB18AB0FFD000490CC /* asn1_mac.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEB938918AB0FFD000490CC /* asn1_mac.h */; };
+ DAEB93DC18AB0FFD000490CC /* asn1t.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEB938A18AB0FFD000490CC /* asn1t.h */; };
+ DAEB93DD18AB0FFD000490CC /* bio.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEB938B18AB0FFD000490CC /* bio.h */; };
+ DAEB93DE18AB0FFD000490CC /* blowfish.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEB938C18AB0FFD000490CC /* blowfish.h */; };
+ DAEB93DF18AB0FFD000490CC /* bn.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEB938D18AB0FFD000490CC /* bn.h */; };
+ DAEB93E018AB0FFD000490CC /* buffer.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEB938E18AB0FFD000490CC /* buffer.h */; };
+ DAEB93E118AB0FFD000490CC /* camellia.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEB938F18AB0FFD000490CC /* camellia.h */; };
+ DAEB93E218AB0FFD000490CC /* cast.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEB939018AB0FFD000490CC /* cast.h */; };
+ DAEB93E318AB0FFD000490CC /* cms.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEB939118AB0FFD000490CC /* cms.h */; };
+ DAEB93E418AB0FFD000490CC /* comp.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEB939218AB0FFD000490CC /* comp.h */; };
+ DAEB93E518AB0FFD000490CC /* conf.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEB939318AB0FFD000490CC /* conf.h */; };
+ DAEB93E618AB0FFD000490CC /* conf_api.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEB939418AB0FFD000490CC /* conf_api.h */; };
+ DAEB93E718AB0FFD000490CC /* crypto.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEB939518AB0FFD000490CC /* crypto.h */; };
+ DAEB93E818AB0FFD000490CC /* des.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEB939618AB0FFD000490CC /* des.h */; };
+ DAEB93E918AB0FFD000490CC /* des_old.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEB939718AB0FFD000490CC /* des_old.h */; };
+ DAEB93EA18AB0FFD000490CC /* dh.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEB939818AB0FFD000490CC /* dh.h */; };
+ DAEB93EB18AB0FFD000490CC /* dsa.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEB939918AB0FFD000490CC /* dsa.h */; };
+ DAEB93EC18AB0FFD000490CC /* dso.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEB939A18AB0FFD000490CC /* dso.h */; };
+ DAEB93ED18AB0FFD000490CC /* dtls1.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEB939B18AB0FFD000490CC /* dtls1.h */; };
+ DAEB93EE18AB0FFD000490CC /* e_os2.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEB939C18AB0FFD000490CC /* e_os2.h */; };
+ DAEB93EF18AB0FFD000490CC /* ebcdic.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEB939D18AB0FFD000490CC /* ebcdic.h */; };
+ DAEB93F018AB0FFD000490CC /* ec.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEB939E18AB0FFD000490CC /* ec.h */; };
+ DAEB93F118AB0FFD000490CC /* ecdh.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEB939F18AB0FFD000490CC /* ecdh.h */; };
+ DAEB93F218AB0FFD000490CC /* ecdsa.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEB93A018AB0FFD000490CC /* ecdsa.h */; };
+ DAEB93F318AB0FFD000490CC /* engine.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEB93A118AB0FFD000490CC /* engine.h */; };
+ DAEB93F418AB0FFD000490CC /* err.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEB93A218AB0FFD000490CC /* err.h */; };
+ DAEB93F518AB0FFD000490CC /* evp.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEB93A318AB0FFD000490CC /* evp.h */; };
+ DAEB93F618AB0FFD000490CC /* hmac.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEB93A418AB0FFD000490CC /* hmac.h */; };
+ DAEB93F718AB0FFD000490CC /* idea.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEB93A518AB0FFD000490CC /* idea.h */; };
+ DAEB93F818AB0FFD000490CC /* krb5_asn.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEB93A618AB0FFD000490CC /* krb5_asn.h */; };
+ DAEB93F918AB0FFD000490CC /* kssl.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEB93A718AB0FFD000490CC /* kssl.h */; };
+ DAEB93FA18AB0FFD000490CC /* lhash.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEB93A818AB0FFD000490CC /* lhash.h */; };
+ DAEB93FB18AB0FFD000490CC /* md4.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEB93A918AB0FFD000490CC /* md4.h */; };
+ DAEB93FC18AB0FFD000490CC /* md5.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEB93AA18AB0FFD000490CC /* md5.h */; };
+ DAEB93FD18AB0FFD000490CC /* mdc2.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEB93AB18AB0FFD000490CC /* mdc2.h */; };
+ DAEB93FE18AB0FFD000490CC /* modes.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEB93AC18AB0FFD000490CC /* modes.h */; };
+ DAEB93FF18AB0FFD000490CC /* obj_mac.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEB93AD18AB0FFD000490CC /* obj_mac.h */; };
+ DAEB940018AB0FFD000490CC /* objects.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEB93AE18AB0FFD000490CC /* objects.h */; };
+ DAEB940118AB0FFD000490CC /* ocsp.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEB93AF18AB0FFD000490CC /* ocsp.h */; };
+ DAEB940218AB0FFD000490CC /* opensslconf.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEB93B018AB0FFD000490CC /* opensslconf.h */; };
+ DAEB940318AB0FFD000490CC /* opensslv.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEB93B118AB0FFD000490CC /* opensslv.h */; };
+ DAEB940418AB0FFD000490CC /* ossl_typ.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEB93B218AB0FFD000490CC /* ossl_typ.h */; };
+ DAEB940518AB0FFD000490CC /* pem.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEB93B318AB0FFD000490CC /* pem.h */; };
+ DAEB940618AB0FFD000490CC /* pem2.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEB93B418AB0FFD000490CC /* pem2.h */; };
+ DAEB940718AB0FFD000490CC /* pkcs12.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEB93B518AB0FFD000490CC /* pkcs12.h */; };
+ DAEB940818AB0FFD000490CC /* pkcs7.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEB93B618AB0FFD000490CC /* pkcs7.h */; };
+ DAEB940918AB0FFD000490CC /* pqueue.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEB93B718AB0FFD000490CC /* pqueue.h */; };
+ DAEB940A18AB0FFD000490CC /* rand.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEB93B818AB0FFD000490CC /* rand.h */; };
+ DAEB940B18AB0FFD000490CC /* rc2.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEB93B918AB0FFD000490CC /* rc2.h */; };
+ DAEB940C18AB0FFD000490CC /* rc4.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEB93BA18AB0FFD000490CC /* rc4.h */; };
+ DAEB940D18AB0FFD000490CC /* ripemd.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEB93BB18AB0FFD000490CC /* ripemd.h */; };
+ DAEB940E18AB0FFD000490CC /* rsa.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEB93BC18AB0FFD000490CC /* rsa.h */; };
+ DAEB940F18AB0FFD000490CC /* safestack.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEB93BD18AB0FFD000490CC /* safestack.h */; };
+ DAEB941018AB0FFD000490CC /* seed.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEB93BE18AB0FFD000490CC /* seed.h */; };
+ DAEB941118AB0FFD000490CC /* sha.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEB93BF18AB0FFD000490CC /* sha.h */; };
+ DAEB941218AB0FFD000490CC /* ssl.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEB93C018AB0FFD000490CC /* ssl.h */; };
+ DAEB941318AB0FFD000490CC /* ssl2.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEB93C118AB0FFD000490CC /* ssl2.h */; };
+ DAEB941418AB0FFD000490CC /* ssl23.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEB93C218AB0FFD000490CC /* ssl23.h */; };
+ DAEB941518AB0FFD000490CC /* ssl3.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEB93C318AB0FFD000490CC /* ssl3.h */; };
+ DAEB941618AB0FFD000490CC /* stack.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEB93C418AB0FFD000490CC /* stack.h */; };
+ DAEB941718AB0FFD000490CC /* symhacks.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEB93C518AB0FFD000490CC /* symhacks.h */; };
+ DAEB941818AB0FFD000490CC /* tls1.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEB93C618AB0FFD000490CC /* tls1.h */; };
+ DAEB941918AB0FFD000490CC /* ts.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEB93C718AB0FFD000490CC /* ts.h */; };
+ DAEB941A18AB0FFD000490CC /* txt_db.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEB93C818AB0FFD000490CC /* txt_db.h */; };
+ DAEB941B18AB0FFD000490CC /* ui.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEB93C918AB0FFD000490CC /* ui.h */; };
+ DAEB941C18AB0FFD000490CC /* ui_compat.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEB93CA18AB0FFD000490CC /* ui_compat.h */; };
+ DAEB941D18AB0FFD000490CC /* whrlpool.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEB93CB18AB0FFD000490CC /* whrlpool.h */; };
+ DAEB941E18AB0FFD000490CC /* x509.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEB93CC18AB0FFD000490CC /* x509.h */; };
+ DAEB941F18AB0FFD000490CC /* x509_vfy.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEB93CD18AB0FFD000490CC /* x509_vfy.h */; };
+ DAEB942018AB0FFD000490CC /* x509v3.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEB93CE18AB0FFD000490CC /* x509v3.h */; };
+ DAEB942118AB0FFD000490CC /* crypto_aesctr.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEB93D018AB0FFD000490CC /* crypto_aesctr.h */; };
+ DAEB942218AB0FFD000490CC /* crypto_scrypt.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEB93D118AB0FFD000490CC /* crypto_scrypt.h */; };
+ DAEB942318AB0FFD000490CC /* memlimit.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEB93D218AB0FFD000490CC /* memlimit.h */; };
+ DAEB942418AB0FFD000490CC /* readpass.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEB93D318AB0FFD000490CC /* readpass.h */; };
+ DAEB942518AB0FFD000490CC /* scryptenc.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEB93D418AB0FFD000490CC /* scryptenc.h */; };
+ DAEB942618AB0FFD000490CC /* scryptenc_cpuperf.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEB93D518AB0FFD000490CC /* scryptenc_cpuperf.h */; };
+ DAEB942718AB0FFD000490CC /* sha256.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEB93D618AB0FFD000490CC /* sha256.h */; };
+ DAEB942818AB0FFD000490CC /* sysendian.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEB93D718AB0FFD000490CC /* sysendian.h */; };
+ DAEB942918AB0FFD000490CC /* warn.h in Headers */ = {isa = PBXBuildFile; fileRef = DAEB93D818AB0FFD000490CC /* warn.h */; };
DAFE4A1315039824003ABA7C /* NSObject+PearlExport.h in Headers */ = {isa = PBXBuildFile; fileRef = DAFE45D815039823003ABA7C /* NSObject+PearlExport.h */; };
DAFE4A1415039824003ABA7C /* NSObject+PearlExport.m in Sources */ = {isa = PBXBuildFile; fileRef = DAFE45D915039823003ABA7C /* NSObject+PearlExport.m */; };
DAFE4A1515039824003ABA7C /* NSString+PearlNSArrayFormat.h in Headers */ = {isa = PBXBuildFile; fileRef = DAFE45DA15039823003ABA7C /* NSString+PearlNSArrayFormat.h */; };
@@ -221,9 +295,13 @@
/* Begin PBXFileReference section */
93D39067C0AFDC581794E2B8 /* NSArray+Indexing.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSArray+Indexing.m"; sourceTree = ""; };
+ 93D39240B5143E01F0B75E96 /* MPElementModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPElementModel.h; sourceTree = ""; };
93D393B97158D7BE9332EA53 /* NSDictionary+Indexing.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSDictionary+Indexing.h"; sourceTree = ""; };
+ 93D394495528B10D1B61A2C3 /* MPElementCollectionView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPElementCollectionView.m; sourceTree = ""; };
+ 93D3960D320FF8A072B092E3 /* MPElementCollectionView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPElementCollectionView.h; sourceTree = ""; };
93D396D04E57792A54D437AC /* NSArray+Indexing.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSArray+Indexing.h"; sourceTree = ""; };
93D39AA1EE2E1E7B81372240 /* NSDictionary+Indexing.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSDictionary+Indexing.m"; sourceTree = ""; };
+ 93D39E73BF5CBF8E5B005CD3 /* MPElementModel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPElementModel.m; sourceTree = ""; };
DA0933C91747A56A00DE1CEF /* MPInitialWindow.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MPInitialWindow.xib; sourceTree = ""; };
DA0933CB1747AD2D00DE1CEF /* shot-laptop-leaning-iphone.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "shot-laptop-leaning-iphone.png"; sourceTree = ""; };
DA0933CF1747B91B00DE1CEF /* appstore.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = appstore.png; sourceTree = ""; };
@@ -245,15 +323,6 @@
DA5BFA4A147E415C00F98B1E /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
DA5BFA4C147E415C00F98B1E /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
DA5BFA4E147E415C00F98B1E /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = System/Library/Frameworks/CoreData.framework; sourceTree = SDKROOT; };
- DA5E5C7B17248AA1003798D8 /* crypto_aesctr.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = crypto_aesctr.h; sourceTree = ""; };
- DA5E5C7C17248AA1003798D8 /* crypto_scrypt.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = crypto_scrypt.h; sourceTree = ""; };
- DA5E5C7D17248AA1003798D8 /* memlimit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = memlimit.h; sourceTree = ""; };
- DA5E5C7E17248AA1003798D8 /* readpass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = readpass.h; sourceTree = ""; };
- DA5E5C7F17248AA1003798D8 /* scryptenc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = scryptenc.h; sourceTree = ""; };
- DA5E5C8017248AA1003798D8 /* scryptenc_cpuperf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = scryptenc_cpuperf.h; sourceTree = ""; };
- DA5E5C8117248AA1003798D8 /* sha256.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = sha256.h; sourceTree = ""; };
- DA5E5C8217248AA1003798D8 /* sysendian.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = sysendian.h; sourceTree = ""; };
- DA5E5C8317248AA1003798D8 /* warn.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = warn.h; sourceTree = ""; };
DA5E5C8717248AA1003798D8 /* libscryptenc-osx.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libscryptenc-osx.a"; sourceTree = ""; };
DA5E5C971724A667003798D8 /* MPAlgorithm.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MPAlgorithm.h; sourceTree = ""; };
DA5E5C981724A667003798D8 /* MPAlgorithm.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MPAlgorithm.m; sourceTree = ""; };
@@ -373,6 +442,87 @@
DAD312C01552A20800A3F9ED /* libsqlite3.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libsqlite3.dylib; path = usr/lib/libsqlite3.dylib; sourceTree = SDKROOT; };
DAD9B5E1176299B9001835F9 /* MasterPassword-Mac-LoginHelper.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = "MasterPassword-Mac-LoginHelper.xcodeproj"; path = "MasterPassword-Mac-LoginHelper/MasterPassword-Mac-LoginHelper.xcodeproj"; sourceTree = ""; };
DAD9B5EF1762CAA4001835F9 /* ServiceManagement.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ServiceManagement.framework; path = System/Library/Frameworks/ServiceManagement.framework; sourceTree = SDKROOT; };
+ DAEB938718AB0FFD000490CC /* aes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aes.h; sourceTree = ""; };
+ DAEB938818AB0FFD000490CC /* asn1.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = asn1.h; sourceTree = ""; };
+ DAEB938918AB0FFD000490CC /* asn1_mac.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = asn1_mac.h; sourceTree = ""; };
+ DAEB938A18AB0FFD000490CC /* asn1t.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = asn1t.h; sourceTree = ""; };
+ DAEB938B18AB0FFD000490CC /* bio.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = bio.h; sourceTree = ""; };
+ DAEB938C18AB0FFD000490CC /* blowfish.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = blowfish.h; sourceTree = ""; };
+ DAEB938D18AB0FFD000490CC /* bn.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = bn.h; sourceTree = ""; };
+ DAEB938E18AB0FFD000490CC /* buffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = buffer.h; sourceTree = ""; };
+ DAEB938F18AB0FFD000490CC /* camellia.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = camellia.h; sourceTree = ""; };
+ DAEB939018AB0FFD000490CC /* cast.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cast.h; sourceTree = ""; };
+ DAEB939118AB0FFD000490CC /* cms.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cms.h; sourceTree = ""; };
+ DAEB939218AB0FFD000490CC /* comp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = comp.h; sourceTree = ""; };
+ DAEB939318AB0FFD000490CC /* conf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = conf.h; sourceTree = ""; };
+ DAEB939418AB0FFD000490CC /* conf_api.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = conf_api.h; sourceTree = ""; };
+ DAEB939518AB0FFD000490CC /* crypto.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = crypto.h; sourceTree = ""; };
+ DAEB939618AB0FFD000490CC /* des.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = des.h; sourceTree = ""; };
+ DAEB939718AB0FFD000490CC /* des_old.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = des_old.h; sourceTree = ""; };
+ DAEB939818AB0FFD000490CC /* dh.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dh.h; sourceTree = ""; };
+ DAEB939918AB0FFD000490CC /* dsa.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dsa.h; sourceTree = ""; };
+ DAEB939A18AB0FFD000490CC /* dso.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dso.h; sourceTree = ""; };
+ DAEB939B18AB0FFD000490CC /* dtls1.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dtls1.h; sourceTree = ""; };
+ DAEB939C18AB0FFD000490CC /* e_os2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = e_os2.h; sourceTree = ""; };
+ DAEB939D18AB0FFD000490CC /* ebcdic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ebcdic.h; sourceTree = ""; };
+ DAEB939E18AB0FFD000490CC /* ec.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ec.h; sourceTree = ""; };
+ DAEB939F18AB0FFD000490CC /* ecdh.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ecdh.h; sourceTree = ""; };
+ DAEB93A018AB0FFD000490CC /* ecdsa.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ecdsa.h; sourceTree = ""; };
+ DAEB93A118AB0FFD000490CC /* engine.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = engine.h; sourceTree = ""; };
+ DAEB93A218AB0FFD000490CC /* err.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = err.h; sourceTree = ""; };
+ DAEB93A318AB0FFD000490CC /* evp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = evp.h; sourceTree = ""; };
+ DAEB93A418AB0FFD000490CC /* hmac.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = hmac.h; sourceTree = ""; };
+ DAEB93A518AB0FFD000490CC /* idea.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = idea.h; sourceTree = ""; };
+ DAEB93A618AB0FFD000490CC /* krb5_asn.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = krb5_asn.h; sourceTree = ""; };
+ DAEB93A718AB0FFD000490CC /* kssl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = kssl.h; sourceTree = ""; };
+ DAEB93A818AB0FFD000490CC /* lhash.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = lhash.h; sourceTree = ""; };
+ DAEB93A918AB0FFD000490CC /* md4.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = md4.h; sourceTree = ""; };
+ DAEB93AA18AB0FFD000490CC /* md5.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = md5.h; sourceTree = ""; };
+ DAEB93AB18AB0FFD000490CC /* mdc2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mdc2.h; sourceTree = ""; };
+ DAEB93AC18AB0FFD000490CC /* modes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = modes.h; sourceTree = ""; };
+ DAEB93AD18AB0FFD000490CC /* obj_mac.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = obj_mac.h; sourceTree = ""; };
+ DAEB93AE18AB0FFD000490CC /* objects.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = objects.h; sourceTree = ""; };
+ DAEB93AF18AB0FFD000490CC /* ocsp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ocsp.h; sourceTree = ""; };
+ DAEB93B018AB0FFD000490CC /* opensslconf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = opensslconf.h; sourceTree = ""; };
+ DAEB93B118AB0FFD000490CC /* opensslv.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = opensslv.h; sourceTree = ""; };
+ DAEB93B218AB0FFD000490CC /* ossl_typ.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ossl_typ.h; sourceTree = ""; };
+ DAEB93B318AB0FFD000490CC /* pem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pem.h; sourceTree = ""; };
+ DAEB93B418AB0FFD000490CC /* pem2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pem2.h; sourceTree = ""; };
+ DAEB93B518AB0FFD000490CC /* pkcs12.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pkcs12.h; sourceTree = ""; };
+ DAEB93B618AB0FFD000490CC /* pkcs7.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pkcs7.h; sourceTree = ""; };
+ DAEB93B718AB0FFD000490CC /* pqueue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pqueue.h; sourceTree = ""; };
+ DAEB93B818AB0FFD000490CC /* rand.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = rand.h; sourceTree = ""; };
+ DAEB93B918AB0FFD000490CC /* rc2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = rc2.h; sourceTree = ""; };
+ DAEB93BA18AB0FFD000490CC /* rc4.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = rc4.h; sourceTree = ""; };
+ DAEB93BB18AB0FFD000490CC /* ripemd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ripemd.h; sourceTree = ""; };
+ DAEB93BC18AB0FFD000490CC /* rsa.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = rsa.h; sourceTree = ""; };
+ DAEB93BD18AB0FFD000490CC /* safestack.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = safestack.h; sourceTree = ""; };
+ DAEB93BE18AB0FFD000490CC /* seed.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = seed.h; sourceTree = ""; };
+ DAEB93BF18AB0FFD000490CC /* sha.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = sha.h; sourceTree = ""; };
+ DAEB93C018AB0FFD000490CC /* ssl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ssl.h; sourceTree = ""; };
+ DAEB93C118AB0FFD000490CC /* ssl2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ssl2.h; sourceTree = ""; };
+ DAEB93C218AB0FFD000490CC /* ssl23.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ssl23.h; sourceTree = ""; };
+ DAEB93C318AB0FFD000490CC /* ssl3.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ssl3.h; sourceTree = ""; };
+ DAEB93C418AB0FFD000490CC /* stack.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = stack.h; sourceTree = ""; };
+ DAEB93C518AB0FFD000490CC /* symhacks.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = symhacks.h; sourceTree = ""; };
+ DAEB93C618AB0FFD000490CC /* tls1.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tls1.h; sourceTree = ""; };
+ DAEB93C718AB0FFD000490CC /* ts.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ts.h; sourceTree = ""; };
+ DAEB93C818AB0FFD000490CC /* txt_db.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = txt_db.h; sourceTree = ""; };
+ DAEB93C918AB0FFD000490CC /* ui.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ui.h; sourceTree = ""; };
+ DAEB93CA18AB0FFD000490CC /* ui_compat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ui_compat.h; sourceTree = ""; };
+ DAEB93CB18AB0FFD000490CC /* whrlpool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = whrlpool.h; sourceTree = ""; };
+ DAEB93CC18AB0FFD000490CC /* x509.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = x509.h; sourceTree = ""; };
+ DAEB93CD18AB0FFD000490CC /* x509_vfy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = x509_vfy.h; sourceTree = ""; };
+ DAEB93CE18AB0FFD000490CC /* x509v3.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = x509v3.h; sourceTree = ""; };
+ DAEB93D018AB0FFD000490CC /* crypto_aesctr.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = crypto_aesctr.h; sourceTree = ""; };
+ DAEB93D118AB0FFD000490CC /* crypto_scrypt.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = crypto_scrypt.h; sourceTree = ""; };
+ DAEB93D218AB0FFD000490CC /* memlimit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = memlimit.h; sourceTree = ""; };
+ DAEB93D318AB0FFD000490CC /* readpass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = readpass.h; sourceTree = ""; };
+ DAEB93D418AB0FFD000490CC /* scryptenc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = scryptenc.h; sourceTree = ""; };
+ DAEB93D518AB0FFD000490CC /* scryptenc_cpuperf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = scryptenc_cpuperf.h; sourceTree = ""; };
+ DAEB93D618AB0FFD000490CC /* sha256.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = sha256.h; sourceTree = ""; };
+ DAEB93D718AB0FFD000490CC /* sysendian.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = sysendian.h; sourceTree = ""; };
+ DAEB93D818AB0FFD000490CC /* warn.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = warn.h; sourceTree = ""; };
DAEBC45214F6364500987BF6 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };
DAFE45D815039823003ABA7C /* NSObject+PearlExport.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSObject+PearlExport.h"; sourceTree = ""; };
DAFE45D915039823003ABA7C /* NSObject+PearlExport.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSObject+PearlExport.m"; sourceTree = ""; };
@@ -530,28 +680,12 @@
DA5E5C7917248AA1003798D8 /* lib */ = {
isa = PBXGroup;
children = (
- DA5E5C7A17248AA1003798D8 /* include */,
+ DAEB938518AB0FFD000490CC /* include */,
DA5E5C8717248AA1003798D8 /* libscryptenc-osx.a */,
);
path = lib;
sourceTree = "";
};
- DA5E5C7A17248AA1003798D8 /* include */ = {
- isa = PBXGroup;
- children = (
- DA5E5C7B17248AA1003798D8 /* crypto_aesctr.h */,
- DA5E5C7C17248AA1003798D8 /* crypto_scrypt.h */,
- DA5E5C7D17248AA1003798D8 /* memlimit.h */,
- DA5E5C7E17248AA1003798D8 /* readpass.h */,
- DA5E5C7F17248AA1003798D8 /* scryptenc.h */,
- DA5E5C8017248AA1003798D8 /* scryptenc_cpuperf.h */,
- DA5E5C8117248AA1003798D8 /* sha256.h */,
- DA5E5C8217248AA1003798D8 /* sysendian.h */,
- DA5E5C8317248AA1003798D8 /* warn.h */,
- );
- path = include;
- sourceTree = "";
- };
DA5E5C961724A667003798D8 /* ObjC */ = {
isa = PBXGroup;
children = (
@@ -608,6 +742,10 @@
DA5E5CC41724A667003798D8 /* MainMenu.xib */,
DA5E5CC61724A667003798D8 /* main.m */,
DA0933C91747A56A00DE1CEF /* MPInitialWindow.xib */,
+ 93D394495528B10D1B61A2C3 /* MPElementCollectionView.m */,
+ 93D3960D320FF8A072B092E3 /* MPElementCollectionView.h */,
+ 93D39E73BF5CBF8E5B005CD3 /* MPElementModel.m */,
+ 93D39240B5143E01F0B75E96 /* MPElementModel.h */,
);
path = Mac;
sourceTree = "";
@@ -793,6 +931,110 @@
name = Products;
sourceTree = "";
};
+ DAEB938518AB0FFD000490CC /* include */ = {
+ isa = PBXGroup;
+ children = (
+ DAEB938618AB0FFD000490CC /* openssl */,
+ DAEB93CF18AB0FFD000490CC /* scrypt */,
+ );
+ path = include;
+ sourceTree = "";
+ };
+ DAEB938618AB0FFD000490CC /* openssl */ = {
+ isa = PBXGroup;
+ children = (
+ DAEB938718AB0FFD000490CC /* aes.h */,
+ DAEB938818AB0FFD000490CC /* asn1.h */,
+ DAEB938918AB0FFD000490CC /* asn1_mac.h */,
+ DAEB938A18AB0FFD000490CC /* asn1t.h */,
+ DAEB938B18AB0FFD000490CC /* bio.h */,
+ DAEB938C18AB0FFD000490CC /* blowfish.h */,
+ DAEB938D18AB0FFD000490CC /* bn.h */,
+ DAEB938E18AB0FFD000490CC /* buffer.h */,
+ DAEB938F18AB0FFD000490CC /* camellia.h */,
+ DAEB939018AB0FFD000490CC /* cast.h */,
+ DAEB939118AB0FFD000490CC /* cms.h */,
+ DAEB939218AB0FFD000490CC /* comp.h */,
+ DAEB939318AB0FFD000490CC /* conf.h */,
+ DAEB939418AB0FFD000490CC /* conf_api.h */,
+ DAEB939518AB0FFD000490CC /* crypto.h */,
+ DAEB939618AB0FFD000490CC /* des.h */,
+ DAEB939718AB0FFD000490CC /* des_old.h */,
+ DAEB939818AB0FFD000490CC /* dh.h */,
+ DAEB939918AB0FFD000490CC /* dsa.h */,
+ DAEB939A18AB0FFD000490CC /* dso.h */,
+ DAEB939B18AB0FFD000490CC /* dtls1.h */,
+ DAEB939C18AB0FFD000490CC /* e_os2.h */,
+ DAEB939D18AB0FFD000490CC /* ebcdic.h */,
+ DAEB939E18AB0FFD000490CC /* ec.h */,
+ DAEB939F18AB0FFD000490CC /* ecdh.h */,
+ DAEB93A018AB0FFD000490CC /* ecdsa.h */,
+ DAEB93A118AB0FFD000490CC /* engine.h */,
+ DAEB93A218AB0FFD000490CC /* err.h */,
+ DAEB93A318AB0FFD000490CC /* evp.h */,
+ DAEB93A418AB0FFD000490CC /* hmac.h */,
+ DAEB93A518AB0FFD000490CC /* idea.h */,
+ DAEB93A618AB0FFD000490CC /* krb5_asn.h */,
+ DAEB93A718AB0FFD000490CC /* kssl.h */,
+ DAEB93A818AB0FFD000490CC /* lhash.h */,
+ DAEB93A918AB0FFD000490CC /* md4.h */,
+ DAEB93AA18AB0FFD000490CC /* md5.h */,
+ DAEB93AB18AB0FFD000490CC /* mdc2.h */,
+ DAEB93AC18AB0FFD000490CC /* modes.h */,
+ DAEB93AD18AB0FFD000490CC /* obj_mac.h */,
+ DAEB93AE18AB0FFD000490CC /* objects.h */,
+ DAEB93AF18AB0FFD000490CC /* ocsp.h */,
+ DAEB93B018AB0FFD000490CC /* opensslconf.h */,
+ DAEB93B118AB0FFD000490CC /* opensslv.h */,
+ DAEB93B218AB0FFD000490CC /* ossl_typ.h */,
+ DAEB93B318AB0FFD000490CC /* pem.h */,
+ DAEB93B418AB0FFD000490CC /* pem2.h */,
+ DAEB93B518AB0FFD000490CC /* pkcs12.h */,
+ DAEB93B618AB0FFD000490CC /* pkcs7.h */,
+ DAEB93B718AB0FFD000490CC /* pqueue.h */,
+ DAEB93B818AB0FFD000490CC /* rand.h */,
+ DAEB93B918AB0FFD000490CC /* rc2.h */,
+ DAEB93BA18AB0FFD000490CC /* rc4.h */,
+ DAEB93BB18AB0FFD000490CC /* ripemd.h */,
+ DAEB93BC18AB0FFD000490CC /* rsa.h */,
+ DAEB93BD18AB0FFD000490CC /* safestack.h */,
+ DAEB93BE18AB0FFD000490CC /* seed.h */,
+ DAEB93BF18AB0FFD000490CC /* sha.h */,
+ DAEB93C018AB0FFD000490CC /* ssl.h */,
+ DAEB93C118AB0FFD000490CC /* ssl2.h */,
+ DAEB93C218AB0FFD000490CC /* ssl23.h */,
+ DAEB93C318AB0FFD000490CC /* ssl3.h */,
+ DAEB93C418AB0FFD000490CC /* stack.h */,
+ DAEB93C518AB0FFD000490CC /* symhacks.h */,
+ DAEB93C618AB0FFD000490CC /* tls1.h */,
+ DAEB93C718AB0FFD000490CC /* ts.h */,
+ DAEB93C818AB0FFD000490CC /* txt_db.h */,
+ DAEB93C918AB0FFD000490CC /* ui.h */,
+ DAEB93CA18AB0FFD000490CC /* ui_compat.h */,
+ DAEB93CB18AB0FFD000490CC /* whrlpool.h */,
+ DAEB93CC18AB0FFD000490CC /* x509.h */,
+ DAEB93CD18AB0FFD000490CC /* x509_vfy.h */,
+ DAEB93CE18AB0FFD000490CC /* x509v3.h */,
+ );
+ path = openssl;
+ sourceTree = "";
+ };
+ DAEB93CF18AB0FFD000490CC /* scrypt */ = {
+ isa = PBXGroup;
+ children = (
+ DAEB93D018AB0FFD000490CC /* crypto_aesctr.h */,
+ DAEB93D118AB0FFD000490CC /* crypto_scrypt.h */,
+ DAEB93D218AB0FFD000490CC /* memlimit.h */,
+ DAEB93D318AB0FFD000490CC /* readpass.h */,
+ DAEB93D418AB0FFD000490CC /* scryptenc.h */,
+ DAEB93D518AB0FFD000490CC /* scryptenc_cpuperf.h */,
+ DAEB93D618AB0FFD000490CC /* sha256.h */,
+ DAEB93D718AB0FFD000490CC /* sysendian.h */,
+ DAEB93D818AB0FFD000490CC /* warn.h */,
+ );
+ path = scrypt;
+ sourceTree = "";
+ };
DAFE45D715039823003ABA7C /* Pearl */ = {
isa = PBXGroup;
children = (
@@ -896,42 +1138,114 @@
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
+ DAEB941818AB0FFD000490CC /* tls1.h in Headers */,
+ DAEB940C18AB0FFD000490CC /* rc4.h in Headers */,
+ DAEB93F418AB0FFD000490CC /* err.h in Headers */,
+ DAEB93F118AB0FFD000490CC /* ecdh.h in Headers */,
+ DAEB93FD18AB0FFD000490CC /* mdc2.h in Headers */,
+ DAEB942718AB0FFD000490CC /* sha256.h in Headers */,
+ DAEB940818AB0FFD000490CC /* pkcs7.h in Headers */,
+ DAEB93DF18AB0FFD000490CC /* bn.h in Headers */,
+ DAEB940718AB0FFD000490CC /* pkcs12.h in Headers */,
+ DAEB941A18AB0FFD000490CC /* txt_db.h in Headers */,
DAFE4A1315039824003ABA7C /* NSObject+PearlExport.h in Headers */,
DAFE4A1515039824003ABA7C /* NSString+PearlNSArrayFormat.h in Headers */,
+ DAEB942218AB0FFD000490CC /* crypto_scrypt.h in Headers */,
+ DAEB941018AB0FFD000490CC /* seed.h in Headers */,
+ DAEB942618AB0FFD000490CC /* scryptenc_cpuperf.h in Headers */,
DAFE4A1715039824003ABA7C /* NSString+PearlSEL.h in Headers */,
+ DAEB93F518AB0FFD000490CC /* evp.h in Headers */,
+ DAEB941918AB0FFD000490CC /* ts.h in Headers */,
+ DAEB93F818AB0FFD000490CC /* krb5_asn.h in Headers */,
DAFE4A1915039824003ABA7C /* Pearl.h in Headers */,
+ DAEB93F318AB0FFD000490CC /* engine.h in Headers */,
DAFE4A1A15039824003ABA7C /* PearlAbstractStrings.h in Headers */,
DAFE4A1E15039824003ABA7C /* PearlCodeUtils.h in Headers */,
+ DAEB940918AB0FFD000490CC /* pqueue.h in Headers */,
DAFE4A2015039824003ABA7C /* PearlConfig.h in Headers */,
+ DAEB941B18AB0FFD000490CC /* ui.h in Headers */,
+ DAEB941D18AB0FFD000490CC /* whrlpool.h in Headers */,
+ DAEB940418AB0FFD000490CC /* ossl_typ.h in Headers */,
+ DAEB93DC18AB0FFD000490CC /* asn1t.h in Headers */,
DAFE4A2215039824003ABA7C /* PearlDeviceUtils.h in Headers */,
+ DAEB93E518AB0FFD000490CC /* conf.h in Headers */,
DAFE4A2415039824003ABA7C /* PearlInfoPlist.h in Headers */,
+ DAEB940618AB0FFD000490CC /* pem2.h in Headers */,
DAFE4A2615039824003ABA7C /* PearlLogger.h in Headers */,
+ DAEB93FC18AB0FFD000490CC /* md5.h in Headers */,
DAFE4A2815039824003ABA7C /* PearlMathUtils.h in Headers */,
DAFE4A2A15039824003ABA7C /* PearlObjectUtils.h in Headers */,
+ DAEB93E318AB0FFD000490CC /* cms.h in Headers */,
+ DAEB942518AB0FFD000490CC /* scryptenc.h in Headers */,
+ DAEB93FA18AB0FFD000490CC /* lhash.h in Headers */,
DAFE4A2C15039824003ABA7C /* PearlResettable.h in Headers */,
+ DAEB940B18AB0FFD000490CC /* rc2.h in Headers */,
DAFE4A2D15039824003ABA7C /* PearlStrings.h in Headers */,
+ DAEB93DA18AB0FFD000490CC /* asn1.h in Headers */,
+ DAEB93EA18AB0FFD000490CC /* dh.h in Headers */,
+ DAEB93F918AB0FFD000490CC /* kssl.h in Headers */,
DAFE4A2F15039824003ABA7C /* PearlStringUtils.h in Headers */,
+ DAEB940318AB0FFD000490CC /* opensslv.h in Headers */,
+ DAEB93ED18AB0FFD000490CC /* dtls1.h in Headers */,
+ DAEB93E018AB0FFD000490CC /* buffer.h in Headers */,
+ DAEB940218AB0FFD000490CC /* opensslconf.h in Headers */,
+ DAEB93E918AB0FFD000490CC /* des_old.h in Headers */,
DAFE4A3315039824003ABA7C /* Pearl-Crypto.h in Headers */,
+ DAEB941C18AB0FFD000490CC /* ui_compat.h in Headers */,
+ DAEB93E218AB0FFD000490CC /* cast.h in Headers */,
+ DAEB942318AB0FFD000490CC /* memlimit.h in Headers */,
DAFE4A3415039824003ABA7C /* PearlCryptUtils.h in Headers */,
+ DAEB940018AB0FFD000490CC /* objects.h in Headers */,
+ DAEB93E818AB0FFD000490CC /* des.h in Headers */,
+ DAEB941418AB0FFD000490CC /* ssl23.h in Headers */,
+ DAEB93EB18AB0FFD000490CC /* dsa.h in Headers */,
+ DAEB941218AB0FFD000490CC /* ssl.h in Headers */,
+ DAEB93FE18AB0FFD000490CC /* modes.h in Headers */,
+ DAEB940A18AB0FFD000490CC /* rand.h in Headers */,
+ DAEB93EE18AB0FFD000490CC /* e_os2.h in Headers */,
+ DAEB940E18AB0FFD000490CC /* rsa.h in Headers */,
+ DAEB93E618AB0FFD000490CC /* conf_api.h in Headers */,
DAFE4A3615039824003ABA7C /* PearlKeyChain.h in Headers */,
+ DAEB941518AB0FFD000490CC /* ssl3.h in Headers */,
+ DAEB941618AB0FFD000490CC /* stack.h in Headers */,
DAFE4A3815039824003ABA7C /* PearlRSAKey.h in Headers */,
+ DAEB93DD18AB0FFD000490CC /* bio.h in Headers */,
+ DAEB942418AB0FFD000490CC /* readpass.h in Headers */,
+ DAEB93F018AB0FFD000490CC /* ec.h in Headers */,
+ DAEB93E418AB0FFD000490CC /* comp.h in Headers */,
DAFE4A3A15039824003ABA7C /* PearlSCrypt.h in Headers */,
+ DAEB93D918AB0FFD000490CC /* aes.h in Headers */,
DA30E9CE15722ECA00A68B4C /* NSBundle+PearlMutableInfo.h in Headers */,
+ DAEB93FB18AB0FFD000490CC /* md4.h in Headers */,
+ DAEB941118AB0FFD000490CC /* sha.h in Headers */,
+ DAEB941F18AB0FFD000490CC /* x509_vfy.h in Headers */,
DA30E9D715723E6900A68B4C /* PearlLazy.h in Headers */,
+ DAEB93EC18AB0FFD000490CC /* dso.h in Headers */,
+ DAEB940118AB0FFD000490CC /* ocsp.h in Headers */,
DAFE4A63150399FF003ABA88 /* NSObject+PearlKVO.h in Headers */,
DAFE4A63150399FF003ABA94 /* NSDateFormatter+RFC3339.h in Headers */,
+ DAEB93F718AB0FFD000490CC /* idea.h in Headers */,
+ DAEB940F18AB0FFD000490CC /* safestack.h in Headers */,
+ DAEB941E18AB0FFD000490CC /* x509.h in Headers */,
+ DAEB93EF18AB0FFD000490CC /* ebcdic.h in Headers */,
+ DAEB93DE18AB0FFD000490CC /* blowfish.h in Headers */,
+ DAEB941718AB0FFD000490CC /* symhacks.h in Headers */,
93D39C34FE35830EF5BE1D2A /* NSArray+Indexing.h in Headers */,
+ DAEB942118AB0FFD000490CC /* crypto_aesctr.h in Headers */,
+ DAEB93F218AB0FFD000490CC /* ecdsa.h in Headers */,
+ DAEB942018AB0FFD000490CC /* x509v3.h in Headers */,
+ DAEB93E118AB0FFD000490CC /* camellia.h in Headers */,
+ DAEB93F618AB0FFD000490CC /* hmac.h in Headers */,
93D392EC39DA43C46C692C12 /* NSDictionary+Indexing.h in Headers */,
DA3509FE15F101A500C14A8E /* PearlQueue.h in Headers */,
- DA5E5C8817248AA1003798D8 /* crypto_aesctr.h in Headers */,
- DA5E5C8917248AA1003798D8 /* crypto_scrypt.h in Headers */,
- DA5E5C8A17248AA1003798D8 /* memlimit.h in Headers */,
- DA5E5C8B17248AA1003798D8 /* readpass.h in Headers */,
- DA5E5C8C17248AA1003798D8 /* scryptenc.h in Headers */,
- DA5E5C8D17248AA1003798D8 /* scryptenc_cpuperf.h in Headers */,
- DA5E5C8E17248AA1003798D8 /* sha256.h in Headers */,
- DA5E5C8F17248AA1003798D8 /* sysendian.h in Headers */,
- DA5E5C9017248AA1003798D8 /* warn.h in Headers */,
+ DAEB942918AB0FFD000490CC /* warn.h in Headers */,
+ DAEB93DB18AB0FFD000490CC /* asn1_mac.h in Headers */,
+ DAEB940518AB0FFD000490CC /* pem.h in Headers */,
+ DAEB942818AB0FFD000490CC /* sysendian.h in Headers */,
+ DAEB93FF18AB0FFD000490CC /* obj_mac.h in Headers */,
+ DAEB93E718AB0FFD000490CC /* crypto.h in Headers */,
+ DAEB941318AB0FFD000490CC /* ssl2.h in Headers */,
+ DAEB940D18AB0FFD000490CC /* ripemd.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -1265,6 +1579,8 @@
DA5E5D051724A667003798D8 /* MPPasswordWindowController.m in Sources */,
DA5E5D0C1724A667003798D8 /* main.m in Sources */,
DA5E5D0D1724A667003798D8 /* MasterPassword.xcdatamodeld in Sources */,
+ 93D39C7C2BE7C0E0763B0177 /* MPElementCollectionView.m in Sources */,
+ 93D39C5789EFA607CF788082 /* MPElementModel.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -1645,11 +1961,11 @@
CLANG_ENABLE_OBJC_ARC = YES;
CODE_SIGN_ENTITLEMENTS = MasterPassword.entitlements;
CODE_SIGN_IDENTITY = "Mac Developer";
- "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Mac Developer";
+ "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Mac Developer: Maarten Billemont (DWGU95U4ZD)";
COMBINE_HIDPI_IMAGES = YES;
GCC_PREFIX_HEADER = "MasterPassword-Prefix.pch";
INFOPLIST_FILE = "MasterPassword-Info.plist";
- PROVISIONING_PROFILE = "";
+ PROVISIONING_PROFILE = "9AEC6040-D157-4526-8CA9-FF0254B3A4A5";
SKIP_INSTALL = NO;
WRAPPER_NAME = "Master Password.${WRAPPER_EXTENSION}";
};
@@ -1662,7 +1978,7 @@
CLANG_ENABLE_OBJC_ARC = YES;
CODE_SIGN_ENTITLEMENTS = MasterPassword.entitlements;
CODE_SIGN_IDENTITY = "Mac Developer";
- "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Mac Developer";
+ "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Developer ID Application";
COMBINE_HIDPI_IMAGES = YES;
GCC_PREFIX_HEADER = "MasterPassword-Prefix.pch";
INFOPLIST_FILE = "MasterPassword-Info.plist";
@@ -1760,11 +2076,11 @@
CLANG_ENABLE_OBJC_ARC = YES;
CODE_SIGN_ENTITLEMENTS = MasterPassword.entitlements;
CODE_SIGN_IDENTITY = "Mac Developer";
- "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Mac Developer";
+ "CODE_SIGN_IDENTITY[sdk=macosx*]" = "3rd Party Mac Developer Application: Maarten Billemont (HL3Q45LX9N)";
COMBINE_HIDPI_IMAGES = YES;
GCC_PREFIX_HEADER = "MasterPassword-Prefix.pch";
INFOPLIST_FILE = "MasterPassword-Info.plist";
- PROVISIONING_PROFILE = "";
+ PROVISIONING_PROFILE = "170D83FD-18FE-4A05-B13C-8D16876480C6";
SKIP_INSTALL = NO;
WRAPPER_NAME = "Master Password.${WRAPPER_EXTENSION}";
};
diff --git a/MasterPassword/ObjC/Mac/en.lproj/MainMenu.xib b/MasterPassword/ObjC/Mac/en.lproj/MainMenu.xib
index cecc2db5..5215d27e 100644
--- a/MasterPassword/ObjC/Mac/en.lproj/MainMenu.xib
+++ b/MasterPassword/ObjC/Mac/en.lproj/MainMenu.xib
@@ -1,780 +1,187 @@
-
-
-
- 1070
- 12D78
- 3084
- 1187.37
- 626.00
-
- com.apple.InterfaceBuilder.CocoaPlugin
- 3084
-
-
- NSCustomObject
- NSMenu
- NSMenuItem
- NSUserDefaultsController
-
-
- com.apple.InterfaceBuilder.CocoaPlugin
-
-
- PluginDependencyRecalculationVersion
-
-
-
-
- NSApplication
-
-
- FirstResponder
-
-
- NSApplication
-
-
-
- MPMacAppDelegate
-
-
- YES
-
-
-
-
-
-
-
- delegate
-
-
-
- 495
-
-
-
- lockItem
-
-
-
- 726
-
-
-
- statusMenu
-
-
-
- 731
-
-
-
- useCloudItem
-
-
-
- 749
-
-
-
- rememberPasswordItem
-
-
-
- 750
-
-
-
- savePasswordItem
-
-
-
- 751
-
-
-
- togglePreference:
-
-
-
- 752
-
-
-
- togglePreference:
-
-
-
- 753
-
-
-
- togglePreference:
-
-
-
- 754
-
-
-
- newUser:
-
-
-
- 761
-
-
-
- usersItem
-
-
-
- 762
-
-
-
- createUserItem
-
-
-
- 763
-
-
-
- lock:
-
-
-
- 764
-
-
-
- dialogStyleHUD
-
-
-
- 771
-
-
-
- dialogStyleRegular
-
-
-
- 772
-
-
-
- togglePreference:
-
-
-
- 773
-
-
-
- togglePreference:
-
-
-
- 774
-
-
-
- rebuildCloud:
-
-
-
- 780
-
-
-
- showPasswordWindow:
-
-
-
- 782
-
-
-
- showItem
-
-
-
- 783
-
-
-
- terminate:
-
-
-
- 784
-
-
-
- togglePreference:
-
-
-
- 787
-
-
-
- openAtLoginItem
-
-
-
- 788
-
-
-
-
-
- 0
-
-
-
-
-
- -2
-
-
- File's Owner
-
-
- -1
-
-
- First Responder
-
-
- -3
-
-
- Application
-
-
- 29
-
-
-
-
-
- 494
-
-
-
-
- 548
-
-
-
-
- 716
-
-
-
-
-
-
-
-
-
-
-
-
- 717
-
-
-
-
- 718
-
-
-
-
- 719
-
-
-
-
- 720
-
-
-
-
- 739
-
-
-
-
-
-
-
- 742
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 743
-
-
-
-
- 745
-
-
-
-
- 744
-
-
-
-
- 746
-
-
-
-
- 747
-
-
-
-
- 748
-
-
-
-
- 755
-
-
-
-
-
-
-
- 756
-
-
-
-
-
-
-
-
- 757
-
-
-
-
- 759
-
-
-
-
- 765
-
-
-
-
-
-
-
- 766
-
-
-
-
-
-
-
-
- 767
-
-
-
-
- 768
-
-
-
-
- 776
-
-
-
-
-
-
-
- 777
-
-
-
-
-
-
-
-
- 778
-
-
-
-
- 779
-
-
-
-
- 785
-
-
-
-
- 786
-
-
-
-
-
-
- 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
-
- ToolTip
-
- ToolTip
-
- Creating users is not yet supported. Please use the iOS app with iCloud enabled to create users and sites.
-
-
- 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
-
-
-
-
-
- 788
-
-
- 0
- IBCocoaFramework
-
- com.apple.InterfaceBuilder.CocoaPlugin.macosx
-
-
- YES
- 3
-
- {11, 11}
- {10, 3}
-
- YES
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file