diff --git a/src/Devices/OWSVerificationStateSyncMessage.m b/src/Devices/OWSVerificationStateSyncMessage.m index 7d27d0f0b..af2ff0277 100644 --- a/src/Devices/OWSVerificationStateSyncMessage.m +++ b/src/Devices/OWSVerificationStateSyncMessage.m @@ -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 *)recipientIds { NSMutableArray *result = [NSMutableArray new]; diff --git a/src/Messages/OWSIdentityManager.m b/src/Messages/OWSIdentityManager.m index 0d0b4bb0c..94e194361 100644 --- a/src/Messages/OWSIdentityManager.m +++ b/src/Messages/OWSIdentityManager.m @@ -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; } diff --git a/src/Util/Cryptography.m b/src/Util/Cryptography.m index 00821fa33..955117d24 100755 --- a/src/Util/Cryptography.m +++ b/src/Util/Cryptography.m @@ -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; }