Avoid allocation

This commit is contained in:
Vincent Prouillet 2021-02-19 21:20:47 +01:00
parent 2aad217087
commit f50e4901cb
2 changed files with 8 additions and 8 deletions

View File

@ -154,17 +154,17 @@ impl<'a> DecodingKey<'a> {
/// If the token or its signature is invalid, it will return an error. /// If the token or its signature is invalid, it will return an error.
/// ///
/// ```rust/// /// ```rust///
/// use jsonwebtoken::{verify_sig, DecodingKey, Validation, Algorithm}; /// use jsonwebtoken::{verify_signature, DecodingKey, Validation, Algorithm};
/// ///
/// ///
/// let token = "a.jwt.token".to_string(); /// let token = "a.jwt.token".to_string();
/// let token_message = verify_sig(&token, &DecodingKey::from_secret("secret".as_ref()), &Validation::new(Algorithm::HS256)); /// let token_message = verify_signature(&token, &DecodingKey::from_secret("secret".as_ref()), &Validation::new(Algorithm::HS256));
/// ``` /// ```
pub fn verify_sig( pub fn verify_signature<'a>(
token: &str, token: &'a str,
key: &DecodingKey, key: &DecodingKey,
validation: &Validation, validation: &Validation,
) -> Result<(Header, String)> { ) -> Result<(Header, &'a str)> {
for alg in &validation.algorithms { for alg in &validation.algorithms {
if key.family != alg.family() { if key.family != alg.family() {
return Err(new_error(ErrorKind::InvalidAlgorithm)); return Err(new_error(ErrorKind::InvalidAlgorithm));
@ -183,7 +183,7 @@ pub fn verify_sig(
return Err(new_error(ErrorKind::InvalidSignature)); return Err(new_error(ErrorKind::InvalidSignature));
} }
Ok((header, payload.to_string())) Ok((header, payload))
} }
/// Decode and validate a JWT /// Decode and validate a JWT
@ -209,7 +209,7 @@ pub fn decode<T: DeserializeOwned>(
key: &DecodingKey, key: &DecodingKey,
validation: &Validation, validation: &Validation,
) -> Result<TokenData<T>> { ) -> Result<TokenData<T>> {
match verify_sig(token, key, validation) { match verify_signature(token, key, validation) {
Err(e) => Err(e), Err(e) => Err(e),
Ok((header, claims)) => { Ok((header, claims)) => {
let (decoded_claims, claims_map): (T, _) = from_jwt_part_claims(claims)?; let (decoded_claims, claims_map): (T, _) = from_jwt_part_claims(claims)?;

View File

@ -18,7 +18,7 @@ mod validation;
pub use algorithms::Algorithm; pub use algorithms::Algorithm;
pub use decoding::{ pub use decoding::{
dangerous_insecure_decode, dangerous_insecure_decode_with_validation, decode, decode_header, dangerous_insecure_decode, dangerous_insecure_decode_with_validation, decode, decode_header,
verify_sig, DecodingKey, TokenData, verify_signature, DecodingKey, TokenData,
}; };
pub use encoding::{encode, EncodingKey}; pub use encoding::{encode, EncodingKey};
pub use header::Header; pub use header::Header;