Revert "fix: bad jwk panic"

This reverts commit ed386ec972.

reverting because alg is optional in jwk spec (RFC7517#section-4.4), algs needed for validation can be "guessed" from the key type
This commit is contained in:
cduvray 2023-11-15 07:41:58 +01:00
parent bc90802639
commit d740102908

View file

@ -1,6 +1,6 @@
use std::{str::FromStr, sync::Arc};
use jsonwebtoken::{errors::ErrorKind, jwk::Jwk, Algorithm, DecodingKey, Header};
use jsonwebtoken::{jwk::Jwk, Algorithm, DecodingKey, Header};
use crate::error::AuthError;
@ -29,13 +29,7 @@ impl KeyData {
pub fn from_jwk(key: &Jwk) -> Result<KeyData, jsonwebtoken::errors::Error> {
Ok(KeyData {
kid: key.common.key_id.clone(),
alg: vec![Algorithm::from_str(
key.common
.key_algorithm
.ok_or(jsonwebtoken::errors::Error::from(ErrorKind::MissingAlgorithm))?
.to_string()
.as_str(),
)?],
alg: vec![Algorithm::from_str(key.common.key_algorithm.unwrap().to_string().as_str())?],
key: DecodingKey::from_jwk(key)?,
})
}
@ -88,24 +82,3 @@ impl KeySource {
}
}
}
#[cfg(test)]
mod tests {
use jsonwebtoken::{errors::ErrorKind, jwk::Jwk};
use super::KeyData;
#[test]
fn key_data_no_alg() {
// NO ALG should result in ErrorKind::MissingAlgorithm
let jwk_ko: Jwk = serde_json::from_str( r#"{
"kty": "RSA",
"n": "2pQeZdxa7q093K7bj5h6-leIpxfTnuAxzXdhjfGEJHxmt2ekHyCBWWWXCBiDn2RTcEBcy6gZqOW45Uy_tw-5e-Px1xFj1PykGEkRlOpYSAeWsNaAWvvpGB9m4zQ0PgZeMDDXE5IIBrY6YAzmGQxV-fcGGLhJnXl0-5_z7tKC7RvBoT3SGwlc_AmJqpFtTpEBn_fDnyqiZbpcjXYLExFpExm41xDitRKHWIwfc3dV8_vlNntlxCPGy_THkjdXJoHv2IJmlhvmr5_h03iGMLWDKSywxOol_4Wc1BT7Hb6byMxW40GKwSJJ4p7W8eI5mqggRHc8jlwSsTN9LZ2VOvO-XiVShZRVg7JeraGAfWwaIgIJ1D8C1h5Pi0iFpp2suxpHAXHfyLMJXuVotpXbDh4NDX-A4KRMgaxcfAcui_x6gybksq6gF90-9nfQfmVMVJctZ6M-FvRr-itd1Nef5WAtwUp1qyZygAXU3cH3rarscajmurOsP6dE1OHl3grY_eZhQxk33VBK9lavqNKPg6Q_PLiq1ojbYBj3bcYifJrsNeQwxldQP83aWt5rGtgZTehKVJwa40Uy_Grae1iRnsDtdSy5sTJIJ6EiShnWAdMoGejdiI8vpkjrdU8SWH8lv1KXI54DsbyAuke2cYz02zPWc6JEotQqI0HwhzU0KHyoY4s",
"e": "AQAB",
"kid": "rsa01",
"use": "sig"
}"#).unwrap();
let ks = KeyData::from_jwk(&jwk_ko);
assert_eq!(ks.err().unwrap().kind(), &ErrorKind::MissingAlgorithm);
}
}