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

Goffi <[email protected]> Fri, 11 Nov 2022 19:21:11 +0100
Newsgroups gmane.network.jabber.devel
Message-ID <[email protected]>
--===============1228410096==
Content-Type: multipart/alternative;
 boundary=----UR1MOZYFH8KSOL4YPM10ACCTCAC78W
Content-Transfer-Encoding: 7bit

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

Great, congratulation for this amazing work=2E Is there any web page with t=
his announce that we can link ?

Le 11 novembre 2022 15:49:17 GMT+01:00, Tim Henkes <syndace@web=2Ede> a =
=C3=A9crit=C2=A0:
>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
>_______________________________________________

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

<html><head></head><body>Great, congratulation for this amazing work=2E Is =
there any web page with this announce that we can link ?<br><br><div class=
=3D"gmail_quote">Le 11 novembre 2022 15:49:17 GMT+01:00, Tim Henkes &lt;syn=
dace@web=2Ede&gt; a =C3=A9crit=C2=A0:<blockquote class=3D"gmail_quote" styl=
e=3D"margin: 0pt 0pt 0pt 0=2E8ex; border-left: 1px solid rgb(204, 204, 204)=
; padding-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>
------UR1MOZYFH8KSOL4YPM10ACCTCAC78W--

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

X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KSkRldiBtYWls
aW5nIGxpc3QKSW5mbzogaHR0cHM6Ly9tYWlsLmphYmJlci5vcmcvbWFpbG1hbi9saXN0aW5mby9q
ZGV2ClVuc3Vic2NyaWJlOiBKRGV2LXVuc3Vic2NyaWJlQGphYmJlci5vcmcKX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K

--===============1228410096==--