Skip to content

JS/TS library for encrypting and decrypting file attachments in Matrix

License

Notifications You must be signed in to change notification settings

matrix-org/matrix-encrypt-attachment

Repository files navigation

Matrix Encrypt Attachment

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.

Protocol versions

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

Encryption

The library will encrypt to the following protocol versions:

Protocol Browser Node.js
Encrypt v2 v2

Decryption

The library supports decryption of the following protocol versions:

Protocol Browser Node.js
Decrypt v0
Decrypt v1
Decrypt v2