From 9b94580daef8b29837e6fa5e5b0e2dabc5dd17ec Mon Sep 17 00:00:00 2001 From: Matthew Chen Date: Tue, 28 Aug 2018 15:22:47 -0400 Subject: [PATCH 1/3] Update assertions. * Streamline precompiled headers. * Remove obsolete assertions in Constraints.h. --- Podfile.lock | 18 ++++---- Signal.xcodeproj/project.pbxproj | 6 --- Signal/Signal-Prefix.pch | 3 -- Signal/src/AppDelegate.m | 1 + Signal/test/util/ExceptionsTest.m | 44 ------------------ SignalMessaging/SignalMessaging-Prefix.pch | 4 -- .../SharingThreadPickerViewController.m | 1 - SignalMessaging/categories/UIView+OWS.m | 1 + .../categories/UIViewController+OWS.m | 3 +- SignalMessaging/contacts/OWSContactsManager.m | 1 + .../Attachments/OWSAttachmentsProcessor.m | 1 + .../src/Messages/Attachments/TSAttachment.m | 1 + .../src/Messages/OWSMessageSender.m | 1 + .../src/Network/API/OWSUploadOperation.m | 1 + SignalServiceKit/src/TSPrefix.h | 24 ---------- SignalServiceKit/src/Util/Cryptography.m | 8 ++-- SignalServiceKit/src/Util/DataSource.m | 1 + SignalServiceKit/src/Util/NSString+SSK.m | 1 + SignalServiceKit/src/Util/OWSLogger.h | 2 + .../src/Util/constraints/BadArgument.h | 8 ---- .../src/Util/constraints/BadArgument.m | 10 ----- .../src/Util/constraints/BadState.h | 7 --- .../src/Util/constraints/BadState.m | 11 ----- .../src/Util/constraints/Constraints.h | 45 ------------------- .../src/Util/constraints/OperationFailed.h | 8 ---- .../src/Util/constraints/OperationFailed.m | 14 ------ .../SignalShareExtension-Prefix.pch | 3 -- 27 files changed, 28 insertions(+), 200 deletions(-) delete mode 100644 Signal/test/util/ExceptionsTest.m delete mode 100755 SignalServiceKit/src/Util/constraints/BadArgument.h delete mode 100755 SignalServiceKit/src/Util/constraints/BadArgument.m delete mode 100755 SignalServiceKit/src/Util/constraints/BadState.h delete mode 100755 SignalServiceKit/src/Util/constraints/BadState.m delete mode 100755 SignalServiceKit/src/Util/constraints/Constraints.h delete mode 100755 SignalServiceKit/src/Util/constraints/OperationFailed.h delete mode 100755 SignalServiceKit/src/Util/constraints/OperationFailed.m diff --git a/Podfile.lock b/Podfile.lock index a4f52ea81..47dc24e4a 100644 --- a/Podfile.lock +++ b/Podfile.lock @@ -25,9 +25,11 @@ PODS: - CocoaLumberjack/Default (3.4.2) - CocoaLumberjack/Extensions (3.4.2): - CocoaLumberjack/Default - - Curve25519Kit (2.1.0) + - Curve25519Kit (2.1.0): + - CocoaLumberjack - GRKOpenSSLFramework (1.0.2.12) - - HKDFKit (0.0.4) + - HKDFKit (0.0.4): + - CocoaLumberjack - libPhoneNumber-iOS (0.9.13) - Mantle (2.1.0): - Mantle/extobjc (= 2.1.0) @@ -202,16 +204,16 @@ EXTERNAL SOURCES: CHECKOUT OPTIONS: AxolotlKit: - :commit: 0c9dc8cc0f02fd616fa8e5a4f4184e452de93f1e + :commit: c058f3bdf4e11f378d3232b0031526c7611c20e0 :git: https://github.com/signalapp/SignalProtocolKit.git Curve25519Kit: - :commit: ced146699622ebd3d282bbfce3d492db4456e9aa + :commit: 14bfa06578b6f68aa1ee09ecc9e16ad751e0ebd2 :git: https://github.com/signalapp/Curve25519Kit GRKOpenSSLFramework: :commit: b799c27e7927e5304ec1e4ad53c6d33c6fd1cae7 :git: https://github.com/signalapp/GRKOpenSSLFramework HKDFKit: - :commit: 780f980b8ff3c4a24baf19088162f13605c0b272 + :commit: f6e051a765e0bc819fee72f9b7d18acee33a8b37 :git: https://github.com/signalapp/HKDFKit.git SocketRocket: :commit: 9f9563a83cd8960503074aa8de72206f83fb7a69 @@ -225,11 +227,11 @@ CHECKOUT OPTIONS: SPEC CHECKSUMS: AFNetworking: b6f891fdfaed196b46c7a83cf209e09697b94057 - AxolotlKit: 07bd978ea931d113939de88d3d2d354896680ceb + AxolotlKit: 3a8d57041c5b162425cc40773ea6276c0c838c9d CocoaLumberjack: db7cc9e464771f12054c22ff6947c5a58d43a0fd - Curve25519Kit: 76d0859ecb34704f7732847812363f83b23a6a59 + Curve25519Kit: d4741ff66e7d92b70316e72476ea1f91495ab51b GRKOpenSSLFramework: 8a3735ad41e7dc1daff460467bccd32ca5d6ae3e - HKDFKit: 3fb424060aaf69795bc8ab34c4c233b98dc6303b + HKDFKit: 0445c3158e15137c845bee690a59755ac4360469 libPhoneNumber-iOS: e444379ac18bbfbdefad571da735b2cd7e096caa Mantle: 2fa750afa478cd625a94230fbf1c13462f29395b PromiseKit: 743e497a5f505a470d3bbbf4ce0663c1268af0a4 diff --git a/Signal.xcodeproj/project.pbxproj b/Signal.xcodeproj/project.pbxproj index 1228928e8..1f9726ff7 100644 --- a/Signal.xcodeproj/project.pbxproj +++ b/Signal.xcodeproj/project.pbxproj @@ -490,7 +490,6 @@ B660F6BB1C29868000687D6E /* OWSContactsManagerTest.m in Sources */ = {isa = PBXBuildFile; fileRef = B660F6761C29867F00687D6E /* OWSContactsManagerTest.m */; }; B660F6D21C29868000687D6E /* PushManagerTest.m in Sources */ = {isa = PBXBuildFile; fileRef = B660F69C1C29868000687D6E /* PushManagerTest.m */; }; B660F6D41C29868000687D6E /* whisperFake.cer in Resources */ = {isa = PBXBuildFile; fileRef = B660F69F1C29868000687D6E /* whisperFake.cer */; }; - B660F6DA1C29868000687D6E /* ExceptionsTest.m in Sources */ = {isa = PBXBuildFile; fileRef = B660F6AB1C29868000687D6E /* ExceptionsTest.m */; }; B660F6DB1C29868000687D6E /* FunctionalUtilTest.m in Sources */ = {isa = PBXBuildFile; fileRef = B660F6AD1C29868000687D6E /* FunctionalUtilTest.m */; }; B660F6E01C29868000687D6E /* UtilTest.m in Sources */ = {isa = PBXBuildFile; fileRef = B660F6B41C29868000687D6E /* UtilTest.m */; }; B660F7561C29988E00687D6E /* PushManager.m in Sources */ = {isa = PBXBuildFile; fileRef = B6B9ECFB198B31BA00C620D3 /* PushManager.m */; }; @@ -1197,8 +1196,6 @@ B660F69E1C29868000687D6E /* SignalTests-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "SignalTests-Info.plist"; sourceTree = ""; }; B660F69F1C29868000687D6E /* whisperFake.cer */ = {isa = PBXFileReference; lastKnownFileType = file; path = whisperFake.cer; sourceTree = ""; }; B660F6A01C29868000687D6E /* TestUtil.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TestUtil.h; sourceTree = ""; }; - B660F6AA1C29868000687D6E /* ExceptionsTest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ExceptionsTest.h; sourceTree = ""; }; - B660F6AB1C29868000687D6E /* ExceptionsTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ExceptionsTest.m; sourceTree = ""; }; B660F6AC1C29868000687D6E /* FunctionalUtilTest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FunctionalUtilTest.h; sourceTree = ""; }; B660F6AD1C29868000687D6E /* FunctionalUtilTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FunctionalUtilTest.m; sourceTree = ""; }; B660F6B31C29868000687D6E /* UtilTest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UtilTest.h; sourceTree = ""; }; @@ -2368,8 +2365,6 @@ 3421981B21061D2E00C57195 /* ByteParserTest.swift */, 3491D9A021022DB7001EF5A1 /* CDSSigningCertificateTest.m */, 45E7A6A61E71CA7E00D44FB5 /* DisplayableTextFilterTest.swift */, - B660F6AA1C29868000687D6E /* ExceptionsTest.h */, - B660F6AB1C29868000687D6E /* ExceptionsTest.m */, B660F6AC1C29868000687D6E /* FunctionalUtilTest.h */, B660F6AD1C29868000687D6E /* FunctionalUtilTest.m */, 455AC69D1F4F8B0300134004 /* ImageCacheTest.swift */, @@ -3485,7 +3480,6 @@ 954AEE6A1DF33E01002E5410 /* ContactsPickerTest.swift in Sources */, 45666F581D9B2880008FE134 /* OWSScrubbingLogFormatterTest.m in Sources */, B660F6E01C29868000687D6E /* UtilTest.m in Sources */, - B660F6DA1C29868000687D6E /* ExceptionsTest.m in Sources */, 4C3EF7FD2107DDEE0007EBF7 /* ParamParserTest.swift in Sources */, B660F6DB1C29868000687D6E /* FunctionalUtilTest.m in Sources */, 45E7A6A81E71CA7E00D44FB5 /* DisplayableTextFilterTest.swift in Sources */, diff --git a/Signal/Signal-Prefix.pch b/Signal/Signal-Prefix.pch index bf34561b0..c52f07265 100644 --- a/Signal/Signal-Prefix.pch +++ b/Signal/Signal-Prefix.pch @@ -16,9 +16,6 @@ #endif #import - #import #import - #import - #import #import #endif diff --git a/Signal/src/AppDelegate.m b/Signal/src/AppDelegate.m index 03580eb71..00eea0299 100644 --- a/Signal/src/AppDelegate.m +++ b/Signal/src/AppDelegate.m @@ -49,6 +49,7 @@ #import #import #import +#import #import #import diff --git a/Signal/test/util/ExceptionsTest.m b/Signal/test/util/ExceptionsTest.m deleted file mode 100644 index ce6fc6ee3..000000000 --- a/Signal/test/util/ExceptionsTest.m +++ /dev/null @@ -1,44 +0,0 @@ -// -// Copyright (c) 2017 Open Whisper Systems. All rights reserved. -// - -#import "ExceptionsTest.h" -#import "TestUtil.h" - -@implementation ExceptionsTest - -- (void)testContracts { - ows_require(1 + 1 == 2); - @try { - ows_require(1 + 1 == 3); - XCTFail(@""); - } @catch (BadArgument *ex) { - test([[ex reason] hasPrefix:@"require 1 + 1 == 3"]); - } - - requireState(1 + 1 == 2); - @try { - requireState(1 + 1 == 3); - XCTFail(@""); - } @catch (BadState *ex) { - test([[ex reason] hasPrefix:@"required state: 1 + 1 == 3"]); - } - - checkOperationDescribe(1 + 1 == 2, @"addition."); - @try { - checkOperationDescribe(1 + 1 == 3, @"addition."); - XCTFail(@""); - } @catch (OperationFailed *ex) { - test([[ex reason] hasPrefix:@"Operation failed: addition. Expected: 1 + 1 == 3"]); - } - - checkOperation(1 + 1 == 2); - @try { - checkOperation(1 + 1 == 3); - XCTFail(@""); - } @catch (OperationFailed *ex) { - test([[ex reason] hasPrefix:@"Operation failed. Expected: 1 + 1 == 3"]); - } -} - -@end diff --git a/SignalMessaging/SignalMessaging-Prefix.pch b/SignalMessaging/SignalMessaging-Prefix.pch index 31f15e44a..c52f07265 100644 --- a/SignalMessaging/SignalMessaging-Prefix.pch +++ b/SignalMessaging/SignalMessaging-Prefix.pch @@ -16,10 +16,6 @@ #endif #import - #import #import - #import - #import #import - #import #endif diff --git a/SignalMessaging/ViewControllers/SharingThreadPickerViewController.m b/SignalMessaging/ViewControllers/SharingThreadPickerViewController.m index f810588e9..995c544ef 100644 --- a/SignalMessaging/ViewControllers/SharingThreadPickerViewController.m +++ b/SignalMessaging/ViewControllers/SharingThreadPickerViewController.m @@ -11,7 +11,6 @@ #import "UIFont+OWS.h" #import "UIView+OWS.h" #import -#import #import #import #import diff --git a/SignalMessaging/categories/UIView+OWS.m b/SignalMessaging/categories/UIView+OWS.m index de441a420..6d577001d 100644 --- a/SignalMessaging/categories/UIView+OWS.m +++ b/SignalMessaging/categories/UIView+OWS.m @@ -5,6 +5,7 @@ #import "UIView+OWS.h" #import "OWSMath.h" #import +#import NS_ASSUME_NONNULL_BEGIN diff --git a/SignalMessaging/categories/UIViewController+OWS.m b/SignalMessaging/categories/UIViewController+OWS.m index 33a8a1508..79d7bffea 100644 --- a/SignalMessaging/categories/UIViewController+OWS.m +++ b/SignalMessaging/categories/UIViewController+OWS.m @@ -2,10 +2,11 @@ // Copyright (c) 2018 Open Whisper Systems. All rights reserved. // +#import "UIViewController+OWS.h" #import "UIColor+OWS.h" #import "UIView+OWS.h" -#import "UIViewController+OWS.h" #import +#import NS_ASSUME_NONNULL_BEGIN diff --git a/SignalMessaging/contacts/OWSContactsManager.m b/SignalMessaging/contacts/OWSContactsManager.m index 3edef4428..133a8a2f8 100644 --- a/SignalMessaging/contacts/OWSContactsManager.m +++ b/SignalMessaging/contacts/OWSContactsManager.m @@ -19,6 +19,7 @@ #import #import #import +#import @import Contacts; diff --git a/SignalServiceKit/src/Messages/Attachments/OWSAttachmentsProcessor.m b/SignalServiceKit/src/Messages/Attachments/OWSAttachmentsProcessor.m index a88ec0003..aa483099b 100644 --- a/SignalServiceKit/src/Messages/Attachments/OWSAttachmentsProcessor.m +++ b/SignalServiceKit/src/Messages/Attachments/OWSAttachmentsProcessor.m @@ -8,6 +8,7 @@ #import "MIMETypeUtil.h" #import "NSNotificationCenter+OWS.h" #import "OWSBackgroundTask.h" +#import "OWSDispatch.h" #import "OWSError.h" #import "OWSPrimaryStorage.h" #import "OWSRequestFactory.h" diff --git a/SignalServiceKit/src/Messages/Attachments/TSAttachment.m b/SignalServiceKit/src/Messages/Attachments/TSAttachment.m index 48c7b3814..07774a440 100644 --- a/SignalServiceKit/src/Messages/Attachments/TSAttachment.m +++ b/SignalServiceKit/src/Messages/Attachments/TSAttachment.m @@ -5,6 +5,7 @@ #import "TSAttachment.h" #import "MIMETypeUtil.h" #import "NSString+SSK.h" +#import "iOSVersions.h" NS_ASSUME_NONNULL_BEGIN diff --git a/SignalServiceKit/src/Messages/OWSMessageSender.m b/SignalServiceKit/src/Messages/OWSMessageSender.m index 12871617a..8267d5ce0 100644 --- a/SignalServiceKit/src/Messages/OWSMessageSender.m +++ b/SignalServiceKit/src/Messages/OWSMessageSender.m @@ -13,6 +13,7 @@ #import "OWSContact.h" #import "OWSDevice.h" #import "OWSDisappearingMessagesJob.h" +#import "OWSDispatch.h" #import "OWSError.h" #import "OWSIdentityManager.h" #import "OWSMessageServiceParams.h" diff --git a/SignalServiceKit/src/Network/API/OWSUploadOperation.m b/SignalServiceKit/src/Network/API/OWSUploadOperation.m index 6210d4f5c..a6f7152bb 100644 --- a/SignalServiceKit/src/Network/API/OWSUploadOperation.m +++ b/SignalServiceKit/src/Network/API/OWSUploadOperation.m @@ -7,6 +7,7 @@ #import "MIMETypeUtil.h" #import "NSError+MessageSending.h" #import "NSNotificationCenter+OWS.h" +#import "OWSDispatch.h" #import "OWSError.h" #import "OWSOperation.h" #import "OWSRequestFactory.h" diff --git a/SignalServiceKit/src/TSPrefix.h b/SignalServiceKit/src/TSPrefix.h index b6229c025..c87b0f144 100644 --- a/SignalServiceKit/src/TSPrefix.h +++ b/SignalServiceKit/src/TSPrefix.h @@ -11,30 +11,6 @@ static const NSUInteger ddLogLevel = DDLogLevelAll; #else static const NSUInteger ddLogLevel = DDLogLevelInfo; #endif -#import "Constraints.h" #import "NSObject+OWS.h" #import "OWSAnalytics.h" #import "OWSAsserts.h" -#import "OWSDispatch.h" -#import "iOSVersions.h" - -#define BLOCK_SAFE_RUN(block, ...) \ - block ? dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), \ - ^{ \ - block(__VA_ARGS__); \ - }) \ - : nil -#define SYNC_BLOCK_SAFE_RUN(block, ...) block ? block(__VA_ARGS__) : nil - -#define MacrosSingletonImplemention \ - +(instancetype)sharedInstance { \ - static dispatch_once_t onceToken; \ - static id sharedInstance = nil; \ - dispatch_once(&onceToken, ^{ \ - sharedInstance = [self.class new]; \ - }); \ - \ - return sharedInstance; \ - } - -#define MacrosSingletonInterface +(instancetype)sharedInstance; diff --git a/SignalServiceKit/src/Util/Cryptography.m b/SignalServiceKit/src/Util/Cryptography.m index 2c6c0b239..54af4a3cb 100755 --- a/SignalServiceKit/src/Util/Cryptography.m +++ b/SignalServiceKit/src/Util/Cryptography.m @@ -178,7 +178,10 @@ const NSUInteger kAES256_KeyByteLength = 32; } uint32_t dataLength = (uint32_t)stringData.length; - NSMutableData *hashData = [NSMutableData dataWithLength:20]; + NSMutableData *_Nullable hashData = [NSMutableData dataWithLength:20]; + if (!hashData) { + OWSFail(@"Could not allocate buffer."); + } CC_SHA1(stringData.bytes, dataLength, hashData.mutableBytes); NSData *truncatedData = [hashData subdataWithRange:NSMakeRange(0, 10)]; @@ -532,8 +535,7 @@ const NSUInteger kAES256_KeyByteLength = 32; ows_add_overflow(paddedAttachmentData.length, kCCBlockSizeAES128, &bufferSize); NSMutableData *_Nullable bufferData = [NSMutableData dataWithLength:bufferSize]; if (!bufferData) { - OWSLogError(@"Failed to allocate buffer."); - return nil; + OWSFail(@"Failed to allocate buffer."); } size_t bytesEncrypted = 0; diff --git a/SignalServiceKit/src/Util/DataSource.m b/SignalServiceKit/src/Util/DataSource.m index 996bc79e8..0bfd6e57d 100755 --- a/SignalServiceKit/src/Util/DataSource.m +++ b/SignalServiceKit/src/Util/DataSource.m @@ -7,6 +7,7 @@ #import "NSData+Image.h" #import "NSString+SSK.h" #import "OWSFileSystem.h" +#import "iOSVersions.h" #import NS_ASSUME_NONNULL_BEGIN diff --git a/SignalServiceKit/src/Util/NSString+SSK.m b/SignalServiceKit/src/Util/NSString+SSK.m index 551816e8b..a384c0fae 100644 --- a/SignalServiceKit/src/Util/NSString+SSK.m +++ b/SignalServiceKit/src/Util/NSString+SSK.m @@ -3,6 +3,7 @@ // #import "NSString+SSK.h" +#import "iOSVersions.h" NS_ASSUME_NONNULL_BEGIN diff --git a/SignalServiceKit/src/Util/OWSLogger.h b/SignalServiceKit/src/Util/OWSLogger.h index 0b49607b6..c8525309f 100644 --- a/SignalServiceKit/src/Util/OWSLogger.h +++ b/SignalServiceKit/src/Util/OWSLogger.h @@ -2,6 +2,8 @@ // Copyright (c) 2018 Open Whisper Systems. All rights reserved. // +@import CocoaLumberjack; + NS_ASSUME_NONNULL_BEGIN static inline BOOL ShouldLogVerbose() diff --git a/SignalServiceKit/src/Util/constraints/BadArgument.h b/SignalServiceKit/src/Util/constraints/BadArgument.h deleted file mode 100755 index 88c17e24a..000000000 --- a/SignalServiceKit/src/Util/constraints/BadArgument.h +++ /dev/null @@ -1,8 +0,0 @@ -// -// Copyright (c) 2017 Open Whisper Systems. All rights reserved. -// - -@interface BadArgument : NSException -+(BadArgument*) new:(NSString*)reason; -+(void)raise:(NSString *)message; -@end diff --git a/SignalServiceKit/src/Util/constraints/BadArgument.m b/SignalServiceKit/src/Util/constraints/BadArgument.m deleted file mode 100755 index c142d065a..000000000 --- a/SignalServiceKit/src/Util/constraints/BadArgument.m +++ /dev/null @@ -1,10 +0,0 @@ -#import "BadArgument.h" - -@implementation BadArgument -+(BadArgument*) new:(NSString*)reason { - return [[BadArgument alloc] initWithName:@"Invalid Argument" reason:reason userInfo:nil]; -} -+(void)raise:(NSString *)message { - [BadArgument raise:@"Invalid Argument" format:@"%@", message]; -} -@end diff --git a/SignalServiceKit/src/Util/constraints/BadState.h b/SignalServiceKit/src/Util/constraints/BadState.h deleted file mode 100755 index 1306bd095..000000000 --- a/SignalServiceKit/src/Util/constraints/BadState.h +++ /dev/null @@ -1,7 +0,0 @@ -// -// Copyright (c) 2017 Open Whisper Systems. All rights reserved. -// - -@interface BadState : NSException -+(void)raise:(NSString *)message; -@end diff --git a/SignalServiceKit/src/Util/constraints/BadState.m b/SignalServiceKit/src/Util/constraints/BadState.m deleted file mode 100755 index a9ca6293e..000000000 --- a/SignalServiceKit/src/Util/constraints/BadState.m +++ /dev/null @@ -1,11 +0,0 @@ -// -// Copyright (c) 2017 Open Whisper Systems. All rights reserved. -// - -#import "BadState.h" - -@implementation BadState -+(void)raise:(NSString *)message { - [BadState raise:@"Invalid State" format:@"%@", message]; -} -@end diff --git a/SignalServiceKit/src/Util/constraints/Constraints.h b/SignalServiceKit/src/Util/constraints/Constraints.h deleted file mode 100755 index 2faa8dff8..000000000 --- a/SignalServiceKit/src/Util/constraints/Constraints.h +++ /dev/null @@ -1,45 +0,0 @@ -// -// Copyright (c) 2018 Open Whisper Systems. All rights reserved. -// - -#import "BadArgument.h" -#import "BadState.h" -#import "OperationFailed.h" -#import - -/// 'require(X)' is used to indicate parameter-related preconditions that callers must satisfy. -/// Failure to satisfy indicates a bug in the caller. -#define ows_require(expr) \ - if (!(expr)) { \ - NSString *reason = \ - [NSString stringWithFormat:@"require %@ (in %s at line %d)", (@ #expr), __FILE__, __LINE__]; \ - OWSLogError(@"%@", reason); \ - [BadArgument raise:reason]; \ - }; - -/// 'requireState(X)' is used to indicate callee-state-related preconditions that callers must satisfy. -/// Failure to satisfy indicates a stateful bug in either the caller or the callee. -#define requireState(expr) \ - if (!(expr)) \ - [BadState raise:[NSString stringWithFormat:@"required state: %@ (in %s at line %d)", (@ #expr), __FILE__, __LINE__]] - -/// 'checkOperation(X)' is used to throw exceptions if operations fail. -/// Failure does not indicate a bug. -/// Methods may throw these exceptions for callers to catch as a 'returned error' result. -#define checkOperation(expr) \ - if (!(expr)) { \ - NSString *reason = [NSString \ - stringWithFormat:@"Operation failed. Expected: %@(in %s at line %d)", (@ #expr), __FILE__, __LINE__]; \ - [OperationFailed raise:reason]; \ - } - -/// 'checkOperationDescribe(X, Desc)' is used to throw exceptions if operations fail, and describe the problem. -/// Failure does not indicate a bug. -/// Methods may throw these exceptions for callers to catch as a 'returned error' result. -#define checkOperationDescribe(expr, desc) \ - if (!(expr)) \ - [OperationFailed raise:[NSString stringWithFormat:@"Operation failed: %@ Expected: %@(in %s at line %d)", \ - (desc), \ - (@ #expr), \ - __FILE__, \ - __LINE__]] diff --git a/SignalServiceKit/src/Util/constraints/OperationFailed.h b/SignalServiceKit/src/Util/constraints/OperationFailed.h deleted file mode 100755 index 90e4a4af5..000000000 --- a/SignalServiceKit/src/Util/constraints/OperationFailed.h +++ /dev/null @@ -1,8 +0,0 @@ -// -// Copyright (c) 2017 Open Whisper Systems. All rights reserved. -// - -@interface OperationFailed : NSException -+(OperationFailed*) new:(NSString*)reason; -+(void)raise:(NSString *)message; -@end diff --git a/SignalServiceKit/src/Util/constraints/OperationFailed.m b/SignalServiceKit/src/Util/constraints/OperationFailed.m deleted file mode 100755 index dc1f187e6..000000000 --- a/SignalServiceKit/src/Util/constraints/OperationFailed.m +++ /dev/null @@ -1,14 +0,0 @@ -// -// Copyright (c) 2017 Open Whisper Systems. All rights reserved. -// - -#import "OperationFailed.h" - -@implementation OperationFailed -+(OperationFailed*) new:(NSString*)reason { - return [[OperationFailed alloc] initWithName:@"Operation failed" reason:reason userInfo:nil]; -} -+(void)raise:(NSString *)message { - [OperationFailed raise:@"Operation failed" format:@"%@", message]; -} -@end diff --git a/SignalShareExtension/SignalShareExtension-Prefix.pch b/SignalShareExtension/SignalShareExtension-Prefix.pch index bf34561b0..c52f07265 100644 --- a/SignalShareExtension/SignalShareExtension-Prefix.pch +++ b/SignalShareExtension/SignalShareExtension-Prefix.pch @@ -16,9 +16,6 @@ #endif #import - #import #import - #import - #import #import #endif From b00858921df4ad5ec0b3a0cc167b090bc9986051 Mon Sep 17 00:00:00 2001 From: Matthew Chen Date: Wed, 29 Aug 2018 16:26:08 -0400 Subject: [PATCH 2/3] Update Cocoapods. --- SignalServiceKit/src/Util/NSData+OWS.h | 7 ++----- SignalServiceKit/src/Util/NSData+OWS.m | 19 ------------------- 2 files changed, 2 insertions(+), 24 deletions(-) diff --git a/SignalServiceKit/src/Util/NSData+OWS.h b/SignalServiceKit/src/Util/NSData+OWS.h index 50ec714e0..afaa79d60 100644 --- a/SignalServiceKit/src/Util/NSData+OWS.h +++ b/SignalServiceKit/src/Util/NSData+OWS.h @@ -2,15 +2,12 @@ // Copyright (c) 2018 Open Whisper Systems. All rights reserved. // +#import + NS_ASSUME_NONNULL_BEGIN @interface NSData (OWS) -/** - * Compares data in constant time so as to help avoid potential timing attacks. - */ -- (BOOL)ows_constantTimeIsEqualToData:(NSData *)other; - - (NSData *)dataByAppendingData:(NSData *)data; - (NSString *)hexadecimalString; diff --git a/SignalServiceKit/src/Util/NSData+OWS.m b/SignalServiceKit/src/Util/NSData+OWS.m index 2a44da3a8..fab0c02e1 100644 --- a/SignalServiceKit/src/Util/NSData+OWS.m +++ b/SignalServiceKit/src/Util/NSData+OWS.m @@ -8,25 +8,6 @@ NS_ASSUME_NONNULL_BEGIN @implementation NSData (OWS) -- (BOOL)ows_constantTimeIsEqualToData:(NSData *)other -{ - volatile UInt8 isEqual = 0; - - if (self.length != other.length) { - return NO; - } - - UInt8 *leftBytes = (UInt8 *)self.bytes; - UInt8 *rightBytes = (UInt8 *)other.bytes; - for (int i = 0; i < self.length; i++) { - // rather than returning as soon as we find a discrepency, we compare the rest of - // the byte stream to maintain a constant time comparison - isEqual |= leftBytes[i] ^ rightBytes[i]; - } - - return isEqual == 0; -} - - (NSData *)dataByAppendingData:(NSData *)data { NSMutableData *result = [self mutableCopy]; From 8ef3497e5866a3a07d0ee0c0a10219ae0f402df7 Mon Sep 17 00:00:00 2001 From: Matthew Chen Date: Fri, 14 Sep 2018 14:33:17 -0400 Subject: [PATCH 3/3] Update cocoapods. --- Pods | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Pods b/Pods index b53c22b34..3ce7a1b59 160000 --- a/Pods +++ b/Pods @@ -1 +1 @@ -Subproject commit b53c22b34fb03c898ed5d4360a3941ba93a232f9 +Subproject commit 3ce7a1b597cd20211b2e9ad79ad59262b6f64c82