if header.dh != state.DHr:
SkipMessageKeys(state, header.pn)
which doesn't exist in the Java Implementation in the Java implementation message keys are skipped only in getOrCreateMessageKeys where they are skipped only for the current ratchet key
this is specified in the documentation at
SkipMessageKeys(state, header.n)
In getOrCreateChainKey message keys aren't skipped while they should be, which if I am correct will result in message keys not being saved after a DH ratchet step causing a DuplicateMessageException if a message was received from before the DH ratchet step.
Thanks, OughtToPrevail
Edited from: Signal users community forum where I first asked it as a question when now I understand this is actually an issue.
I was reading about the Double Ratchet Algorithm and in
there is the specified line
which doesn't exist in the Java Implementation in the Java implementation message keys are skipped only in getOrCreateMessageKeys where they are skipped only for the current ratchet key this is specified in the documentation at
In getOrCreateChainKey message keys aren't skipped while they should be, which if I am correct will result in message keys not being saved after a DH ratchet step causing a DuplicateMessageException if a message was received from before the DH ratchet step.
Thanks, OughtToPrevail
Edited from: Signal users community forum where I first asked it as a question when now I understand this is actually an issue.