Respond to CR.

pull/1/head
Matthew Chen 8 years ago
parent dc51f92f19
commit ce899edf10

@ -67,8 +67,6 @@
346129961FD1E30000532771 /* OWSDatabaseMigration.m in Sources */ = {isa = PBXBuildFile; fileRef = 346129941FD1E30000532771 /* OWSDatabaseMigration.m */; };
346129991FD1E4DA00532771 /* SignalApp.m in Sources */ = {isa = PBXBuildFile; fileRef = 346129971FD1E4D900532771 /* SignalApp.m */; };
3461299C1FD1EA9E00532771 /* NotificationsManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 3461299B1FD1EA9E00532771 /* NotificationsManager.m */; };
3461299F1FD1EFE200532771 /* CryptoTools.h in Headers */ = {isa = PBXBuildFile; fileRef = 3461299D1FD1EFE200532771 /* CryptoTools.h */; };
346129A01FD1EFE200532771 /* CryptoTools.m in Sources */ = {isa = PBXBuildFile; fileRef = 3461299E1FD1EFE200532771 /* CryptoTools.m */; };
346129A51FD1F09100532771 /* OWSContactsManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 346129A21FD1F09100532771 /* OWSContactsManager.h */; };
346129A61FD1F09100532771 /* OWSContactsManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 346129A31FD1F09100532771 /* OWSContactsManager.m */; };
346129A91FD1F0E000532771 /* OWSFormat.h in Headers */ = {isa = PBXBuildFile; fileRef = 346129A81FD1F0DF00532771 /* OWSFormat.h */; settings = {ATTRIBUTES = (Public, ); }; };
@ -359,7 +357,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 */; };
B660F6D81C29868000687D6E /* CryptoToolsTest.m in Sources */ = {isa = PBXBuildFile; fileRef = B660F6A71C29868000687D6E /* CryptoToolsTest.m */; };
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 */; };
@ -601,8 +598,6 @@
346129981FD1E4DA00532771 /* SignalApp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SignalApp.h; sourceTree = "<group>"; };
3461299A1FD1EA9E00532771 /* NotificationsManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NotificationsManager.h; sourceTree = "<group>"; };
3461299B1FD1EA9E00532771 /* NotificationsManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NotificationsManager.m; sourceTree = "<group>"; };
3461299D1FD1EFE200532771 /* CryptoTools.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CryptoTools.h; sourceTree = "<group>"; };
3461299E1FD1EFE200532771 /* CryptoTools.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CryptoTools.m; sourceTree = "<group>"; };
346129A21FD1F09100532771 /* OWSContactsManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OWSContactsManager.h; sourceTree = "<group>"; };
346129A31FD1F09100532771 /* OWSContactsManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OWSContactsManager.m; sourceTree = "<group>"; };
346129A81FD1F0DF00532771 /* OWSFormat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OWSFormat.h; sourceTree = "<group>"; };
@ -719,9 +714,6 @@
34CCAF3A1F0C2748004084F4 /* OWSAddToContactViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OWSAddToContactViewController.m; sourceTree = "<group>"; };
34CE88E51F2FB9A10098030F /* ProfileViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ProfileViewController.h; sourceTree = "<group>"; };
34CE88E61F2FB9A10098030F /* ProfileViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ProfileViewController.m; sourceTree = "<group>"; };
34CE88E91F3237260098030F /* OWSProfileManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OWSProfileManager.h; sourceTree = "<group>"; };
34CE88EA1F3237260098030F /* OWSProfileManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OWSProfileManager.m; sourceTree = "<group>"; };
34CE88EB1F3237260098030F /* ProfileFetcherJob.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ProfileFetcherJob.swift; sourceTree = "<group>"; };
34D1F04F1F7D45A60066283D /* GifPickerCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GifPickerCell.swift; sourceTree = "<group>"; };
34D1F0511F7E8EA30066283D /* GiphyDownloader.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GiphyDownloader.swift; sourceTree = "<group>"; };
34D1F0651F8678AA0066283D /* ConversationHeaderView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ConversationHeaderView.h; sourceTree = "<group>"; };
@ -969,7 +961,6 @@
B660F69E1C29868000687D6E /* SignalTests-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "SignalTests-Info.plist"; sourceTree = "<group>"; };
B660F69F1C29868000687D6E /* whisperFake.cer */ = {isa = PBXFileReference; lastKnownFileType = file; path = whisperFake.cer; sourceTree = "<group>"; };
B660F6A01C29868000687D6E /* TestUtil.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TestUtil.h; sourceTree = "<group>"; };
B660F6A71C29868000687D6E /* CryptoToolsTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CryptoToolsTest.m; sourceTree = "<group>"; };
B660F6AA1C29868000687D6E /* ExceptionsTest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ExceptionsTest.h; sourceTree = "<group>"; };
B660F6AB1C29868000687D6E /* ExceptionsTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ExceptionsTest.m; sourceTree = "<group>"; };
B660F6AC1C29868000687D6E /* FunctionalUtilTest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FunctionalUtilTest.h; sourceTree = "<group>"; };
@ -1150,8 +1141,6 @@
34480B471FD0A60200BC14EF /* utils */ = {
isa = PBXGroup;
children = (
3461299D1FD1EFE200532771 /* CryptoTools.h */,
3461299E1FD1EFE200532771 /* CryptoTools.m */,
34480B4D1FD0A7A300BC14EF /* DebugLogger.h */,
34480B4E1FD0A7A300BC14EF /* DebugLogger.m */,
346129AC1FD1F34E00532771 /* ImageCache.swift */,
@ -1432,16 +1421,6 @@
path = Assets;
sourceTree = "<group>";
};
34CE88E81F3237260098030F /* Profiles */ = {
isa = PBXGroup;
children = (
34CE88E91F3237260098030F /* OWSProfileManager.h */,
34CE88EA1F3237260098030F /* OWSProfileManager.m */,
34CE88EB1F3237260098030F /* ProfileFetcherJob.swift */,
);
path = Profiles;
sourceTree = "<group>";
};
34D1F0951F867BFC0066283D /* Cells */ = {
isa = PBXGroup;
children = (
@ -1681,7 +1660,6 @@
45D231751DC7E8C50034FA89 /* Jobs */,
457F3AC01D14A0F700C51351 /* Models */,
76EB041D18170B33006006FC /* network */,
34CE88E81F3237260098030F /* Profiles */,
B60959791C2C0FA9004E8797 /* rating */,
45B201741DAECBFD00C461E0 /* Signal-Bridging-Header.h */,
45CD81A41DBFF8CF004C9430 /* Storyboards */,
@ -1918,7 +1896,6 @@
isa = PBXGroup;
children = (
45E7A6A61E71CA7E00D44FB5 /* DisplayableTextFilterTest.swift */,
B660F6A71C29868000687D6E /* CryptoToolsTest.m */,
B660F6AA1C29868000687D6E /* ExceptionsTest.h */,
B660F6AB1C29868000687D6E /* ExceptionsTest.m */,
B660F6AC1C29868000687D6E /* FunctionalUtilTest.h */,
@ -2105,7 +2082,6 @@
346129A51FD1F09100532771 /* OWSContactsManager.h in Headers */,
34480B681FD0AA9400BC14EF /* UIFont+OWS.h in Headers */,
346129CC1FD2072E00532771 /* NSAttributedString+OWS.h in Headers */,
3461299F1FD1EFE200532771 /* CryptoTools.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -2748,7 +2724,6 @@
346129341FD1A88700532771 /* OWSSwiftUtils.swift in Sources */,
346129D01FD207F300532771 /* OWSAlerts.swift in Sources */,
346129B61FD1F7E800532771 /* ProfileFetcherJob.swift in Sources */,
346129A01FD1EFE200532771 /* CryptoTools.m in Sources */,
3461295B1FD1D74C00532771 /* Environment.m in Sources */,
346129D51FD20ADC00532771 /* UIViewController+OWS.m in Sources */,
346129C91FD2072E00532771 /* NSString+OWS.m in Sources */,
@ -3000,7 +2975,6 @@
B660F78A1C29988E00687D6E /* UIUtil.m in Sources */,
B660F78C1C29988E00687D6E /* UIDevice+TSHardwareVersion.m in Sources */,
456F6E211E2411B400FD2210 /* CallUIAdapter.swift in Sources */,
B660F6D81C29868000687D6E /* CryptoToolsTest.m in Sources */,
456F6E221E24132D00FD2210 /* PeerConnectionClient.swift in Sources */,
B660F6E01C29868000687D6E /* UtilTest.m in Sources */,
45F3AEB71DFDE7900080CE33 /* AvatarImageView.swift in Sources */,

@ -78,7 +78,7 @@ class ConversationSearcher: NSObject {
}
private var contactsManager: OWSContactsManager {
return Environment.getCurrent().contactsManager
return Environment.current().contactsManager
}
private func indexingString(recipientId: String) -> String {

@ -1,27 +0,0 @@
//
// Copyright (c) 2017 Open Whisper Systems. All rights reserved.
//
#import <XCTest/XCTest.h>
#import "Util.h"
#import "CryptoTools.h"
#import "TestUtil.h"
@interface CryptoToolsTest : XCTestCase
@end
@implementation CryptoToolsTest
-(void) testRandomForVariance {
NSData* d = [CryptoTools generateSecureRandomData:8];
NSData* d2 = [CryptoTools generateSecureRandomData:8];
test(5 == [[CryptoTools generateSecureRandomData:5] length]);
test(8 == d.length);
// extremely unlikely to fail if any reasonable amount of entropy is going into d and d2
test(![d isEqualToData:d2]);
}
@end

@ -397,10 +397,12 @@ public class SystemContactsFetcher: NSObject {
switch authorizationStatus {
case .notDetermined:
if UIApplication.shared.applicationState == .background {
Logger.error("\(self.TAG) do not request contacts permission when app is in background")
completion(nil)
return
if CurrentAppContext().isMainApp() {
if CurrentAppContext().mainApplicationState() == .background {
Logger.error("\(self.TAG) do not request contacts permission when app is in background")
completion(nil)
return
}
}
self.contactStoreAdapter.requestAccess { (granted, error) in
if let error = error {

@ -3,7 +3,7 @@
//
#import "SignalKeyingStorage.h"
#import "CryptoTools.h"
#import "SecurityUtils.h"
#import "TSStorageManager.h"
#import "Util.h"
@ -17,9 +17,9 @@
+ (void)generateSignaling
{
[self storeData:[CryptoTools generateSecureRandomData:SIGNALING_MAC_KEY_LENGTH] forKey:SIGNALING_MAC_KEY];
[self storeData:[CryptoTools generateSecureRandomData:SIGNALING_CIPHER_KEY_LENGTH] forKey:SIGNALING_CIPHER_KEY];
[self storeData:[CryptoTools generateSecureRandomData:SIGNALING_EXTRA_KEY_LENGTH] forKey:SIGNALING_EXTRA_KEY];
[self storeData:[SecurityUtils generateRandomBytes:SIGNALING_MAC_KEY_LENGTH] forKey:SIGNALING_MAC_KEY];
[self storeData:[SecurityUtils generateRandomBytes:SIGNALING_CIPHER_KEY_LENGTH] forKey:SIGNALING_CIPHER_KEY];
[self storeData:[SecurityUtils generateRandomBytes:SIGNALING_EXTRA_KEY_LENGTH] forKey:SIGNALING_EXTRA_KEY];
}
+ (int64_t)getAndIncrementOneTimeCounter

@ -1,15 +0,0 @@
//
// Copyright (c) 2017 Open Whisper Systems. All rights reserved.
//
/// All dependencies on external libraries used for cryptography should be hidden behind CryptoTools methods.
/// That way, changing to a different library affects only one part of the system.
@interface CryptoTools : NSObject
/// Returns data composed of 'length' cryptographically unpredictable bytes sampled uniformly from [0, 256).
//
// TODO: Is this redundant with: [SecurityUtils generateRandomBytes]?
+ (NSData *)generateSecureRandomData:(NSUInteger)length;
@end

@ -1,19 +0,0 @@
//
// Copyright (c) 2017 Open Whisper Systems. All rights reserved.
//
#import "CryptoTools.h"
@implementation CryptoTools
+ (NSData *)generateSecureRandomData:(NSUInteger)length
{
NSMutableData *d = [NSMutableData dataWithLength:length];
OSStatus status = SecRandomCopyBytes(kSecRandomDefault, length, [d mutableBytes]);
if (status != noErr) {
[SecurityFailure raise:@"SecRandomCopyBytes failed"];
}
return [d copy];
}
@end

@ -2,8 +2,6 @@
// Copyright (c) 2017 Open Whisper Systems. All rights reserved.
//
//#import <UIKit/UIKit.h>
NS_ASSUME_NONNULL_BEGIN
@interface OWSFormat : NSObject

@ -4,14 +4,6 @@
#import "OWSFormat.h"
//#import "Environment.h"
//#import "HomeViewController.h"
//#import "PhoneNumber.h"
//#import "Signal-Swift.h"
//#import "StringUtil.h"
//#import <AVFoundation/AVFoundation.h>
//#import <SignalServiceKit/PhoneNumberUtil.h>
NS_ASSUME_NONNULL_BEGIN
@implementation OWSFormat
@ -29,17 +21,21 @@ NS_ASSUME_NONNULL_BEGIN
+ (NSString *)formatFileSize:(unsigned long)fileSize
{
static NSNumberFormatter *formatter = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
formatter = [NSNumberFormatter new];
formatter.numberStyle = NSNumberFormatterDecimalStyle;
});
const unsigned long kOneKilobyte = 1024;
const unsigned long kOneMegabyte = kOneKilobyte * kOneKilobyte;
NSNumberFormatter *numberFormatter = [NSNumberFormatter new];
numberFormatter.numberStyle = NSNumberFormatterDecimalStyle;
if (fileSize > kOneMegabyte * 10) {
return [[numberFormatter stringFromNumber:@((int)round(fileSize / (CGFloat)kOneMegabyte))]
return [[formatter stringFromNumber:@((int)round(fileSize / (CGFloat)kOneMegabyte))]
stringByAppendingString:@" MB"];
} else if (fileSize > kOneKilobyte * 10) {
return [[numberFormatter stringFromNumber:@((int)round(fileSize / (CGFloat)kOneKilobyte))]
return [[formatter stringFromNumber:@((int)round(fileSize / (CGFloat)kOneKilobyte))]
stringByAppendingString:@" KB"];
} else {
return [NSString stringWithFormat:@"%lu Bytes", fileSize];

@ -4,6 +4,6 @@
@interface SecurityUtils : NSObject
+ (NSData *)generateRandomBytes:(int)numberBytes;
+ (NSData *)generateRandomBytes:(NSUInteger)length;
@end

@ -1,23 +1,19 @@
//
// SecurityUtils.m
// TextSecureKit
//
// Created by Frederic Jacobs on 28/10/14.
// Copyright (c) 2014 Open Whisper Systems. All rights reserved.
// Copyright (c) 2017 Open Whisper Systems. All rights reserved.
//
#import "SecurityUtils.h"
@implementation SecurityUtils
+ (NSData *)generateRandomBytes:(int)numberBytes {
NSMutableData *randomBytes = [NSMutableData dataWithLength:(NSUInteger)numberBytes];
int err = 0;
err = SecRandomCopyBytes(kSecRandomDefault, (size_t)numberBytes, [randomBytes mutableBytes]);
if (err != noErr) {
@throw [NSException exceptionWithName:@"random problem" reason:@"problem generating the random " userInfo:nil];
+ (NSData *)generateRandomBytes:(NSUInteger)length
{
NSMutableData *d = [NSMutableData dataWithLength:length];
OSStatus status = SecRandomCopyBytes(kSecRandomDefault, length, [d mutableBytes]);
if (status != noErr) {
[SecurityFailure raise:@"SecRandomCopyBytes failed"];
}
return randomBytes;
return [d copy];
}
@end

Loading…
Cancel
Save