1 个不稳定版本
0.1.0 | 2023 年 5 月 10 日 |
---|
#164 in #session
48KB
1K SLoC
hapi-iron-oxide
此模块旨在与 brc-dd/iron-webcrypto 兼容,该crate是vvo/iron-session的后端。这允许 Rust 中创建的 API 能够与 Next.js 通信。
安装
cargo add hapi-iron-oxide
使用方法
盐的大小可以通过 const generics 进行自定义。第一个泛型参数是加密算法(AES-256,AES-128)的盐大小。第二个泛型参数是完整性算法(SHA-256)的盐大小。
use hapi_iron_oxide::*;
let password = "passwordpasswordpasswordpasswordpasswordpasswordpasswordpassword";
let data = "Hello World Please";
let sealed = seal::<32, 32, _>(data.to_string(), password, Default::default());
let unsealed = unseal(sealed, password.clone(), Default::default());
assert_eq!(unsealed.unwrap(), data.to_string());
选项结构体可以像这样进行自定义
use hapi_iron_oxide::*;
let password = "passwordpasswordpasswordpasswordpasswordpasswordpasswordpassword";
let data = "Hello World Please";
let options = SealOptionsBuilder::new().ttl(1000);
let sealed = seal::<32, 32, _>(data.to_string(), password, options);
assert_eq!(
options,
SealOptions {
encryption: EncryptionOptions {
algorithm: Algorithm::Aes256Cbc,
iterations: 1,
minimum_password_length: 32,
},
integrity: EncryptionOptions {
algorithm: Algorithm::Sha256,
iterations: 1,
minimum_password_length: 32,
},
ttl: 1000,
timestamp_skew: 60,
local_offset: 0,
}
);
assert!(!sealed.is_empty());
感谢
感谢
- brc-dd/iron-webcrypto
- iron-auth/iron-crypto 提供的想法和实现细节。
依赖项
~4.5MB
~86K SLoC