Matrix Conference 2024

Unable to decrypt this message
09-21, 14:30–15:00 (Europe/Berlin), LAB 4

If you’ve used Matrix for a while, you’ll have likely seen at least 1 message you’ve been unable to decrypt (UTD). This talk outlines the anatomy of a UTD bug, how regression tests can be added for them, and progress we’ve made in reducing UTDs across the ecosystem.


This talk is aimed at both client and server developers. We will initially outline the "happy case" when sending and receiving encrypted messages in Matrix. We'll then see what can go wrong which can cause UTDs, using real bugs in clients and servers as case studies. Complement-Crypto, a test suite specifically designed for reproducing these failure conditions, will be introduced and will explain how it can be used to cover a large spectrum of "unhappy cases", including adversarial attacks on the network. Finally, we'll look at the progress we've made in reducing UTDs, and outline areas for further work.

Kegan is one of the core engineers who made Matrix back in 2014, and has been working for Element since 2020. He has touched most of the ecosystem, including Synapse, Matrix JS SDK, Dendrite, IRC bridge, Sliding Sync and many others. His recent passion has been around improving the quality of the software in the ecosystem by developing Complement, a black box server test suite similar to Sytest, and most recently Complement-Crypto, a client test suite for testing end-to-end encryption.