Respond to CR.

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

@ -3,6 +3,7 @@
//
#import "OWSVerificationStateSyncMessage.h"
#import "Cryptography.h"
#import "OWSSignalServiceProtos.pb.h"
NS_ASSUME_NONNULL_BEGIN
@ -82,25 +83,14 @@ NS_ASSUME_NONNULL_BEGIN
}
[syncMessageBuilder addVerified:[verifiedBuilder build]];
}
// Add 1-512 bytes of random padding bytes.
size_t paddingLengthBytes = arc4random_uniform(512) + 1;
[syncMessageBuilder setPadding:[self createRandomNSDataOfSize:paddingLengthBytes]];
[syncMessageBuilder setPadding:[Cryptography generateRandomBytes:paddingLengthBytes]];
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
{
NSMutableArray<NSString *> *result = [NSMutableArray new];

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

@ -18,15 +18,16 @@ NS_ASSUME_NONNULL_BEGIN
@implementation Cryptography
#pragma mark random bytes methods
+ (NSMutableData *)generateRandomBytes:(NSUInteger)numberBytes {
/* used to generate db master key, and to generate signaling key, both at install */
NSMutableData *randomBytes = [NSMutableData dataWithLength:numberBytes];
int err = 0;
err = SecRandomCopyBytes(kSecRandomDefault, numberBytes, [randomBytes mutableBytes]);
int err = SecRandomCopyBytes(kSecRandomDefault, numberBytes, [randomBytes mutableBytes]);
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;
}

Loading…
Cancel
Save