Safely encrypt & store serializable data using XChaCha20Poly1305.
[dependencies]
encrypted-message = "0.3"
EncryptedMessage
implements FromSql
& ToSql
, allowing you to use EncryptedMessage
as a field type in your models.
- MySQL: Enable the
diesel
&diesel-mysql
features. Supports theJson
type. - PostgreSQL: Enable the
diesel
&diesel-postgres
features. Supports theJson
&Jsonb
types.
[dependencies]
encrypted-message = { version = "0.3", 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 aConfig
that 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.