In my previous omemo message testing, After few attempts, I am able to setup omemo sessions between the following two clients without problem.
1. aTalk (email@example.com) installed on Note3
2. conversions (firstname.lastname@example.org) installed on S3
Note: aTalk implements "Blind Trust on First Use: .
After that, I shut down conversions client; then installed a new aTalk client on S3 but with the same user account email@example.com; I am facing the following problems: I found that the new omemDevice created on S3 for firstname.lastname@example.org is not being detected by email@example.com. Omemo session always failed and the encrypted messages sent from either party contains no <rid key/> for the recipient to decrypt the message
07-16 22:14:10.377 D/SMACK: SENT (0): <message firstname.lastname@example.org' id='mfNH2-126' type='chat'><body>I sent you an OMEMO encrypted message but your client doesn’t seem to support that. Find more information on https://conversations.im/omemo</body><thread>7b1b20ee-d17a-492d-bda7-af0006657307</thread><encrypted xmlns='eu.siacs.conversations.axolotl'><header sid='1011347036'><iv>34VVCnDGEZ3KlWsXUwr94Q==</iv></header><payload>XMGZWQ==</p ayload></encrypted><store xmlns='urn:xmpp:hints'/><encryption xmlns='urn:xmpp:eme:0' namespace='eu.siacs.conversations.axolotl' name='OMEMO'/></message><r xmlns='urn:xmpp:sm:3'/>
The try/catch loop for
mOmemoManager.encrypt(bareJid, "Hi buddy!");
always return success since it only tests for bareJid instead of new omemoDevice for email@example.com.
fingerPrints = mOmemoManager.getActiveFingerprints(bareJid);
always returns only one fingerprint i.e. the previously created omemoDevice when conversations client is first installed. I checked the database, and found there is NO new omemoDevice created for the new aTalk-swan account.
Appreciate if someone can clarify the following:
I see that when S3-atalk startup, it does publish its omemoDevice information to the server. However there is no publish notification get sent to firstname.lastname@example.org Note3.
a. Is there some missing entityCapability feature that needs to be advertised by atalk client, before the new omemDevice notification is relayed to it.
Not sure if it is necessary, but I have added the feature to the aTalk entityCapability i.e. OmemoConstants.PEP_NODE_BUNDLES + NOTIFY
b. Or omemo protocol uses a different method to fetch the new identify, and what is the process?
c. Or the same user account can have only one omemoDevice defined?
d. Is there some routines that aTalk needs to implement to resolve this issue?