
jws
This library provides JSON Web Signature encoding, decoding, signing and verification
as described in RFC 7515.
Currently, encoding and decoding is available only for the JWS Compact Serialization scheme in the
compact module.
Signing and verifying is done through the Signer and Verifier traits.
The hmac module contains implementations for these traits that support the HMAC-SHA2 family of algorithms.
Example:
use jws::{JsonObject, JsonValue};
use jws::compact::{decode_verify, encode_sign};
use jws::hmac::{Hs512Signer, HmacVerifier};
fn encode_decode() -> jws::Result<()> {
let mut header = JsonObject::new();
header.insert(String::from("typ"), JsonValue::from("text/plain"));
let encoded = encode_sign(header, b"payload", &Hs512Signer::new(b"secretkey"))?;
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(())
}