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
use std::default::Default;

#[derive(Debug, Clone, Copy, PartialEq, Serialize, Deserialize)]
pub enum Algorithm {
    HS256,
    HS384,
    HS512,
    RS256,
    RS384,
    RS512,
    ES256,
    ES384,
    ES512,
}

#[derive(Debug, PartialEq, Serialize, Deserialize)]
pub struct Header {
    pub alg: Algorithm,
    pub typ: String
}

impl Default for Algorithm {
    fn default() -> Algorithm {
        Algorithm::HS256
    }
}

impl Header {
    pub fn new(alg: Algorithm) -> Header {
        Header {alg: alg, typ: "JWT".to_string()}
    }
}