mautrix / go

A Golang Matrix framework.
https://maunium.net/go/mautrix
Mozilla Public License 2.0
403 stars 71 forks source link

E2EE Example #19

Closed owwk closed 1 year ago

owwk commented 3 years ago

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 3 years ago

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

Oyabi commented 3 years ago

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 3 years ago

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?

CubicrootXYZ commented 2 years ago

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

sumnerevans commented 2 years ago

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.