[jdev] Announcing the release of python-omemo, with support for the new SCE-based OMEMO
Paul Schaub
vanitasvitae at fsfe.org
Fri Nov 11 15:02:12 UTC 2022
Awesome work Tim!
Congratulations on the release!
Paul
Am 11.11.22 um 15:49 schrieb Tim Henkes:
> After years of development I am stoked to announce the release of
> python-omemo - An open Python implementation of the OMEMO Multi-End
> Message and Object Encryption protocol!
>
>
> python-omemo [1] is an OMEMO implementation written from scratch with
> support for both the currently widespread eu.siacs.conversations.axolotl
> version of OMEMO [2] and the newest, SCE-based version under the
> urn:xmpp:omemo:2 namespace [3].
>
>
> Notably, python-omemo is an implementation of the OMEMO _protocol_ and
> not just the cryptographic primitives, which means that many of the
> small protocol flow details of the OMEMO specification are handled by
> python-omemo as well.
>
>
> Key properties of the library:
>
> - Seamless support for both versions of the OMEMO specification at the
> same time. The library transparently handles compatibility between the
> two versions, i.e. identity keys, device ids and trust are shared
> appropriately. The protocol version to encrypt a message with can either
> be selected explicitly, or given as a priority, to e.g. use the new
> OMEMO if available, and fall back to the old OMEMO if not.
>
> - Handles bundle and device list, making sure the published data is
> always in sync with the local data.
>
> - Handles small protocol flow details, like sending automated empty
> messages in response to a key exchange or to prevent staleness.
>
> - Provides an easy way to integrate any sort of trust system - be it
> simple manual trust, BTBV, TOFU or something more complex.
>
> - Thin and straight-forward public API - OMEMO doesn't have to be
> complicated :)
>
> - Optionally reads/verifies and builds ElementTree XML structures for
> you, so that you can keep your codebase even thinner.
>
> - Clean, modern, fully-typed Python 3 with thorough API documentation.
>
> - Very easy to get started with - provide a simple key-value storage,
> implement some methods to upload/download bundles and device lists from
> PEP, and you're pretty much set!
>
>
> This library aims to enable client developers to equip their clients
> with OMEMO support without understanding all of the nasty cryptography
> or protocol flow details. Please give it a look, send me feedback and
> consider it for your Python-based client :)
>
>
> [1]: https://github.com/Syndace/python-omemo
>
> [2]: https://xmpp.org/extensions/attic/xep-0384-0.3.0.html
>
> [3]: https://xmpp.org/extensions/xep-0384.html
>
>
> _______________________________________________
> JDev mailing list
> Info: https://mail.jabber.org/mailman/listinfo/jdev
> Unsubscribe: JDev-unsubscribe at jabber.org
> _______________________________________________
More information about the JDev
mailing list