Re: Announcing the release of python-omemo, with support for the new SCE-based OMEMO

JC Brand <[email protected]> Sun, 13 Nov 2022 10:48:20 +0100
Newsgroups gmane.network.jabber.devel
Message-ID <[email protected]>
--===============0729741012==
Content-Type: multipart/alternative;
 boundary=----CLNWIG388NKRXW93MKEUQSX8U19OKA
Content-Transfer-Encoding: 7bit

------CLNWIG388NKRXW93MKEUQSX8U19OKA
Content-Type: text/plain;
 charset=utf-8
Content-Transfer-Encoding: quoted-printable

Congratulations Tim! And thanks for contributing to the diversity of librar=
ies in our little ecosystem=2E


On November 11, 2022 3:49:17 PM GMT+01:00, Tim Henkes <syndace@web=2Ede> w=
rote:
>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=2Esiacs=2Econversations=2Eax=
olotl
>version of OMEMO [2] and the newest, SCE-based version under the
>urn:xmpp:omemo:2 namespace [3]=2E
>
>
>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=2E
>
>
>Key properties of the library:
>
>- Seamless support for both versions of the OMEMO specification at the
>same time=2E The library transparently handles compatibility between the
>two versions, i=2Ee=2E identity keys, device ids and trust are shared
>appropriately=2E The protocol version to encrypt a message with can eithe=
r
>be selected explicitly, or given as a priority, to e=2Eg=2E use the new
>OMEMO if available, and fall back to the old OMEMO if not=2E
>
>- Handles bundle and device list, making sure the published data is
>always in sync with the local data=2E
>
>- Handles small protocol flow details, like sending automated empty
>messages in response to a key exchange or to prevent staleness=2E
>
>- Provides an easy way to integrate any sort of trust system - be it
>simple manual trust, BTBV, TOFU or something more complex=2E
>
>- 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=2E
>
>- Clean, modern, fully-typed Python 3 with thorough API documentation=2E
>
>- 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=2E Please give it a look, send me feedback and
>consider it for your Python-based client :)
>
>
>[1]: https://github=2Ecom/Syndace/python-omemo
>
>[2]: https://xmpp=2Eorg/extensions/attic/xep-0384-0=2E3=2E0=2Ehtml
>
>[3]: https://xmpp=2Eorg/extensions/xep-0384=2Ehtml
>
>
>_______________________________________________
>JDev mailing list
>Info: https://mail=2Ejabber=2Eorg/mailman/listinfo/jdev
>Unsubscribe: JDev-unsubscribe@jabber=2Eorg
>_______________________________________________

------CLNWIG388NKRXW93MKEUQSX8U19OKA
Content-Type: text/html;
 charset=utf-8
Content-Transfer-Encoding: quoted-printable

<html><head></head><body>Congratulations Tim! And thanks for contributing t=
o the diversity of libraries in our little ecosystem=2E<br><br><br><div cla=
ss=3D"gmail_quote">On November 11, 2022 3:49:17 PM GMT+01:00, Tim Henkes &l=
t;syndace@web=2Ede&gt; wrote:<blockquote class=3D"gmail_quote" style=3D"mar=
gin: 0pt 0pt 0pt 0=2E8ex; border-left: 1px solid rgb(204, 204, 204); paddin=
g-left: 1ex;">
<pre dir=3D"auto" class=3D"k9mail">After years of development I am stoked =
to announce the release of<br>python-omemo - An open Python implementation =
of the OMEMO Multi-End<br>Message and Object Encryption protocol!<br><br><b=
r>python-omemo [1] is an OMEMO implementation written from scratch with<br>=
support for both the currently widespread eu=2Esiacs=2Econversations=2Eaxol=
otl<br>version of OMEMO [2] and the newest, SCE-based version under the<br>=
urn:xmpp:omemo:2 namespace [3]=2E<br><br><br>Notably, python-omemo is an im=
plementation of the OMEMO _protocol_ and<br>not just the cryptographic prim=
itives, which means that many of the<br>small protocol flow details of the =
OMEMO specification are handled by<br>python-omemo as well=2E<br><br><br>Ke=
y properties of the library:<br><br>- Seamless support for both versions of=
 the OMEMO specification at the<br>same time=2E The library transparently h=
andles compatibility between the<br>two versions, i=2Ee=2E identity keys, d=
evice ids and trust are shared<br>appropriately=2E The protocol version to =
encrypt a message with can either<br>be selected explicitly, or given as a =
priority, to e=2Eg=2E use the new<br>OMEMO if available, and fall back to t=
he old OMEMO if not=2E<br><br>- Handles bundle and device list, making sure=
 the published data is<br>always in sync with the local data=2E<br><br>- Ha=
ndles small protocol flow details, like sending automated empty<br>messages=
 in response to a key exchange or to prevent staleness=2E<br><br>- Provides=
 an easy way to integrate any sort of trust system - be it<br>simple manual=
 trust, BTBV, TOFU or something more complex=2E<br><br>- Thin and straight-=
forward public API - OMEMO doesn't have to be<br>complicated :)<br><br>- Op=
tionally reads/verifies and builds ElementTree XML structures for<br>you, s=
o that you can keep your codebase even thinner=2E<br><br>- Clean, modern, f=
ully-typed Python 3 with thorough API documentation=2E<br><br>- Very easy t=
o get started with - provide a simple key-value storage,<br>implement some =
methods to upload/download bundles and device lists from<br>PEP, and you're=
 pretty much set!<br><br><br>This library aims to enable client developers =
to equip their clients<br>with OMEMO support without understanding all of t=
he nasty cryptography<br>or protocol flow details=2E Please give it a look,=
 send me feedback and<br>consider it for your Python-based client :)<br><br=
><br>[1]: <a href=3D"https://github=2Ecom/Syndace/python-omemo">https://git=
hub=2Ecom/Syndace/python-omemo</a><br><br>[2]: <a href=3D"https://xmpp=2Eor=
g/extensions/attic/xep-0384-0=2E3=2E0=2Ehtml">https://xmpp=2Eorg/extensions=
/attic/xep-0384-0=2E3=2E0=2Ehtml</a><br><br>[3]: <a href=3D"https://xmpp=2E=
org/extensions/xep-0384=2Ehtml">https://xmpp=2Eorg/extensions/xep-0384=2Eht=
ml</a><hr>JDev mailing list<br>Info: <a href=3D"https://mail=2Ejabber=2Eorg=
/mailman/listinfo/jdev">https://mail=2Ejabber=2Eorg/mailman/listinfo/jdev</=
a><br>Unsubscribe: JDev-unsubscribe@jabber=2Eorg<hr></pre></blockquote></di=
v></body></html>
------CLNWIG388NKRXW93MKEUQSX8U19OKA--

--===============0729741012==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: inline

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSkRldiBtYWls
aW5nIGxpc3QKSW5mbzogaHR0cHM6Ly9tYWlsLmphYmJlci5vcmcvbWFpbG1hbi9saXN0aW5mby9q
ZGV2ClVuc3Vic2NyaWJlOiBKRGV2LXVuc3Vic2NyaWJlQGphYmJlci5vcmcKX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K

--===============0729741012==--