From 5b7071ed692e9cb84b9def7ac95a2209667ef5bb Mon Sep 17 00:00:00 2001 From: Elie Hage Date: Fri, 3 Jul 2026 14:13:19 +0300 Subject: [PATCH] Remove unused EX2Kit code --- .../Foundation/EX2FoundationCategories.h | 2 - EX2Kit/Categories/Foundation/NSData+Hash.h | 16 - EX2Kit/Categories/Foundation/NSData+Hash.m | 48 --- .../Categories/Foundation/NSFileHandle+Hash.h | 16 - .../Categories/Foundation/NSFileHandle+Hash.m | 108 ------ .../Foundation/NSString/NSString+md5.m | 3 + EX2Kit/Categories/UIKit/UIDevice+Software.h | 1 - EX2Kit/Categories/UIKit/UIDevice+Software.m | 21 -- EX2Kit/Categories/UIKit/UIView+Tools.h | 7 - EX2Kit/Categories/UIKit/UIView+Tools.m | 36 -- EX2Kit/Components/EX2Components.h | 1 - EX2Kit/Components/EX2NetworkIndicator.h | 17 - EX2Kit/Components/EX2NetworkIndicator.m | 47 --- .../Dependencies/RNCryptor/RNOpenSSLCryptor.h | 69 ---- .../Dependencies/RNCryptor/RNOpenSSLCryptor.m | 315 ------------------ .../RNCryptor/RNOpenSSLDecryptor.h | 43 --- .../RNCryptor/RNOpenSSLDecryptor.m | 158 --------- .../RNCryptor/RNOpenSSLEncryptor.h | 33 -- .../RNCryptor/RNOpenSSLEncryptor.m | 122 ------- EX2Kit/UIComponents/EX2SlidingNotification.m | 34 +- Project/EX2Kit.xcodeproj/project.pbxproj | 108 +----- 21 files changed, 38 insertions(+), 1167 deletions(-) delete mode 100644 EX2Kit/Categories/Foundation/NSData+Hash.h delete mode 100644 EX2Kit/Categories/Foundation/NSData+Hash.m delete mode 100644 EX2Kit/Categories/Foundation/NSFileHandle+Hash.h delete mode 100644 EX2Kit/Categories/Foundation/NSFileHandle+Hash.m delete mode 100644 EX2Kit/Components/EX2NetworkIndicator.h delete mode 100644 EX2Kit/Components/EX2NetworkIndicator.m delete mode 100644 EX2Kit/Dependencies/RNCryptor/RNOpenSSLCryptor.h delete mode 100644 EX2Kit/Dependencies/RNCryptor/RNOpenSSLCryptor.m delete mode 100644 EX2Kit/Dependencies/RNCryptor/RNOpenSSLDecryptor.h delete mode 100644 EX2Kit/Dependencies/RNCryptor/RNOpenSSLDecryptor.m delete mode 100644 EX2Kit/Dependencies/RNCryptor/RNOpenSSLEncryptor.h delete mode 100644 EX2Kit/Dependencies/RNCryptor/RNOpenSSLEncryptor.m diff --git a/EX2Kit/Categories/Foundation/EX2FoundationCategories.h b/EX2Kit/Categories/Foundation/EX2FoundationCategories.h index 7cae0f2..ca0e806 100644 --- a/EX2Kit/Categories/Foundation/EX2FoundationCategories.h +++ b/EX2Kit/Categories/Foundation/EX2FoundationCategories.h @@ -17,7 +17,6 @@ #import "NSData+Gzip.h" #import "NSMutableDictionary+Safe.h" #import "NSURL+QueryParameterDictionary.h" -#import "NSData+Hash.h" #import "NSNumber+CleanString.h" #import "NSNull+CleanString.h" #import "NSObject+UserInfo.h" @@ -25,7 +24,6 @@ #import "NSMutableOrderedSet+Safe.h" #import "NSOrderedSet+FirstObject.h" #import "NSURL+SkipBackupAttribute.h" -#import "NSFileHandle+Hash.h" #import "NSArray+CleanString.h" #endif diff --git a/EX2Kit/Categories/Foundation/NSData+Hash.h b/EX2Kit/Categories/Foundation/NSData+Hash.h deleted file mode 100644 index 3e7483b..0000000 --- a/EX2Kit/Categories/Foundation/NSData+Hash.h +++ /dev/null @@ -1,16 +0,0 @@ -// -// NSData+Hash.h -// EX2Kit -// -// Created by Benjamin Baron on 3/29/13. -// -// - -#import - -@interface NSData (Hash) - -- (NSString *)sha1; -- (NSString *)md5; - -@end diff --git a/EX2Kit/Categories/Foundation/NSData+Hash.m b/EX2Kit/Categories/Foundation/NSData+Hash.m deleted file mode 100644 index 2e5b1ab..0000000 --- a/EX2Kit/Categories/Foundation/NSData+Hash.m +++ /dev/null @@ -1,48 +0,0 @@ -// -// NSData+Hash.m -// EX2Kit -// -// Created by Benjamin Baron on 3/29/13. -// -// - -#import "NSData+Hash.h" -#import - -@implementation NSData (Hash) - -- (NSString *)sha1 -{ - if (self.length == 0) - return nil; - - uint8_t digest[CC_SHA1_DIGEST_LENGTH]; - - CC_SHA1(self.bytes, (CC_LONG)self.length, digest); - - NSMutableString* output = [NSMutableString stringWithCapacity:CC_SHA1_DIGEST_LENGTH * 2]; - - for(int i = 0; i < CC_SHA1_DIGEST_LENGTH; i++) - [output appendFormat:@"%02x", digest[i]]; - - return output; -} - -- (NSString *)md5 -{ - if (self.length == 0) - return nil; - - uint8_t digest[CC_SHA1_DIGEST_LENGTH]; - - CC_MD5(self.bytes, (CC_LONG)self.length, digest); - - NSMutableString* output = [NSMutableString stringWithCapacity:CC_SHA1_DIGEST_LENGTH * 2]; - - for(int i = 0; i < CC_SHA1_DIGEST_LENGTH; i++) - [output appendFormat:@"%02x", digest[i]]; - - return output; -} - -@end diff --git a/EX2Kit/Categories/Foundation/NSFileHandle+Hash.h b/EX2Kit/Categories/Foundation/NSFileHandle+Hash.h deleted file mode 100644 index 33e7fe8..0000000 --- a/EX2Kit/Categories/Foundation/NSFileHandle+Hash.h +++ /dev/null @@ -1,16 +0,0 @@ -// -// NSFileHandle+Hash.h -// EX2Kit -// -// Created by Benjamin Baron on 3/29/13. -// -// - -#import - -@interface NSFileHandle (Hash) - -- (NSString *)sha1; -- (NSString *)md5; - -@end diff --git a/EX2Kit/Categories/Foundation/NSFileHandle+Hash.m b/EX2Kit/Categories/Foundation/NSFileHandle+Hash.m deleted file mode 100644 index fef9eec..0000000 --- a/EX2Kit/Categories/Foundation/NSFileHandle+Hash.m +++ /dev/null @@ -1,108 +0,0 @@ -// -// NSFileHandle+Hash.m -// EX2Kit -// -// Created by Benjamin Baron on 3/29/13. -// -// - -#import "NSFileHandle+Hash.h" -#import -#import "EX2ANGLogger.h" - -@implementation NSFileHandle (Hash) - -#define READ_CHUNK_SIZE BytesFromKB(16) - -- (NSString *)sha1 -{ - @try - { - // Seek to the beginning - [self seekToFileOffset:0]; - - // Create and initialize the context - CC_SHA1_CTX context; - CC_SHA1_Init(&context); - - // Loop through the data, adding it to the rolling hash - while (YES) - { - NSData *data = [self readDataOfLength:READ_CHUNK_SIZE]; - if (data.length == 0) - break; - - CC_SHA1_Update(&context, data.bytes, (CC_LONG)data.length); - } - - // Compute the final digest - uint8_t digest[CC_SHA1_DIGEST_LENGTH]; - CC_SHA1_Final(digest, &context); - - // Convert the digest to a hex string for printing - NSMutableString *output = [NSMutableString stringWithCapacity:CC_SHA1_DIGEST_LENGTH * 2]; - for(int i = 0; i < CC_SHA1_DIGEST_LENGTH; i++) - { - [output appendFormat:@"%02x", digest[i]]; - } - return output; - } - @catch (NSException *exception) - { - [EX2ANGLogger logError:@"[NSFileHandle+HashAndChecksum] Failed to generate SHA1 hash with exception %@", exception]; - return nil; - } -} - -- (NSString *)md5 -{ - @try - { - // Seek to the beginning - [self seekToFileOffset:0]; - if (self.availableData == 0) - return nil; - - // Create and initialize the context - CC_MD5_CTX context; - CC_MD5_Init(&context); - - // Loop through the data, adding it to the rolling hash - while (YES) - { - NSData *data = [self readDataOfLength:READ_CHUNK_SIZE]; - if (data.length == 0) - break; - - CC_MD5_Update(&context, data.bytes, (CC_LONG)data.length); - } - - // Compute the final digest - uint8_t digest[CC_SHA1_DIGEST_LENGTH]; - CC_MD5_Final(digest, &context); - - // Convert the digest to a hex string for printing - NSMutableString *output = [NSMutableString stringWithCapacity:CC_SHA1_DIGEST_LENGTH * 2]; - for(int i = 0; i < CC_SHA1_DIGEST_LENGTH; i++) - { - [output appendFormat:@"%02x", digest[i]]; - } - return output; - } - @catch (NSException *exception) - { - return nil; - } -} - -- (NSString *)crc32 -{ - return nil; -} - -- (NSString *)adler32 -{ - return nil; -} - -@end diff --git a/EX2Kit/Categories/Foundation/NSString/NSString+md5.m b/EX2Kit/Categories/Foundation/NSString/NSString+md5.m index f79cd98..d803fce 100644 --- a/EX2Kit/Categories/Foundation/NSString/NSString+md5.m +++ b/EX2Kit/Categories/Foundation/NSString/NSString+md5.m @@ -23,7 +23,10 @@ + (NSString *) md5:(NSString *)str ignoreEmpty:(BOOL)ignoreEmpty { const char *cStr = [str UTF8String]; unsigned char result[16]; +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" CC_MD5( cStr, (CC_LONG)strlen(cStr), result ); +#pragma clang diagnostic pop return [NSString stringWithFormat: @"%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X%02X", result[0], result[1], result[2], result[3], diff --git a/EX2Kit/Categories/UIKit/UIDevice+Software.h b/EX2Kit/Categories/UIKit/UIDevice+Software.h index b7d1eed..278be7e 100644 --- a/EX2Kit/Categories/UIKit/UIDevice+Software.h +++ b/EX2Kit/Categories/UIKit/UIDevice+Software.h @@ -13,6 +13,5 @@ - (NSString *)systemBuild; - (NSString *)completeVersionString; - (BOOL)isJailbroken; -- (BOOL)isOnPhoneCall; @end diff --git a/EX2Kit/Categories/UIKit/UIDevice+Software.m b/EX2Kit/Categories/UIKit/UIDevice+Software.m index 948fd56..708eb72 100644 --- a/EX2Kit/Categories/UIKit/UIDevice+Software.m +++ b/EX2Kit/Categories/UIKit/UIDevice+Software.m @@ -9,12 +9,6 @@ #import "UIDevice+Software.h" #import -#ifdef TVOS -#else -#import -#import -#endif - @implementation UIDevice (Software) - (NSString *)systemBuild @@ -62,19 +56,4 @@ - (BOOL)isJailbroken #endif } -- (BOOL)isOnPhoneCall -{ -#ifdef TVOS - return NO; -#else - CTCallCenter *callCenter = [[CTCallCenter alloc] init]; - for (CTCall *call in callCenter.currentCalls) - { - if (call.callState != CTCallStateDisconnected) - return YES; - } - return NO; -#endif -} - @end diff --git a/EX2Kit/Categories/UIKit/UIView+Tools.h b/EX2Kit/Categories/UIKit/UIView+Tools.h index 34828b2..e4854b7 100644 --- a/EX2Kit/Categories/UIKit/UIView+Tools.h +++ b/EX2Kit/Categories/UIKit/UIView+Tools.h @@ -29,13 +29,6 @@ @property (nonatomic, readonly) UIViewController *viewController; -#ifdef TVOS -#else -- (CGSize)realSizeDidRotate; -- (CGSize)realSizeDidRotate:(UIDeviceOrientation)currentOrientation; -+ (UIInterfaceOrientation)interfaceOrientationFromDeviceOrientation:(UIDeviceOrientation)deviceOrientation; -#endif - - (void)addLeftShadowWithWidth:(CGFloat)shadowWidth alpha:(CGFloat)shadowAlpha; - (void)addLeftShadow; - (void)removeLeftShadow; diff --git a/EX2Kit/Categories/UIKit/UIView+Tools.m b/EX2Kit/Categories/UIKit/UIView+Tools.m index 7d8e0f1..9c43ecd 100644 --- a/EX2Kit/Categories/UIKit/UIView+Tools.m +++ b/EX2Kit/Categories/UIKit/UIView+Tools.m @@ -346,42 +346,6 @@ - (UIViewController *)viewController; } } -#ifdef TVOS -#else -+ (UIInterfaceOrientation)interfaceOrientationFromDeviceOrientation:(UIDeviceOrientation)deviceOrientation -{ - switch (deviceOrientation) - { - case UIDeviceOrientationLandscapeLeft: - return UIInterfaceOrientationLandscapeRight; - case UIDeviceOrientationLandscapeRight: - return UIInterfaceOrientationLandscapeLeft; - default: - return UIInterfaceOrientationPortrait; - } -} - -- (CGSize)realSizeDidRotate:(UIDeviceOrientation)currentOrientation -{ - UIInterfaceOrientation orientation = (int)currentOrientation == -1 ? [[UIApplication sharedApplication] statusBarOrientation] : [self.class interfaceOrientationFromDeviceOrientation:currentOrientation]; - CGSize size = self.frame.size; - if ((UIInterfaceOrientationIsLandscape(orientation) && size.width < size.height) || - (UIInterfaceOrientationIsPortrait(orientation) && size.width > size.height)) - { - // flip width and height - CGFloat f = size.width; - size.width = size.height; - size.height = f; - } - return size; -} - -- (CGSize)realSizeDidRotate -{ - return [self realSizeDidRotate:-1]; -} -#endif - // Convert the view for use in Arabic/Hebrew layout - (void)convertToRTL { diff --git a/EX2Kit/Components/EX2Components.h b/EX2Kit/Components/EX2Components.h index 3bdb271..e50eb5b 100644 --- a/EX2Kit/Components/EX2Components.h +++ b/EX2Kit/Components/EX2Components.h @@ -19,7 +19,6 @@ #import "EX2ActionBlock.h" #ifdef IOS - #import "EX2NetworkIndicator.h" #import "EX2Reachability.h" #endif diff --git a/EX2Kit/Components/EX2NetworkIndicator.h b/EX2Kit/Components/EX2NetworkIndicator.h deleted file mode 100644 index cb45d05..0000000 --- a/EX2Kit/Components/EX2NetworkIndicator.h +++ /dev/null @@ -1,17 +0,0 @@ -// -// ISMSNetworkIndicator.h -// iSub -// -// Created by Benjamin Baron on 4/23/12. -// Copyright (c) 2012 Anghami. All rights reserved. -// - -#import - -@interface EX2NetworkIndicator : NSObject - -+ (void)usingNetwork; -+ (void)doneUsingNetwork; -+ (void)goingOffline; - -@end diff --git a/EX2Kit/Components/EX2NetworkIndicator.m b/EX2Kit/Components/EX2NetworkIndicator.m deleted file mode 100644 index 129692c..0000000 --- a/EX2Kit/Components/EX2NetworkIndicator.m +++ /dev/null @@ -1,47 +0,0 @@ -// -// EX2NetworkIndicator.h -// iSub -// -// Created by Benjamin Baron on 4/23/12. -// Copyright (c) 2012 Anghami. All rights reserved. -// - -#import "EX2NetworkIndicator.h" - -static NSUInteger networkUseCount = 0; - -@implementation EX2NetworkIndicator - -+ (void)usingNetwork -{ - @synchronized(self) - { - networkUseCount++; - [UIApplication sharedApplication].networkActivityIndicatorVisible = YES; - } -} - -+ (void)doneUsingNetwork -{ - @synchronized(self) - { - if (networkUseCount > 0) - { - networkUseCount--; - - if (networkUseCount == 0) - [UIApplication sharedApplication].networkActivityIndicatorVisible = NO; - } - } -} - -+ (void)goingOffline -{ - @synchronized(self) - { - networkUseCount = 0; - [UIApplication sharedApplication].networkActivityIndicatorVisible = NO; - } -} - -@end diff --git a/EX2Kit/Dependencies/RNCryptor/RNOpenSSLCryptor.h b/EX2Kit/Dependencies/RNCryptor/RNOpenSSLCryptor.h deleted file mode 100644 index a828408..0000000 --- a/EX2Kit/Dependencies/RNCryptor/RNOpenSSLCryptor.h +++ /dev/null @@ -1,69 +0,0 @@ -// -// RNOpenSSLCryptor -// -// Copyright (c) 2012 Rob Napier -// -// This code is licensed under the MIT License: -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the "Software"), -// to deal in the Software without restriction, including without limitation -// the rights to use, copy, modify, merge, publish, distribute, sublicense, -// and/or sell copies of the Software, and to permit persons to whom the -// Software is furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -// DEALINGS IN THE SOFTWARE. -// - -#import "RNOpenSSLDecryptor.h" -#import "RNOpenSSLEncryptor.h" - - -extern NSString *const kRNCryptorOpenSSLSaltedString; - -NSData *RNOpenSSLCryptorGetKey(NSString *password, NSData *salt, RNCryptorKeyDerivationSettings keySettings); -NSData *RNOpenSSLCryptorGetIV(NSData *key, NSString *password, NSData *salt, RNCryptorKeyDerivationSettings keySettings); - - -// -//#import "RNCryptor.h" -// -// -//@interface RNOpenSSLCryptor : NSObject -//+ (RNOpenSSLCryptor *)openSSLCryptor; -// -//- (BOOL)encryptFromStream:(NSInputStream *)fromStream -// toStream:(NSOutputStream *)toStream -// password:(NSString *)password -// error:(NSError **)error; -// -//- (BOOL)decryptFromStream:(NSInputStream *)fromStream -// toStream:(NSOutputStream *)toStream -// password:(NSString *)password -// error:(NSError **)error; -// -//@end -// -//static const RNCryptorSettings kRNCryptorOpenSSLSettings = { -// .algorithm = kCCAlgorithmAES128, -// .mode = kCCModeCBC, -// .blockSize = kCCBlockSizeAES128, -// .IVSize = kCCBlockSizeAES128, -// .padding = ccPKCS7Padding, -// -// .keySettings = { -// .keySize = kCCKeySizeAES256, -// .saltSize = 8, -// .rounds = 1, -// .PRF = kCCPRFHmacAlgSHA1 -// }, -//}; diff --git a/EX2Kit/Dependencies/RNCryptor/RNOpenSSLCryptor.m b/EX2Kit/Dependencies/RNCryptor/RNOpenSSLCryptor.m deleted file mode 100644 index 5bcefbd..0000000 --- a/EX2Kit/Dependencies/RNCryptor/RNOpenSSLCryptor.m +++ /dev/null @@ -1,315 +0,0 @@ -//// -//// RNOpenSSLCryptor -//// -//// Copyright (c) 2012 Rob Napier -//// -//// This code is licensed under the MIT License: -//// -//// Permission is hereby granted, free of charge, to any person obtaining a -//// copy of this software and associated documentation files (the "Software"), -//// to deal in the Software without restriction, including without limitation -//// the rights to use, copy, modify, merge, publish, distribute, sublicense, -//// and/or sell copies of the Software, and to permit persons to whom the -//// Software is furnished to do so, subject to the following conditions: -//// -//// The above copyright notice and this permission notice shall be included in -//// all copies or substantial portions of the Software. -//// -//// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -//// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -//// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE -//// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -//// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -//// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -//// DEALINGS IN THE SOFTWARE. -//// - - -// For aes-128: -// -// key = MD5(password + salt) -// IV = MD5(Key + password + salt) - -// -// For aes-256: -// -// Hash0 = '' -// Hash1 = MD5(Hash0 + Password + Salt) -// Hash2 = MD5(Hash1 + Password + Salt) -// Hash3 = MD5(Hash2 + Password + Salt) -// Hash4 = MD5(Hash3 + Password + Salt) -// -// Key = Hash1 + Hash2 -// IV = Hash3 + Hash4 -// - -// File Format: -// -// |Salted___||| -// - -#import "RNOpenSSLCryptor.h" - -NSString *const kRNCryptorOpenSSLSaltedString = @"Salted__"; - -static NSData *GetHashForHash(NSData *hash, NSData *passwordSalt) { - unsigned char md[CC_MD5_DIGEST_LENGTH]; - - NSMutableData *hashMaterial = [NSMutableData dataWithData:hash]; - [hashMaterial appendData:passwordSalt]; - CC_MD5([hashMaterial bytes], (CC_LONG)[hashMaterial length], md); - - return [NSData dataWithBytes:md length:sizeof(md)]; -} - - -NSData *RNOpenSSLCryptorGetKey(NSString *password, NSData *salt, RNCryptorKeyDerivationSettings keySettings) { - // FIXME: This is all very inefficient; we repeat ourselves in IVForKey:... - - NSMutableData *key; - NSMutableData *passwordSalt = [[password dataUsingEncoding:NSUTF8StringEncoding] mutableCopy]; - [passwordSalt appendData:salt]; - - if (keySettings.keySize != kCCKeySizeAES256) { - // For aes-128: - // - // key = MD5(password + salt) - // IV = MD5(Key + password + salt) - unsigned char md[CC_MD5_DIGEST_LENGTH]; - CC_MD5([passwordSalt bytes], (CC_LONG)[passwordSalt length], md); - key = [[NSData dataWithBytes:md length:sizeof(md)] mutableCopy]; - - } else { - // Hash0 = '' - // Hash1 = MD5(Hash0 + Password + Salt) - // Hash2 = MD5(Hash1 + Password + Salt) - // Hash3 = MD5(Hash2 + Password + Salt) - // Hash4 = MD5(Hash3 + Password + Salt) - // - // Key = Hash1 + Hash2 - // IV = Hash3 + Hash4 - - NSData *hash1 = GetHashForHash(nil, passwordSalt); - NSData *hash2 = GetHashForHash(hash1, passwordSalt); - - key = [hash1 mutableCopy]; - [key appendData:hash2]; - } - return key; -} - -NSData *RNOpenSSLCryptorGetIV(NSData *key, NSString *password, NSData *salt, RNCryptorKeyDerivationSettings keySettings) { - - NSMutableData *IV; - NSMutableData *passwordSalt = [[password dataUsingEncoding:NSUTF8StringEncoding] mutableCopy]; - [passwordSalt appendData:salt]; - - if (keySettings.keySize != kCCKeySizeAES256) { - // For aes-128: - // - // key = MD5(password + salt) - // IV = MD5(Key + password + salt) - IV = [GetHashForHash(key, passwordSalt) mutableCopy]; - - } else { - - // - // For aes-256: - // - // Hash0 = '' - // Hash1 = MD5(Hash0 + Password + Salt) - // Hash2 = MD5(Hash1 + Password + Salt) - // Hash3 = MD5(Hash2 + Password + Salt) - // Hash4 = MD5(Hash3 + Password + Salt) - // - // Key = Hash1 + Hash2 - // IV = Hash3 + Hash4 - - NSData *hash3 = GetHashForHash(key, passwordSalt); - NSData *hash4 = GetHashForHash(hash3, passwordSalt); - - IV = [hash3 mutableCopy]; - [IV appendData:hash4]; - } - return IV; -} - - - -// -//const NSUInteger kSaltSize = 8; -//NSString *const kSaltedString = @"Salted__"; -// -//@interface NSInputStream (RNCryptor) -//- (BOOL)_RNGetData:(NSData **)data maxLength:(NSUInteger)maxLength error:(NSError **)error; -//@end -// -//@implementation NSInputStream (RNCryptor) -//- (BOOL)_RNGetData:(NSData **)data maxLength:(NSUInteger)maxLength error:(NSError **)error -//{ -// NSMutableData *buffer = [NSMutableData dataWithLength:maxLength]; -// if ([self read:buffer.mutableBytes maxLength:maxLength] < 0) { -// if (error) { -// *error = [self streamError]; -// return NO; -// } -// } -// -// *data = buffer; -// return YES; -//} -//@end -// -//@interface NSOutputStream (RNCryptor) -//- (BOOL)_RNWriteData:(NSData *)data error:(NSError **)error; -//@end -// -//@implementation NSOutputStream (RNCryptor) -//- (BOOL)_RNWriteData:(NSData *)data error:(NSError **)error -//{ -// // Writing 0 bytes will close the output stream. -// // This is an undocumented side-effect. radar://9930518 -// if (data.length > 0) { -// NSInteger bytesWritten = [self write:data.bytes -// maxLength:data.length]; -// if (bytesWritten != data.length) { -// if (error) { -// *error = [self streamError]; -// } -// return NO; -// } -// } -// return YES; -//} -//@end -// -//@interface RNOpenSSLCryptor () -//@end -// -//@implementation RNOpenSSLCryptor -//+ (RNOpenSSLCryptor *)openSSLCryptor -//{ -// static dispatch_once_t once; -// static id openSSLCryptor = nil; -// -// dispatch_once(&once, ^{openSSLCryptor = [[self alloc] init];}); -// return openSSLCryptor; -//} -// -//- (NSData *)hashForHash:(NSData *)hash passwordSalt:(NSData *)passwordSalt -//{ -// unsigned char md[CC_MD5_DIGEST_LENGTH]; -// -// NSMutableData *hashMaterial = [NSMutableData dataWithData:hash]; -// [hashMaterial appendData:passwordSalt]; -// CC_MD5([hashMaterial bytes], [hashMaterial length], md); -// -// return [NSData dataWithBytes:md length:sizeof(md)]; -//} -// -//- (NSData *)keyForPassword:(NSString *)password salt:(NSData *)salt -//{ -// // FIXME: This is all very inefficient; we repeat ourselves in IVForKey:... -// -// // Hash0 = '' -// // Hash1 = MD5(Hash0 + Password + Salt) -// // Hash2 = MD5(Hash1 + Password + Salt) -// // Hash3 = MD5(Hash2 + Password + Salt) -// // Hash4 = MD5(Hash3 + Password + Salt) -// // -// // Key = Hash1 + Hash2 -// // IV = Hash3 + Hash4 -// -// NSMutableData *passwordSalt = [[password dataUsingEncoding:NSUTF8StringEncoding] mutableCopy]; -// [passwordSalt appendData:salt]; -// -// NSData *hash1 = [self hashForHash:nil passwordSalt:passwordSalt]; -// NSData *hash2 = [self hashForHash:hash1 passwordSalt:passwordSalt]; -// -// NSMutableData *key = [hash1 mutableCopy]; -// [key appendData:hash2]; -// -// return key; -// -//// // key = MD5(password + salt) -//// unsigned char md[CC_MD5_DIGEST_LENGTH]; -//// NSMutableData *keyMaterial = [NSMutableData dataWithData:[password dataUsingEncoding:NSUTF8StringEncoding]]; -//// [keyMaterial appendData:salt]; -//// CC_MD5([keyMaterial bytes], [keyMaterial length], md); -//// NSData *key = [NSData dataWithBytes:md length:sizeof(md)]; -//// return key; -//} -// -//- (NSData *)IVForKey:(NSData *)key password:(NSString *)password salt:(NSData *)salt -//{ -// NSMutableData *passwordSalt = [[password dataUsingEncoding:NSUTF8StringEncoding] mutableCopy]; -// [passwordSalt appendData:salt]; -// -// NSData *hash1 = [self hashForHash:nil passwordSalt:passwordSalt]; -// NSData *hash2 = [self hashForHash:hash1 passwordSalt:passwordSalt]; -// NSData *hash3 = [self hashForHash:hash2 passwordSalt:passwordSalt]; -// NSData *hash4 = [self hashForHash:hash3 passwordSalt:passwordSalt]; -// -// NSMutableData *IV = [hash3 mutableCopy]; -// [IV appendData:hash4]; -// -// return IV; -// -// -//// // IV = MD5(Key + password + salt) -//// unsigned char md[CC_MD5_DIGEST_LENGTH]; -//// NSMutableData *IVMaterial = [NSMutableData dataWithData:key]; -//// [IVMaterial appendData:[password dataUsingEncoding:NSUTF8StringEncoding]]; -//// [IVMaterial appendData:salt]; -//// CC_MD5([IVMaterial bytes], [IVMaterial length], md); -//// NSData *IV = [NSData dataWithBytes:md length:sizeof(md)]; -//// return IV; -//} -// -//- (BOOL)decryptFromStream:(NSInputStream *)fromStream toStream:(NSOutputStream *)toStream password:(NSString *)password error:(NSError **)error -//{ -// NSData *salted; -// NSData *encryptionKeySalt; -// -// [fromStream open]; -// -// if (![fromStream _RNGetData:&salted maxLength:[kSaltedString length] error:error] || -// ![fromStream _RNGetData:&encryptionKeySalt maxLength:kSaltSize error:error]) { -// return NO; -// } -// -// if (![[[NSString alloc] initWithData:salted encoding:NSUTF8StringEncoding] isEqualToString:kSaltedString]) { -// if (error) { -// *error = [NSError errorWithDomain:kRNCryptorErrorDomain code:kRNCryptorUnknownHeader -// userInfo:[NSDictionary dictionaryWithObject:NSLocalizedString(@"Could not find salt", @"Could not find salt") forKey:NSLocalizedDescriptionKey]]; -// } -// return NO; -// } -// -// NSData *encryptionKey = [self keyForPassword:password salt:encryptionKeySalt]; -// NSData *IV = [self IVForKey:encryptionKey password:password salt:encryptionKeySalt]; -// -// RNCryptor *cryptor = [[RNCryptor alloc] initWithSettings:kRNCryptorOpenSSLSettings]; -// -// return [cryptor performOperation:kCCDecrypt fromStream:fromStream readCallback:nil toStream:toStream writeCallback:nil encryptionKey:encryptionKey IV:IV footerSize:0 footer:nil error:error]; -//} -// -// -//- (BOOL)encryptFromStream:(NSInputStream *)fromStream toStream:(NSOutputStream *)toStream password:(NSString *)password error:(NSError **)error -//{ -// NSData *encryptionKeySalt = [RNCryptor randomDataOfLength:kSaltSize]; -// NSData *encryptionKey = [self keyForPassword:password salt:encryptionKeySalt]; -// NSData *IV = [self IVForKey:encryptionKey password:password salt:encryptionKeySalt]; -// -// [toStream open]; -// NSData *headerData = [kSaltedString dataUsingEncoding:NSUTF8StringEncoding]; -// if (![toStream _RNWriteData:headerData error:error] || -// ![toStream _RNWriteData:encryptionKeySalt error:error] -// ) { -// return NO; -// } -// -// RNCryptor *cryptor = [[RNCryptor alloc] initWithSettings:kRNCryptorOpenSSLSettings]; -// return [cryptor performOperation:kCCEncrypt fromStream:fromStream readCallback:nil toStream:toStream writeCallback:nil encryptionKey:encryptionKey IV:IV footerSize:0 footer:nil error:error]; -//} -//@end diff --git a/EX2Kit/Dependencies/RNCryptor/RNOpenSSLDecryptor.h b/EX2Kit/Dependencies/RNCryptor/RNOpenSSLDecryptor.h deleted file mode 100644 index 09ec065..0000000 --- a/EX2Kit/Dependencies/RNCryptor/RNOpenSSLDecryptor.h +++ /dev/null @@ -1,43 +0,0 @@ -// -// RNOpenSSLDecryptor -// -// Copyright (c) 2012 Rob Napier -// -// This code is licensed under the MIT License: -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the "Software"), -// to deal in the Software without restriction, including without limitation -// the rights to use, copy, modify, merge, publish, distribute, sublicense, -// and/or sell copies of the Software, and to permit persons to whom the -// Software is furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -// DEALINGS IN THE SOFTWARE. -// - -#import -#import "RNDecryptor.h" - -@interface RNOpenSSLDecryptor : RNDecryptor -- (RNDecryptor *)initWithSettings:(RNCryptorSettings)settings - password:(NSString *)password - handler:(RNCryptorHandler)handler; - -- (RNDecryptor *)initWithSettings:(RNCryptorSettings)theSettings - encryptionKey:(NSData *)anEncryptionKey - IV:(NSData *)anIV - handler:(RNCryptorHandler)aHandler; - -+ (NSData *)decryptData:(NSData *)data withSettings:(RNCryptorSettings)settings password:(NSString *)password error:(NSError **)error; -+ (NSData *)decryptData:(NSData *)data withSettings:(RNCryptorSettings)settings encryptionKey:(NSData *)encryptionKey IV:(NSData *)IV error:(NSError **)error; - -@end \ No newline at end of file diff --git a/EX2Kit/Dependencies/RNCryptor/RNOpenSSLDecryptor.m b/EX2Kit/Dependencies/RNCryptor/RNOpenSSLDecryptor.m deleted file mode 100644 index 0c6b68e..0000000 --- a/EX2Kit/Dependencies/RNCryptor/RNOpenSSLDecryptor.m +++ /dev/null @@ -1,158 +0,0 @@ -// -// RNOpenSSLDecryptor -// -// Copyright (c) 2012 Rob Napier -// -// This code is licensed under the MIT License: -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the "Software"), -// to deal in the Software without restriction, including without limitation -// the rights to use, copy, modify, merge, publish, distribute, sublicense, -// and/or sell copies of the Software, and to permit persons to whom the -// Software is furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -// DEALINGS IN THE SOFTWARE. -// - - -#import "RNOpenSSLDecryptor.h" -#import "RNCryptor+Private.h" -#import "RNCryptorEngine.h" -#import "RNOpenSSLCryptor.h" - -@interface RNDecryptor (Private) -@property (nonatomic, readwrite, strong) NSMutableData *inData; -@property (nonatomic, readwrite, copy) NSData *encryptionKey; -@property (nonatomic, readwrite, copy) NSData *HMACKey; -@property (nonatomic, readwrite, copy) NSString *password; -@end - -@interface RNOpenSSLDecryptor () -@property (nonatomic, readwrite, assign) RNCryptorSettings settings; -@property (nonatomic, readwrite, copy) NSString *password; -@end - -@implementation RNOpenSSLDecryptor -@synthesize password = _password; -@synthesize settings = _settings; - -+ (NSData *)decryptData:(NSData *)data withSettings:(RNCryptorSettings)settings password:(NSString *)password error:(NSError **)error -{ - RNDecryptor *cryptor = [[self alloc] initWithSettings:settings password:password handler:^(RNCryptor *c, NSData *d) {}]; - return [self synchronousResultForCryptor:cryptor data:data error:error]; -} - -+ (NSData *)decryptData:(NSData *)data withSettings:(RNCryptorSettings)settings encryptionKey:(NSData *)encryptionKey IV:(NSData *)IV error:(NSError **)error -{ - RNDecryptor *cryptor = [[self alloc] initWithSettings:settings encryptionKey:encryptionKey IV:IV handler:^(RNCryptor *c, NSData *d) {}]; - return [self synchronousResultForCryptor:cryptor data:data error:error]; -} - -- (RNDecryptor *)initWithSettings:(RNCryptorSettings)theSettings encryptionKey:(NSData *)anEncryptionKey IV:(NSData *)anIV handler:(RNCryptorHandler)aHandler -{ - NSParameterAssert(anEncryptionKey != nil); - - self = [super initWithHandler:aHandler]; - if (self) { - NSError *error = nil; - self.engine = [[RNCryptorEngine alloc] initWithOperation:kCCDecrypt - settings:theSettings - key:anEncryptionKey - IV:anIV - error:&error]; - if (!self.engine) { - [self cleanupAndNotifyWithError:error]; - self = nil; - return nil; - } - self.HMACLength = 0; - self.settings = theSettings; - } - - return self; -} - -- (RNDecryptor *)initWithSettings:(RNCryptorSettings)theSettings password:(NSString *)aPassword handler:(RNCryptorHandler)aHandler -{ - NSParameterAssert(aPassword != nil); - - self = [super initWithHandler:aHandler]; - if (self) { - self.HMACLength = 0; - self.password = aPassword; - self.settings = theSettings; - } - - return self; -} - -- (RNDecryptor *)initWithEncryptionKey:(NSData *)encryptionKey - HMACKey:(NSData *)HMACKey - handler:(RNCryptorHandler)handler -{ - NSAssert(NO, @"%s -- Cannot be used in OpenSSL mode. An IV or password is required", __func__); - return nil; -} - -- (RNDecryptor *)initWithPassword:(NSString *)password - handler:(RNCryptorHandler)handler -{ - NSAssert(NO, @"%s -- Cannot be used in OpenSSL mode. Settings are required", __func__); - return nil; -} - -+ (NSData *)decryptData:(NSData *)data withPassword:(NSString *)password error:(NSError **)error -{ - NSAssert(NO, @"%s -- Cannot be used in OpenSSL mode. Settings are required", __func__); - return nil; - -} - -+ (NSData *)decryptData:(NSData *)data withEncryptionKey:(NSData *)encryptionKey HMACKey:(NSData *)HMACKey error:(NSError **)error -{ - NSAssert(NO, @"%s -- Cannot be used in OpenSSL mode. Settings are required", __func__); - return nil; -} - -- (void)consumeHeaderFromData:(NSMutableData *)data -{ - RNCryptorSettings settings = self.settings; - if (data.length < [kRNCryptorOpenSSLSaltedString length] + settings.keySettings.saltSize) { - return; - } - - NSString *saltedPrefix = [[NSString alloc] initWithData:[data _RNConsumeToIndex:[kRNCryptorOpenSSLSaltedString length]] encoding:NSUTF8StringEncoding]; - if (![kRNCryptorOpenSSLSaltedString isEqualToString:saltedPrefix]) { - [self cleanupAndNotifyWithError:[NSError errorWithDomain:kRNCryptorErrorDomain - code:kRNCryptorUnknownHeader - userInfo:[NSDictionary dictionaryWithObject:@"Unknown header" /* DNL */ - forKey:NSLocalizedDescriptionKey]]]; - } - - NSData *salt = [data _RNConsumeToIndex:settings.keySettings.saltSize]; - NSData *key = RNOpenSSLCryptorGetKey(self.password, salt, settings.keySettings); - NSData *IV = RNOpenSSLCryptorGetIV(key, self.password, salt, settings.keySettings); - NSError *error = nil; - - self.engine = [[RNCryptorEngine alloc] initWithOperation:kCCDecrypt - settings:settings - key:key - IV:IV - error:&error]; - if (!self.engine) { - [self cleanupAndNotifyWithError:error]; - return; - } -} - -@end \ No newline at end of file diff --git a/EX2Kit/Dependencies/RNCryptor/RNOpenSSLEncryptor.h b/EX2Kit/Dependencies/RNCryptor/RNOpenSSLEncryptor.h deleted file mode 100644 index f938691..0000000 --- a/EX2Kit/Dependencies/RNCryptor/RNOpenSSLEncryptor.h +++ /dev/null @@ -1,33 +0,0 @@ -// -// RNOpenSSLEncryptor -// -// Copyright (c) 2012 Rob Napier -// -// This code is licensed under the MIT License: -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the "Software"), -// to deal in the Software without restriction, including without limitation -// the rights to use, copy, modify, merge, publish, distribute, sublicense, -// and/or sell copies of the Software, and to permit persons to whom the -// Software is furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -// DEALINGS IN THE SOFTWARE. -// - -#import -#import "RNEncryptor.h" - -@interface RNOpenSSLEncryptor : RNEncryptor -+ (NSData *)encryptData:(NSData *)data withSettings:(RNCryptorSettings)settings encryptionKey:(NSData *)encryptionKey IV:(NSData *)IV error:(NSError **)error; -- (RNEncryptor *)initWithSettings:(RNCryptorSettings)theSettings encryptionKey:(NSData *)anEncryptionKey IV:(NSData *)anIV handler:(RNCryptorHandler)aHandler; -@end \ No newline at end of file diff --git a/EX2Kit/Dependencies/RNCryptor/RNOpenSSLEncryptor.m b/EX2Kit/Dependencies/RNCryptor/RNOpenSSLEncryptor.m deleted file mode 100644 index e81f321..0000000 --- a/EX2Kit/Dependencies/RNCryptor/RNOpenSSLEncryptor.m +++ /dev/null @@ -1,122 +0,0 @@ -// -// RNOpenSSLEncryptor -// -// Copyright (c) 2012 Rob Napier -// -// This code is licensed under the MIT License: -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the "Software"), -// to deal in the Software without restriction, including without limitation -// the rights to use, copy, modify, merge, publish, distribute, sublicense, -// and/or sell copies of the Software, and to permit persons to whom the -// Software is furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -// DEALINGS IN THE SOFTWARE. -// - -// For aes-128: -// -// key = MD5(password + salt) -// IV = MD5(Key + password + salt) - -// -// For aes-256: -// -// Hash0 = '' -// Hash1 = MD5(Hash0 + Password + Salt) -// Hash2 = MD5(Hash1 + Password + Salt) -// Hash3 = MD5(Hash2 + Password + Salt) -// Hash4 = MD5(Hash3 + Password + Salt) -// -// Key = Hash1 + Hash2 -// IV = Hash3 + Hash4 -// - -// File Format: -// -// |Salted___||| - -#import "RNOpenSSLEncryptor.h" -#import "RNCryptor+Private.h" -#import "RNCryptorEngine.h" -#import "RNOpenSSLCryptor.h" - -@interface RNOpenSSLEncryptor () -@property (nonatomic, readwrite, strong) NSData *encryptionSalt; -@end - -@implementation RNOpenSSLEncryptor -@synthesize encryptionSalt = _encryptionSalt; - -+ (NSData *)encryptData:(NSData *)data withSettings:(RNCryptorSettings)settings encryptionKey:(NSData *)encryptionKey IV:(NSData *)IV error:(NSError **)error -{ - RNEncryptor *cryptor = [[self alloc] initWithSettings:settings encryptionKey:encryptionKey IV:IV handler:^(RNCryptor *c, NSData *d) {}]; - return [self synchronousResultForCryptor:cryptor data:data error:error]; -} - -- (RNEncryptor *)initWithSettings:(RNCryptorSettings)settings encryptionKey:(NSData *)encryptionKey HMACKey:(NSData *)HMACKey handler:(RNCryptorHandler)handler -{ - NSAssert(NO, @"%s -- Cannot be used in OpenSSL mode. An IV or password is required", __func__); - return nil; -} - -- (RNEncryptor *)initWithSettings:(RNCryptorSettings)theSettings encryptionKey:(NSData *)anEncryptionKey IV:(NSData *)anIV handler:(RNCryptorHandler)aHandler -{ - self = [super initWithHandler:aHandler]; - if (self) { - NSError *error = nil; - self.engine = [[RNCryptorEngine alloc] initWithOperation:kCCEncrypt - settings:theSettings - key:anEncryptionKey - IV:anIV - error:&error]; - if (!self.engine) { - [self cleanupAndNotifyWithError:error]; - self = nil; - return nil; - } - self.HMACLength = 0; - } - - return self; -} - -- (RNEncryptor *)initWithSettings:(RNCryptorSettings)theSettings password:(NSString *)aPassword handler:(RNCryptorHandler)aHandler -{ - NSParameterAssert(aPassword != nil); - - NSData *encryptionSalt = [[self class] randomDataOfLength:theSettings.keySettings.saltSize]; - NSData *encryptionKey = RNOpenSSLCryptorGetKey(aPassword, encryptionSalt, theSettings.keySettings); - NSData *IV = RNOpenSSLCryptorGetIV(encryptionKey, aPassword, encryptionSalt, theSettings.keySettings); - self = [self initWithSettings:theSettings - encryptionKey:encryptionKey - IV:IV - handler:aHandler]; - if (self) { - self.options |= kRNCryptorOptionHasPassword; - self.encryptionSalt = encryptionSalt; - } - return self; -} - -- (NSData *)header -{ - NSMutableData *headerData = [NSMutableData data]; - if (kRNCryptorOptionHasPassword == (self.options & kRNCryptorOptionHasPassword)) { - [headerData appendData:[kRNCryptorOpenSSLSaltedString dataUsingEncoding:NSUTF8StringEncoding]]; - [headerData appendData:self.encryptionSalt]; - } - return headerData; -} - -@end \ No newline at end of file diff --git a/EX2Kit/UIComponents/EX2SlidingNotification.m b/EX2Kit/UIComponents/EX2SlidingNotification.m index d774575..3343684 100644 --- a/EX2Kit/UIComponents/EX2SlidingNotification.m +++ b/EX2Kit/UIComponents/EX2SlidingNotification.m @@ -30,7 +30,35 @@ + (void)setMainWindow:(UIWindow *)mainWindow + (UIWindow *)mainWindow { - return _mainWindow ? _mainWindow : [[UIApplication sharedApplication] keyWindow]; + if (_mainWindow) + return _mainWindow; + + for (UIScene *scene in [UIApplication sharedApplication].connectedScenes) + { + if (![scene isKindOfClass:UIWindowScene.class]) + continue; + + UIWindowScene *windowScene = (UIWindowScene *)scene; + if (windowScene.activationState != UISceneActivationStateForegroundActive && + windowScene.activationState != UISceneActivationStateForegroundInactive) + continue; + + for (UIWindow *window in windowScene.windows) + { + if (window.isKeyWindow) + return window; + } + + if (windowScene.windows.count > 0) + return windowScene.windows.firstObject; + } + + return nil; +} + ++ (CGFloat)statusBarHeight +{ + return [self mainWindow].windowScene.statusBarManager.statusBarFrame.size.height; } static __strong NSMutableArray *_activeMessages = nil; @@ -198,7 +226,7 @@ - (BOOL)showSlidingNotification // Set the start position self.view.y = -self.view.height; if (self.view.superview == [self.class mainWindow]) - self.view.y += [[UIApplication sharedApplication] statusBarFrame].size.height; + self.view.y += [self.class statusBarHeight]; //DLog(@"current frame: %@", NSStringFromCGRect(self.view.frame)); [UIView animateWithDuration:ANIMATION_DELAY animations:^(void) @@ -206,7 +234,7 @@ - (BOOL)showSlidingNotification // If we're directly on the UIWindow then add the status bar height CGFloat y = 0.; if (self.view.superview == [self.class mainWindow] && !IS_IOS7()) - y = [[UIApplication sharedApplication] statusBarFrame].size.height; + y = [self.class statusBarHeight]; self.view.y = y; diff --git a/Project/EX2Kit.xcodeproj/project.pbxproj b/Project/EX2Kit.xcodeproj/project.pbxproj index fababc4..5d7a81e 100644 --- a/Project/EX2Kit.xcodeproj/project.pbxproj +++ b/Project/EX2Kit.xcodeproj/project.pbxproj @@ -51,12 +51,8 @@ 18D45B281C8F100800A025CC /* RNCryptorEngine.m in Sources */ = {isa = PBXBuildFile; fileRef = 53F884F716BB855A00372A2D /* RNCryptorEngine.m */; }; 18D45B291C8F100800A025CC /* RNDecryptor.m in Sources */ = {isa = PBXBuildFile; fileRef = 53F884F916BB855A00372A2D /* RNDecryptor.m */; }; 18D45B2A1C8F100800A025CC /* RNEncryptor.m in Sources */ = {isa = PBXBuildFile; fileRef = 53F884FB16BB855A00372A2D /* RNEncryptor.m */; }; - 18D45B2B1C8F100800A025CC /* RNOpenSSLCryptor.m in Sources */ = {isa = PBXBuildFile; fileRef = 53F884FD16BB855A00372A2D /* RNOpenSSLCryptor.m */; }; - 18D45B2C1C8F100800A025CC /* RNOpenSSLDecryptor.m in Sources */ = {isa = PBXBuildFile; fileRef = 53F884FF16BB855A00372A2D /* RNOpenSSLDecryptor.m */; }; 18D45B2D1C8F100800A025CC /* NSOrderedSet+FirstObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 530F684D17B23CF600FD5FB1 /* NSOrderedSet+FirstObject.m */; }; - 18D45B2E1C8F100800A025CC /* RNOpenSSLEncryptor.m in Sources */ = {isa = PBXBuildFile; fileRef = 53F8850116BB855B00372A2D /* RNOpenSSLEncryptor.m */; }; 18D45B2F1C8F100800A025CC /* RNCryptorOld.m in Sources */ = {isa = PBXBuildFile; fileRef = 53F8851E16BB8EF900372A2D /* RNCryptorOld.m */; }; - 18D45B321C8F100800A025CC /* NSData+Hash.m in Sources */ = {isa = PBXBuildFile; fileRef = 5380B5C2170667F90010AED2 /* NSData+Hash.m */; }; 18D45B331C8F100800A025CC /* NSMutableOrderedSet+Safe.m in Sources */ = {isa = PBXBuildFile; fileRef = 530F684717B23C0E00FD5FB1 /* NSMutableOrderedSet+Safe.m */; }; 18D45B371C8F100800A025CC /* NSNumber+CleanString.m in Sources */ = {isa = PBXBuildFile; fileRef = 537CBC97173DDE61001989CE /* NSNumber+CleanString.m */; }; 18D45B381C8F100800A025CC /* NSNull+CleanString.m in Sources */ = {isa = PBXBuildFile; fileRef = 537CBC9B173DDF75001989CE /* NSNull+CleanString.m */; }; @@ -110,11 +106,7 @@ 18D45B9E1C8F100800A025CC /* RNDecryptor.h in Headers */ = {isa = PBXBuildFile; fileRef = 53F884F816BB855A00372A2D /* RNDecryptor.h */; }; 18D45B9F1C8F100800A025CC /* NSMutableOrderedSet+Safe.h in Headers */ = {isa = PBXBuildFile; fileRef = 530F684617B23C0E00FD5FB1 /* NSMutableOrderedSet+Safe.h */; }; 18D45BA01C8F100800A025CC /* RNEncryptor.h in Headers */ = {isa = PBXBuildFile; fileRef = 53F884FA16BB855A00372A2D /* RNEncryptor.h */; }; - 18D45BA11C8F100800A025CC /* RNOpenSSLCryptor.h in Headers */ = {isa = PBXBuildFile; fileRef = 53F884FC16BB855A00372A2D /* RNOpenSSLCryptor.h */; }; - 18D45BA21C8F100800A025CC /* RNOpenSSLDecryptor.h in Headers */ = {isa = PBXBuildFile; fileRef = 53F884FE16BB855A00372A2D /* RNOpenSSLDecryptor.h */; }; - 18D45BA31C8F100800A025CC /* RNOpenSSLEncryptor.h in Headers */ = {isa = PBXBuildFile; fileRef = 53F8850016BB855B00372A2D /* RNOpenSSLEncryptor.h */; }; 18D45BA41C8F100800A025CC /* RNCryptorOld.h in Headers */ = {isa = PBXBuildFile; fileRef = 53F8851D16BB8EF900372A2D /* RNCryptorOld.h */; }; - 18D45BA81C8F100800A025CC /* NSData+Hash.h in Headers */ = {isa = PBXBuildFile; fileRef = 5380B5C1170667F90010AED2 /* NSData+Hash.h */; }; 18D45BAC1C8F100800A025CC /* NSNumber+CleanString.h in Headers */ = {isa = PBXBuildFile; fileRef = 537CBC96173DDE61001989CE /* NSNumber+CleanString.h */; }; 18D45BAD1C8F100800A025CC /* NSNull+CleanString.h in Headers */ = {isa = PBXBuildFile; fileRef = 537CBC9A173DDF75001989CE /* NSNull+CleanString.h */; }; 18D45BAE1C8F100800A025CC /* NSObject+UserInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 53293F1A17418ADF007211CB /* NSObject+UserInfo.h */; }; @@ -206,10 +198,6 @@ 530F685117B23CF600FD5FB1 /* NSOrderedSet+FirstObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 530F684D17B23CF600FD5FB1 /* NSOrderedSet+FirstObject.m */; }; 53145C17163F5E6400DE22F1 /* NSURL+QueryParameterDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = 53145C15163F5E6400DE22F1 /* NSURL+QueryParameterDictionary.h */; settings = {ATTRIBUTES = (Public, ); }; }; 53145C18163F5E6400DE22F1 /* NSURL+QueryParameterDictionary.m in Sources */ = {isa = PBXBuildFile; fileRef = 53145C16163F5E6400DE22F1 /* NSURL+QueryParameterDictionary.m */; }; - 531F4F4017062C3300D7F8B0 /* NSFileHandle+Hash.h in Headers */ = {isa = PBXBuildFile; fileRef = 531F4F3E17062C3300D7F8B0 /* NSFileHandle+Hash.h */; }; - 531F4F4117062C3300D7F8B0 /* NSFileHandle+Hash.h in Headers */ = {isa = PBXBuildFile; fileRef = 531F4F3E17062C3300D7F8B0 /* NSFileHandle+Hash.h */; }; - 531F4F4217062C3300D7F8B0 /* NSFileHandle+Hash.m in Sources */ = {isa = PBXBuildFile; fileRef = 531F4F3F17062C3300D7F8B0 /* NSFileHandle+Hash.m */; }; - 531F4F4317062C3300D7F8B0 /* NSFileHandle+Hash.m in Sources */ = {isa = PBXBuildFile; fileRef = 531F4F3F17062C3300D7F8B0 /* NSFileHandle+Hash.m */; }; 53293F1C17418ADF007211CB /* NSObject+UserInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 53293F1A17418ADF007211CB /* NSObject+UserInfo.h */; }; 53293F1D17418ADF007211CB /* NSObject+UserInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 53293F1A17418ADF007211CB /* NSObject+UserInfo.h */; }; 53293F1E17418ADF007211CB /* NSObject+UserInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 53293F1B17418ADF007211CB /* NSObject+UserInfo.m */; }; @@ -268,7 +256,6 @@ 5373A95D162DD7430016A019 /* EX2Components.h in Headers */ = {isa = PBXBuildFile; fileRef = 53F15F4C162B9FCA00C24FC1 /* EX2Components.h */; settings = {ATTRIBUTES = (Public, ); }; }; 5373A95E162DD7430016A019 /* EX2FileDecryptor.h in Headers */ = {isa = PBXBuildFile; fileRef = 53F15F4D162B9FCA00C24FC1 /* EX2FileDecryptor.h */; settings = {ATTRIBUTES = (Public, ); }; }; 5373A95F162DD7430016A019 /* EX2FileEncryptor.h in Headers */ = {isa = PBXBuildFile; fileRef = 53F15F4F162B9FCA00C24FC1 /* EX2FileEncryptor.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 5373A960162DD7430016A019 /* EX2NetworkIndicator.h in Headers */ = {isa = PBXBuildFile; fileRef = 53F15F51162B9FCA00C24FC1 /* EX2NetworkIndicator.h */; settings = {ATTRIBUTES = (Public, ); }; }; 5373A961162DD7430016A019 /* EX2Reachability.h in Headers */ = {isa = PBXBuildFile; fileRef = 53F15F53162B9FCA00C24FC1 /* EX2Reachability.h */; settings = {ATTRIBUTES = (Public, ); }; }; 5373A962162DD7430016A019 /* EX2RingBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 53F15F55162B9FCA00C24FC1 /* EX2RingBuffer.h */; settings = {ATTRIBUTES = (Public, ); }; }; 5373A963162DD7430016A019 /* EX2SimpleConnectionQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = 53F15F57162B9FCA00C24FC1 /* EX2SimpleConnectionQueue.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -281,10 +268,6 @@ 537CBC99173DDE61001989CE /* NSNumber+CleanString.m in Sources */ = {isa = PBXBuildFile; fileRef = 537CBC97173DDE61001989CE /* NSNumber+CleanString.m */; }; 537CBC9C173DDF76001989CE /* NSNull+CleanString.h in Headers */ = {isa = PBXBuildFile; fileRef = 537CBC9A173DDF75001989CE /* NSNull+CleanString.h */; }; 537CBC9D173DDF76001989CE /* NSNull+CleanString.m in Sources */ = {isa = PBXBuildFile; fileRef = 537CBC9B173DDF75001989CE /* NSNull+CleanString.m */; }; - 5380B5C3170667F90010AED2 /* NSData+Hash.h in Headers */ = {isa = PBXBuildFile; fileRef = 5380B5C1170667F90010AED2 /* NSData+Hash.h */; }; - 5380B5C4170667F90010AED2 /* NSData+Hash.h in Headers */ = {isa = PBXBuildFile; fileRef = 5380B5C1170667F90010AED2 /* NSData+Hash.h */; }; - 5380B5C5170667F90010AED2 /* NSData+Hash.m in Sources */ = {isa = PBXBuildFile; fileRef = 5380B5C2170667F90010AED2 /* NSData+Hash.m */; }; - 5380B5C6170667F90010AED2 /* NSData+Hash.m in Sources */ = {isa = PBXBuildFile; fileRef = 5380B5C2170667F90010AED2 /* NSData+Hash.m */; }; 539DC3FC17D649FF001FE630 /* UIImageView+ImageAnimated.h in Headers */ = {isa = PBXBuildFile; fileRef = 539DC3FA17D649FF001FE630 /* UIImageView+ImageAnimated.h */; }; 539DC3FD17D649FF001FE630 /* UIImageView+ImageAnimated.m in Sources */ = {isa = PBXBuildFile; fileRef = 539DC3FB17D649FF001FE630 /* UIImageView+ImageAnimated.m */; }; 53A1C30817EB88980039DA81 /* UIImage+Color.h in Headers */ = {isa = PBXBuildFile; fileRef = 53A1C30617EB88980039DA81 /* UIImage+Color.h */; }; @@ -322,7 +305,6 @@ 53F15FAA162B9FCA00C24FC1 /* UIViewController+IsVisible.m in Sources */ = {isa = PBXBuildFile; fileRef = 53F15F4A162B9FCA00C24FC1 /* UIViewController+IsVisible.m */; }; 53F15FAB162B9FCA00C24FC1 /* EX2FileDecryptor.m in Sources */ = {isa = PBXBuildFile; fileRef = 53F15F4E162B9FCA00C24FC1 /* EX2FileDecryptor.m */; }; 53F15FAC162B9FCA00C24FC1 /* EX2FileEncryptor.m in Sources */ = {isa = PBXBuildFile; fileRef = 53F15F50162B9FCA00C24FC1 /* EX2FileEncryptor.m */; }; - 53F15FAD162B9FCA00C24FC1 /* EX2NetworkIndicator.m in Sources */ = {isa = PBXBuildFile; fileRef = 53F15F52162B9FCA00C24FC1 /* EX2NetworkIndicator.m */; }; 53F15FAE162B9FCA00C24FC1 /* EX2Reachability.m in Sources */ = {isa = PBXBuildFile; fileRef = 53F15F54162B9FCA00C24FC1 /* EX2Reachability.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; }; 53F15FAF162B9FCA00C24FC1 /* EX2RingBuffer.m in Sources */ = {isa = PBXBuildFile; fileRef = 53F15F56162B9FCA00C24FC1 /* EX2RingBuffer.m */; }; 53F15FB0162B9FCA00C24FC1 /* EX2SimpleConnectionQueue.m in Sources */ = {isa = PBXBuildFile; fileRef = 53F15F58162B9FCA00C24FC1 /* EX2SimpleConnectionQueue.m */; }; @@ -340,15 +322,6 @@ 53F8850C16BB855B00372A2D /* RNEncryptor.h in Headers */ = {isa = PBXBuildFile; fileRef = 53F884FA16BB855A00372A2D /* RNEncryptor.h */; }; 53F8850D16BB855B00372A2D /* RNEncryptor.h in Headers */ = {isa = PBXBuildFile; fileRef = 53F884FA16BB855A00372A2D /* RNEncryptor.h */; }; 53F8850E16BB855B00372A2D /* RNEncryptor.m in Sources */ = {isa = PBXBuildFile; fileRef = 53F884FB16BB855A00372A2D /* RNEncryptor.m */; }; - 53F8851016BB855B00372A2D /* RNOpenSSLCryptor.h in Headers */ = {isa = PBXBuildFile; fileRef = 53F884FC16BB855A00372A2D /* RNOpenSSLCryptor.h */; }; - 53F8851116BB855B00372A2D /* RNOpenSSLCryptor.h in Headers */ = {isa = PBXBuildFile; fileRef = 53F884FC16BB855A00372A2D /* RNOpenSSLCryptor.h */; }; - 53F8851216BB855B00372A2D /* RNOpenSSLCryptor.m in Sources */ = {isa = PBXBuildFile; fileRef = 53F884FD16BB855A00372A2D /* RNOpenSSLCryptor.m */; }; - 53F8851416BB855B00372A2D /* RNOpenSSLDecryptor.h in Headers */ = {isa = PBXBuildFile; fileRef = 53F884FE16BB855A00372A2D /* RNOpenSSLDecryptor.h */; }; - 53F8851516BB855B00372A2D /* RNOpenSSLDecryptor.h in Headers */ = {isa = PBXBuildFile; fileRef = 53F884FE16BB855A00372A2D /* RNOpenSSLDecryptor.h */; }; - 53F8851616BB855B00372A2D /* RNOpenSSLDecryptor.m in Sources */ = {isa = PBXBuildFile; fileRef = 53F884FF16BB855A00372A2D /* RNOpenSSLDecryptor.m */; }; - 53F8851816BB855B00372A2D /* RNOpenSSLEncryptor.h in Headers */ = {isa = PBXBuildFile; fileRef = 53F8850016BB855B00372A2D /* RNOpenSSLEncryptor.h */; }; - 53F8851916BB855B00372A2D /* RNOpenSSLEncryptor.h in Headers */ = {isa = PBXBuildFile; fileRef = 53F8850016BB855B00372A2D /* RNOpenSSLEncryptor.h */; }; - 53F8851A16BB855B00372A2D /* RNOpenSSLEncryptor.m in Sources */ = {isa = PBXBuildFile; fileRef = 53F8850116BB855B00372A2D /* RNOpenSSLEncryptor.m */; }; 53F8851F16BB8EF900372A2D /* RNCryptorOld.h in Headers */ = {isa = PBXBuildFile; fileRef = 53F8851D16BB8EF900372A2D /* RNCryptorOld.h */; }; 53F8852016BB8EF900372A2D /* RNCryptorOld.m in Sources */ = {isa = PBXBuildFile; fileRef = 53F8851E16BB8EF900372A2D /* RNCryptorOld.m */; }; 9901CC58212D8C1D0080B171 /* NSArray+CleanString.h in Headers */ = {isa = PBXBuildFile; fileRef = 9901CC56212D8C1D0080B171 /* NSArray+CleanString.h */; }; @@ -384,13 +357,8 @@ ECF069EF20077D8E008CBA54 /* RNCryptorEngine.m in Sources */ = {isa = PBXBuildFile; fileRef = 53F884F716BB855A00372A2D /* RNCryptorEngine.m */; }; ECF069F020077D8E008CBA54 /* RNDecryptor.m in Sources */ = {isa = PBXBuildFile; fileRef = 53F884F916BB855A00372A2D /* RNDecryptor.m */; }; ECF069F120077D8E008CBA54 /* RNEncryptor.m in Sources */ = {isa = PBXBuildFile; fileRef = 53F884FB16BB855A00372A2D /* RNEncryptor.m */; }; - ECF069F220077D8E008CBA54 /* RNOpenSSLCryptor.m in Sources */ = {isa = PBXBuildFile; fileRef = 53F884FD16BB855A00372A2D /* RNOpenSSLCryptor.m */; }; - ECF069F320077D8E008CBA54 /* RNOpenSSLDecryptor.m in Sources */ = {isa = PBXBuildFile; fileRef = 53F884FF16BB855A00372A2D /* RNOpenSSLDecryptor.m */; }; ECF069F420077D8E008CBA54 /* NSOrderedSet+FirstObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 530F684D17B23CF600FD5FB1 /* NSOrderedSet+FirstObject.m */; }; - ECF069F520077D8E008CBA54 /* RNOpenSSLEncryptor.m in Sources */ = {isa = PBXBuildFile; fileRef = 53F8850116BB855B00372A2D /* RNOpenSSLEncryptor.m */; }; ECF069F620077D8E008CBA54 /* RNCryptorOld.m in Sources */ = {isa = PBXBuildFile; fileRef = 53F8851E16BB8EF900372A2D /* RNCryptorOld.m */; }; - ECF069F820077D8E008CBA54 /* NSFileHandle+Hash.m in Sources */ = {isa = PBXBuildFile; fileRef = 531F4F3F17062C3300D7F8B0 /* NSFileHandle+Hash.m */; }; - ECF069F920077D8E008CBA54 /* NSData+Hash.m in Sources */ = {isa = PBXBuildFile; fileRef = 5380B5C2170667F90010AED2 /* NSData+Hash.m */; }; ECF069FA20077D8E008CBA54 /* NSMutableOrderedSet+Safe.m in Sources */ = {isa = PBXBuildFile; fileRef = 530F684717B23C0E00FD5FB1 /* NSMutableOrderedSet+Safe.m */; }; ECF069FE20077D8E008CBA54 /* NSNumber+CleanString.m in Sources */ = {isa = PBXBuildFile; fileRef = 537CBC97173DDE61001989CE /* NSNumber+CleanString.m */; }; ECF069FF20077D8E008CBA54 /* NSNull+CleanString.m in Sources */ = {isa = PBXBuildFile; fileRef = 537CBC9B173DDF75001989CE /* NSNull+CleanString.m */; }; @@ -404,7 +372,6 @@ ECF06A1220077D8E008CBA54 /* EX2Components.h in Headers */ = {isa = PBXBuildFile; fileRef = 53F15F4C162B9FCA00C24FC1 /* EX2Components.h */; settings = {ATTRIBUTES = (Public, ); }; }; ECF06A1320077D8E008CBA54 /* EX2FileDecryptor.h in Headers */ = {isa = PBXBuildFile; fileRef = 53F15F4D162B9FCA00C24FC1 /* EX2FileDecryptor.h */; settings = {ATTRIBUTES = (Public, ); }; }; ECF06A1420077D8E008CBA54 /* EX2FileEncryptor.h in Headers */ = {isa = PBXBuildFile; fileRef = 53F15F4F162B9FCA00C24FC1 /* EX2FileEncryptor.h */; settings = {ATTRIBUTES = (Public, ); }; }; - ECF06A1520077D8E008CBA54 /* EX2NetworkIndicator.h in Headers */ = {isa = PBXBuildFile; fileRef = 53F15F51162B9FCA00C24FC1 /* EX2NetworkIndicator.h */; settings = {ATTRIBUTES = (Public, ); }; }; ECF06A1720077D8E008CBA54 /* EX2RingBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 53F15F55162B9FCA00C24FC1 /* EX2RingBuffer.h */; settings = {ATTRIBUTES = (Public, ); }; }; ECF06A1820077D8E008CBA54 /* EX2SimpleConnectionQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = 53F15F57162B9FCA00C24FC1 /* EX2SimpleConnectionQueue.h */; settings = {ATTRIBUTES = (Public, ); }; }; ECF06A1920077D8E008CBA54 /* EX2Macros.h in Headers */ = {isa = PBXBuildFile; fileRef = 53F15F73162B9FCA00C24FC1 /* EX2Macros.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -445,12 +412,7 @@ ECF06A6420077D8E008CBA54 /* RNDecryptor.h in Headers */ = {isa = PBXBuildFile; fileRef = 53F884F816BB855A00372A2D /* RNDecryptor.h */; }; ECF06A6520077D8E008CBA54 /* NSMutableOrderedSet+Safe.h in Headers */ = {isa = PBXBuildFile; fileRef = 530F684617B23C0E00FD5FB1 /* NSMutableOrderedSet+Safe.h */; }; ECF06A6620077D8E008CBA54 /* RNEncryptor.h in Headers */ = {isa = PBXBuildFile; fileRef = 53F884FA16BB855A00372A2D /* RNEncryptor.h */; }; - ECF06A6720077D8E008CBA54 /* RNOpenSSLCryptor.h in Headers */ = {isa = PBXBuildFile; fileRef = 53F884FC16BB855A00372A2D /* RNOpenSSLCryptor.h */; }; - ECF06A6820077D8E008CBA54 /* RNOpenSSLDecryptor.h in Headers */ = {isa = PBXBuildFile; fileRef = 53F884FE16BB855A00372A2D /* RNOpenSSLDecryptor.h */; }; - ECF06A6920077D8E008CBA54 /* RNOpenSSLEncryptor.h in Headers */ = {isa = PBXBuildFile; fileRef = 53F8850016BB855B00372A2D /* RNOpenSSLEncryptor.h */; }; ECF06A6A20077D8E008CBA54 /* RNCryptorOld.h in Headers */ = {isa = PBXBuildFile; fileRef = 53F8851D16BB8EF900372A2D /* RNCryptorOld.h */; }; - ECF06A6D20077D8E008CBA54 /* NSFileHandle+Hash.h in Headers */ = {isa = PBXBuildFile; fileRef = 531F4F3E17062C3300D7F8B0 /* NSFileHandle+Hash.h */; }; - ECF06A6E20077D8E008CBA54 /* NSData+Hash.h in Headers */ = {isa = PBXBuildFile; fileRef = 5380B5C1170667F90010AED2 /* NSData+Hash.h */; }; ECF06A7220077D8E008CBA54 /* NSNumber+CleanString.h in Headers */ = {isa = PBXBuildFile; fileRef = 537CBC96173DDE61001989CE /* NSNumber+CleanString.h */; }; ECF06A7320077D8E008CBA54 /* NSNull+CleanString.h in Headers */ = {isa = PBXBuildFile; fileRef = 537CBC9A173DDF75001989CE /* NSNull+CleanString.h */; }; ECF06A7420077D8E008CBA54 /* NSObject+UserInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 53293F1A17418ADF007211CB /* NSObject+UserInfo.h */; }; @@ -519,8 +481,6 @@ 530F684D17B23CF600FD5FB1 /* NSOrderedSet+FirstObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSOrderedSet+FirstObject.m"; sourceTree = ""; }; 53145C15163F5E6400DE22F1 /* NSURL+QueryParameterDictionary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSURL+QueryParameterDictionary.h"; sourceTree = ""; }; 53145C16163F5E6400DE22F1 /* NSURL+QueryParameterDictionary.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSURL+QueryParameterDictionary.m"; sourceTree = ""; }; - 531F4F3E17062C3300D7F8B0 /* NSFileHandle+Hash.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSFileHandle+Hash.h"; sourceTree = ""; }; - 531F4F3F17062C3300D7F8B0 /* NSFileHandle+Hash.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSFileHandle+Hash.m"; sourceTree = ""; }; 53293F1A17418ADF007211CB /* NSObject+UserInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSObject+UserInfo.h"; sourceTree = ""; }; 53293F1B17418ADF007211CB /* NSObject+UserInfo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSObject+UserInfo.m"; sourceTree = ""; }; 5339E1801635E93A007628C0 /* NSString+HasValue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSString+HasValue.h"; sourceTree = ""; }; @@ -541,8 +501,6 @@ 537CBC97173DDE61001989CE /* NSNumber+CleanString.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSNumber+CleanString.m"; sourceTree = ""; }; 537CBC9A173DDF75001989CE /* NSNull+CleanString.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSNull+CleanString.h"; sourceTree = ""; }; 537CBC9B173DDF75001989CE /* NSNull+CleanString.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSNull+CleanString.m"; sourceTree = ""; }; - 5380B5C1170667F90010AED2 /* NSData+Hash.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSData+Hash.h"; sourceTree = ""; }; - 5380B5C2170667F90010AED2 /* NSData+Hash.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSData+Hash.m"; sourceTree = ""; }; 539DC3FA17D649FF001FE630 /* UIImageView+ImageAnimated.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIImageView+ImageAnimated.h"; sourceTree = ""; }; 539DC3FB17D649FF001FE630 /* UIImageView+ImageAnimated.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIImageView+ImageAnimated.m"; sourceTree = ""; }; 53A1C30617EB88980039DA81 /* UIImage+Color.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIImage+Color.h"; sourceTree = ""; }; @@ -621,8 +579,6 @@ 53F15F4E162B9FCA00C24FC1 /* EX2FileDecryptor.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = EX2FileDecryptor.m; sourceTree = ""; }; 53F15F4F162B9FCA00C24FC1 /* EX2FileEncryptor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EX2FileEncryptor.h; sourceTree = ""; }; 53F15F50162B9FCA00C24FC1 /* EX2FileEncryptor.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = EX2FileEncryptor.m; sourceTree = ""; }; - 53F15F51162B9FCA00C24FC1 /* EX2NetworkIndicator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EX2NetworkIndicator.h; sourceTree = ""; }; - 53F15F52162B9FCA00C24FC1 /* EX2NetworkIndicator.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = EX2NetworkIndicator.m; sourceTree = ""; }; 53F15F53162B9FCA00C24FC1 /* EX2Reachability.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EX2Reachability.h; sourceTree = ""; }; 53F15F54162B9FCA00C24FC1 /* EX2Reachability.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = EX2Reachability.m; sourceTree = ""; }; 53F15F55162B9FCA00C24FC1 /* EX2RingBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EX2RingBuffer.h; sourceTree = ""; }; @@ -645,12 +601,6 @@ 53F884F916BB855A00372A2D /* RNDecryptor.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RNDecryptor.m; sourceTree = ""; }; 53F884FA16BB855A00372A2D /* RNEncryptor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RNEncryptor.h; sourceTree = ""; }; 53F884FB16BB855A00372A2D /* RNEncryptor.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RNEncryptor.m; sourceTree = ""; }; - 53F884FC16BB855A00372A2D /* RNOpenSSLCryptor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RNOpenSSLCryptor.h; sourceTree = ""; }; - 53F884FD16BB855A00372A2D /* RNOpenSSLCryptor.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RNOpenSSLCryptor.m; sourceTree = ""; }; - 53F884FE16BB855A00372A2D /* RNOpenSSLDecryptor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RNOpenSSLDecryptor.h; sourceTree = ""; }; - 53F884FF16BB855A00372A2D /* RNOpenSSLDecryptor.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RNOpenSSLDecryptor.m; sourceTree = ""; }; - 53F8850016BB855B00372A2D /* RNOpenSSLEncryptor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RNOpenSSLEncryptor.h; sourceTree = ""; }; - 53F8850116BB855B00372A2D /* RNOpenSSLEncryptor.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RNOpenSSLEncryptor.m; sourceTree = ""; }; 53F8851D16BB8EF900372A2D /* RNCryptorOld.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RNCryptorOld.h; path = RNCryptor/RNCryptorOld.h; sourceTree = ""; }; 53F8851E16BB8EF900372A2D /* RNCryptorOld.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = RNCryptorOld.m; path = RNCryptor/RNCryptorOld.m; sourceTree = ""; }; 9901CC56212D8C1D0080B171 /* NSArray+CleanString.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "NSArray+CleanString.h"; sourceTree = ""; }; @@ -805,12 +755,6 @@ 53F884F916BB855A00372A2D /* RNDecryptor.m */, 53F884FA16BB855A00372A2D /* RNEncryptor.h */, 53F884FB16BB855A00372A2D /* RNEncryptor.m */, - 53F884FC16BB855A00372A2D /* RNOpenSSLCryptor.h */, - 53F884FD16BB855A00372A2D /* RNOpenSSLCryptor.m */, - 53F884FE16BB855A00372A2D /* RNOpenSSLDecryptor.h */, - 53F884FF16BB855A00372A2D /* RNOpenSSLDecryptor.m */, - 53F8850016BB855B00372A2D /* RNOpenSSLEncryptor.h */, - 53F8850116BB855B00372A2D /* RNOpenSSLEncryptor.m */, ); path = RNCryptor; sourceTree = ""; @@ -877,10 +821,6 @@ 53F15F10162B9FCA00C24FC1 /* NSString */, 533B3E52165D8FE000ECD75F /* NSURL+SkipBackupAttribute.h */, 533B3E53165D8FE000ECD75F /* NSURL+SkipBackupAttribute.m */, - 531F4F3E17062C3300D7F8B0 /* NSFileHandle+Hash.h */, - 531F4F3F17062C3300D7F8B0 /* NSFileHandle+Hash.m */, - 5380B5C1170667F90010AED2 /* NSData+Hash.h */, - 5380B5C2170667F90010AED2 /* NSData+Hash.m */, 537CBC96173DDE61001989CE /* NSNumber+CleanString.h */, 537CBC97173DDE61001989CE /* NSNumber+CleanString.m */, 537CBC9A173DDF75001989CE /* NSNull+CleanString.h */, @@ -996,8 +936,6 @@ 53F15F4E162B9FCA00C24FC1 /* EX2FileDecryptor.m */, 53F15F4F162B9FCA00C24FC1 /* EX2FileEncryptor.h */, 53F15F50162B9FCA00C24FC1 /* EX2FileEncryptor.m */, - 53F15F51162B9FCA00C24FC1 /* EX2NetworkIndicator.h */, - 53F15F52162B9FCA00C24FC1 /* EX2NetworkIndicator.m */, 53F15F53162B9FCA00C24FC1 /* EX2Reachability.h */, 53F15F54162B9FCA00C24FC1 /* EX2Reachability.m */, 53F15F55162B9FCA00C24FC1 /* EX2RingBuffer.h */, @@ -1115,11 +1053,7 @@ 18D45B9E1C8F100800A025CC /* RNDecryptor.h in Headers */, 18D45B9F1C8F100800A025CC /* NSMutableOrderedSet+Safe.h in Headers */, 18D45BA01C8F100800A025CC /* RNEncryptor.h in Headers */, - 18D45BA11C8F100800A025CC /* RNOpenSSLCryptor.h in Headers */, - 18D45BA21C8F100800A025CC /* RNOpenSSLDecryptor.h in Headers */, - 18D45BA31C8F100800A025CC /* RNOpenSSLEncryptor.h in Headers */, 18D45BA41C8F100800A025CC /* RNCryptorOld.h in Headers */, - 18D45BA81C8F100800A025CC /* NSData+Hash.h in Headers */, 18D45BAC1C8F100800A025CC /* NSNumber+CleanString.h in Headers */, 18D45BAD1C8F100800A025CC /* NSNull+CleanString.h in Headers */, 18D45BAE1C8F100800A025CC /* NSObject+UserInfo.h in Headers */, @@ -1172,12 +1106,7 @@ 53F8850516BB855B00372A2D /* RNCryptorEngine.h in Headers */, 53F8850916BB855B00372A2D /* RNDecryptor.h in Headers */, 53F8850D16BB855B00372A2D /* RNEncryptor.h in Headers */, - 53F8851116BB855B00372A2D /* RNOpenSSLCryptor.h in Headers */, - 53F8851516BB855B00372A2D /* RNOpenSSLDecryptor.h in Headers */, - 53F8851916BB855B00372A2D /* RNOpenSSLEncryptor.h in Headers */, 530F684917B23C0E00FD5FB1 /* NSMutableOrderedSet+Safe.h in Headers */, - 531F4F4117062C3300D7F8B0 /* NSFileHandle+Hash.h in Headers */, - 5380B5C4170667F90010AED2 /* NSData+Hash.h in Headers */, 53293F1D17418ADF007211CB /* NSObject+UserInfo.h in Headers */, 530F684317B23BF800FD5FB1 /* NSOrderedSet+Safe.h in Headers */, 533DA5C1174EAC080064A3E1 /* EX2ActionQueue.h in Headers */, @@ -1195,7 +1124,6 @@ 5373A95D162DD7430016A019 /* EX2Components.h in Headers */, 5373A95E162DD7430016A019 /* EX2FileDecryptor.h in Headers */, 5373A95F162DD7430016A019 /* EX2FileEncryptor.h in Headers */, - 5373A960162DD7430016A019 /* EX2NetworkIndicator.h in Headers */, 5373A961162DD7430016A019 /* EX2Reachability.h in Headers */, 5373A962162DD7430016A019 /* EX2RingBuffer.h in Headers */, 5373A963162DD7430016A019 /* EX2SimpleConnectionQueue.h in Headers */, @@ -1250,14 +1178,9 @@ 53F8850816BB855B00372A2D /* RNDecryptor.h in Headers */, 530F684817B23C0E00FD5FB1 /* NSMutableOrderedSet+Safe.h in Headers */, 53F8850C16BB855B00372A2D /* RNEncryptor.h in Headers */, - 53F8851016BB855B00372A2D /* RNOpenSSLCryptor.h in Headers */, - 53F8851416BB855B00372A2D /* RNOpenSSLDecryptor.h in Headers */, - 53F8851816BB855B00372A2D /* RNOpenSSLEncryptor.h in Headers */, 53F8851F16BB8EF900372A2D /* RNCryptorOld.h in Headers */, 18A45BE22048685A003CE1D6 /* EX2ANGLogger.h in Headers */, FC488817182C880A00356DE7 /* UIViewController+Tools.h in Headers */, - 531F4F4017062C3300D7F8B0 /* NSFileHandle+Hash.h in Headers */, - 5380B5C3170667F90010AED2 /* NSData+Hash.h in Headers */, 537CBC98173DDE61001989CE /* NSNumber+CleanString.h in Headers */, 537CBC9C173DDF76001989CE /* NSNull+CleanString.h in Headers */, 53293F1C17418ADF007211CB /* NSObject+UserInfo.h in Headers */, @@ -1279,7 +1202,6 @@ ECF06A1220077D8E008CBA54 /* EX2Components.h in Headers */, ECF06A1320077D8E008CBA54 /* EX2FileDecryptor.h in Headers */, ECF06A1420077D8E008CBA54 /* EX2FileEncryptor.h in Headers */, - ECF06A1520077D8E008CBA54 /* EX2NetworkIndicator.h in Headers */, ECF06A1720077D8E008CBA54 /* EX2RingBuffer.h in Headers */, ECF06A1820077D8E008CBA54 /* EX2SimpleConnectionQueue.h in Headers */, ECF06A1920077D8E008CBA54 /* EX2Macros.h in Headers */, @@ -1320,12 +1242,7 @@ ECF06A6420077D8E008CBA54 /* RNDecryptor.h in Headers */, ECF06A6520077D8E008CBA54 /* NSMutableOrderedSet+Safe.h in Headers */, ECF06A6620077D8E008CBA54 /* RNEncryptor.h in Headers */, - ECF06A6720077D8E008CBA54 /* RNOpenSSLCryptor.h in Headers */, - ECF06A6820077D8E008CBA54 /* RNOpenSSLDecryptor.h in Headers */, - ECF06A6920077D8E008CBA54 /* RNOpenSSLEncryptor.h in Headers */, ECF06A6A20077D8E008CBA54 /* RNCryptorOld.h in Headers */, - ECF06A6D20077D8E008CBA54 /* NSFileHandle+Hash.h in Headers */, - ECF06A6E20077D8E008CBA54 /* NSData+Hash.h in Headers */, ECF06A7220077D8E008CBA54 /* NSNumber+CleanString.h in Headers */, ECF06A7320077D8E008CBA54 /* NSNull+CleanString.h in Headers */, ECF06A7420077D8E008CBA54 /* NSObject+UserInfo.h in Headers */, @@ -1529,13 +1446,9 @@ 18D45B281C8F100800A025CC /* RNCryptorEngine.m in Sources */, 18D45B291C8F100800A025CC /* RNDecryptor.m in Sources */, 18D45B2A1C8F100800A025CC /* RNEncryptor.m in Sources */, - 18D45B2B1C8F100800A025CC /* RNOpenSSLCryptor.m in Sources */, 18252E061CD8926100350A67 /* UIView+Tools.m in Sources */, - 18D45B2C1C8F100800A025CC /* RNOpenSSLDecryptor.m in Sources */, 18D45B2D1C8F100800A025CC /* NSOrderedSet+FirstObject.m in Sources */, - 18D45B2E1C8F100800A025CC /* RNOpenSSLEncryptor.m in Sources */, 18D45B2F1C8F100800A025CC /* RNCryptorOld.m in Sources */, - 18D45B321C8F100800A025CC /* NSData+Hash.m in Sources */, 18D45B331C8F100800A025CC /* NSMutableOrderedSet+Safe.m in Sources */, 18D45B371C8F100800A025CC /* NSNumber+CleanString.m in Sources */, 18D45B381C8F100800A025CC /* NSNull+CleanString.m in Sources */, @@ -1578,8 +1491,6 @@ 5304A246169018D2009B2732 /* EX2RingBuffer.m in Sources */, 5304A247169018D2009B2732 /* EX2SimpleConnectionQueue.m in Sources */, 5304A248169018D2009B2732 /* EX2Dispatch.m in Sources */, - 531F4F4317062C3300D7F8B0 /* NSFileHandle+Hash.m in Sources */, - 5380B5C6170667F90010AED2 /* NSData+Hash.m in Sources */, 53293F1F17418ADF007211CB /* NSObject+UserInfo.m in Sources */, 533DA5C3174EAC080064A3E1 /* EX2ActionQueue.m in Sources */, 533DA5CC174EAD570064A3E1 /* EX2ActionBlock.m in Sources */, @@ -1621,7 +1532,6 @@ 9901CC59212D8C1D0080B171 /* NSArray+CleanString.m in Sources */, 53F15FAB162B9FCA00C24FC1 /* EX2FileDecryptor.m in Sources */, 53F15FAC162B9FCA00C24FC1 /* EX2FileEncryptor.m in Sources */, - 53F15FAD162B9FCA00C24FC1 /* EX2NetworkIndicator.m in Sources */, 53F15FAE162B9FCA00C24FC1 /* EX2Reachability.m in Sources */, 53F15FAF162B9FCA00C24FC1 /* EX2RingBuffer.m in Sources */, 53F15FB0162B9FCA00C24FC1 /* EX2SimpleConnectionQueue.m in Sources */, @@ -1637,13 +1547,8 @@ 196928BA25EFA2BE00AB7C7F /* UIImage+Tint.m in Sources */, 53F8850A16BB855B00372A2D /* RNDecryptor.m in Sources */, 53F8850E16BB855B00372A2D /* RNEncryptor.m in Sources */, - 53F8851216BB855B00372A2D /* RNOpenSSLCryptor.m in Sources */, - 53F8851616BB855B00372A2D /* RNOpenSSLDecryptor.m in Sources */, 530F685017B23CF600FD5FB1 /* NSOrderedSet+FirstObject.m in Sources */, - 53F8851A16BB855B00372A2D /* RNOpenSSLEncryptor.m in Sources */, 53F8852016BB8EF900372A2D /* RNCryptorOld.m in Sources */, - 531F4F4217062C3300D7F8B0 /* NSFileHandle+Hash.m in Sources */, - 5380B5C5170667F90010AED2 /* NSData+Hash.m in Sources */, 530F684A17B23C0E00FD5FB1 /* NSMutableOrderedSet+Safe.m in Sources */, 537CBC99173DDE61001989CE /* NSNumber+CleanString.m in Sources */, 537CBC9D173DDF76001989CE /* NSNull+CleanString.m in Sources */, @@ -1702,14 +1607,9 @@ ECF069EF20077D8E008CBA54 /* RNCryptorEngine.m in Sources */, ECF069F020077D8E008CBA54 /* RNDecryptor.m in Sources */, ECF069F120077D8E008CBA54 /* RNEncryptor.m in Sources */, - ECF069F220077D8E008CBA54 /* RNOpenSSLCryptor.m in Sources */, - ECF069F320077D8E008CBA54 /* RNOpenSSLDecryptor.m in Sources */, 185DBF5D2049B85F001A27AD /* EX2ANGLogger.m in Sources */, ECF069F420077D8E008CBA54 /* NSOrderedSet+FirstObject.m in Sources */, - ECF069F520077D8E008CBA54 /* RNOpenSSLEncryptor.m in Sources */, ECF069F620077D8E008CBA54 /* RNCryptorOld.m in Sources */, - ECF069F820077D8E008CBA54 /* NSFileHandle+Hash.m in Sources */, - ECF069F920077D8E008CBA54 /* NSData+Hash.m in Sources */, ECF069FA20077D8E008CBA54 /* NSMutableOrderedSet+Safe.m in Sources */, ECF069FE20077D8E008CBA54 /* NSNumber+CleanString.m in Sources */, ECF069FF20077D8E008CBA54 /* NSNull+CleanString.m in Sources */, @@ -2015,7 +1915,7 @@ "\"$(SRCROOT)\"/**", "\"$(PROJECT_DIR)\"/**", ); - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 15.0; OTHER_LDFLAGS = "-ObjC"; PRODUCT_NAME = "$(TARGET_NAME)"; PUBLIC_HEADERS_FOLDER_PATH = "include/$(TARGET_NAME)"; @@ -2045,7 +1945,7 @@ "\"$(SRCROOT)\"/**", "\"$(PROJECT_DIR)\"/**", ); - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 15.0; OTHER_LDFLAGS = "-ObjC"; PRODUCT_NAME = "$(TARGET_NAME)"; PUBLIC_HEADERS_FOLDER_PATH = "include/$(TARGET_NAME)"; @@ -2070,7 +1970,7 @@ GCC_WARN_64_TO_32_BIT_CONVERSION = YES; INFOPLIST_FILE = "EX2KitResources/EX2KitResources-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Bundles"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 15.0; MACOSX_DEPLOYMENT_TARGET = 10.8; ONLY_ACTIVE_ARCH = NO; PRODUCT_BUNDLE_IDENTIFIER = "com.einsteinx2.${PRODUCT_NAME:rfc1034identifier}"; @@ -2098,7 +1998,7 @@ GCC_WARN_64_TO_32_BIT_CONVERSION = YES; INFOPLIST_FILE = "EX2KitResources/EX2KitResources-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Bundles"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 15.0; MACOSX_DEPLOYMENT_TARGET = 10.8; PRODUCT_BUNDLE_IDENTIFIER = "com.einsteinx2.${PRODUCT_NAME:rfc1034identifier}"; PRODUCT_NAME = "$(TARGET_NAME)";