1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
use std::default::Default; #[deprecated(note = "Please use jwt::Header instead")] #[derive(Debug, PartialEq, Serialize, Deserialize)] pub struct Header { pub typ: Option<HeaderType>, pub kid: Option<String>, pub alg: Algorithm, } #[deprecated(note = "Please use jwt::header::HeaderType instead")] #[derive(Debug, PartialEq, Serialize, Deserialize)] pub enum HeaderType { JWT, } #[deprecated(note = "Please use jwt::algorithm::AlgorithmType instead")] #[derive(Debug, PartialEq, Serialize, Deserialize)] pub enum Algorithm { HS256, RS256, } impl Default for Header { fn default() -> Header { Header { typ: Some(HeaderType::JWT), kid: None, alg: Algorithm::HS256, } } } #[cfg(test)] mod tests { use crate::legacy::header::{Algorithm, Header, HeaderType}; use crate::legacy::Component; #[test] fn from_base64() { let enc = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9"; let header = Header::from_base64(enc).unwrap(); assert_eq!(header.typ.unwrap(), HeaderType::JWT); assert_eq!(header.alg, Algorithm::HS256); let enc = "eyJhbGciOiJSUzI1NiIsImtpZCI6IjFLU0YzZyJ9"; let header = Header::from_base64(enc).unwrap(); assert_eq!(header.kid.unwrap(), "1KSF3g".to_string()); assert_eq!(header.alg, Algorithm::RS256); } #[test] fn roundtrip() { let header: Header = Default::default(); let enc = Component::to_base64(&header).unwrap(); assert_eq!(header, Header::from_base64(&*enc).unwrap()); } }