@@ -8,7 +8,7 @@ use serde_derive::{Deserialize, Serialize};
88use serde_json:: { to_string_pretty, Value } ;
99
1010use super :: {
11- jwt_utils:: { decoding_key_from_jwks_secret, get_secret, JWTError , JWTResult , SecretFileType } ,
11+ jwt_utils:: { decoding_key_from_jwks_secret, get_secret, JWTError , JWTResult , SecretType } ,
1212 models:: { ScrollableTxt , TabRoute , TabsState } ,
1313 ActiveBlock , App , Route , RouteId , TextInput ,
1414} ;
@@ -227,6 +227,7 @@ fn decode_token(
227227 let mut secret_validator = Validation :: new ( algorithm) ;
228228
229229 secret_validator. leeway = 1000 ;
230+ secret_validator. validate_aud = false ;
230231
231232 if arguments. ignore_exp {
232233 secret_validator
@@ -255,31 +256,41 @@ fn decoding_key_from_secret(
255256 let ( secret, file_type) = get_secret ( alg, secret_string) ;
256257 let secret = secret?;
257258 match alg {
258- Algorithm :: HS256 | Algorithm :: HS384 | Algorithm :: HS512 => Ok ( DecodingKey :: from_secret ( & secret) ) ,
259+ Algorithm :: HS256 | Algorithm :: HS384 | Algorithm :: HS512 => match file_type {
260+ SecretType :: Plain => Ok ( DecodingKey :: from_secret ( & secret) ) ,
261+ SecretType :: Jwks => decoding_key_from_jwks_secret ( & secret, header) ,
262+ SecretType :: B64 => {
263+ DecodingKey :: from_base64_secret ( std:: str:: from_utf8 ( & secret) ?) . map_err ( Error :: into)
264+ }
265+ _ => Err ( JWTError :: Internal ( format ! (
266+ "Invalid secret file type for {alg:?}"
267+ ) ) ) ,
268+ } ,
259269 Algorithm :: RS256
260270 | Algorithm :: RS384
261271 | Algorithm :: RS512
262272 | Algorithm :: PS256
263273 | Algorithm :: PS384
264274 | Algorithm :: PS512 => match file_type {
265- SecretFileType :: Pem => DecodingKey :: from_rsa_pem ( & secret) . map_err ( Error :: into) ,
266- SecretFileType :: Der => Ok ( DecodingKey :: from_rsa_der ( & secret) ) ,
267- SecretFileType :: Jwks => decoding_key_from_jwks_secret ( & secret, header) ,
275+ SecretType :: Pem => DecodingKey :: from_rsa_pem ( & secret) . map_err ( Error :: into) ,
276+ SecretType :: Der => Ok ( DecodingKey :: from_rsa_der ( & secret) ) ,
277+ SecretType :: Jwks => decoding_key_from_jwks_secret ( & secret, header) ,
268278 _ => Err ( JWTError :: Internal ( format ! (
269279 "Invalid secret file type for {alg:?}"
270280 ) ) ) ,
271281 } ,
272282 Algorithm :: ES256 | Algorithm :: ES384 => match file_type {
273- SecretFileType :: Pem => DecodingKey :: from_ec_pem ( & secret) . map_err ( Error :: into) ,
274- SecretFileType :: Der => Ok ( DecodingKey :: from_ec_der ( & secret) ) ,
275- SecretFileType :: Jwks => decoding_key_from_jwks_secret ( & secret, header) ,
283+ SecretType :: Pem => DecodingKey :: from_ec_pem ( & secret) . map_err ( Error :: into) ,
284+ SecretType :: Der => Ok ( DecodingKey :: from_ec_der ( & secret) ) ,
285+ SecretType :: Jwks => decoding_key_from_jwks_secret ( & secret, header) ,
276286 _ => Err ( JWTError :: Internal ( format ! (
277287 "Invalid secret file type for {alg:?}"
278288 ) ) ) ,
279289 } ,
280290 Algorithm :: EdDSA => match file_type {
281- SecretFileType :: Pem => DecodingKey :: from_ed_pem ( & secret) . map_err ( Error :: into) ,
282- SecretFileType :: Der => Ok ( DecodingKey :: from_ed_der ( & secret) ) ,
291+ SecretType :: Pem => DecodingKey :: from_ed_pem ( & secret) . map_err ( Error :: into) ,
292+ SecretType :: Der => Ok ( DecodingKey :: from_ed_der ( & secret) ) ,
293+ SecretType :: Jwks => decoding_key_from_jwks_secret ( & secret, header) ,
283294 _ => Err ( JWTError :: Internal ( format ! (
284295 "Invalid secret file type for {alg:?}"
285296 ) ) ) ,
0 commit comments