serde-crypt

Build Status Crate Docs Crate Version Crate Coverage

The end-to-end encrypted serde::Serializer and serde::Deserializer. wasm-ready.

Example

```rust use ring::rand::{SecureRandom, SystemRandom}; use serde::{Deserialize, Serialize}; use serdecrypt::{setup, MASTERKEY_LEN};

[derive(Serialize, Deserialize, Debug, PartialEq, Eq)]

struct Example { #[serde(with = "serde_crypt")] private: String, public: String, }

fn main() -> Result<(), serdejson::Error> { let mut key: [u8; MASTERKEYLEN] = [0; MASTERKEYLEN]; let randgen = SystemRandom::new(); rand_gen.fill(&mut key).unwrap();

setup(key);
let data = Example {
    private: "private data".to_string(),
    public: "public data".to_string(),
};

let serialized = serde_json::to_string(&data)?;
let deserialized: Example = serde_json::from_str(&serialized)?;

assert_eq!(deserialized, data);
Ok(())

} ```