5 个版本
0.1.4 | 2023 年 5 月 1 日 |
---|---|
0.1.3 | 2023 年 4 月 30 日 |
0.1.2 | 2023 年 3 月 31 日 |
0.1.1 | 2023 年 3 月 31 日 |
0.1.0 | 2023 年 3 月 30 日 |
#1529 in 加密学
111 每月下载量
用于 serde-crypt-macro
12KB
162 行
serde-crypt
端到端加密的 serde::Serializer
和 serde::Deserializer
. wasm-ready.
示例
use ring::rand::{SecureRandom, SystemRandom};
use serde::{Deserialize, Serialize};
use serde_crypt::setup;
#[derive(Serialize, Deserialize, Debug, PartialEq, Eq)]
struct Example {
#[serde(with = "serde_crypt")]
private: String,
public: String,
}
fn main() -> Result<(), serde_json::Error> {
let mut key: [u8; 256] = [0; 256];
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)?;
let deserialized: Example = serde_json::from_str(&serialized)?;
assert_eq!(deserialized, data);
Ok(())
}
依赖
~16MB
~387K SLoC