Safely encrypt & store serializable data using XChaCha20Poly1305.
[dependencies]
encrypted-message = "0.3.0"EncryptedMessage implements FromSql & ToSql, allowing you to use EncryptedMessage as a field type in your models.
- MySQL: Enable the
diesel&diesel-mysqlfeatures. Supports theJsontype. - PostgreSQL: Enable the
diesel&diesel-postgresfeatures. Supports theJson&Jsonbtypes.
[dependencies]
encrypted-message = { version = "0.3.0", features = ["diesel", "diesel-<mysql|postgres>"] }examples/basic.rs, a basic example of how to useencrypted-message.examples/config_with_external_data.rs, an example of aConfigthat depends on external data, like a user-provided key or password.
This crate uses trusted, pure-Rust encryption using the chacha20poly1305 crate
from the Rust Crypto organization.
Keys are handled safely using the secrecy crate,
which internally uses the zeroize crate (also from Rust Crypto)
to zero-out the keys in memory when no longer used.