Crate serde_crypt

source ·
Expand description

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

Example

use ring::rand::{SecureRandom, SystemRandom};
use serde::{Deserialize, Serialize};
use serde_crypt::{MASTER_KEY_LEN, setup};

#[derive(Serialize, Deserialize, Debug, PartialEq, Eq)]
struct Example {
    #[serde(with = "serde_crypt")]
    private: String,
    public: String,
}

let mut key: [u8; MASTER_KEY_LEN] = [0; MASTER_KEY_LEN];
let rand_gen = 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).unwrap();
let deserialized: Example = serde_json::from_str(&serialized).unwrap();

assert_eq!(deserialized, data);

Structs

Constants

Functions