Struct jwt_compact::prelude::Header [−][src]
#[non_exhaustive]pub struct Header { pub key_set_url: Option<String>, pub key_id: Option<String>, pub certificate_url: Option<String>, pub certificate_sha1_thumbprint: Option<[u8; 20]>, pub certificate_thumbprint: Option<[u8; 32]>, pub token_type: Option<String>, }
Expand description
JWT header.
See RFC 7515 for the description
of the fields. The purpose of all fields except token_type
is to determine
the verifying key. Since these values will be provided by the adversary in the case of
an attack, they require additional verification (e.g., a provided certificate might
be checked against the list of “acceptable” certificate authorities).
A Header
can be created using Default
implementation, which does not set any fields.
For added fluency, you may use with_*
methods:
use sha2::{digest::Digest, Sha256}; let my_key_cert = // DER-encoded key certificate let header = Header::default() .with_key_id("my-key-id") .with_certificate_thumbprint(Sha256::digest(my_key_cert).into());
Fields (Non-exhaustive)
This struct is marked as non-exhaustive
Struct {{ .. }}
syntax; cannot be matched against without a wildcard ..
; and struct update syntax will not work.key_set_url: Option<String>
URL of the JSON Web Key Set containing the key that has signed the token.
This field is renamed to jku
for serialization.
key_id: Option<String>
Identifier of the key that has signed the token. This field is renamed to kid
for serialization.
certificate_url: Option<String>
URL of the X.509 certificate for the signing key. This field is renamed to x5u
for serialization.
certificate_sha1_thumbprint: Option<[u8; 20]>
SHA-1 thumbprint of the X.509 certificate for the signing key.
This field is renamed to x5t
for serialization.
certificate_thumbprint: Option<[u8; 32]>
SHA-256 thumbprint of the X.509 certificate for the signing key.
This field is renamed to x5t#S256
for serialization.
token_type: Option<String>
Application-specific token type. This field is renamed to typ
for serialization.
Implementations
impl Header
[src]
impl Header
[src]pub fn with_key_set_url(self, key_set_url: impl Into<String>) -> Self
[src]
pub fn with_key_set_url(self, key_set_url: impl Into<String>) -> Self
[src]Sets the key_set_url
field for this header.
pub fn with_key_id(self, key_id: impl Into<String>) -> Self
[src]
pub fn with_key_id(self, key_id: impl Into<String>) -> Self
[src]Sets the key_id
field for this header.
pub fn with_certificate_url(self, certificate_url: impl Into<String>) -> Self
[src]
pub fn with_certificate_url(self, certificate_url: impl Into<String>) -> Self
[src]Sets the certificate_url
field for this header.
pub fn with_certificate_sha1_thumbprint(
self,
certificate_thumbprint: [u8; 20]
) -> Self
[src]
pub fn with_certificate_sha1_thumbprint(
self,
certificate_thumbprint: [u8; 20]
) -> Self
[src]Sets the certificate_sha1_thumbprint
field for this header.
pub fn with_certificate_thumbprint(
self,
certificate_thumbprint: [u8; 32]
) -> Self
[src]
pub fn with_certificate_thumbprint(
self,
certificate_thumbprint: [u8; 32]
) -> Self
[src]Sets the certificate_thumbprint
field for this header.
pub fn with_token_type(self, token_type: impl Into<String>) -> Self
[src]
pub fn with_token_type(self, token_type: impl Into<String>) -> Self
[src]Sets the token_type
field for this header.
Trait Implementations
impl<'de> Deserialize<'de> for Header
[src]
impl<'de> Deserialize<'de> for Header
[src]fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
[src]
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
[src]Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations
impl RefUnwindSafe for Header
impl Send for Header
impl Sync for Header
impl Unpin for Header
impl UnwindSafe for Header
Blanket Implementations
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]pub fn borrow_mut(&mut self) -> &mut T
[src]
pub fn borrow_mut(&mut self) -> &mut T
[src]Mutably borrows from an owned value. Read more
impl<T> Same<T> for T
impl<T> Same<T> for T
type Output = T
type Output = T
Should always be Self
impl<T> ToOwned for T where
T: Clone,
[src]
impl<T> ToOwned for T where
T: Clone,
[src]type Owned = T
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn to_owned(&self) -> T
[src]Creates owned data from borrowed data, usually by cloning. Read more
pub fn clone_into(&self, target: &mut T)
[src]
pub fn clone_into(&self, target: &mut T)
[src]🔬 This is a nightly-only experimental API. (toowned_clone_into
)
recently added
Uses borrowed data to replace owned data, usually by cloning. Read more
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
pub fn vzip(self) -> V
impl<T> DeserializeOwned for T where
T: for<'de> Deserialize<'de>,
[src]
T: for<'de> Deserialize<'de>,