Error updating keys between devices
So, the Setup:
-
3 Machines:
- A (Debian - Gajim 1.0.3 - OMEMO 2.5.13)
- B (Arch Linux - Gajim 1.0.3 - OMEMO 2.5.13)
- C (Android 8.1 - Conversations 2.2.2)
-
My own Server (ejabberd 18.04-2)
I reinstalled A and also reinstalled gajim, so new keys and stuff. Since the B seems unable to fetch the key for A. A was able to fetch the key for B in the meantime (it shows up in the OMEMO-menu in the chat window), but B cannont decrypt messages from A. C doesn't seem to have any problems at all.
If B gets an encrypted message from A the log from "gajim -l gajim.plugin_system.omemo=DEBUG" the output looks like this:
06.06.2018 00:10:09 (D) gajim.plugin_system.omemo ---------------
06.06.2018 00:10:09 (D) gajim.plugin_system.omemo jabber.vulgrim.de => Received PreKeyWhisperMessage from rincewind@jabber.vulgrim.de
06.06.2018 00:10:09 (W) gajim.plugin_system Error executing <bound method OmemoPlugin._message_received of <omemo.omemoplugin.OmemoPlugin object at 0x7f34c83981d0>>
Traceback (most recent call last):
File "/usr/lib/python3.6/site-packages/gajim/plugins/pluginmanager.py", line 316, in _execute_all_handlers_of_gui_extension_point
handlers[0](*args)
File "/home/rincewind/.local/share/gajim/plugins/omemo/omemoplugin.py", line 184, in _message_received
self.connections[conn.name].message_received(conn, obj, callback)
File "/home/rincewind/.local/share/gajim/plugins/omemo/omemo_connection.py", line 141, in message_received
self._message_received(obj)
File "/home/rincewind/.local/share/gajim/plugins/omemo/omemo_connection.py", line 298, in _message_received
plaintext = self.omemo.decrypt_msg(msg_dict)
File "/home/rincewind/.local/share/gajim/plugins/omemo/omemo/state.py", line 197, in decrypt_msg
encrypted_key)
File "/home/rincewind/.local/share/gajim/plugins/omemo/omemo/state.py", line 440, in handlePreKeyWhisperMessage
key = sessionCipher.decryptPkmsg(preKeyWhisperMessage)
File "/usr/lib/python3.6/site-packages/axolotl/sessioncipher.py", line 96, in decryptPkmsg
unsignedPreKeyId = self.sessionBuilder.process(sessionRecord, ciphertext)
File "/usr/lib/python3.6/site-packages/axolotl/sessionbuilder.py", line 50, in process
unsignedPreKeyId = self.processV3(sessionRecord, message)
File "/usr/lib/python3.6/site-packages/axolotl/sessionbuilder.py", line 112, in processV3
ourSignedPreKey = self.signedPreKeyStore.loadSignedPreKey(message.getSignedPreKeyId()).getKeyPair()
File "/home/rincewind/.local/share/gajim/plugins/omemo/omemo/liteaxolotlstore.py", line 161, in loadSignedPreKey
return self.signedPreKeyStore.loadSignedPreKey(signedPreKeyId)
File "/home/rincewind/.local/share/gajim/plugins/omemo/omemo/litesignedprekeystore.py", line 42, in loadSignedPreKey
signedPreKeyId)
axolotl.invalidkeyidexception.InvalidKeyIdException: No such signedprekeyrecord! 3149
If there is a need for more information, I will happily provide it.