mautrix/go

E2EE Example

owwk opened this issue · 5 comments

owwk commented

It would be good to have another example showing how encryption is used.

After many hours of trial and error along with looking through the gomuks source code I have got basic E2EE working with this library, but am unsure if I am doing it the right way.

I also can't figure out to keep E2EE working across restarts, even when I persist the crypto store, token and device id I am just met with "no session with given id found" errors.

A code example showing the right way to get encryption working with this library would really help me.

Alternatively a high-level "checklist" of everything that needs to be set up would be equally useful, e.g. what event listeners need to be set up, what functions need to be called, what data needs to be persisted etc.

tulir commented

Here's a quick example for sending/receiving, no persistence though: https://mau.dev/-/snippets/6

Oyabi commented

Hi, same request here.
I can't get my session to be verified in Element with your code (thank you for it btw).

Oyabi commented

I bump this thread since I cannot keep a session open.
If my bot crash or a problem occur on server, how can I keep my session and not create another?
image

Here you can see that many sessions with name Example are created.
How to use only one session with the name Example? And how to authenticate them with max security settings?

Please add some documentation and examples. It really is a blind trial and error what I am doing currently.

You can take a look at some of these projects:

I'd look at the vacation responder first, since it's the most barebones one.