diff --git a/External/InAppSettingsKit b/External/InAppSettingsKit index fcc72db0..b58b7256 160000 --- a/External/InAppSettingsKit +++ b/External/InAppSettingsKit @@ -1 +1 @@ -Subproject commit fcc72db0d54cd181f27b71e81901fc66958d71bf +Subproject commit b58b72563acecb727da1f7ca151798a911229593 diff --git a/External/Pearl b/External/Pearl index 6c9ea6ad..a4c734e0 160000 --- a/External/Pearl +++ b/External/Pearl @@ -1 +1 @@ -Subproject commit 6c9ea6ad1fab826da7d71aa88391020dc16252bc +Subproject commit a4c734e07c7441b4a49e83ae0a5de02158095ed7 diff --git a/External/iOS/Crashlytics.framework/Versions/A/Crashlytics b/External/iOS/Crashlytics.framework/Versions/A/Crashlytics index b0a896a0..552e04bb 100644 Binary files a/External/iOS/Crashlytics.framework/Versions/A/Crashlytics and b/External/iOS/Crashlytics.framework/Versions/A/Crashlytics differ diff --git a/External/iOS/Crashlytics.framework/Versions/A/Resources/Info.plist b/External/iOS/Crashlytics.framework/Versions/A/Resources/Info.plist index a97463cf..48c7bd50 100644 --- a/External/iOS/Crashlytics.framework/Versions/A/Resources/Info.plist +++ b/External/iOS/Crashlytics.framework/Versions/A/Resources/Info.plist @@ -15,13 +15,13 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 2.2.1 + 2.2.2 CFBundleSupportedPlatforms iPhoneOS CFBundleVersion - 35 + 36 DTPlatformName iphoneos MinimumOSVersion diff --git a/External/iOS/Crashlytics.framework/run b/External/iOS/Crashlytics.framework/run index ca71288d..42c401d3 100755 Binary files a/External/iOS/Crashlytics.framework/run and b/External/iOS/Crashlytics.framework/run differ diff --git a/External/iOS/Crashlytics.framework/submit b/External/iOS/Crashlytics.framework/submit index 668294e4..6c092c73 100755 Binary files a/External/iOS/Crashlytics.framework/submit and b/External/iOS/Crashlytics.framework/submit differ diff --git a/MasterPassword/ObjC/MPAlgorithm.h b/MasterPassword/ObjC/MPAlgorithm.h index c954a476..b8f356fb 100644 --- a/MasterPassword/ObjC/MPAlgorithm.h +++ b/MasterPassword/ObjC/MPAlgorithm.h @@ -26,7 +26,7 @@ id MPAlgorithmForVersion(NSUInteger version); id MPAlgorithmDefaultForBundleVersion(NSString *bundleVersion); PearlEnum( MPAttacker, - MPAttacker5K, MPAttacker20M, MPAttacker5B ); + MPAttacker1, MPAttacker5K, MPAttacker20M, MPAttacker5B ); typedef struct TimeToCrack { unsigned long long hours; diff --git a/MasterPassword/ObjC/MPAlgorithmV0.m b/MasterPassword/ObjC/MPAlgorithmV0.m index 569c92f6..815f4b51 100644 --- a/MasterPassword/ObjC/MPAlgorithmV0.m +++ b/MasterPassword/ObjC/MPAlgorithmV0.m @@ -26,9 +26,9 @@ #define MP_dkLen 64 #define MP_hash PearlHashSHA256 -/* An AMD HD 6990 calculates 3833M SHA-1 hashes per second at a cost of ~350$ per GPU */ -#define CRACKING_BCRYPTS_PER_SECOND 3833000000 -#define CRACKING_PRICE 350 +/* An AMD HD 7970 calculates 2495M SHA-1 hashes per second at a cost of ~350$ per GPU */ +#define CRACKING_PER_SECOND 2495000000UL +#define CRACKING_PRICE 350 @implementation MPAlgorithmV0 { BN_CTX *ctx; @@ -384,9 +384,11 @@ } case MPElementTypeStoredPersonal: { - NSAssert( [element isKindOfClass:[MPElementStoredEntity class]], - @"Element with stored type %lu is not an MPElementStoredEntity, but a %@.", (long)element.type, - [element class] ); + if (![element isKindOfClass:[MPElementStoredEntity class]]) { + wrn( @"Element with stored type %lu is not an MPElementStoredEntity, but a %@.", + (long)element.type, [element class] ); + break; + } NSData *encryptedContent = [[clearContent dataUsingEncoding:NSUTF8StringEncoding] encryptWithSymmetricKey:[elementKey subKeyOfLength:PearlCryptKeySize].keyData padding:YES]; @@ -394,9 +396,11 @@ break; } case MPElementTypeStoredDevicePrivate: { - NSAssert( [element isKindOfClass:[MPElementStoredEntity class]], - @"Element with stored type %lu is not an MPElementStoredEntity, but a %@.", (long)element.type, - [element class] ); + if (![element isKindOfClass:[MPElementStoredEntity class]]) { + wrn( @"Element with stored type %lu is not an MPElementStoredEntity, but a %@.", + (long)element.type, [element class] ); + break; + } NSData *encryptedContent = [[clearContent dataUsingEncoding:NSUTF8StringEncoding] encryptWithSymmetricKey:[elementKey subKeyOfLength:PearlCryptKeySize].keyData padding:YES]; @@ -440,9 +444,11 @@ case MPElementTypeGeneratedBasic: case MPElementTypeGeneratedShort: case MPElementTypeGeneratedPIN: { - NSAssert( [element isKindOfClass:[MPElementGeneratedEntity class]], - @"Element with generated type %lu is not an MPElementGeneratedEntity, but a %@.", (long)element.type, - [element class] ); + if (![element isKindOfClass:[MPElementGeneratedEntity class]]) { + wrn( @"Element with generated type %lu is not an MPElementGeneratedEntity, but a %@.", + (long)element.type, [element class] ); + break; + } NSString *name = element.name; MPElementType type = element.type; @@ -463,9 +469,11 @@ } case MPElementTypeStoredPersonal: { - NSAssert( [element isKindOfClass:[MPElementStoredEntity class]], - @"Element with stored type %lu is not an MPElementStoredEntity, but a %@.", (long)element.type, - [element class] ); + if (![element isKindOfClass:[MPElementStoredEntity class]]) { + wrn( @"Element with stored type %lu is not an MPElementStoredEntity, but a %@.", + (long)element.type, [element class] ); + break; + } NSData *encryptedContent = ((MPElementStoredEntity *)element).contentObject; @@ -506,9 +514,11 @@ break; case MPElementTypeStoredPersonal: { - NSAssert( [element isKindOfClass:[MPElementStoredEntity class]], - @"Element with stored type %lu is not an MPElementStoredEntity, but a %@.", (long)element.type, - [element class] ); + if (![element isKindOfClass:[MPElementStoredEntity class]]) { + wrn( @"Element with stored type %lu is not an MPElementStoredEntity, but a %@.", + (long)element.type, [element class] ); + break; + } if ([importKey.keyID isEqualToData:elementKey.keyID]) ((MPElementStoredEntity *)element).contentObject = [protectedContent decodeBase64]; @@ -565,9 +575,11 @@ } case MPElementTypeStoredPersonal: { - NSAssert( [element isKindOfClass:[MPElementStoredEntity class]], - @"Element with stored type %lu is not an MPElementStoredEntity, but a %@.", (long)element.type, - [element class] ); + if (![element isKindOfClass:[MPElementStoredEntity class]]) { + wrn( @"Element with stored type %lu is not an MPElementStoredEntity, but a %@.", + (long)element.type, [element class] ); + break; + } result = [((MPElementStoredEntity *)element).contentObject encodeBase64]; break; } @@ -639,13 +651,13 @@ for (NSUInteger c = 0; c < [password length]; ++c) { NSString *passwordCharacter = [password substringWithRange:NSMakeRange( c, 1 )]; - NSUInteger characterEntropy = 0; + unsigned int characterEntropy = 0; for (NSString *cipherClass in @[ @"v", @"c", @"a", @"x" ]) { NSString *charactersForClass = [self charactersForCipherClass:cipherClass]; if ([charactersForClass rangeOfString:passwordCharacter].location != NSNotFound) { // Found class for password character. - characterEntropy = [charactersForClass length]; + characterEntropy = (BN_ULONG)[charactersForClass length]; [cipher appendString:cipherClass]; break; } @@ -655,7 +667,7 @@ characterEntropy = 256 /* a byte */; } - BN_mul_word( permutations, (BN_ULONG)characterEntropy ); + BN_mul_word( permutations, characterEntropy ); } return [self timeToCrack:timeToCrack permutations:permutations forAttacker:attacker]; @@ -663,24 +675,33 @@ - (BOOL)timeToCrack:(out TimeToCrack *)timeToCrack permutations:(BIGNUM *)permutations forAttacker:(MPAttacker)attacker { - BN_div_word( permutations, CRACKING_BCRYPTS_PER_SECOND ); + // Determine base seconds needed to calculate the permutations. + BIGNUM *secondsToCrack = BN_dup( permutations ); + BN_div_word( secondsToCrack, CRACKING_PER_SECOND ); + + // Modify seconds needed by applying our hardware budget. switch (attacker) { + case MPAttacker1: + break; case MPAttacker5K: - BN_mul_word( permutations, (BN_ULONG)5000LLU ); + BN_mul_word( secondsToCrack, CRACKING_PRICE ); + BN_div_word( secondsToCrack, 5000 ); break; case MPAttacker20M: - BN_mul_word( permutations, (BN_ULONG)20000000LLU ); + BN_mul_word( secondsToCrack, CRACKING_PRICE ); + BN_div_word( secondsToCrack, 20000000 ); break; case MPAttacker5B: - BN_mul_word( permutations, (BN_ULONG)5000000000LLU ); + BN_mul_word( secondsToCrack, CRACKING_PRICE ); + BN_div_word( secondsToCrack, 5000 ); + BN_div_word( secondsToCrack, 1000000 ); break; } - BN_div_word( permutations, CRACKING_PRICE ); BIGNUM *max = BN_new(); BN_set_word( max, (BN_ULONG)-1 ); - BIGNUM *hoursToCrack = BN_dup( permutations ); + BIGNUM *hoursToCrack = BN_dup( secondsToCrack ); BN_div_word( hoursToCrack, 3600 ); if (BN_cmp( hoursToCrack, max ) < 0) timeToCrack->hours = BN_get_word( hoursToCrack ); @@ -716,7 +737,8 @@ timeToCrack->years = (BN_ULONG)-1; BIGNUM *universesToCrack = BN_dup( yearsToCrack ); - BN_div_word( universesToCrack, (BN_ULONG)14000000000LLU ); + BN_div_word( universesToCrack, 14000 ); + BN_div_word( universesToCrack, 1000000 ); if (BN_cmp( universesToCrack, max ) < 0) timeToCrack->universes = BN_get_word( universesToCrack ); else @@ -727,6 +749,7 @@ BN_free( max ); BN_free( permutations ); + BN_free( secondsToCrack ); BN_free( hoursToCrack ); BN_free( daysToCrack ); BN_free( weeksToCrack ); diff --git a/MasterPassword/ObjC/MPConfig.h b/MasterPassword/ObjC/MPConfig.h index 2a53f6f6..dee9d553 100644 --- a/MasterPassword/ObjC/MPConfig.h +++ b/MasterPassword/ObjC/MPConfig.h @@ -17,6 +17,6 @@ @property(nonatomic, retain) NSNumber *iCloudDecided; @property(nonatomic, retain) NSNumber *checkInconsistency; -@property(nonatomic, strong) NSNumber *attackHardware; +@property(nonatomic, strong) NSNumber *siteAttacker; @end diff --git a/MasterPassword/ObjC/MPConfig.m b/MasterPassword/ObjC/MPConfig.m index d8d899c0..4ecb16a1 100644 --- a/MasterPassword/ObjC/MPConfig.m +++ b/MasterPassword/ObjC/MPConfig.m @@ -10,7 +10,7 @@ @implementation MPConfig -@dynamic sendInfo, rememberLogin, iCloudDecided, checkInconsistency, hidePasswords, attackHardware; +@dynamic sendInfo, rememberLogin, iCloudDecided, checkInconsistency, hidePasswords, siteAttacker; - (id)init { @@ -25,7 +25,7 @@ NSStringFromSelector( @selector( hidePasswords ) ) : @NO, NSStringFromSelector( @selector( iCloudDecided ) ) : @NO, NSStringFromSelector( @selector( checkInconsistency ) ) : @NO, - NSStringFromSelector( @selector( attackHardware ) ) : @(MPAttacker5K), + NSStringFromSelector( @selector( siteAttacker ) ) : @(MPAttacker1), }]; self.delegate = [MPAppDelegate_Shared get]; diff --git a/MasterPassword/ObjC/Mac/MasterPassword-Mac.xcodeproj/project.pbxproj b/MasterPassword/ObjC/Mac/MasterPassword-Mac.xcodeproj/project.pbxproj index 3463eca3..af92c456 100644 --- a/MasterPassword/ObjC/Mac/MasterPassword-Mac.xcodeproj/project.pbxproj +++ b/MasterPassword/ObjC/Mac/MasterPassword-Mac.xcodeproj/project.pbxproj @@ -137,87 +137,7 @@ 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 */; }; + DAE8E65519867AE200416A0F /* libopensslcrypto-osx.a in Frameworks */ = {isa = PBXBuildFile; fileRef = DAE8E65319867ADA00416A0F /* libopensslcrypto-osx.a */; }; DAEB942E18B47FB3000490CC /* MPInitialWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = DA0933C91747A56A00DE1CEF /* MPInitialWindow.xib */; }; DAF4EF56190A828100023C90 /* Exo2.0-Thin.otf in Resources */ = {isa = PBXBuildFile; fileRef = DAF4EF52190A828100023C90 /* Exo2.0-Thin.otf */; }; DAF4EF57190A828100023C90 /* Exo2.0-Regular.otf in Resources */ = {isa = PBXBuildFile; fileRef = DAF4EF53190A828100023C90 /* Exo2.0-Regular.otf */; }; @@ -877,87 +797,9 @@ 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 = ""; }; + DAE8E65319867ADA00416A0F /* libopensslcrypto-osx.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libopensslcrypto-osx.a"; sourceTree = ""; }; + DAE8E65619867AF500416A0F /* scrypt */ = {isa = PBXFileReference; lastKnownFileType = folder; path = scrypt; sourceTree = ""; }; + DAE8E65719867AF500416A0F /* openssl */ = {isa = PBXFileReference; lastKnownFileType = folder; path = openssl; sourceTree = ""; }; DAEBC45214F6364500987BF6 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; DAF4EF52190A828100023C90 /* Exo2.0-Thin.otf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "Exo2.0-Thin.otf"; sourceTree = ""; }; DAF4EF53190A828100023C90 /* Exo2.0-Regular.otf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "Exo2.0-Regular.otf"; sourceTree = ""; }; @@ -1062,6 +904,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + DAE8E65519867AE200416A0F /* libopensslcrypto-osx.a in Frameworks */, DA4DA1D91564471A00F6F596 /* libjrswizzle.a in Frameworks */, DAC77CAE148291A600BCF976 /* Foundation.framework in Frameworks */, DA5E5C9417248AA1003798D8 /* libscryptenc-osx.a in Frameworks */, @@ -1149,8 +992,9 @@ DA5E5C7917248AA1003798D8 /* lib */ = { isa = PBXGroup; children = ( - DAEB938518AB0FFD000490CC /* include */, DA5E5C8717248AA1003798D8 /* libscryptenc-osx.a */, + DAE8E65319867ADA00416A0F /* libopensslcrypto-osx.a */, + DAEB938518AB0FFD000490CC /* include */, ); path = lib; sourceTree = ""; @@ -1822,107 +1666,12 @@ DAEB938518AB0FFD000490CC /* include */ = { isa = PBXGroup; children = ( - DAEB938618AB0FFD000490CC /* openssl */, - DAEB93CF18AB0FFD000490CC /* scrypt */, + DAE8E65619867AF500416A0F /* scrypt */, + DAE8E65719867AF500416A0F /* openssl */, ); 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 = ( @@ -2044,120 +1793,39 @@ 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 */, DA2CA4F218D323D3007798F8 /* NSTimer+PearlBlock.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 */, DA3B8453190FC86F00246EEA /* NSManagedObject+Pearl.h in Headers */, - DAEB93F518AB0FFD000490CC /* evp.h in Headers */, - DAEB941918AB0FFD000490CC /* ts.h in Headers */, DA8ED897192906920099B726 /* map-macro.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 */, DA8ED896192906920099B726 /* PearlTween.h in Headers */, - DAEB93E518AB0FFD000490CC /* conf.h in Headers */, DAFE4A2415039824003ABA7C /* PearlInfoPlist.h in Headers */, - DAEB940618AB0FFD000490CC /* pem2.h in Headers */, DAFE4A2615039824003ABA7C /* PearlLogger.h in Headers */, DA2CA4F018D323D3007798F8 /* NSArray+Pearl.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 */, - DAEB942918AB0FFD000490CC /* warn.h in Headers */, - DAEB93DB18AB0FFD000490CC /* asn1_mac.h in Headers */, - DAEB940518AB0FFD000490CC /* pem.h in Headers */, - DAEB942818AB0FFD000490CC /* sysendian.h in Headers */, DA2CA4EE18D323D3007798F8 /* NSError+PearlFullDescription.h in Headers */, - DAEB93FF18AB0FFD000490CC /* obj_mac.h in Headers */, - DAEB93E718AB0FFD000490CC /* crypto.h in Headers */, - DAEB941318AB0FFD000490CC /* ssl2.h in Headers */, - DAEB940D18AB0FFD000490CC /* ripemd.h in Headers */, 93D39D304F73B3BBA031522A /* PearlProfiler.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; @@ -2789,6 +2457,10 @@ ); GCC_PREFIX_HEADER = "MasterPassword-Prefix.pch"; INFOPLIST_FILE = "MasterPassword-Info.plist"; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "/Users/lhunath/Documents/workspace/lyndir/MasterPassword/External/Pearl/Pearl-Crypto/lib", + ); PROVISIONING_PROFILE = "0FAB9494-7BD5-4638-9B60-66DED5D23B9A"; SKIP_INSTALL = NO; WRAPPER_NAME = "Master Password.${WRAPPER_EXTENSION}"; @@ -2808,6 +2480,10 @@ ); GCC_PREFIX_HEADER = "MasterPassword-Prefix.pch"; INFOPLIST_FILE = "MasterPassword-Info.plist"; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "/Users/lhunath/Documents/workspace/lyndir/MasterPassword/External/Pearl/Pearl-Crypto/lib", + ); PROVISIONING_PROFILE = "0FAB9494-7BD5-4638-9B60-66DED5D23B9A"; SKIP_INSTALL = NO; WRAPPER_NAME = "Master Password.${WRAPPER_EXTENSION}"; @@ -2906,6 +2582,10 @@ ); GCC_PREFIX_HEADER = "MasterPassword-Prefix.pch"; INFOPLIST_FILE = "MasterPassword-Info.plist"; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "/Users/lhunath/Documents/workspace/lyndir/MasterPassword/External/Pearl/Pearl-Crypto/lib", + ); PROVISIONING_PROFILE = "16F3EA2E-5241-42F7-8F39-125ED9FCD536"; SKIP_INSTALL = NO; WRAPPER_NAME = "Master Password.${WRAPPER_EXTENSION}"; @@ -2922,6 +2602,7 @@ "$(inherited)", "\"$(SRCROOT)/../../../External/Pearl/Pearl-Crypto\"", "\"$(SRCROOT)/../../../External/Pearl/Pearl-Crypto/lib\"", + "/Users/lhunath/Documents/workspace/lyndir/MasterPassword/External/Pearl/Pearl-Crypto/lib", ); OTHER_LDFLAGS = "-ObjC"; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -2993,6 +2674,7 @@ "$(inherited)", "\"$(SRCROOT)/../../../External/Pearl/Pearl-Crypto\"", "\"$(SRCROOT)/../../../External/Pearl/Pearl-Crypto/lib\"", + "/Users/lhunath/Documents/workspace/lyndir/MasterPassword/External/Pearl/Pearl-Crypto/lib", ); OTHER_LDFLAGS = "-ObjC"; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -3010,6 +2692,7 @@ "$(inherited)", "\"$(SRCROOT)/../../../External/Pearl/Pearl-Crypto\"", "\"$(SRCROOT)/../../../External/Pearl/Pearl-Crypto/lib\"", + "/Users/lhunath/Documents/workspace/lyndir/MasterPassword/External/Pearl/Pearl-Crypto/lib", ); OTHER_LDFLAGS = "-ObjC"; PRODUCT_NAME = "$(TARGET_NAME)"; diff --git a/MasterPassword/ObjC/iOS/MPPasswordCell.m b/MasterPassword/ObjC/iOS/MPPasswordCell.m index ae5947c5..30650425 100644 --- a/MasterPassword/ObjC/iOS/MPPasswordCell.m +++ b/MasterPassword/ObjC/iOS/MPPasswordCell.m @@ -130,7 +130,7 @@ TimeToCrack timeToCrack; MPElementEntity *element = [self elementInContext:context]; id algorithm = element.algorithm?: MPAlgorithmDefault; - MPAttacker attackHardware = [[MPConfig get].attackHardware unsignedIntegerValue]; + MPAttacker attackHardware = [[MPConfig get].siteAttacker unsignedIntegerValue]; if ([algorithm timeToCrack:&timeToCrack passwordOfType:[self elementInContext:context].type byAttacker:attackHardware] || [algorithm timeToCrack:&timeToCrack passwordString:password byAttacker:attackHardware]) PearlMainQueue( ^{ @@ -400,10 +400,10 @@ else password = [[self elementInContext:context] resolveContentUsingKey:[MPiOSAppDelegate get].key]; - MPAttacker attackHardware = [[MPConfig get].attackHardware unsignedIntegerValue]; TimeToCrack timeToCrack; NSString *timeToCrackString = nil; id algorithm = mainElement.algorithm?: MPAlgorithmDefault; + MPAttacker attackHardware = [[MPConfig get].siteAttacker unsignedIntegerValue]; if ([algorithm timeToCrack:&timeToCrack passwordOfType:[self elementInContext:context].type byAttacker:attackHardware] || [algorithm timeToCrack:&timeToCrack passwordString:password byAttacker:attackHardware]) timeToCrackString = NSStringFromTimeToCrack( timeToCrack ); diff --git a/MasterPassword/ObjC/iOS/MasterPassword-iOS.xcodeproj/project.pbxproj b/MasterPassword/ObjC/iOS/MasterPassword-iOS.xcodeproj/project.pbxproj index 3df21b91..a09b8a4d 100644 --- a/MasterPassword/ObjC/iOS/MasterPassword-iOS.xcodeproj/project.pbxproj +++ b/MasterPassword/ObjC/iOS/MasterPassword-iOS.xcodeproj/project.pbxproj @@ -271,6 +271,7 @@ DACA29BF1705E2DE002C6C22 /* UIColor+HSV.m in Sources */ = {isa = PBXBuildFile; fileRef = DACA29BB1705E2DE002C6C22 /* UIColor+HSV.m */; }; DAD312C21552A22700A3F9ED /* libsqlite3.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = DAD312C01552A20800A3F9ED /* libsqlite3.dylib */; }; DAE1EF2217E942DE00BC0086 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = DAE1EF2417E942DE00BC0086 /* Localizable.strings */; }; + DAE8E65219867AB500416A0F /* libopensslcrypto-ios.a in Frameworks */ = {isa = PBXBuildFile; fileRef = DAE8E65119867AB500416A0F /* libopensslcrypto-ios.a */; }; DAEBC45314F6364500987BF6 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DAEBC45214F6364500987BF6 /* QuartzCore.framework */; }; DAEC85B518E3DD9A007FC0DF /* UIView+Touches.m in Sources */ = {isa = PBXBuildFile; fileRef = DAEC85B118E3DD9A007FC0DF /* UIView+Touches.m */; }; DAEC85B618E3DD9A007FC0DF /* PearlUINavigationBar.m in Sources */ = {isa = PBXBuildFile; fileRef = DAEC85B218E3DD9A007FC0DF /* PearlUINavigationBar.m */; }; @@ -1187,7 +1188,6 @@ DABD3BF91711E2DC00CF925C /* Settings.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = Settings.bundle; sourceTree = ""; }; DABD3BFB1711E2DC00CF925C /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; }; DABD3BFC1711E2DC00CF925C /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; - DABD3FC617122ADD00CF925C /* libscrypt-bin-ios.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = "libscrypt-bin-ios.a"; path = "../../../External/Pearl/External/iOSPorts/ports/security/scrypt/build/Release-iphoneos/libscrypt-bin-ios.a"; sourceTree = ""; }; DABD3FC81712446200CF925C /* cloud.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = cloud.png; sourceTree = ""; }; DABD3FC91712446200CF925C /* cloud@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "cloud@2x.png"; sourceTree = ""; }; DABD3FCC1714F45B00CF925C /* identity.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = identity.png; sourceTree = ""; }; @@ -1213,6 +1213,7 @@ DAD312C01552A20800A3F9ED /* libsqlite3.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libsqlite3.dylib; path = usr/lib/libsqlite3.dylib; sourceTree = SDKROOT; }; DADBB55918DB0CFC00D099FE /* keyboard-dark@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "keyboard-dark@2x.png"; sourceTree = ""; }; DAE1EF2317E942DE00BC0086 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = ""; }; + DAE8E65119867AB500416A0F /* libopensslcrypto-ios.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libopensslcrypto-ios.a"; sourceTree = ""; }; DAEBC45214F6364500987BF6 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; DAEC85B118E3DD9A007FC0DF /* UIView+Touches.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIView+Touches.m"; sourceTree = ""; }; DAEC85B218E3DD9A007FC0DF /* PearlUINavigationBar.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PearlUINavigationBar.m; sourceTree = ""; }; @@ -1358,6 +1359,7 @@ DABB981615100B4000B05417 /* SystemConfiguration.framework in Frameworks */, DA672D3014F9413D004A189C /* libPearl.a in Frameworks */, DA672D2F14F92C6B004A189C /* libz.dylib in Frameworks */, + DAE8E65219867AB500416A0F /* libopensslcrypto-ios.a in Frameworks */, DAEBC45314F6364500987BF6 /* QuartzCore.framework in Frameworks */, DA95D5F214DF0B2C008D1B94 /* MessageUI.framework in Frameworks */, DA04E33E14B1E70400ECA4F3 /* MobileCoreServices.framework in Frameworks */, @@ -1469,7 +1471,6 @@ children = ( DA3B844D190FC5DF00246EEA /* Crashlytics.framework */, DA70EC7F1811B13C00F65DB2 /* StoreKit.framework */, - DABD3FC617122ADD00CF925C /* libscrypt-bin-ios.a */, DA6701DF16406BB400B61001 /* AdSupport.framework */, DA6701DD16406B7300B61001 /* Social.framework */, DA6701B716406A4100B61001 /* Accounts.framework */, @@ -1493,6 +1494,7 @@ DA5E5C6317248959003798D8 /* lib */ = { isa = PBXGroup; children = ( + DAE8E65119867AB500416A0F /* libopensslcrypto-ios.a */, DAFFC63E17EDDA7C007BB020 /* libscryptenc-ios.a */, DA5E5C6417248959003798D8 /* include */, ); @@ -3591,6 +3593,10 @@ GCC_PREFIX_HEADER = "MasterPassword-Prefix.pch"; INFOPLIST_FILE = "MasterPassword-Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 7.0; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "/Users/lhunath/Documents/workspace/lyndir/MasterPassword/External/Pearl/Pearl-Crypto/lib", + ); OTHER_LDFLAGS = ( "$(inherited)", "-framework", @@ -3619,6 +3625,10 @@ GCC_PREFIX_HEADER = "MasterPassword-Prefix.pch"; INFOPLIST_FILE = "MasterPassword-Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 7.0; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "/Users/lhunath/Documents/workspace/lyndir/MasterPassword/External/Pearl/Pearl-Crypto/lib", + ); PROVISIONING_PROFILE = ""; "PROVISIONING_PROFILE[sdk=iphoneos*]" = "6407ECED-9FF3-4F04-B40E-5B3E771D603D"; SKIP_INSTALL = NO; @@ -3731,6 +3741,10 @@ GCC_PREFIX_HEADER = "MasterPassword-Prefix.pch"; INFOPLIST_FILE = "MasterPassword-Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 7.0; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "/Users/lhunath/Documents/workspace/lyndir/MasterPassword/External/Pearl/Pearl-Crypto/lib", + ); PROVISIONING_PROFILE = ""; "PROVISIONING_PROFILE[sdk=iphoneos*]" = "36641E9D-D5E0-4E80-94F4-B2CF898CFE10"; SKIP_INSTALL = NO; @@ -3853,6 +3867,7 @@ DAFC565F172C573B00CB5CC5 /* Debug-iOS */ = { isa = XCBuildConfiguration; buildSettings = { + CLANG_ENABLE_OBJC_ARC = YES; GCC_WARN_INHIBIT_ALL_WARNINGS = YES; }; name = "Debug-iOS"; @@ -3860,6 +3875,7 @@ DAFC5660172C573B00CB5CC5 /* AdHoc-iOS */ = { isa = XCBuildConfiguration; buildSettings = { + CLANG_ENABLE_OBJC_ARC = YES; GCC_WARN_INHIBIT_ALL_WARNINGS = YES; }; name = "AdHoc-iOS"; @@ -3867,6 +3883,7 @@ DAFC5661172C573B00CB5CC5 /* AppStore-iOS */ = { isa = XCBuildConfiguration; buildSettings = { + CLANG_ENABLE_OBJC_ARC = YES; GCC_WARN_INHIBIT_ALL_WARNINGS = YES; }; name = "AppStore-iOS"; diff --git a/MasterPassword/ObjC/iOS/Settings.bundle/Root.plist b/MasterPassword/ObjC/iOS/Settings.bundle/Root.plist index 892d73ff..ca7a66a0 100644 --- a/MasterPassword/ObjC/iOS/Settings.bundle/Root.plist +++ b/MasterPassword/ObjC/iOS/Settings.bundle/Root.plist @@ -108,6 +108,44 @@ To see a site's password anyway, tap and hold your finger down for a while Type PSToggleSwitchSpecifier + + FooterText + The password strength indicator estimates the time necessary to break the password from a stolen database of SHA-1 hashes. Use this setting to choose the budget the attacker is willing to devote to breaking your site password. + Title + + Type + PSGroupSpecifier + + + DefaultValue + 0 + Key + siteAttacker + Title + Attacker Budget + Type + PSMultiValueSpecifier + Titles + + Regular Hardware + Dedicated GPUs, 5000 $ US + Large Organization, 20 M$ US + State Department, 5 B$ US + + ShortTitles + + Regular + 5k $ + 20M $ + 5B $ + + Values + + 0 + 1 + 2 + + Type PSGroupSpecifier diff --git a/MasterPassword/ObjC/iOS/Storyboard.storyboard b/MasterPassword/ObjC/iOS/Storyboard.storyboard index cf8b2b78..49a9efe0 100644 --- a/MasterPassword/ObjC/iOS/Storyboard.storyboard +++ b/MasterPassword/ObjC/iOS/Storyboard.storyboard @@ -483,8 +483,8 @@ - + @@ -1795,6 +1795,22 @@ + + + + + + + + + + + + + + + + @@ -1828,7 +1844,7 @@ - + @@ -1974,7 +1990,7 @@ CgoKCgoKCgoKCgoKCg - + @@ -2507,7 +2523,7 @@ See - +