Skip to content

Upgrade to support XEP-0384: OMEMO Encryption 0.9.0 (2025-04-07)#705

Open
cmeng-git wants to merge 10 commits into
igniterealtime:masterfrom
cmeng-git:PR_XEP-0384_0.9.0
Open

Upgrade to support XEP-0384: OMEMO Encryption 0.9.0 (2025-04-07)#705
cmeng-git wants to merge 10 commits into
igniterealtime:masterfrom
cmeng-git:PR_XEP-0384_0.9.0

Conversation

@cmeng-git
Copy link
Copy Markdown
Contributor

@cmeng-git cmeng-git commented Mar 25, 2026

  • Implement XEP-0384: OMEMO Encryption to support both 'eu.siacs.conversations.axolotl' and 'urn:xmpp:omemo:2' namespaces; mutually exclusive and specified per user account.
  • Supports decryption of OMEMO messages received with either namespace.
  • Support OMEMO opt-out with reason from user or use the the default message.
  • Support Omemo publish-options, required active subscription to both bundles and devices nodes.
  • aTalk currently does not support device label, labelsig options.
    Required source changes in XEP-0420: Stanza Content Encryption 0.4.1 (2021-11-18)
    #704

- Implement XEP-0384: OMEMO Encryption to support both 'eu.siacs.conversations.axolotl' and 'urn:xmpp:omemo:2' namespaces;
  mutually exclusive and specified per user account.
- Supports decryption of OMEMO messages received with either namespace.
- Support OMEMO opt-out with reason from user or use the the default message.
- aTalk currently does not support device label, labelsig options.
- Omemo publish-options is supported in devices and bundles publish. Set to "NONE" if xmpp server does not support the option.
  Otherwise OMEMO will not work, as when enabled in ejabberd 25.10 has errors i.e. precondition-not-met and conflict.
- Upgrade smack to support XEP-0420: Stanza Content Encryption 0.4.1 (2021-11-18).
- Change publish node='urn:xmpp:omemo:2:devices with item id='current' as recommended for Singleton Nodes.
- Add both omemo PEP_NODE_DEVICES_x namespaces to PepEventListener, so pubsub#events from either PEP_NODE_DEVICES_x are handled.
- Must perform active subscription to node 'urn:xmpp:omemo:2:devices' and 'urn:xmpp:omemo:2:bundles', inorder to send publish-options successful.
- If onPepEvent received omemo#devices itemId != 'current', it must be purged from the server. Otherwise
  this will leads to endless loop in receiving the pepEvent for this item (as it not being updated).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant