Function detached_jws::decode::deserialize [−][src]
pub fn deserialize<V>(
jws: &impl AsRef<[u8]>,
payload: &mut impl Read,
verifier: V
) -> Result<Map<String, Value>> where
V: Verify,
Deserialize and verify detached jws.
Examples
extern crate detached_jws; extern crate anyhow; extern crate serde_json; use std::io::{Write}; use anyhow::Result; use serde_json::{Map}; use detached_jws::{Verify}; #[derive(Default)] pub struct DummyVerifier; impl Verify for DummyVerifier { fn verify(&self, signature: &[u8]) -> Result<bool> { Ok(true) } } impl Write for DummyVerifier { fn write(&mut self, buf: &[u8]) -> std::io::Result<usize> { Ok(buf.len()) } fn flush(&mut self) -> std::io::Result<()> { Ok(()) } } let detached_jws = "eyJhbGciOiJ0ZXN0X2FsZ29yaXRobSIsImN1c3RvbSI6ImN1c3RvbV92YWx1ZSJ9..ZXlKaGJHY2lPaUowWlhOMFgyRnNaMjl5YVhSb2JTSXNJbU4xYzNSdmJTSTZJbU4xYzNSdmJWOTJZV3gxWlNKOS5BQUVDQXdRRkJn".as_bytes(); let verified_headers = detached_jws::deserialize( &detached_jws, &mut vec![0, 1, 2, 3, 4, 5, 6].as_slice(), DummyVerifier::default()).unwrap(); assert_eq!( verified_headers.get("custom").unwrap().as_str().unwrap(), "custom_value" );