Multicrypt is a library for multi-key reversible encryption. That is, it provides a simple and secure interface for encrypting a payload such that it can be decrypted by any one of a number of keys, and the payload can be shared with new keys by users with existing keys.
## How It Works
Multicrypt uses an enveloped-data architecture whereby the payload is encrypted with a master key, and that master key is then encoded using each user's key.
This allows any user to decode the master key and, consequently, the payload, without having to know the master key directly.
The library is structured in such a way that discourages exposing the master key directly. In fact, your code should interact with the library, rather than the master key directly, which prevents exposing the master key at any point.