Skip to content

Commit 89893fb

Browse files
Make sure the dh ratchet always advances, even on "receive only" devices
--> force a key transport message with 1% probability (~ every 100th message)
1 parent 45e6b29 commit 89893fb

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

Monal/Classes/MLOMEMO.m

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1329,7 +1329,7 @@ -(NSString* _Nullable) decryptOmemoEnvelope:(MLXMLNode*) envelope forSenderJid:(
13291329
BOOL devicePreKey = [[envelope findFirst:@"header/key<rid=%u>@prekey|bool", self.monalSignalStore.deviceid] boolValue];
13301330

13311331
DDLogVerbose(@"Decrypting using:\nrid=%u --> messageKey=%@\nrid=%u --> isPreKey=%@", self.monalSignalStore.deviceid, messageKey, self.monalSignalStore.deviceid, bool2str(devicePreKey));
1332-
1332+
13331333
if(!messageKey && isKeyTransportElement)
13341334
{
13351335
DDLogVerbose(@"Received KeyTransportElement without our own rid included --> Ignore it");
@@ -1421,6 +1421,11 @@ -(NSString* _Nullable) decryptOmemoEnvelope:(MLXMLNode*) envelope forSenderJid:(
14211421
return nil;
14221422
#endif
14231423
}
1424+
1425+
//make sure the dh ratchet always advances, even on "receive only" devices
1426+
//--> force a key transport message with 1% probability (~ every 100th message)
1427+
if(arc4random_uniform(100)==42)
1428+
[self sendKeyTransportElement:senderJid forRids:[NSSet setWithArray:@[sid]]];
14241429

14251430
//some clients have the auth parameter in the ciphertext?
14261431
if(decryptedKey.length == 16 * 2)

0 commit comments

Comments
 (0)