Expand description
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<()> {
// 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(())
}
Modules§
- compact
- JWS Compact Serialization implementaton.
- hmac
- HMAC
VerifierandSignerimplementations using RustCrypto. - none
VerifierandSignerimplementations for thenonealgorithm.
Macros§
- json_
object - Create a JSON object.
Structs§
- Error
- An error that can occur during JWS processing.
Enums§
- Error
Kind - Indicates the type of an error that can occur during JWS processing.
Traits§
Functions§
- get_
header_ param - Get a parameter from either the protected or unprotected header, depending on which are available and which has the parameter.
- get_
required_ header_ param - Get a required parameter from either header.
- parse_
required_ header_ param - Get and deserialize a required parameter from either header.
Type Aliases§
- Json
Object - A JSON object.
- Json
Value - Re-exported
serde_json::Value. - Result
std::result::Resultwith the error type filled in.