|
|
@ -381,20 +381,25 @@ NSString *const kNSNotification_SocketManagerStateDidChange = @"kNSNotification_
|
|
|
|
|
|
|
|
|
|
|
|
if ([message.path isEqualToString:@"/api/v1/message"] && [message.verb isEqualToString:@"PUT"]) {
|
|
|
|
if ([message.path isEqualToString:@"/api/v1/message"] && [message.verb isEqualToString:@"PUT"]) {
|
|
|
|
|
|
|
|
|
|
|
|
NSData *decryptedPayload =
|
|
|
|
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
|
|
|
|
[Cryptography decryptAppleMessagePayload:message.body withSignalingKey:TSStorageManager.signalingKey];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (!decryptedPayload) {
|
|
|
|
NSData *decryptedPayload =
|
|
|
|
DDLogWarn(@"%@ Failed to decrypt incoming payload or bad HMAC", self.tag);
|
|
|
|
[Cryptography decryptAppleMessagePayload:message.body withSignalingKey:TSStorageManager.signalingKey];
|
|
|
|
[self sendWebSocketMessageAcknowledgement:message];
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
OWSSignalServiceProtosEnvelope *envelope = [OWSSignalServiceProtosEnvelope parseFromData:decryptedPayload];
|
|
|
|
if (!decryptedPayload) {
|
|
|
|
|
|
|
|
DDLogWarn(@"%@ Failed to decrypt incoming payload or bad HMAC", self.tag);
|
|
|
|
|
|
|
|
[self sendWebSocketMessageAcknowledgement:message];
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
[self.messageReceiver handleReceivedEnvelope:envelope];
|
|
|
|
OWSSignalServiceProtosEnvelope *envelope = [OWSSignalServiceProtosEnvelope parseFromData:decryptedPayload];
|
|
|
|
[self sendWebSocketMessageAcknowledgement:message];
|
|
|
|
|
|
|
|
|
|
|
|
[self.messageReceiver handleReceivedEnvelope:envelope];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
dispatch_async(dispatch_get_main_queue(), ^{
|
|
|
|
|
|
|
|
[self sendWebSocketMessageAcknowledgement:message];
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
});
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
DDLogWarn(@"%@ Unsupported WebSocket Request", self.tag);
|
|
|
|
DDLogWarn(@"%@ Unsupported WebSocket Request", self.tag);
|
|
|
|
|
|
|
|
|
|
|
|