[jdev] Smack 4.2.1 introduces OMEMO support

Peter Saint-Andre stpeter at stpeter.im
Wed Jun 7 12:36:53 UTC 2017

Great work! :-)

On 6/6/17 2:11 PM, Vanitas Vitae wrote:
> I have the honour to announce the latest release of Smack! Version 4.2
> brings among bug fixes and additional features like Explicit Message
> Encryption (XEP-0380 <https://xmpp.org/extensions/xep-0380.html>) and
> Message Processing Hints (XEP-0334
> <https://xmpp.org/extensions/xep-0334.html>) support for OMEMO
> <https://conversations.im/omemo/> Multi-End-Message-and-Object
> encryption (XEP-0384 <https://xmpp.org/extensions/xep-0384.html>). OMEMO
> was developed by Andreas Straub for the Conversations messenger (also as
> a Google Summer of Code project) in 2015. Since then it got quite
> popular and drew a lot of attention for XMPP in the media. My hope is
> that my efforts to develop an easy to use Smack module will result in an
> even broader adoption.
> The Smack release is available from the Maven snapshot repositories.
> OMEMO is a protocol for multi-end to multi-end encrypted communication,
> which utilizes the so called Double Ratchet algorithm. It fulfills
> amongst the basic requirements of encrypted communication
> (confidentiality, authenticity and integrity) also the properties of
> deniability and forward secrecy as well as future secrecy. Smacks
> implementation brings support for encrypted single and group chats
> including identity management and session renegotiation.
> Current implementations (as well as this one) are based upon the
> libsignal library developed by OpenWhisperSystems for their popular
> Signal (formerly TextSecure) messenger. Smacks OMEMO support is
> structured in two modules. There is smack-omemo (APL licensed), which
> contains the logic specified in the XEP, as well as some basic
> cryptographic code. The other module smack-omemo-signal (GPLv3 licensed)
> implements some abstract methods defined by smack-omemo and encapsulates
> all function calls to libsignal.
> Currently smack-omemo-signal is the only module available that
> implements the double ratchet functionality, but there has been a lot of
> discussion on the XMPP Standards Foundations mailing list regarding the
> use of alternative (more permissively licensed) libraries for OMEMO
> (like for example Olm <https://matrix.org/git/olm/about>, a double
> ratchet implementation from our friends over at the [matrix]
> <https://matrix.org/> project). So once there is a new specification
> that enables the use of other libraries, it should be pretty easy to
> write another module for smack-omemo enabling OMEMO support for clients
> that are not GPLv3 compatible as well.
> Smack’s OMEMO modules are my first bigger contribution to a free
> software project and started as part of my bachelors thesis. I’m quite
> happy with the outcome :)
> Vanitasvitae

More information about the JDev mailing list