This library has not undergone a formal security audit. While care has been taken to implement the MLS protocol correctly and securely, it may contain undiscovered vulnerabilities. If you plan to use this library in a production or security-critical context, proceed with caution and consider conducting an independent security review.
Make of that what you will. If I personally were to integrate a standard and there would be no audited, non-solo developed libs, I'd probably write and have audited my own lib. So in either case we're kind of back to "you're right to fear it", sorry, lol.
However: that implementation still isn't the hardest problem. The hardest problem, even if you write a ts mls lib yourself, is still key management.
I'd hope we can reuse the encrypted "vault" that we use for syncing send wallet creds, but there's a lot more state in these protocols and having one key to retrieve it all may defeat their purpose.
It's perhaps naive but I was thinking we would hold the messaging keys in this vault as a backup of whatever we store on the device. Then there's at least some redundancy if the vault needs to be reset or the device gets wiped.
It's even listed on the "official" MLS implementations page, great process on the PR
/s, and the author of that ts lib opened a pull request for it despite writing in the readme:Make of that what you will. If I personally were to integrate a standard and there would be no audited, non-solo developed libs, I'd probably write and have audited my own lib. So in either case we're kind of back to "you're right to fear it", sorry, lol.
However: that implementation still isn't the hardest problem. The hardest problem, even if you write a ts mls lib yourself, is still key management.