From e434db1b0840ec8949ccb7d1d2050afb0f7f3ec4 Mon Sep 17 00:00:00 2001 From: Wouter Geraedts Date: Tue, 8 Nov 2022 13:44:24 +0100 Subject: [PATCH] Fixed decoding of token when validation has multiple families of algorithms --- src/decoding.rs | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/decoding.rs b/src/decoding.rs index 145a24d8..ab51299c 100644 --- a/src/decoding.rs +++ b/src/decoding.rs @@ -156,12 +156,10 @@ fn verify_signature<'a>( return Err(new_error(ErrorKind::MissingAlgorithm)); } - if validation.validate_signature { - for alg in &validation.algorithms { - if key.family != alg.family() { - return Err(new_error(ErrorKind::InvalidAlgorithm)); - } - } + if validation.validate_signature + && !validation.algorithms.iter().any(|alg| key.family == alg.family()) + { + return Err(new_error(ErrorKind::InvalidAlgorithm)); } let (signature, message) = expect_two!(token.rsplitn(2, '.'));