Respond to CR.

// FREEBIE
pull/1/head
Matthew Chen 8 years ago
parent 44e1f4a14a
commit 498c0ef681

@ -3,6 +3,7 @@
// //
#import "OWSVerificationStateSyncMessage.h" #import "OWSVerificationStateSyncMessage.h"
#import "Cryptography.h"
#import "OWSSignalServiceProtos.pb.h" #import "OWSSignalServiceProtos.pb.h"
NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_BEGIN
@ -82,25 +83,14 @@ NS_ASSUME_NONNULL_BEGIN
} }
[syncMessageBuilder addVerified:[verifiedBuilder build]]; [syncMessageBuilder addVerified:[verifiedBuilder build]];
} }
// Add 1-512 bytes of random padding bytes. // Add 1-512 bytes of random padding bytes.
size_t paddingLengthBytes = arc4random_uniform(512) + 1; size_t paddingLengthBytes = arc4random_uniform(512) + 1;
[syncMessageBuilder setPadding:[self createRandomNSDataOfSize:paddingLengthBytes]]; [syncMessageBuilder setPadding:[Cryptography generateRandomBytes:paddingLengthBytes]];
return [syncMessageBuilder build]; return [syncMessageBuilder build];
} }
- (NSData *)createRandomNSDataOfSize:(size_t)size
{
NSMutableData *data = [NSMutableData dataWithCapacity:size];
for (size_t i = 0; i < size; ++i) {
u_int32_t randomBits = arc4random_uniform(256);
[data appendBytes:(void *)&randomBits length:1];
}
return data;
}
- (NSArray<NSString *> *)recipientIds - (NSArray<NSString *> *)recipientIds
{ {
NSMutableArray<NSString *> *result = [NSMutableArray new]; NSMutableArray<NSString *> *result = [NSMutableArray new];

@ -530,6 +530,7 @@ NSString *const kNSNotificationName_IdentityStateDidChange = @"kNSNotificationNa
OWSAssert(message.recipientIds.count > 0); OWSAssert(message.recipientIds.count > 0);
if (![self isSyncEnabled]) { if (![self isSyncEnabled]) {
DDLogInfo(@"Skipping outgoing sync message.");
return; return;
} }
@ -617,6 +618,7 @@ NSString *const kNSNotificationName_IdentityStateDidChange = @"kNSNotificationNa
} }
if (![self isSyncEnabled]) { if (![self isSyncEnabled]) {
DDLogInfo(@"Ignoring incoming sync message.");
return; return;
} }

@ -18,15 +18,16 @@ NS_ASSUME_NONNULL_BEGIN
@implementation Cryptography @implementation Cryptography
#pragma mark random bytes methods #pragma mark random bytes methods
+ (NSMutableData *)generateRandomBytes:(NSUInteger)numberBytes { + (NSMutableData *)generateRandomBytes:(NSUInteger)numberBytes {
/* used to generate db master key, and to generate signaling key, both at install */ /* used to generate db master key, and to generate signaling key, both at install */
NSMutableData *randomBytes = [NSMutableData dataWithLength:numberBytes]; NSMutableData *randomBytes = [NSMutableData dataWithLength:numberBytes];
int err = 0; int err = SecRandomCopyBytes(kSecRandomDefault, numberBytes, [randomBytes mutableBytes]);
err = SecRandomCopyBytes(kSecRandomDefault, numberBytes, [randomBytes mutableBytes]);
if (err != noErr) { if (err != noErr) {
@throw [NSException exceptionWithName:@"random problem" reason:@"problem generating the random " userInfo:nil]; DDLogError(@"Error in generateRandomBytes: %d", err);
@throw
[NSException exceptionWithName:@"random problem" reason:@"problem generating random bytes." userInfo:nil];
} }
return randomBytes; return randomBytes;
} }

Loading…
Cancel
Save