Function detached_jws::encode::serialize [−][src]
pub fn serialize(
algorithm: String,
mut header: JwsHeader,
payload: &mut impl Read,
signer: &mut impl Sign
) -> Result<Vec<u8>>
Serialize to detached jws
Examples
extern crate detached_jws; extern crate anyhow; extern crate serde_json; use std::io::{Write}; use anyhow::Result; use serde_json::{json, Map}; use detached_jws::{Sign}; #[derive(Default)] pub struct DummySigner(Vec<u8>); impl Sign for DummySigner { fn get_sign(&self) -> Result<Vec<u8>> { Ok(self.0.clone()) } } impl Write for DummySigner { fn write(&mut self, buf: &[u8]) -> std::io::Result<usize> { self.0.write(buf) } fn flush(&mut self) -> std::io::Result<()> { Ok(()) } } let mut header = Map::new(); header.insert("custom".to_owned(), json!("custom_value")); let detached_jws = detached_jws::serialize( "test_algorithm".to_owned(), header, &mut vec![0, 1, 2, 3, 4, 5, 6].as_slice(), &mut DummySigner::default()).unwrap(); assert_eq!( String::from_utf8(detached_jws).unwrap(), "eyJhbGciOiJ0ZXN0X2FsZ29yaXRobSIsImN1c3RvbSI6ImN1c3RvbV92YWx1ZSJ9..ZXlKaGJHY2lPaUowWlhOMFgyRnNaMjl5YVhSb2JTSXNJbU4xYzNSdmJTSTZJbU4xYzNSdmJWOTJZV3gxWlNKOS5BQUVDQXdRRkJn");