10个版本
0.2.9 | 2023年11月6日 |
---|---|
0.2.8 | 2023年7月26日 |
0.2.7 | 2022年5月10日 |
0.2.6 |
|
0.2.1 | 2018年12月30日 |
#587 in 加密学
每月下载量:353
用于 passport_azure_ad
文件大小:47KB
代码行数:682行(不含注释)
jws
本库提供了JSON Web Signature的编码、解码、签名和验证,具体描述见RFC 7515。
目前,编码和解码仅适用于compact
模块中的JWS Compact Serialization方案。
签名和验证通过Signer
和Verifier
特质来完成。模块hmac
包含了对HMAC-SHA2算法族的这些特质的支持实现。
示例
use jws::{JsonObject, JsonValue};
use jws::compact::{decode_verify, encode_sign};
use jws::hmac::{Hs512Signer, HmacVerifier};
fn encode_decode() -> jws::Result<()> {
// Add custom header parameters.
let mut header = JsonObject::new();
header.insert(String::from("typ"), JsonValue::from("text/plain"));
// Encode and sign the message.
let encoded = encode_sign(header, b"payload", &Hs512Signer::new(b"secretkey"))?;
// Decode and verify the message.
let decoded = decode_verify(encoded.data().as_bytes(), &HmacVerifier::new(b"secretkey"))?;
assert_eq!(decoded.payload, b"payload");
assert_eq!(decoded.header.get("typ").and_then(|x| x.as_str()), Some("text/plain"));
Ok(())
}
依赖项
~1.4–2.4MB
~51K SLoC