Respond to CR.

pull/1/head
Matthew Chen 6 years ago
parent 3a5de59dcb
commit 951f0dab22

@ -379,10 +379,8 @@ NSString *const TSAccountManager_NeedsAccountAttributesUpdateKey = @"TSAccountMa
failure:(void (^)(NSError *error))failureBlock failure:(void (^)(NSError *error))failureBlock
{ {
NSString *authToken = [[self class] generateNewAccountAuthenticationToken]; NSString *authToken = [[self class] generateNewAccountAuthenticationToken];
NSString *signalingKey = [[self class] generateNewSignalingKeyToken];
NSString *phoneNumber = self.phoneNumberAwaitingVerification; NSString *phoneNumber = self.phoneNumberAwaitingVerification;
OWSAssertDebug(signalingKey);
OWSAssertDebug(authToken); OWSAssertDebug(authToken);
OWSAssertDebug(phoneNumber); OWSAssertDebug(phoneNumber);
@ -400,7 +398,6 @@ NSString *const TSAccountManager_NeedsAccountAttributesUpdateKey = @"TSAccountMa
case 200: case 200:
case 204: { case 204: {
OWSLogInfo(@"Verification code accepted."); OWSLogInfo(@"Verification code accepted.");
[self storeServerAuthToken:authToken signalingKey:signalingKey];
[TSPreKeyManager createPreKeysWithSuccess:successBlock failure:failureBlock]; [TSPreKeyManager createPreKeysWithSuccess:successBlock failure:failureBlock];
[self.profileManager fetchLocalUsersProfile]; [self.profileManager fetchLocalUsersProfile];
break; break;
@ -464,15 +461,6 @@ NSString *const TSAccountManager_NeedsAccountAttributesUpdateKey = @"TSAccountMa
return authTokenPrint; return authTokenPrint;
} }
+ (NSString *)generateNewSignalingKeyToken {
/*The signalingKey is 32 bytes of AES material (256bit AES) and 20 bytes of
* Hmac key material (HmacSHA1) concatenated into a 52 byte slug that is
* base64 encoded. */
NSData *signalingKeyToken = [Randomness generateRandomBytes:52];
NSString *signalingKeyTokenPrint = [[NSData dataWithData:signalingKeyToken] base64EncodedString];
return signalingKeyTokenPrint;
}
+ (nullable NSString *)signalingKey + (nullable NSString *)signalingKey
{ {
return [[self sharedInstance] signalingKey]; return [[self sharedInstance] signalingKey];
@ -495,16 +483,12 @@ NSString *const TSAccountManager_NeedsAccountAttributesUpdateKey = @"TSAccountMa
inCollection:TSAccountManager_UserAccountCollection]; inCollection:TSAccountManager_UserAccountCollection];
} }
- (void)storeServerAuthToken:(NSString *)authToken signalingKey:(NSString *)signalingKey - (void)storeServerAuthToken:(NSString *)authToken
{ {
[self.dbConnection readWriteWithBlock:^(YapDatabaseReadWriteTransaction *transaction) { [self.dbConnection readWriteWithBlock:^(YapDatabaseReadWriteTransaction *transaction) {
[transaction setObject:authToken [transaction setObject:authToken
forKey:TSAccountManager_ServerAuthToken forKey:TSAccountManager_ServerAuthToken
inCollection:TSAccountManager_UserAccountCollection]; inCollection:TSAccountManager_UserAccountCollection];
[transaction setObject:signalingKey
forKey:TSAccountManager_ServerSignalingKey
inCollection:TSAccountManager_UserAccountCollection];
}]; }];
} }

@ -773,8 +773,10 @@ NSString *const kNSNotification_OWSWebSocketStateDidChange = @"kNSNotification_O
BOOL useSignalingKey = [message.headers containsObject:@"X-Signal-Key: true"]; BOOL useSignalingKey = [message.headers containsObject:@"X-Signal-Key: true"];
NSData *_Nullable decryptedPayload; NSData *_Nullable decryptedPayload;
if (useSignalingKey) { if (useSignalingKey) {
decryptedPayload = [Cryptography decryptAppleMessagePayload:message.body NSString *_Nullable signalingKey = TSAccountManager.signalingKey;
withSignalingKey:TSAccountManager.signalingKey]; OWSAssertDebug(signalingKey);
decryptedPayload =
[Cryptography decryptAppleMessagePayload:message.body withSignalingKey:signalingKey];
} else { } else {
OWSAssertDebug([message.headers containsObject:@"X-Signal-Key: false"]); OWSAssertDebug([message.headers containsObject:@"X-Signal-Key: false"]);

Loading…
Cancel
Save