Encrypt and decrypt attachments in accordance with the Matrix Client-Server API spec.
Supports browsers using WebCryptoAPI and Node.js via crypto.
This project builds on and deprecates browser-encrypt-attachment to add support for non-browser environments.
Previous versions of the protocol are not currently documented in the spec, and are described here for reference:
| Protocol | Description |
|---|---|
| v0 | use all 128 bits of the counter |
| v1 | use only 64 bits of the counter |
| v2 (current) | use only 64 bits and also zero out the other half to maximise the space before it wraps |
The library will encrypt to the following protocol versions:
| Protocol | Browser | Node.js |
|---|---|---|
| Encrypt | v2 | v2 |
The library supports decryption of the following protocol versions:
| Protocol | Browser | Node.js |
|---|---|---|
| Decrypt v0 | ✅ | ❌ |
| Decrypt v1 | ✅ | ❌ |
| Decrypt v2 | ✅ | ✅ |