@@ -8,7 +8,7 @@ use serde_derive::{Deserialize, Serialize};
8
8
use serde_json:: { to_string_pretty, Value } ;
9
9
10
10
use 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 } ,
12
12
models:: { ScrollableTxt , TabRoute , TabsState } ,
13
13
ActiveBlock , App , Route , RouteId , TextInput ,
14
14
} ;
@@ -227,6 +227,7 @@ fn decode_token(
227
227
let mut secret_validator = Validation :: new ( algorithm) ;
228
228
229
229
secret_validator. leeway = 1000 ;
230
+ secret_validator. validate_aud = false ;
230
231
231
232
if arguments. ignore_exp {
232
233
secret_validator
@@ -255,31 +256,41 @@ fn decoding_key_from_secret(
255
256
let ( secret, file_type) = get_secret ( alg, secret_string) ;
256
257
let secret = secret?;
257
258
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
+ } ,
259
269
Algorithm :: RS256
260
270
| Algorithm :: RS384
261
271
| Algorithm :: RS512
262
272
| Algorithm :: PS256
263
273
| Algorithm :: PS384
264
274
| 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) ,
268
278
_ => Err ( JWTError :: Internal ( format ! (
269
279
"Invalid secret file type for {alg:?}"
270
280
) ) ) ,
271
281
} ,
272
282
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) ,
276
286
_ => Err ( JWTError :: Internal ( format ! (
277
287
"Invalid secret file type for {alg:?}"
278
288
) ) ) ,
279
289
} ,
280
290
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) ,
283
294
_ => Err ( JWTError :: Internal ( format ! (
284
295
"Invalid secret file type for {alg:?}"
285
296
) ) ) ,
0 commit comments