From 8495d47d0b295f6c19fa43d29eac14525ac87ee7 Mon Sep 17 00:00:00 2001 From: xvzcf Date: Wed, 19 Jun 2024 17:40:37 -0400 Subject: [PATCH 01/13] Laying groundwork for verification. --- libcrux-ml-dsa/src/arithmetic.rs | 23 +-- libcrux-ml-dsa/src/encoding/error.rs | 2 +- libcrux-ml-dsa/src/encoding/t0.rs | 2 +- libcrux-ml-dsa/src/encoding/t1.rs | 74 +++++++- libcrux-ml-dsa/src/matrix.rs | 30 +++- libcrux-ml-dsa/src/ml_dsa_65.rs | 21 +++ libcrux-ml-dsa/src/ml_dsa_generic.rs | 244 +++++++++++++++++++++------ libcrux-ml-dsa/src/ntt.rs | 30 ++-- 8 files changed, 348 insertions(+), 78 deletions(-) diff --git a/libcrux-ml-dsa/src/arithmetic.rs b/libcrux-ml-dsa/src/arithmetic.rs index 09192f902..b330b3a2b 100644 --- a/libcrux-ml-dsa/src/arithmetic.rs +++ b/libcrux-ml-dsa/src/arithmetic.rs @@ -182,6 +182,7 @@ pub(crate) fn power2round_vector( // - α/2 ≤ r₀ < 0. // // Note that 0 ≤ r₁ < (q-1)/α. +#[allow(non_snake_case)] #[inline(always)] fn decompose(r: i32) -> (i32, i32) { debug_assert!( @@ -193,13 +194,13 @@ fn decompose(r: i32) -> (i32, i32) { // Convert the signed representative to the standard unsigned one. let r = r + ((r >> 31) & FIELD_MODULUS); - let alpha = GAMMA2 * 2; + let ALPHA = GAMMA2 * 2; let r1 = { // Compute ⌈r / 128⌉ let ceil_of_r_by_128 = (r + 127) >> 7; - match alpha { + match ALPHA { 190_464 => { // We approximate 1 / 1488 as: // ⌊2²⁴ / 1488⌋ / 2²⁴ = 11,275 / 2²⁴ @@ -220,7 +221,7 @@ fn decompose(r: i32) -> (i32, i32) { } }; - let mut r0 = r - (r1 * alpha); + let mut r0 = r - (r1 * ALPHA); // In the corner-case, when we set a₁=0, we will incorrectly // have a₀ > (q-1)/2 and we'll need to subtract q. As we @@ -253,30 +254,30 @@ pub(crate) fn decompose_vector( } #[inline(always)] -fn make_hint(low: i32, high: i32) -> bool { +fn compute_hint_value(low: i32, high: i32) -> bool { (low > GAMMA2) || (low < -GAMMA2) || (low == -GAMMA2 && high != 0) } #[inline(always)] -pub(crate) fn make_hint_vector( +pub(crate) fn make_hint( low: [PolynomialRingElement; DIMENSION], high: [PolynomialRingElement; DIMENSION], ) -> ([[bool; COEFFICIENTS_IN_RING_ELEMENT]; DIMENSION], usize) { - let mut hint_vector = [[false; COEFFICIENTS_IN_RING_ELEMENT]; DIMENSION]; - let mut hints_of_one = 0; + let mut hint = [[false; COEFFICIENTS_IN_RING_ELEMENT]; DIMENSION]; + let mut true_hints = 0; for i in 0..DIMENSION { for j in 0..COEFFICIENTS_IN_RING_ELEMENT { - hint_vector[i][j] = - make_hint::(low[i].coefficients[j], high[i].coefficients[j]); + hint[i][j] = + compute_hint_value::(low[i].coefficients[j], high[i].coefficients[j]); // From https://doc.rust-lang.org/std/primitive.bool.html: // "If you cast a bool into an integer, true will be 1 and false will be 0." - hints_of_one += hint_vector[i][j] as usize; + true_hints += hint[i][j] as usize; } } - (hint_vector, hints_of_one) + (hint, true_hints) } #[cfg(test)] diff --git a/libcrux-ml-dsa/src/encoding/error.rs b/libcrux-ml-dsa/src/encoding/error.rs index 9862e73fb..36bf7facb 100644 --- a/libcrux-ml-dsa/src/encoding/error.rs +++ b/libcrux-ml-dsa/src/encoding/error.rs @@ -120,7 +120,7 @@ pub(crate) fn deserialize_to_vector_then_ntt< let mut ring_elements = [PolynomialRingElement::ZERO; DIMENSION]; for (i, bytes) in serialized.chunks(RING_ELEMENT_SIZE).enumerate() { - ring_elements[i] = ntt(deserialize::(bytes)); + ring_elements[i] = ntt::<0>(deserialize::(bytes)); } ring_elements diff --git a/libcrux-ml-dsa/src/encoding/t0.rs b/libcrux-ml-dsa/src/encoding/t0.rs index 85910d314..45e20b11b 100644 --- a/libcrux-ml-dsa/src/encoding/t0.rs +++ b/libcrux-ml-dsa/src/encoding/t0.rs @@ -143,7 +143,7 @@ pub(crate) fn deserialize_to_vector_then_ntt( let mut ring_elements = [PolynomialRingElement::ZERO; DIMENSION]; for (i, bytes) in serialized.chunks(RING_ELEMENT_OF_T0S_SIZE).enumerate() { - ring_elements[i] = ntt(deserialize(bytes)); + ring_elements[i] = ntt::<0>(deserialize(bytes)); } ring_elements diff --git a/libcrux-ml-dsa/src/encoding/t1.rs b/libcrux-ml-dsa/src/encoding/t1.rs index e4949f1dd..e393c6e12 100644 --- a/libcrux-ml-dsa/src/encoding/t1.rs +++ b/libcrux-ml-dsa/src/encoding/t1.rs @@ -1,4 +1,9 @@ -use crate::{arithmetic::PolynomialRingElement, constants::RING_ELEMENT_OF_T1S_SIZE}; +use crate::{ + arithmetic::PolynomialRingElement, + constants::{BITS_IN_UPPER_PART_OF_T, RING_ELEMENT_OF_T1S_SIZE}, +}; + +// Each coefficient takes up 10 bits. #[inline(always)] pub(crate) fn serialize(re: PolynomialRingElement) -> [u8; RING_ELEMENT_OF_T1S_SIZE] { @@ -18,12 +23,34 @@ pub(crate) fn serialize(re: PolynomialRingElement) -> [u8; RING_ELEMENT_OF_T1S_S serialized } +pub(crate) fn deserialize(serialized: &[u8]) -> PolynomialRingElement { + debug_assert_eq!(serialized.len(), RING_ELEMENT_OF_T1S_SIZE); + + let mut out = PolynomialRingElement::ZERO; + let mask = (1 << BITS_IN_UPPER_PART_OF_T) - 1; + + for (i, bytes) in serialized.chunks_exact(5).enumerate() { + let byte0 = bytes[0] as i32; + let byte1 = bytes[1] as i32; + let byte2 = bytes[2] as i32; + let byte3 = bytes[3] as i32; + let byte4 = bytes[4] as i32; + + out.coefficients[4 * i + 0] = ((byte0 >> 0) | (byte1 << 8)) & mask; + out.coefficients[4 * i + 1] = ((byte1 >> 2) | (byte2 << 6)) & mask; + out.coefficients[4 * i + 2] = ((byte2 >> 4) | (byte3 << 4)) & mask; + out.coefficients[4 * i + 3] = ((byte3 >> 6) | (byte4 << 2)) & mask; + } + + out +} + #[cfg(test)] mod tests { use super::*; #[test] - fn test_serialize_t1() { + fn test_serialize() { let re = PolynomialRingElement { coefficients: [ 127, 627, 86, 834, 463, 169, 792, 8, 595, 212, 1015, 213, 321, 501, 471, 633, 686, @@ -68,4 +95,47 @@ mod tests { assert_eq!(serialize(re), expected_re_serialized); } + + #[test] + fn test_deserialize() { + let serialized = [ + 119, 58, 128, 223, 132, 103, 124, 239, 83, 8, 180, 159, 151, 194, 206, 175, 85, 51, 94, + 182, 82, 48, 222, 183, 22, 181, 204, 94, 31, 8, 252, 22, 248, 249, 50, 217, 158, 209, + 158, 215, 152, 9, 2, 51, 197, 189, 243, 123, 155, 192, 182, 82, 253, 93, 123, 241, 67, + 175, 236, 91, 205, 195, 152, 48, 20, 117, 249, 157, 65, 105, 116, 191, 254, 179, 184, + 178, 86, 110, 123, 40, 127, 66, 226, 251, 180, 221, 70, 171, 27, 145, 75, 229, 102, 33, + 254, 69, 18, 55, 189, 90, 133, 26, 192, 66, 97, 120, 137, 64, 152, 90, 120, 254, 138, + 26, 134, 116, 225, 126, 160, 45, 255, 68, 150, 244, 125, 184, 189, 8, 190, 165, 31, + 108, 10, 207, 68, 166, 68, 47, 127, 232, 0, 52, 14, 171, 159, 205, 16, 200, 137, 149, + 99, 140, 175, 130, 58, 230, 43, 36, 18, 121, 248, 65, 112, 155, 184, 223, 79, 159, 176, + 172, 117, 19, 242, 54, 92, 36, 52, 236, 37, 34, 244, 231, 120, 103, 75, 78, 210, 112, + 74, 40, 36, 204, 49, 235, 223, 9, 78, 158, 49, 106, 179, 143, 198, 19, 74, 248, 57, 22, + 104, 205, 240, 27, 172, 23, 183, 127, 102, 172, 198, 106, 213, 26, 138, 197, 241, 15, + 103, 169, 114, 47, 115, 55, 79, 19, 238, 239, 64, 27, 173, 112, 148, 186, 212, 215, 67, + 162, 77, 110, 153, 19, 153, 109, 144, 25, 2, 98, 64, 191, 88, 138, 95, 115, 180, 131, + 19, 137, 77, 51, 9, 126, 146, 94, 25, 135, 222, 245, 80, 19, 39, 167, 171, 134, 144, + 34, 8, 15, 76, 179, 46, 39, 255, 150, 204, 84, 190, 181, 193, 4, 118, 35, 81, 105, 15, + 35, 233, 118, 139, 243, 93, 95, 164, 67, 55, 220, 228, 206, 104, 38, 25, 225, + ]; + + let expected_coefficients = [ + 631, 14, 504, 531, 103, 991, 318, 33, 948, 487, 41, 827, 431, 213, 483, 729, 82, 908, + 893, 90, 181, 947, 501, 32, 764, 517, 927, 203, 729, 103, 493, 862, 408, 130, 816, 788, + 957, 764, 439, 770, 694, 852, 479, 493, 1009, 976, 714, 367, 973, 560, 777, 80, 373, + 894, 25, 421, 884, 943, 831, 738, 690, 917, 950, 161, 639, 144, 958, 723, 733, 721, + 442, 580, 331, 441, 534, 1016, 581, 452, 979, 362, 645, 6, 44, 389, 376, 34, 388, 362, + 632, 703, 424, 536, 372, 952, 519, 182, 255, 401, 841, 503, 440, 559, 992, 662, 31, + 667, 240, 275, 166, 977, 1010, 929, 0, 909, 688, 638, 205, 516, 156, 598, 99, 995, 42, + 234, 998, 266, 290, 484, 504, 16, 439, 738, 991, 979, 777, 690, 885, 132, 879, 368, 36, + 781, 606, 136, 1012, 569, 631, 301, 590, 52, 167, 161, 36, 115, 691, 895, 521, 915, + 793, 424, 947, 419, 316, 296, 504, 398, 641, 821, 1008, 774, 378, 732, 639, 793, 106, + 427, 725, 646, 88, 967, 783, 601, 810, 189, 883, 973, 308, 952, 239, 720, 721, 450, + 660, 302, 381, 271, 418, 915, 406, 78, 409, 27, 409, 8, 98, 976, 395, 553, 863, 284, + 59, 78, 393, 211, 147, 504, 658, 599, 113, 890, 245, 212, 625, 668, 683, 33, 553, 32, + 15, 211, 747, 156, 767, 805, 332, 761, 437, 304, 864, 141, 337, 986, 560, 932, 886, + 226, 479, 381, 932, 464, 451, 915, 206, 410, 402, 900, + ]; + + assert_eq!(deserialize(&serialized).coefficients, expected_coefficients); + } } diff --git a/libcrux-ml-dsa/src/matrix.rs b/libcrux-ml-dsa/src/matrix.rs index f9098081b..8e46df8a2 100644 --- a/libcrux-ml-dsa/src/matrix.rs +++ b/libcrux-ml-dsa/src/matrix.rs @@ -35,7 +35,7 @@ pub(crate) fn compute_As1_plus_s2(s1[j])); result[i] = result[i].add(&product); } @@ -57,7 +57,7 @@ pub(crate) fn compute_A_times_mask(mask[j])); result[i] = result[i].add(&product); } @@ -111,3 +111,29 @@ pub(crate) fn subtract_vectors( result } + +/// Compute InvertNTT(Â ◦ ẑ - ĉ ◦ NTT(t₁2ᵈ)) +#[allow(non_snake_case)] +#[inline(always)] +pub(crate) fn compute_w_approx( + A_as_ntt: &[[PolynomialRingElement; COLUMNS_IN_A]; ROWS_IN_A], + signer_response_as_ntt: [PolynomialRingElement; COLUMNS_IN_A], + verifier_challenge_as_ntt: PolynomialRingElement, + t1_shifted_as_ntt: [PolynomialRingElement; ROWS_IN_A], +) -> [PolynomialRingElement; ROWS_IN_A] { + let mut result = [PolynomialRingElement::ZERO; ROWS_IN_A]; + + for (i, row) in A_as_ntt.iter().enumerate() { + for (j, ring_element) in row.iter().enumerate() { + let product = ntt_multiply_montgomery(&ring_element, &signer_response_as_ntt[j]); + + result[i] = result[i].add(&product); + } + + let challenge_times_t1_shifted = + ntt_multiply_montgomery(&verifier_challenge_as_ntt, &t1_shifted_as_ntt[i]); + result[i] = invert_ntt_montgomery(result[i].sub(&challenge_times_t1_shifted)); + } + + result +} diff --git a/libcrux-ml-dsa/src/ml_dsa_65.rs b/libcrux-ml-dsa/src/ml_dsa_65.rs index 97ed5ffc2..115e828a6 100644 --- a/libcrux-ml-dsa/src/ml_dsa_65.rs +++ b/libcrux-ml-dsa/src/ml_dsa_65.rs @@ -107,3 +107,24 @@ pub fn sign( MLDSA65Signature(signature) } + +pub use crate::ml_dsa_generic::VerificationError; + +/// Verify an ML-DSA-65 Signature +pub fn verify( + verification_key: MLDSA65VerificationKey, + message: &[u8], + signature: MLDSA65Signature, +) -> Result<(), VerificationError> { + crate::ml_dsa_generic::verify::< + ROWS_IN_A, + COLUMNS_IN_A, + SIGNATURE_SIZE, + VERIFICATION_KEY_SIZE, + GAMMA1_EXPONENT, + GAMMA1_RING_ELEMENT_SIZE, + COMMITMENT_HASH_SIZE, + ONES_IN_VERIFIER_CHALLENGE, + MAX_ONES_IN_HINT, + >(verification_key.0, message, signature.0) +} diff --git a/libcrux-ml-dsa/src/ml_dsa_generic.rs b/libcrux-ml-dsa/src/ml_dsa_generic.rs index 42e64f236..f307faead 100644 --- a/libcrux-ml-dsa/src/ml_dsa_generic.rs +++ b/libcrux-ml-dsa/src/ml_dsa_generic.rs @@ -1,6 +1,6 @@ use crate::{ arithmetic::{ - decompose_vector, make_hint_vector, power2round_vector, vector_infinity_norm_exceeds, + decompose_vector, make_hint, power2round_vector, vector_infinity_norm_exceeds, PolynomialRingElement, }, constants::*, @@ -36,6 +36,26 @@ pub(super) fn generate_serialized_verification_key< verification_key_serialized } +#[allow(non_snake_case)] +#[inline(always)] +pub(super) fn deserialize_verification_key< + const ROWS_IN_A: usize, + const VERIFICATION_KEY_SIZE: usize, +>( + serialized: [u8; VERIFICATION_KEY_SIZE], +) -> ([u8; SEED_FOR_A_SIZE], [PolynomialRingElement; ROWS_IN_A]) { + let mut t1 = [PolynomialRingElement::ZERO; ROWS_IN_A]; + let (seed_for_A, serialized_remaining) = serialized.split_at(SEED_FOR_A_SIZE); + + for i in 0..ROWS_IN_A { + t1[i] = ntt::(encoding::t1::deserialize( + &serialized_remaining[i * RING_ELEMENT_OF_T1S_SIZE..(i + 1) * RING_ELEMENT_OF_T1S_SIZE], + )); + } + + (seed_for_A.try_into().unwrap(), t1) +} + #[allow(non_snake_case)] #[inline(always)] pub(super) fn generate_serialized_signing_key< @@ -101,7 +121,9 @@ pub(crate) fn generate_key_pair< >( randomness: [u8; KEY_GENERATION_RANDOMNESS_SIZE], ) -> ([u8; SIGNING_KEY_SIZE], [u8; VERIFICATION_KEY_SIZE]) { + // 128 = SEED_FOR_A_SIZE + SEED_FOR_ERROR_VECTORS_SIZE + SEED_FOR_SIGNING_SIZE let seed_expanded = H::<128>(&randomness); + let (seed_for_A, seed_expanded) = seed_expanded.split_at(SEED_FOR_A_SIZE); let (seed_for_error_vectors, seed_for_signing) = seed_expanded.split_at(SEED_FOR_ERROR_VECTORS_SIZE); @@ -144,54 +166,138 @@ pub(crate) fn generate_key_pair< (signing_key_serialized, verification_key_serialized) } -#[allow(non_snake_case)] -#[inline(always)] -pub(super) fn generate_serialized_signature< - const ROWS_IN_A: usize, - const COLUMNS_IN_A: usize, +pub enum VerificationError { + MalformedHintError, +} + +struct Signature< const COMMITMENT_HASH_SIZE: usize, - const GAMMA1_EXPONENT: usize, - const GAMMA1_RING_ELEMENT_SIZE: usize, - const MAX_ONES_IN_HINT: usize, - const SIGNATURE_SIZE: usize, ->( + const COLUMNS_IN_A: usize, + const ROWS_IN_A: usize, +> { commitment_hash: [u8; COMMITMENT_HASH_SIZE], signer_response: [PolynomialRingElement; COLUMNS_IN_A], - hint_vector: [[bool; COEFFICIENTS_IN_RING_ELEMENT]; ROWS_IN_A], -) -> [u8; SIGNATURE_SIZE] { - let mut signature = [0u8; SIGNATURE_SIZE]; - let mut offset = 0; + hint: [[bool; COEFFICIENTS_IN_RING_ELEMENT]; ROWS_IN_A], +} - signature[offset..offset + COMMITMENT_HASH_SIZE].copy_from_slice(&commitment_hash); - offset += COMMITMENT_HASH_SIZE; +impl + Signature +{ + #[allow(non_snake_case)] + #[inline(always)] + pub(super) fn serialize< + const GAMMA1_EXPONENT: usize, + const GAMMA1_RING_ELEMENT_SIZE: usize, + const MAX_ONES_IN_HINT: usize, + const SIGNATURE_SIZE: usize, + >( + &self, + ) -> [u8; SIGNATURE_SIZE] { + let mut signature = [0u8; SIGNATURE_SIZE]; + let mut offset = 0; + + signature[offset..offset + COMMITMENT_HASH_SIZE].copy_from_slice(&self.commitment_hash); + offset += COMMITMENT_HASH_SIZE; + + for i in 0..COLUMNS_IN_A { + signature[offset..offset + GAMMA1_RING_ELEMENT_SIZE].copy_from_slice( + &encoding::gamma1::serialize::( + self.signer_response[i], + ), + ); + offset += GAMMA1_RING_ELEMENT_SIZE; + } - for i in 0..COLUMNS_IN_A { - signature[offset..offset + GAMMA1_RING_ELEMENT_SIZE].copy_from_slice( - &encoding::gamma1::serialize::( - signer_response[i], - ), - ); - offset += GAMMA1_RING_ELEMENT_SIZE; - } + for i in offset..offset + (MAX_ONES_IN_HINT + ROWS_IN_A) { + signature[i] = 0; + } + + let mut one_count = 0; + let hint_serialized = &mut signature[offset..]; + + for i in 0..ROWS_IN_A { + for (j, hint) in self.hint[i].into_iter().enumerate() { + if hint == true { + hint_serialized[one_count] = j as u8; + one_count += 1; + } + } + hint_serialized[MAX_ONES_IN_HINT + i] = one_count as u8; + } - for i in offset..offset + (MAX_ONES_IN_HINT + ROWS_IN_A) { - signature[i] = 0; + signature } - let mut one_count = 0; - let hint_serialized = &mut signature[offset..]; + #[allow(non_snake_case)] + #[inline(always)] + pub(super) fn deserialize< + const GAMMA1_EXPONENT: usize, + const GAMMA1_RING_ELEMENT_SIZE: usize, + const MAX_ONES_IN_HINT: usize, + const SIGNATURE_SIZE: usize, + >( + serialized: [u8; SIGNATURE_SIZE], + ) -> Result { + let (commitment_hash, rest_of_serialized) = serialized.split_at(COMMITMENT_HASH_SIZE); - for i in 0..ROWS_IN_A { - for (j, hint) in hint_vector[i].into_iter().enumerate() { - if hint == true { - hint_serialized[one_count] = j as u8; - one_count += 1; + let mut signer_response = [PolynomialRingElement::ZERO; COLUMNS_IN_A]; + + let mut offset = 0; + + for i in 0..COLUMNS_IN_A { + signer_response[i] = encoding::gamma1::deserialize::( + &rest_of_serialized[offset..offset + GAMMA1_RING_ELEMENT_SIZE], + ); + + offset += GAMMA1_RING_ELEMENT_SIZE; + } + + // While there are several ways to encode the same hint vector, we only + // allow one such encoding, to ensure "strong unforgeability". + let hint_serialized = &serialized[offset..]; + + let mut hint = [[false; COEFFICIENTS_IN_RING_ELEMENT]; ROWS_IN_A]; + + let mut previous_true_hints_count = 0usize; + + for i in 0..ROWS_IN_A { + let current_true_hints_count = hint_serialized[MAX_ONES_IN_HINT + i] as usize; + + if (current_true_hints_count < previous_true_hints_count) + || (previous_true_hints_count > MAX_ONES_IN_HINT) + { + // the true hints seen should be increasing + // + // TODO: These returns won't pass through hax, they'll need + // to be rewritten. + return Err(VerificationError::MalformedHintError); + } + + for j in previous_true_hints_count..current_true_hints_count { + if j > previous_true_hints_count && hint_serialized[j] <= hint_serialized[j - 1] { + // indices of true hints for a specific polynomial should be + // increasing + return Err(VerificationError::MalformedHintError); + } + + hint[i][hint_serialized[j] as usize] = true; + } + previous_true_hints_count = current_true_hints_count; + } + + for j in previous_true_hints_count..MAX_ONES_IN_HINT { + if hint_serialized[j] != 0 { + // ensures padding indices are zero + return Err(VerificationError::MalformedHintError); } } - hint_serialized[MAX_ONES_IN_HINT + i] = one_count as u8; - } - signature + Ok(Signature { + commitment_hash: commitment_hash.try_into().unwrap(), + signer_response, + hint, + }) + } } #[allow(non_snake_case)] @@ -261,7 +367,7 @@ pub(crate) fn sign< let mut attempt = 0; - let (commitment_hash, signer_response, hint_vector) = loop { + let (commitment_hash, signer_response, hint) = loop { attempt += 1; if attempt >= 576 { // Depending on the mode, one try has a chance between 1/7 and 1/4 @@ -295,7 +401,7 @@ pub(crate) fn sign< }; let verifier_challenge_as_ntt = - ntt(sample_challenge_ring_element::( + ntt::<0>(sample_challenge_ring_element::( commitment_hash[0..VERIFIER_CHALLENGE_SEED_SIZE] .try_into() .unwrap(), @@ -328,22 +434,66 @@ pub(crate) fn sign< let w0_minus_c_times_s2_plus_c_times_t0 = add_vectors::(&w0_minus_challenge_times_s2, &challenge_times_t0); - let (hint_vector, ones_in_hint) = - make_hint_vector::(w0_minus_c_times_s2_plus_c_times_t0, commitment); + let (hint, ones_in_hint) = + make_hint::(w0_minus_c_times_s2_plus_c_times_t0, commitment); if ones_in_hint > MAX_ONES_IN_HINT { continue; } - break (commitment_hash, signer_response, hint_vector); + break (commitment_hash, signer_response, hint); }; - generate_serialized_signature::< - ROWS_IN_A, - COLUMNS_IN_A, - COMMITMENT_HASH_SIZE, + Signature:: { + commitment_hash, + signer_response, + hint, + } + .serialize::() +} + +#[allow(non_snake_case)] +pub(crate) fn verify< + const ROWS_IN_A: usize, + const COLUMNS_IN_A: usize, + const SIGNATURE_SIZE: usize, + const VERIFICATION_KEY_SIZE: usize, + const GAMMA1_EXPONENT: usize, + const GAMMA1_RING_ELEMENT_SIZE: usize, + const COMMITMENT_HASH_SIZE: usize, + const ONES_IN_VERIFIER_CHALLENGE: usize, + const MAX_ONES_IN_HINT: usize, +>( + verification_key_serialized: [u8; VERIFICATION_KEY_SIZE], + message: &[u8], + signature_serialized: [u8; SIGNATURE_SIZE], +) -> Result<(), VerificationError> { + let (seed_for_A, t1_as_ntt) = deserialize_verification_key::( + verification_key_serialized, + ); + + let signature = Signature::::deserialize::< GAMMA1_EXPONENT, GAMMA1_RING_ELEMENT_SIZE, MAX_ONES_IN_HINT, SIGNATURE_SIZE, - >(commitment_hash, signer_response, hint_vector) + >(signature_serialized)?; + + let A_as_ntt = expand_to_A::(into_padded_array(&seed_for_A)); + + let verification_key_hash = H::(&verification_key_serialized); + let message_representative = { + let mut hash_input = verification_key_hash.to_vec(); + hash_input.extend_from_slice(message); + + H::(&hash_input[..]) + }; + + let verifier_challenge_as_ntt = + ntt::<0>(sample_challenge_ring_element::( + signature.commitment_hash[0..VERIFIER_CHALLENGE_SEED_SIZE] + .try_into() + .unwrap(), + )); + + todo!(); } diff --git a/libcrux-ml-dsa/src/ntt.rs b/libcrux-ml-dsa/src/ntt.rs index 405de096f..23bfecd11 100644 --- a/libcrux-ml-dsa/src/ntt.rs +++ b/libcrux-ml-dsa/src/ntt.rs @@ -36,7 +36,7 @@ const ZETAS_TIMES_MONTGOMERY_R: [FieldElementTimesMontgomeryR; 256] = [ ]; #[inline(always)] -fn ntt_at_layer( +fn ntt_at_layer( zeta_i: &mut usize, mut re: PolynomialRingElement, layer: usize, @@ -50,11 +50,11 @@ fn ntt_at_layer( for j in offset..offset + step { let t = montgomery_multiply_fe_by_fer( - re.coefficients[j + step], + re.coefficients[j + step] << SHIFT_COEFFICIENT_BY, ZETAS_TIMES_MONTGOMERY_R[*zeta_i], ); - re.coefficients[j + step] = re.coefficients[j] - t; - re.coefficients[j] = re.coefficients[j] + t; + re.coefficients[j + step] = (re.coefficients[j] << SHIFT_COEFFICIENT_BY) - t; + re.coefficients[j] = (re.coefficients[j] << SHIFT_COEFFICIENT_BY) + t; } } @@ -62,17 +62,19 @@ fn ntt_at_layer( } #[inline(always)] -pub(crate) fn ntt(mut re: PolynomialRingElement) -> PolynomialRingElement { +pub(crate) fn ntt( + mut re: PolynomialRingElement, +) -> PolynomialRingElement { let mut zeta_i = 0; - re = ntt_at_layer(&mut zeta_i, re, 7); - re = ntt_at_layer(&mut zeta_i, re, 6); - re = ntt_at_layer(&mut zeta_i, re, 5); - re = ntt_at_layer(&mut zeta_i, re, 4); - re = ntt_at_layer(&mut zeta_i, re, 3); - re = ntt_at_layer(&mut zeta_i, re, 2); - re = ntt_at_layer(&mut zeta_i, re, 1); - re = ntt_at_layer(&mut zeta_i, re, 0); + re = ntt_at_layer::(&mut zeta_i, re, 7); + re = ntt_at_layer::(&mut zeta_i, re, 6); + re = ntt_at_layer::(&mut zeta_i, re, 5); + re = ntt_at_layer::(&mut zeta_i, re, 4); + re = ntt_at_layer::(&mut zeta_i, re, 3); + re = ntt_at_layer::(&mut zeta_i, re, 2); + re = ntt_at_layer::(&mut zeta_i, re, 1); + re = ntt_at_layer::(&mut zeta_i, re, 0); re } @@ -211,7 +213,7 @@ mod tests { 15979738, 1459696, 8351548, 3335586, 1150210, -2462074, -4642922, 4538634, 1858098, ]; - assert_eq!(ntt(re).coefficients, expected_coefficients); + assert_eq!(ntt::<0>(re).coefficients, expected_coefficients); } #[test] From c5114c52d57a67c9d8bd68e1bb40ab9082788c1d Mon Sep 17 00:00:00 2001 From: xvzcf Date: Thu, 20 Jun 2024 12:20:29 -0400 Subject: [PATCH 02/13] First draft of ML-DSA verification. --- libcrux-ml-dsa/src/arithmetic.rs | 63 ++++++++++++++++ libcrux-ml-dsa/src/matrix.rs | 13 ++-- libcrux-ml-dsa/src/ml_dsa_65.rs | 6 ++ libcrux-ml-dsa/src/ml_dsa_generic.rs | 104 +++++++++++++++++---------- libcrux-ml-dsa/tests/nistkats.rs | 3 + 5 files changed, 148 insertions(+), 41 deletions(-) diff --git a/libcrux-ml-dsa/src/arithmetic.rs b/libcrux-ml-dsa/src/arithmetic.rs index b330b3a2b..0c89ecf76 100644 --- a/libcrux-ml-dsa/src/arithmetic.rs +++ b/libcrux-ml-dsa/src/arithmetic.rs @@ -280,6 +280,60 @@ pub(crate) fn make_hint( (hint, true_hints) } +#[inline(always)] +pub(crate) fn use_hint_value(r: i32, hint: bool) -> i32 { + let (r0, r1) = decompose::(r); + + if hint == false { + return r1; + } + + match GAMMA2 { + 95_232 => { + if r0 > 0 { + if r1 == 43 { + 0 + } else { + r1 + 1 + } + } else { + if r1 == 0 { + 43 + } else { + r1 - 1 + } + } + } + + 261_888 => { + if r0 > 0 { + (r1 + 1) & 15 + } else { + (r1 - 1) & 15 + } + } + + _ => unreachable!(), + } +} + +#[inline(always)] +pub(crate) fn use_hint( + hint: [[bool; COEFFICIENTS_IN_RING_ELEMENT]; DIMENSION], + re_vector: [PolynomialRingElement; DIMENSION], +) -> [PolynomialRingElement; DIMENSION] { + let mut result = [PolynomialRingElement::ZERO; DIMENSION]; + + for i in 0..DIMENSION { + for j in 0..COEFFICIENTS_IN_RING_ELEMENT { + result[i].coefficients[j] = + use_hint_value::(re_vector[i].coefficients[j], hint[i][j]); + } + } + + result +} + #[cfg(test)] mod tests { use super::*; @@ -310,4 +364,13 @@ mod tests { assert_eq!(decompose::<261_888>(6645076), (-164012, 13)); assert_eq!(decompose::<261_888>(7806985), (-49655, 15)); } + + #[test] + fn test_use_hint_value() { + assert_eq!(use_hint_value::<95_232>(7622170, false), 40); + assert_eq!(use_hint_value::<95_232>(2332762, true), 13); + + assert_eq!(use_hint_value::<261_888>(7691572, false), 15); + assert_eq!(use_hint_value::<261_888>(6635697, true), 12); + } } diff --git a/libcrux-ml-dsa/src/matrix.rs b/libcrux-ml-dsa/src/matrix.rs index 8e46df8a2..2f285a511 100644 --- a/libcrux-ml-dsa/src/matrix.rs +++ b/libcrux-ml-dsa/src/matrix.rs @@ -1,5 +1,6 @@ use crate::{ arithmetic::PolynomialRingElement, + constants::BITS_IN_LOWER_PART_OF_T, ntt::{invert_ntt_montgomery, ntt, ntt_multiply_montgomery}, sample::sample_ring_element_uniform, }; @@ -117,21 +118,23 @@ pub(crate) fn subtract_vectors( #[inline(always)] pub(crate) fn compute_w_approx( A_as_ntt: &[[PolynomialRingElement; COLUMNS_IN_A]; ROWS_IN_A], - signer_response_as_ntt: [PolynomialRingElement; COLUMNS_IN_A], + signer_response: [PolynomialRingElement; COLUMNS_IN_A], verifier_challenge_as_ntt: PolynomialRingElement, - t1_shifted_as_ntt: [PolynomialRingElement; ROWS_IN_A], + t1: [PolynomialRingElement; ROWS_IN_A], ) -> [PolynomialRingElement; ROWS_IN_A] { let mut result = [PolynomialRingElement::ZERO; ROWS_IN_A]; for (i, row) in A_as_ntt.iter().enumerate() { for (j, ring_element) in row.iter().enumerate() { - let product = ntt_multiply_montgomery(&ring_element, &signer_response_as_ntt[j]); + let product = ntt_multiply_montgomery(&ring_element, &ntt::<0>(signer_response[j])); result[i] = result[i].add(&product); } - let challenge_times_t1_shifted = - ntt_multiply_montgomery(&verifier_challenge_as_ntt, &t1_shifted_as_ntt[i]); + let challenge_times_t1_shifted = ntt_multiply_montgomery( + &verifier_challenge_as_ntt, + &ntt::(t1[i]), + ); result[i] = invert_ntt_montgomery(result[i].sub(&challenge_times_t1_shifted)); } diff --git a/libcrux-ml-dsa/src/ml_dsa_65.rs b/libcrux-ml-dsa/src/ml_dsa_65.rs index 115e828a6..89a4c5c59 100644 --- a/libcrux-ml-dsa/src/ml_dsa_65.rs +++ b/libcrux-ml-dsa/src/ml_dsa_65.rs @@ -29,6 +29,8 @@ const ONES_IN_VERIFIER_CHALLENGE: usize = 49; const GAMMA2: i32 = (FIELD_MODULUS - 1) / 32; +const BETA: i32 = (ONES_IN_VERIFIER_CHALLENGE * ETA) as i32; + // Commitment coefficients are in the interval: [0, ((FIELD_MODULUS − 1)/2γ2) − 1] // ((FIELD_MODULUS − 1)/2γ2) − 1 = 15, which means we need 4 bits to represent a // coefficient. @@ -123,6 +125,10 @@ pub fn verify( VERIFICATION_KEY_SIZE, GAMMA1_EXPONENT, GAMMA1_RING_ELEMENT_SIZE, + GAMMA2, + BETA, + COMMITMENT_RING_ELEMENT_SIZE, + COMMITMENT_VECTOR_SIZE, COMMITMENT_HASH_SIZE, ONES_IN_VERIFIER_CHALLENGE, MAX_ONES_IN_HINT, diff --git a/libcrux-ml-dsa/src/ml_dsa_generic.rs b/libcrux-ml-dsa/src/ml_dsa_generic.rs index f307faead..ae40e8de1 100644 --- a/libcrux-ml-dsa/src/ml_dsa_generic.rs +++ b/libcrux-ml-dsa/src/ml_dsa_generic.rs @@ -1,14 +1,14 @@ use crate::{ arithmetic::{ - decompose_vector, make_hint, power2round_vector, vector_infinity_norm_exceeds, + decompose_vector, make_hint, power2round_vector, use_hint, vector_infinity_norm_exceeds, PolynomialRingElement, }, constants::*, encoding, hash_functions::H, matrix::{ - add_vectors, compute_A_times_mask, compute_As1_plus_s2, expand_to_A, subtract_vectors, - vector_times_ring_element, + add_vectors, compute_A_times_mask, compute_As1_plus_s2, compute_w_approx, expand_to_A, + subtract_vectors, vector_times_ring_element, }, ntt::ntt, sample::{sample_challenge_ring_element, sample_error_vector, sample_mask_vector}, @@ -48,9 +48,9 @@ pub(super) fn deserialize_verification_key< let (seed_for_A, serialized_remaining) = serialized.split_at(SEED_FOR_A_SIZE); for i in 0..ROWS_IN_A { - t1[i] = ntt::(encoding::t1::deserialize( + t1[i] = encoding::t1::deserialize( &serialized_remaining[i * RING_ELEMENT_OF_T1S_SIZE..(i + 1) * RING_ELEMENT_OF_T1S_SIZE], - )); + ); } (seed_for_A.try_into().unwrap(), t1) @@ -166,8 +166,11 @@ pub(crate) fn generate_key_pair< (signing_key_serialized, verification_key_serialized) } +#[derive(Debug)] pub enum VerificationError { MalformedHintError, + SignerResponseExceedsBoundError, + CommitmentHashesDontMatchError, } struct Signature< @@ -185,7 +188,7 @@ impl Result { let (commitment_hash, rest_of_serialized) = serialized.split_at(COMMITMENT_HASH_SIZE); + let (signer_response_serialized, hint_serialized) = + rest_of_serialized.split_at(GAMMA1_RING_ELEMENT_SIZE * COLUMNS_IN_A); let mut signer_response = [PolynomialRingElement::ZERO; COLUMNS_IN_A]; - let mut offset = 0; - for i in 0..COLUMNS_IN_A { signer_response[i] = encoding::gamma1::deserialize::( - &rest_of_serialized[offset..offset + GAMMA1_RING_ELEMENT_SIZE], + &signer_response_serialized + [i * GAMMA1_RING_ELEMENT_SIZE..(i + 1) * GAMMA1_RING_ELEMENT_SIZE], ); - - offset += GAMMA1_RING_ELEMENT_SIZE; } - // While there are several ways to encode the same hint vector, we only - // allow one such encoding, to ensure "strong unforgeability". - let hint_serialized = &serialized[offset..]; - + // While there are several ways to encode the same hint vector, we + // allow only one such encoding, to ensure strong unforgeability. let mut hint = [[false; COEFFICIENTS_IN_RING_ELEMENT]; ROWS_IN_A]; - let mut previous_true_hints_count = 0usize; + let mut previous_true_hints_seen = 0usize; for i in 0..ROWS_IN_A { - let current_true_hints_count = hint_serialized[MAX_ONES_IN_HINT + i] as usize; + let current_true_hints_seen = hint_serialized[MAX_ONES_IN_HINT + i] as usize; - if (current_true_hints_count < previous_true_hints_count) - || (previous_true_hints_count > MAX_ONES_IN_HINT) + if (current_true_hints_seen < previous_true_hints_seen) + || (previous_true_hints_seen > MAX_ONES_IN_HINT) { // the true hints seen should be increasing // @@ -273,8 +269,8 @@ impl previous_true_hints_count && hint_serialized[j] <= hint_serialized[j - 1] { + for j in previous_true_hints_seen..current_true_hints_seen { + if j > previous_true_hints_seen && hint_serialized[j] <= hint_serialized[j - 1] { // indices of true hints for a specific polynomial should be // increasing return Err(VerificationError::MalformedHintError); @@ -282,10 +278,10 @@ impl(A_times_mask); let commitment_hash: [u8; COMMITMENT_HASH_SIZE] = { - let commitment_encoded = encoding::commitment::serialize_vector::< + let commitment_serialized = encoding::commitment::serialize_vector::< ROWS_IN_A, COMMITMENT_RING_ELEMENT_SIZE, COMMITMENT_VECTOR_SIZE, >(commitment); let mut hash_input = message_representative.to_vec(); - hash_input.extend_from_slice(&commitment_encoded); + hash_input.extend_from_slice(&commitment_serialized); H::(&hash_input[..]) }; @@ -459,6 +455,10 @@ pub(crate) fn verify< const VERIFICATION_KEY_SIZE: usize, const GAMMA1_EXPONENT: usize, const GAMMA1_RING_ELEMENT_SIZE: usize, + const GAMMA2: i32, + const BETA: i32, + const COMMITMENT_RING_ELEMENT_SIZE: usize, + const COMMITMENT_VECTOR_SIZE: usize, const COMMITMENT_HASH_SIZE: usize, const ONES_IN_VERIFIER_CHALLENGE: usize, const MAX_ONES_IN_HINT: usize, @@ -467,7 +467,7 @@ pub(crate) fn verify< message: &[u8], signature_serialized: [u8; SIGNATURE_SIZE], ) -> Result<(), VerificationError> { - let (seed_for_A, t1_as_ntt) = deserialize_verification_key::( + let (seed_for_A, t1) = deserialize_verification_key::( verification_key_serialized, ); @@ -478,6 +478,13 @@ pub(crate) fn verify< SIGNATURE_SIZE, >(signature_serialized)?; + if vector_infinity_norm_exceeds::( + signature.signer_response, + (2 << GAMMA1_EXPONENT) - BETA, + ) { + return Err(VerificationError::SignerResponseExceedsBoundError); + } + let A_as_ntt = expand_to_A::(into_padded_array(&seed_for_A)); let verification_key_hash = H::(&verification_key_serialized); @@ -495,5 +502,30 @@ pub(crate) fn verify< .unwrap(), )); - todo!(); + let w_approx = compute_w_approx::( + &A_as_ntt, + signature.signer_response, + verifier_challenge_as_ntt, + t1, + ); + + let commitment_hash: [u8; COMMITMENT_HASH_SIZE] = { + let commitment = use_hint::(signature.hint, w_approx); + let commitment_serialized = encoding::commitment::serialize_vector::< + ROWS_IN_A, + COMMITMENT_RING_ELEMENT_SIZE, + COMMITMENT_VECTOR_SIZE, + >(commitment); + + let mut hash_input = message_representative.to_vec(); + hash_input.extend_from_slice(&commitment_serialized); + + H::(&hash_input[..]) + }; + + if signature.commitment_hash != commitment_hash { + return Err(VerificationError::CommitmentHashesDontMatchError); + } + + Ok(()) } diff --git a/libcrux-ml-dsa/tests/nistkats.rs b/libcrux-ml-dsa/tests/nistkats.rs index 53c613995..f3b696cd9 100644 --- a/libcrux-ml-dsa/tests/nistkats.rs +++ b/libcrux-ml-dsa/tests/nistkats.rs @@ -102,6 +102,9 @@ fn ml_dsa_65_nist_known_answer_tests() { signature_hash, kat.sha3_256_hash_of_signature, "signature_hash != kat.sha3_256_hash_of_signature" ); + + libcrux_ml_dsa::ml_dsa_65::verify(key_pair.verification_key, &message, signature) + .expect("Signature was generated honestly, so verification should pass"); } } From 31a15fe328cf02548f5bb7e8f67c2c63b46dd5dd Mon Sep 17 00:00:00 2001 From: xvzcf Date: Thu, 20 Jun 2024 15:25:48 -0400 Subject: [PATCH 03/13] ML-DSA verifcation works for the KATs at least. --- libcrux-ml-dsa/src/arithmetic.rs | 44 +++++++++++++++++++++++----- libcrux-ml-dsa/src/encoding/error.rs | 2 +- libcrux-ml-dsa/src/encoding/t0.rs | 2 +- libcrux-ml-dsa/src/lib.rs | 2 ++ libcrux-ml-dsa/src/matrix.rs | 15 +++++----- libcrux-ml-dsa/src/ml_dsa_44.rs | 27 ++++++++++++++++- libcrux-ml-dsa/src/ml_dsa_65.rs | 4 +-- libcrux-ml-dsa/src/ml_dsa_87.rs | 27 ++++++++++++++++- libcrux-ml-dsa/src/ml_dsa_generic.rs | 4 +-- libcrux-ml-dsa/src/ntt.rs | 30 +++++++++---------- libcrux-ml-dsa/tests/nistkats.rs | 8 ++++- 11 files changed, 123 insertions(+), 42 deletions(-) diff --git a/libcrux-ml-dsa/src/arithmetic.rs b/libcrux-ml-dsa/src/arithmetic.rs index 0c89ecf76..4fb7d278e 100644 --- a/libcrux-ml-dsa/src/arithmetic.rs +++ b/libcrux-ml-dsa/src/arithmetic.rs @@ -33,12 +33,10 @@ impl PolynomialRingElement { difference } + // TODO: Revisit this function when doing the range analysis and testing + // additional KATs. #[inline(always)] - pub(crate) fn infinity_norm_exceeds(&self, value: i32) -> bool { - if value > (FIELD_MODULUS - 1) / 8 { - return true; - } - + pub(crate) fn infinity_norm_exceeds(&self, bound: i32) -> bool { let mut exceeds = false; // It is ok to leak which coefficient violates the bound since @@ -48,12 +46,23 @@ impl PolynomialRingElement { // TODO: We can break out of this loop early if need be, but the most // straightforward way to do so (returning false) will not go through hax; // revisit if performance is impacted. - for coefficient in self.coefficients.iter() { - // Normalize the coefficient + for coefficient in self.coefficients.into_iter() { + debug_assert!( + coefficient > -FIELD_MODULUS && coefficient < FIELD_MODULUS, + "coefficient is {}", + coefficient + ); + // This norm is calculated using the absolute value of the + // signed representative in the range: + // + // -FIELD_MODULUS / 2 < r <= FIELD_MODULUS / 2. + // + // So if the coefficient is negative, get its absolute value, but + // don't convert it into a different representation. let sign = coefficient >> 31; let normalized = coefficient - (sign & (2 * coefficient)); - exceeds |= normalized >= value; + exceeds |= normalized >= bound; } exceeds @@ -120,6 +129,25 @@ pub(crate) fn montgomery_multiply_fe_by_fer( montgomery_reduce((fe as i64) * (fer as i64)) } +fn reduce(fe: FieldElement) -> FieldElement { + let quotient = (fe + (1 << 22)) >> 23; + + fe - (quotient * FIELD_MODULUS) +} + +pub(crate) fn shift_coefficients_left_then_reduce( + re: PolynomialRingElement, + shift_by: usize, +) -> PolynomialRingElement { + let mut out = PolynomialRingElement::ZERO; + + for i in 0..COEFFICIENTS_IN_RING_ELEMENT { + out.coefficients[i] = reduce(re.coefficients[i] << shift_by); + } + + out +} + // Splits t ∈ {0, ..., q-1} into t0 and t1 with a = t1*2ᴰ + t0 // and -2ᴰ⁻¹ < t0 < 2ᴰ⁻¹. Returns t0 and t1 computed as. // diff --git a/libcrux-ml-dsa/src/encoding/error.rs b/libcrux-ml-dsa/src/encoding/error.rs index 36bf7facb..9862e73fb 100644 --- a/libcrux-ml-dsa/src/encoding/error.rs +++ b/libcrux-ml-dsa/src/encoding/error.rs @@ -120,7 +120,7 @@ pub(crate) fn deserialize_to_vector_then_ntt< let mut ring_elements = [PolynomialRingElement::ZERO; DIMENSION]; for (i, bytes) in serialized.chunks(RING_ELEMENT_SIZE).enumerate() { - ring_elements[i] = ntt::<0>(deserialize::(bytes)); + ring_elements[i] = ntt(deserialize::(bytes)); } ring_elements diff --git a/libcrux-ml-dsa/src/encoding/t0.rs b/libcrux-ml-dsa/src/encoding/t0.rs index 45e20b11b..85910d314 100644 --- a/libcrux-ml-dsa/src/encoding/t0.rs +++ b/libcrux-ml-dsa/src/encoding/t0.rs @@ -143,7 +143,7 @@ pub(crate) fn deserialize_to_vector_then_ntt( let mut ring_elements = [PolynomialRingElement::ZERO; DIMENSION]; for (i, bytes) in serialized.chunks(RING_ELEMENT_OF_T0S_SIZE).enumerate() { - ring_elements[i] = ntt::<0>(deserialize(bytes)); + ring_elements[i] = ntt(deserialize(bytes)); } ring_elements diff --git a/libcrux-ml-dsa/src/lib.rs b/libcrux-ml-dsa/src/lib.rs index 12bc2b87a..6f938e370 100644 --- a/libcrux-ml-dsa/src/lib.rs +++ b/libcrux-ml-dsa/src/lib.rs @@ -8,6 +8,8 @@ mod ntt; mod sample; mod utils; +pub use ml_dsa_generic::VerificationError; + pub mod ml_dsa_44; pub mod ml_dsa_65; pub mod ml_dsa_87; diff --git a/libcrux-ml-dsa/src/matrix.rs b/libcrux-ml-dsa/src/matrix.rs index 2f285a511..f461d55c8 100644 --- a/libcrux-ml-dsa/src/matrix.rs +++ b/libcrux-ml-dsa/src/matrix.rs @@ -1,5 +1,5 @@ use crate::{ - arithmetic::PolynomialRingElement, + arithmetic::{shift_coefficients_left_then_reduce, PolynomialRingElement}, constants::BITS_IN_LOWER_PART_OF_T, ntt::{invert_ntt_montgomery, ntt, ntt_multiply_montgomery}, sample::sample_ring_element_uniform, @@ -36,7 +36,7 @@ pub(crate) fn compute_As1_plus_s2(s1[j])); + let product = ntt_multiply_montgomery(ring_element, &ntt(s1[j])); result[i] = result[i].add(&product); } @@ -58,7 +58,7 @@ pub(crate) fn compute_A_times_mask(mask[j])); + let product = ntt_multiply_montgomery(ring_element, &ntt(mask[j])); result[i] = result[i].add(&product); } @@ -126,15 +126,14 @@ pub(crate) fn compute_w_approx(signer_response[j])); + let product = ntt_multiply_montgomery(&ring_element, &ntt(signer_response[j])); result[i] = result[i].add(&product); } - let challenge_times_t1_shifted = ntt_multiply_montgomery( - &verifier_challenge_as_ntt, - &ntt::(t1[i]), - ); + let t1_shifted = shift_coefficients_left_then_reduce(t1[i], BITS_IN_LOWER_PART_OF_T); + let challenge_times_t1_shifted = + ntt_multiply_montgomery(&verifier_challenge_as_ntt, &ntt(t1_shifted)); result[i] = invert_ntt_montgomery(result[i].sub(&challenge_times_t1_shifted)); } diff --git a/libcrux-ml-dsa/src/ml_dsa_44.rs b/libcrux-ml-dsa/src/ml_dsa_44.rs index 2c41c9c90..1a29a4042 100644 --- a/libcrux-ml-dsa/src/ml_dsa_44.rs +++ b/libcrux-ml-dsa/src/ml_dsa_44.rs @@ -1,4 +1,4 @@ -use crate::constants::*; +use crate::{constants::*, VerificationError}; // ML-DSA-44-specific parameters @@ -17,6 +17,8 @@ const ERROR_RING_ELEMENT_SIZE: usize = const GAMMA1_EXPONENT: usize = 17; const GAMMA2: i32 = (FIELD_MODULUS - 1) / 88; +const BETA: i32 = (ONES_IN_VERIFIER_CHALLENGE * ETA) as i32; + // To sample a value in the interval [-(GAMMA - 1), GAMMA], we can sample a // value (say 'v') in the interval [0, (2 * GAMMA) - 1] and then compute // GAMMA - v. This can be done in 18 bits when GAMMA is 2^{17}. @@ -105,3 +107,26 @@ pub fn sign( MLDSA44Signature(signature) } + +/// Verify an ML-DSA-44 Signature +pub fn verify( + verification_key: MLDSA44VerificationKey, + message: &[u8], + signature: MLDSA44Signature, +) -> Result<(), VerificationError> { + crate::ml_dsa_generic::verify::< + ROWS_IN_A, + COLUMNS_IN_A, + SIGNATURE_SIZE, + VERIFICATION_KEY_SIZE, + GAMMA1_EXPONENT, + GAMMA1_RING_ELEMENT_SIZE, + GAMMA2, + BETA, + COMMITMENT_RING_ELEMENT_SIZE, + COMMITMENT_VECTOR_SIZE, + COMMITMENT_HASH_SIZE, + ONES_IN_VERIFIER_CHALLENGE, + MAX_ONES_IN_HINT, + >(verification_key.0, message, signature.0) +} diff --git a/libcrux-ml-dsa/src/ml_dsa_65.rs b/libcrux-ml-dsa/src/ml_dsa_65.rs index 89a4c5c59..8fe139fba 100644 --- a/libcrux-ml-dsa/src/ml_dsa_65.rs +++ b/libcrux-ml-dsa/src/ml_dsa_65.rs @@ -1,4 +1,4 @@ -use crate::constants::*; +use crate::{constants::*, VerificationError}; // ML-DSA-65-specific parameters @@ -110,8 +110,6 @@ pub fn sign( MLDSA65Signature(signature) } -pub use crate::ml_dsa_generic::VerificationError; - /// Verify an ML-DSA-65 Signature pub fn verify( verification_key: MLDSA65VerificationKey, diff --git a/libcrux-ml-dsa/src/ml_dsa_87.rs b/libcrux-ml-dsa/src/ml_dsa_87.rs index bf8cee9ca..cbdf56c02 100644 --- a/libcrux-ml-dsa/src/ml_dsa_87.rs +++ b/libcrux-ml-dsa/src/ml_dsa_87.rs @@ -1,4 +1,4 @@ -use crate::constants::*; +use crate::{constants::*, VerificationError}; // ML-DSA-87 parameters @@ -29,6 +29,8 @@ const ONES_IN_VERIFIER_CHALLENGE: usize = 60; const GAMMA2: i32 = (FIELD_MODULUS - 1) / 32; +const BETA: i32 = (ONES_IN_VERIFIER_CHALLENGE * ETA) as i32; + // Commitment coefficients are in the interval: [0, ((FIELD_MODULUS − 1)/2γ2) − 1] // ((FIELD_MODULUS − 1)/2γ2) − 1 = 15, which means we need 4 bits to represent a // coefficient. @@ -107,3 +109,26 @@ pub fn sign( MLDSA87Signature(signature) } + +/// Verify an ML-DSA-87 Signature +pub fn verify( + verification_key: MLDSA87VerificationKey, + message: &[u8], + signature: MLDSA87Signature, +) -> Result<(), VerificationError> { + crate::ml_dsa_generic::verify::< + ROWS_IN_A, + COLUMNS_IN_A, + SIGNATURE_SIZE, + VERIFICATION_KEY_SIZE, + GAMMA1_EXPONENT, + GAMMA1_RING_ELEMENT_SIZE, + GAMMA2, + BETA, + COMMITMENT_RING_ELEMENT_SIZE, + COMMITMENT_VECTOR_SIZE, + COMMITMENT_HASH_SIZE, + ONES_IN_VERIFIER_CHALLENGE, + MAX_ONES_IN_HINT, + >(verification_key.0, message, signature.0) +} diff --git a/libcrux-ml-dsa/src/ml_dsa_generic.rs b/libcrux-ml-dsa/src/ml_dsa_generic.rs index ae40e8de1..1e5406165 100644 --- a/libcrux-ml-dsa/src/ml_dsa_generic.rs +++ b/libcrux-ml-dsa/src/ml_dsa_generic.rs @@ -397,7 +397,7 @@ pub(crate) fn sign< }; let verifier_challenge_as_ntt = - ntt::<0>(sample_challenge_ring_element::( + ntt(sample_challenge_ring_element::( commitment_hash[0..VERIFIER_CHALLENGE_SEED_SIZE] .try_into() .unwrap(), @@ -496,7 +496,7 @@ pub(crate) fn verify< }; let verifier_challenge_as_ntt = - ntt::<0>(sample_challenge_ring_element::( + ntt(sample_challenge_ring_element::( signature.commitment_hash[0..VERIFIER_CHALLENGE_SEED_SIZE] .try_into() .unwrap(), diff --git a/libcrux-ml-dsa/src/ntt.rs b/libcrux-ml-dsa/src/ntt.rs index 23bfecd11..405de096f 100644 --- a/libcrux-ml-dsa/src/ntt.rs +++ b/libcrux-ml-dsa/src/ntt.rs @@ -36,7 +36,7 @@ const ZETAS_TIMES_MONTGOMERY_R: [FieldElementTimesMontgomeryR; 256] = [ ]; #[inline(always)] -fn ntt_at_layer( +fn ntt_at_layer( zeta_i: &mut usize, mut re: PolynomialRingElement, layer: usize, @@ -50,11 +50,11 @@ fn ntt_at_layer( for j in offset..offset + step { let t = montgomery_multiply_fe_by_fer( - re.coefficients[j + step] << SHIFT_COEFFICIENT_BY, + re.coefficients[j + step], ZETAS_TIMES_MONTGOMERY_R[*zeta_i], ); - re.coefficients[j + step] = (re.coefficients[j] << SHIFT_COEFFICIENT_BY) - t; - re.coefficients[j] = (re.coefficients[j] << SHIFT_COEFFICIENT_BY) + t; + re.coefficients[j + step] = re.coefficients[j] - t; + re.coefficients[j] = re.coefficients[j] + t; } } @@ -62,19 +62,17 @@ fn ntt_at_layer( } #[inline(always)] -pub(crate) fn ntt( - mut re: PolynomialRingElement, -) -> PolynomialRingElement { +pub(crate) fn ntt(mut re: PolynomialRingElement) -> PolynomialRingElement { let mut zeta_i = 0; - re = ntt_at_layer::(&mut zeta_i, re, 7); - re = ntt_at_layer::(&mut zeta_i, re, 6); - re = ntt_at_layer::(&mut zeta_i, re, 5); - re = ntt_at_layer::(&mut zeta_i, re, 4); - re = ntt_at_layer::(&mut zeta_i, re, 3); - re = ntt_at_layer::(&mut zeta_i, re, 2); - re = ntt_at_layer::(&mut zeta_i, re, 1); - re = ntt_at_layer::(&mut zeta_i, re, 0); + re = ntt_at_layer(&mut zeta_i, re, 7); + re = ntt_at_layer(&mut zeta_i, re, 6); + re = ntt_at_layer(&mut zeta_i, re, 5); + re = ntt_at_layer(&mut zeta_i, re, 4); + re = ntt_at_layer(&mut zeta_i, re, 3); + re = ntt_at_layer(&mut zeta_i, re, 2); + re = ntt_at_layer(&mut zeta_i, re, 1); + re = ntt_at_layer(&mut zeta_i, re, 0); re } @@ -213,7 +211,7 @@ mod tests { 15979738, 1459696, 8351548, 3335586, 1150210, -2462074, -4642922, 4538634, 1858098, ]; - assert_eq!(ntt::<0>(re).coefficients, expected_coefficients); + assert_eq!(ntt(re).coefficients, expected_coefficients); } #[test] diff --git a/libcrux-ml-dsa/tests/nistkats.rs b/libcrux-ml-dsa/tests/nistkats.rs index f3b696cd9..176d21aac 100644 --- a/libcrux-ml-dsa/tests/nistkats.rs +++ b/libcrux-ml-dsa/tests/nistkats.rs @@ -63,6 +63,9 @@ fn ml_dsa_44_nist_known_answer_tests() { signature_hash, kat.sha3_256_hash_of_signature, "signature_hash != kat.sha3_256_hash_of_signature" ); + + libcrux_ml_dsa::ml_dsa_44::verify(key_pair.verification_key, &message, signature) + .expect("Verification should pass since the signature was honestly generated"); } } @@ -104,7 +107,7 @@ fn ml_dsa_65_nist_known_answer_tests() { ); libcrux_ml_dsa::ml_dsa_65::verify(key_pair.verification_key, &message, signature) - .expect("Signature was generated honestly, so verification should pass"); + .expect("Verification should pass since the signature was honestly generated"); } } @@ -144,5 +147,8 @@ fn ml_dsa_87_nist_known_answer_tests() { signature_hash, kat.sha3_256_hash_of_signature, "signature_hash != kat.sha3_256_hash_of_signature" ); + + libcrux_ml_dsa::ml_dsa_87::verify(key_pair.verification_key, &message, signature) + .expect("Verification should pass since the signature was honestly generated"); } } From 65b0299cfc40716547ecc8b9b27a2e8deb0151b8 Mon Sep 17 00:00:00 2001 From: xvzcf Date: Thu, 20 Jun 2024 16:06:02 -0400 Subject: [PATCH 04/13] Added consistency self tests. --- Cargo.lock | 1 + libcrux-ml-dsa/Cargo.toml | 1 + libcrux-ml-dsa/tests/self.rs | 49 ++++++++++++++++++++++++++++++++++++ 3 files changed, 51 insertions(+) create mode 100644 libcrux-ml-dsa/tests/self.rs diff --git a/Cargo.lock b/Cargo.lock index b7533da93..744109305 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1007,6 +1007,7 @@ version = "0.0.2-pre.2" dependencies = [ "hex", "libcrux-sha3", + "rand", "serde", "serde_json", ] diff --git a/libcrux-ml-dsa/Cargo.toml b/libcrux-ml-dsa/Cargo.toml index dcc3340ee..dc62791c0 100644 --- a/libcrux-ml-dsa/Cargo.toml +++ b/libcrux-ml-dsa/Cargo.toml @@ -14,6 +14,7 @@ readme.workspace = true libcrux-sha3 = { version = "0.0.2-pre.2", path = "../libcrux-sha3" } [dev-dependencies] +rand = { version = "0.8" } hex = { version = "0.4.3", features = ["serde"] } serde_json = { version = "1.0" } serde = { version = "1.0", features = ["derive"] } diff --git a/libcrux-ml-dsa/tests/self.rs b/libcrux-ml-dsa/tests/self.rs new file mode 100644 index 000000000..2937cbe59 --- /dev/null +++ b/libcrux-ml-dsa/tests/self.rs @@ -0,0 +1,49 @@ +use rand::{rngs::OsRng, RngCore}; + +fn random_array() -> [u8; L] { + let mut rng = OsRng; + let mut seed = [0; L]; + rng.try_fill_bytes(&mut seed).unwrap(); + seed +} + +macro_rules! impl_consistency { + ($name:ident, $key_gen:expr, $sign:expr, $verify:expr) => { + #[test] + fn $name() { + let key_generation_seed = random_array(); + let signing_randomness = random_array(); + + // TODO: Choose the length randomly + let message = random_array::<948839>(); + + let key_pair = $key_gen(key_generation_seed); + + let signature = $sign(key_pair.signing_key, &message, signing_randomness); + + $verify(key_pair.verification_key, &message, signature) + .expect("Verification should pass since the signature was honestly generated"); + } + }; +} + +impl_consistency!( + consistency_44, + libcrux_ml_dsa::ml_dsa_44::generate_key_pair, + libcrux_ml_dsa::ml_dsa_44::sign, + libcrux_ml_dsa::ml_dsa_44::verify +); + +impl_consistency!( + consistency_65, + libcrux_ml_dsa::ml_dsa_65::generate_key_pair, + libcrux_ml_dsa::ml_dsa_65::sign, + libcrux_ml_dsa::ml_dsa_65::verify +); + +impl_consistency!( + consistency_87, + libcrux_ml_dsa::ml_dsa_87::generate_key_pair, + libcrux_ml_dsa::ml_dsa_87::sign, + libcrux_ml_dsa::ml_dsa_87::verify +); From ae768d409ecb9d745d4111c5a5904c9c81dadbe5 Mon Sep 17 00:00:00 2001 From: xvzcf Date: Fri, 21 Jun 2024 13:28:40 -0400 Subject: [PATCH 05/13] Moving more functions into encoding module. --- libcrux-ml-dsa/src/encoding.rs | 2 + libcrux-ml-dsa/src/encoding/signing_key.rs | 63 ++++++++++ .../src/encoding/verification_key.rs | 40 +++++++ libcrux-ml-dsa/src/ml_dsa_generic.rs | 110 ++---------------- 4 files changed, 114 insertions(+), 101 deletions(-) create mode 100644 libcrux-ml-dsa/src/encoding/signing_key.rs create mode 100644 libcrux-ml-dsa/src/encoding/verification_key.rs diff --git a/libcrux-ml-dsa/src/encoding.rs b/libcrux-ml-dsa/src/encoding.rs index 057f209b8..988ae64b2 100644 --- a/libcrux-ml-dsa/src/encoding.rs +++ b/libcrux-ml-dsa/src/encoding.rs @@ -1,5 +1,7 @@ pub(crate) mod commitment; pub(crate) mod error; pub(crate) mod gamma1; +pub(crate) mod signing_key; pub(crate) mod t0; pub(crate) mod t1; +pub(crate) mod verification_key; diff --git a/libcrux-ml-dsa/src/encoding/signing_key.rs b/libcrux-ml-dsa/src/encoding/signing_key.rs new file mode 100644 index 000000000..92970efba --- /dev/null +++ b/libcrux-ml-dsa/src/encoding/signing_key.rs @@ -0,0 +1,63 @@ +use crate::{ + arithmetic::PolynomialRingElement, + constants::{ + BYTES_FOR_VERIFICATION_KEY_HASH, RING_ELEMENT_OF_T0S_SIZE, SEED_FOR_A_SIZE, + SEED_FOR_SIGNING_SIZE, + }, + encoding, + hash_functions::H, +}; + +#[allow(non_snake_case)] +#[inline(always)] +pub(crate) fn generate_serialized< + const ROWS_IN_A: usize, + const COLUMNS_IN_A: usize, + const ETA: usize, + const ERROR_RING_ELEMENT_SIZE: usize, + const SIGNING_KEY_SIZE: usize, +>( + seed_for_A: &[u8], + seed_for_signing: &[u8], + verification_key: &[u8], + s1: [PolynomialRingElement; COLUMNS_IN_A], + s2: [PolynomialRingElement; ROWS_IN_A], + t0: [PolynomialRingElement; ROWS_IN_A], +) -> [u8; SIGNING_KEY_SIZE] { + let mut signing_key_serialized = [0u8; SIGNING_KEY_SIZE]; + let mut offset = 0; + + signing_key_serialized[offset..offset + SEED_FOR_A_SIZE].copy_from_slice(&seed_for_A); + offset += SEED_FOR_A_SIZE; + + signing_key_serialized[offset..offset + SEED_FOR_SIGNING_SIZE] + .copy_from_slice(&seed_for_signing); + offset += SEED_FOR_SIGNING_SIZE; + + let verification_key_hash = H::(verification_key); + signing_key_serialized[offset..offset + BYTES_FOR_VERIFICATION_KEY_HASH] + .copy_from_slice(&verification_key_hash); + offset += BYTES_FOR_VERIFICATION_KEY_HASH; + + for i in 0..COLUMNS_IN_A { + signing_key_serialized[offset..offset + ERROR_RING_ELEMENT_SIZE].copy_from_slice( + &encoding::error::serialize::(s1[i]), + ); + offset += ERROR_RING_ELEMENT_SIZE; + } + + for i in 0..ROWS_IN_A { + signing_key_serialized[offset..offset + ERROR_RING_ELEMENT_SIZE].copy_from_slice( + &encoding::error::serialize::(s2[i]), + ); + offset += ERROR_RING_ELEMENT_SIZE; + } + + for i in 0..ROWS_IN_A { + signing_key_serialized[offset..offset + RING_ELEMENT_OF_T0S_SIZE] + .copy_from_slice(&encoding::t0::serialize(t0[i])); + offset += RING_ELEMENT_OF_T0S_SIZE; + } + + signing_key_serialized +} diff --git a/libcrux-ml-dsa/src/encoding/verification_key.rs b/libcrux-ml-dsa/src/encoding/verification_key.rs new file mode 100644 index 000000000..0132f3c7e --- /dev/null +++ b/libcrux-ml-dsa/src/encoding/verification_key.rs @@ -0,0 +1,40 @@ +use crate::{ + arithmetic::PolynomialRingElement, + constants::{RING_ELEMENT_OF_T1S_SIZE, SEED_FOR_A_SIZE}, + encoding::t1, +}; + +#[allow(non_snake_case)] +#[inline(always)] +pub(crate) fn generate_serialized( + seed_for_A: &[u8], + t1: [PolynomialRingElement; ROWS_IN_A], +) -> [u8; VERIFICATION_KEY_SIZE] { + let mut verification_key_serialized = [0u8; VERIFICATION_KEY_SIZE]; + verification_key_serialized[0..SEED_FOR_A_SIZE].copy_from_slice(&seed_for_A); + + for i in 0..ROWS_IN_A { + let offset = SEED_FOR_A_SIZE + (i * RING_ELEMENT_OF_T1S_SIZE); + verification_key_serialized[offset..offset + RING_ELEMENT_OF_T1S_SIZE] + .copy_from_slice(&t1::serialize(t1[i])); + } + + verification_key_serialized +} + +#[allow(non_snake_case)] +#[inline(always)] +pub(crate) fn deserialize( + serialized: [u8; VERIFICATION_KEY_SIZE], +) -> ([u8; SEED_FOR_A_SIZE], [PolynomialRingElement; ROWS_IN_A]) { + let mut t1 = [PolynomialRingElement::ZERO; ROWS_IN_A]; + let (seed_for_A, serialized_remaining) = serialized.split_at(SEED_FOR_A_SIZE); + + for i in 0..ROWS_IN_A { + t1[i] = t1::deserialize( + &serialized_remaining[i * RING_ELEMENT_OF_T1S_SIZE..(i + 1) * RING_ELEMENT_OF_T1S_SIZE], + ); + } + + (seed_for_A.try_into().unwrap(), t1) +} diff --git a/libcrux-ml-dsa/src/ml_dsa_generic.rs b/libcrux-ml-dsa/src/ml_dsa_generic.rs index 1e5406165..adf05565f 100644 --- a/libcrux-ml-dsa/src/ml_dsa_generic.rs +++ b/libcrux-ml-dsa/src/ml_dsa_generic.rs @@ -15,101 +15,6 @@ use crate::{ utils::into_padded_array, }; -#[allow(non_snake_case)] -#[inline(always)] -pub(super) fn generate_serialized_verification_key< - const ROWS_IN_A: usize, - const VERIFICATION_KEY_SIZE: usize, ->( - seed_for_A: &[u8], - t1: [PolynomialRingElement; ROWS_IN_A], -) -> [u8; VERIFICATION_KEY_SIZE] { - let mut verification_key_serialized = [0u8; VERIFICATION_KEY_SIZE]; - verification_key_serialized[0..SEED_FOR_A_SIZE].copy_from_slice(&seed_for_A); - - for i in 0..ROWS_IN_A { - let offset = SEED_FOR_A_SIZE + (i * RING_ELEMENT_OF_T1S_SIZE); - verification_key_serialized[offset..offset + RING_ELEMENT_OF_T1S_SIZE] - .copy_from_slice(&encoding::t1::serialize(t1[i])); - } - - verification_key_serialized -} - -#[allow(non_snake_case)] -#[inline(always)] -pub(super) fn deserialize_verification_key< - const ROWS_IN_A: usize, - const VERIFICATION_KEY_SIZE: usize, ->( - serialized: [u8; VERIFICATION_KEY_SIZE], -) -> ([u8; SEED_FOR_A_SIZE], [PolynomialRingElement; ROWS_IN_A]) { - let mut t1 = [PolynomialRingElement::ZERO; ROWS_IN_A]; - let (seed_for_A, serialized_remaining) = serialized.split_at(SEED_FOR_A_SIZE); - - for i in 0..ROWS_IN_A { - t1[i] = encoding::t1::deserialize( - &serialized_remaining[i * RING_ELEMENT_OF_T1S_SIZE..(i + 1) * RING_ELEMENT_OF_T1S_SIZE], - ); - } - - (seed_for_A.try_into().unwrap(), t1) -} - -#[allow(non_snake_case)] -#[inline(always)] -pub(super) fn generate_serialized_signing_key< - const ROWS_IN_A: usize, - const COLUMNS_IN_A: usize, - const ETA: usize, - const ERROR_RING_ELEMENT_SIZE: usize, - const SIGNING_KEY_SIZE: usize, ->( - seed_for_A: &[u8], - seed_for_signing: &[u8], - verification_key: &[u8], - s1: [PolynomialRingElement; COLUMNS_IN_A], - s2: [PolynomialRingElement; ROWS_IN_A], - t0: [PolynomialRingElement; ROWS_IN_A], -) -> [u8; SIGNING_KEY_SIZE] { - let mut signing_key_serialized = [0u8; SIGNING_KEY_SIZE]; - let mut offset = 0; - - signing_key_serialized[offset..offset + SEED_FOR_A_SIZE].copy_from_slice(&seed_for_A); - offset += SEED_FOR_A_SIZE; - - signing_key_serialized[offset..offset + SEED_FOR_SIGNING_SIZE] - .copy_from_slice(&seed_for_signing); - offset += SEED_FOR_SIGNING_SIZE; - - let verification_key_hash = H::(verification_key); - signing_key_serialized[offset..offset + BYTES_FOR_VERIFICATION_KEY_HASH] - .copy_from_slice(&verification_key_hash); - offset += BYTES_FOR_VERIFICATION_KEY_HASH; - - for i in 0..COLUMNS_IN_A { - signing_key_serialized[offset..offset + ERROR_RING_ELEMENT_SIZE].copy_from_slice( - &encoding::error::serialize::(s1[i]), - ); - offset += ERROR_RING_ELEMENT_SIZE; - } - - for i in 0..ROWS_IN_A { - signing_key_serialized[offset..offset + ERROR_RING_ELEMENT_SIZE].copy_from_slice( - &encoding::error::serialize::(s2[i]), - ); - offset += ERROR_RING_ELEMENT_SIZE; - } - - for i in 0..ROWS_IN_A { - signing_key_serialized[offset..offset + RING_ELEMENT_OF_T0S_SIZE] - .copy_from_slice(&encoding::t0::serialize(t0[i])); - offset += RING_ELEMENT_OF_T0S_SIZE; - } - - signing_key_serialized -} - #[allow(non_snake_case)] pub(crate) fn generate_key_pair< const ROWS_IN_A: usize, @@ -145,10 +50,12 @@ pub(crate) fn generate_key_pair< let (t0, t1) = power2round_vector::(t); - let verification_key_serialized = - generate_serialized_verification_key::(seed_for_A, t1); + let verification_key_serialized = encoding::verification_key::generate_serialized::< + ROWS_IN_A, + VERIFICATION_KEY_SIZE, + >(seed_for_A, t1); - let signing_key_serialized = generate_serialized_signing_key::< + let signing_key_serialized = encoding::signing_key::generate_serialized::< ROWS_IN_A, COLUMNS_IN_A, ETA, @@ -467,9 +374,10 @@ pub(crate) fn verify< message: &[u8], signature_serialized: [u8; SIGNATURE_SIZE], ) -> Result<(), VerificationError> { - let (seed_for_A, t1) = deserialize_verification_key::( - verification_key_serialized, - ); + let (seed_for_A, t1) = encoding::verification_key::deserialize::< + ROWS_IN_A, + VERIFICATION_KEY_SIZE, + >(verification_key_serialized); let signature = Signature::::deserialize::< GAMMA1_EXPONENT, From b6ffd3dbcac09a12bacc802e9a10fe57c6728f61 Mon Sep 17 00:00:00 2001 From: xvzcf Date: Fri, 21 Jun 2024 17:09:27 -0400 Subject: [PATCH 06/13] Added wycheproof verification tests. --- libcrux-ml-dsa/src/ml_dsa_44.rs | 6 +- libcrux-ml-dsa/tests/nistkats.rs | 6 +- libcrux-ml-dsa/tests/wycheproof.rs | 47 + libcrux-ml-dsa/tests/wycheproof/README.md | 16 + .../wycheproof/mldsa_44_draft_sign_test.json | 745 ++++++++++++++ .../mldsa_44_draft_verify_test.json | 908 ++++++++++++++++++ .../tests/wycheproof/sign_schema.rs | 113 +++ .../tests/wycheproof/verify_schema.rs | 133 +++ 8 files changed, 1969 insertions(+), 5 deletions(-) create mode 100644 libcrux-ml-dsa/tests/wycheproof.rs create mode 100644 libcrux-ml-dsa/tests/wycheproof/README.md create mode 100644 libcrux-ml-dsa/tests/wycheproof/mldsa_44_draft_sign_test.json create mode 100644 libcrux-ml-dsa/tests/wycheproof/mldsa_44_draft_verify_test.json create mode 100644 libcrux-ml-dsa/tests/wycheproof/sign_schema.rs create mode 100644 libcrux-ml-dsa/tests/wycheproof/verify_schema.rs diff --git a/libcrux-ml-dsa/src/ml_dsa_44.rs b/libcrux-ml-dsa/src/ml_dsa_44.rs index 1a29a4042..03511e78e 100644 --- a/libcrux-ml-dsa/src/ml_dsa_44.rs +++ b/libcrux-ml-dsa/src/ml_dsa_44.rs @@ -40,7 +40,7 @@ const COMMITMENT_RING_ELEMENT_SIZE: usize = (BITS_PER_COMMITMENT_COEFFICIENT * COEFFICIENTS_IN_RING_ELEMENT) / 8; const COMMITMENT_VECTOR_SIZE: usize = COMMITMENT_RING_ELEMENT_SIZE * ROWS_IN_A; -const VERIFICATION_KEY_SIZE: usize = SEED_FOR_A_SIZE +pub const VERIFICATION_KEY_SIZE: usize = SEED_FOR_A_SIZE + (COEFFICIENTS_IN_RING_ELEMENT * ROWS_IN_A * (FIELD_MODULUS_MINUS_ONE_BIT_LENGTH - BITS_IN_LOWER_PART_OF_T)) @@ -52,10 +52,12 @@ const SIGNING_KEY_SIZE: usize = SEED_FOR_A_SIZE + (ROWS_IN_A + COLUMNS_IN_A) * ERROR_RING_ELEMENT_SIZE + ROWS_IN_A * RING_ELEMENT_OF_T0S_SIZE; -const SIGNATURE_SIZE: usize = +pub const SIGNATURE_SIZE: usize = COMMITMENT_HASH_SIZE + (COLUMNS_IN_A * GAMMA1_RING_ELEMENT_SIZE) + MAX_ONES_IN_HINT + ROWS_IN_A; pub struct MLDSA44SigningKey(pub [u8; SIGNING_KEY_SIZE]); + +#[derive(Clone, Copy)] pub struct MLDSA44VerificationKey(pub [u8; VERIFICATION_KEY_SIZE]); pub struct MLDSA44KeyPair { diff --git a/libcrux-ml-dsa/tests/nistkats.rs b/libcrux-ml-dsa/tests/nistkats.rs index 176d21aac..e1ae92fd5 100644 --- a/libcrux-ml-dsa/tests/nistkats.rs +++ b/libcrux-ml-dsa/tests/nistkats.rs @@ -28,7 +28,7 @@ struct MlDsaNISTKAT { } #[test] -fn ml_dsa_44_nist_known_answer_tests() { +fn nist_known_answer_tests_44() { let katfile_path = Path::new("tests") .join("kats") .join(format!("nistkats-{}.json", 44)); @@ -70,7 +70,7 @@ fn ml_dsa_44_nist_known_answer_tests() { } #[test] -fn ml_dsa_65_nist_known_answer_tests() { +fn nist_known_answer_tests_65() { let katfile_path = Path::new("tests") .join("kats") .join(format!("nistkats-{}.json", 65)); @@ -112,7 +112,7 @@ fn ml_dsa_65_nist_known_answer_tests() { } #[test] -fn ml_dsa_87_nist_known_answer_tests() { +fn nist_known_answer_tests_87() { let katfile_path = Path::new("tests") .join("kats") .join(format!("nistkats-{}.json", 87)); diff --git a/libcrux-ml-dsa/tests/wycheproof.rs b/libcrux-ml-dsa/tests/wycheproof.rs new file mode 100644 index 000000000..e76e0ceec --- /dev/null +++ b/libcrux-ml-dsa/tests/wycheproof.rs @@ -0,0 +1,47 @@ +use serde_json; + +use hex; + +use std::{fs::File, io::BufReader, path::Path}; + +use libcrux_ml_dsa::ml_dsa_44; + +include!("wycheproof/verify_schema.rs"); + +#[test] +fn wycheproof_verify_44() { + let katfile_path = Path::new("tests") + .join("wycheproof") + .join(format!("mldsa_{}_draft_verify_test.json", 44)); + let katfile = File::open(katfile_path).expect("Could not open KAT file."); + let reader = BufReader::new(katfile); + + let katfile_serialized: VerifySchema = + serde_json::from_reader(reader).expect("Could not deserialize KAT file."); + + for test_group in katfile_serialized.test_groups { + let verification_key_bytes = hex::decode(test_group.public_key).unwrap(); + if verification_key_bytes.len() != ml_dsa_44::VERIFICATION_KEY_SIZE { + continue; + } + let verification_key = + ml_dsa_44::MLDSA44VerificationKey(verification_key_bytes.try_into().unwrap()); + + for test in test_group.tests { + let message = hex::decode(test.msg).unwrap(); + + let signature_bytes = hex::decode(test.sig).unwrap(); + if signature_bytes.len() != ml_dsa_44::SIGNATURE_SIZE { + continue; + } + let signature = ml_dsa_44::MLDSA44Signature(signature_bytes.try_into().unwrap()); + + let verification_result = ml_dsa_44::verify(verification_key, &message, signature); + + match test.result { + Result::Valid => assert!(verification_result.is_ok()), + Result::Invalid => assert!(verification_result.is_err()), + } + } + } +} diff --git a/libcrux-ml-dsa/tests/wycheproof/README.md b/libcrux-ml-dsa/tests/wycheproof/README.md new file mode 100644 index 000000000..e53e9a187 --- /dev/null +++ b/libcrux-ml-dsa/tests/wycheproof/README.md @@ -0,0 +1,16 @@ +The JSON files were taken from `https://github.com/C2SP/wycheproof/pull/112`, and + +`sign_schema.rs` was was generated with [quicktype](https://github.com/glideapps/quicktype), +using the commands: + +``` +cat mldsa_44_draft_sign_test.json | quicktype -o sign_schema.rust +mv sign_schema.rust sign_schema.rs +``` + +`verify_schema.rs` was generated using: + +``` +cat mldsa_44_draft_verify_test.json | quicktype -o verify_schema.rust +mv verify_schema.rust verify_schema.rs +``` diff --git a/libcrux-ml-dsa/tests/wycheproof/mldsa_44_draft_sign_test.json b/libcrux-ml-dsa/tests/wycheproof/mldsa_44_draft_sign_test.json new file mode 100644 index 000000000..3edc6c934 --- /dev/null +++ b/libcrux-ml-dsa/tests/wycheproof/mldsa_44_draft_sign_test.json @@ -0,0 +1,745 @@ +{ + "algorithm": "ML-DSA", + "generatorVersion": "1", + "header": [ + "Test vectors of type MlDsaSign are meant for the generation of ML-DSA signatures" + ], + "notes": { + "BoundaryCondition": { + "bugType": "EDGE_CASE", + "description": "This case exercises a boundary condition (e.g. in the signing rejection loop)." + }, + "IncorrectPrivateKeyLength": { + "bugType": "BASIC", + "description": "The private key has an incorrect length." + }, + "InvalidPrivateKey": { + "bugType": "BASIC", + "description": "The private key contains out-of-range value(s)." + }, + "ManySteps": { + "bugType": "EDGE_CASE", + "description": "This case requires many steps (e.g. many hashes in the matrix expansion, many iterations in the signing rejection loop)." + }, + "ValidSignature": { + "bugType": "BASIC", + "description": "The test vector contains a valid signature." + } + }, + "numberOfTests": 57, + "schema": "mldsa_sign_schema.json", + "testGroups": [ + { + "type": "MlDsaSign", + "privateKey": "5a04d37a8c83d373ba07da5cf96806002e3635ad8add42ce6ee9902dfc9a1f271d69371fb6d0d47fff2c2a3e14efdd968b5f906525510164dc0922789de9a364fc0730efa7ad64ffe1d5d53b21c5cb1f12aace43f173758ba07743c66e269a1c9121f577ff62f3749ca9b88040f2d5a0e7310302e921bd0326e00f5e14f75c30c0c84851042548024540024963940118802d9136891c238104a301801020a1128c600882a4c68584008950344dc00631e0208cd228416284642342661095281aa72d04038d90908400b749182121cb842c41202801826c4298008c144e1a9004ccc26142460501298200308299a890a2982063268c58028e24c8649318480b440000c4314cc80151460683268d1bb27051228a9a82290832085b128c542681c0306c5c168289001090a605a2a62d41422a09848060168a00236a94c870e4264ae10040e48451d280416232641c23050b254088a4645180901c000e42440e099865c310425a9489882246109645a12869c0c820141551dc424c8b8220e426000b4589848429e3900889008942c28c1142320a244c60048cc1c041cb306a9a806051480c02c885c9a240628288d4469099964544c68502873092a66c9800510bb88803945161046a14332a8b462288280213c24ce2464dd0289250084284b4611ba28550246c91420921422061142999908193344141228edbb4504340881b02242106626314015212645316620430645ca8918aa44810242ed2102083460581002910092259846410035022082a44345049042513a9081a392012b48122024d0b48828ba23022b4210b1029119965db0082c42662d91080cc844843808092462149a605c9466a4b0061c48025dba26814150d419831e2907199a8316098896042821a178a52042008a340d1a66cc3960ccb2002cc246e08004408220498047084044a08a730e2c68d4096498918126346482406640b29418ba6500387450495118396701b440618294143108c202071cb022603a391a3042c23a610c80691184064c0106289162e0941905338100908106144110b3748c0a86c440470022568583688121784049380cbc84154023098022420044de3140a499808498669838645c22824200480cab00509c4680036628a30906148101233480c0320db482501412594b04de1c4400a24651281455a32815c88480926854c940514380212058203a981122708199970c8c44d09366441380259b220c1b6050b0172e3027119150c5c3757fe8a3f59198c98f65910de7754d842d37031d5c90c98cff380d9c7c177b1e305ce91c8bffe35ac4275795a65358e28df3f737fd606f4bfc72954a23bf1d7b866f125f43bff32343f2fc9856a1f0005059a64dafe0421ab429eb9d655a8487811333b035966469ab1c10685d540f344f7290fbef8692a94b7a6a2d7c701269676f735c477c25474d6d9b701556b8e6b2b9628c2479d1fce7bd6b429dc46d66cf85aaf7ebb22052dffb3deb96eea46d12196148250a144a6ca4605a7ee968931b3288d90c8484e66e910bb25d54ab853aafc7f0f62ad44b9407afb87eaa4f9b8bde42c617760596bcdf3bc65574af5b84c23fc638ef63b7569f8ed488dd031dc9e128a7355f8810b00d48a16226cf8551bb267fbd29261652f0949d556b24fb8efa04e18a9754fbba829a487df932c04b2fca3de1f879e18fc02ea32b845a396266c6fc8ff29e4c898590af3fb1269a8db9c05e5eb598b7c442435d28bf97e34897ce9fc238f953f83fd37888a13487f3a23736b19585ef2c1d8c0ab66c46d1ada3de566b42dcadc828f386206ff5c5fce26082eb8254aeda43a78249c85f56df8f4e3ddcf0cf5944c005d52e0435e3596f7e177861a20f6bc8560b98f04e30e1bea9c1927fc34eb45875e2d72456bf708831ac7bcebd6ce53dc22ac705ed41fb0ee8817d98e6ad054568326948cdfe5675f286cae5f5f18e918185ef8c74498c836ea1c6254a831ac4f51bbc304ebf4b81c18b93f04e31f5f01ae250d5202983dee0db083543cf1ee6387bf14add56af738482356f385e796641fbcd386ea97a2fc5fd375923001b2563e13dc134b3cb9b2832cc93e01a962f21ff96ec31fddcbede9c665bb13b6acb86fa167fa1285608f149c4cfac948e283dd2c9d0d63f788d19c0267b1d8aca3bb414ed6772a93c53878e8da00792bd4fe0ed2e454e07ed6b03e671fc515dd318d53d9c578c1b4c1210961f6ad452deee8917abfa11e5cecce8552c16653d04e8c29d5d95bed293df0adb56ec489149dbba8d0da76ab58a3328bd322bd55de4aec2d9e4472005d38d9c38029a6de42e24525518f10e51736dc5eaaaacb30892a9e81512c212e15873bcc335adaec99cfdaa4cc12adf4121523ea8e6fb7075c59b93d0183b5c57b5a7ac70dbbe734c57904e6557005e53816a0d09c91919a78428e21bd5a45752728465d2c554047e635f5ad0cd35c248c5b8edee9c4da7fff1d7bbbbe505a2fd8ccff3f7fb7b51930c58f803d81f935dc3235f363f3494630703972e5bb69ee5e23d24ebeac041710e792d40eaf6c790a610b2af77910535ea936c111f7e3ad792ab9f93531ff8d5af2cd82145660d2e0da74ffd77c7054ac7128d3d25be7d67dad076ce9de5b144db10aeed6487a6280161785c9597df0c7f53aeca6ac3e04cb180af727121b7f996704657496b2b0424b6b11adce9f3fda81a4aebd3cb20bdf815aa620bd9513c7ce13325e9867ab0968db1eaeb985388461147ecf06a14a8f30e7f5838d59080a99f721729ba6496039773092a5c35eab8badaa88230a071e3d92325f1c50b402d29e2f9a619ff4e7baced9af1154fe3717b0d314116651f58471d206955df097ba8fa1c4438727a64145b5120541a9177c8f99adb440f92dea0c19d315ed23e214a321881ce2a13ccb942e683235183f0c2b5aa21e6d67832becd7cb4b996c985cd87e4d01643b20cd35c0b0e0c1378b1ff51b52be92151ff00ed880e180244fae51bfbd88d5ae6c91ef6195b467b3ea50cd3a600653b47e0b8bc3a8ac987b0bce1fea9afc81f43adaf6355acfc02cec42a5c2e196844edec72629f9eef0ccb38e9b08a364a5c925019880001573550739ebd0d2bdd3b73715c24321bb6cdccbfb7bfe29c0a30a828c1fc6dea39d73fdc0c81c4758c58ece0de893a9e983ca989a41b8b580fbff69d06c139419a70e4805cc5926b9913ce46c2b1d14030ce56b96346129a4e8cceb8793d7b783fff1240eeb6b96095fcc51701faa3c5a422cfe35f74f29b7556252a67e174f864459e9fa9edbb55b1af391f0d8c8253888d8bc6e6fb5f4c73eb4980b01114ece90a1e8bba96c99c56673137e1fb0edc18257df7b09e49753034f3c8d3a9410a9375c3b411500bcc579bf66f2839250670953e7b6423157a12b3d68372c31d6242bae84b9f1d921ded5cf6a56e4425d0fab6740355f2339fd895b4a81b98d541cebd4daac495c5f51c9f3336da9281a2b83877e33b90da1a0af414c2ed31bc154c8956c6c9082761acd8fd68d2935411c134cc45224024ab5f0c5d39bfc091b5b09f5c92570afa77167a4940b1a832528eae665150e8f310b84", + "tests": [ + { + "tcId": 1, + "comment": "baseline", + "msg": "48656c6c6f20776f726c64", + "sig": "19831aa9c40124c5bcbe9a65a6c0aec304773b808a980f6710fa9f8f1cdd50ee5618950565949784f9027ce40401c594670b8274342d9791113c50c8d522920f7da90ca0c242e0c7b64cc6ac4acd642758baa4b714170e60c08ea892770eecd357d827c57d9258a59bf3f678b89cc14d1d49b5425578a3a051a209ebd11c279b0cf661ef50699e68bc28943c418309764e39ad2aa3bda87bedfd85521d9078b020ef158ae1c4683e67801f0a60eca41c7bc6a60fde9212e6095def1ecb5355597b787807ae6f4a79b4a79c374c84772438ddb33e03c1991c53a7e92e58b562d55e0a642da04f86fcfe1e142bb0af741fe78143c83550a91e6a8f2a7f2df23f40d675ed7dedb1b4cefa88f4d926659a818028a6a7c24305ef4ea85dfa99fc0487ca7b61e098d8e8d62b48a03e54406a7b47bb7f0ed9499f7b649e141dfb43f7e16664f7844add4cc784d4fb67ea1a2043b65c7450459aa435c52e4e75824873541c0807a33134f56c217e62956d98f56f60dbad96fccc07ee3ed66a374c44adb353044447b55d6325127e335ae783079c6602bbe06dfb93d61c3f8d3fc3389b3a28b48f2e6874ce431ea0c28bb1b9f4de038745dc6a4c0ec6a9dc59da14f57981644fdc5dff5c8c6792014a24dac2bde3a136125e77b8aadb3d10a08783e573a278919c6d4a9dacbd83a2102eceef4a954260b2258e2e7a0f044584f2a645b0ba34b24bc494a2141d55fa823847b7dd7babf0a0a48e0d2c27c27c9df453e974bbf792a54e73e84801b009b2cd6744ec174fd24aa1eb16b554bb57a3f2cd699654d93b6c7e4c678076bd25cbd18fd7706e595c11f7c3bca44233d1fb3906fe80b5993ce047b92bccf1b81989343f9ea9d6209f57ce9e4efeb28b2124ed20b943271efcc84cbbf823e07cdfd907189108cd527db86bbdfa354b582ae2a7ecf5af12583919187de1447ba992c93e034c9fcef5211c0c18823d8ad2a28f0b515426affdd8858a650aaf191a79cb40d01bd4dc14f9f9049eea66ce2def98ca9a4bbad1450d5c38a99c3a7e76a8eadb8ce23824cceb932c03aec6119e6dca33c001f118ac3dd2e7b947c4a5539955d29a9d7d83c41150a3167653c91d23a1601ec1a44a9bd9e62663131f3a0fcc2353b0f7d49c45111335e33011c6fefc2c21ea7bf8394761cc563f5446792ffdc03c38398720a493b6a80eee1f95cc4f8e86cb639c1da63bc6d17f333536c4eb7564d6fd36d513b322b605ff66d0ba36ac0f851362723b13ea791f576928a868a5a2e994e11f70c2e575ac79f602010110cc28eee7c67a04646ca97df6026255e7d8fd6f67859802f323b33d56cae4c96a36d5badb40ded633809f1e9ddb03a60e7c5ea3fe1bf283ea53df576a49f150bae0ac538a1b737a906dd521174c467f525412d7a142eb5e6c1473b865251d14b1904bfb24b70fe7e7e464143f64a13973d41ee983132f6b425c722e9e95205a93db8e8e7a35c3998fb3143424d5da07d1c9708da0aebfbfa37c61963bd96443af0020dba5a009d3a35e4f555762746039e63c505ded934d19823783127b2e611017f3c14a78dddd302a811010c8ccb81f1148e38bc879b992333624f1d67a5f3bd8b3eac61d8b4c8d40e4e7b6897524a7f9d3e4d8b55f9252dc1d0c428f274c4b0c48f4db0858779f16901855f4469c1d94e02ae66b23db961b60aa769be9d3dc2462217703796f75f2e52eb9704d9aa4d2cd38edcc1e1844902ceb35e72e1e3e126435de3a4da0c576ce6d7f576b47697daabba7f3bdce15a88f40e23b8774cb9f1b85c6178ab7e190d2c7e6205d7dcc93fe1d54bee466ab4f26c610e385ee52f99c7357de05f1542d0f71a8cfb5b46b515f076aa31d797a43f4d8523758669d5ad365f9a6925427d2269847b53cd5420b6aca595b82f56a020bdb466ebebc469422dcf2d4cca88599a1aa2cfbeb3149e9f32b4dba69811d6e4158e2cdda48eedc0c1291a21e5ea6ea4c9ec7caf5c267dae419f6af219001700cd679493a94b27e4fba6a4a95c562ef48389c2fc062d5d165bf9b605f6fe69eaa95e9cb23d663523e2a73e8c1528533fd8239502916e8aaec427ae82f38f60dc2d1b38f398168432ea63c72e4efff8c94a82314545f1f45f66984ace3a9cad7aebc025312ea57cd7e5151e5e3a7bab0c7dc4bf0a1362702d43a98495cd39e494f1a7f6bfc78d873a8d09205d9b1b8f5b8bda83d7a2e9c2af3d77c2277b28659d2d4adc1b97c59c9b1eb3e5d98617015b58940253170e4f20430bbef51a25b3e3b38df8fd8c92eb9bc50f3ac5c5444615045380f34ac9015556d86cf79d5d0c99c2a16b5528d7b325c25fa08b19dbb1a78eb1081e13ea8cdbd92de5852d5593d15cef2233bb57788a34eb954d2efca3f1f185eecc98fc8f7117f233ebfb27b9a4d7e227db583a8b15d2cd0a98c74c3415262839fc11e012b1067e312acc855371abc807d597c67898bea9c28b3e30de6c968a291124a78411fc2a5adf578d423f77ddccc814ef106ce19a5074a071853defaca429cb2ccdbf304c7570a94e10653a14abe479e854188861d68f04d16c7c40f19a7312a5399dc679a792005967d5f2103db5c5bf8a7fd0c71cf63af0b4b244d54744fb07e303a91580ae37ea8a8aa2d380a346080b732c0a1ed16654d9367b469c0eb28b002ffcd1030a0f2b1f21f2f72c050e830163f3d2903056b56c5c3a662f03ac36ab2cade947963ee9072e73ee53dd6200b99d2b3317362a40c5bf58f48f680a045de0fdf2d1a9137203a1f200b3d95dee50e58943a4856b699f5c8c64ff43095184f6e582d11afafb4427d738237738c2b73b42d148396689f1e5e08ba948eb2e66924256bc93135d1e1855f7d55048d31093d0f415142890146477c6b1386e0d3db780e657c5064ea64912f596883734094537bc2a5123058efa256702bbaaadab37f4fcaf1fe91f1b207f563ef30a2fb24630404c051e84911c8597c1fdb23b8bf2ad1fdcf0914db198838c2dddfa11477b01dbc6c348d632813644a259f220b5fd4acf9b5c23f5acb49439b2150a2139e4c0d2c8437a9f6a51993e8543277d9ee861f84b252092c5cc267ac62c9f6756a6b1b5c79368f71c3a32fb10e8743220bb6fe1a02d1160c7a7a68c309d97812a5218e857e4e4afbf766227aac62af089a9237f88af8695d00edd3faa1d71bcc714a8d59cd1691cdd5d4b85a423102eeeb988d011063ff25e74d72a76bdf304852b6ca61921b545069ba293a22827b2ea9402a2af56eeaac6ec7ecf442a058ac993718fbf6070f18273e4562799fbabfd1ed17203338445f6491b1c1cfe0eb0c172c3242484f52575a5b6074828f9ba1cdd6e0e4f312222d344a4e51527f8bb2ccd5d6e1fa000000000000000000000000000000000d1a3040", + "result": "valid", + "flags": [ + "ValidSignature" + ] + }, + { + "tcId": 2, + "comment": "signature that takes 1 iteration(s)", + "msg": "0300000000000000000000000000000000000000000000000000000000000000", + "sig": "6e31f001779621bd5f8c7a7eb13b7ba623e783ab5b94a0ae8abb8e1168a75d0e2de3b82743bd817fefbea4be190bcdeea93ab74ed267654581c2abd61feb8f3258ecbc86b397ef2cdfaae9a696dcf2b479fd5296c190a58cf71efd5f040e076f07cbb5cb54de0ccfe09850837ecb813d786708aa26af7eb0faea34ba4934b6d48dd16428910e2cf20e4ded7fa4953d4fb38896384628763a0ef7cb7c81e80e13e65afbf774371e87d4badf737dd3649bbb8763bff5a123d1be30e8d6481eb2df2059ddbce2610039ad4252fe6624116ca54eace1c0155f833b2c3cdf94025d8bdd405a7f25070d6da657c2272df9c9e96800d06022d6aacc2c322b1bcb36df0cddd47aa105dc59cb763587136ee1a645b2966baccb811465a573678b768a5a3c377e625ba5fac68a52d3d0ba4331e707e76a7fa00f35746d5277da655889bb5c327889dd6528cefd174fefd2521e800fc63a559d4a475c8a846405b585b044f7f7b61be37b2a8e93c6a11cc5b77f430c5f5975b40873068882eae271610dbd5271514884b874e1be10a65857061d90eabad3bf23a35c6f18730a6d13e60740a270ed6046dcabc17d3604ff2f27053154ab103af2a9b723fc6fccba639d437f1bbb16c7375b4bbf5222969efe484eabae7122eb7117caf949b1b50fb54ac883a15712d971f45b2eb1ffbb17053df951613e2393e720d1db123bc591b264a138d0c7ce64c753eb05b25a035e48338eb0c830277887b08a83a601e0bfeee41f4fec571859b122b5a20127aecc5ae4254cedf9d648d9bc2f6910a799b520b03ac1b0f743a01a4b28d3f218a52bf09f7f25203339a7e3cf781818a28a67beca3e18b9290f15de19bfb4aad262ec5401519639b7b1d08cccc96987b08cf847ed845b48c1bcbf07880c5d5f416bb60353c20c3ac040ce1b9d2a4ef9eb150fdce3254f73fe3f57f71f83e48c39b399d3f91d75cc95904f0b74bba2d00897a9bad59b565da48e0eaa0de6bae6a30eaa9842af061034cbd3c71451038d462e4e63353bc644f7f3b1e253eeb1a9517a40aea498f7c9e3053a8c737ea8d68bddf2e9ea2d36297ca2563f672e6099e4cd0b7705ed775025ceb8218fd9e42083bd53eae49a66f65c442e50e7dca7b97103bfd6f7940e0d6d53d683a20aaa0fff2d2f71d387142757467dc72bc933864176b81b98bd1cd8cecfa65c333cc6fc1aba8020136eeb86862ebc9b6d6e27197e30a57b8143145c32013dfa00497da664f346cf2318d11f4c2ad61a759ac2ad00c74660918567fd6fe50a471f7e08cb47c514d03702d06154f42515b211f71343b4812303e5d4d91e2cac2742feaba5d6b1732c8414210f12908d709f7011f59dfdcc50cffb7205261f832097e6a4568c8a5a7b191f03bed3495e152564e127b98b8c3c5b070c69b8e9783d54835ff5399c891d4682cc3a24ee4260b397773dc74b3dbb88d3c659c33fc8df85ca3fc034cc28eba5efdfc57cc991acb3475069e7978e5577cc7c7a53299ec00a84a019e4f3830c62ae441f662d5f123afa9254def1dd49e5c6aa62387ca62585976d27d9e39c4273aff14e9dd1f2d3c8d0d42930c1bd7e08bdc4d63fb5760805cff90b7e566a14f75a98640a4d5d851d230525d71cf138c1236183088c1de31ae0b4befaab4df06288de201bbbcf55fc123f2570fe9cd3979a1eb05dfd9d985d0e4e35f8b56d234b74693284ab40051c9a838194dee6ad280e8ecfefc2e88f2fa35c68f194ed2595f2d8c9fd0b8567fb81be71cfbf371f2a6f05fb1a81be3bb3b06cde75de3d298874d23d7fb39b3bc37d33654c590226bd6bea9b9c7e82bda342a8ee4e70ce48167412038e2c3c646aa9b8d7b79ecc255a6f9fc303d32a010d015f8b7326946f37334f9ee082941613dee4c404c5ca25595d1f53f91f316b983f459d023e8470e55b9f87d6c2041d4742a10a75a49b88f2c0243f39a8bfd9dd1d23b92cdb91ab21f8586e37bd35a622600b914db31545a30b3a58f03534bd7a662d8f10f4ae53062d55cd9f73dccae4d7b6112adb83ecd3a6d756fb8636f9b7480bb0a4ca081d6ce471b03b772cc8bc5b6f6d180f21318f2689975910eda801ec52ed4b450f20b4717c54f215d868a7b5dbcba470e1ef2c654b2133bd8636381f7b2c226683c0acd07d79fad1f5953633fbb09b238b83ee6aeb36241dfd2556677ebf0eb9f18a8c65a47fd59fc25d7593cfdb751120fd8b45ce0eae59a210d679c1b8b57a008cc883b1ececac9ea0b5d21452ae3d71ad0948bb50168b716c69eaac3ef41bd96b37e25e3a0a91ea11a51bb1f0a5700590c7c165f1cfbcbe7584d30c2345262f980166299f967dc22c86a99fb639dff8ad066be0434ed37eb1025a01033fa85bd9ca641e0ac565a2c514e22a928f8045d158e6f5f7d1797741f71387d3598f27fd08fdec8e1aafe26f41597f0733f40323ae8d6a261bd061bd2bcf13b3d178fad6a127fc1a8863af4e7f1839113319db5f49475b36fceb008216c3c29224b182c18eed6ae36c270e2a308de4aa92429657edd603afd8c8ebd1eca35b020b6861a0bf61fa6ce615213900c49036835d197a0d5c58dfa614752f26b8006c05d897b0b0b7e3ac2b89ccd411b2a47d3fc68a196cc43fe356eefd5de8d150eb0b9e416afb46a9ca77f691d9173747a2e8193e7647927776d27f8b7f64541844111ce877cf7ff6e6d5ec9d8fc36c4118af95036920f7e04d3389098dd2b5c51a0f9d3f97d0f434928d95844390febc9215fc947eec60232f499555d4fe99bf74e883cdb38a083eaad21b6f89537d5b0de92ca1851cfdd79d13d635c459db85bedea78ed1182bc369e4d3e07c7f75cf2f1f2d797747b8c8e3b0e493f80fb32e8d622c853b22715dd8b37b8e68d9778fbc1a0faee2b5a25e868e35528185a18f607cee89464ba46e9da5b835f66e0ea6314297d0259074a1327b416b36b30cede59175e32817ff51f32cd5df899053e88d326e3409dc0a46f42fb0a0b60bac2f8a7b28147de7d282d2f80f46ead012bb6c94453f4d68aa45e5e011e69f756ebf94d970f99c1d40b45ae9d2a311a711b7dd79cd8e373d2deef996fda1b6eb5387ef6e2036933806581287f93cc09f30f9941d83790a91713d71b6cdd138e965e884553c4fb717168786b685e854e60c1820ca4b83723528040c17b2a1f3175794bea7a63a9477070c1db6ee80e0a6e26979c495701a2e23df40bc471b884df69b2a08620ff7201bc1cea33510bd98062b84eae46836fdece2b31e09b1d6698546474171929e95065134222e6a6e768eaeb6d3e5e9ff032636476567688a91989ed1d6dbf71a1d20215f89b1c6ced1d4f1fd0f114751536d787e89d1e4ed000000000000000000000000000000000000000000000000000000000c1b2834", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 3, + "comment": "signature that takes 2 iteration(s)", + "msg": "0400000000000000000000000000000000000000000000000000000000000000", + "sig": "7c00707404935762f01931c31df6538154d7ba45ca80ada2e39fbbda5b00555a608097fc9641d1beff771c8a63c3de02554e7cf6e7119961d54d78a7bc83fad3f3b9a30d92f25b715bccc942217a91acbd4badff91dc7b8373fbbd76965f2c4ca34d13a40b41357b3a614cf303cb6164c1307f87abf601ddd14e66d845d01df336a7a3125b3b32d10c3b096bc527dbd41f140c608840e76b7172d0d15a68e00ba2ae11f8d417d55ba3534e10a4f2f0d01c4d62bac0f138b6e8ae52c0c161259cff609fc94d3dadbd29bcee5d299e4b245114c7f94cacd0189dd65bf7cb86508d888e072a575d15c4f301ac0cc589b4cea2a2ad7a39f306690326d4f44d4c5c62cb4146ab66a832c28acf5835edacfafe197e3b9229f295ddf92f26b98e593a4e6e39d87f567314ab316bfd33d13a28eca1d5929356a52b4da83b25322a1b5bfb8c9f3397bea4f3c692b7f9bdfc6ad03b2dd9964929cbdbc83f41e5b866068cd3194de0ab23a6805642ac1881e450173f4421db182ccededa87115734ab6d34ec428a300b81d5a2c21cc4d1d317fdf9b49ed7dab01d0ea8ed2f4b01b65d67b74511efe59c6eaaa7fd3008ed38eba02a1d8e8eb85bc288f01eaa2133c4055199b176acd6f2ddb0292041b460a9e38aa417399c0f3d5ca3086095aec024d7e0804ce9bab41c7dce6caff3733fbabb9f7f370579ba06b0d24fca61dff22eb1d998b9e868c3662b74fe3a68baa1119e552853bb955edb371ccbf3946532b39c90cf914a524fb4697db93ae3b867871ab5c0a6f231224e444629bc6fd41c438664e0a18477dd29c39a5eaadaba47c337bedfbb7b10559c2284fac3451f5e4d67031d22339992a75ef816d4bd82701874d1686feac681dd54e54bce55d1553add9679a0cfb9af02b4052aa07df3ae5694faf0b3fed937fbc4b79b28fab531edff6c4e2a3ebfc26b70734c02622ce581b429636b59ea7a8ab0bc60864850d5c1c842079eb704e7ca7379bb32c5d2b00dfdb658b6b97dd9e9e104f6ce8b3c898d82f5136d14ad0441e84c06284f2ebc36b09ab1aa63b79869007e6748508d5996a51019436b9a12748493adac9222c30524d0ba4eff00509a7288b79759425bbe75db7e917132127951d1d6b5e857c91afe24508072a963b65fe0668d78449e6c3b201363d31b5c6868269d6dfb318740ed2729ee1034421ff2da2645eaa0de278b510faadf1125f3dafcaa3edc975c8c284e5b4c0f0ca018ae31d630ccfbc8dbb78e40b68ef138a6f4936087cf842945681c23a388e7a48d1e80c02b591eba29c21b77fb23731f3bf45deca5f2ddc795ecabb027c08b07861b4bef35cceac0c8d7f5ae3cbc0fc5663fe29725276ceaae1d13966d5abbc470d351d1eb62e4735393435ea9a9220a426995452021714c0f0180ef92022605de413fb3ce4c1e227ceaf71ab6cedad6d014285e92af6562d709a566dfabe7bb6787f307211ad5592e2ff908dd0043a9342906c317f921932ecc3ae90c45eb41c177089de6d9bfd835767b0eb48d41bfb3261eca272518cad016e45569707893c0dd58613aac691c82c6613e704fd6f0dfc8f525e98a1f8d09baa4790c45876113fcaf087ceb8fc51936850f9ac6a33e3c5c3bea8500addb7d53c2ba8dc3ccf59643006abb3cab5761f98fdf02462ba42a2cd011f9c667450921548ed556199614acc2729f4bec871cbacfabdc0ed7c21663199fa86e2fbbb9d5fffa07c38c1ea282746ef83323b5c5cb47e02345cd7f75d1aba7927dbc1daa75277d0e863551054c2fc2a47f096396bc862ed64e93d9ed018c727795a1088ec6d497c1e190740496f1a89fb8f091f8fe0153d2c20c478ed755d036b7d75907aabf5cfc5d13e106caa5ea60f188a34b6ab3679926a6aed636c34ce64a5c70866cfcaa3b47c057df7b8e5e613f095044f533e5f0896a80545e903a7a68deaafddcb4a4c576aaef29a79b15d6640c69699a741deea36f888570923643990a9bc376d969b53b0f4e83b18611da5cadc3d816c0df16ac5c31cab50001022cf1517cb68881a93b94e90bfcad6bdb5d2e4ec7238ac4c92ac068772ad587d1f4bb0a9d59f22005d418a249c95be9cbcbc36186f59f594dee193168f09d946a75545a3869835cd9ab3535396434e228fc1eb122f0516b5535f834854f50d501d9895b9aedb4057b420461b65f587578a0d36d991abb0bc8341985fd67f8b30358a59a7663b319447cc976810ee326acb2bf2a4ccf0befbcdc980a8b5e65d83bdf6e7d33d7cba1e0c84f4a426944b534992094b7e7ba15f295e0b9000b0783b3a09d59f97c913c9e76957ccb652ea9afe27503d19b5359d9d506c8ee96a4beb0976a32f73921384036301300ca8700500cff36a7b4318ed56e7c954973fafa2d191893d8221fb50329e3933927d62aaacbddb372b79d84042f33c294254e1db9ba8fcf1383e201e5bde9f46f3cd96f912672ae5cfc3691fc4c2504d71c5a916d44005834f6faea3768f39c2ee5b7d477c050b5db2d70483e29fc9f275abf0643a5fa53cdf55ed22694cbcafb458828679ca987f3212f57d205df91c65e94c0043a4cae627731feecd0ef10bcad773fb5735c27d8513590fc6fef3e87b7d24172996eb606183fef88e1ba52e21483a770358dac65d19b1e8d45587dccb7a93d700ef82d5bc7bd053a57000e3b9de2bdab8b98a0971c47a0ac12077b2ebc6bf43ae28c92a493692b2538000446dbabe1bbc38ed0aaa68e97c48b100f0e9f139b070b79a74eccfffae7df38e6346e609ff2af82349de8e20ebeaaba07c253d4a6962704e6e11982bebaff3117597065ef9a95f6f8301ce4345df19a545ce4bb32ccc2a0ed23a89ab768c7bb23c8be6449b39d1f4b9368b070ce2a131ecf5b4c636bd615849c5aa3caa0dfb517bd9837b8a434e4d8198022104a34a98dd7d69bd921d1240accf4cbec80080c62ca0fc6285f099cffe5a0c1d4f793d4fc55f6ff513e29d6602e713c9a96f19679272da81bfbc33abe4c5ca90e35d21527ada251629c8112998b24e2d0037d35699d894de9a62d7ad80779a00f03d4b080fe693e9aa2ca138218bbe3c1384f158bff77aba84ee7003f931585b80fb6ce0179a246c4dd7e6f1ad971814209be40e15199549f53a58fb95acb33fe19f66c389cbdea8363d7299962eb5eb012e664ca40c888e7ce7fed916e46f838b3de26426f2715e0e51e0bcbb8aa2df2082d8ce1ca4905ea9e66264761c203be786756c37311b1cee8d2c78b39e7f6a86ea607c909f2d65b956a934a020dcf86681b34556b738d999fb0b7c2c806212b2e44456781c7d1f2060e121b5164777a7c7e93969899a3a9afbbc3c5c7c9d5f3fb0a12252728364a4b61636673dadbe7fcfe0000000000000000000000000000000c173041", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 4, + "comment": "signature that takes 3 iteration(s)", + "msg": "0100000000000000000000000000000000000000000000000000000000000000", + "sig": "c022e817dcce2f91354fa0468d52d20730c1c4b46f93fca19f6715db7424f4365bfec99ec722a7b1aeb28d8e98d302b65ebe86219604f8b524f5a55f7b6641a917e8eed1b13062ea67acfdeefb080097dedf02ecce812354a5dcec7e242fde337d609bf09fd63379ccb64402a7ae08072bc2413e2f5a50d5b2a23623a2c9e21ccb78df687e090107a83ea928f1b307e0fdfde53b4a203af164bc18f8896a7d7a21da3a27c58bee267fa21328fb72ca7b2f171e5451d38a44fbd7b8dc1418405e13c039962b6640848e33d42211c2b89d8a37a220a3044d264f03ff1d1e1a7e5f5b5adc15cd40128d75059d6b2a0a8d775f3f173f3e1863dc8e6a335e34bf63eeafae2e2f59903784338b9d9b68727b90a150edd9ce9731aecefaff5c6123bb07a68eff67b3e258a6e8d2121aa6e727e8d152180dd0c52accd286ab711b717ea87f84e448b6ee5191fc49c5d6fee38d9d837e484850fb1831a341ce26a7c8ed7d47b386a5e3ef443219ac518d46059ccd199056ec7bb0aac029841cc2d6740c28e6ba9163d6b0833d62b4d2d43d85b8812a369144e9ebaa35fe244ad29d24450a26ba2126b8a94d8b233d44b3aefe2a8477d0a4ba72095eec31561864cee4338c1712419aaf4e4c9eb3c460a6a998c9092654dbe9c5b585418450c575639484d6f0896b2afe2179ea396c8f1b1b7ffda802337cbce96e33e0027231c9fb9bb6923793e4fde929d0a93dd03012f94c6f0ad12c02d8d43bb480ea3b30839ca0799c9c6f1ebd2d32f11bc19925c6d801ebb6abb575d0db6a5d0abc3b50a19f5fc4c86e17f6a32734b665f46c8a9d96f338f5b7232d91ae7360d28e7d50e06a9222eff4a5b451f113efbd137c1f181a5a4c5723e47aa5f3c9ae7dc73b4b92a67786dd6bda0188d968e9ce13e4c751ed8c36b43df8872c58c49476a0ab1ddac5ef7eb066ae1064d58bf46f3d1b8e54f2c532f30ccbfc5ee3f90d7e6bc582bfacdb8326e78433d237074a85cdb50f2632a0d7be7c724b33038fa0a5032814574b7389bf82bd0e7f8272a851cce703f877d6e9d15a748405bc8d681a5653db1ef1e86f92e6ac20fa8a1007a6881b448e738b50fd8cce8f85b042d1ecf472692a4fd43f10aaf62821a3449814e1a512783a0caace03ef1558359ef357208877256bced98d5c3fd5cf80e4e0ef172a0c5556f4e5dd56601df1d1496c977b34305fe7781dd7714ded0af8cae5e54c1ec6633a85a4b408dd25a29befbcedc3d219886e6285855370b43db8e6eea5a7d4c439b77465663a59b4bcc9cfa952c9dc4ad5aa02cfb0763b308eacdd9dadc94fa08314d132892ffde80e3c9a80fd474cd2452377c8b2ccb162b2cd34fba13656cc187a2d2a295dd47af66c03a4878cb129117b58145b8c76ca84024550748bc593def2d9b970abe578ee2f41147593f69c5a6143d7f5eff5dc100bd22c9d6537de0cfec96fe18e4e301c72db0c165d742503736ebe969c36f10bdf5e4db8204249425a90e0b2562296b89cf3262bed488c195558dc18c0e16fb3c1aa735a8b93248cffdd7e9daf8b9f603c60c4f6d469b092d956af6cb136ec7950251f4d2628f90882dbd11a5115dcf385c15e6ceeb1bdf775b0ca827cbbf1c2c5216276f5ec67470356ec179a3fbaf8d75d1001c192227385de7a38fcda9f9dd541e6f3b43690f1aeca9f10d65e57415df07eccb1ce320c6cfe3e7cdf85dd35bbb0558a9b900e5f2eeaed69a82aac02fcada88bbe0765ba43260d96ecd40cb9ed5d5ef357737f27e5c12886c583ad5f750558cdc9d87271545a0ee52aa2521ec1159c6d20ff66d089f767ede5351bc2612a75bf21d323f16c4a80581f3267254a6850677a41107a00edb28f0273e82aa4d76324b36cb0a8402a7f05eaca11f2b18329181d336875bf4d059df07b44b1e6b4d1a169d51b6d6dace173a2936634f8658dc38ba0340a044110a51275dfc3286aa051bc4c48486be9f1c335598ef3d9e8007e802797aec4c392e26d57f819167cc6b29d959056c31f3fcd6e962bc7134cabb1169c2a4eb5c5d4fd61b14c0d8ab4d16e5a376e4ba601e453be7206eb47b74a2ad214db24a3f459931c27a3d2351e2bc2c32b2ffb78e801048bf3c505f76064ca7bb038f96e700bcf89c54111cfb9639ff761a7c7c8c1c8d14daf85c842969a5a1dc682deb536b044f1ed3131523a6248788f0d0a1a4ec7b5b7c764daa0be0be10489e246a0f7e345aad67916109a6eef495400d5e935d486ccea939fc4ab440b599bce1b5b5d6643a5d3851ffa9956afee78a0d1919d0ac9ea3344dcbc477e65658fad5cc1658dd0d7dd26a4d968d437a4c778ea6237bc69566ab57fe2c29cce046429375ae66fa10c5858579641638d1c298780625413dc14324f011af275f842f63ce62a5c256f427e998a2e65356af2034cf5f23f8d8a0ac138560331f702bbe6d35748ed386a2d70f9855a07b8fd524341605d53d332563bb60af8f15efcacc411c35b623309f9d1aca8b95c2ee957ef19fe4fbbdd4bf0942f2b878d2172cc6d4769944766c81a6cb36b9c1afc33d62acc7dafbe72f4af357bfc870152f81cfb29273bb5b373a85b16105a0b902182e7ebf583ce036847fee0a53978fbe1f97d2626bd9fb7df9eba4f2b99d1d4e6b1ae1b1cc9f9ea2f5830a8b2069a4719704b27ff0977db528bf8576ab68d7fe6ab01306e25344bdb2f34827804ea386b5aef2c7958fd9068ab99ed3a770f344528d68d829611958c1ab7f324cd63ff63cfba82eb923a073f48bad98aa00e831fae0107d8f54634d195854c8a23db55898112c696438885135565841305b0f9d885183d49a9f9ca2368a2ae17edcc2b0d1632e4fdb3d719b6f41c169d50d28a849a46ca8d5c29dfcc0facd9e8994256fbb10f8c0763994f712f5507934c59193c9775452ebaeb27e8084a72a0d6dd77984e07a9c184d8d86074b16ad1001011863514dd17001913275417a8b4021e05f502714d272b04dc45d570141be61a3cd6990f0bb97f14dd76482abd21617866b1d13dae3dae860f656949f70786f42d3a20666f2c69d02530742c4bfc00068b2afffa942c2491aa720020926a33d2fde912099ff965cb3853f919adb527a55367924e38c5eb35f7586eea5b4d807214e0cd31d4b4882e7f7e2a38a8e3376ec379f9d7b57659f6f86b1117bc488fc0af0ce3422f058656b4d17ff473f1f28b9fcdcffd50ef00c54a576edce0bda874926afa0f8507e1bc62587f3352317f5dbf449726a63010de91efc0f02d51c0d10f2fdcc366bea23a7de6032425292d373b3f648e9cc9ebf4f6fb0a0f111a212c3d535b60737d8eb4b7dae7e9fc1b3b464b58596c78a1bcc2e9eaf3f60a1a1e21232532516777a9acbed7fafe000000000000000000000000000010233242", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 5, + "comment": "signature that takes 4 iteration(s)", + "msg": "0800000000000000000000000000000000000000000000000000000000000000", + "sig": "b4587cd1d9a27cd69d71a2d07bc27917495217b8b06d0ea752a26732c854d3b924061a895270b7be3a35d49e521f9d0516adebdd70490c3cf1538f8cc2fb3279d2cfb4ea126e1d413fd806f6728cea61c72eb445a6e5a36d367de3a8956e7494ddb5e285e257bad7757306d77c9986c5acbf44aec64acd602e976bd2b4e1a9542fc677b8f2d82d0040dc1f63d4c9860dc8cfdd43145014883ee770de008bdc168383c09448a68cdfbe5e977e6cd776ae102e02f3426952a3eb14a1f16427c84660ee4d1daa6123c2361849adc66b8ac04ad47a685932e58ff81af5620787e1f4adb29412c1ef55a139d2fb16a2f34991043114b7fb6cb6dc381976cf1469cd6b87e07f49422c9518e3da627e1de1f4536864ce8288d9fcf76ff52581f3b3281e21ac19cd63d54142e9325273994eb4c8536b9e27bc98f31f95ed02d2da5799513907a676a005fc307dd99699e06f6e736f83661fad76432fd8afd21037fae86f058ab32be51fdfb437eebf01bdd969bab57cb50b64618815e7a38a55f7c1597ef7dcf93b247899a1146caeaf1d50601020bf8bdef4496a1280905e11357250a9aa1939d4cd509fed52de704293ed35fc35025f3b929a0cd43dbeec429293c2429668d2f8a74ca0742959663711009687d77b8f589fc66dd0a71b435e9a097f3598861083d50ebf16d22bde8e233fff69ee9bc5d188b9f81940594f749bf27e16cf38fb205faeb64eb668f47bcbcbb95019e4c690230f8a703a9a434c526880c898060b443ebefef92d49046e1031da5b9b443a037cb4f5af70cee8502a2163a6be49504191770c1a3cd2a32c15dccfc91622f4b297d63625a0e94b874bab0431401664b473c5c9fbd34360a86f55d2d66bbb28b051e9d39524595f6d94869d0d7a23d704599280b686f350b45631efbbbf1b41f7a91d63030b90fdd8540d26c57db902181289044b045452d99819eebe8bda4ab855a19d73ec739f3f5f13ecb7845f5b290c2f0f38cfee2ae78eed1e7a093801d0a639146abfcd0d7fd9dda3b86de925cb796df626a94a0dc6fb73d351e3548be4537a8f874ee074218a088aa748b1b807ebaa81f1676ab10f78410e882ac16765e7bcf8f7cdafe03fdf675374423b503e401decee986a07bbd9a80773e5b913ba26bd4cab187dec4679a840ef6a7d8fa10a276014d882301062cb2733eb2fc9ce703affc73178980cfc4e544d248fa34ab60a2ce2bf4544d33d6a9185009d616f7de587f64f6f2c88dc485faa598ba96be5cb26a11e5bfe7f1a4ed77f58e54a92cfcb657ea044fe4748fa976e9566b1e1cf8e3adab09fdd74ea3388277ed0551f7fc045d78a9f952e5e33f16cc7cacfd315f51688a0b0074f4a28fb404a9a137d06976639731644fef87c78bbca86cd0bf82c412fb444de906cefec28110850d2cd7723c45ecd9419f84aa75eef5d3b2206ec4603113d1268ed11fde8c4b222e14ae4ddbd9025fb0b5c2496e25c50102ceccbaa756d450cdde7f02a1adce5f1bd0310e442be62cf925ffa6836f65e249313c6643d1f35f4922c5d032b4bb028b4b8bca77c146215174f7f262c589449e58267d81eb5cb1daede12d3ff02aa1f6b3b4d36b8705efdb8261ab79c647539cc7e782f03ff0a4fa6ef0bb37b8b1809661f7ddb4d34c24d0d4dad5a154ff4f2b50e2cb5e7f7616f02cc10ae24c691aed35a505fa8a42d7aa636451614eb01895fce3788b52649e373f523150adcc288cd340530fbc6e4dda81316899c55f2c96081e6d87ba62e4e0f400dd239468161ec37855be29c4788a892326515bf2000c2f6752b8176b41710d28aece21e54821ce20e133a8137344601ceeaeacdb07d98993b9d0fc0d73e4a07e6d67df8d08f0a40211de7744e674c0c23afcfb4da6e5baf3eafa985651a4830b2846fc152a41e05c0a927c7b92076730cc6f1b43a0f4d46e130de6da23c08caff2ee0e1ea7b76fae0d43dd4535398df5693c110e5cd93e37e1ddc232e3a9df022056f6dea1fb2581e080154ea8dadeb66ae8df7612b3fe05841ae32104a4e67a69149545599733fc3060dd88a48d8cf9354e5eb89e3507c977e8b3fc976ea6ec8bdf65021e0b8414530dbd434441b361041e1bb270024bd102dd674bd73ee4fc644b5e44a1128ba6fc7d0ad71c72b5e9ebf79feea2b77e5d0bd097a592d1e7ae0bd22d477046707fee43d8309e90c0852d7f2b9e7671deef2d0bcfc0db6ec3f94c93feb1fefc6929befead09e1f1af32c7c57dd3252b3b62912281df10d1017c9a4b8019c95c9da63e4bca9dae7ba16a280a4da36766961ecf05ad8323f43f640a3f401bd0fc989369c3ba0c5f3d67b4ff754da87e3729bb9fe347f14073c47a74eb91742f9697fad037f8d839c9b6b4e535b03f3484eee12716f22e097aadf8b29fc3e3ab6b9ef7e3840e316024682aea2659cf868bcf467122fe36acc21d55d5c3bf658107a1f81e884b70590306c6bb2e2802c1f3cbb1516b9fbaaa2a27cf05b968584756f2b3d793495f8d683d9ef7319d34d2edf0e28d93f61ecc336463f9021ffc08fb702bae456b7ca732589aef4f488f4b40435b840ec2858af02eda6a9b818a399855f57e924a861acd2741effb3977b4316e36925eb3aca69a84dd58a593d3b9fd73b0137c6005df553c1dd34357ee0844a17585db97f4b22e390ee6d096eedff5b3793f5aefd7d0074c8755cd72a97ccf5a17dfba0abfd2b881bb186b99c9553e5c1f87953c1724f35df596f8f6e101f9e399beef36faf3f77300555ae10e235ac1e6cc75d8dd4d68e1669f05ebe81eb21bfc79efce0834300b6434074345c6a46bf6a32fce59cd0d4a3c90ba152fb293f23b1bd744d4fd404c96ee5c8bd5545cdccc05f87f119aff0753d7ab9716efe82ebdfc0ea1d1786c067ec5dcb9c47a427f33f67729c8b5b4b469a4f3171b3aad967f4226546a72e32d44456b1da0a68d5c375681077fc8859b34d650cc87df7bffe4217d3ae999321609cee394e704aa3262dd4b49c0122320fd8cf3864e0019c295f058a07d03e306f3b30bac85421343485eed17b4b19472d2a00004f10977a4f2c4599aa3651efe72d1e7013ebc5e172c5e3ff1887e8120537806d5aaa99c3db58502d6414dcc1d787a17697740edf0ec7ec0497078931bc5afd6293ebd4b952d7327786912d93e1cd2fbc0cfe258dec8aa23760d18a4c87a7208e92650d927e639ece1af2d4e93f189b12e946b6e68d268ffb708ae991fad79c6bbd0d2aff2218d5c48948311053558248e0b6ce3d08ff0dc7cf3485238c0f44f60f50587aa5babfc9cad1dffd092023275d676aa2a3bcc400181d2d4a5171737c96a1effd232946516f718792989cadb1cacbced8e4f2fe000000000000000000000000000000000000000000000000000c172437", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 6, + "comment": "signature that takes 5 iteration(s)", + "msg": "1400000000000000000000000000000000000000000000000000000000000000", + "sig": "649f560a6790b963eb1677406d3da74820c39338d717632f20ed5ab6301f7bc2a7704d53dbec88c7ff830823ec43877959a7dc3fcce86cab4989504f3abcb791f8b5fb649a5d5fefcd28ef69a5f0d16e8b640e39adc748a1e089b99538ec404125c79e60230986e9e789bb2cc86b28bf95a21be81c33e721774c10a5cd8137b99e997deec15f131666270287efcd2cdfcf7fc54dc75d9d34d4b0f1dfdebd89d445f4ae344cb310ce43129bc8978a6692d5ce1db248ee63eb50ea18c80b0a33e521e7ae44a015baf1074775c7ce96a31bf5aed0053551efb6a1dad85558aa2c061f2b7fb4b3c393714a48698466abbe4f247ddb6077cb108c438cbaac2168cbe1f8bc86d8eb769f45bcbfd2aba9757b08a86229a6ba96a001eef534480fb69fee3ac604a34eb01fab91cba53e6231d0d2f811fb4ad753150b93c27e290d1c01bfc9ee58cb50f6e10d3dd552a101f882e995f4549e20d9dfcb03a9b5ee0c557f862bcdc12b72704419d1250142aff7e1a7049fc8a6e39e3ff95b54c8e986e6dd5e9aec480d1493ce0f28487ea662c4a88e9502f53a330968953f71209b62dd485d29c3e90b2a8f0d45e3c3a2c175bc5216b2deca8bc4fc631ffce44466b3b071cce87d14ddb2156970d72782e65e77d9c0996b81b5cdb63b15bef7bd960a301643d057c2564501c979946f5499eab3e124748c0b185303b49ade9bb8640d92df1c724a3b813ce3501cf8f827a68646830fc2d9d0e8850c130270bdf3e8742bd4f3019b1c77991212674dd2fff8b92f7d8048668f1f326c8c432a18a6b0445e234c45dbd03b9ab94e5bc13c5744e519506f93ff44db9b8663a35479ec83979f59b9f15994b2e1ea89a87da033d25d7ed3d3e67c79ba6d17bf4446ea1ff6f61082b1eeae547b72ef68864001299b3231684452f061020d1593eaffc03f5b026e21b5ee98d7377cfa6788e3d9fe959009e2a341a1c79d145cb8e2055387097cdf06de6d9f955ad5e523bdd8fb67d34d888b8f1e3bb21a76d943c5b3e1896421879ded5a3ca74abdea1b9ab44fefd219bbf3d1788527bfb8f0293dfd8f418c33399dbacba154ff6517e1d59f85b805e893de298216fc664dc92a7e9524c80678552e64303f65b58a6a3d605b738aa75b571c14cd3187e9c3989b3bb6dacd3a002ae6ec707bcbf9a48dad9ba67e3e876f57ac4228eb0a3341f744a54be4132114481b2badc0ee5a140e759391bdc6642a6767ef5e53d1790d4039979513a900ba1bb00408f5ca04c6f880624489816a53ff692d79378639b4ff559af4f54a28e3776e702ef116fa348ecd1afc4309d52fde2426d052e18b89a50609e1cdcd5a3987931074e6e7f00e4a05ef0ef497ebd559308a1edcc500986e4a51b8167d7328ae2f219af699768d4eb3aacb0f2c3d1638afa6ebaea77fc5048dea32ed752e759db167112d6aaf6d39bb76b1aaebe703bb28bed77e15e739c4ed9ba489034de99367e53c87a7ecdbcefe62f7473d5242dbb8f6a6e6f5b4447463b61895125d74dc70d01b431886046d8ab3221de57d7582cc68ac966806db9f0ceb55a71a9833d4a276591a0bd2487680699f4c6f61e5b9eb524f5762d847d21c8c167f6fcda8fda8f0e43ff71a02c25ad12c0b1aeb0f30932a59186e4a003245fa8524b42d41b8606668596205cec2a6f1eded5dfa139fccba451fc85c9c0d80cc93da006bc11e0aad9ecf3a8714362d2340444ac4d885dfe7f2ef0d4eaca886ba76b26667a1d9c300ee0978941236706e46b76535a6cce6fef631e60a63434c64fe8a71a2df52d40f6e44df1892caca4b0137558b5dd59d5b0d578e88b4e3ad74884427042e13eb74559a6c567462d4aa3e83ff750173d0cab385e46209f0e25913f5a3276b6bd393294af3ea047f4b6ec4db1270ae0da02e1a4a744d8ec3afb717e44a073d4bb6ac84d689ef290c994e177802fb8f7bca3d7115e8d75132a6430c4186b28a5a544e5e1972bff23345d2f6054c703491c2a232cde96c3e04a5d3b6dd2794ca57fc8e08409f9d80087e811af484bf00d82516f1853770eab6f1a17cfc19f6f2d3a06cf888c8c57eb2367393dbb37970def960d94be53786c144a002d9a2a9682c4ba76a60796f3a0cb66c6482cc3638765e4b101d304031699ffbe7f42861d874a9f300286e9a4f34996abe0f3d67c93b9624687420b3073aed1dfd2312eb1e1e49709e5b619c2a58a3bd5d7da04907613ec9f98da6f216ba28eebec3c9abe60567eb6ff6a24158f27ba7e701322794515e6058e82966b0cfa69127089872a18d3bcc7f708a51f8cbe37f3adeb6c0a396c5ad91a136f778a549d0c8a6996476db8723dfec989862a407e0f32c2501f95aeaf2a4b4a591345e31e27bbda45df930eaacd229829ceb53acaafde54108b4880a7f4b13bfa565585741f4fc208a23c6c9396f59ea6afd97128dff481da48d9eb04b07908548cbeeb5116bca338f79eba142ec86f60d5a588915dde36134dddfa4265cba2ae63780ea978f8dce6eb3847f946512becf79164e63d192a6b7aa78113ee6a551148b680af304902ee16d6218343a9db2b102d0cf133c62e920788658ec9006661dc524c2ee9b375322b39464b768be3fe048b3877aaf3b2f2a84ff0688fde5d0dd9936c73ac1e0c4cf943f8518934d356d447b65a7ed58ad4bb760aa0c963bb37a6a49bb9b1fed9641e5e88ab4681e32d43c0dd083976b2713a6faf7937fe9fb90acc58e6ab4d85839a1690011b3c5caca03aa44e66b6b04fc8e95c79446e194dd17cf2419a5e2b16be64db1d065bca7c0940ba474035d5e428e28e9ed741baa8eb84c1cc2c8ab782a6612bc5ae3cea738ce2f506c861b73cd3d54367687527cdf88df0310159ca89afaf00847176d1b845dc22684a57f69b8128b0b4bea5690316fe46f6f9d25b16d666926b43f134c03fe050026c0fddf28fce5028e444ef321b5c4331af3a4af9abebf75eaf055453d9ebea541c0dc2777db75b08227a3a5d064e57b77f6bb007ee1efd46cc2b2689cbe1a7f6467dd201c599779bd02cbc999c6a08158a72b78bd0dba3d85b75d623dc12548406aff804f4ae050cff329774bb8171764ad70f4dc91e5aa5a0b04b5954fad9d060463d07fe5754d3b98b1ef231ee8ba3c2481a52cd6451ccd84929a726cdcab0065fcfb07ca0363e61d9cfc216153c97184d3f39d12930018cf2c8ef8fe9a1d99597967acf6b354ab51c05a3b0c51d4d5a5b0ba905aac8752715b76af8601a78abcc9107b8ebddd8126c6c01a379126cc110906bc8ad7b39d131d527195b3c6c9cdcff4f707152a313d4e6061658d97adaeb1fe0f15161830354759768faac2c5f505263247545766838c949ba2bcd8d90000000000000000000000000000000000000000000000000c1b2938", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 7, + "comment": "signature that takes 6 iteration(s)", + "msg": "0500000000000000000000000000000000000000000000000000000000000000", + "sig": "b1e736f85b0f1755f24ed4916f7721ea4179d283ba1f7a76b48f177713daca7d705e6f7284550bec19e631daf1b529d16750d26dd9bd904d8158d52e88c11f89aea796f7985cfd3d90a6f9045b9e6a11ba3f88ebf6be370a8f603da5bfb0dd588e337ffbd0ac40213babdb0d128c7a7a8a91ce5c0eb7ca93cad69ccee2a1430e1d58bed73df488b08a314e3591976abb63907b278d15cdb34332ebeb8ba8bee0637d88a0ca83e7e660a480fe41c32ae24b2a622129f0563d11782d74dddbeb026b79ba720ca8bb56cd9051f34db46d948498072102ac215ad8205cffca73cf665e09d44cc096aaf4fdb75f4b7f172fb89e00c96dc649ffb45a76c2f605b78aa4cc0e5e2dba4c9731835db6b94e7b67c9ae6cfebfe4cc4678a4e8184928dedabc541ba08d6ff4736d0d5f7d02c3b709bca38fba4bf70df1adb2f203bfc892b80b1b753cd5c75fbb8742684592e37b14bee5f129b2c65c3b787443e7fa9aad32d5370950e94e97446b36fc20737433ff6f4cb23b60fc5e66f563fe8abad6e54080d9a933f83391c4733e6637eeafacbe32f8a06ab28634f4422eb1d473f2fc538aa72782898f54d2e01fbbea969d6df8e6b3b18f5bb3de52ff781b6d62321502e95e191c9a97242ff53918311c79e629699f932f4fefc6101b43e4875cc957ff7e95fe3ab2127d65698fab483e221fa8121122b26c0df4c997a5a73e642c5528168e1c772f86faa3c0a7da00af96040e2453d9cc80913226bba7257fe6861b022106a43c3f57ae1e5500aac85646e0398ac8bdc004b1cd1ee6236a4481eaf0b029b4da27efd20e9b8a071d633dc14f0380f2bb747618c91418b7defc191a5bb4862a2ee30729ca674ba26aae4b0366d644200b3a080e629f9523fc3a6605d1f2748e1c27b795fb0639d4b8e3831635382e85bea3be1d69398debef0efe4b91d3d786a1f75783a8875d382cb445d8729e46a83d0d07506d8d5a86305aece1176b7b54e2d403c1be1c51c1acb28316556599db1eebea86f537e93944fe1ff7d34c5dfcf26ac77960b67f186e1ccdea1ac3c3b97c6d01a3ee175c70eb72fb4b19c1f3b8158c3194e4809ebfe7ad444d9c1c69795ab45e0bb6a4ba57fd9bc41662ff39247f5996bcffa3915d794f63886d17791ea877e2fe830fbb93327bf36d71460734eea19eb23e121b201175974b3c83f57a7b93a7a13f9386d65d67f60aeebb7884d5ce8f453b416756401226fdada38271df694207fd462dc863646ad6ed3bb3d7af7e5244ff901d3428f9b6eb97d912f1117ec11aa224318dedd1d0a0a6ce41a3d7c7e739538affd5c89c2f166e5d98480b4890320739350a99932604bc6709bae757a0ca209c92dcf59bbe2caac517fb977dd4959f367a60c3b4f732dfc13fd23cc2367a140dad096198ac73a5571cdc8e0774ba9053ea7e612bdffb63c5be4fbfc834574437f40bed5bb6cbd6cdc2aa533d4a799bf2065c5031797ff8809c90d54e78483afac395bde4dcc17a3b478f5913b7207dae53bc9fb9e8fe47966d8f3af825c262cd229b176b6ef175f62631464b9d6bc2e8b69be412691f8d6f5db0b45fdaf8474dbfb952d996bbb43ca1168854cd7f1a18f420c07ecec04cc2b9d782aaa010af305f5d1ba976ae42532dd16b1679fb1a8e0270bdcc9e11b84dc6cfe7b44486094310a5b363da708c6794421c032d03730256ffba676692e82f3cabc2297efaea52ae47dbc5e490698c0e06c729010c5430d44cdb704d8fb58bdd029211e1e7f6a36c87f85d08e09cb3b4a311f504054e4ffe8dfd070f10d8b8e24425b1fb5ab0f4c1ddbe9380a545e33b01eb87ad14fa86fee7da9b4ffd68c3878f53d7cb9372d7404db0f122adfd5d4f47ebab61eb208008e3496ecd7dc7e18a3a72cc1c9317ad0ddcc20fd8243b01a86c50ddc0ae855c870018fdb505b39ad7f2acad6de3f458b98539b5b00e73a9bd7c63d0e4813d6fa1f8a1ce8b93c472643ca4370f1e053c1932e0f0a331a6c2a8d4ee1143c19daeae40f26193cbc51ff982f297bf175de3582f6e5a9724e986b8084f8bc5df181e691142efdfca97c54057dd8c363db4d7761b5954aeed16c3151d5a1b93bf651de393b8371f69246db2c80c6ddd0ab190f7a6279dfee3c5948fe086209c267113aa1f0b341a88de4471bcee859d624d5efcd72be1fd87b810c13b78f993bb2a3b5d4011219a9b380076624263744516a8b687dd10359ee0063ca60933fbb37b54a59a4a918eb8ce38df0a59b016157659e4984320e73ab84b23374707636f42659e634297dcc7f2326625211ddeacceb77aca4d401db05b1e5421dff91adc3131c8749b5d326d1c872c7386e2a72643ecf30429e84226a614f01b0e769f92ad0215b46aa65e20c9af637650de006149a58d2eb479549b11adac064458d361d6cc1e698467fddd821d759e1ac5469473e7bfa5a180561f5bdbc811ab6ef9e77cefc5b51111cbc5e040f3c84259274dafacdab3d8390e7329109c3630b56297694f14542b1b3a78b1828632d4d72a09ebbe2d03521f3e22fac8d229f033868b3ee2f762f0ce6a32366ed679dec0f2e707d5f7efe208a10a592009695438446ecf960650532d920ddc3362ce773efc3deb56687b4e8f409c718ba1f0fa3fb249c67a6a870618667c5ff617d3085a71548b6aa7ec2a9aa930d07b90fcf8e3d6399ab59dd29c70061dd9f3e7b1ac622c8ea52dce05b1cc740ebd15a5d5b5d602118f764a441f9b47347d518384b40b7a9cd66bb8013111cd88b998060e3ad8a4ef397fe00b54b20d9555086ba48113eab2e1be66c47b24aa70136d0e4b8131c5c0e03422509faca2c992e2ab5a8162936dfbbe18f8164608ee802975fb4f46497558fa352c57eadc4410c95eadb7da4351420ad3f9b996217545c5a12db10f3323233162c3e2e874c25dbdd3fab14d5843f1eb2fa2a4acfc2a063b64013701a3d9d2d30c45a59b5bad8dbc6b283411377e76c2efd1a1fe058f6c8fbaa3101c9a0bfce1cf8ac7dd2537c2d14fd1a310071d1bddf9ecfd3234c1028904597713b439b33f38ce33057378219c7ab1c2bba0dbe19ef96de17495b6d7d4c47ba450ccc3f7560d19b9b6b8a4d5defafe94b88b4e63fd8c65c042ed889cd6c1b5f2bbebaa54e713122717d54800b2974d933dd571ae0d0b42880dd8e9e8cb1e1e5c74e9ce12930e0212ba82a34d39d76e38d7cddcb5c18e56e08326d1a0c52976c168713f57a42b3232c0029f9c3c4991c22366c230f1996e10f145863ab84d4cd6db4cdecec705fe147483622f26c4111c444f5562697089a2bbc0cbd9e0e4142a2e4a606293959fb8bcbfc5e1e5e9f0f2fe0c0f232c384b4c6366a0accacbcc050b151f2a30363e44484f51545d666b84868d9fbbcdceee0000000000000010233149", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 8, + "comment": "signature that takes 7 iteration(s)", + "msg": "0f00000000000000000000000000000000000000000000000000000000000000", + "sig": "6aa02e9cdf4a39c5ed84384fa4dd57fcd3c987873c3e4355aee981ff543dc5bff40434ea3a3e4430343373c2d03053fe3664289093b30160b19a119963140707bc9c77574d63bda189b8cb1d2363c82c54c70c2ed898e4d7a7db210a1715a967c2534958be4af70f25274b9308520195913c5d9d801d0afaad4e79f2c7fef7f06551b22f10bb3aeba561193467834a75ed5e41385c2aae782f78661d6508f7195a0708669b0869dd4c5d3651845d73e4101b45f8eea11aa518c60aebd9de505b9ceb5cf01f25be4f8432f9fc0b3b57f4c389a2d14cd2f2a8208386186f7ac752a277f990bac048914e4fce30bf9a273e30514aea56506c33b68a7164fcc2b96cd0df986712b5383fa9dd9a6ebde271fa7af9d14fbfe10cc5f5e17c346fee0c607bb06315905c01bc6548b49d84398a1d1870752c6f64e27477be3c895306b752a1ec3bcf31131bac7268af4b4ac442e66f61cb3b55409ed9d6ff63bed057857ea8c74144fcda1f2e70b617556710fb594107765af75e09107fa76ef37cc34b4807064f4d8c5b28983683730fa98474391380a76b7eb4bd32d6d30ab4a9dad2d581377ab589359a5f907c922877676227cf89100a62c22ab709e8a3ac92f9a0161b9768b07bdd28f4e13175ed895a8c731ca6cc4542cba47d36a0c16bf2f8a3b52bece6e9964bb827a8e09d35362342fee32751b912972efe3a05456254aaa14b0617725c3120f5d6a64b85f9a588e886d90734911d283da297d88ac3c1f46348c1a29c47057119f96f0667d78b565e5811cd7ad93ed730d95e126012088a0e6f4691d8d93ca01eea7b3b2098d2df08db9cb83431d0fa0db356936890cbc9256114b329ff2744b97348991afb85765d7883d003f2a17913ac5fb987eefcf746c95a12452631a09fc2e029e5844a52b22336dbffc207a1c15e14925d3789bc925744837f4b6e9474874a582228d5f8a88f8edfca5318a211697b97142025f2f3ad5a1b509025503e2d96e0792be796838d529699ac8fba9bbe80569622de9983f0fdf456f9ef0fb7c4f761864cc03e690823f5c0e362e4b5f6362b034ccd40ee4826cff164db191849a0cecd5d47066b362b60dd106809bbcdfe0799a7f980242ca37bda0a7d7e567efbab05f4e80887042f972618e6d83f17ac60d07bde1e7f5854d4723dbca15c81dbe4067dc02a6364eb90ef0d3b4ba4b3e2b620957e0d5836c4844a624f6773cc2de8486f3684a35aeb9155143871c3b24166e21f38625432e306adb0ff265f6852bf76dbd1d5c217443e35c2d81c2af4d350f23e8ba08456366509996e85c8bf1de148456ab086309b782427853a14424eedd718370efd8c6785b76008541c46f91be7a057c99c1a8c4fa573f7cb2d564903ae78c99b95c19e80a175f5e84a1852ccf193830f3c2f11a918e758755e2dfd793480e535636a9e25a3b497676e4b01c5cd91cef68a8538bc7d3337f07ce985f290cd62cca709467208aa11fb040215852c4108b1a54d9a78ca66073384438ed08bc36f15a4b95e83ec65722b8f9661ef43373a8062ce2eb0887e5529ea748c35cb3eb9a03b402355ddeb88c3b7283a1b407bc0b6e6a981dfeb705bbdc0efa5310d091acaa6bd18c3679c20ac02da54d025ee945829b7b6055876ea311ebdeeff94bae06482d17a086815d132f420c1fa6dafbc0d6de01e7a4b06d318367539d217336b410fc67f44792983a8dc3b672b92c4186ff2e426b3f4c13b98d1a0d20aaf24bd42992a4f2bd86fd14fbf7105330c103f3684257befeea6be2a0b4b643811384a075512e3b8d94f9c425785495cfe51da9608e3082811106267639f111312d696f5b36592b13897021bd1b03f905a1a1604269da5bfcda1f8557bd4afce49c0d8f14b76b87e0a0ea98a0f2749dc12d024583155a1959a9dcd3081b297782dbe5e62dbd639b33be32a5d0d711fbec9adf0e1038c4853cb16b6df4498ce50a4f82d2fb1dc7553bab1d3e0c57b45b7517de383638dcf898652ff32617bf073c93b0547335fee27bee50aebf6afcb1a4b6d730ae12000b47b0b6294463c69e512af6f6436c47defa87dc9fc4e30da81312a49a3d05d8bb53a42e67255210ef4639570a0a61b8a8bb20de1281005bd4aa6bcfe8cf39e4ce9e200c8de759b0ad4a1cc1501f9cb2bc1f7420fe8b5a674892b694ed1f23c824ab906f347c60394f35af11510e7544cae548fd0aea97189fdd28019548ce554f2f4d15908a333c9fda2d3be43bc5542fc3762954011fb5b68c99fb381d938e748b22137a30d9896af870cd1fdab0c86eda5dc94b0284ed1e10b4a2c26bf8cb4ef264c72501ef8e55945655ed8df305885f3d4c3b9f5a74b69cc6f6f985305ebb17091de6b209887a60a099f1d6d2d1b84ba633e913d2777188a21fafc1d870c2b0629d3ef06e2928cb86daf7781830675bbae7661b0d0592ea1a3e9bb03350cfd879be3b95204617f95c72bd4fb05c99f2a009a875db872848c29f705995fcb763f4f6c7c36e176fffdd3446e7415f5c7caeb2d340e5468cb7529a310d0971d297a59ac0ceb0386b24357ff7520d6d9151deb67017124320c9e320c86a0a169a0547630307ff90a774180dae3c71f6496f81a1ee97c6ca03fd4d5bb0f43f8ba64221580d3b0068a7ff2ae8d0b4a319fa4510545fd476369fd68502719d74a9036a4fbba4148e7d960ac05ec1fdfcbb8caf6ec3a1e9f3f0f24e084a06c5fba93625c698d0db1bedcb3fd663c4e2135aee443cb10d3682212351374cd1e41f96389825db8ac96bda6351d0bbeef6b14e5c4b9007826dc34bf50f97c48244419179c35ad720498f78908ef912ee73d741eba6f92827441c3426249ea5bc35b7293eca0201b8731b329900ff0e811547be6fb3622fd74c829921a185cfdbca0245eee4ae1dd6d8ca2a6a123c55a6efff9f21b5f33a0624342f929e59b83d0fe09e37af2e7cac7ee554368654efc643f53b0e24539d7ae3e82fab17046a8c8bd1e5a0ced69343a796c18b0d13e066867645d108ccfa969333639c98d0b4083027bf1ad61d82e174fcd6372bb2d96296f1d251741da317dbffd1644324d9952a49923c048522e23b05d8484ad953cf656f71eb26a1755055845af11413bfb20aaee31d334a39f1d7d48b7b3a81e218e140653685b65e217c98b76fa092a5406f56d4f3f810e6e0659eb89187ac4f7b32b9f81672cfb16f47f39a1b7230f1696cb6ad17867ac5384f8122271ace9d7df6027aa480e76d61e8478b87bff9bd1b0ea5943529e5e89e0a809504dbce76bb895f70c0d565f63646a6e73818a999ac7d4dbe6f119262b2d5c6177797b879ed90e10121f2342474e6264c2cddbf1072f3a424a595a67abb3d0dbdff100000000000000000000000000000000000000000000121e2c3a", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 9, + "comment": "signature that takes 8 iteration(s)", + "msg": "2f00000000000000000000000000000000000000000000000000000000000000", + "sig": "3118eedf0048b3329184163905ef2f2428a23f5185bf4f89d75fcd01d1a58be0871c88573b541fb45111673a91f11bf45e3276185271f3fe7b6ef80a1fc5c35cf441dcbf4263f7546dc4f7ac15132d59bcdd8d5b00e20c52a2b5571da58b7bf0ed4115f44dd33bc2314e6c3d27644232cb249493ac6f911eaa99718a268bdbef2197d186569f7462d0f31ec619804f30f213d2936749eab6c0605f342393fd0f58ebe66d46536d7045aed05f9fd341e9f69030dc91e7017cbaff344b5e8129c8ea18734c6efb78ded59b25b4f76726fa04a4a0609ab028886760a537d9123883062d42467834fcfa9376808ed4fed25b2aa9ede57a7bde2fb3a9d956cc45262fd44727a35a205c613c954b41285a6ad481ff83953275edf6317296a2eeed0788a4eeb69b0f26564e5f4943353315c2d7f63060d0f42cac0a015a3f5e32d3d199df64d627ead89e6a51fc08b633aaff87fc243d5b46e0f0fce6c21113d1b3fb73bca24173ca7729a7a07bb804afdfe565cf783fdb63a2504146dceb2c6f202c89228118425f23d4825fd30774ccb8d650499b5fb603e7dd36e8a3f7234bfe385774701bfd6ae0c584932a8599d3be21799e366d6aff900c9cfbc95cab7608b2c2b561ae5d4dfde438830daf64083b3f16e2a8e7e707c1b04cb56b90605a6067ecd600485b8e51b0949b0e071439b28a052bd99b3128c8b5cb9ec6f11fc37078eaa343c7ca93d5ee451f00eaff1e003e001ffdef4665cf114fa7b2e4c83edf852feba21a4c1e702fbeeba84bcb439d33a5c61a508eee89d322a99401728d0cd805b8539d13c16db25b2fd2ef77a98db429baff1ca2ad57c6b83db5e3b9147849534836a5309793bb18fce7ee5ca85e0d6f3df45998521e6d208a5c6c2f3988df21c3cb5e3cacbf2dc8c5e8b33370a09232aac8a4a2b49748824567fc04db9d9bae98f38923635f972b227c2dd6488be96dbef885c991b1402384af3893d81ec7e078b789cb79fd38147f47655f6b871f73c3657381e86023feafe47383c25db934203a37b98ddbd2bb845496d70474c42b8bbf5bdae3a9a62be3ab5b73d9b4a61ff10873f870b60bf3567c34dde8c226d4894ae8364c78d0eb45f6a62baac6862d306ec584fa347c6e75984044757af6bed18fafbd3f1bc67d94a6242857e904e331f057b0b787e6b0b5e3e8eacc2d018eb07b7636e98fab16fbd1efaa138d4f83aebe6ba209ebe77f5fa55ae1afd6c5fde089435fee840feead74f171ce984956896e4b7a6420bacb70cb97846867ab5ecba70b949af3eba13711879f0f381772a2cb2f53c905ed6c20b9f9b6238ce716406dc9d3c41e67016e9b455f52d44509f6c13082989d15421722813faae9f1136b008cd217c24f5eea3de35f2f0a20790deb4658ffe93ac55023a29f14470220dba9362558e2a200e8bb59d2c44e7de706e75a5cf011d6d4dd718541e040792331baa249d6c0f7cecfb7b445f69afdc55ec64691b1b3e43b3c991d5327a9c2256b9391f042eb2a9a1a1f29229c8a02874808e478eef56a5aad5b7a21d0133d23c87f9a63512763f9920bb01002248b0a0b512f715013d079771907322cf32b3131e33132dafba683e59641a5ac2061eb1dc08b8f0b3301b30c69f9d0eb22d1011a7cf3ea12bbe606278716be6d9a56a0430220488162be9fc0d635bd67517703b2893a3b3601ea089a96d393dd5ffb350b20ddc374ab2aae3ed2e87ff263007cee8cae6ceee1e6e5cd51204bd2eca46b6f829d090526e2cd79e6695de8b44c1db5d1d0d11dfc634cc8b9beb87f81299899a19ef8780291955896fbe041989aaebb3aea3bdec4f40b2775a7e3d9e0321cc83b68f0f6737fce5778601c62435557fae1e1868b0847a3402b23bad25fb2f15d1cdd5c20eca124b19e70a273da888778746090427348e0b2bd708652acc31c52379932a4bd983089ae33b6c119713fa72d6bc2916ec90be1f99be749caa8eb013f95877f171d3af0a7d2844b6c8bfa106ac17bae8effc465600fd46ac13dadd963efe92878484c89ddc7dc9994e7680ef7f89da0a2b2c4c82d3a5d79303d6cbbb748c40e9a00811877b329afb2390ce5edc15e03803bb1c45402a9ba86670516b2ab3966c134ca0263f75abccad2b708163c0a737eaf8fc7cf329318e8aad9ce1693bfa3784483341d34e9b1ceb4b572fd45c5a0b267f31a1558b6d3a9bb2803aa2f07311745a1d8fa1180a1212ef3f4ca3e169672d5a9358dd714332a28278a75223d2618f36ea7cb609a91a7d2a58513c62f709b404b2ddd4bdb77d008440da05a7e6fcffb476737fba94b106c5abf220efd17f1f5e0794723a4233548607a4269658a3fdf50f49fb3d10e8b2c19713b5369fbe3e6a56835c482ead2e1149172789730d7264f4af75aa6007d7253ffa59f6fe30dfce472fb7829c4e6b68a452d7d5fa682eb88f6dd3f6873174e2212c63b46f0589c507bc10f723084eedc4167cd28b4c8eeaa720b8fb48e6d188f4aae93592ebcda82ba01d82ea8e1c70788283542daa8d0171afaa2435371ea6e24cd82c4a20f847cbbd904ee035e79addc655efc723e7c1d1c8287d166f55c04450c5f2e90573a1e03c93344a64dd7988db66c51aff2587b4fe6cbcdb22a004be1b5d825bed3ab1106516fe0cdc31c213b4d5bf3e8bc8a11dcf42c22c8b405a84adc2d198e717918a9c42aad3a927b9aecb5d9dcb488a01e784c1b060977c229760c8909e2fe116c0dfa68495a0212a823f2576029eb342b01145c285a8da5de9ca22fcc81b46b7777f8941bdb55e6e9f5b72df4d0f82f72aef847e9248a4a8a42a102ee5b42d915d41fe00d3319810c4cc0c33c61b4c354463e67c35ef2b3883136fba58b5356d46401a10da6a9cf492736763b4a1c26a4e45a0a9b29812d91361e35c3905f5af874be0b20bbb29d4391b16021ef287c9e02879b5e378e1f6f84bde3ee2d9116870dcb6b418b41a99eb9c4f7bac3fc19b4c9a306829ede1095e57cc1e7cb623cd2fafe41d6f40de3df3ae974cbf59db8ecf6a36c39c877fc56d1ed013b1948b2e04a8f9c34bc5da7e7265e05307cd43ef25d0a51fc48fd980b34b85228f6f5c82faf5d071b1adc5d4b36c044915e00dbc3bdcb46553b353c658b362f02f50d5e967942a94c312c220812364c5838ec5dfcf27dee3dac4cf277caa0a78cd931f3d33a9f6a9ade1386ec366e9d063df26cfc601be7b998f5d23c072c95336d3914377c89d42d123729bbe20a269b738dd453342b803c87354f9c24101f28a17f4640f7c1e9fdb254b21c1732425e666979819091a5a7c1ccdd0e12141c20283738484f565960b9c3cde6e9eef9fc051a232d2e383e4d4f6490abb9bdc0cfe002142a32505174797a7b7e80989bc3cfe4000000000000000000000f243546", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 10, + "comment": "signature that takes 9 iteration(s)", + "msg": "dd00000000000000000000000000000000000000000000000000000000000000", + "sig": "98c1b2f5fa279be518edae782886768f766ac8e6b99764f13cc282c19968a0fb58db5e78f5354da13146e467624d4f8e9e5ab027205d9d7e599ab38b2af5304a95e42ab4ac56c47dbfc92ce45c5ada15cdafd783d102952e41b454b47069fd83a4fae89295afcebd14dfca9527f3f1647d5f97f74933e86bfa24113788de93f0c1b0f6e1037d7a35dc1cc78c933ed21aec9d063d59f4b9285bac5aa7deff8da700e46d7f723cf25cb7564e332548cc7b5fe911252a4838cfcba065a8ca5d2091ba366d39058b4856bcc5d084f17e19872e841879a89c49d4c6f378c136362d3df53700f1617e238e59fcb2858f38a8f98b00120019590c4c1624e8e32ccf0b3bd1375144d9d47b22165ad003c4e596dc785f09c2c02734dbeb1ea9aa9d8b410583a6a60ddc07d5d5ac5a5797f9dbebccfff1907a7a09713f5d7d3f9765a8fe041a442c80671ba42ddf979688bd340297b493e61fe2d2fb6821c20355fd6e30559ff56af9b5130dd511af0f43021cdefb28f5b50b6d568562a0ae11429ea58ccd95e77956c00292d26d214010daf3ebf1279aeb1bfc69f7388a4f174488b9ea0d68989fd05c9903e06f6a788410677480acbaefcf4714f08250953e458e3cd69a12e839214bfff547d2d4698e980c33f8aeef6929e7baed9049c35c23e876baf6fa31a9b0071e04d6ecd14131ca3813ad1b7a3b28463d67d019bba51f31dfa733c91f4f1bb84542b3dd483e4e7a1e83b8b76f5303f72eb8e06bbbb92388ea0c2b9d87530de4abda0083ca64710da43fb6936d8ca2d89ee43565b624580efcbeef778351936f559771cdf5044a4843532dc7a42dfbf502d966fc42afc0886868da1eba94a78fc2b313f733c24180c3581249b29b5a095054e3509243e6ce4710ca116d17ebb74fdbc379fc6bd2bc9e222e76c2c1083e7a5e54768d3629c277c8fb592cc5faef43538ffdbd4786730ca501edf9b02a138fab1f97ec41c3deaa66457aa80907835e1d192ee182c766c433617ef44ecef5e2de0e82b3222306132a49b279e3dbf84240246dbb2bd81568de0c18cb68c65934e7fec603ff3fdc9148cecbc811f50d359389adb71a1450bbbc76680486c9f6f6c4a1992a5a8743bb803b3b28fd0a9cfd6fe89ea3f5920864f1780d1e7abc16ef487cd6f73e8aac2556de92d42082b90d931c7e659d3a45e2c8c92e175104fd5f76d89882c1499c672a0112965acdf00c903098c8a2c4597ae8f983d289910e9b678e61ab6e72102128b183f7bfb497f97f3cb57930069329bbdf6bd3a7d2d3225153a1fc132dd819baef21ee23feda2792141dcdc15b4c2f578f2f4650fb398ed53379fc99c1c578a9798df463042bf26a6cdac93bc9904c7cb9f8e6374a85f281dd1c2a33947409cf721a116d8c7bf8e7d0ba6ede06e9b15ec606baae3940ff9ebee169ca5a029231ea1debb08f00f8532e1fb99d65ef0c581c2a6cddde8e0a426888262537036b091dfe2fc40fbff2e93977841eecfe75cf624be627b9762f57eeae80fdfc83ca2e3091467e834b3df22377497fa09ecf5734800fdfa25f9cb66570928a77ce22cc8bab70cc8199808c20be47abd26761715494aeda3353e92ffcdfe414b128176e985010458ab590e0b5cb9aa559c092b2d9adf03e52b6404ca128b1c1c000602128026fe55ebae775e4a0fa67b1ed315a638cf910e3c7fc8e114699b3f415d74f706753d99503386592bfd4c665c9b70d7e850fb270fbce250539d3d44e81dd909159a46343b65215edc5876c29dc4c5de289703fbde05c83b65b57627069775a72b2cd8fecfd39a61887197af32f434f87cb8584835d3ff8562c7ee1ff8d2cfeebde266687b5c2c6e26b9ecb001aa87484c919ed18a8522acbc5a518904f0563f5975acb7cc7d8a4b4a6e22edf1a42c03fc8982c673507b5e8a86a96d0f533d1ba1e5e557845916339cadfed6504dc9d81971bdd6ac79a522e1d0818c5603a99dda2bcaa62af236b9a029cf7669aca430626ebf365cf635a11ceb7f49a243225ed5d82413f5839f99263ce77815a36603457f2760199f52369e2b886e1ef2256c46c2f8dd2315ec9b29dee7a2fdc4007d5c6db3b39fdd433b0644c15a4168b2a284ccda7bcdf7d7df88369dddfb2bf3a4d1f05998c4d574e6adc28ddda51865a1d85f5af587f95e6851fd2c60303598c17a135917a1bf85192c2b31b8510ce990ef5308623b6ab166fe84f0e5e41c8e9f004cf81543a9e729437071899f7fba2ffc0b620a974a8c5e6e29ef9e8fc40020a610942095a47d1d1a94e8a0de9fd7a0fff41096b71155b234822d8aaf194b8ee5548761109e44a44ba3115296219ac4a1be6dd3515f202e44c07b9de93d9ed2c1eea833350082aaf0467a7509ac439d427dc1a1b14091598b2fee53fc92207d3371be8783ec97c60618e355acbf209dbe22b2526913656c51822252438144ccbace39e1c7cf984f02b5bb3f26afb2dc21227cb125967a5422754c2ae9dd9e8bc9a1a95e52a1f195622d6b2aa12dbf4d0c250a99c4d798b82441958465e07a104b2467ca349b556e44298dbe167a4a75a323f70491944902303b7c973d3997e46d50bf6bfdf393e7e7f763808f9f805a33782dc229d12368fb08c58d20a94e937c06f0fe9296a61c925888e06798d562555a2a64dde3c453c0e72feacb2358e1c02183dc48588785c71d729e374b9210f99cbd1de1245a7d66b98bca97d67232ee85ba30c1cb3faaff1c23c4252e3cb1b6f3d94b187145bd471564c9cd3d94867345901de924e85c3f82c3b128592b26c4df05007a411973b60027901a083ad2719d50d6179ab9bb1224009370409c13bc4b0066a9c04ad6096c0087f7c8700b8a1ce7a87272a5a4527dfe056f381ca20c7806f721992ecfd4ef8ef14ba5abe9e78eac1dfce97336088527234ae46a131e1e75ab87ff7e63a54f509f24fc31a4de32ca34f0b3398032d2496a4c1c71cb93a3b7e256af2b3c0b7f830e7a095d863bc4dc1eb61158b96b02143f86b19ba607935593bf06d5e18d722560095abfeb6b7242b9245ed4d173a89cb74df26006c66991c9d9713faa84928e00a82662a5015ef2d5fb6180284ccecc479c82d32b66017a602f6bee512a9955e1fc0666b89fcd9e90df3ccf739fcdbd4950a313b25568ec4dfb8c7fc6c1263f4f3412c6d05e30bc7fe44e56fa5fe899e68ab540b8665c463584a1e5a051c115aed5930fe75bef67a564ba6d6aa3128694ed5010d6c79a184323eedea763f36a6f05a9cd0c78417747809d342121d35e6380305ce54080a0d454d6db2bbc0ccd8d9ddebf2353739426d70b0bbd0e00a18212b2f399c9da3b2e0edf2f8f9fa0b1b404e525f6d77a60000000000000000000000000000000000000000000000000000000000000f192932", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 11, + "comment": "signature that takes 10 iteration(s)", + "msg": "2200000000000000000000000000000000000000000000000000000000000000", + "sig": "d5dd24ac9f08a1cb61e95add69de0480ca7f73c8e7d3a5de260e6dbd144bea45680e140b5c11a456ef37c078735a1fd6df1d5f3d436e1d9d90ae163614dd2ae2b5a81597687a800ed5566058c0d624e33c2a739b5b1518fd40a797b1e3128d960fbe133665d36d1f94d04ffa52aabca42d1a69af6afb721a49de04cecbe1d3302a4569454c5879d3c846347b07f5d60f279240cb299c3ffb2213bf2fad9609c9a2e41cc81fafa2e04c312ce241631b3a4bf70a4a351d2483935ffc07598497b9d817b0a68c4818416e60f7e665e75e4c946c6ab9104e7c7228f22f02fef1b6f543d731332378b64c38cbf5e02e799428c60b0fd684d2308a0ebf9a0fd5f1646112c90540b84578dd3706fd60bbec80e9ff75fad45bad81d991fd9f50a5e591172278f2f0ce6f35639f2d9eebd51101985605236e4b8b6cdc8fd67f396dda907b0023cb9a8bc973d60040597e3349dc3a4d142994384f5816897fb58ffd3cbc4c4243ff7d2b5cb3142ca1738a14cb3c2249c0fd9a2fc0264bd3cf932302680a1dc300bef9a0a56ea9d4ff8cc86e4294ae59c453adaa0fd864775f41664f56e52dd416edb0f1a1430e08f09df3f9a1547825c5951e3cdcd81879411360675e009012a1712eac279c6cb326819908b6aaa63cfc5660b3ed77ab9c43cdc30773432d0a0878a7afab3e28dc574f70bc75ab3ebc5bb55f3f31a28dacec9249b5cca08437cc14b72349b848dc33c387f927f576b11ba7f91edd4ba9eb20b49b6da59e48131351b6023a27342f2a7e20c2e59beed4885d4d51e29d5f6d909d6bd95be768f871e9851404f3015bbcfb17f0880cc128ed875d3087f7c1b2712c931ea294820f6755961b52d15c4774c795e37c3a445051f48dceb0dd4600cfaa07f25197bafa03e967677a065df688d55ca60668ef543b1f827f8a2ad1a44e1ef5136b1c34b875a02b70fd889ff24d194411ca508191df15d173e6d358e8978b71f556b8e7ee79dc85912b6a2649432662afde80ee3a164d86cbe5b6ef35f635282ab9f5849548fba3d4dfb14097c56e381f59dfb5ddfd5dd151a8844873769ab6295d1db92f6b7de4ecb4398325d2a05359e9384a98b6faa917e142ae1d7ba0d58a56fc4d576144f9bb85963cb0ccd7832cd45eae817eebde0eded83cbc38a6d989dbc74766c03d8e90af2363768badb54a6a02f3cdb2161316f33e7403263264e4396b678a82e5f8360b52ab6471ab565f045b84406f65d3111ed1424224f8ec3f1bfe7877dce041ad34c726add4aba988791f36293c7cbd4c8e56f04c7021049085e68bfa5f9d3f448f09e8631ccaa2e7bc65088831c2dae18113f668d5af411689b9c6db331f4c72f8572a3b7ceac5fc8effb6ed6472a42aeb4e4770fb4c9e235b9d4b5acd3f21f170f283504571964301f641a8a52c7454bbb8a9d8b77b0e9804c988ad4e9ce0958a17dd7cb304521ffa31f1184aa2a907cdc7397d2246707aaedf6f1abd5c04fbf3766d6cdf4a8c249877005f927cbf888c3d1aa00db5552a7817d9192f68501833818bad97a4001558b969531e9e929a1dbbdff83eba37f62a26e920a7bd08bf64ac38fd5245d31b39e757bf07030c6837300c90faef94262c09d8bfcaab4215e1e64f5e8a202eb13df2c64140f14eb42136dadfa51c57935eab68555fb4303a59dbebaae44fb9bebdb07cc11a4743894b223ff929bace2b86f856718b76e3672303b62bc921bbbfa9beb2b0c643625271ac30a88efebec944414bea57c82cc7c287d711ac34254ebbc3e05a7156a5f807d3c656e0c5480643bff432740eea591d8c0db16766a13bc2159e9a8da5606a50d0ab073eeebee30d4a099dbe5e16822236f65a3a2a4fa2417b529282340bed7a1e4cdce44c2ff66250490725492104e611281485b3af9027fb1654d096a07ecf7a864a4411e90bd06b21839c9bc91a79abcd79723810ba390c9c0b2b31d0ee32c8458aa14039942abd4a507a3327573a68d27e726b5ebd3418c0110f1a13cbd51ed3478effad3be2f2c26b9525e13154dd70dac5550ef42e53110d0b4ba24ea3a433f0b17afb6326ea90fcce2954542e1f3b6d01ff83b4bdf57d505c66535d6c61d4ae5a1acb8d0117e371bd081cc6ea146df17365f658f33b401fbe25c811123b5fd7b9fc736bffed12353e1e607439484602c60bcb76e29a3b39972f87fd823da228f9deee7abddc1dee6123f8ef71415a2afbca274a113d17db27955782c57b9e25a2bc70b79035afa159a6c346e2b845d7fde415ac71f8a09b1114f77084db9af2a6f375a68c2c50ee032abdf24599ae395b4ab2871f76ea94dd5fd3037972d4fd92fb31e4e859fbc62c5309a374e7e76fbf6e56124ffee21a2ae01b1ba4aeb5a48df57c03eea3b1ab3044e57b680ac88e03749c474719a17fc55d5c3cbc0a0231112ad4db6af8c1041bcb3f82792426c251d87ece6eea8a8c56be5ff186e431053730c38f53afa3b3069f9a74d4bb9f511ac30ed6f0735f4e88514719dc8c5da4a0228668aba034741492b4d26bf75cfa7894a8f082bbdf4667c3b52c06b1da7a023c501e9130912940f15fac744de0d9932cfa07f4406a6e15aa8a89afd6fc9197e56427697f1ed36f091a6d8f660b9248ea217844a39c4aaaa176e73328650c0651e163bca0e876133ef6f94c121fcf0d2104b476ef7d47ce03b267904a2a636ab26bc402f30e1ef659838a68e8a2504c5bfc172b2a06b5f3772875b901c6a686fb455295d2135c4eb136655b455f4f1dab47f381295b1360edeeb24ba48f9eb43b8006de6d3c18d4746925cc81e90e18e3c41657b48e864977424b8acc73bb6165dfcb9aca576b5d649efdefd48a13ecfb12b40bd1152f11a421077af11fe244d8e0f9955a6a09a8170c1a183ab29212e8ea4ec749cb53d4f95d6b3df4efbdb168eb62b7b1a117e4433e8aa68a8213da952ee60e9a06f5833e8771fbb039898a72a200db2b79589c9f80e20a504c6ffab084899868fe30efe8c36e0592488601db65a576fc3eacd7dff55c271fc0df18f12a582addd3778f808e733386e0fac86cab4599df326e0744cb9796664ec92fcb459706e8fce5b9782e54f323865c5f6f1d07a734fdd1db7df8437e80e5683e71af006b39225b7d7aad86c2fbe0fe2a48739796ccc8d4af8b0f99945794d6e80cafa8e413610d4ea6b50fdbd76d96205fd07012bc40eec8edb8cad409c13d4685b403d921bc632b81515cc7c561e67fcf7e980bed5cb9801c64a2503dfa3379dd6fe0cc6bc50a40353394647c7658dc6cb3dd5818f91a2c384b4f687d8388a3a6c0c9e0e6eff00d282d6a727480848999b0ceee0723365260747c93979ca0adef04071112142d6c74869fa4a7b1d7e400000000000000000000000000000000000000000000111e2b3a", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 12, + "comment": "signature that takes 11 iteration(s)", + "msg": "1c00000000000000000000000000000000000000000000000000000000000000", + "sig": "412fe09c5d39b2a8d71880574f19a56d1caba85e420afe46d53024a23913bfccfa9d65bac69b670a7d118a4dba52fbbb5a9c7f688bcc5dc056a4ddc16490fe1582362bfa6b45782bf00f33745c277861ca90bc2f00460be2123b329c9413b94dc8832a6f562b24c6f65fa95d0f690ee279d530f31e96fb35d9b5e34cde3df77c0f2886c7349d9864bcb67e6e9ea40e17a4a5de5211196b12008ca7fbdfa4446cd8e2f21c02c0d51036e52e468fe494c9e66a4d13745dc2f0581629858a89b165038098321338daa27ae098e74ec3cd91ddd67fb9fba3a7d51ef5a361f4470b2daca93b6011fd761bda68e8270463b8d5974f09d7708fa7ece58ded92202c344551e3eb8a947884e877cfc1e8cd3562268a9114026dec003a934075e953ef3123e7aa159acd54f0cbef4273ad43f884cc94b53b207f8fe6dd1f31455a1ed712a12cea0f900f2ae40044f4932539ac50d78ac4007c3385f0c703e55b671328e611dbd393c5d7edc8a08750749c277a446a32984ff360a962ac6e6e9205d323e0bd2c58d9d5ee145f1b18f6ae7ee1eeecf4c635ebf57b89915f968a785be155b0ace5fc8828bbd5cc2527899ffa391339ae1bcdbbcd2faf16ee05bdc32d7401fb4d9dea9b67b20c7d95638674af5c66e79362721a965cc0db764b4b31381705ec462ee161a8337c18f34dff104ef6042a2f75337a488fa0e1f49ec0beb1418162f972d5f59dfed3c85a0f02f69141622fca1b95cff2f606fe40587429ec1832f04f1db11355a5fcc914b1735310cecd5fcd4b261d5232dd864ae14308e8a674149567dad579078f607178ef528d396534bf1960ccdbd3582765dacaee1db533248362c83284f28ec13cf25fbfc333108ad264b0b1f0da585d8ea3372280096c15935d1a29c997b166be7db6e353f2159fdd3552ecff5f2fdf3c7d35b380ac887e09f8cc1b795e3fe5002f6b1d7488bf8996976506b376a2942275c547c1f359cce0502f1d6f49b685338eec3e7dcfe1fa6300609752e9c030721e32a399ecbf353b9c8ee85891fc351bcc30b307e1a9a478dcd0ec58163e8d39699fd7d5539c474e179ceee982a074de3f14f62fae95a090a112b0a66c30527f7f8220ba705df20b0b1ae67c5231b37a53487289b780efc152edcab75177e173f6c13402f0f2a87d673186ad03bbf1af492daa972071551e9f765482fa020c360711bae8c73b74deab2b32068f03c2872f7909311221267558e077a72632c4a8c50fb90522dbfd72c32e119d814cf943bca31abbf1c34fe96a1130dd89d1a842ca1b8f702ab5fccdfa5dcc53e8b22579d6c6e9a213aff295793332c3e4864fa2b1a99fbd38b5a7d733f0324d0088bdae7454696d640048330ecded19e6786b29784355e794683bc6538da3ff7054790ef048074bad869e6e9382ed6ac01a994e3af95495825273bb3c7c885036bc0fbbaa5390ee47969a438f1d618cc038fae3caf60eb477cf47af8ee61a5003757c24113dbe2e70c6aacf969cb6a471b27088a162dc063c9812fe8a28b6c9cd5a30c042c1f22ea752c5a7ac6b23b984377ed070ba4596eda51c62bd38f42061243a29ac48a3f7b595df612b300685f974153cf24ec527a47a75302a9b6b3e4e3119c21a2d5fa97b29c16b51b2e3acf1228c82e809a52e104d0f254fcf6e17c5b028aeff0b6491dd5cd9ddee4adc8237710719b918a824a21d8341a3d2363016883ac4b4042cc81de6b7f3924bc571874413dac2af36064ffbfe9f559a2624dc92227b18ec3820cd09c7717a922517934f20e50ee4024198c4f38c771a1c2ad108c51d3201b94b5aafda6d9a366423a4b53a99b3cf8191a3023acc0acc18240254b7cc7c88745fc947cab14df3c6f562ee8865d512cb13f5a8e0805d22f83fd49c37fca227594fdcdb34e4257e9b167e311fe7097d40daf0ffe6f6b2b4b28bf888524c290ff16060744843360862ea51e37d969cd977c4a4368993f36b7c4f52202aca8f41968a4378aa43472af22197bee43f43be2e22c35f266d31bf70dd0765c55cc846e42c1c9430ee0c8607b4bf7205113fed48c270e05505b683eb59b1c5ea9ecef4a23ee46cbf46e0187fc6167bc9284bc3969afec96a52e65e07eda82ecb23f363caf0a051b6704236ea1932f9e34f01c46b72b4618a805c42408ed20c48c01b953fb077623c3acb5d1c7a305605e50a10368d89fcd7bfacb1d31555b645cdc4bf0a4898ca82714505cc63df185d10b3b3a24ab005b0aa3c1ae9cc8bf2dcf48eccca9a00acf3313e9df2ad75e504ca28d769281359c1092b9b8bb92908437ba5c56b01e52b7d5a63a2dadbd906c4cf8f18adbd40d9b0cf706478e182cfdcf6e622cd02a02774d64c52663d2008b65b234a4729099723d9434e5135439ee29860798070e8588663215b2037c98612334ae322ace19bc0f3467268ae134a4c2d39d11ebefdde090d34d6d42022af317a82d722d211b625016f5dc705d5481c32c4e7cdd63e8a5b89a3b5b74117d9aa0fa00a658ef562690ed0140a2fbad573404d2f5ef43b7fa1ed71d5f92aee82736e432d6b9e52406ecb7e8af91ea4364e55bf6e552b88a3a200df0297f32b5e5f99afee68433c57fc75389ba238314c1dda209fb134a2ecbbcb92b092dca52871c41594b6533f82ac9bbc3b8c3c93d16bc3948b1394de49533af63124c588299e5a3731671d5bdfcbd7a4a5d2439940bd476a1dbeb5e99e653fb2e1e8a8fa7619c6c939fe8e79a47c69a62b8f4ffabb236d7a436a97a553fa9bc0d5a3b2146aef162ddf1a222b192f1b1729e8ab40a392fe272fa99971316a804bd92976b5d46a1a57dc89eb9ebeded1c5701376d89bdef314965d1893d857be5d98442ad7651accce0e1d7b0a8cedc0d0d86a315d2cf2e72336f1272e7a62596930af784f6efb410e5af7de1fcdfa07569062063ac219c9d9b49e5640e9bc52cace2f959a51c306e420dc0fe4ff98c95758b411da432dd6ae81c96e539b977b8bec3df4f2d6a2047dce21eb2954a1d37fec85a3ef683013ed0f299758f3bd9f6adf4b1c7bccf6e379e21fc8e881d9ab269194ad4f5fc08396ec03e3a182cb2c6d12305f7d3883172cb8d686e794c336e1304dbd8ae5fedee2b3b1da302c2bb51db3bc22529a266c8aa51509bcea11a1afbfd26cd99509c74c175f83c605678463b13214ea526384122c28710c9fd61e6d7e338aef6422d5169e5cca2388fe8ce936029ae0e66c3debe9c5dac508fa7dfeb66af0e25ee93bf11d535f5600c68e069d239afad4723ba3eab777b51e1b300613334e5975808693b2d0e8eb192e41425e5f6668749ca3a9abbabcc1c2cbd8daf2fd081a4042505868b5c5c7c8c9cdd9dcdde2efff13282f354353545c5f98aec2cae2e4f1fcfdfe000000000000000d233649", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 13, + "comment": "signature that takes 12 iteration(s)", + "msg": "4800000000000000000000000000000000000000000000000000000000000000", + "sig": "8e4f1c44d43c025ba29d2098462a69ddf5b5b01df55aa38087f728e622998e0123def70641da158385754e1c0a361f2737869d792f50c3f9e6bd473a72e12426214cae3127ca6524788fed1fec6218137101d632d6923b6f9f31eabfccffa82ad9107ce3a0bfdee0f3c18536a2b47ad294523d19b9a257e1ee9763eada193369b55f0dfd77b87f867d187cd9822250fde51080d82e8870e968d378721d9b5b997610672f2bb428e3eaea47db9ab93a90774e441bfff06033897e37c1abf31419c13986958773986a802ec63867b502e2a8cb10fb00329c5a438fe1356d861a038291e77c6c86351d5f20756019a0cf3f05cfcdb1118a4d2b217bed88b9321e5800534106378d6c5ee77cc71a5eb81d762c6b1393cf787173e7fe6f785fdfa5b3b30d1caa989bc0becf41b1c674fcc91d5075f7a6532d6385b0e04ff25cd179eedbbd8f33d271404176b8329d1812f5622a88edcbb4400d813089551b60de37cfc4eb0ee17864efc186c458c827086d178c3e46a3adf8c6859cfa48e427f5e50af43d08764e5c24cac7c42931a07b0261302af454c75dc61fb58856c28b67de78a888f7b033ebad05fab2ba521afbb66e21a13abc1917cd4eba6a9758f1de87f5969f1e916d6746e6cedeefc980c02c75e05bb2e31b58ee8475fa63ad35bd59e8fce4a9e47f5c0f92e678cc0becfeb0bf4f82a791551fa2083cc39a2ed09315bd482b8f37dc28b2a8cf60fd7c19651d516a79998b998449d4243016265d7beafce6dbb22a683439674741bf530a7e424bf294f314affc4cd7929a9eab2a29005b683635d2ebb1cfa403f53b62bc6420bd7b3f0e1cff07b8e780be9ea75a3f69b5d2a03a1d7c10ac380a6c279d610cf014793e2bcc751dbad30f4501a547a929aade0abb9768c544769341ce04beb7e777b5171a06ba8eb8d5bb158b20e528eea073e32ef3a3929b5d36b1220ea8fd9e11cb2ae1401878209880aa2bc38da4d93a69c95ecaa0937811d626572fa8255b06290114287e1bf866803c0214e27c2ecdf25b6343bc2213b558fe4d8fddc02fa562e8bff35e1546620c71724859123a4f74a6ab9747bdbe155ebd417240d88745a140532781c7310586d74580d0afc326e7d42a0609200acca0213c0edf602cb22dcaab01a70ac3e2077b89e2749d2fe23bdbc0d95c0eac8cde0a754d572d7444236c707ebb78b4d5993ce9e4679cbc269835acbb56c53428c6ea634d4a2920b2d9f6e3b3e0341b50f866e73ee0f12258088ec948e9292f15f13004a71526bd961fa69844e60fc8052bc1870f6e3aee36a9cef7ed5c6048bef9b4921c765ea80197200b76d5ccf36d71ee212a2de451fd75cc8efec53331ac8d229e31bb45a3f1a0655cdebbab29e38430d3de43b6a009f83c28ca02f6cc7f2f3d2cb104b8671470745935f18a7abb0778936c5a46cb304cb779648252aa9085b1c34ab6520248aeb7bc07fc7b852666019a214a991db4eef3fbe70175d27fdc2b21ff6ffbf62bfd8b53993bee07f9a157540cf157f81e9d7ecc2ee167755889ab1d97badfd382d7d0c9d1b1e6cb5ba3b1cf4b80eefa8f7670c9c4f7172171ec98cb2c157994b435ba4d727f6db5d41aeda4cd05eb15cffab5d65849dda77caf6f0301e4f9233e41ebb19c01c05901bca8ac3093e69066925e1028f852cf0983e3267603c3255066c44ba11acbd68bed2744b1047ba61d55221732fdce53fbbf4f7cc7d891e2e8d576a3b4d58aed137dce62db769ed699b5ce4da4377642518fad1ed662aacee02b2da43ceb3609165406f5dfab3f1958ca0a2f2f5b4adde179f57f3cb4d0b1e6fae8bd454cfa605640e2c618b318169e66156a64ff88824c455718c45cde40abf40dffd2b8b82112ab1d8b37be0f65decc9452ffe532ec93ba29da4d502887c810277b5d8ee0e293860373166f08dd5526cb061a2028c13695859db631e43fb6fc78abe3043ad6a93381c797f0175c24cfaa49ca34e07cc7ef5b7fb12ea693ead16f27c600f41e499ed7d9dd1bb28447d41edc9b09e61ca87c495a45325162f5b299fd645013a046c880535809335c2a56dbff3affae5af1fa5c3c9357ea8c39497e050e9a581f94c8ec66a0133decc4808b1efe8a03c9878a60bed5da8d277d28047ed3ee3dc0294e612bd21edd35c10a0aa8914f51777dc4bcd3d5c780244ba509e8bffe96b2c03b035ab7ed99360f35dbc33787e96fadadc60f4d7d9244f80b06953fb7aba8eb0c106815d5578adadad665dd6d262a21c24cda1b33f4c2c5973e8e614df03bbabff7fbd9f5b3ac13802be4499190eb031acf2f186b7c48480a17dc1bafa9994ef46ce4317301101f15bb265ad1edc8e3fb13bbfba1c4948cb0a96c633b51a94188e1f1ae064c7856405c3eff591ebe39442b95a3e648b98c3954c3fdca99cf58a6178d1eec65c58252f792cb94d278c1eb23d6ab58d06000ef0a8592aa19b1af18a63336cc1da0de4cdf2a7b380d0ee324ed5fd73a0f5cf81401ec0beaadcee7a891e888111d440fd118bdf7639a672de516bac08e9ae1d7538957c8b832e97cc3da6f1ca4403b98cbb17de525f362ec330468cf34c75b5eb5de8d91934bb815976105681c3fcea9bc95a465ce0f7ef60c6c73f6f91c696b32687fe2661f40380a2eaa708bbddec796e3905c78225625a12f74daf91bee4a388342bd98800456da5252777d447e97297dea4293d1c17478141933b0afc8f40a91b2c36f7a5f3fc19cc3878ce2cb904c6a0a251f7521a6890d23231daa1c7f3604c6ebf926a2c4b4e3a16e7a94cef3e42edfce4f419907d5a65737c840d1566f7d8f9adb3c388d17842e5d86517a9deb599f8ba2d4e2dafac1373a218f017456ff18093bcffc2592d2b720214d5b64c30d2d3c2121d33dd578ff720f979676708b0169e777149ad408a6f9ad33d82c5aad0e3bb9a0661c1240857152ec0c599d846aeb494f84f251fc783d371d8258ddf021c3b7d2787337efa5ddd67543110e0a3161773cd52ca23b47b9d6ef874288e4745a954c1918608d9143df28c4c603ee10f10a40cee3e02562e8cba90e07d5ad98d22419b86ceb09ca8e73a8823515ce11da207081c73b09f303b0f902ab221a2de8b8492df29be6c13faa86123d7670b9bed29ded03641b49af2cdad8d0e3996bd0639414a4721178987318e9d13469c5022234924d69b895fd55cfe971d7dc4ed40edaf1788a1239a341e506656a898e7d751eec14a370c200ba519764e7841916ed2d2a6e4fbbba786044735d3be3f28eb0bada6e999f28d19e366cbc1b2021253b3e575e7feef6fafb0e13444a588d94c01b222b3846616281a5aeb2babebfcceef20107102a303640607f838ababfced8e0e2e8f600000000000000000000000000000000000000000000000d152639", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 14, + "comment": "signature that takes 13 iteration(s)", + "msg": "8100000000000000000000000000000000000000000000000000000000000000", + "sig": "76850fbb2f4d17e5b4a1f526bf6566b71acf4258b851d53038512469be502a7273ae3113fe6459af43a9f116e4b59b73cd1c4faf721c180bad59131b12d416abdb2b8ba103bd75dd1093cc8f28ef00a31bfa46f7dcd11b70ce06b2da753fc9b43ae3c3836309262e3d13b07353e91e20a79488d3567412ce6aebbe83d9f7263ae3798675896a76a4e076a0f3ee43a09bc09fa00a4714d062d24996727318e714a02ce97db36297fab37c2cf418692aeab20ab8d6174cd6db1b46bead39f20c423c9206f2955125d17a0f5bfc4e84a5fb648f7e6de4795110efb3db92301ec67e4ac5b0f06f58c87924141bfaadf0534d22c344ba2641b4d2b3579bae7e4cfd997c27455910728ac370c78eb4346e0fac2d03e38547fee9830550980ba0e33477ba156783b9f1cfc9fb334b94f318669f0a28bbea0a825692654dd91a1be521c36afe036d3821eeca512c83667b3996b46f3c2b061ba7ff30c3d586ddcf6391b4106b09544a02d8c4d75489a74443bd6af3b3c40eb13cc905c898407e9c89ab1630e2bf542cfb4d45a862dcb1b0e6c6806205ee821a54d3bfb4ced87690e3c4fc83cdf24f7a925975577c2fb91f784b517ce639bd423a712023beb46d6ae57e9719be85a92359555a207b3130dfa3694338d55d16faaa5fed789124992f2c83d17ef75ee2fdfff7521e7a307d1ef3683679a72d2ec77009ea8bb796e1050b0b65c6af9cf96bceacf135e05ad63f0e1e635306cf4f7e3e5d78c014b13468a221ff7ca287b548fa69541e8bc2ece3d10ab5146de26303d54d1450d2442a707d91699f6cb30c1b49a55f673ea7efc07d27ece9a40a339c5022c0758c8e7f0989083604d3d4b397d13b884e62902fffe2ece00f04b87e46406b5f2d1562886192f16981b1aad6cc548738d8ee13d03436a8f85819ab43e4dc6260089a82c74b5ae79893b3423bc14e65bb8c799e2102086497f5a06733ed2a783c723d0bb1927cceeca347d43d112efe92ac842a00e750e65f3c13ae601c6478122634fac7f16393cf0b814b17fd32c5533dae785d3d410c0dbd3ed2d33e168ac429131b142e1bd459b3bb0b4cbc2acd8b7b443a4f67c43287ff28bf187661f0b570622173d6e639dbd55f0810a8767297d5f13be40bdd96b26456f1bfc723fee62d36f0438da7e58842efff4c091c084434635e4785c55cf03303bf7c6b9463e575b8a9ac4e2d91708ad7a4717ab968e97f7a35376b95d15d36c4f6ea0f896959c06227f9354796c3c2a80740d9fa87cf256c8df2fd78874b48a496ad3d4880a9e9a496cc727ac4274029cc7832ab0ec15c56f9c62d5d4437619ad056df1c261c89c852322b0f6ad3d6aa358ccf76c339fc88be7041027968531323cfe0396feca5f1021c053f9a530d4a80b9f106367d664162ec7a7e5f93af784576f8cd87f6f4f4c3c5558371c4cbae76408d6fc5ae60b86da005d9e6d4477fa4a0aef600d21354ec667c322be797c40994b62c9951ee1ce1174119c8119738bb6f4c1ec961b9ba4ad34e7cd12876357f29a8bb4edc251f8c91982a0a255454185661094dc2cbbe953b3b41573a96d4560c31b96297c91149bb9e7a04f4d45a69b06062bf516a163c9319ed2a01d7ecc2e0ab3619a4051a51585235acad4974c7bc631499e422e156f2d502e203dd689163fa3d0589fc9b0654dc52a07a94bdad777728e964ce29dbc2033b4b64add8e38107be5d87eadc298de46736b719fb8466699354c2348898ce2fa9918f8916c05ebe172acb61a1f21e28e3100e990fd9ff50ea2ac1b6ea6c9182922758e37816163e957e6d3d51a66ffe7e0e4d0f4c3224e1d7ad7e213e498575881fcd5e2368f5dfe2372af6e25538c4ac7cdf4a370791f0f803d852d23f610f514d97393186a2acf739e34f14f627e16123f0607f8d5df4833cb9b9003610d52909d417555e8c51f0a15323d7b21f24f5366a386726eea888cbce9808e5a2f058169ebd7e2ba3b3adcdec06566d1d601efd8b9cdbb169d024bfb26ee3183ccba02d2de4e44f48333fd64ee148ab7d653c81e789f33e2f5b3b187e72fdcf4b666ef168c452de00275b61ddb32b428ac2e3f59d4fb78b0a87e4e330f031944e5a151f24214c16589720a1e6bc51a5b65e964ca2049ce5dfdc01afb528380d2d1ec16f8b1ce5d9da7265e9818033601a9eef3e4f7fae3c7d98ae8c7cf34ea8f82718bbfa2b8b54ce04294fd19474c37816dd7b1c24153ca669ea8c92e953d5a67645276c666494d9adfbf791af4955240f4bcf6434aca0cbc0f60843c51613138e195e8610712f1d52c415d64e03a623ca2549fc1fe90564948f27fa3f0753070a4b5a077328f9dc006d234b4dc4c8f64b925fa91caea47a5f43e74324cb73dd3169e57aeac17adf1701a7b05d370f9dc216ff9ba454c0fac79a5d31cab5100b653dde3ec44e939f34040393d6c7ebdda897ed135f7e52d5dd1e2a723f951703a5f831fffbab1e1f29b39a670611abf79cdfb1f634ae8055e90e3779124ce55f6f565efe930494e7323f0b00c3732066b0514140441841d76c9c81f4cb4f70694626bf90ca2001c5df2a686523e11496b21c084c9422918b605457574badcfb051c20d38532ea8e661bcbc3faefb5e9647d0d72c5d0e7497bacb5d846a6f41e594487364e60d09142c9963fa5b1b4e6094172f795d72c43826f581e7c61d829dd4f0bbc1d2a0c4aa500a84c6db5fa32024f580b1df9a7bdb63a4916df0fe670d2bd5677611389f10c6936629cc8e1cd509fa20121882f021a2f72c17977385f58cdd8a5543afa9b02a32c5f79435b482c0d217ab8c7f5a41deee5b631bcf42040bc88cbae9ab3231204ae99539bb2fbf53fc560961c83765b6a711f19c26b96411c868f3c9652c7978428752bb6b6fb2ccf17ff7121e8642cc42f5868bc441c7b5c7173c58dabc8799c86500d6e79ca0e64f179d18d52d720d6ce4f1ade8499ac0e7e497622781789035086f79ed6af36b24dd7742569690cbe6f2f1ae1bf2c8991e4cbd5578eb369b941197c171f947a767f8bf277bb8042048e34e01af4309271715b8ff2882fb1a27843ade4269420c2e7c62a961ec4869b413a2f65820b216ddd3a095194b916f64c229441c8012bb7da7ef9d8fe831daca3b009e67a03dcf22182bcc851982a80537176d68aca9b130fd13000931f361e06722aa3bf93ffe2af79e06e6a3acfb739894ca156460f5000b453b9f03813e1d0e6e0b4c1e50b1f081409fd6c799c664c436c3cf08a7b88e74d4ac02cf8242ceeb5b8ce421c2142eeaab070b474d5a699193a1b0c8cbdaeff11f6496a1a6a7b2b3bbbfedf9fb2cb6e1e2e713151e232733385485a3a8baf2fb0000000000000000000000000000000000000000000000000000000000000000000f1c212f", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 15, + "comment": "signature that takes 14 iteration(s)", + "msg": "4300000000000000000000000000000000000000000000000000000000000000", + "sig": "6c6b597091b046da2f4dc9d14fcb554d1e527f44dec36e3d3bc9ebb91c238563d4fb76791d31f6e84fbe26c3c54358f2507082d6e29775df7fe7fb88583311fb899329c3d1b5fab79aebea6ba1745be1170ff05e3a0fbeaccb75103b226fa4db729e0d5ebec2887bf2708c1a6054fa3fc377bab825992d541cfab3e901f76c755799cdf8737790d663117a1af2cdd91233ace2b61fc73a1ad822cba00aa5c6e1e6afa2b97adb450875063fcc094e2c9d847451d5b27b8c2cca49752ea7bb99407fb3e2d3a49ea6bcfd376090aedb3af2fe236058edcc9665eebd4b0f0b699e5dcea8b68909c62f0d602d1a80fcd1e0fcba9dddb8df14a3d4cd89f77645ab941acac8cf032718d25ec7a0717ac9d176d1ee26697d4bc2541a47123a83eb54135795cdea2c42be1426b1b3d172ee655c10cd9b8f19bceabe073c1dca2968222fada6c88c8f581aad6f80c665138477612c77d69e76228ca3c4f8ff9df59b9db41c4727e2e76f972fca9e5b15af8e60a79741436a5ee8f166f72b8d39194a4da62b28f2deaa3c5b7e4b059db19ac946169c6111e7bd6e0fbdcd6159d88a911c5094b0212d7a4990ce288454607ba4f75827a8d0f525025927d471b1ebdcad98d6d1a390e51fa1faa902a051ea15d28ba16fea37808d4f92e72ce19d80d89b3a246a6ba6ae54db31278983db6a2689f497043b79af9865a668b7d7a50b824c7bc43e365e8f7c5dbe89c47f5b87160a3bfe4f2c94a90c37ce04d480a4cd0edee8d209821aa03704e1938d76b9f3273af75b9431bb5484ef8441460f0e2b22bd870e2f275584833714512c28831ad1ecef6d6915bb8e223a19a21a2cd4656370a2bea59d6f56e9bcf47d45bb92dfc87cf9694e3905b3c21532f52a26ca31e434a173297233ea7386eef53168b4d99c2ae8a6d6212fc0c100a0778581303507ce1de2ce8ac6c724f7dcc89f40e3988302010f6edb432188b7771f450ea2b87a6c66764d1485b7c80ccfbce6985e4c777df6ee27901e49ef761baa293cbd1b588c6d5b62a47643fad23d67279a53e1059ebb05a4b03b9a182d257dde7321bbe1d5c92f543e152420c0f4819236529b5394a8032892a1e06cbf654735251daf94dc6f05d6d05adeb54be4c34a528704085b71463e813f9ed07bf601e2bc8f0d94c23ce55c9b629077cc0bd3c71d1f81e0dc1d5e5d7f5ec415cffed60b4357c388dcbdea60bc9a99a91eb168485f889605761bc9e9b90a5d756c69172de7510785086f9cd7fb65f6f45dadc2609e0fd9c1594a4f520c6a9d5751dbcefb1f90a416ab7cae8dc33ac9717d916027997d20865b4dd99d20e102cfe24077bae5201f321607e3a74de1b6eb51b02b2859db006a6ee11dfa7a6db0549b57afe24bf5218b8c5e77b60ecdd1455c085e8b563e510dbc9e2d4779af5c7e6c869f3eb3f69fce21be823be121cd82cd1e9a7e4e539a73ce01758257024b14830116001f0a95ec2f6455c5b2850afd4ad21ce82bee44fcaefd1078fc663471fc9d3f9de3c07fb5f5e33f84b32267a82b828d166a28426fa6e274da2da5e0c6c08ceef489e412d90f2740611255f7743fe9ea578fb124c2ca1eeda748540eaf435b3c2d9678f4044f783d569b1a23e8b5890f334e1cec68b6f68ea7d0f7e6600df2fef4c8eed4ff4b0f90d2a2dd6253153a7cdcbefca4902698134dce458d268fd77a01ce698d45b2a2fa959861b7269761521a8bac0d7787b5d2f3d9f5662792838cadd1f265681ec91bbac71b4ddc4f8a8bb484836c1e224c358ad1701f9dc8e006ef8267c20140b98cad3daabbceb8d312be6117c836232bb6b12283d2cbcf6867f85e218e0acf59e1c8cfcdd1e79c38c7ee81abcf866d566877294093bd3eb22681b400afdc931ad70ab1b425b79c3e46d296eb2a983f6e06f3272a87016a99be2dd92e28fd85ab27176f3ffcb8ebfcb297ed1a1fe2e97fd1b4b2d661c470562bd241ea972a8ba122e7b3a585504c0bc277120b3432bd7359d42a77546e6bcf07d3954c4780cfdb829152b80af07b8550f35fbccd153915429ec4b21c3c30b048de83175fc9dd2b5df2a4793ab0dd7c9d223cc70ded354153efa69954c0929dc8422fbeedeb10f42445d809171f031146095797cf2fecbf7582614ee029a3ddddef21621da55c9659a3dfbb2de33bd4a65b1204d0b84428722d89c812092c02f47e387e2aa2fdbc622fb31a4a1f52173ba529db8e0a876fd8329449710fbb2189e929e03917a85772edf93c96139004bdf8d1ca483249925a6e151188dbe63572417b02219d942de390935036757a1c6a7ce0dc0c25660e972d480a45bb1adbf7d4c7b29b0ba66d5f6cf726b82c48ca3be18f8c95b1499d5d62ffbcee98b00a161d21286099fc21a586a022478bfbb01896914399d9524bd10175296906899159819195e92e866e61bebcde0533c2a347e007732f388be01d1a226c31569c00c830ccea8bae7e288af16d29706eb305018ba3d718f74c4cf436c05b854c4b3d6304fb792386fb27334d7c36da4d0b3c9a3dff1a842f0babc0034a420c585e7b3905dade3fe252ef7cae484d86ca68f5ce58bf98dda34ac8b2cbfc66ab67c11abf50743f72780b605b617daa8cf43ef46c3cb8b6dca0ab6863ebeb498bf39acb45f926e7ab87879c0e74bf6b6df6c33a2bb13252343f721cb7c789667ef1ea7c7388decb970a07b676cc08b4865c709af5b820052a4935235085451cde7ca20719315c26317f7f9fdc69be688eb16d7561a22123b0f3c249893cbbfb106e392039fe0abbb06c628c91cbb4ff7fba6467a50c59d0e7c469552fd2ccfab9c295eeda305c03490c8346357067f40eb3e8856dc8bb763eb07376afe653c123c5762b55b87ec6cab94e6a02084a77f89d7cc04c55f22cf6b0dd645d280aaa8d2bc28103a24e77eeb71aaca33f94ed5069d1e96dcedc6552f0a54b3d32b3ebc697e5c5d4472f449468b9c729d7997e7644797d63bed981544978e150fdcb2e61bd89bfa362cfbe2fb7949e3cbb35c25e50b5694d1bbadfd14b36db573e19b020b037c89ce3c71cca3f331f6e5cd7af93d7c9314b2b18486a552adcba753ed7c1c9e9ca97a68f2a1d4bdc3783653a6bb72fcbecff4c568f9631ae3ff4d806f73841d30d88b81ab197138f0f1b2c816f00e986314bd89b417bd75a5c638085a9d2d5f8b6242c88b0dfefccabc1538fb90083cd8a799ad69ca6bc4c1b0b12ed1a5255aa4a947122eb4ac8ae6fd040e89fb0678529b9244b707546b1bd9fb412fbd0fdf7d56a65acc908f71dd5965c111d2d2f5d6971afb0bed1d6063e618ea6b6bad0eaf61516263d49548996b2bde3e6f013254f52586c71a2b8d4f4f50000000000000000000000000000000000000000000000000000000000000000000c16232f", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 16, + "comment": "signature that takes 15 iteration(s)", + "msg": "4500000000000000000000000000000000000000000000000000000000000000", + "sig": "c71f120686db0668c0dd210910484bf501fe690efef48bd02bd03f1bd327b0e148e3a46ea7f2eb5e1a6d58ced8a19101eb8916d75f15bbff915250405bc58975a21113fe61cdc2c5f93a3b2b46cc644184d365c14cd6df406a9261e719c86824bad36f684a09aba84805d33c6572f7481d19bb8e80b6cddb3d7c26b32ce1522cd59c01087fe00992ffd481640a9756dff919396ae83905bfcfebea1d3ff37537cdef20c725467bb2cdbcbf71cd5765075b4150aa9d9be9b0d5ce211d1780060365a0b7074f61018a4ff3a09dc27397c87e1fad8859d53be558efa72bd639cea5cda2819caa749bd7d732263e2ba9dff0743a08c2b6327c78f652b34c2ec9e89369712de1087cdb300d7e858cebd618bb19ee31e6ce6370cf10089545bb64929f8e775d6999129e638d54e63bc90d678040033de25c865da3eef3ca96fdadc1a45715540268abe09873d5dca2f28112dd9806f6869c55164d44f599359d15ce619887da997f108069c04bd48fe21820e072a950c72713f585858de6fa31ed0ac76543328109e1a1bf490206f7540cc842a9284f81b212ff4c1a2777cf5aff42f2fbf52799c171650ec642f30247bf279b65d1439fa263fd9d502a2fbb7ed27106b62d0e3518c48bbed49345c93dade1fbe8561dbfd9014ef359e2aff04ff902c72f3d35c767f790e6953322c78b1a337ca20ce1926f26d56bfcf395ba99c26bfdb4b5f5e4b326beabdf37671166807beffdfaf1919bee6603d8b014e74efda6d66e34945c3b16f2c65bc4c7081e6790aa3cad83ef28512b4db49d55a476f7efddb4deb0746cc4e140ab7c15386d57bb11edae4cbcbf5febebe545282a10c7ab2281ff52e7efbe5df4cf81325b409f89142517c67eb2eb72e8ecf43600d8e506a8d497482941541b184ad8bc52bb3bc8b9b3af6688851b97100b7da93a89ae160e7e66130284c8df618941384413d5fa1dc9a0e09598dd4c75fc1906986fa3c80c0cb6c1e783fc0809e263ef509e5509f9891dd74e28c3e8565bbb6fd82b5e6fc8d20e76d1cc4c2ce521d9d1193fade2cb2c45991d3985fbd7e63943d6eab03d5ebd409fc9e1358ced715b71e1b193cdb4cc415dab5a2cdb041bafc8f6164fba9966901a33c6f1498170c84b1e329facd38b4d23d0a826e18e54e2c6ceddebd574d7b49d2ecbf449e5f87bb47738bd4f90672cf42957514f5640a2c1bf70bbb6882c7df8e3a9b833ef1ba22f5f61e6afab08e1fb8d7cf176921e576ea3b48b82560c645ffbd21bd90bf51ccd5f6be546012f2facb0f400cf506ed9b9fc578580c197cdc57e68b7e4f4be152c4d40a814533c48f850fad41c98687312aa50c4ecb4545f6670bbb7f2dbe2527d29ae77fc5a5e1985e63ff2f3fd17a8662b46159d51152fc3fad559f69287f6c343806f2c7d23dac9d3916737e0d657658544b89812f279b625ca39d18a750db15918acb4f89ab3c27bf861bfb8974caa23a1a4fbe03856a38c9b3ffb8481d51a25e6fcb98eede5067ff758b69b34452ea324ee85c1ad6d32d7f116a4b5b0a70f8f3a59ca9fa84ada89d406cdcdc93e1aa8c69839c05e82d5e10099ec3f8a8757a453568aa02db8626daa10f777724205d0033e3a15931a33391ef7a08f5f4f66efb01001608fce5a07f6e4a6d701931419a657aaddf1894c5dc992e174dee181efa11590fbf39777828a198281167f1c9a0f9030b9f4c4a24097a1d57b26cba513a34f3bdb0e40453ca04c5f8bed90dd334f9f73af9e2b0851764928a1cd6b4ff9400244b365e01a25f61129d9dc487070ef1d722288d48aa12fcebf5326e03bd06f942c9187b20a8d4846432888f5f739389faaff87a1934e61581edabd18b88209e200105d202e98de95d1585090a8cebcd7fa018566689d771c0d22a94b2b5993d8d5326297dbca01de134c9376bf7c89f84a691e29aa489b0c32adfb4bb67660effab44a45879bd77c0796415084816c4e309ae2bcd9d82b24c67db4bba4770cbcfb82161b1f7e4e36d3d34e6dcfba4e213435d084081543dabc043577c0b5b2bd43f562966cf655270e8d6a29726a91a3e1e436ab65b81e17e48e8426fd02fe06d1989bb7c2bdfc69ea4ee9c702bebd3b728ac4f4abefd27c37ccf2695ec08a932b1aa65abd12e02e9ce31aee95b7e08c1baf796cad44535249e558b4853eb08f2998cc18535a994ab998eabf36982c3f181d539a7ea9b4ec12ae63df4050f8be71a2607637b64b7c1dbe00f4df1a715d78fd3932f7985b64d0659763d629d7ab24e5d3eaadeecbfd2d536f9d3064a608cf80d1a26324e95e2349b8c882d552f03cdaa3b207412be81cedc32820925fc849e6c6f2848958c852a3c8208337905a8113ca4f80ce856a12f0a96fbc28a7ff1807c897ba8c6e71aedcf860f2cd7f704065b3b9e96dc458f124960fe2bfed97a4b1bc54f0b33e81b282bd188fdda9fba828fca5ad61076a8763b4a66b62f72be801d33a50138aba544735f7745e53eb741330d4463198f7a91b5c40ad7bee0a74886361dbaef6ab7265a18f9fd4047b324094ecdd095b33c873e20d1f0fbb8f979c5e2911362cf36afdfab95c6762314752cce2605cecab8542ca6e4a623a0d4cfc6b6f47db183b8405634aa7e20f9f19bce729e82017d8d0c417eb1a8e20a459575b1035ed481995b493497978160aec3a120b19406bbea75665382359e3b830daca4f1916bf3e4a691eb5687e1ed77b8816a6e88758a7e09d0290949a905394adc6f5c892c5a56dc3795e5556f2271d5054275259ec0d1b7fb4a0e34f9e6ccb5c258cef0361ded272e3a0487538e950f04cbd3e18cbbe2abe776ba611e01d4de912f7e7408d4c59d6b2fc1600f5fb731491959b83febbfb68734f3e7da1f8b874f0e36e70067717a136ebcb3ab6de196a0d9ead00a73b0a3766d676406aac593007a1ac555dda0c5152148a6fc575b3c417f40b6061c735aba867feaeddae14dc2b1678fa05e998c03eeeeadcad8166362511294b8219c01b9e6b35496c88200df64a119c00ce421047b205bb18f16ec174b9ab7cf016d9c609a06e8f9446d8733209d09adabdbafc967c5a700ab994afec6790b6c21f12269de62d6ec79922f66dfc3e62e839dffe9506e5504c4671a0a8bea37971a58670ead5f82706970618ce09b9973be3f2c9ca02e28240e54ac154c48ac50d7522cdb7c6cb45c079f1538fbd9dab54cf0890473fb788f98aeec5d50eebe1b2896902aac99fe41840ee59853885e4ec6bb62dd0cea7ae690a26155db1e3e4becf12b1db0ac1e479cb99b40e2c2f477e8a9298c8d3d5dbf5fb1418191c274a9092c3c8cdd1d4e100121b334c929cb4c1c5d3e3eafd3a405d6f75797f8694a7adcaee000000000000000000000000000000000000000000000000000e1c2a37", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 17, + "comment": "signature that takes 16 iteration(s)", + "msg": "8e00000000000000000000000000000000000000000000000000000000000000", + "sig": "14c99375a81e2599c8d06ebe0a69b2133bc2bb587c525b9339ca1d17bb72f23617ec28157e075be090760e1464c6a3455ffc608de20b5d9dc3e048431b90f663d12821c5c7a3922468e14c41a0c0394b59d4506a23682ecd44e15360253bae1d5fd4976d86ee1bf623343fb72c1640f33f0a349c46918a31bb9ab39dd0a4f8b0f30a0c7a35d95be0204b25c0b7fba03d743efa514c6ca457444c5dffe0cf7fb07c605fe19dd47838553a5240fe03f47601b945e3b11dafdad655629ce14668b7b11b68bbbd975f9e930e396c56c1b87228ef9f3eb6a68046d2164aa8967d25b89eee416f722342ec92ee0638141367a6c7cd25574620c7f6612c34eac775de6e6513ca261c34cd658d2d2c51e330797a859b0460830f3cd2e25d24cd16d28a2fd11866fe37e95a3298edd7b59abf1eb5cfbc9daa0b10522ddb49b7610004cd4c8cd63adcc03ea1dc9e76b3b5e78b9c7288d1dc4f432c7193dc1ad16f9440fde9a7800b8548040fd9d53668a05721aa55b0fdcd720f9ff3cdc261d2bc177360b9edc731efc48236af04a874794b28b498d69c84eeb0350e29310bb4013e66d350d6aa6c1c6e242fac0506830cccc8cb4108d07fcfe5baa4219b34ce443e3817bb7e7be46ed4636e144773d43ba33fad25358ac0d7236374aac11148639c493b058133cfcd9f694baa850003424243ba68740aecdecb64a7218dce9cb325a1056fb354cd00de37ac510ad0e8dfaf28c19fc864ff9b0a6aeacf5b16870f54aa6d274f76e38115825e2dfaeee84dc6cf78bc6c4551def182b3523ba28025a66ed53b17d136ee84bf37a58c3d39be0da3401a1042c526ad797ab88ae19f308e77275438f3b35ab9f615d17d2adc4780cb8deb499b84e8dc4b30154215d2a9a1ec0359c7b9d19e139b9959526f8b2a8d463fa73ff4036b0ca579ab4ae3fe204d0423f815128baabcde5dd573a80e5f6c3e8033f4bc259731f471d019d94dd000e4f9b327394c16ce4f1055f6c143fd1111f40a7785c1860636c3f0c83dad82cb4cc8abec00cf47b6450d5a14fcf194e0b52c6a9a79936e413664d69106de3fc0d51a46631502784cc1280a37e53ac00abc5f748839f4a7633af734960f63053feee7121fb7916c9f5bebb28eb21a11c296d7d7e44fa571db63a9705e740b6c5f1a7362bae4949eb75fc032efce8f3f3a2d0b7d6592fb3e3c4177b16d76a3afa3a8b17698173c12506644b3638cad9c3b88d04c397dfe81f20e9e973d7801b27f72b637a63c03b10e310ff4ceb5a48586a98cc616118c9ce2ff66c4095ec9110abcc94ada0048daa2118c01bb9aba0559e94da8a4192a853a6286acc5ade6a6f49044a3309dbb54a77218ded7da1034eb783c45574e7e4cd78809bb43ed4cbca9bc272004bab0223948b591024ede17016e86c745621904a02a4c5174fb428cf50ce231ae1340af87de7114eeaae7ffe54cb4bf1ed3ec0c0b321ad1fba7444ee43b06ade777c2b520092d42be97dfb0ee411d6ff3c8349c71757a512c81972ab985f8477c413e7587b503504678498ccf385425ba7956fb8d7b5b9c98fbe305c6fb02c8f506172f27135bba198413762c38c0beff5365dc893812f3170eb71bac17bdec2be63a803404956bf387529d8665023f8771791da8cf248ef36235b8963296e5cd7511e3fa336fc8d1416201944f18efe4c4e148ae65580f9a7becde6b2f3702c472b390dfff2cba03b87caad2e21b5a7e8f6ce862e19d02ed0b6c414332856fc8c4b8573b11d421d0571327a920af589cc9e95ed20b67bf5fe42ab0c10fe6e50f74e7dfb744823d1c509eb1e7b8f0cb57365772006ea4062ccab912c175e7f92af31557a146400b1925af33ca1046a1c63ee495c026fb7cc3d69823a9cae08ac9b8c132d850517c8b63263b1ea8f6abc0151fd0c91a030b06f54c8b9ae00c6172d1514429ac99c2d2c69622d7f77a0202d1230601a9b66c47d1fc769fdd56e1c347279a768d570947be75371bffc82b0625b4fe4b894bdee0c823de0efbcf9098c6dc794b8bfaab115e8f8fe91ff99abedce4503feccb5d5aaa86143e485a9e37d91c1f7a7a98b0817a1366070373ebd95a42700f7dc17b8da7c9c0a9ab428374bf2263bdb0161d90777cb3f81c57a0a4e4667ce04f7af59c2d2ef27f818f05cc6c0490fb74687ca5c5d0fed0415585012df650c268a0d0f06a734f7c616e7505105031db9f815daef2132741f32ad3a0b716e5de5c453a52f288e25b8b95bb86f4d739e067c98e95b3de3da4ba22e2a1fe0b89a996d706af8c8df715b76c4eda290e1956ccba3ba419ed54f8afdfce0d9c980de58f34b03048c4398033c566ee3ae5938bc30e83e1a3ecd7b8b188f4b80c9ff39333a09bc70a32310be442279fbd5f343dc27741e357c0feed404abc483b428c990d800e3834416e5dbe0931891b983569357e50e2e5437f94c63ba278d15f8d3f8f86c16297739911dea4e402394f14b375019542e1c2ccd5b28f580b61ed6bf4a033f038759755f757b26449cf56707d6184bce1607f9f28d191c2783b929af638a36aae42e54937b48685be5176c533f43eef02a949df480d8f3fb7722c87bd9007b77b468974f3c85a7a846e8a59eaa817aa1bf9b59a4314deba7007bfd0b67063a1a309d176d2ea06dae1fb0e03fa7f2393be4505fbe600de5838212d59a960ca5ad262b0467b3b2f5d7d980e0d96225a67d77277ae92b96cc694f11a73b478245b90409ec3a7a38c943d178aa055c9159563ba4d013e0d5b0e6dac78ccc8a1a673b299c5a6e07aaa1362f16ac59122900352896ce96fa40a1ba982c13ea67d0edcb889924adf3f4ed5e73877d0ea971b4269f5c14efb5ac32921172293435f40ebd503f169bce2492201dc55a51a86832206f514562340d200aecfa466908052628439783f49c0efbbd1fd480ad61b4994b04f7ec9ba3581de1cdb7f1f8557bc22c7e27fbd4f2035e5ce01a2281f642fc1ff70f57e328bef60c42372f47073830b337da28703070987952353985d308156576b537e6c7ad946e9ed56d7ba3bdac6295a4e0bfc8d3be7af1e6b6229975c8ac98bc764272be4ad678d2cd582c78111a4bd0a5001892869fb06401c8730c0d1b30019c9317a4e306fefebf5d872a10caecf8956298841a9b4bdf1dc516454861b8454d897e09a314513099ea0a72dfc47389fb510a734c30a3a660f2fc6557ba2c3c9274e4f5f617d446bf9b0cda4bd291cc7ab589e5b30084fdb1f1c6e863b5d3323addf025a8aa30690ad6556325ff97a13581df5a13800040608293d404556778f93adb9d81921293b3e6165838c8f909faaeff1232b2c354647494e60757b8ec7c9e7ebf2f5101a1d1e26365f90919da2a8c0c5d6f3f50000000000000000000000000000000f1e3041", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 18, + "comment": "signature that takes 17 iteration(s)", + "msg": "0200000000000000000000000000000000000000000000000000000000000000", + "sig": "22857e7ea6f532cd84c8f43b3e04b0a356b547f784ed255a188fcfeab263b45543fb316866765f963a5475dc33eb5aef8798b78ec76412c7707cb0b3b73b3856d3576f7911b7d3ca907bda88e88f3816a3b81158670b1bf68506fe8a6d86bd0b6074735da8756a9a66e63fe034d2a5352fd8c4709e0d97ec154a43e2ca5302a3137467fab29f6e0669ab0e7be2d61e621ab751229c087e707bfa51d1cd37fc036fd22bb8fa3ef606cfb7a7595f1e71c5fad1a1bd619efd804377cf5a69b21f28c4b144ca85cada53d986c1ac97da024b1bc9a962456a228b1f34c48738f33bf159121d0a4ecf66e3bf0cd9537d44314f5cc17b19d4e62bbf916ec1d867522d85ddaaa722fb0cf0ab09e5f65c666b8c1b5cea2d3997b156a8a982a6d36c07b5696f9e793e23601264fb5dcc551a7a718b3bc462c90e16bd97c506fff561ff075e25115ca37805a7892bd2109cc6f45a91dd378a0846196da6a80157c36b0a384bd7510c86381ae9d3501894edcd29a6f2977902d6d2305f04eec500d12bfe93ab069f50eb5e193406164ab224c63f8de1b25ef0a092d18e729cfb99a41600f7b29ae33f107e96d9561da01436f352658e1bb20d7a12e1e47464412f6b93e88643e0f4446a1435741e1ba5e5ce66783b683d5e82e2e8739d5b52f35fa2aad6b643bd3854ab62f6f054378d2363aa9f73fe464fb0572d26fad0b1c7f60cf2c8910c682602fb7bd470a0a1505e9eebcdfc1450491c1e715832c7da62b1e563c30dc94a28e850693bc034cefea3d655fd4895fae58760ae91be67d1fea438e53d64c57ff4f5ee765ca45edc1dc0078e8faa72e8b5f2c615d2cdf16fa15e64ba9a18847ea09fb77051a433bf32758827e7951920ba7a556ab90622c496d385a2e20e98d365d92ccc5bfc3b009cbfd9098077539e628f3ce68454cfadb9ab8fb962a56bf5c614a789306b8fe9c1df003ce4ddd94b8d4cf1d2c63287cb755a1af8c110b14de579d75069d0db2aa272387a61330e26894d814fd45e9fab18fc8b3b943c6f839acd5a0762226f70094583ce4ce0eccc8a321b27bcc597dbc14465c31eca8b66d55bf2009dd160c1ec323d144aafd9476aea05bb0b9b09aa5dc5d2101ef30992a4743d9d2f59803bce76205f6fa383f608c8b3530375968bb22ff15bddb7cd958cf9e0d9a9fc718c92bbaa5262e537ce251c186825dbc4020dcb1af4e1fb3201824d3858c388ad5df9ba27ab0819dc8e1ba037b7a38252c773202ed409dbc4afe637e6bb7778b9b99c898aba1e9bd312cc467fc56531463cbe2d588009d55391f88d6707cd5726bac976ac074a1215dbbb69720c8623f51d3414f2b81629c67ac73b488159ba80307eb074102efa386f2ff9f849685d2a5acb1c79cb5747a4de9fe5ff2a95f9efbf1fe974452cbee60704e94a83ff10b14a6927a3ff6f3e0b171cd3f8bb6f146668486bdaf116dcbd89bf850be88a0452fffc6da8597635436447233f9a193ffc97aa27969182027f034811c14bc460776503b25019c29b7e050a5bfe3c58c85fd9dbe79b9320c44a3071446088618a3dc5e855c1a251533d015f69ca41a20f7e1477684c4fc2c9f58d24e8732bb15d1d70091775a7b0f77a2148f6190890c3e7a712d521c8a4b202ea6a4d0007df773dbf9faa469da801d449f8a547eade48714069276f022cf8a98607f8701dd5f8e3bf658a562cc2f3c21ec1ba1d0d5766d9206e7656ec66fe410a011fb5dd7994697228c6c7515af194ef534ea79a579686f84285fddad8f8cf56725f051fa1eb97fcf5a6348e2d5224396e6838aea802f7fb9bcffdd8aaa1daf20a34ad5b7f553dea0c70f4c36f2e7dda15c586595041495854e666ed4b59669a8a17e242de04b18f079be37dab5ba31cf83bc20446b5861cb531bd6d5fa6f788f8320e823261bf45466f1ee76430fbb10b5f7764fa636999f055a64023b7407a092fae1211290e750ca02c764476fc89537a3a8da05b053ab61c042f056e2f5fd70eacd2bfa1af59b613ed01f88e7a254d1f511b219549a7eb27afc2cc433706b972a49f81484f9f3560278727446294f12213b1756ac4d06d9ad8d38d84fd81d7aafddbdf72b07f6d4fc06c129ad13ecaf5d02ed50161f909ce6e77fe4e412ab6c961ef378bedad56e82f997b3b9b40f55fa4faa15c4d5940888f904db830b6691fcafaaafe86dc1db6d5e24bf67f0fab89094ea13c31705b1c1cb57ee3484bc58cb5e55feb8db0b5c57ee3e0793b0758ae22408c288fd3c2de37ecf08c8055b6b58668f3a9ccef0ba36faff1f822ded5d3328dfc42dc54867946cb266c226f7b54cfb86ab38b4d67b2714294dbca74a8dbbf043db34c9552c1a82c0e66f6a3ef36e7dfd4d0d578b0fd7547c2e52e0e3ba91344576e55582faa646f2084e6b6822a11a826c35380e55bfa1c7ab39e6aa98383c50295150e10f499818e0482a1d7d9a186d5c03b5a925a700336e35497a403440f3eb53a7046b85c9e8b5d663b0d03d2ec0beeb9763716b0260217800409940781cad5873c49f56986ca27afa4bc928a2dcbb8522ac2010606991ae3e86ce784a47d2bcb5c4c4820b810558675419ea47ffb9311082892b04c0f631cec578a1bfcfc9b4c59a226197afb52e1fef0728608840e4d9e3ea3a4042bf1bfbce322cecea41722e58791900e27b0f0de9165b74adaa854ca2708fd62637af355e68eada8015eee71ba1ae6de2cfa43319718085addda4ad22029f5877f8f6c8ce2d73e4afedec7f707013847be0b75394530e7b252f6445fc246ce6fbcbe0c1579b64d5c96438f5a3053aff912aa5f5f62e4cc926990c929cbad52a6b9df4ec4277fd338ed15a4037e7cae597d743330d65af4a3d018ad355eea4777764a7e5bb9538b3f08f784dca20d8a6b96cc3d0dc6a115c487cce1e26d17530ef8b3a5aa3448ba601f38dd07e43722b92fe67d5bef8d25f326919c3c9df5362d60fa3c08748cc272ec8bc30ecb337ef70c25b60515c9dec0ea77807ef7afbcd62851e9be836cb7f965fccb349abfa858f20e22f483c2413a37cec2fca1ac5b23bc2306007f84cafbdbce74ff1029081ae647f9d5f379c7aa46fd99416a885976ba326cd01043cc6f61c93d1ee134e07cdfe00bbb8af34916190138055a1dd826d4b99389a9d5766d56b04539a4e0d3cce9f78cf40b2049020ba6a501e3d3472095fd5704f26802d0ae9fc6d83c17315e03297c82b4422adeb1eef9f78bd0156dc27fa550639d0b3498ccd95dde84dcc81a35826ab5bcf5124c0d7e19083cc8c8a25ae8122123262738415458768691eaf00a0b1b1d24283e4b5f66688298a5a6acb6bacbcfe8050b1c26484e67737c868990949da0a8d5d9e9f0f9172b3b798799c0c2c6c8ccedeef3fc0000000000000000000e233847", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 19, + "comment": "signature that takes 18 iteration(s)", + "msg": "5504000000000000000000000000000000000000000000000000000000000000", + "sig": "1fe063e34f13d5f43e5339bb46a63603503805d6c5ebf4b2965686df61304439b89b2ccab4789226476d0178ad7775b84c2ee089e205c4bde789d63cb1126cce32ac587a80b7a223df5f4401abbcdf34ae96cb807111365522a02a269adfefefa4bc2adcf22b694322143cf5c9b254659d4daba75253e667cec14701934b94ebe55ab05f8415f8bf220efcc4f587e7037ee98d9090858e79b109f6254722c25ffd8e9c98fe9e861faff31fbe3b00cabf3dfeb0a136df6ccf3f4e645fd3b1682ab4d5eaff5d903eabf409ef4ed7fa24c2028d18abe9404a77262bb10b3c55fa7c5265b880367c6afcc5e893092c0a5ee85d0744dd9241d2ac17770af3de77795c325308baaa1a74e497698c833d5f70b6a57c42700cea0068fb15cb0ba72fbc46f3890b4d202844d5896172d855bd61fe52c9fe435ac9c50a2db4ac42cc4d2ed4fb60b2d9b9c627f7f2abc402901eab78715cd708d5aa2fe9047e6b8e314bdd1a02d1eaf916c0aba9577de880aeefe88463e36b19ae55f6c9f33db06b6bfbb40c5657a73199ee0d792381797c8527e16eca923198f53e5cabd96963c25bc62aa67af3670d9908040b6148563615036c8dcf69dc7ca80b72e60af8a97b32f25ed44387da0b38f1c7b24f684d05bbe66aaaf175c0e93d64f4fa0df858ad5d2eee6db4956d3643453a4991e27a1f1454c4aaf30365668ddd55bd58998117f5a239bbb412bdc64c9bebe182e47cc98d18e7035e5f9ea8c19344e6f988b3c46aa1e4eb626e60a5cb35bfb0449303481069c0caf6654bc76be819a939d4a989a542857a97413166469141f65891f1496af4077a13b746748c91ce2a9b5b4ed422ca3d816a5f458c5deda3c173f33c55e3b15005453a3a05893fd637fd0c696cda99487d45dd1b5f5f85482ee8e757c2eba5962bec435fd1a8c3ff825aab23af6b855ae08f2cb3e60d42bb196c53426bb72bcfd044b1dee0bc25c8f328a9b060b523cdd74db9f7848481ecec970df2b3020c39c72cca82f1875536e1e0c71315e10691a1af9056836a4cf224afdace59d8289ed83550b7aa7b44547d8d95605ecc6f054f1613d5de8e1d293c15e046b65156ecfe243728aabd43d8df78530abef2aa1bfc77a9f808e9d0f5605007cd092c47e40e36f4f4ade77db0fc4a551b1540be7e4f14a9e25e16c9e5ffdc114635ffb0d73cd90466d712f1baffbe5f0c4f75a0b30a0090773163f6ba429a88f816d0181264dd90903d739c50da8280849010b1411dbd2c971fe512ff83b3a4944ba6539aad14dbf1f8ccf5a4c3b304e1fb6f29e6dc46ecd851cb5b4633a89043a6423dc2bcf2a0e3d1ca81c766b3c31b426b63c501c57fd6fe879b9579a1dd191c3e7da4ea20bd66ee8a7cf04229559d0bea4de6f2a03560a25bf39e71d786894ebc376435ef1bcbc50ea2cb9bbb4919157c82e9a71cec355e084f2ac6edb0f35c6c144072ab6200244023ea9c6cc251c8deb76d484e309c10537411a26f8683ae86ae78af4635145bb997829486466073ee931e162f25ff38fb1a684a68ae2419d57a963a653fbadd2be87c6497a442bd6d728c2fafa46e65c5e80c78ba2683b8a3d631ce0ec4c273746cab730358ad7cc2d5bd7ca967a87de2216f3ea585dab2d1f7b512101d1d98e77a6c29ef4753a8a9399b39aced794e68bdc579560596cf8c1347acd577262ae249dd25e59d9a79822c524103c22b66853bcad3a603a00446abb69606f8ac9f8c04a30a701cc1526ff2a24f88980edac7f9b03b3d61dcb22e70ec97e59096c3a13d74fa807421e25b527bc0f985fb3711a6c5c0ea8af3d027ab81503f3c6c92e7d3a909a4a5e585b889c16bf8290bd127b9ac6156dec23c05a5d049f39186dcf8aed90e248da3ee9aac39d3eec30aa93ce6cb26cfc5e2e690aaf1db83b069b4ab0c6266cc977ead1c124d7af6bc8c3356672c8cd45da3946d532eb64b30b1d107ba2405e6cd45bf9d9b68778367988b0042af611092df18497b7554281c278722b40d0583ed55de950d490fb621919d9693bc3ee145e9b2e21f09b046d864370f6c04a0899d1bd1b2dda2677a93f1f142dc794501d35a0b41d622dafb238bf2dbe12fc5e1ed419529c8b6e252e18025e422a7de70de6bc2a6b6b5d02b7062b16845c9cbdb66fa4ee47c0077ab7349bc3aa75ae7e7b0c27e2f5d0aa3579c3dc7f18e2e70c2df7697d4784fa400f512078db3d8bdfeb763b26de0ff3491160faae7be7833d494a1fb569c4251a4405d873418cc8f6fb7e5c77fe87480a67a517e5c48d0bf3ee0686e16284f3f2a7d8ce2f3686e85757841441a896abd40f9915778480e43b2beb9e2c2895ba141e210c749fb8ec97e535de80551dd483ccb0f6298accfd757abdbed2062d86bc3652e726bc4a89ad20bb6a91eaaf35ce9d860da6284e354a4dc454800ddd76c31e74a7bbbb61faca96105344fc6e71ea9e07e3e10925a7673e8e6030e1ab19a4da3578a99f6696941ae2f96e0a86c3db16f603f5ae305e919725c9d9eb56d60e08cd65b0f610da01df4f917f710a4d7fff9d59dd71c5c08c1a06a98f672580b82d16d96408106451ee01bc83b9ee9b8afa5ecd0b92a41513e561180e7e0e11e5b392fe668a5eb01e74a03dec73c15910d6d96526f36e069d822b505f3d4950ffd311d778740167177803f885e3f65b71763ada364e889defce25566ab26b73bd8345952a8d065c1777a3222f07d458ae14a86aaaad14232ca477830162e53be1b73dca24c7d477001e9de4c04e768d4ab1a006ec3b4ac7e5dd334ee5eb83b25ba63beb30861ff5aa23d3794566c594184b06e8a86d956ccedd5898ee19b0c626d75af10963284e31d6c21e2460eceb06fa544784df68a45bc69b93436adf290754fd238e077746245aa37769a2414e747b302231542ce42f79381f04e0a6654895dcd0914c6808bed2e945e8ced51a3fdfa25ab12d48a3110193946cef8a7a89a073bb33512f7ea5183f4e570f4108b76b79c14f17686b455ddae715382956a49fb3497d44b4d6a7d96c857300166d69f4fb70f846e17082658b0fed3e28b8309a24f497b0affd3892c8c9506fafbcc59f24fe6764dbecc0c3a94bccfaf23671ca1770cd37d4e1f1aa33926b6ecd4f9367243da0b1fd2b723c16077d15e9c6e55dd79e0eb1de25a4d0ce5344b98083d16017fa78adfd120f129ac45757d1b016a10b41a2186bf0c41193047b1f798eb0e2cd286977062db7a7c37579c3d8bdb9c1e4a82b2ef983fc5beb8687ad28aaadcb90452fa9d469c6809217ba7282d8b051f22363f435064768f9099aac2050c1f60658793a3abcad6020b1219212a2b39465d7778888e9799c2e1edeff4fe1b3d3e5098a6addde5eeeff3fd00000000000000000000000000000000000000000e192f3c", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 20, + "comment": "signature that takes 19 iteration(s)", + "msg": "c301000000000000000000000000000000000000000000000000000000000000", + "sig": "73eaa447db734f083509ee0c088bff7d805d811b7d7edbe37fda1e846b20f511bc3499ecc8822b9fb1006782339e3f12a1d9d1b9dcc77df9c29863b486bb0f2c0a6ba611ced571d0bed8ceede46eec2b7d63ca00fa6ae9719b176f17ab4ab94ed5f680b222043dca3c3479fa7746fbbbbb151051a85032f5b94636163a9b4e19049c2c29f610b7bb9ed3be2e72253ce7804654b9fe4c6f42b2a77076110d5fb45579542f25aa84ee55cc0e1b015601a427d4d1cc9c4a68bf7ff435292a9bcdba26e552966bf850e146c903ea8fa9d1e5f775c3d950ef436b7dde15bed6943d76849745ff5280ba9f1887738b992ce1ace036344affd9cda8dd181eb29e9f5ed1d5cb2829bb2f53e2885698bf1e5e718654df6a7c7e644c3d606a0ec8b0e6419df75ad75f03b9e78be4e274714987a873576a6096e3c18c1618cc7473e72d3b644c86643fe1f9fb5fe2e1a78070a2435b5206e3063102c00a071f374527de0361628fddd182faaee3d9d95a4708e81894df967754a7c60975c5066863ffafca2a116dd77dada1aa16f16fbfca8aa8c049f7891967ba2d7fc052991f58c15517db8738c5920948d7e680c1b7dbbcd92b7ab94b23f1e9dd6dd685f87999f3381975cb6003827b3fe7696c1bf8d6cda9464ba310b38327cb7a1ccebfcccd28ae3b96b5a934aea50152aa40c66c9cbba429da771a51615758bc512244a3bbe284ef3068944571a407db4111e14b0d2329d6799fc507d1ee50596b1021efa6bbbad329360e61b22243b41b8d09080e0043b8e3bff5fc96a1ef3ed7798d304a51e74925eafece0a8eaef4c39e5e2d03b4aeecf8d949bf8a283e592e4e86341af8cabf74cdde41bd31fbe0db3b07446687bf46d589eaec5b9e55715ecbcaa8337b516ee2b6776563a844520e935ad79847f73b62a77821144fe5246e43d2da07e63aaf925c9e31a1e0beb1a08ad5447b8ad94df8273d56977a7018b50bcbecb9d280895a2aa4d40913c47ad6ff0c8f454c52fa14aff0726e5d22bec77026ff33e9b153eebc4096a0538ef38fae5f823d61a557812c0829d33271f32f507e2a269ab3e2b3eb5395a816f4aa9f96868d75aa59369d87d2fd65e87386ca4dfd8c09ffa3c22327c3def19a64e17d346a902ef082657e499dcb96ab9877d5e2d0d2815ef789b918186f6ff2565b14fe992961ad31e3b692a8ea010a911fa3680f9ffb15356e8c745c565e68133be38c9b4672c493f0b5cb9a6ecf8cbca85d913f380bb563b81a62a2def337d965257806e611242edba13e52998896a274e7dd7b7ac1a3976632928eef4faabafbc97a86e8d58ee6d79ddf3ae74252416fa70e244d3033636dd7c94908ebb4cc5058922e93871bd7f53289034dcff49eaf3d2b702f19387826c3b5553786351202b2528609f2a87d9bdc10cec8b43b759cb1b7270e369e083617e0e226e91e85a2c480f1a4cd26b986327093a8d35aeb668c9ddcf1e13741baf20a785f5152d3062be2c82a54ae7d4b9a8305b3f9daeac55c2bc27580cd465d26690f86d1723bdf4ea044ca3d6dcbce0e54e8e97f0952773d54b659fbe19fe14c6bd1ce22cabbdbc28365f426debd7c13d3db2d55d60449848b473d9969fba803b306538a2d2606e850d552d7dc82e6f0dc3f32119386d55060dbf1cf7c1df9d55a005b8c478b04654a2115ffecc7aa1b20087319829249e3766ff79f388f4954cb6f8a9b67b41bf90e9d0ad0e7f893d16ef1f252d543aaedea30976fab88ab4d4b8c7e6a660f265cf9d7e4bc91d7b34fd454bef1cdd8610f0bad851e6020773a3c1e132f81aeaa34ff076e79e4b53a9f4cab94564aae3a12101b99a8b5ba38cefb632876c3a5b494ba0b488648a299ef76a18f6a6a716481dcc2570a9939f3c20d02d6d05782ada7ca99f22ce1283d46121d1da8f8b8c88ca1087993ae61029a4d8b08896443077d3f5e03a35719c67aa681c378b1707a5052b4f87871bf618fc7365118d3eae933324e7f8f18ee24ca13c702fe0ad56fbb75fa3a80d7f6ba46903f3e77acc4e55e1503007f41136b19542cdbacf7d58917e9f03eba473f77ffb364233d7ef95189f5c912d2f6075ed96937c166a7df24b4af204689906358b4341309dbf300f456722a4ba2310cdb442aa7a6e7d86f7573d49f9ba5151c6ed717c3491fa909b8006816379ce1fe7694c5fb9d780f7b319b89e66ff38cade6e75766a00b4fde7d31455e609c5568e6d686c8f3dd008ec096d9c9b873f6deb5f305dcb358f04a952aab3fb18dce088f87045b82dca21c7be6014d3b8063043147ba6e6e4919d41e4da939796b89f1f4359d3a653641029d61d8e6d573bd7911e8b2249a8d3ad24d09bd7a43068ba2ab47cf601b0449b2f1235742b8bf626a6bb758da4616bf919691838b69815981ef7bfeceac343a0e0e9d349a94396cf8656b26c89541bcbfb1ea59ada160b8ce3fe6610dd0b1d8ad310d728b131a17549d0f5b325782260e84314212e656ca4ccd2cd2afa74c9900ce1502ff79b4b45404dc84602e15ab86df4c5539159722b2df4899e2a3997361b3de0ca7c25afc37dccfad8922f8ca489b96a416dc93982198ac4c50a6978c47048d7f105c60fe93db814ba800a93090eaaa6d07db2d88f35486aad3b6a62cf4d23eebfd56f61d423212a1ccbc34b0459058614c025d1f718298c087751650b6b0898061c571aaffe00d9f610f984ac795f91eeeb0b720842090c294594b5983246388dac462e063d8b8eb6062bdd8be73413524fd36413047d547d769cb13a86fb5e023a7398bd96bd1208a03332d386aa90dbe3468ecce9ae25d41ee476e46a62f0bbbc6840e4c9385a1468470e6a2b68b5d530b53447974e0249d2696310f90461e8f5c9a345ed8836cdf0cc619c87613c79dc68c425bd5540224c47ce73933e415b9a37da03a4d59da5711dc460bc8446035f28003457ef917e5a3cf7492175c665eb86819a200706feeb15e57f9e591d4b2119307785a9c4bfa43f9064632d900bc096c754676ee86f6b99472e0519cd7d5a91d1995e134a1121c88332c692d958e6cf1873293e166b336bf60c128c686ae79a7ab94480cc163fed8546cc5c7c2cffee9a13dd87255aad91dc25f9a55285598e599f264456da93b5a8408150a93ce893a3794aad44cba8e9be2cb8a51c9f2bc6ec99d7cc2e1749a06deac7a1d65763a61666b001d24abcfadf3722e726c88732c966f361bf09c21fe69c3e999c52e6ea900466331da1c399bb843b11a55d68a9cb554fb14c053a54e5434c1797db26f0640d52a47182e33585c6b738fb4d6dbe1f414151e31374f5e5f676f95a7b3b9bfe7f4f6020c0e22303b3c3f515b67737c8a8f9bbadeebf30637414c536465879ba2b1b4b9dee9feff0000000000000000000000000d1f3344", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 21, + "comment": "signature that takes 20 iteration(s)", + "msg": "0c04000000000000000000000000000000000000000000000000000000000000", + "sig": "2d72e3fd6ce661e3908b4817430b6220d0bdc42898a083cfa8806d4ec27ae22e90d643611a7a413daa1cf5df06d49794c5dd20cde2e299ff50b4f88106cc442e9ada5070c7b1aab70bac256d7f7dde40a0989f82c59309e753b5eabf0b1a6e72d65ea41743cdccd2816aad71fadfb1bc3eb51dced8b05bbf30caf7d130ce6858fa3f2d3ac1664f1bfe11dd97304089767ad12e63fcf9de612db5c32a848b5fd3008136dec2fc36b0f1e6bb41a7efa9b8115ad86c77f3e53678f40c66c1bf0b874c31d74f91d1c9065e1da91273e51e5ee90e5d68deb477def3ebac82eb3b6cf4034a76df55515c556063f33ef510bdf7cbc12581a42847748019efff3a20a99dac52a78fc22a92bf2659a2196574b287814a21eb3d005f7d97624fd336671ce28acc2fa77863368e054e0b46babb1ff06eb03c6ef6098c8d7b7ccdbbe3ae271bc3f03a65374a7f2df2af1d3caf2864fde58b006c2803148760d8c8c813087710ca113a32093788510656ce752c656b99025fe5abe6eafbbed43cda9c3c14930dd06a083c8ceb163ae037982ca80914752009580b43209cacaf4e0f95291d56e6f8d3a336197d5948b19c8275e329ab0cd3c12d04fcb8d60195254023e027d448d5486c9691d8e288aaa7490a32d7eecdac4194b052adc92aaf7398cb8912b1a6c49c483ad07a326b258ada4627e3e119d7771438c73440508b88de8defa0ba4cf58f0218850ddf4cda52604c75443db30481118924df0f27fe55f6e1eb2797d4961b5b1d74851e6897d2a60dd3060ccd7bd6fe537b4a3bc756297f2133f0b9f3932065247c9531556fd6d222e36fb6855c58a14f99b2832a7698f5b60f68457a7813da5dafe00e7541ebe35b7566f83c90d4a98bf2d03d437d236cb2d282e585c6f0b71b350a6a33b27706e120082711dc959ea46e7826c9f49a6cdc03e0e5a69f11ec116b050e63018325734a22ba31b58f1ec1de4bc85f67a789a76dc54da493c088b75a93ff49e9fe941e747a9bd01dcb56dee527c99c231c5068f5e144373e0f028d83731637fff35ee0830778c7f8c88b883d8dfeb6d813808410670e3206c5820e61e6f97a32e624c62540b012339ca99e2e9b6a43d74d1b88c34746e4fe815ace8545025b357d24a6ba7845d19642b78a1db904a9b4dcd0b0710c5d3ef9a5aa8a38ee12b91f9481ee70841ec1b2881dee08687fa15f98a3bae11235ad49c0f78fababc95356645c29cadedbadda49e80de413e7d798d0db74bc2149ecf0b7b74847f79ad5099650a4205ffec25c3a3a646ef804195303ed3390c5f5bee47d805686c823cee6549b1e055b3888e0251f096d1168a6c8c637df8f59467695ba4683b3e05a42be00c1aba8fc0ad00f0aaf276a52f3a2a7dada730d5434a4f8e93fc2993764b933645c8596f6d38a296defefe4fc44b0f3ce5c952306827027a682760a1012b1ecfecedc09205044c85fe6bc4755c19883f8ee3218e4c99ef5cc876c5c4d6204590c6c51d20585403efe0301879712b16542f38d0b447ee95b2610cacdb06c06b188d382369619f06a6b0f644ad00d0bdd28e063122230348a11156ec0098441615b2d80264715e65d65d5ab7bfdee6f0ed600c62feacad6f2a604546928c29b9e16d8d00292717728827f10c27ccaa6a26275393870eb81b1975fd1910d3f25c98b20d84b3d051c2ec227426989f57aee2791686c0214faf8dc35dba5c1b81a9645b3424e8095a5067b39d34a680b8d33c385b601fdc455c5ddc2f2663d03cf3632710cd03c218378b035dee38e029de17cc3178bed6b562ba1bf5788240cb38d3e91bf624cd0e3588b24d1a80f9e706146b4b7ea7bc1c965fba1713980d7b7c4bcb804cc2a6f24a11a3903b004938f959284071b4be232ed463e2b5e3c08afec1771ee4765fb1f0e4778c7632621ff6180be084851cec7dc7351ab88e6ec2430127211225b5814de260db143784ffbf17ad4b48ae1f359b6a104de6a9aa276425bf5f38add1657ff946ccc8f365fdfb8920da5e3cb87ddb4fe7be797e09ac0689a7e9053f1d38ebba5e460770c47b9b9e5b2ddbf904f39414d41d9b70d0b14d8e261526a9a96da622dc9556aa04e33bb21c979e2ae379a53d431e007cac034261cc6f67be2ee9605fa7a0f320866c8dc9f561d74463eedca5269e313ed24f6630251f593e0dff65abaca4e1f9e6036ebb0854ee6b7ff5bf311ec272e7bd0cfb5c310d3c9fde18654b97045ef5e33c2b3ae0b9465f62172e10a6cd71558d5b362bd52c424128e3fb9acebe8b5f90340ae2f3a6f12bed386b7629648d45cce04c62140c7bed13d895b31fd2bc811b683c840a514b18161e9a1bd4a87ed1b60b19f592ff46c7c1fcec942e3adb6a77a76917a585a46d603b5e70249ce452d453543912c3f249b67c8e7410c6362a7f075a5dc1e10c657b04824f14e7c7e89c0b5d6e881b230d03823aee73aa8495bcdde039caa4113a9cb52399922e851e14ab0478f34527c8493878f94ce43c0cddcc462b7e0316c6d4e82a5bdff868b308b3984e951aa9c76d88c0716daef6e7d4a7085de4217cd2d58943bd5cc56ef06dae79e644d79b75efc91e193ceac3f300b487b3a6759f5fc509180163ab5d5e2bbb8d82c2f4f16938ba0565fe99398a36ef62d82076c107154257bb8b27c1ce8c1700d2315519950f3e60d266c44c4309e33fd3a1b4908da61efa06255332d8ea2603a5d6e24741598fe1a329cd1088d8f80ced8e764e21c0e066d6890274072c7400d52f614397a32a757ae315eb92db9fa9f91314aa1d0c46d257786e81bb964c0aa3925a66305702fc586190b28a59eba76ff17d136f13194d70aed69d724b706762c25342bfd06f111809f73357b22e1c323670ec7683a90ca88156343c511ee40d750bddeb6103b67781bc9001b268fa664b5cadb4becf355d87bb9c78fdb6aff0b056535dec4ecf4ef1cd1e8ef1c7f896136854979345c88046faac5b739fc0826929fe07135a191e6b62a85341f831eaf358784a0c94709adbf6ecaac9481e79bd545128ce280e260357550e1cc5b48f812bd0d8b0a21fa2420efb05fad4f3418e5f911d1a16d0adf1facafc65b9a822ee30712e954fe69fff7188a09bf63af021aa5f94707ece2d509d20bf1ffdaa61d0082cd0df593d2149c16ba07a56e41a06827b307b24339f51c62bb0e339d51e59fecaf927af047acbcbd2a19038b361823c8b07caca1bd535f7fa5fe86d32bbe7904253c5ab1946d1f8b77c41f744f6467ec0257889b51a9b19beb38a732bfe868482e6178730024262b30383f677e8185899bb2b3cfd5dff706223445667176797a9397b7bdc6e2f913252b3235565f616670858b8c9aa6b4b5bb0d1e27313a505c727c91a5acdfe30000000000000000000000000013233543", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 22, + "comment": "signature that takes 21 iteration(s)", + "msg": "8302000000000000000000000000000000000000000000000000000000000000", + "sig": "b62f09c76438047b99b072e874350c21c1d142f743a23187d9deca5ff1e8de11159cbe0f0aea6d8503fdd612e3d0356f14cd0a00c692fc57d9b88eb87d387a823b8d0a9871a741566e1f534632499e6bc3f190a995f74de6f987bf802376a1349230f0871b4af2938c93c2beffb14246762dd86e43fd2696e138c754a9b8e8900f1e37e243fd52ac9417de6fc62e3ad7f83af63bb5e532b8fa1660671ecfcd90bc03caba4a4e11ef1636b964ad19f43c21d1c7c7330cfa3af58e5286bdf9dce6ae677603f3ca444b2a8095cefcb16afeaecdb628bac2d0295a636e70e9ea0986db39846ae48d2066ebdf9b25a2c206a36b05f195728e13b41bce9df9ead16384d1b18e408a8ae90447520b33810f6e32cc427a1ababa98c9291c598d4e41515908b660bbd87f30c0c81d590e337d22fde222b4524a3c11a85baa3e0dc09584576b6977485168add3d14451b6f6a14434d48f1d7e80bb092191df68a29af79c47d79f4fb220ce7424d1ac03844c1b4d401d7d165d09461b8fe77dea4228e75d2daf9945b594039ef8ae07bdf1f5c957238b1692c1e25f92b5274a84c2055b6489efef568d6f0b77a39c60f68c8aa36f3b4e95a5490fe52c4789a5a1b0a799b992f93d998d430241706e4511d69b7a4c7e1881af984f6104beb1da842de06699c591c13c4891862cfe326c564a557dc0684662cce0cc5437dd14d2f1a9ea6eb62e8d20270efbe8f632dd56319c84da3b9aa6688c8fc63d96e281e316c4baa40685084b65fd96e309c390180cf6a71a22c2e73421a8450885583a8cdd02bbcaf0bf84a36bd3bc469f66f379d50ab23c567da1c5d460b8c6a7d24842d39580065ad98287d04602db66fc1d9c53c60f15161299d2e4f67f178d247b8658c869ec39d080378627ae90e04d609ef8e2640f1013d699b266aa6fa7ebcc1b6cf5862751f6ff9a61e6d4a04bab9f86590c5c0d32de7c41b90f594a09e967142559d6fda7ce5cb6f8392a823b84c1863ac229a1eb5bd7e837e901320fb3a4ac6e93a01a61532242ffd0177c09d575653e2d3953916cb34aeed5bcc1e8f74973ef595c798de0910a66f8adf0a278c1841b36ccec190b9f45edfeed4f88da742ad84d4f75339ace09cd629cc2e2401a11b73776f62e72a3372b1220423c786a2c079a525485def0089499b90a8b6963f8a1fa7f942a494b32c1970a167d2a52a81303da671bf5f021d2ff698b234a0781aa769127832a071cacadc8616eff15f7cd2013324c00e81b545db68cbdd797f7750e03faeb24b7c3cf6edc4c3bbd4ac389d4f09185cf7c4d4f2fe8c55d868838de908f5685cb2b80b8982e891d30845e3a631c466b4d2d316ed5a53630c4edfd734cc03ae3103424efc4a845ad1bdd00eb315c4cda742c1836f4d230a585ed3297155ea00d50a918033bbcbd0b1696cad9ee329561b79e8685d8afa9df93d471a93ae18fa0ef32b93730e0ac9360e4cd4e79668fb1375f714ac17dad349c3b9d595dbae6c90a277706f930257120d25817f2a03ef9f4f03538faf6c14341a884e52d75ba7da99a5e00af4535242a05f417b1db5d4b865bf30ee1b37efb2ae1bd6b81c487c439e65070291de0b3a6c263f6cc178dbaec0730aa96525ee9993d8cffa246fd24a201860268a658df29a61b0daeec351668f10b182aa2c8f47257028324317b78a90214cfedb457ec3ee5e33e07d3b8d9aed4673c6e884ad86a363de15e5080477cff5047913309933b25bfbee841d3aac54d82cee50d97ce3438c1bda061c7dfee79a7bdedda2b41e70d7ca42615312b60540de7fbbf255b3a1a1fddcd36faee5e2ea8bcf1fef5ba5b44797fae35531f016809e6b0737198708c7c091fcd236cbbd7e9bb56dbff339ba58954b72530dbac2b8e6b5b4effe3e4378cf21d35f69a39bc953ebb14f84acb7594d3d8d274c8c6dd4a3a38c4ad90c1012e3f52cb39d4eb6d6f22e6f174833338c0132fb36bad3b9345acae66952de70edc6cd8257f1ee2bf77a3ebe8f1d1b762d0d74c19ba9a269fee1f9676d46e3c4b540c82e1650bc0990c3db3d46f87298ac9296279d8861f9896e36e956c7c7f2ce9384eb85b01219ea05d823720a4ffe47a6736e8e28644912c5930d89c7eff8eb8848293723c15b6a333292f2a83529ec71bee08496f440ad570995f9d153f034599bbb4a9325a33ccce710af6598e56371e492d840b7bf46a5e116d18495d7a15e2893875b78748903661933c9a47e04d79fdc3561b7b0871f18fa8d5641f829aa2e2904611826347f0315b25f4ed881af997ed58a867afcffdd466855e801f2ba2d21f72ace486d1dbc98a9836cb46379aa295cb5d4e536fdb73ef425d70ac326bffafb5a4c727c92d8c949d3f4a9fb5d799c616376df3f842a4494703752f5102d93a6d75248414e7c67b5f0819379f7495ca4044944d36248d9da944810b49ed201a67e44405af8bcfcb68753eb24432709ff0877d5e5a6fa43e2dd4b3b676272bdda94d1ea645f7bd14e64ff7a7babf1dd9baaf9935e0bc58caef874509689f605e5a6c6fa1daefeb7a955f189c84e25e2a0f5dbed63e2905bc225a16571192a9d6e960c29f06f8478453c20c9bce4a74cb6c128f999442513551220b837bb51758a76dfa2ba19ff6fa261efecbd24ec487dd571daad37fdf1488517e267c211a2a23d63ffc3beb2dde5767a0b6c6ded0f44c7419a48ec9735d0c59121d5da7a67f53b3f2683c2911a69956bf509b8d7c2c6eb2293face96ad3db9c77a398e5779bf28b8efb8861d76728a3e5210bd94010475e443d3017f272d8087d9c0c150a70272d164e9e130006b4148b53c3f79b057b72e2f9ec066eded06da7de8809966503f9a404448ef9c56fa13e5803134d5fe69d599b0e213ec685f94dff0d3acea4eb847ab7ce89dc49e48f48cbe0996d51e2ad1b1c7ec003ae28537ea609bf918d4f5e007fbac42a7daf6cdb22ec4ba28fb6090c653564ec92c032396a5ce793487847cb54580091847b9fdbc2463b4ba1218b665cafb5fdd08b1c642c4d20990ab992442a8df842296d47d97d10ef9e81e380ad5a46035e18de277490563d127b456ef40c7478875a40a6c984ee1eb3f174004ed40f854b0e684165098c43c3bea15d19bb5dc7931792a756648b16fdb99dd0e8f81f52ba4505c828fe03c6ae72211a3b7479a6134260b690d44ecdeab063c1770afd0e125b706ad9ed4c535be2be2244c2c378d3e74d362d952d59bb0fe01a838aeff9098549bc93e3a3b8ee63a976458d3e08142c90ee07c3c66d46a6454934090f22262e3638728b9eacb2b3bee9f6fe39626a7b8081cad5de102e333639434b57656782888b949bc4d5d8ddf503393a494c4e4f5a6a8795aeb3c9d2ecedfb00000000000000000000000000000000111a2e40", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 23, + "comment": "signature that takes 22 iteration(s)", + "msg": "4101000000000000000000000000000000000000000000000000000000000000", + "sig": "b361f677612a75bdf240cc49cb4926cb03408bc2ce1120de2014ef53d990b9c29afae3e1bb5ac4886b30917d7d2260d1ffe57e06c8031c72cf05a831050124c8af9785def0337ce6f6c5229fe13abf92addc0d4f2c652771ec775961a3e08d33c49e58b2ebe8bf40eb7609253c51e2302e1edf3fe73e1f0af7bf0339bfc05918aa7292e8ee368b5a17ea1e333d8e054a75e884934f5a9bd28b64b4cbe88b0c802ccf2fc135888f743d8b7c3635299445a9745c91003e6acf691113605e0c4b2d9b74fb462b3c8306bf398590309d764eaec5e122cc9ea2a535c05cc87fbc1d1ef37b8050e0fea34397276b1db2a1816ffb4b49bb7bdda57127039c67c9af075e94e7b95b5854378f63fcbccd9004503d9b203dc09cbe23d49f3ada9fb8b42e4c4ceb27eed670ab146e205a476058ec4ae6b5b91b129b360aa7cacc16255673056f4d577029e59f688e229cef2072a770761305afeb14528cc34e9a8d491f4ed58aceba53fcb38490197ffced9f707c80c80a3be77ebae82e721da463434d39acc6829565feaba1b75c754240433188610b34b4c68979ee11e3ae0917d3022d75604275d3e279b8b8510f5294ef96b18a9b0a0ba58e5e3bf27f2b8b2e11e49434750872f71df681fdacf63b22ae7cbd7bd32bb43dfb06ddcb80307480a7aa8f9d4923bd163e9e28f147cf0ece657d1f7547648c4f85fa24d8478cbc2c93c4468823064e6fb3e81e916c81cb12b274500d74c3690673046574cdd8811f09537aa6ccb0165dd7712ddcf1c9976d02d96bcf5fdf2cf3f71d32fa81b335d1f85acf3e1bfdc37cc504c76bd774ac81bba9a627351f71fa388cf1189ee418d8a3a253ac68469e5465f0f4825cf9b134046e8dce6c3a55e04df37e45ed74ac3062af50e6c0b543055b872a64b52b8e41704e6602a0f32dd8bf2ee0d8aa555cc135cf774ccc33d3fa17f6b36e534302bddb0f53fd631ea7c21a2fb4e5aa7a5d02aa705a1e03f93aa456c8d411e951fa2a50b3e08d636e276165616e35e9c19bf641ebb57acd368ade5fe966c190b85b03ec49cdd4e87892113bb00d8bda4d4cc3347b63b7092f3829ea1528d8f2d7f6f6a74a851f8de7e57b41dba63eb5b4e1b58f2a0d74b786fce49b501811e2d3c57378cf5d2f274104209aec65bcfe0b1bef3162908dd08316ac116a017af70d525ffeb30f897956d4729c28a166a7287de74e03c2f08c44aef8d3f08406ee0bcbe18fa0a78b2a2bf1e4d1fcd36c0e5f73d6be12a493c2e8301aea226cf40d0a22d3bc07038817a11b2cce7efd33eff94f98f005d77e6886c66498bdd4db6ae236a43227704d04d374b128e0436ae2251c7142ddf7ecf011b256d3b780ef97c1b99b25ca42712b0adc09d15b0454068fcbf5f09976571760465d3780ead0dc479bea5182ebc0d2a750b34ddb1521cd969b4d198b6334aa05c50cf03430b9e4d883a7192f1a359ae299ed0761964029ea9bada7b8ba9c5c2d1e7cfa9b6c0c132aadf8eb9c8b32cbf43548710610a0bec8840e2e4d50520f05810307bc08f13044a98bd8028535c897b0948dc3868023e5ddd7967900fcd7e2035888266339cbef40f4d5c0a6020ed9cbc4751c76822a218ff5bbaaea2f18a969f986d822c1c816ef3ae0611feab89aaaee02e31fcc68a0e120e1b1b2f939ca7aefc6c700f5681daeec6a2613155f5db2bbb54f06dd13dd8df3d8af3cb5ea6726007b7505a6c36fd90e5337100c7162c545280c60452a98a6e6c21dbc3b36c9c4876530945828b5cfa5774ca87d98d04895aa316293826e29125431ce14ed4ac4d594d1296aca183162b2f18527e11571c75381d5dafdd6dfa9f4369a92df1c8fc9688d4d2d1ad779ec741c332712471ba572b9d0b11affb2b511ca71bf696debe1ac2970d79c9cd965738bc1bda546b7db7b0749e9b91ea796047d52b777d2a1df1fe374efb2950dc2f7be4be3720bd8f56ce2eaf54789f47e8872e0ff35ac1c6660afa63dc848f3ab103e9fad918e08f6435dff15d6979acb6240e57dfaf1064dc81263dead04e283acc25f6cfd440b148d95edce688e1228c68432d367f831c78d5f8fa59f7e64e3cf9596067c3acc09be2d932784360ea1c10bf3edfd1d2c21e1168204076ef6d2cbe4bc64f832bd34496d356c8a15102fe4010bdb848e3dcdce8db984cb600060338901d4a5f079d30d708c15232ddbce89c8f1fa82f302da250c5bc7413c048fba006b1f3490dd0681afc01b163e58e00a794cc25f82e87e5b03a70ac59bb3a6c4df7e61d00fe8b4cfeaca6ee5cc0799a66e82ed56ce335e94910b5cb20bd1ba446ffdc22a1ca6cb59f57c1c2a3b303ade78aaa856e513f213ebe8dff52c3d2c62e8dcc43728a4de70b35a754185bf82d836c4e4fed638e37937c8ab201fe552a781a8380c266d390b7e40d990b8c50931de90bcefab04adf49a8b00b0e437c6d9ee02cef02034e2f539df145210b3b85a410ad1de5cb6d5a2df1f9a1c9d460f3556d4079694819ac5ffb8a7db8c907b4ec865e8a86d3a70a96d6ec280f10edf9424b5a01b991c11d49950898773e9c303dfcf1543d6c9cff051a3b9bf979e04be22a5b8cd0e43bbec3a6bce48c4be435a16e447eb5a90fe6ebd917bc03c0a96e594e5d4eecc7d917fddecad3ad65115a0abd176922d99bfbb6fcedb1fb1e1e191865f5fa21361bc0b2f94369ee82d3b7268b4012459952f3f176d437aa79e0b0ae9ea0b0a92d0e4a1057528e2edcc8e5d07817b3a4fe63829835cec1a6629bca69737820dadeb16d32713a9f6fd9675023e60a97123cfeebd27f41bb3bd214730b0fe5e4ffad10b7790fe2535854eda3763df259f0c3214ece7e41857156f51d52054d006032f26eeb48b9b9195fd4675b154b35462c9481c1fcf1ea9cb4f76dbb0c2470f33f8d7fd70a17057941f31457efb97097fe42019b5fec593d7a8e85b10d9ff0f5b8bd23a8e3733275230e0aeaed9a29bc9a99920f36780a91e1c193e706019ec60ccc7ad1c3cb14cccdbea5303f9d2ca0d725a42d99b6e879dcce17cda3ba3a2fc270fa87a3a1aa873acbd7396b6ff5af05e0e54303a12a9b45fb06cf8cdb4b083d544b08539cafbb99143dcf1e92d94be50c724e47d0ca01c0f2615ebf574ed4230020b2395308dc3dfac86ce6dcd270a778f5eb08cfc59fa18fabe53dec9621970c9615abfd503d81483cfd8f355eb2fab47009deef2a50565e7f60f10ed86db5a5cca41ed5faec2d0a699b336c0336674814bf9167de0dc496df0e0bd10150a7dd16cb221cd98434d925850fdfe052c42505153606176828791adb5c1d4d9e3e9eafc0809103449519ca4a6b2e1e9fa070b121e21225d5e6a81838d8fa6b2c2c6e0e2f7001b1f313e4e6ab8b9cbcc00000000000000000000000000000015223641", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 24, + "comment": "signature that takes 23 iteration(s)", + "msg": "ee0a000000000000000000000000000000000000000000000000000000000000", + "sig": "58637dbf77587fbbf95f167d5da77e7ecfcf64359846f5bc73395d9b3199beaf191c67dac1259c753b70a17e7ceaa6fd2d8c42fa736af6f18019284ff3b141085d753e515d3145c1f3474bb91ae7f13de43da81a236b235467e66fad06852da80f67f5618d487f3f257f487fe1e81aaa68701d184fd6d8305fde98699966abba751c06d0433b4924e4d590ed01d1cd775f991c7222d0d9e8e233a92e43e191b215c64fb3b4b129c7ebeac58cfa2c87e94a6c9869e65184e31197416c253746bd0b96dbc8c3f2a2e725acef2cda5453639b99b4dd933d8f584db308cb6669632b20f36e58278c16a1552005c3c994060e4eb680f4fab2513d6b8437d6d4106334892c31f4880fbe23dbb4ce571d0c766393a981b9001b572474d7d6cbeca07564eb25d59475becf92ccf1a2d8e5d6cebd2b4075458b19a580d400c5f190e0b882f707afa1f211d37b5b211a9bb239ecc36ab5e9e778af9b9067da002473d8b185be3aecb4cbb38b94436664cb04b3896b8f9b24e9a5a4a7428b06f3c020c98cd479f75dc4eaee431403b511453b21cabe0c3a1754922eafddd78940182777b26f7c2c4d2e44a98ba542799a4f67ac8e78b6bdfc59c99466035d32330acf5e1ec89104ffd7028b6b2307949719b7f1f45567e803307e9d62ac51e68a8b7f97135c815f2cb6c904f0a7ce1a1fefedfd1fc6bc9e48c0cf10cb9f8b7fe905b1a8d7af80d950ba1264a1ef11bc41b08fe9178cbe7527c3ed3532c6eede9a67a4201f802efa1db2a3cf8350c3e0f8116587fd574f95997b6e2741ca53839e284227736668afce0603a191512e0bec14b14801c43ad64485264f9d9ef926b39f100f5d7344392edb4bf4a9dd351a167c572d63ec8f377e640e1c8d32ffc4d840dfc09780faa5afbfa4fa2bba68a8644ba59993a3f2bbe43372ab402e3a988abee3c0454a710c48339c6dbb5e1f1ef96ecee7cfa19a3f44f2996504d3c45a20555c8f1b9f98b646ab4cf40c3a789ee6fbda35ff537bfc120974d4c22c84aad5a824406892911b9db9f766c61fa9089168bcf6113c2ef055354a5ddc9cb34858c6dd7895951b55b29d1770f66898db795ab7b8b4844592b4332e721b588e62403baeffc9124a5b400ed69d76ac96e18583a54f2c6c75fcef17992cdfb9987946398f87ccea62c9bbf2fb3ab7f91a9d08e344fd0027c3dfdc3763ee12e0bb3fba042afb28e089030a95a5db1b8f9273678973a96c3e8eb26a693dc57414b1bd0ea6e0fef30ca7e7c44f23d4619b25f20e793c757e6d92a3c82ed091a669b8c7f59007966b98a246ed9dffcf5cedb742c46afe76bf184dc44bfaca48f45cb337896d4768a199abf313a31d105d60b03cab598ca3d70553bbdab45abeb4fce04c3d6bd1dc3f5edc0d17c9b6c328caddf23aa364cbc0dddf0ca7d0d9284c6550061c6708ebf07e7fbd582b1169d221efa7d24aa62e05811f45fec80bf1ba21a1f81a4c1b07124a837829044be5db2fd655ba71464d92ab1eadf5d58179cd93fce6492aacee82dc232ee55ca8b73bc5da61c08587db2c0097dbe9269001c77362a3dd874bd8b6d81fe4049eed73c4f494e9dadaf0a568e51fae85e5c53f70634bd2cf8174e92741f85d14a40c1197653c9faa1f329ac8c7f974e283f5bad4d20c821521b2d863f6f8937949534e7d6b9b3133e669b009a12ead93f0bd33007d0e30161bce36b141165187a48cb5177ff96197d4459a38d2566cde9c1e9c0c6f0da23c6388c5bf4ca750ed7e78e22e40135137867bcc8768a74766485196021ad516e7b622c4c622c059bc9f9ff136b834582bc9adfdbf18cdc327761fcac7556ab0a9891a4a4b1fda838ae1c60007fc57d2d6c82b8364979d0cafeaa00422bf1eadc7e385b4a3ecac3311c8ba0d1415906bb19604dfabaee7791799fe6d6dfe929e895b92bcf24db40f32441c7e10965b55942a12c4cfc6aeb25131e58d28628aa2dfeef0119d8d531bbd6d6cba7f454bd33db5a57f3483beecf929705651ce7889e1174e4ca72cd408ce79010faef6012ee8a4bde5380c5d8b0af7bcbacef40fb365dcdf60422d6da2f4d7abd8c5b2f69be2fe03bbcd0b699262be398d1811cefb34f8b29bcb5d294c0643905386b114bfb5435aba63830fda9fa387a70d891263dba16010b796c1caf9f5ab58db2aac00f0947eeafd50cce1e5866b7dc4546eb3eff0edd466343fe916931ae752e53926f1c410f99bc3a6dbb03e6a7a025d5a8f1e383e2ba5b365dc6e9cbe2424003fd2329d68dbdb7b688eb78596d6570b2465eed9b52c1440acf004a9f02789df2035988198154ad3ea744c5a05bfedeb7e5b58d548ee0104362305430094dbd820412396081112696a6851018577934eb3d7ddb4c58218e9dadad3a665d6930e90ce4a56b68c9fd5b3516da4d3ed2618f60c28aa36921ee624bb6828a39d4564140a8dbb33a5b9469241fcd1e53a78edcf7265f22c37e44ad27cfefc8eae3d5c92bf40448b9d1a6be5be272ba270422e5716d57dd0e4ab515fa56d290c477977076614fa3701d238e6991b94977e550385a9e58dde492be5d9056018cecf30094ecc3695bbd5b44d9853536c15be0ab52e2a517d4b1d7fc98b5255c56a385df45374da6e922c38c5c5e332f5add0595f59ad9d4df5eb90ca5e430b4b7555fab30152db2fd94fba656aced35b443a5786c7788718978249622dc00a7e72f6a0efb3ff5a15ac4bbca60a5c732c49b77a281b17bc7e61dd4329fb6808aa2ed0bde81e4112582dc827c0c11872bc37f0ec3e373d880e893e8a3201868a4cd3b4132fac73b8468c93e4f88a59050ae08f23e6df1cd1f72d24994537e8f0a49d5c12e7c3dde1943cb6b162851236d6ef8a7beac439612a41ffc1179d677cf4d926074e5ab9db9e034f12bb31ab897d280c10c737e28db7df86681020ec1c2f1b5e2df28ce92f74bc26d6660c9fe34ce0263fa097b5d1ad8f293d9b5697b8f741ad58e72bbdf5b8ab202f148fe47c9685d2c569e5206102e45be292ab23eae717c2af4b63a1689e7b1f55465447a6faebb58d11d876e4eae66ea86a8a66d4026f6eff2ef3b14de11df3c842813a408765b89d4c6c877354706df9f64f82b48a78070887161e5c55be09c8bf2850351e37bde2430e0fcc642e960e089095d792a8776bb353f6b3b6574ec4403aa65e4e763d163d17d2be49c92d9c55cdca4ad705b230db8d660f7acdc842a0edca141d6279b8fec8b7128dd200ad77e8e51cf3b24cd1e4c147ba38628a31786b443b61fd70b7f21126a12c4971070a3c3f434a66707273a9aeb7b9d0dcdff1fafc0108182740424e505563686c868e979c0204051c1d30525d5e6470858d949ba2b8bfcfd9ebf301050e1720263e43606d798b9badc0d7e5e6fe00000000001222384b", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 25, + "comment": "signature that takes 24 iteration(s)", + "msg": "5d03000000000000000000000000000000000000000000000000000000000000", + "sig": "e933b16455c6253bca36fe046cb8340a78c1b0d403e85beb5f480d7996099a1322c44abf94ef716801f57106bd5d53ebb98905f9aaea5dab9bba5fb1c62230e7600ca34fc02f84dee1b5b103d7f07ebc5375a9ebd30a3876b4732bb9653fd0d44c0b58c1fa279b51f737c3845df5a5190dc1795eebd1d1a248f43608aa5cb3e165840f9f49d0c77a7d0142f88da6cacdfef93415e2643c234a9d49d513f3f4e5683419a530a183b556a22c62f93bf6228e96e9a6a38d7815f7a8e5a88c0a89affff0f5307b7cf818ec7cf346bbdef6ce2d3b45a85fc88e2174abf2b9b8c37cae2123391742edc58664d11456430b761934bfe3d7cb0e1e81e39941a8d285da0b25327486ca2c519bd7c4ccc30b83b78849fe9b4ac0ea96220895d72235b74437666e0c2a46dd26b2e3dbb8c9c622c2ec3b9afca0bcf24fa0dca4990a22c3c54f2f669be5ee2c153be6d6d6756596fb703e4c1b82c36466499d3418aaa7eaf22f08189c6524335730b37284f09f260234869e29fdf9fd925b03c5a411a5d58b4f9381ddd76b938e6e39ffeb27c0c4abd9e9bff25628bff90b5972f1a6cdb3fcc948a2f00366ff626f869e25c519cf17c0cf74de57196e0dd3d2cc3b2d1d8c036e907e3371491a3d8a03ae7d78d5bd5aa658d0485177ae5c903f13513280dee7cc9ae0a3aa1b9700cc56074c7e5a588eee8bc2cae18479457227910b81903234476766b35bfb4f2759d871dd8e17fe75ad66c9862a3b203eb7bae76474c8c111d1989302e9e3a03a5ffc20c953ac09920958970962d7f31eb675183044c72f0c961291537d38754b8510a616c1418ca652819ea17ddfe2ab5df48196deaabc1aa35004e369fd508a313de6404c204115d636b1bc8c90241a4bc745738e6a1a05b6956e6f9b506cc7f9c7f39b6db23bfe3b2a41c5e2a450db1b88a85f461c1c00be1bf1b31225a6f9c2ad64cd6716cbba800e3807ca31b992aaedb25acbc56bf3e9da0e2a14f5f322848df18189740f1a1f157e92c8a1355c3e555705ea7b3dff2c2d66ee525392fdac881a3e66876fb7a20d2a5e78f539c791f7dada7142c773539fa5d5fb492bcf9bcff541d3a8bc5b6e207e75145d3cfe83fc37c28070b59c6e21fb02e77c26c5c7742674317fc88fbf9271c2b1eadce888df403c76518701fdfa7d329c62fcbdf36165927a525e8c69add76d56246b9cb0c779de76b7492e397a388ee6c7d4a55cdf0b0dc3535e71776f9f5b65f5602bc0d132daca64cc3fbf7bffed1a1d9408d66a2de743f48c934918d2bc373ff06b5a35492539e8fda4bbbbb92c983a4ca4623503f9deb101c22e9bc775386d3c911a844b20fc33b87e6a1f252e2d85720b3db8bd85eb0bf1c38938bdb1b3f20622f8a2dd1a110866a860398493b3f8d0f845aefbffbf5e9e37ea55b7040635c1ac4037a7acaaed9ffcf785b12c3d9ed8561e4f1c3e6b4d7c26dd9c126d5f2bf11ea266dc9236f6c9b3edd193085daf8e0ee06306d289e98cab34236eafd307f5b0a8aeba86d33fb69d7695ff7f5195a7a0a6e9a7668e4df7a8ef00ec18af43ac87e0e1f41384dc4e82383de41b4aa3f016c2e336a58bc0131db65a9da2d3b8d933ed4fafadbba5159cca716aefa7f28c2bddc1d777a7ea68d2a7481ad1816ad4f010f6db66f90b3673bcc6a2d1ec9b4e31cea4234761864bc0279ce7a303b5d63cd5b7c3afa270c0a2d558f3416e362106191e1035fc9b519e2918650725168114de711a2144012e0223910c487199eb1d9567f0d23a717ae3a76257674d285d2363365dff15238a90ffb53d4a40f61f08cf2c7fd5a67bdcc8a364d59db3fd881684f6a304e6dc26e235dc5469c7d0761fd57841c77ffc9e72c3cd9ba1b49ad14931290666d193247678449eb8f0fa8799112d6694c9d09a786c627a3529da65d9aaf885739ab2503bebbf9ef3d87b2be74e9955f991cbc8b8131864075a0a5b735ee3c99139102439540486f90cf5570850d72f19b9176f43613fe4361eb7c6234b2a086f0e206c6a54f24623d01ec7af8ead44ebff8fd3d9b6101d37a2bfb225dad92e66e7d5f54792bc6464320e4fa9012747ba5456b1b93dc60ff03bd10bb87c1a7180cf9de7e47799e2b5f457d30d7edba8f5642799bb7204956610c2f1ec6077ddc3b6220c7f69acc1ad196707e0b53e3dee2ec6a62942475e0fe1feab13fb876d198dc4753d5999b52585dfc47b53b58c808b2b5489f4d2c104c3d8b278d6e138243beb5bd1d01db35f2eaeae1014f25542fb342b93a39490694203e4502521cc83125621f42cf3a3fb025849c764d8f18bd6c64f7488d3ac491eb83738e5d78693532f87f5804cf485913fac616fc45a32cf9ced0e46e0ee4eb2e7ff65f613d8b27542c36b3d2842c920fb733bc6033c3a4deaebcd72fe6604d7b8af3a3f63702586b4f23ec335e7fa0174d522bb7a613a2912caae18ebb100941ce67068fa2200310402210f69ebad897e3daec84dee782b856401a0ee32b8e7ea5610e8faeb98e90aab69718aade6746addfba97c620fb53ad0d775b8c9901445dbf5282892106a399d43d849d056b547880e7d71f0bb14a2d221a3181a56e1198684fb681b91711b9b13ca6028e46fd63d4818ee09435d91d7accc1682529518180bb1bc5118ba1693c98de5093b1bd3d9383a7d48930a4f9b83b5964b164edbb6fedde9b353001ff5053d5ff095a8ae553f0b14253a88bd6b8be07d93ceca2a0819292e56c81ccd60ab874bdab701a0788440c3599563bb2a366cf3515a82deebbade7f925e578720aabad20b5113dddcb1aaf6ec781d22034e97e635de5322186e23b512d3ad92fc33f57e6022232351351f20f925945da077f0ecd71af54634d68fd6bdf0349bb3075f5f80ae5baf3f6d239b8cb45d27d890d8f8732f6f73f56ce1cf24003759deeee87f9d35e6b9cff3aec21337a145afbfbcdf1c78790e8b4ad7b58d57ed9d3a659e8dad1b890b8e9931f6722990ab1460847a24d057a48b528cd197951c90a51708aa50cc12bba0f4eaf883939ec379c08eeb6873c49183f268a3ddb91b6560ae7e841006699c822fbc89a94c8f33641a6904d558121968d8ff5b15862abe9066909124fd6a9a7ad47c27288d26a25d15bf3209a1d4d537f2834a1edc3f8d10cd3840f6ad4c454c4819efb8716db8f7cca24a71c964919e85043b5a91422b310b51f0753c03da82f4637bc951fdac2c5f5dbd5059741ae704352da382a38d2d482e2817675e8cb4335e60f9271b4f4fb83376b4b089c1d5995951ab75efbb3eef520f1930314a5fa0a2a7afd0d10720444a4d52545895a9bad8dadf040c0d0f195765717f8485abadc1d0d2e21c2e39485d5f6b8b9a9ba3b7bacfd9e8f0ff000000000000000000000000000000000000000c1a2b3d", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 26, + "comment": "signature that takes 25 iteration(s)", + "msg": "ad03000000000000000000000000000000000000000000000000000000000000", + "sig": "acd1bf2e8f5f2099f700766ed72ea9a49667d9c28df083ff64dba82a989f3d2f2300b1f1d3ba0e0ca55ce183c8b1717c11b32bd5d2101d08d01b9b51c725537e0a7fbf15999ab50348fab4f2a1efea5c8843a3bf0355289208db2c3471da7cc94ed02787548391c71539171f4b1784c52368231b993aa8b72d0beb68570b149f9be0d73c9826613eb0fb41c2bd01b9825bb634e33196513c17f474bc926e15cd2afb8cb16b1f5e2c761513e8ef55c29cbb4b772f81cb7c68fa5fc0fdc3ae179bc1ae1c5d53e20277725168d4ba10563c976f5f98985b9387b10dd00231588d7daffc0d9f79b2f47f5906322198763f4bf528f91e296da57155065190394cc714ffda017216d70e00ce69d8f50938e5ba5db268e11dbc8cdb1de67b357372e1854dc52b34a36c16e8f91bd10f0b3681d89209b45bdbc64f727a7b435f3ad235a56c05bb1c6c3fbe3793ffa6fa68a5f3d959d9831e291a3589ae6ae80aa918723c544549c4a1bca0f139cc9482bba5a17ac31a52243f55b5e77f63d83c7ea82946dea8b0d1b956856556832abd2e2fc50556b27de63f362f0ba47d866e006fee29a8b5f25b1cdf74dd02014c675ae35d57f16354fb3d0e940cdcc64eddb548d2e9b08d60494229b1875168699c13ae813319db7d3959e4a48ba7fa2010a65e235c3a8b6243c3a7b740969b4a0431f610d79469827ec3fbb45b30b24c1a488c12e5a2acdd113ed7d2af0843e617b8c4a750cb806517ef3066028c575e8ea45e451b0127df7da29d677faf09fef7f0d46ac0ed6a70eeb07cbad4bcc90f231cabe7e6e8e8eadd222ac129e22d364f2899b6e7d5fae0f8298ac07d3cbc687ac7fc6c9d2e46c7795b086f23b88065a187f0722f463dcc89885c0191a5a60c8b71608144cd037985f84a8d971ff792c24e322c72aa64ea017267f6ef278bceaf0f7057be97d31cfd0659037fbc08f3e4cb0647080a1c56bb72f197fdd4de814e8b0011b55ca758c28c403d3121fc395e8b9f0b9297b1acbcbd7657ed1a6b961eb0054ae8b24cb919b311b5896a7b272986b467edbbca0fb195f96886ed6071ab19917ead74f2faeadbc931f84056944757f2deb1aa53cd6cb64158e23e27a78aa31490736902f842ab37d02a74d5ec655e0f4c0348bfa3c87b09810cc5dfddf58f1f9dfbb6b203e571849fc37bb37a10d4e459520e660f587869f272f036904a0c83bec318cf611322e58163880f30195a90f9d645864c65d174113efcf5f15144321fe2455eee982dee21493d28027fc92da269500acaf844aace240d14ddb3ca18381e73b6f8879a2ce31fa32851b5a58c5280b70e27c87d19ae0aff5603acd9dd7265a1d6adaf66830c11c729d9ec491f04b2944ddc2d051d3c8d3cb14bab6d36f64c7f09d309a6b52113e71e3ce9040b06272873656b86b5a91d1c989431099bc4eca5ba2c6efb5c57b66c1b90993b416a0145e05ba8652c7e750e56920c7c0071439fd89d8fb1ad15e24e0e6d596e592e162bfcc953c0e86ec7619cb1717d08a6a66e8d18c9ca7234a2bebe2c51a1a2f72b65827ea730d855976a6f1e782611e4d18e16674bfcc1bed4b6805509961ad76583d982565e5b9d9e71b2ab9f4d5bfb163488d1dfe0f7df977f4fde50a84e013e57dca45be479c74052aa3faf858e4e1e90a52243bf155d26ca8bd6617918f3de814d8eebdbf9a4f54e203e23948918c8f50dfa2a8fe8b62642e93a3c85c07d2d17345f37ae0e219de34fa9e7f90aede69510ddec8c6ccd7df0ca6566bac37dd47949910a62b6bd12d837350c494ccd9595e661fd89f8acf2dcac5aeeffdf55c4889f5bd29e19c127a9d9300fb3659ec5fc3ac7f44cd0774ef514bb226d1620682f1a875d21fbf61e9309757c18f72416a2faea71e6c6a10bf72502416840ed43c0ee090ddfd72b7f89849e7accb660df48bec68a5278c2e11731545f29ccd4ca87dd6f39da54a488c0bada357c5732f7621954459b688f2410296c8178c8a0ec65e77d3764cc88c0ada6064191b4c806da0149da6ad9d04ca7d264e76acabb93970a018eda0b1f9080e2403b80a82d58e1ad493278e06bf9322d1b5851ff4712b44a6a9e4ffa3e79aaa87c2acff7d4b1c5e76d70b8d3f5c90369b95648c16f2eb719985ba660554f33a6db190dcb7b4f540acef7d6e22b7c7cab52d4a4ef55d4893fde58868fc8fc7e280b977236d313a4985deedc048d7128cf537107e16db2b2f05726d9efb6dfc07a4aa26ae426d3a0b7b1b516af56435213e992336f564583a8dbc8e04b51b50fb8065b3c69811323743994929c578e91170bab63c96f08f9f0b1db12ad6f7b759f8a96725299c9d5d906561ccfacba5f87039ed362e1afff39ec678934c6a277729373eae071fcebdbf95bfc609341546c6fc8092c7aeea4e11d98cf51b2bdbd8fe481f7aca3cf25ce567f10ccee4ca51757464bb03efeb073aa982129a369f606f1073bbc8cac7617acd522176442bc7b8fde29aecc338d9d7769990cbec4ecf5a129b115871ff374701de7424fc9c29bbbea40e6e4b69566eb396c9193c300fc4cd19031c5d8d534cd0ddbd01f7a7d783e8b3ad6c90791a686f168dd81913059662587033750c7f61f66681f072a454798b6753a3e9fc38bf8018468632c81976120b338b5cb9993725666d95c22c387ceab3f24ef42069d35968f2ae1ce31ff00492ab27dc262486c6568f4cb826e34afa9ce08c81ac46b50d0f67fb6224372b1976acc2604d8034ae120dc1feef260331e0876e90705e630effd08b0f9bee47a853fdb2c7f7f13533f4b4898093bccf8b9dd24285cb82ee551e1e56292bddee0735c599a76b6e6f32c520e02ba4d188fc35dd3b75e5208c343941274d2d6f460ae8adbd5152ca3a77159b3cdc2a4433baf5b738a281b6b75fae54be2ebffbb6f258f4c17b6976c465ea177f44a133b94d714e75611df5ca1f020a9856894d8b273c1501617dc1a41bcceec8ad7255d7fcd5276d410f752ecac4212dfe9923d54c9ccf26f2eece1b6d5efaebb45f15e163a4c409a683fe03610b533d496c70a89f645a3e20483c0fec39d29e2a0556b87cdaa13ca3f4a7a634d1b13523247ccae1daf2a7460e0e8ad80512789a9faeebc8e0388564adfea3d610aec0eb588b55f18a7b90c7b45947343d28590fa9c1d72365acbd1b84ddb02eab9f3bcc68a04e0989ab5b5a4a8fe28ba64be5fe8f888d8df7eb300410c3c647368e94854b78e9f4be7f20f63815d5143b188b73fbd19ca8ef73b039df0a5374a39c4c5a4c935e23fd6f95a1d07434c54565c5e6c929eb2bcd4fc5263727b9094a0a2b3bcdeec072d3f4a61727c8da2b8c0d2edf3fb1316285f6165758c959ca4a9cbfb000000000000000000000000000000000000000000000000000e1a2937", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 27, + "comment": "signature that takes 27 iteration(s)", + "msg": "af08000000000000000000000000000000000000000000000000000000000000", + "sig": "9143c043371f0459a32c4dd1a21af62be76fb9d5acde67ebd95235a8767870725b134b750b2bff2fd3fb87afa2a2ef146ee13293b91a8d2ad6f302eccc855a25c5270c8490e61e8784ea71f9194fab630e43c0054f00f2ae851f472133a44d3f9725356e65bd36c6c62c367f14d5b77f0a7ca75abefa4ad991b7bdebd88625251cec737a18641ae97c599ad2b36b1b0204f4227f4c6a7e5629ce2255322bb9ed0605071ceda2a51ded0eac4c41ac20429b6dff5fad203e8911764f007d32306b351e8ff85db87ec095b597076d11dbf0b154303ded836813657797a3406aeaca527e711a1c8cf8f7c60135dbccd73662580d9aec0c933827f793bbf58faae50bd27bf82d5bea6305c98217e040cc236fe55752c52c3fc73db2f35040d5bd71c13a732343bbc1a153af7998e95b65e2965b4a968e0a502116f30fb19d87470a1189afd7ed602e8fe7ab6f83b5d2ec3fd5955d6ea30c2934c2f7ff468f84e6a3a4bcbbf415c2457a75939940e0f00a81f9b76ca5f9046443fc59160540c0b277884caeeee894d0f39e63d25d2fa1166d3fe734aaab7578957841288e4bd61772b189e018ff08376c1c66cd4b52a033207d5f42e673441d3b3f2a876428efa8ff7bd9ea5161b96b1e775e41284ebe2eb8bb6bcb834aceabd9d16272e5f5bc3c67fc0beb3d33158307b68aac6d8b0b32bd0604dd0705af27b298e29752205725973a5b0f1c0ec44f3577eb5f63b1066ab431e4a1c2777a20a2022ed0e7fd91b9500586a1ce891bbc401d2f0366b7db52422fa164d1ce9b0d866fcb32a84cb0d6f80c35a67afe4e85927702a9ed93bdc4c620c633c292f17eb8f4a86dae1717a06e1c3f71a4f892745a5ba89b4e7315a8a5900c40b9b5c9452bf8a749a13a097fe01956981dc1c430a856ac049760a71f17007d8faf270a7fc6e2ec1966c1273553006e7ecffbdb28100996bd304032fd5b986bca0fe1239bbce5e6950e207d3f8e8f4f4a2895d2a4809e2f4de63a28cb4716dcd945d90e00874bcdd61392bf1688e73f46ecdd668e5e5ae3f8da4cafdb75c0e8bb4bad162613d60326bd4b5c7ed4c6f60554ce3fa0611d1b540ea51f95cc2f5001d9ea8cd1ca43a6dfde1148b60a660dae20a7aa59e25a708c0ffd127daa6b67f86eeaa39ca4c2044e309f59b2564b12fe026e18b46ffeb9270e663a7dc259ac0f075263d6308282e3099ba42e82ec3f3f9dbf80f7173bdaa204bc91d3d0a3963966bd61eaa69b8c77d175a136e577a8ab0e99a1096a0ff810056d9e1ed91f57b3e3018913b16cdf7da6830a7378a8be37388b46484c7a691162f6927ff67a7bcbd82072306d1482fc00599aed92ac570c45c3550eb8ab2aa4979f18d033e2e7e89eb865a7dbc44d282c21717734207991cb496ecadf1fd0eab0ad6e27afc1e99a34ff799ca361daee5d77ca0888042e9e05fd7d7e7da2d1e94a68735a43d839c7e4824a807522b6c996d303a8cd5263d8a2f761992483fa0d4842d853d825c19215c0dd907764513c37dddbbd630486a3842f0cdf3ce305347e733ce0d7811befc09e4db545836f916eaaa01f994092aa8f88a2bb48dfa26caa3ecce24aa796b262ea9d0317c0e8a8a06089c3d0b7a13ca53ab14d2ae6f947456d778ed4d05bc760dec6880b12fbc7267e6546af5c651aa31cbd4b25aa8d8a24b710ef5ac4fd9445988421ab6c59bb63025fb7feb1f20896a03fd6f7c994e76d0f38dc86d3378d5f96a1bbc721cbff6420e9d1b9042c376920d54c9e30445af682a456a7f43790aaf63ab588d6e36ae3c97e06b882eba26cf115a50e6d09a6fb508d5515b2837dd7cfd4e91b22a1201f31c5663644297119838e6cc064d2daee982fb235d2b4129b20221b5ceef9649e46963a7648c6cfaea024652627634e8c71ae07afeb08f2f8ba06d751021f9dee594df681eac6aee6420ffe4e904f3be083178ce218aa6d64bf32d9bc1210369c08be85492d4f0f43f68a4aa074fc6ec2beff0fe91c27a82297b29660be6a410acfeb2c378da5375d829d985ec500d644cd42150ea41c3f76c4310bb0e971504ee59586e8055e6fc54e11650ecb896a1a5a26433d7185d4a9bd0e55d5c99c4908821c4687c48c5239a9493de73a40c1b4056cc12edb7fb73c43901c5bbf8925fd3ceec88a3664bb04b7a9404e6c0f376131bce742baae786a3c4f36684341fb84cff3f9f344bb5934021a4c541f81165d43f8f00c2df4c7d5f762e717023886a96ec533dd844a9126e52ddfe08ff5a63b83b529f4f14c91342f1000a697a259c62d5721096e1112707f3f66f75ad87bed70d706ff3b0a115a5791f9e44a3b497bb25352f283f03dee9842452666d033026b8baa4fe124e4f3b6a56b4ed07707b00b7e414522dcf0dfc7d577d066b827a1177b7bf83b45f48342ec74c7aafaaabf5f46ad9ed08ea7caae9f40d53ef49fd7af23a369a8b5730ac3e4dc7423605817074a5b66d95b5ac1399c431b9d0a2c8c7bda97b4470e1187b6af89750c2314f14fc1616df320d10f509b9c4cd48543230197ba8339b586fb90754114fd66e35d7bf768d30939fe6a6c182ed2fd79639f8352d345cacbdfed32ee6321be511f3afc53e6bfebe8639e5c863207bede0fab508375988355963b9ac14e4987818e31e305ca26a2511d8262932c2bdcb6f957d26e869f2a7f80022ca89c6bcb4a153515cacd1f49ce6586edf41a7549b006bdfc91cf8e5bf56e82176d17bc75f641e57b70de528d799c861b051792d1ce1abb310bf1f7b876b8174ae4495c63b1e955592fbfecca7f9a2d3b2487dae828e0e4eea581f9f99b12a1c75607dbbaf2ede93e4a16499789a63f30a0f84dba9d42c3ee4d1a9a105d164dbac7c522dee68b8661d12ae52470643959f1fdc1c8563db470b551e80a228f9789938af1ffaccce7fa7e03dc850fc1cdfd9e2d7e3000caf9e5ac5946d4d25d2a27409bd5cfb955e0a8e14eb8720fa067fa8efc1a4eb402c95757167ee5cde7bb96c3ad0a7652761c134c520a05ab03dd4a8b86d12e913516737c184bc9cff0ac9f6eb6fe4fff86e50b90e84e68715b7cb063f2d2e8c2e962a964da80e12efe966b29159c60dcfbf0f2be383012716284eacfcbd98ef906a67581400d35b0ff4949b0b2c5a4c87e93bd1d88f29a7c0c9fed9dcc4158e98a271af97196c9047d175b97866c6c9e3d1dda2e719033f6182e2638df8689d00988bebb13ddc41a9de283bfeca7350432e69cc596ebdb0b13d6236a6bc7c6b22625b61173691de9d10ae6a554aa3dc5464746df3700ea13161a405c5e6c89a3aaadb6bdc3cbd5010d161b29333744494b576a8693a6abb1b4bccbd6e9f6ff111822394654648aaeafb6c0c7d0d2deeafc1012254143454e608c8f9c9fa6a9babdd2d4e2e9f60010283a4f", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 28, + "comment": "signature that takes 28 iteration(s)", + "msg": "4f05000000000000000000000000000000000000000000000000000000000000", + "sig": "30c7088f7dfaa7e5cbfb966a6ee891a3917f5e6c9e6d840ca34f225c85819c7f680dd16a4c4b8b4a5507e321cd0f89ac69a90d54c8c3accef5257998f4e70d9f12a52d942d2d0b7876b98762f1c65d9b74f3c4c2ff70a1813c5c9f4016efda5de1cfb8e8154870c7b51b32843fbdbb70c675135931c778120f807a0f13a2bd4e0c7bf2fe175398996ad3ff8209cb812957044b44207996af8e3a2ad0359a33068a7b69c2af5332d1f99e8cec126d992dededfdd1cf9c6cdaea576f45843b1cffa8a77c3efcf133f3bbe13674ad8b8995e1abf81b3114ab9899b40a7a699e5c2241f5e31963bb293841b8f5056c052c44c0072d44c68c185dbdcdaa958429712e212ec8c7cb95c9506d26b8fc8cda135aaf43116f866d7aa0cf9122e2c760fa24e8930bc21a6b4bf4a72c18011ff5a4a3b4efeccc4072fe451d5f930a8692848787b3a4f305d132463659eb90766a74b397509b0766ee9bc07a96988a2c21baabaeb1006008ed775924b8899614665d90f05f37a7b2e861dde5e2ec0347319f2de02594c5b914ab779a050494de78a4e1cb99df621d37cbac0650a3b12951c5f6c843f192aee00a1587fccbb2430638171d060190ef59a1a3b2e79c5476af8f417e191714c6a883db294645047410fa00ef8d7edd7c189a8be63da484d8f07c071009fecc82566f474bcd77cdb591b7eea3986cf0d89e23531737d30fe372a3176fc2617b26e6690655959ecf9b0afb9fa7344bc1cda6ae9e9de32eb8dde559724300529815902e45ef0719ed27fb251572f345fe143de51943ef0f9fe2e3c7fe8a65132b7bef30a221ae84807c54a854897638e3af00915d6052602c1154cb3d7bd28bedc1eb6074b4a54551e55af484eb59b30202eb4a41035e292f82f548c7fbd8308fed9c4fea79d4bc9d5570972f8bf59afcae9754aece6a6b86938a5085726c6b03e150b2dc1ee03af5170ea7cc11f30ab7d50410da2cb8e86b797cb4870a61ec30bcc0a92044b2c06f3c40e5a82b31db3e8106014668e42f1b88d7ee3710b8fc34260dead281fda46c7f856e01cd94a141e36219e8117f123a447e952e8e21640329cdf5c738d7cfb90f0b74af5656b07c5b647eb847a1964a530e198edd57e3647a4eb09c0947770f23ecfa4aa2faadeaac23a4a75ae843360f1c23df3af3e335f420c098e2d22a858cfeff428cfe01eaf88f7a82852af89b7ae7982b8720f50374a2a02cc37599f5641a901610748e94bb410af892e5c160851f6d1e8bc6522861c9b887df9f3bec061fab89dead4492aed3dfe5647da07dcb3dc2433784597dbb1848d4530bfdea390dfa701c41276f9f270325185a0123e3c66fa76e268e20d305ef64d795d84bd5ed67f8ebf869ec868173cc5d09497cb6d5c220f4ea271861677025643e55efe2e379c022279e45207f0a449ff0ac58ca5ca3d1114a40877bf3ca663e028a3482db42033678b610173c6eeea000b0f208457d95054f28f04cf407b58b69135e24912205d07b6239bb2b5970c884bf3eb805cedeb0401b53f7bee3f56a70a935700d0899ce8adb45a112df5133d848a9b3e3f1a69a68f27ac87db97dad4f2c31e163d33fb7daabf782267c6a8f7f1c869e1e89630a630252ed6a4cfae1a5f6aca2026356be8ce8d4594632300b2575c19801143d941f5933d971fd44c58611993d819d40b464f4eddff56a9828b72480aa9038ec0708be3cfe5ff12cfa1d0d025332d94e45b8290b35c62474e5bb6118f03e365b58013dcea5a21ce8a571e89ff940947a0c50c6ea9a00f9148419927a12db9c67b3af6fc3ff6975b84f7659cc03d23d2cbce94da20f2fbb04cfc479da77fb035f9bece55d29a880a61dbbdfc46bbf56797873dd180f484a48b4960087f0cb39e1cacb472b427910202ee7d229a682637b8dbb285d9807d46300c42c0807740fdf491455c53dd3a3795f9f216674bd0a1451c0762bef93596c1d75499395e897e1d37d0a468b1a4ef05bf8bd17b1696986c06314df2014de09dd69af4f2917651f0ae8cbf949f658a88ac84f5ca0d7c09075eafb159df4fc3a7b229b0da8c163be2088fc66169a2455f5c3f3382c5c37dc6e2cd3e57ae4dae8d218ae9662432e3be985224181f5c737a2656dbf53d02ee9a272a65b6d463073e434b3d367d4dd729b55a3bd5b018ffdeb1794c68a1311a93820487a3c2388d734267de7e17d0d4c01a42692fe11ed759b75acc497ee8d8d7fd1f156290451439104597c2075a226d0db93e12e5fff1298d810543bfaac6929e50052cd3831109e2a64b4c81aed6679f2cf7b922bf0c852e9dc7594b03726b59a7252b50e1cb680b2e9e45d7f065b4c7bd4be52c629f58b6a428f4a25a6278aa2afffb7720c1fe7decd45ca66a1bbb3d5ba1449ab10f62d425b8d6c0b6b0c47edefe98e36d7e6b9d56a9ea82dab8179c7997b6a521771b3fbcba6ce22bd52f54955fcfee4027ca1c1ef65af9b3fd223c7dc1a4468d4de47ebef711ca8fdf47a0ec8ef7921c48c36f981a75bce0eca3e6d479b72dc3374df3142d618c090d054a1c82600b06e09e9257e9867519241a78c15a56a7e74313199398774796733cd9f23269cf3f524d9ba534e05721815c702ac7138c5648030e7daa49c246990c25392dbebd9301b3d3e266217a2a125fcf276e76cc694ddb5d2b4504ba60941d53d4f856d93fe02f3d58ddba4697d1e47a02ec53b170f74c4307ada425b565db02d516e9974d3aa2c2419b918ba9b15c919894c5b562e3dcc1b1af931b7dc926364fad271e68aacf205496aa3d4ecad41c569c324f92fa11f2202b4becdf2e4746098e1dc53cdba1b26e091823b2bb42e7388ef5f1db26ddda16f6de00bc5d55f9e9e37d8d9bffad8561f8ef37b8cf75b099f470c520417e7cba150dc97927808cdf547393fd02d1d097211b48ff074f01699a73a1ee54bc4c86edb46dce6773a7567fd5162fbe8bcff3894e7e69ab5877ed334c873217a363db081dd74f337fa2caee6470129e924e7308b40c147b41f39b62e2dd3ddf7cb3a0e4024afa469ffe9d8039157596437b46b9ec9a21cce16fc7759938928905c9e5ce9a7741b2c57b47fe10b9f4f4f5d4ab9653369b785ff0b088555df8565c45d9516649473b6a196a416de96da039ef7246b1c189bc44095df4408032e182300097dd64b076e924252210d35fb9b095b9a2e3ff8d7a303693970111ca7d8a36e1ccbb3e518e9b3fcf00b142f8275f4aea3f4f2b8289a15d766318d4a23b907e9b9042748d71f7c7a73ea45691a5146baad46c20e48901c1f21303e5257778290959eaab5e5ef10232c2f333e3f444e52787d8c96a4afc2c4cddbdde5f4fe01050e384a556d6f7879a2b1b2b7babdbec8cccefd0614181a313234393b4b5f738dafb4bef4fdff10283d50", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 29, + "comment": "signature that takes 30 iteration(s)", + "msg": "9405000000000000000000000000000000000000000000000000000000000000", + "sig": "86cb26be7d277b1fdbe00f059585c9ab70be15456dbca65e2e14b7d16abaef8290b6a4ad877bf8b5baacfcf204819dd0ce4c64912da198c9fa9d1f8ec6ad05eb3f576b04596774c7381a3c89b2a56493bb1edd47b48260245eacd0338b5d520d0dc3d5310f7911024a8fe84edc57803c5c8964f3168190db9735ff5d345bf808d92329dd13f02a6cf60a1b5db1d91e9f0ff5b4ad0957f80c22e62fe6b868252144007bfc3bfff5a0199dbf055f422e61843ca2f781807236d8c1752df6abcad25ec9902bafd9e57b9e397df1346b4c5c7465152407fa2747340a65e1f7cce93d68fad0ff5a0b7f36b1382326735ef65b3c04e6c723510ba1e134cfaea34c40cb4271427b626450719f28fd02f490930a4f8a35c18e5ccd2480f71cbd5ab1b737e1eba65be3c9ac4acb63fb74f9890f63f8d2f4b5ed8b2381790a80bdbaecc23dbff26f6ab926886e54d01ed963f00f28041ef69407aea65817af61d86cd52bb639efe0b6259a8c4b75aa2008d68ad0da1f656d473bcf352d0388a544f96c5c641356708c4f7852275780f6220eff86a54e62db43de5501de384cd44ef95e60489c47d7a1daf9b84fa3e47b2be3a2d9778f635814b395700cde786368e43a8641f19b32b0ebe8fecf059e57e96ce28ee08bc0d71b1ed8c9a44833dc62760769a9ba1059a988287be4d79939cddf4a65535268a8e07b9d5ec8f4cfe84cad256eead879602724e96e852485d253ff1521dd6ccb13bd96cf53984797b5f3c3db6edd3312969db60f8ce0c0568514f1a3e01969f23d180e47cc44ec81e660f083021fd44794835a4df49294c0cd9ccae6e81eeb0d50b397e5e8b3c6a49b59aaee3b522e7a1ba53d37e9ab0b931b8b6737f4c99cad86e16e2ee1a26bb9fdd08d1462a77303c1f03e8ef8ff0b0cdf77bd246aee8bdeb773673fff507c93969dce7af99f32e64d9500a7ea77d239ba1555cb684c8be8e872cbe38ef15b20d9727de4001c3cc2639ad92e9adba5e145ca3363f0d7791565293e0b2267514e9c874b665f4af452ad7af7356422be1c22f108adaf82614bab21942f3c61d0c3ae4960cc78bfb01b8aab9ba45da30513369f03c18cc1b4ef96798646349e2d155323e37c45bf8041e0ad852926b2f10d89e7e0326e02698071026fd5bad5e3f82f6b77c3d0d4ab964284ad99dbd1345ebabb8252e94469e4b903d6b04611c1cf63717d72df2e1a597def8e74a34a3971cec9950b4a69340d943503d2e69a70afe6d46586b27b2c6eb71b39383a0b2b92bcd1b1232b11b9e880b45ff55bd1439c360f74f9c89065f6cf107fc4c02bb5f8f0cd72c8b5c0bfd6008fee78e208df01d63e6344a8ee766dbdf381413211ff5c6e7a94eaae3934cf50c4f5117650b178f813df1bfaedf34c25e8a8e309d46f5135d2f8a2c9cd2c28e6579ec8de14e727b28fba1282cb3c0bd534a3b4f350136f9da06b5fefb0bd32fab8a4b75d50d9d374910bd30bbe1be992eb1ea66b7d38336bf5409fb9d5a1b63b7f21fe05428d4f41ebc6b3584210d655825b128c92f7149057a8074b2c2c2e1896935547e58bc0ccd5a95e7688b79c04499f3573f7641f2e354ce6565de11cad52a85bf37d8f3b1389bf52eb3bba645a1489175d17f38a574ff13a9dba44f4d058dd64c0b83cc816c455665b623bd05b023a3b53be0f458f5b810f0702603e06a51081127ecfe5b1cb33b840207c3c12d83be805c6bd14c4dbae3b8e7f57d28dbfed187f01318000472ac61d66901611ee8359361d32962ed59970a27a7c08cebd7d4fbf6ad00a23e8a60af2223aee5dbb2d3d4e5334aa2b032b96cf0fc4bfaa57c3e4a28dc1ba899a7414bc085248bc4f21c8a8ef6ebed573ba096df70279a503ab1ed34308efe6e92ad9c6d895d4a8f09b417dcc6149a24ad91b521ac19a0ed5cb678328a057286f47950fe2236b00c37511023633c9ddd6350d89cf5e03f66ca1ff2945797576df0019e7f4cc1ae794b80b9a34b6fc181816ebbe08734b0c74aaddbe8cbd2c6fc7371d8de188af8e44882ce72d31134f7140c2ed5b2ab17b6136b03dff5d5b87432a1f70cc42b4dc7a5e158a3e618714c999270db9fc0da3941509542a5e22c00c9d9768d7e5fe7f91a124a59ead1c792f640ffa8b9cc3f3984c0d9394968c1cb4274145533759d7dc63dd3685a439fc7fe887cc91e44509e565ed84c9de45aa352031cbaa29a247ea50285eb268840fdbc93d3b6e9a36b8d8af7dce0d89def20b68bab17055d1e92523a8adb7def2f45586a8c6449d47704076ce0095a07c2b9e7b9a5692797fd4cd3c2e987f9e5a3463705c00444911a320c0a792f78271785e52d24141f33beb831de1b98189faca33322b31a84d0e14ffa520e825c933b2eaf3532c71a6cd590be378ce62e3548b0c466789977cfddb8ddc264d0a417863f1881b50ffa45ef73cf8065607683d5d1ef03a713950ad349980a54c8b5b6e2a6ff02f8a258c2e7ffebccab09f30326b15527ffacea6a7a48b2dd21b2ab427f332c1a64d020f4628a8ff0c5e1043cd1d558e691c600f7f99b9950186ddb17c650bc70d2cf8c718c304288cad3c43c94e3d974bda234dcdd047372879faad2a8eff293edb824304fe829037741f2100698df6e9051f65f2904c70d143714d291836994ee954113e2d2d2ea7e283e7e863809d77a746f3351e3e16895858ae95d72336786d5b55343cc632cd40c018361e0001b85d1cd87a3f5fd8b3e2db894a226d3bd1920fa639a9e05064d199791b95be748b8fa627d5f0b5e277005183667d13591959f1b2ef24a395f7d3137d57f56dd34aa71c81c894c34bd67e274a3272b6758fca34e5c6382cccbf8b04f08585ccbdb28b99f59698dd111a7343e00f5241fe3598e5991aa29bd00c1aaca0f3388a9a0c9bfe754cdc1c1fa86fdb3c59d14622cd650ca0551716537a268ad88b5e269c0b6d02f0db93fe2edc04a52c4fcf8ff73481cb757a4c71afe7a7724e26e9cc321f6b78a21209db54ad843599e0a4be42ee327cd3586d4579b9ba73f282ece18b5b9a201476992b6621a12d14b3b5226557bfc6ebb790285b9fa6a358468d6b2f91e57eca0adccb662195237b159af3c46fa61a02cf1ebf5b5094de937f23d110d4a6fa51207fe7ebc036a8c253317a974ed605f3a6343ceed56296de442fa95ed768ec2f1ff49f28016aba254c5cfdb1c8dda3c0bc2c2c0f550c027ff8a8f3d73af749e1cee1cf2b61fe496dca7817e57981a534ca9077bcf9dfcd7281ce66850c6f60229bb16fd036f2887e49be484246a04800092b58595b5e636b78a6adaec7d0d8f7fd010d1221373e738b969dabc6d3f9fe0206071418203d4c585f6a6d6f88a5b2b8eb0d1a1e1f3b4d585e85949597b9cbd0000000000000000000000000000012213342", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 30, + "comment": "signature that takes 34 iteration(s)", + "msg": "f922000000000000000000000000000000000000000000000000000000000000", + "sig": "af2f9c70cac1a03ad078617cd41046b8802062fa2bd1306b83db7d061198558523e1069a02368d4f93c8422a30cc182e289402c6c252a180fcac997b9067905da4f664f37f978d8728536978c27cca145d054c437aa756da393e40036da5011548042f21f340dd5b6ff2a90886d58562e386e9950ac86433af4a12d9cb9f412df12f237875088790aa6f1ee102a7a4ac517577093c538ce91117cc1025d1074eda84f00afa0c2bd8d7a86df64905cb6ec137afb918171f21bbf4f3c11997e5f06171a5205af242b8af8d0dc0c71d33423c0f2d132e2b80457638e9159f5f4e2af41eb14352556f690f87209450ed9b3f92ac4e3b052e872d3cf54d8003f6b6fe53554aa0edc9dc49ae6aef3432dd52f99e2695cc2758168a9e704fe2ca591e95f423de239e562c2a4fe89b15df8efa31535d3b0198877ab7e35206d928bd3e181a8437f0aa16d5ed9a34e2c2f030c3fb7dd20814ae38bed099b55199dc77af0192aadfe45903d752ca622b2a3282a481905bec54fce83b779cf156d61674d010bdf640a5a5cbdc47548f30c4ae75c701e55f0de9bde9c6565c8089dbad737e6fd8d44d8220680c7901850b890f30e1c154cb861de00487b7f1c717aedee895f9592ddcebe77bb2be616775c836a7b98bd7155c39a5e13db8192b339e3f30db359c1e65878083125a931c9a95092b177fbfb034278a3d8b9e03fdba72cbad7b2a75969c426f4c7a47ea2ea6d7749b853cb5d182bd0030d06d99c82e38db3394e908813d48099a5a31caec689a0a6229e3252413d4d5e07dd968ee6f7ea15762d856f1d4ecb46778e55d8f1aacb83539401b931e11d89064d8c017a4da1aa3759873e87f7091a00a1ea7243d55d0143f7b3f1689f4808eb126ed9e27fd378028f566ca76982965466c7e987b79e9071131f4bf05e3044fa7073268735e49929e975cdc3bcd1c8e8e5038647a7cc7381018d16942c06e441636be086000bcd1bc6869fe7ceda8103cde46e9ef45ac5562ed715b00f3e8605f17f49c4fa15a870a39df62d2787af843084a75ec237e560fd6dcd05c2113e1b85cf6340596096dce0cf2693a6d3cfd4575f5b1d451b4d54140ab3fe42bc0a8214a22c9e018d88b705050570f7496ae053a6738cbe51d4c4b340a399adfa222fff1429c4254bf681dc1af3687e6b6a535e2bf8fdce85c761a8ce347a4c0fadca5f90de53d580ab5b083dff9940b11f9c61edb7a1b60e4b2aa5dd0c4cd76a2b685871dea6d3af0cda8b00c6ac94acdcadaab1bb647542ac7e88d42e80b3e22c88f8cffce2041bd91fcf5aed9a05eb2b89903ff3a349382a9b6e572d4f262da11103ff998c5cab482269338108d02927a7e9ce1843a85395262db1caea6ab01128feae8182336cb5cda9b17c59536bf8d7a1ba2ea92648698806866078202b75cb154288216c4a9348540cbd11044d6592b5a6ad4ef8e5a7477e35b1428797e874e7a66960b9a7a3d9ee16bdc218ad06377eaeb435103202b4d129d31017dbc28ebe6d1acdcd07a12d6effb6f5f4fd1da5941f212229f497086ff308efa7c78f1d55dc51b360a285a484916993907dff27f62bf665acc2a0655da7dcaf3f07395deb3dbfee5463c7a7df739c3020fc01c86782245aaea8924829443ee5f7f110197be2ee6fecac2e6e1cd13fd77d8e8957e44229bc1aae5e8d8ce4f389174c29ce751a99419b6115de2474b27304c063de1ab838142f948644a3b0e0e64cab9f8a5c28dd135d4b1cb79ec0be3195f7fa0ee466f394475e64602a6f8c3b3a75982c966555402a3e918ed7391d0d8969ff8139c47ca24c2604fb94671c4b3a77a8e5098b441c88d01b46a6dbfa905343df08f7c93982357dc98aac2d47ad7b70a899fa3879c6424d366a4a0edda263daff706095829f26e4476d4e8ba0c2367734b6a25fe9585cc55d88f45a4f3b8c3673c875fb886fcff7cc0cba9a790691b350ff40eb058d4179bbb8498c5b6f41febf4437819a0aec2b73905008e908a3606b1219781d85df800ab07e7b83e0023c2247f41d459516d603b67460e935181dabd3658eb61c3eb1e956846a9f42013ed31682e4a209392443e4fffed09c8a89a84999293020934cd02cec5f8d5fb0ba8d758431acece33c3328b8ad8fbf6908ad627f8fa93870582779a110b32b97c83c0a1aca751898172537cb5d4340e16374f6031d654ea9c04bc05bc79129350d192b623f0c6521f352cf2d3b0098cef453c9edd497adc0491a734eb4a51242983b10a2cc2a54c2e07783c593b7ab45dc0d64c24a0434d25b42a416141f225895226cbfb00e8b041aaab6703c74b76a49afda27dcaa409a682123b82660d8b4cef34043519b8436112f97df90b0003a99d50617dff9c75ce545495c65214cb408067177eb668bcbd4db9787f9e63de2bcb240bd564d4e0c3f8f9df344c791d641b9dd3a68c2f7a3d0bed993f2ce5db6b84e5930c7f38277d5ead9af61b7824bf7f76715fa916babaa57151462cd77872b5dd8b7e34c3db5f5b94037a88ee0ab1ec678f9cc0c49319c638d62791719493b245f7663fa2fa81661dc49cffe7fafec7dc012899d54268d09b7b759f7bb86969b5efd34491e2eaac045994bd115fce8f94919e9450970d5f5ab21d66bcd57aac7c3e6aa9d05215045b07f012d58e8a8df51fd7c23d7721b172d0e1e679ad6fe2f0778bcc387fed5226d48cd24b002251f8ad319ed1dc14252f3f879e439d789a65adbd1d15648446f004db53cc473f74d03c2fcb5aa2b917874173bcf091832f756dd80355e967602b5a709c198f3c6fce1047205a7fa720891f4f68c604d13cb798a8db39d87d292b9d2da678d243975e6763c6d1aeeacd591da780f4d7e362df529936c6e2e3ea49dd18f0cec8f014d1b5b60384c47b71a0d122e30a12c2e7de5ec124bad0dc33b920f29d963762c7289da59a09986fdc87ff9627b477e215961eebcdf540d7ed9c6201f3d5a107f1e7adcde787296a0683d1814e52efde5f1c99762f208bdc9cae6edaebd1ec60442176b538c100ff33d8bbd70790fa7a915b5db29d407e1d1af91af8e8ef415ed62929088f40df88f0aeb9917a597cf88848b525750feceefde917f1460091581c5f183583bccdccfe0c665cfba8bd184c35717f0448b99d15a113c81a727b1cd5ebc01045d6c2968b5a36a6392ac111f4ea18ef09ad218982b516b74ec5b6423421445f102f08f162da6c816ea0be894114e0373f896922e349e9a7381899f91325a91736d9f09f27fcfd61feddfba7d776bd83ddd794a7ec76f92e0e11171f2526282b427077859eb5d4dadce5f4111d2a2e384d53546169767a96a9afb2bdc4c6d80b274351649b9da0b8c6cfd2dbdfe0f6040b1a3233404a4d5a5b686d767a8ba2cacbfa0000000000001327374a", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 31, + "comment": "signature that takes 36 iteration(s)", + "msg": "700a000000000000000000000000000000000000000000000000000000000000", + "sig": "448271556c0573f2183699a17acf126f2bafd2f0cec1a034cca5c8a83bec6ceb5066e14078d0fa1556832463b63a227810af746e303cb49ef4d0dafc110d3a33071c47ea764c74ff5cd12a6bce872437ebb32a5fc9f5f1efa77408f2e803e7efbfb2e5c6fa2bc96a997b3482c6f2ef2c2cb7c61059592bf7e018e9d59c85ce251da7904dbfecd4af4b6771c0da654b6b97581ff227d7f60d7e7a0b2028c9e1d4f903a465a452a0823965503dd5b7f59dffdd04e261272897e03850bdd9aa0f02b5085e4bcd0cc6d009cb3b7af1d493f25f26b52d89339d496f43998641556bd3a45551dbbfd05c3be3e4431ec778f9a0c12bd5e36b6ecb793c125c7c37a33d1b51199479044e954d86beaf0adf7103f249df8d27ab60809743ed8900d6619b2bd8894391a77e252ac880923a9a8cf5da98752a30948d347cf5665b0f170793144a60449139e48076ca510708e15f2cc93f7d7a87467bc6ce20e72bc848a55de8e80cae9b16faed60bc246a5519da029d6340e4bc818adb2cd1ebb70d77b504c5f731745c00dea53828ad27765c3b03047514afd97f99d0693c01b40f501ba3df527ae0f8b3c29ff17b835cc47c55d9210ac555779eac3e922b0066ec32fe5564dc2df6524453176db8e6c6d140e36be90389f329155a379e167909b95e20c0fc04f4d007513e5f7809e8fa0376ca2866f627af4a5cc9fcbb71c4ce982caad6cd7f9e4c387faa833e7a6b6372111caf2a1301b210e9831e0c7d3ddcad407df1712fa781f2c7ae194244761e1837ec372707dbaecc2d096d6d0d3643eaf46f03590cbbc74f551e13bf710f2b3b3adc2091359887b1eebb4906b38372978e19e13e857ac933c4eff2c8f25e10bdeb0289246f6863765bf6024a485996c53f614b53e1110aa0b8b69b29758861bc5aac31b9e3bdcea001861223859a34e13fe029c220466da9245a6e3e4d437118c307037df77915fbfc837ea9542a6e57c849b51f29930331fcdf9604f431a5ff15f7d1325662051d7cca0bfaa9ab18dd8794d13df862a52700c6b03656598111ab501cbdd58fafd0538c2b1dfec2a36ef4fba94dc4748b50dcd0646dc308b89b022cf282199a66f1b30966c363f8751522058c6316bd3e2a9a6472f8da25598a622315083e4126334cc8ef65bde97533238f6f86f2f2eef8f4048958c920bf3b7ea7e89d79fe851ad2f60feca5120e03bad69cdca8230a0d318a7d14c069a499ecdbcb9e7c2c1d988230aec8bf30316e76ff5ee4c4db5ce044073b1f5c0bd5214246d8c3d2220474f14bdb8bf145c005b727829b1a9c988bb617871f954b9487a86d21892841bc306792218c21bf3ca6bce3a955f138dda2d3de1c7cd550767529fdc14f4ad600f484cb5ce58f2d0786cb2f0c3120dbf535c7142a032f16d399b85ef68a22f76047fb3d436f0e78d9bea61f9188bbf0663a27133925a1db5e4901f079e4d02c2b4b798e39241031c2c4f0fed0233b044fe26b64d0b2e025c80481b3fba5f39bdd3197bd14e54c17f80ffd8e04203c78089ade6ca71b109303caf2b61aaeb50a4d38d5e788f727f869f99f928f3d5383b32e3599ceb3df090aeb266d69961fa193b9d204b827f5ea3c996f6ab780a7b82688a56088630a3fb57ae782756eab5fdc38916435c547a30b3c1da5458f7f315fb4ab870c4c0ad71e91c780e6681cc2d8050d6343678f3e4b5de997ecdceeca45f3a193b910bb2ffe0aaab3b35b557324be2896086d2cde38f7d8e3d49b83043cf7464a67a711fd9fc3c7e7597406f940188f9387ff287a5f531daa4aa93fd62676e2657802e0e0ce1175071b1fef0d96e050195b40fcb64ef5aca502709af16c17c4682846d9c1b6873ceabc6ca5e36e71d1d6e01851c303ec08d0bda64476d00b4426f25160d1e65a0b0c6ad9b149e8e9b4247200be6e9191e6371fe1dc35ddb3be3e0c2cd51bd166697978966bf01711bb29ab431a337bb9fb8675c18dd36a93c907baebf7f631d494afaac9e32860b7a6c42c685b3fe015c8246fd389028cf9b2f45b312d8d14e61531776b7349f838a4dd182e0a5b6f265f5d23910a607da624f2d2b849d6826b81232f5bacd7ac3d7b5a26da79a1e0423512b7e957dee1ee3052d42e4e22481fc8a6668deb7e9a32702c8d2d6aa86b5b48e7a340a5b8b4cc937132351ceaa4c08c691748b6f6bf251fc305530d3d523723bf8604118a8bd1f55038733575a4ea7a7ab22b0f1de48d580ebcf03f0ddc3b0361a27aba371cf11ce5fe36feefa78cee61ab2b398312279585f5dd18473c63fd13a2ae7b25c1a2cd59ee5a795ad270965d3fd0071c87e6e1dbc3f0996db1199c14f5fda6a3d5607390fe3c050c94fbc1e12a0472956b706d870a5087b9c17767c9303ef23e8c3aa243c1996edf2fb982f871fcbe99d740524e610eadbcc1f27bf4078b1c5824162e6c9910b52c6ff34aa3a46f82f9ccaa937bea216bc9770700d039b308f8bafd1ccb9cd82c9148cf9e3f6e7cad10ed62cb5de54abeb86d47efb0e08ed0e196a063f114bca5aa2e2f63e0858f3d69bfb41cf820b354eda3557b75a35d1e3cae28fd6b01e1a454144ad2626dcc876588b728e23da38b3239d26427df17668903a1aaa5d64a840721f4602cfdc04d3f3cbaeb99d524d387012c6f606d07a937153e5e7b28c0ef31de5a968c9f6ca505904315f30e5deecfc22ce5aa591acca5c049daffabc654092f53745d69d71a7780e5fce82d3b9e2ea7ed678f331d36fc141085f4ad36db8715d7d5677787d01ab9346789d1e7accc5067c13018faac1753ab7dc2b1b57937d1cd1351c31c70c13725ab5d93c875f2a1e237903fe6f945984f53c3a987b081735668e5311a0077928e453bd8bf64983f30bf1ce0bf2c8993e8cc4b53737dd7a4a1294338bbb86cb2828ce29953b03117d4b8ada179a2d76ffc0775eaf209e8458df3dd2553ce2405a2e2e24ed3c8654b0994b3557ffc13122602a05982ea6d2db928ab9a30c10ba4b7f5edeaab80f74894254fe597c3fd9dd1bb0a8b9d83539d0e5e37f1396736794fdef8db2e103a838abbcc9054b3a73cd88254df63a1014a1bcf78aae01883f034f1ce3a6cfe956f4b360d675b5a9901b7de0b1a2d3c9fc1e52efa56b144a6020885ab1ffaa88e5d6f58b54d3d903f2ef18e3c5b6d8ef22c22b14982c48c21599ff766418908cae4a6c11863ed8956beb8a48a43829b454ac1ebf6829a196c7ec9a08318093fae3f23a360fc40a6aede1df6e3a7f4d24fdcc56fd4f1aec16758295c192f6238373f48d98f606904181b1c224d5668797eb0dd172b3538494b4e565c5f656d77797e919699d5e5010507122f325158677091a6b0b7d3e8f21c2f3f4c656a76a3c9dfe700000000000000000000000000000000000000000c20313c", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 32, + "comment": "sample_in_ball requires 1 SHAKE blocks", + "msg": "0100000000000000000000000000000000000000000000000000000000000000", + "sig": "c022e817dcce2f91354fa0468d52d20730c1c4b46f93fca19f6715db7424f4365bfec99ec722a7b1aeb28d8e98d302b65ebe86219604f8b524f5a55f7b6641a917e8eed1b13062ea67acfdeefb080097dedf02ecce812354a5dcec7e242fde337d609bf09fd63379ccb64402a7ae08072bc2413e2f5a50d5b2a23623a2c9e21ccb78df687e090107a83ea928f1b307e0fdfde53b4a203af164bc18f8896a7d7a21da3a27c58bee267fa21328fb72ca7b2f171e5451d38a44fbd7b8dc1418405e13c039962b6640848e33d42211c2b89d8a37a220a3044d264f03ff1d1e1a7e5f5b5adc15cd40128d75059d6b2a0a8d775f3f173f3e1863dc8e6a335e34bf63eeafae2e2f59903784338b9d9b68727b90a150edd9ce9731aecefaff5c6123bb07a68eff67b3e258a6e8d2121aa6e727e8d152180dd0c52accd286ab711b717ea87f84e448b6ee5191fc49c5d6fee38d9d837e484850fb1831a341ce26a7c8ed7d47b386a5e3ef443219ac518d46059ccd199056ec7bb0aac029841cc2d6740c28e6ba9163d6b0833d62b4d2d43d85b8812a369144e9ebaa35fe244ad29d24450a26ba2126b8a94d8b233d44b3aefe2a8477d0a4ba72095eec31561864cee4338c1712419aaf4e4c9eb3c460a6a998c9092654dbe9c5b585418450c575639484d6f0896b2afe2179ea396c8f1b1b7ffda802337cbce96e33e0027231c9fb9bb6923793e4fde929d0a93dd03012f94c6f0ad12c02d8d43bb480ea3b30839ca0799c9c6f1ebd2d32f11bc19925c6d801ebb6abb575d0db6a5d0abc3b50a19f5fc4c86e17f6a32734b665f46c8a9d96f338f5b7232d91ae7360d28e7d50e06a9222eff4a5b451f113efbd137c1f181a5a4c5723e47aa5f3c9ae7dc73b4b92a67786dd6bda0188d968e9ce13e4c751ed8c36b43df8872c58c49476a0ab1ddac5ef7eb066ae1064d58bf46f3d1b8e54f2c532f30ccbfc5ee3f90d7e6bc582bfacdb8326e78433d237074a85cdb50f2632a0d7be7c724b33038fa0a5032814574b7389bf82bd0e7f8272a851cce703f877d6e9d15a748405bc8d681a5653db1ef1e86f92e6ac20fa8a1007a6881b448e738b50fd8cce8f85b042d1ecf472692a4fd43f10aaf62821a3449814e1a512783a0caace03ef1558359ef357208877256bced98d5c3fd5cf80e4e0ef172a0c5556f4e5dd56601df1d1496c977b34305fe7781dd7714ded0af8cae5e54c1ec6633a85a4b408dd25a29befbcedc3d219886e6285855370b43db8e6eea5a7d4c439b77465663a59b4bcc9cfa952c9dc4ad5aa02cfb0763b308eacdd9dadc94fa08314d132892ffde80e3c9a80fd474cd2452377c8b2ccb162b2cd34fba13656cc187a2d2a295dd47af66c03a4878cb129117b58145b8c76ca84024550748bc593def2d9b970abe578ee2f41147593f69c5a6143d7f5eff5dc100bd22c9d6537de0cfec96fe18e4e301c72db0c165d742503736ebe969c36f10bdf5e4db8204249425a90e0b2562296b89cf3262bed488c195558dc18c0e16fb3c1aa735a8b93248cffdd7e9daf8b9f603c60c4f6d469b092d956af6cb136ec7950251f4d2628f90882dbd11a5115dcf385c15e6ceeb1bdf775b0ca827cbbf1c2c5216276f5ec67470356ec179a3fbaf8d75d1001c192227385de7a38fcda9f9dd541e6f3b43690f1aeca9f10d65e57415df07eccb1ce320c6cfe3e7cdf85dd35bbb0558a9b900e5f2eeaed69a82aac02fcada88bbe0765ba43260d96ecd40cb9ed5d5ef357737f27e5c12886c583ad5f750558cdc9d87271545a0ee52aa2521ec1159c6d20ff66d089f767ede5351bc2612a75bf21d323f16c4a80581f3267254a6850677a41107a00edb28f0273e82aa4d76324b36cb0a8402a7f05eaca11f2b18329181d336875bf4d059df07b44b1e6b4d1a169d51b6d6dace173a2936634f8658dc38ba0340a044110a51275dfc3286aa051bc4c48486be9f1c335598ef3d9e8007e802797aec4c392e26d57f819167cc6b29d959056c31f3fcd6e962bc7134cabb1169c2a4eb5c5d4fd61b14c0d8ab4d16e5a376e4ba601e453be7206eb47b74a2ad214db24a3f459931c27a3d2351e2bc2c32b2ffb78e801048bf3c505f76064ca7bb038f96e700bcf89c54111cfb9639ff761a7c7c8c1c8d14daf85c842969a5a1dc682deb536b044f1ed3131523a6248788f0d0a1a4ec7b5b7c764daa0be0be10489e246a0f7e345aad67916109a6eef495400d5e935d486ccea939fc4ab440b599bce1b5b5d6643a5d3851ffa9956afee78a0d1919d0ac9ea3344dcbc477e65658fad5cc1658dd0d7dd26a4d968d437a4c778ea6237bc69566ab57fe2c29cce046429375ae66fa10c5858579641638d1c298780625413dc14324f011af275f842f63ce62a5c256f427e998a2e65356af2034cf5f23f8d8a0ac138560331f702bbe6d35748ed386a2d70f9855a07b8fd524341605d53d332563bb60af8f15efcacc411c35b623309f9d1aca8b95c2ee957ef19fe4fbbdd4bf0942f2b878d2172cc6d4769944766c81a6cb36b9c1afc33d62acc7dafbe72f4af357bfc870152f81cfb29273bb5b373a85b16105a0b902182e7ebf583ce036847fee0a53978fbe1f97d2626bd9fb7df9eba4f2b99d1d4e6b1ae1b1cc9f9ea2f5830a8b2069a4719704b27ff0977db528bf8576ab68d7fe6ab01306e25344bdb2f34827804ea386b5aef2c7958fd9068ab99ed3a770f344528d68d829611958c1ab7f324cd63ff63cfba82eb923a073f48bad98aa00e831fae0107d8f54634d195854c8a23db55898112c696438885135565841305b0f9d885183d49a9f9ca2368a2ae17edcc2b0d1632e4fdb3d719b6f41c169d50d28a849a46ca8d5c29dfcc0facd9e8994256fbb10f8c0763994f712f5507934c59193c9775452ebaeb27e8084a72a0d6dd77984e07a9c184d8d86074b16ad1001011863514dd17001913275417a8b4021e05f502714d272b04dc45d570141be61a3cd6990f0bb97f14dd76482abd21617866b1d13dae3dae860f656949f70786f42d3a20666f2c69d02530742c4bfc00068b2afffa942c2491aa720020926a33d2fde912099ff965cb3853f919adb527a55367924e38c5eb35f7586eea5b4d807214e0cd31d4b4882e7f7e2a38a8e3376ec379f9d7b57659f6f86b1117bc488fc0af0ce3422f058656b4d17ff473f1f28b9fcdcffd50ef00c54a576edce0bda874926afa0f8507e1bc62587f3352317f5dbf449726a63010de91efc0f02d51c0d10f2fdcc366bea23a7de6032425292d373b3f648e9cc9ebf4f6fb0a0f111a212c3d535b60737d8eb4b7dae7e9fc1b3b464b58596c78a1bcc2e9eaf3f60a1a1e21232532516777a9acbed7fafe000000000000000000000000000010233242", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 33, + "comment": "sample_in_ball requires 60 SHAKE bytes", + "msg": "f209000000000000000000000000000000000000000000000000000000000000", + "sig": "c52ff03fae8b5b7d2e5ff2f9a3bb6a75c52d991324dd0bf1cd2aff1ecd3fb4bf83f8b3f9575d42532d432a6dd3e1222a4cd7a387d02c6a78677ede205615bbd76160b160db74892c925218389cf6bde5b5d3658821945ddcb3ac92cda29a9d88fa3528a9f3955230d6f6dc72b7b8b9c432675d66e5c11cc752fd048a93838db1706e221d5ea7e7755bf17c484683a0954b32c35c662bdbadd435d0d3544eaaa6aa3e0c9741c9c99da4984e047c6b21756e5e6722d025a494f10c1e08732b6dae2eecf60f104554b924225f5501a3d443984cc1f2fe533a479b35e473b4b5ee7490f8c55551a39b8bf4c757d30f6efb31db262299245a8a8567d181e4b5595cc4d27144e1596d692d0d8cb65ee99e553e38c2bbd60df57d1234d3955c9d75abcd1e2e6f4f867cbda77ad38e4f7b6a108f3dcd84c6b278e4e7717733af794eebccaec62e9d9e350059f17e261956769af7beb7b59550980f457616b83d73d90b4904e6b43b3a905e4c43590872decfa838e851a778b91730a83bd1a8b8f1b0a2dfa4aef420f1f1e2b3428140e1be523c03dff78de7672261150477e51e6b3d79457ac23c3c90277b4a4685bd02f6989baf8f79819efefb6ec115c5d8b5b6642a3d280b0a88eefa50a9612e5772e4827c96046def14f239192c00bb0d5723fdf4e057505b99d1ed2f98be43bf8854450acb5af827fbe3120b8dd5eacd14bd6b782e8a8b18a5e87270b3190a35097cf074fae85d4584eed69e20496539b240fb30c475dd86844a9050bb7c3a5755fb56433a659694e54edbb647868a57af12a7d7f48620a689257472d74d92b3763ceb80dec66f14ab1231bc57181e232cf0a677038af56f7eeb2be6b7dd142336f9760fd1f7741e542b08d773f831a68453d8eda74b9d927c0638d873a40a873f6952ee3db912e1ca5db50f402f6c44867bbcaad970371206c13d8b075bb23129f1abdd5f49d748c14cf464f6c5f65123bdefb497776964f476f35e244e7982a62b6a801f8a41a0f996d299e00fc6286ab8cbcbbbb39d23e2d1486009bc5a04fc5f2aa38fbe1fd872b4349aaa7bc0b8b2a345a49128b287b1d1c314075e1db195c43b392ebe89591c7cd0b1601b1c9dd239b8b46826f68130f98a61c1e43bfcce497c1bf1ade3f3899946e955775e30fcd1f8c1642ff80bab97fe2593260faab4e8ca77be77e14ae3656973dc9fefdcc31422591e07761d7edc77632eb34bec93561ee63be60d64f00d237334fb517ad956dd55368de8fc302ae72ddcdc9d6f76c197ed1c70e27479182029ef86a9ea1533d630bf1a3c4a881c6117b47fd70c9701f00a233bccfdb1d6a727dfbd2a0c1e1068cb3c0bd4adf1cb93b057234e6bd31ed3528d0c94abb583a7e7dceec15000fd456b79c8be991839429f458378f1e984fc04dddb98682d07d25f16549933bfa497da3c406864f3a4e31f92972f7e6ffa13b32777d759c970cf0eea58a465b3d682523f35a6ac42a2fd04caa7b2cd7eeb2b6af3bbe743034cf7c11530b2cd8b4fc53e6e8cd2dd506cbbad745d178a57a4ee52b12f79cf8131cfc362f2b447a5ec5115d2c9067c354e233f298a91c11b771fc683f30141303226e0f6680849c3b12e15922abf60591d81e05fb8edd85f5fa1621ce25db13efa6c8f1eedeee99ca46764a8e746c0445841f7e600db084d06841aae38769dbe40859d3ca74c65e9b154a27bc588385f93a80b1903be71b166e0f8ff92251b6141c27f2a86c5a0702fa9e140089d33b3e89adc5d85dad95e64b4e5f7cb14bd0ff1d9492ca2202d62c679f3ca88ddb697445fcba690889e7bd20d4ff0fac7bb4f06a861b7fcdc26bb63ebd489c87263d150d64f9e3f8e2443762e1e12a2c89b6af0f96f36878ccb53774b72f2a837f576e2b496fdd466df04c1421a07648e59abccd7e478d36def9e5c0ea7d02e76d28be0ecc94dd123ddfbbce0e163e0fce5f8a6f45fd4a3caeb7205c4f585d2c408562578cce74ab54f4c984bbc6c6b349776b851364a427d4fda29cb8ddc2c8d284e225da95204774870125ea666438c8762713b52a1d2e803e8d9c25813b172ccc821e17d21574378d0af1a3eacd733587a18e297b15bbbc6e96d1c07dbdf7fb461d11d65365dbf65289b2f9a9bfe39453b1e9c01b12b74635250cee9ce771938a3510aa8f9bfaeba832595bdb104b7870517904a9c72aa3b0712499a76dfcde52af31fd3ec657e749589af3f08f10247cb8db3eb1aa2d73dc0c4766227380cdf9b6bb7200220c44e168d6bcc27ea6610f5a318e66531cb399fdce00a7ca19c00d077877f99ea7a08af78a0593cb21c47fdba7eb2e1abd8838c57eb2efa839934e6408e35e73f1459b8ed3a984a548576f7be5686218a8518b644d5de1e24c415a2b65efe0698b5984c136b2416a7c015823b65ee5f2d6c7be7c0c5aa54f2dbe0403d18da2b19b080cd030a1dd230a8e90b97ec32fce44282a0f14891b209413ed58d99ecd395544fb55c2f0519f56aa1dc86619f368a2dd2c7981a1632015dc7c82f99ee0df55f3f9dfcdf7a3acd087119cca2b707a7cba73e060535b7cbacecc96d639907585f830c47e400cd080a85a0b0b762976fabffe7a3e9105545e06d753f68f859f570ef1204da428c3c9fc1e8b96d41c4283637e6ea44f66a1418709f69a02d8fee197ee6338d20abbbdcb358d0ea01216ecd1f2f028ced01470abfa87db8793fe23afb20cdb9c3279fedb2d80aaa492078dfe01929b7352cec8c83c88b45435120faf1f9451815075e060440c51bbdceef72390ea277527362c12ad9a8565acd71710b0ddea028a67518c30868e6fa334dbbdbd49b033966966c1309cf330fbe52cca82d0ab3e488407720642b11ad1a6faa8fb7b0f8ea8e735c76a4f852749fd26f7084b10a790143fa35ec78f2ed764dd700564ab9180f62b3c5564edcab4466192cdd31491a333fc29ff7946b41fa5bb9ad25a2c20552dabe3c7c95d83740eb25926f58ac3739d6b3cf45c76235ffd896e3e7c3225a8453571547f087a334dc7578948e75114cc4aadf9c4c7b99b51da03793537b1be95305ee1ab75d35a48449ae1cc67f4260aaaefab4e2fa5e650801a5976fcff2ee2bcc972a596211d6366a76f8a8b463de43ff92bdf9b90d55abd0993649634f9a293737a175fc203ea28d94b38180c392f80c2db767d0697170ed3b2c94accc6138cd8620b587b13447f1920811f0f8fef1e5d9888f077d2bd653443c7280bfb904e94444a684958bd1d4e6bf5fc194b7cf31b5f64f4754dbd258c8c2707a5dc8081e242537383d5b8395999ba4b0b4b9ddeaebedf5265b5e71b3b7cedcfb000d0f1f242e597a98b0b8b9e4edf50231416d797e8088adc9cdd2dce2f60000000000000000000000000000000000000000151e2d3c", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 34, + "comment": "z_max below the limit", + "msg": "7f00000000000000000000000000000000000000000000000000000000000000", + "sig": "0370d96a1218e535ac43037ed96dee1f1e1c43a24ea820009b2d0e195e6205dce1df8dc6feb7aafad97bf76ff8482ca0de9c369d36ac103291d127eb26b4fdf531789d5700b5dc91c07742bdf07138ff78919b1f8366de6ee41595b419ccd13db9a88326be173c3bc73d4e823befa672bee80f8f2abd1068bd9910ea1badd40effa43ccd8eb80cb576772ab63e2e1ad7de0bd5390e7bdce24cdb4f9e399d23b1a9577c2a7d5a6b5dda1d5f070a6fec90d15427246c4cb242d303920ea3691e8d19ce10155f392226ae9ec3722dc29c625989b52bf8f2367ae1712dbdc260e4467cecd9b51b3d46cf048cf9c250b97e5add3103b70026c491ce49531af68849d1b78da1632639fa32a64c1513bb602ceb8c5116db352e75aeba6ba1b80589d941c884da92ce826b048ffc42d6fc02e0189a1c6df09cde96699414ea8b8af325a8cf15cb066a57a237bf0a95a53781a531f1c9db63e65a6da5ba9dae3cf08b96efb6d38b5afa632fadfa89a345319289e126143e85020d95f1625158e634b3e50b210a2ad4e801d3dc45a18d46fca4f91891bb9903dfb8551444add91bd31ea28b7ad177f7dcbd5a56df9b1eeb45072f95ce235e77c05ed0a94c625a263a861b92bc664fc5e7c741782d792a6e6104a8477eb1674c2570afdfab5984808f444dcc338d9cbe7298976c3a107d95a65dfd0751eb998e7c0ba82142946cfa63283fd29e30cef756f45451b2eb01f7a5d5b22d96e22485001cc6b345ec741bc9fb68ccfc593343fffeadbed314405a1245ee520c3ac8ce3a28caa34ec9cf687aa964de1d9492d220712dacadb930fd022449568e56cb5d7e6234d286465930c8f35fcef807dcfc5aa4e2715083e08349dd9afaacb1373a2f1da46880223d732cdc9e345c81a3ae47bff664abcd9e75d3ad746c8a87b9f941fb391735b7bc8bd3ed06d2afec31b3759a225b7df7208fea96af9a8d817346c548c7568fd0c334f0001da7677b3ffa38d20244b6b935354eb3271ad3d6cc88f07b98bf7c9276ea23e0517f729ab5aa76f76a34dc8a12e67fc7a562a2e289d1814aaf8959404247e5e676b348b51850ecb57a9db89e6b83a033722180b7dd0428a91f4d5a3449a7478b8a99b07cba7111e812cfed64b81cbef49f5f8a8830d509b977b9f0ccbfb4d74f5d70ae1848e86cf0fab08a562ff498c1f14ffa44a6e056a7a15bd999a867ec5136c8f8fcf234ddf9d391fa706ada130040a0a24295bb5106c984fa14bddd9bdccfc8c27948fde5a652b92ab9ca65a49f99a774069a56389c0a99b0f90db52f1be0a20912e783c21967c6d2789427ccd67f2c3dc5c90f0f843e50f6e0403417bf5c629f3d343bed3c45b81a67c4e875642c3130f5c3d87e1730f1479625b4492ae4ecea9d5f914b453e06f26869be52c69acbbc958cf13f793d2f0600b496c7c9b3e24fdc8f2976bf3ec3e8e2c182cff0afeab9e937a8bed19088aafe3000baec8cc1786cf6de5a8339f97b9c5bf21a7e95d3bd7dec0f18d700f0a3549497c537331b9aab5fbebdc40bca698282eb091700c35e1e8d4cf1c39319796aeafac68347c866cd35c453a85bc44de820da5444cbedd6afc43ed29f3663d772e9d16bc301ceccf7c7aa2167c1c047dc69711671caf5ffe0a5033bdab079deff45780a136501990fa9f659d975d84c05c1933b824dfff2a891829af39dd58930cdf863e3f09c5868004b7c65503fc1186ba86fc31f4f2538c4c11add0d85ebc9e288b5d5058065d66d79b325f2db042843818c7ddcccb72d3837d99f9676589e5cc59e127508fc63dd804ce221eb8acd0555604c39223cb449c8f3c12562791f64145452f609c21176c9b650ee97753cca03ad0eeb32db146bce8979168acae3cdd74c5ce10e7ed2f0f0dda0bbe8bee3d2f4f07a2d514baf726af23eee6fdfbc9da660cb2d03d9a8260832d9dfc78373bf03de6ad080f89ed9668550d666cf22cd221d4f8c5ab8d59b8306a2d0534b5fe62e245f4a72ccd7c6d7dbb8592f5b534e469234379e54d573a909bea5ac0276edab129284f5378571c41708f24626c6d8a2852d7aa921936e02183918507f29e7378768a875965c870d26f7599984b0108c3178a132773541cf56ba49d980b53939eb8e98ff03abcf4c8d1d308275aa3dee71dc99e0f47405efbc39dc953b5d0574efb032562f4da6ce35ec9928b2a259db225f578016a2581615d44ff6e34b995022e9fa1b6c03035e0b9fef080621a831e0098dbbac2d23ee33f2b0102b73296748a94e5f4258e26e68e772ab445eb1628e92a9879fa52cf095019cb9f200a7063aab3962fcf9ad68788a2d145b42ebe15ee82b8950c5aec1e8135039dee34d99a2fd18003c113331b576ea5681f23642398c71af50c7ca63c87ddb91c4c45fcd16bfca3cddfc19db78863980209af30f73e0b6e9c74fdbd7a15fc64b7202c51805c79f774d7d448abbd4a4b2450e184d77a72e034fb8d8705fa2f35ca03807a23dd0a65eea91b12d54c6d2d166d2879c0150a801415c0c8700fd7d2fa892937250cc5ca942e933f908475752cf101bf95f21f4ae20bcff1c70fd4bef6482aaa932f46aac0b5104095612872e1fd0ee6365d0758f6742ee0bf78af8df151ece38958956ecc257006b5b0a1585a285894d04e0cdecd42eb35da183d87fd98b0aa1921140dc368b3cc971652eec5dd82cc6fcf61f3d85bf61034856d36030bbc74e0e2672af93d4aae94649c23b55046f2646a43f7f5669fc67dab8168bafc551159b38c5ddba2b11440cf512cfeefd07a99dd702bb3d385bffc527ef3c2ff863633ed24621d379f5f287f0b6a53c1556f588cf989249064a228f88944c8a2ca68c4eb2a1b9a5bd3e44ba20f39892b7f2b9558613959485309e793c7f78c81e781c68a1b9d850d2a7377c8ff84783fdb2ed6c458a41f7c47eb3accf251607cab46b6a8b02b10cf7787cb35a237e3ccaae2a2cdc5c2eef8a9a86b6704a6188fcbc4f40c4c67b8c46d313d6a4944b07ea72495f75bb0e7b2dff62b2651b58de893c974d7885814aa81cfdf39992a03e370e0a75d641105251caed45c9aa6c0fd93f52d9ee34bcbe14d6c9139b1ef9810e2326ac150561c1a53cd37f02a2000444d865d101ecbeb7a8b50b05e31b73ce2b6748c118604e85c8e151385edfda18106044d42fc705883046485a06452683830d8d86a03e95b1df0ea0f9b8ac37f5ddecc9895df504bce489faf1af31732d6110c2c409cd00590f2d5a31207cf4d8c34368853660e3bb3746d3ec474c00041ac2230a4c9a8707090e10161c4549566877a2cdced2e5edf3f5fcfd020813262936496f7a7c848893a0a4c7d0e5efff0027344c55595a5f758081959cb8bec9cfddef0a0c28405a5d5e70869aa4a9bceb00000000000015293c4a", + "result": "valid", + "flags": [ + "ValidSignature", + "BoundaryCondition" + ] + }, + { + "tcId": 35, + "comment": "z_max above the limit", + "msg": "9600000000000000000000000000000000000000000000000000000000000000", + "sig": "fcd957d12ce977f9912cda872d2921babe6d802da84575a39232b5c3d4575e5737e14134d204f735c10cc8c22623e1e46d2d581aaa371bd5ab1f7f9348b3d3959274ca4a0f0694ba211ee0790c2f8126fb909c576e9dc4e49035604b8a6ffe4e56956b8519c8b1fede0971348ef6d70b7ffae02d009217b1aaa1d7610ad0702fcc350cff3d127805003305b1cf3c722ade74be0036db268b5f5572406a1fda0f2cb00f3fe5e8f27ea5172e90caa199fdb0d7d5f1128b4c9f690182ec380870f1f807359b8b459fbdeca8880eebeb4ca14719182563eb2e4c576d49bc77cec4e0cf804546e66d06de4639f96316d6b5fca47ff6af4cf31d73b00ab3fb6d105baa97c30ddda2a2eb1d735c8feaf73fea8611250e473f197f9dc0392c50e88891d25a398403ca3ff6ca7d04bc712e9ffac394dd015b251c00e1b5a26ef8722e376a5bf313620d368d152b29060704b5888f9949df21aeb9427047de416ff1c910dbc7bf4786fb7c220f95c71d209ef38059d9361d50f0604eb937b04579e708a3515b20335ee5474e4703daee5073683fe71eabe97ea57de31659692d2d20e34a563c2df07b2177da56966380ca6467998534894c77ab387da994d7c3e9139c39701d7361aa0037f6c47e659028c63a3a0181193e7d1668837142eb1ad9fc0b36928f8eb7003a0d405c9034e5fa6f9f38e25b4cbd6ec470ba8dd72604d7e085e65455f9eb10f24a6dd483fab7da166e3d1fa241b1b8ec11583aa7e8a252500f4536c97d4748e35fd78a903f329d8213464d67a89bb0037c3ed7f21804eb96d4fcdf8aeec022353f0a1fbc32c72c617baf6fd84baf0f4866da4636d063446616b93203966b2aa669cdc1d4cd4516cc1808f6ec1f2f3568c9eee0745b1ed44da4004d3567ae7ae5994641c13588280fb1377655fe415f2c9c6b7c5fc6ef908834ff0f5221809ff856fd836e93a38122941abb8d465e4e3d475bab522d6271ebd39a5d5c975f2189c11303d3d42164fbe8d23411af09bb4226278a2c297f8afb46078be77c9bd36720a3689ba7f4779b8a518e003a742c402d346aae63addea15f9daedbc84443aade4401b3073b60aabb4e4d99a5daca79c4981a8ec3bfb6f75bfbef4365c3bbe8e3e634b00179193dd15f5b72c7777cc0e0ba8c27629011b06c874760a31d0bbaf6569ec65af0eb7c8613d539ad98411b5c981707f0bcdb7ccc60cb4d08d5028946d82e578162f7c0467c32d43563d6e3f0223ceb75ea223fe6afec3e98a2e351e2b845b2255b79e275b30a51789f238890ce591ade403a8796aaab9128cfa1367eebfc036b8f55945f5fc99ece21e46215e50e974658c805ec083e51ab15324919c179ad47f37fb809d4171ed965384c9296d01cfc326267facf6d1fafac6d8957dde96620cc5ff829de6714f3a3580e26c37e7deadfa4b73074a83862a1ecb5440db3bd946f0731118bc2339cba24adf1e61cbda1622a5196c66a794e9c94bb48b3bd4611f413bcaca9dbe3767b3ec78fdddcde19ca8e60ebf3f95ffb36a08f88e3aa9bdc62f01d8f4889c34d813ef36ae38e44928d3b0dd699d62c91ea634b64a3970b93f98bad6035437060330416224c02080533dd689e0ae359fd5ba3e5268c4878f7e97ca8e505b786e19aa20151fa1e11d477fbfe2b7c0b11c9ebd6b4b5acba898c9c507575b4a576f86d2db711151ee987b27925d4ecaad7b72e930a07bf7bcee8f43287c50bc27e3ef2712aaf4c85690a3274c819ee6efef9c4799d282b33f510b35cb360a65f59f89df46e807bc533dadbf0f260e1c6338d8485dbe666ada97d175b7f2e503e871618264468315f04a1ad0ff5668f9a3e112ed6e7207470fdf6ddbe4541318427c85fd2b63abdbe47a45e49acd34956ea78de77b5f87b2f30c6315ea41f0fae568b1ff6c4b1dd0c556a8e28d78c6e82739496c75a3d58f61d18525c0f762878cc0aa97e5f5a6fddf27cc0548f5a7c7f67efccb22baa95df89d16b1afa4e26a83fc291f9229a0975946d9a7bf2ed47d895f79d019c377804bc5cc7f4dc61ca53b7b8d446a5418f26ef34b874fe3201dc8113aa0813ab06d27ca9060c3d9df14821bf5a3224eaa1f64645be7e671ed2414dab6009870e5a7a11e139fefa68b1069aed3b2f0beb5c8e187fff1f99176ea56a9785a53c47f20e2f67800f3f3caf2fefe237c5b70cc1b6a05c6059af425f4e295e8afc68b195a33061f3c48a2e368752b089499b78779ccaa243fc3e5015f2d352a87000d0b886f07485670de0e733918c67ea66f0f23dfe0000de651c8e70fe62b92b84e84d055ecd5fe8e6415c1cfd19f61ba81768a21b926b94e9207f79e360d1aae32a8edb83e397e4a2f416518f18a0e5987cd4011a23e796bd5f8b0b8d68fe3cbf607d737cf19c2b9ff573ed38be28a1a967a574c9e98cf20d09bcd3a5a6be33139422b932652e8482e1fa95ccafaacbb31ec1afe5d6384ae87cbf82a05538377edee4df6938f562d1063ec9642243d75ea5c8cda9489bad5d23557c3004a657c456b86eff615b554d67ca7f0dc5518872e9a6f1d559b93a47c24252459f42efe2e7e3ca8350709f129bcdff6fe121e5096b4c18f2e9d76d56376ab16b33faac61365b728f17349603aedde35e10e19003f3f3dccc7df0ea0f6a8fb8bddec209b2066cbdcc2b1b24b4a50193b8ee9fc8b2640015495ce7389d7f678696f69ad5a143a6922be988ce6cd037368465d33986b0025255fe8292730e96dc81fdbdd0af28cfcc3bebf5a01b5a8ae6d9a39bbaf7549e07835afeaa47e882859d5ca3d2123391f895a52b41945d0041ff9d1f98117bf483ba744145f362f5e48abaffaa4f7c37d85fef902612a7b8ab080e1a8ccca10482b4a398a416a18473856648b54bb8662b4685c7119eac7ac7ec43beb62c36fea8c59a5f940da0d5078883ecf796ca8e61ed993c3dbb8e4d0f5fe4b6e4a32ef499fd4332346cd5935ccc2f49d3f8c8e731736908d114eb66741ef467069c8c8cbbd677245fb1f7090154b5786d5e141475f4b0c522d3cc27c538b93b00a79c5e84539463e943538e75ed6ba3c31089aedc4878a673703de6c87817f1cd5059e7dfb12dbaa7666a0324f42a073d515b8f63fdf0401e2237c837e8f9cddf76cbb464750cfb9b8b61302743d17043e75708e3ee9480c5eb24145b5bf6f71a13060333e929c0797d5b05b5cdae49c6b4079e57ffbb6da33806c879c628bf0684fb86529839cc5676b8f9f301a1e54e96319835abb584bdcb4638a32082693c413cf1c69597c6019509cadb061726525b7587aac7ceeceff0f5fafe031f2a40435a6170797c809ab6c0d3d8fa00041e283034383f404f50535c60777ab5bec2daeb282f3b54586f7b8c919bbac3c5d6ee000000000000000000000010213645", + "result": "valid", + "flags": [ + "ValidSignature", + "BoundaryCondition" + ] + }, + { + "tcId": 36, + "comment": "r0_max below the limit", + "msg": "5200000000000000000000000000000000000000000000000000000000000000", + "sig": "8ec58e53d812c997270d5b9b1cbc012c6bcf6f66df3c128b9f2c42f844f31565034f50387e1ba7167e611873b588bd05ccba86fe96e215cb9eb77f90eea59105dfb26ac008721479923b434e938c1d9d4b6ddd567143bdd7e7bb496cee663e7b28f3fde1fcd5ae2d5cac8c3de20e855a09b066e7d89bf766d786a1e2a21e951133b19fddf0ec5f07837ed24703ffa01f9efaa711d1c3e382ee042504b53fb76d6ce80e2050e7f3a73dfd7f299a52f1815d5ae896ad57f6b88c827c235c83895b49206b1b61f001cf5c56343fe6ee8716708a5d13a19578b22f744bdb0ef06b3c6c221d6c71a4793380c9f25ad91f801fce7138cade533d4b61e16f16fe9a3b0fb98b1250d9578b527c68914a4b7a28dadf3e205c0fbdb296ee2724758c23ee04b6b1ca73b6ada6b63004b7bf0edff1ea214f1e6b31fa65cc9d6a591f7dcdf5342a254c5191c49137ded1c12ba70c0b6c35ae3121331407f269bafaafc15de5cd26030fed824e3874055417d5b4236731a8072ca8068f151e918096bce38a5ae5e07f6673c2bb8b9adf5d6440407c38ee94777d2811b90571b76e2efbc148cbe2c7a31a7aa1beff9e63fe15707e176d20f9f9b62c16ea422315527dbf78ade44c50753c121e10fb261cb8ea3fa7b55e918770dd3e1781c0048e36dad7b42e72082e3d9c4b22b39089b453d792fb0b24c47b01775f024ce21c394be812ed4b3629f751a5b24c08fbb46ebcfac0d9886d0e087a6814729005ac00aef4f89237e4fc93c39d3bec93129b7739646e0ba7f0efede1c48c78e80192496366d08a8ade899781cceab8d5f97e9c994131a529ed10688045867911eb9ff0bc13d1bb14167c287c264eb4c648190899d78540b2fb6b8faee19cfc504deca162dbd76bc98e929bafde4b483608482939edc6cb420f31f6fa5afe65a8c92ad613ca102a3e078e54ca2eda7ea7bdb85e9e6470b8bbd2681483a7fe3c6c8b65334ce717d8f74f7dd849dc64aefd3d19f1e5bdc1e8b192e53a40d61a63348a95975d09a0ca90bfcc597c1bfa2b95f131f5bfb051299ee69a24a6aa414b5b38954b14b274ad94aff456600b93eb488c498c0de832784530075dcef6729920cd22b2501bad3c05ca217cc81394e63cdf34f01995b69b24d7dcb5b0535e8d8380d616a9ca80ead0e04db0a67799d58bd4c02782633867609f746f8c2fbbfe9fe25a238d2a575903632dca36567938d9b64fc5ad99562c503a899063464a4a74141fae115b41a960fd0c705c7bdbf472c156cc8869ca7dad09f4abca96e7cb7b2523365286e9bae0b7f6bb13725a8561f2d5d62c2b3e543af1571e2b15bf91698b840c329d91d13a6d1a3b83dd31e3d47d15ac1b3eaa4b15398b28ec3959f87f0313c221f70c91005268ee22dd5b968b7df8ed60136a309eea4a5cfbd98ead0d691595d54bc2b3b36ed09c8e9fe535f84088c966a935cf8aac2d83b8d90f2db7719194c927d8c8cd2caba6020e1df394dc4936fd208bd058bc782764ade0a49385ee725e63dd013323870b994d5339e30fa8a11cb998507e61c598dd62f7b23de2b9959e5497c9db53027769444b75f86e1e3f795c0d5ca2a7f814bea50694df81a2f89aa44607bfc5882ad235b02074a4c1fb50d74d5225ba486586e85b6e2890e6037548e7bb9d2345fbd92d02eea5b1075ef2342e22df2ddceebcfcac213220f5a349a8d2a1ab50ffa1703afe5268104c52f42e74cbe4a3ff410856c9f8741d167803e3a4966ae5ae9912dabad4cbb3172e6faf0e27d2ad6b456bcd7d46d3109154ba3809622024fc4166faed7834be7e42eabfb7c4cc04665b65ffe5cf1572d3fc6cb5327b562f107abf044fd14289344ebe200e9843abb0f84ffc5eebf29bb17c9e9227b188f7bef9f1bcb3410ffe46464112b900f661b09fdd98293431c1d5e3185e1f05049130b94917b6bbafd7d98baaffa098c1dd462c3a409dcbf2f1897c56210865bf4dbc0f9960c87cf1e5e8d8388c36bc1e5b06e364458ca1a743bcc4f143222e062137477f848185c8917a5363e7f06073deef54b493e3e05000156294ee7d3a932ac0f9c61c67f71ce8b6e1e8f63073020a6579e957987efcdb57231bfd7c4f7a2e0ae4ca5fae957dd3ff93fd49b650acdcb9c90cb3cfbcddf1b646a1131c4f67234ee5455e5040461821923fa11c1d186725efea09ff02b6c57f65c4d99f44a467d231a1f463decb28676d79198e912c3bb8069f062d01b62d8612c19c81d5957127e9d8bc515f1759e2b3df03a2c722b6109b8852c541d9748aca80c4b75ca779f1b0978b5db3d6b6aec53524e3a3cbc3ca9b3e635c7a8da6f9c4c0b4c1a0a94c598a4cbac27527a42dfff7d37988f6634696e216e686690fc7dec5632e3e8701088c4dd3f070fce1f206418f6327a5cd4e21f5015ca5104c68ddfcfa83cde453f6584b2aeae65a8020bd2d5ba86ad9e48fe1006f2eb488cd2953e4dcb40d8d68f3ae2c4262e0e690036269a6c8fc524d21798c1515c0fa06b9cfbbca2a159c9b2ae3013836c50e64043d361c58217f295965f6f616158113b2d8df53db5f548738a643ecc9f93c2d8a37fd10d08a803749917f36674344d3202dfd3c55c389a789f477e446a891d9517a7c224ee7d9461f1dbd7383a97878f34786732aff750cb0ac6d41577aee5b098875b0d2627cbed0bfe83ceef82109d11ffc67a283b7edb0c7962edbab0797cb5cb0f79808379febf03a873e593f0e596a4b30e726a6b6583d1338ca3a40412fd1acfa516fba39d32e222787adcdf30362ab6a34a5a3353b5f26cbd00cc1d59269bf6f0e4b45c030714ac4d2eb714bc6a3feb2701e378043412f453c1f0af5a93a3b0782cc4d366a95f3bacfa38a864afc56bd8050e94f0fe7a6c59e51ba028f1f1d2a8ad41d0de3dc3d6e3b7c76742ed1f16ef5d215adfeb7f4a8352e5cf958680950aa380c9048f6939eb10c0d1feb20a515b3b1edcdced5c843037d6f70d782482d36230870805a1e355ba3df633389bf1db4cef66bd83691840ec5c5020efdd5c5dcc238fc05ead1ecc0d52a33805c0ed8eab99aa8d623906be360986ea15bd4d7c7b33ee9a03e6b35131ab8e99a6bdc39adcc109d0851668902681d8f452bb4a496b3376dbd33a2fd27aa295a34e027caf0a3c271ff82088a44023cd8d25497fe12f09cf4618e6c759d1d427264c9e584a94409ab1334dee180efdeb52b20985636ce56c8ebea09c987f34db32f1674c40a4a98d6840d925f87b4c9152fe8b75c37f2d5183e7e5d97d60270479024cb4c670dfbe05d18272b3035546c7a8cbdcaccd1dae8f9020e5481989dbfc0d0dfe3edff142b2e3c5152597880889dabb3b9bbd1d6e6e90c0e333f40475b5c6c7982899ef7000000000000000000000000000000000000101d303e", + "result": "valid", + "flags": [ + "ValidSignature", + "BoundaryCondition" + ] + }, + { + "tcId": 37, + "comment": "r0_max above the limit", + "msg": "1400000000000000000000000000000000000000000000000000000000000000", + "sig": "649f560a6790b963eb1677406d3da74820c39338d717632f20ed5ab6301f7bc2a7704d53dbec88c7ff830823ec43877959a7dc3fcce86cab4989504f3abcb791f8b5fb649a5d5fefcd28ef69a5f0d16e8b640e39adc748a1e089b99538ec404125c79e60230986e9e789bb2cc86b28bf95a21be81c33e721774c10a5cd8137b99e997deec15f131666270287efcd2cdfcf7fc54dc75d9d34d4b0f1dfdebd89d445f4ae344cb310ce43129bc8978a6692d5ce1db248ee63eb50ea18c80b0a33e521e7ae44a015baf1074775c7ce96a31bf5aed0053551efb6a1dad85558aa2c061f2b7fb4b3c393714a48698466abbe4f247ddb6077cb108c438cbaac2168cbe1f8bc86d8eb769f45bcbfd2aba9757b08a86229a6ba96a001eef534480fb69fee3ac604a34eb01fab91cba53e6231d0d2f811fb4ad753150b93c27e290d1c01bfc9ee58cb50f6e10d3dd552a101f882e995f4549e20d9dfcb03a9b5ee0c557f862bcdc12b72704419d1250142aff7e1a7049fc8a6e39e3ff95b54c8e986e6dd5e9aec480d1493ce0f28487ea662c4a88e9502f53a330968953f71209b62dd485d29c3e90b2a8f0d45e3c3a2c175bc5216b2deca8bc4fc631ffce44466b3b071cce87d14ddb2156970d72782e65e77d9c0996b81b5cdb63b15bef7bd960a301643d057c2564501c979946f5499eab3e124748c0b185303b49ade9bb8640d92df1c724a3b813ce3501cf8f827a68646830fc2d9d0e8850c130270bdf3e8742bd4f3019b1c77991212674dd2fff8b92f7d8048668f1f326c8c432a18a6b0445e234c45dbd03b9ab94e5bc13c5744e519506f93ff44db9b8663a35479ec83979f59b9f15994b2e1ea89a87da033d25d7ed3d3e67c79ba6d17bf4446ea1ff6f61082b1eeae547b72ef68864001299b3231684452f061020d1593eaffc03f5b026e21b5ee98d7377cfa6788e3d9fe959009e2a341a1c79d145cb8e2055387097cdf06de6d9f955ad5e523bdd8fb67d34d888b8f1e3bb21a76d943c5b3e1896421879ded5a3ca74abdea1b9ab44fefd219bbf3d1788527bfb8f0293dfd8f418c33399dbacba154ff6517e1d59f85b805e893de298216fc664dc92a7e9524c80678552e64303f65b58a6a3d605b738aa75b571c14cd3187e9c3989b3bb6dacd3a002ae6ec707bcbf9a48dad9ba67e3e876f57ac4228eb0a3341f744a54be4132114481b2badc0ee5a140e759391bdc6642a6767ef5e53d1790d4039979513a900ba1bb00408f5ca04c6f880624489816a53ff692d79378639b4ff559af4f54a28e3776e702ef116fa348ecd1afc4309d52fde2426d052e18b89a50609e1cdcd5a3987931074e6e7f00e4a05ef0ef497ebd559308a1edcc500986e4a51b8167d7328ae2f219af699768d4eb3aacb0f2c3d1638afa6ebaea77fc5048dea32ed752e759db167112d6aaf6d39bb76b1aaebe703bb28bed77e15e739c4ed9ba489034de99367e53c87a7ecdbcefe62f7473d5242dbb8f6a6e6f5b4447463b61895125d74dc70d01b431886046d8ab3221de57d7582cc68ac966806db9f0ceb55a71a9833d4a276591a0bd2487680699f4c6f61e5b9eb524f5762d847d21c8c167f6fcda8fda8f0e43ff71a02c25ad12c0b1aeb0f30932a59186e4a003245fa8524b42d41b8606668596205cec2a6f1eded5dfa139fccba451fc85c9c0d80cc93da006bc11e0aad9ecf3a8714362d2340444ac4d885dfe7f2ef0d4eaca886ba76b26667a1d9c300ee0978941236706e46b76535a6cce6fef631e60a63434c64fe8a71a2df52d40f6e44df1892caca4b0137558b5dd59d5b0d578e88b4e3ad74884427042e13eb74559a6c567462d4aa3e83ff750173d0cab385e46209f0e25913f5a3276b6bd393294af3ea047f4b6ec4db1270ae0da02e1a4a744d8ec3afb717e44a073d4bb6ac84d689ef290c994e177802fb8f7bca3d7115e8d75132a6430c4186b28a5a544e5e1972bff23345d2f6054c703491c2a232cde96c3e04a5d3b6dd2794ca57fc8e08409f9d80087e811af484bf00d82516f1853770eab6f1a17cfc19f6f2d3a06cf888c8c57eb2367393dbb37970def960d94be53786c144a002d9a2a9682c4ba76a60796f3a0cb66c6482cc3638765e4b101d304031699ffbe7f42861d874a9f300286e9a4f34996abe0f3d67c93b9624687420b3073aed1dfd2312eb1e1e49709e5b619c2a58a3bd5d7da04907613ec9f98da6f216ba28eebec3c9abe60567eb6ff6a24158f27ba7e701322794515e6058e82966b0cfa69127089872a18d3bcc7f708a51f8cbe37f3adeb6c0a396c5ad91a136f778a549d0c8a6996476db8723dfec989862a407e0f32c2501f95aeaf2a4b4a591345e31e27bbda45df930eaacd229829ceb53acaafde54108b4880a7f4b13bfa565585741f4fc208a23c6c9396f59ea6afd97128dff481da48d9eb04b07908548cbeeb5116bca338f79eba142ec86f60d5a588915dde36134dddfa4265cba2ae63780ea978f8dce6eb3847f946512becf79164e63d192a6b7aa78113ee6a551148b680af304902ee16d6218343a9db2b102d0cf133c62e920788658ec9006661dc524c2ee9b375322b39464b768be3fe048b3877aaf3b2f2a84ff0688fde5d0dd9936c73ac1e0c4cf943f8518934d356d447b65a7ed58ad4bb760aa0c963bb37a6a49bb9b1fed9641e5e88ab4681e32d43c0dd083976b2713a6faf7937fe9fb90acc58e6ab4d85839a1690011b3c5caca03aa44e66b6b04fc8e95c79446e194dd17cf2419a5e2b16be64db1d065bca7c0940ba474035d5e428e28e9ed741baa8eb84c1cc2c8ab782a6612bc5ae3cea738ce2f506c861b73cd3d54367687527cdf88df0310159ca89afaf00847176d1b845dc22684a57f69b8128b0b4bea5690316fe46f6f9d25b16d666926b43f134c03fe050026c0fddf28fce5028e444ef321b5c4331af3a4af9abebf75eaf055453d9ebea541c0dc2777db75b08227a3a5d064e57b77f6bb007ee1efd46cc2b2689cbe1a7f6467dd201c599779bd02cbc999c6a08158a72b78bd0dba3d85b75d623dc12548406aff804f4ae050cff329774bb8171764ad70f4dc91e5aa5a0b04b5954fad9d060463d07fe5754d3b98b1ef231ee8ba3c2481a52cd6451ccd84929a726cdcab0065fcfb07ca0363e61d9cfc216153c97184d3f39d12930018cf2c8ef8fe9a1d99597967acf6b354ab51c05a3b0c51d4d5a5b0ba905aac8752715b76af8601a78abcc9107b8ebddd8126c6c01a379126cc110906bc8ad7b39d131d527195b3c6c9cdcff4f707152a313d4e6061658d97adaeb1fe0f15161830354759768faac2c5f505263247545766838c949ba2bcd8d90000000000000000000000000000000000000000000000000c1b2938", + "result": "valid", + "flags": [ + "ValidSignature", + "BoundaryCondition" + ] + }, + { + "tcId": 38, + "comment": "h_ones below the limit", + "msg": "0d00000000000000000000000000000000000000000000000000000000000000", + "sig": "da5e386472624dc4da8704b7d226f6d86927772451744b173681a91415318f359713249987d097089d41d01bda736c8e3e426f58ad7c85bafe6ac6bb3d3e22398fdd781a92c63fa41a1b975bda4039ba62534639c1c5d8d9578f669f61e18473e15b3b5ffb27bf53b79fc4e8c516d4c13cb245a1b110aa7b774de8e41b1f84853c6dd8bb650639ec4c7178cb0a5ffe82956a8ed04f03580dd1ef6358dcb7674181a0b0b04333dbfbceceaf127182806dd308a6c265b8a49a6575fa4c9ceab0205aa2f90db660c3821c4699226d411a6ccdeb97604d565026701883e23a4ec270f8c96759214fd3d64d68abd6e64c8b00a3fa593073ee9c9116198cb1911de8a0d469b644e5d3383dff9bba3fde295bf03b821e8d23946b013a875533b8a5672a26cacdad133019f059e642990c1a7bd7b20155fc6bbe8d99955b0f39567a9e7ba835664344e5a2b0da57ac514108378e445fce6e60455481940f5a4c4fd1decb398dcd519974bbf3a4199f3383a7247867fc4062debad55d82903caaf3c990b8cd71dc80cc5275d3af7ea14b6c33c77309ba7ee5381b6ed028dd63bcc56ab878cc6bc425d59a6eb63b2d805ecdfd7e72049c625ff272c5d7bdd59232797ff0f0d461a692883e814eaaa730c4ae9f123ae34ea15db89bd024109e1909e43e4c208fccd2f7fe95c46d748ad2b617d5e42714f8370a3fa9024a94218123accee189bf21d7e756b71ea98352bd9bfd64b72e47ae2dbbdb2b136bf74910a8986404e4be00467da95553d20551ffcb26635994a2cef5de348783bdf0a373f8668e1ca984b89f08b6f83ca2f2f76c7e3de9550fb6013a684fbb5951da0969e06a9e33eb2fb7078517dbc0dfc46def7edbf6629ddb1a9c23139dee82c3948578874eff8cfbce1144019234d9f19e1a8cbd355fa34d8a1fa8e5da67bd6132dc0f57506dbf70d56cd18d06abe692a1ac861542e09f97fb91b989c6e5e048f4345ec1f25cd2a300fcc380594a76d3df83e4e8a16e1164ecb23b622e3163672bfa0c509eb279534a086edb380cd82f34156392469f92d8451febe14d9c69f13e081bd6f9a4ed88907e0ccedb19a2b5d469aed0858d9e2d84ee23b4790a5c88a41cc3c578019c222d2db064b4cbac4938305d88b74ba1224b80c32d9ff92f4f49d318a8968e7ba715d1f60f90fe6ef5c3bb653ea1b35341331bcfa553d86e84559c3ac5b43b14dae588e1ac5f753b634bee906bdb5d4cc5d1bb5ae30b67850ada793d5ca4e0f5f7d627b28371a276c1769e4b47e01864896eff68c0d2201bcde123b26dab6d39b579e51f663f2414c82387bbd8772bd7414f60058ba5766f1d09461827e6171311f78c4080715dfe42203b4cd8ec0561a708e7de459c94717a1714001bfba681d0d9b7bd8473dfdf7e9ad6225557e7e299c31c78fe8bb68a33ca33b5281ec80a6760f5c4d0600a83f6a262e7d604b74d4518b6f45640204c03b3d611489cdc066feba191088c2bbdfeca27af5c4dc5fa5883465ad80850c9294b660d5539a6b37fd7e782cb65a066778ad7a4e390a7d4c43c5bb9f49acdb5307440828aa758ec2452ff4d0f99d0ae5a6da4c1f2000cf2036864703bfab8ddef45962bec7504df104f4a6a5601c11bf73e8c50a676c33858826e0967a5e9c9305945911885286783437bb7b29cc180f3d27c1089914cd75b2c9169bb31e78fc4f34dbc896787c7f94a2fa66f6cd3a6ffce39847e0f3d4439f6332dd0abdba272c8901c7a3766041add54dd777429346a7a1b6d937182f44f8dd21f538b63a4cae272a0824283d3a78770d32fef816c86f3e7d2e4a7df4096b5e23415f9725f4104ff93b89447dc465d8812e55d891d37cc9085fbb307ac0b3359c96b4b75d7fb62a71609c0aa19b8cdb6646e9cd47c920ac80b6a65b46ee4d5e16ec8ccf9d34d37ac9098162f686846f435504ac28d9cd38f5b2cf686ea266ab05778d885ca5624c65fdafc636cbecaee9f2bb77302e0262482d2d53a2759f7369101a23850a8a189dab8167b086134ad6b02cf63f7c55b9688ff4b99ed69fa082f17beafd0bf1d9d282fb0b9ea73722fb7a62ee84b8e2356a14297f88b5cf752084a05296486d8ee2f121a4fe21107ba2ba5da95aef16b4c9e04c37063c9ce4dc4273b7e7359c93baca33a516f83022dc2695aaf3fadab7d979c1063d7db32f3111ca8f86d53b7744b2a06038dcfd049747bca2a00bec1b84c70501293cac4a70ef88adcaa04c8e8a30820d3a3910bb8aa38bd33727b5e77398267633b5038a0d989446636477b42d51ab2b1f87bd53f87a01e06e1e2dc4e8acf727fd1f408e53689b5988b6337a0d527b4977eed360b67bc0488b96e49827a9e180984cb7b70d9b7d9f61e4875af0659e8b5af850c0e4c16130cdf7fe8db6be564e495dd987024c4beb04ed02461e25eebe7d6268dd128e43fd090d9b142c7e325091fec25461f840d95b0597a9548a9d92c6241377ff11ea00ba54460aae445a808086e1d6c2129091f8f9b963afc1c631aaac65b0652d8606f7367fd3aae78e87edc0c7b6433c59035c4f0baba632d10bf3544718cbc43739f7932dc96c777fcb408c66743e0bcc8ab27edbbea0190da250aa69ce9424eed1d0acb2d0f4c8e76e3189792faf3a5b4c2bcf45235feb4a8e733cd0332c16394ce2d10e823d638aeb305878fa187de7070a337ced145cd4c581873a80e3e269236702416453ac91412e9a59c8f4c2ce5834ea638113e87cb1715c2f89d8395ece72b4464555ff1360533ffc6510c9cf50038839392291fba0ed51768f84e639def04de22d34d190c559dfe204928e3caae88d8eed4ff0b1c99ea61a7e4c153ad8faad81041ea7071c84dec7d8e7717baf5d0f5a4495a12be2eba768ff7c870d01c306543905fc0306eaf85a0b10070d8517148b31363aadd91463e079136c48a86a9cffc2ca55bf478be9732175f18ec3d8df939a0a6f352774a7db8bbbae8258a7c4c26e362fa0eae295e68dca95698f2c346edc44c59f1dc59b9864a1e508dfd88fdd6f8ccf798908949a625c0e568b2d05414cf1b856c7198929b5f1efd3feeda533b3eb7e1d1f1fbc8b3d89714ac12844ca93a089d7d71992dcee6cd04469b7234231aa8d7b1d3e05ccdf30bf9c089b3cb1e9a4b16b0980381c22b196a3aa1bf53c93479775fa43d94ef871139adaec09b9112b0fffa5730e722c720a98d3a4c03d8186880fab3b7d92d641eee2590b106b5b700926ea8e4763029533593fc6c18bd0d44fed51071fae6ecca119dd84f4f73b619f266e074020d1a1d2933363c454d5b606c859196bad004090a1322283b42475b5e72959dc9d2e6edf10103042224252a364d6d888b90a6adb2b6c2c3cfe0fc00151a3b4649505562869ca0a8abcbced3e1f0f5ff12253b50", + "result": "valid", + "flags": [ + "ValidSignature", + "BoundaryCondition" + ] + }, + { + "tcId": 39, + "comment": "h_ones above the limit", + "msg": "8901000000000000000000000000000000000000000000000000000000000000", + "sig": "e3ffccf4e7f2b12a43b992a90f86d22fb1cbee1df5c46dc82d8272b4de2f460f167010abdd659d79133dd77f185218aebc119e1f01b3223bb0d07ecf4bcfe494f59745013e928b71e25f4992982d32bbd8f38f621b415cf3374b70b45b116346ecb10fd1da306a670dc646f3f415d263121147d4dc2f245727d61547e00fdcf6ead9433d74e144d97c9c26595c39d37d4c5a8a8d778fd2c1693f197ee9d3f3d4a33e8b12f8b8eeffb9da98da312c63aed2e1a682d233810f545a34579e66e5a6325a55d09e9c84b6796e87438ddaf71f86dc6fe61f084b8bdd18df515ac52d854a7d4867ae2b3b3bd7aa2eb1185afc997049c4484c4eb911d358e37ea4fe33b95bb6f9a3de7c0778f151a8384e9823b3690663822e27937b54ba16e38fc330f642ca6b33aff82a4479a88f0139cd89b03a5c02568218653bcc9b7d8fd41d3fc0c094e643e640362c225aa4dd9a73790c802938ee606e7a9e90ed9d9a00ebd02e7bf9a9a81ae0f12b6767d909683d3e5b4f2ff72701bcf80893f6e208e5b3408e903fd75b8de46f251ff5323ddd92b27446b0604f25c7c40c4539878a4a49dbf2aa62dfec63c3d132717529a48ba3941f4e2317c3362dc97f63d320a91f42c6d7b89b07d87d013e7a544a5e0bcacecd85545f2e0976e71cdd498d6907c043b5838c0046a03033d4c106f79ed9d2ef970976d6da77a67d14c380cffbb66f070de7cd239555be8ff29045c432fd27af5c3f2c9587d8f849bcdf58d31ec50f6a0a712870759ab0b264436595665ae9738b727ac70eb4d98a29926f17f77136f2fc83b76dbe0751733d470798d211a0432b2e7c8a4c6f3b5d17bf6ad0d6b9cb4e4569be48a51baadcba573aa3b06974324ba50b319aa6f895b0cfa35d7270fa3b2c34049294918d081c8951e39af5ad62ac9d4a53e5b4fff8581314e834da7303b488088f21fc9955442ae9af152db0a9ce2e9067c4b25caddeedb51dc384e252124fa2e93068e512f79d1ae4bbd76afe8c4550f4098dc55be151a8e4d12266ad5f85409bfb0fbccb725628deab37138c48050476274b2588432d18d1d1f9115feacdd4245fb3f3e5ce24c3efbadd3d7cd3428af1281bb01a3c0f886c29140cd08752f83748bb7cdeef5ba0277049e1a31906053bdec35279dccd42701c66432fdeea57bacac1092760884952262cc841a4c51e2a0bd307d39bd0a3933d026fab340dae8f46600588eecee134e726a45d3ce53505914c182fe33e69a47de914befa9daf0d4c0d0e26b65aeab01f3f71ecfe09458b68afb9d32c4129e45e4c1102475eedb4d88c902d0b0147d39e10f14af5ad89e11faaee86ba3635ff979a895fc4a6a0f6f359eaac0b27e7e16343a0c3cd46b279881b9e7e1c664f27736033b59cf6072b651c21b688d39ee4759db86e1c011e0748c097738229d9924a9e378550707f0e4b14c891aaddeba5e2e4741c5b41497be978e82a47cc7b42455276c0986663c85ec643b6bb679f696b71138e1a79bde65b108ae60f0b04a95431b5d9f236712f418c470e9bdbade1fc2050643d2514c206c04cc695465768e6037b2def3477bfa2374d27bc83db33e38e3be662041ef5b896d4c5baac0369c1bb49bd21a9cf9183979600e771bb083e7dd4de07f29bdc9d419de6c45e485db4c5877f753268391ab83b50434a390f6ca1699aff2a60f4658bd8b91216a662951f5d269bc1a80e4010ac880fb9b55fcf3ca3d6f6422a04535e89f4f2532ceb9ada9df3b68ad1719f86c2a33be22d9482e988acc4687d84e998723b3a7c19f467a2a878b89514cb550e499486a0059f9e84f21cf299869b627164169e8440520a8b5afda3a1772b835096b4ed725f9041343d71e3a0a99e9ba3f9e4d6049bf92aeaf6962a6c071d766f330c7016af6da69f32565f8ff3586ff4ee8be478dab4a46dd7abd3b29deecb2c2217ce99c3fadd7a1b6fbd4027810f33efede0a6a501f7d658080adb42fd765c1a1dcedc01b514a66d52474fb4b41d943e377a08b733c748f1ca3c4ac433e87d61884acfe631c1dd34bd9f55640718e1103b5a9e97b3c8b342a0e5a783d2370e7253d5610d501989ff9ed61f86c4daacbc2f64e5ee1c3ef70152f07f89297c68f51ed060d07ae00451bba3b0050857b4df752a890cf67c0f06517fd711a0b64dd42ba78b87a793700c9456d5a44774716e387b64964ff536fa4aa315e55711899437c7cae4999d219a6dcd80ea4636576ac6bc660cb7b918de53a0fbca15ba91967aef30f77c889a5e54bf86f098d67fdd2cf8babc03f56c029b6136e18e6700c5295533f5b6e11c49b5d2e5030adbdc353be980c8f8281d0f18e2841afb5fe570af5f8934d819fbaec0facbf7e15c8a717f277aca5221cab32b17dfb596c6cacbb1359696e2bf0389bfd9b8e28ebe2fe30b2b3e37500ee8b7ea33a3923c96d32b124efacb25f744209fec00bc369665ec56ad218f8a5e637b762052dfa0b7c45ee4c012d68d896d27750adc2046fc88421cab4ebcd4d409a3bdbd8ff1b50fd2267e5e05786c7670df00449586de021f30662bdfa1a690c217720a3dac3f89a24add328b8c53aeb73e5132d7bec500fb3d430885148bb683f4c8f42863b0b61c3de30a960783c6670a931941d3dbdd4e47b1a7c151a51618632c341ca8ee707f06e1a36ce0afe7e5529115875f1599dbdd06321f4b77e86c84b37e8c4816b0de7eb0f6cfce6daf085fcf75f386f35db3ff757d813f914faf3ae19562bcb233b4aa3b2798311faf377dc5cde9f326636d1f95885bad123c5e6fbdb717c6834ac007d805ecbdc338492f3aebb772cc4001c7130d95847fe48f904c462aa30e5b3575289111792573ea593450799a44fa9510c7139a35230815536e795cbd0687642667b557d45ed1e4725f6c5fca47ea0267fb3d1c3cea0b315bf09173329658999103eb1e7b52cfc98303df20e8e4e1451bb3906243a3a3c5ba2f824a8b82336f4eff049a2d27ba27338fbaee38ef933d59de7aee74919929ae97b0c3fc21af551d377256e77d7cdadbaede3921f74e72ef579f2fcf1a9b39c706ea901651ba685fc9885c53ecbc0c145c997dc3d15f98b51801e2784972db912bf74a78bd802ed14d66c763512243ef3eee1b0446aaba024da99093600556ad7e014c00d9cdbeffdc79edd55de91183577ff3c55cc83614f525389b99470f9feb2168a10f43c4b42400c2e2752fb832c73ceb0a7c77c894f30899f1613d6dfd04f97e8ff14df0ba3414d150f00813c9d53984d00856430771d7dc44afa30f66d7c6a017242c3d4564748d939baae10f1b242c2d3336434591bdc9d7e6e9f40e121737393d4d56575f648098c1d3d8e319243a5d7a81839bbbcecfd8e5f20000000000000000000000000000000000000000000c1c2d3b", + "result": "valid", + "flags": [ + "ValidSignature", + "BoundaryCondition" + ] + }, + { + "tcId": 40, + "comment": "high_bits called on the edge case", + "msg": "9b00000000000000000000000000000000000000000000000000000000000000", + "sig": "14ad2c1c97665ed5040c10693804b3b690c744867dbdfe1c3daa55f2fd0f1b143d2a9d1de99daa5dc9a6d4ec76d2909a12ad8fc5d9c685d7357d3c30097ac9dfdedfbb102d020a95b0430edabc5aa49b4234291d8ee1f40b47b52a52a5218a125446ce229d053428a3e9009dfd128fba967994acf4e0894be303ce632132a6b7edac18611968be878783d5abbff5171c4566ebd092d6193086c2e98886f883f6a8847883aae3619074559a6aac1daeacd5b3037da0601a5c52d23890b541b94282f44a9d4d848722f8e1a33a2f9650ed189c73a933fa695dda9aea7b0d3357fc2ff02faaf762cc72e2318a831e8bb9543429fba1d5df9f5a66b3d533aae7b7838ff01d0fcd2c460e2de8ffb7245b81f5feb74cdb904c58919ec540221f7601da7237084322d2fa1c03764601a8574e38d56e96bf652721bcb0c1db9ff8ee5a537bd31f2a37ad185643473efa5f856a3d357d06d4e7763efe2b610b61bd097dee4592aaef6755cd766f68dd8ca49275176fde479f41f848511d607d875fed5f54524d9bdb07b29804e6fa8e90a90773f5a8f7c45642da7c1325a934d643a2930a31cbf76c8faf09d6df014c15f9fda1619624f5db84f8b8b02a0234332bf82dc697b5034e38099cee6097b40990f68b14b0962d741187d617d446f15e3eb0fbf1a4b9e6bccf40c42dde1c1b7051ad532608233f243fc2e01741a49c2b7f37b4f8b547988847a9973b8278775c75f9def3253e44c8bb8b812685795c1305171ff239818382467924fd1e4d9f561a74ffd1916e0d094fd06f4b2f4b71cb0c03931189e4f68a71af1b482b81532aee99a1816637c02e5a7180d3916fa74186c6db046f2013482564a927dfa9beeac233e5c1ca108583f472e1443c8b851af7fbeaa01466f983cf0fd63fbecb84372552c1d907d1f16eea3cc97c376db143d78123faaac88fd810594f938511064807b4c76dc701a08da75df512f40a64e3bde11367295a005adb9a4b6e642cb10037b1b2a4d0fd01fc26412ccd9e602533f30644f9ee96a48415da0dc741273ff9bf799a9727d66bdbb741d5aeb76608cb0462c64205656d07bb3f9650b8e04d88564cb8f8d7e1adac82953e8bef88c70bb2331cab7eaaa32477e9b6b79ddb62f271077c484978278152f1c0b302ed2611f8c6ef854df67f967e29d78d0dbdc57fb83c06a24a78f448ed0b889752e15d8d8c60d7d7f1a462566d95aae3083e0c8fa1ccd59320afd85d7309c708b52ae5f5e7bfc84e60540c26bd9967bf85725bc2f14a2b14aa45d418c4034c3eedcc4cfce0500d60d4047a4fe3b6cf617239f0801e43c4029635cf82046adf5ac49b44534230560baa1355f8672c9d49362731767b32916c2cdf8fec3b97df27defa61976c03ab7a362a139ef0362b03c8d3ed36d61402657d33b0b39e69be565755844804068dea5ca9633436ad6e07478b0c167a7a34cd8bfe24e9f54a88b58cad0fa0e78400b5ce62b94cd808ca30fa57d54dd986cefc9c5ec6b4eaabbd80e5b82c5190291d55e1c46a1c5a16a83fa7aaf0c46fa5af47fdb1ac3f7a31be6251d6c86a7b3a8059f04b5a72d617b37473d83d537ddc37bbe6aa9b1f172b1ecd2e45997310a2b6abea28be2b0fca9f46849e46aa62c32245efcd7abdd249834b96a1f28c573d033939440a82f5cc54461114bdb03be2d9714b2ec45ba46488a89dc845e7ea2ec2caba1b9d3b703ea85fa69a0f5cce881f3a12650af1df35083c7f8cc6e41df8fbaacbb944305efeccae3a81a88c04710095e2fdac5bd781e46e5a338388cc7a4a313c5a8ec6c33420b909851dad06c594827d6ac4fc1f4e368869a1f74c52394bae77e1e759f19ad9cd9377346d7ca946ed96cd6dd7986f7547deae380bea8411a4807fed7db182e88604a84b64eac1784ae5941a98cc908a0af22ac7a99ba78b1fe1ad24019952aeaf3ebf87ad88d5bbd5e793898452dfb33696b258b1df5846399466fa54bf304c4f9f343e61ffb704964bc25ad87b3ba44de5c8d6a5325866c754ad356b7631b115039a5a9fbced23d4c7f116a6f962289fb0c7fb76c7a7dd313c2b4c49b70df2146f1700428ca02ebc66b431aa1c528ff8be65114990f295a094c664768136a84cdde3b3c87b4b38da527c85426463ef74208415b36ce3ed71077a67fa5f4aca8b11b8001c74a7ec610f320ff23d594c01ac9f80419b3a1a85d497c9bcc734d5349f885b4871f8f5a1e2ddbb65648b88ab9562ceaf25d1018e1eb772117fc8c762a57308fecc7a389c47fc93d857f943d44a3fd576cb6a72ded99af04d1c211bddfaf8bf87172792e7b69c557a6a4a5ee3796af26f090004d43d9ff26166d249702fca3611e1fed1c3c178045c5f39c81e1480af3e92e195f16c5a5ebf2183a9f769bb917261d0b55c0429892ac5f1b856e1e8018f1c9e31748f2c5c664b842d595cf41d89587451bfb2cf1b866eb1f5e365135cb1e49afc5e689654be466604ab7688c07cbe51669a7b8a129201e820e70cbdf7431e879da8819a251e04004a9b8bf3f70d2ef5003890c1ba913b9aec064f16e2bccdf027d061e60915d8574e9317bebd091bc240ba5d3beed20246159ba162163bec026570cf3dbcfcc39949b389ec7b01da09a7e5b1bc494cf5c8a8c412125b99980ec5cfece61a0c602f915e337a995c52975abe11238fc6b3f83ec1a419c0998e011c9d5e88f21fa43f700e0f7f7e4809de1c47974069cc2961f08fcb7a24f855cc1da17ae8909187aafd2b2a152c6a3df593cb29660e6994be5505e70f8001a75f77a6d4d96a783ec365c41541f5ca9e3d73a28550fe61e7e095d565334b8232f73e378b61a8d259a6147c4aa82267300777272ee8f110822242f75ae8f9ae0f428fe9c5896f5e2636560cbd5b582c94ddf57f54880223f37d55af00b51d55bda3b253e595566bc36906296069499e62d8b74820e0a47ebbc01faef06572401b74d97f0fb08af5016f806fd641bba1856c377d11cee714133f3b9905e4fbb2c0dd40ce621cc1107346c86631e9354ed8a0f79fba6c9526cdd50caecc80c5c6d5bb76f04e3531bea9643c7631aae6e1ef161915435a11cdd1dd10d3d3ac7db99bf33e6f2d17ff81ae2a790288ec1cc019647304f42a3c74e4a77f5ba737ce6dd243639548ed7ab9f37e23c957afcbe209bca11c9809ceef7943308fe0c9204da5b9d7aaa32e5b94dfbf151d0163ef748fd9aa1981cedb33d34266e5e7464a2a816f81c19a01b5fec061f457634cadfea1ddde077d3ea1ef51d3a7105f5ee2c95109d9830f1875809193959fb1cacee7eff8fd0927283940445a6b73868b8d8f909cbcc4c8cbd2d3dadf112d2e57606775799fa7d8dadde4e6ec141c2a3053636c73a4acadb9c1c7cdd3e7f400000000000000000f263648", + "result": "valid", + "flags": [ + "ValidSignature", + "BoundaryCondition" + ] + }, + { + "tcId": 41, + "comment": "low_bits called on the edge case", + "msg": "9202000000000000000000000000000000000000000000000000000000000000", + "sig": "b252e6bd2516e37d4af46a73b43c3037a1c593e1eb7c1c7f6cf3a8a143e4521111b3d96d8f36a91976960eb1f2c89f56143290212cdc89b0054581939b976c69e1fb75245bc4199fb96fb61931b251e57dcbac4b800d27c85d350cfaedef216526713abb28421d6a0a5ca58f0beafb78aaa59c8f9694200ff359d20d0b9205904a634b0d2409deaa569d0b2d06fcab0b76d755a6844d3683a8ba6d83f0e9c747baa88d0b3438e3fb960410d98ab03881781eaadb5558736f845d26bca1af3c54744620edc980738129db3b50c8150fabe2e3735bb2a324c46bc4bb34d38ee22bafe32048ae78c4abbe00814b92efac369c0f3f5edce46bfe6318427036f8b3d4d2e5e5d53bf437b6c8247dad39ea5103f30ed96eb8f8480c8ac5c46a58c94af5a0510eafdb563dad640a43150c7c92bb297d7da49e2214c24dbb3750be7bb853fc7dd28c34c3f1bf4d0e61b08a52d403ae6f8c808752056421d78c9a978858112e641a8ad98f9d2802efa4505e68165369a7eaabeb89c7c404b8ef247d8196b86167d200caf4c2687b2a772f425833292e9b8bddbb171aed9ba5991bea0fdb8b0819ca549b1893431c36205d39f5a547ab908e3ae29df39cecfc030e23a71c7edf1b34ffa77695a139f3dddb4de7bc76ecc9258ff51dd2d34cd2e3aedb28b3178aa98b126a5df1086d670fe7df76c5e6d2af96010e65c43563f8f2af0504ce20955c8ad39a06ea23894bbcc634c9bb8ec4f5b05185591d5a7ce5530e8b1533d50d2c1b8eec0addff5618f242e065085785af0e4bf358abcd475183f57a116adf48a0f757bd3136dc951ebf07e54692db216fbcc7c2959167db726f25b05c8dc402c09e9456575e44b045a0fe078fe88788adfe24b5b8709beebfc13da958a3c0bd2a61a779a2693cb9b4453ab7ee60d589ec238344ce5bb5a9f5eeb1e76728c6a784ef5aca29e70b54831d54ed6873a8db611cf54ad6993931e560845834d2c28c6ee28d96480ed709b5a02f168c899d59960e80fc2b77e405198ea22c8e0a0f1cfdd37460d51bf980ad554a3fcd499c8b6626bcb4ab11a8a17a8b2cd833c05a52786f1411aa4b859a86028e2f14e4e2673b952cfc43b3d21d0e466a7219a3a34c0d21f1dab597590bbc6215579796002d8ad399d74773947da0d610c601eef3831b1769184f03857ffe754dc746f48d650fcec522221337dcc0652c64dd061e5479ac98941368d0394375db2d54d924e3f0c0ac6d1e0aa4f3448a5df130c8e49893064e84e037b9b3461ec8463be1224dddf06c41e04a3d5a4aa7d1c13cb57719d9a032d10b13fcb485e188f280b664adfd00a2155e6496ea53b2684bc0e6237fb4dc2155a91aa808a121f851175d06dcfbdd9c572c0d0274c3f7fccc3f766a19f321d2218543e55eac0afa9cbf1f865def8e8ab5d2517bfb51a9960ccd0cdfdab1b30302bc48f8d15f48867a78d18ab50996ea63fda318e6e51f831b2030df27dbe0163e9d4f8062cb4f9cd1a04d8f5029c0dd1d2fca7c98f9ec48a6b837c5e71a4661a5c84be13aa4a34dc1aaf3e7e6db4bd4fe2bdf18dfbad70573ed0ee5b368400118d4770d0a801d5275c4a78357f9e23f0c9872a11331a095081d6a14d8cd49bb33dd3d4de0fb3ff08aa2f220e446053aab91ca3ba5ef114644ee751e91b5ae8270d9a8f85007126611224a3263db86c36fba97f448ff2b5dcbea2ba8bc0d5bb94839093288cbe24355e280a56cc0804dbafef51d54c5569aa5db76e61320b0db331dee66dd8b65a62313d32e7175d281dc64eaf802ea9ac7e01804c8be8b59610690e794bf63dedc14e9417f6b7a2fd2476b937694958f7ee722e558946103b2fea2266e70e61af782adbd9780e62028e6cdc13167e12a288c7a3890a0633d2a55af112f583cd7650ec5ef55a775211aaee51983547fe3cac1565d3c99b1d3036ee0d1e918ed48915ee849a8d880732ff80f676a27512de5ac60c7f4e8abafe50a7d2e5f69dd548cf5d18e2b63900f02db5354d6b9d13d696ffd575c5654f75747f6c124022dc77dc1cca94efdab2bcd9ed4ad2b718b25302f0f0f03863a0ec57bf3510a508371cefffc858bcba862fc554bf54ba9323d90534dbaa57f1edc2edbe8bec87be2de4cd76436ef5cf63f4b034fafa7e77697476407216a6d21cddae3b4b60864d23b2208b2c354858bba959575cc5a81bde0236f7da09fb4a7ef251cad986ec88ad686b18329c312e9d841e7c9dd1e11f7867d5f92b86660b6063383ea9c0234cfb30afcbbb4f60ade507e7bbc7e90148433ace1bb8642fa9c181f5e78fcfd471d5606eab4ced729d737b654bf62b96ea45531446830c1bd21fe667d0631a003cf38e15a74ae350bc03f402fbcacab99e430813df46e7097c90942d539efae6df6838d692a64258f42cbc8c89813527e59bdd3a1033766c72e6c0635805d398cfd5c79d835f0d5325cef4dcaba7e61d8363f2fe42b7788674972713adbe0ca651a984d0f4f670ad7046010f61826726283e827f5b2765a68fbf29e6dc5b156247331d13961ceb90920b2ea3d4310464483747150bcee7f8e27e103f139101ea04471fd574dfb555567e21c6c2abd82f071f85620507e493eaa766db970390043ac5e375e8ebd84a20704171b8bba1a82cc8bd109683a21b66b5a7ab2bafb547eb68f4bccd12d3470ab7b11f6f1742a5de7d36eb3606f069961b00a9fa94d45c0abf39559803ab23d4d6b4ffcdab613a86b3242f6bdb65094ebb3b8117863a90a7f84d29c9bcdf430d907d03284d92035e303f663b653066e669b108e2b206d2b5bd87b8e4a494d948095adb98422e57ef993a0e3c1597c293ef05d599192f8981b389f9c388596410a849cd7d2532a64875288f5a63eef829cc0a853eb8119eff453bf95b443b36741e0bf37cf8addde5a939b2b01c0230b906bf2f649f2b1530f2164dc5cb2c611f773168b894264cc804122ce99ff399f9317fdc78c3b20028b33108dd221fedf7bd0b035654016b33818b49be1b9ed900cfcdf957e8fb323d25b402d2fc87432c9628626d9c1ee4081f9e9a5165c07c3053bca959b54f7b19cb86bc4fae9149a0cdf022a2f66d4887942d2c5d99bbf9c4c8fb31e48f38b11142ce22ce054709eb7fa16ef3ad6a7f65b910ad0ef780bb0e908b96419815046a8145b8a402640a776290dcb1330e3a25ac649406a22dac83cbc1e9c4aeae7bf3920fcab0f524505e3a124f8d2b47e58827c876c9ba4bc56f2047ec2e6a84aea029ecad11be74700c5b7c134d749debd639c0201f30008082527293a4d5e787f868ec9cbeaecfa0008202f3c3d3f41676c7b9eb1bbc5d5ff022c2e4b52737aa4abb4b5b6c0d8e1e7ec080f181930798388a4c4caf70000000000000000000000000000000000001021323e", + "result": "valid", + "flags": [ + "ValidSignature", + "BoundaryCondition" + ] + } + ] + }, + { + "type": "MlDsaSign", + "privateKey": "5a04d37a8c83d373ba07da5cf96806002e3635ad8add42ce6ee9902dfc9a1f271d69371fb6d0d47fff2c2a3e14efdd968b5f906525510164dc0922789de9a364fc0730efa7ad64ffe1d5d53b21c5cb1f12aace43f173758ba07743c66e269a1c9121f577ff62f3749ca9b88040f2d5a0e7310302e921bd0326e00f5e14f75c30c0c84851042548024540024963940118802d9136891c238104a301801020a1128c600882a4c68584008950344dc00631e0208cd228416284642342661095281aa72d04038d90908400b749182121cb842c41202801826c4298008c144e1a9004ccc26142460501298200308299a890a2982063268c58028e24c8649318480b440000c4314cc80151460683268d1bb27051228a9a82290832085b128c542681c0306c5c168289001090a605a2a62d41422a09848060168a00236a94c870e4264ae10040e48451d280416232641c23050b254088a4645180901c000e42440e099865c310425a9489882246109645a12869c0c820141551dc424c8b8220e426000b4589848429e3900889008942c28c1142320a244c60048cc1c041cb306a9a806051480c02c885c9a240628288d4469099964544c68502873092a66c9800510bb88803945161046a14332a8b462288280213c24ce2464dd0289250084284b4611ba28550246c91420921422061142999908193344141228edbb4504340881b02242106626314015212645316620430645ca8918aa44810242ed2102083460581002910092259846410035022082a44345049042513a9081a392012b48122024d0b48828ba23022b4210b1029119965db0082c42662d91080cc844843808092462149a605c9466a4b0061c48025dba26814150d419831e2907199a8316098896042821a178a52042008a340d1a66cc3960ccb2002cc246e08004408220498047084044a08a730e2c68d4096498918126346482406640b29418ba6500387450495118396701b440618294143108c202071cb022603a391a3042c23a610c80691184064c0106289162e0941905338100908106144110b3748c0a86c440470022568583688121784049380cbc84154023098022420044de3140a499808498669838645c22824200480cab00509c4680036628a30906148101233480c0320db482501412594b04de1c4400a24651281455a32815c88480926854c940514380212058203a981122708199970c8c44d09366441380259b220c1b6050b0172e3027119150c5c3757fe8a3f59198c98f65910de7754d842d37031d5c90c98cff380d9c7c177b1e305ce91c8bffe35ac4275795a65358e28df3f737fd606f4bfc72954a23bf1d7b866f125f43bff32343f2fc9856a1f0005059a64dafe0421ab429eb9d655a8487811333b035966469ab1c10685d540f344f7290fbef8692a94b7a6a2d7c701269676f735c477c25474d6d9b701556b8e6b2b9628c2479d1fce7bd6b429dc46d66cf85aaf7ebb22052dffb3deb96eea46d12196148250a144a6ca4605a7ee968931b3288d90c8484e66e910bb25d54ab853aafc7f0f62ad44b9407afb87eaa4f9b8bde42c617760596bcdf3bc65574af5b84c23fc638ef63b7569f8ed488dd031dc9e128a7355f8810b00d48a16226cf8551bb267fbd29261652f0949d556b24fb8efa04e18a9754fbba829a487df932c04b2fca3de1f879e18fc02ea32b845a396266c6fc8ff29e4c898590af3fb1269a8db9c05e5eb598b7c442435d28bf97e34897ce9fc238f953f83fd37888a13487f3a23736b19585ef2c1d8c0ab66c46d1ada3de566b42dcadc828f386206ff5c5fce26082eb8254aeda43a78249c85f56df8f4e3ddcf0cf5944c005d52e0435e3596f7e177861a20f6bc8560b98f04e30e1bea9c1927fc34eb45875e2d72456bf708831ac7bcebd6ce53dc22ac705ed41fb0ee8817d98e6ad054568326948cdfe5675f286cae5f5f18e918185ef8c74498c836ea1c6254a831ac4f51bbc304ebf4b81c18b93f04e31f5f01ae250d5202983dee0db083543cf1ee6387bf14add56af738482356f385e796641fbcd386ea97a2fc5fd375923001b2563e13dc134b3cb9b2832cc93e01a962f21ff96ec31fddcbede9c665bb13b6acb86fa167fa1285608f149c4cfac948e283dd2c9d0d63f788d19c0267b1d8aca3bb414ed6772a93c53878e8da00792bd4fe0ed2e454e07ed6b03e671fc515dd318d53d9c578c1b4c1210961f6ad452deee8917abfa11e5cecce8552c16653d04e8c29d5d95bed293df0adb56ec489149dbba8d0da76ab58a3328bd322bd55de4aec2d9e4472005d38d9c38029a6de42e24525518f10e51736dc5eaaaacb30892a9e81512c212e15873bcc335adaec99cfdaa4cc12adf4121523ea8e6fb7075c59b93d0183b5c57b5a7ac70dbbe734c57904e6557005e53816a0d09c91919a78428e21bd5a45752728465d2c554047e635f5ad0cd35c248c5b8edee9c4da7fff1d7bbbbe505a2fd8ccff3f7fb7b51930c58f803d81f935dc3235f363f3494630703972e5bb69ee5e23d24ebeac041710e792d40eaf6c790a610b2af77910535ea936c111f7e3ad792ab9f93531ff8d5af2cd82145660d2e0da74ffd77c7054ac7128d3d25be7d67dad076ce9de5b144db10aeed6487a6280161785c9597df0c7f53aeca6ac3e04cb180af727121b7f996704657496b2b0424b6b11adce9f3fda81a4aebd3cb20bdf815aa620bd9513c7ce13325e9867ab0968db1eaeb985388461147ecf06a14a8f30e7f5838d59080a99f721729ba6496039773092a5c35eab8badaa88230a071e3d92325f1c50b402d29e2f9a619ff4e7baced9af1154fe3717b0d314116651f58471d206955df097ba8fa1c4438727a64145b5120541a9177c8f99adb440f92dea0c19d315ed23e214a321881ce2a13ccb942e683235183f0c2b5aa21e6d67832becd7cb4b996c985cd87e4d01643b20cd35c0b0e0c1378b1ff51b52be92151ff00ed880e180244fae51bfbd88d5ae6c91ef6195b467b3ea50cd3a600653b47e0b8bc3a8ac987b0bce1fea9afc81f43adaf6355acfc02cec42a5c2e196844edec72629f9eef0ccb38e9b08a364a5c925019880001573550739ebd0d2bdd3b73715c24321bb6cdccbfb7bfe29c0a30a828c1fc6dea39d73fdc0c81c4758c58ece0de893a9e983ca989a41b8b580fbff69d06c139419a70e4805cc5926b9913ce46c2b1d14030ce56b96346129a4e8cceb8793d7b783fff1240eeb6b96095fcc51701faa3c5a422cfe35f74f29b7556252a67e174f864459e9fa9edbb55b1af391f0d8c8253888d8bc6e6fb5f4c73eb4980b01114ece90a1e8bba96c99c56673137e1fb0edc18257df7b09e49753034f3c8d3a9410a9375c3b411500bcc579bf66f2839250670953e7b6423157a12b3d68372c31d6242bae84b9f1d921ded5cf6a56e4425d0fab6740355f2339fd895b4a81b98d541cebd4daac495c5f51c9f3336da9281a2b83877e33b90da1a0af414c2ed31bc154c8956c6c9082761acd8fd68d2935411c134cc45224024ab5f0c5d39bfc091b5b09f5c92570afa77167a4940b1a832528eae665150e8f310b", + "tests": [ + { + "tcId": 42, + "comment": "short private key", + "msg": "48656c6c6f20776f726c64", + "sig": "", + "result": "invalid", + "flags": [ + "IncorrectPrivateKeyLength" + ] + } + ] + }, + { + "type": "MlDsaSign", + "privateKey": "5a04d37a8c83d373ba07da5cf96806002e3635ad8add42ce6ee9902dfc9a1f271d69371fb6d0d47fff2c2a3e14efdd968b5f906525510164dc0922789de9a364fc0730efa7ad64ffe1d5d53b21c5cb1f12aace43f173758ba07743c66e269a1c9121f577ff62f3749ca9b88040f2d5a0e7310302e921bd0326e00f5e14f75c30c0c84851042548024540024963940118802d9136891c238104a301801020a1128c600882a4c68584008950344dc00631e0208cd228416284642342661095281aa72d04038d90908400b749182121cb842c41202801826c4298008c144e1a9004ccc26142460501298200308299a890a2982063268c58028e24c8649318480b440000c4314cc80151460683268d1bb27051228a9a82290832085b128c542681c0306c5c168289001090a605a2a62d41422a09848060168a00236a94c870e4264ae10040e48451d280416232641c23050b254088a4645180901c000e42440e099865c310425a9489882246109645a12869c0c820141551dc424c8b8220e426000b4589848429e3900889008942c28c1142320a244c60048cc1c041cb306a9a806051480c02c885c9a240628288d4469099964544c68502873092a66c9800510bb88803945161046a14332a8b462288280213c24ce2464dd0289250084284b4611ba28550246c91420921422061142999908193344141228edbb4504340881b02242106626314015212645316620430645ca8918aa44810242ed2102083460581002910092259846410035022082a44345049042513a9081a392012b48122024d0b48828ba23022b4210b1029119965db0082c42662d91080cc844843808092462149a605c9466a4b0061c48025dba26814150d419831e2907199a8316098896042821a178a52042008a340d1a66cc3960ccb2002cc246e08004408220498047084044a08a730e2c68d4096498918126346482406640b29418ba6500387450495118396701b440618294143108c202071cb022603a391a3042c23a610c80691184064c0106289162e0941905338100908106144110b3748c0a86c440470022568583688121784049380cbc84154023098022420044de3140a499808498669838645c22824200480cab00509c4680036628a30906148101233480c0320db482501412594b04de1c4400a24651281455a32815c88480926854c940514380212058203a981122708199970c8c44d09366441380259b220c1b6050b0172e3027119150c5c3757fe8a3f59198c98f65910de7754d842d37031d5c90c98cff380d9c7c177b1e305ce91c8bffe35ac4275795a65358e28df3f737fd606f4bfc72954a23bf1d7b866f125f43bff32343f2fc9856a1f0005059a64dafe0421ab429eb9d655a8487811333b035966469ab1c10685d540f344f7290fbef8692a94b7a6a2d7c701269676f735c477c25474d6d9b701556b8e6b2b9628c2479d1fce7bd6b429dc46d66cf85aaf7ebb22052dffb3deb96eea46d12196148250a144a6ca4605a7ee968931b3288d90c8484e66e910bb25d54ab853aafc7f0f62ad44b9407afb87eaa4f9b8bde42c617760596bcdf3bc65574af5b84c23fc638ef63b7569f8ed488dd031dc9e128a7355f8810b00d48a16226cf8551bb267fbd29261652f0949d556b24fb8efa04e18a9754fbba829a487df932c04b2fca3de1f879e18fc02ea32b845a396266c6fc8ff29e4c898590af3fb1269a8db9c05e5eb598b7c442435d28bf97e34897ce9fc238f953f83fd37888a13487f3a23736b19585ef2c1d8c0ab66c46d1ada3de566b42dcadc828f386206ff5c5fce26082eb8254aeda43a78249c85f56df8f4e3ddcf0cf5944c005d52e0435e3596f7e177861a20f6bc8560b98f04e30e1bea9c1927fc34eb45875e2d72456bf708831ac7bcebd6ce53dc22ac705ed41fb0ee8817d98e6ad054568326948cdfe5675f286cae5f5f18e918185ef8c74498c836ea1c6254a831ac4f51bbc304ebf4b81c18b93f04e31f5f01ae250d5202983dee0db083543cf1ee6387bf14add56af738482356f385e796641fbcd386ea97a2fc5fd375923001b2563e13dc134b3cb9b2832cc93e01a962f21ff96ec31fddcbede9c665bb13b6acb86fa167fa1285608f149c4cfac948e283dd2c9d0d63f788d19c0267b1d8aca3bb414ed6772a93c53878e8da00792bd4fe0ed2e454e07ed6b03e671fc515dd318d53d9c578c1b4c1210961f6ad452deee8917abfa11e5cecce8552c16653d04e8c29d5d95bed293df0adb56ec489149dbba8d0da76ab58a3328bd322bd55de4aec2d9e4472005d38d9c38029a6de42e24525518f10e51736dc5eaaaacb30892a9e81512c212e15873bcc335adaec99cfdaa4cc12adf4121523ea8e6fb7075c59b93d0183b5c57b5a7ac70dbbe734c57904e6557005e53816a0d09c91919a78428e21bd5a45752728465d2c554047e635f5ad0cd35c248c5b8edee9c4da7fff1d7bbbbe505a2fd8ccff3f7fb7b51930c58f803d81f935dc3235f363f3494630703972e5bb69ee5e23d24ebeac041710e792d40eaf6c790a610b2af77910535ea936c111f7e3ad792ab9f93531ff8d5af2cd82145660d2e0da74ffd77c7054ac7128d3d25be7d67dad076ce9de5b144db10aeed6487a6280161785c9597df0c7f53aeca6ac3e04cb180af727121b7f996704657496b2b0424b6b11adce9f3fda81a4aebd3cb20bdf815aa620bd9513c7ce13325e9867ab0968db1eaeb985388461147ecf06a14a8f30e7f5838d59080a99f721729ba6496039773092a5c35eab8badaa88230a071e3d92325f1c50b402d29e2f9a619ff4e7baced9af1154fe3717b0d314116651f58471d206955df097ba8fa1c4438727a64145b5120541a9177c8f99adb440f92dea0c19d315ed23e214a321881ce2a13ccb942e683235183f0c2b5aa21e6d67832becd7cb4b996c985cd87e4d01643b20cd35c0b0e0c1378b1ff51b52be92151ff00ed880e180244fae51bfbd88d5ae6c91ef6195b467b3ea50cd3a600653b47e0b8bc3a8ac987b0bce1fea9afc81f43adaf6355acfc02cec42a5c2e196844edec72629f9eef0ccb38e9b08a364a5c925019880001573550739ebd0d2bdd3b73715c24321bb6cdccbfb7bfe29c0a30a828c1fc6dea39d73fdc0c81c4758c58ece0de893a9e983ca989a41b8b580fbff69d06c139419a70e4805cc5926b9913ce46c2b1d14030ce56b96346129a4e8cceb8793d7b783fff1240eeb6b96095fcc51701faa3c5a422cfe35f74f29b7556252a67e174f864459e9fa9edbb55b1af391f0d8c8253888d8bc6e6fb5f4c73eb4980b01114ece90a1e8bba96c99c56673137e1fb0edc18257df7b09e49753034f3c8d3a9410a9375c3b411500bcc579bf66f2839250670953e7b6423157a12b3d68372c31d6242bae84b9f1d921ded5cf6a56e4425d0fab6740355f2339fd895b4a81b98d541cebd4daac495c5f51c9f3336da9281a2b83877e33b90da1a0af414c2ed31bc154c8956c6c9082761acd8fd68d2935411c134cc45224024ab5f0c5d39bfc091b5b09f5c92570afa77167a4940b1a832528eae665150e8f310b8400", + "tests": [ + { + "tcId": 43, + "comment": "long private key", + "msg": "48656c6c6f20776f726c64", + "sig": "", + "result": "invalid", + "flags": [ + "IncorrectPrivateKeyLength" + ] + } + ] + }, + { + "type": "MlDsaSign", + "privateKey": "5a04d37a8c83d373ba07da5cf96806002e3635ad8add42ce6ee9902dfc9a1f271d69371fb6d0d47fff2c2a3e14efdd968b5f906525510164dc0922789de9a364918dea69242365322fd296eaefe5f23cec6b947a09b199733e6d600bdceabccbf3e67aaf03b146ba63413ecf336870a5a132629ef701c803d99987f4c481a0bac7c84851042548024540024963940118802d9136891c238104a301801020a1128c600882a4c68584008950344dc00631e0208cd228416284642342661095281aa72d04038d90908400b749182121cb842c41202801826c4298008c144e1a9004ccc26142460501298200308299a890a2982063268c58028e24c8649318480b440000c4314cc80151460683268d1bb27051228a9a82290832085b128c542681c0306c5c168289001090a605a2a62d41422a09848060168a00236a94c870e4264ae10040e48451d280416232641c23050b254088a4645180901c000e42440e099865c310425a9489882246109645a12869c0c820141551dc424c8b8220e426000b4589848429e3900889008942c28c1142320a244c60048cc1c041cb306a9a806051480c02c885c9a240628288d4469099964544c68502873092a66c9800510bb88803945161046a14332a8b462288280213c24ce2464dd0289250084284b4611ba28550246c91420921422061142999908193344141228edbb4504340881b02242106626314015212645316620430645ca8918aa44810242ed2102083460581002910092259846410035022082a44345049042513a9081a392012b48122024d0b48828ba23022b4210b1029119965db0082c42662d91080cc844843808092462149a605c9466a4b0061c48025dba26814150d419831e2907199a8316098896042821a178a52042008a340d1a66cc3960ccb2002cc246e08004408220498047084044a08a730e2c68d4096498918126346482406640b29418ba6500387450495118396701b440618294143108c202071cb022603a391a3042c23a610c80691184064c0106289162e0941905338100908106144110b3748c0a86c440470022568583688121784049380cbc84154023098022420044de3140a499808498669838645c22824200480cab00509c4680036628a30906148101233480c0320db482501412594b04de1c4400a24651281455a32815c88480926854c940514380212058203a981122708199970c8c44d09366441380259b220c1b6050b0172e3027119150c155466bd8a3a09c659c3140581285735672753392407d41dc3354880694935725a2e1c6ea33eac254bc628fdc4827b3cc7cae8f40b2df4a54224c8024438954f5ced4927dba3e99a9fc5d9f5c4a626f22d392a15cb5ba94ad672d2dd771dc1d49dbd1a95365d556234a16091ed47a4e5b1fd7b51a3def56ce92ae80e342447c69277ec9351cf1821e14e66e08c93d736b4fdec9bfb0e8c2bdcc9311ee68623fa5c46ef69707fe595bee869ecc581abc54b185e17df0515e5de44af29eb0de47e4873a03d857f8bc7caca3dade02300be7fc27dadb6a8f796df7cfbfaea35c219da5e9934d54d32172ffa6c9c2d9ee74d9f2678c7fe00b3bd79371ea094cd403bc30ebbf5c0051b38f8c7b36a22487c913002bffb1901b93748b18ddb014a8b3b3545cdd206a5c47c0b9851602e8d5533136f203ca6abf7f210cce7478d26d196fbc27d5b99dc11ea6b2a5515ae974778859ca4c93a399b8696d1e762c9f783258b528ed68a7410aba01675626d488d7d987e6546f924982b32498af4701deaa62548e99678478741e678cdce13157cb75cb381e00fb890236c142c54e55fbe02d0f9b3a88178a62ae4864ec9f823aa4d97c69d2bc1193c47dfb343d0e2e8a30b1f21c2287227ab101995e6b303696cce11e9f17256c74ec6044fb80230992fb2542f1e7f3c9c4256630f81e5220c564169b2b4ebbe7dfbb3d35fdecbd4a754451a69c3b25a9a262e3bf89e995ffb09298ae70b12cf4a3ffb2abc7f7c9b4e4fac00ef738af8b57a7f755cfcaa4a40f9955f2f2cef65b4f5e00a938bf80f9f69f5ba1cfacb2b2bca0ff93ce9db609000dc4f08da0d9e4049e593d2f6adc9f733f612f6dc73aa6336ebf877ccbac82d814c6513104baafe1e5240a83aac2b5737a9e3c7b64d00e903361a37989e3b70258344e18c210e26db6d0861826442e70a5a0dee38c1633e0814a076eb61ca775948c0051ef770bed996f8e22b127825fd9979a0ab5c5c8c1a284e5a6ffc914787933531e841dc86df3ca75597b1ca5b767f521e060b12c0bd2470af410c1428397f92d9b0a13cfe7923f9f9ad5074946d181ea34596c086c4d56ef5d6bcc2a358ce84babff4e8b3e91281b462ad7b0c3a6416c16a399caa1272db2b90a3ce2989680062c701382740a9d9890f63317a37acc168387ae0d43b4171b73baa0ebe64e3567a39b8e8d8a8daf67927a50264a53b7fc590e33b6e8ec05d1198a35f918d083792286a13b278d853db959fe29598a23c8569070495854d722c3075b5a6468a681f38e4fd9633c1e9affe467215acbcf551067019cb2acbd81012442483e08c3fd55b195c7bff484cc8aee59b1f81bc47daad0cc77a676510ef9a89b6a32f0b961f62dc8a9ee5ade59b1fe155a2a7496bcd39c0010709366d918973dc91a89f98ca803f0d41dd988af1515959b8360c167d5f2e99aacb4c83f1e50132532abfbb117fa2a44d211f5833ced1c9562c6778249dfbbd789257041f0bb7e7a2061fcdae3b11dcbdabe19bfd6f75b4eb42fc676506a250d2b62fb2bb9e2a5fd504e88c8767aa89b10ad662060197a0d760991f936f1737a3e61157eb049480e5d2fdf322004d79a9c9d547cd900feb80edc352124b50fd7e12259672876fa8f34bc9ae00da0ba5697015032aebc706ed953416c34a405c8e54de61eeab16563b2ae751807726d64968913ab5f53f908ebe24002a15eb92520f2730681f38009b4e2263e6ae0b2d16b9d1f1c32e2826990b8763f56cda51f2cab67c09b378a06cdf04bf27841d1a212e12c13654dbaa66ad64334aad7392391e9cdddb959ff46780c5bf748710ea78adf9e293479892657664c3bb36e8cdfff8063b89b67f174c9b978ca0ddc627e306c8e38c3e60b59521428e60091ce75fb15ddfc7e7f583e5b3d00b7b1ef9dfba8ab1db50de3a9cf2805048f02e4014f88c06503242f61aecf003ccb264608fc3194c5681aca9c567e6626c6ff3abc06858780dbd5597a9ff9266a895a86a88590e9bc7756bab727273996c340d1bb16bdef2d74305c1bb779e1d3c5a6c8ed88602570c28136375784edf3126f6badbe5f022d4a6a68ec2267474b6bfb848d7a83dd32f0a023e1ea12d2732fc166495683d9ae5bf35fbd844fcc5397bda61103e373b47650c8e705214fdb3bf3298e2e8990753cb216902c2cdfab6e2bd718fcf4b206df6a51a1b03cf6002ff3c8884ce6ed39b78c755656344d9b287718f550ebdccd1faba8b6130c4ac61b06ce975619a74043df0169bd492b32357a3e0e9ca10b3a090688e78696dd30c39a4e3a18500872406d0354d94ea06f5e21299e76e92261c9bc1b7be124884", + "tests": [ + { + "tcId": 44, + "comment": "private key with s1 vector out of range", + "msg": "48656c6c6f20776f726c64", + "sig": "", + "result": "invalid", + "flags": [ + "InvalidPrivateKey" + ] + } + ] + }, + { + "type": "MlDsaSign", + "privateKey": "5a04d37a8c83d373ba07da5cf96806002e3635ad8add42ce6ee9902dfc9a1f271d69371fb6d0d47fff2c2a3e14efdd968b5f906525510164dc0922789de9a364fc0730efa7ad64ffe1d5d53b21c5cb1f12aace43f173758ba07743c66e269a1c9121f577ff62f3749ca9b88040f2d5a0e7310302e921bd0326e00f5e14f75c30c0c84851042548024540024963940118802d9136891c238104a301801020a1128c600882a4c68584008950344dc00631e0208cd228416284642342661095281aa72d04038d90908400b749182121cb842c41202801826c4298008c144e1a9004ccc26142460501298200308299a890a2982063268c58028e24c8649318480b440000c4314cc80151460683268d1bb27051228a9a82290832085b128c542681c0306c5c168289001090a605a2a62d41422a09848060168a00236a94c870e4264ae10040e48451d280416232641c23050b254088a4645180901c000e42440e099865c310425a9489882246109645a12869c0c820141551dc424c8b8220e426000b4589848429e3900889008942c28c1142320a244c60048cc1c041cb306a9a806051480c02c885c9a240628288d4469099964544c68502873092a66c9800510bb88803945161046a14332a8b462288280213c24ce2464dd0289250084284b4611ba28550246c91420921422061142999908193344141228edbb4504340881b02242706626314015212645316620430645ca8918aa44810242ed2102083460581002910092259846410035022082a44345049042513a9081a392012b48122024d0b48828ba23022b4210b1029119965db0082c42662d91080cc844843808092462149a605c9466a4b0061c48025dba26814150d419831e2907199a8316098896042821a178a52042008a340d1a66cc3960ccb2002cc246e08004408220498047084044a08a730e2c68d4096498918126346482406640b29418ba6500387450495118396701b440618294143108c202071cb022603a391a3042c23a610c80691184064c0106289162e0941905338100908106144110b3748c0a86c440470022568583688121784049380cbc84154023098022420044de3140a499808498669838645c22824200480cab00509c4680036628a30906148101233480c0320db482501412594b04de1c4400a24651281455a32815c88480926854c940514380212058203a981122708199970c8c44d09366441380259b220c1b6050b0172e3027119150c623757fe8a3f59198c98f65910de7754d842d37031d5c90c98cff380d9c7c177b1e305ce91c8bffe35ac4275795a65358e28df3f737fd606f4bfc72954a23bf1d7b866f125f43bff32343f2fc9856a1f0005059a64dafe0421ab429eb9d655a8487811333b035966469ab1c10685d540f344f7290fbef8692a94b7a6a2d7c701269676f735c477c25474d6d9b701556b8e6b2b9628c2479d1fce7bd6b429dc46d66cf85aaf7ebb22052dffb3deb96eea46d12196148250a144a6ca4605a7ee968931b3288d90c8484e66e910bb25d54ab853aafc7f0f62ad44b9407afb87eaa4f9b8bde42c617760596bcdf3bc65574af5b84c23fc638ef63b7569f8ed488dd031dc9e128a7355f8810b00d48a16226cf8551bb267fbd29261652f0949d556b24fb8efa04e18a9754fbba829a487df932c04b2fca3de1f879e18fc02ea32b845a396266c6fc8ff29e4c898590af3fb1269a8db9c05e5eb598b7c442435d28bf97e34897ce9fc238f953f83fd37888a13487f3a23736b19585ef2c1d8c0ab66c46d1ada3de566b42dcadc828f386206ff5c5fce26082eb8254aeda43a78249c85f56df8f4e3ddcf0cf5944c005d52e0435e3596f7e177861a20f6bc8560b98f04e30e1bea9c1927fc34eb45875e2d72456bf708831ac7bcebd6ce53dc22ac705ed41fb0ee8817d98e6ad054568326948cdfe5675f286cae5f5f18e918185ef8c74498c836ea1c6254a831ac4f51bbc304ebf4b81c18b93f04e31f5f01ae250d5202983dee0db083543cf1ee6387bf14add56af738482356f385e796641fbcd386ea97a2fc5fd375923001b2563e13dc134b3cb9b2832cc93e01a962f21ff96ec31fddcbede9c665bb13b6acb86fa167fa1285608f149c4cfac948e283dd2c9d0d63f788d19c0267b1d8aca3bb414ed6772a93c53878e8da00792bd4fe0ed2e454e07ed6b03e671fc515dd318d53d9c578c1b4c1210961f6ad452deee8917abfa11e5cecce8552c16653d04e8c29d5d95bed293df0adb56ec489149dbba8d0da76ab58a3328bd322bd55de4aec2d9e4472005d38d9c38029a6de42e24525518f10e51736dc5eaaaacb30892a9e81512c212e15873bcc335adaec99cfdaa4cc12adf4121523ea8e6fb7075c59b93d0183b5c57b5a7ac70dbbe734c57904e6557005e53816a0d09c91919a78428e21bd5a45752728465d2c554047e635f5ad0cd35c248c5b8edee9c4da7fff1d7bbbbe505a2fd8ccff3f7fb7b51930c58f803d81f935dc3235f363f3494630703972e5bb69ee5e23d24ebeac041710e792d40eaf6c790a610b2af77910535ea936c111f7e3ad792ab9f93531ff8d5af2cd82145660d2e0da74ffd77c7054ac7128d3d25be7d67dad076ce9de5b144db10aeed6487a6280161785c9597df0c7f53aeca6ac3e04cb180af727121b7f996704657496b2b0424b6b11adce9f3fda81a4aebd3cb20bdf815aa620bd9513c7ce13325e9867ab0968db1eaeb985388461147ecf06a14a8f30e7f5838d59080a99f721729ba6496039773092a5c35eab8badaa88230a071e3d92325f1c50b402d29e2f9a619ff4e7baced9af1154fe3717b0d314116651f58471d206955df097ba8fa1c4438727a64145b5120541a9177c8f99adb440f92dea0c19d315ed23e214a321881ce2a13ccb942e683235183f0c2b5aa21e6d67832becd7cb4b996c985cd87e4d01643b20cd35c0b0e0c1378b1ff51b52be92151ff00ed880e180244fae51bfbd88d5ae6c91ef6195b467b3ea50cd3a600653b47e0b8bc3a8ac987b0bce1fea9afc81f43adaf6355acfc02cec42a5c2e196844edec72629f9eef0ccb38e9b08a364a5c925019880001573550739ebd0d2bdd3b73715c24321bb6cdccbfb7bfe29c0a30a828c1fc6dea39d73fdc0c81c4758c58ece0de893a9e983ca989a41b8b580fbff69d06c139419a70e4805cc5926b9913ce46c2b1d14030ce56b96346129a4e8cceb8793d7b783fff1240eeb6b96095fcc51701faa3c5a422cfe35f74f29b7556252a67e174f864459e9fa9edbb55b1af391f0d8c8253888d8bc6e6fb5f4c73eb4980b01114ece90a1e8bba96c99c56673137e1fb0edc18257df7b09e49753034f3c8d3a9410a9375c3b411500bcc579bf66f2839250670953e7b6423157a12b3d68372c31d6242bae84b9f1d921ded5cf6a56e4425d0fab6740355f2339fd895b4a81b98d541cebd4daac495c5f51c9f3336da9281a2b83877e33b90da1a0af414c2ed31bc154c8956c6c9082761acd8fd68d2935411c134cc45224024ab5f0c5d39bfc091b5b09f5c92570afa77167a4940b1a832528eae665150e8f310b84", + "tests": [ + { + "tcId": 45, + "comment": "private key with s2 vector out of range", + "msg": "48656c6c6f20776f726c64", + "sig": "", + "result": "invalid", + "flags": [ + "InvalidPrivateKey" + ] + } + ] + }, + { + "type": "MlDsaSign", + "privateKey": "d83f3fe5bfd9895f3fca5d0b6ac999618c311772d3a9dd13d5f1dceae0f8dfc7d86c63ca8cf54c480edd1537e2482258fdacb27328f58bd2cd8055ea13be3bada9a26fa68a78dd086fc77c2bd20cf72e818a74bdc3cef7991cc08552ad4c56e801544a8df13537e29777b15ed12976462b7c435ae1ec4779e3db7d367a245cb008c42ce2360d80c48450444e21810ce2882d0441718146319ac871c2c240a34261823424884664d2a23093a6518008308818240c426a10b90009a6450a298da23671ca404d9116112303311c25464ba86dc9120e5b1465c3b885dc922904c780dbc2208c420d19256e9812864a46499092909bb42d23088e01c2050a14480b18854106890c2221d4902409146613a331ca328e1a158ce008221c0771c8980cdba62dd3206602a63090284e64848854024850a88c20b48812194824137280123191320d248248d200105a9084120226d042818c30821cb2308ca084049890223766c91866a2b244524480d132220200658c3088880284ca228cc2085004036824a16d093851c2b02ca4160e902870c3244d48868cd9a20c5186901b1288ca268ada4005d4386c64b2055c948921434209102ddcb488a0802040186c5a46682416010b2222d8104a180785a10244e0a0415bb0918ab22813b14d209631490602239421d9c2250a208d44b488dba21148b081591480002128139510c9c66d4ac63153888453366249309193c28104826c2401600c4272133928613000928489cc047122396511b84522a385d328229a242c9a344614b31080b82948260cd98691a1c209e214305804718c1002d2c24c0a844c44306589225210156d21444d0bc4251986314b96304992005330880ac691d2827089386c20916562247023092491224021b54c14280013361204372d02b28c5a044ec0b448e2360502958cd346301a9445a338525936802009885318888b2448db242c213430c1c86c091308d0047112c92483426004308588c22490282943086524252650342c9b40114040250c0210c402094cb06c20162544088d99c485131386824804104869d3400c592872d3946dcbc66508944908c2301122225b245261108080304299c80cc4308a80c808a208000c3060c8802cd4b4058808680b434522279108164249380e0bb771cc823013a6014bb46d0224058c02119c340a8b148a00c10980a45020499188960c0cb3501b17098a0640c0984019b92d08484d0083118c42888c900cca041058388effcf4b00f54d159914b0d36e7a3dadc4b290933b720300f40c8fffd7c7b98883ccd0912c9db19eb001c14b0589bd8cbcd69da001b23cc45fbd3e80454f5b8a195f0526748d7d96073d5912d765c61e7c053d8420634c631a597915c66ac841726d088e1f391c3135853b7818988dab296488f26593202fd9264126af914f14f1d9e857b6ec98454bdf74bbdf7cc9d9da066e8704cf1d71e2f9042ff0087c704fa104abc8e3954aeeea7588384904380172ad86375088a253df4cb73d8b360461b589dcd877262d4cbe6a9b214dbe8b5d2a272f044c0f55164d28061458b8235d110d71f6417faebb13c1267c80f1573388a36cba76412e04e6c9f842ae435bf3b96a76b7659f3227a984979569638f89492f373b2d6da98d7c2443e51e1cd2982a02b404a296be36ff86b5147d11a37bad0897305e45868517a524e3d31ade7312928483f10298fe23624f1242a36f8fb0c17b4d42197f2b5159dd47a634faf9b2d67ecb3be7920c19906037a7ce5cabc31ea26755c815efa9a0504643291349a1f98412a9f4fe11d0974e7e0244efe00d4f9feacf0d74803e2431a98ae7bc53aa6cfd3dd9479f913ebec990d59f46ad47328075218d9d56dc19af95fe557e9f4b215fecec91a3de42e28a97c82d8c1045aa1a72e6b8410b44bb185bd1dc582d178d887a6543033219549f12a3eff6566eac548924bc34a3552f8541d1d221a107396298b4818b4451edfb3dc1d27fa637db45c821e0fe8cd49561afaaa26307c7f14dcd3c196cc015a7336d73f621baa3b5c4136102482b0e4a87238b8cd5fa250074a8f44817b63cd14f0e07a6731d3892c9c084ee30cceeec900fb045bf856709c4f8991433672b800800ef8cebc751a46b0ef40c0bdb96053f991ba4586e8f42a0a2ad22fc4e62be369e4dd5d95d5e4c3e1d167ae359abb74ef6a6c697d91e57be4b2f430ac01cfac8bad9b1ec4a815f73d1e179c4316abd3acd26eb9f80b854594a8b3180c79e76a8ac2bb5cb39f4fb18120ff36bc33152a78b8fd51cf8c5ca2a1212266c19e7e3d32522a3d74fa185dd0959a077c052d25a0e01b793ccf7fd6c4358798e9575840c5c5a3b9eecaa45609d9a1edd50d31383f4e83e074a30de78d656a8e6548916fe3e4c3ff8d5e9068d9dfdd4799721cc4772588fb5875f99ef68c250013b5e6e58dc50773e5d6dd9b1112d9baf2cde2ef223328726b7c3f8ae306484d8348540018c71e11439fe1bae6e514c46821573d2278c329e0e37bbe09049a87e29a64fad8c4640a3a3716cb8ef9d271557d116b57960a3a7ab9f313d9779afeddd442be237e79c71cfb4cd4d36521e950e0b066ec4af8ca49deafffb899aba6af6a564a18d1cf4b44fef041451a7103b596c98c7d0f289793a1dc6e3a3873facaecaba5077e71b475d8dc19a99470684e6328967428364e09c779c10118bd72f0cb9a049a39cd469a711f008f7654160d873c72b35515a9e016ea4e1096eb924eb7998fdec11edbaf50051c96ddce24593358d49fcb866030faa35212083dd372f82982b8797456ff47c26e1857a8aff746377618db33528ce5d7d56029f119e0571be8f38af0cb86e5a5d4437ece73b292da1f60aea0868df9a41ba49cf1bdf18e50cb51697ba6677fe287e966a3e9b04bf48d91fcebcdce6e5664c4661432e85a148338e12a00ee5d32c6bef729aee551faaf8dc8e3aa7a026a358ca205767c89e99235bd114bcf77dec4a9e8c564eaac0749990113c6a79ded452fe3e0708486f19ee615154ca6d1df17770dd5cdb598a0df2ea363e1d3fa3a7e7108bfd90b35dd8a9083a2dbd92500cb14ed4722eeaaf4b7022a1273f76efa1b9e02cb9603aa0c021bd73acb076ee3794ce30a211c94a2b7316780327ab53c44f4d068f3b1ec356c189256b5b647fe7b0b3d6c58a2fa5a0ebb6f3acb5f4e39e69245b2c7b3722b173f7938688ee21e229d325901c22b404ea3ec1360277309e7c8aa88e74e0b7efdd9751ce85482f6234528ec2bb5b5dd8800adacabfaf9eace885c1fd3eab1c8f413a1df83730c3642cb3cecf609a177ecffd05bdbd50f7aaca416ccb92e5f42c277df31ddc4003a1d4664134e62ae60e20d335736bb47ee0664ba6b8ed5bff5c1a2b405eafe64d51bfa1adf7c5bc28fc21bfcc9e8e5a663925ebbbc9a76ae650a7ef727571736ca4a148d0de4714152290febd1f6b5d0e66002505a3e4022d379447824038fde368e49b67579b971fb750444f653476b30b14e2be6523644e2a23813f83fb3bc562c8a30059d80ea995a6ab10898467faeed55ee22248fdf480b2f5d6b7734ef03a788192e6bddeb19b5931062efdbb", + "tests": [ + { + "tcId": 46, + "comment": "rej_ntt_poly (sample_uniform) requires 5 SHAKE blocks", + "msg": "48656c6c6f20776f726c64", + "sig": "e67ccac30c020e6dde15ce0457d1f1b78f4a5eb712ea7a01cb265c90b648fda96c1882379a0832ab0a2530dd6d251032abc0b7b0ce1da5f16a828bf9554b8d72dc8f954ea1b998dfa6aa516c94e5b07f5a2ea512b7f434ec003be6c08bfc6f23f122f80159dacf7302268eb24b15939c5fba0a4d8692838342e8ad62192e14d90e4939794bca913e2079bf9a7850a96557cf0743b99d5358ccbeab90b764acef4bdbda89814904ab1a9e3935560dbcd2ecb165d2ef0165e99f32c08648811082fe660d331dd74f088b57a07b0f27c36c159044cecdaac5e59e02bb2b8937ed025ff152508df6526be05cd1e7b73772c788dbfd8cc9556b825d734a2ff2b0f2ccd6fcb497ebd02a5c00469d8b24f3edacd2d3949687ae9c04c60dcf237b41a2722991f15da48362771e4af68473bcc7ee1bfbd08424c21673b17ecab4e8cc3af9734355075381278e6ac3ddeaa145d666f6a75389aa6790501a508f83c8f2c184966bc4d353f3268791f243c42c5e8926b4d81793d02c6465690a7a7edd5e2f7f3a8ad4cf712fd1be2f83276262bdd631775e76b73c5ed9acd59f26f274f61d04ad0938dbfcac724032976bb6a21842b5158e79c325793bd08931c110849fc62406f36cf034ecf8319e7a1e0b0f478db45dd865dfc381a37e35fd953ce7e96b12652130069972f395e301a89283ba3c8f4b909acde3ad32ef43676699eb74ca07b845a2ad555fddfa8c4ff8b965f15cef75367e1f57424822ca739cd3e0e9f05a11d5a719bb722fe6714591e51cc5524d2bde72837bcb9832d7ecab556a2f753c52b012c926432bf93726866e919244677825bedd9a5a41078d1941cbbc7b3c147cd7bffc1cb2ce0e6da5626d74e0f17b0ac8561f5ebf011d19be25eeceadd8b2c3a3a38422b8bb0333d5a4aeee55352e7d4d54fa5eb44434f529686397987da1bbe45085cbbeb64359accb912954d71f55cba2e4d2eab66cb848d93fcc25f4cc6bf3cbd8d86efc920b9ecc8e85c4089e662e9a16b32c927bf489aa4d8315624a23b3ea9f7f017a8bef2833d598b63b94d9b6c432c021894e9529a79a2a525cf9be696a10ad670b52d309e2acc4b35486433a7af1d000d7cda11c7a303ad0a48123bf02db0cdb3cba204a67e04dcc38aa74565d255d08578289a53519aefb539cd9eeac407ab591bdd9e6fd6a724af671e51cf2324cda078de5ed71eac51209af6542ec7b75064488efb94bac345848865c97e53f8b65e449315a7698d828cb9ddc16c18b6ebc3c29c1263c6ad324802ddc2650a82579732954ca5d4b1b0ea626e14d7f7064f2855141e18498f07e553f9c1e7f3ee669083f865f8b76de61631332b9f8c65f498ac6afc2e3142fbadbf1acbe5c6171b2e342bb02ec17e261f571cc32a82e83282c740e53df67fb33e516b45c6719b41e545c6d83f0c5fb481e23e1dec68d9d4de8585218570c1a546ed5c35615a50a472c6dacb59f9470aa162976a2d9f00d988a62acd0b6c110fbcc7cde2db6a0643d533688144da614c420f866e722462602409d6eb3cdd2bc3f58a9de84ca7a416735901c8fe5bc95bf3e0d56b33fde749205564b90f7ec3c826edcdec9b9f0ae6ff740d96ba3853a10772ca7fd1e342fb334c6f30489912755fc79a8dc784470c7229ef520ea5ce8d1e980137bd9d8800c280516c3a61b319c7ceecf20a7c47ce83d6efee31f5dda80d41ab29ed42942a37d5eb717ca2a832ffb2cd9ed458e5512a3c6916a8d4c6a938b99e16ff69cdac6b3985e2c9bdb25e866871a493af4604cf77d86e95b99eca403715b568305fd572da404693b530bad7b0d98355935fe31d869740a0398e64d39292fa9450d1f8a75aeb12a6d3a84649d04135e069d1f11e4830ac95a9c8b5174b5fcf6a7298a964a21ea02fd2c7f22d73b60fc2fb9dc542d3de94400a45b5011d3337d9386b1f59207c9836f44f458224b3098b24fd46137600e1c3c56ab15133e78ddb190884e96a2100e57bd0f7ab04e8b78dff521653ebba5510858fd66120f4353d1f043aa20330cd2ac86656ca6737a20d13b9dc8f03b4f4467faa93b392188e116a3d587a32e07614b6be712b52ec32e1c88055c336a9efeefe3d061f55af80443c795ae40d5d9031ebb44e646d55cbfc52246f21b2ae787d4112d27ee8dd0cfaccdcf47891232fbb7c61c0d6556c7afc230316d84bb47df493a97f557dcf83b0a5954888c0e3ef31c42a2dd176d4b6adc205b3d9e8ba44bf5b5ef5c0a5aef7d6c5d0a7feac60c20e27b6cae6a606222ed8dd0fe8a9efc19471859ced3d8649dc9a6b5044bad690dee3241729443992b1f64f6d408c3204fc1ac7d13b4a08331cf5e5c4e76cfc01456f647519c7fc8944a5e4dc2966b53e3a92ae24e0731a81f101e382c2193f081c44ecc1adead77ea7f7eca8d0359c53c26130f801501a9d7bbdd9bc5a9f03a0ac5ce7a4203cd539c3df99befd2d2f0db38b9089acb6202db7f5d473727e27c6708042c07ca5ac3eee6d22770c271c2290a12428d75a1b60853a4d21a5f0a139a775b162284472b72714bce8eaa1b5f5eae9c6bf64bc8bcf0630039551f24d257702976e07052da86be9494c2592f048ff1d3442f95e1779806df0ea285626d977af994c5de08b0abb27a884c66c32a6728f92c22471822f765dee86cb0bc6eb13f40ea7de51e0ad0542880f8fa8584839636f2970a54f4de2e86aee8de83125f01606ce35bcf39a9f8494ac1b9b5d5f4b0663148f0ab6a2dca66fcaa2581c63140a41a95c0cf2e462abcd2757d617b85b439d94882863c94d6b9be0254e07af31314d1f39303c1e364acaa26144a1462177ed7de17f2e298aa362115f4ebaa8153e5b0d9079b335165153672ef861fe49634ab630beb1d8306551be809cbd48e90be484d73f4d315a8a6680fb8f1fd30856f50c3998fd739a79cbc85ab49d8fe08c95d3828fa13cdb22e4df4083e525db9d297b6e538ad85c2f08e580c34ca1f3c8cd3066c99c5b14daaa479dda962776d861e06233acfe35aca2539823cff32d383482771eead910b8c2ce04af7f7c534c8413cf6c6a11a2a7e5f82c307da58913b7c36426d9c890fe594d3b00cf688ba00fc8b92f51c24dc7b5bea8217ba7a290dee309509bbcb03e47314a07f72406e2f576b8440583fde65f080b5527a25d887672b8521306b35c1dade44d5f8344cda66684786d4534ae7037a52ea86319bfb014aa502e4d8a103fadd9833171b0a3f55548d615a401f73dcfd6354c931f5ffa962a9e9a6adefc485504fe3a136bd80b10f5348070f273155589d9fcde609162f37404c4f6c96a8b7c7cdd2eff20a2c4e595b5e606a858e9ea9cfddf4f7fa181f5874808493a8cedce3e4000000000000000000000000000000000000000000000000000a1a2b37", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 47, + "comment": "expand_a requires 80 SHAKE blocks", + "msg": "48656c6c6f20776f726c64", + "sig": "e67ccac30c020e6dde15ce0457d1f1b78f4a5eb712ea7a01cb265c90b648fda96c1882379a0832ab0a2530dd6d251032abc0b7b0ce1da5f16a828bf9554b8d72dc8f954ea1b998dfa6aa516c94e5b07f5a2ea512b7f434ec003be6c08bfc6f23f122f80159dacf7302268eb24b15939c5fba0a4d8692838342e8ad62192e14d90e4939794bca913e2079bf9a7850a96557cf0743b99d5358ccbeab90b764acef4bdbda89814904ab1a9e3935560dbcd2ecb165d2ef0165e99f32c08648811082fe660d331dd74f088b57a07b0f27c36c159044cecdaac5e59e02bb2b8937ed025ff152508df6526be05cd1e7b73772c788dbfd8cc9556b825d734a2ff2b0f2ccd6fcb497ebd02a5c00469d8b24f3edacd2d3949687ae9c04c60dcf237b41a2722991f15da48362771e4af68473bcc7ee1bfbd08424c21673b17ecab4e8cc3af9734355075381278e6ac3ddeaa145d666f6a75389aa6790501a508f83c8f2c184966bc4d353f3268791f243c42c5e8926b4d81793d02c6465690a7a7edd5e2f7f3a8ad4cf712fd1be2f83276262bdd631775e76b73c5ed9acd59f26f274f61d04ad0938dbfcac724032976bb6a21842b5158e79c325793bd08931c110849fc62406f36cf034ecf8319e7a1e0b0f478db45dd865dfc381a37e35fd953ce7e96b12652130069972f395e301a89283ba3c8f4b909acde3ad32ef43676699eb74ca07b845a2ad555fddfa8c4ff8b965f15cef75367e1f57424822ca739cd3e0e9f05a11d5a719bb722fe6714591e51cc5524d2bde72837bcb9832d7ecab556a2f753c52b012c926432bf93726866e919244677825bedd9a5a41078d1941cbbc7b3c147cd7bffc1cb2ce0e6da5626d74e0f17b0ac8561f5ebf011d19be25eeceadd8b2c3a3a38422b8bb0333d5a4aeee55352e7d4d54fa5eb44434f529686397987da1bbe45085cbbeb64359accb912954d71f55cba2e4d2eab66cb848d93fcc25f4cc6bf3cbd8d86efc920b9ecc8e85c4089e662e9a16b32c927bf489aa4d8315624a23b3ea9f7f017a8bef2833d598b63b94d9b6c432c021894e9529a79a2a525cf9be696a10ad670b52d309e2acc4b35486433a7af1d000d7cda11c7a303ad0a48123bf02db0cdb3cba204a67e04dcc38aa74565d255d08578289a53519aefb539cd9eeac407ab591bdd9e6fd6a724af671e51cf2324cda078de5ed71eac51209af6542ec7b75064488efb94bac345848865c97e53f8b65e449315a7698d828cb9ddc16c18b6ebc3c29c1263c6ad324802ddc2650a82579732954ca5d4b1b0ea626e14d7f7064f2855141e18498f07e553f9c1e7f3ee669083f865f8b76de61631332b9f8c65f498ac6afc2e3142fbadbf1acbe5c6171b2e342bb02ec17e261f571cc32a82e83282c740e53df67fb33e516b45c6719b41e545c6d83f0c5fb481e23e1dec68d9d4de8585218570c1a546ed5c35615a50a472c6dacb59f9470aa162976a2d9f00d988a62acd0b6c110fbcc7cde2db6a0643d533688144da614c420f866e722462602409d6eb3cdd2bc3f58a9de84ca7a416735901c8fe5bc95bf3e0d56b33fde749205564b90f7ec3c826edcdec9b9f0ae6ff740d96ba3853a10772ca7fd1e342fb334c6f30489912755fc79a8dc784470c7229ef520ea5ce8d1e980137bd9d8800c280516c3a61b319c7ceecf20a7c47ce83d6efee31f5dda80d41ab29ed42942a37d5eb717ca2a832ffb2cd9ed458e5512a3c6916a8d4c6a938b99e16ff69cdac6b3985e2c9bdb25e866871a493af4604cf77d86e95b99eca403715b568305fd572da404693b530bad7b0d98355935fe31d869740a0398e64d39292fa9450d1f8a75aeb12a6d3a84649d04135e069d1f11e4830ac95a9c8b5174b5fcf6a7298a964a21ea02fd2c7f22d73b60fc2fb9dc542d3de94400a45b5011d3337d9386b1f59207c9836f44f458224b3098b24fd46137600e1c3c56ab15133e78ddb190884e96a2100e57bd0f7ab04e8b78dff521653ebba5510858fd66120f4353d1f043aa20330cd2ac86656ca6737a20d13b9dc8f03b4f4467faa93b392188e116a3d587a32e07614b6be712b52ec32e1c88055c336a9efeefe3d061f55af80443c795ae40d5d9031ebb44e646d55cbfc52246f21b2ae787d4112d27ee8dd0cfaccdcf47891232fbb7c61c0d6556c7afc230316d84bb47df493a97f557dcf83b0a5954888c0e3ef31c42a2dd176d4b6adc205b3d9e8ba44bf5b5ef5c0a5aef7d6c5d0a7feac60c20e27b6cae6a606222ed8dd0fe8a9efc19471859ced3d8649dc9a6b5044bad690dee3241729443992b1f64f6d408c3204fc1ac7d13b4a08331cf5e5c4e76cfc01456f647519c7fc8944a5e4dc2966b53e3a92ae24e0731a81f101e382c2193f081c44ecc1adead77ea7f7eca8d0359c53c26130f801501a9d7bbdd9bc5a9f03a0ac5ce7a4203cd539c3df99befd2d2f0db38b9089acb6202db7f5d473727e27c6708042c07ca5ac3eee6d22770c271c2290a12428d75a1b60853a4d21a5f0a139a775b162284472b72714bce8eaa1b5f5eae9c6bf64bc8bcf0630039551f24d257702976e07052da86be9494c2592f048ff1d3442f95e1779806df0ea285626d977af994c5de08b0abb27a884c66c32a6728f92c22471822f765dee86cb0bc6eb13f40ea7de51e0ad0542880f8fa8584839636f2970a54f4de2e86aee8de83125f01606ce35bcf39a9f8494ac1b9b5d5f4b0663148f0ab6a2dca66fcaa2581c63140a41a95c0cf2e462abcd2757d617b85b439d94882863c94d6b9be0254e07af31314d1f39303c1e364acaa26144a1462177ed7de17f2e298aa362115f4ebaa8153e5b0d9079b335165153672ef861fe49634ab630beb1d8306551be809cbd48e90be484d73f4d315a8a6680fb8f1fd30856f50c3998fd739a79cbc85ab49d8fe08c95d3828fa13cdb22e4df4083e525db9d297b6e538ad85c2f08e580c34ca1f3c8cd3066c99c5b14daaa479dda962776d861e06233acfe35aca2539823cff32d383482771eead910b8c2ce04af7f7c534c8413cf6c6a11a2a7e5f82c307da58913b7c36426d9c890fe594d3b00cf688ba00fc8b92f51c24dc7b5bea8217ba7a290dee309509bbcb03e47314a07f72406e2f576b8440583fde65f080b5527a25d887672b8521306b35c1dade44d5f8344cda66684786d4534ae7037a52ea86319bfb014aa502e4d8a103fadd9833171b0a3f55548d615a401f73dcfd6354c931f5ffa962a9e9a6adefc485504fe3a136bd80b10f5348070f273155589d9fcde609162f37404c4f6c96a8b7c7cdd2eff20a2c4e595b5e606a858e9ea9cfddf4f7fa181f5874808493a8cedce3e4000000000000000000000000000000000000000000000000000a1a2b37", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 48, + "comment": "rej_bounded_poly (sample_uniform_eta) requires 2 SHAKE blocks", + "msg": "48656c6c6f20776f726c64", + "sig": "e67ccac30c020e6dde15ce0457d1f1b78f4a5eb712ea7a01cb265c90b648fda96c1882379a0832ab0a2530dd6d251032abc0b7b0ce1da5f16a828bf9554b8d72dc8f954ea1b998dfa6aa516c94e5b07f5a2ea512b7f434ec003be6c08bfc6f23f122f80159dacf7302268eb24b15939c5fba0a4d8692838342e8ad62192e14d90e4939794bca913e2079bf9a7850a96557cf0743b99d5358ccbeab90b764acef4bdbda89814904ab1a9e3935560dbcd2ecb165d2ef0165e99f32c08648811082fe660d331dd74f088b57a07b0f27c36c159044cecdaac5e59e02bb2b8937ed025ff152508df6526be05cd1e7b73772c788dbfd8cc9556b825d734a2ff2b0f2ccd6fcb497ebd02a5c00469d8b24f3edacd2d3949687ae9c04c60dcf237b41a2722991f15da48362771e4af68473bcc7ee1bfbd08424c21673b17ecab4e8cc3af9734355075381278e6ac3ddeaa145d666f6a75389aa6790501a508f83c8f2c184966bc4d353f3268791f243c42c5e8926b4d81793d02c6465690a7a7edd5e2f7f3a8ad4cf712fd1be2f83276262bdd631775e76b73c5ed9acd59f26f274f61d04ad0938dbfcac724032976bb6a21842b5158e79c325793bd08931c110849fc62406f36cf034ecf8319e7a1e0b0f478db45dd865dfc381a37e35fd953ce7e96b12652130069972f395e301a89283ba3c8f4b909acde3ad32ef43676699eb74ca07b845a2ad555fddfa8c4ff8b965f15cef75367e1f57424822ca739cd3e0e9f05a11d5a719bb722fe6714591e51cc5524d2bde72837bcb9832d7ecab556a2f753c52b012c926432bf93726866e919244677825bedd9a5a41078d1941cbbc7b3c147cd7bffc1cb2ce0e6da5626d74e0f17b0ac8561f5ebf011d19be25eeceadd8b2c3a3a38422b8bb0333d5a4aeee55352e7d4d54fa5eb44434f529686397987da1bbe45085cbbeb64359accb912954d71f55cba2e4d2eab66cb848d93fcc25f4cc6bf3cbd8d86efc920b9ecc8e85c4089e662e9a16b32c927bf489aa4d8315624a23b3ea9f7f017a8bef2833d598b63b94d9b6c432c021894e9529a79a2a525cf9be696a10ad670b52d309e2acc4b35486433a7af1d000d7cda11c7a303ad0a48123bf02db0cdb3cba204a67e04dcc38aa74565d255d08578289a53519aefb539cd9eeac407ab591bdd9e6fd6a724af671e51cf2324cda078de5ed71eac51209af6542ec7b75064488efb94bac345848865c97e53f8b65e449315a7698d828cb9ddc16c18b6ebc3c29c1263c6ad324802ddc2650a82579732954ca5d4b1b0ea626e14d7f7064f2855141e18498f07e553f9c1e7f3ee669083f865f8b76de61631332b9f8c65f498ac6afc2e3142fbadbf1acbe5c6171b2e342bb02ec17e261f571cc32a82e83282c740e53df67fb33e516b45c6719b41e545c6d83f0c5fb481e23e1dec68d9d4de8585218570c1a546ed5c35615a50a472c6dacb59f9470aa162976a2d9f00d988a62acd0b6c110fbcc7cde2db6a0643d533688144da614c420f866e722462602409d6eb3cdd2bc3f58a9de84ca7a416735901c8fe5bc95bf3e0d56b33fde749205564b90f7ec3c826edcdec9b9f0ae6ff740d96ba3853a10772ca7fd1e342fb334c6f30489912755fc79a8dc784470c7229ef520ea5ce8d1e980137bd9d8800c280516c3a61b319c7ceecf20a7c47ce83d6efee31f5dda80d41ab29ed42942a37d5eb717ca2a832ffb2cd9ed458e5512a3c6916a8d4c6a938b99e16ff69cdac6b3985e2c9bdb25e866871a493af4604cf77d86e95b99eca403715b568305fd572da404693b530bad7b0d98355935fe31d869740a0398e64d39292fa9450d1f8a75aeb12a6d3a84649d04135e069d1f11e4830ac95a9c8b5174b5fcf6a7298a964a21ea02fd2c7f22d73b60fc2fb9dc542d3de94400a45b5011d3337d9386b1f59207c9836f44f458224b3098b24fd46137600e1c3c56ab15133e78ddb190884e96a2100e57bd0f7ab04e8b78dff521653ebba5510858fd66120f4353d1f043aa20330cd2ac86656ca6737a20d13b9dc8f03b4f4467faa93b392188e116a3d587a32e07614b6be712b52ec32e1c88055c336a9efeefe3d061f55af80443c795ae40d5d9031ebb44e646d55cbfc52246f21b2ae787d4112d27ee8dd0cfaccdcf47891232fbb7c61c0d6556c7afc230316d84bb47df493a97f557dcf83b0a5954888c0e3ef31c42a2dd176d4b6adc205b3d9e8ba44bf5b5ef5c0a5aef7d6c5d0a7feac60c20e27b6cae6a606222ed8dd0fe8a9efc19471859ced3d8649dc9a6b5044bad690dee3241729443992b1f64f6d408c3204fc1ac7d13b4a08331cf5e5c4e76cfc01456f647519c7fc8944a5e4dc2966b53e3a92ae24e0731a81f101e382c2193f081c44ecc1adead77ea7f7eca8d0359c53c26130f801501a9d7bbdd9bc5a9f03a0ac5ce7a4203cd539c3df99befd2d2f0db38b9089acb6202db7f5d473727e27c6708042c07ca5ac3eee6d22770c271c2290a12428d75a1b60853a4d21a5f0a139a775b162284472b72714bce8eaa1b5f5eae9c6bf64bc8bcf0630039551f24d257702976e07052da86be9494c2592f048ff1d3442f95e1779806df0ea285626d977af994c5de08b0abb27a884c66c32a6728f92c22471822f765dee86cb0bc6eb13f40ea7de51e0ad0542880f8fa8584839636f2970a54f4de2e86aee8de83125f01606ce35bcf39a9f8494ac1b9b5d5f4b0663148f0ab6a2dca66fcaa2581c63140a41a95c0cf2e462abcd2757d617b85b439d94882863c94d6b9be0254e07af31314d1f39303c1e364acaa26144a1462177ed7de17f2e298aa362115f4ebaa8153e5b0d9079b335165153672ef861fe49634ab630beb1d8306551be809cbd48e90be484d73f4d315a8a6680fb8f1fd30856f50c3998fd739a79cbc85ab49d8fe08c95d3828fa13cdb22e4df4083e525db9d297b6e538ad85c2f08e580c34ca1f3c8cd3066c99c5b14daaa479dda962776d861e06233acfe35aca2539823cff32d383482771eead910b8c2ce04af7f7c534c8413cf6c6a11a2a7e5f82c307da58913b7c36426d9c890fe594d3b00cf688ba00fc8b92f51c24dc7b5bea8217ba7a290dee309509bbcb03e47314a07f72406e2f576b8440583fde65f080b5527a25d887672b8521306b35c1dade44d5f8344cda66684786d4534ae7037a52ea86319bfb014aa502e4d8a103fadd9833171b0a3f55548d615a401f73dcfd6354c931f5ffa962a9e9a6adefc485504fe3a136bd80b10f5348070f273155589d9fcde609162f37404c4f6c96a8b7c7cdd2eff20a2c4e595b5e606a858e9ea9cfddf4f7fa181f5874808493a8cedce3e4000000000000000000000000000000000000000000000000000a1a2b37", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + } + ] + }, + { + "type": "MlDsaSign", + "privateKey": "da2593ac1dddc220922b9b1972a2549aaca212f972786a5a5d7c2e00abc407a14c3bdfec8156039e1da4334d82b03e6f05a91a5d07e6781cb8e5f864f700ed7576647e1433fc1ce8c9b3d77770cd0f787e5b8d79e53168318266b9d1ae80373c53803dde7e14ea55586e38ccd5089d5e0a6e01f3c8a8dbede4b80bc0fbef2c8f1a470982244aa0124112c684da203123a92dc104120ca841611089213041223845c0a2240bb95164842441c84012a34c1a112912170110c169d986888142729c1472db483054a0650b88251388499130110824525cb20d9a121184a0811c05609b1466241405c3320ed8b46919096601304e1b07292218410a9165a4828ce02686438481c832218c4010c3869154364492b05161326018c305d8042ad93881141512a4066084a87000b300ca382a034740914069e034290b414c2240410912691ca070083502c8b24440242691023223168c893289e32804cba400109465d2400d18b68d24a74ca0009244b26d630051581001cc486593080e40946500c20ca3826cc2242853a28904278e9a026c93a20803234543022449124c0c0849000492142891c1980c0922404c3811244471ca0804a3b0819bc62818980da1b8009a968048b6910412080c121101a430cb02241cc50541b6298040282286840a40015ba0001a0104034746c83600d8442ed4063002117100334213814110278159363019431201198de39665c1a09084028918934899966d18364ed1c04cd3a841491869128384cc808092c8880385480b17088414521c020103904da4c04423104802086d482608003590c44832993425983066e42026a2964d8b146902262149322d92b6684c321282c0654104499ca80c84046e00109120c86459c061d918224422515a8291412686d1302a8a12458c024510a22900472961446cdcc6701ab62c14400101252820073144c249844200a2a64509180009156023072218420d19179152846091400d1813220ac59104a5289c10414096490188051415225228812390518208215280412013895c3842e0a205d4820942468d08454892088ac42450c9024ec1380951420113b185c02881ca146ec81286018365a304840219500b49601404861a268413384ad93621d142298c308081162203024919837098a8310c9771c33648814812234060519411ca320c53824489022a120648a2004d10b4690ba529933224833009e1328284c2210133711248494918101a93298a220d51286e45514adb9c00c2aaa695133b75d4316c7dae5cc69de932d513027822f8227a4e8124f26ae736ab71469f0c6dc222d585e7d11366dfdd578911d0be7fa3e61f396a1cef89f15a314af8ad39674cd9c60e52856513efb1f390512ad0aa159fb3d3557a9424ba745d7cf623dcec18f3d2cab816f828ffce63630b0d8e7c5ca38e183466ebb50cf454fba56a528d0c84dbfb43312eb1340ce8560fa0d8f17b289f5fb9b0419a78b88d3ba225ec8f4841691eab7d5eed281a0786f987acb883bdea575c2528ab8c637347116c6648f37cb16db9dbfcf83b0b796597f17c10a961ae562a3922d351a046ea8dd260234d490687b2fbc11b7a08c89cc923173ae7632d8c451cea4eebfb816b89d0f8a4e0b88c8cf7e36609529d9e51d15e6845a2692a4d502fce855b7f435698491c8883f4ba89da102a3c826b372617e2183b3fd1d6496a7938d34e1f71f905f5d016315ae5788e1f70f52624f60ca690aed6400ec92c43b4b76877c0a3d6e5f0874019a01028c81ebcae9fbef5b5bd4f0541302acea78d5860785d8d4ae559cb1fe2dc571685d8de227c6715ee672343de43984b542129e20e7ae3017761907d49bc9d17e1a28a764bcc4c5426b8c1b28bd441a83a2950477dbe03305ad46ad4797a43fa3f50b8dbf9624d4459341f6fd148c09537a2563b44705455bb1e47c115ac43257b143105290ef8c432e27e7668cdd4cb2527fa2df00bda06d6a1cfda20e97a2db6bc6d1f00701f9788aba2987d2c47c80add38044d97b8ce0409b1b31fbb7429bf2f03a1c756759002eddf23292839b19d3e1efc753a0584f193cf8d1d31b498a0df6e58a63b8c250f65c95c0b07c586afc2c9c520ddff63de2c05c4d6c85b7c2501f7c919b63cb8a0fcaeddeb24573b1c38aadc2f6496eb638d95771282bf9d74dfdfb189d46283df63061fdfb1ac53d1336f769a12091ddf5dc12c4453e0a56bbb977921280f9c877b8359221b4f9e2c65795cd8a489ca926fd5da416e276640e3b7d30f78f077229c6d1d3c0b5b6927fab41fba88140759b6c6588a531378264dd5d87c569b06f4d17f3ea3ef0bf2f0ea9f2277b345a1f7625fc342cfcb2aef39a2e5be2f906386b10da05ddbe367c98acbc0f08a3a8f7ccd39840b28eccd7cd46f3309e4042ff13367a3c942d5bcad5d7d07de692f9fff856c8c8756bc65ae1d9983852a607e213c4aa230110b6c8a1c7d5306252bcde021f9d7f1a312f39c1689e7c86eb3b2e8c4ed2e00fdec99e595c9c9ca94632c73f379634a949ac0a701440ad82bebfcc193774ba278f704f0958d68c936f67e03cfa1c25f890681c263c937bcebbf52aa231f3faec5dd2c8caa96a9599922e1182e01884916616e1af8b5c2c0fd33d127013dca9163e8ce65db8b0f6d363fc9bf68692215e7347e9ccbabd35efc6268e42d59fb4e6ee5ef5aae462e7145acd3d4634704fc589f5c576b1a24c3d39ccc75b3567c40e358717ce5e8c4fee3ff8dba17e00d2755dc66d9a825f1799c7298736254a09dafe5a959716c11580a45a9dbe40c6a58b0d2a291946c02ba194c395437fa8d25e0cecc3eca431b3bbcf2fba41f51e13e54d0b7f5365fae71df69334223a0a468c759f0a2ddddda7ee5c540fc351604d3fb18ce32a0af814742f4e5a8bc45726923c1fe77f1bda81486da7a0763cfbc194d952c8f59e3e48a9659a8fc3552dfe6db4ecb0376fa5c8cffeb2e1bb1590d3c4a3770fcbb4871aa1712802599e2750ce2658780ad292d16c4a7f3698fa364d725bf1d0c2766c1fe7c99721069bf83c396664d587b2a627a252bad68941f2c3ae016fbb6c1c0dad813e331b7c28415d21c9442778ff3d05eef370a7f2d9f978c5d5cdb3775da838bb84272f9662aee21b33198f52ef617bc997b1ecf1b0559d69b6a92f7a76edba7b7a5a7c818bbead6e13c49322e0fcf9d347a563a5ae2e140242986a233e90bf9910fa5f04658ac92e388b4ccfd3bc022dfe8379dc564e1932f3a171baf374046faca12b91a05381101b049db322995b67e1c5f464d95328cc6a8356cdffd5f67a87a6bf286a0da0a967eb5dea750ecfb3c0008230968dc4c9177c6b36c11c957c62df0e7c2a2387fd3406acaaae94ba7015d3d9475968c5148a0ea7602a2e2ac0d4ce82c1880fcc7038499c89d2f2df0c653bcaa5603ee04713163f7131931cb7a69d38eee05cb32dc47ce52e9a08dc80c103c178182a537c4fd22394c8cc105240f084e445ddded088e7aa5309a32f52869da5bf46f1340dced7e3da64fa25f330097dc564a91d6b1b2ed08434a7c0bae41f9ef5e02b760cb45fcde6eb2d962d4876bad7c06e32811de242161", + "tests": [ + { + "tcId": 49, + "comment": "rej_ntt_poly (sample_uniform) requires 783 SHAKE bytes", + "msg": "48656c6c6f20776f726c64", + "sig": "12505226f169b186bbf6e3152a5cfbe66bd9b7160c86dd3697dc7aaba25f55fc2e8748cc00d0a5d7b2c66101e9ab97229892d7e0858d37f2947b350d9118fe1a3fca2dd02d77f0a50d2470086fe11e0cab80cf08dbf002300fa139cb93749ee64bd44ccf7defa24ceb4aa0c9cbd15b39bb85b373f52c15f00065ac461927d0cdbd5025a40afcff3eca4724b36c7ee1291db125abf48f58b7d848176e92d9f9d7c1455a4f88c8e6605ff17acfd34b153c23d9329d960a6a57078843153abf57c1d1fcf917f98b85a9d650303d3a0a09e5a51a68da6e0fa8387d708a257f631d3bd7667ec6eb4b80040f717c07b8b004ee9a64fe9ab8afb0507683787e241cf5750015f3f6300d64a5a030d870aa5464559b13365221554e4053f35297db7dfd02b5f300c2b03739aa8e121d8580b36aecb38cb954b95f22648a53c6eef6caa2c6cd9ebf0dc6490663ee611a7d8635dcfda78a922f50ab75840ecc55e3023dc78351621eea46efe2394b6ddeaadf69b8dbbbc542909871da72501a68391a8b1f49739533214dd36e6b35c8132973977762dcda692eb1e3eb918c5108a5a8b606bf0008c7ffc07a24213105f855fc55fd99667973bdc13176233f7a5abbfb96a7739526dd44838e75902c25918c372bb4beb1ca7076f660bb4886a1a9d941e0dc3f6b3909c06f1ef8a36376fa10becd7fa4c7823cda910dba4a8fd99ec5ed0298a9dcccaccfd08a8c26723ef9f5253206328d6c6efe821f5f5fe10872c01efa2cdea7e123d136c2aa82ee64262dbaeb8c637aefab6d28c54b091ab6eb94d07995326ad0aef944e0c8b3a8c652c61ee0da94e215e6379b7bd8306ebe7288e927a84c8a60ffca3abe0d903de584ae4cceb6e285f89ed315bb14e1cf8d6a30fd18acfce6f6c77ee8645ba08dbd8f248dc274f3ec3d8f780ed8567866625dda06c3a6eacb39258c14018572fcddeab7f3ceb6a3fe93caf9c73b96b1983c7de93c8cd77b55ad6f2a5e3a03e4d86ec13d41c2611e98213d1a0d78261e13a4bc868eccbb5b1db9741aed692d1065ceb3f39d7e7d018c7c63cc0667d8119c2d65d1dc674ff3f8caf3ddd939e3fe2354c11af24ee1039e595c907a6a7397b278f295acf9046469e8a0ea0bd77836a7a2c0db9bb502b502ca29330bd8114060f48168ff42d4d2a0f96b25ee01ca2d320dbd850a2c951224d04cf94d2ea970096248859ee473df0335ba375624e701fe8398ba0ae67b6e6fdfdca2fd6eaa4f1ecd312e2b3e6338dabbccf7b8b05eb70a6ec464ae4093c4d9d080bd0417a45e9626a9f743741816e2b9bfdfa3880ef6fa7c605134a085dbe46fe307d414bb5717891347e1a0a8217fb57b9aa1396ecda9367c348398d651d3137f440a99768df7f71f0a9af351fe85fe04a0c68a69289263cb86d406437620c22db88ad0d5f961383cfc0dca53ea56babf366bf965451e6d1e47309752e13b06ed23c6cca319738354d651df30000ba163d45c3ceb47d057f7968d6441d70aa7983b399ddd6ae410434b59c59380ab8b6bd0c3ba5a5847166572eb18a5ff135cf8406139d2d8e6028a20ae3f90c6a125149fd5de051162b3a7b2869828fc0b0330341912df2eebcc7126fde5b74b551d6fd37cffb7970fec119a23dba5dfe6729d23e18e161528af988f2d41d23d6787f03b6eef3dde29d0791e3995472be0fd13c7c37b55243fb6f2845143d43364d33e051f69b2b620af43897fe924e67098bd87d1d972a71eb8e87c86853ab3e39ab5a2567988170fcebd94559502db38f615fd1585468bbdfd3017d1be84eb35427c3ebd9c1bd161f62c977b66a33e87e6caa57e5b8c8c960f78b69283dbcff87fdd0af9824b06703dacaf4baf00f48f1292730b8a97a0b994c48f39ce9daedf9bce706c88e38a46ed6fba789571870220d5b574c9123861ed523d7c3e7b73f788515d9f10a93b8e55047230b08f3b1291a61b98b3dbffc7c220c1e1e3f4853962690e47927f59a4d0dea14a29baec382c5b566b2b2919cb281b8acbf991541675a713949ad7678a3ee494a5149699befad9c1a734e4b51e3ea1285a50bc66cb1d3de50c1267bf0e100b619cd3a3a3d7afca8586dacb7cf8dd47824d4f92c6ca28cedb340bc7d13ea548128148932938e89880990a706ba72c563bf99e9de8d2bd2f52ac0e71093c04d3bb4e56e781dc8f9ef625dbf921090d38dc12d9ff2ae34f4bd9d0f390785a6bc6d491feee88f26ec4264098230a3c7ab84c7ac76810b29f5fd8d6d4072bbb01b2af670e461e95e9d7fa60b636603ca6133b32b0d7d16093fac7edca4b3c4f00559e094fd772bedaffb5a7ee59b3ba4b2a73794de3becb2407fde7eac54c301a994395d94b715803fb1e2f6511960252a1e336245f5e16106998bce1cd39320f4178d551202c9ca4758672169c476f0f7f95586b005ca7eda4d370fb90dbe51f8590a11abb2b6fd33223dd52b14a00819259d3580b793103c7b52f535d2b64002651f214d38c88fa7a4cbc5172de04bed8fdc468908ce93e5fdc4f843adca33ba7c8782679019ab348a39531db0b19cf1710713c673157467babbcae98418a43f7ef63e0e22a95d4bf83a45c6d21f0aa1818580cbb20846e05a449bafe19bd23186068b9dc65e295130e35e067fc1ba4d58c85d5433de3252b335d6dfe88a0268d562251456cc02d6ca16369664ede1bae50f281aa1d91d371f1b735978a1eb63c207a21bff1049a91c8361fa809666380d00a2e717e1fe7474c59dcfcf716c6031b324d49f94418d6060a745d2b406978a8a86c986a7c29dd5f509f34149a4eb9ea66e5b8835e0f30d5704d896497d019a5a22848b4124b413360617db312b972cd77dc46fb9cc4c01f6cfa190133aac6ac41505f466ad8376997c61937dcce28e3ed8d2ed9e2626d4bef9b063e5e07b72af34995675c70e9f5de2896686a598ed13b0d9742957ed3919330eec6d5f9c65d63825cb50a44eee186c52a15c91e99f3d48f8ebb6e5cb715dc4d422073bff5e3aa433438107c851184a286f4cd18074b3a7a9407dd47119ce32a229de6d95938e51efe0427f043aaeed27c041e07ceac633f65578593c31d0a8977ac87895ae5c7b79581e3216e52e362b7b4579a5732d9236879892af922a8cc61627214366830bc22c9f635b79ef2f0272fd4fdc319bf45f361d5ac20757fc3ec69591dce80d28626e18cf03660cd582be3ad23397f2b37b283b139c9c37374a97391855e9e821a1c71f632edc23e6a47b0ff86e94305e8044eb668e988c04bc5048b0d559937a10054051c1d29314e555b686f7b9597bdd8dae3fafd1718242c3b40466f76777a7c869394a3c5c8d2dfebf10b0f1b4371747684a6a7b3b6c8d3d6e0ff0b242b3d4d5c717e888c8d9c9db2b6bfcde4e9ecf40013293a4f", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + } + ] + }, + { + "type": "MlDsaSign", + "privateKey": "55b80997122ac35f065ecc7ccb548b0ce5ba9e74f257c0463e791b49fb76a66b3ff600033c12345f00b14d4327714af99ddb64b0719601d619df1c68e77d3958e1e5e5fa81af28986ca7d41351207c3d249962d7f895d26960dda1b20a8b77a701ccf3452fe95d38ee4eb402c60bcb7794d77463c22c173ee4126de5030bd76e0b308009243120438d8b2821d3846100096e1a42120b402a40c62d19b26804a98403b20061b47012283223062d0ab5499c26280b462e023445d1162914036c093564214541998411d3b4719c224813050cc4100611012492482c8a024ce4408590408423109103294ec34090448441934022648865c9a44d14c0814b462ea0121103c805a2b425d8248e999048a3a6002380601c116c24165140284a6300081481485b4030982809c0368113a18508a880d8a26c02a52cc2c429829849ccc425239191d180404a348191a020534065c1922d011230d4b2640b013213b1299a2621134891a48488a40821d2924ce2b42908434a4c8809d344100014121293304392451827211832840c354c022644184965d21804180588d18265c134104bc8404bc26c80a4288cb400c428520895258c226d9ac67123138c12448a21361194304518c870cab461403862d310020833644c2488004384ca023011152811875143068e0140702322404046282309042034522099041c4290ca9890a4906dc4482191342d9c0820502829992024009145cc88255c069104984914065014476010470822864c4988116232224b468a58b80c53804991120660168ed0c0118ca86812c56d19468c1a03908c0889c0881003288949c00984228d11c811c8486aa1083294a8248ba609189871941685c9b644cc1441c19480ca2209d040718a4484d000522486715936921a342411228802105140005052a64580b421a3324281b289d4068d4380819a34460a055211110dc4b8091b143191149201a64823132944184d002469d22206210165a1884901a6450c26885b2631c0b40514980c18b265cb1210034449ca12694bc270909461a0421253086a139701139124e1b08d5440458ba64522431203b7098aa48d031732d2a84cc8c29100c54c219649d3440c98946140a4840337401a47488c464c41185292c20961928c0aa2280a386814260e1bc0056244865c4804dc184514838d10432223922d2094401a09282008695b3651d4b484601811414686d20881d32860dcc469c20850c8c0100ca6400945400a012454238639d2bbb0d4eac02d9436fa965121af2276ff074bf6ddb6599345ff6fb7fe8981fd6a971c61aeac644a1ae1568ff28e7143c6694144c9e39dc4a215fbc674ec25bc7a1f16bd192219ede8c7754257087d7ef44bbbffc6e8489078c0e211449cfef8e40a9dfaef553a201be0875e8541cc4468105d4fcd9bc4c1234ea2024ca8767bbd1bc2d9a535324707ebbfad3a8d824b964146e3b5f72d872ea1424b9c4e87374c80139c2d28abfb049cdd1c444dbd844a35e52883975df0c0e2bccf89f2e37590b5418737eca9514a4a299765faad9ed877a04b87c41e447e5a03ccc5eddb51f2c8d6060a92576c2b1751ab9515499078c1229bc6352e6aded219667c5a99262d3cad70fe75eb125dc621ab176834f2f4bcaa6bda2f22a68405466b6bc955614e741f550d328c68bec9d2b1311415447a1e0a05f9172caef5811c291deba5a8b29c45fb56c81e3dba6dc8bef43ee6e20c61c099509e87b99aca63c8871e1984d3bae5f08882f273b10bc1f917ea817bd546ef7e29276f5c0124e0cf3840a93dc07c433ee4453d7a0ba9456da1ad11ba1d61e6005351c69b2881ae40ef18a9a7a29f8a714751bc54dee5cfcbc99d3ba7d226a67b1a3503255ec762057e4e3ab4fc07f1a9b0d7de71327fd6f6b0abf2ee2fbe851f1fec659b6d697134d6af536f09934727c86fbf223b331293670e9519052dee838156da636d11c7448851c822aedf67ecae01b84400a6771a777d5ade6fe9c75f5a8d9087dd92c077626df526cc8386815c442f5a39a218d3abd61e56ccfaedda48b1d577f5676c922b901a63b6e081b1334a194860f2c7b550b0c0b2a9da2be793c4aaa05ecf39eddc57877b663c14e9cc76e97683cdcafb2d7a6d6f9f937f6669d79bc4cdc686ab197011ea2e0a86cf2bcf916f9a2f3b02a1943354e665a8764907be24cf8f7e96115ec7dba56638197e93c84759a0426c55c7968ce0fa5c4911c750c9e60116c4c69c34a3931ec8c4b95f2ca99f2767f1bf867372e0612c027b7c4fe34106fba0075a9b42e658ba2bea74c7811a23c162a44dfea3b607332fba14c2970a6adc8f108e942272efe200789267ea37263aeff5329820240021625a369fb443624d35ee11a0507590eb4eb952df3c0d6a8e138a708df304b3dad132867b84995535207e84e68a1715584858cf5275025df0a2844ac58cda2bc8724c7113853cd51ee2262c99a39fc40d8ae774436d591f5144ff7230125d75168d24058f265a2cddab5a5918f07c74a0b2e248059b1deb0ded3f61963b5d76236bb0932bd90adceadeb358ef044ad0fc962b17cf84f6f31320f2bfee8fbe02378fd7a5c197675d91769d073b1644fbd130c52b5d012e7ac47bd3724ec8a0e60ed8f8aab499aed8d1e278d0fc302bc13b1e5ab0dc7890f15655f86f3170653e73066720ed92a685f4503b7446a169a8cfbb83644b64f032b261d11f6d53c0ec2e0790abf4f54258c8bbd3b8e83a9bcea83a0c55bc0edc726333fcd40d82818f300a324dc647841a5a83bd0f7654befbb4ddea970aa85925d6d5ab010603b229cdcecc985b691c036bd61fe65761e778e1fc09e7a0fe86e77506e14647427bbb18402216f00d2cde78603f26649a82bec7baa87965e46e39442ef2bd38b2fdbea56ffede8a0046de2c1ab830f3e4924991833484dbfe52a8718f3fcda2892f425a9d8865a0e98c368afc9782ca004598d6da32177b34d1a03a187c69f048b12d821e8525f5f61d073d6fdea45a71563c2af8b5d19f0d39d95b8fd2ddc3cd7ac6276b94485c03b08eb615ee78a399137ca68d98e08453fd40ca20064e5c3415255a9984b2c28836a1045302150de673ed0bcbf4cb50a72a6e07a29d7ef830d76e5d9f2db45352f695e084aea9d3d2ef0403babad02273a59031dd96dfdd285e4da89b856b9cd55573098b5ccc66c9b77bcac52f1749d3ec116977a43235f3205d791529315b5f3ed9818cd06be1409850c8fd05b16cb9380d2f51373e966c31f662f9da37aa838cc7a4badb68465bf02c40a1936b94aa374f63c28194f565a9feee94a854530800a2c7574644fa081f3b4b32c305cbca97e6ce4bad30bf8901830bb05e72368bc0bf26b184ba9760c70ad66de82a4d7b95231cdab32351fccbb9530c1ad2049b23c2e5c16a5876a90a90b4a97a93a88b9a917a0933b3ba52ab414058527b4728df42d44af49f56825045774281362e06cb8cdb8f3ba922b0b72b7d53279568c785979d272bd5569ec6e35a1db8940f947f2575c6caa48d11c35d8b6c809e009867c15216c3713245a08e5b5531adbc4e7d34e357619bb521d6cc15723291577a3f358a9d", + "tests": [ + { + "tcId": 50, + "comment": "expand_a requires 12330 SHAKE bytes", + "msg": "48656c6c6f20776f726c64", + "sig": "0a109c7369419501013a418fd6ab3db57a5c99aedeff9bd1951752528b24ab9002398ee6ab18dfa2018932653ee718c3809e0007146e597f96f24d76fca257fce571edc6828eea3834bc800513d9ee4935805cbad49f70fb6ffa3556a0da0bc7a95547b930be53d384ac08fb12426f3f3a9ad89379dbdeeb31c7b11df69b455523eafdd8ffd049efadc1ee6e9236ecccf6fca15ab4db3ce4395a418129d10b527212dc9cf86a566408e558cc4c70d491fa3389b5b987bd502cfa4bfeb75d2fa84e17dd18c88a5bcd3c9860b80741906835209c79c74f3a921e91d2711bf431e9b33fd2278dc7603f693917eddee98ddc2483de0cfbc7453c5c916df69e48eced9156019e773455f17a298a23609c09e8fb3a615283a8f8765e76c115960cadd7702b4527bcfa0a556fa0f4d096d835f3461a336f00cd8b7decc605acf6f3e2d5b2bce22149f163a704b2317eb59fe2a9441fa33a2b80d8c542d712d92ebba654cfd0626c170a5e55635987c41cb66189e13551a77482cf59ea6093eb4814a60714fd8fe1a226488418eaf1a8c98fc9ed7d453306cf9201cdfea3b263eef1314346b633510954658c097349cb7ed940de06587883930afd168761574d8c18b6a76fac238a54454ede147513080e44d1941f0bf11133cb9cc32ff31805dd311e171c6c60d679fad31a027589b31e78a37dc66f3963e8f9f31951868bd12b4c71c05c0534084a52774a377f29c6d45b889cfa03a1a7e13aa9d255e4ba038b343be39fce0d1c0ad5e68a409ad6ad511ce4d507fe43a27ad4c7927043cc0822337dc7be3bb882e4e3b6a4e598770ba415b8e1d0f2534fadb390ba949b1934f61528ab4baf18f4c9e68bbe774c703f2affbbdb422266c34ab0e7ce3fc971902920388b80fb9226d18cf149f4b48c5c4b49c24047a38a3d6b75a05282ca1b177cdadee61c4e3345e384b093796e9fddf1b37a3812a505bda5868f9971df30ca91fc88d85d8ac65937d4134b427dfd46731d7cf7e175c1e971b2c76ef772377c4c241befe2d3abbb9658b085a4f73a5b802e41f824aeca4b3290c6bb11269c8542e302d55920b5a108c59f22c1a365d8855c82b9a057efc4499b07d3564a152f22a8b1a6e804c0f70bc3c82c5979767103e09436f6a45fcffdc4e222c3e9d4065422c088745af69305d6f72ab767d9b3c8f06db08fa07253096592f3a1197bf402825a3713113d6efe02876b43935f2915700ac09fa922d93cadbffe075034109d6948b7f84305afcec39ff844699d61b09fcd6a47a68687e055678b66e286a5fc7df5a24e854821f0053bb3373909543ae0e24dd7af8e31d451df53f8d97d373aafd9d5806e13d8a35f9ca3ac1c57a5e0cb4df7e35947550bc92805d163acb603b9a51c94dedd9f8cdfcff0f88ab8bd6fffd49ec52e0ee65be4b421bfd3991701b6c42377d278fe2c169cd2c8e89bf68a14fee6b7435ec40c384f604a4ebef83f49afda9cb3dd7d3a491c22eb4533a0f7ea4d080eebc81ef46187952aafe61971ec7b1c5ada86ce73e6ba02d8794986d28c39a084fa0b3f2ca03ebf45d82f105d7f3d43bf12684139284d838c7ce8f1071f489144eb0636ef554ed2975866a5f1d1f1dab34b990effb1ca19873d8df71c75ccdd0a4f88febca9d683bd34e4d9f2c898efd26a0c1b8d91ce7a95fea308e4db81a65754c82154cd7a8a6ebe28770e41509b0beafafe213fe191e8a1797397ac0edfcc8e73e8a61d02498d744d5536a3307efdfc14eb846a1984bbe326b7edd1193a38a30533f25922a9a12202719c8da2fc4d15071627440bfc5ae554122bde436adbb310438afeaace29df4aced715dfd704c74118eac0420633e4bf80f210b932eeb0ff0052084b1e5949cbf171e163ecd340b28759dedc6bb58ff5ea42c03485182d2f97259642b494e383f42c0dd70eea565bd80db5586ff4f8bafe4b343d9fd4fb1529fb77cefeb74636716df296c71ba8f01d740b805564c9b1a0c0f2f47a3c066eb350586740d2ca734b35d82e34450b97ac7437fc0447fbe2a020ba0651eb1b8b21edd4b4aa5165da78255bc58340c55ed135c7444842b7d90bd5709d80583760ef80a744d179eea52b7cb13489e864ade86ccc8c30824dc5640302b365dad2b3dc63143a7729f74e0b4ff6841975162ab8286fefb69d238067e586ec109548ae2874e9d5d80b6c52cbcdfc5003950c11b51d2854997fbc1c069dee5bda3ba9aeb936515f1a9a5cfa6fdf51ce611d1fe3fcd07a2e962b13547bea12b5cdef363e2d55b48379aab53b33e554ce58ce5a5c5e9a57c1defb351408391d0489d3ef458a6364982c5d91ae9fc5619219fac6d0c7286d69deb9e86f8611c28fc35e92dc3ba64a0498d7c3f9deeca2a06810defe42f1cd0b7848cacbc019c91c1715faec78f4bb939b0f76aa8b7e1b1e7d13d282c6852afc3cf950562030ca3d8ddf7d52354eee122eaf7de057deddd254e2513571f73c83f5f54599ad79d89dd5a5318b30e5025b68df399c7f7b85e89146f3df90b0f9c54cf92fc66f9c34dffbb7d1edffce4a1e76772ce41abe0b6c40648964c471bf2f102c6e9055107bc1a25ca6e48d3734bae9e8001faafb3a4773a19cb8eca4fcd7e1ca6e09ef0e3cb48636bb0506e1d568bdc1ab677eafbf120961bbc36b1aafa40fc264a18e6f237b42a9ac4452bdb9060d15a475a2c925cbcdb07193a6338d477bf36c46f2dffcddd622a9057d086cd75409d860a5c3facc7140c06eaa0f535746afbb0ad1b8e2ab9994206f31f2da491a830d12992d7c0d60c19391f3118a509a1b19cdc350fac958ace5351f067299ac0a113209b1583d7d753b9c2244a13491812928632df3e5a10fe340840ce4884c852ef54ff29850ec2104b083065db9e9e94e02dba83ecbf0fc3102468bda4499298a49c11e14930353b9cdaee870f1d6c48d9a3af85252cc1afef028e0a2f2a68c7036e7ba5da2bcd29be1b56679c1003f4afd3d8649193fd045fbf904399804d0bbd7e2cf7fba3f7c8cfc0feef73ad8fd1712dcb863126df8a62bd7dedb96db52c024be2b0c17a335660d25b5d55df31942963578340696c2a64fade207a095d26179d934b254bc6952ca6f32f89363395c7ba40339321e31057709e201f978dbb0a9119854ecdc037410cd2b48ad76624a1a1546e73d9ada0cfdc950b046e6f20b6190da0a15140b1356102b6c34ea4a3f1b557bf65e56e9f02ce735b981867e3bbf2db33b1f4c5e557172d27aca12cdcebd2a744203cdeb0a5ab561e8194ae427ddaa9674be3e1f6f73767c859299a9b7bdcafe21383a808e9eabb4c2c9d1dae3f71b2e32353e535a90999c9d0407080d161f234c5c5f787c81a2b2b3eb000000000000000000000000000000000000000000000000000d1b2637", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + } + ] + }, + { + "type": "MlDsaSign", + "privateKey": "006cfbd767cfad9730dba52e99f7af72a6b931ddad37ef42bde33c503c1e993eb0b0965f708b71fa49d2eca98b9b7dcde91849035dd825978745af5e58b3e74b844f41f86a9979399412ea2fe2a45b8b53ba5ea76a313ca317f52519952fa20bd3b2591f6e5724a8095cf3dc27d6e27f8bea4d0c542c3211207f6b563ac2bc2e54a481e3b41012a5109b480924998c83200a4a125211b5001c248dca082c200168d382294b0482082064c38088a0c2705b308a19266642b26594008693242ae34866a43032a18490919601da2044d49650581628d0222c0a88245a3291c4a86c88c801d9322e14b770922881db04300c3768010645c304922484910110649142525948918c1610542860d4280613c444182245608201ca109193840560b0055c468d0814244ca26964808dca3850122925a220328c382a1382259138241b017111864500868da3862102b20ce2320ecc186021a211d2b809943288a438610b90084b04300bc16d134880641462093225222344d2921003817102c53192c80c094451103344400421da84284a366211b53161860c1039509ab080a4c22812a81050488c18150ecc4025d094115c2020d29624222549d4104623468c09146410c9050b428191c60100002a60224d18264891224692228d03942083020a821006a3b871dbc0040c396aa3986c18444994140504a341d322628ba44118a12522928010306603a210c2446e9432408a924d19c844a49810d0120adc408a9a400e13994d13000d0847240b052d049705d2106902a52d9cb041234052c8204200b40c521644a232660b032513a62044007153868081462ca036441b408c8092718b00301a348ec4202954946914b030002821da228621840820822001118ddb466684c0890012698a0042cb2828121509d9127051828d21006024a48441302424222e40383144c060c0126018926423966512868518994548046a4a082edc0689593891c108494c9660410601600250633666191930083048a208890920300ba4680b100992c80051922d130660cb405001380ec336120c381011b76920884804a82098988022356244a228028808c2060903079099040d8022660a9105c3b22d220382889684593884024470c4288cd9466922a35143848919b91121330da0000a5a1464209661a008860b8750c9126c5408110c4346082924524866014824e4428a90c26861444a5092299002320c180661462a43b410248831121944a3c048db8210d3d9b7f6a75bd7b3577f44332e5eddfeeafe25461b6b1672ea710dbc407c60c09ffe6ee1fbcd44fb9ffcde70fe56eac5b234380665bb02712edab80139e50e4b3a9f459b388b9bb09bddbc33a6b0bd0c64661bbedddccff57989c561db0d4702b2c3db73437423420948dc70d8f800f06b5096982324062127a92d0a59f51498bbd26b4b4345f0b26d393fdab30a7e0e3a3adf46e91b4abb85242066bf26e40b13780223a03974dae42411c698ac21b3ab083cd72492cbbcdd5110a78b820ea265f9f1b21886ac8e4d1bbdb5955902864bf53f1b8e375be9a6d2b1b7c6d30ac57408382890215cf8ec442264edd33185d0f9c804e0a301e98f531e6695d38f9d42bb152847cd49213ceffaf7f05bb94a2034d2a2667927d08d0aa262dbf5047b4706095a47be73243b24bb622d59e3d73d7aa23a75ac40bc87c61924eb58dbcabae91bb4bdf2ddaebb5dff5df87a70c9eb49acab491381418bba62478a0db98948ab8f0f07422fcd9b53c4adfe9a085a43d560dd75f21d3abaef9f5b38db71e1ae5081f3f7a6a09d85dcdde3fd3599d7bd9a79417f0f5208856930b3551b80db80e5806e31957dd16fe62d503354ca06634d87b4c95a8f2ddd427342b4eb56845e7d06a40833ab97c89dfbada65d4294c46c9451b8f5cdef1d45c2fbcd4e3d48b833fd5dd212343616c3d86cd9634b8cf0c057c30b223e093c07185786736c5d19601750883463d07c04026f884ba305700bf95e7095ef553a3256e166c77f59cbec5c518dffa7430733f3a3f6822757376742ac2dcbd9c51fee6fb16eface43b6d36741beaeb3404b42b258e9a0de72804b0ae82cd712e11a0e59cf804942f3bcfe56d2f0034ddac8a9c2409f8c6b36d195ffcb49e78d67ed85d3f970938b3eefba52d8ae479b91103642886f435c96557f88f4011c5862ce66e977f538ebf978ccfe16ff8450d26f5d046b771bba04fc3eb1bbeb3b89fe76afa9429670d183689db03a9cc9ea95b76b0141297415dac892304db32c577d117784e45a939f4b657579fd8c9abcbf8e0cdd28e8b0b8794995f207f1352de214b4d72dfd9e2672d9fcf9f6c436cfa5093c94c95d97181cfd7a59992510affb2bb51377b5c9047573feff8af86c303006057795ff275baaf2076d8d9202bfc7b665b9c197369f60e2481a55806a33e87d0e2685b07176a743bf05a237e072e85c45441545b5e8109747ec4f87d92e13751df589547cea0e102c432e9591c185839f6f54197027c981c7110ea1db52afbf7ce604919d1d8b7668a7305ad22078c15e52d9259f9cd6ed574facf9e4fa82e275a50e331da2b657b08bb970b2a21fa9bca4301c4cbf85442b824e7751e81cd22f9a60f65a301667856f33bfa70a3ec88cbd7a309204fdeb7b7d5681fc83d50e8a417c1769db5bc5f6e4b11f43102da256c2b3f8d0d5daedb994cbb0c5a42d1497444653df6f68ef1f71487954454d4a56c7ebe2b6ec8352c8d68221e7287fbf21da0501423f56ae6adb4edbada89a113ee97c7d4fe36bd793157556bc4e8479a484888614c3cf8a63b83d46657204927971524dcb50ec5695a141b65f2630ab63fa5eff2fc565486d8ad978ed41a99910287c3db626315355d2164dc7c198a74823d968eacb47bb9a13467619bc64d76ccfee75f4d1183f4be274c6867e5c3e0edc13aa54ee9464470b42db5e9f4b53c7aea91bd7027147d53b9d4915f06ce6724a4d31eee456cb62808bd14012968c27e585ca40e8feb22c4b2d19f849af9cd773fde1390d424f181e58872289b6ba53b5bada9fc35713eb73c02ce8b7e2e2139b7d07d2c0bde3f727bd46685437b6d39d869f05e8da324c0f3b6662c954efe6ccbf5fb8548fb442acea3701ede835e3e2273c5ee1c065427a5be1ed27273ff958aa3c4898043c6dd47d3b20ca75dcbe0c0758d759db616d08df412ac5d5a2d3b932b2175221e5bc9eb4465a00bbc8bd915ecd26fb722a614669c361f499d1d6fc561fb19dd8de7f816b64f47d51c65bfc9e0acb13206b3570f0a405f17e0f3101488f087407e825ba35520ccc9311f83607c3f2019fd028f0708ed5b10fe4d65bfc0ff9004f4bfa90c645e9f384b87d450c8c6c84d0cae8a99e1018c445887ab377f1f084d7729fa758fd28eed5d64c5011844348d9a3ba91817da6185f7415911dadddc5749ab170f9eddfdbd496c4d09b3972817160e2985cad4320e129800c61f1b3aea9838bfc997155de6782ce017e4f3e90567a0d6f47d3945a6ccb8b352a610473a66f9301875a3b0b2c29c9f4bc6868427661fb220d2f116016645fec493cab1154845efc79307b1bd32ddf3781530a0f11", + "tests": [ + { + "tcId": 51, + "comment": "expand_s requires 16 SHAKE blocks", + "msg": "48656c6c6f20776f726c64", + "sig": "042f6aaf7e69b8f66359c9cb08d6d11093a8d983381daee20d11b95ca728b1d1396a86e0be56467de6ea2876a178bd09f059468ba7f30d5b52ecb261e87f9800475eba300f4f4780630635c6e8d6ef43abfb9bb1d0ec716254d3e74b18c6c4cd977213501134a3f183ec2c65a9546357aaa0abab7b777c89f31e37a26544a4d7f548129037539636a33eaf26d4d311931236c0eae022ea06c7bae495c338d5d142e4798e141ce2ff8e935bd9f5658b34faf58109ecee296c6831d9fd0253a8488892ebedd0efdddc13a804d4b7540cde03b8bcc9dc69da4f72bcf8061a530317b44d1cfe3edb4e3e8ca24c2ff624cae4f915142b8326daa24f8823dc16b1910da55d72286aef516e78ddc7860c9b6b7dc5ef69d0af6369676c5649a447501e0661aae29e0014164e4271ba6ed565957c8e9272be347e29851c59e87d60ce61de5f4e6ebd4d1de56b27397112b78356bc75556e2a2bf6f677ea2aa7f219ded04040a055a87da3ca254149b2bc65437c2506d380bd2784886b71e916b936c71c944f52b397c7541df4d5d287d33779a39e2062401d6916e4cad280b1b12c17d04307a7f8f3979de81bdf56e80967a73517ced7988139603da06aff651ea3f455235a46acb89648f0eb80b7f96fac140170205a0cad6ebd61765d2bc9dd6c8211f9909de768394a8b4349017b7652a72a6ab0ab829eb73475361cb9cff0ad93289c4914a236d994df4c4bc7c01fe1a1fb26e8c7a28ce013fe43271b8d8ebdf6ef5f4a3fecfc6bb21837cd2b1257d4a404cc3849b473a90629cbcce9f67ac2da6115662744c42bf985d3ec8cf0f06ca7e3d4690dcd942fd28be81371f7978ca5a3f7221cbff7b785d7d3661fbcbf01494a4533af716b65be2c73fb84fbb9bd49aaaf1c446d5b9f8ac74eca03b3a8e660860f62675fa96e90a11fe9a52b6f5d322d428e441310ba99bceffcb967df4cfe9a7daf16f314f4c0a57d25d1f20142686eebd4b29eaed9ad466002caa4df044615c2012f2372b97374cc6b99e276949d734d7e525a8d593ac214aecb78e48ffd44e83fa5d4ee089f85f4151b078ab773dcdc9e88f0df7263ca7d7fbc0f7000004f701e6ab62b7cbf053d6b2d1ce878d402beb51bbacdc192b31f6cb8f2964c2425a0881cd1df2a5936127b61a966ff861caac0e60d6da3fd97c1e75d61f205594905e7b68ebd58de6fba6b8eb2e799f116776c9488b49832e532e8ee9a214a3f80bd7df6abbe89fdb5b3c9a9ce79366730fbfd4e9ea204b8f5818986d4546fd0c82f3831f21f85cdf15b86c5de4c229cf3aea7ac3c7fe15069fa4432564a5d719ba3621b969eae3485df0ccb03c10f9a4d20a94de99dbaa12429940c813b294ba66d36440b2958434a6a661bea72bfb3341e39d3b6e28744ae6cbbd5bd1a8caa989b09139840ee0baf84e254b9e3be200c1e1622c68ebb34f26b9d3bc0f3d3a388a592712667ed4f15c9cb4afceb6ca4e4dbf31f0c8b52f4fcbc77d2679b81ed4092644844dea858295fca6811a8e163905ddd8b1e92aac8d5247fa78230c8332c2160e5d0b360839e022ee4569d908ae2cc6b67467623b9923bd6bb9811dc41adfa805e54f18af8936a5146aa2d7b4f173a55b15481572601fea5df1d410632e175b1d269657196142e83c31c8a7582fba32785a408713d38d66b2cb31f0c51daccda7d019ef3aad5958db5a44b91355eb0e04fe8571b61154a6691f341a7416da5205e68782b64175aec4dd685204132e23a80357602c7cac457cc4daac486f5fc6338032f21aa83fbf1a0690cd4e7a23527b3a0ceba33822b31ca33834416b1a998c25cd8a9dcd4a7fb0e0003b11610b223eefdbf1d1f2199e7a9f02a27d8087486e4e906d45f541afa1703deb56da09f5ae26d2b149422ccd212b4c527468ba13ea930ac7b3aaad287fb2809c61deb7c9059d173a3ea803fcb35cff3a410b1660fd9a58fd31fcc9c5cc4ec7ce109400624d1dab940799aae3c39dc7a85a15302bb6f0ae4b7d2a1aa7430dca18f93577e4655278c23013ae2082955a31361f87bc73dc8b7e95447adaf67f171dc7d4c042593c6ed66b585502892b7787f36e291286a10088cd3fc0e02f5f20703c6e930de00fda8d584f081dcff258f02d6b16afabaeec733f90a4497c22972b57164a11c9c268c7fb9c4fec3b9f3e9e231c7a531df0d6b431e9cd84c27be7c154a4cebf1d16ac1cd85c12036d38ad1662d9d3851d5aa279ae173522bfb176ea6b7398aea27fb0d6a9a20772c13cdc59edfe65c1b1d99aeb9b335fbaff2870c21426126cf0b84520b10b4ea183fcabf5ba6eafa5a39b17424efd4660f882c869463ab7a7f8437ec8fac3d89ec07cde599ebcda9158c9fdae9ca9651554474e9c1945e1824d0f5397c87edccbb3941a2073abff5d2a312bf32992ba01f79eda905904e42bcfe2f7bea50a53a5b32fecfc2fd03a802f553db5a72ab27d7fc9980128e91c99503fb55a7bd49c83073ef3b13da09142ef50a9820c47c6c6d42d5e9968df02bc5a39251e0ea3593f7eaf2680324b590a2b4ee31527faf0cb684f4b09bbe57fb9dfe1ac0e720841f627d6e78c5115ceafc54ed73433c8727ea9877946f032c73e455f3ad7e866b933823ea97bf738d2f840e4843bf53ad34eebe94a0b84c2f44e4c766906f9db0317d8addfa1880dc2a0a7d2f4b88f54d6baa89e5c48abec0dc4f3b983be198bc8f76a7e50f22afe3fbff2a05944d397b1c7f87edf9a85000ae2a3fae3870b9ddd954b28c8dfe749ba40ef63d92e0b8e162a62877d188686ef23a0d91bf760010d6fc25bcddc08f30883f9976ac436a349244308a768dd2376f372db3bedb7c932681bc72627c4ec55196f6b676d84e205efcb62a57d6fd33f0e504d0d2abb3ff509dde177a115671010e63392d043638c8c385a3d70e494f0bf7f6a9f00434459d4c6277b5206f9c9e7f160bc0c6996994da4645f9553b576e1cb8b62704d3aff63bf8ae1d14ae0fa1a5f51a14d95f33764d8fb6b6f8e731225718fc1b2c6bf1c3abebb1b38c99b2ca4bbb95590451d748cc4225f5b0d9ae94aa4976ce52fcf4e76fe1cd84306dc90ef2ec1d9696c61250359428e65231de9f0935ffc2257f0fb2badad5e9de5bf4cfec004179c35e1f20ccbca5a4c3b138654d63f166a36e1342b4e5391132b5dde484dd7e0accfcd53edc8075fc0730ffb4994b15880aa8fca45e717a73d63d8346e136ae4908ce3619695a6559adf9968f49e972113905eb2efdb08bd102841cfb366be29417f411c184a60c4e9f0722ec1c1d2326464f598184858b9aa1a2a3cad1d3e40f1a263f474f6b788696a1c6d8f10a0b18235c666c6d72767e9099c5d9f2060d0f223b47495687adaeb4b9bcbfcff0f10000000000000000000000000013213143", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + } + ] + }, + { + "type": "MlDsaSign", + "privateKey": "d5bc7d3c2fcbb66365428b385a2a2c83a8402084179f41c4baaa9c74137dd62ff19d1a80b8791c2c43e662db1b3953a04c1ff53cda0a3e0dbbd647b05b8ecb37f72e72a623aa1707410458cbd8b78349aae27852c975d5b45c1a04b14b2210c737cab2d4eeb893d44f61ed52da339309989e7a02dcda2568b6efccad6a53281313868191180c149108c23064131541123971e2a48898a42540408160c28060a03099424022460a2235644a184e02862484486e24a2441005459b366e23a38d53066dda24464c86281ab60024b32c824262d24610cc98108bc6081ba50404a22d92a04948b24c5a82718c400cd2868403b584e3100a0b048593a690d486889b16860a28040916012240865c143011981022054a64b23114341198368ed1204d0a316890462a92220513a2081b944459b86514c4482106328c2868090689c110020c03444344719a148e1147115848304a480e8b880c0b062d10026eca382093886140068898242a2127121b274508196a82a24dc132724ab64c18b72454c8401a418a0cb7818bc20884a460c0842452482443c29100130819856010c58121a54c21310609b168140261d9a050583422593689e30289510605ca386922228a1c042190326822317101866420227200012a244206ccb0850333859b48722393112003265b428821b54d4a000a8b244c11496d1ca76514296c50282d19286dcc342941065101c869c41470124268a2b24d43288d8a386140048a9a042a0ba16962200c52225200c6080c1889a2148590162c0a309212164cda06325b26508c800d23a47009a32dca92410b16522049710b374c49107109179250446ac2060542162c8b32450083500a9580d1162d2398291a058a0c220c8b249100358ad8b470a302689b4489d2421051082664b26821a32464302c0cb189249225a336404908061c0051cb089211a81121151152b2211ab02109986d5144229ca644092180dc98216318094cb02852002c04a8441489098296711181440b02620095081123928400505b220d13944d63466e13b751d0266ec3b4045ab6694a8071dbc22823c929d020045c066a1430524408665b322a1305480835258a20011cb6290b938990c4201a086c89204a8b2864143344cb3428d988010220318b108dd8b665e44625a3184aa1344d59968ce49624400225218841dc306c1bc00d9a466e138789c30282221062840470a446622225712104060093684c240613034aca282a110632a42470e5bba7eb8e19f9918e09ee590f1be68187eacea16515ef55e13cedfa62e6da527874f022c6433568b19409e6ec74ee4141f010b4ff4688e8426f45407c712f104c20673db9abf78580fd9ff48eb5b4f4f5e0ab4496bff14b95e073ff99f737b5deb98d151144ba4083270558ff1ec42d9db92e6d31a1a49457aa8395baecb6e1978348c5727e804b065e7fe6af339419184998952d3e9e83c4ee1b5e90670ebdf0939257e22f510b57efcaee359ea1e7c6ebbca236a6c1ce5d50751f9d72f79c1b5cc52178fc867e418e4ad5efa79193be23c098d5f897ce7fb849331264ce790792e1629b9e19e06a5d0e835b3f35d9dc6bcdc85ebf556b8cf76a2dcfbc119ac3242bbdf300be39cb311e5ea403b15217773e26ecfca52dfd080b59d27331087247f2854c2d348cd9941173854594fbc3902509c40e6acd12f9d9ca4a6597b3c2de4c36d0d1e7b0360188a44fd19ffecf7d4116259ecb5753ddce22af0bca5b03aa18ad41c93cf29599479412bd74ea65f2967dc597a018a2bb6982f0f55d73f5f0de9f373fa7d18d09fc3572ebdb00efd8bb61d941ef2a00460318569488de655f57d11468bd4e8bf633a5fa99479a700bc04fd4f578f88d66eb5cc0aac7629e8f7501aa12fa38cbec949b2375770774e437d12d510ec698d1a64e4509ca042b263e5f467acd71b3755c3aa0e2099a17b6b9f1b887e85dccb446973b4f91774567ed0e4cca7133a021751016d565e31b805c045be739f4dc9e6c030ce2d6f425c3d659baa6261600d717c6fabfc37a89924035606f0658aaaa9a36d5ff225031392a993062bfb98a4739529f6e136308203aa70574b047086098e103e608f95efc9ae0d7eb4e9a3e3ffce55c682837b23cc66f2e949754bdf54d5fee8cf53f644d0e5eb6921407f66faf5488c2b9090f21fd37724a138b41faf2762fbb22c2e465cc7ed844a13225ccb6b4fd9a638e44e09b46ed22ed8a568826d8aac38c9f3b9f735c20a0f76026084279256cf314313eb5320e3b40354043f18f1485aa753e6409c52aae7e33e9b2586156b454fb83e951677e6846c19752cbe20da3fc853b165483ec9dba5931e05dd939db2fd4f195a8ecb7f862dd54381c5092ef7788dd830cfe7b923462b169a094f9d5211a55cf345a2a2dd5d3af69890453da036213187627f4d8161995bcd670a8722cd0272181215f80484fb4df31f7495019669ccb3a844b2920a26949f8a7b6977c52f1f26db0fe33317f75f939487e51b8974ac0b97005eaa48de2d5202ec35268278d6f5824d15025968cd81b1cf5965583a84eea49657a436eac65c446ee43a13e2a4f5d8f757c28d53dafeaa1785d1ed6f6c04a122e3bc06e73f3ac2f6859448ec53f9548724d4d34a551edb20d2d9c3c297df28dcfa801ac9879aab0a9bcd88e8880c79f82c8418880ff78695111172fdf742c76fbbb40c59689ee4c9cbc1e09957532a230c98d5b1a82141b7997e5c44e4fee21e3b3578b3770643246e686d9a89fa4a1b80cb73d8fb354c376e8380e9b4454a4c39a0f0e4c66c62c59cf7cef2b051dbb08596a0307eac0971248c51168ffa0007ade3e627b57e0c5608bb066a9f566031aaf86ce79a88ed0875860c8c727c75793d4f74c76db9b890c661d40fb1b4150f9490935d1f8ca83f0d6666081c9ea5a0940799fb59809e51a59e3f41e8dd162befc9329cb8f491a882a33e8a0e340b352e15339dfc6b7f513f80979d440c13c696e17866211a3f99f7c149afc062309933d8e51a1ea48b77c5ca11a3467dab95338b45d1e88d520adcaa41db8a77fdc19b4f7148495444d3679f64916424e51c02dd97990db19b1ae7e34525e899ede29167cde6c1c8701f1abde7078d76544460bb3bb810c74860f5c93766a6849323143edc0ea0ff5acd2be6badbb0d5d616f3fb73c9b84d30103148e4dff0603a7a79a6e00d0a7167605d33c6cb32cbab2bbc198377a9c05c8c48c96bc83ab81136f43243ee2cc39d548827f0e90ca9f2c780af5e1f5d269c4e7cb047240acd94e115d7abbfa8edd57cec1164259a90ef6ee96e35f840f51ac3f7cd99911e6af493f9ab42dccf6ab90cc5f104489bd838171ceede5da2bc63fc4fa4ffb5e19d9cabf50fd32643aa6a52e7455596bf2a751a85c9fa1e35e59d0435ee2af6fb2f56e1fb86c9ef2afcd3279baae8ae95e00766de6650a8bb9df6afbd53560db9ec18cee43b1b3aaf973df681e48692cf5c2d81929042a9c71158796ae7dc33bbaa97f56250131cf52533a23e53a4b0239319db93a879d31dffa33c4a19a4c7ae4b588604867383b8e2976b17d2e4765759e294f1ea746ed88bd1b00e9fea0", + "tests": [ + { + "tcId": 52, + "comment": "rej_bounded_poly (sample_uniform_eta) requires 149 SHAKE bytes", + "msg": "48656c6c6f20776f726c64", + "sig": "1228a63b81ca13c8d83de6f294526495a7a801e3ececee85801521bcc8c2e5cb894ef2b58c34da45a32a755abb00658915ce58ac29f904e30cb28242a95205b172a345181495e08b5af9251223256c6b488b711b426498a1693e53d0dec72bbbd18225a0f728c640db373d2f068f9906bbac661c510e3a5d9d76cf1760e20c7113fce936521632988047208684fca72ba8839d2e0d009c4011ce906388adad0705f8b72ee24a03fdac1d614c513502787005f05b8a626b1dfa1a3cdaaa138874b7bb33194a0255c4c89fe9f7687b6352be6c19f05c9383cc316d207c10a5e06f58f166f563c96ba75830885103d8b3f26b5665c9622d46c8c182fbde9890b8de4d4d8b8c369b2e1a299c00702b587828065f5fe4e90c97c2672d03161315291eb60dc813c9dced5b7101176a08ce15424e5d1382a10455247e0d274e633597db249f354196f3fdce2947589644a7000d2e34971aa17d710b3038081de13e82d996d392e35008efe1ac934f0471465cf7da72412a4d9b882d4f4ce1e87d4b7020562c6d3794d69705dbc697468719f77e67808e8b09c1b1f82ea1bddbffe901f177ba227cc727ec3e090ad501f282453be1a9916cbbd033c25eafecff22cf8ea46257c7ba377d40fed4a40732db15397c05b240e2f7a12260b6fd8c1ceb457526e40fad42865adb69b87ac9d68710fe31077e0ac75f52e3494d1ae3520bdb31951f3d57a6a64dfe2c870d6172c094e6fce76ce5917a8b1f590b2ad3a71bf580da54751a53509e33e459d65c5c3165211308462601a8c27690f5b91b520cb3fe246f666c30eea39180dc9d04ef673ea107fffac99a5d5a67ae390d95d9b7af3fe9c5c71160d03332f3412e21370ea0a876a1f243c2bdfada9e475084296a1634421cb6c1171e1154dad75091f0ad02b2a96996e5c07575c3a512f30c30802736001a96997cd96f76e872e1d53bef59ca4433194f1cf012bb141350df18752b4e1bd611b3f47d9d962d6e7d674b2e80e56e28dee4c6a982179c833270eea60180237de04ee524bae75e72eaac1f4e5cd43e49052aba7a1bcaa76d580a1fcd804dd08de8d7e3f0e1d1f2517a889de26d56f9ff68d3e6c3198ee8c8ec6f0e0b0fb57469d8c20f057fe2ce67f6d9db919abea9f1d27023616314b4c27b072dba4fd82efb1a57061c859818619c3f3ccac00832f1131721d308181f28025e9f6ebee9a3d40d2593c40eb433b125fad725a13347ff2c4bdb85f208a1ffe22dbb2925f9cbf4f9ca66ae2a2d59a99cd628a85fe341ff803dca1f13622086c25de488ad8914119d4e0fe54769a052c263210fb05c0a123ac39f08e6b7f55bd48ba846fb3cd5e56c4e51638613eadeee2edd9bceb4251d2c5488793b445a5f8cbbc1b7d31b9f51ec06c80c96207301595c6aab52aa9272153190868855190937d22e1792a2edfe3639fa80f47aa74a19afc21c0ecdd228616a576f6574cb102de3b0e223eccbbaaef873bece8be0ad5b43d380fee7a9f76f3e676ad7aca4aef6adae49e75efd9901ff560c081327e78e1f5194590087d98a4dfaf0979e7311861f15090b4b0e12d41d1126dbac040c7f7c5007b7eab33d2bd24a1c0e491fab80d9e6f5b84044c8164b7dd0cfa1ab1864c3e0dd255051ddc8a08d8e20293edb78eb38ffb6b7b70b97d0e6ffe2537c7904f0b7380e76253fe88cf2081b31ca32e846473cb33902eca0ac5bb3d3b7cce24acd89bd9f5f6e8f9059fa5350d8b75f7f52d661fa8a45c2f84c0d75ce1a36c4579b8184d3fe4b0756519d1015005d8f4836dd6d55a3412f7234d1176f617ec7b87abc4717efa083ba57d14b73c971f7bc171223cf85918514138c724474e8c0618e31b830757c86992961d55b2bb826043e6c5566b1f41bf6424c6ac4cc73be312ed4a4393e7916676c4c3551cd7343fe0af5a382c098f1cc00061738054879c751941673694127433aef66e6a955a00a92f18d8437c459ed095fa92a6b03499c045cfe2141b30e80dcf34f36ea91136c5e203e7f834f64259ea7647a7b83d78e77658844896265a2e392c6a90b2fcbb350a610020538fa82e3c33d513c6863a0afd657e66b37e2a70d70c568e3e9269de53eef8be01052ca266aabab9af53f2f66cd110730a4a24b5ad6253c5c2f5e66f336c72dd3ae1385d234ba54a8ea3f3b84cb4bac090ee0b93992e55c7a55645773141d28421e8bda1204fdbc228d3da188b753d2c320c8f443d177f29b0e23db28a44e6cbb46d6d8b5270e65a42fc208ae47250041ccbcff12c08357b6ab5073e23d4adcf01c7e86ee4912461c409566400d77a81c6731168e048300a4b11c9371e3426cb5398a04190cbed6539fd46cd354eb5e02513494c098f7a8b87640de72dfe8e8884231cad7c3080b72d193b064c0e8b5cf46216ecf6b962f9b072fa717d6084f944459fd840209821fe878f1b08fb251b40217ca4e2ca36325038f1635d9d82cac1b986b5c8689bb8a72ab212635d8858f22536720da5b27cfa8e344a3c90100362cf4f71990ef43b306761828423b46419e0a2ee7420c44cd6b565da2f6978e1fd04c81a686ac7bebaace6efce33eb8cf02879e3f503154aa70c17e16f8c209353c63090e9104ee9536f1905cb9df714eeffa5940e1876e819720932dbefc835b3687f53f4f87e02a2a4706f4fb64108ca68e4913576e377fec31d64b87b09e359f7b4b0b484982af696535fd9809c98196c9ba867fbbbe7cf3326a3a1e3b609db5f51cda1e480b4c6801b25455af06fc882c5eae0caa6214f28cab6795c4a86f28e0cec55dc6495d8c4ba69a19acc6e4c9655010a2b86435e58539680397c3f46bb4e413a136272bb95619d592f7715b21c8a6275700f78808dbe80a646e9789453780bf952e792b2861703356e053febd6625871bb91bdf2d68f345cafb77e953713e58a3536bc3c9f3c1a6d01fa8268768f139446021462527f54685e43cd50820213ed769e8ae8011a6ea01a953af1892493f2429d0a5835dab830b8a9499dcb3e872fca31298329626ccb2aa26af3b89f5b2b9120ad2f276fe5944a163c1f42598a55fd1944468a714615d98f3d9a83675dc0fa056328cfd05c2b91a698fcc7d46f900732f2707d27d66171f0e01c15be12b25f02a545f334375af9777669547e86dc80eb05cb1bbfc1b6f8aef03cdefa1585d9d3811c969948bd05d488f64c40fe442029ba5d06987b1a664f5e1fee446dd191d5dfc673fd2e461d822f97fb07d15ccb8e23fcec369ca2fe4603d73ada070944a1d12934b7d967a7e5f479b0212191c243b4346496db4c2c7ebf0f2163a455269767a7b8aa8a9bbe0fb27303a40456c6d6f727c7e869a9ca1a4b1b8b9bcc8d7e5e90d141f464e626c728a8d9a9babec000000000000000000000000101e3644", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + } + ] + }, + { + "type": "MlDsaSign", + "privateKey": "acdb973dbf7f7c8dfb1126089e811ec909a77815bcbf1c2a1fd114b39a6c14c811896b54218ae6688d401ed1b341d64fc51f43177ec00bb244a4b6d35eee72d22eb501aaad9d47d71c67a04e274e73246cc046b85bbb7151f77e3b464d4b32d80c13c5b34f5ed0455da5c91ffa73f776f85f100db84b78bd0bcbf583958ceba9d8086ecca2851a062113234220c14ce44042c3a24de40065193565c8424aca88614b128912a4048c38258b844501a205a3124e89b88483204e5a208e1c000419224658340e1b225023008902856414a64024206842b62921b58d093570a184845b82505028840b00115006864cb40503186812c101c9a64111048e4aa22c89046ad13686cc4448d8445143022619c12598c86ca3068199002200268d01b365c29004d32012da00818c364c2139250330858bb28804232a9910708444681b470c423486180820e2069204142e0a131059428612c50422042293c4891ac25052160d48200d84a4301b8128208729c0226e5c0002d440429bc8280a084922c070104988910230cb484c41084008080de20870c3186cc2b488c8b688a0326e9188504c9401828028d0044123b74d2346129b94211ab04d50182c520221a0c83012092a134446413086239651a402285aa46811c285631805131741da2821a0421181865151106d01180811399291c00521050d0281441b3861921249a48605213611c82844212908491440229120c40820e224021844609c381013c78504374d91869183404041b80062b241848600cb080881c804dc040018b16d11269013012943c671c20632c8800c5a320d11126e8c3809e1244094024420060a52c60503040210b00d63142cd9c82d88164ac12486603892cca600184128a1944dd9a46580228921126d52c231a3066d1cb69190340063c48dd1860c0987840ac3451bc0290a3791602040981605d23248a0c6218c4868e0000551c66c5314000c823003c78c1130659a28008a2805c19644a1328a99285108468920c368cb960921c665008700e0486401103103062982b091e2186593b41183a43158c01093060cc34466888250a4380d22885043002d241432e286840935714c4212112165ca2262d1b2001110692012661112115a2048114112e10228c288888b868501458109083018160cc84221e186241c478e1ba75123056a00c04ddcc84008b98103b43012c7209a0201cb206e64b68519499214c53101002ed29270e3107009a64564c66414040e92dc1500985eeb0747aee4674a63dbcab2122f86ab0c04f1fc24f96819d606c2ef138dca84ed5516f4fc887a97740e8be53d2ff7e797063cdd658ff85ef46a2e8ee157722d190a42f02084cee6a7127fe3397f29a315f60af93d0dce561d9e407be85601566bf9c824058ff85d50c3b54efe659014ee1ddf78e924bcb5d623abd5b067d8934df768b1b628fc39ca813948c177cf9bcc156bf54a2670e4894665b9c956856bc3c49f151b6dca3f9d8e8fc48dfa970fe0826f384f8bcd5de50ad281df09278ca32639c94cb3e1af40699a9d5629b308db68e5c0b8b78046474a834ce8b76c1e987f1ae72542d23cd767b0d589670d625a46067f46d5ccbc478b2035a5ef108a355b5bca54d882743c06a152b54977d417a4e3785c9df5ba0c5bfb76cc2b859a4b0467cf010fe31a4b09e47df48b50e106d1e36f64c1487135fb4f6dbdb97370dbdc1d16e52fff1770cecd554f7e64974b4f357b7700e4670ad36d7f79053e709f2e39e6783861ee47e4f82417440a3a4ec84b75b86e1e81fe1d28f7b82618bb81f75050d5ab49bb354a17f3f7751f327de6fe7e56c1f499afa4e59b6f5a596dc6a2c4938e582e3eea86e9b6aaa1f4c0479eaa8a47a3a10039ff760212144205e05603ff00259c95d2a47fae00e982cf4c178aec5cd528f7434425b1bac9679954ca0bbcca780413f4037ea047385c2e1c17a97831a2b4e615080ac994f0365566ea3be3c4041ce46afc235d6de450e862cd0847422c8629f607e7c1dd16eabf984115ca854a74a4b5e3a3c072da1c82d91998716a1899747c9808c7c6c5d3a079e3e65b63c61aafaa2847e97bcf094b0bc93968341ad94052408983601f482744ddfb6da5a55e7ce09867cc379c3d586415e0c303f5a9c75ec88efcb467de82cdbf5851392691e4250390ff9e1ace27eb6fce6390c520e157ba44d8f86818c00783b6da573537bc1f98ef0eea107dfe6e984ee304e0adbf518d03a509b9f7be5157602475062b6c4f348779221cafc88601b7e73126a8be230e0bf78c6340c7b5fe14cfb16162b0d5c89941d38f8b02554fcddb63cc3fe752a7f596462e3eaf983ac9a70ad169f73ccccd92628af5b1528d9372fe45844ff617512cab16bc69c32221e6f469ffe1b1238b5d7e9478cf06646009ea23826619188b2e7f284a122423d52838baab82997b08989de24ceae51cb27140e571f8f5d26603291d339dffef621484e7430a786c432f20b24840d2d592b3ccdfffe83bd27e8fbbcaf6c372b82f6858b30af1a93849a317da14ad31b7f30248502cc3bfc014b0d89b5b08ef18e5c81e4b2cf5a4b0aa9089aa5b46e4c4dc859555e00b3f8985fb4d4ac716fe10f0b58156826a36ba493aae1f424795c482aa80beff42ba1902413100f05afa3ac3765a4ed5d6c6da55d0670a8345811de40b43eb5fb19fe82ff2cfa81ddd7af2566c5a749de98094a9e42706caeef3fe5697bdc881722f1bd762fb70ca8a87af09f8834716b7533b1ff139c67c8380fb2483165dd8f24f18cde57e4c5edd3031264571bda590087d2c7bb3f22fa6102ce80129de5ebeb74929df377a2ef31b35e01a97c76d4ec0583a5801d38b13bc30019d57b5219b48fc9c2b31b056743004e324547775c721a4112b25ff22400bfee758f88166df20c867305dc00b23f2e3c126317796c6f8492bfa8955fa173c812f44ac3bf0f4fcf809de95acdeba6408c17c38c25633eb1d1d334a27166d5abe5f7b85a4c2414df9d0a3a8125c317123c2c1e761ba88a8eb8b4e8153402a32697511f38b3664b09b59193dbb3897787985fbdebb00a9accb3ca1e097c7447d404f644a925bdeb372dc5af6c985d49fb0ca9597384e0720edc335af3e3300bc7cc6aee72aaf7f5c1691b12fcb2abbfa51a0097c60cca378ea1bf306fb6fe221406144c7f2c31cb7459cd0214ba5cd27b1607b780a135e16f529f7b0b7c04a1ac9d31a3a4b5aaf3fde9dc629f278e783ef1f2c683c0b4dcef373e8a0aa5528f7a86043a43104ace5ed6e7ba81bdedc7e1ac8f811971412cd689f9491b03cf1129a4c92d5cf0f39d27364db9ec91dddd5a24ab382fccfd833130466ed220121970b215f574d0eef4ffd10c93bed1aa99e1efa1c2793544e6f2cf65d25e6cc9c4a033f5fd92718ed0ed44898cbb403314f6e93f9e13ab7a36fd6bb2d4480cb9e36bdef09eb5094a70bc4b3ad9ccf7701bdef4ae8e9b583ed88ca99390dff4faad1515c59e938e634e982bbb4d4175b92e8ebd09c9cf2db8f15d7a6fad310975df7c4312d4016e5d164cfc33a7c1150711bb08804b0bc4ba8e7df285832632e6e4c7c06b8c8c267b078623e", + "tests": [ + { + "tcId": 53, + "comment": "expand_s requires 1125 SHAKE bytes", + "msg": "48656c6c6f20776f726c64", + "sig": "613da9afc8a473b59338dd93f088cd35f5af60c6112359beb077aeca3cbd473c48330c61a54e38989758f6321da424351b755ff799e61b1bebe78e4be2054bc37247de30fc4103a4dfb7f7b696e418415debf49625ea26a72258391f4ac81c6f2c628d0b6b86c9b77088b70a6936e440bb400c3d65c2dc39afcf6f27fb656afb138a5ac1c903ec51f66ace8621b227868681ae6ddbbf7b4b59b2661a6e971d32a17ad6ba74cccb8bc6d1af9a6adf9f948789b0f3451af6d18608136e43c2e70e3f273c51daecf42327e506ab83ca97bfb2ab96da8cd77c2f126279dc4fe0200c219bdea089254ea488884d65419bffd8c7263c10671d9435ef8ef19ba83b042b66ea23d8e6acf2f050a5bb0eab8bb92ba4416b4d407128bb50507f717f8bb705c879e8504574afaa6d613eb42a1db4d5afe13df298f0293e5e1f1d59837e83284ad90ce4a9db5126a0d6d8cfcde601e46d99427a68f6b9b92cb7eb42f5dd53959e562c34f1d92a7307de0c487de10b3325c784c5b56822fc4bd417c3fb645bfd267577eb9783e8b5b667d337cc51988bcd571acdd630fc33de08be273816d11bf10fbcebe817c4756d1fd906020d1a34bf1d31ea1d9a1bb7e196cafdc9afedbe52f6be1114b3d3d2c8a4d85c8599a2c2c5d887c26553d1db5e181aabf542e92024a6607d04bed90e263a12a493118c7f2a5f48e10c284c2a61a824a37043b9008c707abb4efae6fb78c2f57d8c2835b07d0cb091d0f5856c238553ed30a1c7340ded3b5add843c9e0dcfa47ffe66825ad60f8497ca2ad2a8894ae4b8d623756e0a74312c7a26a86453cb151dfc623c80086441824107ab47288a4dd379097c0dac0f6482a235df5a2d096e854635437eb6a4368364c7df3e929202d5a3f7002ed9c55a6dccdb9450674bb024d63f0460f2761ef929cc3fe821db140e9e0464184f15cf157a76a49143baeb2df8738b1d79a20d094f2ada1aed714b258dadb06bc3328dd4899491c9ed1be576b89b113350e9b4d15baced613e6c4499caa5590d2ca497e5c3a927a177172cd9683e9df65f5f6eea5067ce5707494a8a056d0e485a7b153af68960b96913ba50d1f04f9259f2646d77e5fe96c854a1add9ffc12ec989483f2497afb27924cd01535438f1475670a995956b963d24253914b30ab80948eb5880ceb457d360e5d8501e74ed1697bc3c4299ffd52bcd53d62c46e3051ae5e8ffd7e3a7154d469b94d880b2e7b658a0e02f55537b684c07efa94ad17487071e5c567abbd79eaadc4b61e16c6d23aaa4127d9e478292f8c76d1fade2e76def5b773ac5d23b7e4cd239d5e3059b04c0a38b18df8fb79669c914302a2080cf1c29d90aa8ee3efed9bdf63ac24a52f2d858713a269a7b6cc79db6dc74061083f822eeba5299d53518d5246919ac3d594187c54dd4608e3177b3f6d92c55c99915ac273491b84077ff14b537683b29088d3e58b1955460d0b6a1138d211744019f41d13372d2054dba2f133c60965c48dd48bc52ff9c5d4fa2e47c80644ce4363d560092bd9560eb02f940229ff87fcdf9abbffc17bb374f33d9bff81ad454efce3579421e6448f24fc61dd2487d36c8add92a407ccb148eed925213795217268ece535e1fe29ca1b187202896038b4ef1e6c288d869c109b5e78d6b90a92818e5e180d56157f27f394fb45717344afe6b1d9ff0b11535967797ac3e8bb0309f0b26d40bf64bf93fcbdf6ca75885c2e4822d413c0c81bfc95a6878e260e7b98ef8b25414fc6d84246d8ebefd0f781097b075d63d2b30d1dfcbab5d6fc2828f6f662c399f3b7d636f6ee75af5329bb200ee75777fd5752f27340e98fd4c5180ad215d600a97a9d2752a6226abebee0a005408ee6909c2bd1236675c6024c4d9f8bbd884500d82e2548b7d758e4e897404e2c46a2c2e36a884b89a734efec164384895d6ecd257420a81b6fc2bcc8c50b5e7564760bba981353880052ec4ba5af61eab34d3bb96f7692510d60db4e5288b4c444d8d7a01afdd5a4bf76b29347935547c09ee554c29e1a2e07f3e8d402c9085d0f347999476e1b9a103fcedbaa90c4aa420a9207ddbb7bf9980d9f8fb9e00b03e6d971bcea11c0233ad2eec4c19c4750e3bf45f60b5123f98c981b3674e72d0257e1e6d031daf4ba5d659cc314d16fc25dc708bc9ba7085aebd0c541dc3014971b6badd53e0b817a28d0475d1cec92faf21dcfdbdcf5789be2a3af941c6ebc1ac08025c3808c659ecabf01598a92b4df2a206fe4e0bc2eb249f8d601b81d9e8dd5955dcaf6c23d4b12a32b6fcbd4c1fce5810e1d133b2dd4aa3d54f8b12ac6112c869b4f58da1706bec858de9c178431be91e18ceb6c207477d3c8b44316fd9c5781b983f6dd355edc7d6fbd74c0a10782e8e09f1864e75b45043191bb9a68f119771884613e20a6452b5cd8d0c2a2e0dbac41be718b38e6037fb36c58675b69bc44040a220be42741a362c366bfafe8b56a1d3733855195bef38d02c98e2c106ff7eb37d8f8e5f00eccf79feca4c547548733746b4d669339dc1dfc81c528d0f40d62fa693928961e6760d36b53cc3ba5df8b8decc3a8542cbfb14d2b88bf0ac30ae5b684a7f822e9ee501eccd7346e5c8674eea98dcd31abb85210c4e1c7302811c0c0c7ceeb99270fe55883a282133efae47666ee8d5791d55dea1e33277fe6ae30baa1b7084c39be449c7ea40e6399bc7f303e251028d1fc54a724610f56082d89f28eb81bf8b79ceff49e4bab123d9e8026f8ed43f4b3b0d680677eef4198b4650a37d702edd85612d20b4e4e681a6c646d3eaafd77bdcb29229e50845c42d5546176d90f5788788943d8070694e9e351a907ba61bc3daaa625d1536f833d9ad8b4a311684b31adf94f4cfcd26f36bcc93fd6e3127a8c63eb6213a169da7943e9272c62a0e219fefdb10305b461dc58e1ae807cba07185432a0bd678c086c1e89aafd93e9e9d7bde6e172545b323a148ea075b1e1acad30fbff57dd3a94684e589a5e5ca8bd4647103dac22753484bb396bcca5d7a02d0b5ed719807cfeb6baffff7ccb15e8d448f63d3de62509a899f52d7a75340063284988f0293ae00452baf4e4f38709eec875267370bc51ec3058481f08059068b075b1012fabf68bd55a33db020fd291ceaa30add473cd79617432765032bc5b1bc1855d73034aaa99830387996f30c9851929bd6b9dadc86e03f854e31c3394dc865c5878a8d8f6963407d2020cdabd19757763ebf2f09392c8e27bcb5a3e07ae8a1029fe1756947bd3117b93c7fae3b0a5a0ad4041b353f474d5d63788ec4d1d6dce1e3e9effa081113182b2d404d53638b90b3d1e700123f4a5f606d777a82969db4e2f0f1f8fafb222d4b5559639bbdc1c6c7cfd2d5dbf6000000000000000000000013223545", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + } + ] + }, + { + "type": "MlDsaSign", + "privateKey": "2c3c585610631e4701ae30f2fa3df0da7b607281a51396d7165aae1d3310295e1c8746f0f3a769952a7d563630b10a5c6305b86afe0ba7561a00ff86ce5d25e5cf07555dacc52f90de64dbbc453a81987271129ca386895bb8cabdd15bfc978ac413204f7b3a5b86f1bb875f6b2b57617a8cff8093b5911a549f6e2bae1872284b084a912490083410a14208881801c3246522170ea4860441188a01944998263008b00da0905001864504a931001812141425014909099850c992908b4611504665d22445e1822990284008876419100d101869049001222601198385513802db340dc13266191932184186d4b025d4142582c280c2366da0c0890c140d1ab16824308c19c228830665e0206950440949124aca2844201600a22046820212a2a844daa2116482048b1420e0986ca1402e08855012a540cc162e234266ca920da4b22949366ae2888de1248e9ba401c0348a40028463146e0388100302925c20261a016c031068c4988001176150148cd230099a106a243840c09451e3b280208889d8000e91162601a66942144c1b900014a9415b3651e028118b286d141042e2364289322244b26009b329133750a118714b904c0ab46008078963224524808982927093305244266c9896684c802c01491004340dccb26121058d02b48458028a03a288a3223118b96d8a066c1148285bc890100822c0b68c1c400288229209c14449386098b88ca114515cc871142229119641c0088a23c80d102868e1444820060019b7652400460ca06c52846d14c7051341801228810c446ada487201080e9a848d1c422e9a244cc110851980905a00210aa42d01b2440a20424bb428989201e3b8291c220c9b464651b04de3c64d94004551268e08136d0b2621c822641887411cc0219028904a300242964d044569d4425008080054b6612488105b049118124959862d124880c4326958244911910402236d83384500b164d22286c9108ee22608a30230439030c4169194c04c09a74081b201e3b04d02b590cc262e91b28d0a895048186c22c991c8122cd2a68061881143b2240c15450c10851bc26020448a10008802940050284649143243981061064e53844cc4460580262c1145729a200c62403024345124425002302d1b286ae1c2410c1420a4b825894225823281034308090026a4224a12b7640aa190a1c229c9808d208108e2a46c4c242e23022204a740a2106461422d23a76522a221902610a1c41041c82158908125620eccf264c225eba923a75be81015ad42c4c7e43ddc5cc7d46971456aabe49f4d55d7f71cdb37a513e47cef43bc27711cdd9a5c4f50cd6684274b1a1351e1e7733b4ad627a969b2ba0b0050d7d7918e6ecfe99ede21193a1471f38cf8b608c66e759cdaf72f53cd551204dcd6a3d28e8869c16d9e9778825ba3730e0d50728d29e7d82aaa5682ebf039a0adc2cf3c601bb0f3ecacd550f73a6e5430ad84c119ab88efe834d7a9eec9a519d0bcaca8ed4df0fac918b72687c924b688112f3da5d57cc279d2aabfc45990c069850204fda8b7ea128bef98e88026948db4126630168dddd51a30ddb14aac692fd042c7259817f818d08a329779cb63f7d4ab7ea9f251cda919892d525556680dfe8da2714bcd7cae41e353048e89928c81b1a9796cf56b67d1b0fb5c36b7daa5a96f4fbabf9141527ba06f122ee2a26dd794c2603f795c7552362abe6ccd221aebe45d53c9db6a0dddcc48ab31ec5deb5b958179175de3d26cc5405b58c1d56199dfe6b2d97206740a4976b8a2c02445c4cbfae90179f41e2c843b01f56f29084bfb1aa956c96de71639b26a76cfd25b9d488524565259568d26bcbe99ccd6b506f3f748220b2c5b266bb45cd3c032e35ed1e2b1e572d2caa96fea21a97182f3f8baa0cd5e629acc34a6a5f7feb601bba20e447e8a3838fa2d8a74801465603a0824170128f529e640be18dddc2446b07599c28bf827c1cc9a1a0c4b1a6d44883ba03ce1fa2c4fdac8450682b4e7c937d3c9cce6f75e7e63dc7468c5a7f5aa58827d32c29b4ba7ca71c30210a86b5609d502ab68d19312c6331bb658c2a0da9eff96fcf832a5259884c288844da09e387cfc37bc2039e23328c321892a8a6fb5d6a0d96a00a5d55eb203f2706ad2d81feb6311528e957e5bad930cb02a6ade70f21439780cfb3ad240034bc359fa1372c5e9c51f4d09bc95fb34ec94d2b5dede33ac34ff3d39f643edd3f9141939173c0202e438cf85e040bbdf43d24e9f1a288065b5e207f57103f7a42ddb623442d0618694ee3ceba5eef62f922527ba476c8a60b3ffa2b1c24281d6e343adfe01df61b261a5aed32784b2ed13d1fbfdba277d7be4448bccc923855c8c08f889f871c36851e53dcf586a2cae4fae054ce023ec48d476b55ba39bc0715afc11969444dbfe3f7ce85b48e56e844984d3020dbdc84b6406195caaf13d7f7260682e4f987d92c84fe1dd4cd03c20da6d74ae258f8286623b8c1f85e6ee0e097571e4983f7320ab620b2130d3f708d5c6e12dfe17e225e4fc5d599fd21e3c5308d61ff714f667c4d24265ff26de15e8c9e3c723be3b4fb2e5bd4af607c01e787db344712f3f52251764bff2632c504d1164b6cbff2dcafa5a061658df6849b2153c988c2446989cbac9a29b211cf3cb7add7fce7f21b78547e79a593039c61ead55691d9e315da3f0525fd7c8f823c1d1aca06262672e417b084db89de350096698064a6cd25c8fd3b1b0594ee1358ad02536b783811d73965ae61dd84e5e4591128e1c71630346fb7d5b9ca58083d4fe9e90bf6d87e092c53cf17923835f1c8278805f04c6d9d73b0e938d047cd6e3cabddb7648b61d0d6be4fb73a931f984376ea8352138911c7220e098437376252565317ffb5f09f05c52f713cbc2108bf4bb3a4340e11ca66b6dfb3d152a24cf5165e8db31fffbfd238a8f3131be0ee67321bbac4ca875b15eee99e155d22385d4b68add6a3513680ca0e01a07c23b2f3b6d829389134e17046eceb198b495b091d85865ac33d6434ac7971b8af79e074486fe70f34e8cce4b96e9e91740d1037fb87af494bb043edf79c057c4a68f4458e0616193f160df601ef6ca5d36d455d7a853d546e0e66ee65a81dbb92b5caeb3be4ae2fe512a5ee23565a3d83a551a0077dd66c3c9e2e8e23a114afff73cbc911486058739a59bb7ee293d62cf6867f547c109b56b750288431535ebb569930dfd8e40fc3b4003e894162d27e5015ce8e95224bdc68d3d8d0cfe2d25d73cdb2ba4d38bf8b96bf2190b9bbaf8831db810f0d29bfcd76b4504cd3a68ca1fb79eac5245d50ee3ff9c9289603ed7e12c6921e6715e3df7b882ed9c64e0e4c1f0d73a1a225aa24cd22f35d90e4228285c41c6976a0190bb63a38d67a983a6679232ef14d8de000cbe8a4676d840c4703c4d39d5b2ae28845f005080f517c70da211e1b1d00ef5d445f8fd72d0143c0271a06aad4bf21e834ab66bc5b377c9cc24a62cf60a1db452c5a0dcdf0182592c7a2bd09c38525e5355a490bf85f1a41904b66605489c426c99e8df2df1ece83fe26f8c8237b17ed40ef3330d6fa17933449b2e550d42dbec7b40", + "tests": [ + { + "tcId": 54, + "comment": "power_2_round returns a remainder of 4096", + "msg": "48656c6c6f20776f726c64", + "sig": "6b97432ca15c76d6cea9c888f9e5f578afb113920271950058136e9fdc5b56e81d7317f725be2c72cfea8fdd65ac929081ec7172d892179cc64f4a8e73efb4c0dde1ab05fdc60fc8731ae77f2add23b96b98fd047c652d035af0cf24df7dc24e96d0253c034b3d92e61a9b2eb198a93b60172429669094dce14aaae62372d78236643500d8f9b156743180538259814200f645ec8525ec243381f4c2d2a1a721f23f83d91de6945c45f8726e9efdf99df659ce21b56cc5badf45ff2c34e3a10450b1232f96b5877400b96a11c9df97a89e7431c5726e480df6e1e8b7fc10cc092635473cd55e1810bba5162520a69b74267698e7c69787a7d4476c0997813902a393944f8244d5c451148422961395d7f392bb5a07039d79759ee212e34b4c7dbb6e8603b3a0e80fbeb637ba3abaf9ae84697615a12ede70c371a2afecce29c678b3978bd44cd36575720f3448e67044c2d4f364a52171b9a53c718e942e3aeba9c97c6e26961f09b516d3c1c320984c207f36f76e59bb18035d1234fce0a39e8667b8510982b9cabd96ea5e7833406d69677e8c066978ab7d0b47ffbbc3cfccabbcd89332e208cf5088a0476d56b55e4a6b01bfd8c139c020c80c3cec676aee85d1f4b31ebbdfe05179934ccbbe65417d2cfd0a57c8393d4d54c8c5630ac708bbf593519b1fa5f8cd22818e68ac147d41c84ac63e8d574e03bda7558b34c165cb20ebccd1225852efe990cf6ffe77fea0b38e5a4b04b419ec467aa3dbb4ac95f9f6d0f1a82a7faf96fdca71d04fcc1c51c4d11845aa70e2b12da4238d23027d241b7d2c32b1fffae33b68185702f2a709c51634c58e7dd865e3e73584c862a396842603066a64843d777a86da5e487083b48682c8aa50f16cb9216b3ecf31697550d3da596364e8ce1535351168b8f9a42be85d875027d5a91f170c5a2f7d5cb6bd70b022351273918f923c5a64f8744a7cd60a18696ffeef014ba666eb3415a663fced618da1aa2fdf04fff565012f4e3c657e4d4aea30c4c1a02f39b64a43a4e52a383ca680aabeb3df518ad0eb243f9ce02425229d530ea8cd7bcf8631aef5180de03f6bbbebb68720b0ef752406e2cb05e08c655c85e817bd98d57105f4422a96b038b576f8228e8a0a40af2dcac782fe7b65d89025dd4e41fc898eaa8ba250984d8701d5be5988348600879cc95bfb76ba58f3fcbe18386c8435b6dbad311d600dddb82bab03874b725acd1d5ce697e34fa03c5970460d03b64810adc20a0ddac0104169e357eb32e1ae5d0f8084cfee29ed8ef5f4f1ed5d63dce4a6953497871c8140384b5a4a7a84e61bdec8370dd8282d44f37d0e71cf7c857aa557439ea9a9b66bf51891baae80dada27029129fd396aab17edca38384ab5f2de763f92f90426cf2d142102ce673358ea4fc493889d218a02de534186dab6e5924fc497fe8ff24d128fbf9dc87b6d0c6482e1fe52d1eddaf00a427945f3326b6d8dd4d1b53ade515e1c7273b2b8eb978e557dd063abcd6db5196506c6d9588cd8a16b6d35ed79da8fc004adaa3b50409088829334bc3c39d336538be2f1ca5fe1ad273c58dfb4d74ea065b595f31b34a6d55599fd3386b5458dc2f1176028d063b8a38ae6f89a9d4653457bbfd3349304169612fecbec2e9d9819cbe0ecb2fa28030c405b410c2c7a42f5c816d9e98aed565b236a05f14b2f61a5e091a86a429347e680d764a5dda7a315dc7e76ee1d969b56fe301858f4b685ce73c25efce1bff25f72f5150d3213b825a60d3982364fe8036c39425008bbb35c434b2b7a8fe9974747d4f0a61ee58da7d738bdaf3a3199530983d6be64a42472acc2188eb6a093394e869ccf9e79f472e5c6d5fa705b86c09b8af1f343e801a76b023598186633aca4e6be050fd785b6072f409707c0d2eeb5b7e9dc0566b1dce3ddccbed8beba71bc5d6d9e7c38eafd82b8a605cf36746d3452e02476d5f42f0a7a573e5ff5e63c3f84c8474a81885b739bf119400bbb322e36496416eeee65be36c4ae383f719e3a01ac39eaa82b43339bfbc105cc02c0423ca03eae12fa849c439eeff57efd6e17be99699aebb23e547d88ec0c2741ba2b40c3e48dc1a4823755ce76ab39dd164c59240e65b8dc46652fdabcb64ca30353d9b2f69bb422fcdcde4abe7ad67173fb73cbfab7d6a70c87bb9b60bf3c913d53e6cd34260b6dc83fb5106a249037babd9fcb121710a89fcb355d10fbef7b11b041db93ecad2c39801ff1b38ab97b91e7f10e13065e5e7b0995ab82e01d660e1ebb5ccee02547330623f6a7e367e99324ee624a128209f2b14945651a8ca91e0816c2414b87ca207d7f25fc1841c342a28a2e2fcd21c8feece14579dd7a7b78695944ac398e926799f6649a44d9a0b0e66ce7117596c69499ea03f50f804c0c1b557ff7bf9ee002f0f784d2d8a1fdee26807137fd4c6439dcfcd78c8f0cfc21b540624e81bcf60396bd564478ad8f223a3d33fdd12dd41f34a37aedae5cda88ec202e1a62d37c8c05a1640c85a7ec66e3b4619e37a9203e98df70b96c376b15040d8e7633c8a3ec6726ded419f81cd64c24c087596adb1dc9a733c47ffe0cc29132cd7d8c890eabb0ad199f21710219e83262c99eb21fa6521bb7e087214f86cf34bd0216f591b103babe940bc14e15195f489788dea98245fc8743d164312dc8fa5c118d282ebe95a9c459a088694e1f3114ccc6943c78b4ebd406164a245d32d7d16768bb083e52b9ec5a95c43fb826f4b731b9501e1db20ad80109b6aa1aa6ee8422e92ca26a93261bcf398e85c4bf1d3d4c8a7ebb8652f87eba37efbc2d9010798641d4338cae3856ac98804af382e97a4eb495216dfa348ff47e057c5d7ca10c71c2b70a033288a784affc8ab4413fb7647b02ff33846723e4664a149e08751426614ae4cab84a684b5899c38497178b50b774ee606f00aeef1c9e2917e6c3ecbd29ac785249f2fadda398e4a8dcc8edbbd3da8b24e9a0ddffd1bce4247d5a60e4c8b64ee101c8c4a24e57f71053dc009d144e2e9103f5176272ba4bd21b418379224779833ce3caca6ea6992c8f2bf752964a0eb64782983256a977c5bf9a29f4d1682abfd121d7a09a2c3a8543df6377bff957452058b3d2997ff6b306bf6b7bc10cf9013256cec28ccb992ab2177fb172e41006c0eddd70d07fbcb52ed03909fc5429f87169eb507060dcb8ee72c0216133a6c63b416bd311d09550cae4020ca764292ccb1aeacb6b5781c7e508f7672e072b61bb2e50d350722576dc75f08520bc600d6ed06cde40981f07090b30477077b0b5bbbdc7d3d9dce50a15575e6284a7a8b6d4de0d1011272b48516d738fb7c1c5d3d8f3ff0d11414b757a888aa0a1b6b8d2d9ec000000000000000000000000000000000000000000101b2c3b", + "result": "valid", + "flags": [ + "ValidSignature", + "BoundaryCondition" + ] + } + ] + }, + { + "type": "MlDsaSign", + "privateKey": "d25d5cd66016fbcaa894df54e0b42dc98b64857e9ec4524fb697fa60b3fc19730c5bcf797702b3ca390bc845ab5ce2db2da3440cbc269d4dcdb137eb39732f07a9e4064f29d25f6898a4a2193f04d666ed69de16c1ec5a782a841e2a2c054363277ef4dff1fceeb04737e90a6f60f2d8d48e8508992ccf51cfb2bb2885a809fe11b92d52c4410b818518a188cc06420ab77123288608952818a064a0882050b6685a1265138561820641cca88d00876419071124a070c990000ab9608300921a834908038a8a449198080c14440220a090242641128389e43051411870cbc68881280ee1264958800480040400432052166123c95161b22412a04da23460c12210d1926de3b8048006851b416c5b2892d2c67018b92d4ac0701836680b446d198305c114521c844822068663920812430dc0b684a12091a11231418050542045e21426c3182d0aa6401a9748214420a3b84954882048b8046246524324429cc87052026e8c162a21a3411a0991d3468c99126510a6709b12069cc00c14314dd2368d6408710a25905c188c80060ea40464c38865041508413286d940322407088c180452c244db344d4912225ac88d514605d204441bb46504444919c99191b06992c849d9c468c986410820255c90810b38680ba328a4b685411830e4a62c49b80894b648a4982011b9690a886880484a5a8401e216921ab11150022e9a280e0b409212a44880146e43466108818d1c106c5c34700919910c36622333464434708490650c1964d89601da829040043220a46102294814302c193670e444429c082601076e1cb22952848c12b70802405259900c8a44500cb451e2168414a06dc99081134171d33871004944e314100a3920e3044a92448c8212891319115008496382519b246d8238628810646006404c966dda2021a346095114029c2644c1b224c8184cdc347263b82c5a344613c30840368d14177089326a4b804c62424c21273094108802386c184071a4322ec8b028c3148e9932291988800b216c00140c0c014881146d089649c846226438495c048e23899041328d12c45122301119458dcb148ad89265d9122d5098508126409222292085491c822de3066c1c4584a0284820900499489050026d4b108120024808a051431050db826991286ed3804123298023200e41460e5cb6900b268811b5682382400b3489da280ce1a44c60b0640c8405d3303250166d002466521041c2a42582264498404020b7848a4830ce59cf9d06534448decdf1ad0c46382e6dea28e6c679f699ee07c80317d51c1b77c8cd55cf70b0089b65f316e5ccda8a38a3ea1878282584a2b6da740d9f1ae7e20869dd2a2624b7e0097849b4123e29f518125e996c527244cbc77d12de0e7e22950906797f4e745b87e54ed087abb4afb1fa447bfbc5fdf383877b3c4e10afb71c435c68db7adb9c0d86f8169888b4bef4dbf06d426c0f6e804df4f31397e4250e6d08b3e704675c7be95e4282b76ee0895a6b2c0812c3a26ceace053fdb2256ac66dcd076d300c5f457790d2a065ee4385e4838b1af425692293d6eb41078def292b4d3f626d52e0fd42602a40082ff4a20f19776978fdde29e90d00cd0a326ed838b59c953ee8166dc283ee29aa62611d45390fd5d7aa982cfff3f0f1f0b711d23e01b6d85180fa48d0413bd14c0868988a77b28c101c06852ce2597a0e2c3142eaf3e3b8de69932ac8c29628b36f6e88b3bd7b155ab70de4da5d69046aec4afa2fc2d9be667d4fba2983f5a6ff67f4f676477f758051ea99d5d48f8e7a3a0e71427b05211c0971247d58c9c9d435bb1e14bee4ca94b7fb72396db68838470aae302ac4dfd80c6ca057117064b16fee9782bec9d47f5a378bf5404a3b646ced3880369f46e020998fe0e4dcd35a3cb75628051a11b58a1de3422b7ccf52802cd123151fc3bc5f0f3c069795d19aa6a49f593b18030dc689f2e2244978652648e8a91e5d5bcf028c466bf7f6fa51ebf7c5e27a830443378e5a8ffa14a19f906f31fcf666660d35e7cde17fe57200ed55ef2c9445d836516ce922eb63db33421d5ed10ec671e6c6e305b74b36e22eaf0b0ccc7909f6aecb1412a12090ab1e5b9fc81e6cdb71adb88c3d831f70cc7d3ae41f3915fb2fbfb392bd98ccb53a3252da0416b58d772cab62c060b236604816f8c395a161801110a756bb16fd11e350c7c6d8cb98eb811fe8f174b6cf1d08f3dd66c17aa8437937cea9c23994e64ea4dc653e1d7d35e61cc776efc84e8e2793e084b224e6cd0e6188210b869fcf081fa3a835b15ee333acdda408ddec7deead77ef7afe7c22e6e17bd6c5879b27be59d209a4df77e1e28c35edc32ce464bf6a971433dfcfd7d04358821aa99e61541a196066911cd3dd33c32233b12e9ff639c9dbe892307727a9afa447e2f88a6da40280555837591028a469a0afd9661136300a3e6edce42b6f89dbd48178957b4e32501e2caf37729aafa7a1603ad8d315a2acd2a72dba0dc380f1ca9ba94064644a1fc689b5a744e5a576d14229e755bb4b3fbc75773e96f362f621305777e35a73bce8f4f19a8a8dc962a465c9aa2ee529db3a3e284ad7cec0f470b396a126796e5bffc7ddf57e26e8056f952e0e474966b51e4d4d6f2a131dc809f6bcf7495b55fb48b3ad4ee1df62d9e2f63e4aa6c1861a25ec73bf7feea40a9750f8eaf28dace302292eb5f99042f670b4205aec39abf1404fe950574fb1695c8374fb5ac1f68647bf8e3aec8741c1db8e655f38cabee8b3520526c72d619f1fccca5fb56df0033dd2383bc6461f439a7a8c2c0068e1c7cbecdb3ce6bd6243436073a7ecda41d50c9a6e2ca71a182ef2f8459891b0c2d6f6de79ae00fa7b8a3e4d8598240103abfe4764d89686d65f2217d88686b1efbf9cbbd2d0b42331374c35538a7f84e34868b8818909c17ed2f7fba66cc16587cf81cd661e8219da2f8b18d8dd32ebaf3a5d70abce3b7fdd00e938e621bcf43e61ad1699fa699b7917e23b4067dbca119ee999507bfb051103e9f491812d94c42dd7e22ebfcd6528b3ad34d200d0dbf74f1600fabe45e7bc86eec122ec973186342c71430033f87b31d10d067ea4faa422adbbabb1367496eb4ed33e57d4767dd0ea8b629b07f7f5cbbaddcbba78f81d85ba7814e40c1a3238d9d79ed895f78e5c126b96abab7e5e4a4d69f6ead8c7582343840d836e832bbcfd53ebea191d1889f419fff6c6c1a88f042ecd911a50925d4e95e15c20f716d37af1a2610c597fb484fc0d4028d834ead1e96d83cdbcc6963515fd460c48b1251d3624c1abcf4e847db205b803ae9c4666c0b45f197fedf7f5a9a3942ad884677d967ea7411fbbaeeed1c7d9cbab3001c9315ed5bbbe755e85ace8113fb1d144fea698d66d9896280f0e1052ec88d5bed3978148983b70c833a74a1d6734e0553a4eb6107439a8c31c4e61fcb83acdfd320ca3cacafc1ae4b188a129c52c972f7aabd51d2ba2ab438fa0c59eeb045b33c0052171f2bfed8d8e1a2653b4032f19a5db8e22196f0626e2ae8e8accd140ef9ff1cf116aa70f5ac14317e9f94641aba8fb7b7a861d47fd4f4a4c8567fc8738b6f8504ba71", + "tests": [ + { + "tcId": 55, + "comment": "power_2_round returns a remainder of -4095", + "msg": "48656c6c6f20776f726c64", + "sig": "3cf94aa4a1b9930fb11a7228db57c34decf1aeaec33ecb0589a07e46d064d1407103cd5b0930e8a2b4e4e82bb42cec284f8ba7399a1774d9bd203e23674130d59da2dffde19484efa1c2d31790986e7d62aa3eb5805caec6348f1f872c6e65d84d391b77a75e146f0c6842a3833ebedaf2b1da0cbec1eef8030ce74ea67593b584a2aeec73d701e62537d84870a74db208722de8f9cc69cb89c9ead0151411fd50892f4b49e9a31b524ec7800ce37ec28fa5fbe0bdb39ffa52bcfe1e3d4005b3265017a81a1596cbe3103fbfe78d8ad4d9168984c62a5369c5480f7eaffc58f89e2456ba511fdcc5bbe32729a8f31b4c305b4c5dbec4ab287498c0e26f7488fac70f73cadec17d121d544304c056308b99611fbb1e927e9a6af88b46b39a18c9806ad7913ac92eb863a40f55827306afb13a0997e4e9d121875666e0de8f7a35049c571523f53636defe41a96764672183dfefd271d5e1652c63cb4e70aca1f52e0182048d7406385f8a02567d713068b52fa36b859abef0fe1779671b22818aac7180ff298910f4b60e0b41daa420c5ea85e0d7744ed8b0eb0442ff00de445b6cfe2706c8c86736c2e8eaed61c2d187b209cf022a0538cd154cf7ad68e5fec0b7e8c29b7d732b7c5597304dafb9d5398252f60d174b9d306e5e0f758c5e3f6719416fce075a98047b752e2bde43ac23001ed8820b37d8ce6152fc6f7e4449698b0e04dd32e1ff5ba720cea7e7fc2308983a03b4908e3f6aac5a42abd32c94a9f9269903c20f6e415e56086e0f0cd4cf21ac62cd576b5253704dec9443b8629a9c7a15a1e07755401cca344bbc07955dedf24ed6c256d10b632d8e03a326fcd28164304dcff2126aa8ea0dc0e5633d8caf900ebf8bdea2daa0b86d749110587644650b41cc59fbf510403a5afa012a809ff4eed58135f09adf9b3fa73aa5aad54aa99e0b7b788642d66d8f47859c07e6401f4ba8c75e2380a7a797533c4fe3107872caebce59985974cdc5c53098c81a1d22adea100cd2909bd4f94f56d57b5a8f983c19987fa6481582f2c76b7cb9a614ae085d96b6329857c9f87f976daffdc6d8a9f2caf30be573109dee5c3b5ebb554fe152e2ec7dd05dbadd0e1a965afd3d21ca9db1b86f92810d8aee934dd562081a0442c1e195f484b9fe1b5620f72bfd97562455d098827de21f50915441318fdd4911147af4bcaa8878987170d83b8776ae8ddfa4c3bd1130e247051129d8f5ee16591942cdce4084537261a2b55bdc4ca85a64c36c5df96e4736fe1d9e35c3f1e0670eaeb49e17847ef18062a167af2b807bcc778e3d28a41efce202943ff98271e5884ced2a46cdc260ee6f0bd8ab9c4a553267a37c960de26789623f930d5a6d0b55a5ff3b1fe817e392e108c645d67e0556dae4f9d1b5df2899847ac2ca942933e50ac240bf8bb9b98dd3e459bd77e25eefed2e997fc2b00781565bb3bf2dfb7fd0f669792e81fd132a84913dcf0f08cfdd6488fb983e828c8c1529a9944bac2ab61e1188af7cdc70fbcf595ebaa611bd4e393ccef30a98d47c79faa0bf7b63c12daa533654653b6f9cbde46af756ea840d1826a58eb09bec8ade474044038cf6dbac413b7909d4451c90f36d113033860f3d346c1f9a29e652fea46f9722322a16e3e501feb61e18ef5beda4fbbe6f1c017681c7fe6f2f0c853f250a319cdec22f7a65f2058d49387d0f9b3f6918eda9c96473315d6d208922be5b2ac3eceb5df94dbcbd29e0f4958ea51319709caf7679083cfdb41ee1888f839002b6065ba45f7f38b4f36934b739a4d7af5a63cdf6329ccaed5153ecf532d5a384039a980d99e32b2638b62121945e35d865706dbb80ae0aa8c6931b5d98842ae1c0e50886bb41a96e693c0e9b2214eaa29a5e9747e3a51920aec9302daacede517249ce6fae8f5c74e6346c2850e6625ff11ec708651a45ef2213c0a2f2e4508e0feb538430005eeada73896f72ca0f95c2eea549e74207d3d718be9d7ceac7ac3792a833f54549f8bb8d800912886cb038a6e7e4ed439eaa6a2a82f61a1f4c52648d5015e27c7eac408a40d7c5aad9cc3772f71dff3171d71c61d93b495ce3dae70416dcff63c7f28ee367f69ada2d304547a82d1e7b7f8c8bdb6db5b781d7a57305207fd25e2617d136ea49375c1b03a7cdb4b84199046fb23e1a2c490b654ad9b4bb53f7b3fe534b5d7f85d8ff681eeea93554006083893fed2eaaeb70df42ab1bffd48219d0417a09f0b7fb9f629482b03fe69071432099405f8cc9df0105c7eb8203f1f013933f65eb85b06f6c13c942321fd3039dd4b4c5339daa74ee47e040baa690affa6d34ff9a691b4c77f94d3efcf41120d34753ba9bc2f2d910d7a3f6716a379b10f88ae207affd46958c1f883b3f64e2da3e6f31a5c63da5a58a8aec69dfafc4bbac0dedd3f337f4cda960170ea430689acc27956bfbb656691b6fea8ab07288b015d9539f5289a20581160c5e14a0cad07c17099c529131f368bd8f7ee6de9b62ac93bcce25f17da88d3769d6bbe02e3de31f71fde244e302d71ad71af1ecf78cdc730cf0c135b91cb1bfaebb8a84fd06470f0ae4cb5bd62d4238adf8d3d15dc3f5892bba9da13dac9b18fd8e3614d55a22cd07cef8633dab7b53664972c7d84963dea023dec9a5cc54d9606d50f4f5cfe8612c6812fe22d32dce599250ada06b82c4580eb8004d3d3c28e31f9f92a3abc05afe7fa89b04f7e88d0d867b2f53cee872f644e7cd6eb3916a15b28d0958e0144c84a3f2729c7dacf071cf28b0fc74b3e5a4d86e2dfd5dcbcb9be826f9439dd8dddf57e0597d893fd1f940cc90e3fda249db6d6fb98ee48186d5e2d7828613a87aaddc04a0ba7008127c3313d76f09905aca060e94a088c4fcbf79b465e736cee58bfcd4ed93580ee51e418b46ffb61a53985f5a73500e53752aef4d8c56015974783f8008f2b174076455756de2ece36b0f535e17400f60db24cb5ffba3159422ef6cf420b0ba1ea80f682c0f67b8acf9c9933f01489763e9ff2bc753f533f198033f43b46bceedf072d91b8a446a89015476977a2bad4b43400a01497c3e8d37eec7f165bfc4f8759d43424db1efa2f5fdea2983ab9d19dc0e3c5072160b72a4a934e94aa9ae9ed9c4379180c3774449c43ff815f61f4cfd5f4646f7ceecaf76e72754d1b5545f4fcb9468af6089336d5b9f90f47fab5f66961ebdce8d592a49cc74a643830a1f01d205ed699afad9792b41a9eab07d553c86b02504801c2789437f6da0deb7381d68fccbcb323d05bcda071147e12ac414283f4d576f8386a8acb8d6e0eaf000212c3738394f6671787c9bc5747d7e848bdbedee063435627a8691a1b7bac5c6cce3e9f1000000000000000000000000000000000000000000000000000000000f1c2434", + "result": "valid", + "flags": [ + "ValidSignature", + "BoundaryCondition" + ] + } + ] + }, + { + "type": "MlDsaSign", + "privateKey": "492a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c635322d5bfeb57469d890eb2673c6cb270501bc043182c152f4c4f781ffe9a6c75ecddec8bf62036286f66311d8ca1a947e90c9b3c2846a51d6754d46fa78cfe042751e2028140a68941424413b18d00a3648a98258b1062a034664b0028dba26942b841c0404684923004a58013a02c1b2825d28400d39289110364c9141281446ecc964080008962262244088044901182905142260521302a0ca685c0242c92244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244992244982248912244114244892244992248a922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449fb1e835788e79f404b263be19590dcee62c85f1d5f0a41b2497d0be9a7291e8959b9d83949500165e46e7bff9334bc6c7a0dd5ee5d5d9ee7708128615ec950ac58ea191af3c14b3bf54a87883b32519f688604a7c80546be28c85310c03cbc955dc03d8da0520ec952a10e586eac4f0bf4547a072a6d00558852a8b75688fa10512faf1df53ca3229e3125796b6520f42e6858930c0c59e0cef8d917e49aa9be42ea8e78a4cefe75e6e40e38cc96fc0886a66ad3cb06cf030b680ae81fdfc200afcf164ebdd885e0ccc6bf5afe26189d03c0d9c6ed9504e50d845f4011e03a3079f8dd1e8c838a4b2f7af5c9e3689ac87f3f91a6ecfe7a8dc63d2c7afeab9277b6a3a7985ca652193d6edfa9e27f38740174941bbeb2378c0c34ade18e425363993d8015fd0c8a7ff087ca7ca397077ffe4e668f10478064b729360e820b00f56d865fd9875ec1eb3de312e28da114488329f71e64c4253b10f48f96f65179f583234f61a80861d44016033d5285e307e5c98bedad6bce4c5aa130422117b0318de0da6bbec75035e030896135c43f29092aa14a3e8d16bc6e38f581ad64752df20d3c6ef21abedb61f98c5bc98fcf84c8db9ecfd40489da05c07fefb010646554f9fd44d3f338c63084da4f7cd1ac325e6b555aa312e73d6eab60b947f7f909e71830cd64f1ca30486cd133598d494116e3326876ac11af3cd7292e8da767f7dd6c381fa2934bdad8992c210f8eef27fb15f42938b64124bf7d0fb3c7839b2a4f27f710839b1d18026215e04eee23dad79df2e71f53070e0ff8579c5d0a13a5567ef756879c79c8e2c10ae4a680a38661c74f6b116e0e9ff5c726690787738f5fb0ccaaba3c9e742abb337a074cc38df697158466fd95efe41c66674d6cf51f6860e2cc93fa0352a2cc50fe5ebb73ccf76f349bea4a7e6a9d9c7aba34fa7ae20ca4de03c3fbd38b6d2321df59d1db6b883bd7c586b713a4275e4921145d85b8b728eb35937649caea28078d28f5729e6fb2fb524446f6f379f1e0130886796c89e1e2a2e279e64c123028094bd0ea356be43f91b32e700754fb8b9b2dc9611177204f6f85e8870aa9618599ad327889d5f4b3c18fe06f98b712d5628533491fd1bdfb39c6c1c83004f105f2a2a6703a2d669d24d6f8887c6a640484847f655690a26aa2571e01d7d97f2c7a21b7ea39c537f7d80debcd29a3a75d089dc0bb01664c6e2170a89ca2cdb2d6106cbae27695447723528ffe3705002905b26eacbf4b51df01ddfad69de1a5953e74665583e84985a97c0c61467f5cc8bf9c4a7a0c387fe26de2e8d9e455dfa792dc76f64542bed7d710e09d4f499c665d2e2efb8c27c174dbd2919d49afd80e7df25a65542184f289cf84ebdd12b3094c307af640bd0373a15205630362aa0c8b727fbdc2d80288121d2dce33bfdfe06892c54be0812c93ad1e018fbad53a8f8e2657b51fd35deb0fc75ee506c666811059d9ff50b04da869572d877d2dc56f30a4bbfc111fbf9edc85598621a2666e54260f698d7c5b730f49d564b1df0456aa86a67f6e279a51477a0a05eb0a439509f209b49699fe0b5a1ebbfc0f2385936c08bebecccf7b9019bcf35352be944820c918ce787919c675f90a9211bce63ceca536b36a5ad10aacbeaadf6ab7e4aa30f2e17942494e6adb8d8055ef56151078228debfe239345a23e044fa4ae530e0761806c61edad6bd830d300e31c768d7e4ad964b136dacd7a7c03c8271e36003100b31843d8778d56be8432c82dc9821ef7bd6d9ea01c2edbb6a951500778335297d8b1044d880d33b7334ce3dc397160911c8987b03cd3e74d3f9b8ab6f643ad3e9a666e2f3b267a5ab3be7df0aff6d0a376469379ccec83b7a1a9b5ce8fa24021fee8ac649876998f71f359002f3980b6c2c5aa6d00b5618cddcd9fd3c8e228c948f6c17a09c6bfa8f06304e0b075317399c362049d5ae7e85ad7c0a3eb91c9312c581b9997b144b837b99e89f1809292ee1c692db9985f43613f802aa1bdab74987c2f4e858f46d8e8f81e508565715c88ca54a1eb55adc40cafb32aa4fac69b1e069e3df8a9aebdb51f5077d86193502cd8a291a85ebf7e0588e2ba8f2684ff01edf1dae6e56d3ac5f6377f183e5a0dcb1620439b55c383a74c5a652b085c82a40c38f21f23e7b17da9f456cb89b9a43b142052815e02825b71fccb2a792f34b41c837d3c3b682e5edf4ce308ebf72dd3d8499a871174d36e5cc98a02fdca24b2584a2b3f548d9693e6eb5ef18f3e494335d99d5ded1c2cc0fb4d08933d89795d03fd73ed7a99d46e793934651700706ec62f8eda47ab6af8275a037f4ac12f6fdda8", + "tests": [ + { + "tcId": 56, + "comment": "ct0_max below the limit", + "msg": "e1133e0100000000000000000000000000000000000000000000000000000000", + "sig": "bdb3a572dbd7f9ff5d4883b1526302372fa562b4ee366daaaa9b36b5a03238f02a96361f3cfc2fb059ebf4843ba9e1606dbe5cf4df8de55b8551e78759c2fb2443fd78e0844f6bd22488c3c9300d1e0e6a850d93b144fc254a46f919d81d4e828d935df657584fe43cf0b2f8adaa514b03f0ba66934a3f8958d2d98894e6ee31c47690b2c3fa3a408e778679e4c74f699c899bc69a270ca4b2adbe8c34638d65dbc1734f5d12daf1d78b08a54203184285c482becf504ca6a7e9e1289abc5a3a3a7ed7235dd1163ba4ef68d109bf711fb4364c7d99766d83ca9424fe75bf6345c774cfe29976cc134958163e729f55420240d4db1e245a4967daac84b53c6e73ab7ab3fb18aaf780286ab65143bd78c09cd52839054348bdf55133f270234c5d748ab44e7a033bf1c76b1deb6166fcfcaefd33ae726cc9c0a9ed12e894e0f312606f933c082135f5b97d56b0da63206c77125d26acc6cb139161460c33009437c1ec76c9292402725f3d5871bb592220b05b9340db08c9e55ca6eae0b2bc37d10c79acc86a86f82ac618197ca78108dd079575513a7b69da1745155ad0326d433c16b472cccf6414fce50228dbc0c935e049f0e3eba065814aeb4962f5f2a769181709626f57c86abfe4f5017419a4ec77f28dc1db1348104ab623c67c54ae5e857b45708dc4ed630b83633a1b53e5fd0e646f39e255a905209ef5e769a2bb8c97bc8d38b6d5773932c23a16f95e7be761bb16e08970edcaddb62d0c0bdcad120a3306ae052dcaa06dd72924c8c3e8d55e927dee7cff4af55266ba07b5314ac3ef0fc28185d98d593b8d97220b20b4f6ac17a6a2bf76b77552e012456325b3eb5d834169f4979ce72e4ca4124fe77945a8ccc53f1809abfa5857df4545a300689d4668bcdb79eab2ac2ecb1642fe502ca921b9949b2e46ad7d7cfb55d3f3d8aaa1220e71ec3318e960bcf8ab4c35f6dfdf0c1320d41ad033304c5fab020b4b871b1112cfa6e59fb8058385b304179764dc85f2c19c1f943b3eace81bf37caeb0324bc4d148bcbcf5146a8cca341322a234028d6c22cd853d96459275ea31587cc7773cb093ff1ca7579b42bfa6d7ba5413b2f4fc6bda12b954e26b9e495feff8052497c7ec7fb29c81bc9c5bf62f3675ae2035c62b8d0ee704b85ba33fc77d95a57d6b731b5d1d87f571588a3fc34ab8836443c7b4e758169cadd26b1590672b05c7ed1812efd2c1eaae0156d9602e105fd89d23d0b78135d4e4b37004c2f8269bed62cfc7ed2473ffa051c4fad09b94974e4eeca39d9be6ff655c284194e6df2beeb843a1e539a63764a7d88330b07bd929dd28842139b4b545cb1ad6e3d0be5f50a48dfa610a27391512e7068b2a2b1ecf5953b286d5f69066c2ce2fa01b8ff2866705d958ab4c5085288036529c64c6995a9bc6cf01b27baf184c5685ecc6385d80e477644059ec3c343ed6078ac399fde7bf6716f7d1a9ed253aa00f4e4321a7fc1d35d98dd75e5628ce6bf2738271b33e0be049f47f6a684c62e84b971c5b7a6e126273930108d0bd80e5afe44c768e0d74503f39cbbb85d6914aa620c64e31e6bcb8a0445c2f7b73642dc668d589205f62950953e9bd41936ea3cb75020e7385231fdfa11164b7e113a2f19ec8bc85f88a73b0ec4c9524bbd5da8f8a63b4f99c495adbc739e70e656f1a3d341c2a10339832cc6de31d810c64b87a07287a1b028e95e5c86af154a37c65e43e4ad19c2be2393f39df25fc8840383db8be41a344cf4f150a8240ee6f4f0f831e0e01972dbc0b364a0bef4c6d6cd3f9b3ea53614b480536015b86d3b1ba6e3545c2279f48deb55325f119f87568854edbacf3ca469db6f1963641e8457317675eaddfb96dc38213bb488e6eb020c3a443fde31a7f40a327fc71c54e6a52130270aff348d90bb250584a78d987af7c619ebc9abef0ee28b620f37b0de4ac87a850c4b9e2655a58b348aa1b918beabce7de758ecde495d63b76afe036d0c9e15676970b93c205adec8842107cda491d6d6a5d1e3bc58f2032d0942850000cb157c05d9c18e294a035bba3653ffd4fa2c6a0924a1bd7e3e7fd0235ee23d61489a5d97212f9f195c157161912e6ca19b952dedf1dfdfa0d657803bf3df554fb32f786ee5d720db5a12acde5e54db81c976371bb5516ab191928c10ea7f7ffcb97c0e4139f134983efb0aa4b5ece9f3586a6cdfa62abd9fec91fd71bec0541b3574514debcf7d580ef4289b4cf26855ddac45df41d0281e7afa42edaa6543369ddda962b9ad8ae7e7fbe231d8065bafad02bd00abd216c2ae978ef0a0fd68a28d8c196bdb23cf1554e153e8d7eac1e62887d2984e62d0b8302410c766254ae56cb3c2be15df63bd465bcc1774e0ce1d94ea3895f6d764336a3e94531b975cd275985b24c1a5eda18c40b991a51bcfb4b3a22d258569fb04bbb777902db76dc373a63cb22682697b27c8018461ee4e1d4ad380c60dc1d92e15fec5d381bbbfc3bcff9e87e7ecd060462961ef3060190abda8bb2c211fcebd3df30e286c7f026f4d7ce2ea28ff32b202c0a97482884e1e52c7fac92b2b9b5999dbc053a35479c9ba15f796f71fd5893cad24397d80206e6a8f4c8f6d738772b2e29f159e092337726a35adecd1a4a2e54f98464412bf97eaefc332c2be5b3e574318b632b605c09e7f6f932e2730f0dab7424a02e85c5b9f8dadf6d72ffe1ff2a87fd54618cd9df73e2b9739e3eafb28f4897c1bfc91ef207838d5c1eb4fb937a3eba9d722e005c071f17acde7fc25222a310307946c1a40bc951bdb4884c2c6c95111a58b5f3267b4f8e1ea3f4c09645ac67fa76b7b50b02973f67312e8bb4e90ec3475f15e876943de67592cf99b0ec3a959a74c2e659713488fa18ec065583c928146958d3732473e6cbcf5a9553a7b99a932558f3e1bad04cdc0b0d498c21ac153481d35d9d8991d0732a50967bf041c1e02006d25621f6f430111651925c256dfb7d1d071a1343d1b77beb2955262262ef190a2d2cdf44e0e66237404546b9cd0fcbb1fa047f0f6e6285fc02b550d501bac8682670c63cdc1771aee1b44474dd37c63af074cb26551c045ab504d128c67c4d6b3f21dcf8963b14ed6d27f6f6d0a878854fe8d4bac1ec5b5592db593de6e9abeabcac5b4c090dcbd396a99eff25578953b3f4c4d30ce160917b42f9ba3c271ad8569746cc3b8a9c19c084f2b7a8a4b6bd94f0e3bd1359abc07a93589d94a6ed3e6b09e6e95e87f866cd17c21a35c38bd81df36fa9cc58098d923342ae8037ffd8ffba2760f6380e1a1e4555606b6f7275798ca2a8bae6f004050a0c102b2c3757667a8a93999c9fa9b2c0e7071316191d22264b5a6c86b2b6d1dcdde1050e0f282e303a425e6e829e9fa7cdd90000000000000000000011253646", + "result": "valid", + "flags": [ + "ValidSignature", + "BoundaryCondition" + ] + } + ] + }, + { + "type": "MlDsaSign", + "privateKey": "492a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c2c635322d5bfeb57469d890eb2673c6cb270501bc043182c152f4c4f781ffe9a6c75ecddec8bf62036286f66311d8ca1a947e90c9b3c2846a51d6754d46fa78cfe042751e2028140a68941424413b18d00a3648a98258b1062a034664b0028dba26942b841c0404684923004a58013a02c1b2825d28400d39289110364c9141281446ecc964080008962262244088044901182905142260521302a0ca685c0242c9224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224499224498a248912244114244892244992248a922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449922449fb1e835788e79f404b263be19590dcee62c85f1d5f0a41b2497d0be9a7291e8959b9d83949500165e46e7bff9334bc6c7a0dd5ee5d5d9ee7708128615ec950ac58ea191af3c14b3bf54a87883b32519f688604a7c80546be28c85310e03cbc955dc03d8da0520ec952a10e586eac4f0bf4547a072a6d00558852a8b75688fa10512faf1df53ca3229e3125796b6520f42e6858930c0c59e0cef8d917e49aa9be42ea8e78a4cefe75e6e40e38cc96fc0886a66ad3cb06cf030b680ae81fdfc200afcf164ebdd885e0ccc6bf5afe26189d03c0d9c6ed9504e50d845f4011e03a3079f8dd1e8c838a4b2f7af5c9e3689ac87f3f91a6ecfe7a8dc63d2c7afeab9277b6a3a7985ca652193d6edfa9e27f38740174941bbeb2378c0c34ade18e425363993d8015fd0c8a7ff087ca7ca397077ffe4e668f10478064b729360e820b00f56d865fd9875ec1eb3de312e28da114488329f71e64c4253b10f48f96f65179f583234f61a80861d44016033d5285e307e5c98bedad6bce4c5aa130422117b0318de0da6bbec75035e030896135c43f29092aa14a3e8d16bc6e38f581ad64752df20d3c6ef21abedb61f98c5bc98fcf84c8db9ecfd40489da05c07fefb010646554f9fd44d3f338c63084da4f7cd1ac325e6b555aa312e73d6eab60b947f7f909e71830cd64f1ca30486cd133598d494116e3326876ac11af3cd7292e8da767f7dd6c381fa2934bdad8992c210f8eef27fb15f42938b64124bf7d0fb3c7839b2a4f27f710839b1d18026215e04eee23dad79df2e71f53070e0ff8579c5d0a13a5567ef756879c79c8e2c10ae4a680a38661c74f6b116e0e9ff5c726690787738f5fb0ccaaba3c9e742abb337a074cc38df697158466fd95efe41c66674d6cf51f6860e2cc93fa0352a2cc50fe5ebb73ccf76f349bea4a7e6a9d9c7aba34fa7ae20ca4de03c3fbd38b6d2321df59d1db6b883bd7c586b713a4275e4921145d85b8b728eb35937649caea28078d28f5729e6fb2fb524446f6f379f1e0130886796c89e1e2a2e279e64c123028094bd0ea356be43f91b32e700754fb8b9b2dc9611177204f6f85e8870aa9618599ad327889d5f4b3c18fe06f98b712d5628533491fd1bdfb39c6c1c83004f105f2a2a6703a2d669d24d6f8887c6a640484847f655690a26aa2571e01d7d97f2c7a21b7ea39c537f7d80debcd29a3a75d089dc0bb01664c6e2170a89ca2cdb2d6106cbae27695447723528ffe3705002905b26eacbf4b51df01ddfad69de1a5953e74665583e84985a97c0c61467f5cc8bf9c4a7a0c387fe26de2e8d9e455dfa792dc76f64542bed7d710e09d4f499c665d2e2efb8c27c174dbd2919d49afd80e7df25a65542184f289cf84ebdd12b3094c307af640bd0373a15205630362aa0c8b727fbdc2d80288121d2dce33bfdfe06892c54be0812c93ad1e018fbad53a8f8e2657b51fd35deb0fc75ee506c666811059d9ff50b04da869572d877d2dc56f30a4bbfc111fbf9edc85598621a2666e54260f698d7c5b730f49d564b1df0456aa86a67f6e279a51477a0a05eb0a439509f209b49699fe0b5a1ebbfc0f2385936c08bebecccf7b9019bcf35352be944820c918ce787919c675f90a9211bce63ceca536b36a5ad10aacbeaadf6ab7e4aa30f2e17942494e6adb8d8055ef56151078228debfe239345a23e044fa4ae530e0761806c61edad6bd830d300e31c768d7e4ad964b136dacd7a7c03c8271e36003100b31843d8778d56be8432c82dc9821ef7bd6d9ea01c2edbb6a951500778335297d8b1044d880d33b7334ce3dc397160911c8987b03cd3e74d3f9b8ab6f643ad3e9a666e2f3b267a5ab3be7df0aff6d0a376469379ccec83b7a1a9b5ce8fa24021fee8ac649876998f71f359002f3980b6c2c5aa6d00b5618cddcd9fd3c8e228c948f6c17a09c6bfa8f06304e0b075317399c362049d5ae7e85ad7c0a3eb91c9312c581b9997b144b837b99e89f1809292ee1c692db9985f43613f802aa1bdab74987c2f4e858f46d8e8f81e508565715c88ca54a1eb55adc40cafb32aa4fac69b1e069e3df8a9aebdb51f5077d86193502cd8a291a85ebf7e0588e2ba8f2684ff01edf1dae6e56d3ac5f6377f183e5a0dcb1620439b55c383a74c5a652b085c82a40c38f21f23e7b17da9f456cb89b9a43b142052815e02825b71fccb2a792f34b41c837d3c3b682e5edf4ce308ebf72dd3d8499a871174d36e5cc98a02fdca24b2584a2b3f548d9693e6eb5ef18f3e494335d99d5ded1c2cc0fb4d08933d89795d03fd73ed7a99d46e793934651700706ec62f8eda47ab6af8275a037f4ac12f6fdda8", + "tests": [ + { + "tcId": 57, + "comment": "ct0_max above the limit", + "msg": "e1133e0100000000000000000000000000000000000000000000000000000000", + "sig": "8135037f45476980f53ec3adfb6302e3db982beae1acc3bd8027eea1608941da19f17134095b8115993c2f2d73cf0c3e6cc993a8d75d21058641c6331c65dd22519df9050aeb5f326ce47d827cd6c1e0c3a3aae724161403c9053e7bbca307e9aeb75abfed14076930fbae02e994fad26baa78a585e4550842925f21beb7a7c476ddc461f0e79130b6aea7530fc747783ddfc80ac11fc54d3189b55df5256c057744ca84b01b7385b2c813f14a6fc5554ca675a2a2bd7f6f588cbf731ea95045ecec446ffda192a689892e1ada6febc93c903e981ff51f455d6b5c67b549a6d8c168168a5e21f39f07e29b28d724204501603dcf278698ee0a1abd133dcb2fcdde8371ab58b8341a391d0975b9079535cb3234462a8325e2b667a3ac6c257af843418486a7d000023aa982d3e65dad49720b9061f83ade42fbe3fd622665043a093b31ae24a0c34175d45e6644f1f025fbc7d87484b75010dbd71ed64c118ff6165359479db6d189e36d8d8ca2f0406dcc6f4dad913484cb6ca732aeda5878809003b27b3683b03b8d22007d86116680b64f57d585214cd394fc18adc8c690e1b93f99c46e6ff22d8de8160a4183f1b6e5664b33a086a6daa0f6328465528fc3fbdac9f948a21a49212a83696263182bb2a3e099881d867a82ccedfdd9e3c0dd1b620003db3b51ea31ec31de30a5a922737b911628d3316633948b6e9d8754265b8a51257a28c8aaac8ab2f82a72256782cebd644e74ba7c72f5a46ebe24883c2d304c32385e3641cf9654475fddef7c45041d99afcaf343ed97ee21dccda93c433069e0de32c1c14d73d61fb7aae7af054131aadd7142213b25d86b70a3cfc620033894f08f293108513c29fc6254f0786da80daf944d29fd2fef901b95657678213df264f3ef0ac56e935b418047eab7c1f40c3dc99d824a3331afdeca1f069ddd36c0efcaa702057645822ae0e7697ed318dfb51792c90d6defb190b7eaae3a723f6f5f59bd49db8cf5aa3b8055b037ab8de7fb27e953c1e87d6b87b4d6cfe66858d1559ecb46dcf4976ad2aa04c483fb97fb5f60fc8ab26df42dfbbcd617686dfeae894333127b4427051ecf2f24a7d88922a09233ba12bc9518541dba7c2bd755133733a60831bcef6190628a0a2cd269ad79a05b0debe9d33b99b540a919c7fc1a1ba19a711d2f1863b5bc6008385eb19345d998ba8400d2dafb7c6f105e254802daa797fc846cf6368e718f7ee3652fbbcc9af97564c1600afb9c22a1a7eb7db7039717ba66b39891e9b692751e1e11385111b750105dc443036b2709f1015ded2bad42ff1a2c6934b3edc5828b6f21e297ae643d2e06cecec6eb2e4bc2440dea030ba0d0ce60991fff3553f31b057be0684f5301089441ba86ecf2f9297ab49fa89d92e442e9f10d0af5240cacf76256bc92ae18192564ce79ac9fe4bb181c48b99a0e6f2662ecd5629eedb90b4e3014169d76f5c2b14100cc8db635cc358d319017b5962afabe73f9927c0c4422ef7f83df34bd329991e75b3e786093bb9250f2427dbed1dd1be655730adb4d4580ed3e64e2e5faba75875d99e8baa7add91f8f146515c87156370a5212204b1f217a7bb1f51c9dcfb3fd4ec33d8d6dbb0d249dc28b0e15899c6f568af999058fce4504d4c0f059fa8363ff665eb8f7735773cd425c4eba751203f03ddc58abcb6a84f055296a13fa5a64e45a73b04fec7e068ce413deaa6d236cbc841bba0c888019727f375aad3fd6b45f9b6a7943ca2aa80a8806503d6a843259a0bf2c54e39c2e4820831fd6a96413011e98d725faec0478ba19d31e068462993368afe119fcbd8964de98687c3cd9f316de4d14b84a357deedd7ee4bd220528804da634f62b3430008e9d446b95048130bd8c71485906de0aa810b3902d52fb1736261358816bfaea30ce240ffa8b1273bac9020dac263c5629be9c0fd9ee2eae7058cec986cf9761c9e50b28a26a0f61bc530cb3a3d48816c494c429d9b64ac3de6a4609a3afbf15599c952b7f5bc03aefd3b13dd0f12efecd16d7a65566d0d33068bd6c399fff6237311409e973aa72ac14391c33cbc4132e52fab8f3e6318dec3e47aa3bf298e6d80e86a8ce1a9001a18a1a9cf8d01727be5bceeeb2fae1ac13ead3fa3f763d0c2626da3d8e045b52d82f1bfa0116a77d432a4e61a7490696e854b905edc90d50248f68154c0a16b170a7563494c607428c0d24559cdbfa8fe621fd259a38bdf22a3ffec9a1d91d3856ef546d71a9d644dbe8148a67975397023aefca5c812f180e9cc1c79bb3ee50a75868442630e2346619d83a3b3d221cb4e0cc8518ddd1703d81c45461ad3ee5e2fe61f0f3a6a9dddc60f4d9484925b79e3abc98e524fd987201fe1fb42324fb628c08f90275d976808419de3fdd931a7093b142ed1a706e400a335d2770eed6eab2a6ae697556e280a6baf3231abdf696a4cafcff6625f1da3df81faab97475fb3163c90cd782138aaf1eeae7c47ed7b9bfdb12180a1f5139aaac8ea5c9fb676d35b13499dee82e656f072e98f98dae7edb1d699ae600efda5a59100d26beef6d501b2b1848e0f603cddec803f866bc7f0b1ec009e82224f3116c61075e69a42534fbe42d5d6bc75b8253cbf0d3a0c8d6a47369e650a0ea8bac18dd014e08f62a171b5dee7cfbd343278e94e734491f3656fb4a1e25023c5424fb60a7e6d6b0ebac3efafa29eb7c6a53df19ea4ff36e36214f04893e026d65a26a7d797b89fce11f90cb875332aafeb3719bd2e20ee3876e116e6a58b170b7a8050d6967d5629137aba30dca0b8af8a55010b6e2f7b4d2f552945579a00f4564a2f8aae2d501ee2fea33cd2352a5c15b639c78dd9e7d5d92ecc2e617cb157d6e7af0dce85020f1a6f784d249b71b443307d253236db42a4ab50c3cc1a0edeb67ed6264f266b55937c0eca897eeb4ad4b63f782e4f45173fab324cf2b6ac2bf6953db3338d1de7b633c60ce96cd555367bbd59734fd68335b46bf067814152dde8b9e70d690641916e0b5df86243bb85ead99e9e20a0d3b9475807adfaa2e3894543fc1a8bbc5319cbc2a709f8f1d3c43ec903ccfd8fd59c050a9bc1b1c09c39fcc90e9b80f190e80f9a7c111f80711e385b9b72cec605056d0a51207ec789e195c0bd2bc119435d3f3e637c6160d4aeb6529245f419eea0c5c1adabeba7e16ad7662a0aaec5e9fab536b485f6f6122341b16599356c7aad02fb4395f296b4e4ce3495b59d4eb4d48fb89da11ce8ec6548635e0e1bc820e1e28d0d7222dfbeee209f13b616b559e94020e1f29343538414a4b51588388a6b0bec5c7d1dfff011a36484e575a63718c8e93a7c1c3cad3dafd0e13151e3a638ba5c1dae7fc0d0f304a6eb6cfd2d7d9dbe7eaf1ff00000000000000000000000016293544", + "result": "valid", + "flags": [ + "ValidSignature", + "BoundaryCondition" + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/libcrux-ml-dsa/tests/wycheproof/mldsa_44_draft_verify_test.json b/libcrux-ml-dsa/tests/wycheproof/mldsa_44_draft_verify_test.json new file mode 100644 index 000000000..b9f231657 --- /dev/null +++ b/libcrux-ml-dsa/tests/wycheproof/mldsa_44_draft_verify_test.json @@ -0,0 +1,908 @@ +{ + "algorithm": "ML-DSA", + "generatorVersion": "1", + "header": [ + "Test vectors of type MlDsaVerify are meant for the verification of ML-DSA signatures" + ], + "notes": { + "BoundaryCondition": { + "bugType": "EDGE_CASE", + "description": "This case exercises a boundary condition (e.g. in the signing rejection loop). The verification algorithm may not notice." + }, + "IncorrectPublicKeyLength": { + "bugType": "BASIC", + "description": "The public key has an incorrect length." + }, + "IncorrectSignatureLength": { + "bugType": "BASIC", + "description": "The signature has an incorrect length." + }, + "InvalidHintsEncoding": { + "bugType": "BASIC", + "description": "The encoding of hints in the signature is invalid (e.g. non-canonical order)." + }, + "InvalidPrivateKey": { + "bugType": "BASIC", + "description": "The private key is invalid, but the verifier does not know that." + }, + "ManySteps": { + "bugType": "EDGE_CASE", + "description": "This case requires many steps (e.g. many hashes in the matrix expansion, many iterations in the signing rejection loop). The verification algorithm may not notice." + }, + "ModifiedSignature": { + "bugType": "BASIC", + "description": "The test vector contains an invalid signature, generated by modifying a valid signature (e.g. flipping a bit)." + }, + "ValidSignature": { + "bugType": "BASIC", + "description": "The test vector contains a valid signature." + }, + "ZeroPublicKey": { + "bugType": "EDGE_CASE", + "description": "The public key contains a zero vector. This makes it trivial to forge signatures, but that's none of the verification algorithm's business." + } + }, + "numberOfTests": 72, + "schema": "mldsa_verify_schema.json", + "testGroups": [ + { + "type": "MlDsaVerify", + "publicKey": "5a04d37a8c83d373ba07da5cf96806002e3635ad8add42ce6ee9902dfc9a1f27c3d2ec3e83e7fe4d2074169231a7354fe108a47bd5eca33586f3e225929517bed05c0fc972b98ccc3b0bc3f4aa8fe45a862d6a5eb01e06307b5407f172fbbc966bc1eeeecbf3979080dd24a4141695c41d388ebfc88f2b3955ceaef2997ad889c5a61deab4fa4559bf2c54759164f5614db131362dfcfe6976bdf8b1ef607f2f241743e2c7d3e3492c57ecf0d4064c0b0a68346efd6316d09f89af401a8853ebf821e6decd5a717f02df582d5a994d506b01b1d25a63c488f7cc268d55c1a2875c357e5e1bc4ba558354e0c2789a7c10784de66b29a9416af10e17afa8a88222ca0dc7de338d43ebd23daa6a77bd1aaa8e2690f89bbbd68374b4bce40973ca4152e2abe93bb7832839ed364db811e902f9e2e33df61f99765b97abf94e9e44882e6f9d5aa209725f7023fd9b96e1e2b29999806984651b506fe3564e11f8a8e879e879a95a4288640ff4f6e095caad27a6ce359a57f1ae36b44d1f23a4dc9d09ad93e3bff794d71a814f1bf62227a7c8eddda0a5ac7c8cb9977fecf20f45cdefac501c28f28487c8e8fb46a7b6c2a6627c9bb237fab4c9c6c7807f83a11f347f21332e71651736aa4f40256b7347df4bd1bfe7d0bdb0f2390e37629b44fd0d863081435f5b8096693a70b532d0c20a1112cd837150dfdf063ed0ae31de276d3f595adad6d64740400e5bf251e5d52659f8b94c610a373e26ab9c0689ec1545cf3e728e5d59b1b46735b44b0ffb6c6ced8f4172289cd1ae8480036a563dd3506cbb884c5cc87f48fa9659633b924145cbbe449a61af4d9cb97c7995c67e666eec062419becb660f2639f2d6cbd7769f61fb5690386f4144d8222abc40c70014b62992cf045487119cdfa3b0d4c68d9a746754411d1e5580eb21ad85dd6204097c94def814d3932ba0ff44f0da968358b6388898173d24a9a8b81ea779f75ca7b78ef9938135960c42613c0551aaba22dcf1857341068c408f5e6028b2bf926418f66427ece28999fe41410e4047855d338a8d0108d11cd4834842c7875f8bf5be18d045d7cfd4c02a3081ad716d2642fadd903cf57c3f377f378585d3727151468d36961c849ac15311ad1077cbe843265b51d6b16a95ac150442c3ea5e4e397e81f768acb820a33ec844d91743a1efca9a50071558dbcfab820a9d9c593e5eb32a84c0ebf61b609decf5b180ce5a394dd5a4639d53f318454f0fd8c42ccb2ecb0cedc95e822dac75bcc586022ea431678b2e7c5a9374bf7bc74188c8a0a7fed2bc1f03440b1ec36b9a019709b498862026b4a4c1e58ad74879c1f0a1ee44d61d07771c3a4e8f534ebdb6990fed5a7b362fca629f3bc28356c077b84188b2d96bb24e42f291c90058e4647a7988789b1d3d98737967bf92cebb50d759676fdb56a59d3a00d0499d294545366c93352d782ac56e633064e9b5172f43937be4c7c6f3d78c7e1efa2508f274f8e9a5cc8934d20b6056de98fcf5d6904b65833785cb595ab47019f6304e0ed080d0a1b2ad3142cc2b0bd7d6ae580016761197503733cd9b58d0945f51bbf429e7fe781ac930abefe16330a16f3b9a7758333e6164740fb003390af60a892e6518ea5559468a92eddd04a231d1e4caaa15a4741f4327d5d7e2860627b0c64c4ac421ebff2447b0e86b45ab44c2e204d936688ca08d3c280a0102a3e1944b28f69f6851420142b07231404b8ca1893476cb8f667f6638a24de23087bae7051779f111cae043ec65f0a9f42169755185b2cd911b65e1f6820dd7f81e3d7c6853b747c88336e15ce4fe04975912cedb838d3b5d10ee60be", + "tests": [ + { + "tcId": 1, + "comment": "baseline", + "msg": "48656c6c6f20776f726c64", + "sig": "19831aa9c40124c5bcbe9a65a6c0aec304773b808a980f6710fa9f8f1cdd50ee5618950565949784f9027ce40401c594670b8274342d9791113c50c8d522920f7da90ca0c242e0c7b64cc6ac4acd642758baa4b714170e60c08ea892770eecd357d827c57d9258a59bf3f678b89cc14d1d49b5425578a3a051a209ebd11c279b0cf661ef50699e68bc28943c418309764e39ad2aa3bda87bedfd85521d9078b020ef158ae1c4683e67801f0a60eca41c7bc6a60fde9212e6095def1ecb5355597b787807ae6f4a79b4a79c374c84772438ddb33e03c1991c53a7e92e58b562d55e0a642da04f86fcfe1e142bb0af741fe78143c83550a91e6a8f2a7f2df23f40d675ed7dedb1b4cefa88f4d926659a818028a6a7c24305ef4ea85dfa99fc0487ca7b61e098d8e8d62b48a03e54406a7b47bb7f0ed9499f7b649e141dfb43f7e16664f7844add4cc784d4fb67ea1a2043b65c7450459aa435c52e4e75824873541c0807a33134f56c217e62956d98f56f60dbad96fccc07ee3ed66a374c44adb353044447b55d6325127e335ae783079c6602bbe06dfb93d61c3f8d3fc3389b3a28b48f2e6874ce431ea0c28bb1b9f4de038745dc6a4c0ec6a9dc59da14f57981644fdc5dff5c8c6792014a24dac2bde3a136125e77b8aadb3d10a08783e573a278919c6d4a9dacbd83a2102eceef4a954260b2258e2e7a0f044584f2a645b0ba34b24bc494a2141d55fa823847b7dd7babf0a0a48e0d2c27c27c9df453e974bbf792a54e73e84801b009b2cd6744ec174fd24aa1eb16b554bb57a3f2cd699654d93b6c7e4c678076bd25cbd18fd7706e595c11f7c3bca44233d1fb3906fe80b5993ce047b92bccf1b81989343f9ea9d6209f57ce9e4efeb28b2124ed20b943271efcc84cbbf823e07cdfd907189108cd527db86bbdfa354b582ae2a7ecf5af12583919187de1447ba992c93e034c9fcef5211c0c18823d8ad2a28f0b515426affdd8858a650aaf191a79cb40d01bd4dc14f9f9049eea66ce2def98ca9a4bbad1450d5c38a99c3a7e76a8eadb8ce23824cceb932c03aec6119e6dca33c001f118ac3dd2e7b947c4a5539955d29a9d7d83c41150a3167653c91d23a1601ec1a44a9bd9e62663131f3a0fcc2353b0f7d49c45111335e33011c6fefc2c21ea7bf8394761cc563f5446792ffdc03c38398720a493b6a80eee1f95cc4f8e86cb639c1da63bc6d17f333536c4eb7564d6fd36d513b322b605ff66d0ba36ac0f851362723b13ea791f576928a868a5a2e994e11f70c2e575ac79f602010110cc28eee7c67a04646ca97df6026255e7d8fd6f67859802f323b33d56cae4c96a36d5badb40ded633809f1e9ddb03a60e7c5ea3fe1bf283ea53df576a49f150bae0ac538a1b737a906dd521174c467f525412d7a142eb5e6c1473b865251d14b1904bfb24b70fe7e7e464143f64a13973d41ee983132f6b425c722e9e95205a93db8e8e7a35c3998fb3143424d5da07d1c9708da0aebfbfa37c61963bd96443af0020dba5a009d3a35e4f555762746039e63c505ded934d19823783127b2e611017f3c14a78dddd302a811010c8ccb81f1148e38bc879b992333624f1d67a5f3bd8b3eac61d8b4c8d40e4e7b6897524a7f9d3e4d8b55f9252dc1d0c428f274c4b0c48f4db0858779f16901855f4469c1d94e02ae66b23db961b60aa769be9d3dc2462217703796f75f2e52eb9704d9aa4d2cd38edcc1e1844902ceb35e72e1e3e126435de3a4da0c576ce6d7f576b47697daabba7f3bdce15a88f40e23b8774cb9f1b85c6178ab7e190d2c7e6205d7dcc93fe1d54bee466ab4f26c610e385ee52f99c7357de05f1542d0f71a8cfb5b46b515f076aa31d797a43f4d8523758669d5ad365f9a6925427d2269847b53cd5420b6aca595b82f56a020bdb466ebebc469422dcf2d4cca88599a1aa2cfbeb3149e9f32b4dba69811d6e4158e2cdda48eedc0c1291a21e5ea6ea4c9ec7caf5c267dae419f6af219001700cd679493a94b27e4fba6a4a95c562ef48389c2fc062d5d165bf9b605f6fe69eaa95e9cb23d663523e2a73e8c1528533fd8239502916e8aaec427ae82f38f60dc2d1b38f398168432ea63c72e4efff8c94a82314545f1f45f66984ace3a9cad7aebc025312ea57cd7e5151e5e3a7bab0c7dc4bf0a1362702d43a98495cd39e494f1a7f6bfc78d873a8d09205d9b1b8f5b8bda83d7a2e9c2af3d77c2277b28659d2d4adc1b97c59c9b1eb3e5d98617015b58940253170e4f20430bbef51a25b3e3b38df8fd8c92eb9bc50f3ac5c5444615045380f34ac9015556d86cf79d5d0c99c2a16b5528d7b325c25fa08b19dbb1a78eb1081e13ea8cdbd92de5852d5593d15cef2233bb57788a34eb954d2efca3f1f185eecc98fc8f7117f233ebfb27b9a4d7e227db583a8b15d2cd0a98c74c3415262839fc11e012b1067e312acc855371abc807d597c67898bea9c28b3e30de6c968a291124a78411fc2a5adf578d423f77ddccc814ef106ce19a5074a071853defaca429cb2ccdbf304c7570a94e10653a14abe479e854188861d68f04d16c7c40f19a7312a5399dc679a792005967d5f2103db5c5bf8a7fd0c71cf63af0b4b244d54744fb07e303a91580ae37ea8a8aa2d380a346080b732c0a1ed16654d9367b469c0eb28b002ffcd1030a0f2b1f21f2f72c050e830163f3d2903056b56c5c3a662f03ac36ab2cade947963ee9072e73ee53dd6200b99d2b3317362a40c5bf58f48f680a045de0fdf2d1a9137203a1f200b3d95dee50e58943a4856b699f5c8c64ff43095184f6e582d11afafb4427d738237738c2b73b42d148396689f1e5e08ba948eb2e66924256bc93135d1e1855f7d55048d31093d0f415142890146477c6b1386e0d3db780e657c5064ea64912f596883734094537bc2a5123058efa256702bbaaadab37f4fcaf1fe91f1b207f563ef30a2fb24630404c051e84911c8597c1fdb23b8bf2ad1fdcf0914db198838c2dddfa11477b01dbc6c348d632813644a259f220b5fd4acf9b5c23f5acb49439b2150a2139e4c0d2c8437a9f6a51993e8543277d9ee861f84b252092c5cc267ac62c9f6756a6b1b5c79368f71c3a32fb10e8743220bb6fe1a02d1160c7a7a68c309d97812a5218e857e4e4afbf766227aac62af089a9237f88af8695d00edd3faa1d71bcc714a8d59cd1691cdd5d4b85a423102eeeb988d011063ff25e74d72a76bdf304852b6ca61921b545069ba293a22827b2ea9402a2af56eeaac6ec7ecf442a058ac993718fbf6070f18273e4562799fbabfd1ed17203338445f6491b1c1cfe0eb0c172c3242484f52575a5b6074828f9ba1cdd6e0e4f312222d344a4e51527f8bb2ccd5d6e1fa000000000000000000000000000000000d1a3040", + "result": "valid", + "flags": [ + "ValidSignature" + ] + }, + { + "tcId": 2, + "comment": "short signature", + "msg": "48656c6c6f20776f726c64", + "sig": "19831aa9c40124c5bcbe9a65a6c0aec304773b808a980f6710fa9f8f1cdd50ee5618950565949784f9027ce40401c594670b8274342d9791113c50c8d522920f7da90ca0c242e0c7b64cc6ac4acd642758baa4b714170e60c08ea892770eecd357d827c57d9258a59bf3f678b89cc14d1d49b5425578a3a051a209ebd11c279b0cf661ef50699e68bc28943c418309764e39ad2aa3bda87bedfd85521d9078b020ef158ae1c4683e67801f0a60eca41c7bc6a60fde9212e6095def1ecb5355597b787807ae6f4a79b4a79c374c84772438ddb33e03c1991c53a7e92e58b562d55e0a642da04f86fcfe1e142bb0af741fe78143c83550a91e6a8f2a7f2df23f40d675ed7dedb1b4cefa88f4d926659a818028a6a7c24305ef4ea85dfa99fc0487ca7b61e098d8e8d62b48a03e54406a7b47bb7f0ed9499f7b649e141dfb43f7e16664f7844add4cc784d4fb67ea1a2043b65c7450459aa435c52e4e75824873541c0807a33134f56c217e62956d98f56f60dbad96fccc07ee3ed66a374c44adb353044447b55d6325127e335ae783079c6602bbe06dfb93d61c3f8d3fc3389b3a28b48f2e6874ce431ea0c28bb1b9f4de038745dc6a4c0ec6a9dc59da14f57981644fdc5dff5c8c6792014a24dac2bde3a136125e77b8aadb3d10a08783e573a278919c6d4a9dacbd83a2102eceef4a954260b2258e2e7a0f044584f2a645b0ba34b24bc494a2141d55fa823847b7dd7babf0a0a48e0d2c27c27c9df453e974bbf792a54e73e84801b009b2cd6744ec174fd24aa1eb16b554bb57a3f2cd699654d93b6c7e4c678076bd25cbd18fd7706e595c11f7c3bca44233d1fb3906fe80b5993ce047b92bccf1b81989343f9ea9d6209f57ce9e4efeb28b2124ed20b943271efcc84cbbf823e07cdfd907189108cd527db86bbdfa354b582ae2a7ecf5af12583919187de1447ba992c93e034c9fcef5211c0c18823d8ad2a28f0b515426affdd8858a650aaf191a79cb40d01bd4dc14f9f9049eea66ce2def98ca9a4bbad1450d5c38a99c3a7e76a8eadb8ce23824cceb932c03aec6119e6dca33c001f118ac3dd2e7b947c4a5539955d29a9d7d83c41150a3167653c91d23a1601ec1a44a9bd9e62663131f3a0fcc2353b0f7d49c45111335e33011c6fefc2c21ea7bf8394761cc563f5446792ffdc03c38398720a493b6a80eee1f95cc4f8e86cb639c1da63bc6d17f333536c4eb7564d6fd36d513b322b605ff66d0ba36ac0f851362723b13ea791f576928a868a5a2e994e11f70c2e575ac79f602010110cc28eee7c67a04646ca97df6026255e7d8fd6f67859802f323b33d56cae4c96a36d5badb40ded633809f1e9ddb03a60e7c5ea3fe1bf283ea53df576a49f150bae0ac538a1b737a906dd521174c467f525412d7a142eb5e6c1473b865251d14b1904bfb24b70fe7e7e464143f64a13973d41ee983132f6b425c722e9e95205a93db8e8e7a35c3998fb3143424d5da07d1c9708da0aebfbfa37c61963bd96443af0020dba5a009d3a35e4f555762746039e63c505ded934d19823783127b2e611017f3c14a78dddd302a811010c8ccb81f1148e38bc879b992333624f1d67a5f3bd8b3eac61d8b4c8d40e4e7b6897524a7f9d3e4d8b55f9252dc1d0c428f274c4b0c48f4db0858779f16901855f4469c1d94e02ae66b23db961b60aa769be9d3dc2462217703796f75f2e52eb9704d9aa4d2cd38edcc1e1844902ceb35e72e1e3e126435de3a4da0c576ce6d7f576b47697daabba7f3bdce15a88f40e23b8774cb9f1b85c6178ab7e190d2c7e6205d7dcc93fe1d54bee466ab4f26c610e385ee52f99c7357de05f1542d0f71a8cfb5b46b515f076aa31d797a43f4d8523758669d5ad365f9a6925427d2269847b53cd5420b6aca595b82f56a020bdb466ebebc469422dcf2d4cca88599a1aa2cfbeb3149e9f32b4dba69811d6e4158e2cdda48eedc0c1291a21e5ea6ea4c9ec7caf5c267dae419f6af219001700cd679493a94b27e4fba6a4a95c562ef48389c2fc062d5d165bf9b605f6fe69eaa95e9cb23d663523e2a73e8c1528533fd8239502916e8aaec427ae82f38f60dc2d1b38f398168432ea63c72e4efff8c94a82314545f1f45f66984ace3a9cad7aebc025312ea57cd7e5151e5e3a7bab0c7dc4bf0a1362702d43a98495cd39e494f1a7f6bfc78d873a8d09205d9b1b8f5b8bda83d7a2e9c2af3d77c2277b28659d2d4adc1b97c59c9b1eb3e5d98617015b58940253170e4f20430bbef51a25b3e3b38df8fd8c92eb9bc50f3ac5c5444615045380f34ac9015556d86cf79d5d0c99c2a16b5528d7b325c25fa08b19dbb1a78eb1081e13ea8cdbd92de5852d5593d15cef2233bb57788a34eb954d2efca3f1f185eecc98fc8f7117f233ebfb27b9a4d7e227db583a8b15d2cd0a98c74c3415262839fc11e012b1067e312acc855371abc807d597c67898bea9c28b3e30de6c968a291124a78411fc2a5adf578d423f77ddccc814ef106ce19a5074a071853defaca429cb2ccdbf304c7570a94e10653a14abe479e854188861d68f04d16c7c40f19a7312a5399dc679a792005967d5f2103db5c5bf8a7fd0c71cf63af0b4b244d54744fb07e303a91580ae37ea8a8aa2d380a346080b732c0a1ed16654d9367b469c0eb28b002ffcd1030a0f2b1f21f2f72c050e830163f3d2903056b56c5c3a662f03ac36ab2cade947963ee9072e73ee53dd6200b99d2b3317362a40c5bf58f48f680a045de0fdf2d1a9137203a1f200b3d95dee50e58943a4856b699f5c8c64ff43095184f6e582d11afafb4427d738237738c2b73b42d148396689f1e5e08ba948eb2e66924256bc93135d1e1855f7d55048d31093d0f415142890146477c6b1386e0d3db780e657c5064ea64912f596883734094537bc2a5123058efa256702bbaaadab37f4fcaf1fe91f1b207f563ef30a2fb24630404c051e84911c8597c1fdb23b8bf2ad1fdcf0914db198838c2dddfa11477b01dbc6c348d632813644a259f220b5fd4acf9b5c23f5acb49439b2150a2139e4c0d2c8437a9f6a51993e8543277d9ee861f84b252092c5cc267ac62c9f6756a6b1b5c79368f71c3a32fb10e8743220bb6fe1a02d1160c7a7a68c309d97812a5218e857e4e4afbf766227aac62af089a9237f88af8695d00edd3faa1d71bcc714a8d59cd1691cdd5d4b85a423102eeeb988d011063ff25e74d72a76bdf304852b6ca61921b545069ba293a22827b2ea9402a2af56eeaac6ec7ecf442a058ac993718fbf6070f18273e4562799fbabfd1ed17203338445f6491b1c1cfe0eb0c172c3242484f52575a5b6074828f9ba1cdd6e0e4f312222d344a4e51527f8bb2ccd5d6e1fa000000000000000000000000000000000d1a30", + "result": "invalid", + "flags": [ + "IncorrectSignatureLength" + ] + }, + { + "tcId": 3, + "comment": "long signature", + "msg": "48656c6c6f20776f726c64", + "sig": "19831aa9c40124c5bcbe9a65a6c0aec304773b808a980f6710fa9f8f1cdd50ee5618950565949784f9027ce40401c594670b8274342d9791113c50c8d522920f7da90ca0c242e0c7b64cc6ac4acd642758baa4b714170e60c08ea892770eecd357d827c57d9258a59bf3f678b89cc14d1d49b5425578a3a051a209ebd11c279b0cf661ef50699e68bc28943c418309764e39ad2aa3bda87bedfd85521d9078b020ef158ae1c4683e67801f0a60eca41c7bc6a60fde9212e6095def1ecb5355597b787807ae6f4a79b4a79c374c84772438ddb33e03c1991c53a7e92e58b562d55e0a642da04f86fcfe1e142bb0af741fe78143c83550a91e6a8f2a7f2df23f40d675ed7dedb1b4cefa88f4d926659a818028a6a7c24305ef4ea85dfa99fc0487ca7b61e098d8e8d62b48a03e54406a7b47bb7f0ed9499f7b649e141dfb43f7e16664f7844add4cc784d4fb67ea1a2043b65c7450459aa435c52e4e75824873541c0807a33134f56c217e62956d98f56f60dbad96fccc07ee3ed66a374c44adb353044447b55d6325127e335ae783079c6602bbe06dfb93d61c3f8d3fc3389b3a28b48f2e6874ce431ea0c28bb1b9f4de038745dc6a4c0ec6a9dc59da14f57981644fdc5dff5c8c6792014a24dac2bde3a136125e77b8aadb3d10a08783e573a278919c6d4a9dacbd83a2102eceef4a954260b2258e2e7a0f044584f2a645b0ba34b24bc494a2141d55fa823847b7dd7babf0a0a48e0d2c27c27c9df453e974bbf792a54e73e84801b009b2cd6744ec174fd24aa1eb16b554bb57a3f2cd699654d93b6c7e4c678076bd25cbd18fd7706e595c11f7c3bca44233d1fb3906fe80b5993ce047b92bccf1b81989343f9ea9d6209f57ce9e4efeb28b2124ed20b943271efcc84cbbf823e07cdfd907189108cd527db86bbdfa354b582ae2a7ecf5af12583919187de1447ba992c93e034c9fcef5211c0c18823d8ad2a28f0b515426affdd8858a650aaf191a79cb40d01bd4dc14f9f9049eea66ce2def98ca9a4bbad1450d5c38a99c3a7e76a8eadb8ce23824cceb932c03aec6119e6dca33c001f118ac3dd2e7b947c4a5539955d29a9d7d83c41150a3167653c91d23a1601ec1a44a9bd9e62663131f3a0fcc2353b0f7d49c45111335e33011c6fefc2c21ea7bf8394761cc563f5446792ffdc03c38398720a493b6a80eee1f95cc4f8e86cb639c1da63bc6d17f333536c4eb7564d6fd36d513b322b605ff66d0ba36ac0f851362723b13ea791f576928a868a5a2e994e11f70c2e575ac79f602010110cc28eee7c67a04646ca97df6026255e7d8fd6f67859802f323b33d56cae4c96a36d5badb40ded633809f1e9ddb03a60e7c5ea3fe1bf283ea53df576a49f150bae0ac538a1b737a906dd521174c467f525412d7a142eb5e6c1473b865251d14b1904bfb24b70fe7e7e464143f64a13973d41ee983132f6b425c722e9e95205a93db8e8e7a35c3998fb3143424d5da07d1c9708da0aebfbfa37c61963bd96443af0020dba5a009d3a35e4f555762746039e63c505ded934d19823783127b2e611017f3c14a78dddd302a811010c8ccb81f1148e38bc879b992333624f1d67a5f3bd8b3eac61d8b4c8d40e4e7b6897524a7f9d3e4d8b55f9252dc1d0c428f274c4b0c48f4db0858779f16901855f4469c1d94e02ae66b23db961b60aa769be9d3dc2462217703796f75f2e52eb9704d9aa4d2cd38edcc1e1844902ceb35e72e1e3e126435de3a4da0c576ce6d7f576b47697daabba7f3bdce15a88f40e23b8774cb9f1b85c6178ab7e190d2c7e6205d7dcc93fe1d54bee466ab4f26c610e385ee52f99c7357de05f1542d0f71a8cfb5b46b515f076aa31d797a43f4d8523758669d5ad365f9a6925427d2269847b53cd5420b6aca595b82f56a020bdb466ebebc469422dcf2d4cca88599a1aa2cfbeb3149e9f32b4dba69811d6e4158e2cdda48eedc0c1291a21e5ea6ea4c9ec7caf5c267dae419f6af219001700cd679493a94b27e4fba6a4a95c562ef48389c2fc062d5d165bf9b605f6fe69eaa95e9cb23d663523e2a73e8c1528533fd8239502916e8aaec427ae82f38f60dc2d1b38f398168432ea63c72e4efff8c94a82314545f1f45f66984ace3a9cad7aebc025312ea57cd7e5151e5e3a7bab0c7dc4bf0a1362702d43a98495cd39e494f1a7f6bfc78d873a8d09205d9b1b8f5b8bda83d7a2e9c2af3d77c2277b28659d2d4adc1b97c59c9b1eb3e5d98617015b58940253170e4f20430bbef51a25b3e3b38df8fd8c92eb9bc50f3ac5c5444615045380f34ac9015556d86cf79d5d0c99c2a16b5528d7b325c25fa08b19dbb1a78eb1081e13ea8cdbd92de5852d5593d15cef2233bb57788a34eb954d2efca3f1f185eecc98fc8f7117f233ebfb27b9a4d7e227db583a8b15d2cd0a98c74c3415262839fc11e012b1067e312acc855371abc807d597c67898bea9c28b3e30de6c968a291124a78411fc2a5adf578d423f77ddccc814ef106ce19a5074a071853defaca429cb2ccdbf304c7570a94e10653a14abe479e854188861d68f04d16c7c40f19a7312a5399dc679a792005967d5f2103db5c5bf8a7fd0c71cf63af0b4b244d54744fb07e303a91580ae37ea8a8aa2d380a346080b732c0a1ed16654d9367b469c0eb28b002ffcd1030a0f2b1f21f2f72c050e830163f3d2903056b56c5c3a662f03ac36ab2cade947963ee9072e73ee53dd6200b99d2b3317362a40c5bf58f48f680a045de0fdf2d1a9137203a1f200b3d95dee50e58943a4856b699f5c8c64ff43095184f6e582d11afafb4427d738237738c2b73b42d148396689f1e5e08ba948eb2e66924256bc93135d1e1855f7d55048d31093d0f415142890146477c6b1386e0d3db780e657c5064ea64912f596883734094537bc2a5123058efa256702bbaaadab37f4fcaf1fe91f1b207f563ef30a2fb24630404c051e84911c8597c1fdb23b8bf2ad1fdcf0914db198838c2dddfa11477b01dbc6c348d632813644a259f220b5fd4acf9b5c23f5acb49439b2150a2139e4c0d2c8437a9f6a51993e8543277d9ee861f84b252092c5cc267ac62c9f6756a6b1b5c79368f71c3a32fb10e8743220bb6fe1a02d1160c7a7a68c309d97812a5218e857e4e4afbf766227aac62af089a9237f88af8695d00edd3faa1d71bcc714a8d59cd1691cdd5d4b85a423102eeeb988d011063ff25e74d72a76bdf304852b6ca61921b545069ba293a22827b2ea9402a2af56eeaac6ec7ecf442a058ac993718fbf6070f18273e4562799fbabfd1ed17203338445f6491b1c1cfe0eb0c172c3242484f52575a5b6074828f9ba1cdd6e0e4f312222d344a4e51527f8bb2ccd5d6e1fa000000000000000000000000000000000d1a304000", + "result": "invalid", + "flags": [ + "IncorrectSignatureLength" + ] + }, + { + "tcId": 4, + "comment": "signature with a bit flip in c_tilde", + "msg": "48656c6c6f20776f726c64", + "sig": "18831aa9c40124c5bcbe9a65a6c0aec304773b808a980f6710fa9f8f1cdd50ee5618950565949784f9027ce40401c594670b8274342d9791113c50c8d522920f7da90ca0c242e0c7b64cc6ac4acd642758baa4b714170e60c08ea892770eecd357d827c57d9258a59bf3f678b89cc14d1d49b5425578a3a051a209ebd11c279b0cf661ef50699e68bc28943c418309764e39ad2aa3bda87bedfd85521d9078b020ef158ae1c4683e67801f0a60eca41c7bc6a60fde9212e6095def1ecb5355597b787807ae6f4a79b4a79c374c84772438ddb33e03c1991c53a7e92e58b562d55e0a642da04f86fcfe1e142bb0af741fe78143c83550a91e6a8f2a7f2df23f40d675ed7dedb1b4cefa88f4d926659a818028a6a7c24305ef4ea85dfa99fc0487ca7b61e098d8e8d62b48a03e54406a7b47bb7f0ed9499f7b649e141dfb43f7e16664f7844add4cc784d4fb67ea1a2043b65c7450459aa435c52e4e75824873541c0807a33134f56c217e62956d98f56f60dbad96fccc07ee3ed66a374c44adb353044447b55d6325127e335ae783079c6602bbe06dfb93d61c3f8d3fc3389b3a28b48f2e6874ce431ea0c28bb1b9f4de038745dc6a4c0ec6a9dc59da14f57981644fdc5dff5c8c6792014a24dac2bde3a136125e77b8aadb3d10a08783e573a278919c6d4a9dacbd83a2102eceef4a954260b2258e2e7a0f044584f2a645b0ba34b24bc494a2141d55fa823847b7dd7babf0a0a48e0d2c27c27c9df453e974bbf792a54e73e84801b009b2cd6744ec174fd24aa1eb16b554bb57a3f2cd699654d93b6c7e4c678076bd25cbd18fd7706e595c11f7c3bca44233d1fb3906fe80b5993ce047b92bccf1b81989343f9ea9d6209f57ce9e4efeb28b2124ed20b943271efcc84cbbf823e07cdfd907189108cd527db86bbdfa354b582ae2a7ecf5af12583919187de1447ba992c93e034c9fcef5211c0c18823d8ad2a28f0b515426affdd8858a650aaf191a79cb40d01bd4dc14f9f9049eea66ce2def98ca9a4bbad1450d5c38a99c3a7e76a8eadb8ce23824cceb932c03aec6119e6dca33c001f118ac3dd2e7b947c4a5539955d29a9d7d83c41150a3167653c91d23a1601ec1a44a9bd9e62663131f3a0fcc2353b0f7d49c45111335e33011c6fefc2c21ea7bf8394761cc563f5446792ffdc03c38398720a493b6a80eee1f95cc4f8e86cb639c1da63bc6d17f333536c4eb7564d6fd36d513b322b605ff66d0ba36ac0f851362723b13ea791f576928a868a5a2e994e11f70c2e575ac79f602010110cc28eee7c67a04646ca97df6026255e7d8fd6f67859802f323b33d56cae4c96a36d5badb40ded633809f1e9ddb03a60e7c5ea3fe1bf283ea53df576a49f150bae0ac538a1b737a906dd521174c467f525412d7a142eb5e6c1473b865251d14b1904bfb24b70fe7e7e464143f64a13973d41ee983132f6b425c722e9e95205a93db8e8e7a35c3998fb3143424d5da07d1c9708da0aebfbfa37c61963bd96443af0020dba5a009d3a35e4f555762746039e63c505ded934d19823783127b2e611017f3c14a78dddd302a811010c8ccb81f1148e38bc879b992333624f1d67a5f3bd8b3eac61d8b4c8d40e4e7b6897524a7f9d3e4d8b55f9252dc1d0c428f274c4b0c48f4db0858779f16901855f4469c1d94e02ae66b23db961b60aa769be9d3dc2462217703796f75f2e52eb9704d9aa4d2cd38edcc1e1844902ceb35e72e1e3e126435de3a4da0c576ce6d7f576b47697daabba7f3bdce15a88f40e23b8774cb9f1b85c6178ab7e190d2c7e6205d7dcc93fe1d54bee466ab4f26c610e385ee52f99c7357de05f1542d0f71a8cfb5b46b515f076aa31d797a43f4d8523758669d5ad365f9a6925427d2269847b53cd5420b6aca595b82f56a020bdb466ebebc469422dcf2d4cca88599a1aa2cfbeb3149e9f32b4dba69811d6e4158e2cdda48eedc0c1291a21e5ea6ea4c9ec7caf5c267dae419f6af219001700cd679493a94b27e4fba6a4a95c562ef48389c2fc062d5d165bf9b605f6fe69eaa95e9cb23d663523e2a73e8c1528533fd8239502916e8aaec427ae82f38f60dc2d1b38f398168432ea63c72e4efff8c94a82314545f1f45f66984ace3a9cad7aebc025312ea57cd7e5151e5e3a7bab0c7dc4bf0a1362702d43a98495cd39e494f1a7f6bfc78d873a8d09205d9b1b8f5b8bda83d7a2e9c2af3d77c2277b28659d2d4adc1b97c59c9b1eb3e5d98617015b58940253170e4f20430bbef51a25b3e3b38df8fd8c92eb9bc50f3ac5c5444615045380f34ac9015556d86cf79d5d0c99c2a16b5528d7b325c25fa08b19dbb1a78eb1081e13ea8cdbd92de5852d5593d15cef2233bb57788a34eb954d2efca3f1f185eecc98fc8f7117f233ebfb27b9a4d7e227db583a8b15d2cd0a98c74c3415262839fc11e012b1067e312acc855371abc807d597c67898bea9c28b3e30de6c968a291124a78411fc2a5adf578d423f77ddccc814ef106ce19a5074a071853defaca429cb2ccdbf304c7570a94e10653a14abe479e854188861d68f04d16c7c40f19a7312a5399dc679a792005967d5f2103db5c5bf8a7fd0c71cf63af0b4b244d54744fb07e303a91580ae37ea8a8aa2d380a346080b732c0a1ed16654d9367b469c0eb28b002ffcd1030a0f2b1f21f2f72c050e830163f3d2903056b56c5c3a662f03ac36ab2cade947963ee9072e73ee53dd6200b99d2b3317362a40c5bf58f48f680a045de0fdf2d1a9137203a1f200b3d95dee50e58943a4856b699f5c8c64ff43095184f6e582d11afafb4427d738237738c2b73b42d148396689f1e5e08ba948eb2e66924256bc93135d1e1855f7d55048d31093d0f415142890146477c6b1386e0d3db780e657c5064ea64912f596883734094537bc2a5123058efa256702bbaaadab37f4fcaf1fe91f1b207f563ef30a2fb24630404c051e84911c8597c1fdb23b8bf2ad1fdcf0914db198838c2dddfa11477b01dbc6c348d632813644a259f220b5fd4acf9b5c23f5acb49439b2150a2139e4c0d2c8437a9f6a51993e8543277d9ee861f84b252092c5cc267ac62c9f6756a6b1b5c79368f71c3a32fb10e8743220bb6fe1a02d1160c7a7a68c309d97812a5218e857e4e4afbf766227aac62af089a9237f88af8695d00edd3faa1d71bcc714a8d59cd1691cdd5d4b85a423102eeeb988d011063ff25e74d72a76bdf304852b6ca61921b545069ba293a22827b2ea9402a2af56eeaac6ec7ecf442a058ac993718fbf6070f18273e4562799fbabfd1ed17203338445f6491b1c1cfe0eb0c172c3242484f52575a5b6074828f9ba1cdd6e0e4f312222d344a4e51527f8bb2ccd5d6e1fa000000000000000000000000000000000d1a3040", + "result": "invalid", + "flags": [ + "ModifiedSignature" + ] + }, + { + "tcId": 5, + "comment": "signature with a bit flip in z[0]", + "msg": "48656c6c6f20776f726c64", + "sig": "19831aa9c40124c5bcbe9a65a6c0aec304773b808a980f6710fa9f8f1cdd50ee5718950565949784f9027ce40401c594670b8274342d9791113c50c8d522920f7da90ca0c242e0c7b64cc6ac4acd642758baa4b714170e60c08ea892770eecd357d827c57d9258a59bf3f678b89cc14d1d49b5425578a3a051a209ebd11c279b0cf661ef50699e68bc28943c418309764e39ad2aa3bda87bedfd85521d9078b020ef158ae1c4683e67801f0a60eca41c7bc6a60fde9212e6095def1ecb5355597b787807ae6f4a79b4a79c374c84772438ddb33e03c1991c53a7e92e58b562d55e0a642da04f86fcfe1e142bb0af741fe78143c83550a91e6a8f2a7f2df23f40d675ed7dedb1b4cefa88f4d926659a818028a6a7c24305ef4ea85dfa99fc0487ca7b61e098d8e8d62b48a03e54406a7b47bb7f0ed9499f7b649e141dfb43f7e16664f7844add4cc784d4fb67ea1a2043b65c7450459aa435c52e4e75824873541c0807a33134f56c217e62956d98f56f60dbad96fccc07ee3ed66a374c44adb353044447b55d6325127e335ae783079c6602bbe06dfb93d61c3f8d3fc3389b3a28b48f2e6874ce431ea0c28bb1b9f4de038745dc6a4c0ec6a9dc59da14f57981644fdc5dff5c8c6792014a24dac2bde3a136125e77b8aadb3d10a08783e573a278919c6d4a9dacbd83a2102eceef4a954260b2258e2e7a0f044584f2a645b0ba34b24bc494a2141d55fa823847b7dd7babf0a0a48e0d2c27c27c9df453e974bbf792a54e73e84801b009b2cd6744ec174fd24aa1eb16b554bb57a3f2cd699654d93b6c7e4c678076bd25cbd18fd7706e595c11f7c3bca44233d1fb3906fe80b5993ce047b92bccf1b81989343f9ea9d6209f57ce9e4efeb28b2124ed20b943271efcc84cbbf823e07cdfd907189108cd527db86bbdfa354b582ae2a7ecf5af12583919187de1447ba992c93e034c9fcef5211c0c18823d8ad2a28f0b515426affdd8858a650aaf191a79cb40d01bd4dc14f9f9049eea66ce2def98ca9a4bbad1450d5c38a99c3a7e76a8eadb8ce23824cceb932c03aec6119e6dca33c001f118ac3dd2e7b947c4a5539955d29a9d7d83c41150a3167653c91d23a1601ec1a44a9bd9e62663131f3a0fcc2353b0f7d49c45111335e33011c6fefc2c21ea7bf8394761cc563f5446792ffdc03c38398720a493b6a80eee1f95cc4f8e86cb639c1da63bc6d17f333536c4eb7564d6fd36d513b322b605ff66d0ba36ac0f851362723b13ea791f576928a868a5a2e994e11f70c2e575ac79f602010110cc28eee7c67a04646ca97df6026255e7d8fd6f67859802f323b33d56cae4c96a36d5badb40ded633809f1e9ddb03a60e7c5ea3fe1bf283ea53df576a49f150bae0ac538a1b737a906dd521174c467f525412d7a142eb5e6c1473b865251d14b1904bfb24b70fe7e7e464143f64a13973d41ee983132f6b425c722e9e95205a93db8e8e7a35c3998fb3143424d5da07d1c9708da0aebfbfa37c61963bd96443af0020dba5a009d3a35e4f555762746039e63c505ded934d19823783127b2e611017f3c14a78dddd302a811010c8ccb81f1148e38bc879b992333624f1d67a5f3bd8b3eac61d8b4c8d40e4e7b6897524a7f9d3e4d8b55f9252dc1d0c428f274c4b0c48f4db0858779f16901855f4469c1d94e02ae66b23db961b60aa769be9d3dc2462217703796f75f2e52eb9704d9aa4d2cd38edcc1e1844902ceb35e72e1e3e126435de3a4da0c576ce6d7f576b47697daabba7f3bdce15a88f40e23b8774cb9f1b85c6178ab7e190d2c7e6205d7dcc93fe1d54bee466ab4f26c610e385ee52f99c7357de05f1542d0f71a8cfb5b46b515f076aa31d797a43f4d8523758669d5ad365f9a6925427d2269847b53cd5420b6aca595b82f56a020bdb466ebebc469422dcf2d4cca88599a1aa2cfbeb3149e9f32b4dba69811d6e4158e2cdda48eedc0c1291a21e5ea6ea4c9ec7caf5c267dae419f6af219001700cd679493a94b27e4fba6a4a95c562ef48389c2fc062d5d165bf9b605f6fe69eaa95e9cb23d663523e2a73e8c1528533fd8239502916e8aaec427ae82f38f60dc2d1b38f398168432ea63c72e4efff8c94a82314545f1f45f66984ace3a9cad7aebc025312ea57cd7e5151e5e3a7bab0c7dc4bf0a1362702d43a98495cd39e494f1a7f6bfc78d873a8d09205d9b1b8f5b8bda83d7a2e9c2af3d77c2277b28659d2d4adc1b97c59c9b1eb3e5d98617015b58940253170e4f20430bbef51a25b3e3b38df8fd8c92eb9bc50f3ac5c5444615045380f34ac9015556d86cf79d5d0c99c2a16b5528d7b325c25fa08b19dbb1a78eb1081e13ea8cdbd92de5852d5593d15cef2233bb57788a34eb954d2efca3f1f185eecc98fc8f7117f233ebfb27b9a4d7e227db583a8b15d2cd0a98c74c3415262839fc11e012b1067e312acc855371abc807d597c67898bea9c28b3e30de6c968a291124a78411fc2a5adf578d423f77ddccc814ef106ce19a5074a071853defaca429cb2ccdbf304c7570a94e10653a14abe479e854188861d68f04d16c7c40f19a7312a5399dc679a792005967d5f2103db5c5bf8a7fd0c71cf63af0b4b244d54744fb07e303a91580ae37ea8a8aa2d380a346080b732c0a1ed16654d9367b469c0eb28b002ffcd1030a0f2b1f21f2f72c050e830163f3d2903056b56c5c3a662f03ac36ab2cade947963ee9072e73ee53dd6200b99d2b3317362a40c5bf58f48f680a045de0fdf2d1a9137203a1f200b3d95dee50e58943a4856b699f5c8c64ff43095184f6e582d11afafb4427d738237738c2b73b42d148396689f1e5e08ba948eb2e66924256bc93135d1e1855f7d55048d31093d0f415142890146477c6b1386e0d3db780e657c5064ea64912f596883734094537bc2a5123058efa256702bbaaadab37f4fcaf1fe91f1b207f563ef30a2fb24630404c051e84911c8597c1fdb23b8bf2ad1fdcf0914db198838c2dddfa11477b01dbc6c348d632813644a259f220b5fd4acf9b5c23f5acb49439b2150a2139e4c0d2c8437a9f6a51993e8543277d9ee861f84b252092c5cc267ac62c9f6756a6b1b5c79368f71c3a32fb10e8743220bb6fe1a02d1160c7a7a68c309d97812a5218e857e4e4afbf766227aac62af089a9237f88af8695d00edd3faa1d71bcc714a8d59cd1691cdd5d4b85a423102eeeb988d011063ff25e74d72a76bdf304852b6ca61921b545069ba293a22827b2ea9402a2af56eeaac6ec7ecf442a058ac993718fbf6070f18273e4562799fbabfd1ed17203338445f6491b1c1cfe0eb0c172c3242484f52575a5b6074828f9ba1cdd6e0e4f312222d344a4e51527f8bb2ccd5d6e1fa000000000000000000000000000000000d1a3040", + "result": "invalid", + "flags": [ + "ModifiedSignature" + ] + }, + { + "tcId": 6, + "comment": "signature with a bit flip in z[1]", + "msg": "48656c6c6f20776f726c64", + "sig": "19831aa9c40124c5bcbe9a65a6c0aec304773b808a980f6710fa9f8f1cdd50ee5618950565949784f9027ce40401c594670b8274342d9791113c50c8d522920f7da90ca0c242e0c7b64cc6ac4acd642758baa4b714170e60c08ea892770eecd357d827c57d9258a59bf3f678b89cc14d1d49b5425578a3a051a209ebd11c279b0cf661ef50699e68bc28943c418309764e39ad2aa3bda87bedfd85521d9078b020ef158ae1c4683e67801f0a60eca41c7bc6a60fde9212e6095def1ecb5355597b787807ae6f4a79b4a79c374c84772438ddb33e03c1991c53a7e92e58b562d55e0a642da04f86fcfe1e142bb0af741fe78143c83550a91e6a8f2a7f2df23f40d675ed7dedb1b4cefa88f4d926659a818028a6a7c24305ef4ea85dfa99fc0487ca7b61e098d8e8d62b48a03e54406a7b47bb7f0ed9499f7b649e141dfb43f7e16664f7844add4cc784d4fb67ea1a2043b65c7450459aa435c52e4e75824873541c0807a33134f56c217e62956d98f56f60dbad96fccc07ee3ed66a374c44adb353044447b55d6325127e335ae783079c6602bbe06dfb93d61c3f8d3fc3389b3a28b48f2e6874ce431ea0c28bb1b9f4de038745dc6a4c0ec6a9dc59da14f57981644fdc5dff5c8c6792014a24dac2bde3a136125e77b8aadb3d10a08783e573a278919c6d4a9dacbd83a2102eceef4a954260b2258e2e7a0f044584f2a645b0ba34b24bc494a2141d55fa823847b7dd7babf0a0a48e0d2c27c27c9df453e974bbf792a54e73e84801b009b2cd6744ec174fd24aa1eb16b554bb57a3f2cd699654d93b6c7e4c678076bd25cbd18fd7706e595c11f7c3bca44233d1fb3906fe80b5983ce047b92bccf1b81989343f9ea9d6209f57ce9e4efeb28b2124ed20b943271efcc84cbbf823e07cdfd907189108cd527db86bbdfa354b582ae2a7ecf5af12583919187de1447ba992c93e034c9fcef5211c0c18823d8ad2a28f0b515426affdd8858a650aaf191a79cb40d01bd4dc14f9f9049eea66ce2def98ca9a4bbad1450d5c38a99c3a7e76a8eadb8ce23824cceb932c03aec6119e6dca33c001f118ac3dd2e7b947c4a5539955d29a9d7d83c41150a3167653c91d23a1601ec1a44a9bd9e62663131f3a0fcc2353b0f7d49c45111335e33011c6fefc2c21ea7bf8394761cc563f5446792ffdc03c38398720a493b6a80eee1f95cc4f8e86cb639c1da63bc6d17f333536c4eb7564d6fd36d513b322b605ff66d0ba36ac0f851362723b13ea791f576928a868a5a2e994e11f70c2e575ac79f602010110cc28eee7c67a04646ca97df6026255e7d8fd6f67859802f323b33d56cae4c96a36d5badb40ded633809f1e9ddb03a60e7c5ea3fe1bf283ea53df576a49f150bae0ac538a1b737a906dd521174c467f525412d7a142eb5e6c1473b865251d14b1904bfb24b70fe7e7e464143f64a13973d41ee983132f6b425c722e9e95205a93db8e8e7a35c3998fb3143424d5da07d1c9708da0aebfbfa37c61963bd96443af0020dba5a009d3a35e4f555762746039e63c505ded934d19823783127b2e611017f3c14a78dddd302a811010c8ccb81f1148e38bc879b992333624f1d67a5f3bd8b3eac61d8b4c8d40e4e7b6897524a7f9d3e4d8b55f9252dc1d0c428f274c4b0c48f4db0858779f16901855f4469c1d94e02ae66b23db961b60aa769be9d3dc2462217703796f75f2e52eb9704d9aa4d2cd38edcc1e1844902ceb35e72e1e3e126435de3a4da0c576ce6d7f576b47697daabba7f3bdce15a88f40e23b8774cb9f1b85c6178ab7e190d2c7e6205d7dcc93fe1d54bee466ab4f26c610e385ee52f99c7357de05f1542d0f71a8cfb5b46b515f076aa31d797a43f4d8523758669d5ad365f9a6925427d2269847b53cd5420b6aca595b82f56a020bdb466ebebc469422dcf2d4cca88599a1aa2cfbeb3149e9f32b4dba69811d6e4158e2cdda48eedc0c1291a21e5ea6ea4c9ec7caf5c267dae419f6af219001700cd679493a94b27e4fba6a4a95c562ef48389c2fc062d5d165bf9b605f6fe69eaa95e9cb23d663523e2a73e8c1528533fd8239502916e8aaec427ae82f38f60dc2d1b38f398168432ea63c72e4efff8c94a82314545f1f45f66984ace3a9cad7aebc025312ea57cd7e5151e5e3a7bab0c7dc4bf0a1362702d43a98495cd39e494f1a7f6bfc78d873a8d09205d9b1b8f5b8bda83d7a2e9c2af3d77c2277b28659d2d4adc1b97c59c9b1eb3e5d98617015b58940253170e4f20430bbef51a25b3e3b38df8fd8c92eb9bc50f3ac5c5444615045380f34ac9015556d86cf79d5d0c99c2a16b5528d7b325c25fa08b19dbb1a78eb1081e13ea8cdbd92de5852d5593d15cef2233bb57788a34eb954d2efca3f1f185eecc98fc8f7117f233ebfb27b9a4d7e227db583a8b15d2cd0a98c74c3415262839fc11e012b1067e312acc855371abc807d597c67898bea9c28b3e30de6c968a291124a78411fc2a5adf578d423f77ddccc814ef106ce19a5074a071853defaca429cb2ccdbf304c7570a94e10653a14abe479e854188861d68f04d16c7c40f19a7312a5399dc679a792005967d5f2103db5c5bf8a7fd0c71cf63af0b4b244d54744fb07e303a91580ae37ea8a8aa2d380a346080b732c0a1ed16654d9367b469c0eb28b002ffcd1030a0f2b1f21f2f72c050e830163f3d2903056b56c5c3a662f03ac36ab2cade947963ee9072e73ee53dd6200b99d2b3317362a40c5bf58f48f680a045de0fdf2d1a9137203a1f200b3d95dee50e58943a4856b699f5c8c64ff43095184f6e582d11afafb4427d738237738c2b73b42d148396689f1e5e08ba948eb2e66924256bc93135d1e1855f7d55048d31093d0f415142890146477c6b1386e0d3db780e657c5064ea64912f596883734094537bc2a5123058efa256702bbaaadab37f4fcaf1fe91f1b207f563ef30a2fb24630404c051e84911c8597c1fdb23b8bf2ad1fdcf0914db198838c2dddfa11477b01dbc6c348d632813644a259f220b5fd4acf9b5c23f5acb49439b2150a2139e4c0d2c8437a9f6a51993e8543277d9ee861f84b252092c5cc267ac62c9f6756a6b1b5c79368f71c3a32fb10e8743220bb6fe1a02d1160c7a7a68c309d97812a5218e857e4e4afbf766227aac62af089a9237f88af8695d00edd3faa1d71bcc714a8d59cd1691cdd5d4b85a423102eeeb988d011063ff25e74d72a76bdf304852b6ca61921b545069ba293a22827b2ea9402a2af56eeaac6ec7ecf442a058ac993718fbf6070f18273e4562799fbabfd1ed17203338445f6491b1c1cfe0eb0c172c3242484f52575a5b6074828f9ba1cdd6e0e4f312222d344a4e51527f8bb2ccd5d6e1fa000000000000000000000000000000000d1a3040", + "result": "invalid", + "flags": [ + "ModifiedSignature" + ] + }, + { + "tcId": 7, + "comment": "signature with a bit flip in z[2]", + "msg": "48656c6c6f20776f726c64", + "sig": "19831aa9c40124c5bcbe9a65a6c0aec304773b808a980f6710fa9f8f1cdd50ee5618950565949784f9027ce40401c594670b8274342d9791113c50c8d522920f7da90ca0c242e0c7b64cc6ac4acd642758baa4b714170e60c08ea892770eecd357d827c57d9258a59bf3f678b89cc14d1d49b5425578a3a051a209ebd11c279b0cf661ef50699e68bc28943c418309764e39ad2aa3bda87bedfd85521d9078b020ef158ae1c4683e67801f0a60eca41c7bc6a60fde9212e6095def1ecb5355597b787807ae6f4a79b4a79c374c84772438ddb33e03c1991c53a7e92e58b562d55e0a642da04f86fcfe1e142bb0af741fe78143c83550a91e6a8f2a7f2df23f40d675ed7dedb1b4cefa88f4d926659a818028a6a7c24305ef4ea85dfa99fc0487ca7b61e098d8e8d62b48a03e54406a7b47bb7f0ed9499f7b649e141dfb43f7e16664f7844add4cc784d4fb67ea1a2043b65c7450459aa435c52e4e75824873541c0807a33134f56c217e62956d98f56f60dbad96fccc07ee3ed66a374c44adb353044447b55d6325127e335ae783079c6602bbe06dfb93d61c3f8d3fc3389b3a28b48f2e6874ce431ea0c28bb1b9f4de038745dc6a4c0ec6a9dc59da14f57981644fdc5dff5c8c6792014a24dac2bde3a136125e77b8aadb3d10a08783e573a278919c6d4a9dacbd83a2102eceef4a954260b2258e2e7a0f044584f2a645b0ba34b24bc494a2141d55fa823847b7dd7babf0a0a48e0d2c27c27c9df453e974bbf792a54e73e84801b009b2cd6744ec174fd24aa1eb16b554bb57a3f2cd699654d93b6c7e4c678076bd25cbd18fd7706e595c11f7c3bca44233d1fb3906fe80b5993ce047b92bccf1b81989343f9ea9d6209f57ce9e4efeb28b2124ed20b943271efcc84cbbf823e07cdfd907189108cd527db86bbdfa354b582ae2a7ecf5af12583919187de1447ba992c93e034c9fcef5211c0c18823d8ad2a28f0b515426affdd8858a650aaf191a79cb40d01bd4dc14f9f9049eea66ce2def98ca9a4bbad1450d5c38a99c3a7e76a8eadb8ce23824cceb932c03aec6119e6dca33c001f118ac3dd2e7b947c4a5539955d29a9d7d83c41150a3167653c91d23a1601ec1a44a9bd9e62663131f3a0fcc2353b0f7d49c45111335e33011c6fefc2c21ea7bf8394761cc563f5446792ffdc03c38398720a493b6a80eee1f95cc4f8e86cb639c1da63bc6d17f333536c4eb7564d6fd36d513b322b605ff66d0ba36ac0f851362723b13ea791f576928a868a5a2e994e11f70c2e575ac79f602010110cc28eee7c67a04646ca97df6026255e7d8fd6f67859802f323b33d56cae4c96a36d5badb40ded633809f1e9ddb03a60e7c5ea3fe1bf283ea53df576a49f150bae0ac538a1b737a906dd521174c467f525412d7a142eb5e6c1473b865251d14b1904bfb24b70fe7e7e464143f64a13973d41ee983132f6b425c722e9e95205a93db8e8e7a35c3998fb3143424d5da07d1c9708da0aebfbfa37c61963bd96443af0020dba5a009d3a35e4f555762746039e63c505ded934d19823783127b2e611017f3c14a78dddd302a811010c8ccb81f1148e38bc879b992333624f1d67a5f3bd8b3eac61d8b4c8d40e4e7b6897524a7f9d3e4d8b55f9252dc1d0c428f274c4b0c48f4db0859779f16901855f4469c1d94e02ae66b23db961b60aa769be9d3dc2462217703796f75f2e52eb9704d9aa4d2cd38edcc1e1844902ceb35e72e1e3e126435de3a4da0c576ce6d7f576b47697daabba7f3bdce15a88f40e23b8774cb9f1b85c6178ab7e190d2c7e6205d7dcc93fe1d54bee466ab4f26c610e385ee52f99c7357de05f1542d0f71a8cfb5b46b515f076aa31d797a43f4d8523758669d5ad365f9a6925427d2269847b53cd5420b6aca595b82f56a020bdb466ebebc469422dcf2d4cca88599a1aa2cfbeb3149e9f32b4dba69811d6e4158e2cdda48eedc0c1291a21e5ea6ea4c9ec7caf5c267dae419f6af219001700cd679493a94b27e4fba6a4a95c562ef48389c2fc062d5d165bf9b605f6fe69eaa95e9cb23d663523e2a73e8c1528533fd8239502916e8aaec427ae82f38f60dc2d1b38f398168432ea63c72e4efff8c94a82314545f1f45f66984ace3a9cad7aebc025312ea57cd7e5151e5e3a7bab0c7dc4bf0a1362702d43a98495cd39e494f1a7f6bfc78d873a8d09205d9b1b8f5b8bda83d7a2e9c2af3d77c2277b28659d2d4adc1b97c59c9b1eb3e5d98617015b58940253170e4f20430bbef51a25b3e3b38df8fd8c92eb9bc50f3ac5c5444615045380f34ac9015556d86cf79d5d0c99c2a16b5528d7b325c25fa08b19dbb1a78eb1081e13ea8cdbd92de5852d5593d15cef2233bb57788a34eb954d2efca3f1f185eecc98fc8f7117f233ebfb27b9a4d7e227db583a8b15d2cd0a98c74c3415262839fc11e012b1067e312acc855371abc807d597c67898bea9c28b3e30de6c968a291124a78411fc2a5adf578d423f77ddccc814ef106ce19a5074a071853defaca429cb2ccdbf304c7570a94e10653a14abe479e854188861d68f04d16c7c40f19a7312a5399dc679a792005967d5f2103db5c5bf8a7fd0c71cf63af0b4b244d54744fb07e303a91580ae37ea8a8aa2d380a346080b732c0a1ed16654d9367b469c0eb28b002ffcd1030a0f2b1f21f2f72c050e830163f3d2903056b56c5c3a662f03ac36ab2cade947963ee9072e73ee53dd6200b99d2b3317362a40c5bf58f48f680a045de0fdf2d1a9137203a1f200b3d95dee50e58943a4856b699f5c8c64ff43095184f6e582d11afafb4427d738237738c2b73b42d148396689f1e5e08ba948eb2e66924256bc93135d1e1855f7d55048d31093d0f415142890146477c6b1386e0d3db780e657c5064ea64912f596883734094537bc2a5123058efa256702bbaaadab37f4fcaf1fe91f1b207f563ef30a2fb24630404c051e84911c8597c1fdb23b8bf2ad1fdcf0914db198838c2dddfa11477b01dbc6c348d632813644a259f220b5fd4acf9b5c23f5acb49439b2150a2139e4c0d2c8437a9f6a51993e8543277d9ee861f84b252092c5cc267ac62c9f6756a6b1b5c79368f71c3a32fb10e8743220bb6fe1a02d1160c7a7a68c309d97812a5218e857e4e4afbf766227aac62af089a9237f88af8695d00edd3faa1d71bcc714a8d59cd1691cdd5d4b85a423102eeeb988d011063ff25e74d72a76bdf304852b6ca61921b545069ba293a22827b2ea9402a2af56eeaac6ec7ecf442a058ac993718fbf6070f18273e4562799fbabfd1ed17203338445f6491b1c1cfe0eb0c172c3242484f52575a5b6074828f9ba1cdd6e0e4f312222d344a4e51527f8bb2ccd5d6e1fa000000000000000000000000000000000d1a3040", + "result": "invalid", + "flags": [ + "ModifiedSignature" + ] + }, + { + "tcId": 8, + "comment": "signature with a bit flip in z[3]", + "msg": "48656c6c6f20776f726c64", + "sig": "19831aa9c40124c5bcbe9a65a6c0aec304773b808a980f6710fa9f8f1cdd50ee5618950565949784f9027ce40401c594670b8274342d9791113c50c8d522920f7da90ca0c242e0c7b64cc6ac4acd642758baa4b714170e60c08ea892770eecd357d827c57d9258a59bf3f678b89cc14d1d49b5425578a3a051a209ebd11c279b0cf661ef50699e68bc28943c418309764e39ad2aa3bda87bedfd85521d9078b020ef158ae1c4683e67801f0a60eca41c7bc6a60fde9212e6095def1ecb5355597b787807ae6f4a79b4a79c374c84772438ddb33e03c1991c53a7e92e58b562d55e0a642da04f86fcfe1e142bb0af741fe78143c83550a91e6a8f2a7f2df23f40d675ed7dedb1b4cefa88f4d926659a818028a6a7c24305ef4ea85dfa99fc0487ca7b61e098d8e8d62b48a03e54406a7b47bb7f0ed9499f7b649e141dfb43f7e16664f7844add4cc784d4fb67ea1a2043b65c7450459aa435c52e4e75824873541c0807a33134f56c217e62956d98f56f60dbad96fccc07ee3ed66a374c44adb353044447b55d6325127e335ae783079c6602bbe06dfb93d61c3f8d3fc3389b3a28b48f2e6874ce431ea0c28bb1b9f4de038745dc6a4c0ec6a9dc59da14f57981644fdc5dff5c8c6792014a24dac2bde3a136125e77b8aadb3d10a08783e573a278919c6d4a9dacbd83a2102eceef4a954260b2258e2e7a0f044584f2a645b0ba34b24bc494a2141d55fa823847b7dd7babf0a0a48e0d2c27c27c9df453e974bbf792a54e73e84801b009b2cd6744ec174fd24aa1eb16b554bb57a3f2cd699654d93b6c7e4c678076bd25cbd18fd7706e595c11f7c3bca44233d1fb3906fe80b5993ce047b92bccf1b81989343f9ea9d6209f57ce9e4efeb28b2124ed20b943271efcc84cbbf823e07cdfd907189108cd527db86bbdfa354b582ae2a7ecf5af12583919187de1447ba992c93e034c9fcef5211c0c18823d8ad2a28f0b515426affdd8858a650aaf191a79cb40d01bd4dc14f9f9049eea66ce2def98ca9a4bbad1450d5c38a99c3a7e76a8eadb8ce23824cceb932c03aec6119e6dca33c001f118ac3dd2e7b947c4a5539955d29a9d7d83c41150a3167653c91d23a1601ec1a44a9bd9e62663131f3a0fcc2353b0f7d49c45111335e33011c6fefc2c21ea7bf8394761cc563f5446792ffdc03c38398720a493b6a80eee1f95cc4f8e86cb639c1da63bc6d17f333536c4eb7564d6fd36d513b322b605ff66d0ba36ac0f851362723b13ea791f576928a868a5a2e994e11f70c2e575ac79f602010110cc28eee7c67a04646ca97df6026255e7d8fd6f67859802f323b33d56cae4c96a36d5badb40ded633809f1e9ddb03a60e7c5ea3fe1bf283ea53df576a49f150bae0ac538a1b737a906dd521174c467f525412d7a142eb5e6c1473b865251d14b1904bfb24b70fe7e7e464143f64a13973d41ee983132f6b425c722e9e95205a93db8e8e7a35c3998fb3143424d5da07d1c9708da0aebfbfa37c61963bd96443af0020dba5a009d3a35e4f555762746039e63c505ded934d19823783127b2e611017f3c14a78dddd302a811010c8ccb81f1148e38bc879b992333624f1d67a5f3bd8b3eac61d8b4c8d40e4e7b6897524a7f9d3e4d8b55f9252dc1d0c428f274c4b0c48f4db0858779f16901855f4469c1d94e02ae66b23db961b60aa769be9d3dc2462217703796f75f2e52eb9704d9aa4d2cd38edcc1e1844902ceb35e72e1e3e126435de3a4da0c576ce6d7f576b47697daabba7f3bdce15a88f40e23b8774cb9f1b85c6178ab7e190d2c7e6205d7dcc93fe1d54bee466ab4f26c610e385ee52f99c7357de05f1542d0f71a8cfb5b46b515f076aa31d797a43f4d8523758669d5ad365f9a6925427d2269847b53cd5420b6aca595b82f56a020bdb466ebebc469422dcf2d4cca88599a1aa2cfbeb3149e9f32b4dba69811d6e4158e2cdda48eedc0c1291a21e5ea6ea4c9ec7caf5c267dae419f6af219001700cd679493a94b27e4fba6a4a95c562ef48389c2fc062d5d165bf9b605f6fe69eaa95e9cb23d663523e2a73e8c1528533fd8239502916e8aaec427ae82f38f60dc2d1b38f398168432ea63c72e4efff8c94a82314545f1f45f66984ace3a9cad7aebc025312ea57cd7e5151e5e3a7bab0c7dc4bf0a1362702d43a98495cd39e494f1a7f6bfc78d873a8d09205d9b1b8f5b8bda83d7a2e9c2af3d77c2277b28659d2d4adc1b97c59c9b1eb3e5d98617015b58940253170e4f20430bbef51a25b3e3b38df8fd8c92eb9bc50f3ac5c5444615045380f34ac9015556d86cf79d5d0c99c2a16b5528d7b325c25fa08b19dbb1a78eb1081e13ea8cdbd92de5852d5593d15cef2233bb57788a34eb954d2efca3f1f185eecc98fc8f7117f233ebfb27b9a4d7e227db583a8b15d2cd0a98c74c3415262839fc11e012b1067e312acc855371abc807d597c67898bea9c28b2e30de6c968a291124a78411fc2a5adf578d423f77ddccc814ef106ce19a5074a071853defaca429cb2ccdbf304c7570a94e10653a14abe479e854188861d68f04d16c7c40f19a7312a5399dc679a792005967d5f2103db5c5bf8a7fd0c71cf63af0b4b244d54744fb07e303a91580ae37ea8a8aa2d380a346080b732c0a1ed16654d9367b469c0eb28b002ffcd1030a0f2b1f21f2f72c050e830163f3d2903056b56c5c3a662f03ac36ab2cade947963ee9072e73ee53dd6200b99d2b3317362a40c5bf58f48f680a045de0fdf2d1a9137203a1f200b3d95dee50e58943a4856b699f5c8c64ff43095184f6e582d11afafb4427d738237738c2b73b42d148396689f1e5e08ba948eb2e66924256bc93135d1e1855f7d55048d31093d0f415142890146477c6b1386e0d3db780e657c5064ea64912f596883734094537bc2a5123058efa256702bbaaadab37f4fcaf1fe91f1b207f563ef30a2fb24630404c051e84911c8597c1fdb23b8bf2ad1fdcf0914db198838c2dddfa11477b01dbc6c348d632813644a259f220b5fd4acf9b5c23f5acb49439b2150a2139e4c0d2c8437a9f6a51993e8543277d9ee861f84b252092c5cc267ac62c9f6756a6b1b5c79368f71c3a32fb10e8743220bb6fe1a02d1160c7a7a68c309d97812a5218e857e4e4afbf766227aac62af089a9237f88af8695d00edd3faa1d71bcc714a8d59cd1691cdd5d4b85a423102eeeb988d011063ff25e74d72a76bdf304852b6ca61921b545069ba293a22827b2ea9402a2af56eeaac6ec7ecf442a058ac993718fbf6070f18273e4562799fbabfd1ed17203338445f6491b1c1cfe0eb0c172c3242484f52575a5b6074828f9ba1cdd6e0e4f312222d344a4e51527f8bb2ccd5d6e1fa000000000000000000000000000000000d1a3040", + "result": "invalid", + "flags": [ + "ModifiedSignature" + ] + }, + { + "tcId": 9, + "comment": "signature with a bit flip in hints", + "msg": "48656c6c6f20776f726c64", + "sig": "19831aa9c40124c5bcbe9a65a6c0aec304773b808a980f6710fa9f8f1cdd50ee5618950565949784f9027ce40401c594670b8274342d9791113c50c8d522920f7da90ca0c242e0c7b64cc6ac4acd642758baa4b714170e60c08ea892770eecd357d827c57d9258a59bf3f678b89cc14d1d49b5425578a3a051a209ebd11c279b0cf661ef50699e68bc28943c418309764e39ad2aa3bda87bedfd85521d9078b020ef158ae1c4683e67801f0a60eca41c7bc6a60fde9212e6095def1ecb5355597b787807ae6f4a79b4a79c374c84772438ddb33e03c1991c53a7e92e58b562d55e0a642da04f86fcfe1e142bb0af741fe78143c83550a91e6a8f2a7f2df23f40d675ed7dedb1b4cefa88f4d926659a818028a6a7c24305ef4ea85dfa99fc0487ca7b61e098d8e8d62b48a03e54406a7b47bb7f0ed9499f7b649e141dfb43f7e16664f7844add4cc784d4fb67ea1a2043b65c7450459aa435c52e4e75824873541c0807a33134f56c217e62956d98f56f60dbad96fccc07ee3ed66a374c44adb353044447b55d6325127e335ae783079c6602bbe06dfb93d61c3f8d3fc3389b3a28b48f2e6874ce431ea0c28bb1b9f4de038745dc6a4c0ec6a9dc59da14f57981644fdc5dff5c8c6792014a24dac2bde3a136125e77b8aadb3d10a08783e573a278919c6d4a9dacbd83a2102eceef4a954260b2258e2e7a0f044584f2a645b0ba34b24bc494a2141d55fa823847b7dd7babf0a0a48e0d2c27c27c9df453e974bbf792a54e73e84801b009b2cd6744ec174fd24aa1eb16b554bb57a3f2cd699654d93b6c7e4c678076bd25cbd18fd7706e595c11f7c3bca44233d1fb3906fe80b5993ce047b92bccf1b81989343f9ea9d6209f57ce9e4efeb28b2124ed20b943271efcc84cbbf823e07cdfd907189108cd527db86bbdfa354b582ae2a7ecf5af12583919187de1447ba992c93e034c9fcef5211c0c18823d8ad2a28f0b515426affdd8858a650aaf191a79cb40d01bd4dc14f9f9049eea66ce2def98ca9a4bbad1450d5c38a99c3a7e76a8eadb8ce23824cceb932c03aec6119e6dca33c001f118ac3dd2e7b947c4a5539955d29a9d7d83c41150a3167653c91d23a1601ec1a44a9bd9e62663131f3a0fcc2353b0f7d49c45111335e33011c6fefc2c21ea7bf8394761cc563f5446792ffdc03c38398720a493b6a80eee1f95cc4f8e86cb639c1da63bc6d17f333536c4eb7564d6fd36d513b322b605ff66d0ba36ac0f851362723b13ea791f576928a868a5a2e994e11f70c2e575ac79f602010110cc28eee7c67a04646ca97df6026255e7d8fd6f67859802f323b33d56cae4c96a36d5badb40ded633809f1e9ddb03a60e7c5ea3fe1bf283ea53df576a49f150bae0ac538a1b737a906dd521174c467f525412d7a142eb5e6c1473b865251d14b1904bfb24b70fe7e7e464143f64a13973d41ee983132f6b425c722e9e95205a93db8e8e7a35c3998fb3143424d5da07d1c9708da0aebfbfa37c61963bd96443af0020dba5a009d3a35e4f555762746039e63c505ded934d19823783127b2e611017f3c14a78dddd302a811010c8ccb81f1148e38bc879b992333624f1d67a5f3bd8b3eac61d8b4c8d40e4e7b6897524a7f9d3e4d8b55f9252dc1d0c428f274c4b0c48f4db0858779f16901855f4469c1d94e02ae66b23db961b60aa769be9d3dc2462217703796f75f2e52eb9704d9aa4d2cd38edcc1e1844902ceb35e72e1e3e126435de3a4da0c576ce6d7f576b47697daabba7f3bdce15a88f40e23b8774cb9f1b85c6178ab7e190d2c7e6205d7dcc93fe1d54bee466ab4f26c610e385ee52f99c7357de05f1542d0f71a8cfb5b46b515f076aa31d797a43f4d8523758669d5ad365f9a6925427d2269847b53cd5420b6aca595b82f56a020bdb466ebebc469422dcf2d4cca88599a1aa2cfbeb3149e9f32b4dba69811d6e4158e2cdda48eedc0c1291a21e5ea6ea4c9ec7caf5c267dae419f6af219001700cd679493a94b27e4fba6a4a95c562ef48389c2fc062d5d165bf9b605f6fe69eaa95e9cb23d663523e2a73e8c1528533fd8239502916e8aaec427ae82f38f60dc2d1b38f398168432ea63c72e4efff8c94a82314545f1f45f66984ace3a9cad7aebc025312ea57cd7e5151e5e3a7bab0c7dc4bf0a1362702d43a98495cd39e494f1a7f6bfc78d873a8d09205d9b1b8f5b8bda83d7a2e9c2af3d77c2277b28659d2d4adc1b97c59c9b1eb3e5d98617015b58940253170e4f20430bbef51a25b3e3b38df8fd8c92eb9bc50f3ac5c5444615045380f34ac9015556d86cf79d5d0c99c2a16b5528d7b325c25fa08b19dbb1a78eb1081e13ea8cdbd92de5852d5593d15cef2233bb57788a34eb954d2efca3f1f185eecc98fc8f7117f233ebfb27b9a4d7e227db583a8b15d2cd0a98c74c3415262839fc11e012b1067e312acc855371abc807d597c67898bea9c28b3e30de6c968a291124a78411fc2a5adf578d423f77ddccc814ef106ce19a5074a071853defaca429cb2ccdbf304c7570a94e10653a14abe479e854188861d68f04d16c7c40f19a7312a5399dc679a792005967d5f2103db5c5bf8a7fd0c71cf63af0b4b244d54744fb07e303a91580ae37ea8a8aa2d380a346080b732c0a1ed16654d9367b469c0eb28b002ffcd1030a0f2b1f21f2f72c050e830163f3d2903056b56c5c3a662f03ac36ab2cade947963ee9072e73ee53dd6200b99d2b3317362a40c5bf58f48f680a045de0fdf2d1a9137203a1f200b3d95dee50e58943a4856b699f5c8c64ff43095184f6e582d11afafb4427d738237738c2b73b42d148396689f1e5e08ba948eb2e66924256bc93135d1e1855f7d55048d31093d0f415142890146477c6b1386e0d3db780e657c5064ea64912f596883734094537bc2a5123058efa256702bbaaadab37f4fcaf1fe91f1b207f563ef30a2fb24630404c051e84911c8597c1fdb23b8bf2ad1fdcf0914db198838c2dddfa11477b01dbc6c348d632813644a259f220b5fd4acf9b5c23f5acb49439b2150a2139e4c0d2c8437a9f6a51993e8543277d9ee861f84b252092c5cc267ac62c9f6756a6b1b5c79368f71c3a32fb10e8743220bb6fe1a02d1160c7a7a68c309d97812a5218e857e4e4afbf766227aac62af089a9237f88af8695d00edd3faa1d71bcc714a8d59cd1691cdd5d4b85a423102eeeb988d011063ff25e74d72a76bdf304852b6ca61921b545069ba293a22827b2ea9402a2af56eeaac6ec7ecf442a058ac993718fbf6060f18273e4562799fbabfd1ed17203338445f6491b1c1cfe0eb0c172c3242484f52575a5b6074828f9ba1cdd6e0e4f312222d344a4e51527f8bb2ccd5d6e1fa000000000000000000000000000000000d1a3040", + "result": "invalid", + "flags": [ + "ModifiedSignature" + ] + }, + { + "tcId": 10, + "comment": "signature with a bit flip in the last byte", + "msg": "48656c6c6f20776f726c64", + "sig": "19831aa9c40124c5bcbe9a65a6c0aec304773b808a980f6710fa9f8f1cdd50ee5618950565949784f9027ce40401c594670b8274342d9791113c50c8d522920f7da90ca0c242e0c7b64cc6ac4acd642758baa4b714170e60c08ea892770eecd357d827c57d9258a59bf3f678b89cc14d1d49b5425578a3a051a209ebd11c279b0cf661ef50699e68bc28943c418309764e39ad2aa3bda87bedfd85521d9078b020ef158ae1c4683e67801f0a60eca41c7bc6a60fde9212e6095def1ecb5355597b787807ae6f4a79b4a79c374c84772438ddb33e03c1991c53a7e92e58b562d55e0a642da04f86fcfe1e142bb0af741fe78143c83550a91e6a8f2a7f2df23f40d675ed7dedb1b4cefa88f4d926659a818028a6a7c24305ef4ea85dfa99fc0487ca7b61e098d8e8d62b48a03e54406a7b47bb7f0ed9499f7b649e141dfb43f7e16664f7844add4cc784d4fb67ea1a2043b65c7450459aa435c52e4e75824873541c0807a33134f56c217e62956d98f56f60dbad96fccc07ee3ed66a374c44adb353044447b55d6325127e335ae783079c6602bbe06dfb93d61c3f8d3fc3389b3a28b48f2e6874ce431ea0c28bb1b9f4de038745dc6a4c0ec6a9dc59da14f57981644fdc5dff5c8c6792014a24dac2bde3a136125e77b8aadb3d10a08783e573a278919c6d4a9dacbd83a2102eceef4a954260b2258e2e7a0f044584f2a645b0ba34b24bc494a2141d55fa823847b7dd7babf0a0a48e0d2c27c27c9df453e974bbf792a54e73e84801b009b2cd6744ec174fd24aa1eb16b554bb57a3f2cd699654d93b6c7e4c678076bd25cbd18fd7706e595c11f7c3bca44233d1fb3906fe80b5993ce047b92bccf1b81989343f9ea9d6209f57ce9e4efeb28b2124ed20b943271efcc84cbbf823e07cdfd907189108cd527db86bbdfa354b582ae2a7ecf5af12583919187de1447ba992c93e034c9fcef5211c0c18823d8ad2a28f0b515426affdd8858a650aaf191a79cb40d01bd4dc14f9f9049eea66ce2def98ca9a4bbad1450d5c38a99c3a7e76a8eadb8ce23824cceb932c03aec6119e6dca33c001f118ac3dd2e7b947c4a5539955d29a9d7d83c41150a3167653c91d23a1601ec1a44a9bd9e62663131f3a0fcc2353b0f7d49c45111335e33011c6fefc2c21ea7bf8394761cc563f5446792ffdc03c38398720a493b6a80eee1f95cc4f8e86cb639c1da63bc6d17f333536c4eb7564d6fd36d513b322b605ff66d0ba36ac0f851362723b13ea791f576928a868a5a2e994e11f70c2e575ac79f602010110cc28eee7c67a04646ca97df6026255e7d8fd6f67859802f323b33d56cae4c96a36d5badb40ded633809f1e9ddb03a60e7c5ea3fe1bf283ea53df576a49f150bae0ac538a1b737a906dd521174c467f525412d7a142eb5e6c1473b865251d14b1904bfb24b70fe7e7e464143f64a13973d41ee983132f6b425c722e9e95205a93db8e8e7a35c3998fb3143424d5da07d1c9708da0aebfbfa37c61963bd96443af0020dba5a009d3a35e4f555762746039e63c505ded934d19823783127b2e611017f3c14a78dddd302a811010c8ccb81f1148e38bc879b992333624f1d67a5f3bd8b3eac61d8b4c8d40e4e7b6897524a7f9d3e4d8b55f9252dc1d0c428f274c4b0c48f4db0858779f16901855f4469c1d94e02ae66b23db961b60aa769be9d3dc2462217703796f75f2e52eb9704d9aa4d2cd38edcc1e1844902ceb35e72e1e3e126435de3a4da0c576ce6d7f576b47697daabba7f3bdce15a88f40e23b8774cb9f1b85c6178ab7e190d2c7e6205d7dcc93fe1d54bee466ab4f26c610e385ee52f99c7357de05f1542d0f71a8cfb5b46b515f076aa31d797a43f4d8523758669d5ad365f9a6925427d2269847b53cd5420b6aca595b82f56a020bdb466ebebc469422dcf2d4cca88599a1aa2cfbeb3149e9f32b4dba69811d6e4158e2cdda48eedc0c1291a21e5ea6ea4c9ec7caf5c267dae419f6af219001700cd679493a94b27e4fba6a4a95c562ef48389c2fc062d5d165bf9b605f6fe69eaa95e9cb23d663523e2a73e8c1528533fd8239502916e8aaec427ae82f38f60dc2d1b38f398168432ea63c72e4efff8c94a82314545f1f45f66984ace3a9cad7aebc025312ea57cd7e5151e5e3a7bab0c7dc4bf0a1362702d43a98495cd39e494f1a7f6bfc78d873a8d09205d9b1b8f5b8bda83d7a2e9c2af3d77c2277b28659d2d4adc1b97c59c9b1eb3e5d98617015b58940253170e4f20430bbef51a25b3e3b38df8fd8c92eb9bc50f3ac5c5444615045380f34ac9015556d86cf79d5d0c99c2a16b5528d7b325c25fa08b19dbb1a78eb1081e13ea8cdbd92de5852d5593d15cef2233bb57788a34eb954d2efca3f1f185eecc98fc8f7117f233ebfb27b9a4d7e227db583a8b15d2cd0a98c74c3415262839fc11e012b1067e312acc855371abc807d597c67898bea9c28b3e30de6c968a291124a78411fc2a5adf578d423f77ddccc814ef106ce19a5074a071853defaca429cb2ccdbf304c7570a94e10653a14abe479e854188861d68f04d16c7c40f19a7312a5399dc679a792005967d5f2103db5c5bf8a7fd0c71cf63af0b4b244d54744fb07e303a91580ae37ea8a8aa2d380a346080b732c0a1ed16654d9367b469c0eb28b002ffcd1030a0f2b1f21f2f72c050e830163f3d2903056b56c5c3a662f03ac36ab2cade947963ee9072e73ee53dd6200b99d2b3317362a40c5bf58f48f680a045de0fdf2d1a9137203a1f200b3d95dee50e58943a4856b699f5c8c64ff43095184f6e582d11afafb4427d738237738c2b73b42d148396689f1e5e08ba948eb2e66924256bc93135d1e1855f7d55048d31093d0f415142890146477c6b1386e0d3db780e657c5064ea64912f596883734094537bc2a5123058efa256702bbaaadab37f4fcaf1fe91f1b207f563ef30a2fb24630404c051e84911c8597c1fdb23b8bf2ad1fdcf0914db198838c2dddfa11477b01dbc6c348d632813644a259f220b5fd4acf9b5c23f5acb49439b2150a2139e4c0d2c8437a9f6a51993e8543277d9ee861f84b252092c5cc267ac62c9f6756a6b1b5c79368f71c3a32fb10e8743220bb6fe1a02d1160c7a7a68c309d97812a5218e857e4e4afbf766227aac62af089a9237f88af8695d00edd3faa1d71bcc714a8d59cd1691cdd5d4b85a423102eeeb988d011063ff25e74d72a76bdf304852b6ca61921b545069ba293a22827b2ea9402a2af56eeaac6ec7ecf442a058ac993718fbf6070f18273e4562799fbabfd1ed17203338445f6491b1c1cfe0eb0c172c3242484f52575a5b6074828f9ba1cdd6e0e4f312222d344a4e51527f8bb2ccd5d6e1fa000000000000000000000000000000000d1a3041", + "result": "invalid", + "flags": [ + "ModifiedSignature" + ] + }, + { + "tcId": 11, + "comment": "signature with hints in reverse order", + "msg": "0100000000000000000000000000000000000000000000000000000000000000", + "sig": "c022e817dcce2f91354fa0468d52d20730c1c4b46f93fca19f6715db7424f4365bfec99ec722a7b1aeb28d8e98d302b65ebe86219604f8b524f5a55f7b6641a917e8eed1b13062ea67acfdeefb080097dedf02ecce812354a5dcec7e242fde337d609bf09fd63379ccb64402a7ae08072bc2413e2f5a50d5b2a23623a2c9e21ccb78df687e090107a83ea928f1b307e0fdfde53b4a203af164bc18f8896a7d7a21da3a27c58bee267fa21328fb72ca7b2f171e5451d38a44fbd7b8dc1418405e13c039962b6640848e33d42211c2b89d8a37a220a3044d264f03ff1d1e1a7e5f5b5adc15cd40128d75059d6b2a0a8d775f3f173f3e1863dc8e6a335e34bf63eeafae2e2f59903784338b9d9b68727b90a150edd9ce9731aecefaff5c6123bb07a68eff67b3e258a6e8d2121aa6e727e8d152180dd0c52accd286ab711b717ea87f84e448b6ee5191fc49c5d6fee38d9d837e484850fb1831a341ce26a7c8ed7d47b386a5e3ef443219ac518d46059ccd199056ec7bb0aac029841cc2d6740c28e6ba9163d6b0833d62b4d2d43d85b8812a369144e9ebaa35fe244ad29d24450a26ba2126b8a94d8b233d44b3aefe2a8477d0a4ba72095eec31561864cee4338c1712419aaf4e4c9eb3c460a6a998c9092654dbe9c5b585418450c575639484d6f0896b2afe2179ea396c8f1b1b7ffda802337cbce96e33e0027231c9fb9bb6923793e4fde929d0a93dd03012f94c6f0ad12c02d8d43bb480ea3b30839ca0799c9c6f1ebd2d32f11bc19925c6d801ebb6abb575d0db6a5d0abc3b50a19f5fc4c86e17f6a32734b665f46c8a9d96f338f5b7232d91ae7360d28e7d50e06a9222eff4a5b451f113efbd137c1f181a5a4c5723e47aa5f3c9ae7dc73b4b92a67786dd6bda0188d968e9ce13e4c751ed8c36b43df8872c58c49476a0ab1ddac5ef7eb066ae1064d58bf46f3d1b8e54f2c532f30ccbfc5ee3f90d7e6bc582bfacdb8326e78433d237074a85cdb50f2632a0d7be7c724b33038fa0a5032814574b7389bf82bd0e7f8272a851cce703f877d6e9d15a748405bc8d681a5653db1ef1e86f92e6ac20fa8a1007a6881b448e738b50fd8cce8f85b042d1ecf472692a4fd43f10aaf62821a3449814e1a512783a0caace03ef1558359ef357208877256bced98d5c3fd5cf80e4e0ef172a0c5556f4e5dd56601df1d1496c977b34305fe7781dd7714ded0af8cae5e54c1ec6633a85a4b408dd25a29befbcedc3d219886e6285855370b43db8e6eea5a7d4c439b77465663a59b4bcc9cfa952c9dc4ad5aa02cfb0763b308eacdd9dadc94fa08314d132892ffde80e3c9a80fd474cd2452377c8b2ccb162b2cd34fba13656cc187a2d2a295dd47af66c03a4878cb129117b58145b8c76ca84024550748bc593def2d9b970abe578ee2f41147593f69c5a6143d7f5eff5dc100bd22c9d6537de0cfec96fe18e4e301c72db0c165d742503736ebe969c36f10bdf5e4db8204249425a90e0b2562296b89cf3262bed488c195558dc18c0e16fb3c1aa735a8b93248cffdd7e9daf8b9f603c60c4f6d469b092d956af6cb136ec7950251f4d2628f90882dbd11a5115dcf385c15e6ceeb1bdf775b0ca827cbbf1c2c5216276f5ec67470356ec179a3fbaf8d75d1001c192227385de7a38fcda9f9dd541e6f3b43690f1aeca9f10d65e57415df07eccb1ce320c6cfe3e7cdf85dd35bbb0558a9b900e5f2eeaed69a82aac02fcada88bbe0765ba43260d96ecd40cb9ed5d5ef357737f27e5c12886c583ad5f750558cdc9d87271545a0ee52aa2521ec1159c6d20ff66d089f767ede5351bc2612a75bf21d323f16c4a80581f3267254a6850677a41107a00edb28f0273e82aa4d76324b36cb0a8402a7f05eaca11f2b18329181d336875bf4d059df07b44b1e6b4d1a169d51b6d6dace173a2936634f8658dc38ba0340a044110a51275dfc3286aa051bc4c48486be9f1c335598ef3d9e8007e802797aec4c392e26d57f819167cc6b29d959056c31f3fcd6e962bc7134cabb1169c2a4eb5c5d4fd61b14c0d8ab4d16e5a376e4ba601e453be7206eb47b74a2ad214db24a3f459931c27a3d2351e2bc2c32b2ffb78e801048bf3c505f76064ca7bb038f96e700bcf89c54111cfb9639ff761a7c7c8c1c8d14daf85c842969a5a1dc682deb536b044f1ed3131523a6248788f0d0a1a4ec7b5b7c764daa0be0be10489e246a0f7e345aad67916109a6eef495400d5e935d486ccea939fc4ab440b599bce1b5b5d6643a5d3851ffa9956afee78a0d1919d0ac9ea3344dcbc477e65658fad5cc1658dd0d7dd26a4d968d437a4c778ea6237bc69566ab57fe2c29cce046429375ae66fa10c5858579641638d1c298780625413dc14324f011af275f842f63ce62a5c256f427e998a2e65356af2034cf5f23f8d8a0ac138560331f702bbe6d35748ed386a2d70f9855a07b8fd524341605d53d332563bb60af8f15efcacc411c35b623309f9d1aca8b95c2ee957ef19fe4fbbdd4bf0942f2b878d2172cc6d4769944766c81a6cb36b9c1afc33d62acc7dafbe72f4af357bfc870152f81cfb29273bb5b373a85b16105a0b902182e7ebf583ce036847fee0a53978fbe1f97d2626bd9fb7df9eba4f2b99d1d4e6b1ae1b1cc9f9ea2f5830a8b2069a4719704b27ff0977db528bf8576ab68d7fe6ab01306e25344bdb2f34827804ea386b5aef2c7958fd9068ab99ed3a770f344528d68d829611958c1ab7f324cd63ff63cfba82eb923a073f48bad98aa00e831fae0107d8f54634d195854c8a23db55898112c696438885135565841305b0f9d885183d49a9f9ca2368a2ae17edcc2b0d1632e4fdb3d719b6f41c169d50d28a849a46ca8d5c29dfcc0facd9e8994256fbb10f8c0763994f712f5507934c59193c9775452ebaeb27e8084a72a0d6dd77984e07a9c184d8d86074b16ad1001011863514dd17001913275417a8b4021e05f502714d272b04dc45d570141be61a3cd6990f0bb97f14dd76482abd21617866b1d13dae3dae860f656949f70786f42d3a20666f2c69d02530742c4bfc00068b2afffa942c2491aa720020926a33d2fde912099ff965cb3853f919adb527a55367924e38c5eb35f7586eea5b4d807214e0cd31d4b4882e7f7e2a38a8e3376ec379f9d7b57659f6f86b1117bc488fc0af0ce3422f058656b4d17ff473f1f28b9fcdcffd50ef00c54a576edce0bda874926afa0f8507e1bc62587f3352317f5dbf449726a63010de91efc0f02d51c0d10f2fdcc366bea23a7de6fbf6f4ebc99c8e643f3b372d29252403fce9e7dab7b48e7d73605b533d2c211a110f0af6f3eae9c2bca1786c59584b463b1bfefad7beaca9776751322523211e1a0a000000000000000000000000000010233242", + "result": "invalid", + "flags": [ + "InvalidHintsEncoding" + ] + }, + { + "tcId": 12, + "comment": "signature with too many hints (causing a buffer overflow)", + "msg": "0100000000000000000000000000000000000000000000000000000000000000", + "sig": "c022e817dcce2f91354fa0468d52d20730c1c4b46f93fca19f6715db7424f4365bfec99ec722a7b1aeb28d8e98d302b65ebe86219604f8b524f5a55f7b6641a917e8eed1b13062ea67acfdeefb080097dedf02ecce812354a5dcec7e242fde337d609bf09fd63379ccb64402a7ae08072bc2413e2f5a50d5b2a23623a2c9e21ccb78df687e090107a83ea928f1b307e0fdfde53b4a203af164bc18f8896a7d7a21da3a27c58bee267fa21328fb72ca7b2f171e5451d38a44fbd7b8dc1418405e13c039962b6640848e33d42211c2b89d8a37a220a3044d264f03ff1d1e1a7e5f5b5adc15cd40128d75059d6b2a0a8d775f3f173f3e1863dc8e6a335e34bf63eeafae2e2f59903784338b9d9b68727b90a150edd9ce9731aecefaff5c6123bb07a68eff67b3e258a6e8d2121aa6e727e8d152180dd0c52accd286ab711b717ea87f84e448b6ee5191fc49c5d6fee38d9d837e484850fb1831a341ce26a7c8ed7d47b386a5e3ef443219ac518d46059ccd199056ec7bb0aac029841cc2d6740c28e6ba9163d6b0833d62b4d2d43d85b8812a369144e9ebaa35fe244ad29d24450a26ba2126b8a94d8b233d44b3aefe2a8477d0a4ba72095eec31561864cee4338c1712419aaf4e4c9eb3c460a6a998c9092654dbe9c5b585418450c575639484d6f0896b2afe2179ea396c8f1b1b7ffda802337cbce96e33e0027231c9fb9bb6923793e4fde929d0a93dd03012f94c6f0ad12c02d8d43bb480ea3b30839ca0799c9c6f1ebd2d32f11bc19925c6d801ebb6abb575d0db6a5d0abc3b50a19f5fc4c86e17f6a32734b665f46c8a9d96f338f5b7232d91ae7360d28e7d50e06a9222eff4a5b451f113efbd137c1f181a5a4c5723e47aa5f3c9ae7dc73b4b92a67786dd6bda0188d968e9ce13e4c751ed8c36b43df8872c58c49476a0ab1ddac5ef7eb066ae1064d58bf46f3d1b8e54f2c532f30ccbfc5ee3f90d7e6bc582bfacdb8326e78433d237074a85cdb50f2632a0d7be7c724b33038fa0a5032814574b7389bf82bd0e7f8272a851cce703f877d6e9d15a748405bc8d681a5653db1ef1e86f92e6ac20fa8a1007a6881b448e738b50fd8cce8f85b042d1ecf472692a4fd43f10aaf62821a3449814e1a512783a0caace03ef1558359ef357208877256bced98d5c3fd5cf80e4e0ef172a0c5556f4e5dd56601df1d1496c977b34305fe7781dd7714ded0af8cae5e54c1ec6633a85a4b408dd25a29befbcedc3d219886e6285855370b43db8e6eea5a7d4c439b77465663a59b4bcc9cfa952c9dc4ad5aa02cfb0763b308eacdd9dadc94fa08314d132892ffde80e3c9a80fd474cd2452377c8b2ccb162b2cd34fba13656cc187a2d2a295dd47af66c03a4878cb129117b58145b8c76ca84024550748bc593def2d9b970abe578ee2f41147593f69c5a6143d7f5eff5dc100bd22c9d6537de0cfec96fe18e4e301c72db0c165d742503736ebe969c36f10bdf5e4db8204249425a90e0b2562296b89cf3262bed488c195558dc18c0e16fb3c1aa735a8b93248cffdd7e9daf8b9f603c60c4f6d469b092d956af6cb136ec7950251f4d2628f90882dbd11a5115dcf385c15e6ceeb1bdf775b0ca827cbbf1c2c5216276f5ec67470356ec179a3fbaf8d75d1001c192227385de7a38fcda9f9dd541e6f3b43690f1aeca9f10d65e57415df07eccb1ce320c6cfe3e7cdf85dd35bbb0558a9b900e5f2eeaed69a82aac02fcada88bbe0765ba43260d96ecd40cb9ed5d5ef357737f27e5c12886c583ad5f750558cdc9d87271545a0ee52aa2521ec1159c6d20ff66d089f767ede5351bc2612a75bf21d323f16c4a80581f3267254a6850677a41107a00edb28f0273e82aa4d76324b36cb0a8402a7f05eaca11f2b18329181d336875bf4d059df07b44b1e6b4d1a169d51b6d6dace173a2936634f8658dc38ba0340a044110a51275dfc3286aa051bc4c48486be9f1c335598ef3d9e8007e802797aec4c392e26d57f819167cc6b29d959056c31f3fcd6e962bc7134cabb1169c2a4eb5c5d4fd61b14c0d8ab4d16e5a376e4ba601e453be7206eb47b74a2ad214db24a3f459931c27a3d2351e2bc2c32b2ffb78e801048bf3c505f76064ca7bb038f96e700bcf89c54111cfb9639ff761a7c7c8c1c8d14daf85c842969a5a1dc682deb536b044f1ed3131523a6248788f0d0a1a4ec7b5b7c764daa0be0be10489e246a0f7e345aad67916109a6eef495400d5e935d486ccea939fc4ab440b599bce1b5b5d6643a5d3851ffa9956afee78a0d1919d0ac9ea3344dcbc477e65658fad5cc1658dd0d7dd26a4d968d437a4c778ea6237bc69566ab57fe2c29cce046429375ae66fa10c5858579641638d1c298780625413dc14324f011af275f842f63ce62a5c256f427e998a2e65356af2034cf5f23f8d8a0ac138560331f702bbe6d35748ed386a2d70f9855a07b8fd524341605d53d332563bb60af8f15efcacc411c35b623309f9d1aca8b95c2ee957ef19fe4fbbdd4bf0942f2b878d2172cc6d4769944766c81a6cb36b9c1afc33d62acc7dafbe72f4af357bfc870152f81cfb29273bb5b373a85b16105a0b902182e7ebf583ce036847fee0a53978fbe1f97d2626bd9fb7df9eba4f2b99d1d4e6b1ae1b1cc9f9ea2f5830a8b2069a4719704b27ff0977db528bf8576ab68d7fe6ab01306e25344bdb2f34827804ea386b5aef2c7958fd9068ab99ed3a770f344528d68d829611958c1ab7f324cd63ff63cfba82eb923a073f48bad98aa00e831fae0107d8f54634d195854c8a23db55898112c696438885135565841305b0f9d885183d49a9f9ca2368a2ae17edcc2b0d1632e4fdb3d719b6f41c169d50d28a849a46ca8d5c29dfcc0facd9e8994256fbb10f8c0763994f712f5507934c59193c9775452ebaeb27e8084a72a0d6dd77984e07a9c184d8d86074b16ad1001011863514dd17001913275417a8b4021e05f502714d272b04dc45d570141be61a3cd6990f0bb97f14dd76482abd21617866b1d13dae3dae860f656949f70786f42d3a20666f2c69d02530742c4bfc00068b2afffa942c2491aa720020926a33d2fde912099ff965cb3853f919adb527a55367924e38c5eb35f7586eea5b4d807214e0cd31d4b4882e7f7e2a38a8e3376ec379f9d7b57659f6f86b1117bc488fc0af0ce3422f058656b4d17ff473f1f28b9fcdcffd50ef00c54a576edce0bda874926afa0f8507e1bc62587f3352317f5dbf449726a63010de91efc0f02d51c0d10f2fdcc366bea23a7de6032425292d373b3f648e9cc9ebf4f6fb0a0f111a212c3d535b60737d8eb4b7dae7e9fc1b3b464b58596c78a1bcc2e9eaf3f60a1a1e21232532516777a9acbed7fafe0000000000000000000000000000102332ff", + "result": "invalid", + "flags": [ + "InvalidHintsEncoding" + ] + }, + { + "tcId": 13, + "comment": "signature with non-zero padding in hints", + "msg": "0100000000000000000000000000000000000000000000000000000000000000", + "sig": "c022e817dcce2f91354fa0468d52d20730c1c4b46f93fca19f6715db7424f4365bfec99ec722a7b1aeb28d8e98d302b65ebe86219604f8b524f5a55f7b6641a917e8eed1b13062ea67acfdeefb080097dedf02ecce812354a5dcec7e242fde337d609bf09fd63379ccb64402a7ae08072bc2413e2f5a50d5b2a23623a2c9e21ccb78df687e090107a83ea928f1b307e0fdfde53b4a203af164bc18f8896a7d7a21da3a27c58bee267fa21328fb72ca7b2f171e5451d38a44fbd7b8dc1418405e13c039962b6640848e33d42211c2b89d8a37a220a3044d264f03ff1d1e1a7e5f5b5adc15cd40128d75059d6b2a0a8d775f3f173f3e1863dc8e6a335e34bf63eeafae2e2f59903784338b9d9b68727b90a150edd9ce9731aecefaff5c6123bb07a68eff67b3e258a6e8d2121aa6e727e8d152180dd0c52accd286ab711b717ea87f84e448b6ee5191fc49c5d6fee38d9d837e484850fb1831a341ce26a7c8ed7d47b386a5e3ef443219ac518d46059ccd199056ec7bb0aac029841cc2d6740c28e6ba9163d6b0833d62b4d2d43d85b8812a369144e9ebaa35fe244ad29d24450a26ba2126b8a94d8b233d44b3aefe2a8477d0a4ba72095eec31561864cee4338c1712419aaf4e4c9eb3c460a6a998c9092654dbe9c5b585418450c575639484d6f0896b2afe2179ea396c8f1b1b7ffda802337cbce96e33e0027231c9fb9bb6923793e4fde929d0a93dd03012f94c6f0ad12c02d8d43bb480ea3b30839ca0799c9c6f1ebd2d32f11bc19925c6d801ebb6abb575d0db6a5d0abc3b50a19f5fc4c86e17f6a32734b665f46c8a9d96f338f5b7232d91ae7360d28e7d50e06a9222eff4a5b451f113efbd137c1f181a5a4c5723e47aa5f3c9ae7dc73b4b92a67786dd6bda0188d968e9ce13e4c751ed8c36b43df8872c58c49476a0ab1ddac5ef7eb066ae1064d58bf46f3d1b8e54f2c532f30ccbfc5ee3f90d7e6bc582bfacdb8326e78433d237074a85cdb50f2632a0d7be7c724b33038fa0a5032814574b7389bf82bd0e7f8272a851cce703f877d6e9d15a748405bc8d681a5653db1ef1e86f92e6ac20fa8a1007a6881b448e738b50fd8cce8f85b042d1ecf472692a4fd43f10aaf62821a3449814e1a512783a0caace03ef1558359ef357208877256bced98d5c3fd5cf80e4e0ef172a0c5556f4e5dd56601df1d1496c977b34305fe7781dd7714ded0af8cae5e54c1ec6633a85a4b408dd25a29befbcedc3d219886e6285855370b43db8e6eea5a7d4c439b77465663a59b4bcc9cfa952c9dc4ad5aa02cfb0763b308eacdd9dadc94fa08314d132892ffde80e3c9a80fd474cd2452377c8b2ccb162b2cd34fba13656cc187a2d2a295dd47af66c03a4878cb129117b58145b8c76ca84024550748bc593def2d9b970abe578ee2f41147593f69c5a6143d7f5eff5dc100bd22c9d6537de0cfec96fe18e4e301c72db0c165d742503736ebe969c36f10bdf5e4db8204249425a90e0b2562296b89cf3262bed488c195558dc18c0e16fb3c1aa735a8b93248cffdd7e9daf8b9f603c60c4f6d469b092d956af6cb136ec7950251f4d2628f90882dbd11a5115dcf385c15e6ceeb1bdf775b0ca827cbbf1c2c5216276f5ec67470356ec179a3fbaf8d75d1001c192227385de7a38fcda9f9dd541e6f3b43690f1aeca9f10d65e57415df07eccb1ce320c6cfe3e7cdf85dd35bbb0558a9b900e5f2eeaed69a82aac02fcada88bbe0765ba43260d96ecd40cb9ed5d5ef357737f27e5c12886c583ad5f750558cdc9d87271545a0ee52aa2521ec1159c6d20ff66d089f767ede5351bc2612a75bf21d323f16c4a80581f3267254a6850677a41107a00edb28f0273e82aa4d76324b36cb0a8402a7f05eaca11f2b18329181d336875bf4d059df07b44b1e6b4d1a169d51b6d6dace173a2936634f8658dc38ba0340a044110a51275dfc3286aa051bc4c48486be9f1c335598ef3d9e8007e802797aec4c392e26d57f819167cc6b29d959056c31f3fcd6e962bc7134cabb1169c2a4eb5c5d4fd61b14c0d8ab4d16e5a376e4ba601e453be7206eb47b74a2ad214db24a3f459931c27a3d2351e2bc2c32b2ffb78e801048bf3c505f76064ca7bb038f96e700bcf89c54111cfb9639ff761a7c7c8c1c8d14daf85c842969a5a1dc682deb536b044f1ed3131523a6248788f0d0a1a4ec7b5b7c764daa0be0be10489e246a0f7e345aad67916109a6eef495400d5e935d486ccea939fc4ab440b599bce1b5b5d6643a5d3851ffa9956afee78a0d1919d0ac9ea3344dcbc477e65658fad5cc1658dd0d7dd26a4d968d437a4c778ea6237bc69566ab57fe2c29cce046429375ae66fa10c5858579641638d1c298780625413dc14324f011af275f842f63ce62a5c256f427e998a2e65356af2034cf5f23f8d8a0ac138560331f702bbe6d35748ed386a2d70f9855a07b8fd524341605d53d332563bb60af8f15efcacc411c35b623309f9d1aca8b95c2ee957ef19fe4fbbdd4bf0942f2b878d2172cc6d4769944766c81a6cb36b9c1afc33d62acc7dafbe72f4af357bfc870152f81cfb29273bb5b373a85b16105a0b902182e7ebf583ce036847fee0a53978fbe1f97d2626bd9fb7df9eba4f2b99d1d4e6b1ae1b1cc9f9ea2f5830a8b2069a4719704b27ff0977db528bf8576ab68d7fe6ab01306e25344bdb2f34827804ea386b5aef2c7958fd9068ab99ed3a770f344528d68d829611958c1ab7f324cd63ff63cfba82eb923a073f48bad98aa00e831fae0107d8f54634d195854c8a23db55898112c696438885135565841305b0f9d885183d49a9f9ca2368a2ae17edcc2b0d1632e4fdb3d719b6f41c169d50d28a849a46ca8d5c29dfcc0facd9e8994256fbb10f8c0763994f712f5507934c59193c9775452ebaeb27e8084a72a0d6dd77984e07a9c184d8d86074b16ad1001011863514dd17001913275417a8b4021e05f502714d272b04dc45d570141be61a3cd6990f0bb97f14dd76482abd21617866b1d13dae3dae860f656949f70786f42d3a20666f2c69d02530742c4bfc00068b2afffa942c2491aa720020926a33d2fde912099ff965cb3853f919adb527a55367924e38c5eb35f7586eea5b4d807214e0cd31d4b4882e7f7e2a38a8e3376ec379f9d7b57659f6f86b1117bc488fc0af0ce3422f058656b4d17ff473f1f28b9fcdcffd50ef00c54a576edce0bda874926afa0f8507e1bc62587f3352317f5dbf449726a63010de91efc0f02d51c0d10f2fdcc366bea23a7de6032425292d373b3f648e9cc9ebf4f6fb0a0f111a212c3d535b60737d8eb4b7dae7e9fc1b3b464b58596c78a1bcc2e9eaf3f60a1a1e21232532516777a9acbed7fafe2a2a2a2a2a2a2a2a2a2a2a2a2a2a10233242", + "result": "invalid", + "flags": [ + "InvalidHintsEncoding" + ] + }, + { + "tcId": 14, + "comment": "signature with a repeated hint", + "msg": "0100000000000000000000000000000000000000000000000000000000000000", + "sig": "c022e817dcce2f91354fa0468d52d20730c1c4b46f93fca19f6715db7424f4365bfec99ec722a7b1aeb28d8e98d302b65ebe86219604f8b524f5a55f7b6641a917e8eed1b13062ea67acfdeefb080097dedf02ecce812354a5dcec7e242fde337d609bf09fd63379ccb64402a7ae08072bc2413e2f5a50d5b2a23623a2c9e21ccb78df687e090107a83ea928f1b307e0fdfde53b4a203af164bc18f8896a7d7a21da3a27c58bee267fa21328fb72ca7b2f171e5451d38a44fbd7b8dc1418405e13c039962b6640848e33d42211c2b89d8a37a220a3044d264f03ff1d1e1a7e5f5b5adc15cd40128d75059d6b2a0a8d775f3f173f3e1863dc8e6a335e34bf63eeafae2e2f59903784338b9d9b68727b90a150edd9ce9731aecefaff5c6123bb07a68eff67b3e258a6e8d2121aa6e727e8d152180dd0c52accd286ab711b717ea87f84e448b6ee5191fc49c5d6fee38d9d837e484850fb1831a341ce26a7c8ed7d47b386a5e3ef443219ac518d46059ccd199056ec7bb0aac029841cc2d6740c28e6ba9163d6b0833d62b4d2d43d85b8812a369144e9ebaa35fe244ad29d24450a26ba2126b8a94d8b233d44b3aefe2a8477d0a4ba72095eec31561864cee4338c1712419aaf4e4c9eb3c460a6a998c9092654dbe9c5b585418450c575639484d6f0896b2afe2179ea396c8f1b1b7ffda802337cbce96e33e0027231c9fb9bb6923793e4fde929d0a93dd03012f94c6f0ad12c02d8d43bb480ea3b30839ca0799c9c6f1ebd2d32f11bc19925c6d801ebb6abb575d0db6a5d0abc3b50a19f5fc4c86e17f6a32734b665f46c8a9d96f338f5b7232d91ae7360d28e7d50e06a9222eff4a5b451f113efbd137c1f181a5a4c5723e47aa5f3c9ae7dc73b4b92a67786dd6bda0188d968e9ce13e4c751ed8c36b43df8872c58c49476a0ab1ddac5ef7eb066ae1064d58bf46f3d1b8e54f2c532f30ccbfc5ee3f90d7e6bc582bfacdb8326e78433d237074a85cdb50f2632a0d7be7c724b33038fa0a5032814574b7389bf82bd0e7f8272a851cce703f877d6e9d15a748405bc8d681a5653db1ef1e86f92e6ac20fa8a1007a6881b448e738b50fd8cce8f85b042d1ecf472692a4fd43f10aaf62821a3449814e1a512783a0caace03ef1558359ef357208877256bced98d5c3fd5cf80e4e0ef172a0c5556f4e5dd56601df1d1496c977b34305fe7781dd7714ded0af8cae5e54c1ec6633a85a4b408dd25a29befbcedc3d219886e6285855370b43db8e6eea5a7d4c439b77465663a59b4bcc9cfa952c9dc4ad5aa02cfb0763b308eacdd9dadc94fa08314d132892ffde80e3c9a80fd474cd2452377c8b2ccb162b2cd34fba13656cc187a2d2a295dd47af66c03a4878cb129117b58145b8c76ca84024550748bc593def2d9b970abe578ee2f41147593f69c5a6143d7f5eff5dc100bd22c9d6537de0cfec96fe18e4e301c72db0c165d742503736ebe969c36f10bdf5e4db8204249425a90e0b2562296b89cf3262bed488c195558dc18c0e16fb3c1aa735a8b93248cffdd7e9daf8b9f603c60c4f6d469b092d956af6cb136ec7950251f4d2628f90882dbd11a5115dcf385c15e6ceeb1bdf775b0ca827cbbf1c2c5216276f5ec67470356ec179a3fbaf8d75d1001c192227385de7a38fcda9f9dd541e6f3b43690f1aeca9f10d65e57415df07eccb1ce320c6cfe3e7cdf85dd35bbb0558a9b900e5f2eeaed69a82aac02fcada88bbe0765ba43260d96ecd40cb9ed5d5ef357737f27e5c12886c583ad5f750558cdc9d87271545a0ee52aa2521ec1159c6d20ff66d089f767ede5351bc2612a75bf21d323f16c4a80581f3267254a6850677a41107a00edb28f0273e82aa4d76324b36cb0a8402a7f05eaca11f2b18329181d336875bf4d059df07b44b1e6b4d1a169d51b6d6dace173a2936634f8658dc38ba0340a044110a51275dfc3286aa051bc4c48486be9f1c335598ef3d9e8007e802797aec4c392e26d57f819167cc6b29d959056c31f3fcd6e962bc7134cabb1169c2a4eb5c5d4fd61b14c0d8ab4d16e5a376e4ba601e453be7206eb47b74a2ad214db24a3f459931c27a3d2351e2bc2c32b2ffb78e801048bf3c505f76064ca7bb038f96e700bcf89c54111cfb9639ff761a7c7c8c1c8d14daf85c842969a5a1dc682deb536b044f1ed3131523a6248788f0d0a1a4ec7b5b7c764daa0be0be10489e246a0f7e345aad67916109a6eef495400d5e935d486ccea939fc4ab440b599bce1b5b5d6643a5d3851ffa9956afee78a0d1919d0ac9ea3344dcbc477e65658fad5cc1658dd0d7dd26a4d968d437a4c778ea6237bc69566ab57fe2c29cce046429375ae66fa10c5858579641638d1c298780625413dc14324f011af275f842f63ce62a5c256f427e998a2e65356af2034cf5f23f8d8a0ac138560331f702bbe6d35748ed386a2d70f9855a07b8fd524341605d53d332563bb60af8f15efcacc411c35b623309f9d1aca8b95c2ee957ef19fe4fbbdd4bf0942f2b878d2172cc6d4769944766c81a6cb36b9c1afc33d62acc7dafbe72f4af357bfc870152f81cfb29273bb5b373a85b16105a0b902182e7ebf583ce036847fee0a53978fbe1f97d2626bd9fb7df9eba4f2b99d1d4e6b1ae1b1cc9f9ea2f5830a8b2069a4719704b27ff0977db528bf8576ab68d7fe6ab01306e25344bdb2f34827804ea386b5aef2c7958fd9068ab99ed3a770f344528d68d829611958c1ab7f324cd63ff63cfba82eb923a073f48bad98aa00e831fae0107d8f54634d195854c8a23db55898112c696438885135565841305b0f9d885183d49a9f9ca2368a2ae17edcc2b0d1632e4fdb3d719b6f41c169d50d28a849a46ca8d5c29dfcc0facd9e8994256fbb10f8c0763994f712f5507934c59193c9775452ebaeb27e8084a72a0d6dd77984e07a9c184d8d86074b16ad1001011863514dd17001913275417a8b4021e05f502714d272b04dc45d570141be61a3cd6990f0bb97f14dd76482abd21617866b1d13dae3dae860f656949f70786f42d3a20666f2c69d02530742c4bfc00068b2afffa942c2491aa720020926a33d2fde912099ff965cb3853f919adb527a55367924e38c5eb35f7586eea5b4d807214e0cd31d4b4882e7f7e2a38a8e3376ec379f9d7b57659f6f86b1117bc488fc0af0ce3422f058656b4d17ff473f1f28b9fcdcffd50ef00c54a576edce0bda874926afa0f8507e1bc62587f3352317f5dbf449726a63010de91efc0f02d51c0d10f2fdcc366bea23a7de603032425292d373b3f648e9cc9ebf4f6fb0a0f111a212c3d535b60737d8eb4b7dae7e9fc1b3b464b58596c78a1bcc2e9eaf3f60a1a1e21232532516777a9acbed7fafe0000000000000000000000000011243343", + "result": "invalid", + "flags": [ + "InvalidHintsEncoding" + ] + }, + { + "tcId": 15, + "comment": "signature with omega+1 hints (causing a buffer overflow)", + "msg": "a511000000000000000000000000000000000000000000000000000000000000", + "sig": "18709799dcc45ca1f651e80d568d161b11969be6589a807f12bcaa855548d365f63b056d064732dab6c75adc3f4bdc91e73d6e04b0011e753cb41ec5deb9c937033ed10925af7640552b0f42d54d73b065892e16165bdd3968474306a56af0ecf716d63a020cf7411c6b24c5d0ffd40a55fe8e7b5e995449102516b2f33ef7b0353276af286c6977be21d79aa783c2843780cc2fbbf267b3258dfb26362d7247950ee3754625504cd2a45b2e94bb0352c4668c5c79c825461dbd46ad17a50627fa64ef9acab1f581c4a39e9a29c79bb133bb0a8e218b0683470fe7b45ec979c3eb577a434eabd0535916160b8139ab8bba2daf49512ec5415fef752fb8993d15e91fc30c0dfc5f3633ac6551ddec734e4317955f57541f1772c9b979955ad7ec70dc05b5bcbd94b8da25fdafcfafcfeaed10dd50f8ada537769f0c0e8e3345969be0bcdd3d8327f19c81cb814b2213bfb611096eac254f3a50dc322a98ed936fa5320248627e2f27c2173a09357908e6b0d4a1ca69feebb8243c95584ea7ebd0bc76921aed90624192256b588fbd4a8b4460fbb2c571b1a1ba0acf123f50afdbf80c88e2a17a2cb63b9f1f1fc727b4f9ef162de0743e1b875765216cb86ee4bc5d90ff29c2a0f0df3c6beb9d5553fbf77994810464d2a5b7660d6b56814d15933a5d30f9ed4b4e16dc136c680a641eeae384e1599f362e855d7b85a639136781638528bfa3925e1de0045678e3139fb61282b66e1886063d0c53e3e8d6e7d97cd5a0980a5cc0a8b88e008f6bb0755ff57cdeb02219e0cf7cf2fefa700437ca0fa26601d31b3c1c9406a6fa37137f2167398b0bf8762b1062ac20e7f7292128b84a9d8cc41cd3c080aa9dabbef487aa0d3cca5c1643cdf4baed0d910c674045db85063e555c60cc010dbded3a5cfe291b1bd3a755af17b03d950944f164f701f0dbc2ca894be28bc1b02a642bba7fbdc29b8891acda6d13d42519641eb704cdba93c8b43069d686069be7743e4c0a9ac004f76513be6bfdfed26ca464e6aa9622ee1843a4bb6073d2e010bb8a39b286ad8e5f8b6872f0e1da9d3a6b122d797a9e42b91680e7f8b799af2fbc0e3b2f5cf937aecb198bd8a61ea957fe1d46abfbd580d9db5ba999007465b92c8fff8dc30c4408add32d3f033ba42d156de5dd0f8c715f9b0df0bccb79ab9b447d678253bdb3d0cd872a50793f5cbba19a9c56c9f60d132475bac91a5329c0507d72f1c1bfb5ad3aa9739b934720430bacae3695811787bcf746b7bd417c31f8427304ce58f2be7ed2f838fdfe75ee138dbcc3a20dd69b81d9b12cdf1363d06809aef6778889a716c01a5f645344f892d5edb599834e7dcbe3036bbd809741ac20352bc365ea6326d93c39605f55d00b3ceb4296478e6659e8ac709a76b6bcf438acc86497e36f22398008c8e7abe1015c0d7314979e1a92557e9a9ec844cbf1e3ba16b01ec0584551c27ba3372aebc8d2f69f693f13370e098c6fe93b951a187b4a4ce2bef75ff526d3ee7ec0d6e9ba2152b2b74f00d4cfe9c11244e01477a71aaf46c2c57bbc11fabb63e7e9d17d9d196dfcc6334cce999e6a0e214f5013acd2a9026138d61970fc2785cc3927fd349c41662b4c4c0de0fe15fa370deabebf80218a7483b229f45b11b147ac422ad02ae555c84baa44832ec30d64ea45e9c38d2ce31d5f0dee8f48a2b986f765607ec16aa3eb85239af97c5f0d3ad427402baed3f356f63b887d8ff64ce717565cae4360739c0a47b630068d8f9f0415e6c88dc8f2005a4426b53191eed91e0aedfbb3e25617aa2e2279948689e0132a3af96cb9b7df6b9ac486f99ff652494e85723337addcf4c4e6753236f8e4657812e081530371b04aa17691637eb88affc905a3d30b5fc5457462def41d0f7edc145658c48e88951920e215bc86514afce71ec6e090e25608a013dbd32a492ce493e2e74d79d58665fef85918f01dcc12247e394952dcb6360242e353077afe6e20b78191e91aa591906c594692c7a731bf02b672637b870d1024c8a7267a0a3e572a725a97a78db4a1ed9c8bca2f52acfebf90f1977ca7b6d69262dc01271fa4e8352c8614613816290073209c67b3d0876c93c6ac7c4dca5665b38ba86d84ec5551ac3225f67b08e0a35003a51ea865d8c3ceca096f72c2381c38988f70179b181c8a57700fb7653a1dd6bd7c42d7b92e563196eb3fef1a5980e2fdd4fc89a805c9c29124496d8bcde8248bef8c0335c1e54d76f3419a019c7af3f23c0c68a45d6b6eb26d0fb0a1372ec6d43191fa41fa28759f56ad9ed895fd4d56a87f7c3d6b236fdf471ff29a5f83605e9a79e3525cce3478ca75d6a580935b538b964c2b2e08b6bbe1382b11762ff7323734ce0de182d8ec3f03c65c6a6a1660f2903f8067eb499ce35e27a8a737d5f032a97660cae77147a1d4d43da2e17db858d77303901aaee987e8758867d1e9e1630ca2ed5318e315dd0ea9d7770f7e2e7a0f880a8b0c86b55423829bd80baf8f23e74c23e5c64ae28e826f68235b4c4a7779d3159de7e92a0df5ca24f1edb774b8e5e8aa5fa8823f17a3e3c8e4abbb7a04502e8d1cebb99a37230e81bd88a7b75e9c2ee22885ef8325d3c734a3a6c5639dc184457dae5449b900784487f2b8ce9cb512fb8fab69df372a2d5b1d5b61ba99051e3748bd01addc76c40f47fd5bec4375a09aed1023cdf7f8607d649f7e9c49d43a011c276ca815bf350cd3f3ad91c1b8e6cb14b263ef534dfddbaaaf9c64c59bb16b73066f9f09759b62b16d84217e47aa551af7e9dfb8a356669e3c8352d7df39730c38afde654b370602b87ad2776f727964f3fce4e2ec6f3009a2137fcc01622cd1f11c112f1bfac0cc11181730edc469ac20f389be2945c6bb0034270cc98c3600f17846fed5fee6f6e4c6d50cf27d8ec82a35dc1be595890382a5a9bae194a88d687a52be8913e03c85ef885fc2fec92a342eb09993fe010178e29dc090975bac92bd7e678b03117cc2bc767d355249b1a0646f06acb26a7b573ce9e03d577660853dccddf1725b5c651297064848df37395746f6977411cb9b3ac66b1117879945d429ecb693f94d7a63d9b2dc469926b8638fa67b79b964de0d70ff2dafc71c4c7edc6f61a408837afc7d9dd793ace8310c8f9470aed0f2a63459ef23f95d8724139f4c122fe6aa2679a1f6696ce70ffa59942464380816bb38f286c9dde8ef27a9646dabcf8187a76395ae90345b411636bf27472b59dff2c1348336ec0ccfecdc1415c7f62a27c63ad9e32abfab147735d3346d2e0a1225414f5456656d777d80898da6b8c9cacddef0fe0821353e78808391999eaebbc6cedeebeef21a2a2d303d777a8a9caeb9d6dcedf0f4fdfeff123d5156595b626b7380a4aab0b5c4c5c8cae1e4e616283b50", + "result": "invalid", + "flags": [ + "InvalidHintsEncoding" + ] + }, + { + "tcId": 16, + "comment": "private key with s2 vector out of range", + "msg": "48656c6c6f20776f726c64", + "sig": "19831aa9c40124c5bcbe9a65a6c0aec304773b808a980f6710fa9f8f1cdd50ee5618950565949784f9027ce40401c594670b8274342d9791113c50c8d522920f7da90ca0c242e0c7b64cc6ac4acd642758baa4b714170e60c08ea892770eecd357d827c57d9258a59bf3f678b89cc14d1d49b5425578a3a051a209ebd11c279b0cf661ef50699e68bc28943c418309764e39ad2aa3bda87bedfd85521d9078b020ef158ae1c4683e67801f0a60eca41c7bc6a60fde9212e6095def1ecb5355597b787807ae6f4a79b4a79c374c84772438ddb33e03c1991c53a7e92e58b562d55e0a642da04f86fcfe1e142bb0af741fe78143c83550a91e6a8f2a7f2df23f40d675ed7dedb1b4cefa88f4d926659a818028a6a7c24305ef4ea85dfa99fc0487ca7b61e098d8e8d62b48a03e54406a7b47bb7f0ed9499f7b649e141dfb43f7e16664f7844add4cc784d4fb67ea1a2043b65c7450459aa435c52e4e75824873541c0807a33134f56c217e62956d98f56f60dbad96fccc07ee3ed66a374c44adb353044447b55d6325127e335ae783079c6602bbe06dfb93d61c3f8d3fc3389b3a28b48f2e6874ce431ea0c28bb1b9f4de038745dc6a4c0ec6a9dc59da14f57981644fdc5dff5c8c6792014a24dac2bde3a136125e77b8aadb3d10a08783e573a278919c6d4a9dacbd83a2102eceef4a954260b2258e2e7a0f044584f2a645b0ba34b24bc494a2141d55fa823847b7dd7babf0a0a48e0d2c27c27c9df453e974bbf792a54e73e84801b009b2cd6744ec174fd24aa1eb16b554bb57a3f2cd699654d93b6c7e4c678076bd25cbd18fd7706e595c11f7c3bca44233d1fb3906fe80b5993ce047b92bccf1b81989343f9ea9d6209f57ce9e4efeb28b2124ed20b943271efcc84cbbf823e07cdfd907189108cd527db86bbdfa354b582ae2a7ecf5af12583919187de1447ba992c93e034c9fcef5211c0c18823d8ad2a28f0b515426affdd8858a650aaf191a79cb40d01bd4dc14f9f9049eea66ce2def98ca9a4bbad1450d5c38a99c3a7e76a8eadb8ce23824cceb932c03aec6119e6dca33c001f118ac3dd2e7b947c4a5539955d29a9d7d83c41150a3167653c91d23a1601ec1a44a9bd9e62663131f3a0fcc2353b0f7d49c45111335e33011c6fefc2c21ea7bf8394761cc563f5446792ffdc03c38398720a493b6a80eee1f95cc4f8e86cb639c1da63bc6d17f333536c4eb7564d6fd36d513b322b605ff66d0ba36ac0f851362723b13ea791f576928a868a5a2e994e11f70c2e575ac79f602010110cc28eee7c67a04646ca97df6026255e7d8fd6f67859802f323b33d56cae4c96a36d5badb40ded633809f1e9ddb03a60e7c5ea3fe1bf283ea53df576a49f150bae0ac538a1b737a906dd521174c467f525412d7a142eb5e6c1473b865251d14b1904bfb24b70fe7e7e464143f64a13973d41ee983132f6b425c722e9e95205a93db8e8e7a35c3998fb3143424d5da07d1c9708da0aebfbfa37c61963bd96443af0020dba5a009d3a35e4f555762746039e63c505ded934d19823783127b2e611017f3c14a78dddd302a811010c8ccb81f1148e38bc879b992333624f1d67a5f3bd8b3eac61d8b4c8d40e4e7b6897524a7f9d3e4d8b55f9252dc1d0c428f274c4b0c48f4db0858779f16901855f4469c1d94e02ae66b23db961b60aa769be9d3dc2462217703796f75f2e52eb9704d9aa4d2cd38edcc1e1844902ceb35e72e1e3e126435de3a4da0c576ce6d7f576b47697daabba7f3bdce15a88f40e23b8774cb9f1b85c6178ab7e190d2c7e6205d7dcc93fe1d54bee466ab4f26c610e385ee52f99c7357de05f1542d0f71a8cfb5b46b515f076aa31d797a43f4d8523758669d5ad365f9a6925427d2269847b53cd5420b6aca595b82f56a020bdb466ebebc469422dcf2d4cca88599a1aa2cfbeb3149e9f32b4dba69811d6e4158e2cdda48eedc0c1291a21e5ea6ea4c9ec7caf5c267dae419f6af219001700cd679493a94b27e4fba6a4a95c562ef48389c2fc062d5d165bf9b605f6fe69eaa95e9cb23d663523e2a73e8c1528533fd8239502916e8aaec427ae82f38f60dc2d1b38f398168432ea63c72e4efff8c94a82314545f1f45f66984ace3a9cad7aebc025312ea57cd7e5151e5e3a7bab0c7dc4bf0a1362702d43a98495cd39e494f1a7f6bfc78d873a8d09205d9b1b8f5b8bda83d7a2e9c2af3d77c2277b28659d2d4adc1b97c59c9b1eb3e5d98617015b58940253170e4f20430bbef51a25b3e3b38df8fd8c92eb9bc50f3ac5c5444615045380f34ac9015556d86cf79d5d0c99c2a16b5528d7b325c25fa08b19dbb1a78eb1081e13ea8cdbd92de5852d5593d15cef2233bb57788a34eb954d2efca3f1f185eecc98fc8f7117f233ebfb27b9a4d7e227db583a8b15d2cd0a98c74c3415262839fc11e012b1067e312acc855371abc807d597c67898bea9c28b3e30de6c968a291124a78411fc2a5adf578d423f77ddccc814ef106ce19a5074a071853defaca429cb2ccdbf304c7570a94e10653a14abe479e854188861d68f04d16c7c40f19a7312a5399dc679a792005967d5f2103db5c5bf8a7fd0c71cf63af0b4b244d54744fb07e303a91580ae37ea8a8aa2d380a346080b732c0a1ed16654d9367b469c0eb28b002ffcd1030a0f2b1f21f2f72c050e830163f3d2903056b56c5c3a662f03ac36ab2cade947963ee9072e73ee53dd6200b99d2b3317362a40c5bf58f48f680a045de0fdf2d1a9137203a1f200b3d95dee50e58943a4856b699f5c8c64ff43095184f6e582d11afafb4427d738237738c2b73b42d148396689f1e5e08ba948eb2e66924256bc93135d1e1855f7d55048d31093d0f415142890146477c6b1386e0d3db780e657c5064ea64912f596883734094537bc2a5123058efa256702bbaaadab37f4fcaf1fe91f1b207f563ef30a2fb24630404c051e84911c8597c1fdb23b8bf2ad1fdcf0914db198838c2dddfa11477b01dbc6c348d632813644a259f220b5fd4acf9b5c23f5acb49439b2150a2139e4c0d2c8437a9f6a51993e8543277d9ee861f84b252092c5cc267ac62c9f6756a6b1b5c79368f71c3a32fb10e8743220bb6fe1a02d1160c7a7a68c309d97812a5218e857e4e4afbf766227aac62af089a9237f88af8695d00edd3faa1d71bcc714a8d59cd1691cdd5d4b85a423102eeeb988d011063ff25e74d72a76bdf304852b6ca61921b545069ba293a22827b2ea9402a2af56eeaac6ec7ecf442a058ac993718fbf6070f18273e4562799fbabfd1ed17203338445f6491b1c1cfe0eb0c172c3242484f52575a5b6074828f9ba1cdd6e0e4f312222d344a4e51527f8bb2ccd5d6e1fa000000000000000000000000000000000d1a3040", + "result": "valid", + "flags": [ + "ValidSignature", + "InvalidPrivateKey" + ] + }, + { + "tcId": 17, + "comment": "signature that takes 1 iteration(s)", + "msg": "0300000000000000000000000000000000000000000000000000000000000000", + "sig": "6e31f001779621bd5f8c7a7eb13b7ba623e783ab5b94a0ae8abb8e1168a75d0e2de3b82743bd817fefbea4be190bcdeea93ab74ed267654581c2abd61feb8f3258ecbc86b397ef2cdfaae9a696dcf2b479fd5296c190a58cf71efd5f040e076f07cbb5cb54de0ccfe09850837ecb813d786708aa26af7eb0faea34ba4934b6d48dd16428910e2cf20e4ded7fa4953d4fb38896384628763a0ef7cb7c81e80e13e65afbf774371e87d4badf737dd3649bbb8763bff5a123d1be30e8d6481eb2df2059ddbce2610039ad4252fe6624116ca54eace1c0155f833b2c3cdf94025d8bdd405a7f25070d6da657c2272df9c9e96800d06022d6aacc2c322b1bcb36df0cddd47aa105dc59cb763587136ee1a645b2966baccb811465a573678b768a5a3c377e625ba5fac68a52d3d0ba4331e707e76a7fa00f35746d5277da655889bb5c327889dd6528cefd174fefd2521e800fc63a559d4a475c8a846405b585b044f7f7b61be37b2a8e93c6a11cc5b77f430c5f5975b40873068882eae271610dbd5271514884b874e1be10a65857061d90eabad3bf23a35c6f18730a6d13e60740a270ed6046dcabc17d3604ff2f27053154ab103af2a9b723fc6fccba639d437f1bbb16c7375b4bbf5222969efe484eabae7122eb7117caf949b1b50fb54ac883a15712d971f45b2eb1ffbb17053df951613e2393e720d1db123bc591b264a138d0c7ce64c753eb05b25a035e48338eb0c830277887b08a83a601e0bfeee41f4fec571859b122b5a20127aecc5ae4254cedf9d648d9bc2f6910a799b520b03ac1b0f743a01a4b28d3f218a52bf09f7f25203339a7e3cf781818a28a67beca3e18b9290f15de19bfb4aad262ec5401519639b7b1d08cccc96987b08cf847ed845b48c1bcbf07880c5d5f416bb60353c20c3ac040ce1b9d2a4ef9eb150fdce3254f73fe3f57f71f83e48c39b399d3f91d75cc95904f0b74bba2d00897a9bad59b565da48e0eaa0de6bae6a30eaa9842af061034cbd3c71451038d462e4e63353bc644f7f3b1e253eeb1a9517a40aea498f7c9e3053a8c737ea8d68bddf2e9ea2d36297ca2563f672e6099e4cd0b7705ed775025ceb8218fd9e42083bd53eae49a66f65c442e50e7dca7b97103bfd6f7940e0d6d53d683a20aaa0fff2d2f71d387142757467dc72bc933864176b81b98bd1cd8cecfa65c333cc6fc1aba8020136eeb86862ebc9b6d6e27197e30a57b8143145c32013dfa00497da664f346cf2318d11f4c2ad61a759ac2ad00c74660918567fd6fe50a471f7e08cb47c514d03702d06154f42515b211f71343b4812303e5d4d91e2cac2742feaba5d6b1732c8414210f12908d709f7011f59dfdcc50cffb7205261f832097e6a4568c8a5a7b191f03bed3495e152564e127b98b8c3c5b070c69b8e9783d54835ff5399c891d4682cc3a24ee4260b397773dc74b3dbb88d3c659c33fc8df85ca3fc034cc28eba5efdfc57cc991acb3475069e7978e5577cc7c7a53299ec00a84a019e4f3830c62ae441f662d5f123afa9254def1dd49e5c6aa62387ca62585976d27d9e39c4273aff14e9dd1f2d3c8d0d42930c1bd7e08bdc4d63fb5760805cff90b7e566a14f75a98640a4d5d851d230525d71cf138c1236183088c1de31ae0b4befaab4df06288de201bbbcf55fc123f2570fe9cd3979a1eb05dfd9d985d0e4e35f8b56d234b74693284ab40051c9a838194dee6ad280e8ecfefc2e88f2fa35c68f194ed2595f2d8c9fd0b8567fb81be71cfbf371f2a6f05fb1a81be3bb3b06cde75de3d298874d23d7fb39b3bc37d33654c590226bd6bea9b9c7e82bda342a8ee4e70ce48167412038e2c3c646aa9b8d7b79ecc255a6f9fc303d32a010d015f8b7326946f37334f9ee082941613dee4c404c5ca25595d1f53f91f316b983f459d023e8470e55b9f87d6c2041d4742a10a75a49b88f2c0243f39a8bfd9dd1d23b92cdb91ab21f8586e37bd35a622600b914db31545a30b3a58f03534bd7a662d8f10f4ae53062d55cd9f73dccae4d7b6112adb83ecd3a6d756fb8636f9b7480bb0a4ca081d6ce471b03b772cc8bc5b6f6d180f21318f2689975910eda801ec52ed4b450f20b4717c54f215d868a7b5dbcba470e1ef2c654b2133bd8636381f7b2c226683c0acd07d79fad1f5953633fbb09b238b83ee6aeb36241dfd2556677ebf0eb9f18a8c65a47fd59fc25d7593cfdb751120fd8b45ce0eae59a210d679c1b8b57a008cc883b1ececac9ea0b5d21452ae3d71ad0948bb50168b716c69eaac3ef41bd96b37e25e3a0a91ea11a51bb1f0a5700590c7c165f1cfbcbe7584d30c2345262f980166299f967dc22c86a99fb639dff8ad066be0434ed37eb1025a01033fa85bd9ca641e0ac565a2c514e22a928f8045d158e6f5f7d1797741f71387d3598f27fd08fdec8e1aafe26f41597f0733f40323ae8d6a261bd061bd2bcf13b3d178fad6a127fc1a8863af4e7f1839113319db5f49475b36fceb008216c3c29224b182c18eed6ae36c270e2a308de4aa92429657edd603afd8c8ebd1eca35b020b6861a0bf61fa6ce615213900c49036835d197a0d5c58dfa614752f26b8006c05d897b0b0b7e3ac2b89ccd411b2a47d3fc68a196cc43fe356eefd5de8d150eb0b9e416afb46a9ca77f691d9173747a2e8193e7647927776d27f8b7f64541844111ce877cf7ff6e6d5ec9d8fc36c4118af95036920f7e04d3389098dd2b5c51a0f9d3f97d0f434928d95844390febc9215fc947eec60232f499555d4fe99bf74e883cdb38a083eaad21b6f89537d5b0de92ca1851cfdd79d13d635c459db85bedea78ed1182bc369e4d3e07c7f75cf2f1f2d797747b8c8e3b0e493f80fb32e8d622c853b22715dd8b37b8e68d9778fbc1a0faee2b5a25e868e35528185a18f607cee89464ba46e9da5b835f66e0ea6314297d0259074a1327b416b36b30cede59175e32817ff51f32cd5df899053e88d326e3409dc0a46f42fb0a0b60bac2f8a7b28147de7d282d2f80f46ead012bb6c94453f4d68aa45e5e011e69f756ebf94d970f99c1d40b45ae9d2a311a711b7dd79cd8e373d2deef996fda1b6eb5387ef6e2036933806581287f93cc09f30f9941d83790a91713d71b6cdd138e965e884553c4fb717168786b685e854e60c1820ca4b83723528040c17b2a1f3175794bea7a63a9477070c1db6ee80e0a6e26979c495701a2e23df40bc471b884df69b2a08620ff7201bc1cea33510bd98062b84eae46836fdece2b31e09b1d6698546474171929e95065134222e6a6e768eaeb6d3e5e9ff032636476567688a91989ed1d6dbf71a1d20215f89b1c6ced1d4f1fd0f114751536d787e89d1e4ed000000000000000000000000000000000000000000000000000000000c1b2834", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 18, + "comment": "signature that takes 2 iteration(s)", + "msg": "0400000000000000000000000000000000000000000000000000000000000000", + "sig": "7c00707404935762f01931c31df6538154d7ba45ca80ada2e39fbbda5b00555a608097fc9641d1beff771c8a63c3de02554e7cf6e7119961d54d78a7bc83fad3f3b9a30d92f25b715bccc942217a91acbd4badff91dc7b8373fbbd76965f2c4ca34d13a40b41357b3a614cf303cb6164c1307f87abf601ddd14e66d845d01df336a7a3125b3b32d10c3b096bc527dbd41f140c608840e76b7172d0d15a68e00ba2ae11f8d417d55ba3534e10a4f2f0d01c4d62bac0f138b6e8ae52c0c161259cff609fc94d3dadbd29bcee5d299e4b245114c7f94cacd0189dd65bf7cb86508d888e072a575d15c4f301ac0cc589b4cea2a2ad7a39f306690326d4f44d4c5c62cb4146ab66a832c28acf5835edacfafe197e3b9229f295ddf92f26b98e593a4e6e39d87f567314ab316bfd33d13a28eca1d5929356a52b4da83b25322a1b5bfb8c9f3397bea4f3c692b7f9bdfc6ad03b2dd9964929cbdbc83f41e5b866068cd3194de0ab23a6805642ac1881e450173f4421db182ccededa87115734ab6d34ec428a300b81d5a2c21cc4d1d317fdf9b49ed7dab01d0ea8ed2f4b01b65d67b74511efe59c6eaaa7fd3008ed38eba02a1d8e8eb85bc288f01eaa2133c4055199b176acd6f2ddb0292041b460a9e38aa417399c0f3d5ca3086095aec024d7e0804ce9bab41c7dce6caff3733fbabb9f7f370579ba06b0d24fca61dff22eb1d998b9e868c3662b74fe3a68baa1119e552853bb955edb371ccbf3946532b39c90cf914a524fb4697db93ae3b867871ab5c0a6f231224e444629bc6fd41c438664e0a18477dd29c39a5eaadaba47c337bedfbb7b10559c2284fac3451f5e4d67031d22339992a75ef816d4bd82701874d1686feac681dd54e54bce55d1553add9679a0cfb9af02b4052aa07df3ae5694faf0b3fed937fbc4b79b28fab531edff6c4e2a3ebfc26b70734c02622ce581b429636b59ea7a8ab0bc60864850d5c1c842079eb704e7ca7379bb32c5d2b00dfdb658b6b97dd9e9e104f6ce8b3c898d82f5136d14ad0441e84c06284f2ebc36b09ab1aa63b79869007e6748508d5996a51019436b9a12748493adac9222c30524d0ba4eff00509a7288b79759425bbe75db7e917132127951d1d6b5e857c91afe24508072a963b65fe0668d78449e6c3b201363d31b5c6868269d6dfb318740ed2729ee1034421ff2da2645eaa0de278b510faadf1125f3dafcaa3edc975c8c284e5b4c0f0ca018ae31d630ccfbc8dbb78e40b68ef138a6f4936087cf842945681c23a388e7a48d1e80c02b591eba29c21b77fb23731f3bf45deca5f2ddc795ecabb027c08b07861b4bef35cceac0c8d7f5ae3cbc0fc5663fe29725276ceaae1d13966d5abbc470d351d1eb62e4735393435ea9a9220a426995452021714c0f0180ef92022605de413fb3ce4c1e227ceaf71ab6cedad6d014285e92af6562d709a566dfabe7bb6787f307211ad5592e2ff908dd0043a9342906c317f921932ecc3ae90c45eb41c177089de6d9bfd835767b0eb48d41bfb3261eca272518cad016e45569707893c0dd58613aac691c82c6613e704fd6f0dfc8f525e98a1f8d09baa4790c45876113fcaf087ceb8fc51936850f9ac6a33e3c5c3bea8500addb7d53c2ba8dc3ccf59643006abb3cab5761f98fdf02462ba42a2cd011f9c667450921548ed556199614acc2729f4bec871cbacfabdc0ed7c21663199fa86e2fbbb9d5fffa07c38c1ea282746ef83323b5c5cb47e02345cd7f75d1aba7927dbc1daa75277d0e863551054c2fc2a47f096396bc862ed64e93d9ed018c727795a1088ec6d497c1e190740496f1a89fb8f091f8fe0153d2c20c478ed755d036b7d75907aabf5cfc5d13e106caa5ea60f188a34b6ab3679926a6aed636c34ce64a5c70866cfcaa3b47c057df7b8e5e613f095044f533e5f0896a80545e903a7a68deaafddcb4a4c576aaef29a79b15d6640c69699a741deea36f888570923643990a9bc376d969b53b0f4e83b18611da5cadc3d816c0df16ac5c31cab50001022cf1517cb68881a93b94e90bfcad6bdb5d2e4ec7238ac4c92ac068772ad587d1f4bb0a9d59f22005d418a249c95be9cbcbc36186f59f594dee193168f09d946a75545a3869835cd9ab3535396434e228fc1eb122f0516b5535f834854f50d501d9895b9aedb4057b420461b65f587578a0d36d991abb0bc8341985fd67f8b30358a59a7663b319447cc976810ee326acb2bf2a4ccf0befbcdc980a8b5e65d83bdf6e7d33d7cba1e0c84f4a426944b534992094b7e7ba15f295e0b9000b0783b3a09d59f97c913c9e76957ccb652ea9afe27503d19b5359d9d506c8ee96a4beb0976a32f73921384036301300ca8700500cff36a7b4318ed56e7c954973fafa2d191893d8221fb50329e3933927d62aaacbddb372b79d84042f33c294254e1db9ba8fcf1383e201e5bde9f46f3cd96f912672ae5cfc3691fc4c2504d71c5a916d44005834f6faea3768f39c2ee5b7d477c050b5db2d70483e29fc9f275abf0643a5fa53cdf55ed22694cbcafb458828679ca987f3212f57d205df91c65e94c0043a4cae627731feecd0ef10bcad773fb5735c27d8513590fc6fef3e87b7d24172996eb606183fef88e1ba52e21483a770358dac65d19b1e8d45587dccb7a93d700ef82d5bc7bd053a57000e3b9de2bdab8b98a0971c47a0ac12077b2ebc6bf43ae28c92a493692b2538000446dbabe1bbc38ed0aaa68e97c48b100f0e9f139b070b79a74eccfffae7df38e6346e609ff2af82349de8e20ebeaaba07c253d4a6962704e6e11982bebaff3117597065ef9a95f6f8301ce4345df19a545ce4bb32ccc2a0ed23a89ab768c7bb23c8be6449b39d1f4b9368b070ce2a131ecf5b4c636bd615849c5aa3caa0dfb517bd9837b8a434e4d8198022104a34a98dd7d69bd921d1240accf4cbec80080c62ca0fc6285f099cffe5a0c1d4f793d4fc55f6ff513e29d6602e713c9a96f19679272da81bfbc33abe4c5ca90e35d21527ada251629c8112998b24e2d0037d35699d894de9a62d7ad80779a00f03d4b080fe693e9aa2ca138218bbe3c1384f158bff77aba84ee7003f931585b80fb6ce0179a246c4dd7e6f1ad971814209be40e15199549f53a58fb95acb33fe19f66c389cbdea8363d7299962eb5eb012e664ca40c888e7ce7fed916e46f838b3de26426f2715e0e51e0bcbb8aa2df2082d8ce1ca4905ea9e66264761c203be786756c37311b1cee8d2c78b39e7f6a86ea607c909f2d65b956a934a020dcf86681b34556b738d999fb0b7c2c806212b2e44456781c7d1f2060e121b5164777a7c7e93969899a3a9afbbc3c5c7c9d5f3fb0a12252728364a4b61636673dadbe7fcfe0000000000000000000000000000000c173041", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 19, + "comment": "signature that takes 3 iteration(s)", + "msg": "0100000000000000000000000000000000000000000000000000000000000000", + "sig": "c022e817dcce2f91354fa0468d52d20730c1c4b46f93fca19f6715db7424f4365bfec99ec722a7b1aeb28d8e98d302b65ebe86219604f8b524f5a55f7b6641a917e8eed1b13062ea67acfdeefb080097dedf02ecce812354a5dcec7e242fde337d609bf09fd63379ccb64402a7ae08072bc2413e2f5a50d5b2a23623a2c9e21ccb78df687e090107a83ea928f1b307e0fdfde53b4a203af164bc18f8896a7d7a21da3a27c58bee267fa21328fb72ca7b2f171e5451d38a44fbd7b8dc1418405e13c039962b6640848e33d42211c2b89d8a37a220a3044d264f03ff1d1e1a7e5f5b5adc15cd40128d75059d6b2a0a8d775f3f173f3e1863dc8e6a335e34bf63eeafae2e2f59903784338b9d9b68727b90a150edd9ce9731aecefaff5c6123bb07a68eff67b3e258a6e8d2121aa6e727e8d152180dd0c52accd286ab711b717ea87f84e448b6ee5191fc49c5d6fee38d9d837e484850fb1831a341ce26a7c8ed7d47b386a5e3ef443219ac518d46059ccd199056ec7bb0aac029841cc2d6740c28e6ba9163d6b0833d62b4d2d43d85b8812a369144e9ebaa35fe244ad29d24450a26ba2126b8a94d8b233d44b3aefe2a8477d0a4ba72095eec31561864cee4338c1712419aaf4e4c9eb3c460a6a998c9092654dbe9c5b585418450c575639484d6f0896b2afe2179ea396c8f1b1b7ffda802337cbce96e33e0027231c9fb9bb6923793e4fde929d0a93dd03012f94c6f0ad12c02d8d43bb480ea3b30839ca0799c9c6f1ebd2d32f11bc19925c6d801ebb6abb575d0db6a5d0abc3b50a19f5fc4c86e17f6a32734b665f46c8a9d96f338f5b7232d91ae7360d28e7d50e06a9222eff4a5b451f113efbd137c1f181a5a4c5723e47aa5f3c9ae7dc73b4b92a67786dd6bda0188d968e9ce13e4c751ed8c36b43df8872c58c49476a0ab1ddac5ef7eb066ae1064d58bf46f3d1b8e54f2c532f30ccbfc5ee3f90d7e6bc582bfacdb8326e78433d237074a85cdb50f2632a0d7be7c724b33038fa0a5032814574b7389bf82bd0e7f8272a851cce703f877d6e9d15a748405bc8d681a5653db1ef1e86f92e6ac20fa8a1007a6881b448e738b50fd8cce8f85b042d1ecf472692a4fd43f10aaf62821a3449814e1a512783a0caace03ef1558359ef357208877256bced98d5c3fd5cf80e4e0ef172a0c5556f4e5dd56601df1d1496c977b34305fe7781dd7714ded0af8cae5e54c1ec6633a85a4b408dd25a29befbcedc3d219886e6285855370b43db8e6eea5a7d4c439b77465663a59b4bcc9cfa952c9dc4ad5aa02cfb0763b308eacdd9dadc94fa08314d132892ffde80e3c9a80fd474cd2452377c8b2ccb162b2cd34fba13656cc187a2d2a295dd47af66c03a4878cb129117b58145b8c76ca84024550748bc593def2d9b970abe578ee2f41147593f69c5a6143d7f5eff5dc100bd22c9d6537de0cfec96fe18e4e301c72db0c165d742503736ebe969c36f10bdf5e4db8204249425a90e0b2562296b89cf3262bed488c195558dc18c0e16fb3c1aa735a8b93248cffdd7e9daf8b9f603c60c4f6d469b092d956af6cb136ec7950251f4d2628f90882dbd11a5115dcf385c15e6ceeb1bdf775b0ca827cbbf1c2c5216276f5ec67470356ec179a3fbaf8d75d1001c192227385de7a38fcda9f9dd541e6f3b43690f1aeca9f10d65e57415df07eccb1ce320c6cfe3e7cdf85dd35bbb0558a9b900e5f2eeaed69a82aac02fcada88bbe0765ba43260d96ecd40cb9ed5d5ef357737f27e5c12886c583ad5f750558cdc9d87271545a0ee52aa2521ec1159c6d20ff66d089f767ede5351bc2612a75bf21d323f16c4a80581f3267254a6850677a41107a00edb28f0273e82aa4d76324b36cb0a8402a7f05eaca11f2b18329181d336875bf4d059df07b44b1e6b4d1a169d51b6d6dace173a2936634f8658dc38ba0340a044110a51275dfc3286aa051bc4c48486be9f1c335598ef3d9e8007e802797aec4c392e26d57f819167cc6b29d959056c31f3fcd6e962bc7134cabb1169c2a4eb5c5d4fd61b14c0d8ab4d16e5a376e4ba601e453be7206eb47b74a2ad214db24a3f459931c27a3d2351e2bc2c32b2ffb78e801048bf3c505f76064ca7bb038f96e700bcf89c54111cfb9639ff761a7c7c8c1c8d14daf85c842969a5a1dc682deb536b044f1ed3131523a6248788f0d0a1a4ec7b5b7c764daa0be0be10489e246a0f7e345aad67916109a6eef495400d5e935d486ccea939fc4ab440b599bce1b5b5d6643a5d3851ffa9956afee78a0d1919d0ac9ea3344dcbc477e65658fad5cc1658dd0d7dd26a4d968d437a4c778ea6237bc69566ab57fe2c29cce046429375ae66fa10c5858579641638d1c298780625413dc14324f011af275f842f63ce62a5c256f427e998a2e65356af2034cf5f23f8d8a0ac138560331f702bbe6d35748ed386a2d70f9855a07b8fd524341605d53d332563bb60af8f15efcacc411c35b623309f9d1aca8b95c2ee957ef19fe4fbbdd4bf0942f2b878d2172cc6d4769944766c81a6cb36b9c1afc33d62acc7dafbe72f4af357bfc870152f81cfb29273bb5b373a85b16105a0b902182e7ebf583ce036847fee0a53978fbe1f97d2626bd9fb7df9eba4f2b99d1d4e6b1ae1b1cc9f9ea2f5830a8b2069a4719704b27ff0977db528bf8576ab68d7fe6ab01306e25344bdb2f34827804ea386b5aef2c7958fd9068ab99ed3a770f344528d68d829611958c1ab7f324cd63ff63cfba82eb923a073f48bad98aa00e831fae0107d8f54634d195854c8a23db55898112c696438885135565841305b0f9d885183d49a9f9ca2368a2ae17edcc2b0d1632e4fdb3d719b6f41c169d50d28a849a46ca8d5c29dfcc0facd9e8994256fbb10f8c0763994f712f5507934c59193c9775452ebaeb27e8084a72a0d6dd77984e07a9c184d8d86074b16ad1001011863514dd17001913275417a8b4021e05f502714d272b04dc45d570141be61a3cd6990f0bb97f14dd76482abd21617866b1d13dae3dae860f656949f70786f42d3a20666f2c69d02530742c4bfc00068b2afffa942c2491aa720020926a33d2fde912099ff965cb3853f919adb527a55367924e38c5eb35f7586eea5b4d807214e0cd31d4b4882e7f7e2a38a8e3376ec379f9d7b57659f6f86b1117bc488fc0af0ce3422f058656b4d17ff473f1f28b9fcdcffd50ef00c54a576edce0bda874926afa0f8507e1bc62587f3352317f5dbf449726a63010de91efc0f02d51c0d10f2fdcc366bea23a7de6032425292d373b3f648e9cc9ebf4f6fb0a0f111a212c3d535b60737d8eb4b7dae7e9fc1b3b464b58596c78a1bcc2e9eaf3f60a1a1e21232532516777a9acbed7fafe000000000000000000000000000010233242", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 20, + "comment": "signature that takes 4 iteration(s)", + "msg": "0800000000000000000000000000000000000000000000000000000000000000", + "sig": "b4587cd1d9a27cd69d71a2d07bc27917495217b8b06d0ea752a26732c854d3b924061a895270b7be3a35d49e521f9d0516adebdd70490c3cf1538f8cc2fb3279d2cfb4ea126e1d413fd806f6728cea61c72eb445a6e5a36d367de3a8956e7494ddb5e285e257bad7757306d77c9986c5acbf44aec64acd602e976bd2b4e1a9542fc677b8f2d82d0040dc1f63d4c9860dc8cfdd43145014883ee770de008bdc168383c09448a68cdfbe5e977e6cd776ae102e02f3426952a3eb14a1f16427c84660ee4d1daa6123c2361849adc66b8ac04ad47a685932e58ff81af5620787e1f4adb29412c1ef55a139d2fb16a2f34991043114b7fb6cb6dc381976cf1469cd6b87e07f49422c9518e3da627e1de1f4536864ce8288d9fcf76ff52581f3b3281e21ac19cd63d54142e9325273994eb4c8536b9e27bc98f31f95ed02d2da5799513907a676a005fc307dd99699e06f6e736f83661fad76432fd8afd21037fae86f058ab32be51fdfb437eebf01bdd969bab57cb50b64618815e7a38a55f7c1597ef7dcf93b247899a1146caeaf1d50601020bf8bdef4496a1280905e11357250a9aa1939d4cd509fed52de704293ed35fc35025f3b929a0cd43dbeec429293c2429668d2f8a74ca0742959663711009687d77b8f589fc66dd0a71b435e9a097f3598861083d50ebf16d22bde8e233fff69ee9bc5d188b9f81940594f749bf27e16cf38fb205faeb64eb668f47bcbcbb95019e4c690230f8a703a9a434c526880c898060b443ebefef92d49046e1031da5b9b443a037cb4f5af70cee8502a2163a6be49504191770c1a3cd2a32c15dccfc91622f4b297d63625a0e94b874bab0431401664b473c5c9fbd34360a86f55d2d66bbb28b051e9d39524595f6d94869d0d7a23d704599280b686f350b45631efbbbf1b41f7a91d63030b90fdd8540d26c57db902181289044b045452d99819eebe8bda4ab855a19d73ec739f3f5f13ecb7845f5b290c2f0f38cfee2ae78eed1e7a093801d0a639146abfcd0d7fd9dda3b86de925cb796df626a94a0dc6fb73d351e3548be4537a8f874ee074218a088aa748b1b807ebaa81f1676ab10f78410e882ac16765e7bcf8f7cdafe03fdf675374423b503e401decee986a07bbd9a80773e5b913ba26bd4cab187dec4679a840ef6a7d8fa10a276014d882301062cb2733eb2fc9ce703affc73178980cfc4e544d248fa34ab60a2ce2bf4544d33d6a9185009d616f7de587f64f6f2c88dc485faa598ba96be5cb26a11e5bfe7f1a4ed77f58e54a92cfcb657ea044fe4748fa976e9566b1e1cf8e3adab09fdd74ea3388277ed0551f7fc045d78a9f952e5e33f16cc7cacfd315f51688a0b0074f4a28fb404a9a137d06976639731644fef87c78bbca86cd0bf82c412fb444de906cefec28110850d2cd7723c45ecd9419f84aa75eef5d3b2206ec4603113d1268ed11fde8c4b222e14ae4ddbd9025fb0b5c2496e25c50102ceccbaa756d450cdde7f02a1adce5f1bd0310e442be62cf925ffa6836f65e249313c6643d1f35f4922c5d032b4bb028b4b8bca77c146215174f7f262c589449e58267d81eb5cb1daede12d3ff02aa1f6b3b4d36b8705efdb8261ab79c647539cc7e782f03ff0a4fa6ef0bb37b8b1809661f7ddb4d34c24d0d4dad5a154ff4f2b50e2cb5e7f7616f02cc10ae24c691aed35a505fa8a42d7aa636451614eb01895fce3788b52649e373f523150adcc288cd340530fbc6e4dda81316899c55f2c96081e6d87ba62e4e0f400dd239468161ec37855be29c4788a892326515bf2000c2f6752b8176b41710d28aece21e54821ce20e133a8137344601ceeaeacdb07d98993b9d0fc0d73e4a07e6d67df8d08f0a40211de7744e674c0c23afcfb4da6e5baf3eafa985651a4830b2846fc152a41e05c0a927c7b92076730cc6f1b43a0f4d46e130de6da23c08caff2ee0e1ea7b76fae0d43dd4535398df5693c110e5cd93e37e1ddc232e3a9df022056f6dea1fb2581e080154ea8dadeb66ae8df7612b3fe05841ae32104a4e67a69149545599733fc3060dd88a48d8cf9354e5eb89e3507c977e8b3fc976ea6ec8bdf65021e0b8414530dbd434441b361041e1bb270024bd102dd674bd73ee4fc644b5e44a1128ba6fc7d0ad71c72b5e9ebf79feea2b77e5d0bd097a592d1e7ae0bd22d477046707fee43d8309e90c0852d7f2b9e7671deef2d0bcfc0db6ec3f94c93feb1fefc6929befead09e1f1af32c7c57dd3252b3b62912281df10d1017c9a4b8019c95c9da63e4bca9dae7ba16a280a4da36766961ecf05ad8323f43f640a3f401bd0fc989369c3ba0c5f3d67b4ff754da87e3729bb9fe347f14073c47a74eb91742f9697fad037f8d839c9b6b4e535b03f3484eee12716f22e097aadf8b29fc3e3ab6b9ef7e3840e316024682aea2659cf868bcf467122fe36acc21d55d5c3bf658107a1f81e884b70590306c6bb2e2802c1f3cbb1516b9fbaaa2a27cf05b968584756f2b3d793495f8d683d9ef7319d34d2edf0e28d93f61ecc336463f9021ffc08fb702bae456b7ca732589aef4f488f4b40435b840ec2858af02eda6a9b818a399855f57e924a861acd2741effb3977b4316e36925eb3aca69a84dd58a593d3b9fd73b0137c6005df553c1dd34357ee0844a17585db97f4b22e390ee6d096eedff5b3793f5aefd7d0074c8755cd72a97ccf5a17dfba0abfd2b881bb186b99c9553e5c1f87953c1724f35df596f8f6e101f9e399beef36faf3f77300555ae10e235ac1e6cc75d8dd4d68e1669f05ebe81eb21bfc79efce0834300b6434074345c6a46bf6a32fce59cd0d4a3c90ba152fb293f23b1bd744d4fd404c96ee5c8bd5545cdccc05f87f119aff0753d7ab9716efe82ebdfc0ea1d1786c067ec5dcb9c47a427f33f67729c8b5b4b469a4f3171b3aad967f4226546a72e32d44456b1da0a68d5c375681077fc8859b34d650cc87df7bffe4217d3ae999321609cee394e704aa3262dd4b49c0122320fd8cf3864e0019c295f058a07d03e306f3b30bac85421343485eed17b4b19472d2a00004f10977a4f2c4599aa3651efe72d1e7013ebc5e172c5e3ff1887e8120537806d5aaa99c3db58502d6414dcc1d787a17697740edf0ec7ec0497078931bc5afd6293ebd4b952d7327786912d93e1cd2fbc0cfe258dec8aa23760d18a4c87a7208e92650d927e639ece1af2d4e93f189b12e946b6e68d268ffb708ae991fad79c6bbd0d2aff2218d5c48948311053558248e0b6ce3d08ff0dc7cf3485238c0f44f60f50587aa5babfc9cad1dffd092023275d676aa2a3bcc400181d2d4a5171737c96a1effd232946516f718792989cadb1cacbced8e4f2fe000000000000000000000000000000000000000000000000000c172437", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 21, + "comment": "signature that takes 5 iteration(s)", + "msg": "1400000000000000000000000000000000000000000000000000000000000000", + "sig": "649f560a6790b963eb1677406d3da74820c39338d717632f20ed5ab6301f7bc2a7704d53dbec88c7ff830823ec43877959a7dc3fcce86cab4989504f3abcb791f8b5fb649a5d5fefcd28ef69a5f0d16e8b640e39adc748a1e089b99538ec404125c79e60230986e9e789bb2cc86b28bf95a21be81c33e721774c10a5cd8137b99e997deec15f131666270287efcd2cdfcf7fc54dc75d9d34d4b0f1dfdebd89d445f4ae344cb310ce43129bc8978a6692d5ce1db248ee63eb50ea18c80b0a33e521e7ae44a015baf1074775c7ce96a31bf5aed0053551efb6a1dad85558aa2c061f2b7fb4b3c393714a48698466abbe4f247ddb6077cb108c438cbaac2168cbe1f8bc86d8eb769f45bcbfd2aba9757b08a86229a6ba96a001eef534480fb69fee3ac604a34eb01fab91cba53e6231d0d2f811fb4ad753150b93c27e290d1c01bfc9ee58cb50f6e10d3dd552a101f882e995f4549e20d9dfcb03a9b5ee0c557f862bcdc12b72704419d1250142aff7e1a7049fc8a6e39e3ff95b54c8e986e6dd5e9aec480d1493ce0f28487ea662c4a88e9502f53a330968953f71209b62dd485d29c3e90b2a8f0d45e3c3a2c175bc5216b2deca8bc4fc631ffce44466b3b071cce87d14ddb2156970d72782e65e77d9c0996b81b5cdb63b15bef7bd960a301643d057c2564501c979946f5499eab3e124748c0b185303b49ade9bb8640d92df1c724a3b813ce3501cf8f827a68646830fc2d9d0e8850c130270bdf3e8742bd4f3019b1c77991212674dd2fff8b92f7d8048668f1f326c8c432a18a6b0445e234c45dbd03b9ab94e5bc13c5744e519506f93ff44db9b8663a35479ec83979f59b9f15994b2e1ea89a87da033d25d7ed3d3e67c79ba6d17bf4446ea1ff6f61082b1eeae547b72ef68864001299b3231684452f061020d1593eaffc03f5b026e21b5ee98d7377cfa6788e3d9fe959009e2a341a1c79d145cb8e2055387097cdf06de6d9f955ad5e523bdd8fb67d34d888b8f1e3bb21a76d943c5b3e1896421879ded5a3ca74abdea1b9ab44fefd219bbf3d1788527bfb8f0293dfd8f418c33399dbacba154ff6517e1d59f85b805e893de298216fc664dc92a7e9524c80678552e64303f65b58a6a3d605b738aa75b571c14cd3187e9c3989b3bb6dacd3a002ae6ec707bcbf9a48dad9ba67e3e876f57ac4228eb0a3341f744a54be4132114481b2badc0ee5a140e759391bdc6642a6767ef5e53d1790d4039979513a900ba1bb00408f5ca04c6f880624489816a53ff692d79378639b4ff559af4f54a28e3776e702ef116fa348ecd1afc4309d52fde2426d052e18b89a50609e1cdcd5a3987931074e6e7f00e4a05ef0ef497ebd559308a1edcc500986e4a51b8167d7328ae2f219af699768d4eb3aacb0f2c3d1638afa6ebaea77fc5048dea32ed752e759db167112d6aaf6d39bb76b1aaebe703bb28bed77e15e739c4ed9ba489034de99367e53c87a7ecdbcefe62f7473d5242dbb8f6a6e6f5b4447463b61895125d74dc70d01b431886046d8ab3221de57d7582cc68ac966806db9f0ceb55a71a9833d4a276591a0bd2487680699f4c6f61e5b9eb524f5762d847d21c8c167f6fcda8fda8f0e43ff71a02c25ad12c0b1aeb0f30932a59186e4a003245fa8524b42d41b8606668596205cec2a6f1eded5dfa139fccba451fc85c9c0d80cc93da006bc11e0aad9ecf3a8714362d2340444ac4d885dfe7f2ef0d4eaca886ba76b26667a1d9c300ee0978941236706e46b76535a6cce6fef631e60a63434c64fe8a71a2df52d40f6e44df1892caca4b0137558b5dd59d5b0d578e88b4e3ad74884427042e13eb74559a6c567462d4aa3e83ff750173d0cab385e46209f0e25913f5a3276b6bd393294af3ea047f4b6ec4db1270ae0da02e1a4a744d8ec3afb717e44a073d4bb6ac84d689ef290c994e177802fb8f7bca3d7115e8d75132a6430c4186b28a5a544e5e1972bff23345d2f6054c703491c2a232cde96c3e04a5d3b6dd2794ca57fc8e08409f9d80087e811af484bf00d82516f1853770eab6f1a17cfc19f6f2d3a06cf888c8c57eb2367393dbb37970def960d94be53786c144a002d9a2a9682c4ba76a60796f3a0cb66c6482cc3638765e4b101d304031699ffbe7f42861d874a9f300286e9a4f34996abe0f3d67c93b9624687420b3073aed1dfd2312eb1e1e49709e5b619c2a58a3bd5d7da04907613ec9f98da6f216ba28eebec3c9abe60567eb6ff6a24158f27ba7e701322794515e6058e82966b0cfa69127089872a18d3bcc7f708a51f8cbe37f3adeb6c0a396c5ad91a136f778a549d0c8a6996476db8723dfec989862a407e0f32c2501f95aeaf2a4b4a591345e31e27bbda45df930eaacd229829ceb53acaafde54108b4880a7f4b13bfa565585741f4fc208a23c6c9396f59ea6afd97128dff481da48d9eb04b07908548cbeeb5116bca338f79eba142ec86f60d5a588915dde36134dddfa4265cba2ae63780ea978f8dce6eb3847f946512becf79164e63d192a6b7aa78113ee6a551148b680af304902ee16d6218343a9db2b102d0cf133c62e920788658ec9006661dc524c2ee9b375322b39464b768be3fe048b3877aaf3b2f2a84ff0688fde5d0dd9936c73ac1e0c4cf943f8518934d356d447b65a7ed58ad4bb760aa0c963bb37a6a49bb9b1fed9641e5e88ab4681e32d43c0dd083976b2713a6faf7937fe9fb90acc58e6ab4d85839a1690011b3c5caca03aa44e66b6b04fc8e95c79446e194dd17cf2419a5e2b16be64db1d065bca7c0940ba474035d5e428e28e9ed741baa8eb84c1cc2c8ab782a6612bc5ae3cea738ce2f506c861b73cd3d54367687527cdf88df0310159ca89afaf00847176d1b845dc22684a57f69b8128b0b4bea5690316fe46f6f9d25b16d666926b43f134c03fe050026c0fddf28fce5028e444ef321b5c4331af3a4af9abebf75eaf055453d9ebea541c0dc2777db75b08227a3a5d064e57b77f6bb007ee1efd46cc2b2689cbe1a7f6467dd201c599779bd02cbc999c6a08158a72b78bd0dba3d85b75d623dc12548406aff804f4ae050cff329774bb8171764ad70f4dc91e5aa5a0b04b5954fad9d060463d07fe5754d3b98b1ef231ee8ba3c2481a52cd6451ccd84929a726cdcab0065fcfb07ca0363e61d9cfc216153c97184d3f39d12930018cf2c8ef8fe9a1d99597967acf6b354ab51c05a3b0c51d4d5a5b0ba905aac8752715b76af8601a78abcc9107b8ebddd8126c6c01a379126cc110906bc8ad7b39d131d527195b3c6c9cdcff4f707152a313d4e6061658d97adaeb1fe0f15161830354759768faac2c5f505263247545766838c949ba2bcd8d90000000000000000000000000000000000000000000000000c1b2938", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 22, + "comment": "signature that takes 6 iteration(s)", + "msg": "0500000000000000000000000000000000000000000000000000000000000000", + "sig": "b1e736f85b0f1755f24ed4916f7721ea4179d283ba1f7a76b48f177713daca7d705e6f7284550bec19e631daf1b529d16750d26dd9bd904d8158d52e88c11f89aea796f7985cfd3d90a6f9045b9e6a11ba3f88ebf6be370a8f603da5bfb0dd588e337ffbd0ac40213babdb0d128c7a7a8a91ce5c0eb7ca93cad69ccee2a1430e1d58bed73df488b08a314e3591976abb63907b278d15cdb34332ebeb8ba8bee0637d88a0ca83e7e660a480fe41c32ae24b2a622129f0563d11782d74dddbeb026b79ba720ca8bb56cd9051f34db46d948498072102ac215ad8205cffca73cf665e09d44cc096aaf4fdb75f4b7f172fb89e00c96dc649ffb45a76c2f605b78aa4cc0e5e2dba4c9731835db6b94e7b67c9ae6cfebfe4cc4678a4e8184928dedabc541ba08d6ff4736d0d5f7d02c3b709bca38fba4bf70df1adb2f203bfc892b80b1b753cd5c75fbb8742684592e37b14bee5f129b2c65c3b787443e7fa9aad32d5370950e94e97446b36fc20737433ff6f4cb23b60fc5e66f563fe8abad6e54080d9a933f83391c4733e6637eeafacbe32f8a06ab28634f4422eb1d473f2fc538aa72782898f54d2e01fbbea969d6df8e6b3b18f5bb3de52ff781b6d62321502e95e191c9a97242ff53918311c79e629699f932f4fefc6101b43e4875cc957ff7e95fe3ab2127d65698fab483e221fa8121122b26c0df4c997a5a73e642c5528168e1c772f86faa3c0a7da00af96040e2453d9cc80913226bba7257fe6861b022106a43c3f57ae1e5500aac85646e0398ac8bdc004b1cd1ee6236a4481eaf0b029b4da27efd20e9b8a071d633dc14f0380f2bb747618c91418b7defc191a5bb4862a2ee30729ca674ba26aae4b0366d644200b3a080e629f9523fc3a6605d1f2748e1c27b795fb0639d4b8e3831635382e85bea3be1d69398debef0efe4b91d3d786a1f75783a8875d382cb445d8729e46a83d0d07506d8d5a86305aece1176b7b54e2d403c1be1c51c1acb28316556599db1eebea86f537e93944fe1ff7d34c5dfcf26ac77960b67f186e1ccdea1ac3c3b97c6d01a3ee175c70eb72fb4b19c1f3b8158c3194e4809ebfe7ad444d9c1c69795ab45e0bb6a4ba57fd9bc41662ff39247f5996bcffa3915d794f63886d17791ea877e2fe830fbb93327bf36d71460734eea19eb23e121b201175974b3c83f57a7b93a7a13f9386d65d67f60aeebb7884d5ce8f453b416756401226fdada38271df694207fd462dc863646ad6ed3bb3d7af7e5244ff901d3428f9b6eb97d912f1117ec11aa224318dedd1d0a0a6ce41a3d7c7e739538affd5c89c2f166e5d98480b4890320739350a99932604bc6709bae757a0ca209c92dcf59bbe2caac517fb977dd4959f367a60c3b4f732dfc13fd23cc2367a140dad096198ac73a5571cdc8e0774ba9053ea7e612bdffb63c5be4fbfc834574437f40bed5bb6cbd6cdc2aa533d4a799bf2065c5031797ff8809c90d54e78483afac395bde4dcc17a3b478f5913b7207dae53bc9fb9e8fe47966d8f3af825c262cd229b176b6ef175f62631464b9d6bc2e8b69be412691f8d6f5db0b45fdaf8474dbfb952d996bbb43ca1168854cd7f1a18f420c07ecec04cc2b9d782aaa010af305f5d1ba976ae42532dd16b1679fb1a8e0270bdcc9e11b84dc6cfe7b44486094310a5b363da708c6794421c032d03730256ffba676692e82f3cabc2297efaea52ae47dbc5e490698c0e06c729010c5430d44cdb704d8fb58bdd029211e1e7f6a36c87f85d08e09cb3b4a311f504054e4ffe8dfd070f10d8b8e24425b1fb5ab0f4c1ddbe9380a545e33b01eb87ad14fa86fee7da9b4ffd68c3878f53d7cb9372d7404db0f122adfd5d4f47ebab61eb208008e3496ecd7dc7e18a3a72cc1c9317ad0ddcc20fd8243b01a86c50ddc0ae855c870018fdb505b39ad7f2acad6de3f458b98539b5b00e73a9bd7c63d0e4813d6fa1f8a1ce8b93c472643ca4370f1e053c1932e0f0a331a6c2a8d4ee1143c19daeae40f26193cbc51ff982f297bf175de3582f6e5a9724e986b8084f8bc5df181e691142efdfca97c54057dd8c363db4d7761b5954aeed16c3151d5a1b93bf651de393b8371f69246db2c80c6ddd0ab190f7a6279dfee3c5948fe086209c267113aa1f0b341a88de4471bcee859d624d5efcd72be1fd87b810c13b78f993bb2a3b5d4011219a9b380076624263744516a8b687dd10359ee0063ca60933fbb37b54a59a4a918eb8ce38df0a59b016157659e4984320e73ab84b23374707636f42659e634297dcc7f2326625211ddeacceb77aca4d401db05b1e5421dff91adc3131c8749b5d326d1c872c7386e2a72643ecf30429e84226a614f01b0e769f92ad0215b46aa65e20c9af637650de006149a58d2eb479549b11adac064458d361d6cc1e698467fddd821d759e1ac5469473e7bfa5a180561f5bdbc811ab6ef9e77cefc5b51111cbc5e040f3c84259274dafacdab3d8390e7329109c3630b56297694f14542b1b3a78b1828632d4d72a09ebbe2d03521f3e22fac8d229f033868b3ee2f762f0ce6a32366ed679dec0f2e707d5f7efe208a10a592009695438446ecf960650532d920ddc3362ce773efc3deb56687b4e8f409c718ba1f0fa3fb249c67a6a870618667c5ff617d3085a71548b6aa7ec2a9aa930d07b90fcf8e3d6399ab59dd29c70061dd9f3e7b1ac622c8ea52dce05b1cc740ebd15a5d5b5d602118f764a441f9b47347d518384b40b7a9cd66bb8013111cd88b998060e3ad8a4ef397fe00b54b20d9555086ba48113eab2e1be66c47b24aa70136d0e4b8131c5c0e03422509faca2c992e2ab5a8162936dfbbe18f8164608ee802975fb4f46497558fa352c57eadc4410c95eadb7da4351420ad3f9b996217545c5a12db10f3323233162c3e2e874c25dbdd3fab14d5843f1eb2fa2a4acfc2a063b64013701a3d9d2d30c45a59b5bad8dbc6b283411377e76c2efd1a1fe058f6c8fbaa3101c9a0bfce1cf8ac7dd2537c2d14fd1a310071d1bddf9ecfd3234c1028904597713b439b33f38ce33057378219c7ab1c2bba0dbe19ef96de17495b6d7d4c47ba450ccc3f7560d19b9b6b8a4d5defafe94b88b4e63fd8c65c042ed889cd6c1b5f2bbebaa54e713122717d54800b2974d933dd571ae0d0b42880dd8e9e8cb1e1e5c74e9ce12930e0212ba82a34d39d76e38d7cddcb5c18e56e08326d1a0c52976c168713f57a42b3232c0029f9c3c4991c22366c230f1996e10f145863ab84d4cd6db4cdecec705fe147483622f26c4111c444f5562697089a2bbc0cbd9e0e4142a2e4a606293959fb8bcbfc5e1e5e9f0f2fe0c0f232c384b4c6366a0accacbcc050b151f2a30363e44484f51545d666b84868d9fbbcdceee0000000000000010233149", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 23, + "comment": "signature that takes 7 iteration(s)", + "msg": "0f00000000000000000000000000000000000000000000000000000000000000", + "sig": "6aa02e9cdf4a39c5ed84384fa4dd57fcd3c987873c3e4355aee981ff543dc5bff40434ea3a3e4430343373c2d03053fe3664289093b30160b19a119963140707bc9c77574d63bda189b8cb1d2363c82c54c70c2ed898e4d7a7db210a1715a967c2534958be4af70f25274b9308520195913c5d9d801d0afaad4e79f2c7fef7f06551b22f10bb3aeba561193467834a75ed5e41385c2aae782f78661d6508f7195a0708669b0869dd4c5d3651845d73e4101b45f8eea11aa518c60aebd9de505b9ceb5cf01f25be4f8432f9fc0b3b57f4c389a2d14cd2f2a8208386186f7ac752a277f990bac048914e4fce30bf9a273e30514aea56506c33b68a7164fcc2b96cd0df986712b5383fa9dd9a6ebde271fa7af9d14fbfe10cc5f5e17c346fee0c607bb06315905c01bc6548b49d84398a1d1870752c6f64e27477be3c895306b752a1ec3bcf31131bac7268af4b4ac442e66f61cb3b55409ed9d6ff63bed057857ea8c74144fcda1f2e70b617556710fb594107765af75e09107fa76ef37cc34b4807064f4d8c5b28983683730fa98474391380a76b7eb4bd32d6d30ab4a9dad2d581377ab589359a5f907c922877676227cf89100a62c22ab709e8a3ac92f9a0161b9768b07bdd28f4e13175ed895a8c731ca6cc4542cba47d36a0c16bf2f8a3b52bece6e9964bb827a8e09d35362342fee32751b912972efe3a05456254aaa14b0617725c3120f5d6a64b85f9a588e886d90734911d283da297d88ac3c1f46348c1a29c47057119f96f0667d78b565e5811cd7ad93ed730d95e126012088a0e6f4691d8d93ca01eea7b3b2098d2df08db9cb83431d0fa0db356936890cbc9256114b329ff2744b97348991afb85765d7883d003f2a17913ac5fb987eefcf746c95a12452631a09fc2e029e5844a52b22336dbffc207a1c15e14925d3789bc925744837f4b6e9474874a582228d5f8a88f8edfca5318a211697b97142025f2f3ad5a1b509025503e2d96e0792be796838d529699ac8fba9bbe80569622de9983f0fdf456f9ef0fb7c4f761864cc03e690823f5c0e362e4b5f6362b034ccd40ee4826cff164db191849a0cecd5d47066b362b60dd106809bbcdfe0799a7f980242ca37bda0a7d7e567efbab05f4e80887042f972618e6d83f17ac60d07bde1e7f5854d4723dbca15c81dbe4067dc02a6364eb90ef0d3b4ba4b3e2b620957e0d5836c4844a624f6773cc2de8486f3684a35aeb9155143871c3b24166e21f38625432e306adb0ff265f6852bf76dbd1d5c217443e35c2d81c2af4d350f23e8ba08456366509996e85c8bf1de148456ab086309b782427853a14424eedd718370efd8c6785b76008541c46f91be7a057c99c1a8c4fa573f7cb2d564903ae78c99b95c19e80a175f5e84a1852ccf193830f3c2f11a918e758755e2dfd793480e535636a9e25a3b497676e4b01c5cd91cef68a8538bc7d3337f07ce985f290cd62cca709467208aa11fb040215852c4108b1a54d9a78ca66073384438ed08bc36f15a4b95e83ec65722b8f9661ef43373a8062ce2eb0887e5529ea748c35cb3eb9a03b402355ddeb88c3b7283a1b407bc0b6e6a981dfeb705bbdc0efa5310d091acaa6bd18c3679c20ac02da54d025ee945829b7b6055876ea311ebdeeff94bae06482d17a086815d132f420c1fa6dafbc0d6de01e7a4b06d318367539d217336b410fc67f44792983a8dc3b672b92c4186ff2e426b3f4c13b98d1a0d20aaf24bd42992a4f2bd86fd14fbf7105330c103f3684257befeea6be2a0b4b643811384a075512e3b8d94f9c425785495cfe51da9608e3082811106267639f111312d696f5b36592b13897021bd1b03f905a1a1604269da5bfcda1f8557bd4afce49c0d8f14b76b87e0a0ea98a0f2749dc12d024583155a1959a9dcd3081b297782dbe5e62dbd639b33be32a5d0d711fbec9adf0e1038c4853cb16b6df4498ce50a4f82d2fb1dc7553bab1d3e0c57b45b7517de383638dcf898652ff32617bf073c93b0547335fee27bee50aebf6afcb1a4b6d730ae12000b47b0b6294463c69e512af6f6436c47defa87dc9fc4e30da81312a49a3d05d8bb53a42e67255210ef4639570a0a61b8a8bb20de1281005bd4aa6bcfe8cf39e4ce9e200c8de759b0ad4a1cc1501f9cb2bc1f7420fe8b5a674892b694ed1f23c824ab906f347c60394f35af11510e7544cae548fd0aea97189fdd28019548ce554f2f4d15908a333c9fda2d3be43bc5542fc3762954011fb5b68c99fb381d938e748b22137a30d9896af870cd1fdab0c86eda5dc94b0284ed1e10b4a2c26bf8cb4ef264c72501ef8e55945655ed8df305885f3d4c3b9f5a74b69cc6f6f985305ebb17091de6b209887a60a099f1d6d2d1b84ba633e913d2777188a21fafc1d870c2b0629d3ef06e2928cb86daf7781830675bbae7661b0d0592ea1a3e9bb03350cfd879be3b95204617f95c72bd4fb05c99f2a009a875db872848c29f705995fcb763f4f6c7c36e176fffdd3446e7415f5c7caeb2d340e5468cb7529a310d0971d297a59ac0ceb0386b24357ff7520d6d9151deb67017124320c9e320c86a0a169a0547630307ff90a774180dae3c71f6496f81a1ee97c6ca03fd4d5bb0f43f8ba64221580d3b0068a7ff2ae8d0b4a319fa4510545fd476369fd68502719d74a9036a4fbba4148e7d960ac05ec1fdfcbb8caf6ec3a1e9f3f0f24e084a06c5fba93625c698d0db1bedcb3fd663c4e2135aee443cb10d3682212351374cd1e41f96389825db8ac96bda6351d0bbeef6b14e5c4b9007826dc34bf50f97c48244419179c35ad720498f78908ef912ee73d741eba6f92827441c3426249ea5bc35b7293eca0201b8731b329900ff0e811547be6fb3622fd74c829921a185cfdbca0245eee4ae1dd6d8ca2a6a123c55a6efff9f21b5f33a0624342f929e59b83d0fe09e37af2e7cac7ee554368654efc643f53b0e24539d7ae3e82fab17046a8c8bd1e5a0ced69343a796c18b0d13e066867645d108ccfa969333639c98d0b4083027bf1ad61d82e174fcd6372bb2d96296f1d251741da317dbffd1644324d9952a49923c048522e23b05d8484ad953cf656f71eb26a1755055845af11413bfb20aaee31d334a39f1d7d48b7b3a81e218e140653685b65e217c98b76fa092a5406f56d4f3f810e6e0659eb89187ac4f7b32b9f81672cfb16f47f39a1b7230f1696cb6ad17867ac5384f8122271ace9d7df6027aa480e76d61e8478b87bff9bd1b0ea5943529e5e89e0a809504dbce76bb895f70c0d565f63646a6e73818a999ac7d4dbe6f119262b2d5c6177797b879ed90e10121f2342474e6264c2cddbf1072f3a424a595a67abb3d0dbdff100000000000000000000000000000000000000000000121e2c3a", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 24, + "comment": "signature that takes 8 iteration(s)", + "msg": "2f00000000000000000000000000000000000000000000000000000000000000", + "sig": "3118eedf0048b3329184163905ef2f2428a23f5185bf4f89d75fcd01d1a58be0871c88573b541fb45111673a91f11bf45e3276185271f3fe7b6ef80a1fc5c35cf441dcbf4263f7546dc4f7ac15132d59bcdd8d5b00e20c52a2b5571da58b7bf0ed4115f44dd33bc2314e6c3d27644232cb249493ac6f911eaa99718a268bdbef2197d186569f7462d0f31ec619804f30f213d2936749eab6c0605f342393fd0f58ebe66d46536d7045aed05f9fd341e9f69030dc91e7017cbaff344b5e8129c8ea18734c6efb78ded59b25b4f76726fa04a4a0609ab028886760a537d9123883062d42467834fcfa9376808ed4fed25b2aa9ede57a7bde2fb3a9d956cc45262fd44727a35a205c613c954b41285a6ad481ff83953275edf6317296a2eeed0788a4eeb69b0f26564e5f4943353315c2d7f63060d0f42cac0a015a3f5e32d3d199df64d627ead89e6a51fc08b633aaff87fc243d5b46e0f0fce6c21113d1b3fb73bca24173ca7729a7a07bb804afdfe565cf783fdb63a2504146dceb2c6f202c89228118425f23d4825fd30774ccb8d650499b5fb603e7dd36e8a3f7234bfe385774701bfd6ae0c584932a8599d3be21799e366d6aff900c9cfbc95cab7608b2c2b561ae5d4dfde438830daf64083b3f16e2a8e7e707c1b04cb56b90605a6067ecd600485b8e51b0949b0e071439b28a052bd99b3128c8b5cb9ec6f11fc37078eaa343c7ca93d5ee451f00eaff1e003e001ffdef4665cf114fa7b2e4c83edf852feba21a4c1e702fbeeba84bcb439d33a5c61a508eee89d322a99401728d0cd805b8539d13c16db25b2fd2ef77a98db429baff1ca2ad57c6b83db5e3b9147849534836a5309793bb18fce7ee5ca85e0d6f3df45998521e6d208a5c6c2f3988df21c3cb5e3cacbf2dc8c5e8b33370a09232aac8a4a2b49748824567fc04db9d9bae98f38923635f972b227c2dd6488be96dbef885c991b1402384af3893d81ec7e078b789cb79fd38147f47655f6b871f73c3657381e86023feafe47383c25db934203a37b98ddbd2bb845496d70474c42b8bbf5bdae3a9a62be3ab5b73d9b4a61ff10873f870b60bf3567c34dde8c226d4894ae8364c78d0eb45f6a62baac6862d306ec584fa347c6e75984044757af6bed18fafbd3f1bc67d94a6242857e904e331f057b0b787e6b0b5e3e8eacc2d018eb07b7636e98fab16fbd1efaa138d4f83aebe6ba209ebe77f5fa55ae1afd6c5fde089435fee840feead74f171ce984956896e4b7a6420bacb70cb97846867ab5ecba70b949af3eba13711879f0f381772a2cb2f53c905ed6c20b9f9b6238ce716406dc9d3c41e67016e9b455f52d44509f6c13082989d15421722813faae9f1136b008cd217c24f5eea3de35f2f0a20790deb4658ffe93ac55023a29f14470220dba9362558e2a200e8bb59d2c44e7de706e75a5cf011d6d4dd718541e040792331baa249d6c0f7cecfb7b445f69afdc55ec64691b1b3e43b3c991d5327a9c2256b9391f042eb2a9a1a1f29229c8a02874808e478eef56a5aad5b7a21d0133d23c87f9a63512763f9920bb01002248b0a0b512f715013d079771907322cf32b3131e33132dafba683e59641a5ac2061eb1dc08b8f0b3301b30c69f9d0eb22d1011a7cf3ea12bbe606278716be6d9a56a0430220488162be9fc0d635bd67517703b2893a3b3601ea089a96d393dd5ffb350b20ddc374ab2aae3ed2e87ff263007cee8cae6ceee1e6e5cd51204bd2eca46b6f829d090526e2cd79e6695de8b44c1db5d1d0d11dfc634cc8b9beb87f81299899a19ef8780291955896fbe041989aaebb3aea3bdec4f40b2775a7e3d9e0321cc83b68f0f6737fce5778601c62435557fae1e1868b0847a3402b23bad25fb2f15d1cdd5c20eca124b19e70a273da888778746090427348e0b2bd708652acc31c52379932a4bd983089ae33b6c119713fa72d6bc2916ec90be1f99be749caa8eb013f95877f171d3af0a7d2844b6c8bfa106ac17bae8effc465600fd46ac13dadd963efe92878484c89ddc7dc9994e7680ef7f89da0a2b2c4c82d3a5d79303d6cbbb748c40e9a00811877b329afb2390ce5edc15e03803bb1c45402a9ba86670516b2ab3966c134ca0263f75abccad2b708163c0a737eaf8fc7cf329318e8aad9ce1693bfa3784483341d34e9b1ceb4b572fd45c5a0b267f31a1558b6d3a9bb2803aa2f07311745a1d8fa1180a1212ef3f4ca3e169672d5a9358dd714332a28278a75223d2618f36ea7cb609a91a7d2a58513c62f709b404b2ddd4bdb77d008440da05a7e6fcffb476737fba94b106c5abf220efd17f1f5e0794723a4233548607a4269658a3fdf50f49fb3d10e8b2c19713b5369fbe3e6a56835c482ead2e1149172789730d7264f4af75aa6007d7253ffa59f6fe30dfce472fb7829c4e6b68a452d7d5fa682eb88f6dd3f6873174e2212c63b46f0589c507bc10f723084eedc4167cd28b4c8eeaa720b8fb48e6d188f4aae93592ebcda82ba01d82ea8e1c70788283542daa8d0171afaa2435371ea6e24cd82c4a20f847cbbd904ee035e79addc655efc723e7c1d1c8287d166f55c04450c5f2e90573a1e03c93344a64dd7988db66c51aff2587b4fe6cbcdb22a004be1b5d825bed3ab1106516fe0cdc31c213b4d5bf3e8bc8a11dcf42c22c8b405a84adc2d198e717918a9c42aad3a927b9aecb5d9dcb488a01e784c1b060977c229760c8909e2fe116c0dfa68495a0212a823f2576029eb342b01145c285a8da5de9ca22fcc81b46b7777f8941bdb55e6e9f5b72df4d0f82f72aef847e9248a4a8a42a102ee5b42d915d41fe00d3319810c4cc0c33c61b4c354463e67c35ef2b3883136fba58b5356d46401a10da6a9cf492736763b4a1c26a4e45a0a9b29812d91361e35c3905f5af874be0b20bbb29d4391b16021ef287c9e02879b5e378e1f6f84bde3ee2d9116870dcb6b418b41a99eb9c4f7bac3fc19b4c9a306829ede1095e57cc1e7cb623cd2fafe41d6f40de3df3ae974cbf59db8ecf6a36c39c877fc56d1ed013b1948b2e04a8f9c34bc5da7e7265e05307cd43ef25d0a51fc48fd980b34b85228f6f5c82faf5d071b1adc5d4b36c044915e00dbc3bdcb46553b353c658b362f02f50d5e967942a94c312c220812364c5838ec5dfcf27dee3dac4cf277caa0a78cd931f3d33a9f6a9ade1386ec366e9d063df26cfc601be7b998f5d23c072c95336d3914377c89d42d123729bbe20a269b738dd453342b803c87354f9c24101f28a17f4640f7c1e9fdb254b21c1732425e666979819091a5a7c1ccdd0e12141c20283738484f565960b9c3cde6e9eef9fc051a232d2e383e4d4f6490abb9bdc0cfe002142a32505174797a7b7e80989bc3cfe4000000000000000000000f243546", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 25, + "comment": "signature that takes 9 iteration(s)", + "msg": "dd00000000000000000000000000000000000000000000000000000000000000", + "sig": "98c1b2f5fa279be518edae782886768f766ac8e6b99764f13cc282c19968a0fb58db5e78f5354da13146e467624d4f8e9e5ab027205d9d7e599ab38b2af5304a95e42ab4ac56c47dbfc92ce45c5ada15cdafd783d102952e41b454b47069fd83a4fae89295afcebd14dfca9527f3f1647d5f97f74933e86bfa24113788de93f0c1b0f6e1037d7a35dc1cc78c933ed21aec9d063d59f4b9285bac5aa7deff8da700e46d7f723cf25cb7564e332548cc7b5fe911252a4838cfcba065a8ca5d2091ba366d39058b4856bcc5d084f17e19872e841879a89c49d4c6f378c136362d3df53700f1617e238e59fcb2858f38a8f98b00120019590c4c1624e8e32ccf0b3bd1375144d9d47b22165ad003c4e596dc785f09c2c02734dbeb1ea9aa9d8b410583a6a60ddc07d5d5ac5a5797f9dbebccfff1907a7a09713f5d7d3f9765a8fe041a442c80671ba42ddf979688bd340297b493e61fe2d2fb6821c20355fd6e30559ff56af9b5130dd511af0f43021cdefb28f5b50b6d568562a0ae11429ea58ccd95e77956c00292d26d214010daf3ebf1279aeb1bfc69f7388a4f174488b9ea0d68989fd05c9903e06f6a788410677480acbaefcf4714f08250953e458e3cd69a12e839214bfff547d2d4698e980c33f8aeef6929e7baed9049c35c23e876baf6fa31a9b0071e04d6ecd14131ca3813ad1b7a3b28463d67d019bba51f31dfa733c91f4f1bb84542b3dd483e4e7a1e83b8b76f5303f72eb8e06bbbb92388ea0c2b9d87530de4abda0083ca64710da43fb6936d8ca2d89ee43565b624580efcbeef778351936f559771cdf5044a4843532dc7a42dfbf502d966fc42afc0886868da1eba94a78fc2b313f733c24180c3581249b29b5a095054e3509243e6ce4710ca116d17ebb74fdbc379fc6bd2bc9e222e76c2c1083e7a5e54768d3629c277c8fb592cc5faef43538ffdbd4786730ca501edf9b02a138fab1f97ec41c3deaa66457aa80907835e1d192ee182c766c433617ef44ecef5e2de0e82b3222306132a49b279e3dbf84240246dbb2bd81568de0c18cb68c65934e7fec603ff3fdc9148cecbc811f50d359389adb71a1450bbbc76680486c9f6f6c4a1992a5a8743bb803b3b28fd0a9cfd6fe89ea3f5920864f1780d1e7abc16ef487cd6f73e8aac2556de92d42082b90d931c7e659d3a45e2c8c92e175104fd5f76d89882c1499c672a0112965acdf00c903098c8a2c4597ae8f983d289910e9b678e61ab6e72102128b183f7bfb497f97f3cb57930069329bbdf6bd3a7d2d3225153a1fc132dd819baef21ee23feda2792141dcdc15b4c2f578f2f4650fb398ed53379fc99c1c578a9798df463042bf26a6cdac93bc9904c7cb9f8e6374a85f281dd1c2a33947409cf721a116d8c7bf8e7d0ba6ede06e9b15ec606baae3940ff9ebee169ca5a029231ea1debb08f00f8532e1fb99d65ef0c581c2a6cddde8e0a426888262537036b091dfe2fc40fbff2e93977841eecfe75cf624be627b9762f57eeae80fdfc83ca2e3091467e834b3df22377497fa09ecf5734800fdfa25f9cb66570928a77ce22cc8bab70cc8199808c20be47abd26761715494aeda3353e92ffcdfe414b128176e985010458ab590e0b5cb9aa559c092b2d9adf03e52b6404ca128b1c1c000602128026fe55ebae775e4a0fa67b1ed315a638cf910e3c7fc8e114699b3f415d74f706753d99503386592bfd4c665c9b70d7e850fb270fbce250539d3d44e81dd909159a46343b65215edc5876c29dc4c5de289703fbde05c83b65b57627069775a72b2cd8fecfd39a61887197af32f434f87cb8584835d3ff8562c7ee1ff8d2cfeebde266687b5c2c6e26b9ecb001aa87484c919ed18a8522acbc5a518904f0563f5975acb7cc7d8a4b4a6e22edf1a42c03fc8982c673507b5e8a86a96d0f533d1ba1e5e557845916339cadfed6504dc9d81971bdd6ac79a522e1d0818c5603a99dda2bcaa62af236b9a029cf7669aca430626ebf365cf635a11ceb7f49a243225ed5d82413f5839f99263ce77815a36603457f2760199f52369e2b886e1ef2256c46c2f8dd2315ec9b29dee7a2fdc4007d5c6db3b39fdd433b0644c15a4168b2a284ccda7bcdf7d7df88369dddfb2bf3a4d1f05998c4d574e6adc28ddda51865a1d85f5af587f95e6851fd2c60303598c17a135917a1bf85192c2b31b8510ce990ef5308623b6ab166fe84f0e5e41c8e9f004cf81543a9e729437071899f7fba2ffc0b620a974a8c5e6e29ef9e8fc40020a610942095a47d1d1a94e8a0de9fd7a0fff41096b71155b234822d8aaf194b8ee5548761109e44a44ba3115296219ac4a1be6dd3515f202e44c07b9de93d9ed2c1eea833350082aaf0467a7509ac439d427dc1a1b14091598b2fee53fc92207d3371be8783ec97c60618e355acbf209dbe22b2526913656c51822252438144ccbace39e1c7cf984f02b5bb3f26afb2dc21227cb125967a5422754c2ae9dd9e8bc9a1a95e52a1f195622d6b2aa12dbf4d0c250a99c4d798b82441958465e07a104b2467ca349b556e44298dbe167a4a75a323f70491944902303b7c973d3997e46d50bf6bfdf393e7e7f763808f9f805a33782dc229d12368fb08c58d20a94e937c06f0fe9296a61c925888e06798d562555a2a64dde3c453c0e72feacb2358e1c02183dc48588785c71d729e374b9210f99cbd1de1245a7d66b98bca97d67232ee85ba30c1cb3faaff1c23c4252e3cb1b6f3d94b187145bd471564c9cd3d94867345901de924e85c3f82c3b128592b26c4df05007a411973b60027901a083ad2719d50d6179ab9bb1224009370409c13bc4b0066a9c04ad6096c0087f7c8700b8a1ce7a87272a5a4527dfe056f381ca20c7806f721992ecfd4ef8ef14ba5abe9e78eac1dfce97336088527234ae46a131e1e75ab87ff7e63a54f509f24fc31a4de32ca34f0b3398032d2496a4c1c71cb93a3b7e256af2b3c0b7f830e7a095d863bc4dc1eb61158b96b02143f86b19ba607935593bf06d5e18d722560095abfeb6b7242b9245ed4d173a89cb74df26006c66991c9d9713faa84928e00a82662a5015ef2d5fb6180284ccecc479c82d32b66017a602f6bee512a9955e1fc0666b89fcd9e90df3ccf739fcdbd4950a313b25568ec4dfb8c7fc6c1263f4f3412c6d05e30bc7fe44e56fa5fe899e68ab540b8665c463584a1e5a051c115aed5930fe75bef67a564ba6d6aa3128694ed5010d6c79a184323eedea763f36a6f05a9cd0c78417747809d342121d35e6380305ce54080a0d454d6db2bbc0ccd8d9ddebf2353739426d70b0bbd0e00a18212b2f399c9da3b2e0edf2f8f9fa0b1b404e525f6d77a60000000000000000000000000000000000000000000000000000000000000f192932", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 26, + "comment": "signature that takes 10 iteration(s)", + "msg": "2200000000000000000000000000000000000000000000000000000000000000", + "sig": "d5dd24ac9f08a1cb61e95add69de0480ca7f73c8e7d3a5de260e6dbd144bea45680e140b5c11a456ef37c078735a1fd6df1d5f3d436e1d9d90ae163614dd2ae2b5a81597687a800ed5566058c0d624e33c2a739b5b1518fd40a797b1e3128d960fbe133665d36d1f94d04ffa52aabca42d1a69af6afb721a49de04cecbe1d3302a4569454c5879d3c846347b07f5d60f279240cb299c3ffb2213bf2fad9609c9a2e41cc81fafa2e04c312ce241631b3a4bf70a4a351d2483935ffc07598497b9d817b0a68c4818416e60f7e665e75e4c946c6ab9104e7c7228f22f02fef1b6f543d731332378b64c38cbf5e02e799428c60b0fd684d2308a0ebf9a0fd5f1646112c90540b84578dd3706fd60bbec80e9ff75fad45bad81d991fd9f50a5e591172278f2f0ce6f35639f2d9eebd51101985605236e4b8b6cdc8fd67f396dda907b0023cb9a8bc973d60040597e3349dc3a4d142994384f5816897fb58ffd3cbc4c4243ff7d2b5cb3142ca1738a14cb3c2249c0fd9a2fc0264bd3cf932302680a1dc300bef9a0a56ea9d4ff8cc86e4294ae59c453adaa0fd864775f41664f56e52dd416edb0f1a1430e08f09df3f9a1547825c5951e3cdcd81879411360675e009012a1712eac279c6cb326819908b6aaa63cfc5660b3ed77ab9c43cdc30773432d0a0878a7afab3e28dc574f70bc75ab3ebc5bb55f3f31a28dacec9249b5cca08437cc14b72349b848dc33c387f927f576b11ba7f91edd4ba9eb20b49b6da59e48131351b6023a27342f2a7e20c2e59beed4885d4d51e29d5f6d909d6bd95be768f871e9851404f3015bbcfb17f0880cc128ed875d3087f7c1b2712c931ea294820f6755961b52d15c4774c795e37c3a445051f48dceb0dd4600cfaa07f25197bafa03e967677a065df688d55ca60668ef543b1f827f8a2ad1a44e1ef5136b1c34b875a02b70fd889ff24d194411ca508191df15d173e6d358e8978b71f556b8e7ee79dc85912b6a2649432662afde80ee3a164d86cbe5b6ef35f635282ab9f5849548fba3d4dfb14097c56e381f59dfb5ddfd5dd151a8844873769ab6295d1db92f6b7de4ecb4398325d2a05359e9384a98b6faa917e142ae1d7ba0d58a56fc4d576144f9bb85963cb0ccd7832cd45eae817eebde0eded83cbc38a6d989dbc74766c03d8e90af2363768badb54a6a02f3cdb2161316f33e7403263264e4396b678a82e5f8360b52ab6471ab565f045b84406f65d3111ed1424224f8ec3f1bfe7877dce041ad34c726add4aba988791f36293c7cbd4c8e56f04c7021049085e68bfa5f9d3f448f09e8631ccaa2e7bc65088831c2dae18113f668d5af411689b9c6db331f4c72f8572a3b7ceac5fc8effb6ed6472a42aeb4e4770fb4c9e235b9d4b5acd3f21f170f283504571964301f641a8a52c7454bbb8a9d8b77b0e9804c988ad4e9ce0958a17dd7cb304521ffa31f1184aa2a907cdc7397d2246707aaedf6f1abd5c04fbf3766d6cdf4a8c249877005f927cbf888c3d1aa00db5552a7817d9192f68501833818bad97a4001558b969531e9e929a1dbbdff83eba37f62a26e920a7bd08bf64ac38fd5245d31b39e757bf07030c6837300c90faef94262c09d8bfcaab4215e1e64f5e8a202eb13df2c64140f14eb42136dadfa51c57935eab68555fb4303a59dbebaae44fb9bebdb07cc11a4743894b223ff929bace2b86f856718b76e3672303b62bc921bbbfa9beb2b0c643625271ac30a88efebec944414bea57c82cc7c287d711ac34254ebbc3e05a7156a5f807d3c656e0c5480643bff432740eea591d8c0db16766a13bc2159e9a8da5606a50d0ab073eeebee30d4a099dbe5e16822236f65a3a2a4fa2417b529282340bed7a1e4cdce44c2ff66250490725492104e611281485b3af9027fb1654d096a07ecf7a864a4411e90bd06b21839c9bc91a79abcd79723810ba390c9c0b2b31d0ee32c8458aa14039942abd4a507a3327573a68d27e726b5ebd3418c0110f1a13cbd51ed3478effad3be2f2c26b9525e13154dd70dac5550ef42e53110d0b4ba24ea3a433f0b17afb6326ea90fcce2954542e1f3b6d01ff83b4bdf57d505c66535d6c61d4ae5a1acb8d0117e371bd081cc6ea146df17365f658f33b401fbe25c811123b5fd7b9fc736bffed12353e1e607439484602c60bcb76e29a3b39972f87fd823da228f9deee7abddc1dee6123f8ef71415a2afbca274a113d17db27955782c57b9e25a2bc70b79035afa159a6c346e2b845d7fde415ac71f8a09b1114f77084db9af2a6f375a68c2c50ee032abdf24599ae395b4ab2871f76ea94dd5fd3037972d4fd92fb31e4e859fbc62c5309a374e7e76fbf6e56124ffee21a2ae01b1ba4aeb5a48df57c03eea3b1ab3044e57b680ac88e03749c474719a17fc55d5c3cbc0a0231112ad4db6af8c1041bcb3f82792426c251d87ece6eea8a8c56be5ff186e431053730c38f53afa3b3069f9a74d4bb9f511ac30ed6f0735f4e88514719dc8c5da4a0228668aba034741492b4d26bf75cfa7894a8f082bbdf4667c3b52c06b1da7a023c501e9130912940f15fac744de0d9932cfa07f4406a6e15aa8a89afd6fc9197e56427697f1ed36f091a6d8f660b9248ea217844a39c4aaaa176e73328650c0651e163bca0e876133ef6f94c121fcf0d2104b476ef7d47ce03b267904a2a636ab26bc402f30e1ef659838a68e8a2504c5bfc172b2a06b5f3772875b901c6a686fb455295d2135c4eb136655b455f4f1dab47f381295b1360edeeb24ba48f9eb43b8006de6d3c18d4746925cc81e90e18e3c41657b48e864977424b8acc73bb6165dfcb9aca576b5d649efdefd48a13ecfb12b40bd1152f11a421077af11fe244d8e0f9955a6a09a8170c1a183ab29212e8ea4ec749cb53d4f95d6b3df4efbdb168eb62b7b1a117e4433e8aa68a8213da952ee60e9a06f5833e8771fbb039898a72a200db2b79589c9f80e20a504c6ffab084899868fe30efe8c36e0592488601db65a576fc3eacd7dff55c271fc0df18f12a582addd3778f808e733386e0fac86cab4599df326e0744cb9796664ec92fcb459706e8fce5b9782e54f323865c5f6f1d07a734fdd1db7df8437e80e5683e71af006b39225b7d7aad86c2fbe0fe2a48739796ccc8d4af8b0f99945794d6e80cafa8e413610d4ea6b50fdbd76d96205fd07012bc40eec8edb8cad409c13d4685b403d921bc632b81515cc7c561e67fcf7e980bed5cb9801c64a2503dfa3379dd6fe0cc6bc50a40353394647c7658dc6cb3dd5818f91a2c384b4f687d8388a3a6c0c9e0e6eff00d282d6a727480848999b0ceee0723365260747c93979ca0adef04071112142d6c74869fa4a7b1d7e400000000000000000000000000000000000000000000111e2b3a", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 27, + "comment": "signature that takes 11 iteration(s)", + "msg": "1c00000000000000000000000000000000000000000000000000000000000000", + "sig": "412fe09c5d39b2a8d71880574f19a56d1caba85e420afe46d53024a23913bfccfa9d65bac69b670a7d118a4dba52fbbb5a9c7f688bcc5dc056a4ddc16490fe1582362bfa6b45782bf00f33745c277861ca90bc2f00460be2123b329c9413b94dc8832a6f562b24c6f65fa95d0f690ee279d530f31e96fb35d9b5e34cde3df77c0f2886c7349d9864bcb67e6e9ea40e17a4a5de5211196b12008ca7fbdfa4446cd8e2f21c02c0d51036e52e468fe494c9e66a4d13745dc2f0581629858a89b165038098321338daa27ae098e74ec3cd91ddd67fb9fba3a7d51ef5a361f4470b2daca93b6011fd761bda68e8270463b8d5974f09d7708fa7ece58ded92202c344551e3eb8a947884e877cfc1e8cd3562268a9114026dec003a934075e953ef3123e7aa159acd54f0cbef4273ad43f884cc94b53b207f8fe6dd1f31455a1ed712a12cea0f900f2ae40044f4932539ac50d78ac4007c3385f0c703e55b671328e611dbd393c5d7edc8a08750749c277a446a32984ff360a962ac6e6e9205d323e0bd2c58d9d5ee145f1b18f6ae7ee1eeecf4c635ebf57b89915f968a785be155b0ace5fc8828bbd5cc2527899ffa391339ae1bcdbbcd2faf16ee05bdc32d7401fb4d9dea9b67b20c7d95638674af5c66e79362721a965cc0db764b4b31381705ec462ee161a8337c18f34dff104ef6042a2f75337a488fa0e1f49ec0beb1418162f972d5f59dfed3c85a0f02f69141622fca1b95cff2f606fe40587429ec1832f04f1db11355a5fcc914b1735310cecd5fcd4b261d5232dd864ae14308e8a674149567dad579078f607178ef528d396534bf1960ccdbd3582765dacaee1db533248362c83284f28ec13cf25fbfc333108ad264b0b1f0da585d8ea3372280096c15935d1a29c997b166be7db6e353f2159fdd3552ecff5f2fdf3c7d35b380ac887e09f8cc1b795e3fe5002f6b1d7488bf8996976506b376a2942275c547c1f359cce0502f1d6f49b685338eec3e7dcfe1fa6300609752e9c030721e32a399ecbf353b9c8ee85891fc351bcc30b307e1a9a478dcd0ec58163e8d39699fd7d5539c474e179ceee982a074de3f14f62fae95a090a112b0a66c30527f7f8220ba705df20b0b1ae67c5231b37a53487289b780efc152edcab75177e173f6c13402f0f2a87d673186ad03bbf1af492daa972071551e9f765482fa020c360711bae8c73b74deab2b32068f03c2872f7909311221267558e077a72632c4a8c50fb90522dbfd72c32e119d814cf943bca31abbf1c34fe96a1130dd89d1a842ca1b8f702ab5fccdfa5dcc53e8b22579d6c6e9a213aff295793332c3e4864fa2b1a99fbd38b5a7d733f0324d0088bdae7454696d640048330ecded19e6786b29784355e794683bc6538da3ff7054790ef048074bad869e6e9382ed6ac01a994e3af95495825273bb3c7c885036bc0fbbaa5390ee47969a438f1d618cc038fae3caf60eb477cf47af8ee61a5003757c24113dbe2e70c6aacf969cb6a471b27088a162dc063c9812fe8a28b6c9cd5a30c042c1f22ea752c5a7ac6b23b984377ed070ba4596eda51c62bd38f42061243a29ac48a3f7b595df612b300685f974153cf24ec527a47a75302a9b6b3e4e3119c21a2d5fa97b29c16b51b2e3acf1228c82e809a52e104d0f254fcf6e17c5b028aeff0b6491dd5cd9ddee4adc8237710719b918a824a21d8341a3d2363016883ac4b4042cc81de6b7f3924bc571874413dac2af36064ffbfe9f559a2624dc92227b18ec3820cd09c7717a922517934f20e50ee4024198c4f38c771a1c2ad108c51d3201b94b5aafda6d9a366423a4b53a99b3cf8191a3023acc0acc18240254b7cc7c88745fc947cab14df3c6f562ee8865d512cb13f5a8e0805d22f83fd49c37fca227594fdcdb34e4257e9b167e311fe7097d40daf0ffe6f6b2b4b28bf888524c290ff16060744843360862ea51e37d969cd977c4a4368993f36b7c4f52202aca8f41968a4378aa43472af22197bee43f43be2e22c35f266d31bf70dd0765c55cc846e42c1c9430ee0c8607b4bf7205113fed48c270e05505b683eb59b1c5ea9ecef4a23ee46cbf46e0187fc6167bc9284bc3969afec96a52e65e07eda82ecb23f363caf0a051b6704236ea1932f9e34f01c46b72b4618a805c42408ed20c48c01b953fb077623c3acb5d1c7a305605e50a10368d89fcd7bfacb1d31555b645cdc4bf0a4898ca82714505cc63df185d10b3b3a24ab005b0aa3c1ae9cc8bf2dcf48eccca9a00acf3313e9df2ad75e504ca28d769281359c1092b9b8bb92908437ba5c56b01e52b7d5a63a2dadbd906c4cf8f18adbd40d9b0cf706478e182cfdcf6e622cd02a02774d64c52663d2008b65b234a4729099723d9434e5135439ee29860798070e8588663215b2037c98612334ae322ace19bc0f3467268ae134a4c2d39d11ebefdde090d34d6d42022af317a82d722d211b625016f5dc705d5481c32c4e7cdd63e8a5b89a3b5b74117d9aa0fa00a658ef562690ed0140a2fbad573404d2f5ef43b7fa1ed71d5f92aee82736e432d6b9e52406ecb7e8af91ea4364e55bf6e552b88a3a200df0297f32b5e5f99afee68433c57fc75389ba238314c1dda209fb134a2ecbbcb92b092dca52871c41594b6533f82ac9bbc3b8c3c93d16bc3948b1394de49533af63124c588299e5a3731671d5bdfcbd7a4a5d2439940bd476a1dbeb5e99e653fb2e1e8a8fa7619c6c939fe8e79a47c69a62b8f4ffabb236d7a436a97a553fa9bc0d5a3b2146aef162ddf1a222b192f1b1729e8ab40a392fe272fa99971316a804bd92976b5d46a1a57dc89eb9ebeded1c5701376d89bdef314965d1893d857be5d98442ad7651accce0e1d7b0a8cedc0d0d86a315d2cf2e72336f1272e7a62596930af784f6efb410e5af7de1fcdfa07569062063ac219c9d9b49e5640e9bc52cace2f959a51c306e420dc0fe4ff98c95758b411da432dd6ae81c96e539b977b8bec3df4f2d6a2047dce21eb2954a1d37fec85a3ef683013ed0f299758f3bd9f6adf4b1c7bccf6e379e21fc8e881d9ab269194ad4f5fc08396ec03e3a182cb2c6d12305f7d3883172cb8d686e794c336e1304dbd8ae5fedee2b3b1da302c2bb51db3bc22529a266c8aa51509bcea11a1afbfd26cd99509c74c175f83c605678463b13214ea526384122c28710c9fd61e6d7e338aef6422d5169e5cca2388fe8ce936029ae0e66c3debe9c5dac508fa7dfeb66af0e25ee93bf11d535f5600c68e069d239afad4723ba3eab777b51e1b300613334e5975808693b2d0e8eb192e41425e5f6668749ca3a9abbabcc1c2cbd8daf2fd081a4042505868b5c5c7c8c9cdd9dcdde2efff13282f354353545c5f98aec2cae2e4f1fcfdfe000000000000000d233649", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 28, + "comment": "signature that takes 12 iteration(s)", + "msg": "4800000000000000000000000000000000000000000000000000000000000000", + "sig": "8e4f1c44d43c025ba29d2098462a69ddf5b5b01df55aa38087f728e622998e0123def70641da158385754e1c0a361f2737869d792f50c3f9e6bd473a72e12426214cae3127ca6524788fed1fec6218137101d632d6923b6f9f31eabfccffa82ad9107ce3a0bfdee0f3c18536a2b47ad294523d19b9a257e1ee9763eada193369b55f0dfd77b87f867d187cd9822250fde51080d82e8870e968d378721d9b5b997610672f2bb428e3eaea47db9ab93a90774e441bfff06033897e37c1abf31419c13986958773986a802ec63867b502e2a8cb10fb00329c5a438fe1356d861a038291e77c6c86351d5f20756019a0cf3f05cfcdb1118a4d2b217bed88b9321e5800534106378d6c5ee77cc71a5eb81d762c6b1393cf787173e7fe6f785fdfa5b3b30d1caa989bc0becf41b1c674fcc91d5075f7a6532d6385b0e04ff25cd179eedbbd8f33d271404176b8329d1812f5622a88edcbb4400d813089551b60de37cfc4eb0ee17864efc186c458c827086d178c3e46a3adf8c6859cfa48e427f5e50af43d08764e5c24cac7c42931a07b0261302af454c75dc61fb58856c28b67de78a888f7b033ebad05fab2ba521afbb66e21a13abc1917cd4eba6a9758f1de87f5969f1e916d6746e6cedeefc980c02c75e05bb2e31b58ee8475fa63ad35bd59e8fce4a9e47f5c0f92e678cc0becfeb0bf4f82a791551fa2083cc39a2ed09315bd482b8f37dc28b2a8cf60fd7c19651d516a79998b998449d4243016265d7beafce6dbb22a683439674741bf530a7e424bf294f314affc4cd7929a9eab2a29005b683635d2ebb1cfa403f53b62bc6420bd7b3f0e1cff07b8e780be9ea75a3f69b5d2a03a1d7c10ac380a6c279d610cf014793e2bcc751dbad30f4501a547a929aade0abb9768c544769341ce04beb7e777b5171a06ba8eb8d5bb158b20e528eea073e32ef3a3929b5d36b1220ea8fd9e11cb2ae1401878209880aa2bc38da4d93a69c95ecaa0937811d626572fa8255b06290114287e1bf866803c0214e27c2ecdf25b6343bc2213b558fe4d8fddc02fa562e8bff35e1546620c71724859123a4f74a6ab9747bdbe155ebd417240d88745a140532781c7310586d74580d0afc326e7d42a0609200acca0213c0edf602cb22dcaab01a70ac3e2077b89e2749d2fe23bdbc0d95c0eac8cde0a754d572d7444236c707ebb78b4d5993ce9e4679cbc269835acbb56c53428c6ea634d4a2920b2d9f6e3b3e0341b50f866e73ee0f12258088ec948e9292f15f13004a71526bd961fa69844e60fc8052bc1870f6e3aee36a9cef7ed5c6048bef9b4921c765ea80197200b76d5ccf36d71ee212a2de451fd75cc8efec53331ac8d229e31bb45a3f1a0655cdebbab29e38430d3de43b6a009f83c28ca02f6cc7f2f3d2cb104b8671470745935f18a7abb0778936c5a46cb304cb779648252aa9085b1c34ab6520248aeb7bc07fc7b852666019a214a991db4eef3fbe70175d27fdc2b21ff6ffbf62bfd8b53993bee07f9a157540cf157f81e9d7ecc2ee167755889ab1d97badfd382d7d0c9d1b1e6cb5ba3b1cf4b80eefa8f7670c9c4f7172171ec98cb2c157994b435ba4d727f6db5d41aeda4cd05eb15cffab5d65849dda77caf6f0301e4f9233e41ebb19c01c05901bca8ac3093e69066925e1028f852cf0983e3267603c3255066c44ba11acbd68bed2744b1047ba61d55221732fdce53fbbf4f7cc7d891e2e8d576a3b4d58aed137dce62db769ed699b5ce4da4377642518fad1ed662aacee02b2da43ceb3609165406f5dfab3f1958ca0a2f2f5b4adde179f57f3cb4d0b1e6fae8bd454cfa605640e2c618b318169e66156a64ff88824c455718c45cde40abf40dffd2b8b82112ab1d8b37be0f65decc9452ffe532ec93ba29da4d502887c810277b5d8ee0e293860373166f08dd5526cb061a2028c13695859db631e43fb6fc78abe3043ad6a93381c797f0175c24cfaa49ca34e07cc7ef5b7fb12ea693ead16f27c600f41e499ed7d9dd1bb28447d41edc9b09e61ca87c495a45325162f5b299fd645013a046c880535809335c2a56dbff3affae5af1fa5c3c9357ea8c39497e050e9a581f94c8ec66a0133decc4808b1efe8a03c9878a60bed5da8d277d28047ed3ee3dc0294e612bd21edd35c10a0aa8914f51777dc4bcd3d5c780244ba509e8bffe96b2c03b035ab7ed99360f35dbc33787e96fadadc60f4d7d9244f80b06953fb7aba8eb0c106815d5578adadad665dd6d262a21c24cda1b33f4c2c5973e8e614df03bbabff7fbd9f5b3ac13802be4499190eb031acf2f186b7c48480a17dc1bafa9994ef46ce4317301101f15bb265ad1edc8e3fb13bbfba1c4948cb0a96c633b51a94188e1f1ae064c7856405c3eff591ebe39442b95a3e648b98c3954c3fdca99cf58a6178d1eec65c58252f792cb94d278c1eb23d6ab58d06000ef0a8592aa19b1af18a63336cc1da0de4cdf2a7b380d0ee324ed5fd73a0f5cf81401ec0beaadcee7a891e888111d440fd118bdf7639a672de516bac08e9ae1d7538957c8b832e97cc3da6f1ca4403b98cbb17de525f362ec330468cf34c75b5eb5de8d91934bb815976105681c3fcea9bc95a465ce0f7ef60c6c73f6f91c696b32687fe2661f40380a2eaa708bbddec796e3905c78225625a12f74daf91bee4a388342bd98800456da5252777d447e97297dea4293d1c17478141933b0afc8f40a91b2c36f7a5f3fc19cc3878ce2cb904c6a0a251f7521a6890d23231daa1c7f3604c6ebf926a2c4b4e3a16e7a94cef3e42edfce4f419907d5a65737c840d1566f7d8f9adb3c388d17842e5d86517a9deb599f8ba2d4e2dafac1373a218f017456ff18093bcffc2592d2b720214d5b64c30d2d3c2121d33dd578ff720f979676708b0169e777149ad408a6f9ad33d82c5aad0e3bb9a0661c1240857152ec0c599d846aeb494f84f251fc783d371d8258ddf021c3b7d2787337efa5ddd67543110e0a3161773cd52ca23b47b9d6ef874288e4745a954c1918608d9143df28c4c603ee10f10a40cee3e02562e8cba90e07d5ad98d22419b86ceb09ca8e73a8823515ce11da207081c73b09f303b0f902ab221a2de8b8492df29be6c13faa86123d7670b9bed29ded03641b49af2cdad8d0e3996bd0639414a4721178987318e9d13469c5022234924d69b895fd55cfe971d7dc4ed40edaf1788a1239a341e506656a898e7d751eec14a370c200ba519764e7841916ed2d2a6e4fbbba786044735d3be3f28eb0bada6e999f28d19e366cbc1b2021253b3e575e7feef6fafb0e13444a588d94c01b222b3846616281a5aeb2babebfcceef20107102a303640607f838ababfced8e0e2e8f600000000000000000000000000000000000000000000000d152639", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 29, + "comment": "signature that takes 13 iteration(s)", + "msg": "8100000000000000000000000000000000000000000000000000000000000000", + "sig": "76850fbb2f4d17e5b4a1f526bf6566b71acf4258b851d53038512469be502a7273ae3113fe6459af43a9f116e4b59b73cd1c4faf721c180bad59131b12d416abdb2b8ba103bd75dd1093cc8f28ef00a31bfa46f7dcd11b70ce06b2da753fc9b43ae3c3836309262e3d13b07353e91e20a79488d3567412ce6aebbe83d9f7263ae3798675896a76a4e076a0f3ee43a09bc09fa00a4714d062d24996727318e714a02ce97db36297fab37c2cf418692aeab20ab8d6174cd6db1b46bead39f20c423c9206f2955125d17a0f5bfc4e84a5fb648f7e6de4795110efb3db92301ec67e4ac5b0f06f58c87924141bfaadf0534d22c344ba2641b4d2b3579bae7e4cfd997c27455910728ac370c78eb4346e0fac2d03e38547fee9830550980ba0e33477ba156783b9f1cfc9fb334b94f318669f0a28bbea0a825692654dd91a1be521c36afe036d3821eeca512c83667b3996b46f3c2b061ba7ff30c3d586ddcf6391b4106b09544a02d8c4d75489a74443bd6af3b3c40eb13cc905c898407e9c89ab1630e2bf542cfb4d45a862dcb1b0e6c6806205ee821a54d3bfb4ced87690e3c4fc83cdf24f7a925975577c2fb91f784b517ce639bd423a712023beb46d6ae57e9719be85a92359555a207b3130dfa3694338d55d16faaa5fed789124992f2c83d17ef75ee2fdfff7521e7a307d1ef3683679a72d2ec77009ea8bb796e1050b0b65c6af9cf96bceacf135e05ad63f0e1e635306cf4f7e3e5d78c014b13468a221ff7ca287b548fa69541e8bc2ece3d10ab5146de26303d54d1450d2442a707d91699f6cb30c1b49a55f673ea7efc07d27ece9a40a339c5022c0758c8e7f0989083604d3d4b397d13b884e62902fffe2ece00f04b87e46406b5f2d1562886192f16981b1aad6cc548738d8ee13d03436a8f85819ab43e4dc6260089a82c74b5ae79893b3423bc14e65bb8c799e2102086497f5a06733ed2a783c723d0bb1927cceeca347d43d112efe92ac842a00e750e65f3c13ae601c6478122634fac7f16393cf0b814b17fd32c5533dae785d3d410c0dbd3ed2d33e168ac429131b142e1bd459b3bb0b4cbc2acd8b7b443a4f67c43287ff28bf187661f0b570622173d6e639dbd55f0810a8767297d5f13be40bdd96b26456f1bfc723fee62d36f0438da7e58842efff4c091c084434635e4785c55cf03303bf7c6b9463e575b8a9ac4e2d91708ad7a4717ab968e97f7a35376b95d15d36c4f6ea0f896959c06227f9354796c3c2a80740d9fa87cf256c8df2fd78874b48a496ad3d4880a9e9a496cc727ac4274029cc7832ab0ec15c56f9c62d5d4437619ad056df1c261c89c852322b0f6ad3d6aa358ccf76c339fc88be7041027968531323cfe0396feca5f1021c053f9a530d4a80b9f106367d664162ec7a7e5f93af784576f8cd87f6f4f4c3c5558371c4cbae76408d6fc5ae60b86da005d9e6d4477fa4a0aef600d21354ec667c322be797c40994b62c9951ee1ce1174119c8119738bb6f4c1ec961b9ba4ad34e7cd12876357f29a8bb4edc251f8c91982a0a255454185661094dc2cbbe953b3b41573a96d4560c31b96297c91149bb9e7a04f4d45a69b06062bf516a163c9319ed2a01d7ecc2e0ab3619a4051a51585235acad4974c7bc631499e422e156f2d502e203dd689163fa3d0589fc9b0654dc52a07a94bdad777728e964ce29dbc2033b4b64add8e38107be5d87eadc298de46736b719fb8466699354c2348898ce2fa9918f8916c05ebe172acb61a1f21e28e3100e990fd9ff50ea2ac1b6ea6c9182922758e37816163e957e6d3d51a66ffe7e0e4d0f4c3224e1d7ad7e213e498575881fcd5e2368f5dfe2372af6e25538c4ac7cdf4a370791f0f803d852d23f610f514d97393186a2acf739e34f14f627e16123f0607f8d5df4833cb9b9003610d52909d417555e8c51f0a15323d7b21f24f5366a386726eea888cbce9808e5a2f058169ebd7e2ba3b3adcdec06566d1d601efd8b9cdbb169d024bfb26ee3183ccba02d2de4e44f48333fd64ee148ab7d653c81e789f33e2f5b3b187e72fdcf4b666ef168c452de00275b61ddb32b428ac2e3f59d4fb78b0a87e4e330f031944e5a151f24214c16589720a1e6bc51a5b65e964ca2049ce5dfdc01afb528380d2d1ec16f8b1ce5d9da7265e9818033601a9eef3e4f7fae3c7d98ae8c7cf34ea8f82718bbfa2b8b54ce04294fd19474c37816dd7b1c24153ca669ea8c92e953d5a67645276c666494d9adfbf791af4955240f4bcf6434aca0cbc0f60843c51613138e195e8610712f1d52c415d64e03a623ca2549fc1fe90564948f27fa3f0753070a4b5a077328f9dc006d234b4dc4c8f64b925fa91caea47a5f43e74324cb73dd3169e57aeac17adf1701a7b05d370f9dc216ff9ba454c0fac79a5d31cab5100b653dde3ec44e939f34040393d6c7ebdda897ed135f7e52d5dd1e2a723f951703a5f831fffbab1e1f29b39a670611abf79cdfb1f634ae8055e90e3779124ce55f6f565efe930494e7323f0b00c3732066b0514140441841d76c9c81f4cb4f70694626bf90ca2001c5df2a686523e11496b21c084c9422918b605457574badcfb051c20d38532ea8e661bcbc3faefb5e9647d0d72c5d0e7497bacb5d846a6f41e594487364e60d09142c9963fa5b1b4e6094172f795d72c43826f581e7c61d829dd4f0bbc1d2a0c4aa500a84c6db5fa32024f580b1df9a7bdb63a4916df0fe670d2bd5677611389f10c6936629cc8e1cd509fa20121882f021a2f72c17977385f58cdd8a5543afa9b02a32c5f79435b482c0d217ab8c7f5a41deee5b631bcf42040bc88cbae9ab3231204ae99539bb2fbf53fc560961c83765b6a711f19c26b96411c868f3c9652c7978428752bb6b6fb2ccf17ff7121e8642cc42f5868bc441c7b5c7173c58dabc8799c86500d6e79ca0e64f179d18d52d720d6ce4f1ade8499ac0e7e497622781789035086f79ed6af36b24dd7742569690cbe6f2f1ae1bf2c8991e4cbd5578eb369b941197c171f947a767f8bf277bb8042048e34e01af4309271715b8ff2882fb1a27843ade4269420c2e7c62a961ec4869b413a2f65820b216ddd3a095194b916f64c229441c8012bb7da7ef9d8fe831daca3b009e67a03dcf22182bcc851982a80537176d68aca9b130fd13000931f361e06722aa3bf93ffe2af79e06e6a3acfb739894ca156460f5000b453b9f03813e1d0e6e0b4c1e50b1f081409fd6c799c664c436c3cf08a7b88e74d4ac02cf8242ceeb5b8ce421c2142eeaab070b474d5a699193a1b0c8cbdaeff11f6496a1a6a7b2b3bbbfedf9fb2cb6e1e2e713151e232733385485a3a8baf2fb0000000000000000000000000000000000000000000000000000000000000000000f1c212f", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 30, + "comment": "signature that takes 14 iteration(s)", + "msg": "4300000000000000000000000000000000000000000000000000000000000000", + "sig": "6c6b597091b046da2f4dc9d14fcb554d1e527f44dec36e3d3bc9ebb91c238563d4fb76791d31f6e84fbe26c3c54358f2507082d6e29775df7fe7fb88583311fb899329c3d1b5fab79aebea6ba1745be1170ff05e3a0fbeaccb75103b226fa4db729e0d5ebec2887bf2708c1a6054fa3fc377bab825992d541cfab3e901f76c755799cdf8737790d663117a1af2cdd91233ace2b61fc73a1ad822cba00aa5c6e1e6afa2b97adb450875063fcc094e2c9d847451d5b27b8c2cca49752ea7bb99407fb3e2d3a49ea6bcfd376090aedb3af2fe236058edcc9665eebd4b0f0b699e5dcea8b68909c62f0d602d1a80fcd1e0fcba9dddb8df14a3d4cd89f77645ab941acac8cf032718d25ec7a0717ac9d176d1ee26697d4bc2541a47123a83eb54135795cdea2c42be1426b1b3d172ee655c10cd9b8f19bceabe073c1dca2968222fada6c88c8f581aad6f80c665138477612c77d69e76228ca3c4f8ff9df59b9db41c4727e2e76f972fca9e5b15af8e60a79741436a5ee8f166f72b8d39194a4da62b28f2deaa3c5b7e4b059db19ac946169c6111e7bd6e0fbdcd6159d88a911c5094b0212d7a4990ce288454607ba4f75827a8d0f525025927d471b1ebdcad98d6d1a390e51fa1faa902a051ea15d28ba16fea37808d4f92e72ce19d80d89b3a246a6ba6ae54db31278983db6a2689f497043b79af9865a668b7d7a50b824c7bc43e365e8f7c5dbe89c47f5b87160a3bfe4f2c94a90c37ce04d480a4cd0edee8d209821aa03704e1938d76b9f3273af75b9431bb5484ef8441460f0e2b22bd870e2f275584833714512c28831ad1ecef6d6915bb8e223a19a21a2cd4656370a2bea59d6f56e9bcf47d45bb92dfc87cf9694e3905b3c21532f52a26ca31e434a173297233ea7386eef53168b4d99c2ae8a6d6212fc0c100a0778581303507ce1de2ce8ac6c724f7dcc89f40e3988302010f6edb432188b7771f450ea2b87a6c66764d1485b7c80ccfbce6985e4c777df6ee27901e49ef761baa293cbd1b588c6d5b62a47643fad23d67279a53e1059ebb05a4b03b9a182d257dde7321bbe1d5c92f543e152420c0f4819236529b5394a8032892a1e06cbf654735251daf94dc6f05d6d05adeb54be4c34a528704085b71463e813f9ed07bf601e2bc8f0d94c23ce55c9b629077cc0bd3c71d1f81e0dc1d5e5d7f5ec415cffed60b4357c388dcbdea60bc9a99a91eb168485f889605761bc9e9b90a5d756c69172de7510785086f9cd7fb65f6f45dadc2609e0fd9c1594a4f520c6a9d5751dbcefb1f90a416ab7cae8dc33ac9717d916027997d20865b4dd99d20e102cfe24077bae5201f321607e3a74de1b6eb51b02b2859db006a6ee11dfa7a6db0549b57afe24bf5218b8c5e77b60ecdd1455c085e8b563e510dbc9e2d4779af5c7e6c869f3eb3f69fce21be823be121cd82cd1e9a7e4e539a73ce01758257024b14830116001f0a95ec2f6455c5b2850afd4ad21ce82bee44fcaefd1078fc663471fc9d3f9de3c07fb5f5e33f84b32267a82b828d166a28426fa6e274da2da5e0c6c08ceef489e412d90f2740611255f7743fe9ea578fb124c2ca1eeda748540eaf435b3c2d9678f4044f783d569b1a23e8b5890f334e1cec68b6f68ea7d0f7e6600df2fef4c8eed4ff4b0f90d2a2dd6253153a7cdcbefca4902698134dce458d268fd77a01ce698d45b2a2fa959861b7269761521a8bac0d7787b5d2f3d9f5662792838cadd1f265681ec91bbac71b4ddc4f8a8bb484836c1e224c358ad1701f9dc8e006ef8267c20140b98cad3daabbceb8d312be6117c836232bb6b12283d2cbcf6867f85e218e0acf59e1c8cfcdd1e79c38c7ee81abcf866d566877294093bd3eb22681b400afdc931ad70ab1b425b79c3e46d296eb2a983f6e06f3272a87016a99be2dd92e28fd85ab27176f3ffcb8ebfcb297ed1a1fe2e97fd1b4b2d661c470562bd241ea972a8ba122e7b3a585504c0bc277120b3432bd7359d42a77546e6bcf07d3954c4780cfdb829152b80af07b8550f35fbccd153915429ec4b21c3c30b048de83175fc9dd2b5df2a4793ab0dd7c9d223cc70ded354153efa69954c0929dc8422fbeedeb10f42445d809171f031146095797cf2fecbf7582614ee029a3ddddef21621da55c9659a3dfbb2de33bd4a65b1204d0b84428722d89c812092c02f47e387e2aa2fdbc622fb31a4a1f52173ba529db8e0a876fd8329449710fbb2189e929e03917a85772edf93c96139004bdf8d1ca483249925a6e151188dbe63572417b02219d942de390935036757a1c6a7ce0dc0c25660e972d480a45bb1adbf7d4c7b29b0ba66d5f6cf726b82c48ca3be18f8c95b1499d5d62ffbcee98b00a161d21286099fc21a586a022478bfbb01896914399d9524bd10175296906899159819195e92e866e61bebcde0533c2a347e007732f388be01d1a226c31569c00c830ccea8bae7e288af16d29706eb305018ba3d718f74c4cf436c05b854c4b3d6304fb792386fb27334d7c36da4d0b3c9a3dff1a842f0babc0034a420c585e7b3905dade3fe252ef7cae484d86ca68f5ce58bf98dda34ac8b2cbfc66ab67c11abf50743f72780b605b617daa8cf43ef46c3cb8b6dca0ab6863ebeb498bf39acb45f926e7ab87879c0e74bf6b6df6c33a2bb13252343f721cb7c789667ef1ea7c7388decb970a07b676cc08b4865c709af5b820052a4935235085451cde7ca20719315c26317f7f9fdc69be688eb16d7561a22123b0f3c249893cbbfb106e392039fe0abbb06c628c91cbb4ff7fba6467a50c59d0e7c469552fd2ccfab9c295eeda305c03490c8346357067f40eb3e8856dc8bb763eb07376afe653c123c5762b55b87ec6cab94e6a02084a77f89d7cc04c55f22cf6b0dd645d280aaa8d2bc28103a24e77eeb71aaca33f94ed5069d1e96dcedc6552f0a54b3d32b3ebc697e5c5d4472f449468b9c729d7997e7644797d63bed981544978e150fdcb2e61bd89bfa362cfbe2fb7949e3cbb35c25e50b5694d1bbadfd14b36db573e19b020b037c89ce3c71cca3f331f6e5cd7af93d7c9314b2b18486a552adcba753ed7c1c9e9ca97a68f2a1d4bdc3783653a6bb72fcbecff4c568f9631ae3ff4d806f73841d30d88b81ab197138f0f1b2c816f00e986314bd89b417bd75a5c638085a9d2d5f8b6242c88b0dfefccabc1538fb90083cd8a799ad69ca6bc4c1b0b12ed1a5255aa4a947122eb4ac8ae6fd040e89fb0678529b9244b707546b1bd9fb412fbd0fdf7d56a65acc908f71dd5965c111d2d2f5d6971afb0bed1d6063e618ea6b6bad0eaf61516263d49548996b2bde3e6f013254f52586c71a2b8d4f4f50000000000000000000000000000000000000000000000000000000000000000000c16232f", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 31, + "comment": "signature that takes 15 iteration(s)", + "msg": "4500000000000000000000000000000000000000000000000000000000000000", + "sig": "c71f120686db0668c0dd210910484bf501fe690efef48bd02bd03f1bd327b0e148e3a46ea7f2eb5e1a6d58ced8a19101eb8916d75f15bbff915250405bc58975a21113fe61cdc2c5f93a3b2b46cc644184d365c14cd6df406a9261e719c86824bad36f684a09aba84805d33c6572f7481d19bb8e80b6cddb3d7c26b32ce1522cd59c01087fe00992ffd481640a9756dff919396ae83905bfcfebea1d3ff37537cdef20c725467bb2cdbcbf71cd5765075b4150aa9d9be9b0d5ce211d1780060365a0b7074f61018a4ff3a09dc27397c87e1fad8859d53be558efa72bd639cea5cda2819caa749bd7d732263e2ba9dff0743a08c2b6327c78f652b34c2ec9e89369712de1087cdb300d7e858cebd618bb19ee31e6ce6370cf10089545bb64929f8e775d6999129e638d54e63bc90d678040033de25c865da3eef3ca96fdadc1a45715540268abe09873d5dca2f28112dd9806f6869c55164d44f599359d15ce619887da997f108069c04bd48fe21820e072a950c72713f585858de6fa31ed0ac76543328109e1a1bf490206f7540cc842a9284f81b212ff4c1a2777cf5aff42f2fbf52799c171650ec642f30247bf279b65d1439fa263fd9d502a2fbb7ed27106b62d0e3518c48bbed49345c93dade1fbe8561dbfd9014ef359e2aff04ff902c72f3d35c767f790e6953322c78b1a337ca20ce1926f26d56bfcf395ba99c26bfdb4b5f5e4b326beabdf37671166807beffdfaf1919bee6603d8b014e74efda6d66e34945c3b16f2c65bc4c7081e6790aa3cad83ef28512b4db49d55a476f7efddb4deb0746cc4e140ab7c15386d57bb11edae4cbcbf5febebe545282a10c7ab2281ff52e7efbe5df4cf81325b409f89142517c67eb2eb72e8ecf43600d8e506a8d497482941541b184ad8bc52bb3bc8b9b3af6688851b97100b7da93a89ae160e7e66130284c8df618941384413d5fa1dc9a0e09598dd4c75fc1906986fa3c80c0cb6c1e783fc0809e263ef509e5509f9891dd74e28c3e8565bbb6fd82b5e6fc8d20e76d1cc4c2ce521d9d1193fade2cb2c45991d3985fbd7e63943d6eab03d5ebd409fc9e1358ced715b71e1b193cdb4cc415dab5a2cdb041bafc8f6164fba9966901a33c6f1498170c84b1e329facd38b4d23d0a826e18e54e2c6ceddebd574d7b49d2ecbf449e5f87bb47738bd4f90672cf42957514f5640a2c1bf70bbb6882c7df8e3a9b833ef1ba22f5f61e6afab08e1fb8d7cf176921e576ea3b48b82560c645ffbd21bd90bf51ccd5f6be546012f2facb0f400cf506ed9b9fc578580c197cdc57e68b7e4f4be152c4d40a814533c48f850fad41c98687312aa50c4ecb4545f6670bbb7f2dbe2527d29ae77fc5a5e1985e63ff2f3fd17a8662b46159d51152fc3fad559f69287f6c343806f2c7d23dac9d3916737e0d657658544b89812f279b625ca39d18a750db15918acb4f89ab3c27bf861bfb8974caa23a1a4fbe03856a38c9b3ffb8481d51a25e6fcb98eede5067ff758b69b34452ea324ee85c1ad6d32d7f116a4b5b0a70f8f3a59ca9fa84ada89d406cdcdc93e1aa8c69839c05e82d5e10099ec3f8a8757a453568aa02db8626daa10f777724205d0033e3a15931a33391ef7a08f5f4f66efb01001608fce5a07f6e4a6d701931419a657aaddf1894c5dc992e174dee181efa11590fbf39777828a198281167f1c9a0f9030b9f4c4a24097a1d57b26cba513a34f3bdb0e40453ca04c5f8bed90dd334f9f73af9e2b0851764928a1cd6b4ff9400244b365e01a25f61129d9dc487070ef1d722288d48aa12fcebf5326e03bd06f942c9187b20a8d4846432888f5f739389faaff87a1934e61581edabd18b88209e200105d202e98de95d1585090a8cebcd7fa018566689d771c0d22a94b2b5993d8d5326297dbca01de134c9376bf7c89f84a691e29aa489b0c32adfb4bb67660effab44a45879bd77c0796415084816c4e309ae2bcd9d82b24c67db4bba4770cbcfb82161b1f7e4e36d3d34e6dcfba4e213435d084081543dabc043577c0b5b2bd43f562966cf655270e8d6a29726a91a3e1e436ab65b81e17e48e8426fd02fe06d1989bb7c2bdfc69ea4ee9c702bebd3b728ac4f4abefd27c37ccf2695ec08a932b1aa65abd12e02e9ce31aee95b7e08c1baf796cad44535249e558b4853eb08f2998cc18535a994ab998eabf36982c3f181d539a7ea9b4ec12ae63df4050f8be71a2607637b64b7c1dbe00f4df1a715d78fd3932f7985b64d0659763d629d7ab24e5d3eaadeecbfd2d536f9d3064a608cf80d1a26324e95e2349b8c882d552f03cdaa3b207412be81cedc32820925fc849e6c6f2848958c852a3c8208337905a8113ca4f80ce856a12f0a96fbc28a7ff1807c897ba8c6e71aedcf860f2cd7f704065b3b9e96dc458f124960fe2bfed97a4b1bc54f0b33e81b282bd188fdda9fba828fca5ad61076a8763b4a66b62f72be801d33a50138aba544735f7745e53eb741330d4463198f7a91b5c40ad7bee0a74886361dbaef6ab7265a18f9fd4047b324094ecdd095b33c873e20d1f0fbb8f979c5e2911362cf36afdfab95c6762314752cce2605cecab8542ca6e4a623a0d4cfc6b6f47db183b8405634aa7e20f9f19bce729e82017d8d0c417eb1a8e20a459575b1035ed481995b493497978160aec3a120b19406bbea75665382359e3b830daca4f1916bf3e4a691eb5687e1ed77b8816a6e88758a7e09d0290949a905394adc6f5c892c5a56dc3795e5556f2271d5054275259ec0d1b7fb4a0e34f9e6ccb5c258cef0361ded272e3a0487538e950f04cbd3e18cbbe2abe776ba611e01d4de912f7e7408d4c59d6b2fc1600f5fb731491959b83febbfb68734f3e7da1f8b874f0e36e70067717a136ebcb3ab6de196a0d9ead00a73b0a3766d676406aac593007a1ac555dda0c5152148a6fc575b3c417f40b6061c735aba867feaeddae14dc2b1678fa05e998c03eeeeadcad8166362511294b8219c01b9e6b35496c88200df64a119c00ce421047b205bb18f16ec174b9ab7cf016d9c609a06e8f9446d8733209d09adabdbafc967c5a700ab994afec6790b6c21f12269de62d6ec79922f66dfc3e62e839dffe9506e5504c4671a0a8bea37971a58670ead5f82706970618ce09b9973be3f2c9ca02e28240e54ac154c48ac50d7522cdb7c6cb45c079f1538fbd9dab54cf0890473fb788f98aeec5d50eebe1b2896902aac99fe41840ee59853885e4ec6bb62dd0cea7ae690a26155db1e3e4becf12b1db0ac1e479cb99b40e2c2f477e8a9298c8d3d5dbf5fb1418191c274a9092c3c8cdd1d4e100121b334c929cb4c1c5d3e3eafd3a405d6f75797f8694a7adcaee000000000000000000000000000000000000000000000000000e1c2a37", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 32, + "comment": "signature that takes 16 iteration(s)", + "msg": "8e00000000000000000000000000000000000000000000000000000000000000", + "sig": "14c99375a81e2599c8d06ebe0a69b2133bc2bb587c525b9339ca1d17bb72f23617ec28157e075be090760e1464c6a3455ffc608de20b5d9dc3e048431b90f663d12821c5c7a3922468e14c41a0c0394b59d4506a23682ecd44e15360253bae1d5fd4976d86ee1bf623343fb72c1640f33f0a349c46918a31bb9ab39dd0a4f8b0f30a0c7a35d95be0204b25c0b7fba03d743efa514c6ca457444c5dffe0cf7fb07c605fe19dd47838553a5240fe03f47601b945e3b11dafdad655629ce14668b7b11b68bbbd975f9e930e396c56c1b87228ef9f3eb6a68046d2164aa8967d25b89eee416f722342ec92ee0638141367a6c7cd25574620c7f6612c34eac775de6e6513ca261c34cd658d2d2c51e330797a859b0460830f3cd2e25d24cd16d28a2fd11866fe37e95a3298edd7b59abf1eb5cfbc9daa0b10522ddb49b7610004cd4c8cd63adcc03ea1dc9e76b3b5e78b9c7288d1dc4f432c7193dc1ad16f9440fde9a7800b8548040fd9d53668a05721aa55b0fdcd720f9ff3cdc261d2bc177360b9edc731efc48236af04a874794b28b498d69c84eeb0350e29310bb4013e66d350d6aa6c1c6e242fac0506830cccc8cb4108d07fcfe5baa4219b34ce443e3817bb7e7be46ed4636e144773d43ba33fad25358ac0d7236374aac11148639c493b058133cfcd9f694baa850003424243ba68740aecdecb64a7218dce9cb325a1056fb354cd00de37ac510ad0e8dfaf28c19fc864ff9b0a6aeacf5b16870f54aa6d274f76e38115825e2dfaeee84dc6cf78bc6c4551def182b3523ba28025a66ed53b17d136ee84bf37a58c3d39be0da3401a1042c526ad797ab88ae19f308e77275438f3b35ab9f615d17d2adc4780cb8deb499b84e8dc4b30154215d2a9a1ec0359c7b9d19e139b9959526f8b2a8d463fa73ff4036b0ca579ab4ae3fe204d0423f815128baabcde5dd573a80e5f6c3e8033f4bc259731f471d019d94dd000e4f9b327394c16ce4f1055f6c143fd1111f40a7785c1860636c3f0c83dad82cb4cc8abec00cf47b6450d5a14fcf194e0b52c6a9a79936e413664d69106de3fc0d51a46631502784cc1280a37e53ac00abc5f748839f4a7633af734960f63053feee7121fb7916c9f5bebb28eb21a11c296d7d7e44fa571db63a9705e740b6c5f1a7362bae4949eb75fc032efce8f3f3a2d0b7d6592fb3e3c4177b16d76a3afa3a8b17698173c12506644b3638cad9c3b88d04c397dfe81f20e9e973d7801b27f72b637a63c03b10e310ff4ceb5a48586a98cc616118c9ce2ff66c4095ec9110abcc94ada0048daa2118c01bb9aba0559e94da8a4192a853a6286acc5ade6a6f49044a3309dbb54a77218ded7da1034eb783c45574e7e4cd78809bb43ed4cbca9bc272004bab0223948b591024ede17016e86c745621904a02a4c5174fb428cf50ce231ae1340af87de7114eeaae7ffe54cb4bf1ed3ec0c0b321ad1fba7444ee43b06ade777c2b520092d42be97dfb0ee411d6ff3c8349c71757a512c81972ab985f8477c413e7587b503504678498ccf385425ba7956fb8d7b5b9c98fbe305c6fb02c8f506172f27135bba198413762c38c0beff5365dc893812f3170eb71bac17bdec2be63a803404956bf387529d8665023f8771791da8cf248ef36235b8963296e5cd7511e3fa336fc8d1416201944f18efe4c4e148ae65580f9a7becde6b2f3702c472b390dfff2cba03b87caad2e21b5a7e8f6ce862e19d02ed0b6c414332856fc8c4b8573b11d421d0571327a920af589cc9e95ed20b67bf5fe42ab0c10fe6e50f74e7dfb744823d1c509eb1e7b8f0cb57365772006ea4062ccab912c175e7f92af31557a146400b1925af33ca1046a1c63ee495c026fb7cc3d69823a9cae08ac9b8c132d850517c8b63263b1ea8f6abc0151fd0c91a030b06f54c8b9ae00c6172d1514429ac99c2d2c69622d7f77a0202d1230601a9b66c47d1fc769fdd56e1c347279a768d570947be75371bffc82b0625b4fe4b894bdee0c823de0efbcf9098c6dc794b8bfaab115e8f8fe91ff99abedce4503feccb5d5aaa86143e485a9e37d91c1f7a7a98b0817a1366070373ebd95a42700f7dc17b8da7c9c0a9ab428374bf2263bdb0161d90777cb3f81c57a0a4e4667ce04f7af59c2d2ef27f818f05cc6c0490fb74687ca5c5d0fed0415585012df650c268a0d0f06a734f7c616e7505105031db9f815daef2132741f32ad3a0b716e5de5c453a52f288e25b8b95bb86f4d739e067c98e95b3de3da4ba22e2a1fe0b89a996d706af8c8df715b76c4eda290e1956ccba3ba419ed54f8afdfce0d9c980de58f34b03048c4398033c566ee3ae5938bc30e83e1a3ecd7b8b188f4b80c9ff39333a09bc70a32310be442279fbd5f343dc27741e357c0feed404abc483b428c990d800e3834416e5dbe0931891b983569357e50e2e5437f94c63ba278d15f8d3f8f86c16297739911dea4e402394f14b375019542e1c2ccd5b28f580b61ed6bf4a033f038759755f757b26449cf56707d6184bce1607f9f28d191c2783b929af638a36aae42e54937b48685be5176c533f43eef02a949df480d8f3fb7722c87bd9007b77b468974f3c85a7a846e8a59eaa817aa1bf9b59a4314deba7007bfd0b67063a1a309d176d2ea06dae1fb0e03fa7f2393be4505fbe600de5838212d59a960ca5ad262b0467b3b2f5d7d980e0d96225a67d77277ae92b96cc694f11a73b478245b90409ec3a7a38c943d178aa055c9159563ba4d013e0d5b0e6dac78ccc8a1a673b299c5a6e07aaa1362f16ac59122900352896ce96fa40a1ba982c13ea67d0edcb889924adf3f4ed5e73877d0ea971b4269f5c14efb5ac32921172293435f40ebd503f169bce2492201dc55a51a86832206f514562340d200aecfa466908052628439783f49c0efbbd1fd480ad61b4994b04f7ec9ba3581de1cdb7f1f8557bc22c7e27fbd4f2035e5ce01a2281f642fc1ff70f57e328bef60c42372f47073830b337da28703070987952353985d308156576b537e6c7ad946e9ed56d7ba3bdac6295a4e0bfc8d3be7af1e6b6229975c8ac98bc764272be4ad678d2cd582c78111a4bd0a5001892869fb06401c8730c0d1b30019c9317a4e306fefebf5d872a10caecf8956298841a9b4bdf1dc516454861b8454d897e09a314513099ea0a72dfc47389fb510a734c30a3a660f2fc6557ba2c3c9274e4f5f617d446bf9b0cda4bd291cc7ab589e5b30084fdb1f1c6e863b5d3323addf025a8aa30690ad6556325ff97a13581df5a13800040608293d404556778f93adb9d81921293b3e6165838c8f909faaeff1232b2c354647494e60757b8ec7c9e7ebf2f5101a1d1e26365f90919da2a8c0c5d6f3f50000000000000000000000000000000f1e3041", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 33, + "comment": "signature that takes 17 iteration(s)", + "msg": "0200000000000000000000000000000000000000000000000000000000000000", + "sig": "22857e7ea6f532cd84c8f43b3e04b0a356b547f784ed255a188fcfeab263b45543fb316866765f963a5475dc33eb5aef8798b78ec76412c7707cb0b3b73b3856d3576f7911b7d3ca907bda88e88f3816a3b81158670b1bf68506fe8a6d86bd0b6074735da8756a9a66e63fe034d2a5352fd8c4709e0d97ec154a43e2ca5302a3137467fab29f6e0669ab0e7be2d61e621ab751229c087e707bfa51d1cd37fc036fd22bb8fa3ef606cfb7a7595f1e71c5fad1a1bd619efd804377cf5a69b21f28c4b144ca85cada53d986c1ac97da024b1bc9a962456a228b1f34c48738f33bf159121d0a4ecf66e3bf0cd9537d44314f5cc17b19d4e62bbf916ec1d867522d85ddaaa722fb0cf0ab09e5f65c666b8c1b5cea2d3997b156a8a982a6d36c07b5696f9e793e23601264fb5dcc551a7a718b3bc462c90e16bd97c506fff561ff075e25115ca37805a7892bd2109cc6f45a91dd378a0846196da6a80157c36b0a384bd7510c86381ae9d3501894edcd29a6f2977902d6d2305f04eec500d12bfe93ab069f50eb5e193406164ab224c63f8de1b25ef0a092d18e729cfb99a41600f7b29ae33f107e96d9561da01436f352658e1bb20d7a12e1e47464412f6b93e88643e0f4446a1435741e1ba5e5ce66783b683d5e82e2e8739d5b52f35fa2aad6b643bd3854ab62f6f054378d2363aa9f73fe464fb0572d26fad0b1c7f60cf2c8910c682602fb7bd470a0a1505e9eebcdfc1450491c1e715832c7da62b1e563c30dc94a28e850693bc034cefea3d655fd4895fae58760ae91be67d1fea438e53d64c57ff4f5ee765ca45edc1dc0078e8faa72e8b5f2c615d2cdf16fa15e64ba9a18847ea09fb77051a433bf32758827e7951920ba7a556ab90622c496d385a2e20e98d365d92ccc5bfc3b009cbfd9098077539e628f3ce68454cfadb9ab8fb962a56bf5c614a789306b8fe9c1df003ce4ddd94b8d4cf1d2c63287cb755a1af8c110b14de579d75069d0db2aa272387a61330e26894d814fd45e9fab18fc8b3b943c6f839acd5a0762226f70094583ce4ce0eccc8a321b27bcc597dbc14465c31eca8b66d55bf2009dd160c1ec323d144aafd9476aea05bb0b9b09aa5dc5d2101ef30992a4743d9d2f59803bce76205f6fa383f608c8b3530375968bb22ff15bddb7cd958cf9e0d9a9fc718c92bbaa5262e537ce251c186825dbc4020dcb1af4e1fb3201824d3858c388ad5df9ba27ab0819dc8e1ba037b7a38252c773202ed409dbc4afe637e6bb7778b9b99c898aba1e9bd312cc467fc56531463cbe2d588009d55391f88d6707cd5726bac976ac074a1215dbbb69720c8623f51d3414f2b81629c67ac73b488159ba80307eb074102efa386f2ff9f849685d2a5acb1c79cb5747a4de9fe5ff2a95f9efbf1fe974452cbee60704e94a83ff10b14a6927a3ff6f3e0b171cd3f8bb6f146668486bdaf116dcbd89bf850be88a0452fffc6da8597635436447233f9a193ffc97aa27969182027f034811c14bc460776503b25019c29b7e050a5bfe3c58c85fd9dbe79b9320c44a3071446088618a3dc5e855c1a251533d015f69ca41a20f7e1477684c4fc2c9f58d24e8732bb15d1d70091775a7b0f77a2148f6190890c3e7a712d521c8a4b202ea6a4d0007df773dbf9faa469da801d449f8a547eade48714069276f022cf8a98607f8701dd5f8e3bf658a562cc2f3c21ec1ba1d0d5766d9206e7656ec66fe410a011fb5dd7994697228c6c7515af194ef534ea79a579686f84285fddad8f8cf56725f051fa1eb97fcf5a6348e2d5224396e6838aea802f7fb9bcffdd8aaa1daf20a34ad5b7f553dea0c70f4c36f2e7dda15c586595041495854e666ed4b59669a8a17e242de04b18f079be37dab5ba31cf83bc20446b5861cb531bd6d5fa6f788f8320e823261bf45466f1ee76430fbb10b5f7764fa636999f055a64023b7407a092fae1211290e750ca02c764476fc89537a3a8da05b053ab61c042f056e2f5fd70eacd2bfa1af59b613ed01f88e7a254d1f511b219549a7eb27afc2cc433706b972a49f81484f9f3560278727446294f12213b1756ac4d06d9ad8d38d84fd81d7aafddbdf72b07f6d4fc06c129ad13ecaf5d02ed50161f909ce6e77fe4e412ab6c961ef378bedad56e82f997b3b9b40f55fa4faa15c4d5940888f904db830b6691fcafaaafe86dc1db6d5e24bf67f0fab89094ea13c31705b1c1cb57ee3484bc58cb5e55feb8db0b5c57ee3e0793b0758ae22408c288fd3c2de37ecf08c8055b6b58668f3a9ccef0ba36faff1f822ded5d3328dfc42dc54867946cb266c226f7b54cfb86ab38b4d67b2714294dbca74a8dbbf043db34c9552c1a82c0e66f6a3ef36e7dfd4d0d578b0fd7547c2e52e0e3ba91344576e55582faa646f2084e6b6822a11a826c35380e55bfa1c7ab39e6aa98383c50295150e10f499818e0482a1d7d9a186d5c03b5a925a700336e35497a403440f3eb53a7046b85c9e8b5d663b0d03d2ec0beeb9763716b0260217800409940781cad5873c49f56986ca27afa4bc928a2dcbb8522ac2010606991ae3e86ce784a47d2bcb5c4c4820b810558675419ea47ffb9311082892b04c0f631cec578a1bfcfc9b4c59a226197afb52e1fef0728608840e4d9e3ea3a4042bf1bfbce322cecea41722e58791900e27b0f0de9165b74adaa854ca2708fd62637af355e68eada8015eee71ba1ae6de2cfa43319718085addda4ad22029f5877f8f6c8ce2d73e4afedec7f707013847be0b75394530e7b252f6445fc246ce6fbcbe0c1579b64d5c96438f5a3053aff912aa5f5f62e4cc926990c929cbad52a6b9df4ec4277fd338ed15a4037e7cae597d743330d65af4a3d018ad355eea4777764a7e5bb9538b3f08f784dca20d8a6b96cc3d0dc6a115c487cce1e26d17530ef8b3a5aa3448ba601f38dd07e43722b92fe67d5bef8d25f326919c3c9df5362d60fa3c08748cc272ec8bc30ecb337ef70c25b60515c9dec0ea77807ef7afbcd62851e9be836cb7f965fccb349abfa858f20e22f483c2413a37cec2fca1ac5b23bc2306007f84cafbdbce74ff1029081ae647f9d5f379c7aa46fd99416a885976ba326cd01043cc6f61c93d1ee134e07cdfe00bbb8af34916190138055a1dd826d4b99389a9d5766d56b04539a4e0d3cce9f78cf40b2049020ba6a501e3d3472095fd5704f26802d0ae9fc6d83c17315e03297c82b4422adeb1eef9f78bd0156dc27fa550639d0b3498ccd95dde84dcc81a35826ab5bcf5124c0d7e19083cc8c8a25ae8122123262738415458768691eaf00a0b1b1d24283e4b5f66688298a5a6acb6bacbcfe8050b1c26484e67737c868990949da0a8d5d9e9f0f9172b3b798799c0c2c6c8ccedeef3fc0000000000000000000e233847", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 34, + "comment": "signature that takes 18 iteration(s)", + "msg": "5504000000000000000000000000000000000000000000000000000000000000", + "sig": "1fe063e34f13d5f43e5339bb46a63603503805d6c5ebf4b2965686df61304439b89b2ccab4789226476d0178ad7775b84c2ee089e205c4bde789d63cb1126cce32ac587a80b7a223df5f4401abbcdf34ae96cb807111365522a02a269adfefefa4bc2adcf22b694322143cf5c9b254659d4daba75253e667cec14701934b94ebe55ab05f8415f8bf220efcc4f587e7037ee98d9090858e79b109f6254722c25ffd8e9c98fe9e861faff31fbe3b00cabf3dfeb0a136df6ccf3f4e645fd3b1682ab4d5eaff5d903eabf409ef4ed7fa24c2028d18abe9404a77262bb10b3c55fa7c5265b880367c6afcc5e893092c0a5ee85d0744dd9241d2ac17770af3de77795c325308baaa1a74e497698c833d5f70b6a57c42700cea0068fb15cb0ba72fbc46f3890b4d202844d5896172d855bd61fe52c9fe435ac9c50a2db4ac42cc4d2ed4fb60b2d9b9c627f7f2abc402901eab78715cd708d5aa2fe9047e6b8e314bdd1a02d1eaf916c0aba9577de880aeefe88463e36b19ae55f6c9f33db06b6bfbb40c5657a73199ee0d792381797c8527e16eca923198f53e5cabd96963c25bc62aa67af3670d9908040b6148563615036c8dcf69dc7ca80b72e60af8a97b32f25ed44387da0b38f1c7b24f684d05bbe66aaaf175c0e93d64f4fa0df858ad5d2eee6db4956d3643453a4991e27a1f1454c4aaf30365668ddd55bd58998117f5a239bbb412bdc64c9bebe182e47cc98d18e7035e5f9ea8c19344e6f988b3c46aa1e4eb626e60a5cb35bfb0449303481069c0caf6654bc76be819a939d4a989a542857a97413166469141f65891f1496af4077a13b746748c91ce2a9b5b4ed422ca3d816a5f458c5deda3c173f33c55e3b15005453a3a05893fd637fd0c696cda99487d45dd1b5f5f85482ee8e757c2eba5962bec435fd1a8c3ff825aab23af6b855ae08f2cb3e60d42bb196c53426bb72bcfd044b1dee0bc25c8f328a9b060b523cdd74db9f7848481ecec970df2b3020c39c72cca82f1875536e1e0c71315e10691a1af9056836a4cf224afdace59d8289ed83550b7aa7b44547d8d95605ecc6f054f1613d5de8e1d293c15e046b65156ecfe243728aabd43d8df78530abef2aa1bfc77a9f808e9d0f5605007cd092c47e40e36f4f4ade77db0fc4a551b1540be7e4f14a9e25e16c9e5ffdc114635ffb0d73cd90466d712f1baffbe5f0c4f75a0b30a0090773163f6ba429a88f816d0181264dd90903d739c50da8280849010b1411dbd2c971fe512ff83b3a4944ba6539aad14dbf1f8ccf5a4c3b304e1fb6f29e6dc46ecd851cb5b4633a89043a6423dc2bcf2a0e3d1ca81c766b3c31b426b63c501c57fd6fe879b9579a1dd191c3e7da4ea20bd66ee8a7cf04229559d0bea4de6f2a03560a25bf39e71d786894ebc376435ef1bcbc50ea2cb9bbb4919157c82e9a71cec355e084f2ac6edb0f35c6c144072ab6200244023ea9c6cc251c8deb76d484e309c10537411a26f8683ae86ae78af4635145bb997829486466073ee931e162f25ff38fb1a684a68ae2419d57a963a653fbadd2be87c6497a442bd6d728c2fafa46e65c5e80c78ba2683b8a3d631ce0ec4c273746cab730358ad7cc2d5bd7ca967a87de2216f3ea585dab2d1f7b512101d1d98e77a6c29ef4753a8a9399b39aced794e68bdc579560596cf8c1347acd577262ae249dd25e59d9a79822c524103c22b66853bcad3a603a00446abb69606f8ac9f8c04a30a701cc1526ff2a24f88980edac7f9b03b3d61dcb22e70ec97e59096c3a13d74fa807421e25b527bc0f985fb3711a6c5c0ea8af3d027ab81503f3c6c92e7d3a909a4a5e585b889c16bf8290bd127b9ac6156dec23c05a5d049f39186dcf8aed90e248da3ee9aac39d3eec30aa93ce6cb26cfc5e2e690aaf1db83b069b4ab0c6266cc977ead1c124d7af6bc8c3356672c8cd45da3946d532eb64b30b1d107ba2405e6cd45bf9d9b68778367988b0042af611092df18497b7554281c278722b40d0583ed55de950d490fb621919d9693bc3ee145e9b2e21f09b046d864370f6c04a0899d1bd1b2dda2677a93f1f142dc794501d35a0b41d622dafb238bf2dbe12fc5e1ed419529c8b6e252e18025e422a7de70de6bc2a6b6b5d02b7062b16845c9cbdb66fa4ee47c0077ab7349bc3aa75ae7e7b0c27e2f5d0aa3579c3dc7f18e2e70c2df7697d4784fa400f512078db3d8bdfeb763b26de0ff3491160faae7be7833d494a1fb569c4251a4405d873418cc8f6fb7e5c77fe87480a67a517e5c48d0bf3ee0686e16284f3f2a7d8ce2f3686e85757841441a896abd40f9915778480e43b2beb9e2c2895ba141e210c749fb8ec97e535de80551dd483ccb0f6298accfd757abdbed2062d86bc3652e726bc4a89ad20bb6a91eaaf35ce9d860da6284e354a4dc454800ddd76c31e74a7bbbb61faca96105344fc6e71ea9e07e3e10925a7673e8e6030e1ab19a4da3578a99f6696941ae2f96e0a86c3db16f603f5ae305e919725c9d9eb56d60e08cd65b0f610da01df4f917f710a4d7fff9d59dd71c5c08c1a06a98f672580b82d16d96408106451ee01bc83b9ee9b8afa5ecd0b92a41513e561180e7e0e11e5b392fe668a5eb01e74a03dec73c15910d6d96526f36e069d822b505f3d4950ffd311d778740167177803f885e3f65b71763ada364e889defce25566ab26b73bd8345952a8d065c1777a3222f07d458ae14a86aaaad14232ca477830162e53be1b73dca24c7d477001e9de4c04e768d4ab1a006ec3b4ac7e5dd334ee5eb83b25ba63beb30861ff5aa23d3794566c594184b06e8a86d956ccedd5898ee19b0c626d75af10963284e31d6c21e2460eceb06fa544784df68a45bc69b93436adf290754fd238e077746245aa37769a2414e747b302231542ce42f79381f04e0a6654895dcd0914c6808bed2e945e8ced51a3fdfa25ab12d48a3110193946cef8a7a89a073bb33512f7ea5183f4e570f4108b76b79c14f17686b455ddae715382956a49fb3497d44b4d6a7d96c857300166d69f4fb70f846e17082658b0fed3e28b8309a24f497b0affd3892c8c9506fafbcc59f24fe6764dbecc0c3a94bccfaf23671ca1770cd37d4e1f1aa33926b6ecd4f9367243da0b1fd2b723c16077d15e9c6e55dd79e0eb1de25a4d0ce5344b98083d16017fa78adfd120f129ac45757d1b016a10b41a2186bf0c41193047b1f798eb0e2cd286977062db7a7c37579c3d8bdb9c1e4a82b2ef983fc5beb8687ad28aaadcb90452fa9d469c6809217ba7282d8b051f22363f435064768f9099aac2050c1f60658793a3abcad6020b1219212a2b39465d7778888e9799c2e1edeff4fe1b3d3e5098a6addde5eeeff3fd00000000000000000000000000000000000000000e192f3c", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 35, + "comment": "signature that takes 19 iteration(s)", + "msg": "c301000000000000000000000000000000000000000000000000000000000000", + "sig": "73eaa447db734f083509ee0c088bff7d805d811b7d7edbe37fda1e846b20f511bc3499ecc8822b9fb1006782339e3f12a1d9d1b9dcc77df9c29863b486bb0f2c0a6ba611ced571d0bed8ceede46eec2b7d63ca00fa6ae9719b176f17ab4ab94ed5f680b222043dca3c3479fa7746fbbbbb151051a85032f5b94636163a9b4e19049c2c29f610b7bb9ed3be2e72253ce7804654b9fe4c6f42b2a77076110d5fb45579542f25aa84ee55cc0e1b015601a427d4d1cc9c4a68bf7ff435292a9bcdba26e552966bf850e146c903ea8fa9d1e5f775c3d950ef436b7dde15bed6943d76849745ff5280ba9f1887738b992ce1ace036344affd9cda8dd181eb29e9f5ed1d5cb2829bb2f53e2885698bf1e5e718654df6a7c7e644c3d606a0ec8b0e6419df75ad75f03b9e78be4e274714987a873576a6096e3c18c1618cc7473e72d3b644c86643fe1f9fb5fe2e1a78070a2435b5206e3063102c00a071f374527de0361628fddd182faaee3d9d95a4708e81894df967754a7c60975c5066863ffafca2a116dd77dada1aa16f16fbfca8aa8c049f7891967ba2d7fc052991f58c15517db8738c5920948d7e680c1b7dbbcd92b7ab94b23f1e9dd6dd685f87999f3381975cb6003827b3fe7696c1bf8d6cda9464ba310b38327cb7a1ccebfcccd28ae3b96b5a934aea50152aa40c66c9cbba429da771a51615758bc512244a3bbe284ef3068944571a407db4111e14b0d2329d6799fc507d1ee50596b1021efa6bbbad329360e61b22243b41b8d09080e0043b8e3bff5fc96a1ef3ed7798d304a51e74925eafece0a8eaef4c39e5e2d03b4aeecf8d949bf8a283e592e4e86341af8cabf74cdde41bd31fbe0db3b07446687bf46d589eaec5b9e55715ecbcaa8337b516ee2b6776563a844520e935ad79847f73b62a77821144fe5246e43d2da07e63aaf925c9e31a1e0beb1a08ad5447b8ad94df8273d56977a7018b50bcbecb9d280895a2aa4d40913c47ad6ff0c8f454c52fa14aff0726e5d22bec77026ff33e9b153eebc4096a0538ef38fae5f823d61a557812c0829d33271f32f507e2a269ab3e2b3eb5395a816f4aa9f96868d75aa59369d87d2fd65e87386ca4dfd8c09ffa3c22327c3def19a64e17d346a902ef082657e499dcb96ab9877d5e2d0d2815ef789b918186f6ff2565b14fe992961ad31e3b692a8ea010a911fa3680f9ffb15356e8c745c565e68133be38c9b4672c493f0b5cb9a6ecf8cbca85d913f380bb563b81a62a2def337d965257806e611242edba13e52998896a274e7dd7b7ac1a3976632928eef4faabafbc97a86e8d58ee6d79ddf3ae74252416fa70e244d3033636dd7c94908ebb4cc5058922e93871bd7f53289034dcff49eaf3d2b702f19387826c3b5553786351202b2528609f2a87d9bdc10cec8b43b759cb1b7270e369e083617e0e226e91e85a2c480f1a4cd26b986327093a8d35aeb668c9ddcf1e13741baf20a785f5152d3062be2c82a54ae7d4b9a8305b3f9daeac55c2bc27580cd465d26690f86d1723bdf4ea044ca3d6dcbce0e54e8e97f0952773d54b659fbe19fe14c6bd1ce22cabbdbc28365f426debd7c13d3db2d55d60449848b473d9969fba803b306538a2d2606e850d552d7dc82e6f0dc3f32119386d55060dbf1cf7c1df9d55a005b8c478b04654a2115ffecc7aa1b20087319829249e3766ff79f388f4954cb6f8a9b67b41bf90e9d0ad0e7f893d16ef1f252d543aaedea30976fab88ab4d4b8c7e6a660f265cf9d7e4bc91d7b34fd454bef1cdd8610f0bad851e6020773a3c1e132f81aeaa34ff076e79e4b53a9f4cab94564aae3a12101b99a8b5ba38cefb632876c3a5b494ba0b488648a299ef76a18f6a6a716481dcc2570a9939f3c20d02d6d05782ada7ca99f22ce1283d46121d1da8f8b8c88ca1087993ae61029a4d8b08896443077d3f5e03a35719c67aa681c378b1707a5052b4f87871bf618fc7365118d3eae933324e7f8f18ee24ca13c702fe0ad56fbb75fa3a80d7f6ba46903f3e77acc4e55e1503007f41136b19542cdbacf7d58917e9f03eba473f77ffb364233d7ef95189f5c912d2f6075ed96937c166a7df24b4af204689906358b4341309dbf300f456722a4ba2310cdb442aa7a6e7d86f7573d49f9ba5151c6ed717c3491fa909b8006816379ce1fe7694c5fb9d780f7b319b89e66ff38cade6e75766a00b4fde7d31455e609c5568e6d686c8f3dd008ec096d9c9b873f6deb5f305dcb358f04a952aab3fb18dce088f87045b82dca21c7be6014d3b8063043147ba6e6e4919d41e4da939796b89f1f4359d3a653641029d61d8e6d573bd7911e8b2249a8d3ad24d09bd7a43068ba2ab47cf601b0449b2f1235742b8bf626a6bb758da4616bf919691838b69815981ef7bfeceac343a0e0e9d349a94396cf8656b26c89541bcbfb1ea59ada160b8ce3fe6610dd0b1d8ad310d728b131a17549d0f5b325782260e84314212e656ca4ccd2cd2afa74c9900ce1502ff79b4b45404dc84602e15ab86df4c5539159722b2df4899e2a3997361b3de0ca7c25afc37dccfad8922f8ca489b96a416dc93982198ac4c50a6978c47048d7f105c60fe93db814ba800a93090eaaa6d07db2d88f35486aad3b6a62cf4d23eebfd56f61d423212a1ccbc34b0459058614c025d1f718298c087751650b6b0898061c571aaffe00d9f610f984ac795f91eeeb0b720842090c294594b5983246388dac462e063d8b8eb6062bdd8be73413524fd36413047d547d769cb13a86fb5e023a7398bd96bd1208a03332d386aa90dbe3468ecce9ae25d41ee476e46a62f0bbbc6840e4c9385a1468470e6a2b68b5d530b53447974e0249d2696310f90461e8f5c9a345ed8836cdf0cc619c87613c79dc68c425bd5540224c47ce73933e415b9a37da03a4d59da5711dc460bc8446035f28003457ef917e5a3cf7492175c665eb86819a200706feeb15e57f9e591d4b2119307785a9c4bfa43f9064632d900bc096c754676ee86f6b99472e0519cd7d5a91d1995e134a1121c88332c692d958e6cf1873293e166b336bf60c128c686ae79a7ab94480cc163fed8546cc5c7c2cffee9a13dd87255aad91dc25f9a55285598e599f264456da93b5a8408150a93ce893a3794aad44cba8e9be2cb8a51c9f2bc6ec99d7cc2e1749a06deac7a1d65763a61666b001d24abcfadf3722e726c88732c966f361bf09c21fe69c3e999c52e6ea900466331da1c399bb843b11a55d68a9cb554fb14c053a54e5434c1797db26f0640d52a47182e33585c6b738fb4d6dbe1f414151e31374f5e5f676f95a7b3b9bfe7f4f6020c0e22303b3c3f515b67737c8a8f9bbadeebf30637414c536465879ba2b1b4b9dee9feff0000000000000000000000000d1f3344", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 36, + "comment": "signature that takes 20 iteration(s)", + "msg": "0c04000000000000000000000000000000000000000000000000000000000000", + "sig": "2d72e3fd6ce661e3908b4817430b6220d0bdc42898a083cfa8806d4ec27ae22e90d643611a7a413daa1cf5df06d49794c5dd20cde2e299ff50b4f88106cc442e9ada5070c7b1aab70bac256d7f7dde40a0989f82c59309e753b5eabf0b1a6e72d65ea41743cdccd2816aad71fadfb1bc3eb51dced8b05bbf30caf7d130ce6858fa3f2d3ac1664f1bfe11dd97304089767ad12e63fcf9de612db5c32a848b5fd3008136dec2fc36b0f1e6bb41a7efa9b8115ad86c77f3e53678f40c66c1bf0b874c31d74f91d1c9065e1da91273e51e5ee90e5d68deb477def3ebac82eb3b6cf4034a76df55515c556063f33ef510bdf7cbc12581a42847748019efff3a20a99dac52a78fc22a92bf2659a2196574b287814a21eb3d005f7d97624fd336671ce28acc2fa77863368e054e0b46babb1ff06eb03c6ef6098c8d7b7ccdbbe3ae271bc3f03a65374a7f2df2af1d3caf2864fde58b006c2803148760d8c8c813087710ca113a32093788510656ce752c656b99025fe5abe6eafbbed43cda9c3c14930dd06a083c8ceb163ae037982ca80914752009580b43209cacaf4e0f95291d56e6f8d3a336197d5948b19c8275e329ab0cd3c12d04fcb8d60195254023e027d448d5486c9691d8e288aaa7490a32d7eecdac4194b052adc92aaf7398cb8912b1a6c49c483ad07a326b258ada4627e3e119d7771438c73440508b88de8defa0ba4cf58f0218850ddf4cda52604c75443db30481118924df0f27fe55f6e1eb2797d4961b5b1d74851e6897d2a60dd3060ccd7bd6fe537b4a3bc756297f2133f0b9f3932065247c9531556fd6d222e36fb6855c58a14f99b2832a7698f5b60f68457a7813da5dafe00e7541ebe35b7566f83c90d4a98bf2d03d437d236cb2d282e585c6f0b71b350a6a33b27706e120082711dc959ea46e7826c9f49a6cdc03e0e5a69f11ec116b050e63018325734a22ba31b58f1ec1de4bc85f67a789a76dc54da493c088b75a93ff49e9fe941e747a9bd01dcb56dee527c99c231c5068f5e144373e0f028d83731637fff35ee0830778c7f8c88b883d8dfeb6d813808410670e3206c5820e61e6f97a32e624c62540b012339ca99e2e9b6a43d74d1b88c34746e4fe815ace8545025b357d24a6ba7845d19642b78a1db904a9b4dcd0b0710c5d3ef9a5aa8a38ee12b91f9481ee70841ec1b2881dee08687fa15f98a3bae11235ad49c0f78fababc95356645c29cadedbadda49e80de413e7d798d0db74bc2149ecf0b7b74847f79ad5099650a4205ffec25c3a3a646ef804195303ed3390c5f5bee47d805686c823cee6549b1e055b3888e0251f096d1168a6c8c637df8f59467695ba4683b3e05a42be00c1aba8fc0ad00f0aaf276a52f3a2a7dada730d5434a4f8e93fc2993764b933645c8596f6d38a296defefe4fc44b0f3ce5c952306827027a682760a1012b1ecfecedc09205044c85fe6bc4755c19883f8ee3218e4c99ef5cc876c5c4d6204590c6c51d20585403efe0301879712b16542f38d0b447ee95b2610cacdb06c06b188d382369619f06a6b0f644ad00d0bdd28e063122230348a11156ec0098441615b2d80264715e65d65d5ab7bfdee6f0ed600c62feacad6f2a604546928c29b9e16d8d00292717728827f10c27ccaa6a26275393870eb81b1975fd1910d3f25c98b20d84b3d051c2ec227426989f57aee2791686c0214faf8dc35dba5c1b81a9645b3424e8095a5067b39d34a680b8d33c385b601fdc455c5ddc2f2663d03cf3632710cd03c218378b035dee38e029de17cc3178bed6b562ba1bf5788240cb38d3e91bf624cd0e3588b24d1a80f9e706146b4b7ea7bc1c965fba1713980d7b7c4bcb804cc2a6f24a11a3903b004938f959284071b4be232ed463e2b5e3c08afec1771ee4765fb1f0e4778c7632621ff6180be084851cec7dc7351ab88e6ec2430127211225b5814de260db143784ffbf17ad4b48ae1f359b6a104de6a9aa276425bf5f38add1657ff946ccc8f365fdfb8920da5e3cb87ddb4fe7be797e09ac0689a7e9053f1d38ebba5e460770c47b9b9e5b2ddbf904f39414d41d9b70d0b14d8e261526a9a96da622dc9556aa04e33bb21c979e2ae379a53d431e007cac034261cc6f67be2ee9605fa7a0f320866c8dc9f561d74463eedca5269e313ed24f6630251f593e0dff65abaca4e1f9e6036ebb0854ee6b7ff5bf311ec272e7bd0cfb5c310d3c9fde18654b97045ef5e33c2b3ae0b9465f62172e10a6cd71558d5b362bd52c424128e3fb9acebe8b5f90340ae2f3a6f12bed386b7629648d45cce04c62140c7bed13d895b31fd2bc811b683c840a514b18161e9a1bd4a87ed1b60b19f592ff46c7c1fcec942e3adb6a77a76917a585a46d603b5e70249ce452d453543912c3f249b67c8e7410c6362a7f075a5dc1e10c657b04824f14e7c7e89c0b5d6e881b230d03823aee73aa8495bcdde039caa4113a9cb52399922e851e14ab0478f34527c8493878f94ce43c0cddcc462b7e0316c6d4e82a5bdff868b308b3984e951aa9c76d88c0716daef6e7d4a7085de4217cd2d58943bd5cc56ef06dae79e644d79b75efc91e193ceac3f300b487b3a6759f5fc509180163ab5d5e2bbb8d82c2f4f16938ba0565fe99398a36ef62d82076c107154257bb8b27c1ce8c1700d2315519950f3e60d266c44c4309e33fd3a1b4908da61efa06255332d8ea2603a5d6e24741598fe1a329cd1088d8f80ced8e764e21c0e066d6890274072c7400d52f614397a32a757ae315eb92db9fa9f91314aa1d0c46d257786e81bb964c0aa3925a66305702fc586190b28a59eba76ff17d136f13194d70aed69d724b706762c25342bfd06f111809f73357b22e1c323670ec7683a90ca88156343c511ee40d750bddeb6103b67781bc9001b268fa664b5cadb4becf355d87bb9c78fdb6aff0b056535dec4ecf4ef1cd1e8ef1c7f896136854979345c88046faac5b739fc0826929fe07135a191e6b62a85341f831eaf358784a0c94709adbf6ecaac9481e79bd545128ce280e260357550e1cc5b48f812bd0d8b0a21fa2420efb05fad4f3418e5f911d1a16d0adf1facafc65b9a822ee30712e954fe69fff7188a09bf63af021aa5f94707ece2d509d20bf1ffdaa61d0082cd0df593d2149c16ba07a56e41a06827b307b24339f51c62bb0e339d51e59fecaf927af047acbcbd2a19038b361823c8b07caca1bd535f7fa5fe86d32bbe7904253c5ab1946d1f8b77c41f744f6467ec0257889b51a9b19beb38a732bfe868482e6178730024262b30383f677e8185899bb2b3cfd5dff706223445667176797a9397b7bdc6e2f913252b3235565f616670858b8c9aa6b4b5bb0d1e27313a505c727c91a5acdfe30000000000000000000000000013233543", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 37, + "comment": "signature that takes 21 iteration(s)", + "msg": "8302000000000000000000000000000000000000000000000000000000000000", + "sig": "b62f09c76438047b99b072e874350c21c1d142f743a23187d9deca5ff1e8de11159cbe0f0aea6d8503fdd612e3d0356f14cd0a00c692fc57d9b88eb87d387a823b8d0a9871a741566e1f534632499e6bc3f190a995f74de6f987bf802376a1349230f0871b4af2938c93c2beffb14246762dd86e43fd2696e138c754a9b8e8900f1e37e243fd52ac9417de6fc62e3ad7f83af63bb5e532b8fa1660671ecfcd90bc03caba4a4e11ef1636b964ad19f43c21d1c7c7330cfa3af58e5286bdf9dce6ae677603f3ca444b2a8095cefcb16afeaecdb628bac2d0295a636e70e9ea0986db39846ae48d2066ebdf9b25a2c206a36b05f195728e13b41bce9df9ead16384d1b18e408a8ae90447520b33810f6e32cc427a1ababa98c9291c598d4e41515908b660bbd87f30c0c81d590e337d22fde222b4524a3c11a85baa3e0dc09584576b6977485168add3d14451b6f6a14434d48f1d7e80bb092191df68a29af79c47d79f4fb220ce7424d1ac03844c1b4d401d7d165d09461b8fe77dea4228e75d2daf9945b594039ef8ae07bdf1f5c957238b1692c1e25f92b5274a84c2055b6489efef568d6f0b77a39c60f68c8aa36f3b4e95a5490fe52c4789a5a1b0a799b992f93d998d430241706e4511d69b7a4c7e1881af984f6104beb1da842de06699c591c13c4891862cfe326c564a557dc0684662cce0cc5437dd14d2f1a9ea6eb62e8d20270efbe8f632dd56319c84da3b9aa6688c8fc63d96e281e316c4baa40685084b65fd96e309c390180cf6a71a22c2e73421a8450885583a8cdd02bbcaf0bf84a36bd3bc469f66f379d50ab23c567da1c5d460b8c6a7d24842d39580065ad98287d04602db66fc1d9c53c60f15161299d2e4f67f178d247b8658c869ec39d080378627ae90e04d609ef8e2640f1013d699b266aa6fa7ebcc1b6cf5862751f6ff9a61e6d4a04bab9f86590c5c0d32de7c41b90f594a09e967142559d6fda7ce5cb6f8392a823b84c1863ac229a1eb5bd7e837e901320fb3a4ac6e93a01a61532242ffd0177c09d575653e2d3953916cb34aeed5bcc1e8f74973ef595c798de0910a66f8adf0a278c1841b36ccec190b9f45edfeed4f88da742ad84d4f75339ace09cd629cc2e2401a11b73776f62e72a3372b1220423c786a2c079a525485def0089499b90a8b6963f8a1fa7f942a494b32c1970a167d2a52a81303da671bf5f021d2ff698b234a0781aa769127832a071cacadc8616eff15f7cd2013324c00e81b545db68cbdd797f7750e03faeb24b7c3cf6edc4c3bbd4ac389d4f09185cf7c4d4f2fe8c55d868838de908f5685cb2b80b8982e891d30845e3a631c466b4d2d316ed5a53630c4edfd734cc03ae3103424efc4a845ad1bdd00eb315c4cda742c1836f4d230a585ed3297155ea00d50a918033bbcbd0b1696cad9ee329561b79e8685d8afa9df93d471a93ae18fa0ef32b93730e0ac9360e4cd4e79668fb1375f714ac17dad349c3b9d595dbae6c90a277706f930257120d25817f2a03ef9f4f03538faf6c14341a884e52d75ba7da99a5e00af4535242a05f417b1db5d4b865bf30ee1b37efb2ae1bd6b81c487c439e65070291de0b3a6c263f6cc178dbaec0730aa96525ee9993d8cffa246fd24a201860268a658df29a61b0daeec351668f10b182aa2c8f47257028324317b78a90214cfedb457ec3ee5e33e07d3b8d9aed4673c6e884ad86a363de15e5080477cff5047913309933b25bfbee841d3aac54d82cee50d97ce3438c1bda061c7dfee79a7bdedda2b41e70d7ca42615312b60540de7fbbf255b3a1a1fddcd36faee5e2ea8bcf1fef5ba5b44797fae35531f016809e6b0737198708c7c091fcd236cbbd7e9bb56dbff339ba58954b72530dbac2b8e6b5b4effe3e4378cf21d35f69a39bc953ebb14f84acb7594d3d8d274c8c6dd4a3a38c4ad90c1012e3f52cb39d4eb6d6f22e6f174833338c0132fb36bad3b9345acae66952de70edc6cd8257f1ee2bf77a3ebe8f1d1b762d0d74c19ba9a269fee1f9676d46e3c4b540c82e1650bc0990c3db3d46f87298ac9296279d8861f9896e36e956c7c7f2ce9384eb85b01219ea05d823720a4ffe47a6736e8e28644912c5930d89c7eff8eb8848293723c15b6a333292f2a83529ec71bee08496f440ad570995f9d153f034599bbb4a9325a33ccce710af6598e56371e492d840b7bf46a5e116d18495d7a15e2893875b78748903661933c9a47e04d79fdc3561b7b0871f18fa8d5641f829aa2e2904611826347f0315b25f4ed881af997ed58a867afcffdd466855e801f2ba2d21f72ace486d1dbc98a9836cb46379aa295cb5d4e536fdb73ef425d70ac326bffafb5a4c727c92d8c949d3f4a9fb5d799c616376df3f842a4494703752f5102d93a6d75248414e7c67b5f0819379f7495ca4044944d36248d9da944810b49ed201a67e44405af8bcfcb68753eb24432709ff0877d5e5a6fa43e2dd4b3b676272bdda94d1ea645f7bd14e64ff7a7babf1dd9baaf9935e0bc58caef874509689f605e5a6c6fa1daefeb7a955f189c84e25e2a0f5dbed63e2905bc225a16571192a9d6e960c29f06f8478453c20c9bce4a74cb6c128f999442513551220b837bb51758a76dfa2ba19ff6fa261efecbd24ec487dd571daad37fdf1488517e267c211a2a23d63ffc3beb2dde5767a0b6c6ded0f44c7419a48ec9735d0c59121d5da7a67f53b3f2683c2911a69956bf509b8d7c2c6eb2293face96ad3db9c77a398e5779bf28b8efb8861d76728a3e5210bd94010475e443d3017f272d8087d9c0c150a70272d164e9e130006b4148b53c3f79b057b72e2f9ec066eded06da7de8809966503f9a404448ef9c56fa13e5803134d5fe69d599b0e213ec685f94dff0d3acea4eb847ab7ce89dc49e48f48cbe0996d51e2ad1b1c7ec003ae28537ea609bf918d4f5e007fbac42a7daf6cdb22ec4ba28fb6090c653564ec92c032396a5ce793487847cb54580091847b9fdbc2463b4ba1218b665cafb5fdd08b1c642c4d20990ab992442a8df842296d47d97d10ef9e81e380ad5a46035e18de277490563d127b456ef40c7478875a40a6c984ee1eb3f174004ed40f854b0e684165098c43c3bea15d19bb5dc7931792a756648b16fdb99dd0e8f81f52ba4505c828fe03c6ae72211a3b7479a6134260b690d44ecdeab063c1770afd0e125b706ad9ed4c535be2be2244c2c378d3e74d362d952d59bb0fe01a838aeff9098549bc93e3a3b8ee63a976458d3e08142c90ee07c3c66d46a6454934090f22262e3638728b9eacb2b3bee9f6fe39626a7b8081cad5de102e333639434b57656782888b949bc4d5d8ddf503393a494c4e4f5a6a8795aeb3c9d2ecedfb00000000000000000000000000000000111a2e40", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 38, + "comment": "signature that takes 22 iteration(s)", + "msg": "4101000000000000000000000000000000000000000000000000000000000000", + "sig": "b361f677612a75bdf240cc49cb4926cb03408bc2ce1120de2014ef53d990b9c29afae3e1bb5ac4886b30917d7d2260d1ffe57e06c8031c72cf05a831050124c8af9785def0337ce6f6c5229fe13abf92addc0d4f2c652771ec775961a3e08d33c49e58b2ebe8bf40eb7609253c51e2302e1edf3fe73e1f0af7bf0339bfc05918aa7292e8ee368b5a17ea1e333d8e054a75e884934f5a9bd28b64b4cbe88b0c802ccf2fc135888f743d8b7c3635299445a9745c91003e6acf691113605e0c4b2d9b74fb462b3c8306bf398590309d764eaec5e122cc9ea2a535c05cc87fbc1d1ef37b8050e0fea34397276b1db2a1816ffb4b49bb7bdda57127039c67c9af075e94e7b95b5854378f63fcbccd9004503d9b203dc09cbe23d49f3ada9fb8b42e4c4ceb27eed670ab146e205a476058ec4ae6b5b91b129b360aa7cacc16255673056f4d577029e59f688e229cef2072a770761305afeb14528cc34e9a8d491f4ed58aceba53fcb38490197ffced9f707c80c80a3be77ebae82e721da463434d39acc6829565feaba1b75c754240433188610b34b4c68979ee11e3ae0917d3022d75604275d3e279b8b8510f5294ef96b18a9b0a0ba58e5e3bf27f2b8b2e11e49434750872f71df681fdacf63b22ae7cbd7bd32bb43dfb06ddcb80307480a7aa8f9d4923bd163e9e28f147cf0ece657d1f7547648c4f85fa24d8478cbc2c93c4468823064e6fb3e81e916c81cb12b274500d74c3690673046574cdd8811f09537aa6ccb0165dd7712ddcf1c9976d02d96bcf5fdf2cf3f71d32fa81b335d1f85acf3e1bfdc37cc504c76bd774ac81bba9a627351f71fa388cf1189ee418d8a3a253ac68469e5465f0f4825cf9b134046e8dce6c3a55e04df37e45ed74ac3062af50e6c0b543055b872a64b52b8e41704e6602a0f32dd8bf2ee0d8aa555cc135cf774ccc33d3fa17f6b36e534302bddb0f53fd631ea7c21a2fb4e5aa7a5d02aa705a1e03f93aa456c8d411e951fa2a50b3e08d636e276165616e35e9c19bf641ebb57acd368ade5fe966c190b85b03ec49cdd4e87892113bb00d8bda4d4cc3347b63b7092f3829ea1528d8f2d7f6f6a74a851f8de7e57b41dba63eb5b4e1b58f2a0d74b786fce49b501811e2d3c57378cf5d2f274104209aec65bcfe0b1bef3162908dd08316ac116a017af70d525ffeb30f897956d4729c28a166a7287de74e03c2f08c44aef8d3f08406ee0bcbe18fa0a78b2a2bf1e4d1fcd36c0e5f73d6be12a493c2e8301aea226cf40d0a22d3bc07038817a11b2cce7efd33eff94f98f005d77e6886c66498bdd4db6ae236a43227704d04d374b128e0436ae2251c7142ddf7ecf011b256d3b780ef97c1b99b25ca42712b0adc09d15b0454068fcbf5f09976571760465d3780ead0dc479bea5182ebc0d2a750b34ddb1521cd969b4d198b6334aa05c50cf03430b9e4d883a7192f1a359ae299ed0761964029ea9bada7b8ba9c5c2d1e7cfa9b6c0c132aadf8eb9c8b32cbf43548710610a0bec8840e2e4d50520f05810307bc08f13044a98bd8028535c897b0948dc3868023e5ddd7967900fcd7e2035888266339cbef40f4d5c0a6020ed9cbc4751c76822a218ff5bbaaea2f18a969f986d822c1c816ef3ae0611feab89aaaee02e31fcc68a0e120e1b1b2f939ca7aefc6c700f5681daeec6a2613155f5db2bbb54f06dd13dd8df3d8af3cb5ea6726007b7505a6c36fd90e5337100c7162c545280c60452a98a6e6c21dbc3b36c9c4876530945828b5cfa5774ca87d98d04895aa316293826e29125431ce14ed4ac4d594d1296aca183162b2f18527e11571c75381d5dafdd6dfa9f4369a92df1c8fc9688d4d2d1ad779ec741c332712471ba572b9d0b11affb2b511ca71bf696debe1ac2970d79c9cd965738bc1bda546b7db7b0749e9b91ea796047d52b777d2a1df1fe374efb2950dc2f7be4be3720bd8f56ce2eaf54789f47e8872e0ff35ac1c6660afa63dc848f3ab103e9fad918e08f6435dff15d6979acb6240e57dfaf1064dc81263dead04e283acc25f6cfd440b148d95edce688e1228c68432d367f831c78d5f8fa59f7e64e3cf9596067c3acc09be2d932784360ea1c10bf3edfd1d2c21e1168204076ef6d2cbe4bc64f832bd34496d356c8a15102fe4010bdb848e3dcdce8db984cb600060338901d4a5f079d30d708c15232ddbce89c8f1fa82f302da250c5bc7413c048fba006b1f3490dd0681afc01b163e58e00a794cc25f82e87e5b03a70ac59bb3a6c4df7e61d00fe8b4cfeaca6ee5cc0799a66e82ed56ce335e94910b5cb20bd1ba446ffdc22a1ca6cb59f57c1c2a3b303ade78aaa856e513f213ebe8dff52c3d2c62e8dcc43728a4de70b35a754185bf82d836c4e4fed638e37937c8ab201fe552a781a8380c266d390b7e40d990b8c50931de90bcefab04adf49a8b00b0e437c6d9ee02cef02034e2f539df145210b3b85a410ad1de5cb6d5a2df1f9a1c9d460f3556d4079694819ac5ffb8a7db8c907b4ec865e8a86d3a70a96d6ec280f10edf9424b5a01b991c11d49950898773e9c303dfcf1543d6c9cff051a3b9bf979e04be22a5b8cd0e43bbec3a6bce48c4be435a16e447eb5a90fe6ebd917bc03c0a96e594e5d4eecc7d917fddecad3ad65115a0abd176922d99bfbb6fcedb1fb1e1e191865f5fa21361bc0b2f94369ee82d3b7268b4012459952f3f176d437aa79e0b0ae9ea0b0a92d0e4a1057528e2edcc8e5d07817b3a4fe63829835cec1a6629bca69737820dadeb16d32713a9f6fd9675023e60a97123cfeebd27f41bb3bd214730b0fe5e4ffad10b7790fe2535854eda3763df259f0c3214ece7e41857156f51d52054d006032f26eeb48b9b9195fd4675b154b35462c9481c1fcf1ea9cb4f76dbb0c2470f33f8d7fd70a17057941f31457efb97097fe42019b5fec593d7a8e85b10d9ff0f5b8bd23a8e3733275230e0aeaed9a29bc9a99920f36780a91e1c193e706019ec60ccc7ad1c3cb14cccdbea5303f9d2ca0d725a42d99b6e879dcce17cda3ba3a2fc270fa87a3a1aa873acbd7396b6ff5af05e0e54303a12a9b45fb06cf8cdb4b083d544b08539cafbb99143dcf1e92d94be50c724e47d0ca01c0f2615ebf574ed4230020b2395308dc3dfac86ce6dcd270a778f5eb08cfc59fa18fabe53dec9621970c9615abfd503d81483cfd8f355eb2fab47009deef2a50565e7f60f10ed86db5a5cca41ed5faec2d0a699b336c0336674814bf9167de0dc496df0e0bd10150a7dd16cb221cd98434d925850fdfe052c42505153606176828791adb5c1d4d9e3e9eafc0809103449519ca4a6b2e1e9fa070b121e21225d5e6a81838d8fa6b2c2c6e0e2f7001b1f313e4e6ab8b9cbcc00000000000000000000000000000015223641", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 39, + "comment": "signature that takes 23 iteration(s)", + "msg": "ee0a000000000000000000000000000000000000000000000000000000000000", + "sig": "58637dbf77587fbbf95f167d5da77e7ecfcf64359846f5bc73395d9b3199beaf191c67dac1259c753b70a17e7ceaa6fd2d8c42fa736af6f18019284ff3b141085d753e515d3145c1f3474bb91ae7f13de43da81a236b235467e66fad06852da80f67f5618d487f3f257f487fe1e81aaa68701d184fd6d8305fde98699966abba751c06d0433b4924e4d590ed01d1cd775f991c7222d0d9e8e233a92e43e191b215c64fb3b4b129c7ebeac58cfa2c87e94a6c9869e65184e31197416c253746bd0b96dbc8c3f2a2e725acef2cda5453639b99b4dd933d8f584db308cb6669632b20f36e58278c16a1552005c3c994060e4eb680f4fab2513d6b8437d6d4106334892c31f4880fbe23dbb4ce571d0c766393a981b9001b572474d7d6cbeca07564eb25d59475becf92ccf1a2d8e5d6cebd2b4075458b19a580d400c5f190e0b882f707afa1f211d37b5b211a9bb239ecc36ab5e9e778af9b9067da002473d8b185be3aecb4cbb38b94436664cb04b3896b8f9b24e9a5a4a7428b06f3c020c98cd479f75dc4eaee431403b511453b21cabe0c3a1754922eafddd78940182777b26f7c2c4d2e44a98ba542799a4f67ac8e78b6bdfc59c99466035d32330acf5e1ec89104ffd7028b6b2307949719b7f1f45567e803307e9d62ac51e68a8b7f97135c815f2cb6c904f0a7ce1a1fefedfd1fc6bc9e48c0cf10cb9f8b7fe905b1a8d7af80d950ba1264a1ef11bc41b08fe9178cbe7527c3ed3532c6eede9a67a4201f802efa1db2a3cf8350c3e0f8116587fd574f95997b6e2741ca53839e284227736668afce0603a191512e0bec14b14801c43ad64485264f9d9ef926b39f100f5d7344392edb4bf4a9dd351a167c572d63ec8f377e640e1c8d32ffc4d840dfc09780faa5afbfa4fa2bba68a8644ba59993a3f2bbe43372ab402e3a988abee3c0454a710c48339c6dbb5e1f1ef96ecee7cfa19a3f44f2996504d3c45a20555c8f1b9f98b646ab4cf40c3a789ee6fbda35ff537bfc120974d4c22c84aad5a824406892911b9db9f766c61fa9089168bcf6113c2ef055354a5ddc9cb34858c6dd7895951b55b29d1770f66898db795ab7b8b4844592b4332e721b588e62403baeffc9124a5b400ed69d76ac96e18583a54f2c6c75fcef17992cdfb9987946398f87ccea62c9bbf2fb3ab7f91a9d08e344fd0027c3dfdc3763ee12e0bb3fba042afb28e089030a95a5db1b8f9273678973a96c3e8eb26a693dc57414b1bd0ea6e0fef30ca7e7c44f23d4619b25f20e793c757e6d92a3c82ed091a669b8c7f59007966b98a246ed9dffcf5cedb742c46afe76bf184dc44bfaca48f45cb337896d4768a199abf313a31d105d60b03cab598ca3d70553bbdab45abeb4fce04c3d6bd1dc3f5edc0d17c9b6c328caddf23aa364cbc0dddf0ca7d0d9284c6550061c6708ebf07e7fbd582b1169d221efa7d24aa62e05811f45fec80bf1ba21a1f81a4c1b07124a837829044be5db2fd655ba71464d92ab1eadf5d58179cd93fce6492aacee82dc232ee55ca8b73bc5da61c08587db2c0097dbe9269001c77362a3dd874bd8b6d81fe4049eed73c4f494e9dadaf0a568e51fae85e5c53f70634bd2cf8174e92741f85d14a40c1197653c9faa1f329ac8c7f974e283f5bad4d20c821521b2d863f6f8937949534e7d6b9b3133e669b009a12ead93f0bd33007d0e30161bce36b141165187a48cb5177ff96197d4459a38d2566cde9c1e9c0c6f0da23c6388c5bf4ca750ed7e78e22e40135137867bcc8768a74766485196021ad516e7b622c4c622c059bc9f9ff136b834582bc9adfdbf18cdc327761fcac7556ab0a9891a4a4b1fda838ae1c60007fc57d2d6c82b8364979d0cafeaa00422bf1eadc7e385b4a3ecac3311c8ba0d1415906bb19604dfabaee7791799fe6d6dfe929e895b92bcf24db40f32441c7e10965b55942a12c4cfc6aeb25131e58d28628aa2dfeef0119d8d531bbd6d6cba7f454bd33db5a57f3483beecf929705651ce7889e1174e4ca72cd408ce79010faef6012ee8a4bde5380c5d8b0af7bcbacef40fb365dcdf60422d6da2f4d7abd8c5b2f69be2fe03bbcd0b699262be398d1811cefb34f8b29bcb5d294c0643905386b114bfb5435aba63830fda9fa387a70d891263dba16010b796c1caf9f5ab58db2aac00f0947eeafd50cce1e5866b7dc4546eb3eff0edd466343fe916931ae752e53926f1c410f99bc3a6dbb03e6a7a025d5a8f1e383e2ba5b365dc6e9cbe2424003fd2329d68dbdb7b688eb78596d6570b2465eed9b52c1440acf004a9f02789df2035988198154ad3ea744c5a05bfedeb7e5b58d548ee0104362305430094dbd820412396081112696a6851018577934eb3d7ddb4c58218e9dadad3a665d6930e90ce4a56b68c9fd5b3516da4d3ed2618f60c28aa36921ee624bb6828a39d4564140a8dbb33a5b9469241fcd1e53a78edcf7265f22c37e44ad27cfefc8eae3d5c92bf40448b9d1a6be5be272ba270422e5716d57dd0e4ab515fa56d290c477977076614fa3701d238e6991b94977e550385a9e58dde492be5d9056018cecf30094ecc3695bbd5b44d9853536c15be0ab52e2a517d4b1d7fc98b5255c56a385df45374da6e922c38c5c5e332f5add0595f59ad9d4df5eb90ca5e430b4b7555fab30152db2fd94fba656aced35b443a5786c7788718978249622dc00a7e72f6a0efb3ff5a15ac4bbca60a5c732c49b77a281b17bc7e61dd4329fb6808aa2ed0bde81e4112582dc827c0c11872bc37f0ec3e373d880e893e8a3201868a4cd3b4132fac73b8468c93e4f88a59050ae08f23e6df1cd1f72d24994537e8f0a49d5c12e7c3dde1943cb6b162851236d6ef8a7beac439612a41ffc1179d677cf4d926074e5ab9db9e034f12bb31ab897d280c10c737e28db7df86681020ec1c2f1b5e2df28ce92f74bc26d6660c9fe34ce0263fa097b5d1ad8f293d9b5697b8f741ad58e72bbdf5b8ab202f148fe47c9685d2c569e5206102e45be292ab23eae717c2af4b63a1689e7b1f55465447a6faebb58d11d876e4eae66ea86a8a66d4026f6eff2ef3b14de11df3c842813a408765b89d4c6c877354706df9f64f82b48a78070887161e5c55be09c8bf2850351e37bde2430e0fcc642e960e089095d792a8776bb353f6b3b6574ec4403aa65e4e763d163d17d2be49c92d9c55cdca4ad705b230db8d660f7acdc842a0edca141d6279b8fec8b7128dd200ad77e8e51cf3b24cd1e4c147ba38628a31786b443b61fd70b7f21126a12c4971070a3c3f434a66707273a9aeb7b9d0dcdff1fafc0108182740424e505563686c868e979c0204051c1d30525d5e6470858d949ba2b8bfcfd9ebf301050e1720263e43606d798b9badc0d7e5e6fe00000000001222384b", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 40, + "comment": "signature that takes 24 iteration(s)", + "msg": "5d03000000000000000000000000000000000000000000000000000000000000", + "sig": "e933b16455c6253bca36fe046cb8340a78c1b0d403e85beb5f480d7996099a1322c44abf94ef716801f57106bd5d53ebb98905f9aaea5dab9bba5fb1c62230e7600ca34fc02f84dee1b5b103d7f07ebc5375a9ebd30a3876b4732bb9653fd0d44c0b58c1fa279b51f737c3845df5a5190dc1795eebd1d1a248f43608aa5cb3e165840f9f49d0c77a7d0142f88da6cacdfef93415e2643c234a9d49d513f3f4e5683419a530a183b556a22c62f93bf6228e96e9a6a38d7815f7a8e5a88c0a89affff0f5307b7cf818ec7cf346bbdef6ce2d3b45a85fc88e2174abf2b9b8c37cae2123391742edc58664d11456430b761934bfe3d7cb0e1e81e39941a8d285da0b25327486ca2c519bd7c4ccc30b83b78849fe9b4ac0ea96220895d72235b74437666e0c2a46dd26b2e3dbb8c9c622c2ec3b9afca0bcf24fa0dca4990a22c3c54f2f669be5ee2c153be6d6d6756596fb703e4c1b82c36466499d3418aaa7eaf22f08189c6524335730b37284f09f260234869e29fdf9fd925b03c5a411a5d58b4f9381ddd76b938e6e39ffeb27c0c4abd9e9bff25628bff90b5972f1a6cdb3fcc948a2f00366ff626f869e25c519cf17c0cf74de57196e0dd3d2cc3b2d1d8c036e907e3371491a3d8a03ae7d78d5bd5aa658d0485177ae5c903f13513280dee7cc9ae0a3aa1b9700cc56074c7e5a588eee8bc2cae18479457227910b81903234476766b35bfb4f2759d871dd8e17fe75ad66c9862a3b203eb7bae76474c8c111d1989302e9e3a03a5ffc20c953ac09920958970962d7f31eb675183044c72f0c961291537d38754b8510a616c1418ca652819ea17ddfe2ab5df48196deaabc1aa35004e369fd508a313de6404c204115d636b1bc8c90241a4bc745738e6a1a05b6956e6f9b506cc7f9c7f39b6db23bfe3b2a41c5e2a450db1b88a85f461c1c00be1bf1b31225a6f9c2ad64cd6716cbba800e3807ca31b992aaedb25acbc56bf3e9da0e2a14f5f322848df18189740f1a1f157e92c8a1355c3e555705ea7b3dff2c2d66ee525392fdac881a3e66876fb7a20d2a5e78f539c791f7dada7142c773539fa5d5fb492bcf9bcff541d3a8bc5b6e207e75145d3cfe83fc37c28070b59c6e21fb02e77c26c5c7742674317fc88fbf9271c2b1eadce888df403c76518701fdfa7d329c62fcbdf36165927a525e8c69add76d56246b9cb0c779de76b7492e397a388ee6c7d4a55cdf0b0dc3535e71776f9f5b65f5602bc0d132daca64cc3fbf7bffed1a1d9408d66a2de743f48c934918d2bc373ff06b5a35492539e8fda4bbbbb92c983a4ca4623503f9deb101c22e9bc775386d3c911a844b20fc33b87e6a1f252e2d85720b3db8bd85eb0bf1c38938bdb1b3f20622f8a2dd1a110866a860398493b3f8d0f845aefbffbf5e9e37ea55b7040635c1ac4037a7acaaed9ffcf785b12c3d9ed8561e4f1c3e6b4d7c26dd9c126d5f2bf11ea266dc9236f6c9b3edd193085daf8e0ee06306d289e98cab34236eafd307f5b0a8aeba86d33fb69d7695ff7f5195a7a0a6e9a7668e4df7a8ef00ec18af43ac87e0e1f41384dc4e82383de41b4aa3f016c2e336a58bc0131db65a9da2d3b8d933ed4fafadbba5159cca716aefa7f28c2bddc1d777a7ea68d2a7481ad1816ad4f010f6db66f90b3673bcc6a2d1ec9b4e31cea4234761864bc0279ce7a303b5d63cd5b7c3afa270c0a2d558f3416e362106191e1035fc9b519e2918650725168114de711a2144012e0223910c487199eb1d9567f0d23a717ae3a76257674d285d2363365dff15238a90ffb53d4a40f61f08cf2c7fd5a67bdcc8a364d59db3fd881684f6a304e6dc26e235dc5469c7d0761fd57841c77ffc9e72c3cd9ba1b49ad14931290666d193247678449eb8f0fa8799112d6694c9d09a786c627a3529da65d9aaf885739ab2503bebbf9ef3d87b2be74e9955f991cbc8b8131864075a0a5b735ee3c99139102439540486f90cf5570850d72f19b9176f43613fe4361eb7c6234b2a086f0e206c6a54f24623d01ec7af8ead44ebff8fd3d9b6101d37a2bfb225dad92e66e7d5f54792bc6464320e4fa9012747ba5456b1b93dc60ff03bd10bb87c1a7180cf9de7e47799e2b5f457d30d7edba8f5642799bb7204956610c2f1ec6077ddc3b6220c7f69acc1ad196707e0b53e3dee2ec6a62942475e0fe1feab13fb876d198dc4753d5999b52585dfc47b53b58c808b2b5489f4d2c104c3d8b278d6e138243beb5bd1d01db35f2eaeae1014f25542fb342b93a39490694203e4502521cc83125621f42cf3a3fb025849c764d8f18bd6c64f7488d3ac491eb83738e5d78693532f87f5804cf485913fac616fc45a32cf9ced0e46e0ee4eb2e7ff65f613d8b27542c36b3d2842c920fb733bc6033c3a4deaebcd72fe6604d7b8af3a3f63702586b4f23ec335e7fa0174d522bb7a613a2912caae18ebb100941ce67068fa2200310402210f69ebad897e3daec84dee782b856401a0ee32b8e7ea5610e8faeb98e90aab69718aade6746addfba97c620fb53ad0d775b8c9901445dbf5282892106a399d43d849d056b547880e7d71f0bb14a2d221a3181a56e1198684fb681b91711b9b13ca6028e46fd63d4818ee09435d91d7accc1682529518180bb1bc5118ba1693c98de5093b1bd3d9383a7d48930a4f9b83b5964b164edbb6fedde9b353001ff5053d5ff095a8ae553f0b14253a88bd6b8be07d93ceca2a0819292e56c81ccd60ab874bdab701a0788440c3599563bb2a366cf3515a82deebbade7f925e578720aabad20b5113dddcb1aaf6ec781d22034e97e635de5322186e23b512d3ad92fc33f57e6022232351351f20f925945da077f0ecd71af54634d68fd6bdf0349bb3075f5f80ae5baf3f6d239b8cb45d27d890d8f8732f6f73f56ce1cf24003759deeee87f9d35e6b9cff3aec21337a145afbfbcdf1c78790e8b4ad7b58d57ed9d3a659e8dad1b890b8e9931f6722990ab1460847a24d057a48b528cd197951c90a51708aa50cc12bba0f4eaf883939ec379c08eeb6873c49183f268a3ddb91b6560ae7e841006699c822fbc89a94c8f33641a6904d558121968d8ff5b15862abe9066909124fd6a9a7ad47c27288d26a25d15bf3209a1d4d537f2834a1edc3f8d10cd3840f6ad4c454c4819efb8716db8f7cca24a71c964919e85043b5a91422b310b51f0753c03da82f4637bc951fdac2c5f5dbd5059741ae704352da382a38d2d482e2817675e8cb4335e60f9271b4f4fb83376b4b089c1d5995951ab75efbb3eef520f1930314a5fa0a2a7afd0d10720444a4d52545895a9bad8dadf040c0d0f195765717f8485abadc1d0d2e21c2e39485d5f6b8b9a9ba3b7bacfd9e8f0ff000000000000000000000000000000000000000c1a2b3d", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 41, + "comment": "signature that takes 25 iteration(s)", + "msg": "ad03000000000000000000000000000000000000000000000000000000000000", + "sig": "acd1bf2e8f5f2099f700766ed72ea9a49667d9c28df083ff64dba82a989f3d2f2300b1f1d3ba0e0ca55ce183c8b1717c11b32bd5d2101d08d01b9b51c725537e0a7fbf15999ab50348fab4f2a1efea5c8843a3bf0355289208db2c3471da7cc94ed02787548391c71539171f4b1784c52368231b993aa8b72d0beb68570b149f9be0d73c9826613eb0fb41c2bd01b9825bb634e33196513c17f474bc926e15cd2afb8cb16b1f5e2c761513e8ef55c29cbb4b772f81cb7c68fa5fc0fdc3ae179bc1ae1c5d53e20277725168d4ba10563c976f5f98985b9387b10dd00231588d7daffc0d9f79b2f47f5906322198763f4bf528f91e296da57155065190394cc714ffda017216d70e00ce69d8f50938e5ba5db268e11dbc8cdb1de67b357372e1854dc52b34a36c16e8f91bd10f0b3681d89209b45bdbc64f727a7b435f3ad235a56c05bb1c6c3fbe3793ffa6fa68a5f3d959d9831e291a3589ae6ae80aa918723c544549c4a1bca0f139cc9482bba5a17ac31a52243f55b5e77f63d83c7ea82946dea8b0d1b956856556832abd2e2fc50556b27de63f362f0ba47d866e006fee29a8b5f25b1cdf74dd02014c675ae35d57f16354fb3d0e940cdcc64eddb548d2e9b08d60494229b1875168699c13ae813319db7d3959e4a48ba7fa2010a65e235c3a8b6243c3a7b740969b4a0431f610d79469827ec3fbb45b30b24c1a488c12e5a2acdd113ed7d2af0843e617b8c4a750cb806517ef3066028c575e8ea45e451b0127df7da29d677faf09fef7f0d46ac0ed6a70eeb07cbad4bcc90f231cabe7e6e8e8eadd222ac129e22d364f2899b6e7d5fae0f8298ac07d3cbc687ac7fc6c9d2e46c7795b086f23b88065a187f0722f463dcc89885c0191a5a60c8b71608144cd037985f84a8d971ff792c24e322c72aa64ea017267f6ef278bceaf0f7057be97d31cfd0659037fbc08f3e4cb0647080a1c56bb72f197fdd4de814e8b0011b55ca758c28c403d3121fc395e8b9f0b9297b1acbcbd7657ed1a6b961eb0054ae8b24cb919b311b5896a7b272986b467edbbca0fb195f96886ed6071ab19917ead74f2faeadbc931f84056944757f2deb1aa53cd6cb64158e23e27a78aa31490736902f842ab37d02a74d5ec655e0f4c0348bfa3c87b09810cc5dfddf58f1f9dfbb6b203e571849fc37bb37a10d4e459520e660f587869f272f036904a0c83bec318cf611322e58163880f30195a90f9d645864c65d174113efcf5f15144321fe2455eee982dee21493d28027fc92da269500acaf844aace240d14ddb3ca18381e73b6f8879a2ce31fa32851b5a58c5280b70e27c87d19ae0aff5603acd9dd7265a1d6adaf66830c11c729d9ec491f04b2944ddc2d051d3c8d3cb14bab6d36f64c7f09d309a6b52113e71e3ce9040b06272873656b86b5a91d1c989431099bc4eca5ba2c6efb5c57b66c1b90993b416a0145e05ba8652c7e750e56920c7c0071439fd89d8fb1ad15e24e0e6d596e592e162bfcc953c0e86ec7619cb1717d08a6a66e8d18c9ca7234a2bebe2c51a1a2f72b65827ea730d855976a6f1e782611e4d18e16674bfcc1bed4b6805509961ad76583d982565e5b9d9e71b2ab9f4d5bfb163488d1dfe0f7df977f4fde50a84e013e57dca45be479c74052aa3faf858e4e1e90a52243bf155d26ca8bd6617918f3de814d8eebdbf9a4f54e203e23948918c8f50dfa2a8fe8b62642e93a3c85c07d2d17345f37ae0e219de34fa9e7f90aede69510ddec8c6ccd7df0ca6566bac37dd47949910a62b6bd12d837350c494ccd9595e661fd89f8acf2dcac5aeeffdf55c4889f5bd29e19c127a9d9300fb3659ec5fc3ac7f44cd0774ef514bb226d1620682f1a875d21fbf61e9309757c18f72416a2faea71e6c6a10bf72502416840ed43c0ee090ddfd72b7f89849e7accb660df48bec68a5278c2e11731545f29ccd4ca87dd6f39da54a488c0bada357c5732f7621954459b688f2410296c8178c8a0ec65e77d3764cc88c0ada6064191b4c806da0149da6ad9d04ca7d264e76acabb93970a018eda0b1f9080e2403b80a82d58e1ad493278e06bf9322d1b5851ff4712b44a6a9e4ffa3e79aaa87c2acff7d4b1c5e76d70b8d3f5c90369b95648c16f2eb719985ba660554f33a6db190dcb7b4f540acef7d6e22b7c7cab52d4a4ef55d4893fde58868fc8fc7e280b977236d313a4985deedc048d7128cf537107e16db2b2f05726d9efb6dfc07a4aa26ae426d3a0b7b1b516af56435213e992336f564583a8dbc8e04b51b50fb8065b3c69811323743994929c578e91170bab63c96f08f9f0b1db12ad6f7b759f8a96725299c9d5d906561ccfacba5f87039ed362e1afff39ec678934c6a277729373eae071fcebdbf95bfc609341546c6fc8092c7aeea4e11d98cf51b2bdbd8fe481f7aca3cf25ce567f10ccee4ca51757464bb03efeb073aa982129a369f606f1073bbc8cac7617acd522176442bc7b8fde29aecc338d9d7769990cbec4ecf5a129b115871ff374701de7424fc9c29bbbea40e6e4b69566eb396c9193c300fc4cd19031c5d8d534cd0ddbd01f7a7d783e8b3ad6c90791a686f168dd81913059662587033750c7f61f66681f072a454798b6753a3e9fc38bf8018468632c81976120b338b5cb9993725666d95c22c387ceab3f24ef42069d35968f2ae1ce31ff00492ab27dc262486c6568f4cb826e34afa9ce08c81ac46b50d0f67fb6224372b1976acc2604d8034ae120dc1feef260331e0876e90705e630effd08b0f9bee47a853fdb2c7f7f13533f4b4898093bccf8b9dd24285cb82ee551e1e56292bddee0735c599a76b6e6f32c520e02ba4d188fc35dd3b75e5208c343941274d2d6f460ae8adbd5152ca3a77159b3cdc2a4433baf5b738a281b6b75fae54be2ebffbb6f258f4c17b6976c465ea177f44a133b94d714e75611df5ca1f020a9856894d8b273c1501617dc1a41bcceec8ad7255d7fcd5276d410f752ecac4212dfe9923d54c9ccf26f2eece1b6d5efaebb45f15e163a4c409a683fe03610b533d496c70a89f645a3e20483c0fec39d29e2a0556b87cdaa13ca3f4a7a634d1b13523247ccae1daf2a7460e0e8ad80512789a9faeebc8e0388564adfea3d610aec0eb588b55f18a7b90c7b45947343d28590fa9c1d72365acbd1b84ddb02eab9f3bcc68a04e0989ab5b5a4a8fe28ba64be5fe8f888d8df7eb300410c3c647368e94854b78e9f4be7f20f63815d5143b188b73fbd19ca8ef73b039df0a5374a39c4c5a4c935e23fd6f95a1d07434c54565c5e6c929eb2bcd4fc5263727b9094a0a2b3bcdeec072d3f4a61727c8da2b8c0d2edf3fb1316285f6165758c959ca4a9cbfb000000000000000000000000000000000000000000000000000e1a2937", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 42, + "comment": "signature that takes 27 iteration(s)", + "msg": "af08000000000000000000000000000000000000000000000000000000000000", + "sig": "9143c043371f0459a32c4dd1a21af62be76fb9d5acde67ebd95235a8767870725b134b750b2bff2fd3fb87afa2a2ef146ee13293b91a8d2ad6f302eccc855a25c5270c8490e61e8784ea71f9194fab630e43c0054f00f2ae851f472133a44d3f9725356e65bd36c6c62c367f14d5b77f0a7ca75abefa4ad991b7bdebd88625251cec737a18641ae97c599ad2b36b1b0204f4227f4c6a7e5629ce2255322bb9ed0605071ceda2a51ded0eac4c41ac20429b6dff5fad203e8911764f007d32306b351e8ff85db87ec095b597076d11dbf0b154303ded836813657797a3406aeaca527e711a1c8cf8f7c60135dbccd73662580d9aec0c933827f793bbf58faae50bd27bf82d5bea6305c98217e040cc236fe55752c52c3fc73db2f35040d5bd71c13a732343bbc1a153af7998e95b65e2965b4a968e0a502116f30fb19d87470a1189afd7ed602e8fe7ab6f83b5d2ec3fd5955d6ea30c2934c2f7ff468f84e6a3a4bcbbf415c2457a75939940e0f00a81f9b76ca5f9046443fc59160540c0b277884caeeee894d0f39e63d25d2fa1166d3fe734aaab7578957841288e4bd61772b189e018ff08376c1c66cd4b52a033207d5f42e673441d3b3f2a876428efa8ff7bd9ea5161b96b1e775e41284ebe2eb8bb6bcb834aceabd9d16272e5f5bc3c67fc0beb3d33158307b68aac6d8b0b32bd0604dd0705af27b298e29752205725973a5b0f1c0ec44f3577eb5f63b1066ab431e4a1c2777a20a2022ed0e7fd91b9500586a1ce891bbc401d2f0366b7db52422fa164d1ce9b0d866fcb32a84cb0d6f80c35a67afe4e85927702a9ed93bdc4c620c633c292f17eb8f4a86dae1717a06e1c3f71a4f892745a5ba89b4e7315a8a5900c40b9b5c9452bf8a749a13a097fe01956981dc1c430a856ac049760a71f17007d8faf270a7fc6e2ec1966c1273553006e7ecffbdb28100996bd304032fd5b986bca0fe1239bbce5e6950e207d3f8e8f4f4a2895d2a4809e2f4de63a28cb4716dcd945d90e00874bcdd61392bf1688e73f46ecdd668e5e5ae3f8da4cafdb75c0e8bb4bad162613d60326bd4b5c7ed4c6f60554ce3fa0611d1b540ea51f95cc2f5001d9ea8cd1ca43a6dfde1148b60a660dae20a7aa59e25a708c0ffd127daa6b67f86eeaa39ca4c2044e309f59b2564b12fe026e18b46ffeb9270e663a7dc259ac0f075263d6308282e3099ba42e82ec3f3f9dbf80f7173bdaa204bc91d3d0a3963966bd61eaa69b8c77d175a136e577a8ab0e99a1096a0ff810056d9e1ed91f57b3e3018913b16cdf7da6830a7378a8be37388b46484c7a691162f6927ff67a7bcbd82072306d1482fc00599aed92ac570c45c3550eb8ab2aa4979f18d033e2e7e89eb865a7dbc44d282c21717734207991cb496ecadf1fd0eab0ad6e27afc1e99a34ff799ca361daee5d77ca0888042e9e05fd7d7e7da2d1e94a68735a43d839c7e4824a807522b6c996d303a8cd5263d8a2f761992483fa0d4842d853d825c19215c0dd907764513c37dddbbd630486a3842f0cdf3ce305347e733ce0d7811befc09e4db545836f916eaaa01f994092aa8f88a2bb48dfa26caa3ecce24aa796b262ea9d0317c0e8a8a06089c3d0b7a13ca53ab14d2ae6f947456d778ed4d05bc760dec6880b12fbc7267e6546af5c651aa31cbd4b25aa8d8a24b710ef5ac4fd9445988421ab6c59bb63025fb7feb1f20896a03fd6f7c994e76d0f38dc86d3378d5f96a1bbc721cbff6420e9d1b9042c376920d54c9e30445af682a456a7f43790aaf63ab588d6e36ae3c97e06b882eba26cf115a50e6d09a6fb508d5515b2837dd7cfd4e91b22a1201f31c5663644297119838e6cc064d2daee982fb235d2b4129b20221b5ceef9649e46963a7648c6cfaea024652627634e8c71ae07afeb08f2f8ba06d751021f9dee594df681eac6aee6420ffe4e904f3be083178ce218aa6d64bf32d9bc1210369c08be85492d4f0f43f68a4aa074fc6ec2beff0fe91c27a82297b29660be6a410acfeb2c378da5375d829d985ec500d644cd42150ea41c3f76c4310bb0e971504ee59586e8055e6fc54e11650ecb896a1a5a26433d7185d4a9bd0e55d5c99c4908821c4687c48c5239a9493de73a40c1b4056cc12edb7fb73c43901c5bbf8925fd3ceec88a3664bb04b7a9404e6c0f376131bce742baae786a3c4f36684341fb84cff3f9f344bb5934021a4c541f81165d43f8f00c2df4c7d5f762e717023886a96ec533dd844a9126e52ddfe08ff5a63b83b529f4f14c91342f1000a697a259c62d5721096e1112707f3f66f75ad87bed70d706ff3b0a115a5791f9e44a3b497bb25352f283f03dee9842452666d033026b8baa4fe124e4f3b6a56b4ed07707b00b7e414522dcf0dfc7d577d066b827a1177b7bf83b45f48342ec74c7aafaaabf5f46ad9ed08ea7caae9f40d53ef49fd7af23a369a8b5730ac3e4dc7423605817074a5b66d95b5ac1399c431b9d0a2c8c7bda97b4470e1187b6af89750c2314f14fc1616df320d10f509b9c4cd48543230197ba8339b586fb90754114fd66e35d7bf768d30939fe6a6c182ed2fd79639f8352d345cacbdfed32ee6321be511f3afc53e6bfebe8639e5c863207bede0fab508375988355963b9ac14e4987818e31e305ca26a2511d8262932c2bdcb6f957d26e869f2a7f80022ca89c6bcb4a153515cacd1f49ce6586edf41a7549b006bdfc91cf8e5bf56e82176d17bc75f641e57b70de528d799c861b051792d1ce1abb310bf1f7b876b8174ae4495c63b1e955592fbfecca7f9a2d3b2487dae828e0e4eea581f9f99b12a1c75607dbbaf2ede93e4a16499789a63f30a0f84dba9d42c3ee4d1a9a105d164dbac7c522dee68b8661d12ae52470643959f1fdc1c8563db470b551e80a228f9789938af1ffaccce7fa7e03dc850fc1cdfd9e2d7e3000caf9e5ac5946d4d25d2a27409bd5cfb955e0a8e14eb8720fa067fa8efc1a4eb402c95757167ee5cde7bb96c3ad0a7652761c134c520a05ab03dd4a8b86d12e913516737c184bc9cff0ac9f6eb6fe4fff86e50b90e84e68715b7cb063f2d2e8c2e962a964da80e12efe966b29159c60dcfbf0f2be383012716284eacfcbd98ef906a67581400d35b0ff4949b0b2c5a4c87e93bd1d88f29a7c0c9fed9dcc4158e98a271af97196c9047d175b97866c6c9e3d1dda2e719033f6182e2638df8689d00988bebb13ddc41a9de283bfeca7350432e69cc596ebdb0b13d6236a6bc7c6b22625b61173691de9d10ae6a554aa3dc5464746df3700ea13161a405c5e6c89a3aaadb6bdc3cbd5010d161b29333744494b576a8693a6abb1b4bccbd6e9f6ff111822394654648aaeafb6c0c7d0d2deeafc1012254143454e608c8f9c9fa6a9babdd2d4e2e9f60010283a4f", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 43, + "comment": "signature that takes 28 iteration(s)", + "msg": "4f05000000000000000000000000000000000000000000000000000000000000", + "sig": "30c7088f7dfaa7e5cbfb966a6ee891a3917f5e6c9e6d840ca34f225c85819c7f680dd16a4c4b8b4a5507e321cd0f89ac69a90d54c8c3accef5257998f4e70d9f12a52d942d2d0b7876b98762f1c65d9b74f3c4c2ff70a1813c5c9f4016efda5de1cfb8e8154870c7b51b32843fbdbb70c675135931c778120f807a0f13a2bd4e0c7bf2fe175398996ad3ff8209cb812957044b44207996af8e3a2ad0359a33068a7b69c2af5332d1f99e8cec126d992dededfdd1cf9c6cdaea576f45843b1cffa8a77c3efcf133f3bbe13674ad8b8995e1abf81b3114ab9899b40a7a699e5c2241f5e31963bb293841b8f5056c052c44c0072d44c68c185dbdcdaa958429712e212ec8c7cb95c9506d26b8fc8cda135aaf43116f866d7aa0cf9122e2c760fa24e8930bc21a6b4bf4a72c18011ff5a4a3b4efeccc4072fe451d5f930a8692848787b3a4f305d132463659eb90766a74b397509b0766ee9bc07a96988a2c21baabaeb1006008ed775924b8899614665d90f05f37a7b2e861dde5e2ec0347319f2de02594c5b914ab779a050494de78a4e1cb99df621d37cbac0650a3b12951c5f6c843f192aee00a1587fccbb2430638171d060190ef59a1a3b2e79c5476af8f417e191714c6a883db294645047410fa00ef8d7edd7c189a8be63da484d8f07c071009fecc82566f474bcd77cdb591b7eea3986cf0d89e23531737d30fe372a3176fc2617b26e6690655959ecf9b0afb9fa7344bc1cda6ae9e9de32eb8dde559724300529815902e45ef0719ed27fb251572f345fe143de51943ef0f9fe2e3c7fe8a65132b7bef30a221ae84807c54a854897638e3af00915d6052602c1154cb3d7bd28bedc1eb6074b4a54551e55af484eb59b30202eb4a41035e292f82f548c7fbd8308fed9c4fea79d4bc9d5570972f8bf59afcae9754aece6a6b86938a5085726c6b03e150b2dc1ee03af5170ea7cc11f30ab7d50410da2cb8e86b797cb4870a61ec30bcc0a92044b2c06f3c40e5a82b31db3e8106014668e42f1b88d7ee3710b8fc34260dead281fda46c7f856e01cd94a141e36219e8117f123a447e952e8e21640329cdf5c738d7cfb90f0b74af5656b07c5b647eb847a1964a530e198edd57e3647a4eb09c0947770f23ecfa4aa2faadeaac23a4a75ae843360f1c23df3af3e335f420c098e2d22a858cfeff428cfe01eaf88f7a82852af89b7ae7982b8720f50374a2a02cc37599f5641a901610748e94bb410af892e5c160851f6d1e8bc6522861c9b887df9f3bec061fab89dead4492aed3dfe5647da07dcb3dc2433784597dbb1848d4530bfdea390dfa701c41276f9f270325185a0123e3c66fa76e268e20d305ef64d795d84bd5ed67f8ebf869ec868173cc5d09497cb6d5c220f4ea271861677025643e55efe2e379c022279e45207f0a449ff0ac58ca5ca3d1114a40877bf3ca663e028a3482db42033678b610173c6eeea000b0f208457d95054f28f04cf407b58b69135e24912205d07b6239bb2b5970c884bf3eb805cedeb0401b53f7bee3f56a70a935700d0899ce8adb45a112df5133d848a9b3e3f1a69a68f27ac87db97dad4f2c31e163d33fb7daabf782267c6a8f7f1c869e1e89630a630252ed6a4cfae1a5f6aca2026356be8ce8d4594632300b2575c19801143d941f5933d971fd44c58611993d819d40b464f4eddff56a9828b72480aa9038ec0708be3cfe5ff12cfa1d0d025332d94e45b8290b35c62474e5bb6118f03e365b58013dcea5a21ce8a571e89ff940947a0c50c6ea9a00f9148419927a12db9c67b3af6fc3ff6975b84f7659cc03d23d2cbce94da20f2fbb04cfc479da77fb035f9bece55d29a880a61dbbdfc46bbf56797873dd180f484a48b4960087f0cb39e1cacb472b427910202ee7d229a682637b8dbb285d9807d46300c42c0807740fdf491455c53dd3a3795f9f216674bd0a1451c0762bef93596c1d75499395e897e1d37d0a468b1a4ef05bf8bd17b1696986c06314df2014de09dd69af4f2917651f0ae8cbf949f658a88ac84f5ca0d7c09075eafb159df4fc3a7b229b0da8c163be2088fc66169a2455f5c3f3382c5c37dc6e2cd3e57ae4dae8d218ae9662432e3be985224181f5c737a2656dbf53d02ee9a272a65b6d463073e434b3d367d4dd729b55a3bd5b018ffdeb1794c68a1311a93820487a3c2388d734267de7e17d0d4c01a42692fe11ed759b75acc497ee8d8d7fd1f156290451439104597c2075a226d0db93e12e5fff1298d810543bfaac6929e50052cd3831109e2a64b4c81aed6679f2cf7b922bf0c852e9dc7594b03726b59a7252b50e1cb680b2e9e45d7f065b4c7bd4be52c629f58b6a428f4a25a6278aa2afffb7720c1fe7decd45ca66a1bbb3d5ba1449ab10f62d425b8d6c0b6b0c47edefe98e36d7e6b9d56a9ea82dab8179c7997b6a521771b3fbcba6ce22bd52f54955fcfee4027ca1c1ef65af9b3fd223c7dc1a4468d4de47ebef711ca8fdf47a0ec8ef7921c48c36f981a75bce0eca3e6d479b72dc3374df3142d618c090d054a1c82600b06e09e9257e9867519241a78c15a56a7e74313199398774796733cd9f23269cf3f524d9ba534e05721815c702ac7138c5648030e7daa49c246990c25392dbebd9301b3d3e266217a2a125fcf276e76cc694ddb5d2b4504ba60941d53d4f856d93fe02f3d58ddba4697d1e47a02ec53b170f74c4307ada425b565db02d516e9974d3aa2c2419b918ba9b15c919894c5b562e3dcc1b1af931b7dc926364fad271e68aacf205496aa3d4ecad41c569c324f92fa11f2202b4becdf2e4746098e1dc53cdba1b26e091823b2bb42e7388ef5f1db26ddda16f6de00bc5d55f9e9e37d8d9bffad8561f8ef37b8cf75b099f470c520417e7cba150dc97927808cdf547393fd02d1d097211b48ff074f01699a73a1ee54bc4c86edb46dce6773a7567fd5162fbe8bcff3894e7e69ab5877ed334c873217a363db081dd74f337fa2caee6470129e924e7308b40c147b41f39b62e2dd3ddf7cb3a0e4024afa469ffe9d8039157596437b46b9ec9a21cce16fc7759938928905c9e5ce9a7741b2c57b47fe10b9f4f4f5d4ab9653369b785ff0b088555df8565c45d9516649473b6a196a416de96da039ef7246b1c189bc44095df4408032e182300097dd64b076e924252210d35fb9b095b9a2e3ff8d7a303693970111ca7d8a36e1ccbb3e518e9b3fcf00b142f8275f4aea3f4f2b8289a15d766318d4a23b907e9b9042748d71f7c7a73ea45691a5146baad46c20e48901c1f21303e5257778290959eaab5e5ef10232c2f333e3f444e52787d8c96a4afc2c4cddbdde5f4fe01050e384a556d6f7879a2b1b2b7babdbec8cccefd0614181a313234393b4b5f738dafb4bef4fdff10283d50", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 44, + "comment": "signature that takes 30 iteration(s)", + "msg": "9405000000000000000000000000000000000000000000000000000000000000", + "sig": "86cb26be7d277b1fdbe00f059585c9ab70be15456dbca65e2e14b7d16abaef8290b6a4ad877bf8b5baacfcf204819dd0ce4c64912da198c9fa9d1f8ec6ad05eb3f576b04596774c7381a3c89b2a56493bb1edd47b48260245eacd0338b5d520d0dc3d5310f7911024a8fe84edc57803c5c8964f3168190db9735ff5d345bf808d92329dd13f02a6cf60a1b5db1d91e9f0ff5b4ad0957f80c22e62fe6b868252144007bfc3bfff5a0199dbf055f422e61843ca2f781807236d8c1752df6abcad25ec9902bafd9e57b9e397df1346b4c5c7465152407fa2747340a65e1f7cce93d68fad0ff5a0b7f36b1382326735ef65b3c04e6c723510ba1e134cfaea34c40cb4271427b626450719f28fd02f490930a4f8a35c18e5ccd2480f71cbd5ab1b737e1eba65be3c9ac4acb63fb74f9890f63f8d2f4b5ed8b2381790a80bdbaecc23dbff26f6ab926886e54d01ed963f00f28041ef69407aea65817af61d86cd52bb639efe0b6259a8c4b75aa2008d68ad0da1f656d473bcf352d0388a544f96c5c641356708c4f7852275780f6220eff86a54e62db43de5501de384cd44ef95e60489c47d7a1daf9b84fa3e47b2be3a2d9778f635814b395700cde786368e43a8641f19b32b0ebe8fecf059e57e96ce28ee08bc0d71b1ed8c9a44833dc62760769a9ba1059a988287be4d79939cddf4a65535268a8e07b9d5ec8f4cfe84cad256eead879602724e96e852485d253ff1521dd6ccb13bd96cf53984797b5f3c3db6edd3312969db60f8ce0c0568514f1a3e01969f23d180e47cc44ec81e660f083021fd44794835a4df49294c0cd9ccae6e81eeb0d50b397e5e8b3c6a49b59aaee3b522e7a1ba53d37e9ab0b931b8b6737f4c99cad86e16e2ee1a26bb9fdd08d1462a77303c1f03e8ef8ff0b0cdf77bd246aee8bdeb773673fff507c93969dce7af99f32e64d9500a7ea77d239ba1555cb684c8be8e872cbe38ef15b20d9727de4001c3cc2639ad92e9adba5e145ca3363f0d7791565293e0b2267514e9c874b665f4af452ad7af7356422be1c22f108adaf82614bab21942f3c61d0c3ae4960cc78bfb01b8aab9ba45da30513369f03c18cc1b4ef96798646349e2d155323e37c45bf8041e0ad852926b2f10d89e7e0326e02698071026fd5bad5e3f82f6b77c3d0d4ab964284ad99dbd1345ebabb8252e94469e4b903d6b04611c1cf63717d72df2e1a597def8e74a34a3971cec9950b4a69340d943503d2e69a70afe6d46586b27b2c6eb71b39383a0b2b92bcd1b1232b11b9e880b45ff55bd1439c360f74f9c89065f6cf107fc4c02bb5f8f0cd72c8b5c0bfd6008fee78e208df01d63e6344a8ee766dbdf381413211ff5c6e7a94eaae3934cf50c4f5117650b178f813df1bfaedf34c25e8a8e309d46f5135d2f8a2c9cd2c28e6579ec8de14e727b28fba1282cb3c0bd534a3b4f350136f9da06b5fefb0bd32fab8a4b75d50d9d374910bd30bbe1be992eb1ea66b7d38336bf5409fb9d5a1b63b7f21fe05428d4f41ebc6b3584210d655825b128c92f7149057a8074b2c2c2e1896935547e58bc0ccd5a95e7688b79c04499f3573f7641f2e354ce6565de11cad52a85bf37d8f3b1389bf52eb3bba645a1489175d17f38a574ff13a9dba44f4d058dd64c0b83cc816c455665b623bd05b023a3b53be0f458f5b810f0702603e06a51081127ecfe5b1cb33b840207c3c12d83be805c6bd14c4dbae3b8e7f57d28dbfed187f01318000472ac61d66901611ee8359361d32962ed59970a27a7c08cebd7d4fbf6ad00a23e8a60af2223aee5dbb2d3d4e5334aa2b032b96cf0fc4bfaa57c3e4a28dc1ba899a7414bc085248bc4f21c8a8ef6ebed573ba096df70279a503ab1ed34308efe6e92ad9c6d895d4a8f09b417dcc6149a24ad91b521ac19a0ed5cb678328a057286f47950fe2236b00c37511023633c9ddd6350d89cf5e03f66ca1ff2945797576df0019e7f4cc1ae794b80b9a34b6fc181816ebbe08734b0c74aaddbe8cbd2c6fc7371d8de188af8e44882ce72d31134f7140c2ed5b2ab17b6136b03dff5d5b87432a1f70cc42b4dc7a5e158a3e618714c999270db9fc0da3941509542a5e22c00c9d9768d7e5fe7f91a124a59ead1c792f640ffa8b9cc3f3984c0d9394968c1cb4274145533759d7dc63dd3685a439fc7fe887cc91e44509e565ed84c9de45aa352031cbaa29a247ea50285eb268840fdbc93d3b6e9a36b8d8af7dce0d89def20b68bab17055d1e92523a8adb7def2f45586a8c6449d47704076ce0095a07c2b9e7b9a5692797fd4cd3c2e987f9e5a3463705c00444911a320c0a792f78271785e52d24141f33beb831de1b98189faca33322b31a84d0e14ffa520e825c933b2eaf3532c71a6cd590be378ce62e3548b0c466789977cfddb8ddc264d0a417863f1881b50ffa45ef73cf8065607683d5d1ef03a713950ad349980a54c8b5b6e2a6ff02f8a258c2e7ffebccab09f30326b15527ffacea6a7a48b2dd21b2ab427f332c1a64d020f4628a8ff0c5e1043cd1d558e691c600f7f99b9950186ddb17c650bc70d2cf8c718c304288cad3c43c94e3d974bda234dcdd047372879faad2a8eff293edb824304fe829037741f2100698df6e9051f65f2904c70d143714d291836994ee954113e2d2d2ea7e283e7e863809d77a746f3351e3e16895858ae95d72336786d5b55343cc632cd40c018361e0001b85d1cd87a3f5fd8b3e2db894a226d3bd1920fa639a9e05064d199791b95be748b8fa627d5f0b5e277005183667d13591959f1b2ef24a395f7d3137d57f56dd34aa71c81c894c34bd67e274a3272b6758fca34e5c6382cccbf8b04f08585ccbdb28b99f59698dd111a7343e00f5241fe3598e5991aa29bd00c1aaca0f3388a9a0c9bfe754cdc1c1fa86fdb3c59d14622cd650ca0551716537a268ad88b5e269c0b6d02f0db93fe2edc04a52c4fcf8ff73481cb757a4c71afe7a7724e26e9cc321f6b78a21209db54ad843599e0a4be42ee327cd3586d4579b9ba73f282ece18b5b9a201476992b6621a12d14b3b5226557bfc6ebb790285b9fa6a358468d6b2f91e57eca0adccb662195237b159af3c46fa61a02cf1ebf5b5094de937f23d110d4a6fa51207fe7ebc036a8c253317a974ed605f3a6343ceed56296de442fa95ed768ec2f1ff49f28016aba254c5cfdb1c8dda3c0bc2c2c0f550c027ff8a8f3d73af749e1cee1cf2b61fe496dca7817e57981a534ca9077bcf9dfcd7281ce66850c6f60229bb16fd036f2887e49be484246a04800092b58595b5e636b78a6adaec7d0d8f7fd010d1221373e738b969dabc6d3f9fe0206071418203d4c585f6a6d6f88a5b2b8eb0d1a1e1f3b4d585e85949597b9cbd0000000000000000000000000000012213342", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 45, + "comment": "signature that takes 34 iteration(s)", + "msg": "f922000000000000000000000000000000000000000000000000000000000000", + "sig": "af2f9c70cac1a03ad078617cd41046b8802062fa2bd1306b83db7d061198558523e1069a02368d4f93c8422a30cc182e289402c6c252a180fcac997b9067905da4f664f37f978d8728536978c27cca145d054c437aa756da393e40036da5011548042f21f340dd5b6ff2a90886d58562e386e9950ac86433af4a12d9cb9f412df12f237875088790aa6f1ee102a7a4ac517577093c538ce91117cc1025d1074eda84f00afa0c2bd8d7a86df64905cb6ec137afb918171f21bbf4f3c11997e5f06171a5205af242b8af8d0dc0c71d33423c0f2d132e2b80457638e9159f5f4e2af41eb14352556f690f87209450ed9b3f92ac4e3b052e872d3cf54d8003f6b6fe53554aa0edc9dc49ae6aef3432dd52f99e2695cc2758168a9e704fe2ca591e95f423de239e562c2a4fe89b15df8efa31535d3b0198877ab7e35206d928bd3e181a8437f0aa16d5ed9a34e2c2f030c3fb7dd20814ae38bed099b55199dc77af0192aadfe45903d752ca622b2a3282a481905bec54fce83b779cf156d61674d010bdf640a5a5cbdc47548f30c4ae75c701e55f0de9bde9c6565c8089dbad737e6fd8d44d8220680c7901850b890f30e1c154cb861de00487b7f1c717aedee895f9592ddcebe77bb2be616775c836a7b98bd7155c39a5e13db8192b339e3f30db359c1e65878083125a931c9a95092b177fbfb034278a3d8b9e03fdba72cbad7b2a75969c426f4c7a47ea2ea6d7749b853cb5d182bd0030d06d99c82e38db3394e908813d48099a5a31caec689a0a6229e3252413d4d5e07dd968ee6f7ea15762d856f1d4ecb46778e55d8f1aacb83539401b931e11d89064d8c017a4da1aa3759873e87f7091a00a1ea7243d55d0143f7b3f1689f4808eb126ed9e27fd378028f566ca76982965466c7e987b79e9071131f4bf05e3044fa7073268735e49929e975cdc3bcd1c8e8e5038647a7cc7381018d16942c06e441636be086000bcd1bc6869fe7ceda8103cde46e9ef45ac5562ed715b00f3e8605f17f49c4fa15a870a39df62d2787af843084a75ec237e560fd6dcd05c2113e1b85cf6340596096dce0cf2693a6d3cfd4575f5b1d451b4d54140ab3fe42bc0a8214a22c9e018d88b705050570f7496ae053a6738cbe51d4c4b340a399adfa222fff1429c4254bf681dc1af3687e6b6a535e2bf8fdce85c761a8ce347a4c0fadca5f90de53d580ab5b083dff9940b11f9c61edb7a1b60e4b2aa5dd0c4cd76a2b685871dea6d3af0cda8b00c6ac94acdcadaab1bb647542ac7e88d42e80b3e22c88f8cffce2041bd91fcf5aed9a05eb2b89903ff3a349382a9b6e572d4f262da11103ff998c5cab482269338108d02927a7e9ce1843a85395262db1caea6ab01128feae8182336cb5cda9b17c59536bf8d7a1ba2ea92648698806866078202b75cb154288216c4a9348540cbd11044d6592b5a6ad4ef8e5a7477e35b1428797e874e7a66960b9a7a3d9ee16bdc218ad06377eaeb435103202b4d129d31017dbc28ebe6d1acdcd07a12d6effb6f5f4fd1da5941f212229f497086ff308efa7c78f1d55dc51b360a285a484916993907dff27f62bf665acc2a0655da7dcaf3f07395deb3dbfee5463c7a7df739c3020fc01c86782245aaea8924829443ee5f7f110197be2ee6fecac2e6e1cd13fd77d8e8957e44229bc1aae5e8d8ce4f389174c29ce751a99419b6115de2474b27304c063de1ab838142f948644a3b0e0e64cab9f8a5c28dd135d4b1cb79ec0be3195f7fa0ee466f394475e64602a6f8c3b3a75982c966555402a3e918ed7391d0d8969ff8139c47ca24c2604fb94671c4b3a77a8e5098b441c88d01b46a6dbfa905343df08f7c93982357dc98aac2d47ad7b70a899fa3879c6424d366a4a0edda263daff706095829f26e4476d4e8ba0c2367734b6a25fe9585cc55d88f45a4f3b8c3673c875fb886fcff7cc0cba9a790691b350ff40eb058d4179bbb8498c5b6f41febf4437819a0aec2b73905008e908a3606b1219781d85df800ab07e7b83e0023c2247f41d459516d603b67460e935181dabd3658eb61c3eb1e956846a9f42013ed31682e4a209392443e4fffed09c8a89a84999293020934cd02cec5f8d5fb0ba8d758431acece33c3328b8ad8fbf6908ad627f8fa93870582779a110b32b97c83c0a1aca751898172537cb5d4340e16374f6031d654ea9c04bc05bc79129350d192b623f0c6521f352cf2d3b0098cef453c9edd497adc0491a734eb4a51242983b10a2cc2a54c2e07783c593b7ab45dc0d64c24a0434d25b42a416141f225895226cbfb00e8b041aaab6703c74b76a49afda27dcaa409a682123b82660d8b4cef34043519b8436112f97df90b0003a99d50617dff9c75ce545495c65214cb408067177eb668bcbd4db9787f9e63de2bcb240bd564d4e0c3f8f9df344c791d641b9dd3a68c2f7a3d0bed993f2ce5db6b84e5930c7f38277d5ead9af61b7824bf7f76715fa916babaa57151462cd77872b5dd8b7e34c3db5f5b94037a88ee0ab1ec678f9cc0c49319c638d62791719493b245f7663fa2fa81661dc49cffe7fafec7dc012899d54268d09b7b759f7bb86969b5efd34491e2eaac045994bd115fce8f94919e9450970d5f5ab21d66bcd57aac7c3e6aa9d05215045b07f012d58e8a8df51fd7c23d7721b172d0e1e679ad6fe2f0778bcc387fed5226d48cd24b002251f8ad319ed1dc14252f3f879e439d789a65adbd1d15648446f004db53cc473f74d03c2fcb5aa2b917874173bcf091832f756dd80355e967602b5a709c198f3c6fce1047205a7fa720891f4f68c604d13cb798a8db39d87d292b9d2da678d243975e6763c6d1aeeacd591da780f4d7e362df529936c6e2e3ea49dd18f0cec8f014d1b5b60384c47b71a0d122e30a12c2e7de5ec124bad0dc33b920f29d963762c7289da59a09986fdc87ff9627b477e215961eebcdf540d7ed9c6201f3d5a107f1e7adcde787296a0683d1814e52efde5f1c99762f208bdc9cae6edaebd1ec60442176b538c100ff33d8bbd70790fa7a915b5db29d407e1d1af91af8e8ef415ed62929088f40df88f0aeb9917a597cf88848b525750feceefde917f1460091581c5f183583bccdccfe0c665cfba8bd184c35717f0448b99d15a113c81a727b1cd5ebc01045d6c2968b5a36a6392ac111f4ea18ef09ad218982b516b74ec5b6423421445f102f08f162da6c816ea0be894114e0373f896922e349e9a7381899f91325a91736d9f09f27fcfd61feddfba7d776bd83ddd794a7ec76f92e0e11171f2526282b427077859eb5d4dadce5f4111d2a2e384d53546169767a96a9afb2bdc4c6d80b274351649b9da0b8c6cfd2dbdfe0f6040b1a3233404a4d5a5b686d767a8ba2cacbfa0000000000001327374a", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 46, + "comment": "signature that takes 36 iteration(s)", + "msg": "700a000000000000000000000000000000000000000000000000000000000000", + "sig": "448271556c0573f2183699a17acf126f2bafd2f0cec1a034cca5c8a83bec6ceb5066e14078d0fa1556832463b63a227810af746e303cb49ef4d0dafc110d3a33071c47ea764c74ff5cd12a6bce872437ebb32a5fc9f5f1efa77408f2e803e7efbfb2e5c6fa2bc96a997b3482c6f2ef2c2cb7c61059592bf7e018e9d59c85ce251da7904dbfecd4af4b6771c0da654b6b97581ff227d7f60d7e7a0b2028c9e1d4f903a465a452a0823965503dd5b7f59dffdd04e261272897e03850bdd9aa0f02b5085e4bcd0cc6d009cb3b7af1d493f25f26b52d89339d496f43998641556bd3a45551dbbfd05c3be3e4431ec778f9a0c12bd5e36b6ecb793c125c7c37a33d1b51199479044e954d86beaf0adf7103f249df8d27ab60809743ed8900d6619b2bd8894391a77e252ac880923a9a8cf5da98752a30948d347cf5665b0f170793144a60449139e48076ca510708e15f2cc93f7d7a87467bc6ce20e72bc848a55de8e80cae9b16faed60bc246a5519da029d6340e4bc818adb2cd1ebb70d77b504c5f731745c00dea53828ad27765c3b03047514afd97f99d0693c01b40f501ba3df527ae0f8b3c29ff17b835cc47c55d9210ac555779eac3e922b0066ec32fe5564dc2df6524453176db8e6c6d140e36be90389f329155a379e167909b95e20c0fc04f4d007513e5f7809e8fa0376ca2866f627af4a5cc9fcbb71c4ce982caad6cd7f9e4c387faa833e7a6b6372111caf2a1301b210e9831e0c7d3ddcad407df1712fa781f2c7ae194244761e1837ec372707dbaecc2d096d6d0d3643eaf46f03590cbbc74f551e13bf710f2b3b3adc2091359887b1eebb4906b38372978e19e13e857ac933c4eff2c8f25e10bdeb0289246f6863765bf6024a485996c53f614b53e1110aa0b8b69b29758861bc5aac31b9e3bdcea001861223859a34e13fe029c220466da9245a6e3e4d437118c307037df77915fbfc837ea9542a6e57c849b51f29930331fcdf9604f431a5ff15f7d1325662051d7cca0bfaa9ab18dd8794d13df862a52700c6b03656598111ab501cbdd58fafd0538c2b1dfec2a36ef4fba94dc4748b50dcd0646dc308b89b022cf282199a66f1b30966c363f8751522058c6316bd3e2a9a6472f8da25598a622315083e4126334cc8ef65bde97533238f6f86f2f2eef8f4048958c920bf3b7ea7e89d79fe851ad2f60feca5120e03bad69cdca8230a0d318a7d14c069a499ecdbcb9e7c2c1d988230aec8bf30316e76ff5ee4c4db5ce044073b1f5c0bd5214246d8c3d2220474f14bdb8bf145c005b727829b1a9c988bb617871f954b9487a86d21892841bc306792218c21bf3ca6bce3a955f138dda2d3de1c7cd550767529fdc14f4ad600f484cb5ce58f2d0786cb2f0c3120dbf535c7142a032f16d399b85ef68a22f76047fb3d436f0e78d9bea61f9188bbf0663a27133925a1db5e4901f079e4d02c2b4b798e39241031c2c4f0fed0233b044fe26b64d0b2e025c80481b3fba5f39bdd3197bd14e54c17f80ffd8e04203c78089ade6ca71b109303caf2b61aaeb50a4d38d5e788f727f869f99f928f3d5383b32e3599ceb3df090aeb266d69961fa193b9d204b827f5ea3c996f6ab780a7b82688a56088630a3fb57ae782756eab5fdc38916435c547a30b3c1da5458f7f315fb4ab870c4c0ad71e91c780e6681cc2d8050d6343678f3e4b5de997ecdceeca45f3a193b910bb2ffe0aaab3b35b557324be2896086d2cde38f7d8e3d49b83043cf7464a67a711fd9fc3c7e7597406f940188f9387ff287a5f531daa4aa93fd62676e2657802e0e0ce1175071b1fef0d96e050195b40fcb64ef5aca502709af16c17c4682846d9c1b6873ceabc6ca5e36e71d1d6e01851c303ec08d0bda64476d00b4426f25160d1e65a0b0c6ad9b149e8e9b4247200be6e9191e6371fe1dc35ddb3be3e0c2cd51bd166697978966bf01711bb29ab431a337bb9fb8675c18dd36a93c907baebf7f631d494afaac9e32860b7a6c42c685b3fe015c8246fd389028cf9b2f45b312d8d14e61531776b7349f838a4dd182e0a5b6f265f5d23910a607da624f2d2b849d6826b81232f5bacd7ac3d7b5a26da79a1e0423512b7e957dee1ee3052d42e4e22481fc8a6668deb7e9a32702c8d2d6aa86b5b48e7a340a5b8b4cc937132351ceaa4c08c691748b6f6bf251fc305530d3d523723bf8604118a8bd1f55038733575a4ea7a7ab22b0f1de48d580ebcf03f0ddc3b0361a27aba371cf11ce5fe36feefa78cee61ab2b398312279585f5dd18473c63fd13a2ae7b25c1a2cd59ee5a795ad270965d3fd0071c87e6e1dbc3f0996db1199c14f5fda6a3d5607390fe3c050c94fbc1e12a0472956b706d870a5087b9c17767c9303ef23e8c3aa243c1996edf2fb982f871fcbe99d740524e610eadbcc1f27bf4078b1c5824162e6c9910b52c6ff34aa3a46f82f9ccaa937bea216bc9770700d039b308f8bafd1ccb9cd82c9148cf9e3f6e7cad10ed62cb5de54abeb86d47efb0e08ed0e196a063f114bca5aa2e2f63e0858f3d69bfb41cf820b354eda3557b75a35d1e3cae28fd6b01e1a454144ad2626dcc876588b728e23da38b3239d26427df17668903a1aaa5d64a840721f4602cfdc04d3f3cbaeb99d524d387012c6f606d07a937153e5e7b28c0ef31de5a968c9f6ca505904315f30e5deecfc22ce5aa591acca5c049daffabc654092f53745d69d71a7780e5fce82d3b9e2ea7ed678f331d36fc141085f4ad36db8715d7d5677787d01ab9346789d1e7accc5067c13018faac1753ab7dc2b1b57937d1cd1351c31c70c13725ab5d93c875f2a1e237903fe6f945984f53c3a987b081735668e5311a0077928e453bd8bf64983f30bf1ce0bf2c8993e8cc4b53737dd7a4a1294338bbb86cb2828ce29953b03117d4b8ada179a2d76ffc0775eaf209e8458df3dd2553ce2405a2e2e24ed3c8654b0994b3557ffc13122602a05982ea6d2db928ab9a30c10ba4b7f5edeaab80f74894254fe597c3fd9dd1bb0a8b9d83539d0e5e37f1396736794fdef8db2e103a838abbcc9054b3a73cd88254df63a1014a1bcf78aae01883f034f1ce3a6cfe956f4b360d675b5a9901b7de0b1a2d3c9fc1e52efa56b144a6020885ab1ffaa88e5d6f58b54d3d903f2ef18e3c5b6d8ef22c22b14982c48c21599ff766418908cae4a6c11863ed8956beb8a48a43829b454ac1ebf6829a196c7ec9a08318093fae3f23a360fc40a6aede1df6e3a7f4d24fdcc56fd4f1aec16758295c192f6238373f48d98f606904181b1c224d5668797eb0dd172b3538494b4e565c5f656d77797e919699d5e5010507122f325158677091a6b0b7d3e8f21c2f3f4c656a76a3c9dfe700000000000000000000000000000000000000000c20313c", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 47, + "comment": "sample_in_ball requires 1 SHAKE blocks", + "msg": "0100000000000000000000000000000000000000000000000000000000000000", + "sig": "c022e817dcce2f91354fa0468d52d20730c1c4b46f93fca19f6715db7424f4365bfec99ec722a7b1aeb28d8e98d302b65ebe86219604f8b524f5a55f7b6641a917e8eed1b13062ea67acfdeefb080097dedf02ecce812354a5dcec7e242fde337d609bf09fd63379ccb64402a7ae08072bc2413e2f5a50d5b2a23623a2c9e21ccb78df687e090107a83ea928f1b307e0fdfde53b4a203af164bc18f8896a7d7a21da3a27c58bee267fa21328fb72ca7b2f171e5451d38a44fbd7b8dc1418405e13c039962b6640848e33d42211c2b89d8a37a220a3044d264f03ff1d1e1a7e5f5b5adc15cd40128d75059d6b2a0a8d775f3f173f3e1863dc8e6a335e34bf63eeafae2e2f59903784338b9d9b68727b90a150edd9ce9731aecefaff5c6123bb07a68eff67b3e258a6e8d2121aa6e727e8d152180dd0c52accd286ab711b717ea87f84e448b6ee5191fc49c5d6fee38d9d837e484850fb1831a341ce26a7c8ed7d47b386a5e3ef443219ac518d46059ccd199056ec7bb0aac029841cc2d6740c28e6ba9163d6b0833d62b4d2d43d85b8812a369144e9ebaa35fe244ad29d24450a26ba2126b8a94d8b233d44b3aefe2a8477d0a4ba72095eec31561864cee4338c1712419aaf4e4c9eb3c460a6a998c9092654dbe9c5b585418450c575639484d6f0896b2afe2179ea396c8f1b1b7ffda802337cbce96e33e0027231c9fb9bb6923793e4fde929d0a93dd03012f94c6f0ad12c02d8d43bb480ea3b30839ca0799c9c6f1ebd2d32f11bc19925c6d801ebb6abb575d0db6a5d0abc3b50a19f5fc4c86e17f6a32734b665f46c8a9d96f338f5b7232d91ae7360d28e7d50e06a9222eff4a5b451f113efbd137c1f181a5a4c5723e47aa5f3c9ae7dc73b4b92a67786dd6bda0188d968e9ce13e4c751ed8c36b43df8872c58c49476a0ab1ddac5ef7eb066ae1064d58bf46f3d1b8e54f2c532f30ccbfc5ee3f90d7e6bc582bfacdb8326e78433d237074a85cdb50f2632a0d7be7c724b33038fa0a5032814574b7389bf82bd0e7f8272a851cce703f877d6e9d15a748405bc8d681a5653db1ef1e86f92e6ac20fa8a1007a6881b448e738b50fd8cce8f85b042d1ecf472692a4fd43f10aaf62821a3449814e1a512783a0caace03ef1558359ef357208877256bced98d5c3fd5cf80e4e0ef172a0c5556f4e5dd56601df1d1496c977b34305fe7781dd7714ded0af8cae5e54c1ec6633a85a4b408dd25a29befbcedc3d219886e6285855370b43db8e6eea5a7d4c439b77465663a59b4bcc9cfa952c9dc4ad5aa02cfb0763b308eacdd9dadc94fa08314d132892ffde80e3c9a80fd474cd2452377c8b2ccb162b2cd34fba13656cc187a2d2a295dd47af66c03a4878cb129117b58145b8c76ca84024550748bc593def2d9b970abe578ee2f41147593f69c5a6143d7f5eff5dc100bd22c9d6537de0cfec96fe18e4e301c72db0c165d742503736ebe969c36f10bdf5e4db8204249425a90e0b2562296b89cf3262bed488c195558dc18c0e16fb3c1aa735a8b93248cffdd7e9daf8b9f603c60c4f6d469b092d956af6cb136ec7950251f4d2628f90882dbd11a5115dcf385c15e6ceeb1bdf775b0ca827cbbf1c2c5216276f5ec67470356ec179a3fbaf8d75d1001c192227385de7a38fcda9f9dd541e6f3b43690f1aeca9f10d65e57415df07eccb1ce320c6cfe3e7cdf85dd35bbb0558a9b900e5f2eeaed69a82aac02fcada88bbe0765ba43260d96ecd40cb9ed5d5ef357737f27e5c12886c583ad5f750558cdc9d87271545a0ee52aa2521ec1159c6d20ff66d089f767ede5351bc2612a75bf21d323f16c4a80581f3267254a6850677a41107a00edb28f0273e82aa4d76324b36cb0a8402a7f05eaca11f2b18329181d336875bf4d059df07b44b1e6b4d1a169d51b6d6dace173a2936634f8658dc38ba0340a044110a51275dfc3286aa051bc4c48486be9f1c335598ef3d9e8007e802797aec4c392e26d57f819167cc6b29d959056c31f3fcd6e962bc7134cabb1169c2a4eb5c5d4fd61b14c0d8ab4d16e5a376e4ba601e453be7206eb47b74a2ad214db24a3f459931c27a3d2351e2bc2c32b2ffb78e801048bf3c505f76064ca7bb038f96e700bcf89c54111cfb9639ff761a7c7c8c1c8d14daf85c842969a5a1dc682deb536b044f1ed3131523a6248788f0d0a1a4ec7b5b7c764daa0be0be10489e246a0f7e345aad67916109a6eef495400d5e935d486ccea939fc4ab440b599bce1b5b5d6643a5d3851ffa9956afee78a0d1919d0ac9ea3344dcbc477e65658fad5cc1658dd0d7dd26a4d968d437a4c778ea6237bc69566ab57fe2c29cce046429375ae66fa10c5858579641638d1c298780625413dc14324f011af275f842f63ce62a5c256f427e998a2e65356af2034cf5f23f8d8a0ac138560331f702bbe6d35748ed386a2d70f9855a07b8fd524341605d53d332563bb60af8f15efcacc411c35b623309f9d1aca8b95c2ee957ef19fe4fbbdd4bf0942f2b878d2172cc6d4769944766c81a6cb36b9c1afc33d62acc7dafbe72f4af357bfc870152f81cfb29273bb5b373a85b16105a0b902182e7ebf583ce036847fee0a53978fbe1f97d2626bd9fb7df9eba4f2b99d1d4e6b1ae1b1cc9f9ea2f5830a8b2069a4719704b27ff0977db528bf8576ab68d7fe6ab01306e25344bdb2f34827804ea386b5aef2c7958fd9068ab99ed3a770f344528d68d829611958c1ab7f324cd63ff63cfba82eb923a073f48bad98aa00e831fae0107d8f54634d195854c8a23db55898112c696438885135565841305b0f9d885183d49a9f9ca2368a2ae17edcc2b0d1632e4fdb3d719b6f41c169d50d28a849a46ca8d5c29dfcc0facd9e8994256fbb10f8c0763994f712f5507934c59193c9775452ebaeb27e8084a72a0d6dd77984e07a9c184d8d86074b16ad1001011863514dd17001913275417a8b4021e05f502714d272b04dc45d570141be61a3cd6990f0bb97f14dd76482abd21617866b1d13dae3dae860f656949f70786f42d3a20666f2c69d02530742c4bfc00068b2afffa942c2491aa720020926a33d2fde912099ff965cb3853f919adb527a55367924e38c5eb35f7586eea5b4d807214e0cd31d4b4882e7f7e2a38a8e3376ec379f9d7b57659f6f86b1117bc488fc0af0ce3422f058656b4d17ff473f1f28b9fcdcffd50ef00c54a576edce0bda874926afa0f8507e1bc62587f3352317f5dbf449726a63010de91efc0f02d51c0d10f2fdcc366bea23a7de6032425292d373b3f648e9cc9ebf4f6fb0a0f111a212c3d535b60737d8eb4b7dae7e9fc1b3b464b58596c78a1bcc2e9eaf3f60a1a1e21232532516777a9acbed7fafe000000000000000000000000000010233242", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 48, + "comment": "sample_in_ball requires 60 SHAKE bytes", + "msg": "f209000000000000000000000000000000000000000000000000000000000000", + "sig": "c52ff03fae8b5b7d2e5ff2f9a3bb6a75c52d991324dd0bf1cd2aff1ecd3fb4bf83f8b3f9575d42532d432a6dd3e1222a4cd7a387d02c6a78677ede205615bbd76160b160db74892c925218389cf6bde5b5d3658821945ddcb3ac92cda29a9d88fa3528a9f3955230d6f6dc72b7b8b9c432675d66e5c11cc752fd048a93838db1706e221d5ea7e7755bf17c484683a0954b32c35c662bdbadd435d0d3544eaaa6aa3e0c9741c9c99da4984e047c6b21756e5e6722d025a494f10c1e08732b6dae2eecf60f104554b924225f5501a3d443984cc1f2fe533a479b35e473b4b5ee7490f8c55551a39b8bf4c757d30f6efb31db262299245a8a8567d181e4b5595cc4d27144e1596d692d0d8cb65ee99e553e38c2bbd60df57d1234d3955c9d75abcd1e2e6f4f867cbda77ad38e4f7b6a108f3dcd84c6b278e4e7717733af794eebccaec62e9d9e350059f17e261956769af7beb7b59550980f457616b83d73d90b4904e6b43b3a905e4c43590872decfa838e851a778b91730a83bd1a8b8f1b0a2dfa4aef420f1f1e2b3428140e1be523c03dff78de7672261150477e51e6b3d79457ac23c3c90277b4a4685bd02f6989baf8f79819efefb6ec115c5d8b5b6642a3d280b0a88eefa50a9612e5772e4827c96046def14f239192c00bb0d5723fdf4e057505b99d1ed2f98be43bf8854450acb5af827fbe3120b8dd5eacd14bd6b782e8a8b18a5e87270b3190a35097cf074fae85d4584eed69e20496539b240fb30c475dd86844a9050bb7c3a5755fb56433a659694e54edbb647868a57af12a7d7f48620a689257472d74d92b3763ceb80dec66f14ab1231bc57181e232cf0a677038af56f7eeb2be6b7dd142336f9760fd1f7741e542b08d773f831a68453d8eda74b9d927c0638d873a40a873f6952ee3db912e1ca5db50f402f6c44867bbcaad970371206c13d8b075bb23129f1abdd5f49d748c14cf464f6c5f65123bdefb497776964f476f35e244e7982a62b6a801f8a41a0f996d299e00fc6286ab8cbcbbbb39d23e2d1486009bc5a04fc5f2aa38fbe1fd872b4349aaa7bc0b8b2a345a49128b287b1d1c314075e1db195c43b392ebe89591c7cd0b1601b1c9dd239b8b46826f68130f98a61c1e43bfcce497c1bf1ade3f3899946e955775e30fcd1f8c1642ff80bab97fe2593260faab4e8ca77be77e14ae3656973dc9fefdcc31422591e07761d7edc77632eb34bec93561ee63be60d64f00d237334fb517ad956dd55368de8fc302ae72ddcdc9d6f76c197ed1c70e27479182029ef86a9ea1533d630bf1a3c4a881c6117b47fd70c9701f00a233bccfdb1d6a727dfbd2a0c1e1068cb3c0bd4adf1cb93b057234e6bd31ed3528d0c94abb583a7e7dceec15000fd456b79c8be991839429f458378f1e984fc04dddb98682d07d25f16549933bfa497da3c406864f3a4e31f92972f7e6ffa13b32777d759c970cf0eea58a465b3d682523f35a6ac42a2fd04caa7b2cd7eeb2b6af3bbe743034cf7c11530b2cd8b4fc53e6e8cd2dd506cbbad745d178a57a4ee52b12f79cf8131cfc362f2b447a5ec5115d2c9067c354e233f298a91c11b771fc683f30141303226e0f6680849c3b12e15922abf60591d81e05fb8edd85f5fa1621ce25db13efa6c8f1eedeee99ca46764a8e746c0445841f7e600db084d06841aae38769dbe40859d3ca74c65e9b154a27bc588385f93a80b1903be71b166e0f8ff92251b6141c27f2a86c5a0702fa9e140089d33b3e89adc5d85dad95e64b4e5f7cb14bd0ff1d9492ca2202d62c679f3ca88ddb697445fcba690889e7bd20d4ff0fac7bb4f06a861b7fcdc26bb63ebd489c87263d150d64f9e3f8e2443762e1e12a2c89b6af0f96f36878ccb53774b72f2a837f576e2b496fdd466df04c1421a07648e59abccd7e478d36def9e5c0ea7d02e76d28be0ecc94dd123ddfbbce0e163e0fce5f8a6f45fd4a3caeb7205c4f585d2c408562578cce74ab54f4c984bbc6c6b349776b851364a427d4fda29cb8ddc2c8d284e225da95204774870125ea666438c8762713b52a1d2e803e8d9c25813b172ccc821e17d21574378d0af1a3eacd733587a18e297b15bbbc6e96d1c07dbdf7fb461d11d65365dbf65289b2f9a9bfe39453b1e9c01b12b74635250cee9ce771938a3510aa8f9bfaeba832595bdb104b7870517904a9c72aa3b0712499a76dfcde52af31fd3ec657e749589af3f08f10247cb8db3eb1aa2d73dc0c4766227380cdf9b6bb7200220c44e168d6bcc27ea6610f5a318e66531cb399fdce00a7ca19c00d077877f99ea7a08af78a0593cb21c47fdba7eb2e1abd8838c57eb2efa839934e6408e35e73f1459b8ed3a984a548576f7be5686218a8518b644d5de1e24c415a2b65efe0698b5984c136b2416a7c015823b65ee5f2d6c7be7c0c5aa54f2dbe0403d18da2b19b080cd030a1dd230a8e90b97ec32fce44282a0f14891b209413ed58d99ecd395544fb55c2f0519f56aa1dc86619f368a2dd2c7981a1632015dc7c82f99ee0df55f3f9dfcdf7a3acd087119cca2b707a7cba73e060535b7cbacecc96d639907585f830c47e400cd080a85a0b0b762976fabffe7a3e9105545e06d753f68f859f570ef1204da428c3c9fc1e8b96d41c4283637e6ea44f66a1418709f69a02d8fee197ee6338d20abbbdcb358d0ea01216ecd1f2f028ced01470abfa87db8793fe23afb20cdb9c3279fedb2d80aaa492078dfe01929b7352cec8c83c88b45435120faf1f9451815075e060440c51bbdceef72390ea277527362c12ad9a8565acd71710b0ddea028a67518c30868e6fa334dbbdbd49b033966966c1309cf330fbe52cca82d0ab3e488407720642b11ad1a6faa8fb7b0f8ea8e735c76a4f852749fd26f7084b10a790143fa35ec78f2ed764dd700564ab9180f62b3c5564edcab4466192cdd31491a333fc29ff7946b41fa5bb9ad25a2c20552dabe3c7c95d83740eb25926f58ac3739d6b3cf45c76235ffd896e3e7c3225a8453571547f087a334dc7578948e75114cc4aadf9c4c7b99b51da03793537b1be95305ee1ab75d35a48449ae1cc67f4260aaaefab4e2fa5e650801a5976fcff2ee2bcc972a596211d6366a76f8a8b463de43ff92bdf9b90d55abd0993649634f9a293737a175fc203ea28d94b38180c392f80c2db767d0697170ed3b2c94accc6138cd8620b587b13447f1920811f0f8fef1e5d9888f077d2bd653443c7280bfb904e94444a684958bd1d4e6bf5fc194b7cf31b5f64f4754dbd258c8c2707a5dc8081e242537383d5b8395999ba4b0b4b9ddeaebedf5265b5e71b3b7cedcfb000d0f1f242e597a98b0b8b9e4edf50231416d797e8088adc9cdd2dce2f60000000000000000000000000000000000000000151e2d3c", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 49, + "comment": "z_max below the limit", + "msg": "7f00000000000000000000000000000000000000000000000000000000000000", + "sig": "0370d96a1218e535ac43037ed96dee1f1e1c43a24ea820009b2d0e195e6205dce1df8dc6feb7aafad97bf76ff8482ca0de9c369d36ac103291d127eb26b4fdf531789d5700b5dc91c07742bdf07138ff78919b1f8366de6ee41595b419ccd13db9a88326be173c3bc73d4e823befa672bee80f8f2abd1068bd9910ea1badd40effa43ccd8eb80cb576772ab63e2e1ad7de0bd5390e7bdce24cdb4f9e399d23b1a9577c2a7d5a6b5dda1d5f070a6fec90d15427246c4cb242d303920ea3691e8d19ce10155f392226ae9ec3722dc29c625989b52bf8f2367ae1712dbdc260e4467cecd9b51b3d46cf048cf9c250b97e5add3103b70026c491ce49531af68849d1b78da1632639fa32a64c1513bb602ceb8c5116db352e75aeba6ba1b80589d941c884da92ce826b048ffc42d6fc02e0189a1c6df09cde96699414ea8b8af325a8cf15cb066a57a237bf0a95a53781a531f1c9db63e65a6da5ba9dae3cf08b96efb6d38b5afa632fadfa89a345319289e126143e85020d95f1625158e634b3e50b210a2ad4e801d3dc45a18d46fca4f91891bb9903dfb8551444add91bd31ea28b7ad177f7dcbd5a56df9b1eeb45072f95ce235e77c05ed0a94c625a263a861b92bc664fc5e7c741782d792a6e6104a8477eb1674c2570afdfab5984808f444dcc338d9cbe7298976c3a107d95a65dfd0751eb998e7c0ba82142946cfa63283fd29e30cef756f45451b2eb01f7a5d5b22d96e22485001cc6b345ec741bc9fb68ccfc593343fffeadbed314405a1245ee520c3ac8ce3a28caa34ec9cf687aa964de1d9492d220712dacadb930fd022449568e56cb5d7e6234d286465930c8f35fcef807dcfc5aa4e2715083e08349dd9afaacb1373a2f1da46880223d732cdc9e345c81a3ae47bff664abcd9e75d3ad746c8a87b9f941fb391735b7bc8bd3ed06d2afec31b3759a225b7df7208fea96af9a8d817346c548c7568fd0c334f0001da7677b3ffa38d20244b6b935354eb3271ad3d6cc88f07b98bf7c9276ea23e0517f729ab5aa76f76a34dc8a12e67fc7a562a2e289d1814aaf8959404247e5e676b348b51850ecb57a9db89e6b83a033722180b7dd0428a91f4d5a3449a7478b8a99b07cba7111e812cfed64b81cbef49f5f8a8830d509b977b9f0ccbfb4d74f5d70ae1848e86cf0fab08a562ff498c1f14ffa44a6e056a7a15bd999a867ec5136c8f8fcf234ddf9d391fa706ada130040a0a24295bb5106c984fa14bddd9bdccfc8c27948fde5a652b92ab9ca65a49f99a774069a56389c0a99b0f90db52f1be0a20912e783c21967c6d2789427ccd67f2c3dc5c90f0f843e50f6e0403417bf5c629f3d343bed3c45b81a67c4e875642c3130f5c3d87e1730f1479625b4492ae4ecea9d5f914b453e06f26869be52c69acbbc958cf13f793d2f0600b496c7c9b3e24fdc8f2976bf3ec3e8e2c182cff0afeab9e937a8bed19088aafe3000baec8cc1786cf6de5a8339f97b9c5bf21a7e95d3bd7dec0f18d700f0a3549497c537331b9aab5fbebdc40bca698282eb091700c35e1e8d4cf1c39319796aeafac68347c866cd35c453a85bc44de820da5444cbedd6afc43ed29f3663d772e9d16bc301ceccf7c7aa2167c1c047dc69711671caf5ffe0a5033bdab079deff45780a136501990fa9f659d975d84c05c1933b824dfff2a891829af39dd58930cdf863e3f09c5868004b7c65503fc1186ba86fc31f4f2538c4c11add0d85ebc9e288b5d5058065d66d79b325f2db042843818c7ddcccb72d3837d99f9676589e5cc59e127508fc63dd804ce221eb8acd0555604c39223cb449c8f3c12562791f64145452f609c21176c9b650ee97753cca03ad0eeb32db146bce8979168acae3cdd74c5ce10e7ed2f0f0dda0bbe8bee3d2f4f07a2d514baf726af23eee6fdfbc9da660cb2d03d9a8260832d9dfc78373bf03de6ad080f89ed9668550d666cf22cd221d4f8c5ab8d59b8306a2d0534b5fe62e245f4a72ccd7c6d7dbb8592f5b534e469234379e54d573a909bea5ac0276edab129284f5378571c41708f24626c6d8a2852d7aa921936e02183918507f29e7378768a875965c870d26f7599984b0108c3178a132773541cf56ba49d980b53939eb8e98ff03abcf4c8d1d308275aa3dee71dc99e0f47405efbc39dc953b5d0574efb032562f4da6ce35ec9928b2a259db225f578016a2581615d44ff6e34b995022e9fa1b6c03035e0b9fef080621a831e0098dbbac2d23ee33f2b0102b73296748a94e5f4258e26e68e772ab445eb1628e92a9879fa52cf095019cb9f200a7063aab3962fcf9ad68788a2d145b42ebe15ee82b8950c5aec1e8135039dee34d99a2fd18003c113331b576ea5681f23642398c71af50c7ca63c87ddb91c4c45fcd16bfca3cddfc19db78863980209af30f73e0b6e9c74fdbd7a15fc64b7202c51805c79f774d7d448abbd4a4b2450e184d77a72e034fb8d8705fa2f35ca03807a23dd0a65eea91b12d54c6d2d166d2879c0150a801415c0c8700fd7d2fa892937250cc5ca942e933f908475752cf101bf95f21f4ae20bcff1c70fd4bef6482aaa932f46aac0b5104095612872e1fd0ee6365d0758f6742ee0bf78af8df151ece38958956ecc257006b5b0a1585a285894d04e0cdecd42eb35da183d87fd98b0aa1921140dc368b3cc971652eec5dd82cc6fcf61f3d85bf61034856d36030bbc74e0e2672af93d4aae94649c23b55046f2646a43f7f5669fc67dab8168bafc551159b38c5ddba2b11440cf512cfeefd07a99dd702bb3d385bffc527ef3c2ff863633ed24621d379f5f287f0b6a53c1556f588cf989249064a228f88944c8a2ca68c4eb2a1b9a5bd3e44ba20f39892b7f2b9558613959485309e793c7f78c81e781c68a1b9d850d2a7377c8ff84783fdb2ed6c458a41f7c47eb3accf251607cab46b6a8b02b10cf7787cb35a237e3ccaae2a2cdc5c2eef8a9a86b6704a6188fcbc4f40c4c67b8c46d313d6a4944b07ea72495f75bb0e7b2dff62b2651b58de893c974d7885814aa81cfdf39992a03e370e0a75d641105251caed45c9aa6c0fd93f52d9ee34bcbe14d6c9139b1ef9810e2326ac150561c1a53cd37f02a2000444d865d101ecbeb7a8b50b05e31b73ce2b6748c118604e85c8e151385edfda18106044d42fc705883046485a06452683830d8d86a03e95b1df0ea0f9b8ac37f5ddecc9895df504bce489faf1af31732d6110c2c409cd00590f2d5a31207cf4d8c34368853660e3bb3746d3ec474c00041ac2230a4c9a8707090e10161c4549566877a2cdced2e5edf3f5fcfd020813262936496f7a7c848893a0a4c7d0e5efff0027344c55595a5f758081959cb8bec9cfddef0a0c28405a5d5e70869aa4a9bceb00000000000015293c4a", + "result": "valid", + "flags": [ + "ValidSignature", + "BoundaryCondition" + ] + }, + { + "tcId": 50, + "comment": "z_max above the limit", + "msg": "9600000000000000000000000000000000000000000000000000000000000000", + "sig": "fcd957d12ce977f9912cda872d2921babe6d802da84575a39232b5c3d4575e5737e14134d204f735c10cc8c22623e1e46d2d581aaa371bd5ab1f7f9348b3d3959274ca4a0f0694ba211ee0790c2f8126fb909c576e9dc4e49035604b8a6ffe4e56956b8519c8b1fede0971348ef6d70b7ffae02d009217b1aaa1d7610ad0702fcc350cff3d127805003305b1cf3c722ade74be0036db268b5f5572406a1fda0f2cb00f3fe5e8f27ea5172e90caa199fdb0d7d5f1128b4c9f690182ec380870f1f807359b8b459fbdeca8880eebeb4ca14719182563eb2e4c576d49bc77cec4e0cf804546e66d06de4639f96316d6b5fca47ff6af4cf31d73b00ab3fb6d105baa97c30ddda2a2eb1d735c8feaf73fea8611250e473f197f9dc0392c50e88891d25a398403ca3ff6ca7d04bc712e9ffac394dd015b251c00e1b5a26ef8722e376a5bf313620d368d152b29060704b5888f9949df21aeb9427047de416ff1c910dbc7bf4786fb7c220f95c71d209ef38059d9361d50f0604eb937b04579e708a3515b20335ee5474e4703daee5073683fe71eabe97ea57de31659692d2d20e34a563c2df07b2177da56966380ca6467998534894c77ab387da994d7c3e9139c39701d7361aa0037f6c47e659028c63a3a0181193e7d1668837142eb1ad9fc0b36928f8eb7003a0d405c9034e5fa6f9f38e25b4cbd6ec470ba8dd72604d7e085e65455f9eb10f24a6dd483fab7da166e3d1fa241b1b8ec11583aa7e8a252500f4536c97d4748e35fd78a903f329d8213464d67a89bb0037c3ed7f21804eb96d4fcdf8aeec022353f0a1fbc32c72c617baf6fd84baf0f4866da4636d063446616b93203966b2aa669cdc1d4cd4516cc1808f6ec1f2f3568c9eee0745b1ed44da4004d3567ae7ae5994641c13588280fb1377655fe415f2c9c6b7c5fc6ef908834ff0f5221809ff856fd836e93a38122941abb8d465e4e3d475bab522d6271ebd39a5d5c975f2189c11303d3d42164fbe8d23411af09bb4226278a2c297f8afb46078be77c9bd36720a3689ba7f4779b8a518e003a742c402d346aae63addea15f9daedbc84443aade4401b3073b60aabb4e4d99a5daca79c4981a8ec3bfb6f75bfbef4365c3bbe8e3e634b00179193dd15f5b72c7777cc0e0ba8c27629011b06c874760a31d0bbaf6569ec65af0eb7c8613d539ad98411b5c981707f0bcdb7ccc60cb4d08d5028946d82e578162f7c0467c32d43563d6e3f0223ceb75ea223fe6afec3e98a2e351e2b845b2255b79e275b30a51789f238890ce591ade403a8796aaab9128cfa1367eebfc036b8f55945f5fc99ece21e46215e50e974658c805ec083e51ab15324919c179ad47f37fb809d4171ed965384c9296d01cfc326267facf6d1fafac6d8957dde96620cc5ff829de6714f3a3580e26c37e7deadfa4b73074a83862a1ecb5440db3bd946f0731118bc2339cba24adf1e61cbda1622a5196c66a794e9c94bb48b3bd4611f413bcaca9dbe3767b3ec78fdddcde19ca8e60ebf3f95ffb36a08f88e3aa9bdc62f01d8f4889c34d813ef36ae38e44928d3b0dd699d62c91ea634b64a3970b93f98bad6035437060330416224c02080533dd689e0ae359fd5ba3e5268c4878f7e97ca8e505b786e19aa20151fa1e11d477fbfe2b7c0b11c9ebd6b4b5acba898c9c507575b4a576f86d2db711151ee987b27925d4ecaad7b72e930a07bf7bcee8f43287c50bc27e3ef2712aaf4c85690a3274c819ee6efef9c4799d282b33f510b35cb360a65f59f89df46e807bc533dadbf0f260e1c6338d8485dbe666ada97d175b7f2e503e871618264468315f04a1ad0ff5668f9a3e112ed6e7207470fdf6ddbe4541318427c85fd2b63abdbe47a45e49acd34956ea78de77b5f87b2f30c6315ea41f0fae568b1ff6c4b1dd0c556a8e28d78c6e82739496c75a3d58f61d18525c0f762878cc0aa97e5f5a6fddf27cc0548f5a7c7f67efccb22baa95df89d16b1afa4e26a83fc291f9229a0975946d9a7bf2ed47d895f79d019c377804bc5cc7f4dc61ca53b7b8d446a5418f26ef34b874fe3201dc8113aa0813ab06d27ca9060c3d9df14821bf5a3224eaa1f64645be7e671ed2414dab6009870e5a7a11e139fefa68b1069aed3b2f0beb5c8e187fff1f99176ea56a9785a53c47f20e2f67800f3f3caf2fefe237c5b70cc1b6a05c6059af425f4e295e8afc68b195a33061f3c48a2e368752b089499b78779ccaa243fc3e5015f2d352a87000d0b886f07485670de0e733918c67ea66f0f23dfe0000de651c8e70fe62b92b84e84d055ecd5fe8e6415c1cfd19f61ba81768a21b926b94e9207f79e360d1aae32a8edb83e397e4a2f416518f18a0e5987cd4011a23e796bd5f8b0b8d68fe3cbf607d737cf19c2b9ff573ed38be28a1a967a574c9e98cf20d09bcd3a5a6be33139422b932652e8482e1fa95ccafaacbb31ec1afe5d6384ae87cbf82a05538377edee4df6938f562d1063ec9642243d75ea5c8cda9489bad5d23557c3004a657c456b86eff615b554d67ca7f0dc5518872e9a6f1d559b93a47c24252459f42efe2e7e3ca8350709f129bcdff6fe121e5096b4c18f2e9d76d56376ab16b33faac61365b728f17349603aedde35e10e19003f3f3dccc7df0ea0f6a8fb8bddec209b2066cbdcc2b1b24b4a50193b8ee9fc8b2640015495ce7389d7f678696f69ad5a143a6922be988ce6cd037368465d33986b0025255fe8292730e96dc81fdbdd0af28cfcc3bebf5a01b5a8ae6d9a39bbaf7549e07835afeaa47e882859d5ca3d2123391f895a52b41945d0041ff9d1f98117bf483ba744145f362f5e48abaffaa4f7c37d85fef902612a7b8ab080e1a8ccca10482b4a398a416a18473856648b54bb8662b4685c7119eac7ac7ec43beb62c36fea8c59a5f940da0d5078883ecf796ca8e61ed993c3dbb8e4d0f5fe4b6e4a32ef499fd4332346cd5935ccc2f49d3f8c8e731736908d114eb66741ef467069c8c8cbbd677245fb1f7090154b5786d5e141475f4b0c522d3cc27c538b93b00a79c5e84539463e943538e75ed6ba3c31089aedc4878a673703de6c87817f1cd5059e7dfb12dbaa7666a0324f42a073d515b8f63fdf0401e2237c837e8f9cddf76cbb464750cfb9b8b61302743d17043e75708e3ee9480c5eb24145b5bf6f71a13060333e929c0797d5b05b5cdae49c6b4079e57ffbb6da33806c879c628bf0684fb86529839cc5676b8f9f301a1e54e96319835abb584bdcb4638a32082693c413cf1c69597c6019509cadb061726525b7587aac7ceeceff0f5fafe031f2a40435a6170797c809ab6c0d3d8fa00041e283034383f404f50535c60777ab5bec2daeb282f3b54586f7b8c919bbac3c5d6ee000000000000000000000010213645", + "result": "valid", + "flags": [ + "ValidSignature", + "BoundaryCondition" + ] + }, + { + "tcId": 51, + "comment": "r0_max below the limit", + "msg": "5200000000000000000000000000000000000000000000000000000000000000", + "sig": "8ec58e53d812c997270d5b9b1cbc012c6bcf6f66df3c128b9f2c42f844f31565034f50387e1ba7167e611873b588bd05ccba86fe96e215cb9eb77f90eea59105dfb26ac008721479923b434e938c1d9d4b6ddd567143bdd7e7bb496cee663e7b28f3fde1fcd5ae2d5cac8c3de20e855a09b066e7d89bf766d786a1e2a21e951133b19fddf0ec5f07837ed24703ffa01f9efaa711d1c3e382ee042504b53fb76d6ce80e2050e7f3a73dfd7f299a52f1815d5ae896ad57f6b88c827c235c83895b49206b1b61f001cf5c56343fe6ee8716708a5d13a19578b22f744bdb0ef06b3c6c221d6c71a4793380c9f25ad91f801fce7138cade533d4b61e16f16fe9a3b0fb98b1250d9578b527c68914a4b7a28dadf3e205c0fbdb296ee2724758c23ee04b6b1ca73b6ada6b63004b7bf0edff1ea214f1e6b31fa65cc9d6a591f7dcdf5342a254c5191c49137ded1c12ba70c0b6c35ae3121331407f269bafaafc15de5cd26030fed824e3874055417d5b4236731a8072ca8068f151e918096bce38a5ae5e07f6673c2bb8b9adf5d6440407c38ee94777d2811b90571b76e2efbc148cbe2c7a31a7aa1beff9e63fe15707e176d20f9f9b62c16ea422315527dbf78ade44c50753c121e10fb261cb8ea3fa7b55e918770dd3e1781c0048e36dad7b42e72082e3d9c4b22b39089b453d792fb0b24c47b01775f024ce21c394be812ed4b3629f751a5b24c08fbb46ebcfac0d9886d0e087a6814729005ac00aef4f89237e4fc93c39d3bec93129b7739646e0ba7f0efede1c48c78e80192496366d08a8ade899781cceab8d5f97e9c994131a529ed10688045867911eb9ff0bc13d1bb14167c287c264eb4c648190899d78540b2fb6b8faee19cfc504deca162dbd76bc98e929bafde4b483608482939edc6cb420f31f6fa5afe65a8c92ad613ca102a3e078e54ca2eda7ea7bdb85e9e6470b8bbd2681483a7fe3c6c8b65334ce717d8f74f7dd849dc64aefd3d19f1e5bdc1e8b192e53a40d61a63348a95975d09a0ca90bfcc597c1bfa2b95f131f5bfb051299ee69a24a6aa414b5b38954b14b274ad94aff456600b93eb488c498c0de832784530075dcef6729920cd22b2501bad3c05ca217cc81394e63cdf34f01995b69b24d7dcb5b0535e8d8380d616a9ca80ead0e04db0a67799d58bd4c02782633867609f746f8c2fbbfe9fe25a238d2a575903632dca36567938d9b64fc5ad99562c503a899063464a4a74141fae115b41a960fd0c705c7bdbf472c156cc8869ca7dad09f4abca96e7cb7b2523365286e9bae0b7f6bb13725a8561f2d5d62c2b3e543af1571e2b15bf91698b840c329d91d13a6d1a3b83dd31e3d47d15ac1b3eaa4b15398b28ec3959f87f0313c221f70c91005268ee22dd5b968b7df8ed60136a309eea4a5cfbd98ead0d691595d54bc2b3b36ed09c8e9fe535f84088c966a935cf8aac2d83b8d90f2db7719194c927d8c8cd2caba6020e1df394dc4936fd208bd058bc782764ade0a49385ee725e63dd013323870b994d5339e30fa8a11cb998507e61c598dd62f7b23de2b9959e5497c9db53027769444b75f86e1e3f795c0d5ca2a7f814bea50694df81a2f89aa44607bfc5882ad235b02074a4c1fb50d74d5225ba486586e85b6e2890e6037548e7bb9d2345fbd92d02eea5b1075ef2342e22df2ddceebcfcac213220f5a349a8d2a1ab50ffa1703afe5268104c52f42e74cbe4a3ff410856c9f8741d167803e3a4966ae5ae9912dabad4cbb3172e6faf0e27d2ad6b456bcd7d46d3109154ba3809622024fc4166faed7834be7e42eabfb7c4cc04665b65ffe5cf1572d3fc6cb5327b562f107abf044fd14289344ebe200e9843abb0f84ffc5eebf29bb17c9e9227b188f7bef9f1bcb3410ffe46464112b900f661b09fdd98293431c1d5e3185e1f05049130b94917b6bbafd7d98baaffa098c1dd462c3a409dcbf2f1897c56210865bf4dbc0f9960c87cf1e5e8d8388c36bc1e5b06e364458ca1a743bcc4f143222e062137477f848185c8917a5363e7f06073deef54b493e3e05000156294ee7d3a932ac0f9c61c67f71ce8b6e1e8f63073020a6579e957987efcdb57231bfd7c4f7a2e0ae4ca5fae957dd3ff93fd49b650acdcb9c90cb3cfbcddf1b646a1131c4f67234ee5455e5040461821923fa11c1d186725efea09ff02b6c57f65c4d99f44a467d231a1f463decb28676d79198e912c3bb8069f062d01b62d8612c19c81d5957127e9d8bc515f1759e2b3df03a2c722b6109b8852c541d9748aca80c4b75ca779f1b0978b5db3d6b6aec53524e3a3cbc3ca9b3e635c7a8da6f9c4c0b4c1a0a94c598a4cbac27527a42dfff7d37988f6634696e216e686690fc7dec5632e3e8701088c4dd3f070fce1f206418f6327a5cd4e21f5015ca5104c68ddfcfa83cde453f6584b2aeae65a8020bd2d5ba86ad9e48fe1006f2eb488cd2953e4dcb40d8d68f3ae2c4262e0e690036269a6c8fc524d21798c1515c0fa06b9cfbbca2a159c9b2ae3013836c50e64043d361c58217f295965f6f616158113b2d8df53db5f548738a643ecc9f93c2d8a37fd10d08a803749917f36674344d3202dfd3c55c389a789f477e446a891d9517a7c224ee7d9461f1dbd7383a97878f34786732aff750cb0ac6d41577aee5b098875b0d2627cbed0bfe83ceef82109d11ffc67a283b7edb0c7962edbab0797cb5cb0f79808379febf03a873e593f0e596a4b30e726a6b6583d1338ca3a40412fd1acfa516fba39d32e222787adcdf30362ab6a34a5a3353b5f26cbd00cc1d59269bf6f0e4b45c030714ac4d2eb714bc6a3feb2701e378043412f453c1f0af5a93a3b0782cc4d366a95f3bacfa38a864afc56bd8050e94f0fe7a6c59e51ba028f1f1d2a8ad41d0de3dc3d6e3b7c76742ed1f16ef5d215adfeb7f4a8352e5cf958680950aa380c9048f6939eb10c0d1feb20a515b3b1edcdced5c843037d6f70d782482d36230870805a1e355ba3df633389bf1db4cef66bd83691840ec5c5020efdd5c5dcc238fc05ead1ecc0d52a33805c0ed8eab99aa8d623906be360986ea15bd4d7c7b33ee9a03e6b35131ab8e99a6bdc39adcc109d0851668902681d8f452bb4a496b3376dbd33a2fd27aa295a34e027caf0a3c271ff82088a44023cd8d25497fe12f09cf4618e6c759d1d427264c9e584a94409ab1334dee180efdeb52b20985636ce56c8ebea09c987f34db32f1674c40a4a98d6840d925f87b4c9152fe8b75c37f2d5183e7e5d97d60270479024cb4c670dfbe05d18272b3035546c7a8cbdcaccd1dae8f9020e5481989dbfc0d0dfe3edff142b2e3c5152597880889dabb3b9bbd1d6e6e90c0e333f40475b5c6c7982899ef7000000000000000000000000000000000000101d303e", + "result": "valid", + "flags": [ + "ValidSignature", + "BoundaryCondition" + ] + }, + { + "tcId": 52, + "comment": "r0_max above the limit", + "msg": "1400000000000000000000000000000000000000000000000000000000000000", + "sig": "649f560a6790b963eb1677406d3da74820c39338d717632f20ed5ab6301f7bc2a7704d53dbec88c7ff830823ec43877959a7dc3fcce86cab4989504f3abcb791f8b5fb649a5d5fefcd28ef69a5f0d16e8b640e39adc748a1e089b99538ec404125c79e60230986e9e789bb2cc86b28bf95a21be81c33e721774c10a5cd8137b99e997deec15f131666270287efcd2cdfcf7fc54dc75d9d34d4b0f1dfdebd89d445f4ae344cb310ce43129bc8978a6692d5ce1db248ee63eb50ea18c80b0a33e521e7ae44a015baf1074775c7ce96a31bf5aed0053551efb6a1dad85558aa2c061f2b7fb4b3c393714a48698466abbe4f247ddb6077cb108c438cbaac2168cbe1f8bc86d8eb769f45bcbfd2aba9757b08a86229a6ba96a001eef534480fb69fee3ac604a34eb01fab91cba53e6231d0d2f811fb4ad753150b93c27e290d1c01bfc9ee58cb50f6e10d3dd552a101f882e995f4549e20d9dfcb03a9b5ee0c557f862bcdc12b72704419d1250142aff7e1a7049fc8a6e39e3ff95b54c8e986e6dd5e9aec480d1493ce0f28487ea662c4a88e9502f53a330968953f71209b62dd485d29c3e90b2a8f0d45e3c3a2c175bc5216b2deca8bc4fc631ffce44466b3b071cce87d14ddb2156970d72782e65e77d9c0996b81b5cdb63b15bef7bd960a301643d057c2564501c979946f5499eab3e124748c0b185303b49ade9bb8640d92df1c724a3b813ce3501cf8f827a68646830fc2d9d0e8850c130270bdf3e8742bd4f3019b1c77991212674dd2fff8b92f7d8048668f1f326c8c432a18a6b0445e234c45dbd03b9ab94e5bc13c5744e519506f93ff44db9b8663a35479ec83979f59b9f15994b2e1ea89a87da033d25d7ed3d3e67c79ba6d17bf4446ea1ff6f61082b1eeae547b72ef68864001299b3231684452f061020d1593eaffc03f5b026e21b5ee98d7377cfa6788e3d9fe959009e2a341a1c79d145cb8e2055387097cdf06de6d9f955ad5e523bdd8fb67d34d888b8f1e3bb21a76d943c5b3e1896421879ded5a3ca74abdea1b9ab44fefd219bbf3d1788527bfb8f0293dfd8f418c33399dbacba154ff6517e1d59f85b805e893de298216fc664dc92a7e9524c80678552e64303f65b58a6a3d605b738aa75b571c14cd3187e9c3989b3bb6dacd3a002ae6ec707bcbf9a48dad9ba67e3e876f57ac4228eb0a3341f744a54be4132114481b2badc0ee5a140e759391bdc6642a6767ef5e53d1790d4039979513a900ba1bb00408f5ca04c6f880624489816a53ff692d79378639b4ff559af4f54a28e3776e702ef116fa348ecd1afc4309d52fde2426d052e18b89a50609e1cdcd5a3987931074e6e7f00e4a05ef0ef497ebd559308a1edcc500986e4a51b8167d7328ae2f219af699768d4eb3aacb0f2c3d1638afa6ebaea77fc5048dea32ed752e759db167112d6aaf6d39bb76b1aaebe703bb28bed77e15e739c4ed9ba489034de99367e53c87a7ecdbcefe62f7473d5242dbb8f6a6e6f5b4447463b61895125d74dc70d01b431886046d8ab3221de57d7582cc68ac966806db9f0ceb55a71a9833d4a276591a0bd2487680699f4c6f61e5b9eb524f5762d847d21c8c167f6fcda8fda8f0e43ff71a02c25ad12c0b1aeb0f30932a59186e4a003245fa8524b42d41b8606668596205cec2a6f1eded5dfa139fccba451fc85c9c0d80cc93da006bc11e0aad9ecf3a8714362d2340444ac4d885dfe7f2ef0d4eaca886ba76b26667a1d9c300ee0978941236706e46b76535a6cce6fef631e60a63434c64fe8a71a2df52d40f6e44df1892caca4b0137558b5dd59d5b0d578e88b4e3ad74884427042e13eb74559a6c567462d4aa3e83ff750173d0cab385e46209f0e25913f5a3276b6bd393294af3ea047f4b6ec4db1270ae0da02e1a4a744d8ec3afb717e44a073d4bb6ac84d689ef290c994e177802fb8f7bca3d7115e8d75132a6430c4186b28a5a544e5e1972bff23345d2f6054c703491c2a232cde96c3e04a5d3b6dd2794ca57fc8e08409f9d80087e811af484bf00d82516f1853770eab6f1a17cfc19f6f2d3a06cf888c8c57eb2367393dbb37970def960d94be53786c144a002d9a2a9682c4ba76a60796f3a0cb66c6482cc3638765e4b101d304031699ffbe7f42861d874a9f300286e9a4f34996abe0f3d67c93b9624687420b3073aed1dfd2312eb1e1e49709e5b619c2a58a3bd5d7da04907613ec9f98da6f216ba28eebec3c9abe60567eb6ff6a24158f27ba7e701322794515e6058e82966b0cfa69127089872a18d3bcc7f708a51f8cbe37f3adeb6c0a396c5ad91a136f778a549d0c8a6996476db8723dfec989862a407e0f32c2501f95aeaf2a4b4a591345e31e27bbda45df930eaacd229829ceb53acaafde54108b4880a7f4b13bfa565585741f4fc208a23c6c9396f59ea6afd97128dff481da48d9eb04b07908548cbeeb5116bca338f79eba142ec86f60d5a588915dde36134dddfa4265cba2ae63780ea978f8dce6eb3847f946512becf79164e63d192a6b7aa78113ee6a551148b680af304902ee16d6218343a9db2b102d0cf133c62e920788658ec9006661dc524c2ee9b375322b39464b768be3fe048b3877aaf3b2f2a84ff0688fde5d0dd9936c73ac1e0c4cf943f8518934d356d447b65a7ed58ad4bb760aa0c963bb37a6a49bb9b1fed9641e5e88ab4681e32d43c0dd083976b2713a6faf7937fe9fb90acc58e6ab4d85839a1690011b3c5caca03aa44e66b6b04fc8e95c79446e194dd17cf2419a5e2b16be64db1d065bca7c0940ba474035d5e428e28e9ed741baa8eb84c1cc2c8ab782a6612bc5ae3cea738ce2f506c861b73cd3d54367687527cdf88df0310159ca89afaf00847176d1b845dc22684a57f69b8128b0b4bea5690316fe46f6f9d25b16d666926b43f134c03fe050026c0fddf28fce5028e444ef321b5c4331af3a4af9abebf75eaf055453d9ebea541c0dc2777db75b08227a3a5d064e57b77f6bb007ee1efd46cc2b2689cbe1a7f6467dd201c599779bd02cbc999c6a08158a72b78bd0dba3d85b75d623dc12548406aff804f4ae050cff329774bb8171764ad70f4dc91e5aa5a0b04b5954fad9d060463d07fe5754d3b98b1ef231ee8ba3c2481a52cd6451ccd84929a726cdcab0065fcfb07ca0363e61d9cfc216153c97184d3f39d12930018cf2c8ef8fe9a1d99597967acf6b354ab51c05a3b0c51d4d5a5b0ba905aac8752715b76af8601a78abcc9107b8ebddd8126c6c01a379126cc110906bc8ad7b39d131d527195b3c6c9cdcff4f707152a313d4e6061658d97adaeb1fe0f15161830354759768faac2c5f505263247545766838c949ba2bcd8d90000000000000000000000000000000000000000000000000c1b2938", + "result": "valid", + "flags": [ + "ValidSignature", + "BoundaryCondition" + ] + }, + { + "tcId": 53, + "comment": "h_ones below the limit", + "msg": "0d00000000000000000000000000000000000000000000000000000000000000", + "sig": "da5e386472624dc4da8704b7d226f6d86927772451744b173681a91415318f359713249987d097089d41d01bda736c8e3e426f58ad7c85bafe6ac6bb3d3e22398fdd781a92c63fa41a1b975bda4039ba62534639c1c5d8d9578f669f61e18473e15b3b5ffb27bf53b79fc4e8c516d4c13cb245a1b110aa7b774de8e41b1f84853c6dd8bb650639ec4c7178cb0a5ffe82956a8ed04f03580dd1ef6358dcb7674181a0b0b04333dbfbceceaf127182806dd308a6c265b8a49a6575fa4c9ceab0205aa2f90db660c3821c4699226d411a6ccdeb97604d565026701883e23a4ec270f8c96759214fd3d64d68abd6e64c8b00a3fa593073ee9c9116198cb1911de8a0d469b644e5d3383dff9bba3fde295bf03b821e8d23946b013a875533b8a5672a26cacdad133019f059e642990c1a7bd7b20155fc6bbe8d99955b0f39567a9e7ba835664344e5a2b0da57ac514108378e445fce6e60455481940f5a4c4fd1decb398dcd519974bbf3a4199f3383a7247867fc4062debad55d82903caaf3c990b8cd71dc80cc5275d3af7ea14b6c33c77309ba7ee5381b6ed028dd63bcc56ab878cc6bc425d59a6eb63b2d805ecdfd7e72049c625ff272c5d7bdd59232797ff0f0d461a692883e814eaaa730c4ae9f123ae34ea15db89bd024109e1909e43e4c208fccd2f7fe95c46d748ad2b617d5e42714f8370a3fa9024a94218123accee189bf21d7e756b71ea98352bd9bfd64b72e47ae2dbbdb2b136bf74910a8986404e4be00467da95553d20551ffcb26635994a2cef5de348783bdf0a373f8668e1ca984b89f08b6f83ca2f2f76c7e3de9550fb6013a684fbb5951da0969e06a9e33eb2fb7078517dbc0dfc46def7edbf6629ddb1a9c23139dee82c3948578874eff8cfbce1144019234d9f19e1a8cbd355fa34d8a1fa8e5da67bd6132dc0f57506dbf70d56cd18d06abe692a1ac861542e09f97fb91b989c6e5e048f4345ec1f25cd2a300fcc380594a76d3df83e4e8a16e1164ecb23b622e3163672bfa0c509eb279534a086edb380cd82f34156392469f92d8451febe14d9c69f13e081bd6f9a4ed88907e0ccedb19a2b5d469aed0858d9e2d84ee23b4790a5c88a41cc3c578019c222d2db064b4cbac4938305d88b74ba1224b80c32d9ff92f4f49d318a8968e7ba715d1f60f90fe6ef5c3bb653ea1b35341331bcfa553d86e84559c3ac5b43b14dae588e1ac5f753b634bee906bdb5d4cc5d1bb5ae30b67850ada793d5ca4e0f5f7d627b28371a276c1769e4b47e01864896eff68c0d2201bcde123b26dab6d39b579e51f663f2414c82387bbd8772bd7414f60058ba5766f1d09461827e6171311f78c4080715dfe42203b4cd8ec0561a708e7de459c94717a1714001bfba681d0d9b7bd8473dfdf7e9ad6225557e7e299c31c78fe8bb68a33ca33b5281ec80a6760f5c4d0600a83f6a262e7d604b74d4518b6f45640204c03b3d611489cdc066feba191088c2bbdfeca27af5c4dc5fa5883465ad80850c9294b660d5539a6b37fd7e782cb65a066778ad7a4e390a7d4c43c5bb9f49acdb5307440828aa758ec2452ff4d0f99d0ae5a6da4c1f2000cf2036864703bfab8ddef45962bec7504df104f4a6a5601c11bf73e8c50a676c33858826e0967a5e9c9305945911885286783437bb7b29cc180f3d27c1089914cd75b2c9169bb31e78fc4f34dbc896787c7f94a2fa66f6cd3a6ffce39847e0f3d4439f6332dd0abdba272c8901c7a3766041add54dd777429346a7a1b6d937182f44f8dd21f538b63a4cae272a0824283d3a78770d32fef816c86f3e7d2e4a7df4096b5e23415f9725f4104ff93b89447dc465d8812e55d891d37cc9085fbb307ac0b3359c96b4b75d7fb62a71609c0aa19b8cdb6646e9cd47c920ac80b6a65b46ee4d5e16ec8ccf9d34d37ac9098162f686846f435504ac28d9cd38f5b2cf686ea266ab05778d885ca5624c65fdafc636cbecaee9f2bb77302e0262482d2d53a2759f7369101a23850a8a189dab8167b086134ad6b02cf63f7c55b9688ff4b99ed69fa082f17beafd0bf1d9d282fb0b9ea73722fb7a62ee84b8e2356a14297f88b5cf752084a05296486d8ee2f121a4fe21107ba2ba5da95aef16b4c9e04c37063c9ce4dc4273b7e7359c93baca33a516f83022dc2695aaf3fadab7d979c1063d7db32f3111ca8f86d53b7744b2a06038dcfd049747bca2a00bec1b84c70501293cac4a70ef88adcaa04c8e8a30820d3a3910bb8aa38bd33727b5e77398267633b5038a0d989446636477b42d51ab2b1f87bd53f87a01e06e1e2dc4e8acf727fd1f408e53689b5988b6337a0d527b4977eed360b67bc0488b96e49827a9e180984cb7b70d9b7d9f61e4875af0659e8b5af850c0e4c16130cdf7fe8db6be564e495dd987024c4beb04ed02461e25eebe7d6268dd128e43fd090d9b142c7e325091fec25461f840d95b0597a9548a9d92c6241377ff11ea00ba54460aae445a808086e1d6c2129091f8f9b963afc1c631aaac65b0652d8606f7367fd3aae78e87edc0c7b6433c59035c4f0baba632d10bf3544718cbc43739f7932dc96c777fcb408c66743e0bcc8ab27edbbea0190da250aa69ce9424eed1d0acb2d0f4c8e76e3189792faf3a5b4c2bcf45235feb4a8e733cd0332c16394ce2d10e823d638aeb305878fa187de7070a337ced145cd4c581873a80e3e269236702416453ac91412e9a59c8f4c2ce5834ea638113e87cb1715c2f89d8395ece72b4464555ff1360533ffc6510c9cf50038839392291fba0ed51768f84e639def04de22d34d190c559dfe204928e3caae88d8eed4ff0b1c99ea61a7e4c153ad8faad81041ea7071c84dec7d8e7717baf5d0f5a4495a12be2eba768ff7c870d01c306543905fc0306eaf85a0b10070d8517148b31363aadd91463e079136c48a86a9cffc2ca55bf478be9732175f18ec3d8df939a0a6f352774a7db8bbbae8258a7c4c26e362fa0eae295e68dca95698f2c346edc44c59f1dc59b9864a1e508dfd88fdd6f8ccf798908949a625c0e568b2d05414cf1b856c7198929b5f1efd3feeda533b3eb7e1d1f1fbc8b3d89714ac12844ca93a089d7d71992dcee6cd04469b7234231aa8d7b1d3e05ccdf30bf9c089b3cb1e9a4b16b0980381c22b196a3aa1bf53c93479775fa43d94ef871139adaec09b9112b0fffa5730e722c720a98d3a4c03d8186880fab3b7d92d641eee2590b106b5b700926ea8e4763029533593fc6c18bd0d44fed51071fae6ecca119dd84f4f73b619f266e074020d1a1d2933363c454d5b606c859196bad004090a1322283b42475b5e72959dc9d2e6edf10103042224252a364d6d888b90a6adb2b6c2c3cfe0fc00151a3b4649505562869ca0a8abcbced3e1f0f5ff12253b50", + "result": "valid", + "flags": [ + "ValidSignature", + "BoundaryCondition" + ] + }, + { + "tcId": 54, + "comment": "h_ones above the limit", + "msg": "8901000000000000000000000000000000000000000000000000000000000000", + "sig": "e3ffccf4e7f2b12a43b992a90f86d22fb1cbee1df5c46dc82d8272b4de2f460f167010abdd659d79133dd77f185218aebc119e1f01b3223bb0d07ecf4bcfe494f59745013e928b71e25f4992982d32bbd8f38f621b415cf3374b70b45b116346ecb10fd1da306a670dc646f3f415d263121147d4dc2f245727d61547e00fdcf6ead9433d74e144d97c9c26595c39d37d4c5a8a8d778fd2c1693f197ee9d3f3d4a33e8b12f8b8eeffb9da98da312c63aed2e1a682d233810f545a34579e66e5a6325a55d09e9c84b6796e87438ddaf71f86dc6fe61f084b8bdd18df515ac52d854a7d4867ae2b3b3bd7aa2eb1185afc997049c4484c4eb911d358e37ea4fe33b95bb6f9a3de7c0778f151a8384e9823b3690663822e27937b54ba16e38fc330f642ca6b33aff82a4479a88f0139cd89b03a5c02568218653bcc9b7d8fd41d3fc0c094e643e640362c225aa4dd9a73790c802938ee606e7a9e90ed9d9a00ebd02e7bf9a9a81ae0f12b6767d909683d3e5b4f2ff72701bcf80893f6e208e5b3408e903fd75b8de46f251ff5323ddd92b27446b0604f25c7c40c4539878a4a49dbf2aa62dfec63c3d132717529a48ba3941f4e2317c3362dc97f63d320a91f42c6d7b89b07d87d013e7a544a5e0bcacecd85545f2e0976e71cdd498d6907c043b5838c0046a03033d4c106f79ed9d2ef970976d6da77a67d14c380cffbb66f070de7cd239555be8ff29045c432fd27af5c3f2c9587d8f849bcdf58d31ec50f6a0a712870759ab0b264436595665ae9738b727ac70eb4d98a29926f17f77136f2fc83b76dbe0751733d470798d211a0432b2e7c8a4c6f3b5d17bf6ad0d6b9cb4e4569be48a51baadcba573aa3b06974324ba50b319aa6f895b0cfa35d7270fa3b2c34049294918d081c8951e39af5ad62ac9d4a53e5b4fff8581314e834da7303b488088f21fc9955442ae9af152db0a9ce2e9067c4b25caddeedb51dc384e252124fa2e93068e512f79d1ae4bbd76afe8c4550f4098dc55be151a8e4d12266ad5f85409bfb0fbccb725628deab37138c48050476274b2588432d18d1d1f9115feacdd4245fb3f3e5ce24c3efbadd3d7cd3428af1281bb01a3c0f886c29140cd08752f83748bb7cdeef5ba0277049e1a31906053bdec35279dccd42701c66432fdeea57bacac1092760884952262cc841a4c51e2a0bd307d39bd0a3933d026fab340dae8f46600588eecee134e726a45d3ce53505914c182fe33e69a47de914befa9daf0d4c0d0e26b65aeab01f3f71ecfe09458b68afb9d32c4129e45e4c1102475eedb4d88c902d0b0147d39e10f14af5ad89e11faaee86ba3635ff979a895fc4a6a0f6f359eaac0b27e7e16343a0c3cd46b279881b9e7e1c664f27736033b59cf6072b651c21b688d39ee4759db86e1c011e0748c097738229d9924a9e378550707f0e4b14c891aaddeba5e2e4741c5b41497be978e82a47cc7b42455276c0986663c85ec643b6bb679f696b71138e1a79bde65b108ae60f0b04a95431b5d9f236712f418c470e9bdbade1fc2050643d2514c206c04cc695465768e6037b2def3477bfa2374d27bc83db33e38e3be662041ef5b896d4c5baac0369c1bb49bd21a9cf9183979600e771bb083e7dd4de07f29bdc9d419de6c45e485db4c5877f753268391ab83b50434a390f6ca1699aff2a60f4658bd8b91216a662951f5d269bc1a80e4010ac880fb9b55fcf3ca3d6f6422a04535e89f4f2532ceb9ada9df3b68ad1719f86c2a33be22d9482e988acc4687d84e998723b3a7c19f467a2a878b89514cb550e499486a0059f9e84f21cf299869b627164169e8440520a8b5afda3a1772b835096b4ed725f9041343d71e3a0a99e9ba3f9e4d6049bf92aeaf6962a6c071d766f330c7016af6da69f32565f8ff3586ff4ee8be478dab4a46dd7abd3b29deecb2c2217ce99c3fadd7a1b6fbd4027810f33efede0a6a501f7d658080adb42fd765c1a1dcedc01b514a66d52474fb4b41d943e377a08b733c748f1ca3c4ac433e87d61884acfe631c1dd34bd9f55640718e1103b5a9e97b3c8b342a0e5a783d2370e7253d5610d501989ff9ed61f86c4daacbc2f64e5ee1c3ef70152f07f89297c68f51ed060d07ae00451bba3b0050857b4df752a890cf67c0f06517fd711a0b64dd42ba78b87a793700c9456d5a44774716e387b64964ff536fa4aa315e55711899437c7cae4999d219a6dcd80ea4636576ac6bc660cb7b918de53a0fbca15ba91967aef30f77c889a5e54bf86f098d67fdd2cf8babc03f56c029b6136e18e6700c5295533f5b6e11c49b5d2e5030adbdc353be980c8f8281d0f18e2841afb5fe570af5f8934d819fbaec0facbf7e15c8a717f277aca5221cab32b17dfb596c6cacbb1359696e2bf0389bfd9b8e28ebe2fe30b2b3e37500ee8b7ea33a3923c96d32b124efacb25f744209fec00bc369665ec56ad218f8a5e637b762052dfa0b7c45ee4c012d68d896d27750adc2046fc88421cab4ebcd4d409a3bdbd8ff1b50fd2267e5e05786c7670df00449586de021f30662bdfa1a690c217720a3dac3f89a24add328b8c53aeb73e5132d7bec500fb3d430885148bb683f4c8f42863b0b61c3de30a960783c6670a931941d3dbdd4e47b1a7c151a51618632c341ca8ee707f06e1a36ce0afe7e5529115875f1599dbdd06321f4b77e86c84b37e8c4816b0de7eb0f6cfce6daf085fcf75f386f35db3ff757d813f914faf3ae19562bcb233b4aa3b2798311faf377dc5cde9f326636d1f95885bad123c5e6fbdb717c6834ac007d805ecbdc338492f3aebb772cc4001c7130d95847fe48f904c462aa30e5b3575289111792573ea593450799a44fa9510c7139a35230815536e795cbd0687642667b557d45ed1e4725f6c5fca47ea0267fb3d1c3cea0b315bf09173329658999103eb1e7b52cfc98303df20e8e4e1451bb3906243a3a3c5ba2f824a8b82336f4eff049a2d27ba27338fbaee38ef933d59de7aee74919929ae97b0c3fc21af551d377256e77d7cdadbaede3921f74e72ef579f2fcf1a9b39c706ea901651ba685fc9885c53ecbc0c145c997dc3d15f98b51801e2784972db912bf74a78bd802ed14d66c763512243ef3eee1b0446aaba024da99093600556ad7e014c00d9cdbeffdc79edd55de91183577ff3c55cc83614f525389b99470f9feb2168a10f43c4b42400c2e2752fb832c73ceb0a7c77c894f30899f1613d6dfd04f97e8ff14df0ba3414d150f00813c9d53984d00856430771d7dc44afa30f66d7c6a017242c3d4564748d939baae10f1b242c2d3336434591bdc9d7e6e9f40e121737393d4d56575f648098c1d3d8e319243a5d7a81839bbbcecfd8e5f20000000000000000000000000000000000000000000c1c2d3b", + "result": "valid", + "flags": [ + "ValidSignature", + "BoundaryCondition" + ] + }, + { + "tcId": 55, + "comment": "high_bits called on the edge case", + "msg": "9b00000000000000000000000000000000000000000000000000000000000000", + "sig": "14ad2c1c97665ed5040c10693804b3b690c744867dbdfe1c3daa55f2fd0f1b143d2a9d1de99daa5dc9a6d4ec76d2909a12ad8fc5d9c685d7357d3c30097ac9dfdedfbb102d020a95b0430edabc5aa49b4234291d8ee1f40b47b52a52a5218a125446ce229d053428a3e9009dfd128fba967994acf4e0894be303ce632132a6b7edac18611968be878783d5abbff5171c4566ebd092d6193086c2e98886f883f6a8847883aae3619074559a6aac1daeacd5b3037da0601a5c52d23890b541b94282f44a9d4d848722f8e1a33a2f9650ed189c73a933fa695dda9aea7b0d3357fc2ff02faaf762cc72e2318a831e8bb9543429fba1d5df9f5a66b3d533aae7b7838ff01d0fcd2c460e2de8ffb7245b81f5feb74cdb904c58919ec540221f7601da7237084322d2fa1c03764601a8574e38d56e96bf652721bcb0c1db9ff8ee5a537bd31f2a37ad185643473efa5f856a3d357d06d4e7763efe2b610b61bd097dee4592aaef6755cd766f68dd8ca49275176fde479f41f848511d607d875fed5f54524d9bdb07b29804e6fa8e90a90773f5a8f7c45642da7c1325a934d643a2930a31cbf76c8faf09d6df014c15f9fda1619624f5db84f8b8b02a0234332bf82dc697b5034e38099cee6097b40990f68b14b0962d741187d617d446f15e3eb0fbf1a4b9e6bccf40c42dde1c1b7051ad532608233f243fc2e01741a49c2b7f37b4f8b547988847a9973b8278775c75f9def3253e44c8bb8b812685795c1305171ff239818382467924fd1e4d9f561a74ffd1916e0d094fd06f4b2f4b71cb0c03931189e4f68a71af1b482b81532aee99a1816637c02e5a7180d3916fa74186c6db046f2013482564a927dfa9beeac233e5c1ca108583f472e1443c8b851af7fbeaa01466f983cf0fd63fbecb84372552c1d907d1f16eea3cc97c376db143d78123faaac88fd810594f938511064807b4c76dc701a08da75df512f40a64e3bde11367295a005adb9a4b6e642cb10037b1b2a4d0fd01fc26412ccd9e602533f30644f9ee96a48415da0dc741273ff9bf799a9727d66bdbb741d5aeb76608cb0462c64205656d07bb3f9650b8e04d88564cb8f8d7e1adac82953e8bef88c70bb2331cab7eaaa32477e9b6b79ddb62f271077c484978278152f1c0b302ed2611f8c6ef854df67f967e29d78d0dbdc57fb83c06a24a78f448ed0b889752e15d8d8c60d7d7f1a462566d95aae3083e0c8fa1ccd59320afd85d7309c708b52ae5f5e7bfc84e60540c26bd9967bf85725bc2f14a2b14aa45d418c4034c3eedcc4cfce0500d60d4047a4fe3b6cf617239f0801e43c4029635cf82046adf5ac49b44534230560baa1355f8672c9d49362731767b32916c2cdf8fec3b97df27defa61976c03ab7a362a139ef0362b03c8d3ed36d61402657d33b0b39e69be565755844804068dea5ca9633436ad6e07478b0c167a7a34cd8bfe24e9f54a88b58cad0fa0e78400b5ce62b94cd808ca30fa57d54dd986cefc9c5ec6b4eaabbd80e5b82c5190291d55e1c46a1c5a16a83fa7aaf0c46fa5af47fdb1ac3f7a31be6251d6c86a7b3a8059f04b5a72d617b37473d83d537ddc37bbe6aa9b1f172b1ecd2e45997310a2b6abea28be2b0fca9f46849e46aa62c32245efcd7abdd249834b96a1f28c573d033939440a82f5cc54461114bdb03be2d9714b2ec45ba46488a89dc845e7ea2ec2caba1b9d3b703ea85fa69a0f5cce881f3a12650af1df35083c7f8cc6e41df8fbaacbb944305efeccae3a81a88c04710095e2fdac5bd781e46e5a338388cc7a4a313c5a8ec6c33420b909851dad06c594827d6ac4fc1f4e368869a1f74c52394bae77e1e759f19ad9cd9377346d7ca946ed96cd6dd7986f7547deae380bea8411a4807fed7db182e88604a84b64eac1784ae5941a98cc908a0af22ac7a99ba78b1fe1ad24019952aeaf3ebf87ad88d5bbd5e793898452dfb33696b258b1df5846399466fa54bf304c4f9f343e61ffb704964bc25ad87b3ba44de5c8d6a5325866c754ad356b7631b115039a5a9fbced23d4c7f116a6f962289fb0c7fb76c7a7dd313c2b4c49b70df2146f1700428ca02ebc66b431aa1c528ff8be65114990f295a094c664768136a84cdde3b3c87b4b38da527c85426463ef74208415b36ce3ed71077a67fa5f4aca8b11b8001c74a7ec610f320ff23d594c01ac9f80419b3a1a85d497c9bcc734d5349f885b4871f8f5a1e2ddbb65648b88ab9562ceaf25d1018e1eb772117fc8c762a57308fecc7a389c47fc93d857f943d44a3fd576cb6a72ded99af04d1c211bddfaf8bf87172792e7b69c557a6a4a5ee3796af26f090004d43d9ff26166d249702fca3611e1fed1c3c178045c5f39c81e1480af3e92e195f16c5a5ebf2183a9f769bb917261d0b55c0429892ac5f1b856e1e8018f1c9e31748f2c5c664b842d595cf41d89587451bfb2cf1b866eb1f5e365135cb1e49afc5e689654be466604ab7688c07cbe51669a7b8a129201e820e70cbdf7431e879da8819a251e04004a9b8bf3f70d2ef5003890c1ba913b9aec064f16e2bccdf027d061e60915d8574e9317bebd091bc240ba5d3beed20246159ba162163bec026570cf3dbcfcc39949b389ec7b01da09a7e5b1bc494cf5c8a8c412125b99980ec5cfece61a0c602f915e337a995c52975abe11238fc6b3f83ec1a419c0998e011c9d5e88f21fa43f700e0f7f7e4809de1c47974069cc2961f08fcb7a24f855cc1da17ae8909187aafd2b2a152c6a3df593cb29660e6994be5505e70f8001a75f77a6d4d96a783ec365c41541f5ca9e3d73a28550fe61e7e095d565334b8232f73e378b61a8d259a6147c4aa82267300777272ee8f110822242f75ae8f9ae0f428fe9c5896f5e2636560cbd5b582c94ddf57f54880223f37d55af00b51d55bda3b253e595566bc36906296069499e62d8b74820e0a47ebbc01faef06572401b74d97f0fb08af5016f806fd641bba1856c377d11cee714133f3b9905e4fbb2c0dd40ce621cc1107346c86631e9354ed8a0f79fba6c9526cdd50caecc80c5c6d5bb76f04e3531bea9643c7631aae6e1ef161915435a11cdd1dd10d3d3ac7db99bf33e6f2d17ff81ae2a790288ec1cc019647304f42a3c74e4a77f5ba737ce6dd243639548ed7ab9f37e23c957afcbe209bca11c9809ceef7943308fe0c9204da5b9d7aaa32e5b94dfbf151d0163ef748fd9aa1981cedb33d34266e5e7464a2a816f81c19a01b5fec061f457634cadfea1ddde077d3ea1ef51d3a7105f5ee2c95109d9830f1875809193959fb1cacee7eff8fd0927283940445a6b73868b8d8f909cbcc4c8cbd2d3dadf112d2e57606775799fa7d8dadde4e6ec141c2a3053636c73a4acadb9c1c7cdd3e7f400000000000000000f263648", + "result": "valid", + "flags": [ + "ValidSignature", + "BoundaryCondition" + ] + }, + { + "tcId": 56, + "comment": "low_bits called on the edge case", + "msg": "9202000000000000000000000000000000000000000000000000000000000000", + "sig": "b252e6bd2516e37d4af46a73b43c3037a1c593e1eb7c1c7f6cf3a8a143e4521111b3d96d8f36a91976960eb1f2c89f56143290212cdc89b0054581939b976c69e1fb75245bc4199fb96fb61931b251e57dcbac4b800d27c85d350cfaedef216526713abb28421d6a0a5ca58f0beafb78aaa59c8f9694200ff359d20d0b9205904a634b0d2409deaa569d0b2d06fcab0b76d755a6844d3683a8ba6d83f0e9c747baa88d0b3438e3fb960410d98ab03881781eaadb5558736f845d26bca1af3c54744620edc980738129db3b50c8150fabe2e3735bb2a324c46bc4bb34d38ee22bafe32048ae78c4abbe00814b92efac369c0f3f5edce46bfe6318427036f8b3d4d2e5e5d53bf437b6c8247dad39ea5103f30ed96eb8f8480c8ac5c46a58c94af5a0510eafdb563dad640a43150c7c92bb297d7da49e2214c24dbb3750be7bb853fc7dd28c34c3f1bf4d0e61b08a52d403ae6f8c808752056421d78c9a978858112e641a8ad98f9d2802efa4505e68165369a7eaabeb89c7c404b8ef247d8196b86167d200caf4c2687b2a772f425833292e9b8bddbb171aed9ba5991bea0fdb8b0819ca549b1893431c36205d39f5a547ab908e3ae29df39cecfc030e23a71c7edf1b34ffa77695a139f3dddb4de7bc76ecc9258ff51dd2d34cd2e3aedb28b3178aa98b126a5df1086d670fe7df76c5e6d2af96010e65c43563f8f2af0504ce20955c8ad39a06ea23894bbcc634c9bb8ec4f5b05185591d5a7ce5530e8b1533d50d2c1b8eec0addff5618f242e065085785af0e4bf358abcd475183f57a116adf48a0f757bd3136dc951ebf07e54692db216fbcc7c2959167db726f25b05c8dc402c09e9456575e44b045a0fe078fe88788adfe24b5b8709beebfc13da958a3c0bd2a61a779a2693cb9b4453ab7ee60d589ec238344ce5bb5a9f5eeb1e76728c6a784ef5aca29e70b54831d54ed6873a8db611cf54ad6993931e560845834d2c28c6ee28d96480ed709b5a02f168c899d59960e80fc2b77e405198ea22c8e0a0f1cfdd37460d51bf980ad554a3fcd499c8b6626bcb4ab11a8a17a8b2cd833c05a52786f1411aa4b859a86028e2f14e4e2673b952cfc43b3d21d0e466a7219a3a34c0d21f1dab597590bbc6215579796002d8ad399d74773947da0d610c601eef3831b1769184f03857ffe754dc746f48d650fcec522221337dcc0652c64dd061e5479ac98941368d0394375db2d54d924e3f0c0ac6d1e0aa4f3448a5df130c8e49893064e84e037b9b3461ec8463be1224dddf06c41e04a3d5a4aa7d1c13cb57719d9a032d10b13fcb485e188f280b664adfd00a2155e6496ea53b2684bc0e6237fb4dc2155a91aa808a121f851175d06dcfbdd9c572c0d0274c3f7fccc3f766a19f321d2218543e55eac0afa9cbf1f865def8e8ab5d2517bfb51a9960ccd0cdfdab1b30302bc48f8d15f48867a78d18ab50996ea63fda318e6e51f831b2030df27dbe0163e9d4f8062cb4f9cd1a04d8f5029c0dd1d2fca7c98f9ec48a6b837c5e71a4661a5c84be13aa4a34dc1aaf3e7e6db4bd4fe2bdf18dfbad70573ed0ee5b368400118d4770d0a801d5275c4a78357f9e23f0c9872a11331a095081d6a14d8cd49bb33dd3d4de0fb3ff08aa2f220e446053aab91ca3ba5ef114644ee751e91b5ae8270d9a8f85007126611224a3263db86c36fba97f448ff2b5dcbea2ba8bc0d5bb94839093288cbe24355e280a56cc0804dbafef51d54c5569aa5db76e61320b0db331dee66dd8b65a62313d32e7175d281dc64eaf802ea9ac7e01804c8be8b59610690e794bf63dedc14e9417f6b7a2fd2476b937694958f7ee722e558946103b2fea2266e70e61af782adbd9780e62028e6cdc13167e12a288c7a3890a0633d2a55af112f583cd7650ec5ef55a775211aaee51983547fe3cac1565d3c99b1d3036ee0d1e918ed48915ee849a8d880732ff80f676a27512de5ac60c7f4e8abafe50a7d2e5f69dd548cf5d18e2b63900f02db5354d6b9d13d696ffd575c5654f75747f6c124022dc77dc1cca94efdab2bcd9ed4ad2b718b25302f0f0f03863a0ec57bf3510a508371cefffc858bcba862fc554bf54ba9323d90534dbaa57f1edc2edbe8bec87be2de4cd76436ef5cf63f4b034fafa7e77697476407216a6d21cddae3b4b60864d23b2208b2c354858bba959575cc5a81bde0236f7da09fb4a7ef251cad986ec88ad686b18329c312e9d841e7c9dd1e11f7867d5f92b86660b6063383ea9c0234cfb30afcbbb4f60ade507e7bbc7e90148433ace1bb8642fa9c181f5e78fcfd471d5606eab4ced729d737b654bf62b96ea45531446830c1bd21fe667d0631a003cf38e15a74ae350bc03f402fbcacab99e430813df46e7097c90942d539efae6df6838d692a64258f42cbc8c89813527e59bdd3a1033766c72e6c0635805d398cfd5c79d835f0d5325cef4dcaba7e61d8363f2fe42b7788674972713adbe0ca651a984d0f4f670ad7046010f61826726283e827f5b2765a68fbf29e6dc5b156247331d13961ceb90920b2ea3d4310464483747150bcee7f8e27e103f139101ea04471fd574dfb555567e21c6c2abd82f071f85620507e493eaa766db970390043ac5e375e8ebd84a20704171b8bba1a82cc8bd109683a21b66b5a7ab2bafb547eb68f4bccd12d3470ab7b11f6f1742a5de7d36eb3606f069961b00a9fa94d45c0abf39559803ab23d4d6b4ffcdab613a86b3242f6bdb65094ebb3b8117863a90a7f84d29c9bcdf430d907d03284d92035e303f663b653066e669b108e2b206d2b5bd87b8e4a494d948095adb98422e57ef993a0e3c1597c293ef05d599192f8981b389f9c388596410a849cd7d2532a64875288f5a63eef829cc0a853eb8119eff453bf95b443b36741e0bf37cf8addde5a939b2b01c0230b906bf2f649f2b1530f2164dc5cb2c611f773168b894264cc804122ce99ff399f9317fdc78c3b20028b33108dd221fedf7bd0b035654016b33818b49be1b9ed900cfcdf957e8fb323d25b402d2fc87432c9628626d9c1ee4081f9e9a5165c07c3053bca959b54f7b19cb86bc4fae9149a0cdf022a2f66d4887942d2c5d99bbf9c4c8fb31e48f38b11142ce22ce054709eb7fa16ef3ad6a7f65b910ad0ef780bb0e908b96419815046a8145b8a402640a776290dcb1330e3a25ac649406a22dac83cbc1e9c4aeae7bf3920fcab0f524505e3a124f8d2b47e58827c876c9ba4bc56f2047ec2e6a84aea029ecad11be74700c5b7c134d749debd639c0201f30008082527293a4d5e787f868ec9cbeaecfa0008202f3c3d3f41676c7b9eb1bbc5d5ff022c2e4b52737aa4abb4b5b6c0d8e1e7ec080f181930798388a4c4caf70000000000000000000000000000000000001021323e", + "result": "valid", + "flags": [ + "ValidSignature", + "BoundaryCondition" + ] + } + ] + }, + { + "type": "MlDsaVerify", + "publicKey": "5a04d37a8c83d373ba07da5cf96806002e3635ad8add42ce6ee9902dfc9a1f27c3d2ec3e83e7fe4d2074169231a7354fe108a47bd5eca33586f3e225929517bed05c0fc972b98ccc3b0bc3f4aa8fe45a862d6a5eb01e06307b5407f172fbbc966bc1eeeecbf3979080dd24a4141695c41d388ebfc88f2b3955ceaef2997ad889c5a61deab4fa4559bf2c54759164f5614db131362dfcfe6976bdf8b1ef607f2f241743e2c7d3e3492c57ecf0d4064c0b0a68346efd6316d09f89af401a8853ebf821e6decd5a717f02df582d5a994d506b01b1d25a63c488f7cc268d55c1a2875c357e5e1bc4ba558354e0c2789a7c10784de66b29a9416af10e17afa8a88222ca0dc7de338d43ebd23daa6a77bd1aaa8e2690f89bbbd68374b4bce40973ca4152e2abe93bb7832839ed364db811e902f9e2e33df61f99765b97abf94e9e44882e6f9d5aa209725f7023fd9b96e1e2b29999806984651b506fe3564e11f8a8e879e879a95a4288640ff4f6e095caad27a6ce359a57f1ae36b44d1f23a4dc9d09ad93e3bff794d71a814f1bf62227a7c8eddda0a5ac7c8cb9977fecf20f45cdefac501c28f28487c8e8fb46a7b6c2a6627c9bb237fab4c9c6c7807f83a11f347f21332e71651736aa4f40256b7347df4bd1bfe7d0bdb0f2390e37629b44fd0d863081435f5b8096693a70b532d0c20a1112cd837150dfdf063ed0ae31de276d3f595adad6d64740400e5bf251e5d52659f8b94c610a373e26ab9c0689ec1545cf3e728e5d59b1b46735b44b0ffb6c6ced8f4172289cd1ae8480036a563dd3506cbb884c5cc87f48fa9659633b924145cbbe449a61af4d9cb97c7995c67e666eec062419becb660f2639f2d6cbd7769f61fb5690386f4144d8222abc40c70014b62992cf045487119cdfa3b0d4c68d9a746754411d1e5580eb21ad85dd6204097c94def814d3932ba0ff44f0da968358b6388898173d24a9a8b81ea779f75ca7b78ef9938135960c42613c0551aaba22dcf1857341068c408f5e6028b2bf926418f66427ece28999fe41410e4047855d338a8d0108d11cd4834842c7875f8bf5be18d045d7cfd4c02a3081ad716d2642fadd903cf57c3f377f378585d3727151468d36961c849ac15311ad1077cbe843265b51d6b16a95ac150442c3ea5e4e397e81f768acb820a33ec844d91743a1efca9a50071558dbcfab820a9d9c593e5eb32a84c0ebf61b609decf5b180ce5a394dd5a4639d53f318454f0fd8c42ccb2ecb0cedc95e822dac75bcc586022ea431678b2e7c5a9374bf7bc74188c8a0a7fed2bc1f03440b1ec36b9a019709b498862026b4a4c1e58ad74879c1f0a1ee44d61d07771c3a4e8f534ebdb6990fed5a7b362fca629f3bc28356c077b84188b2d96bb24e42f291c90058e4647a7988789b1d3d98737967bf92cebb50d759676fdb56a59d3a00d0499d294545366c93352d782ac56e633064e9b5172f43937be4c7c6f3d78c7e1efa2508f274f8e9a5cc8934d20b6056de98fcf5d6904b65833785cb595ab47019f6304e0ed080d0a1b2ad3142cc2b0bd7d6ae580016761197503733cd9b58d0945f51bbf429e7fe781ac930abefe16330a16f3b9a7758333e6164740fb003390af60a892e6518ea5559468a92eddd04a231d1e4caaa15a4741f4327d5d7e2860627b0c64c4ac421ebff2447b0e86b45ab44c2e204d936688ca08d3c280a0102a3e1944b28f69f6851420142b07231404b8ca1893476cb8f667f6638a24de23087bae7051779f111cae043ec65f0a9f42169755185b2cd911b65e1f6820dd7f81e3d7c6853b747c88336e15ce4fe04975912cedb838d3b5d10ee60", + "tests": [ + { + "tcId": 57, + "comment": "short public key", + "msg": "48656c6c6f20776f726c64", + "sig": "19831aa9c40124c5bcbe9a65a6c0aec304773b808a980f6710fa9f8f1cdd50ee5618950565949784f9027ce40401c594670b8274342d9791113c50c8d522920f7da90ca0c242e0c7b64cc6ac4acd642758baa4b714170e60c08ea892770eecd357d827c57d9258a59bf3f678b89cc14d1d49b5425578a3a051a209ebd11c279b0cf661ef50699e68bc28943c418309764e39ad2aa3bda87bedfd85521d9078b020ef158ae1c4683e67801f0a60eca41c7bc6a60fde9212e6095def1ecb5355597b787807ae6f4a79b4a79c374c84772438ddb33e03c1991c53a7e92e58b562d55e0a642da04f86fcfe1e142bb0af741fe78143c83550a91e6a8f2a7f2df23f40d675ed7dedb1b4cefa88f4d926659a818028a6a7c24305ef4ea85dfa99fc0487ca7b61e098d8e8d62b48a03e54406a7b47bb7f0ed9499f7b649e141dfb43f7e16664f7844add4cc784d4fb67ea1a2043b65c7450459aa435c52e4e75824873541c0807a33134f56c217e62956d98f56f60dbad96fccc07ee3ed66a374c44adb353044447b55d6325127e335ae783079c6602bbe06dfb93d61c3f8d3fc3389b3a28b48f2e6874ce431ea0c28bb1b9f4de038745dc6a4c0ec6a9dc59da14f57981644fdc5dff5c8c6792014a24dac2bde3a136125e77b8aadb3d10a08783e573a278919c6d4a9dacbd83a2102eceef4a954260b2258e2e7a0f044584f2a645b0ba34b24bc494a2141d55fa823847b7dd7babf0a0a48e0d2c27c27c9df453e974bbf792a54e73e84801b009b2cd6744ec174fd24aa1eb16b554bb57a3f2cd699654d93b6c7e4c678076bd25cbd18fd7706e595c11f7c3bca44233d1fb3906fe80b5993ce047b92bccf1b81989343f9ea9d6209f57ce9e4efeb28b2124ed20b943271efcc84cbbf823e07cdfd907189108cd527db86bbdfa354b582ae2a7ecf5af12583919187de1447ba992c93e034c9fcef5211c0c18823d8ad2a28f0b515426affdd8858a650aaf191a79cb40d01bd4dc14f9f9049eea66ce2def98ca9a4bbad1450d5c38a99c3a7e76a8eadb8ce23824cceb932c03aec6119e6dca33c001f118ac3dd2e7b947c4a5539955d29a9d7d83c41150a3167653c91d23a1601ec1a44a9bd9e62663131f3a0fcc2353b0f7d49c45111335e33011c6fefc2c21ea7bf8394761cc563f5446792ffdc03c38398720a493b6a80eee1f95cc4f8e86cb639c1da63bc6d17f333536c4eb7564d6fd36d513b322b605ff66d0ba36ac0f851362723b13ea791f576928a868a5a2e994e11f70c2e575ac79f602010110cc28eee7c67a04646ca97df6026255e7d8fd6f67859802f323b33d56cae4c96a36d5badb40ded633809f1e9ddb03a60e7c5ea3fe1bf283ea53df576a49f150bae0ac538a1b737a906dd521174c467f525412d7a142eb5e6c1473b865251d14b1904bfb24b70fe7e7e464143f64a13973d41ee983132f6b425c722e9e95205a93db8e8e7a35c3998fb3143424d5da07d1c9708da0aebfbfa37c61963bd96443af0020dba5a009d3a35e4f555762746039e63c505ded934d19823783127b2e611017f3c14a78dddd302a811010c8ccb81f1148e38bc879b992333624f1d67a5f3bd8b3eac61d8b4c8d40e4e7b6897524a7f9d3e4d8b55f9252dc1d0c428f274c4b0c48f4db0858779f16901855f4469c1d94e02ae66b23db961b60aa769be9d3dc2462217703796f75f2e52eb9704d9aa4d2cd38edcc1e1844902ceb35e72e1e3e126435de3a4da0c576ce6d7f576b47697daabba7f3bdce15a88f40e23b8774cb9f1b85c6178ab7e190d2c7e6205d7dcc93fe1d54bee466ab4f26c610e385ee52f99c7357de05f1542d0f71a8cfb5b46b515f076aa31d797a43f4d8523758669d5ad365f9a6925427d2269847b53cd5420b6aca595b82f56a020bdb466ebebc469422dcf2d4cca88599a1aa2cfbeb3149e9f32b4dba69811d6e4158e2cdda48eedc0c1291a21e5ea6ea4c9ec7caf5c267dae419f6af219001700cd679493a94b27e4fba6a4a95c562ef48389c2fc062d5d165bf9b605f6fe69eaa95e9cb23d663523e2a73e8c1528533fd8239502916e8aaec427ae82f38f60dc2d1b38f398168432ea63c72e4efff8c94a82314545f1f45f66984ace3a9cad7aebc025312ea57cd7e5151e5e3a7bab0c7dc4bf0a1362702d43a98495cd39e494f1a7f6bfc78d873a8d09205d9b1b8f5b8bda83d7a2e9c2af3d77c2277b28659d2d4adc1b97c59c9b1eb3e5d98617015b58940253170e4f20430bbef51a25b3e3b38df8fd8c92eb9bc50f3ac5c5444615045380f34ac9015556d86cf79d5d0c99c2a16b5528d7b325c25fa08b19dbb1a78eb1081e13ea8cdbd92de5852d5593d15cef2233bb57788a34eb954d2efca3f1f185eecc98fc8f7117f233ebfb27b9a4d7e227db583a8b15d2cd0a98c74c3415262839fc11e012b1067e312acc855371abc807d597c67898bea9c28b3e30de6c968a291124a78411fc2a5adf578d423f77ddccc814ef106ce19a5074a071853defaca429cb2ccdbf304c7570a94e10653a14abe479e854188861d68f04d16c7c40f19a7312a5399dc679a792005967d5f2103db5c5bf8a7fd0c71cf63af0b4b244d54744fb07e303a91580ae37ea8a8aa2d380a346080b732c0a1ed16654d9367b469c0eb28b002ffcd1030a0f2b1f21f2f72c050e830163f3d2903056b56c5c3a662f03ac36ab2cade947963ee9072e73ee53dd6200b99d2b3317362a40c5bf58f48f680a045de0fdf2d1a9137203a1f200b3d95dee50e58943a4856b699f5c8c64ff43095184f6e582d11afafb4427d738237738c2b73b42d148396689f1e5e08ba948eb2e66924256bc93135d1e1855f7d55048d31093d0f415142890146477c6b1386e0d3db780e657c5064ea64912f596883734094537bc2a5123058efa256702bbaaadab37f4fcaf1fe91f1b207f563ef30a2fb24630404c051e84911c8597c1fdb23b8bf2ad1fdcf0914db198838c2dddfa11477b01dbc6c348d632813644a259f220b5fd4acf9b5c23f5acb49439b2150a2139e4c0d2c8437a9f6a51993e8543277d9ee861f84b252092c5cc267ac62c9f6756a6b1b5c79368f71c3a32fb10e8743220bb6fe1a02d1160c7a7a68c309d97812a5218e857e4e4afbf766227aac62af089a9237f88af8695d00edd3faa1d71bcc714a8d59cd1691cdd5d4b85a423102eeeb988d011063ff25e74d72a76bdf304852b6ca61921b545069ba293a22827b2ea9402a2af56eeaac6ec7ecf442a058ac993718fbf6070f18273e4562799fbabfd1ed17203338445f6491b1c1cfe0eb0c172c3242484f52575a5b6074828f9ba1cdd6e0e4f312222d344a4e51527f8bb2ccd5d6e1fa000000000000000000000000000000000d1a3040", + "result": "invalid", + "flags": [ + "IncorrectPublicKeyLength" + ] + } + ] + }, + { + "type": "MlDsaVerify", + "publicKey": "5a04d37a8c83d373ba07da5cf96806002e3635ad8add42ce6ee9902dfc9a1f27c3d2ec3e83e7fe4d2074169231a7354fe108a47bd5eca33586f3e225929517bed05c0fc972b98ccc3b0bc3f4aa8fe45a862d6a5eb01e06307b5407f172fbbc966bc1eeeecbf3979080dd24a4141695c41d388ebfc88f2b3955ceaef2997ad889c5a61deab4fa4559bf2c54759164f5614db131362dfcfe6976bdf8b1ef607f2f241743e2c7d3e3492c57ecf0d4064c0b0a68346efd6316d09f89af401a8853ebf821e6decd5a717f02df582d5a994d506b01b1d25a63c488f7cc268d55c1a2875c357e5e1bc4ba558354e0c2789a7c10784de66b29a9416af10e17afa8a88222ca0dc7de338d43ebd23daa6a77bd1aaa8e2690f89bbbd68374b4bce40973ca4152e2abe93bb7832839ed364db811e902f9e2e33df61f99765b97abf94e9e44882e6f9d5aa209725f7023fd9b96e1e2b29999806984651b506fe3564e11f8a8e879e879a95a4288640ff4f6e095caad27a6ce359a57f1ae36b44d1f23a4dc9d09ad93e3bff794d71a814f1bf62227a7c8eddda0a5ac7c8cb9977fecf20f45cdefac501c28f28487c8e8fb46a7b6c2a6627c9bb237fab4c9c6c7807f83a11f347f21332e71651736aa4f40256b7347df4bd1bfe7d0bdb0f2390e37629b44fd0d863081435f5b8096693a70b532d0c20a1112cd837150dfdf063ed0ae31de276d3f595adad6d64740400e5bf251e5d52659f8b94c610a373e26ab9c0689ec1545cf3e728e5d59b1b46735b44b0ffb6c6ced8f4172289cd1ae8480036a563dd3506cbb884c5cc87f48fa9659633b924145cbbe449a61af4d9cb97c7995c67e666eec062419becb660f2639f2d6cbd7769f61fb5690386f4144d8222abc40c70014b62992cf045487119cdfa3b0d4c68d9a746754411d1e5580eb21ad85dd6204097c94def814d3932ba0ff44f0da968358b6388898173d24a9a8b81ea779f75ca7b78ef9938135960c42613c0551aaba22dcf1857341068c408f5e6028b2bf926418f66427ece28999fe41410e4047855d338a8d0108d11cd4834842c7875f8bf5be18d045d7cfd4c02a3081ad716d2642fadd903cf57c3f377f378585d3727151468d36961c849ac15311ad1077cbe843265b51d6b16a95ac150442c3ea5e4e397e81f768acb820a33ec844d91743a1efca9a50071558dbcfab820a9d9c593e5eb32a84c0ebf61b609decf5b180ce5a394dd5a4639d53f318454f0fd8c42ccb2ecb0cedc95e822dac75bcc586022ea431678b2e7c5a9374bf7bc74188c8a0a7fed2bc1f03440b1ec36b9a019709b498862026b4a4c1e58ad74879c1f0a1ee44d61d07771c3a4e8f534ebdb6990fed5a7b362fca629f3bc28356c077b84188b2d96bb24e42f291c90058e4647a7988789b1d3d98737967bf92cebb50d759676fdb56a59d3a00d0499d294545366c93352d782ac56e633064e9b5172f43937be4c7c6f3d78c7e1efa2508f274f8e9a5cc8934d20b6056de98fcf5d6904b65833785cb595ab47019f6304e0ed080d0a1b2ad3142cc2b0bd7d6ae580016761197503733cd9b58d0945f51bbf429e7fe781ac930abefe16330a16f3b9a7758333e6164740fb003390af60a892e6518ea5559468a92eddd04a231d1e4caaa15a4741f4327d5d7e2860627b0c64c4ac421ebff2447b0e86b45ab44c2e204d936688ca08d3c280a0102a3e1944b28f69f6851420142b07231404b8ca1893476cb8f667f6638a24de23087bae7051779f111cae043ec65f0a9f42169755185b2cd911b65e1f6820dd7f81e3d7c6853b747c88336e15ce4fe04975912cedb838d3b5d10ee60be00", + "tests": [ + { + "tcId": 58, + "comment": "long public key", + "msg": "48656c6c6f20776f726c64", + "sig": "19831aa9c40124c5bcbe9a65a6c0aec304773b808a980f6710fa9f8f1cdd50ee5618950565949784f9027ce40401c594670b8274342d9791113c50c8d522920f7da90ca0c242e0c7b64cc6ac4acd642758baa4b714170e60c08ea892770eecd357d827c57d9258a59bf3f678b89cc14d1d49b5425578a3a051a209ebd11c279b0cf661ef50699e68bc28943c418309764e39ad2aa3bda87bedfd85521d9078b020ef158ae1c4683e67801f0a60eca41c7bc6a60fde9212e6095def1ecb5355597b787807ae6f4a79b4a79c374c84772438ddb33e03c1991c53a7e92e58b562d55e0a642da04f86fcfe1e142bb0af741fe78143c83550a91e6a8f2a7f2df23f40d675ed7dedb1b4cefa88f4d926659a818028a6a7c24305ef4ea85dfa99fc0487ca7b61e098d8e8d62b48a03e54406a7b47bb7f0ed9499f7b649e141dfb43f7e16664f7844add4cc784d4fb67ea1a2043b65c7450459aa435c52e4e75824873541c0807a33134f56c217e62956d98f56f60dbad96fccc07ee3ed66a374c44adb353044447b55d6325127e335ae783079c6602bbe06dfb93d61c3f8d3fc3389b3a28b48f2e6874ce431ea0c28bb1b9f4de038745dc6a4c0ec6a9dc59da14f57981644fdc5dff5c8c6792014a24dac2bde3a136125e77b8aadb3d10a08783e573a278919c6d4a9dacbd83a2102eceef4a954260b2258e2e7a0f044584f2a645b0ba34b24bc494a2141d55fa823847b7dd7babf0a0a48e0d2c27c27c9df453e974bbf792a54e73e84801b009b2cd6744ec174fd24aa1eb16b554bb57a3f2cd699654d93b6c7e4c678076bd25cbd18fd7706e595c11f7c3bca44233d1fb3906fe80b5993ce047b92bccf1b81989343f9ea9d6209f57ce9e4efeb28b2124ed20b943271efcc84cbbf823e07cdfd907189108cd527db86bbdfa354b582ae2a7ecf5af12583919187de1447ba992c93e034c9fcef5211c0c18823d8ad2a28f0b515426affdd8858a650aaf191a79cb40d01bd4dc14f9f9049eea66ce2def98ca9a4bbad1450d5c38a99c3a7e76a8eadb8ce23824cceb932c03aec6119e6dca33c001f118ac3dd2e7b947c4a5539955d29a9d7d83c41150a3167653c91d23a1601ec1a44a9bd9e62663131f3a0fcc2353b0f7d49c45111335e33011c6fefc2c21ea7bf8394761cc563f5446792ffdc03c38398720a493b6a80eee1f95cc4f8e86cb639c1da63bc6d17f333536c4eb7564d6fd36d513b322b605ff66d0ba36ac0f851362723b13ea791f576928a868a5a2e994e11f70c2e575ac79f602010110cc28eee7c67a04646ca97df6026255e7d8fd6f67859802f323b33d56cae4c96a36d5badb40ded633809f1e9ddb03a60e7c5ea3fe1bf283ea53df576a49f150bae0ac538a1b737a906dd521174c467f525412d7a142eb5e6c1473b865251d14b1904bfb24b70fe7e7e464143f64a13973d41ee983132f6b425c722e9e95205a93db8e8e7a35c3998fb3143424d5da07d1c9708da0aebfbfa37c61963bd96443af0020dba5a009d3a35e4f555762746039e63c505ded934d19823783127b2e611017f3c14a78dddd302a811010c8ccb81f1148e38bc879b992333624f1d67a5f3bd8b3eac61d8b4c8d40e4e7b6897524a7f9d3e4d8b55f9252dc1d0c428f274c4b0c48f4db0858779f16901855f4469c1d94e02ae66b23db961b60aa769be9d3dc2462217703796f75f2e52eb9704d9aa4d2cd38edcc1e1844902ceb35e72e1e3e126435de3a4da0c576ce6d7f576b47697daabba7f3bdce15a88f40e23b8774cb9f1b85c6178ab7e190d2c7e6205d7dcc93fe1d54bee466ab4f26c610e385ee52f99c7357de05f1542d0f71a8cfb5b46b515f076aa31d797a43f4d8523758669d5ad365f9a6925427d2269847b53cd5420b6aca595b82f56a020bdb466ebebc469422dcf2d4cca88599a1aa2cfbeb3149e9f32b4dba69811d6e4158e2cdda48eedc0c1291a21e5ea6ea4c9ec7caf5c267dae419f6af219001700cd679493a94b27e4fba6a4a95c562ef48389c2fc062d5d165bf9b605f6fe69eaa95e9cb23d663523e2a73e8c1528533fd8239502916e8aaec427ae82f38f60dc2d1b38f398168432ea63c72e4efff8c94a82314545f1f45f66984ace3a9cad7aebc025312ea57cd7e5151e5e3a7bab0c7dc4bf0a1362702d43a98495cd39e494f1a7f6bfc78d873a8d09205d9b1b8f5b8bda83d7a2e9c2af3d77c2277b28659d2d4adc1b97c59c9b1eb3e5d98617015b58940253170e4f20430bbef51a25b3e3b38df8fd8c92eb9bc50f3ac5c5444615045380f34ac9015556d86cf79d5d0c99c2a16b5528d7b325c25fa08b19dbb1a78eb1081e13ea8cdbd92de5852d5593d15cef2233bb57788a34eb954d2efca3f1f185eecc98fc8f7117f233ebfb27b9a4d7e227db583a8b15d2cd0a98c74c3415262839fc11e012b1067e312acc855371abc807d597c67898bea9c28b3e30de6c968a291124a78411fc2a5adf578d423f77ddccc814ef106ce19a5074a071853defaca429cb2ccdbf304c7570a94e10653a14abe479e854188861d68f04d16c7c40f19a7312a5399dc679a792005967d5f2103db5c5bf8a7fd0c71cf63af0b4b244d54744fb07e303a91580ae37ea8a8aa2d380a346080b732c0a1ed16654d9367b469c0eb28b002ffcd1030a0f2b1f21f2f72c050e830163f3d2903056b56c5c3a662f03ac36ab2cade947963ee9072e73ee53dd6200b99d2b3317362a40c5bf58f48f680a045de0fdf2d1a9137203a1f200b3d95dee50e58943a4856b699f5c8c64ff43095184f6e582d11afafb4427d738237738c2b73b42d148396689f1e5e08ba948eb2e66924256bc93135d1e1855f7d55048d31093d0f415142890146477c6b1386e0d3db780e657c5064ea64912f596883734094537bc2a5123058efa256702bbaaadab37f4fcaf1fe91f1b207f563ef30a2fb24630404c051e84911c8597c1fdb23b8bf2ad1fdcf0914db198838c2dddfa11477b01dbc6c348d632813644a259f220b5fd4acf9b5c23f5acb49439b2150a2139e4c0d2c8437a9f6a51993e8543277d9ee861f84b252092c5cc267ac62c9f6756a6b1b5c79368f71c3a32fb10e8743220bb6fe1a02d1160c7a7a68c309d97812a5218e857e4e4afbf766227aac62af089a9237f88af8695d00edd3faa1d71bcc714a8d59cd1691cdd5d4b85a423102eeeb988d011063ff25e74d72a76bdf304852b6ca61921b545069ba293a22827b2ea9402a2af56eeaac6ec7ecf442a058ac993718fbf6070f18273e4562799fbabfd1ed17203338445f6491b1c1cfe0eb0c172c3242484f52575a5b6074828f9ba1cdd6e0e4f312222d344a4e51527f8bb2ccd5d6e1fa000000000000000000000000000000000d1a3040", + "result": "invalid", + "flags": [ + "IncorrectPublicKeyLength" + ] + } + ] + }, + { + "type": "MlDsaVerify", + "publicKey": "5a04d37a8c83d373ba07da5cf96806002e3635ad8add42ce6ee9902dfc9a1f27f78f3a8e3fabca746683e181cac6bf024350c9ed4fe31fc9fc8909d2c971edc599bd81418b18c7b8eee790999f53f717bb854a5c6d5a4428710f0b90cc65b470733eaf2e573dae2acb8c5cb42a7a6a15b9ffeac26cdd52fa78ffbd77342832ba5da6e9447f2537d1dcddbbcb55d1cd25085e78695ca31c10e5bd3d07d1acff7b7ca2906026a6d3382c9eadc39cbb5c40a1828d82cf5792a39f49b6a0ded34a6d3862c1cce0ebf00594619ea5be9484897a963a366f34754a8678195e72dc3433cec45d971575f9d4e9f8c068e3d33dac25c0a1d35e5b82ea41a2b7d1f61a9b13f58a1b269605991fadb82df2740432a0249d08a0b87b9c8475b51930e682aa5dbc05b023c64386aefd0f4e92d1ce7bc59e6d8c479deb8d24529105ce70839844f286b6f92794aa125f7ff5d273b2ac7583c04209b4f069c88f4bc248d8143811393e7840162e3363ae7a35d4485cdaafb0088322adef84400bd44bb959990cbea7ba4fcc29436a018186d88eb0ca1f1cedf83cebc34e0582dc2c15179f2bca032b3d633d4f1a6fecef470a9f29663fd526e59afb155f1071d0a484737d8e8664b3a525e8d4c87946cde1b971e794e01880a0cd5d13c37ee33eb09c7cfcfec965b1839cfad136b33017be73cf4e8620e54cee41670817704e7f37ae3d18de402dab7b463da37d7525d645ee96c2a45e38b694f1e3ad590ab7190e741c585248f00f5b0d0b523f3e22318b3a60bc406c53b8bea8bdce91aa6da679704aec76e95b3f75f9fd137cd7f9a85db560f0be72768760f585e91270c0347fa59be9ebec6380f61a2d167d97e4b12585122931db15d3dd3c651d730bd6f41130e99ec80a043e752d63d2740650eee56fbf7e5786393d75d306c7dc31dd7a8f89c82b85631bfafaef93b7970fb1248732beb36226d7be5419b511587737f2d2497958c9d41bb3494893285b16cd1c5bdf097ad0fda30e0c57a485d69ea6fbbd693bad496d343345a9adb4846eab74235c11c7661a77bbe400e4edcb00d942332b338443831c627a4590139628e1c5f0cf4bbd100ff035d988f86daf839815609f8dd20ec54573a85951dfaeec6339a51672455224f8e7117921fca00edd32e81fd21e3ce89bb6aefad6f3eaca49c45f46fae1f00a7ccf9151a5c73031bc1304f8d0022663353a71022d6ee31533c2fe31a025c742579ad392b0b4ca0c0f4e997d2675dd75eeefae4d9f18ac1c31af9612ad426164fe315a6ca0daba5ca8971fe89950428ac3e8e1cde466104999dd6633d5c9ee21ee5e7b3a39e92017d19a0db28f8d7048191086ade8a8e9e45ced54a54884aebf2f7a890a09f0c3de3190323214d650661fcb63f3fe26c893955d1788d97aa6ff7f645ef61885e1a22fcaf2a9b82369d450439c5bf47731341c6e54db78f41ee986d8bc6d6ba4a2672bdbdf5449103af0246cefd131c9be22b498767acabec6257abd644616b51c524588422f179173106a55074c543ad3bed60ea9a0f65c3490683cbbb6132404d8b0c8f982b90714256f48fe80c0db1d2d17b8e6f7274900c3f4e16ff6da550f11b8bfeab3c3d74f7fdb33ff913dd196f8f0c445d85454edc06461b17a91b1207e4fb9ee795608d000b1a738bc1139a9822bf62a40715a1559f6ab47023d4721a7ce9ab017e479f7b13e2ed2525ba1a4e58f9ac22babc74de8e1a980e38c7d1d8f1fadeea79d5e02805fad54623c59c823ef798ac669f7d93ab062c06355fd4c6cb82065e1e21a3dd8333635837012908fb4607d0e24dec5e2b8a4f94a679c208e7c1e189e269d00bf7d", + "tests": [ + { + "tcId": 59, + "comment": "private key with s1 vector out of range", + "msg": "48656c6c6f20776f726c64", + "sig": "45289c4347bdc087237c7df53cb91ccdb1f819b7be6cfdcb2687fbccfeee6ba1f4064193beea9e26cce34dfd4ac7f408bb30892e16171f9cdb3253667bbf5a134733d196219d8fc782ad4ca143f40e6a6c930b6634d7074cf02ad4d782e5540734b27b74aca62d613f4b6bd8e46bf16ff27422d542df7bb2a88c38532041d6619a3f7be42cd06899c408dde3f30e867c636ceafefb99ec42980aee8232df9895fac6a8a78152938cdba84f7e3a82f7373c947e0a84975f3c9db65f178932304b66ee41056035c8f504f62fbd7b9186627d11c03dba7b981d4952a10ddeb0ab5412a05a70dc955997719c87d777f3d2297e70f9eb918b660ea217a03117bcd78a20d661028b998346508bb95a63e502a053369bb9ab6c9054711c24da59e0c27ff3eee43c0b04a26dd7badd6aead8de3dbc2958f5c0dbb04e191f5c64af59fb9bfcf7e17701ac8ca30f8c158202b25f80b4e7833f33c24329c8ad5100152b9bb4edd30cdc652f8f7b36612d19bdf285a53980953d2afcf7c0e6827b913dd52c1158d9a782167b999f522cc0ce9d00f576b97588d53090641691117671ae1872c2987f0bbc27ddf9991a7dc5b1cef059b8f57a715473763241409a44222edc7b0dae17442c4cc4b744c60fa2395b1f421130fc54234e7e7c493f0761c2e210f5529a2ad421daf52992283cc02a685816e935d7b1539d6a35172f3c33b944c85994b3138cca5550c1fe07bddfc8ce4f160b080105bd249e03630e4c0b4996ead5377c873868a550a29314c0383703d7035de371b0745be8cf5ace34b7c180526419d7036b8aa46a3d56fb8a939d6ea665c78248af247a4434d0cf8dd970e82b6dfda215601570e8c884e83fdd77b0fdb2b4059b5a267e2c35ea392f6cc30d309ab4bc06f5bc5523f9771e0bb87754b65043f9aeca08df668713aa58301e452b15f5645c88f5702d5e36f9825bc8551907f6ae405862a59c8dfd8d53f54b4f7680a94f22066ac109f7593b9bfae17a61d465d586fe56710ff611b8b5e3d74ce631acc175b38215d611288c159361ef5ae282b43ca42f9c5ecc8890e86f59a51842600c062a9dba535bba1b934db8fec2ef4f65da22f05a53b55687573b84cdf9b2e893dbad86ed797764c6603b91806134d7a60fcba5be2929786f530950e725a1b31741ea8d251a318694bf67126841b24e3020f4d11cef8d98eab8ba6f15b1e378dc78be9563bbf436c518cff3eb1033826b505f4c5a8297c01fba04657219551557419b07350d032ede348c5cc517467e869a4d6007e9e41ea9f4476d3ba0caa2288d283a33b51955c7edd03588a427592866aa5beb995fc34659e96de6bc0ecdb9bd1ac625e1b371d26b9f2d663422b3731933bc98143ef4d47c531c49639960ade3a824eed472609c8a92e07f87685ec8ef98f6618b1b8660b1761f02f0e37b8e44fe56155683c06112a5025ddca6da5d728b8d474e5573c85e053f597cc527b6a8dbee9eac2fb5cdc4bf8089b5037a8c4489f9cce4f0afb1a6d581afaf9e76de6e8c4eb58602aefcda3bb846b6d72a6534359590f482264238dd6a18f2d48b4af55848d75e08044b7415008f6cb38a7f32f66cd0952375e85e35cfb45d4a45e9d53bb5344438c86ff22a9a0eef4ad8e0c094d11a305ca3e6d86cca9232983a7e152468a763feb7bf15c7b8461d8b938ae910f6bfc3852b5c90e48e56db81ad471358b9ae84c125b3f6cfb8bb75a347ef5a45177d23914a38e6be9799977a3ee9932dc7ec516328229f4429726c828b52812edacb95355c41136383783b03f2d0db8f0a5e8376a37426fccd353654e50a43b18e086ea993e728f7e1203007ebf145dd72d51dd92abe8d73efe14590ba06fabcf94d4b2425f366fbe133d1713fc9b76e76de02753604a824db6c4ee37bbbea27564a2d59c0eb2b2b75c3c8cc17855d2fa43be787e0aa85b7ec4aadaea64578be48fe9515273c1806d7c9b71ff11c3578d2c957f31d5bc5f7b3a5931a56d8bfda442f70396388eb49eec1cf6b43bdc2b966e86d737f73e46c168b27f805f13176212c7ed886448d29e2b35cd0b9cc5bbb2ed684c62790c6ceff9e36985da9fc11f756ccc591141955d2be9d78619abe6013944c84090a820568a4da054078c2a7545411b136f0e5e5fcc0c1225b9e4bd1370772de4932861428c0a411aac51fd219ec4bbd6064179b692482f5b322a929b7b2a0e51c4f36f1d3eea3ce106852d9e0e00fd2039dac2fd4541c3613ae37485eaf56c2211abb2a65cd860976cc9aabfa3ef881239d259a8f13975ab93f5d5e98d29532ee93d4585e55fec9d646ec060595f605c19f68dd55b721130942ca7eef86d012b408de464b8ebab9db70f2af14ecaf0c2f0cc22f7abd42e6b3fd0867bce975aea2cc3293a72390a00bfea122394c36a515297dcf6001f70b3a890543e3b51204423790bb642c76dbcfab322f89dc8708ca3383e821240f61074439b9270e3d20d92c866f2e3debd6eeb28c2ce4ddef23695729000661b6d4a3926536c01bdc21e387f1d0c801e0bb87f995eec62525217e50fd45d356c707df97b81c7db571275ef641608ba053b98d2c5c5b3faef609f32139331301c4ae947c6d266a43b67840b48456505e7b6e4622c9650a46250cc52c4ca6f5e07afc20b70f428ba50a0198258892b9a3694dd40136134a8928d1ee867f204cd80296ec78996693472876e2a163266f3cd8431d76b95238222faaa3a63c7d79da50a01302c6c89a42d86ee61c1561c7c849973de53be988af65b5cd781e26cb3d43641fbf31ade1b16aec3e2e1a994af7508932a4c076458e00ef11927dc63e483226044bc93924ba2a8e1ded5124edc70739a723bf329cd479d1faa1b09a74147dae042ccdcf2e4e54b6f9e115e96f3d1fe264c42e1c7d82de58407ebcf457efc195898663bb3ce2aca9901a3bd5a77827f46a36a8fe5e39d8034c3eb7095f4ca74d30eec9d3a6289186bff99825700df24be5a4294291c16d0f866014ae137e5d8625e44921f0ef1761bfda3e96bc3b83bab1d2f809fa295a709d4dc688bba61342206b5350b7ba240367667526a927c28ca57d2da63b372110c78ed1834b75b1b7f3047390f3556449bce56737eec1850c27448b170fe4f7ee95ebfd28027d5a9d6602c7ea82d805f20309604965b5ae4beeaab5eb0d50c532ac28c40c53d5753a8af516846a6dbebaff4d43ddc1fc82a27d111b919c4640babe70dea1fc16ae727f771f2107970cd8aa40ca62d793262a1b7e8b200ef8aefb145fe408bc8dd375f50a131a29377475768b8f909c9da0a1bfc1f60824393c4c93a2a9b0b1b2ccd4e1e6fc0c10232c3e4458809096a2bbcfe102030c13171b2f4045474a5e6267738e91929499d6ddecf7000000000000000012223048", + "result": "valid", + "flags": [ + "ValidSignature", + "InvalidPrivateKey" + ] + } + ] + }, + { + "type": "MlDsaVerify", + "publicKey": "2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "tests": [ + { + "tcId": 60, + "comment": "public key with t1 component set to zero", + "msg": "48656c6c6f20776f726c64", + "sig": "74de3a256a873c70e8f1444758e1d2c7f67612a83f6192babbc882645e8862f4000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000002000800200080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "result": "valid", + "flags": [ + "ValidSignature", + "ZeroPublicKey" + ] + } + ] + }, + { + "type": "MlDsaVerify", + "publicKey": "d83f3fe5bfd9895f3fca5d0b6ac999618c311772d3a9dd13d5f1dceae0f8dfc79f78234c3783de262e29f1ea807acc013f6774f96d3e3be6548e232bced328b717b037364ae093c9da51b25c6f6f1d5800514223072d43cc7ffa442368ca00ec2acbae71d85456f9c63f31664152f5a6b8833f541219584b2930f2aff42a5827d927e81335e8c85fb1cd225049e99fbbd82ce89293dc41373baacabaaa079d24d80d25f84763488312063704644fd462cb56e0c685b8eea65e6bff327a3129ab26d1f824bfc4c125d76ea550b8e2308a99f349a3f1536569d9f2989d21607ae9544374520434c68d43c4255212bc7f59ccb7e4ccc3cd65859e9936dd0b99bb0031faf75a0e2b163c5c904b1ace28418e1bef30ea973a31ad79c40a9d26204f403cd6f7dba89d8c6485f4abfbe8acff3a902fc0a42461f5b36722723609ae76e334142b9cd00525cc5409d1a62ca9add9cec07d0a46f60162bc1962b96c79e0cb53dd1eedbcb2165b4a25456e0db4f87782d7ab5eabe3aee26459492c2cca67ddc7e3fbde30aede561069b495ae05f6bf99e8c32d7279c835dcd553abb1d3e5bb681049534a9daf298dbc1ee8d8fc0dbfd7ac09528a8f66ef79a5dbe82aafe36e89fe2124d04bd28bf3fe627ea6d31b504c123793a4478763a851c23a30742f793b96fb2dc3b83ca84eeb2b84b6b83e7d058198459de04b3672b319b30e33b2cdf3c913e83628564a7f382bd37f3b1393b918570cd19e8a3ea109af9f75fc5e4dde1a65a034e8ff0c9e9e862cb2084535f9a37e59d335fbd31921339b349fc1640e990f12c1ec71ed7e25f8427203d0a00c4bb7f9d524c5b673ae18d92a827dd03f3a48f4473fe41131f7b7decb63479f443bfb2cfcfb62348b75a6225cf0dede09130182a68986b3e417b6a18a58af062a31161a1dfa5a86832206b0b1809b04064fb74c2061082ded10999a304f28ec5fa34026ce38ff4b00ca1d04ed29f188dc039279e79a36e7fc53c5daa1f40211f4680cda0b516198604b900958bd91e622f40e1e37adcb103dc6deecc02c1d4ab70f327373395b2ea200efec249d6c778f9ea032d655a487c84208b1cba24d7e300dc5554f471338ec6b44de25be6da021bfe83b89d22bb6bdd53dc64db009d7225d75a838137340e28093afd5dfa12ad4cdf9e7c0f414b6f87c2638e22c2041f3b9a566d3da1a2aed6064a722c71e99a07759c33fd322c8190c420111022601d12964ac888eb7bdce5e707ac4b26bbc1f440db065a678bd572cb60f2d658b9fa62eca0831b37c9c4104de97b57c45bb4bbe5533f7dbd5fd6f930c2a4ec97711a8848745426e24e7628c2865496d76e37e17be2f50d98754d6053f4ad4ec9ff4f1ef8618ef1fa676fce2d7436900329b099c18d99ef9eb0f5553e8ebaa0c1cfa74b53d7108a96da0412e56faa7b5a5989bc387b65c46f2b4b0dc8047692ee4680cf482a06956cefed19175ba1643e310a9c87c0bc01701999c86f73b509e175cd45f7b85443b3b36e74bbf18251d25fcb6cd0734bf8c0932b06ddd59714241f49fc1b0957b2c01f47a71c18501b4cbacf13bea5743b03495c3af77609815741e94ee67aa008152e0ecbe022de67afc6531c448a79e82231d21d34de7b5da8f9215fe724443f1f5814f3b080c6b892ef729dec4f8971e36b30173fb03a8f4418ddacb900b8901f8574bebfc6fc83fbe5d9f9288f694ba9ec37b08054aa2e5ab0e91421917a31e4caf5f21336ce3fd45103dc46880af43a1937afcbea733b4458e468d2c023a877180858d3a6f4d9648c0fb1b46bb06bcb5723d9ea3a00725c26921d5f6c4fb381a5d3aefec7fd1fdf5e2", + "tests": [ + { + "tcId": 61, + "comment": "rej_ntt_poly (sample_uniform) requires 5 SHAKE blocks", + "msg": "48656c6c6f20776f726c64", + "sig": "e67ccac30c020e6dde15ce0457d1f1b78f4a5eb712ea7a01cb265c90b648fda96c1882379a0832ab0a2530dd6d251032abc0b7b0ce1da5f16a828bf9554b8d72dc8f954ea1b998dfa6aa516c94e5b07f5a2ea512b7f434ec003be6c08bfc6f23f122f80159dacf7302268eb24b15939c5fba0a4d8692838342e8ad62192e14d90e4939794bca913e2079bf9a7850a96557cf0743b99d5358ccbeab90b764acef4bdbda89814904ab1a9e3935560dbcd2ecb165d2ef0165e99f32c08648811082fe660d331dd74f088b57a07b0f27c36c159044cecdaac5e59e02bb2b8937ed025ff152508df6526be05cd1e7b73772c788dbfd8cc9556b825d734a2ff2b0f2ccd6fcb497ebd02a5c00469d8b24f3edacd2d3949687ae9c04c60dcf237b41a2722991f15da48362771e4af68473bcc7ee1bfbd08424c21673b17ecab4e8cc3af9734355075381278e6ac3ddeaa145d666f6a75389aa6790501a508f83c8f2c184966bc4d353f3268791f243c42c5e8926b4d81793d02c6465690a7a7edd5e2f7f3a8ad4cf712fd1be2f83276262bdd631775e76b73c5ed9acd59f26f274f61d04ad0938dbfcac724032976bb6a21842b5158e79c325793bd08931c110849fc62406f36cf034ecf8319e7a1e0b0f478db45dd865dfc381a37e35fd953ce7e96b12652130069972f395e301a89283ba3c8f4b909acde3ad32ef43676699eb74ca07b845a2ad555fddfa8c4ff8b965f15cef75367e1f57424822ca739cd3e0e9f05a11d5a719bb722fe6714591e51cc5524d2bde72837bcb9832d7ecab556a2f753c52b012c926432bf93726866e919244677825bedd9a5a41078d1941cbbc7b3c147cd7bffc1cb2ce0e6da5626d74e0f17b0ac8561f5ebf011d19be25eeceadd8b2c3a3a38422b8bb0333d5a4aeee55352e7d4d54fa5eb44434f529686397987da1bbe45085cbbeb64359accb912954d71f55cba2e4d2eab66cb848d93fcc25f4cc6bf3cbd8d86efc920b9ecc8e85c4089e662e9a16b32c927bf489aa4d8315624a23b3ea9f7f017a8bef2833d598b63b94d9b6c432c021894e9529a79a2a525cf9be696a10ad670b52d309e2acc4b35486433a7af1d000d7cda11c7a303ad0a48123bf02db0cdb3cba204a67e04dcc38aa74565d255d08578289a53519aefb539cd9eeac407ab591bdd9e6fd6a724af671e51cf2324cda078de5ed71eac51209af6542ec7b75064488efb94bac345848865c97e53f8b65e449315a7698d828cb9ddc16c18b6ebc3c29c1263c6ad324802ddc2650a82579732954ca5d4b1b0ea626e14d7f7064f2855141e18498f07e553f9c1e7f3ee669083f865f8b76de61631332b9f8c65f498ac6afc2e3142fbadbf1acbe5c6171b2e342bb02ec17e261f571cc32a82e83282c740e53df67fb33e516b45c6719b41e545c6d83f0c5fb481e23e1dec68d9d4de8585218570c1a546ed5c35615a50a472c6dacb59f9470aa162976a2d9f00d988a62acd0b6c110fbcc7cde2db6a0643d533688144da614c420f866e722462602409d6eb3cdd2bc3f58a9de84ca7a416735901c8fe5bc95bf3e0d56b33fde749205564b90f7ec3c826edcdec9b9f0ae6ff740d96ba3853a10772ca7fd1e342fb334c6f30489912755fc79a8dc784470c7229ef520ea5ce8d1e980137bd9d8800c280516c3a61b319c7ceecf20a7c47ce83d6efee31f5dda80d41ab29ed42942a37d5eb717ca2a832ffb2cd9ed458e5512a3c6916a8d4c6a938b99e16ff69cdac6b3985e2c9bdb25e866871a493af4604cf77d86e95b99eca403715b568305fd572da404693b530bad7b0d98355935fe31d869740a0398e64d39292fa9450d1f8a75aeb12a6d3a84649d04135e069d1f11e4830ac95a9c8b5174b5fcf6a7298a964a21ea02fd2c7f22d73b60fc2fb9dc542d3de94400a45b5011d3337d9386b1f59207c9836f44f458224b3098b24fd46137600e1c3c56ab15133e78ddb190884e96a2100e57bd0f7ab04e8b78dff521653ebba5510858fd66120f4353d1f043aa20330cd2ac86656ca6737a20d13b9dc8f03b4f4467faa93b392188e116a3d587a32e07614b6be712b52ec32e1c88055c336a9efeefe3d061f55af80443c795ae40d5d9031ebb44e646d55cbfc52246f21b2ae787d4112d27ee8dd0cfaccdcf47891232fbb7c61c0d6556c7afc230316d84bb47df493a97f557dcf83b0a5954888c0e3ef31c42a2dd176d4b6adc205b3d9e8ba44bf5b5ef5c0a5aef7d6c5d0a7feac60c20e27b6cae6a606222ed8dd0fe8a9efc19471859ced3d8649dc9a6b5044bad690dee3241729443992b1f64f6d408c3204fc1ac7d13b4a08331cf5e5c4e76cfc01456f647519c7fc8944a5e4dc2966b53e3a92ae24e0731a81f101e382c2193f081c44ecc1adead77ea7f7eca8d0359c53c26130f801501a9d7bbdd9bc5a9f03a0ac5ce7a4203cd539c3df99befd2d2f0db38b9089acb6202db7f5d473727e27c6708042c07ca5ac3eee6d22770c271c2290a12428d75a1b60853a4d21a5f0a139a775b162284472b72714bce8eaa1b5f5eae9c6bf64bc8bcf0630039551f24d257702976e07052da86be9494c2592f048ff1d3442f95e1779806df0ea285626d977af994c5de08b0abb27a884c66c32a6728f92c22471822f765dee86cb0bc6eb13f40ea7de51e0ad0542880f8fa8584839636f2970a54f4de2e86aee8de83125f01606ce35bcf39a9f8494ac1b9b5d5f4b0663148f0ab6a2dca66fcaa2581c63140a41a95c0cf2e462abcd2757d617b85b439d94882863c94d6b9be0254e07af31314d1f39303c1e364acaa26144a1462177ed7de17f2e298aa362115f4ebaa8153e5b0d9079b335165153672ef861fe49634ab630beb1d8306551be809cbd48e90be484d73f4d315a8a6680fb8f1fd30856f50c3998fd739a79cbc85ab49d8fe08c95d3828fa13cdb22e4df4083e525db9d297b6e538ad85c2f08e580c34ca1f3c8cd3066c99c5b14daaa479dda962776d861e06233acfe35aca2539823cff32d383482771eead910b8c2ce04af7f7c534c8413cf6c6a11a2a7e5f82c307da58913b7c36426d9c890fe594d3b00cf688ba00fc8b92f51c24dc7b5bea8217ba7a290dee309509bbcb03e47314a07f72406e2f576b8440583fde65f080b5527a25d887672b8521306b35c1dade44d5f8344cda66684786d4534ae7037a52ea86319bfb014aa502e4d8a103fadd9833171b0a3f55548d615a401f73dcfd6354c931f5ffa962a9e9a6adefc485504fe3a136bd80b10f5348070f273155589d9fcde609162f37404c4f6c96a8b7c7cdd2eff20a2c4e595b5e606a858e9ea9cfddf4f7fa181f5874808493a8cedce3e4000000000000000000000000000000000000000000000000000a1a2b37", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 62, + "comment": "expand_a requires 80 SHAKE blocks", + "msg": "48656c6c6f20776f726c64", + "sig": "e67ccac30c020e6dde15ce0457d1f1b78f4a5eb712ea7a01cb265c90b648fda96c1882379a0832ab0a2530dd6d251032abc0b7b0ce1da5f16a828bf9554b8d72dc8f954ea1b998dfa6aa516c94e5b07f5a2ea512b7f434ec003be6c08bfc6f23f122f80159dacf7302268eb24b15939c5fba0a4d8692838342e8ad62192e14d90e4939794bca913e2079bf9a7850a96557cf0743b99d5358ccbeab90b764acef4bdbda89814904ab1a9e3935560dbcd2ecb165d2ef0165e99f32c08648811082fe660d331dd74f088b57a07b0f27c36c159044cecdaac5e59e02bb2b8937ed025ff152508df6526be05cd1e7b73772c788dbfd8cc9556b825d734a2ff2b0f2ccd6fcb497ebd02a5c00469d8b24f3edacd2d3949687ae9c04c60dcf237b41a2722991f15da48362771e4af68473bcc7ee1bfbd08424c21673b17ecab4e8cc3af9734355075381278e6ac3ddeaa145d666f6a75389aa6790501a508f83c8f2c184966bc4d353f3268791f243c42c5e8926b4d81793d02c6465690a7a7edd5e2f7f3a8ad4cf712fd1be2f83276262bdd631775e76b73c5ed9acd59f26f274f61d04ad0938dbfcac724032976bb6a21842b5158e79c325793bd08931c110849fc62406f36cf034ecf8319e7a1e0b0f478db45dd865dfc381a37e35fd953ce7e96b12652130069972f395e301a89283ba3c8f4b909acde3ad32ef43676699eb74ca07b845a2ad555fddfa8c4ff8b965f15cef75367e1f57424822ca739cd3e0e9f05a11d5a719bb722fe6714591e51cc5524d2bde72837bcb9832d7ecab556a2f753c52b012c926432bf93726866e919244677825bedd9a5a41078d1941cbbc7b3c147cd7bffc1cb2ce0e6da5626d74e0f17b0ac8561f5ebf011d19be25eeceadd8b2c3a3a38422b8bb0333d5a4aeee55352e7d4d54fa5eb44434f529686397987da1bbe45085cbbeb64359accb912954d71f55cba2e4d2eab66cb848d93fcc25f4cc6bf3cbd8d86efc920b9ecc8e85c4089e662e9a16b32c927bf489aa4d8315624a23b3ea9f7f017a8bef2833d598b63b94d9b6c432c021894e9529a79a2a525cf9be696a10ad670b52d309e2acc4b35486433a7af1d000d7cda11c7a303ad0a48123bf02db0cdb3cba204a67e04dcc38aa74565d255d08578289a53519aefb539cd9eeac407ab591bdd9e6fd6a724af671e51cf2324cda078de5ed71eac51209af6542ec7b75064488efb94bac345848865c97e53f8b65e449315a7698d828cb9ddc16c18b6ebc3c29c1263c6ad324802ddc2650a82579732954ca5d4b1b0ea626e14d7f7064f2855141e18498f07e553f9c1e7f3ee669083f865f8b76de61631332b9f8c65f498ac6afc2e3142fbadbf1acbe5c6171b2e342bb02ec17e261f571cc32a82e83282c740e53df67fb33e516b45c6719b41e545c6d83f0c5fb481e23e1dec68d9d4de8585218570c1a546ed5c35615a50a472c6dacb59f9470aa162976a2d9f00d988a62acd0b6c110fbcc7cde2db6a0643d533688144da614c420f866e722462602409d6eb3cdd2bc3f58a9de84ca7a416735901c8fe5bc95bf3e0d56b33fde749205564b90f7ec3c826edcdec9b9f0ae6ff740d96ba3853a10772ca7fd1e342fb334c6f30489912755fc79a8dc784470c7229ef520ea5ce8d1e980137bd9d8800c280516c3a61b319c7ceecf20a7c47ce83d6efee31f5dda80d41ab29ed42942a37d5eb717ca2a832ffb2cd9ed458e5512a3c6916a8d4c6a938b99e16ff69cdac6b3985e2c9bdb25e866871a493af4604cf77d86e95b99eca403715b568305fd572da404693b530bad7b0d98355935fe31d869740a0398e64d39292fa9450d1f8a75aeb12a6d3a84649d04135e069d1f11e4830ac95a9c8b5174b5fcf6a7298a964a21ea02fd2c7f22d73b60fc2fb9dc542d3de94400a45b5011d3337d9386b1f59207c9836f44f458224b3098b24fd46137600e1c3c56ab15133e78ddb190884e96a2100e57bd0f7ab04e8b78dff521653ebba5510858fd66120f4353d1f043aa20330cd2ac86656ca6737a20d13b9dc8f03b4f4467faa93b392188e116a3d587a32e07614b6be712b52ec32e1c88055c336a9efeefe3d061f55af80443c795ae40d5d9031ebb44e646d55cbfc52246f21b2ae787d4112d27ee8dd0cfaccdcf47891232fbb7c61c0d6556c7afc230316d84bb47df493a97f557dcf83b0a5954888c0e3ef31c42a2dd176d4b6adc205b3d9e8ba44bf5b5ef5c0a5aef7d6c5d0a7feac60c20e27b6cae6a606222ed8dd0fe8a9efc19471859ced3d8649dc9a6b5044bad690dee3241729443992b1f64f6d408c3204fc1ac7d13b4a08331cf5e5c4e76cfc01456f647519c7fc8944a5e4dc2966b53e3a92ae24e0731a81f101e382c2193f081c44ecc1adead77ea7f7eca8d0359c53c26130f801501a9d7bbdd9bc5a9f03a0ac5ce7a4203cd539c3df99befd2d2f0db38b9089acb6202db7f5d473727e27c6708042c07ca5ac3eee6d22770c271c2290a12428d75a1b60853a4d21a5f0a139a775b162284472b72714bce8eaa1b5f5eae9c6bf64bc8bcf0630039551f24d257702976e07052da86be9494c2592f048ff1d3442f95e1779806df0ea285626d977af994c5de08b0abb27a884c66c32a6728f92c22471822f765dee86cb0bc6eb13f40ea7de51e0ad0542880f8fa8584839636f2970a54f4de2e86aee8de83125f01606ce35bcf39a9f8494ac1b9b5d5f4b0663148f0ab6a2dca66fcaa2581c63140a41a95c0cf2e462abcd2757d617b85b439d94882863c94d6b9be0254e07af31314d1f39303c1e364acaa26144a1462177ed7de17f2e298aa362115f4ebaa8153e5b0d9079b335165153672ef861fe49634ab630beb1d8306551be809cbd48e90be484d73f4d315a8a6680fb8f1fd30856f50c3998fd739a79cbc85ab49d8fe08c95d3828fa13cdb22e4df4083e525db9d297b6e538ad85c2f08e580c34ca1f3c8cd3066c99c5b14daaa479dda962776d861e06233acfe35aca2539823cff32d383482771eead910b8c2ce04af7f7c534c8413cf6c6a11a2a7e5f82c307da58913b7c36426d9c890fe594d3b00cf688ba00fc8b92f51c24dc7b5bea8217ba7a290dee309509bbcb03e47314a07f72406e2f576b8440583fde65f080b5527a25d887672b8521306b35c1dade44d5f8344cda66684786d4534ae7037a52ea86319bfb014aa502e4d8a103fadd9833171b0a3f55548d615a401f73dcfd6354c931f5ffa962a9e9a6adefc485504fe3a136bd80b10f5348070f273155589d9fcde609162f37404c4f6c96a8b7c7cdd2eff20a2c4e595b5e606a858e9ea9cfddf4f7fa181f5874808493a8cedce3e4000000000000000000000000000000000000000000000000000a1a2b37", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 63, + "comment": "rej_bounded_poly (sample_uniform_eta) requires 2 SHAKE blocks", + "msg": "48656c6c6f20776f726c64", + "sig": "e67ccac30c020e6dde15ce0457d1f1b78f4a5eb712ea7a01cb265c90b648fda96c1882379a0832ab0a2530dd6d251032abc0b7b0ce1da5f16a828bf9554b8d72dc8f954ea1b998dfa6aa516c94e5b07f5a2ea512b7f434ec003be6c08bfc6f23f122f80159dacf7302268eb24b15939c5fba0a4d8692838342e8ad62192e14d90e4939794bca913e2079bf9a7850a96557cf0743b99d5358ccbeab90b764acef4bdbda89814904ab1a9e3935560dbcd2ecb165d2ef0165e99f32c08648811082fe660d331dd74f088b57a07b0f27c36c159044cecdaac5e59e02bb2b8937ed025ff152508df6526be05cd1e7b73772c788dbfd8cc9556b825d734a2ff2b0f2ccd6fcb497ebd02a5c00469d8b24f3edacd2d3949687ae9c04c60dcf237b41a2722991f15da48362771e4af68473bcc7ee1bfbd08424c21673b17ecab4e8cc3af9734355075381278e6ac3ddeaa145d666f6a75389aa6790501a508f83c8f2c184966bc4d353f3268791f243c42c5e8926b4d81793d02c6465690a7a7edd5e2f7f3a8ad4cf712fd1be2f83276262bdd631775e76b73c5ed9acd59f26f274f61d04ad0938dbfcac724032976bb6a21842b5158e79c325793bd08931c110849fc62406f36cf034ecf8319e7a1e0b0f478db45dd865dfc381a37e35fd953ce7e96b12652130069972f395e301a89283ba3c8f4b909acde3ad32ef43676699eb74ca07b845a2ad555fddfa8c4ff8b965f15cef75367e1f57424822ca739cd3e0e9f05a11d5a719bb722fe6714591e51cc5524d2bde72837bcb9832d7ecab556a2f753c52b012c926432bf93726866e919244677825bedd9a5a41078d1941cbbc7b3c147cd7bffc1cb2ce0e6da5626d74e0f17b0ac8561f5ebf011d19be25eeceadd8b2c3a3a38422b8bb0333d5a4aeee55352e7d4d54fa5eb44434f529686397987da1bbe45085cbbeb64359accb912954d71f55cba2e4d2eab66cb848d93fcc25f4cc6bf3cbd8d86efc920b9ecc8e85c4089e662e9a16b32c927bf489aa4d8315624a23b3ea9f7f017a8bef2833d598b63b94d9b6c432c021894e9529a79a2a525cf9be696a10ad670b52d309e2acc4b35486433a7af1d000d7cda11c7a303ad0a48123bf02db0cdb3cba204a67e04dcc38aa74565d255d08578289a53519aefb539cd9eeac407ab591bdd9e6fd6a724af671e51cf2324cda078de5ed71eac51209af6542ec7b75064488efb94bac345848865c97e53f8b65e449315a7698d828cb9ddc16c18b6ebc3c29c1263c6ad324802ddc2650a82579732954ca5d4b1b0ea626e14d7f7064f2855141e18498f07e553f9c1e7f3ee669083f865f8b76de61631332b9f8c65f498ac6afc2e3142fbadbf1acbe5c6171b2e342bb02ec17e261f571cc32a82e83282c740e53df67fb33e516b45c6719b41e545c6d83f0c5fb481e23e1dec68d9d4de8585218570c1a546ed5c35615a50a472c6dacb59f9470aa162976a2d9f00d988a62acd0b6c110fbcc7cde2db6a0643d533688144da614c420f866e722462602409d6eb3cdd2bc3f58a9de84ca7a416735901c8fe5bc95bf3e0d56b33fde749205564b90f7ec3c826edcdec9b9f0ae6ff740d96ba3853a10772ca7fd1e342fb334c6f30489912755fc79a8dc784470c7229ef520ea5ce8d1e980137bd9d8800c280516c3a61b319c7ceecf20a7c47ce83d6efee31f5dda80d41ab29ed42942a37d5eb717ca2a832ffb2cd9ed458e5512a3c6916a8d4c6a938b99e16ff69cdac6b3985e2c9bdb25e866871a493af4604cf77d86e95b99eca403715b568305fd572da404693b530bad7b0d98355935fe31d869740a0398e64d39292fa9450d1f8a75aeb12a6d3a84649d04135e069d1f11e4830ac95a9c8b5174b5fcf6a7298a964a21ea02fd2c7f22d73b60fc2fb9dc542d3de94400a45b5011d3337d9386b1f59207c9836f44f458224b3098b24fd46137600e1c3c56ab15133e78ddb190884e96a2100e57bd0f7ab04e8b78dff521653ebba5510858fd66120f4353d1f043aa20330cd2ac86656ca6737a20d13b9dc8f03b4f4467faa93b392188e116a3d587a32e07614b6be712b52ec32e1c88055c336a9efeefe3d061f55af80443c795ae40d5d9031ebb44e646d55cbfc52246f21b2ae787d4112d27ee8dd0cfaccdcf47891232fbb7c61c0d6556c7afc230316d84bb47df493a97f557dcf83b0a5954888c0e3ef31c42a2dd176d4b6adc205b3d9e8ba44bf5b5ef5c0a5aef7d6c5d0a7feac60c20e27b6cae6a606222ed8dd0fe8a9efc19471859ced3d8649dc9a6b5044bad690dee3241729443992b1f64f6d408c3204fc1ac7d13b4a08331cf5e5c4e76cfc01456f647519c7fc8944a5e4dc2966b53e3a92ae24e0731a81f101e382c2193f081c44ecc1adead77ea7f7eca8d0359c53c26130f801501a9d7bbdd9bc5a9f03a0ac5ce7a4203cd539c3df99befd2d2f0db38b9089acb6202db7f5d473727e27c6708042c07ca5ac3eee6d22770c271c2290a12428d75a1b60853a4d21a5f0a139a775b162284472b72714bce8eaa1b5f5eae9c6bf64bc8bcf0630039551f24d257702976e07052da86be9494c2592f048ff1d3442f95e1779806df0ea285626d977af994c5de08b0abb27a884c66c32a6728f92c22471822f765dee86cb0bc6eb13f40ea7de51e0ad0542880f8fa8584839636f2970a54f4de2e86aee8de83125f01606ce35bcf39a9f8494ac1b9b5d5f4b0663148f0ab6a2dca66fcaa2581c63140a41a95c0cf2e462abcd2757d617b85b439d94882863c94d6b9be0254e07af31314d1f39303c1e364acaa26144a1462177ed7de17f2e298aa362115f4ebaa8153e5b0d9079b335165153672ef861fe49634ab630beb1d8306551be809cbd48e90be484d73f4d315a8a6680fb8f1fd30856f50c3998fd739a79cbc85ab49d8fe08c95d3828fa13cdb22e4df4083e525db9d297b6e538ad85c2f08e580c34ca1f3c8cd3066c99c5b14daaa479dda962776d861e06233acfe35aca2539823cff32d383482771eead910b8c2ce04af7f7c534c8413cf6c6a11a2a7e5f82c307da58913b7c36426d9c890fe594d3b00cf688ba00fc8b92f51c24dc7b5bea8217ba7a290dee309509bbcb03e47314a07f72406e2f576b8440583fde65f080b5527a25d887672b8521306b35c1dade44d5f8344cda66684786d4534ae7037a52ea86319bfb014aa502e4d8a103fadd9833171b0a3f55548d615a401f73dcfd6354c931f5ffa962a9e9a6adefc485504fe3a136bd80b10f5348070f273155589d9fcde609162f37404c4f6c96a8b7c7cdd2eff20a2c4e595b5e606a858e9ea9cfddf4f7fa181f5874808493a8cedce3e4000000000000000000000000000000000000000000000000000a1a2b37", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + } + ] + }, + { + "type": "MlDsaVerify", + "publicKey": "da2593ac1dddc220922b9b1972a2549aaca212f972786a5a5d7c2e00abc407a1f6d30d67b7429b8b3367847f56531b7ed831f833c6dd28857f83059105ea92675a29dc49895e372d8f0bd7473126976c38ea9f709cd61d5af345897c1c8cf4dc37caf62a8da84771e2a27b5eba3a726c03765d968bbee4d63bd35135ebb2e2adc00a9b4635e89681ebacd21a33bf5e06789b77e1b015805b7d975694d172006df35416812c3d4829dd1e1e11302d878e79daa70a3e1b92f4aeebea164946043a31d40700ef31b69a0bb39b22dad0b6386d650ca557849dce2d2fe6c38bc97f91ffe2732cdc7f3dbb2f43cc61b669c6da4cdf91920f864933b82bf691f15480cfa54ef4ca63c5a022d436e0daa63d3a6fb02f60908379e089d27375c2d88d62c1b4aa49f4b40b794c43ee6f8191c491b3a70efc096c7b17b2fd3665633b547d35c830475a24558c0e0d9ba789038cd7f9b5ed06d8aea8d6f8c880faaf0f6b95f1f51d2fb196645c697eef4ff4158aa90c7b65f640dd8d13c4493b4a46ba20346ebda3d7528416153ca9a454e0d024bc9347af1bd1216c061dfb4802ac65e0fad6f33c4129c590c7e253c7c0a27c34725415a48fde34cb68ec6102fa115d0d493956fd3a70ab009191744e88974fed5a6d7cf3d86f31d2b78a491ed308cbeb3f35ada5fd1f8502f457eaae7d2d1d5492c29b85eef2923383c3575b2d73949beda4ca966de94e57fa7af4a02980f6cc0ec335fae75ff56fa9b2391977da892106d87e7d4ca8e25bd09b1827d514444c4bb8923d6b663a5829694dfb505c68286abf6ce1e8cc73af0eebe641d2e76442140b28401542f4354722d56ff4c14c6df8e2fd90fad5bc84ac1298a0e5e7ccc20dd088c28ae5fc940d9506053ef6c528b7dc2fcea9d9a0ce73ad7c0fafb70678199336bcc511357368fda8a9b1eeaf29f4cedf4c5d39fb754cba51648a019e5c69995b5b71fbd456b502522a09a9a1dfc5a43ab238bd18de67bf61d1b4fde79bb5cd08184aacf7bdd60cbdf23ea6ff9cd50784ad500dd79228a22ab622847065f74f6c64e4c805877d7b6c75648f961b8a73179431c067e1935b1aa62b52f78f83a3a59da7f8a8f3b3b5a7194dbc21492b6ea600881ff481085c9a7b75a347b3a61d9b714f74ffe7de59f356289c66fd05e3cd339279e7c54f93f5c4270644a5622daeb49fb6edff0743220b5fe4ab137b491e0ad67863e1ce553c373181eb2576756686979504a121dcbadeff1abb45589e2a215ea467f8d59f30b0a5f3741a7cd16a1869c65da3859269893da28d26211c116befc589b48917f196aed1844c161847f934583a6d10ffea251f212ac0d02805064c9b818d45a89fef3634eb01f3dad99ef2482cfa6a18100eafde279ff0afe9e9e9ab15383b8e9084930ca21e29389a5b6b950222b9413afa78f5a7e314c77928fe02217adb7d0399624a8aa313edb952b16c9c6c5d1d68da8d8a0a2e8f4dacb22f4bfa9810902f21065acb8c6b7758fb056ae2c42c2f8bc1d8fca1898de75f40716ab4fe3bc7ee894adc0cdd0d8244325331ddba12cb08c84d77b6315f4d5ed20c9d88493504c16e0b55312709e7fad243641a3d173f9dfed0cf054b69440f3e20cddfc27cfd906edbc02052803c82417369a47d9debc46de0937f54505fad3ca76bc16f2bd457fec2aae71e074fa6ca2008d4291eac9ef6ac8a957d9a5aafcfbe2ee600def5d8a7fa86f7cb3462e35423ffa0fba9699d7f66faabfbf7a24f77b474a5a9a29b12cffe49b1c39d568c9373239ff13383bb20fdb2c62a64608434793da020f3ea855f3d6822be6b2cbbf9f0ffed5b4f19bf02f1cc429737da", + "tests": [ + { + "tcId": 64, + "comment": "rej_ntt_poly (sample_uniform) requires 783 SHAKE bytes", + "msg": "48656c6c6f20776f726c64", + "sig": "12505226f169b186bbf6e3152a5cfbe66bd9b7160c86dd3697dc7aaba25f55fc2e8748cc00d0a5d7b2c66101e9ab97229892d7e0858d37f2947b350d9118fe1a3fca2dd02d77f0a50d2470086fe11e0cab80cf08dbf002300fa139cb93749ee64bd44ccf7defa24ceb4aa0c9cbd15b39bb85b373f52c15f00065ac461927d0cdbd5025a40afcff3eca4724b36c7ee1291db125abf48f58b7d848176e92d9f9d7c1455a4f88c8e6605ff17acfd34b153c23d9329d960a6a57078843153abf57c1d1fcf917f98b85a9d650303d3a0a09e5a51a68da6e0fa8387d708a257f631d3bd7667ec6eb4b80040f717c07b8b004ee9a64fe9ab8afb0507683787e241cf5750015f3f6300d64a5a030d870aa5464559b13365221554e4053f35297db7dfd02b5f300c2b03739aa8e121d8580b36aecb38cb954b95f22648a53c6eef6caa2c6cd9ebf0dc6490663ee611a7d8635dcfda78a922f50ab75840ecc55e3023dc78351621eea46efe2394b6ddeaadf69b8dbbbc542909871da72501a68391a8b1f49739533214dd36e6b35c8132973977762dcda692eb1e3eb918c5108a5a8b606bf0008c7ffc07a24213105f855fc55fd99667973bdc13176233f7a5abbfb96a7739526dd44838e75902c25918c372bb4beb1ca7076f660bb4886a1a9d941e0dc3f6b3909c06f1ef8a36376fa10becd7fa4c7823cda910dba4a8fd99ec5ed0298a9dcccaccfd08a8c26723ef9f5253206328d6c6efe821f5f5fe10872c01efa2cdea7e123d136c2aa82ee64262dbaeb8c637aefab6d28c54b091ab6eb94d07995326ad0aef944e0c8b3a8c652c61ee0da94e215e6379b7bd8306ebe7288e927a84c8a60ffca3abe0d903de584ae4cceb6e285f89ed315bb14e1cf8d6a30fd18acfce6f6c77ee8645ba08dbd8f248dc274f3ec3d8f780ed8567866625dda06c3a6eacb39258c14018572fcddeab7f3ceb6a3fe93caf9c73b96b1983c7de93c8cd77b55ad6f2a5e3a03e4d86ec13d41c2611e98213d1a0d78261e13a4bc868eccbb5b1db9741aed692d1065ceb3f39d7e7d018c7c63cc0667d8119c2d65d1dc674ff3f8caf3ddd939e3fe2354c11af24ee1039e595c907a6a7397b278f295acf9046469e8a0ea0bd77836a7a2c0db9bb502b502ca29330bd8114060f48168ff42d4d2a0f96b25ee01ca2d320dbd850a2c951224d04cf94d2ea970096248859ee473df0335ba375624e701fe8398ba0ae67b6e6fdfdca2fd6eaa4f1ecd312e2b3e6338dabbccf7b8b05eb70a6ec464ae4093c4d9d080bd0417a45e9626a9f743741816e2b9bfdfa3880ef6fa7c605134a085dbe46fe307d414bb5717891347e1a0a8217fb57b9aa1396ecda9367c348398d651d3137f440a99768df7f71f0a9af351fe85fe04a0c68a69289263cb86d406437620c22db88ad0d5f961383cfc0dca53ea56babf366bf965451e6d1e47309752e13b06ed23c6cca319738354d651df30000ba163d45c3ceb47d057f7968d6441d70aa7983b399ddd6ae410434b59c59380ab8b6bd0c3ba5a5847166572eb18a5ff135cf8406139d2d8e6028a20ae3f90c6a125149fd5de051162b3a7b2869828fc0b0330341912df2eebcc7126fde5b74b551d6fd37cffb7970fec119a23dba5dfe6729d23e18e161528af988f2d41d23d6787f03b6eef3dde29d0791e3995472be0fd13c7c37b55243fb6f2845143d43364d33e051f69b2b620af43897fe924e67098bd87d1d972a71eb8e87c86853ab3e39ab5a2567988170fcebd94559502db38f615fd1585468bbdfd3017d1be84eb35427c3ebd9c1bd161f62c977b66a33e87e6caa57e5b8c8c960f78b69283dbcff87fdd0af9824b06703dacaf4baf00f48f1292730b8a97a0b994c48f39ce9daedf9bce706c88e38a46ed6fba789571870220d5b574c9123861ed523d7c3e7b73f788515d9f10a93b8e55047230b08f3b1291a61b98b3dbffc7c220c1e1e3f4853962690e47927f59a4d0dea14a29baec382c5b566b2b2919cb281b8acbf991541675a713949ad7678a3ee494a5149699befad9c1a734e4b51e3ea1285a50bc66cb1d3de50c1267bf0e100b619cd3a3a3d7afca8586dacb7cf8dd47824d4f92c6ca28cedb340bc7d13ea548128148932938e89880990a706ba72c563bf99e9de8d2bd2f52ac0e71093c04d3bb4e56e781dc8f9ef625dbf921090d38dc12d9ff2ae34f4bd9d0f390785a6bc6d491feee88f26ec4264098230a3c7ab84c7ac76810b29f5fd8d6d4072bbb01b2af670e461e95e9d7fa60b636603ca6133b32b0d7d16093fac7edca4b3c4f00559e094fd772bedaffb5a7ee59b3ba4b2a73794de3becb2407fde7eac54c301a994395d94b715803fb1e2f6511960252a1e336245f5e16106998bce1cd39320f4178d551202c9ca4758672169c476f0f7f95586b005ca7eda4d370fb90dbe51f8590a11abb2b6fd33223dd52b14a00819259d3580b793103c7b52f535d2b64002651f214d38c88fa7a4cbc5172de04bed8fdc468908ce93e5fdc4f843adca33ba7c8782679019ab348a39531db0b19cf1710713c673157467babbcae98418a43f7ef63e0e22a95d4bf83a45c6d21f0aa1818580cbb20846e05a449bafe19bd23186068b9dc65e295130e35e067fc1ba4d58c85d5433de3252b335d6dfe88a0268d562251456cc02d6ca16369664ede1bae50f281aa1d91d371f1b735978a1eb63c207a21bff1049a91c8361fa809666380d00a2e717e1fe7474c59dcfcf716c6031b324d49f94418d6060a745d2b406978a8a86c986a7c29dd5f509f34149a4eb9ea66e5b8835e0f30d5704d896497d019a5a22848b4124b413360617db312b972cd77dc46fb9cc4c01f6cfa190133aac6ac41505f466ad8376997c61937dcce28e3ed8d2ed9e2626d4bef9b063e5e07b72af34995675c70e9f5de2896686a598ed13b0d9742957ed3919330eec6d5f9c65d63825cb50a44eee186c52a15c91e99f3d48f8ebb6e5cb715dc4d422073bff5e3aa433438107c851184a286f4cd18074b3a7a9407dd47119ce32a229de6d95938e51efe0427f043aaeed27c041e07ceac633f65578593c31d0a8977ac87895ae5c7b79581e3216e52e362b7b4579a5732d9236879892af922a8cc61627214366830bc22c9f635b79ef2f0272fd4fdc319bf45f361d5ac20757fc3ec69591dce80d28626e18cf03660cd582be3ad23397f2b37b283b139c9c37374a97391855e9e821a1c71f632edc23e6a47b0ff86e94305e8044eb668e988c04bc5048b0d559937a10054051c1d29314e555b686f7b9597bdd8dae3fafd1718242c3b40466f76777a7c869394a3c5c8d2dfebf10b0f1b4371747684a6a7b3b6c8d3d6e0ff0b242b3d4d5c717e888c8d9c9db2b6bfcde4e9ecf40013293a4f", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + } + ] + }, + { + "type": "MlDsaVerify", + "publicKey": "55b80997122ac35f065ecc7ccb548b0ce5ba9e74f257c0463e791b49fb76a66b2c05f42644a704c87bee3fc6b3a4c95b230ed74bd1d0fe9bced97eb6738d43b9c6054631f19d16593cc6b99bf79767fc98c3b14ee9f76e981f28e7bc921fdcc00ba8399c0594a8d79cd940bf5f3d0e094a94894936ce172d5135211cf79a918cdf4499f31b9ee2d8958b64d4f38e399132aa57df5bd3b93d94939d7250217933d79415c051445ea262f2b977db8698bf297cd0571de4f00044f5be9f9a2cda2620273056a2258eb263d951cbcd47afac0fb28cb58996166b1a5af8cf84611f43c929fce820f6ed76a08698469d993c625d76bb8e1f68ad9cdd316d1b019715721d0b31b9033acc088bcf3da234c35d20c15185a6a74b8328e3da295e5c0b67f0e740f443dac4dd0068afa4229819b7e8d05913f5dd17f7e8575447dee532ff6cbdfbdf39f0a865c8e0997a40e5887718d3accdffb3cad91c041b9aba164781892f696e6980a072f495d35c3ac0b4410e496abcff105ac5905d41a00af532371287532207377ab79cd1935dd46aa7cd17702f6c1b81b6d1e6372b7904c440408eccde88d8d7eabd7371edd27a59985da8dc9ed48b503beab1b6e723c4f1dd6303e5c4a3e20cf321b910b794afb820e916444ac7e7dc63868c18aa5dbfe9617246d18a4d47bb4f808ffb055be7b295eca54ba8cda8d2bb375742a6ed203c282f8dc957739f319484f39921bd658010094cb1a6e3621665efeee8820e49fcb890246449fa85fe33000f248bb7a8043d49648058150630f7c15d31ef05824a901204e534d17ba3c6f5a4590c55c600dc3716cd4d318769c5aa09d2b9240e5ae410bccedf2dcb66858cb48d43a7f9eea89d078891c53cdcbaeefe393dd6b8c6c95d1ac0d8f32ce78be81da948707e62a53335e33bea0f6388cf4e7f6b0720d902f1d6e177a509ff01da1194a0e7057db612940d70d48689fede75b50260c2157c821e5902dc0f3500b81ea2b8d3e67358b20072fab27a0aa32bbf7d4b97b695af45949af99125b40b7fc3fc9daf0d8987047fd04b60e898003d937e07fe8a40bcaef8db96992d11fb8573145d7a35e808cdf8fb5a4d7f473cd25023e7135cb99e06c9f32780bc954fead3db125f30f5f2980928de4925ebfd75877b5f1b01e2dac2ad21fccf316255225e2044d88b9c39c20be2aae74cd6915b3ba7491e9b41ce5341a47328f8e0422fb2ff9908b52373008f85f592366593efc4963f70fc11112454c1ef75e497eb7a460efc7e7eadbe49bbcf9c38b9cfefd1e0f3c382aa2a37ddc8524ed03673f330958b2a39d719e375fb93f200f6c009ad0db3dbcff4ebf7fc088a3cdc99fedf36489aeaf28db58486b6ff99bc2075f001533be551be126f2a7b2e504f9cbbc7c2615a1821b33fde875791855a3ffd35a926299760604a59c07aa7424cdf1059e3ee2e3b57e61b91491a2d044d656180dd838ad1b087e84dd6b4b61d92a8b3d2b7ee02176ec3f2fe824d6e2514a15bc940d25684d2069061b64d8a0a6cc5932df92d900bb016d0da6c8b475e6f46feb607be24caa2379e5ce9a89daaa010d384f20d1f32ecd71bd383d288c160b63d184dd4207d620b646b35bf7f8391e91ed65dc45949cf7a593680569504b9aa76b3f5baf10e7942829463f1d223413d4ec783445b35fc49be4da087b96ced55816ceb45de2defe94f4d8be0ee4333f2be982b2a0d49909fe14f88c754ab6ab790ed6cd4a2bacc54560f2973788918642c71fdbb8b1075100ddbcb86177dc1606ff9effff35471b4dc8442c71797628c1ea51d14fa3964ed0945e9f900eee0cd48103e54c5ca27e9e0f9a0cd", + "tests": [ + { + "tcId": 65, + "comment": "expand_a requires 12330 SHAKE bytes", + "msg": "48656c6c6f20776f726c64", + "sig": "0a109c7369419501013a418fd6ab3db57a5c99aedeff9bd1951752528b24ab9002398ee6ab18dfa2018932653ee718c3809e0007146e597f96f24d76fca257fce571edc6828eea3834bc800513d9ee4935805cbad49f70fb6ffa3556a0da0bc7a95547b930be53d384ac08fb12426f3f3a9ad89379dbdeeb31c7b11df69b455523eafdd8ffd049efadc1ee6e9236ecccf6fca15ab4db3ce4395a418129d10b527212dc9cf86a566408e558cc4c70d491fa3389b5b987bd502cfa4bfeb75d2fa84e17dd18c88a5bcd3c9860b80741906835209c79c74f3a921e91d2711bf431e9b33fd2278dc7603f693917eddee98ddc2483de0cfbc7453c5c916df69e48eced9156019e773455f17a298a23609c09e8fb3a615283a8f8765e76c115960cadd7702b4527bcfa0a556fa0f4d096d835f3461a336f00cd8b7decc605acf6f3e2d5b2bce22149f163a704b2317eb59fe2a9441fa33a2b80d8c542d712d92ebba654cfd0626c170a5e55635987c41cb66189e13551a77482cf59ea6093eb4814a60714fd8fe1a226488418eaf1a8c98fc9ed7d453306cf9201cdfea3b263eef1314346b633510954658c097349cb7ed940de06587883930afd168761574d8c18b6a76fac238a54454ede147513080e44d1941f0bf11133cb9cc32ff31805dd311e171c6c60d679fad31a027589b31e78a37dc66f3963e8f9f31951868bd12b4c71c05c0534084a52774a377f29c6d45b889cfa03a1a7e13aa9d255e4ba038b343be39fce0d1c0ad5e68a409ad6ad511ce4d507fe43a27ad4c7927043cc0822337dc7be3bb882e4e3b6a4e598770ba415b8e1d0f2534fadb390ba949b1934f61528ab4baf18f4c9e68bbe774c703f2affbbdb422266c34ab0e7ce3fc971902920388b80fb9226d18cf149f4b48c5c4b49c24047a38a3d6b75a05282ca1b177cdadee61c4e3345e384b093796e9fddf1b37a3812a505bda5868f9971df30ca91fc88d85d8ac65937d4134b427dfd46731d7cf7e175c1e971b2c76ef772377c4c241befe2d3abbb9658b085a4f73a5b802e41f824aeca4b3290c6bb11269c8542e302d55920b5a108c59f22c1a365d8855c82b9a057efc4499b07d3564a152f22a8b1a6e804c0f70bc3c82c5979767103e09436f6a45fcffdc4e222c3e9d4065422c088745af69305d6f72ab767d9b3c8f06db08fa07253096592f3a1197bf402825a3713113d6efe02876b43935f2915700ac09fa922d93cadbffe075034109d6948b7f84305afcec39ff844699d61b09fcd6a47a68687e055678b66e286a5fc7df5a24e854821f0053bb3373909543ae0e24dd7af8e31d451df53f8d97d373aafd9d5806e13d8a35f9ca3ac1c57a5e0cb4df7e35947550bc92805d163acb603b9a51c94dedd9f8cdfcff0f88ab8bd6fffd49ec52e0ee65be4b421bfd3991701b6c42377d278fe2c169cd2c8e89bf68a14fee6b7435ec40c384f604a4ebef83f49afda9cb3dd7d3a491c22eb4533a0f7ea4d080eebc81ef46187952aafe61971ec7b1c5ada86ce73e6ba02d8794986d28c39a084fa0b3f2ca03ebf45d82f105d7f3d43bf12684139284d838c7ce8f1071f489144eb0636ef554ed2975866a5f1d1f1dab34b990effb1ca19873d8df71c75ccdd0a4f88febca9d683bd34e4d9f2c898efd26a0c1b8d91ce7a95fea308e4db81a65754c82154cd7a8a6ebe28770e41509b0beafafe213fe191e8a1797397ac0edfcc8e73e8a61d02498d744d5536a3307efdfc14eb846a1984bbe326b7edd1193a38a30533f25922a9a12202719c8da2fc4d15071627440bfc5ae554122bde436adbb310438afeaace29df4aced715dfd704c74118eac0420633e4bf80f210b932eeb0ff0052084b1e5949cbf171e163ecd340b28759dedc6bb58ff5ea42c03485182d2f97259642b494e383f42c0dd70eea565bd80db5586ff4f8bafe4b343d9fd4fb1529fb77cefeb74636716df296c71ba8f01d740b805564c9b1a0c0f2f47a3c066eb350586740d2ca734b35d82e34450b97ac7437fc0447fbe2a020ba0651eb1b8b21edd4b4aa5165da78255bc58340c55ed135c7444842b7d90bd5709d80583760ef80a744d179eea52b7cb13489e864ade86ccc8c30824dc5640302b365dad2b3dc63143a7729f74e0b4ff6841975162ab8286fefb69d238067e586ec109548ae2874e9d5d80b6c52cbcdfc5003950c11b51d2854997fbc1c069dee5bda3ba9aeb936515f1a9a5cfa6fdf51ce611d1fe3fcd07a2e962b13547bea12b5cdef363e2d55b48379aab53b33e554ce58ce5a5c5e9a57c1defb351408391d0489d3ef458a6364982c5d91ae9fc5619219fac6d0c7286d69deb9e86f8611c28fc35e92dc3ba64a0498d7c3f9deeca2a06810defe42f1cd0b7848cacbc019c91c1715faec78f4bb939b0f76aa8b7e1b1e7d13d282c6852afc3cf950562030ca3d8ddf7d52354eee122eaf7de057deddd254e2513571f73c83f5f54599ad79d89dd5a5318b30e5025b68df399c7f7b85e89146f3df90b0f9c54cf92fc66f9c34dffbb7d1edffce4a1e76772ce41abe0b6c40648964c471bf2f102c6e9055107bc1a25ca6e48d3734bae9e8001faafb3a4773a19cb8eca4fcd7e1ca6e09ef0e3cb48636bb0506e1d568bdc1ab677eafbf120961bbc36b1aafa40fc264a18e6f237b42a9ac4452bdb9060d15a475a2c925cbcdb07193a6338d477bf36c46f2dffcddd622a9057d086cd75409d860a5c3facc7140c06eaa0f535746afbb0ad1b8e2ab9994206f31f2da491a830d12992d7c0d60c19391f3118a509a1b19cdc350fac958ace5351f067299ac0a113209b1583d7d753b9c2244a13491812928632df3e5a10fe340840ce4884c852ef54ff29850ec2104b083065db9e9e94e02dba83ecbf0fc3102468bda4499298a49c11e14930353b9cdaee870f1d6c48d9a3af85252cc1afef028e0a2f2a68c7036e7ba5da2bcd29be1b56679c1003f4afd3d8649193fd045fbf904399804d0bbd7e2cf7fba3f7c8cfc0feef73ad8fd1712dcb863126df8a62bd7dedb96db52c024be2b0c17a335660d25b5d55df31942963578340696c2a64fade207a095d26179d934b254bc6952ca6f32f89363395c7ba40339321e31057709e201f978dbb0a9119854ecdc037410cd2b48ad76624a1a1546e73d9ada0cfdc950b046e6f20b6190da0a15140b1356102b6c34ea4a3f1b557bf65e56e9f02ce735b981867e3bbf2db33b1f4c5e557172d27aca12cdcebd2a744203cdeb0a5ab561e8194ae427ddaa9674be3e1f6f73767c859299a9b7bdcafe21383a808e9eabb4c2c9d1dae3f71b2e32353e535a90999c9d0407080d161f234c5c5f787c81a2b2b3eb000000000000000000000000000000000000000000000000000d1b2637", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + } + ] + }, + { + "type": "MlDsaVerify", + "publicKey": "006cfbd767cfad9730dba52e99f7af72a6b931ddad37ef42bde33c503c1e993eb2dfebf80355f0dc8636df11b80636ea32293e84f0c8f5ecb776c56504ad12afb625447fc82413a3cc0577742eb49ca8b3ba43999344e97a54446de91a72681bad965ef7098b43b9423c4554ab4895f2037c5ffed97e726f8f8f0945afc564533f269f359af72079f9f9e29cb119c3bc4e729073b0a77bdec22a3e225d113238665989716470d4d9ff7be17f947003662669d729c862749b92f14b78ab0d1542a094b4658efc2492cf3edee0c47912bb3908e8a087ebe71d4ba19ea59e63c922663b0843ea7855646a2f205280c9dec15f83f1526c64032ff1e083f9205f96703744c413b84af1239b009094a780eb79035f7d71b2b6671246ad7a39dbcfb9bcd737016539cd7022f4aecb612a4ad61df369066ec9031bbff3ff52d15ae17b7dc3d2182dbe2bcd04493471588d75c0476b82e2948634f3757fbffa66950204ea542644ac563ad086a0538384d435ba48346a9a6b7451692ebcc13ec0baaf3a13e6ba9ff6b961e99a301764cbe731a989674a8d75c96551da7eb86104c31bfec9b8a1ffedd455a2873629a1849c8dc84a3aa2a2f88d4bd7d26508aa60068b37db1e4841f4553651258a9eac6aba137d7ab55d9b86132da0b663afd4b16cb6edde2d0d750a905b0970c6f82a85ae353710ecd13023a57bddd48fdddd45cdf9eb2a08fbb70d74b3c8709d74b4f40c273aa45f7ee7b59d49f4d78104c4b3a973e84f48ef99d50744d140679bb8f18b4634f74e49793907cf027cbe8a9ab2bfcf61b6490e01a2d124549b11d5654aa1ea2123c4b927171f7cdada3b51e96fea01c7a12fca78c37d8a27d6c8e3eb9b23770e676f1b527a37fbe15260d95d2833da51aaecd0b45a292b05d2799774cd7c4a82e24fe43d8f869d7ce7e35839d6de3043f31488d243dc80f8de7778a52d37d0cc1a923b755b1304adc2da2988d26a6f516fd2e65a45d60cc9fe0dcd8836f2381aef9ce8fc1eec56255146674311478d95ef5d0a6557c8fe1c181166bcbcdc93117434df5a50f5032c332a41c3350e85244a7d3ed1384890c4a5ca419330db8d890a3d112153295708f0f0c9b5e634ddbc4d03ecf3fee46f58eec20f2d7a3bfa139be90804c9985de67323ba4b4c862edffeb4c2e25b52beec04c69e4c09875494411a9bd27800c1c65b95cd10e0ed31967d1c3cd6deb612d335ae205fb318649558434059e95c784f21c1d3ffd04f59077d9bdef1a4616f340e6d966322df53009924e7a1ce73506a5b6c5e9a067dec8680dffdd26d352ed3c86ef57744e90fd111548984aa03694ca6241705ee988bc1dc2311c7a577dfa009db7e1417901b951d6348fcfde69339a4251352f9379e65e488b29d07c91d63d4fbd208e368a02d2f33c72bc7c478291b7fc27adbd074c55f2424883e46e75dfd017d23ef3c7342d6464d3903ef24998a3ad3aa0623f070993373ea18b36293aae1942509744d8cf715e450adcd7156ec673d3d1e4596fbbfedc8b7253309331be4604926803ce4d93795653254afe37b22eceb0d7ed7297875ea3d5db162d5735577ba7ff3f81a6135507f3e9571de0a31f9f4fc1b00d275a89c1a3bf5977c7f9cb9ae328c86a00f105c59de0ac0ec9594a0fda1d5997486185c3f894cd962b059250cf42ece2453129a811cecae66c95777fc5b33b7a5b0fdf602a54e4fcef727ce9a954a239dde02ec1439c878dd46a143cdb2129bca996ecfbb8dab8bc60750db399ca6618d39534d96a46fceb8682c6814cc73888e15d22d13e3c7c1d1db576b7d089a001357047da87f5452c66a4b154e882e1ca280", + "tests": [ + { + "tcId": 66, + "comment": "expand_s requires 16 SHAKE blocks", + "msg": "48656c6c6f20776f726c64", + "sig": "042f6aaf7e69b8f66359c9cb08d6d11093a8d983381daee20d11b95ca728b1d1396a86e0be56467de6ea2876a178bd09f059468ba7f30d5b52ecb261e87f9800475eba300f4f4780630635c6e8d6ef43abfb9bb1d0ec716254d3e74b18c6c4cd977213501134a3f183ec2c65a9546357aaa0abab7b777c89f31e37a26544a4d7f548129037539636a33eaf26d4d311931236c0eae022ea06c7bae495c338d5d142e4798e141ce2ff8e935bd9f5658b34faf58109ecee296c6831d9fd0253a8488892ebedd0efdddc13a804d4b7540cde03b8bcc9dc69da4f72bcf8061a530317b44d1cfe3edb4e3e8ca24c2ff624cae4f915142b8326daa24f8823dc16b1910da55d72286aef516e78ddc7860c9b6b7dc5ef69d0af6369676c5649a447501e0661aae29e0014164e4271ba6ed565957c8e9272be347e29851c59e87d60ce61de5f4e6ebd4d1de56b27397112b78356bc75556e2a2bf6f677ea2aa7f219ded04040a055a87da3ca254149b2bc65437c2506d380bd2784886b71e916b936c71c944f52b397c7541df4d5d287d33779a39e2062401d6916e4cad280b1b12c17d04307a7f8f3979de81bdf56e80967a73517ced7988139603da06aff651ea3f455235a46acb89648f0eb80b7f96fac140170205a0cad6ebd61765d2bc9dd6c8211f9909de768394a8b4349017b7652a72a6ab0ab829eb73475361cb9cff0ad93289c4914a236d994df4c4bc7c01fe1a1fb26e8c7a28ce013fe43271b8d8ebdf6ef5f4a3fecfc6bb21837cd2b1257d4a404cc3849b473a90629cbcce9f67ac2da6115662744c42bf985d3ec8cf0f06ca7e3d4690dcd942fd28be81371f7978ca5a3f7221cbff7b785d7d3661fbcbf01494a4533af716b65be2c73fb84fbb9bd49aaaf1c446d5b9f8ac74eca03b3a8e660860f62675fa96e90a11fe9a52b6f5d322d428e441310ba99bceffcb967df4cfe9a7daf16f314f4c0a57d25d1f20142686eebd4b29eaed9ad466002caa4df044615c2012f2372b97374cc6b99e276949d734d7e525a8d593ac214aecb78e48ffd44e83fa5d4ee089f85f4151b078ab773dcdc9e88f0df7263ca7d7fbc0f7000004f701e6ab62b7cbf053d6b2d1ce878d402beb51bbacdc192b31f6cb8f2964c2425a0881cd1df2a5936127b61a966ff861caac0e60d6da3fd97c1e75d61f205594905e7b68ebd58de6fba6b8eb2e799f116776c9488b49832e532e8ee9a214a3f80bd7df6abbe89fdb5b3c9a9ce79366730fbfd4e9ea204b8f5818986d4546fd0c82f3831f21f85cdf15b86c5de4c229cf3aea7ac3c7fe15069fa4432564a5d719ba3621b969eae3485df0ccb03c10f9a4d20a94de99dbaa12429940c813b294ba66d36440b2958434a6a661bea72bfb3341e39d3b6e28744ae6cbbd5bd1a8caa989b09139840ee0baf84e254b9e3be200c1e1622c68ebb34f26b9d3bc0f3d3a388a592712667ed4f15c9cb4afceb6ca4e4dbf31f0c8b52f4fcbc77d2679b81ed4092644844dea858295fca6811a8e163905ddd8b1e92aac8d5247fa78230c8332c2160e5d0b360839e022ee4569d908ae2cc6b67467623b9923bd6bb9811dc41adfa805e54f18af8936a5146aa2d7b4f173a55b15481572601fea5df1d410632e175b1d269657196142e83c31c8a7582fba32785a408713d38d66b2cb31f0c51daccda7d019ef3aad5958db5a44b91355eb0e04fe8571b61154a6691f341a7416da5205e68782b64175aec4dd685204132e23a80357602c7cac457cc4daac486f5fc6338032f21aa83fbf1a0690cd4e7a23527b3a0ceba33822b31ca33834416b1a998c25cd8a9dcd4a7fb0e0003b11610b223eefdbf1d1f2199e7a9f02a27d8087486e4e906d45f541afa1703deb56da09f5ae26d2b149422ccd212b4c527468ba13ea930ac7b3aaad287fb2809c61deb7c9059d173a3ea803fcb35cff3a410b1660fd9a58fd31fcc9c5cc4ec7ce109400624d1dab940799aae3c39dc7a85a15302bb6f0ae4b7d2a1aa7430dca18f93577e4655278c23013ae2082955a31361f87bc73dc8b7e95447adaf67f171dc7d4c042593c6ed66b585502892b7787f36e291286a10088cd3fc0e02f5f20703c6e930de00fda8d584f081dcff258f02d6b16afabaeec733f90a4497c22972b57164a11c9c268c7fb9c4fec3b9f3e9e231c7a531df0d6b431e9cd84c27be7c154a4cebf1d16ac1cd85c12036d38ad1662d9d3851d5aa279ae173522bfb176ea6b7398aea27fb0d6a9a20772c13cdc59edfe65c1b1d99aeb9b335fbaff2870c21426126cf0b84520b10b4ea183fcabf5ba6eafa5a39b17424efd4660f882c869463ab7a7f8437ec8fac3d89ec07cde599ebcda9158c9fdae9ca9651554474e9c1945e1824d0f5397c87edccbb3941a2073abff5d2a312bf32992ba01f79eda905904e42bcfe2f7bea50a53a5b32fecfc2fd03a802f553db5a72ab27d7fc9980128e91c99503fb55a7bd49c83073ef3b13da09142ef50a9820c47c6c6d42d5e9968df02bc5a39251e0ea3593f7eaf2680324b590a2b4ee31527faf0cb684f4b09bbe57fb9dfe1ac0e720841f627d6e78c5115ceafc54ed73433c8727ea9877946f032c73e455f3ad7e866b933823ea97bf738d2f840e4843bf53ad34eebe94a0b84c2f44e4c766906f9db0317d8addfa1880dc2a0a7d2f4b88f54d6baa89e5c48abec0dc4f3b983be198bc8f76a7e50f22afe3fbff2a05944d397b1c7f87edf9a85000ae2a3fae3870b9ddd954b28c8dfe749ba40ef63d92e0b8e162a62877d188686ef23a0d91bf760010d6fc25bcddc08f30883f9976ac436a349244308a768dd2376f372db3bedb7c932681bc72627c4ec55196f6b676d84e205efcb62a57d6fd33f0e504d0d2abb3ff509dde177a115671010e63392d043638c8c385a3d70e494f0bf7f6a9f00434459d4c6277b5206f9c9e7f160bc0c6996994da4645f9553b576e1cb8b62704d3aff63bf8ae1d14ae0fa1a5f51a14d95f33764d8fb6b6f8e731225718fc1b2c6bf1c3abebb1b38c99b2ca4bbb95590451d748cc4225f5b0d9ae94aa4976ce52fcf4e76fe1cd84306dc90ef2ec1d9696c61250359428e65231de9f0935ffc2257f0fb2badad5e9de5bf4cfec004179c35e1f20ccbca5a4c3b138654d63f166a36e1342b4e5391132b5dde484dd7e0accfcd53edc8075fc0730ffb4994b15880aa8fca45e717a73d63d8346e136ae4908ce3619695a6559adf9968f49e972113905eb2efdb08bd102841cfb366be29417f411c184a60c4e9f0722ec1c1d2326464f598184858b9aa1a2a3cad1d3e40f1a263f474f6b788696a1c6d8f10a0b18235c666c6d72767e9099c5d9f2060d0f223b47495687adaeb4b9bcbfcff0f10000000000000000000000000013213143", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + } + ] + }, + { + "type": "MlDsaVerify", + "publicKey": "d5bc7d3c2fcbb66365428b385a2a2c83a8402084179f41c4baaa9c74137dd62f861bf71f7f30f5390e8806406203c57c1220e9f469fd14fc9a58a26cc11d9dc9a3c5561a613bae228dfe0df8d0b3e5e478ea8eb634d7493c0b565c160fe9a7e4555deaf7da9512e9affe14c95e524ca2bd0678e6f678e0bde4c6a6cf49906566155dbb0e9ccdf8404d6db3b034777d01f4e3ff54d75a21f26e892442595084ac65c58c311192fb72e80dabc541e685a99c33a03f2e74fd1a3d0c611eaf114f57effed4edb80e4b8095906976c816f8bdab5c682e744800893618135f5dc79170949523ccbf0a9e00a179bbb006bc1d286f6071bde446cdc88f5cd8468ff71c37f8c0f9eef4694f815faa9e1ed5585dd35ff86e8e6eb3e96b7ee93af02dec051b628f715cfd688d6e02ecec5281a4ed8176988bf97048921e2f93d799419b1b2308a2fa0d891f86091726fe25fbe339509b1e0e09a11fea6a31b22120267ae33f3f5ce43a87ce113f1368eeacb896fedeca91e2bd552b5a9dd4120b04f10c7e09c4a107600b6f8ba122595ba2b20a41d81eacb6d4a7d4206047a021c01c351c1e9512bbcb02d6d5a96e3dd285619bf4c72e2f9911487854a71c45b1618d3218da6ba3b193200973eddd834630833867cc5ba877fb3a90c9dc62f9e8318f759513d800d3489fa399547f4ca9c8f143add048c3b10426d6154a0b0122d91b37256efc5fd82c3abdb03e23a49f1786c10757cd547799d9504ed74ebd1c5ef6b9de166355be3902a4dab56c6f44c7557fec230935456e9b94b20c56a593253c33beec1f2a057d0cde90a4e2613c9e94ac9c00d06c7638d77695f25091f08aae6768d37a47cfadc83df6cd3a71aaca60c6c230a033aec324d3c69f216b2bc9518d7be7fec8a9b3dc3ac6dedc1eed4592422d88be45e335508ef1249a399ff8d4e180e30fc48e1697e8a8e2661dfc9d623d32eb76ea5373dbe51504fc07306eefe230b58970cab931e35f8484d20dcdbf9954da4c4f9f5ea52ec01c45dfde1732a787667f7d7c8ab2fa6acf261c04c6681403345da48b170d25d1d9c6a61fdc61631da5e16910b2234d5ef2987009bb4c49dada51b1f4e3de5521c8292aec97437dd5c35c1e44e3dc76ca6217a34aa0bcca30f651d4d6552aea7289cb9ef9fed7336524c9f1d2f398f6461e83378601e22e5c1048dd76c71c8da3a4458484ffaf341f36f82007f74669927343cc5d00d4c4e60d938406c20e5d6b253d1b0787acf5c8ebd9b015ffae6f89385368498fc99c1ec29c3720c10922244b7efa22f3940e10c116e3654a0051b181f8731eb983ba082b0e1ba0f1642dd3409185da54f62473d760323842ac68397037160dd5e7a51a938409657fbfcf825b425fc7199cae19353c601f4704c7e2b5d3fd43682c71b3d579f905a8be6a01d14280f5968930881caa75deb578dfa5eb350e49bd52998e2cb2561e2cef0b12893dd0ab7b8429c93bbacb07abfadcce6b2fa27a2aa410b5dff321cd846da9b32591fe300283ecd03e1c30ae5409dee2b4aef2c6abe34bbf6ef47ebd762d81f4f3bffabf9ea506725692f92da3d7b3ff6ad4abccf0c57953c2be133248ba7fb7630dc78cb62fb541c33631575d7e9634f36ea66fe27a5512804bffd192a4df811c653adbdce93fc4707cebc530ae25ffe921c74dedb311c40cc0df196933be0d4ea6fb2ac2eaace1ef5912b8678232fdb739ee82b1c433f715883aab72696f5ec3ca6498c93dc2b474e82107882bcea3397a802a57d0f93180d0c51ec73e7bae62eec8a2517cd8889497bc9ef78e31728e63644c229d9ad2cb632cd33fd4299e83133e5dc1c62cfb12", + "tests": [ + { + "tcId": 67, + "comment": "rej_bounded_poly (sample_uniform_eta) requires 149 SHAKE bytes", + "msg": "48656c6c6f20776f726c64", + "sig": "1228a63b81ca13c8d83de6f294526495a7a801e3ececee85801521bcc8c2e5cb894ef2b58c34da45a32a755abb00658915ce58ac29f904e30cb28242a95205b172a345181495e08b5af9251223256c6b488b711b426498a1693e53d0dec72bbbd18225a0f728c640db373d2f068f9906bbac661c510e3a5d9d76cf1760e20c7113fce936521632988047208684fca72ba8839d2e0d009c4011ce906388adad0705f8b72ee24a03fdac1d614c513502787005f05b8a626b1dfa1a3cdaaa138874b7bb33194a0255c4c89fe9f7687b6352be6c19f05c9383cc316d207c10a5e06f58f166f563c96ba75830885103d8b3f26b5665c9622d46c8c182fbde9890b8de4d4d8b8c369b2e1a299c00702b587828065f5fe4e90c97c2672d03161315291eb60dc813c9dced5b7101176a08ce15424e5d1382a10455247e0d274e633597db249f354196f3fdce2947589644a7000d2e34971aa17d710b3038081de13e82d996d392e35008efe1ac934f0471465cf7da72412a4d9b882d4f4ce1e87d4b7020562c6d3794d69705dbc697468719f77e67808e8b09c1b1f82ea1bddbffe901f177ba227cc727ec3e090ad501f282453be1a9916cbbd033c25eafecff22cf8ea46257c7ba377d40fed4a40732db15397c05b240e2f7a12260b6fd8c1ceb457526e40fad42865adb69b87ac9d68710fe31077e0ac75f52e3494d1ae3520bdb31951f3d57a6a64dfe2c870d6172c094e6fce76ce5917a8b1f590b2ad3a71bf580da54751a53509e33e459d65c5c3165211308462601a8c27690f5b91b520cb3fe246f666c30eea39180dc9d04ef673ea107fffac99a5d5a67ae390d95d9b7af3fe9c5c71160d03332f3412e21370ea0a876a1f243c2bdfada9e475084296a1634421cb6c1171e1154dad75091f0ad02b2a96996e5c07575c3a512f30c30802736001a96997cd96f76e872e1d53bef59ca4433194f1cf012bb141350df18752b4e1bd611b3f47d9d962d6e7d674b2e80e56e28dee4c6a982179c833270eea60180237de04ee524bae75e72eaac1f4e5cd43e49052aba7a1bcaa76d580a1fcd804dd08de8d7e3f0e1d1f2517a889de26d56f9ff68d3e6c3198ee8c8ec6f0e0b0fb57469d8c20f057fe2ce67f6d9db919abea9f1d27023616314b4c27b072dba4fd82efb1a57061c859818619c3f3ccac00832f1131721d308181f28025e9f6ebee9a3d40d2593c40eb433b125fad725a13347ff2c4bdb85f208a1ffe22dbb2925f9cbf4f9ca66ae2a2d59a99cd628a85fe341ff803dca1f13622086c25de488ad8914119d4e0fe54769a052c263210fb05c0a123ac39f08e6b7f55bd48ba846fb3cd5e56c4e51638613eadeee2edd9bceb4251d2c5488793b445a5f8cbbc1b7d31b9f51ec06c80c96207301595c6aab52aa9272153190868855190937d22e1792a2edfe3639fa80f47aa74a19afc21c0ecdd228616a576f6574cb102de3b0e223eccbbaaef873bece8be0ad5b43d380fee7a9f76f3e676ad7aca4aef6adae49e75efd9901ff560c081327e78e1f5194590087d98a4dfaf0979e7311861f15090b4b0e12d41d1126dbac040c7f7c5007b7eab33d2bd24a1c0e491fab80d9e6f5b84044c8164b7dd0cfa1ab1864c3e0dd255051ddc8a08d8e20293edb78eb38ffb6b7b70b97d0e6ffe2537c7904f0b7380e76253fe88cf2081b31ca32e846473cb33902eca0ac5bb3d3b7cce24acd89bd9f5f6e8f9059fa5350d8b75f7f52d661fa8a45c2f84c0d75ce1a36c4579b8184d3fe4b0756519d1015005d8f4836dd6d55a3412f7234d1176f617ec7b87abc4717efa083ba57d14b73c971f7bc171223cf85918514138c724474e8c0618e31b830757c86992961d55b2bb826043e6c5566b1f41bf6424c6ac4cc73be312ed4a4393e7916676c4c3551cd7343fe0af5a382c098f1cc00061738054879c751941673694127433aef66e6a955a00a92f18d8437c459ed095fa92a6b03499c045cfe2141b30e80dcf34f36ea91136c5e203e7f834f64259ea7647a7b83d78e77658844896265a2e392c6a90b2fcbb350a610020538fa82e3c33d513c6863a0afd657e66b37e2a70d70c568e3e9269de53eef8be01052ca266aabab9af53f2f66cd110730a4a24b5ad6253c5c2f5e66f336c72dd3ae1385d234ba54a8ea3f3b84cb4bac090ee0b93992e55c7a55645773141d28421e8bda1204fdbc228d3da188b753d2c320c8f443d177f29b0e23db28a44e6cbb46d6d8b5270e65a42fc208ae47250041ccbcff12c08357b6ab5073e23d4adcf01c7e86ee4912461c409566400d77a81c6731168e048300a4b11c9371e3426cb5398a04190cbed6539fd46cd354eb5e02513494c098f7a8b87640de72dfe8e8884231cad7c3080b72d193b064c0e8b5cf46216ecf6b962f9b072fa717d6084f944459fd840209821fe878f1b08fb251b40217ca4e2ca36325038f1635d9d82cac1b986b5c8689bb8a72ab212635d8858f22536720da5b27cfa8e344a3c90100362cf4f71990ef43b306761828423b46419e0a2ee7420c44cd6b565da2f6978e1fd04c81a686ac7bebaace6efce33eb8cf02879e3f503154aa70c17e16f8c209353c63090e9104ee9536f1905cb9df714eeffa5940e1876e819720932dbefc835b3687f53f4f87e02a2a4706f4fb64108ca68e4913576e377fec31d64b87b09e359f7b4b0b484982af696535fd9809c98196c9ba867fbbbe7cf3326a3a1e3b609db5f51cda1e480b4c6801b25455af06fc882c5eae0caa6214f28cab6795c4a86f28e0cec55dc6495d8c4ba69a19acc6e4c9655010a2b86435e58539680397c3f46bb4e413a136272bb95619d592f7715b21c8a6275700f78808dbe80a646e9789453780bf952e792b2861703356e053febd6625871bb91bdf2d68f345cafb77e953713e58a3536bc3c9f3c1a6d01fa8268768f139446021462527f54685e43cd50820213ed769e8ae8011a6ea01a953af1892493f2429d0a5835dab830b8a9499dcb3e872fca31298329626ccb2aa26af3b89f5b2b9120ad2f276fe5944a163c1f42598a55fd1944468a714615d98f3d9a83675dc0fa056328cfd05c2b91a698fcc7d46f900732f2707d27d66171f0e01c15be12b25f02a545f334375af9777669547e86dc80eb05cb1bbfc1b6f8aef03cdefa1585d9d3811c969948bd05d488f64c40fe442029ba5d06987b1a664f5e1fee446dd191d5dfc673fd2e461d822f97fb07d15ccb8e23fcec369ca2fe4603d73ada070944a1d12934b7d967a7e5f479b0212191c243b4346496db4c2c7ebf0f2163a455269767a7b8aa8a9bbe0fb27303a40456c6d6f727c7e869a9ca1a4b1b8b9bcc8d7e5e90d141f464e626c728a8d9a9babec000000000000000000000000101e3644", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + } + ] + }, + { + "type": "MlDsaVerify", + "publicKey": "acdb973dbf7f7c8dfb1126089e811ec909a77815bcbf1c2a1fd114b39a6c14c8344b08b8889d0301b64db5be2f43c32b87871199188697759fa68df45cd71fd67b6087b077bc2278671ccead33969036c3c2bffe8064f0ffaefb6857abbe9ac2c76363a90fe61b128988facecb716b98eeab537eb1ef7f52de552a35ad9e76ad4be331b38e396d1ef2fcf4e352047e00aeecd9364f0f6d8980ca86a989b98f7a50185fc29f5ad4c1f49db80638b23f02b6d7db17a492c4a73b5f19613e555497f3969488cd9d606134b80b674a271778e8ee141bae451feb50fda3d221d37bc240ba95bbb1e9a1739b3ada309350b0a366b9a6eb3a3d3e235ab1050b6a1749b3cc8a98ba15af56c02dd93293377b6c95fc3f76ecb303c608f4c67d9014418eedd85a8aded2c31af25d6e343883cb9d454b12d16c2e51a80505679f796c93eadc946889fbf5630f774fc1730b5399d10e9158859bdbc5a083047e47a49ea15bc21126a9bf3b51c2252da9cdaca7e14aa8adee58be98c331f9bf59c01a57c6977a1ff25cfa230f58354325a0a9fa478a68cf6dda4ba9064764418993e5586b287049b2b760b786ad813afe339ba0b047d64f8627c0c0f92a8a31ca7fa3da9d42ba27b716fe9db3b48a01197df4b06d9b3ecacc1f17d53b71510697bd31ceddbf477ddfce355b4a37618863376cab6812b25c058bc12245ebe898008f70af0ad9dae2d174324027e468eb48f21c4172342cdd36ec6531e27e61ff28b237b02269a38a76119aa37c41679d44afd9c50a8847e524b2c0e60e7e904c97beb91b67dd108daf6186787675e1ff863af7682964d399146ffa259e28d60a715d11a67bc5a5fb525884610d8aef655548a1ec4dda8cc4ae0b4ef9d698f5c44c36ee5fa3cdd837e26defc16d9781b8a9d7d8ee401d8063668f6e55157b713170aab66bfd0ff5b25b4c698879ff6011387658c6814ce969575f02228f3ec8355b64f70e38b4b23680879e131d319315635e3ce2823bd4febd0686e023b22a19c5c14bf228b8aae03cfaa2749db575602635cf4f32d891ea67c5419bb16bb3fed064c7980f7db4d4049dd5ecdf915ebbeabf53c2ab6b37432f0fe4347c6e2970844c5fcf1fb254be490cb8a75eee777792095ae8412861974b7d518e03732d2927da39fbb93709b3ed43b03fd90dd2585ff0d1ed45cf3ebd2faf61b8df1bf57984e5ad4325ac97d87fea265afb7857c1539e7b419b7e9088f2b6f2a8560a24a72843f7b967093f79d2ec822a986bee06dfd08acc2726ec6ee6413f38eb106ab9885efb67a7107ad95352498b1c9f7290eb5274a1bc171e88f896dfa35d00fa141f7175d242c9327f87cf9f26f0f92e6db253fa0e6306308a02158e373d20a1c4a50bc9062070634c0510b96f0fd45b2af8f768a320e4a7a1d1864e925a128e2a75e6d4e887fe9b8efc5d2c23b24d44f5c4c33501561857249bb3d5a63c3844137c767a28ccc9b09722dd9834aac8ef060263bd31d5aca469889318cfb25f04647692594ab60f91f6bd788d57ddab8fb0089fe7d30f8d5e88b9697b45302ac3511303188dd534dfcfa2c78c89bd65a6e78603843d5aaafb10c6d81ea0987c8cb2fa67252477af92f60faf82953b414e74cc5f5659922df06de4c905ce4b8370015a01d59d199018f7c89519655a3dbeac40ac2c92192d7ad01d04dfe551e8862c73cad29f46cbdb64dcacd078f510610d2409ec1fc05e260041e930d6b90633edd7f537f9a8575e31c6e06161e5353bd1415f982cfef52f382bd67216d47f8765d7a6c5dd96411219f527e8c51d3cfbf420c657a2c25b8c883adeb4a5dd1d1def4d0b705b608da2", + "tests": [ + { + "tcId": 68, + "comment": "expand_s requires 1125 SHAKE bytes", + "msg": "48656c6c6f20776f726c64", + "sig": "613da9afc8a473b59338dd93f088cd35f5af60c6112359beb077aeca3cbd473c48330c61a54e38989758f6321da424351b755ff799e61b1bebe78e4be2054bc37247de30fc4103a4dfb7f7b696e418415debf49625ea26a72258391f4ac81c6f2c628d0b6b86c9b77088b70a6936e440bb400c3d65c2dc39afcf6f27fb656afb138a5ac1c903ec51f66ace8621b227868681ae6ddbbf7b4b59b2661a6e971d32a17ad6ba74cccb8bc6d1af9a6adf9f948789b0f3451af6d18608136e43c2e70e3f273c51daecf42327e506ab83ca97bfb2ab96da8cd77c2f126279dc4fe0200c219bdea089254ea488884d65419bffd8c7263c10671d9435ef8ef19ba83b042b66ea23d8e6acf2f050a5bb0eab8bb92ba4416b4d407128bb50507f717f8bb705c879e8504574afaa6d613eb42a1db4d5afe13df298f0293e5e1f1d59837e83284ad90ce4a9db5126a0d6d8cfcde601e46d99427a68f6b9b92cb7eb42f5dd53959e562c34f1d92a7307de0c487de10b3325c784c5b56822fc4bd417c3fb645bfd267577eb9783e8b5b667d337cc51988bcd571acdd630fc33de08be273816d11bf10fbcebe817c4756d1fd906020d1a34bf1d31ea1d9a1bb7e196cafdc9afedbe52f6be1114b3d3d2c8a4d85c8599a2c2c5d887c26553d1db5e181aabf542e92024a6607d04bed90e263a12a493118c7f2a5f48e10c284c2a61a824a37043b9008c707abb4efae6fb78c2f57d8c2835b07d0cb091d0f5856c238553ed30a1c7340ded3b5add843c9e0dcfa47ffe66825ad60f8497ca2ad2a8894ae4b8d623756e0a74312c7a26a86453cb151dfc623c80086441824107ab47288a4dd379097c0dac0f6482a235df5a2d096e854635437eb6a4368364c7df3e929202d5a3f7002ed9c55a6dccdb9450674bb024d63f0460f2761ef929cc3fe821db140e9e0464184f15cf157a76a49143baeb2df8738b1d79a20d094f2ada1aed714b258dadb06bc3328dd4899491c9ed1be576b89b113350e9b4d15baced613e6c4499caa5590d2ca497e5c3a927a177172cd9683e9df65f5f6eea5067ce5707494a8a056d0e485a7b153af68960b96913ba50d1f04f9259f2646d77e5fe96c854a1add9ffc12ec989483f2497afb27924cd01535438f1475670a995956b963d24253914b30ab80948eb5880ceb457d360e5d8501e74ed1697bc3c4299ffd52bcd53d62c46e3051ae5e8ffd7e3a7154d469b94d880b2e7b658a0e02f55537b684c07efa94ad17487071e5c567abbd79eaadc4b61e16c6d23aaa4127d9e478292f8c76d1fade2e76def5b773ac5d23b7e4cd239d5e3059b04c0a38b18df8fb79669c914302a2080cf1c29d90aa8ee3efed9bdf63ac24a52f2d858713a269a7b6cc79db6dc74061083f822eeba5299d53518d5246919ac3d594187c54dd4608e3177b3f6d92c55c99915ac273491b84077ff14b537683b29088d3e58b1955460d0b6a1138d211744019f41d13372d2054dba2f133c60965c48dd48bc52ff9c5d4fa2e47c80644ce4363d560092bd9560eb02f940229ff87fcdf9abbffc17bb374f33d9bff81ad454efce3579421e6448f24fc61dd2487d36c8add92a407ccb148eed925213795217268ece535e1fe29ca1b187202896038b4ef1e6c288d869c109b5e78d6b90a92818e5e180d56157f27f394fb45717344afe6b1d9ff0b11535967797ac3e8bb0309f0b26d40bf64bf93fcbdf6ca75885c2e4822d413c0c81bfc95a6878e260e7b98ef8b25414fc6d84246d8ebefd0f781097b075d63d2b30d1dfcbab5d6fc2828f6f662c399f3b7d636f6ee75af5329bb200ee75777fd5752f27340e98fd4c5180ad215d600a97a9d2752a6226abebee0a005408ee6909c2bd1236675c6024c4d9f8bbd884500d82e2548b7d758e4e897404e2c46a2c2e36a884b89a734efec164384895d6ecd257420a81b6fc2bcc8c50b5e7564760bba981353880052ec4ba5af61eab34d3bb96f7692510d60db4e5288b4c444d8d7a01afdd5a4bf76b29347935547c09ee554c29e1a2e07f3e8d402c9085d0f347999476e1b9a103fcedbaa90c4aa420a9207ddbb7bf9980d9f8fb9e00b03e6d971bcea11c0233ad2eec4c19c4750e3bf45f60b5123f98c981b3674e72d0257e1e6d031daf4ba5d659cc314d16fc25dc708bc9ba7085aebd0c541dc3014971b6badd53e0b817a28d0475d1cec92faf21dcfdbdcf5789be2a3af941c6ebc1ac08025c3808c659ecabf01598a92b4df2a206fe4e0bc2eb249f8d601b81d9e8dd5955dcaf6c23d4b12a32b6fcbd4c1fce5810e1d133b2dd4aa3d54f8b12ac6112c869b4f58da1706bec858de9c178431be91e18ceb6c207477d3c8b44316fd9c5781b983f6dd355edc7d6fbd74c0a10782e8e09f1864e75b45043191bb9a68f119771884613e20a6452b5cd8d0c2a2e0dbac41be718b38e6037fb36c58675b69bc44040a220be42741a362c366bfafe8b56a1d3733855195bef38d02c98e2c106ff7eb37d8f8e5f00eccf79feca4c547548733746b4d669339dc1dfc81c528d0f40d62fa693928961e6760d36b53cc3ba5df8b8decc3a8542cbfb14d2b88bf0ac30ae5b684a7f822e9ee501eccd7346e5c8674eea98dcd31abb85210c4e1c7302811c0c0c7ceeb99270fe55883a282133efae47666ee8d5791d55dea1e33277fe6ae30baa1b7084c39be449c7ea40e6399bc7f303e251028d1fc54a724610f56082d89f28eb81bf8b79ceff49e4bab123d9e8026f8ed43f4b3b0d680677eef4198b4650a37d702edd85612d20b4e4e681a6c646d3eaafd77bdcb29229e50845c42d5546176d90f5788788943d8070694e9e351a907ba61bc3daaa625d1536f833d9ad8b4a311684b31adf94f4cfcd26f36bcc93fd6e3127a8c63eb6213a169da7943e9272c62a0e219fefdb10305b461dc58e1ae807cba07185432a0bd678c086c1e89aafd93e9e9d7bde6e172545b323a148ea075b1e1acad30fbff57dd3a94684e589a5e5ca8bd4647103dac22753484bb396bcca5d7a02d0b5ed719807cfeb6baffff7ccb15e8d448f63d3de62509a899f52d7a75340063284988f0293ae00452baf4e4f38709eec875267370bc51ec3058481f08059068b075b1012fabf68bd55a33db020fd291ceaa30add473cd79617432765032bc5b1bc1855d73034aaa99830387996f30c9851929bd6b9dadc86e03f854e31c3394dc865c5878a8d8f6963407d2020cdabd19757763ebf2f09392c8e27bcb5a3e07ae8a1029fe1756947bd3117b93c7fae3b0a5a0ad4041b353f474d5d63788ec4d1d6dce1e3e9effa081113182b2d404d53638b90b3d1e700123f4a5f606d777a82969db4e2f0f1f8fafb222d4b5559639bbdc1c6c7cfd2d5dbf6000000000000000000000013223545", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + } + ] + }, + { + "type": "MlDsaVerify", + "publicKey": "2c3c585610631e4701ae30f2fa3df0da7b607281a51396d7165aae1d3310295e8d9e5710d1e43c8ead5667301846e8a0ce25178e1c98f6c9dfc15e6460b0ce0a1273537126309327ab1057c613b5da89522909d1a9ee4b762270ef8547015f23cf013e6836db07211f3a020e92b8d1807057d48f81599a0e27e89076f8594ea2add5ee11879ad219dade930c2237b749148c2dd2f71b411d7a1b001b601540122b36ba02033ec848aa71c1df1c3d023bc8c2a0e0a039665b70dba479e03fe2ef8ffea41649fbcd1d9211466beee577a75644da29de0bce1ba2dbc01a1f409e2b2df33a04a0cca2c5cac3dcffe47c2466d6170243dda3ed2b8809ccb33bcd71252b09e935aeddc5f780d9b707c5f76f734e65fa251415a43abb9c89b685ea006cf310244a62d6f8438d5a1a3e5d17136161e16dadccca2025c76065bcc11234c123a166cd4868f7bcc65f14112bc1e9207c64b6d6a1615f6b40b5f994efbe28c3638e5244eee16e96a27c3ca6115225090f790f6692ffd055388f81ed8fe3694b3306d791210f5467797c619cf93692e762b2eb9e2fd2ad7316f9ac482eb160449a50acd0cc97628df93a1d030df28b1ae13424ebf87cb260dd510650f7d482d97861d0392a257176d7dbf88a661259b05e0933985b0b0079a7796995aea67bcec7e01a1af0d748b84fa8313153e4f7e3ad168955f6ae3d6ca804f9cb7cfa68c2f286dc15a4d21ff5f66fd630d5c45b3139a1b469140c01a60ac758a2783a9978035575ef332d8f94cec442d2ec1457d3708bb2c331ed442cf689c44a368fc946c7a0accec11de1da6eb3f51535b7ced77b15c3d196cbe2489ec49fc09e621eddae9a12c8cb492eb84940871e402db722b6f3f8f368b818579921b5deeec19c74357b9c3f439b6f2902de08224540040749a4fd8ba99551c07363aa75d59cf32c9950a0b0ed65452e97688f9df45b2478c01027da384e85e732bb81403e7d56e7bfaa40d4e9b541cd51e9313b186dd7232830874a996ccdf6f64ebecb476c4254be8182f4508e145cab97f542f500e0b9d0d30593a29666a86d513650ad5437685a9d2b72c8c323b7a4c297cb53446213fdbb188f814de320a50aa41644e7497953673ecf695330534f663ded8c6fc1bd42b8a618ccd689c76332136887ca9b1fca3897b910a88050e4c753e63969090b448370d9c11eca5a607019eee05b24cda1236101d4bea405c6f15d18e22951bef9a4857c64d2f5bcfd2ef337795ccdd54eb4d5c8e2c14a7fe0a304d35994b38bfef7901e08f0dac078c97d5bd9ccbaf97e38b29cb35bbeb8890304fe47d85fe9efa12130326f155ccbd1551864ffcbc4e576cb9164a80bd1a1ae795ec623ecbaf228ffe9ddbb6b61e6cd8f1bf2c203fe5a7bb503cea4d74fc7e100cb0f83dbe34e8b59307239f0d0af550a7003fa27a279f17c5332da414caf46ed0c19eb33fc8a03cb08d95e229dc793cf3b153dd7935211d50cd5542e5242203d7dca8dddc938ebfacce22daead82e00377d35aa0f2b8bc82a87fc87ef5ed94c5e0436d079cc0947cdcde9ac9364afdab23236a6df967dbf93acaba8f80391a338ba6543cbb8e18c0bb262326bff6885a5fec1ddc2c4aa37a7d7aea4625c6bdb2a874791a159b32869f2b6e66b2467d41fa46740b77eef6a74bfa2e4b60f788c1267b227a1e3f8a9e140dfbbe7928c6f9b2a98c4d250f6823f8eafbaab35d036a69a3f782e6dbfb48d5d12c0cbe09527c6cf2107fa709d79edee64a306883cf2953e6764ef082cd047d569341a3006fda90cceb25a7df0d54d0a34d62434ae4bb6a1a6c139efefd5b15ce66de30aebafeb876d463b6", + "tests": [ + { + "tcId": 69, + "comment": "power_2_round returns a remainder of 4096", + "msg": "48656c6c6f20776f726c64", + "sig": "6b97432ca15c76d6cea9c888f9e5f578afb113920271950058136e9fdc5b56e81d7317f725be2c72cfea8fdd65ac929081ec7172d892179cc64f4a8e73efb4c0dde1ab05fdc60fc8731ae77f2add23b96b98fd047c652d035af0cf24df7dc24e96d0253c034b3d92e61a9b2eb198a93b60172429669094dce14aaae62372d78236643500d8f9b156743180538259814200f645ec8525ec243381f4c2d2a1a721f23f83d91de6945c45f8726e9efdf99df659ce21b56cc5badf45ff2c34e3a10450b1232f96b5877400b96a11c9df97a89e7431c5726e480df6e1e8b7fc10cc092635473cd55e1810bba5162520a69b74267698e7c69787a7d4476c0997813902a393944f8244d5c451148422961395d7f392bb5a07039d79759ee212e34b4c7dbb6e8603b3a0e80fbeb637ba3abaf9ae84697615a12ede70c371a2afecce29c678b3978bd44cd36575720f3448e67044c2d4f364a52171b9a53c718e942e3aeba9c97c6e26961f09b516d3c1c320984c207f36f76e59bb18035d1234fce0a39e8667b8510982b9cabd96ea5e7833406d69677e8c066978ab7d0b47ffbbc3cfccabbcd89332e208cf5088a0476d56b55e4a6b01bfd8c139c020c80c3cec676aee85d1f4b31ebbdfe05179934ccbbe65417d2cfd0a57c8393d4d54c8c5630ac708bbf593519b1fa5f8cd22818e68ac147d41c84ac63e8d574e03bda7558b34c165cb20ebccd1225852efe990cf6ffe77fea0b38e5a4b04b419ec467aa3dbb4ac95f9f6d0f1a82a7faf96fdca71d04fcc1c51c4d11845aa70e2b12da4238d23027d241b7d2c32b1fffae33b68185702f2a709c51634c58e7dd865e3e73584c862a396842603066a64843d777a86da5e487083b48682c8aa50f16cb9216b3ecf31697550d3da596364e8ce1535351168b8f9a42be85d875027d5a91f170c5a2f7d5cb6bd70b022351273918f923c5a64f8744a7cd60a18696ffeef014ba666eb3415a663fced618da1aa2fdf04fff565012f4e3c657e4d4aea30c4c1a02f39b64a43a4e52a383ca680aabeb3df518ad0eb243f9ce02425229d530ea8cd7bcf8631aef5180de03f6bbbebb68720b0ef752406e2cb05e08c655c85e817bd98d57105f4422a96b038b576f8228e8a0a40af2dcac782fe7b65d89025dd4e41fc898eaa8ba250984d8701d5be5988348600879cc95bfb76ba58f3fcbe18386c8435b6dbad311d600dddb82bab03874b725acd1d5ce697e34fa03c5970460d03b64810adc20a0ddac0104169e357eb32e1ae5d0f8084cfee29ed8ef5f4f1ed5d63dce4a6953497871c8140384b5a4a7a84e61bdec8370dd8282d44f37d0e71cf7c857aa557439ea9a9b66bf51891baae80dada27029129fd396aab17edca38384ab5f2de763f92f90426cf2d142102ce673358ea4fc493889d218a02de534186dab6e5924fc497fe8ff24d128fbf9dc87b6d0c6482e1fe52d1eddaf00a427945f3326b6d8dd4d1b53ade515e1c7273b2b8eb978e557dd063abcd6db5196506c6d9588cd8a16b6d35ed79da8fc004adaa3b50409088829334bc3c39d336538be2f1ca5fe1ad273c58dfb4d74ea065b595f31b34a6d55599fd3386b5458dc2f1176028d063b8a38ae6f89a9d4653457bbfd3349304169612fecbec2e9d9819cbe0ecb2fa28030c405b410c2c7a42f5c816d9e98aed565b236a05f14b2f61a5e091a86a429347e680d764a5dda7a315dc7e76ee1d969b56fe301858f4b685ce73c25efce1bff25f72f5150d3213b825a60d3982364fe8036c39425008bbb35c434b2b7a8fe9974747d4f0a61ee58da7d738bdaf3a3199530983d6be64a42472acc2188eb6a093394e869ccf9e79f472e5c6d5fa705b86c09b8af1f343e801a76b023598186633aca4e6be050fd785b6072f409707c0d2eeb5b7e9dc0566b1dce3ddccbed8beba71bc5d6d9e7c38eafd82b8a605cf36746d3452e02476d5f42f0a7a573e5ff5e63c3f84c8474a81885b739bf119400bbb322e36496416eeee65be36c4ae383f719e3a01ac39eaa82b43339bfbc105cc02c0423ca03eae12fa849c439eeff57efd6e17be99699aebb23e547d88ec0c2741ba2b40c3e48dc1a4823755ce76ab39dd164c59240e65b8dc46652fdabcb64ca30353d9b2f69bb422fcdcde4abe7ad67173fb73cbfab7d6a70c87bb9b60bf3c913d53e6cd34260b6dc83fb5106a249037babd9fcb121710a89fcb355d10fbef7b11b041db93ecad2c39801ff1b38ab97b91e7f10e13065e5e7b0995ab82e01d660e1ebb5ccee02547330623f6a7e367e99324ee624a128209f2b14945651a8ca91e0816c2414b87ca207d7f25fc1841c342a28a2e2fcd21c8feece14579dd7a7b78695944ac398e926799f6649a44d9a0b0e66ce7117596c69499ea03f50f804c0c1b557ff7bf9ee002f0f784d2d8a1fdee26807137fd4c6439dcfcd78c8f0cfc21b540624e81bcf60396bd564478ad8f223a3d33fdd12dd41f34a37aedae5cda88ec202e1a62d37c8c05a1640c85a7ec66e3b4619e37a9203e98df70b96c376b15040d8e7633c8a3ec6726ded419f81cd64c24c087596adb1dc9a733c47ffe0cc29132cd7d8c890eabb0ad199f21710219e83262c99eb21fa6521bb7e087214f86cf34bd0216f591b103babe940bc14e15195f489788dea98245fc8743d164312dc8fa5c118d282ebe95a9c459a088694e1f3114ccc6943c78b4ebd406164a245d32d7d16768bb083e52b9ec5a95c43fb826f4b731b9501e1db20ad80109b6aa1aa6ee8422e92ca26a93261bcf398e85c4bf1d3d4c8a7ebb8652f87eba37efbc2d9010798641d4338cae3856ac98804af382e97a4eb495216dfa348ff47e057c5d7ca10c71c2b70a033288a784affc8ab4413fb7647b02ff33846723e4664a149e08751426614ae4cab84a684b5899c38497178b50b774ee606f00aeef1c9e2917e6c3ecbd29ac785249f2fadda398e4a8dcc8edbbd3da8b24e9a0ddffd1bce4247d5a60e4c8b64ee101c8c4a24e57f71053dc009d144e2e9103f5176272ba4bd21b418379224779833ce3caca6ea6992c8f2bf752964a0eb64782983256a977c5bf9a29f4d1682abfd121d7a09a2c3a8543df6377bff957452058b3d2997ff6b306bf6b7bc10cf9013256cec28ccb992ab2177fb172e41006c0eddd70d07fbcb52ed03909fc5429f87169eb507060dcb8ee72c0216133a6c63b416bd311d09550cae4020ca764292ccb1aeacb6b5781c7e508f7672e072b61bb2e50d350722576dc75f08520bc600d6ed06cde40981f07090b30477077b0b5bbbdc7d3d9dce50a15575e6284a7a8b6d4de0d1011272b48516d738fb7c1c5d3d8f3ff0d11414b757a888aa0a1b6b8d2d9ec000000000000000000000000000000000000000000101b2c3b", + "result": "valid", + "flags": [ + "ValidSignature", + "BoundaryCondition" + ] + } + ] + }, + { + "type": "MlDsaVerify", + "publicKey": "d25d5cd66016fbcaa894df54e0b42dc98b64857e9ec4524fb697fa60b3fc19731674b691118f46518c25a55d7e1a167434a6fb3db4da83349d8129c13fefefea112360bae889fb2147a8f008dab7d053b2db2f46ec10005280cdd855db3efb34f3aea214ced6fa4cf7a9b376feb4478f2ed6b7097c68d88745e3bd0768cbc80910f19778ee6b2add9dd2c9e790aa2b9ba28f8b71b627835562b1010a97a93b5605b84942f13bdc7ebf3c89a357e9ede72948d26efce3bac58b0c277bda3710c7fe285fe5e99165bd4b3fdb73884c1db3397ce04b81e74fae90275b0ec724903e2ee8011ddf3a25b45bc1520b08e26637817c64a9ac19241a030c7fd249fc9467654dad719457307c5e0a321eee137a5d0ab0f955a0751c3d97c652d58500e1d79b44182d28d564564c7c052fa3514a857ef2010a42308b5af4cd8bc5b6aaf9ef50180b188bf333b7e78b70b92291b3bb96055a3603f157c73cd863a81047be838f6097c1f233f906eb8b213e45612cdc90a175379c64e1f2120076207ae25b8a5ab11ebf631c2fba75fd731bdd7e6aa3690ad5bf6dbeae9417ac0ea4f8290ff59c2cdb8b29dac4ee5d1014a77a46e1da1db19556384d31596ea8ecc866414709af69bd9174a0d16beeab5d5bf607373f8ad96424fa770467ce730ce85232a5dc1acd27f4ff6f8b4ad4fcd7e71da2ae996c283305294c33c0b578ee4eb7f05f29570fa2c401300fb52c016d655fc03a15d4e3670d4d075c4799f4843aaeaa019739f2663de5dcd93d80b12c9ce608a58e5117e19f09aa48d033303e7fe85eca654cd72d3d82a2f90bb65afb9796747061b4bf4e071025e6514683446f98a337f65f1c1b2320fbb2bf38993429076e80ec68562ab3d504ec5925065ee558ac0c695e5bd34b4e9d7b70768868ac302b74040d9c1f6a97d37805b1ecf74747a0bae81b48891c707cab60dfa53f8733d9c6f0b5a62cf8773e68c5557ccb07a708c94c8f8fb5f33508289cb3f515b7bec22e91acc2fec90f4cca12cf6efed401b7fd3f89c3c17b81ef623f9633f4be77cf4017fedbb02837a28139de91c965de1705929947a6eac26adfe279dce536547ecc70f2937d8bd1698e237325717d1718aeb48fa55049fe755b2a9278aac66ccfb85b3754fdc8f2f2d1321499891c72ee5969bdaca463737064a96efca6e2b795dfd905aab8131c9d5c0d630d19e1ffa1d19c9bebf2665fb8c0562112af8ed3d1e82ba720fa40d6fa68daf9861e9939a705367106518888de5cb05441983ee8eddc606b199c76d5caed5ea4d98a09e01bc72368ed8a3cdceca2731533b8938415c117ace860d063f629f1eeef5217d331aa323961bba19a480b0aedba43f2cb49e2f57bf50a18b551a07c77736be94bfb1615b14c44f7d70e7de9e7abccac78e5582379f3195597cfba200166df823bd63214cfd97a5dcb5c7f777ecc53bc52e9e8c9f0944e318c6fc1ef9e6b6a869a85a31cac551ca97f7caa910b7ee4166056a9c624b50cd428d2d800b51e6ce934048cb458a79beb0091bc960a25b5b6b0df4bbbc9609071ab14e396c843ea68b209a15c3eb9ad896c30ac5ed169698f132a7514e71f1d8d34db78392f07b5aadc56e4f1bfbae06e3f9d519a648523e1184724ac8771c1a69c5ce7268d0f8c9e28583d2e8458f49e249bb9328862c820747e36de0378cb51276e6a188f814463e8334599aa580b15743eb0db0e594d03b012f9a0db658a776221a2910a85477af33561baf5ffdd0d5edb0a52809e5bccd7d8412de5c582976933b076906da5ca06e5e2cd3c1c89707c38d01df2f3a4057affeb93070aeec23e3198459ad2a159d86ddaac", + "tests": [ + { + "tcId": 70, + "comment": "power_2_round returns a remainder of -4095", + "msg": "48656c6c6f20776f726c64", + "sig": "3cf94aa4a1b9930fb11a7228db57c34decf1aeaec33ecb0589a07e46d064d1407103cd5b0930e8a2b4e4e82bb42cec284f8ba7399a1774d9bd203e23674130d59da2dffde19484efa1c2d31790986e7d62aa3eb5805caec6348f1f872c6e65d84d391b77a75e146f0c6842a3833ebedaf2b1da0cbec1eef8030ce74ea67593b584a2aeec73d701e62537d84870a74db208722de8f9cc69cb89c9ead0151411fd50892f4b49e9a31b524ec7800ce37ec28fa5fbe0bdb39ffa52bcfe1e3d4005b3265017a81a1596cbe3103fbfe78d8ad4d9168984c62a5369c5480f7eaffc58f89e2456ba511fdcc5bbe32729a8f31b4c305b4c5dbec4ab287498c0e26f7488fac70f73cadec17d121d544304c056308b99611fbb1e927e9a6af88b46b39a18c9806ad7913ac92eb863a40f55827306afb13a0997e4e9d121875666e0de8f7a35049c571523f53636defe41a96764672183dfefd271d5e1652c63cb4e70aca1f52e0182048d7406385f8a02567d713068b52fa36b859abef0fe1779671b22818aac7180ff298910f4b60e0b41daa420c5ea85e0d7744ed8b0eb0442ff00de445b6cfe2706c8c86736c2e8eaed61c2d187b209cf022a0538cd154cf7ad68e5fec0b7e8c29b7d732b7c5597304dafb9d5398252f60d174b9d306e5e0f758c5e3f6719416fce075a98047b752e2bde43ac23001ed8820b37d8ce6152fc6f7e4449698b0e04dd32e1ff5ba720cea7e7fc2308983a03b4908e3f6aac5a42abd32c94a9f9269903c20f6e415e56086e0f0cd4cf21ac62cd576b5253704dec9443b8629a9c7a15a1e07755401cca344bbc07955dedf24ed6c256d10b632d8e03a326fcd28164304dcff2126aa8ea0dc0e5633d8caf900ebf8bdea2daa0b86d749110587644650b41cc59fbf510403a5afa012a809ff4eed58135f09adf9b3fa73aa5aad54aa99e0b7b788642d66d8f47859c07e6401f4ba8c75e2380a7a797533c4fe3107872caebce59985974cdc5c53098c81a1d22adea100cd2909bd4f94f56d57b5a8f983c19987fa6481582f2c76b7cb9a614ae085d96b6329857c9f87f976daffdc6d8a9f2caf30be573109dee5c3b5ebb554fe152e2ec7dd05dbadd0e1a965afd3d21ca9db1b86f92810d8aee934dd562081a0442c1e195f484b9fe1b5620f72bfd97562455d098827de21f50915441318fdd4911147af4bcaa8878987170d83b8776ae8ddfa4c3bd1130e247051129d8f5ee16591942cdce4084537261a2b55bdc4ca85a64c36c5df96e4736fe1d9e35c3f1e0670eaeb49e17847ef18062a167af2b807bcc778e3d28a41efce202943ff98271e5884ced2a46cdc260ee6f0bd8ab9c4a553267a37c960de26789623f930d5a6d0b55a5ff3b1fe817e392e108c645d67e0556dae4f9d1b5df2899847ac2ca942933e50ac240bf8bb9b98dd3e459bd77e25eefed2e997fc2b00781565bb3bf2dfb7fd0f669792e81fd132a84913dcf0f08cfdd6488fb983e828c8c1529a9944bac2ab61e1188af7cdc70fbcf595ebaa611bd4e393ccef30a98d47c79faa0bf7b63c12daa533654653b6f9cbde46af756ea840d1826a58eb09bec8ade474044038cf6dbac413b7909d4451c90f36d113033860f3d346c1f9a29e652fea46f9722322a16e3e501feb61e18ef5beda4fbbe6f1c017681c7fe6f2f0c853f250a319cdec22f7a65f2058d49387d0f9b3f6918eda9c96473315d6d208922be5b2ac3eceb5df94dbcbd29e0f4958ea51319709caf7679083cfdb41ee1888f839002b6065ba45f7f38b4f36934b739a4d7af5a63cdf6329ccaed5153ecf532d5a384039a980d99e32b2638b62121945e35d865706dbb80ae0aa8c6931b5d98842ae1c0e50886bb41a96e693c0e9b2214eaa29a5e9747e3a51920aec9302daacede517249ce6fae8f5c74e6346c2850e6625ff11ec708651a45ef2213c0a2f2e4508e0feb538430005eeada73896f72ca0f95c2eea549e74207d3d718be9d7ceac7ac3792a833f54549f8bb8d800912886cb038a6e7e4ed439eaa6a2a82f61a1f4c52648d5015e27c7eac408a40d7c5aad9cc3772f71dff3171d71c61d93b495ce3dae70416dcff63c7f28ee367f69ada2d304547a82d1e7b7f8c8bdb6db5b781d7a57305207fd25e2617d136ea49375c1b03a7cdb4b84199046fb23e1a2c490b654ad9b4bb53f7b3fe534b5d7f85d8ff681eeea93554006083893fed2eaaeb70df42ab1bffd48219d0417a09f0b7fb9f629482b03fe69071432099405f8cc9df0105c7eb8203f1f013933f65eb85b06f6c13c942321fd3039dd4b4c5339daa74ee47e040baa690affa6d34ff9a691b4c77f94d3efcf41120d34753ba9bc2f2d910d7a3f6716a379b10f88ae207affd46958c1f883b3f64e2da3e6f31a5c63da5a58a8aec69dfafc4bbac0dedd3f337f4cda960170ea430689acc27956bfbb656691b6fea8ab07288b015d9539f5289a20581160c5e14a0cad07c17099c529131f368bd8f7ee6de9b62ac93bcce25f17da88d3769d6bbe02e3de31f71fde244e302d71ad71af1ecf78cdc730cf0c135b91cb1bfaebb8a84fd06470f0ae4cb5bd62d4238adf8d3d15dc3f5892bba9da13dac9b18fd8e3614d55a22cd07cef8633dab7b53664972c7d84963dea023dec9a5cc54d9606d50f4f5cfe8612c6812fe22d32dce599250ada06b82c4580eb8004d3d3c28e31f9f92a3abc05afe7fa89b04f7e88d0d867b2f53cee872f644e7cd6eb3916a15b28d0958e0144c84a3f2729c7dacf071cf28b0fc74b3e5a4d86e2dfd5dcbcb9be826f9439dd8dddf57e0597d893fd1f940cc90e3fda249db6d6fb98ee48186d5e2d7828613a87aaddc04a0ba7008127c3313d76f09905aca060e94a088c4fcbf79b465e736cee58bfcd4ed93580ee51e418b46ffb61a53985f5a73500e53752aef4d8c56015974783f8008f2b174076455756de2ece36b0f535e17400f60db24cb5ffba3159422ef6cf420b0ba1ea80f682c0f67b8acf9c9933f01489763e9ff2bc753f533f198033f43b46bceedf072d91b8a446a89015476977a2bad4b43400a01497c3e8d37eec7f165bfc4f8759d43424db1efa2f5fdea2983ab9d19dc0e3c5072160b72a4a934e94aa9ae9ed9c4379180c3774449c43ff815f61f4cfd5f4646f7ceecaf76e72754d1b5545f4fcb9468af6089336d5b9f90f47fab5f66961ebdce8d592a49cc74a643830a1f01d205ed699afad9792b41a9eab07d553c86b02504801c2789437f6da0deb7381d68fccbcb323d05bcda071147e12ac414283f4d576f8386a8acb8d6e0eaf000212c3738394f6671787c9bc5747d7e848bdbedee063435627a8691a1b7bac5c6cce3e9f1000000000000000000000000000000000000000000000000000000000f1c2434", + "result": "valid", + "flags": [ + "ValidSignature", + "BoundaryCondition" + ] + } + ] + }, + { + "type": "MlDsaVerify", + "publicKey": "492a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a8f8bea2d8e7f6de22f1a1c659f9150af8d76435b44ea378b777ebe06b96a21520228a91011087b3b6b7781d599cb2785357369da09148448546f3aabdbb842779027445783f5289b862483bec2e9eb68b57bd227f20d92a24cb678917dcb20a1cac5d5c4c31fcc8b4a228ea4c39bcd9675841c4504e4f5ca254078c51a22d1e88c0d2f30f4558dc2b9041f01f6ff0d7ef765d70f8d29b425b98406484ecd42abf9b66871e3fa24982a3199db29061bd4bec1eb6d6e3c118515e82182e94029cb41d2c29611ad976417488005f7da17275aa7712927da81664c13945000f4237ab10ec5f9f5ebbf31ab25523193c007f4b95f94259988627b6e951c62c8f4d062885ddc69375f2022c18517be1ac5dda40c7ff2d86d0af7344d39d71ff32e899766dff57a36abc3fed6904b81f84c9dfd39a80c62dda175b56bf51c8864b70ef2045de0fd4f95015246c9c1fa96d2ca912c99ffec3333d4c4fd7c536b3d568f4ce5087e649d746848199b78ad3a53fa8c371d38864affb76fd9cc4acbdb8e91780f95e1a598a7ade559a4cb9a4a6c0c8ec07afd09247f30ce45767f5c73c7264a22a27167a4c8d5e0ee1abdd177a999bf6961b1ef9057f3e5a52817468d30ea3aa689d99eaaf652b6c36bd7805dc1cf117a9aefd00fd9870b9ab04afe6efd3c91ec0c95e2c7eb93cd7b6e48480be97e1ff620072a40da259b01add1378409f1a97be133ece7f941cd3afdc1eb72973649312f96c400d8c993c8346700465b3517a91b1dfe58ffb1f2ecb50f7d6526e310e67e02e4dc885466265d42b97484b571d1ec9e816528ee21b5a6ab63e590981dab633667e0fc0076364cf492c4d339148f314ce4e639b9a8edec5d58b13e58ac4e737f364dbb2067103563c3ca3955935810f5ec815e55d07743a042e86a97ad64da579e9cc62c2181a33a9a4171ba0d6090074754d53b390430edb497f1e596cb2d8560471cd2e0e8f76cc4a13991896a6ef970a7db1050d78163970fa2139df60316ca41759f989e13c5d34f96c47641f2dd8422b8f6e48710d8f3a47d98b9a6c510e751468d1d8ae8770a528dbb9beba963ddaaff7e0ff9beb9ec34482b411c3ceb0182007102fd1d75d28df4b2f04298f105166ce6c1015d427a7f2c9cca0c6222ce9ee4792e17b0994c2e817acc705a6e0c0ffcecad5a143f5bb85a656be19676456590fee50990b2a23e0327dd618dec3f803219a05159d2db33ed31211586e1866e37cc5c890e3059fdba0503abae565f2669a6cf18aa6b7da2d3f81dfd35aacf3f60f50675e1687dbb9cbc23c81e47f89e0b8ab775e48afda45f4276b28977b94bc9306fd479b44b8b6f988d7d532f694343d1bce67b08922a5042ede3deaa8bc61138d8516150725114e0665eb6318203c6432b756e53600339fb538fc303be391f6d80e5011186cc62a0566ba85b16628ea60bd2d92d87130fa57bc573c39f95579c070fa13f8c59c9d04cd62dcf47f91f632894a51db1174d27d3d776dc6caf08d46075095674329da00c052e2a88c13995c07f0a3ad4e1fd3eceefce30644ac87ce937433d8502d8cfcbfa59e9d5a53dd405d47b768b11ded1d83aecccd28578b3fb11e83d2b6011095a3f2d014a389143086dce08dde9a709fc3da121bb8aff129658832beb8f411b65a747226814e2acd1568167e9e3103c70fa0c1ea6bb7e012d7e4e5e1c525e60a1b004e58dd60c5c58a2b86cfca9050c4d40ea8edbd6ec87d6f1518bca12433a22b7f1d9f0ea9898f3be2e336bfb8657a3f1049653674b8459c2f3f8a712f6d546", + "tests": [ + { + "tcId": 71, + "comment": "ct0_max below the limit", + "msg": "e1133e0100000000000000000000000000000000000000000000000000000000", + "sig": "bdb3a572dbd7f9ff5d4883b1526302372fa562b4ee366daaaa9b36b5a03238f02a96361f3cfc2fb059ebf4843ba9e1606dbe5cf4df8de55b8551e78759c2fb2443fd78e0844f6bd22488c3c9300d1e0e6a850d93b144fc254a46f919d81d4e828d935df657584fe43cf0b2f8adaa514b03f0ba66934a3f8958d2d98894e6ee31c47690b2c3fa3a408e778679e4c74f699c899bc69a270ca4b2adbe8c34638d65dbc1734f5d12daf1d78b08a54203184285c482becf504ca6a7e9e1289abc5a3a3a7ed7235dd1163ba4ef68d109bf711fb4364c7d99766d83ca9424fe75bf6345c774cfe29976cc134958163e729f55420240d4db1e245a4967daac84b53c6e73ab7ab3fb18aaf780286ab65143bd78c09cd52839054348bdf55133f270234c5d748ab44e7a033bf1c76b1deb6166fcfcaefd33ae726cc9c0a9ed12e894e0f312606f933c082135f5b97d56b0da63206c77125d26acc6cb139161460c33009437c1ec76c9292402725f3d5871bb592220b05b9340db08c9e55ca6eae0b2bc37d10c79acc86a86f82ac618197ca78108dd079575513a7b69da1745155ad0326d433c16b472cccf6414fce50228dbc0c935e049f0e3eba065814aeb4962f5f2a769181709626f57c86abfe4f5017419a4ec77f28dc1db1348104ab623c67c54ae5e857b45708dc4ed630b83633a1b53e5fd0e646f39e255a905209ef5e769a2bb8c97bc8d38b6d5773932c23a16f95e7be761bb16e08970edcaddb62d0c0bdcad120a3306ae052dcaa06dd72924c8c3e8d55e927dee7cff4af55266ba07b5314ac3ef0fc28185d98d593b8d97220b20b4f6ac17a6a2bf76b77552e012456325b3eb5d834169f4979ce72e4ca4124fe77945a8ccc53f1809abfa5857df4545a300689d4668bcdb79eab2ac2ecb1642fe502ca921b9949b2e46ad7d7cfb55d3f3d8aaa1220e71ec3318e960bcf8ab4c35f6dfdf0c1320d41ad033304c5fab020b4b871b1112cfa6e59fb8058385b304179764dc85f2c19c1f943b3eace81bf37caeb0324bc4d148bcbcf5146a8cca341322a234028d6c22cd853d96459275ea31587cc7773cb093ff1ca7579b42bfa6d7ba5413b2f4fc6bda12b954e26b9e495feff8052497c7ec7fb29c81bc9c5bf62f3675ae2035c62b8d0ee704b85ba33fc77d95a57d6b731b5d1d87f571588a3fc34ab8836443c7b4e758169cadd26b1590672b05c7ed1812efd2c1eaae0156d9602e105fd89d23d0b78135d4e4b37004c2f8269bed62cfc7ed2473ffa051c4fad09b94974e4eeca39d9be6ff655c284194e6df2beeb843a1e539a63764a7d88330b07bd929dd28842139b4b545cb1ad6e3d0be5f50a48dfa610a27391512e7068b2a2b1ecf5953b286d5f69066c2ce2fa01b8ff2866705d958ab4c5085288036529c64c6995a9bc6cf01b27baf184c5685ecc6385d80e477644059ec3c343ed6078ac399fde7bf6716f7d1a9ed253aa00f4e4321a7fc1d35d98dd75e5628ce6bf2738271b33e0be049f47f6a684c62e84b971c5b7a6e126273930108d0bd80e5afe44c768e0d74503f39cbbb85d6914aa620c64e31e6bcb8a0445c2f7b73642dc668d589205f62950953e9bd41936ea3cb75020e7385231fdfa11164b7e113a2f19ec8bc85f88a73b0ec4c9524bbd5da8f8a63b4f99c495adbc739e70e656f1a3d341c2a10339832cc6de31d810c64b87a07287a1b028e95e5c86af154a37c65e43e4ad19c2be2393f39df25fc8840383db8be41a344cf4f150a8240ee6f4f0f831e0e01972dbc0b364a0bef4c6d6cd3f9b3ea53614b480536015b86d3b1ba6e3545c2279f48deb55325f119f87568854edbacf3ca469db6f1963641e8457317675eaddfb96dc38213bb488e6eb020c3a443fde31a7f40a327fc71c54e6a52130270aff348d90bb250584a78d987af7c619ebc9abef0ee28b620f37b0de4ac87a850c4b9e2655a58b348aa1b918beabce7de758ecde495d63b76afe036d0c9e15676970b93c205adec8842107cda491d6d6a5d1e3bc58f2032d0942850000cb157c05d9c18e294a035bba3653ffd4fa2c6a0924a1bd7e3e7fd0235ee23d61489a5d97212f9f195c157161912e6ca19b952dedf1dfdfa0d657803bf3df554fb32f786ee5d720db5a12acde5e54db81c976371bb5516ab191928c10ea7f7ffcb97c0e4139f134983efb0aa4b5ece9f3586a6cdfa62abd9fec91fd71bec0541b3574514debcf7d580ef4289b4cf26855ddac45df41d0281e7afa42edaa6543369ddda962b9ad8ae7e7fbe231d8065bafad02bd00abd216c2ae978ef0a0fd68a28d8c196bdb23cf1554e153e8d7eac1e62887d2984e62d0b8302410c766254ae56cb3c2be15df63bd465bcc1774e0ce1d94ea3895f6d764336a3e94531b975cd275985b24c1a5eda18c40b991a51bcfb4b3a22d258569fb04bbb777902db76dc373a63cb22682697b27c8018461ee4e1d4ad380c60dc1d92e15fec5d381bbbfc3bcff9e87e7ecd060462961ef3060190abda8bb2c211fcebd3df30e286c7f026f4d7ce2ea28ff32b202c0a97482884e1e52c7fac92b2b9b5999dbc053a35479c9ba15f796f71fd5893cad24397d80206e6a8f4c8f6d738772b2e29f159e092337726a35adecd1a4a2e54f98464412bf97eaefc332c2be5b3e574318b632b605c09e7f6f932e2730f0dab7424a02e85c5b9f8dadf6d72ffe1ff2a87fd54618cd9df73e2b9739e3eafb28f4897c1bfc91ef207838d5c1eb4fb937a3eba9d722e005c071f17acde7fc25222a310307946c1a40bc951bdb4884c2c6c95111a58b5f3267b4f8e1ea3f4c09645ac67fa76b7b50b02973f67312e8bb4e90ec3475f15e876943de67592cf99b0ec3a959a74c2e659713488fa18ec065583c928146958d3732473e6cbcf5a9553a7b99a932558f3e1bad04cdc0b0d498c21ac153481d35d9d8991d0732a50967bf041c1e02006d25621f6f430111651925c256dfb7d1d071a1343d1b77beb2955262262ef190a2d2cdf44e0e66237404546b9cd0fcbb1fa047f0f6e6285fc02b550d501bac8682670c63cdc1771aee1b44474dd37c63af074cb26551c045ab504d128c67c4d6b3f21dcf8963b14ed6d27f6f6d0a878854fe8d4bac1ec5b5592db593de6e9abeabcac5b4c090dcbd396a99eff25578953b3f4c4d30ce160917b42f9ba3c271ad8569746cc3b8a9c19c084f2b7a8a4b6bd94f0e3bd1359abc07a93589d94a6ed3e6b09e6e95e87f866cd17c21a35c38bd81df36fa9cc58098d923342ae8037ffd8ffba2760f6380e1a1e4555606b6f7275798ca2a8bae6f004050a0c102b2c3757667a8a93999c9fa9b2c0e7071316191d22264b5a6c86b2b6d1dcdde1050e0f282e303a425e6e829e9fa7cdd90000000000000000000011253646", + "result": "valid", + "flags": [ + "ValidSignature", + "BoundaryCondition" + ] + }, + { + "tcId": 72, + "comment": "ct0_max above the limit", + "msg": "e1133e0100000000000000000000000000000000000000000000000000000000", + "sig": "8135037f45476980f53ec3adfb6302e3db982beae1acc3bd8027eea1608941da19f17134095b8115993c2f2d73cf0c3e6cc993a8d75d21058641c6331c65dd22519df9050aeb5f326ce47d827cd6c1e0c3a3aae724161403c9053e7bbca307e9aeb75abfed14076930fbae02e994fad26baa78a585e4550842925f21beb7a7c476ddc461f0e79130b6aea7530fc747783ddfc80ac11fc54d3189b55df5256c057744ca84b01b7385b2c813f14a6fc5554ca675a2a2bd7f6f588cbf731ea95045ecec446ffda192a689892e1ada6febc93c903e981ff51f455d6b5c67b549a6d8c168168a5e21f39f07e29b28d724204501603dcf278698ee0a1abd133dcb2fcdde8371ab58b8341a391d0975b9079535cb3234462a8325e2b667a3ac6c257af843418486a7d000023aa982d3e65dad49720b9061f83ade42fbe3fd622665043a093b31ae24a0c34175d45e6644f1f025fbc7d87484b75010dbd71ed64c118ff6165359479db6d189e36d8d8ca2f0406dcc6f4dad913484cb6ca732aeda5878809003b27b3683b03b8d22007d86116680b64f57d585214cd394fc18adc8c690e1b93f99c46e6ff22d8de8160a4183f1b6e5664b33a086a6daa0f6328465528fc3fbdac9f948a21a49212a83696263182bb2a3e099881d867a82ccedfdd9e3c0dd1b620003db3b51ea31ec31de30a5a922737b911628d3316633948b6e9d8754265b8a51257a28c8aaac8ab2f82a72256782cebd644e74ba7c72f5a46ebe24883c2d304c32385e3641cf9654475fddef7c45041d99afcaf343ed97ee21dccda93c433069e0de32c1c14d73d61fb7aae7af054131aadd7142213b25d86b70a3cfc620033894f08f293108513c29fc6254f0786da80daf944d29fd2fef901b95657678213df264f3ef0ac56e935b418047eab7c1f40c3dc99d824a3331afdeca1f069ddd36c0efcaa702057645822ae0e7697ed318dfb51792c90d6defb190b7eaae3a723f6f5f59bd49db8cf5aa3b8055b037ab8de7fb27e953c1e87d6b87b4d6cfe66858d1559ecb46dcf4976ad2aa04c483fb97fb5f60fc8ab26df42dfbbcd617686dfeae894333127b4427051ecf2f24a7d88922a09233ba12bc9518541dba7c2bd755133733a60831bcef6190628a0a2cd269ad79a05b0debe9d33b99b540a919c7fc1a1ba19a711d2f1863b5bc6008385eb19345d998ba8400d2dafb7c6f105e254802daa797fc846cf6368e718f7ee3652fbbcc9af97564c1600afb9c22a1a7eb7db7039717ba66b39891e9b692751e1e11385111b750105dc443036b2709f1015ded2bad42ff1a2c6934b3edc5828b6f21e297ae643d2e06cecec6eb2e4bc2440dea030ba0d0ce60991fff3553f31b057be0684f5301089441ba86ecf2f9297ab49fa89d92e442e9f10d0af5240cacf76256bc92ae18192564ce79ac9fe4bb181c48b99a0e6f2662ecd5629eedb90b4e3014169d76f5c2b14100cc8db635cc358d319017b5962afabe73f9927c0c4422ef7f83df34bd329991e75b3e786093bb9250f2427dbed1dd1be655730adb4d4580ed3e64e2e5faba75875d99e8baa7add91f8f146515c87156370a5212204b1f217a7bb1f51c9dcfb3fd4ec33d8d6dbb0d249dc28b0e15899c6f568af999058fce4504d4c0f059fa8363ff665eb8f7735773cd425c4eba751203f03ddc58abcb6a84f055296a13fa5a64e45a73b04fec7e068ce413deaa6d236cbc841bba0c888019727f375aad3fd6b45f9b6a7943ca2aa80a8806503d6a843259a0bf2c54e39c2e4820831fd6a96413011e98d725faec0478ba19d31e068462993368afe119fcbd8964de98687c3cd9f316de4d14b84a357deedd7ee4bd220528804da634f62b3430008e9d446b95048130bd8c71485906de0aa810b3902d52fb1736261358816bfaea30ce240ffa8b1273bac9020dac263c5629be9c0fd9ee2eae7058cec986cf9761c9e50b28a26a0f61bc530cb3a3d48816c494c429d9b64ac3de6a4609a3afbf15599c952b7f5bc03aefd3b13dd0f12efecd16d7a65566d0d33068bd6c399fff6237311409e973aa72ac14391c33cbc4132e52fab8f3e6318dec3e47aa3bf298e6d80e86a8ce1a9001a18a1a9cf8d01727be5bceeeb2fae1ac13ead3fa3f763d0c2626da3d8e045b52d82f1bfa0116a77d432a4e61a7490696e854b905edc90d50248f68154c0a16b170a7563494c607428c0d24559cdbfa8fe621fd259a38bdf22a3ffec9a1d91d3856ef546d71a9d644dbe8148a67975397023aefca5c812f180e9cc1c79bb3ee50a75868442630e2346619d83a3b3d221cb4e0cc8518ddd1703d81c45461ad3ee5e2fe61f0f3a6a9dddc60f4d9484925b79e3abc98e524fd987201fe1fb42324fb628c08f90275d976808419de3fdd931a7093b142ed1a706e400a335d2770eed6eab2a6ae697556e280a6baf3231abdf696a4cafcff6625f1da3df81faab97475fb3163c90cd782138aaf1eeae7c47ed7b9bfdb12180a1f5139aaac8ea5c9fb676d35b13499dee82e656f072e98f98dae7edb1d699ae600efda5a59100d26beef6d501b2b1848e0f603cddec803f866bc7f0b1ec009e82224f3116c61075e69a42534fbe42d5d6bc75b8253cbf0d3a0c8d6a47369e650a0ea8bac18dd014e08f62a171b5dee7cfbd343278e94e734491f3656fb4a1e25023c5424fb60a7e6d6b0ebac3efafa29eb7c6a53df19ea4ff36e36214f04893e026d65a26a7d797b89fce11f90cb875332aafeb3719bd2e20ee3876e116e6a58b170b7a8050d6967d5629137aba30dca0b8af8a55010b6e2f7b4d2f552945579a00f4564a2f8aae2d501ee2fea33cd2352a5c15b639c78dd9e7d5d92ecc2e617cb157d6e7af0dce85020f1a6f784d249b71b443307d253236db42a4ab50c3cc1a0edeb67ed6264f266b55937c0eca897eeb4ad4b63f782e4f45173fab324cf2b6ac2bf6953db3338d1de7b633c60ce96cd555367bbd59734fd68335b46bf067814152dde8b9e70d690641916e0b5df86243bb85ead99e9e20a0d3b9475807adfaa2e3894543fc1a8bbc5319cbc2a709f8f1d3c43ec903ccfd8fd59c050a9bc1b1c09c39fcc90e9b80f190e80f9a7c111f80711e385b9b72cec605056d0a51207ec789e195c0bd2bc119435d3f3e637c6160d4aeb6529245f419eea0c5c1adabeba7e16ad7662a0aaec5e9fab536b485f6f6122341b16599356c7aad02fb4395f296b4e4ce3495b59d4eb4d48fb89da11ce8ec6548635e0e1bc820e1e28d0d7222dfbeee209f13b616b559e94020e1f29343538414a4b51588388a6b0bec5c7d1dfff011a36484e575a63718c8e93a7c1c3cad3dafd0e13151e3a638ba5c1dae7fc0d0f304a6eb6cfd2d7d9dbe7eaf1ff00000000000000000000000016293544", + "result": "valid", + "flags": [ + "ValidSignature", + "BoundaryCondition" + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/libcrux-ml-dsa/tests/wycheproof/sign_schema.rs b/libcrux-ml-dsa/tests/wycheproof/sign_schema.rs new file mode 100644 index 000000000..5576dd74b --- /dev/null +++ b/libcrux-ml-dsa/tests/wycheproof/sign_schema.rs @@ -0,0 +1,113 @@ +// Example code that deserializes and serializes the model. +// extern crate serde; +// #[macro_use] +// extern crate serde_derive; +// extern crate serde_json; +// +// use generated_module::sign_schema; +// +// fn main() { +// let json = r#"{"answer": 42}"#; +// let model: sign_schema = serde_json::from_str(&json).unwrap(); +// } + +use serde::{Serialize, Deserialize}; + +#[derive(Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct SignSchema { + algorithm: String, + + generator_version: String, + + header: Vec, + + notes: Notes, + + number_of_tests: i64, + + schema: String, + + test_groups: Vec, +} + +#[derive(Serialize, Deserialize)] +#[serde(rename_all = "PascalCase")] +pub struct Notes { + boundary_condition: BoundaryCondition, + + incorrect_private_key_length: BoundaryCondition, + + invalid_private_key: BoundaryCondition, + + many_steps: BoundaryCondition, + + valid_signature: BoundaryCondition, +} + +#[derive(Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct BoundaryCondition { + bug_type: String, + + description: String, +} + +#[derive(Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct TestGroup { + #[serde(rename = "type")] + test_group_type: Type, + + private_key: String, + + tests: Vec, +} + +#[derive(Serialize, Deserialize)] +pub enum Type { + #[serde(rename = "MlDsaSign")] + MlDsaSign, +} + +#[derive(Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct Test { + tc_id: i64, + + comment: String, + + msg: String, + + sig: String, + + result: Result, + + flags: Vec, +} + +#[derive(Serialize, Deserialize)] +pub enum Flag { + #[serde(rename = "BoundaryCondition")] + BoundaryCondition, + + #[serde(rename = "IncorrectPrivateKeyLength")] + IncorrectPrivateKeyLength, + + #[serde(rename = "InvalidPrivateKey")] + InvalidPrivateKey, + + #[serde(rename = "ManySteps")] + ManySteps, + + #[serde(rename = "ValidSignature")] + ValidSignature, +} + +#[derive(Serialize, Deserialize)] +#[serde(rename_all = "snake_case")] +pub enum Result { + Invalid, + + Valid, +} diff --git a/libcrux-ml-dsa/tests/wycheproof/verify_schema.rs b/libcrux-ml-dsa/tests/wycheproof/verify_schema.rs new file mode 100644 index 000000000..77e7e42f8 --- /dev/null +++ b/libcrux-ml-dsa/tests/wycheproof/verify_schema.rs @@ -0,0 +1,133 @@ +// Example code that deserializes and serializes the model. +// extern crate serde; +// #[macro_use] +// extern crate serde_derive; +// extern crate serde_json; +// +// use generated_module::verify_schema; +// +// fn main() { +// let json = r#"{"answer": 42}"#; +// let model: verify_schema = serde_json::from_str(&json).unwrap(); +// } + +use serde::{Serialize, Deserialize}; + +#[derive(Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct VerifySchema { + algorithm: String, + + generator_version: String, + + header: Vec, + + notes: Notes, + + number_of_tests: i64, + + schema: String, + + test_groups: Vec, +} + +#[derive(Serialize, Deserialize)] +#[serde(rename_all = "PascalCase")] +pub struct Notes { + boundary_condition: BoundaryCondition, + + incorrect_public_key_length: BoundaryCondition, + + incorrect_signature_length: BoundaryCondition, + + invalid_hints_encoding: BoundaryCondition, + + invalid_private_key: BoundaryCondition, + + many_steps: BoundaryCondition, + + modified_signature: BoundaryCondition, + + valid_signature: BoundaryCondition, + + zero_public_key: BoundaryCondition, +} + +#[derive(Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct BoundaryCondition { + bug_type: String, + + description: String, +} + +#[derive(Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct TestGroup { + #[serde(rename = "type")] + test_group_type: Type, + + public_key: String, + + tests: Vec, +} + +#[derive(Serialize, Deserialize)] +pub enum Type { + #[serde(rename = "MlDsaVerify")] + MlDsaVerify, +} + +#[derive(Serialize, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct Test { + tc_id: i64, + + comment: String, + + msg: String, + + sig: String, + + result: Result, + + flags: Vec, +} + +#[derive(Serialize, Deserialize)] +pub enum Flag { + #[serde(rename = "BoundaryCondition")] + BoundaryCondition, + + #[serde(rename = "IncorrectPublicKeyLength")] + IncorrectPublicKeyLength, + + #[serde(rename = "IncorrectSignatureLength")] + IncorrectSignatureLength, + + #[serde(rename = "InvalidHintsEncoding")] + InvalidHintsEncoding, + + #[serde(rename = "InvalidPrivateKey")] + InvalidPrivateKey, + + #[serde(rename = "ManySteps")] + ManySteps, + + #[serde(rename = "ModifiedSignature")] + ModifiedSignature, + + #[serde(rename = "ValidSignature")] + ValidSignature, + + #[serde(rename = "ZeroPublicKey")] + ZeroPublicKey, +} + +#[derive(Serialize, Deserialize)] +#[serde(rename_all = "snake_case")] +pub enum Result { + Invalid, + + Valid, +} From 362e7869e9b7e12057774315bf5aa4049af08897 Mon Sep 17 00:00:00 2001 From: xvzcf Date: Tue, 25 Jun 2024 10:17:32 -0400 Subject: [PATCH 07/13] Use macro for NIST KAT tests. --- libcrux-ml-dsa/src/ml_dsa_generic.rs | 1 + libcrux-ml-dsa/tests/nistkats.rs | 189 ++++++++++----------------- libcrux-ml-dsa/tests/self.rs | 2 +- 3 files changed, 68 insertions(+), 124 deletions(-) diff --git a/libcrux-ml-dsa/src/ml_dsa_generic.rs b/libcrux-ml-dsa/src/ml_dsa_generic.rs index adf05565f..8e45bf70b 100644 --- a/libcrux-ml-dsa/src/ml_dsa_generic.rs +++ b/libcrux-ml-dsa/src/ml_dsa_generic.rs @@ -390,6 +390,7 @@ pub(crate) fn verify< signature.signer_response, (2 << GAMMA1_EXPONENT) - BETA, ) { + // TODO: These early returns won't go through verification, fix them. return Err(VerificationError::SignerResponseExceedsBoundError); } diff --git a/libcrux-ml-dsa/tests/nistkats.rs b/libcrux-ml-dsa/tests/nistkats.rs index e1ae92fd5..914859d83 100644 --- a/libcrux-ml-dsa/tests/nistkats.rs +++ b/libcrux-ml-dsa/tests/nistkats.rs @@ -27,128 +27,71 @@ struct MlDsaNISTKAT { sha3_256_hash_of_signature: [u8; 32], } -#[test] -fn nist_known_answer_tests_44() { - let katfile_path = Path::new("tests") - .join("kats") - .join(format!("nistkats-{}.json", 44)); - let katfile = File::open(katfile_path).expect("Could not open KAT file."); - let reader = BufReader::new(katfile); - - let nist_kats: Vec = - serde_json::from_reader(reader).expect("Could not deserialize KAT file."); - - for kat in nist_kats { - let key_pair = libcrux_ml_dsa::ml_dsa_44::generate_key_pair(kat.key_generation_seed); - - let verification_key_hash = libcrux_sha3::sha256(&key_pair.verification_key.0); - assert_eq!( - verification_key_hash, kat.sha3_256_hash_of_verification_key, - "verification_key_hash != kat.sha3_256_hash_of_verification_key" - ); - - let signing_key_hash = libcrux_sha3::sha256(&key_pair.signing_key.0); - assert_eq!( - signing_key_hash, kat.sha3_256_hash_of_signing_key, - "signing_key_hash != kat.sha3_256_hash_of_signing_key" - ); - - let message = hex::decode(kat.message).expect("Hex-decoding the message failed."); - - let signature = - libcrux_ml_dsa::ml_dsa_44::sign(key_pair.signing_key, &message, kat.signing_randomness); - - let signature_hash = libcrux_sha3::sha256(&signature.0); - assert_eq!( - signature_hash, kat.sha3_256_hash_of_signature, - "signature_hash != kat.sha3_256_hash_of_signature" - ); - - libcrux_ml_dsa::ml_dsa_44::verify(key_pair.verification_key, &message, signature) - .expect("Verification should pass since the signature was honestly generated"); - } +macro_rules! impl_nist_known_answer_tests { + ($name:ident, $parameter_set:literal, $key_gen:expr, $sign:expr, $verify:expr) => { + #[test] + fn $name() { + let katfile_path = Path::new("tests") + .join("kats") + .join(format!("nistkats-{}.json", $parameter_set)); + let katfile = File::open(katfile_path).expect("Could not open KAT file."); + let reader = BufReader::new(katfile); + + let nist_kats: Vec = + serde_json::from_reader(reader).expect("Could not deserialize KAT file."); + + for kat in nist_kats { + let key_pair = $key_gen(kat.key_generation_seed); + + let verification_key_hash = libcrux_sha3::sha256(&key_pair.verification_key.0); + assert_eq!( + verification_key_hash, kat.sha3_256_hash_of_verification_key, + "verification_key_hash != kat.sha3_256_hash_of_verification_key" + ); + + let signing_key_hash = libcrux_sha3::sha256(&key_pair.signing_key.0); + assert_eq!( + signing_key_hash, kat.sha3_256_hash_of_signing_key, + "signing_key_hash != kat.sha3_256_hash_of_signing_key" + ); + + let message = hex::decode(kat.message).expect("Hex-decoding the message failed."); + + let signature = $sign(key_pair.signing_key, &message, kat.signing_randomness); + + let signature_hash = libcrux_sha3::sha256(&signature.0); + assert_eq!( + signature_hash, kat.sha3_256_hash_of_signature, + "signature_hash != kat.sha3_256_hash_of_signature" + ); + + $verify(key_pair.verification_key, &message, signature) + .expect("Verification should pass since the signature was honestly generated"); + } + } + }; } -#[test] -fn nist_known_answer_tests_65() { - let katfile_path = Path::new("tests") - .join("kats") - .join(format!("nistkats-{}.json", 65)); - let katfile = File::open(katfile_path).expect("Could not open KAT file."); - let reader = BufReader::new(katfile); - - let nist_kats: Vec = - serde_json::from_reader(reader).expect("Could not deserialize KAT file."); - - for kat in nist_kats { - let key_pair = libcrux_ml_dsa::ml_dsa_65::generate_key_pair(kat.key_generation_seed); - - let verification_key_hash = libcrux_sha3::sha256(&key_pair.verification_key.0); - assert_eq!( - verification_key_hash, kat.sha3_256_hash_of_verification_key, - "verification_key_hash != kat.sha3_256_hash_of_verification_key" - ); - - let signing_key_hash = libcrux_sha3::sha256(&key_pair.signing_key.0); - assert_eq!( - signing_key_hash, kat.sha3_256_hash_of_signing_key, - "signing_key_hash != kat.sha3_256_hash_of_signing_key" - ); - - let message = hex::decode(kat.message).expect("Hex-decoding the message failed."); - - let signature = - libcrux_ml_dsa::ml_dsa_65::sign(key_pair.signing_key, &message, kat.signing_randomness); - - let signature_hash = libcrux_sha3::sha256(&signature.0); - assert_eq!( - signature_hash, kat.sha3_256_hash_of_signature, - "signature_hash != kat.sha3_256_hash_of_signature" - ); - - libcrux_ml_dsa::ml_dsa_65::verify(key_pair.verification_key, &message, signature) - .expect("Verification should pass since the signature was honestly generated"); - } -} - -#[test] -fn nist_known_answer_tests_87() { - let katfile_path = Path::new("tests") - .join("kats") - .join(format!("nistkats-{}.json", 87)); - let katfile = File::open(katfile_path).expect("Could not open KAT file."); - let reader = BufReader::new(katfile); - - let nist_kats: Vec = - serde_json::from_reader(reader).expect("Could not deserialize KAT file."); - - for kat in nist_kats { - let key_pair = libcrux_ml_dsa::ml_dsa_87::generate_key_pair(kat.key_generation_seed); - - let verification_key_hash = libcrux_sha3::sha256(&key_pair.verification_key.0); - assert_eq!( - verification_key_hash, kat.sha3_256_hash_of_verification_key, - "verification_key_hash != kat.sha3_256_hash_of_verification_key" - ); - - let signing_key_hash = libcrux_sha3::sha256(&key_pair.signing_key.0); - assert_eq!( - signing_key_hash, kat.sha3_256_hash_of_signing_key, - "signing_key_hash != kat.sha3_256_hash_of_signing_key" - ); - - let message = hex::decode(kat.message).expect("Hex-decoding the message failed."); - - let signature = - libcrux_ml_dsa::ml_dsa_87::sign(key_pair.signing_key, &message, kat.signing_randomness); - - let signature_hash = libcrux_sha3::sha256(&signature.0); - assert_eq!( - signature_hash, kat.sha3_256_hash_of_signature, - "signature_hash != kat.sha3_256_hash_of_signature" - ); - - libcrux_ml_dsa::ml_dsa_87::verify(key_pair.verification_key, &message, signature) - .expect("Verification should pass since the signature was honestly generated"); - } -} +impl_nist_known_answer_tests!( + nist_known_answer_tests_44, + 44, + libcrux_ml_dsa::ml_dsa_44::generate_key_pair, + libcrux_ml_dsa::ml_dsa_44::sign, + libcrux_ml_dsa::ml_dsa_44::verify +); + +impl_nist_known_answer_tests!( + nist_known_answer_tests_65, + 65, + libcrux_ml_dsa::ml_dsa_65::generate_key_pair, + libcrux_ml_dsa::ml_dsa_65::sign, + libcrux_ml_dsa::ml_dsa_65::verify +); + +impl_nist_known_answer_tests!( + nist_known_answer_tests_87, + 87, + libcrux_ml_dsa::ml_dsa_87::generate_key_pair, + libcrux_ml_dsa::ml_dsa_87::sign, + libcrux_ml_dsa::ml_dsa_87::verify +); diff --git a/libcrux-ml-dsa/tests/self.rs b/libcrux-ml-dsa/tests/self.rs index 2937cbe59..54b141972 100644 --- a/libcrux-ml-dsa/tests/self.rs +++ b/libcrux-ml-dsa/tests/self.rs @@ -15,7 +15,7 @@ macro_rules! impl_consistency { let signing_randomness = random_array(); // TODO: Choose the length randomly - let message = random_array::<948839>(); + let message = random_array::<94883>(); let key_pair = $key_gen(key_generation_seed); From 164ae68b82621f1844f1facf9dfcf65f2797783d Mon Sep 17 00:00:00 2001 From: xvzcf Date: Tue, 25 Jun 2024 13:13:19 -0400 Subject: [PATCH 08/13] Added wycheproof sign tests for ML-DSA-44. --- libcrux-ml-dsa/src/ml_dsa_44.rs | 3 +- libcrux-ml-dsa/tests/wycheproof/README.md | 4 +- .../tests/wycheproof/sign_schema.rs | 16 +++--- .../tests/wycheproof/verify_schema.rs | 16 +++--- libcrux-ml-dsa/tests/wycheproof_sign.rs | 54 +++++++++++++++++++ .../{wycheproof.rs => wycheproof_verify.rs} | 16 ++++++ 6 files changed, 90 insertions(+), 19 deletions(-) create mode 100644 libcrux-ml-dsa/tests/wycheproof_sign.rs rename libcrux-ml-dsa/tests/{wycheproof.rs => wycheproof_verify.rs} (65%) diff --git a/libcrux-ml-dsa/src/ml_dsa_44.rs b/libcrux-ml-dsa/src/ml_dsa_44.rs index 03511e78e..8212cc29f 100644 --- a/libcrux-ml-dsa/src/ml_dsa_44.rs +++ b/libcrux-ml-dsa/src/ml_dsa_44.rs @@ -46,7 +46,7 @@ pub const VERIFICATION_KEY_SIZE: usize = SEED_FOR_A_SIZE * (FIELD_MODULUS_MINUS_ONE_BIT_LENGTH - BITS_IN_LOWER_PART_OF_T)) / 8; -const SIGNING_KEY_SIZE: usize = SEED_FOR_A_SIZE +pub const SIGNING_KEY_SIZE: usize = SEED_FOR_A_SIZE + SEED_FOR_SIGNING_SIZE + BYTES_FOR_VERIFICATION_KEY_HASH + (ROWS_IN_A + COLUMNS_IN_A) * ERROR_RING_ELEMENT_SIZE @@ -55,6 +55,7 @@ const SIGNING_KEY_SIZE: usize = SEED_FOR_A_SIZE pub const SIGNATURE_SIZE: usize = COMMITMENT_HASH_SIZE + (COLUMNS_IN_A * GAMMA1_RING_ELEMENT_SIZE) + MAX_ONES_IN_HINT + ROWS_IN_A; +#[derive(Clone, Copy)] pub struct MLDSA44SigningKey(pub [u8; SIGNING_KEY_SIZE]); #[derive(Clone, Copy)] diff --git a/libcrux-ml-dsa/tests/wycheproof/README.md b/libcrux-ml-dsa/tests/wycheproof/README.md index e53e9a187..0f6dd5975 100644 --- a/libcrux-ml-dsa/tests/wycheproof/README.md +++ b/libcrux-ml-dsa/tests/wycheproof/README.md @@ -4,13 +4,13 @@ The JSON files were taken from `https://github.com/C2SP/wycheproof/pull/112`, an using the commands: ``` -cat mldsa_44_draft_sign_test.json | quicktype -o sign_schema.rust +cat mldsa_44_draft_sign_test.json | quicktype --derive-partial-eq -o sign_schema.rust mv sign_schema.rust sign_schema.rs ``` `verify_schema.rs` was generated using: ``` -cat mldsa_44_draft_verify_test.json | quicktype -o verify_schema.rust +cat mldsa_44_draft_verify_test.json | quicktype --derive-partial-eq -o verify_schema.rust mv verify_schema.rust verify_schema.rs ``` diff --git a/libcrux-ml-dsa/tests/wycheproof/sign_schema.rs b/libcrux-ml-dsa/tests/wycheproof/sign_schema.rs index 5576dd74b..dfa6cbbf9 100644 --- a/libcrux-ml-dsa/tests/wycheproof/sign_schema.rs +++ b/libcrux-ml-dsa/tests/wycheproof/sign_schema.rs @@ -13,7 +13,7 @@ use serde::{Serialize, Deserialize}; -#[derive(Serialize, Deserialize)] +#[derive(PartialEq, Serialize, Deserialize)] #[serde(rename_all = "camelCase")] pub struct SignSchema { algorithm: String, @@ -31,7 +31,7 @@ pub struct SignSchema { test_groups: Vec, } -#[derive(Serialize, Deserialize)] +#[derive(PartialEq, Serialize, Deserialize)] #[serde(rename_all = "PascalCase")] pub struct Notes { boundary_condition: BoundaryCondition, @@ -45,7 +45,7 @@ pub struct Notes { valid_signature: BoundaryCondition, } -#[derive(Serialize, Deserialize)] +#[derive(PartialEq, Serialize, Deserialize)] #[serde(rename_all = "camelCase")] pub struct BoundaryCondition { bug_type: String, @@ -53,7 +53,7 @@ pub struct BoundaryCondition { description: String, } -#[derive(Serialize, Deserialize)] +#[derive(PartialEq, Serialize, Deserialize)] #[serde(rename_all = "camelCase")] pub struct TestGroup { #[serde(rename = "type")] @@ -64,13 +64,13 @@ pub struct TestGroup { tests: Vec, } -#[derive(Serialize, Deserialize)] +#[derive(PartialEq, Serialize, Deserialize)] pub enum Type { #[serde(rename = "MlDsaSign")] MlDsaSign, } -#[derive(Serialize, Deserialize)] +#[derive(PartialEq, Serialize, Deserialize)] #[serde(rename_all = "camelCase")] pub struct Test { tc_id: i64, @@ -86,7 +86,7 @@ pub struct Test { flags: Vec, } -#[derive(Serialize, Deserialize)] +#[derive(PartialEq, Serialize, Deserialize)] pub enum Flag { #[serde(rename = "BoundaryCondition")] BoundaryCondition, @@ -104,7 +104,7 @@ pub enum Flag { ValidSignature, } -#[derive(Serialize, Deserialize)] +#[derive(PartialEq, Serialize, Deserialize)] #[serde(rename_all = "snake_case")] pub enum Result { Invalid, diff --git a/libcrux-ml-dsa/tests/wycheproof/verify_schema.rs b/libcrux-ml-dsa/tests/wycheproof/verify_schema.rs index 77e7e42f8..c09b4e6fa 100644 --- a/libcrux-ml-dsa/tests/wycheproof/verify_schema.rs +++ b/libcrux-ml-dsa/tests/wycheproof/verify_schema.rs @@ -13,7 +13,7 @@ use serde::{Serialize, Deserialize}; -#[derive(Serialize, Deserialize)] +#[derive(PartialEq, Serialize, Deserialize)] #[serde(rename_all = "camelCase")] pub struct VerifySchema { algorithm: String, @@ -31,7 +31,7 @@ pub struct VerifySchema { test_groups: Vec, } -#[derive(Serialize, Deserialize)] +#[derive(PartialEq, Serialize, Deserialize)] #[serde(rename_all = "PascalCase")] pub struct Notes { boundary_condition: BoundaryCondition, @@ -53,7 +53,7 @@ pub struct Notes { zero_public_key: BoundaryCondition, } -#[derive(Serialize, Deserialize)] +#[derive(PartialEq, Serialize, Deserialize)] #[serde(rename_all = "camelCase")] pub struct BoundaryCondition { bug_type: String, @@ -61,7 +61,7 @@ pub struct BoundaryCondition { description: String, } -#[derive(Serialize, Deserialize)] +#[derive(PartialEq, Serialize, Deserialize)] #[serde(rename_all = "camelCase")] pub struct TestGroup { #[serde(rename = "type")] @@ -72,13 +72,13 @@ pub struct TestGroup { tests: Vec, } -#[derive(Serialize, Deserialize)] +#[derive(PartialEq, Serialize, Deserialize)] pub enum Type { #[serde(rename = "MlDsaVerify")] MlDsaVerify, } -#[derive(Serialize, Deserialize)] +#[derive(PartialEq, Serialize, Deserialize)] #[serde(rename_all = "camelCase")] pub struct Test { tc_id: i64, @@ -94,7 +94,7 @@ pub struct Test { flags: Vec, } -#[derive(Serialize, Deserialize)] +#[derive(PartialEq, Serialize, Deserialize)] pub enum Flag { #[serde(rename = "BoundaryCondition")] BoundaryCondition, @@ -124,7 +124,7 @@ pub enum Flag { ZeroPublicKey, } -#[derive(Serialize, Deserialize)] +#[derive(PartialEq, Serialize, Deserialize)] #[serde(rename_all = "snake_case")] pub enum Result { Invalid, diff --git a/libcrux-ml-dsa/tests/wycheproof_sign.rs b/libcrux-ml-dsa/tests/wycheproof_sign.rs new file mode 100644 index 000000000..ff1a71150 --- /dev/null +++ b/libcrux-ml-dsa/tests/wycheproof_sign.rs @@ -0,0 +1,54 @@ +use serde_json; + +use hex; + +use std::{fs::File, io::BufReader, path::Path}; + +use libcrux_ml_dsa::ml_dsa_44; + +include!("wycheproof/sign_schema.rs"); + +#[test] +fn wycheproof_sign_44() { + let katfile_path = Path::new("tests") + .join("wycheproof") + .join(format!("mldsa_{}_draft_sign_test.json", 44)); + let katfile = File::open(katfile_path).expect("Could not open KAT file."); + let reader = BufReader::new(katfile); + + let katfile_serialized: SignSchema = + serde_json::from_reader(reader).expect("Could not deserialize KAT file."); + + let signing_randomness = [0u8; 32]; + + for test_group in katfile_serialized.test_groups { + let signing_key_bytes = hex::decode(test_group.private_key).unwrap(); + if signing_key_bytes.len() != ml_dsa_44::SIGNING_KEY_SIZE { + // If the verification key size in the KAT does not match the + // signing key size in our implementation, ensure that the KAT + // key has a corresponding flag set staring that its length is incorrect. + // + // This flag is set on the child `tests` object. + assert_eq!(test_group.tests.len(), 1); + assert!(test_group.tests[0] + .flags + .contains(&Flag::IncorrectPrivateKeyLength)); + + continue; + } + let signing_key = ml_dsa_44::MLDSA44SigningKey(signing_key_bytes.try_into().unwrap()); + + for test in test_group.tests { + let message = hex::decode(test.msg).unwrap(); + + let signature = ml_dsa_44::sign(signing_key, &message, signing_randomness); + + if test.result == Result::Valid { + assert_eq!( + signature.0.as_slice(), + hex::decode(test.sig).unwrap().as_slice() + ); + } // TODO: else, how should invalid signatures be handled? + } + } +} diff --git a/libcrux-ml-dsa/tests/wycheproof.rs b/libcrux-ml-dsa/tests/wycheproof_verify.rs similarity index 65% rename from libcrux-ml-dsa/tests/wycheproof.rs rename to libcrux-ml-dsa/tests/wycheproof_verify.rs index e76e0ceec..3c989a543 100644 --- a/libcrux-ml-dsa/tests/wycheproof.rs +++ b/libcrux-ml-dsa/tests/wycheproof_verify.rs @@ -22,6 +22,16 @@ fn wycheproof_verify_44() { for test_group in katfile_serialized.test_groups { let verification_key_bytes = hex::decode(test_group.public_key).unwrap(); if verification_key_bytes.len() != ml_dsa_44::VERIFICATION_KEY_SIZE { + // If the verification key size in the KAT does not match the + // verification key size in our implementation, ensure that the KAT + // key has a corresponding flag set staring that its length is incorrect. + // + // This flag is set on the child `tests` object. + assert_eq!(test_group.tests.len(), 1); + assert!(test_group.tests[0] + .flags + .contains(&Flag::IncorrectPublicKeyLength)); + continue; } let verification_key = @@ -32,6 +42,12 @@ fn wycheproof_verify_44() { let signature_bytes = hex::decode(test.sig).unwrap(); if signature_bytes.len() != ml_dsa_44::SIGNATURE_SIZE { + // If the signature size in the KAT does not match the + // signature size in our implementation, ensure that the KAT + // signature has a corresponding flag set staring that its length + // is incorrect. + assert!(test.flags.contains(&Flag::IncorrectSignatureLength)); + continue; } let signature = ml_dsa_44::MLDSA44Signature(signature_bytes.try_into().unwrap()); From b845ea937f690bbf8231c49275b1e647783f389b Mon Sep 17 00:00:00 2001 From: xvzcf Date: Tue, 25 Jun 2024 13:54:17 -0400 Subject: [PATCH 09/13] wycheproof sign tests for all parameter sets. --- libcrux-ml-dsa/src/ml_dsa_65.rs | 4 +- libcrux-ml-dsa/src/ml_dsa_87.rs | 4 +- libcrux-ml-dsa/tests/wycheproof/README.md | 8 +- .../wycheproof/mldsa_65_draft_sign_test.json | 804 ++++++++++++++ .../mldsa_65_draft_verify_test.json | 983 ++++++++++++++++++ .../wycheproof/mldsa_87_draft_sign_test.json | 683 ++++++++++++ .../mldsa_87_draft_verify_test.json | 882 ++++++++++++++++ libcrux-ml-dsa/tests/wycheproof_sign.rs | 106 +- 8 files changed, 3429 insertions(+), 45 deletions(-) create mode 100644 libcrux-ml-dsa/tests/wycheproof/mldsa_65_draft_sign_test.json create mode 100644 libcrux-ml-dsa/tests/wycheproof/mldsa_65_draft_verify_test.json create mode 100644 libcrux-ml-dsa/tests/wycheproof/mldsa_87_draft_sign_test.json create mode 100644 libcrux-ml-dsa/tests/wycheproof/mldsa_87_draft_verify_test.json diff --git a/libcrux-ml-dsa/src/ml_dsa_65.rs b/libcrux-ml-dsa/src/ml_dsa_65.rs index 8fe139fba..67403e5a5 100644 --- a/libcrux-ml-dsa/src/ml_dsa_65.rs +++ b/libcrux-ml-dsa/src/ml_dsa_65.rs @@ -48,7 +48,7 @@ const VERIFICATION_KEY_SIZE: usize = SEED_FOR_A_SIZE * (FIELD_MODULUS_MINUS_ONE_BIT_LENGTH - BITS_IN_LOWER_PART_OF_T)) / 8; -const SIGNING_KEY_SIZE: usize = SEED_FOR_A_SIZE +pub const SIGNING_KEY_SIZE: usize = SEED_FOR_A_SIZE + SEED_FOR_SIGNING_SIZE + BYTES_FOR_VERIFICATION_KEY_HASH + (ROWS_IN_A + COLUMNS_IN_A) * ERROR_RING_ELEMENT_SIZE @@ -57,7 +57,9 @@ const SIGNING_KEY_SIZE: usize = SEED_FOR_A_SIZE const SIGNATURE_SIZE: usize = COMMITMENT_HASH_SIZE + (COLUMNS_IN_A * GAMMA1_RING_ELEMENT_SIZE) + MAX_ONES_IN_HINT + ROWS_IN_A; +#[derive(Clone, Copy)] pub struct MLDSA65SigningKey(pub [u8; SIGNING_KEY_SIZE]); + pub struct MLDSA65VerificationKey(pub [u8; VERIFICATION_KEY_SIZE]); pub struct MLDSA65KeyPair { diff --git a/libcrux-ml-dsa/src/ml_dsa_87.rs b/libcrux-ml-dsa/src/ml_dsa_87.rs index cbdf56c02..cab1caa00 100644 --- a/libcrux-ml-dsa/src/ml_dsa_87.rs +++ b/libcrux-ml-dsa/src/ml_dsa_87.rs @@ -48,7 +48,7 @@ const VERIFICATION_KEY_SIZE: usize = SEED_FOR_A_SIZE * (FIELD_MODULUS_MINUS_ONE_BIT_LENGTH - BITS_IN_LOWER_PART_OF_T)) / 8; -const SIGNING_KEY_SIZE: usize = SEED_FOR_A_SIZE +pub const SIGNING_KEY_SIZE: usize = SEED_FOR_A_SIZE + SEED_FOR_SIGNING_SIZE + BYTES_FOR_VERIFICATION_KEY_HASH + (ROWS_IN_A + COLUMNS_IN_A) * ERROR_RING_ELEMENT_SIZE @@ -57,7 +57,9 @@ const SIGNING_KEY_SIZE: usize = SEED_FOR_A_SIZE const SIGNATURE_SIZE: usize = COMMITMENT_HASH_SIZE + (COLUMNS_IN_A * GAMMA1_RING_ELEMENT_SIZE) + MAX_ONES_IN_HINT + ROWS_IN_A; +#[derive(Clone, Copy)] pub struct MLDSA87SigningKey(pub [u8; SIGNING_KEY_SIZE]); + pub struct MLDSA87VerificationKey(pub [u8; VERIFICATION_KEY_SIZE]); pub struct MLDSA87KeyPair { diff --git a/libcrux-ml-dsa/tests/wycheproof/README.md b/libcrux-ml-dsa/tests/wycheproof/README.md index 0f6dd5975..86c2212de 100644 --- a/libcrux-ml-dsa/tests/wycheproof/README.md +++ b/libcrux-ml-dsa/tests/wycheproof/README.md @@ -1,16 +1,18 @@ The JSON files were taken from `https://github.com/C2SP/wycheproof/pull/112`, and -`sign_schema.rs` was was generated with [quicktype](https://github.com/glideapps/quicktype), -using the commands: +Both `sign_schema.rs` and `verify_schema.rs` were generated with +[quicktype](https://github.com/glideapps/quicktype), using the commands: ``` cat mldsa_44_draft_sign_test.json | quicktype --derive-partial-eq -o sign_schema.rust mv sign_schema.rust sign_schema.rs ``` -`verify_schema.rs` was generated using: +for `sign_schema.rs` and: ``` cat mldsa_44_draft_verify_test.json | quicktype --derive-partial-eq -o verify_schema.rust mv verify_schema.rust verify_schema.rs ``` + +for `verify_schema.rs`. diff --git a/libcrux-ml-dsa/tests/wycheproof/mldsa_65_draft_sign_test.json b/libcrux-ml-dsa/tests/wycheproof/mldsa_65_draft_sign_test.json new file mode 100644 index 000000000..1b8ce8807 --- /dev/null +++ b/libcrux-ml-dsa/tests/wycheproof/mldsa_65_draft_sign_test.json @@ -0,0 +1,804 @@ +{ + "algorithm": "ML-DSA", + "generatorVersion": "1", + "header": [ + "Test vectors of type MlDsaSign are meant for the generation of ML-DSA signatures" + ], + "notes": { + "BoundaryCondition": { + "bugType": "EDGE_CASE", + "description": "This case exercises a boundary condition (e.g. in the signing rejection loop)." + }, + "IncorrectPrivateKeyLength": { + "bugType": "BASIC", + "description": "The private key has an incorrect length." + }, + "InvalidPrivateKey": { + "bugType": "BASIC", + "description": "The private key contains out-of-range value(s)." + }, + "ManySteps": { + "bugType": "EDGE_CASE", + "description": "This case requires many steps (e.g. many hashes in the matrix expansion, many iterations in the signing rejection loop)." + }, + "ValidSignature": { + "bugType": "BASIC", + "description": "The test vector contains a valid signature." + } + }, + "numberOfTests": 64, + "schema": "mldsa_sign_schema.json", + "testGroups": [ + { + "type": "MlDsaSign", + "privateKey": "5a04d37a8c83d373ba07da5cf96806002e3635ad8add42ce6ee9902dfc9a1f271d69371fb6d0d47fff2c2a3e14efdd968b5f906525510164dc0922789de9a364bef2114db20c23e2612e09ff08803f1370dfec0fe7baf7caa0b136307c4c5e28d66131588fd95ef62f045ce5f9fc97fb325a615633cd8b3750e0a59af4ee68b585216212026265666057753762085830687728826203255015364500824305705421788508673025302771854311582767373483402102665584887250778016030712061065380761502612101165404558474224202805007621230464462203685778016057425826815317568238050772886480511037851166340110028128861260455443102346746431860763856471622017425050180675648525378810181776072811033216622340005338886614075570325637871365126625102514372714386215651262883035888186882735136623044213523306773082628331327670166380686860637847735480225154251866458000167681310524352403754743431285760007611167504453407871341566585122186248157656528871414777375514604212473713857715880755217452466552765547571103116775577340526805888582608517271501687335575613163508777326368017651782262147563486803737458175820226282640535882745376418557344128517764663704648266473421507627362855741847253641767062483771431577003622528742541754555283538126218063277457610415642212865785272860763488822603010447634121135027541730132053856857612685470587335853528625287673006660740067107745148828747467378105737675563673630035158431677607703476053047211202662865785547755147672066236487346002377860303756441377465637130071476433050408631515287032557522016415124412332075877570258425456330211868467418120642856576372633652261325222715024638783743186171861336733668106817338115557030361837187742101862103468842371136426532687217056001673728818313538605158860500557560156230048207235127633885081362730082704536018247573410784180717282340546403568276245472708513411278815266833586788160374774788643872827514345643713837253483842354477256048542037314586713324523031845643038500151376685640174056050663250780675801307057876088208756066411843108776645730115257078437415660766813552323512700650800184476516820562567551552285130646380817033028871742634054206101718252575327248338188705041538562187351855145622016264058183741654220238467304622778808736028441101714166800430072405844877284520248118542118510634655810685885145833435215685301485377543437155877077875656275080061815578383736231754112225386161313110561783553214033227315467012608005005482155373246688252866116575420630874416827877888645175202647448136188068213011125518360748372782503005450707815046515730448781368663564651856447431414754067735276010414703833884088654636713747165327332281573023480151541626827321212337214250802680361011166354754226081576124500458162332812265381143530822838703121611803852746568104365872885773288001121184272014882478231480025680664574124608736806187572102766668231210386821073546640384601388305113017266233868666582444544268042874431663606850264533334251076203211018257626582513206133230678348438275316543603240506276801178108543248376246768821855768252037777833441606441085058451537820373165544816815818708581423418330152611557725506875882745171231630715162418605378345582260612866668700018875062702437733366cc5b335379c2528de2db3c7486bee132f92e34b325eb2b474e238581051d098eb8130998a5d0ce7e8ed551a204eb0dec3e53a53025fae317c1d973a27609d5bfc3fdbe6360bd155f107108c4a5971d913a3615b28caa60b7ddc27135a14608d2f43646126402f3f591e175ee4c34f142d7c2332c6ade52ffc31095a5b4e23ed5b63dc4dc9d05496c4bf49b308f526b447e5601d98a3a111c62d349af190cc96275fa4665f1aa379ac393ccab3f5ff0d05ad217bb0a8f69eebc1aedd7dc219668f9742e1e8a2862e620bc60b06ec7700fa9060655a892f183e70f29f6d188d8b1aabc090b8c4ef967d6ea350d65fc02ef4d6f062c3c0421794ec261f42d93d6f12eac55f5803518def6b936c27e1516e547bbed41e86cb23708bd941f0c75d272a1b4c8d09164c99e3330142170c403164419b916f956e80928990ff35b52c5b09f4cb1635d212d912126592f2f73770c759b93bebf89b65d0efcede2d29324c9170a716b93ef99536714b7f5cda111499dbafafd5412efeb291f874f0401f52616fd6eb04ab7d4df4b69322ccdef1a0a5a35cb365d5b0b02d1e5c78a9e1fcf1c02426add4bea769eab6f5ad19358ebe3e6c45603fb5d056ffb4474984b7942ef2c03b3e2b2fd000556ffd1ccfdd874f5628809bd39e396e172b3b1316f77b7e11290a0c584a148ef9575e7de4547a680808a0f09e604b7231e4d627995be092d61141b874fd03da36a8933ce3a1262099097806fe9b9a0fba7b16a0343f3e76e69ae9d91f68963c4b48f9c7bac411600ce4dbf87b295de39bd819dc632fa45e3943810cc231a4b285101797f2b6d4f08ccb33daa67eb92d632eae427c63426664226ded96652d32c9b18c25c421db3b0984aebd8289e248dedc4903297df22783366de4b71cec53c308e394225042017b7f92688204ed6bc8b0c5f34011ae3335079eea47f617563498be1205166bd3a1c7bd8110d9e6503a0dc72fd550de1acf401dcfa212ddb3790bc61f04e4df9fa0112d977779f6dea4333a19749e17bb70ec8a7a18ef4373ef131d89b3f77182fda0c9f98b7a614967a0708938f2288feafd89d19a1f542606874f2eba5a0b7582b5506ec9d907b50dcbe0edf55f32a22ac3a62dc906976ed327d530c67103b5aae417a1d9dbd4538772daec64891b90e913bba087f7b1cfb8dab9a0cb95a19bad82ae6c34102cfb34f783dcb78308509325fcad64d301b59a50f7eb1337b279fd39fbf2062a314d56b1ac8d809997dbc094201a0ba7e46d2c79efef3b2f738c534083edd16c41d2d0fec673c1f15e9c3f996e830ec248f9f27049cb276c59920bf690caa54a8ca5d012a004e1aa12ee181b9df54a2688aeb38a7194b64c4be3adf2392b7ab5fc3de1a29576dc9c70060bbb633d4af5e890c6c6f7567c6cb17cfe14f75d8eaf1a303393b68520d88705b6797a78e991d01735c715d5b93f5231d04b662cd949677385415e210fae274f454cdec9081222cef1defb7818ffd1640d55cfab872718786f26fde1d00ff1192060e5d67769246693eaf49d88f75a9910a83888b40ca630fb3af98d1c1c268dd5e16f7b8e501bfb2fab98129e09439eb3fe7a6356c1c1c3019568a0dd341125536d8006a23003f1557fa1cbede1a78c046bb91b00e3f350019b7995864734c0dbdeca44de7afc847102e270d880b6ea6d01e5903228e7c7ce66ca0e1d94b6cccab8dc3c90ca168ab8a131cd9160b515382f9a667b54365cefd27006f0edb52b8dfc61237cec28e31e3e8aa8e2a1882c13d3910ef0fe61511ff5d230eff4bb990ed7f471cb5351e88d780d74686097c1c32eb8e918fb07242aafbd52f3c584a7f669fbb6d71e01ae12d5f21824bb5fd1e4812d7cb93519f62fb9bb3d7dc2eed33bc85107edb0618fb01bc38ff89f3de70d39a602b2b21413bbb55f1541eb9d4b6a997e10eff77c759e5565353dfbaedc2942053ab72c64c9bcdf22cc3f99d5130fb4b55eada0fe8b69368af8d83282f3bd2a9686b18d0682184b48ee0a0a76b1464a31b37acf8dde3a295a3ab293907fb4dd5a6703c765926e23fc58bedd769d427c1b73e0a6e5d9f21a5df54292187b9d32a2ead8b9f91540efb7e98a390f76c1ef40e9fdf9253193d5318e1092d104a7312ccad9e2fd5c9c5214ea4626d429c389dfc931333181b931e5ea723e34034a0282174ff89130533c1e6284a99f6a01e376cbb79a136cbae3bcba43fdf94616ac206a4deb4ede69a2c126854cf9a7dd351c5290951893ce6bddd3a97faa51f0807693ffaa6ab7c7a1af39883d78b8600651d2709f9c01c73d62750d7d8729fc5b410fecfa3147cd06e8a8e453929e22a1b4e6c3b5909bdb605d1b52a107812f37b0ad7f875162c403600f19f6c9181977d2e1670e7364b8184c5c61508f5c6903925bffe36b605300584e251383c859a72908260ca1a78f611364a80fad6387aa3b71ecfe175a2bb9eb8c4c801eea2a82d90f4a5483e0abe46f541042dcd4157e94e2865993b9fc45f257cffbcfa6228fee327463adab4299143e6b175065cb93cbc21b2ba4efe06dcba5477d4de623b221b435ed0d5100526393e0cd1d1c6b200277ce8f7f020f79e5119f85643d4089217db311d76ed9bb3576b6ac21f118af5c9c5bdeb9487014b5fcef89a14b5f85c3e9416a5d333e7a501199c55f388b157bb89adda91a5bc39d212b3526af5c5e7115c2419d6a92db81b5c8811b16fbb66ff09f52879b4f96aa412d768a53fc11d9651844f5e7ce16bef00da7c2d8a1ec61fa3daffeed9b4d0ec314cace4f38ca12911e9c71f63f4ecb877bed1b95ddc57872ea136d786414038834d9d00929f9c40f0e74273e2fd55d331f1b61370d8a0ef0dd212525158fcd4e0b7e6d8c3f1b367cd6395337c751d35e8d528908d7f92cb7baf384577e9902eba8b2d1c50c440dc18135e6ceaf16093e810725437c8c118c2ea9d09bed3f71a38c95f7baa0822b25f662d0709783ed0e725bdb9ccf936bf66c4a660ee6ef5f9c1a0e0227582a1a304070b286806ba772c8f1fce8ec5eb7a8735e8d15b8261d8852ec913816cfd739475d1412fef0e5a85756385a9626fee1f4927aa227ac930db6ade1da75b6752c1191ed766fe9cee652c0d34f96a5cd596b96da30a841177307d32cf375066c0f56478a3cd87653d13c010793f6912abba2c2bd53c547fb5992ea521f4c59dfe955545aec832833e6a4b51f745b1d6677947bb6492e991a2ba411d74a5e67faac65d8e9f451374987d21f17fe15f99856173760ec4692d52bb1bd51fbeb29302bc09009279272bec9141aa2444ad020ffa416fa35943c423c00261d54770074f78dfd640cade82f9e7280b9c4ec3f8bcbc63a2286b5ede8e21a06b1c251b525d1f41febc0dce86225b0edd6de59d768df541127649759de213d1a84dd0b03eec32006758b069c1e0a21121a15c706263fb3e53d6f37d04c77e35c9fd70541b2d5ad0dcc826c143fcd1076319108007a9dab1d6be5e0ecd59d609058132", + "tests": [ + { + "tcId": 1, + "comment": "baseline", + "msg": "48656c6c6f20776f726c64", + "sig": "6589e14a5fb859884747dfd23755c73b7c934678879769eedc8b0b9ef592eb521f597b6f02978bc8f2c652267412078b39b728d6b026ad3770a26f4ee4ce6a0330828352e5258fc136de7b62a425c24c6d03e05fea6fa88ba5daf9fef26e8a761e59af74c6583fa2cd70815e97bc2f7fbe63f4c9048877ad637d6eb4f6ae89d2c7c927cdbeaf31f46c6f3f3988f890c53326be3e124d0712a3142eec3a341709d711457126f1f6c0029c3fed6aaea45a323e5df23de97e1584160c26219b64de00382a41f5ad633e7617e4724c0024d38ed1028ca117656af0b15febe5368ce38892a63adef0e93d13e98e03d4a7f85dbbdf9a36c072381929b566659576cd87d5f7c577eacc7c267218c95050d06668296ace945bf61c49e8fd82d6de18fe2e724f964f022292e4d4cfb8c7dcc3d28f1846e71830f2eb7fb64a8171b1fb8e1b3cb501e3da0f855e502f81c90e90657a239af07cbe2c7a66815952e6a83d26a600e36f6207f90741576101736bfcee82de016ae9380de38c1150a8469ce7613e360bf223b7653774cb2f81992d629cd0a39c9870b9542c72e38c4dcf10a798fb0b8b122f45dbdf311fb278e6e43a6efb95508e9926ac9b3576f9476f78e509586653a57303b06a75ced648332f87fcbe59f7bebf1f20424d4f30e06f4641b32638da7dea7f21cc4826b6f9991fd92dc6ace1e3e33d7bbd2daf35f4b8e4d984e773793abb06439ef71041d0ff74ce992b2ebfd0bf3b94574baedb529a654bd5a522d7ac80fb5d80d848ffd0d9d3c323c101b998beece494f6c27718ef1557bb90f0d6778ad3b8b48f4bdf641b60cf3839a8cb982493885a774ae75225657014a11fe03a4695118a6fbe3df1dd1454b1b075707f1c79ffe586f173bbbbea4a96ea21c99ed68974e4b711fca1b4974fbcb062bf0ac75f290f32c785f7c4f2106c58aca146a926ae912e7c0d95dbcd93d8435d08a984d9dc6d3a8ad6e6f09634dba641c1e3c519dd38f25a4cbbbc4b49887aac12adae7d0085b50cf3b3f4a38319367e62d192edf98c4eb4dd15d8f34283c6da0bf6fad423011a968f94ec44732e292b62d96739162a6e813ccf978639fba8929698002551f1e834c4b350044ff44693ef6a028eb224999b127b800248d085c3609b84a821a82591d16c0860bbc3ee853dd815fdf5c8695299af6bc979e8902daa96ba75f87435c97ce7e5dc2cf5b0638f5efcc2349d464ff60594fab1ff03ba5e90415a813693905e20a3f07caa5731a7b69bb9b7028f493ba65825826709aec686496a0cbfb2ec9224838278a7ff0068712eeef0a1788847cea1732a1fbf48ecf6628b809e9b8cdf85683b2f0957a3e3a78911a08a4c8528dbea43e7d2c26af405832ce6d0199efddd208eb077d99af735ffda60f4caf7cc9e5c6d96f77d354c262c7f6ab36dc57c841dc5695ca3eb6430da473830a966ac9c730577588f384edf35e00c77bfc4adf70cbf039f75a8f524a72a6c3d91b9c0f7ecc18bc97cd9e86cc4b077f28f5c81469cd3cddc1273146b819fb1345f83e2e389d4d82d67f8145230365ca68f517896121a4c335fec698a6998c90aa1d120ab54715ef1935924d298b2541a4b815969b20a657aa0289a4ee98b2584cf9485dff02ee1c823c1878a11a3276ae719a9b44b31e607f3ba82cb3f89a36ea64c82343e108ca357f461721e6512ef823d15a6f50bcab489962344bc5fb7b6d32aa7e177530ad7d2ced8d4fb4eee07bf6b9137d62f1ff1e8d196145b805d037d4d922d97d315ea37b6db5d78786dd651d520fcfcd83d35c61c9459dd1abdec5c7fdfda068f9fcb6a0d8697a5ec1968a2364de2c87979af280dd6a113900b6d71a1c667f8f9163fdaaec41e12e234cce2a22c06d03f96d3eb95f40c8b2aa886cb0f27b9ae33b3feac414cb00f184b64f684e91e1c672020e849013f13abf3ca9dbe10b12fc68f61b76ff48e4823e699699bca18ef394110110671bd336ca7013b0b694a1dc5198958a6f33469f2153aa9855809b2ce9d40cb9a1abe3fbb5f29be6a16c7bbd0fea398b214429109f11db96d2757f3afa6a4291386840923640d89da6ef249270a5e779b5b37d301156018bc64eb3ea49368802dfb372f7bb208642186609c7ba264f7e0eff71cee5fa7e04cddbf5b4269d11a9ec8d7ada95dc65fa1cb262ea0902980e7ad0cbffabfc50bee60d83368864698f64787b7f62084d847bad84c1882b45dc13af9ac33fe7f185d699cf902f01bbf20f3a7be7bd4f489e87b0ce4e50ee0ac7d1eaa2410d8b3fdf00d2ec2005d654e239d4148055bd3f071a6f121a2a38c6bad34b0183ba826e7363c74aef4a5f460cfb890c152524d0c3a50e44029c2dd323e08c989bca6f86951389626c4e05ee5dedb141ed465bc8e2abe8a7b05a3627ba30acbf79d12ece568d61ddb836c1d581f3de127a9888471546c8ae5e9ad7dc7d1e5ab477b735931b7091bfdaa69b0ab8976e2861bc178108a40e726225d79bdd4643873a251c87d8146bd45b4fe97573a4946b51632d55aa8d4c24bdbc3ed8e6bafc39a503aa25dece834467b3485adfbec2fbe7ae2d6385fb2adef081595f7b67c887acd14f1a97fd493f1363b5cdcbecdfa69ccfb02c03a7b0795560a69911a2de0e8f6efa29db0e4103763930835266abfcfcbf338040a8ef38b0401a4a98690cacaffad195bda13de62185788c2043a2900844497cc3706d5d13f700052d16d71d74be385f9a6af2ecff497e21c518fa61473b9f0dc36da3d322f24b6119dc6c5e1d93fb83fec7ffe91fd32d230342d2bf4f80765fd3c0acbd85043867c4a14caa2ff20da4d731eb102c24bc9c6012966467f790585f0fcf4f9b60bdb2f7334db4fae55808c999f072ae4e995ad4bc078e4206954758f2dcde2072f76a5958ba63c3a49868eb3fef5a49e042d07180979ba79d732b2675c702aef3041d3a6699ab2d1a6dc76d4b0044536329a40bee29021899f2eb024ee29b96df86fb6cbc129539e1fb964b56c2d14e08b9a793c59d43c5839fc977bfe938ba2b512a76fe450efe166d9daa5ac670c875daa626e664381a6670d1671d439f763cb4221c7e89f298e04590fbc315e214cdd96e50c6ce5972c9aa649dd6ecfa32e454e81880794074572469d5a44cfac07998616815f2a1d2397ff5d7b4c10d24f250e0edd05ef3c462251c81103af606705eba22a7a4f5129840872309bb7e2bfec94ca8ee00fb41407e3d80fef6f03da8499a86d2ab5ce65ec6b745a02a072ed0907ca728c2cb16d050393bcecf72706608038ccbac194ab4ba306cc2fe44e7a69e713f8556cf29660cd20c7912138bfeb4fb3e42eaf740a8c4592e2a79601f7e6432f297f6856a04f38c05db3f9de1a23170315257f38ca0cc2c1c1961a851afb342aa7263d34231e3279e3790c6b46e6b60137ce361a9b7f9cd3bcd06fc2512c4ca4fb1b498f88f3ad0a45eb9f7f281e4d2f8a8dc7f003bb6945685fefb80b738e94ea4ac18ed149a7162fae53bd658fc29ae467865509f9daf3cdfdcdf489bec5edc5a8abcbfc43c032cd10a4dd010225ea88e2625b19a2c019cd5caf883ee2bd8f1de21b2a884a8d6ebf4a156b8b600c98670401e23d34c6bcab2cf9f81193de2aa5a8e49744cbc0e5980e64cabdd4919831b4a532b01722f54c20b4a5481a62cb9ee7adbf01f1137e9d4ac33bb775345a8a465e9026c80ffa25ea68f067076dfc5a338eb3cc5c2187bc3028b3f45bebd26be52734a8d71d0dce4f28bac2bfb43390b793316b731580498ee651869099d40045135d94656a6dc0455e778535bc2a40d232fe14a5e6f5eb056731dc70cae835372ef463430a15a991b287500c5241d40997b8bc9ba99b4c7d87b1b18492f02a6cd769a87c1f1475a3de27fc549f030dd2956e3bf01d6fef9e63f5ea844e1edb3699df080aaa3e44c9664948a27fae173c4442e37cc31a992764121d3329e30297a9412e0c8216d15eb836c26a9bc3a3b7c7d9b09dd20a3a1e2c9588d7a2736f8e05a3f98d2d37d868a9a88050988a4c8f8d3d17d9d92c269bbb42709c083c6b30bdbfcf94e8b5f932f4ab8272bd81c3714381d8c3a968bff5c6cfbac90852d1e54df7cae73a92a0adf97f698fcef7c861053cf02be42ea4f02415c3a5a8326b70a6eeb9afbf17d728fe1f6cb5774574d68f4ec6c511e11a4657bb7313dee5df1afa4eaf0e6dd009f30c24ac1bb10d52701a056578c5e0e82a1dd4cef83a143a8aac3cf9bf1639d3d7b1fbc5268f9a313f14140b5ab458b8faa95f242850795129295aac8160c85e38b2431da00a6800d836e36982a9a378e4354e00fdb50ed0ebbbd17764eee2fe1e0fd4495bf7b53819993891c8f68d510e2566b0f87bb88734d83adc531352f494fb99520eb72d06d908922e5d2b9ae6527f81c6cac254851a3bd733066d69e45c13d76376427bdd4ac92d5cbe41013e09d6b0b84ac2a6e41c81a3994cd929175774877198af8a3263beb51c5c1479ef80f6f1b0aab54118249b7111b8c49186bd0c7af66f5a0d865b1e10c26d19aabf546c979444e96ef3d506562f57d06b4ff55b8345a9c76b4172b0e25089afb7b9bce3e52798b6e7102230407d87b4ccecfa7999d5d7ea6a8ea7d6d900000000000000000000000000000000000000040c101a1f24", + "result": "valid", + "flags": [ + "ValidSignature" + ] + }, + { + "tcId": 2, + "comment": "signature that takes 1 iteration(s)", + "msg": "0300000000000000000000000000000000000000000000000000000000000000", + "sig": "35390d83e9b544e464339524412d01be38c19e0a91b4bf2373a59adddee17e5fa0c6437f27a97e16b05c916ef7671962f362c3b11a422d60d07fe9667ef4225c3376bc7844238d9d80d289ae111a82ea08cf2901fef205bde7e2f76ef3dd75fac6eb6cc93bc493646c393afc11ea0ee022bb03244950d3277293ffed1b950c15f710163dad25723e551d01e4ee838a8ba5c815a4937572539629354d6ccfffc516d9e3f0f5fec67d7a8a6c7ec169b3e4f8985293dfa7c2f8f6060eaa81322683b6dc50f21116481b2fa172ffa76e535ee37c408ecb7c826bb38e05f3908815fa7f4009ce0f6c75b6279be48f578ba400fed352634123796244974b5c978f7fc6a51346c21f56143415044411d1f7640ce49572fa8b8a8ba0322599dd4cf7e8e12b96709133810692983e69f27fed2ead33f38690a49668fcd10b343890c38a8974d72a3952e1d6da7b7eaff59fac010f821620cc784a8858d04d1241e16a0c2a656d68760eff84b63e6f60b3fb98de3980d9d90ba34892202cabdd5cdb1be1a98c7fd66a127ec3fa6fd5b68b1b5bffbf91562486de3dc30294f63f81aa5e58d8108f813853f26472a801426d2b0b148bf908ee954ab9d64531d2be46d43bf1ca6cf00a2644dad4bd63b79eca088a7356c4c0844b986ee05b867dd8e50af832302ebfc8bb1d9c2b700e8d153d4d2f220386de68f2605ddeece2a449cf2c92d002841308b0806c901c2dc3908cd086993c2c5922b218f33ff8a4ed4676e2c95373ba9c3a3290cd399a3e2e82f4e3b7d94204c432daa4e9df6659decef06588c0550ed995e078a9cf6df555127d58333386ff5b62d094985af06db92c83bb6fa88372de1e255ec18c56e100dcfd13519064f87a6957798e1eb9d992850fd335edcaf98328e253a02ccdc4ee7c6f031cdec6875ec6577fb6e1db278efa20dad69475925452c4931fe701f5710f1338c0dde065f78ca7c31480abefadd2706ab4454f21ec0fc3818ef0472481d30820c910c50caff4d1c0743c2b3c331ca2e32632df7ac797b12c360c982109994a987025d0dd57f96e9150b6fe1061b84543ff05eaafe9fcc3cf4a211fb5187bcb381013b26bc444a18ec3702fb42a0bbbac7f19a60748506e22896f091b5696c4562454345eeb4e80c44888b514449ac32c50049703e8ade88c5584fc94b7ec766a40b8a9bd92766f31b1c35ed646cb0a012c12fea5ce1a7dda4062754a21c1bbe641b180ef277c7fa7cd01b2533a7dde8573d9b89bb332dfda4de383698e57f3a4d01d7a0425f64f635d8d345913241d8521df09a38f8b1447582ba401d4e68f5d0ec96e283ca4dc33b228a8a233d3841b463e041cc44f08a5bf6dc176e7534cb209617a4226bf78c124b6d9b22aa27536f63dcb44853ada78966bda53f07a74a20c6961815786b09f4cbfc99ff499163447daf8290bba869978ce0799c7bd7a803f91d7b18c7f7a82d1e019df788083c9df9dfbb1cbac0bea8937a7019111213d8ca12ca85fde3aaecc805e235bc4b038caa02fe1fa6d5211cb44a03b18a7566171a9527b902fb95290529b0d6e967f38950706e5ff29692cdb8e6641e29bad6d5a6bc143cc0e2dbf74a1b076d84ca23cb1e90d1b4a42fe208b81a569b085f55468e3d4f5535aa74dd8756c5411885aaea260a4c47738176f6391b6e34126f50f19b5e1957a6bec7010e42974a49172e7e51e6fd0457a3494877f76961997953fd2a1264e28c6624d70cc633b3e5c3bede1602d2f2497ef5dc9637d56864e0a07ae62619a7041f90fdf667ee326bc4afc1bc844bca948e1b5f6436b150c2b9ca9803e36b3b00d24e00cc91ffc4cdb73b2b689d9a1144243b7ef99d46bfd47e70df5fc130a19b85caabd31267be6b1c293032ea0019d1b34f6f9abb221a5abc99d8229e8c0f95313562abc358e19349dd44f56924cf40dca534b5343558d445fed929bf50baac983888f88f913021a2d17a25dc5f1182c6271720ff64af77de6eb059be9b68b80b87cf3cb8e859b3730f838ac1fd533f6710ee8d54a740095a7c95aafc8756232988f32fb135811747a60823f68310f1f0b046a1eaedc9a705b3d725663b9a5810da797e37deb4c42fff7e770f85456b53245b84c9366c69018d7aa40bf3ce643a86a5eb3eb0db337c8fbd64ffe9fbc4990f97b3574e8113287d2305faa6378fc914b57027350ba8078d145864f8827f445896cf9aaea17e529e92225e9c71ccccd46fa516e9e79e433dc219efa398603d38c14b4d61b4e20ed8346474d0b15231392ae0486fa22bf438eedb9e5e57840dfff4af51dc4a60dfb5e87e984381b3aac96a2091ae4e884eaffb423d56412981b1296838e86aa4c6b441518dbbf438d2c2673b9d7237ac2070d4066245f77d2afef2e0878e57cfcf3d50ddc478354c7a581ad82330259a8a0e45df110c341b1202983f64c388568aeca38e1f1d8ed4fae542d6fd17a81f7e9c27bddf34ffd09f5846110b7b142ce7392d17afe27f3306ff59b502ace62989fd351d38e599c6d7b1fbe5a742579fae6cdc9caf6cb6086ace48194432c9f5a5c17fe107291409eedcc89277c1901693caf014560427e6276ca572e45325ca861170d5fda4fc4317e1c566fbb504c1918baedfd8c2d1d216bb3f58de8ae306aef3041ae92628a32eac2bd610b2826c474c212aca3f2d92b97a5dabc1233f3148aeadd53b601f57413b27ad0dd861c44923b6a8a61bed0e8cf5f060ec8002dfb59ce0648f595fd60e98aea4ae82602ffc2dac37d129a57b9cede8e4911a1f36e87ef6d9111d31ae78d3766aa40913d7b87135f1a19857cf2436b38a9993d518df444a23b98be28c1f17c2b8ffbe954bb149307450c317378b5fbb9a86be299d92e8f0ae52459a8b281ae9e991c8039762a072c78926e7b5b1bd2f032be517a8b37896f3d5d2ad4c1ebb9bb893fdcc509bafc2b83bb7226a90c7050c893549127b1df0126887a3d155837ea27ee188d6c86d973aec3f027f150e268a8d2ba593e998f43eb29402a1f912047194e4e8fe4346af0aa003e522fab92037cc16bb1f7e1878d744f6ff765693e54600c312769c0b4b2d5e12727d3052a73114d2ab5df5e276a425d941b3068e4ede76e7f88c38397c9ca93cef4f34b694c2ccfcf0e2c887b8d3c2e2f01d9f3649f9d453a5e52780855a6d6c439b6975594bda5c25cec6a6a75e536ebc8e836d5761b5d2cd1085ebfcac2b0c49558cdde0c18b8ad46700941bf64f810418ad7364a9672051d20c8eddc39164f2dfa20a9552a3132995a247f43c01e835297535a55568e95d6ab2a4b3be1442a0c8f5f07447fd5d285360b10a044014b1cf4a1410838996a57dac7ab8c34960f568ee9a858e99a4b498ab235df57ba37215d0db48c94388a731ab285a987442139254487db2d244b350e6f84a27545fb0ffae19ad93ea658ed01187647df0908ea644c3591e31f096be30da4e6063fa201fd725bd9e17c945c4e1fe4142f4377e4c866feb2839d82e8252c27119bf498f6f0489db684646f44cf83fdd9242434bd35a65bdf9d809e53a43077598aa8c45ba86da107414d2e46136db6da185cd3dc8dd216b17440fefa541222b52c6348d6eb0fde53826890083498f5d22bc87ed487adbeb3a55a8f3ce68ab614e43f053a26431255ace3da8b066c3bb322fcc6d1ba99fbb7c116efc5a31836c59b57659258755ff5067534dcb875ff1bb38178a146c2fb0b569116ef80730de85c111946690e0f3d8f48dea6b1f34713c73a5be7af868cb2510269c450ce1eb2afa586f725fe9ff0f595a6f12e32025a96d71072bf735169591dac9934dd07e18db0ff580662ff0700e5711e08e58e406db8668bf471480e65b23706b13866c150b3291d042871f8f2c0f424dd0009989e395c11ef2b5d33650cfc05ebe52af1d27a038ce34cb83947659393d3da9a2dcf4a63ec3c022734841dde0cb8ef21df6f7258e01e7a2db59fc67dd7368abb0b1041d7971dbb9077edd3107f9d310c435ae2d126f0d5e14ce8957fa0dd3bcf8b5fa42fe16a3dd2ae0bfdc3ed778968b367af3b788d4a2874cb56329faa49dd84b4fb60e8b256c76fb416f18fbb3bf5b8d3dbe94dd1ab3e82b745766244a5be8ee2d2ed932d95cff0b396c8bc6f6827ba0e1926fdbbce0df0ce6a0df631db8daa72146e2e8cfbe1c0b573d00e5aaf755f7e9a1454cdd0d165f8e077a3e5ee7def1c59666f8179fde6e2cca97cce9c696eaf1ba66dcbcd3d5ebbbedff43658c20dbb182a48bbda59b3c0f40ac4c75289759eabac31e6ac40d008f135f4b18610ec21fc229af0750ceb7c52ed25bf1642d4e823232a6479e30c4cc431741474208483650d264cb0ac88da48cb9878845d88cd4364621b34e0ccfbc17ec9bb13ab04f298ec8c2172222cfce5e0514958e61e75235c0c45d171faeddab4b80cc5bf863e8e05ec00443318fed599ba7cf66a6eb330d461ed40af9bf0adf600df2645ec7ded8ce816f3eadfe38f1b4a63722895de304810218aeeca1e4a7300718f2515c7b1bfdac62e1df2e686ba579901456c43d419c165479e34e85c5f902defe7faf34e386368bddfea1a49528894b4c0cb0929363a98a64a56d5d81f67cdfc0941486a869d9fa5aebdccf8000000000000000000000000000000060e14181c28", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 3, + "comment": "signature that takes 2 iteration(s)", + "msg": "0a00000000000000000000000000000000000000000000000000000000000000", + "sig": "06e1477f032b417f6f1fb468d213acc90ae675672e2108780599a0c778afcf50b763de4b13df5c81a0ee78d66a1c0af7956a1c1654ee03773d4ae23039fa749eb8e824212b137d4cdb270f790988990e0b24da0b14e14b48c38b96b4a2916f7a8abe3e0f3847069a4497ce70828db8e0b7a143268732324f6516f160ed54d2b1e7b5ea31fed71365b7d7bcf9d50d17f9417b0af1f6b5db7af8c7063aed32c21af3a71027504ded80fe1828fae33675d5d1e47bf45dc4e1102313ddc0d9c3348e5378b68cf29b6aa3e80ef854dad0ce1c5e7cc5ebfa145e51cba874696f4a62ee4cf0591e1f78cd5ece9ab042956f9997ebd609096b81f95dfe461a04172772a3eea62b5553c751e039fd2d8d8283e745fdde2b7320c06016df6d260760542d5d433ec9594e88918c7a16d64ae484efe5c7a4baa4f038e5c777215b3c84df89c67d57a766e7a51cec76f4e14507b5fe3818f6c91f43da897d1a97e100aac0265f46770b6813642f6e6fa9611b982a8e1f8d79b51a0aca523cf5c0b2c5e2d6a9d5bd4e166a60491df2c777cc1d3bf4b0316964b066bf79833b324e15bc2c862d524d5c77f563f3b7d6a027895b69f6c69ed0e74ffdb3f3f708d386d07a13b1f649e428aba12db6ce5af1aaa28588de91154b1ff0b0fe1cf78a0e087fb03e0146e18451b7fd992a1ee7e1fa25dd925ee77bbc8f8cf1080b862378d0923524240bd3a696712a3a9f7f8c088461ff3627fadc6237356ce0f3ee9756f4e0a7ae1042ac2608de536dd2c3028afd1c250e42f9dda6d8dea8727b186566feb5e1f9e0860742c802476b115346d47c732126540afa947a297ff963dafcb7d67fa1c1bf877003d987a151d7a9c5961c92cfa403a6288863fdce1ee59730ad62204a73e0d5e6d92eb309aa115cacef5f3270aaec3375904d348861fb5a3ca1fa509c56352e185b5cd817d037a0e64bdfb80358a0410dcfcd16946260fdae9dd9164510951c333bd1118e0043970ca01b2469062cf4ac39285a01b554bb45459c999f379226eeef754639e8129f6dcaa695cb9af4026a86c2c32cbc4a7a528f2d2c162c9d78b4976d60f03a68037552139094b9dcf6ca1df2882d0b13ce681d38c271fb119d8c0fed6d962db8e0ff56dc528dc099d24cd023ea86ffa85ba2f1b1a3eea854497ff0e3274083981478f7ea090f7e6ddb1588c0fc47f19d6c4e55d51e78c026010f9bcb021d7af31e8bc9688810f8127a79db03abb6a1977a6115f89af9698cc9ad2a1f52af5f485ab1bb77e36c946ac5ff4fa22b8159eeb3569fdf6d9b8cba45dd5232b6cf5088eb08efffcbe8256da673e198f692a332aa6c2d61596fc714af5d74193db856b135945acf3bc48f162495df092bbea85866a99ef710ec7b814b04435320cf1cddc37a641e73fbdba77576b64d6c0f26a3b7bc43f890cbad92e92d5afae9fad7e008c2e524ae4948819efecefa253372f70868f0bdb705981da77c6a134eaa18e093d8e0612ad5e0939920063ba299b3fa7b67eb3b309f2d3b6ece9bd7043d7a69c23090361c5d78877b573141ea470b600d55a8135c2f2c88db871109af0c8629fb3fb7014339911ac78396b05cdd8dd994559f671a1df9abdd0e351416e99ae6831a2178b3bdd669ed2b0e36fa7ff6e0d003fe748de3e465d513397be9dce3fd7808b598d824accbf614d9c3bf37fa202bfcb39419b617dcc1bfd1da298da213d75fd72ed5fbc96ff692e250ee1168e5562e943697add071de60d275f97daafac026f4f330d0ebdf78ccf4f5ffb5d393bcca0a4daf9e5857ad6c568306c0dffe7d4b25e27b5709d80f4883f2f4f2d0e8a74b92ec438046c47b4acc70d74e45a802d44196251f0def2736668cf5dea20849d102108bd7c1a3b7062dc8c27f08c6e9e58bdf80be8ad297e0a345d5fec9c56e2dd682e6e8f83c906d96b535d1e46996bc48bebefa31a994a8364caaecd14359be24c1fa429113e7138670f4b0b83450441e41575cce13bfde72f649db05b252d8db708c1ea907208679afd5f4f6aaa47ae67303547a2795d7fc6d640968377e36452ee667b1fc95e4e00d850d35187b2a5bf6a14d7b1cdca7444a15d6746522f25b505ce5dbee34c3c90ddb5d14ec017286fb433a8939e626b9aaae6a00362aec1d644ef01d45cd6ce39cca54125b80e0aaf7236cfaada69df1213cde47bf7c66e2a685c477dcfeb051ba25d815010b414708703757ec2adf8ff68bf6994d53852d9af571d0324b82edaae973467b8bdf45abda2c76e716e16403d953c2bce331e03948d6b27fa81c841d23f2bbcd60178db3b8ef769cc7a7c35667d5eb5129aaebcd792f8474b4b54628e64ad7cd14cb1f26763257c90e2fe223e122882cbd6b4667688ef98e357988650b70597b014ac487d5b95fb7dcfd1feab4a875e76bd17074917a7ef1d5a1b1bbf44650a49bf976fe21ad72d31d91bd628890ae0ab6b8062d111d441de4e7bac80346850891deddd0e437d6d8f110ed16a535c9c1873186a68b13b0f10a5dad3dba0c14b3beb544306f57f4f302a732b46bd30e8f95943fed534d2ec8c93bca12a8e49384e236b63090af902e1b291806a0a595723b32e2bc84a94dba2f767ef2e9f7c808d7457888041ffb6c56eebc22671f2eeef5f865c69908932a21b9e39bde4195029abcb2669c41317b1a86ad43f0f6b88730ee6a6a34edab5f21e415e33ea6851589855a1d9cd7598e320f9cf2d3d4296c51324248b99bd83a5eaa7216791195ce88e598dcc9e77302b4ea690a056d9bf1c6c148049b86bdeabdcfce75790d5781405c5daccdc08ac560b294f5f1ff08a321cac157391c6c4b05656fe3e8fbe0328f03541be0a7423e3943dad132c513725c470f4ef03c6c3436606b4292e9a3387a8439e572ee08cf6601a6390a3a8321b6aac0a3798bc02e59cd13db4d21fd24b7976db3a76122f80d28247e0e3d91420531a58c935385947be95aec39837d3cd15b95c849e4033c9cf01992463793f4519e802ee7ff94188ae04341f77b9ff4d02ed489ca4f3d6692be73423aea0fe07711bda9dd212fbe0c1d36f3e5180ef5ca3d5e236d7079f0df29bf01efced2895059c59e69f89d2557090f41c7625bd570749992d8c1516d0370a8ea089d10df7fcbc46ba9b1afe8f83d044089951f48e020b72633993a8be6cd138506f4122339cd61e8fffb67e1556431503a2b609469f80ecea17e8b06279e71aedf7bd40542da1b78b040aa9ad84a47fe0057856d656fe6077ae9c15af10b05f5f7e2e7e158f7fd519b4b15b616d8cd5604a59a30d9cf6523ec5f75f1381e038f29ec5d62a40b7c84818c8aeedadc39c7aae6e2a354bfd71712e81c9e8122e8d11bcfdf6df8b3be5493f8c24aa0a2bbeece07d8e22869b55f9b2052064e4b2b6c10d578e5207764ccb3fd7a22475c89a95df8fceac1c17554fc74485c6daff0d1bdff7c0ae17cae3661628daa1f4ac3f28236473bdd036cd1bc23dc3615d88b29da279c8932badf7b46014cf7ad68032dbf5aa74cc74919bd52833c027dab146e0d3c1064ede6ddb9780957edd044b27915d15df7aa497a7351328c91559853fb9c9784e7307ce676b54ff2338473d06a13186e1a943c50155d726c3458b87764519667471965ad94b44273977c30156db0c52cf0a2294418f83a29cf88a8401ad54fe75d2bdef85f8b3e1d26b73b6f58eba6639fd57e11e35063f8d445b55855d59c83e798d18e47d5a58bbf01f894e862d2fc7ab1a5c7e9bb59de924182e239f4cb443bb3e7b5a4bd42803032bfb857bebf21029c7dd8126113bc8d3d72d18dac0ecb80a1d65f8997870050fdac159915588c3ce74d84b4508b5a85cc8baaf19a8cb7c110afe83882ef4e11efa9f7db7b70f770dc695ebf6302a9d2573b5e72d7d14e44b62fc762e0e58b0e6b442464af9996b01e6436a43e2d07b3972f27ae7043d4539e66d23a352c43d9e41fb297c2205d100806f00a5aa814f9d83bd28014af96aa7396d8f6b01693605a2cf1e4d9ee35334ed1db913869f4657454b98b6c18fbb1042ca875c117aa64f30b16fc25501fb32aac607ec6800629c8dab7bf8e87a6b21b051b8cc9972845e63d785fb95fdc150af9dcedb4abee97a4be07abacd1453e607a3d97343e499263f7949a23df69a2e5a373749bcdfa8260e6fc527b06ac347b73df75902b7abb28ff73a5a6c5cc7d3a75474e1bfd8a306f57867b5d929dfad5f1256d16b79ed5620c5a6011d14124e4220b5385ac38d66c6a799379b2f88ebb582135584171431e70b84334591d8b5d640e4db39bcdac0d6bddb2a4c8f2d7c348e8eb04de5335c29a36ce8a94d61cb3d2c885afd64f7d62e13b1337aa915e503c2b0f1f75c106b92669c0378bb7ea27cfa7e0c5c6a68dc8394edd4c1d807ce69715796401211e58623e469532d529d0590105bf7b65fbfa126762b9fa80f0ab0434085721b996619017c33df28637324c0ce95f1637171b792eee9e21d460d0e3525e78e11b00bbc59da44489c14ac50489d85b2eb1802c9744054630d1896b25a56af459296cf4054e9c029677e41c7b719cbfeadba4b35d222a374e542e788296afc487bdcdd4e3eb092a3191afe0e313243a54bc3d6b000000000000000000000000000000000000000000000000050b11181d1f", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 4, + "comment": "signature that takes 3 iteration(s)", + "msg": "1700000000000000000000000000000000000000000000000000000000000000", + "sig": "933370d9dba15cae6bb2e5bd527aae89aab84158416edae3ec8b082123c613727c19a5d36a429cca70e084aacbe5814d43c86f6576372413458ff12fa0fd9a971c0c9599160348ffbe5a4eb36cdc471b1fdee78fd2c9ff27850cca7dcbe1fdc7952685aa1dea344233972a5e98dc38ac5fec50d6010bd62602b326e8d25f4f96ec746ac95dae223fca61f87e374643aeb1763da40f25619c1b759a68851b23c124c669d8e40b8178435d1c759a4d76ed85b0d689df4123a28221eae8aae39c9be30ad50a9dcb5dad392a487dfabda8f00406229b89a7a2ca5bde33076343d26f7f804fd5eec4425562938850ac8424632d0152f4a3c2333c784016998aa5d1670137c470d2703b963e8d1d75aab8adafc95b611a6c798c5fd989512ed5c663e4b5e4a75ef651c9cced827632ebc92f87854fdadf891d61b6166a0e60a8c43212566b5923fb58ccf77449fda7a26adc43070fdfe51f169bdea03b375b9eeb9003fee45d4a35b94cd05c2aff37d73fc3dfcbb3c0730dddbebc8ffbe931c00553b951f3f43721fbc9a35b6a66ca1cfc7f3c3156174e392bc0365561eecebe498f17738efda8fb3a84b1c0372bdef2f2123fa4f2c3bea41f68fba80987086df098d5b723d323ef4118f82da49141e7a0f3482dd73b09a6a4a4ae7afeed28f4b2a17fa2013256e4dcf58aae656a5a5ab7329cfeb73d90ea6f3a119260d812b6fb18bbfda9c23c96f1d2e35c2d847a9108e626a8f1a186da2531045b2138a0366286c87b789357133a838928b943684c3696af815a427343add25c51d1826fc48a6b9b1083060279af15bd4121574439aea39b97e20b52e90bf9bc39f1cd306b89c014a276b76d0d46dbe9262e020cb75f7bf9c03b1bd1aec2374b3cf8963d620ac70695f210b95d401d61c3823a9e486c5db3b5a7be095915bc0ce03fee3e555f76c7bc8179c5c7088e0dcb4d2b9ebfb9cd4d44e94a9c13e5ea33e0f8f644021b16bb124ad74a3f4b974516cbc123294d554a6c3d619dca00a62d2229fe47d56e97fa63aebeb84f96dcfa272b224983d54190f50da0759dbdd4168216d0b17cd29d717dd111bb2de1038f09b52b996d875de39d393247b58f6af81f228fee3598a4b111110c125b71072c483de8b42aac1b32570c3b703cf380eb718f37572bb0b402ea427fa711649b193e708dff17a369ce430033461b5746c887d7b0d885535ee4701f3177947e66272c5b76c9dc1bd927d5441fa3bcb06acb2463017dabc1de7bae9a73262fc5ec075b1e31e7d7891d336bb67b2b28767920bd35cd2c81082114291d1e0aee7a285fe0aa6e033124876f5f0526611f46f99dd9cce92dc67a5116348020f02890ab1824781c434fbf222247042953f86c639b90bffe8f22b6af5e219031ad3a093171f88b1e285b9aa37fd2fe901ded5853ec762892477a53989be6b56d68668ca30e3de42477dabefc134da18bf4aeef27e5bfbf01c9a26e03eab7f77275fdc9a7a762373297f71a522eaffce5e5774cb46bf270eadce581e95dcf59878afbb0d357b5777aa1b9605868273c2405bfbc342fb15fe6e24184c98a47142e4858a2e05fe2f6d7c1cd3d24587a743e5b56e4a74be19e8a1b3651012a4ec6cfe3aa79f008cae2c72e130eb21969badbd1046a7982f53080ae1d05944bd7aafeb0a8eba906b8a6bfd282fa84c60f8091bcf683526a7ebf458a8e38f31aafa2330e93187edb8eeab52a41923596bf1e4b17d3fb258be9714d73f8acfd6160c3d3ec5088a717f8f95ae17ddb97a62d8eacb41dafc8935704e4503ef6c2711bcdfd7af7f84689655018d805752774a38480aa44e8bca3c63caaad21e999185b11a25ff91cc5f0ee469b5a793c11cc57d39ec4d990a1065400bd4d7b1a8256771eec57307ddaeff11ef1ed288e4a1846085e45d54eae002fcf6d977b0adb8999d3d6f80d549c49bba7f4b444539a7d6cc35f045809eb8689d70ab8c3e237113f12674f57dfdd17deb72fb6e387c8bc633610903a77dd57816cc0a6e280a4e2f33a0af1aba75332fac152fadd4665e7610753b7085144ac0800bcf188ea0c19f1d4c27b5cceeb603f4f7c88ec89361821e0f226516d19384b1ad1c416484b0716aea2bdce885d36990cf6524f21615229fc002d2fdb242363cf8114662a1d1ad17bb1b6e72432c2e7e137ba7c93ea9f273cc80baa30326ce14e17df0ba54ef2ce11e2f34eb44927d3a14397a04a3b6fd5dd1e73a73002f7f1d9d1428f6224a11a8d36b0bd0034b5abfbf02dfeb655f08f3e0476e6e6d6d9ec947e2e67aa4f6e745365ea91c025d1aec010fe1e7e938835c89a5258a9e0ec5101a60bc70c3d0a72fae0958bdb67ff5422271061670247bb6dac5c8b677492676b57652edab72c41b09c27be11ebded986a1aaa642e6ac8c7ff7bacafa6f8c46f4fd89b4f0a01c70a7a6e7e9282cc6b54e22648e1b65207b8d7004b1cf5f939fdd8ff53de649bdc90a252c7482ceb3ccc6ade3e87d6aafe6b8b8c06d66a4463ae93600d530da0322586d01e12f5c74fab208cbda52f921eb30c62f55fadf53f4cedeb7d30cb6ce9645b0b5dff6a016817dc1a0b9a12154b313da604a1782e264a7cda600464e14f08122b89c70bb254a3afd805df6af925b80b90dac6e966ed6cc7a98e394e9db81c61f193e548dca9744ff2c8c81da5d5bc0ad30a35e1684d9138c2a6d8e1f8b14e2cca3bb71fb8da85c236f454bfe35edce1862a11c69ff1f14c186f6c2f63c1faf7797321aab3777eda7a7eaf43174c232dceddbc5e7eec0c0310d3a4b47b0f058197283d24beae7a235db0ec16bb48fc8ec970e3b7faa4d21959f4460d0e69959b86d134d60d0af83d660234f9a33818a12ba69cf9d26cbcb7919e58cc9b6f3ae8949fe0b3eaad07faaf72c192dccb6c8f3a402cd9c7c79957fd02b97f49bb77c3136462dbaef60e9e49efd9b4ccdb85bb674b956f02deb3714fa157ad108925bb171af703780ec937aa00059052274aaf49239edd76293b358b9a8d12f31f6936efbc56d0c337cdbbe53e9849952c114a58ee46fb8f3e77606e33bd6b504a578af9251a6f0ce4e2cfffc2bc5a635c53742453c61ed0b3769cebaefafa6a9c96ea7ba451792ecef7f42c72b25e51403705119c704dab75d5daac4b21315999615a1961d471dfe01149216985b70f02e132d25a2255be21991f4b2805ae4ac23df53331b00f8d04cdaf4c1524f66b24e4de46923bf497b0dc5df968599fd5dc785db98a3c4f331cb143ae77da7c56e8149469d97d11bb82e27b0f724b1d897540c60095947c5890f5ae59cf47454fda7e5239dec35c43e70cb852812cd8513efae586a59ecdb5deaf12bde5e64cd81f2786c1b28ab8cd81d5934157a72d84b7e819faeed9490893fa0d57c8e2be60fccd08b6469f286ee86b1ff9b1f01ab12644e583dcf7abb82d63c7f747b7bd6e92c3184c0b21a6b2485ec16e3cf56b8990a1f270cda4a7b3ae107787edeeccebd2926a0a9ba57e25dfe80f926d6d144ae981f1f22bb1cec9f5fb74a2d85d54ad0a36f89fdf74b529da55c77e983c88675dcfee789c2c61ef987e63c92b86610fb5145dde6d4e8807a2345ed9e6b52891e4e44a527a91ad9fb737e821b7e4f5a43bc5d93308f87872e920d94d738783d8d6797fc89b7796472c74087e890330cfdd1deb3fde357b5b7c7352dee21ced6565292f744d836cc10920f9be5978a8d697f0e2c75beed6d0a9ec750966e58ddd9600575fb4339804cfe7ea08bd193cbbdf30133ec8ae5bc6e17ee93890274420b0c641063b2c5f5932f805681691b445054a2f8b09ac6ea4cc3b5e70431b5cd65d2842d5772a6be0ce1432a646e5856f3890e2e412c18d780d61bfbd6ab2a32c945b01bc326c01c6b53fc56778f871e306a501951d795ae5e70cebb2d8229f31d71cac228cecb77b7c1ae57806151a891d758043afeef3d57950cbda51b46a57924930238e2c820a0b325ab02d3c7085cd63f080a4ee5e16ddb191bb3874da801f5f14f37a734a943a73ec3b8c7d6ce0fe4aa1a4e33ffe069897658912e9ce9665efcbb9e63bb6f019cde82de80aab64fd3f0105898392c096cf7c88c2e757cd758a327ed6c524be0b150f80ad1e6c5e098f6ad82baa82862790ef3cd000b0d6001864474ed836a8a79becc1d280d9b10c5693c8e0a35c2a475249f2d9829e17a302a191b210b21b72bca020351fe64034082ad615dced25ecddccbadbb997e4ac3f1e6eadd8baa206101952ba02941526c4d41de8142be857baf927f9006bdfe952e51630b19438bdce494ab8a56fb2d32bd7c0b4ff7a258285a4df89cfaa3d437a99cf0ff4fca0d7e07e972b593e00fd56f5023697b3012ec2b79091b3850f48754a5ca1d643dfa20cb5542be4cc0c88facefaba58d040154922ee6007ea84d022e31e58f9657c1ca5c5fab27f30446e7538255842f3abf57388db45278323cc8c191642f8d1b5e97c0b173ac7de5f2cca4e8acee200981c2f5009968893a5820663c41f75fd5842f56b6657c60a44320d01877f5808703839a42a439a14d04b6e559e1cca6d4713ac0a6b101368a87264582a9092544555aff5fbaccfb1b1c4849525c90a5ed566c7f9dd2e6f1f47987ecedf800000000000000000000000000000000000000040a0e171f24", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 5, + "comment": "signature that takes 4 iteration(s)", + "msg": "0600000000000000000000000000000000000000000000000000000000000000", + "sig": "7c4dff99f029bc8a43bff5483f53e3d5233e2ae3358c21bced17c6463459952f95c5d288e283382e9315ea212a2d6f8e809abae806404307bb784e1a9d40b9b42eb75dedfe370d78faef47a77684fbb35daf64e9cb154a8253b7a3249df68687bebb1eb5dd45fffe3a2e05dca8f315a3aa6aa1d2d9e7f2adaa2a92a5dad67eac8f37ca3fa2f9c64c97222d786735cd06ddb9787a7dc7fd4026ef4c984186c7f695461afa65f11ce018023155da1b3d7c13eeb2df0ebc697690295cb70b5c08d3ae431062337ad205cab5fa85531639a0cd3d3dd03e503d36563638228375960e125168ac95870f9f40f4cf620e97fdad9590935cf3acb818e6c194829e6aa80aa19791dfb83f9f84b1aa98676b352e8105a425f2606eca2b23faf20231c00222c3db547123c16f0c4e72eb1cb8bb3f411b882b2f552da45c957805aaa752ad9dc24984214b527e398e088f729e1690fb7f6385455e3da14e5939e85ad2a33225223972db3303e1fd2ee5bf1e344688620f76319631a7cec70a14ae8b41684f227d9d242c339584e3ed547414404e4a9eee931c1fafa16dc570a1a7c0b400b592afe14511da4f0cca1f474333dd4f48b8a663450748571325956eecf5c6cfe984377055e39352f07d4a3a95a3a41aa5a220cc39283066fd4bb2696cdf1b71fe837b200cacbfbffb06bcad747619e6e5823d8683e7ef5f42c40b8fff87d5f3d8882d595c192e7e941390cf0ffb1f5ea864ce27558229076be5159067ca7bc6e46af17f5270e79ade6f615c5b25c8acc461a26c7c6e30361654319fd54094f35efc6f50f7a9d9cceabf4260917ee95a191c0b95b3cc53317f60f57d151f8c767fbbf9358b3956734a1ce14463ff88255e5c735778aca422a1e0266cc5a111611539e699a928ad2c67a53ced4635dc866f1921d4f15d40fffcc599f2eedea3cca120d7920ba4ea1d0f96ffb5c802497f020552446d319de1d3b07fb396fccad4f24e1d602e2316f3ef658f0a8c465b8beaaf7f8471cd3282a5d3d8ac8db08193685f37706c43888c8f22b0a182b3b8297aa22ed5a9f464da6195fb380861e40b837fd2dfa64d7affd8b61719921fea3c883cfb9a8363d1374f19616afdb36a94509486cfbe7566bf22d017b97ffc76671930b17c04f92869ac903eaf3f291d85b8460d612ee7b6078a09b958ee53017edb9f14a8692bfd40e53c455d3295ef7d09231d0fa50ca6174e5c89497bbf3b3599c038a89df8a9828a166ed3218f916b0b036f540cfa9ac4ccf7de613f706060877a5efc33f7c28f63f5782c582495bf7bc02c639b23f9279c695cb738670d9cc6381486c0428047fcff70df16389d8e50e15831713dbfde8f87ccbb008df71d3d883a1ea7b6a16db49536f9b95373b93dd6636cba0305fff8217eabe9450c4e2098dfe09d5cb70fd9e9cb911d2dbe51b86b3ed4857821b5203df5fe28d86056f152bc56f5ff8316a211e5cbc05c4b70dc68220e1bd8522404f1402571dc20b97808c707a0f88a582a18bdb3d29321291d3127d5d889e7acd44fdf8df4cdc503a974cadaed6a6129302359be31ca7138d06be2b36d0f7985b1e165e4fc92456e5bea6f4422b918ac61f83416eedfa88ea1d623654140265f9e8cd08fab25a278231ac361a1f2e41c31fd99fa304e4edd83752c424aa0fd0aad2056cb1a5d8f323a75bf799b22c0aa2100a8a22c63b367afe21bfb47fe09b8282b5d8b3200588e94318ca9adbefd1ccad3e1b51b3d8136d8919b5daf30d9a1c26b7f404877328d3bc75eb04f5086b1addfcc6fca576d2f294c9af5321032a40962b38d09483acb1a297da896c3b262e9fe2e1a01e4339bd9302a9e18b9c9738b5f6ed919890c019b71c88b00162eff4e4bc0cc42202d20d7498013d1999b498537a06faf3bfce5f495b3b85b2ca59c3f308bce13ed20080ec8fde5051a0edee329a95efa552d94aa93fd40b688974be5ab661e9828cc9e98786c9cd2c93a65ca4f0beb69893bf4195088c560a869038a060cad4b2e75d459c984d73e7cc6286b00aa4cd3009be25da507d10ff6a2d9a8d9da74d71a1070842dbe468e488b3cbd25c965ed5f3e8b8b4299b172b2a3759dc0e4b7298c4e410db2c91fc459b3024967b1ff9419643580be1c2a5265288a930da874f67a93d34083489a440d28e461d5169b81b0c186e727b7bddb008a9043322bf8e148407e52bfd3271489f687f81726e624744c3fdbf23e74362be766e57c91b6884b3026b2715ed8b0409602cf7d41b0b193fa607231dc2475973b76bf7baffa103bb4d3202ea689db064bd77e466167e3f8c44c82631a94ce7ec090d8bd7984dbc365549af68331d5786c042defc40119c13709d93c08a146a1d53f967ff9aecd47b0873126dcef4c9ddd7bd4413086c3ae64daa9553119a0b0736d686e9b5462834094a7e74b49016b387bc189f2166aed154a646e59ea02ecb8d396b3dedfc75236177af79c943e81c8c2fe4891c2359d519f1f0a1bc6c28df47c1765c5880ccee8c46b2cc5fba64e1714f0cee54fb1f82ce5222cfe6a65f1220c70bc02383576644eaf94ba74bb0f2783ff3afd6fb689b9b4a495b5f12701b70a86426f76c49f8378a7875308e0d3c929ca4a9af40fcd75852baf760529d232d38b4159ea276884ca06451c9a8a3b1ff64e72cd0fd170a1df82b344dec3b1d81f62be5ff16e346f7707fd46032d0c39519c1eec878293d2745c0198d25323b3a0f3420baf2ba7f13d770430356230dce3150a5be083c95cb62d291153b15779b92b1e7dd2168d6d75743516e737b2df6c6dcaf298631b437a99e040b79821816b7e7760b6744494ef192626d4143aed607194d62849950685454a3e802d4c1ebd70343cbf7250eb55f5c7de9095a5a7265654cc9692fa914187d933db141a6eb2cb8c3a74fc3a882f65f8e2684d0a280cf68a8b8b4bc09b30d0e83a45b8bd1b1039d145fa994730175d53711f99f8d28f833fa53e01e6613fb831763b10a393fa05856c07cc5500bdfd3a4385fd993b36060d11eaa5d0802513080a4268114fe21599ac1a484a69bae1365d278608784df96a0f6f0f2a3dac459958118ffb80e2ce2d2e59dc0cc8826396444279e031b8a37f3b3b57e67207688d68d45e1d344b64172f66801407f1cf16190b359ba1b65987b726f752da5378b28e6262ecdcafe786fc9d73d9620111c20187bcce5550da1f82333333b8678d877e07367dbfb461fbe14b6c631efae7aac1f930c6e19f9a24565d5c121157f999cc61261fbfefa3875e9f7c7828552a9c816b293a93b44c4fc8ba4235523cf92efea01efb6f71121a8d8ab051300268a5a15ee6cc8f67af72fd033838c7316c7534521eb1fbf028ec0c5fc41d5f0347971ed1752fc9f2e8ccde1e7249df9a7386872a9b391969aa1a7e175ac0e2d67a8dd244a01ee5c1a9e28dbcbf93a0c570e3143d8fe42ad4958ad7c3f676aba3629f57c3d73c96702d8d85a7e158d078e83a18fae5e0a641ac36f83114bdfc4e3defd42f95f21402191ba0bc8264d3eabbd6c098368253d7b72b5939a3186b1cbe84184a69c3977d9e772ee1515fd39c70ec58e79033d457d04e18c61f660b35f869809c4334d8ecb524d1a5958aec2330f3ea03fa9a40ba38195fdb7c87e41b36f3c1208103588155b51da98b04d77a17ad6a4a34b9470030b4ba17b4d68e5766b10879327c1fcfb7b2c3aae17c2e9e4ec4591fac2c4ec655d57670b9d03999c39c003c94d888a33087df8743dff45fa6bd17816f08d6928903a0beca9681c5b9b2dbc0b86c77a350438561b8089a5b89db7323c680f167541da4388b3032825aa01fe6b313ff3ea1eb950f3ae61db339477bfff17b02edc3758281c21ef56eb0f119f9f766fad84f00eead21481cd2cffdda423b6ef36dda929e8bc202d83a26f7f2210523fae9801449549e1a5408e4e67f71c5e4ba649ab92ca80e7405b374cff399552bd67cb2e23af1a523c82d1b59cc216f4fc145a7d37e3e93005f1e80f20dc6f1c28083eb9df92c419691bf409127779aeb5eff0ba751ecbc87a2e01a28ba7be40518da2ccb9bd64d7c1f4998246ce0fb821155add716cb735e85036d4c891a8387b0a6d4075d0931b4321e823393c69c66bab4b7ecfc0b0be3aca9b9838dd104e6012eaacec40295bcfd4bf014fa4b30c4e609138de329a4aa6db6c8fc8274da94e2d4f120e4eb349acb075337c07264465b0491ea1ef1d530ee93816253abc0132500b573713c4399c8e3fdd7386cc736a2ca4e8ecf903ea13a2ae0929072ce3894f54103f1c1bd7f700e184ad61e2054f43bc18ead24d1ee3dfc7d7d4b901b692107102115ed5af19c94b5024a0be4187b479d7a704d0eb6cebcaac1b4d9405d464aec3147c0159e852ee41cf82887261d1df5953ee611066a574ffc61f6b03601202c678adab494483ccb6694a26619b0ad7fdf3de777d21e56ca9f00aae7fb2e2045c9c2e7ee23787cc3fc6d08822b34224f77d5ab5afa1226a18570827ead6dccb028974c33a5785cc3f611188faf233b89febfaca4d7eb5afde7b5eee064cd3b99f865392f6fbd6af39b1a943f4b7094b3d7d9e5f61b4d9cacd9a5b2b438618192ba0724c8d4d7fe00000000000000000000000000000000000000000000000000020b1013181e", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 6, + "comment": "signature that takes 5 iteration(s)", + "msg": "0c00000000000000000000000000000000000000000000000000000000000000", + "sig": "5957630f7c1e2cf91eb85656aff138a7d6627d1c59392d5c516219d3d2fd910e226ba8fc718b148905489d47413b3bdf6972a2395ca215a37d384b4ddf51f394c53fbdf10d8bee17811d6e43a2b8d4030d402a7a10b5cce9843c4814d6fee3cc9f8914c532c8bc5866d0f16efc8e521c367dc8af5f7196a933325d5220972b5c2b466d87010b85f38ea29dbab50689149ef09e90bd5e0f988f965770f75c27d075ac980b0d8b1381131e536f76182ab9b755622d176c365647e2fbd71707bd286be33ec48e340632539cb5d318b2e40c2a941d4738a40bdc5d2743a8fab723f464e49b601d76413187429da0430910fb7668f1c79fd0c02bea63040507b5a497a65b654820c1e647ac708f4ac8cda1adfa5ee28a944bad5a992a79c737086ec03dcd66afb04e622e0efaf59141bf4d5e626e437c429e843cde7a287222a02647c1856aec463996d28ec95697c5461728a1b06fc7743917d7219c04c6d8b0f8b8aaa1b02a82350da7e1f2958e0b5c0b096f459a55f37c6ebd412b5cb08e6ece7ae3467bdc142cae85fe3d065d2bbdfecb5191966457d02bb1def1a7e373c36696d28421fb769ce29858e329f1f66c4b130a31ca8ba94ea145dcead22c2c56e9f7e4106ea977b532e1a7a9d55d43e9c5208ef3eaf170e63905bc6d030298771aaef8529c672fbbd68702f6c1bcc7b37c884615e4394d05e38d34e885eb12176c6c33af56fe89c8ea75a50cb343c35eb0eacbf759a973b0f65a054488de0a73f6db2d1e1cf0ae9c6f8ee44d7416e5a42ea6f582927b91a8510ca7c3e0044b4e9e665423c1fa079076780ce663aa8ad8419c3cc2d7951aeb4a4658d6e74d16543ba82dc86346469736344a512e304a54ed6a026933ac95e2caad31de54e196f21b9a7ce8572cc9f35efcbd678ab7f3e9db9bf505b798331464ca6dc6302b41c8c0b757aef052eacc2646f0ff0dcfa6d915b3d066a14bb1e439dd7a68a7ba0980924666abe8e95d4153015627c5637efc81f97cb527fad1eb65ec623a713266e655ce24f5625a5ceae8004887a4ef127832bb89a6e95a8a8489ef56aed8fe51777d46c883a1cbdd2d45ac6751f410217d511d9c96851199b4f1075bf836ec3751aa13478562ffb8369176f14b7507d6bac3dc81378d9e94a861d19805c09e7d95401503566eab2487e69c3f9852298403a92d4c1522fb08e2c972918ba5e319f8d1e7fdab7b76380148e902138bd99866babc15f81ebfe5c11a2b8cbf306faede35d02d7553588ad37168aea5a046fe59ae78ec8523e2be594d9c7d5b4605b23b58617ab691e7acac66f27da0d17524ff04d7b533634f68290f83f35eb15ace70bff19b347f7dce405ab39ebdba8022deeb66c4fb10d16c551fd0f8ff9aff94cdc1dd9e1d282c2e2427da2bd1bcce7e0a7bae958a69e9490aaf7c88313a67424ac98d59377856f6ab8ec7e397616e8f51e86f852ae88e9915a0c5b0ad5e57e778db7fde223ed85e53743ac644d39c726bf8466472cc2c900d130a8d0b46b6c400af2446046e83651c0f86cdb8b96a8ece9bef26184d920b35179a033c40f94a00977b24a37ce2fea80ea4679d975f44c918470ec9a742414905e34b49487753f04e66589955b6efc660d91d3525ac72f750eb4e0c0eaa841830ea20b9eba7f43afcce8de1a82c37846fe08657875a612d00b9f6f58f1c07b5253d86f83966517cf2dce9ccf4d1ce3fc0b9aeafbc73d92e7ee4eb92517cd65820116b2de4ba4ed54e117e635ca80c68984cc8c6a8d5fd2e4f588f5abeae6227d3dc0b1355838788306c71da6ce90021deb333cd37b51bd4d0328de175b3850d6f33df7dfce1cd15bb0fe5bb251bd92fc3018cdcf86e9a2827dba1d45cfd2dfaa210916485e5c2662fdf801fe8489fee76ade3b0ce6be6414f5ac89b64bc797902c344bc5ab09eef3cbf92504f361ea3aa2bdf1d9d1cc694da990ae1f4fd961333fb5d6ad724c712bb6f216d337ba6130f40fc8af64c43e51f4674a7750be251d48d54e14b81322d655d47d9a60dc14b0b4d5fefebbcc3fd54ea6edc89cc05112ace53e0cf7762cf58134cfbc02e288468379106954a7f427ade2230cf80ee385d304ac6991d63443ceca1a957c6cd1cda5b65f4538d0418f054128b446c54fbf549a8ab2989ad8bd4a2274d08e155bc179ba90e75960df884a01cbe8f52d95625b31ad4fe7eb09c552cde89913e16f1524b1e2cd071edeb6318fcb145f08f68bd5a8b7e270be7d036109418c605ae7da18832e7224926d41ed282146ddadb38e11483e9919ba9930564f96676abc213da990f30f46158c101a89114ddf43c1844f39b674866c824baa440dd4857bee3faceec67bd0a62a12ce10161c0d4f2d7a900d33dad9ee0287ece2485664b96a83b96b61c1fa2699c603660de49a34f2dbd7c4c01e83cf4b0e1990221d6e242bf3b8971d4b0e04182585295f7521463c335df24a6dcec3456f721d44261a86b082ec1fd8232ae7a6510e086684ea01a8a6a0cfbc6deefac67f45e8a6b6f2de045b2fa4498884462adc991e40755f6d845eae3523b218513e4bf0e071308fc78043abad2f357bdc75f7e551a403e39987df2ac1f8668a0b75220c3d55763b08f968a06456641430f13559eff3aedc6fcfed436b9f85c799e8f94d7c90dbb5403a660b2c830b630876eaeef80bbcf81cdf769cb9024d0e4657308d806c10f8a1bec1da5c74799eb7bd31ba732f0788684ef66882461200ea5454a0e5a564150355a468f2ccc6fb67bb948ed4540709a0c79562af61bbb88c79a54e5001c168beff2f34ccaf684e46fcad2b434f55a60bd0bba8ae2a894fa8111d6469b6efbe8fa7537aa29d8907ca23e06ff5bcfc29958b288556932fc820f91de7e7a8a5d5a3a2c1e4254b647a82fc17661688ddbb7a518bb3774b777aae991e72dd60cd47885cddbd944d14be13beeb5c714cbf57347a224af71e95c26552159ee9d1a04ef09d167ee33564a4764ed53a08d05fd40ab57039c9bc2a3a6e1511811b7c2020755e1d889f552a5912162b729d5617c6acfd6a5ca7bfaa336e727c13eca15d5abedba1fafa451c5af1747409ec8e6cd2fd4c7e4cfec6235170cfe181262e1922d23aa2413b51c2bc848434d47955ad1bf19b58f7b27e2d38231928c72dde3f79420289060e48d988c96dd410455e4edc60a5cf78d57dd4769469fbfde9713a7ded6d1b735ac8161555bf97a671dc350fded988731487ea9c13abbcdb0d22f9bf15d543f4b7c1f72db9fdfb4ed2ed414de9349edda54d478ea1da24649c919424612002dd983105d9b7870f0b250964122051f0028229bd6f0877af38fc73a27e8e876b1a758612eee3bf94faaeefab2247f1abace705a3c587a260bba88b66a3ed189d089638ef0f55b81d34680a0620293b39c53228d8d80f4b184b628effbcc3e4e602037984d266d6767be2cce6709751642a2821b86f57fcd9ec3c0cb5dbd15adb43a48c5f5efd8419ac6f2606e836e39cc3d99e07562332ebea08d869fa7289d490590db83e22c5d3d36fcb8dbf6352a799661e358728359ce5c8e1c580fcf24a91fe91e48de5555cf7b13aa9fef7a3748225a545f17072b1739e33edaf4971a320e13056ec1df53e1f14a9180cac5a0ca827c8b140b20be51a6cc1d5907c5d2e579e97c8dc38653987bcd69440c6a5d4ed53e21154e03da52af3e1c377d1bf32b0cc45c96c96c3d6ddd4472f237c576bf63943e9bc365fb30cc2d5d0556dccb8eac3335284f514be897e62fd78d1c9ed301afaf026d1f257bced72e52946a76b5c5ba8231e13e34dc598e26d3366b73d11550df1e5f78b45b250443f4fc38230f5883e19241c761c1b371a45e0d010906bd8925fb3a62e80bf9618cd0d0d1b5e2f9b75470b2d7c3819bde2ad4cbc796cb97dd90e5145f20e6524e0fc68a23a7488e86d9730a0a95fdd73559b15c0106dd6692b85834abf5ade250b994f74f5c789f329f8bef8808dcef76d11ac5acec3a26ba7bac871198668186e333ef2b3194662bb40056925e756c9c15dbd80fd7089aa43bc91d90adaae64c2e23854878e7bbbca12f870b9a72461fe331dcc5423588be2fcf5df20bcdfd9b771ad3dbacb3119c28e67d461c7e1543572f22f285ae3bbc2131732d2949512e622e688c6fb6224d0e358124ff6b6e2280501180903425f17eb2891bb6d63441d23ea433ded94e0929cb3b9c9b601a7c409a36d97862b545903c7cd6752b3d0cbc578042673e4b52510d040509a6f06aea689fb624ebcf0cb13e8854e024b82f8aa624a161f6a697d11e159334eb46058d591832ba9e7ca4695523ce4026d560b86a06df6960ec0821f428709cd4062bdf81bcfdc5aa0e49671e741ee9e032886c2180de9b5723f08e5ef343e4a76f86c8096cf0d73c166ef584db07dcf3bff8c8f68ccf4188b80ed2b4f8127525b260f86b8b3e8518276055604f754b51b6d7c01cee266ff32d2136772bddd8aea1eda2ac41252f728b6121572f8f2178d09fe0d651489696df53954c291a8324e704a5bcd74ac0b29004242f4e2270e408d6251011b7fc3f03c8680cf633a798ae3b7898dadf1a425a6d8eb1e3f7469294f601072761868fa1b7c7131f23374daed4364e86a7caf2f5000000000000000000000000000000050d111a2128", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 7, + "comment": "signature that takes 6 iteration(s)", + "msg": "0100000000000000000000000000000000000000000000000000000000000000", + "sig": "e1412c0a8930ebd5be73cff29b68c3ad7426551e499553d7cab9b65a984cda37d793cfa5011ef4470dc57bf0c7d1c25449cd23c82868180997ef617a42d425cc5e1dcb6127d3b60e017a9ae1ac7dfe980debb098f6099d4a5d497b0ea1a063f863d484a697f9e4b87652249301455276eaeaae6e5b9c32991bb3a247f5eb6a64049c317a2e262bc9fbebaa53e1203d780aacdf8d8c1df9d104db25002257cfe39c49e88ee0adac298199ee0285aab5966c4decccdd64ff86a76da9fcb17765c10ce7ee8272595b0deccc58c8d89d11b78e56a4cc63b19d7d787988256a277b53ba7d99c1930bbf1cd550acf5c97f6f1b1bbdc6a9cd0c3be66672724e9acd89240987b0b17f9bb38b8b323e21b7df3a056b85cc41288d34707ddc050b8484598ede78ea295774222ef491f0d621509c9361b7c8537a4904e2e5ed1640968fa6dfcd828c8ba6e771f970aca894f0d57cd03ce325f4c3176b818f42f29c8646948b58796542da63ffc905171129418a349c0783ebf5ae14b3fee69492293ad3894345f07eddac036c40ad5215d4827de6a0ea0b4bd2dd86826c7f5c340fd2d62062a41c075259a9ecb3ace3722d3768d5a7d355373e3de4d6f87a408e5bde672f414826a2c6714a706198723d6e41feb39302b155f775bdd01b7cb4925b75aa1d0a0d533a2fbdabf68d03592de2b24a39d2d093fea87ca57e16622e59b46988d7057540a511506c1e7c819d8697564e161fb221de02db05b8715d7e8cb81b96bf41b257fe6c5dbd8ab7e4b6cde8a7e15077b3318c7d6b7c301c0ef33cf1f1c65668ce0106a259a599a4034010f5809fa7e781665d866dec4a5be77e8cd090a324fbd25cc07929b773cd8358d666ed767db22d540829f4bc09c3a60448a23ee40e09ec699c784649331563eb114ec47c8f1731db50761ddd7c972553e9819db31148fb97d3b4c9fbb89af7e87033536455f9fefdf8566b6eb0100040ecd080287da76a7791cb90af6253e701d9705af96b3597596aa58b9b0fdd7689eca35a7aa7c21b71bd80c3921449d3c5c8d9a26bd386b5c4002c8050b6c7f2489bee49b18ba85652d4b528beb21f35c4c9ab1f5e7f5fa4098b2d470be2cda7087c61c4f40e771ac04193ded1c45b0ad787be20acf7c9393671c354dd70e93618bcf89f684c9fb7c8fcbd004b737a65350e912a1945fa6f6f082406526f8b8b4603e171b754a3f571b7933e07bc9971ed2c299c4bbb4293b3282e34fc1244ad5c4c985acd31d4f2eb5b82e5b5e1f00c9be628e0a317885ab6e26aa7667c73c12f541cdf463cd72798cb1f7908d2945a131ca8ac4ba6343bc4fcf7dca98f30b0feade3f0841ee280da51d9501b5ceafccdb8319f9b32df23e74a12b4b61c44b3005ee58160c85302c141dbd6fe0d598b2886824b1bdadc874c530df612fe5260e996c6d289a2a5f3f811f2b50cac599477f9d8400298981654013858e4adf2b6a67daf24a5099e9a44f5dfc37b2dafc4aa738d4690f9650f019583eaaeddf32ba74c3468863cfd565d06fb26601ea919b68985f5b7f036b2ef1b7b0f6a738e292be4b263d30ea5d9784221c09dd6bd77f26daa6996bce002783305e478cc1cac235da49057da7f9cf7b8e25ae6fb02a46ad93ebc5d9440bdd07018ae26de5c51c87556ad561f3c7e130a24685f3fb9e39518c1e9d26c5be936cf3f9f08c464fd0a32502604a349c8956541d94cc0f11bd5a0733737fd75ecf57678264e63ce8b5323a0630a40cd6032d62ed84951427a5162ac1685f8682ee7d31621f6a77ade12acde5634bc44b21a2e1cafe4a689e0d30ac3d03a6903f75393be77fed6be1f970a4bd7f2e666721e271e155223c03c7068e4d9b348159ed8b09d14df65f4d86ae612ce3a931fc4a66c60da424d5c2cda9fbd7115b771e3262ac7788c70f6c0241ded2b9dc0d936e613c795f69d65539fe00ae8e7efdf07bc068ea4bb9bd83f5a64e970bae105036435bcfb23934dc13027ecfe3dfb7a1e9d3f7b2b07dba844598d4cf53d39fce8c0485b8eee92671ce8ed10b262e63944a1ee4889494917fa81e01b145b17fcbbd079e8574df474362fef1f48eac5b8a443973b75e72330eb03e15decfb18f69d10343f2daf0cceca3436c20612091e3ba0940dd3a5d5489338578e0e90f3795a7380d577a67e52adf7358f2e7aaacc75bbb81537134a12771c1539ad42307bb2c1a5277c123f10b74216cce836e78d24dc3ad7e794bfdba4d0306a519cb122e3b2d5a6769ef54636f4398e87bd42b0e6229dd7f430f5c6bd610f9c67c68f1f7a687b98c2e5a61ce50c9989a8de3f53c975bb75b97ccdeb3e0fb7c26f368b29df709f18193b9be27fec820136d8bbb9a037c13b03e8ffe2484d948a284d505916ee424414c5daf57514fde0a84665b2c31e2d4c8fde45bfdb2ca08e9974ea9449c5f332cddcaa46140f08deeb3f0b4bda7be04446239c7af4949fab33b40dba8feed31d45f85507fc232fdad3c85595643b4a7f2503c4bfc4b3c55d969af6ac80a3c02af1f5bebd23a66700733b36f133951193a1fce5d429b6200fdaf383798a1d11f3cd6536d3f9d27b58a5388482279f925a8ec2850db90f5f70650b0045b4002b952c36b460a5b566fd3ba2bf5bcdba0378c54ac9c12ccb46c7fe110aa99dbae10d5cefab484a3abbd517db89c71d60ed26fee9d55e73bd4ce16d898ba426a683b842885b514370f6d854321e599e24edec6c3a0db6f73c60bb36433ec58e162d6ffe8bbf2d345421341ec22e1d25fc740ec4d3d78b79484387a9207b9b48ec8585fb9f6bb4f776bf71fe7834d95bf4c6312d430eb79877fc71ea67ec4080c359d4c4901596e93edf71c6b3ae2edd5d491dea03186bd3fb24527e7f99c708fba19d606cc44ec5e1ffaa33cd2710cebf4d4b5869230b151ca8472d35a49cda5367098cf3ad4ddaf1838e77476108ead4c399938ff0cbdcd226b6f06d5323c3d885ff1b043e6a32cde2e052c7d5c273b5354eb020a81d4f9bba9fd29a5148359750ec9ceb6aa9906047f1fe4191d07a0b018df93bfcd96ff4af3beec9c5e5eb5884b32bc84f66570b9b57f506443ff634056b504871e4b75cc1bea1ebc8a9d5d07c9ea587b70eea92b93f65c3194b343cbfdc28d1a76daf95303c9c4ec0034fca333628720bdda7a3373d676e2928c08684e9d24eed7d9382aae547cad5837d6e1be3e7245e947053ee2219d39e33218d9ae52f6b5eb487b0e5b16ac35fffc45ac1d832df711cb11b2a887647bc2c3713945f92103f3ee2a52ad946b0d38bc0bd92e701c7e7d4aea25e6aa4ff2a42ccbf5da9bb99f88351076af1fb4e7caa65dc23a78372e1c2fa09ba8d46152cda3ecc8a9288598bed37e4d11507e6b5e239f377d1dc5afac7fb38ffbb7b2d4abc6bd74771923ae17cde020b34151d2555fdc1c09848196daab35745d88b80a79ce2bc86bfe7397edbd9f16188a133b2900fedb915629b3104dd6f00cd1403f8a62f71756d614c0224276594d4fb74891d1a2f93f43157b0a6a4135dd65fe25d227be62afe953667147fe7d3d486bc6d5436b218fb9ad0c6df31ce8fcafe01b81561e02ad5d34a0b669345a74ae16f651fae91365960dc687b5738d98817b10ea8197fb807c59a47eb187bcd2e4e873bacce97e70ddcba6b4189a57fdf7d6f8b62a0ff3d81348db2b8b35ad55d9cf67f668bb89d448a751b02071d1cf812027ede8658d51becac34be3eea1dbf31e6177509c81f5e3a373fe9e2af88282ec5bab7d00c1325c6a305bb0e2b47989ef26aa3cefe6a3f6e7ce5873f215dabf22c17e5e6fb210da4f5b5f576b0800ae1d282a5d897b6164d3a32c5d0aa176df03a6c1d2850cebd40f5d97ee707ec307b13538fc3a0c83a95ff0ea2e5470e1b682ed12f9e65f366c45775a9365bf74729daff7fc0e9bb4c05a53bfcce1b14cfad49647adfafaa0059707d4d72c133e5ec878e9887b41656cbebf749f9e19c3e9c4f464a67354a6212f43d15af01a762d8c7445f7ff27cf835e1ce11c844e488036838fd7254aa6c2cdb858b7fedf7852a90a8ac7fe2504dfdc1eea60f64a671dee39e72332e407637033a9146ce243950d4c3d07c17bfe22d9a191ff01315fd51653cdbb316e833c823eb459987aac7e3d6fb50bdee54652ab253cb9df0a661be1b5ae2a7e9ea429d7e8a5bbfe7683a2df259cf2f0221ce0c2feb06c117002d101921fb54e06ccadd05de9353e5874c2b67b45571a83e2967be45e77ad2336b076088b33f33f024185979eb36d57abbe493d84c7f7daee3b10e039339cff06cf36ddbb04abd0fb8c8dddef0f7e86f9724644d6654d4fffaca74f21f242a9722adbef84b44c9a1b7b815ea0317dc5cf688f57896c57af47f44b1aed5c92853a7eb1138a125c026c9e73770d982a0a25785cd91a4f315d03defca59a2d3cb3c015de5df285b53a455087d46109582854bedfc301b9ea9d87d4a04a2f9650b8d9a83b6885fc52cd32eeee85e740873330e29885c8be8bc9d657e612a87eb3969cd24950c9a8945844bffa33396876b885550860721dece6afb92f1d87707bbef2a34915657168c8fa2e3050f1029355f7e969fabd2ec252694a5bed8e0e6fa4e8b91d7294666737d80d3e2f51b1c65b8e5000000000000000000000005111a1e272c", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 8, + "comment": "signature that takes 7 iteration(s)", + "msg": "1600000000000000000000000000000000000000000000000000000000000000", + "sig": "4f7c826c9ac53f6d972c7cabe6749f3e045f1a718c31f1d860283a9ca33f12a2cd9255e55228c637fac5b89f39226c235956825c853e63a0370b5b6a1e531479d190f7f122d070142a664c1a14b7e7498e413acf0f1215a64f629e67abc94f76ec3687eda08a1b1f3140227c6dc3ec0a83da6d409b37618b04c961c22446ec81660f6f15dd2ad86b47b0aa3652e58ca9ef362feed608343178337f20e4dee23620c99e3ed4d8df087462db45a2845ca1fa4b732d17345a8beb9dac372f0dc399398d4c40fcb898fabb85d0dcf3cdd24e8a222b5d4db8945774dd061dd479f4fa143a524a6554a4253b5801f7c4bada4a50e5f71bf436277bc3e039c6a17f6aa4bc2b24cf84976438e5dee8bea760d13ce70f1b9299483e10509c9b4944011ef0a60ee29c6222399cec1ac30f5a75c14fa654bad1fe8b9d554f912f8b8b4a7cdd5d01b5caeb95d5816a7e4dafa42b9fa5cf1806e6fd8330a04acfb88ea8d1244365f4eae72585a17d06eef04dc7b0a9cf75fdd251bf72445250d94dddcd6c2890c4783d3dbe6ce5f062638b260f1777c46eed801c9fc5b9ed8c152d858707520e0fd4c7930a3cc6df555c6495671fdb0e27ab1c414272f6c10107146f5d8244237a4ad939f72957f1311483838cf443c1de48ee754be77a267995c2eee3ee8cc46a75723b9f8be0a16bf8a78f097196e094f8fd9e06506dcb82e10a03e8ca0ec6f363816c3f095e7abfa64043c6944e03f58cd478a65865bd706d4f3cfcc5d221822e728ff9c4180541af9e1bec0ed5803eff2ab27c008a22ae991b1fa6413b6b6ad0f2ac94975fad9d406ca77575ff3c02ca6916f13092be92b43088ca1d808606fe44e7db9f7151f83c423dd3c172f15bc635b44952c7573b592b2afc3e59f837badfacdfbb7df61f784aa6142cd9118be1347680db435213bd9cfaea1a128fe546e19e022c25cfde56793b3eff610783926b3ec2871ca1542784518c0056041fc18f604ade4b0b56edf2fd0652cb3577949ebf9cd02017f05730fdc741f267a8d03ffb41c02280a7ddc1da0c0c0b85f47f6968627bbb9a7adbeb36620f52f00ba2c772f256e20311643fee4c32ca079c81b46cf4e61b3e9766758ca0a87faa3f55328314006961dfb1a02773c363982ee84937668b98d98841c4da6b4935a6ca15003716f7c372a8ae78c29bd79af078e4ce9a18c9cdc19f313470dd6cd2e0ee931b29422c5a2a4654aad8879e35fc1f2bcd9811e128661f7c40e7784dbd3ae2a80772519a3a30c40852c7864a4e79d4861c6b5e27f09319970dc24211ec9b4c8e16c0a90e3efbb8a6105ec20761995592d85641c09eae0f98318a30b47e2a91dbe8f506a3d0b4bd8700462f92af214e0255ad7c85359d9ea046991057a5974311e94e0c5756344819743d40c91510ba540c7dfe2256ef8ed316c928d7e817ada81b0f798fec0b47e53776c46a1d58b56d95402f10cfec2a741b9eeae635898c8b2ac60f9660bbba2e02377b294e0e7de4426e402d5c8de978a11b42aa123eef24d6e5a98f82b49733eefd74ca677d15fb6a1b7206f1d8597b1f2a692feb244d7eccab6a9700a70cd8511704d1c469c6725b59417a8c25d90906222712461e9cd0e9a274aa609c511f6d6265c3aec5cffec419266ded863b9a596934f8787e950810c648341374a33bbf2b16809597abe0d99283f16bedc855a95111bcb7ddb2899da912dbb35248b567292adc76cdc9ea09c44134a98ed555271d24798ae270b91265687d37275d5f400a3329df5d5491faaf7a9232c74a06d065d0f7b3fa3bdff51e0a1a3fa8f2ef2e689a8ad260722d0ecad61dfe6ab3e8bb8a810cb81abc3e4aaa2d85e67fe5e7bf8ab1a2a0f70b1ccd50908a8e87017989cf8b4b928bf2e9f2686b05c1562c0f762a6dceb3c72584823ccfda18f42f9997e6c1758b5b3061fb757b4efcd6df14dcc469f4a1a0bebc7456debe613a732d578420f0eacec760b56a37ac7a2e7e7ad2ddcec761a13812d3d688ca4d0cfbeccca16bc0b01e6d348d42c10e834add48b53e910be11e16e4a40cd6cd15e663c6433f699e060ecb7ffb17cecd8ce20e8ec4c216305470adfbb4ec88710e6c051a3af5ff75354be0f8a192cf22e212446f561db3a3feea12a70291283e42c15978cd919335ec2e07eb2f716855d7bb78ecb4ea0a655f66c16bb92447af488baba080259e68ef8a3eddcb81bde0473cac96efc887be27017825852adc1475ce4d17a51f50f74d2876134722679ffd5c59afbed5fe43417a86f09a1bdd87331cc5b7a9b96a2395c66b5bf3ff17e6b9fdfdece2a8a1a465c726fc9043153110b3cf6a3c9048081783e62c1bc6d3f8fe5afa3908f9007a0db29b539a4e5e83f811aa2b13bacd1612c0efba98935698a727843a618b13a08e275f2a1f4502a0eea7f4bd369390304fbc5009acfd6141631102e8401048431f6b6ee078a9a750a29821ac41ef6267581dab60533e443b0444d87425b7e2f0db338d5c1d21391068d7c32a0b5c9f93fa6b138dbb47623fe8a1063dba1e7e993a6d8a097b4644fd394fe36e58d2715456974619872a1b4fa9eaea4823fe7a456aea64411554a1923b2bf9fccc6bdbd1e07d469e24771740d79c5bfe17565c281d5725ee7ab587d1181fc2aaa4ce62a018a61274737a2c0e59fefaa7fc32f1ae9cf40c82ce75c1ee88a4238ade693e7cbe902a575f8e0a12d5239331863103fe09906c2e80e744a8b2df74ddf78e745410786920a2f349f62346ea86bcf663123b16846526b9081718b422502653894e04eb13967444665d3b0424cefb7d6d30db4e84cb887cca1c8251c01314eff24687e10001db87f37e19c8112bfd31bcf77a38d846bd11a869383d32f87fbd18877ad7b47b557c213075b7b66bb55460423e0219d14affc639d7032c51f1edf8ad7559f817716971cadf47362734169e35f1d899a4deaf03132e8408179f0657e31734c92d6447ddc740b5b55c4d1c5d354a80fd6234f049268341552aa79f6f37da01745bf9cdfc8b28192bc0d0bab1d722ad325b6c2fa52cf1a01713bef7e7c428449f0ac7f258870cac215bc471448b47db93759a53124afcd92a0bb9b48b86fd65b1c575221137000608620c4db6a0812b7d9e632849e554446bb1794dfe1259e6688ebf02e4470f0e818b21f1fb6646f4cf2a3107089bbe231bd59f8322abb0045cf3d0f558bc91a07c91cf77c917140e0fdd926c22a85a3487180d7b3ccdc43a58ccad777e72bcd7da338b6a486d0853a305a0dfe027c8e98bb7421cc3f84d50bfb0fca0496bc012ec95d06661d548b97b47741ba9c6b66866e00fbe15db52d5cf968163066a54733e1c62859969ce33ac9606ce6e6c2cc38405a75af34eece3eea4874d7ffb42b55635ffe3cb5c383e6c3cf9e1bf30ed5bd4fb16dcd77eaa08cd5f34b0403bc97f3cce09ad04fe0d5dd5a033cf008ba1111744ab06d941d177fb3c24d8a86104db2e06d5fd85772c083bf6b838f6ad63d1f1025c4deb2ecb931928d66fd82c970f5692854d87b9de5a82d3fd726e300b95abd03d466e55080cd97a5cb12ff69c2b7764fa1ccb48a35d1da8bb18ae4fda44e43555ed3df57f30796eb4a13c1842bfff6caf9498b2e423fc743cf16c9f7c6e19afce9d3a2dd634900a51a06fc2eadd8fb6e816f74fff53246624a28111ef764da214ce1ed7a1fdf356c7e319296a0fe1db5a4a16caaff06755fa5ccd5a669311545a946028806a75dca6346028c5aa2a6a10e5fdcd7532e84ba3b5935efe175837249a35cab8c0e3284daf987d1cb68383dc1d4f58875ee1709054859a7fa46dda6bd0f04f35a0e4820760edadc69fbcecac8e449b0d9daf4519d957d5595b3e7d824af80a3488f6de3fcc757e68937fedf4f4dc267a6f0e3237f254c6a62fec3759f4a08a0509fca56768fc80550a798a55104c9b0ad9371595a4a5c5b00e13274828946ea4cf47f146df6161fb961c1b9dc5adbc66b993c0b436cdcb2bb98d6b3ba56cdc2e4e7ffd18ae54c42063effbec222f40ad313619d4fa2464f99eedbedb5fd7eed24bb655ad997e4052c2c5656691c85701fd4e66c40adfe4c9ab502da176193060330010b0a2fc558f645593ca792eadef21560a19ba0609fa27f1278cb6c9556392cc1322003269972abb48e3d3f13edf75ed2d27d696afd56c6910c55f1e103b20b3a1eaf7e8b34a3cd6179ec003f6d243253aff072da6992e755d17c1f8f85306f18780eb66c17a280b290b420c18498a1f8227fa8909909fe98db84ff9e6066728f90d08a0ecde373f7a10cac1911014420ef787fe1c6672a6c44ac3c67a55ad64e702dec536102fb26586f13a6f2c7b26f53aa7e1b67ee8218b7131b738521c53bb9e32b513768b5073e50c450ab839649369fc1354afe13da4eebb0e30ffcb622bc837ae21fca627e7546755c9034f1dc4b5221a229738ad5ee45128af12eebb3b28a22c0add29a46b07add683bd299d542ec6b9b45632c73d07799ee4569250e1da500a45aaf6f92f06c2ce245f2d77f4b0680dd69562a44fad935ec7af5f642d6c8534cc5031310a5361bc8210486d71899cd60382e92577bdbe293d484c50607895b6d40235e5f1f2378c9cd0dce90000000000000000000000000000000000000000000005080c161b21", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 9, + "comment": "signature that takes 8 iteration(s)", + "msg": "0800000000000000000000000000000000000000000000000000000000000000", + "sig": "464a36de67f458e0bfb24c3988b420700b2fc79c11ebcd8dc15f3ae7c4bd88d939c4d450c2e69b8cde439dd8f31023472f95bf20077dcf6cd357361162917c73d6756d22faa92bd22de95e303d089c5f5bebdb35ec518338824c46d9421ff69ffd586b99ac3efd76a9f92b4afe3330ad81f04d2aa3e335488d1516b4f8588786ff9b47ea3c43082a67eaa7338dba529ca69a3c2cc9d039fb9c7ab2356d7d47912aefa904557be7ad21dcc2c5d5ec1b7dc6fe29c3b466997e9082ff5b76c758f677a71802816ccae8cf422d5e26c3ea5fab1afcc7721ac5f36dfc1e918945ffbf8590ac4fda8cb7bac27f42bd75960a8be558aff04362700bc13ec5a14165c1e2fd1e935abc7634be683a1fa006b161c489dacb3b87304c8e16c6bc3b198d178aef455e5b3d94b1b1c8d1574e4369c7587dd811ea19456d4ff8c3525f4109093a028c94242f7888f1d0f37eda92fd4324ab20221171e2f092e6351790349b6757ac3190992018a4b3b82b65282aee78a8956efc70b99daaa2f7cbe58ecc1bd9dfffe966ac7b1c0f2ee072187c0f55306bc40e46c2890dcedeae6f7916043f048ceafccd28032e3f8d687d20198bba7d3744473b3afca295284babf1ae006bd143aeb7212a425228caeb19f87d7bbe235212eaf0690d536d30f4d5bd1216187a2fd812ebeb888a15a5e8b772f7f22020a086b3108679bd7041c7cba5fe5be8920578a9a4ef06e3d63a382a1a089ac66f39e715a7cf68b03538a45433f61546fb5f3b3d329f6891d2449d74c7601b988c4053b70e5d2c6432fcb60319deaedf0cabd72489940abaf67886d90c8c5e22b2c2b0ffffd043775bb91ccf9381c8c1915f48aade11606fb5e6e6f102fa10c2243292bb9567c1f0fb8496140f72b7d8a3bb30c10666298b7ae8384ed079be583c012ff54e6a1bd22ea8f528005612aa176fceea77bffaa3443e7acc537666574922078b5bd3227763b9ceb295d7024e95518590f566129773bfa8371825ce68aca58d76baa364dbe51c184681d7a6450c4442da1d5f943e97332f74031b7326c6e52ed8de535da46f6e33d2b456ae9f6b24c94892af7650c3c4193c11d82d3b859ed87fa188896e3c4e90de4534d21d04ed5968be5c8966674f42e6dbdaecbedb0d3afaad6ecfa97a30cea4c09eeeeaefc069d8d54816f1bc57a9e109978336b4f6718e49432062dd137a928770055bc2766a745ac511d949efb31c2f2fa2436b4bf1f98d6f0c82c5fcc88365f0de5e99f99125284534fd8900223e40ee63f1301e4ff886b6cf972543a385931ae5dfa14cd6d6ab7fd93ceae766e35dbc22e09866d5a125bdbc107c8d8c14a9e405eda8f04f764289b8e37c1ea7f5ca0550f79ba16d65544041982903fcf614df600dc788d908db234acff7dac63335bec95caf2673e772b8798199cf0199f80bcd50767c0462de2b44e9b83aa02cff70925a9a7242598f78726e5e4a0563dfd3c847b198cc74c25f10f14ac3c9ac7b57d007bdab39bd12f18a80b6b1b6a091851c7b161205218e8da921569b1d1e197fba831663905e58de88bc4b90295104332818bcd70f066fc8bda0e46ae858b05ac4af73ee90c90604be8b9bb4aa78cf0387229fdbdb6daa96554cb85bd95fa9e5b6ea277f058a6379c39ee2e94bcf5f4cc3ef936c80201fe22ee4b42f5f752a273de0dbd7698964167721b0af0430d53a69b9ade587aa8e2f8a659e917ef377c08e1c80e9ae51fabd2bf48d393f806a4d1aac149424cc8ccdbf947450c32d2e35522094643991cea2fcd62aa3f827b1a17869fedf099efba80016b916a9447b200c18842c0c0b8e21512df0d55cfa369052a7481a461f133a56e5de09df57047d61f2df2ed4a6d93cf21b2e9f5b220bd0438b4a1f7bd773b994d1f4c0b205dc6fdd50bd6051c526f63c91c0f8f316cc688714775961e114f3f23395525d8a44640032576c92a46e82b9c1b00157adaf4e3483a49f3246e98b1042d1d23995ba8429e751b03f6f386f42bfcbbc02c59befafeb5dfd7de2bf4b60971b261f3ee2a2de7191a520d0830335b14afbf37aca3998ac027cd2fcaa10b8f1e2068f110b751abf3ec913c721ab1c8cab31d1cf29cbfefddabf5617cb04ea123700d4a6c6aabfb8aefab3ee22f33c6c98d92c4a50e0f27d1fbc9ef06fd31f0c7d0526b10db0d88627a4ac927cab03f087c498bfabfb2c6600f73e6e83ecac32d555ecf87991a8fe7f83fb3817eb5e88b398f5498d0d0e62858d30f2278c9a7427abcc67e5d8a377be81a0a93c262b462ea1497a05df1983c34da6aaa3a8b11c9af92089c9556f56b6c91295c74efa1624aaf4c0c3c7bc404e0023c8244cb8616d5352e61e63673d3920d41e2b7925b961f409fe522f692f405658a56395915f9979d28f6620fa0fa759f57c5d04ef8d69b86494e86f243d778e123b86ed787128853cd4c7121610c6a660fd7b7e3ded7b405e90d4aff1b60b6149bd636d1f3a1f382516d8ea8dff9981b0242cb0ebfd4fafa63155f192cd2483bcf5b6a06a0c7b7b2df5137e5b1e0691ff2fb95d065e115e6ab4c7b087170d2116275f0640063aea5330b0648d17b3b7870259e6e8d87daa68543034ca23e42ff9d78b38ae8c9d690747986554378f233b6e8e45b4fd40e0ebdc1dc6b9f221e9207668da6881780d96079ddd6fd7b9e79a79f54e48b11845610e19cf659cf11774ecb092a6a092a58c3ffa54df3046808d6caa3be698b215754606ed1a0fbb1b9c688d93aa6a51c8e70b4f220a11e953fd3de404cde7901b21a85fa2f27e38eda37a11518e70e0be97c2305d8815add3c5da2f2c698b03ca930d473be7f3fd5916624df59168bf5b2cb2b7370dcaece0433a06a5bff3e3a64fe5a096a22124bf0d37f2510afaabc93a94b4fefce8b963a03c9a89ddeeaddeb330eff6060a8466350b56447453781b6e236412c1498980b9cf7e527ecd6aa1e19c1d6316ee8c1be442bf4cf4ba1ba9fb5883a2a3105dadc1b43a9d758b6fa8ddb565c8318c73c0271c6259a88f0ce41ff5378b970854a0d3b9ccd65dc31f89e88c4a6dd121e12bc82442dab16236b98dcfe81af616f3039dcfb1f7f8f09a8248790a9da50e80a2144b605f75bacb5554492bd4d18cdd49cb0a6bbfa194c1727947e91352ea439df58abbc285741d863b66ac49654f9406b9be2d5de8dc94ea0ee7e17c0abf2f1384b90e521502922339532e001e3781cca33f09a6ea0ac5ba91422abdb0668a339b8f8c6af7a4c8a44b2c91d30dcb355d3687bfc8b48a10813c8e5354adfd011149973a73699814dfc7811bf6b35abc9a9033915f48d0fcaffe2d43d84ae399c39d404a71fcde8d375974203c6df99cf2adab52e765da9e3e829cc5b18e96f86bc5f6466e0db75acc0004de2d2a6564840479c493a52558a1110a334b5c3fe3ed5b1abad114d2ee451352853c7f766841ca5bb885b0bdd523385c228a261ba2369f8365082c594b295a9499ab3b95836d6764b4d8fca839fbc06bf81b384a1a27136786e7ffbd362d9b9026b2ca42aa0e4816cbe2142e3c96f2fbbfd1824889f1bedd40df2bcdc9e85930140a99a6d294cc358accb1a6e736b69b15360c8687002afb54b716c2a7e6a894990be8e974c842f554cf3ff5c9b83d5f399bf7b08bc176bc55cbf49ca0965d29fd71de9ba2c516d82c6a5d3e71774919a173c15e47e54a5e073973c10f0fdfa044c0027aff7f0a4a06a0a48c6506fdd1158dc1d63072f13e2f16736ec9e5be9fce68b5fb129a1ef4acf1af3c66372958fff0ac9ea86e1502e37441b7cefc3d5f208e1c6fb4b293ef6964dcd1d80cd95ae905b780ddc8b24ae516385bc8e8a3eaa3fbe3faf252c2d766416e84dd38329393b79be37388314ca1b70206440ef266991bd855b1eb59869e2c96ee29bd14d8fb72cc2c9828979f0807b3038702b9235b627d93d7712c87d00f0e580f57a07685a949e228d5a808f91c20e371ad2a7c7dc47cb04d3827117560377c2ba11ba522cc5fd604e11e67c0b411fa82fc7581f6b3bd23857bc37230aae8f2c16f914d2488e23c34f12d148549f9c066d95a7193186352f1280bcf63b4df0d0486510fac5cf8b03abf45f35aa652fb5fd4babba7fb618ef680a1e87731ee117aa79ab9cc482a7fd11989e3891f266e15d3dc71770024436561460113fef8d4ea7a9590ca908186ca41dabeaf35e9c2e2d515ee9c5cfd618163ddbc47ca922c657fb7c959c54842cc6019fa40e3ac2c2bac9262a7c8ab79f3cb8c8ae6ca39d7a1adedd0aa70798d45aeb6d347749552260adb3872edbb2006b8b650d6e5de76d78934a42a85039583994093b98f705a86ceb559d8922aca6abd456ae7011296f0875ce052e419e395b4f9b67f59ab578851bc7a3a29342115c362f2e19af0251a6729981f9e4dcaee9e6628a19a0db9d12a014a5cc81a13100d25b9138e6b9dd2d6a807debf391b6a56dc18ce8d844efe8e8ff1e03d4eb03af85f9465b660125d8da022e4928000fa7cc629b7c2706123ccbc2dabfb7b1b9d526c450afb567fcc5a762d7d034564d744e52035e6b34e8bbae827c252e50032743a4b719ca0adc4435b7c7e8498a6ce10353a6c82a3a84a6576838adcf62f32616e73b0bfc413f6ff000000000000000000000000000000070f161d2528", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 10, + "comment": "signature that takes 9 iteration(s)", + "msg": "0d00000000000000000000000000000000000000000000000000000000000000", + "sig": "e68878508e16f608560d18e3ad67a4af53640fb64937e39ad0b7b636361262c54b9df9f721da48a3b3e1cd6e66dc6d5200949d8938d0be6019c72362866c6ebdf3800620c512ade29f5b31c43cfd8db916e4b070efb06b8e1534d92fc2ec4cb83747185eed0039a1832789e565e94ec8f01c3f57ce619e9656a389a1c8142324558d8b8f143bd6652c77fe42a773651931fa4857bb8c76b6328036cda7fb2f32da164b69984d709dc270a9f91d2ec31e5222a38fad92e04cf3dcb99b1cc6fe106885cc334fbb4f896ae07d8ce2bde81f346a28ad373438b6deb6938ff7bd6988395182a47fceff6cc11aa44d1cfff7a3e51ae1194e983bd64d6524db77f366512dd156fb4c2e7719f8a9b711e0a1703676ebe182a4445ffd1f3f05fceb6d0b7d2cb757b989127e23585b3a81dfbefc4590ffca2cd68208a390d99806f9126986b02757caec6fa6408c2ae1bc71d352baae3ded8185b7ee2dcb9a5f66e5da2598c4710f4d1df226b787a4bf620d18c3b2aa4e01d4a1bccdbec97bee2bff7a062329f8c59a4fc72add75472e0b9b9a0bc7e69ed0321045f0cbb1bffcdc2fb1d6782203741ab9c8cb043c07b3672a523e806ecac52713f9cf24733c9694f84bd1844fb272d2decd083f9779d583fb6591bfab6ee5c1d300c99ceb94957ebb96bd1efcc0c44b46feb54c16ac8c78bcbd30aa3d27ba0fff2e6a4e175b42066c0dac8d7740b769eb24fcad8f0cd90db5840b3bb36359e8ca30f3cb12d0538e741a9d8f536bf4cdc888dd2881e2cdb022aedce462c26cd1f2f81cda5d3ab3a76213bd8fb75753236523cddb436b9180a5ccf403154b93b57ba5b24e7335506c2287bde4319d8ce48b9d10da5672c07a23736f89944ff56bae2eb49c2bf485f1d8d6718265a5df4e632f840929aa1b508f91fc9797471614d93d2c171fc512d99917e32a37cb24eed04dc4fad9bdac904a076f927a14562c81cd027b6fa32b027bc2b60e1b7b50694533d3bc08fa6a5617d36af278199d52f566b1a770840ae26274357470dcec5fe52279d3d342a118ee44a85a017941e1259ff070f2ce566fdd8efb99fc81523740a9128448ed728276b6e22f29564e6471599d109ec52ee6ec45c284b71073a157f57225b29e3bf1de26204ca82fffe2bf526e77020e37446ec5581e63a246b76ee9dd86d00b490e2f2ca258fcb5676d95e79335f2039b9ffefaf59d7785bbd82cdaff931f147ad3838f8ec26b6b4029d5ce230b6f2eacc4107cbb339e69b117c64bfba217f4a89224deeab637a6d28caa0963c730fb0d15860336e740466abc7f5145aba081fd592a54327200e481a19a9a91df105dd9f064666c2130b63aac8652815fd4318e6f06593bc00cfa193d37d4be276886790dabca1a3b94f0db5878b03e7296ec874af7d909087ef9e9daa06d5111076a9e2672d7833e14cb858d2ec3dec31645481d36295966d1bf8d8c2b18342f36eb77ccf904cbf6f5c2b5a52b7c0edf23827356ec7df716f7e3231132c01292f2d088b2f2cada8b88bc4038d955e3c70a64e047ca5a6b73c73f97bfe36b0bcaddd403c70c03dbd51492c76fd0bc87364669df42ed1d6cdfd1a96f51f2357cde949b173ce9faf474c2eea3565a3ccb6532815afd469b3db6e01a239b263bd70a6ef147ca3f471ad065452cb8d3ded26d0589f2598a072fc5799c16a75ff4a1648d1a1df4fb6baae1eb92a1d2cbdd588e3935e56a90d8cb53a92cdec9edc6e80d66c15656ceec21ce75caec72af9b5b7883223dbdbb71cca72ed008f49941055e71eaae4d858d5dc3eea06d76c3f9f92f3ddc26c1a824fa1b36a84e1011b0e51c37e1ca84b678c54701b24c72d809bb49a78857cf84dec8a79886719c66e32983098c80590b817209a71d115f11f8cced1b684251bb25d3fcb3dc9107d3c8e4fc551eb6cff7c9ac7a5c03e86650d7ac7119df3b73a52083cb520683e1c784bf47c9428126bc4298f7b926423aeb67ffb0d51b4de97da92a690fa0cdf7818717e0c3dbbbe26cb8ce6da26732d7125bd31c4b454ae9308a668c19bb7c29cb8a5bf9751aaa65c7bb5d3b33cbb3f9d49ba36640d16c32ef88136dc464c60e54307daef9ed8c52679cab4e48793d0d2e812c88d5928a7f6b378332aa1593e28d070dca8e744505ce03feaee21562b90c59323e88cef4aaf9c7802c504d552b6a5eaee2c49007fa5930b12513f1898222eae1c2e08c1c0bdccbbf8b73db580dbff060491f8434712329e5a10378d7e891502e45288f886036544db76274694e7c45b8a1e009408db5b1de8e5e4b53e5c98c3af2eb8cf3ecda76c14be58a9bb1e2ef961d3de593157fd67d08ff93973281690504cff3a55d86e9370199bc464aca85efb5b0bacf233a58e0dab930478d79ccf5fc2513ae5624204bda96c512327e165dacc79c35083af569b39706996a0d699e3ee9aaaab2e02ccd4abf6b763330789c7a4113728dc4dfd9fad065d2df51107edcdbb1d32ee9f563972668baa1df20e77c09fd96b538ad2705c58b2a87cbe0a532427432a8436e671f4965e05f0f10081ca49c538bebf0e98bb4ccd72b0e21ad5961f93d9897953b27fd539b7ded7bc981d34c313ed267a244cf76c4fd54db755d3c114ccb9eee6c4709e0475f919a49df41cb3b76c7989a15e2afc8781e394976d142a14de5abb1a984ca1e9c5131a5ed2da4bf69a3777585291c782655bd9696456967d420a03e27e9fb6f3d217031670360247e14de3ac4a2267b2cbcd1be7445c35e3726ac90e74873d373b58c522a85fc4eed6176d6c4d1fa26f6dc644868e2ee04118a35c51a921215c36a04407fc967dd4bd41fbe43b609a0842c4231ad11f94d7c18a7d65179e4280065cf55deb6c7bfd65a24530f92eea71586c51a17f964e9587e71b7d6249b96ca8307305133e2aa2e8cfb400edd8d3d5e6de5dff6de3dcb4382ae53eb30a3cda97ce83e61c4621f2163b2f7a22009123df09d10d534a313d9f3b6a882ff22dc6d4d56aa517ee23609ee1db6b45ac4b196ca8699a132a8a01882e382f2a89fdae0e259332fbe6d65b3987a5b2f1d077dfa5c1ed8d461130592669002150247aca0c7094c9e831f4303ee9398d54ac247a252acc1749ccfba7dfe02f468541f0f76a697f90e5c1e7737f00fa6279abceaf9c4b19e476a2c7dde6763bb3ca9d75264564c878fb8827c3ca7cee86e8cd6e9070e09b61b60d14e5f21600ff547f0a8c894a0e6d03e1bd779102596fd54e2d5da6b93f901b5f482dc0223c6b977db029ef1d5b3ee9beabd505079d27b72d06c9f12967db41b1bc6f3e806a16e82df9c7df95e9c3c69c40c1329ba98e845717813a04ae816bd98131899f54f7d2673680bab5325ced6dd33b4af8b6d727fc19362eaeb74589b3a81f3c2e37626dab4f2ff9ef42fded16c81fe7d3d38b55468139b0d874fb21e0a977aed92b00e23c5e0a7ebc9b4da764d865d0c8a74c5029fc38e0715095ff6da6df4aef21d13851bffa2d98790e84cd456820d3ff56000ba61113ef5fa278ffcfe962ae4ab674510e3b4c409a78452a356ad705db0001c78c4ed36ec95fdafd6c65ba8e01474f0e0ded11e565aed7af85d42e50c242467dacfad3f07caef2ccd80ce0254d19280f98b20f535e7528b9bf14c4d182a11f235b3eb2fecb680fb384edf7c8e1d0497ac298e8cb16f8038bffadf7b6ffd898e46b71e8b5c3d45a1c83ed3b44c7f870fed1502d86952c77a41c2401aa7b48fa61c19e1869a7371905f89cd9670f3bca59b9313c77c41a20493060712cd3e63189ed5d3a7b372ac4a8aa4bd351670d0f5bab0f5956efad2baeeb7ef8f9540cc8bf4a166c4bdba16e8dbd76989210b9b5f066f9332101b0f8906bbf75ad060faba2a0d59b7a721937f82cf8d24606cd894d2f097b1cddb32725ef9c1923b4aa3e0014f19f955f873ccb1582f4ea6631c43bf4d28e9ea9f98a79ba798a6d130cc91ac5259b0cb5149ffd2859864d962790b1346918b47829c53eaee487be3aff644f402ebb0797a8bbb04ab375ab2c008300cf5eb28ef4f43e3a6fbadef515285b8780914c10238af19ae80ac6fea959566620b7e489ec3dffd255a871ae06bd6ddec26b340f7983e184a2e1dd25d1db9566acdf0e6534c73e894c88eb52e85d8921b1aab25a4bbfce665ac2dfd5d03bd8fe4beb8b42cf93ed9418e494009a4ad4a9f7c3ca516a09c55f0b62a4bc4431d8b75e651998c40007ccdd658ef51fcef5851feaf148145ddc460f26e264ac6cec355df1e9f19a3b47aaf23e8bb5efe2dcf4c12cdf76a5200c4522708dd911bf287ee56ed5288a092a3724a79885857c6b759b04e9e956cccc3a0c087c78f787468e4a52c72971ae7fa8100ea015c662405853a14d1e9f4734591e96b111b301c2e68fda861d4ff4085a46de15de8ed123dbb77dc7cd286eba809e45d6064169da469ac17ab32d57ff3f9a1b79c3fb487973a10caf5f19bead7e29be0e4d61c385d04402e03f7fd47915da98745a1a8caf5ae2fe05cc4d8c6c95645798cf453d42db1b189afaaf957e91bbd924ad2f6740ee6ec2234be5b08676710145bb92f488b9495a860f1f42d439dc1fe2a40436896da353c4b526f7f8c95d2d3e3f20f104476bff0f800000000000000000000000000000000000004070c121e25", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 11, + "comment": "signature that takes 10 iteration(s)", + "msg": "0200000000000000000000000000000000000000000000000000000000000000", + "sig": "282f0f7272b8b9f6cce50d748f0d3f9761f610d4f636bf25bf2ec47b2cf033ad91c0c60abc1c11cffd5f9bdd41468454372ccc204a83d613c8c1dc3c5a2ad9083b9ab3406afc430206e7595736baa97123fedc02b36ae5d0ece70b26890e93f8e9919112da1915bce6441767a9252d90a9671acf056ac1896aa6642936a0578d1e84ccc95522d2d49611d6b67a28163a02f777d5adf1fef167431b1d143f08b1a908914c64b40d6a3bc259b7f850bf32f14d9bc0e8e61e3bf789c4fc059bb45d48c1e58b786486ac35bacae36c51bc0137d28810bc288223f2126d94e0bf36cbfeade622585b37c80407e777006eff850990604de7836590e81ba14e067317b889d33413d71f2c38f6f3d19de662e61da54cffe96c9ad5518876a842907cfaae3c83a5c9393c8705d451babb59c306036a0ebc7eeeaab2ac9e61a5f58691f9cdb5da907faaa055094515491efe40d924d9f50cbea000300d83b20ceb99912fe8b1bc8108c216420c3d52ab28031413de2b55221175c3c60d83fd2e06138da00a76b77f916a7c9b97c145d83e03ac8433bfef3ef4937d29cd0e7e75ebac78a8f4514860374ae97cee2d3a62c44f1a3ca9a1b80ceae734ef1220add08c96b6db12cf28d39d8583ab8d932b03e0d0d6873c7c2428405150a7f3664de648749b92fce22e56ab2eb422f26b00ce50adf5c6016e92bf5c58e917ffbbc86c70ea35a37ffba3046df32d24a50e3b42ce2070c36f7e2a6f6e6d85f5dde6ed6c9e0b0fe6d5627dfdcc9ba00b0e400157adb5107e392eca42ce4f4c42556a0ad16c1d36b6146be7ee747a005857c8059f8854642a623aa94132cce088ead46f0cb534a9bfa82b1ecb6c00083207c7049468b0432fea8bfb75db58dacf174d85d10f9dc3a98240ccf841385f4220363e5e3d40f4b4c6e51a14080dda0bdb3f97d37bf151eb6bb802000d87bc522436583fa3950f6fb7ffd5333e7f732e23c0ed85a1c3545b1c771aff5e6332717ecdde23cb6b64a350970379d4f218f865245f8483102fe8c65cb3bbb28ec6dd8973b388f8c4dddbbc7d979efdee2fc32b6762207ab568b192ae3d7404e2cb6f158e61475549cb325fc0585702bdd5aedd4707216c78eb748082a441b12b4d9c0e79fe0189aa088d39a26380c5498e08f0a38712af2e0afe3246b0f99969721d4d2ad2fc4baf09cee10d2cd2e93ed41406968140123d21850418299ebd5fba68ae153573cc616e667fb8698431bf76e9fa2b0e1ce0f3a2a4db5ddf4033a6a51082efb64c52c8e25280cecc45ec378149a608660402754873cd5072330582d2b6f38722c2b31cd98713aa06eff1a59e1256a6d5bcd4916ca6c0a017e8823d2f98967e64132471a6ad8e7f157a8224ac5dc219b57c929cfbae11a37e742eaa1a8ebb7f799cbbce4dc13f003cf988048aebbd72c39f8a8d257be7dfcd959b72854102b92c3f17938a8fa60bde930537865ea8cabef0216007b841d2c3b6a1da1903b35a3226d6634e474ec83dc6d2eb3cc6c0acd7905c5afcbc01a255b4926a5ad781681fc5db7a0a73f49a8a5b55d313cc197ae9eafbc8fc9db13fe79447812ce4e4f0ce2fddca7db04c4fee7ed282e311528a00410dbf0a43fb311c4109a35264ae7b17a7fe64f4e9e0f1a579224226a04d5a94f86b9120ed208bd0736833b20de004fb46b41d07d04c1a4ca786a49a45034f1815bb49ff032be4f48d6ff2904d989b6f6ee9cf52ed5a5b83c93ca9688cfd0679c40b828e1be7885f42c14716674c733b7d51e9794ca1a35a92639bad80a8e05323989848e848fb3c4fff60bee96ac9e1f665da9648f728950d0b0df3339d26838f618d6fe228b5cc0416f9da3cce99da0a1a453c975e4172efbe4e4636293b64bc188d0da318ef428b6ef17325b136fef140bc45ca8d998dbdd65cb28f935a28a60ab12b502e95164da6704a5c9667708294bb45d8d8508e4cebad5a82b4ac75b0803876aa1f3d4cf7749609c726af0337b84abbaf620952d8803526718f56fa341ea7d89a2d08bb81c4d4c85cf4a828b443a0b29dd247e7c0e31490130b987c0b391c1fa59ca4f7aeec89a9aea1f744419a08821ddea90122989c186023d179e51456ba066aa6449452770734971ad90a67640ce95d10ef6c8415fb34188e052d5ffefdf8d97da4f67bf59945e0b1b94463960230862747f847ca3f294759b131bc586c7630a64c69de7e6345f8c8c018dff3d386ba99c3bebd3d79896cf41f516f007006b1f9fb948a3476b1d4f47b95d890e99e8e4e3d301181ec263291c1d9381240f450d636976f8a4d88b00e505d5dd008afb36a058ed3192d3a36755006bffa0c14ae06df23d73756ba918b0672a3972dd3bc09b12c272e136464763dda07c98e9c81b9d93f987b786d92ac9254b63df4ae200a3cb8a77950736b56c5ce5fb4255dba095ef0c2acb965377f57600c6ed20c532c77756e3e5771d4685a0e90d7eb553ad85233d61282f71adf5b4b9a49b1f77247cf77435d043e43fa6ec17deabaab8952360f0798292c8f63c3ae4694c237406644ab820b33c9119da8bacd0ed930b5fc1197fbbd6218cf493e86bef3ed4db1e1b1bbf692ce8df4758ffa08a782567c2379dd563774425547dd0b7976bd17198465125743ab65171eea74e8b55d06f3d6593b5b769784cc39879bd3f775f1d33b11a12ff67945aa943d0772336d862257c933c283972d20d18d6fc793cbd7f9643a9cceda691f7203facd650a98e9f8bc9e86671847298ccb0c3a2cf4bbd58552f81628fa82b4d4863d025f0f4438c2f31411a2b20633d24d0b90c606043d386c4190df5225ef3428d0d9176445afd7f70d3d0d27ebca9eb517c4bde3b0bf528cfa1bf7a1a688c6ed6e672fc09f93396e4a0227700627e9837cc8e6c653551b021071a7d347dc8fcf77f51b80fc43906e7b021a61f51eba9e89ed78a630f8e1cd1863e4031eeb6e6497c493b47cf245575e6543ed138b9ce06c8188f0e6de18f2cbd9c9f74915a0260e4a3d4f9edc1b68330b9dd2e61394cf9d9e193b1b1d3b2e10a0ee23b4146fd5cb261be5e48ffb2349bf31346688b6517f4e84c9e32592782dee40854da7af0cb67d80b59f08d7dd9d410360e89dfdaf52b786bec57dc09b2ea7b9f5a6765de586b1a40024187bc538c5e71b19bf54c692f687dad5da709963f208f45702c6ae500bc0be672680249ca271cf915f239433fee9676e6b007b04e5c1687e4549184b0b3d65643467fed567d229a2133cf1697eabfd45f58022373aa4331454ea041eed9cf612cd1b1ed5327b80c24ad2807001dc827164fb3cf8b8b57d61ddf1ac5b4f1d9db78f08bb72e347e7a0afeb9477fb6d7f6613355fc24be06cfd6ccf6278b4beba566ec53af541c2a43a33c6d749ba9ccaa3a5f92b3487151fc1a027fdedc6c4ea81458e01dcdefb7114f3b7aa48153e3be3b37b7ac55a37eb90d0ac4cd52f3c5bc744c3cb83b8f4efe62d23535a9b1127b707b99d1438360c78e3d748b49b8ca75a2ae6ad9ee0f61b396cc5af8f75ea007e6c0134cc145527ba4c2ef30eb0fc8bcd9e5976a60da49909ebf2a8efdb7fe6fb285c97bea6188bcb6b9893da5af769bd36c5bb273551d7aa8cb9486193647278fabf78df3c50ae48c419bc83e11c18d840e7345bfef2739278fc106c6c21e109d5c0d4e385e0d72a3d0b1f4ce5cfeec3cb6a205c57381a1b1e77f3d42b0d21ba1d358e217d3c5405b1d8fae81dd2c3db63b8a8b1e316f84d6a98878d0ba8dee9833a75ce240493e43826430144aece8e6d1a465ca08b8aab43200094e81120e9c650de002bfcd0edbcb5ea44f4c32e2361374b2fc4fe6352a7193302acab5750565fb6858efec3dd5af2dff33de712dd4ed2e21ef646066b9fc8b3d0bb5cda6f751bc8327bea3bde750dd6f4e4f8a7ccb19a96be6d0899b68233eca525e488a1919d11d8f2cd63533ff048af696f601a83d15259b9cf12c403bbc1f1e033029847399ecf60fe4271d973c79b8f6c7f454cdf34d27fb69f37f9735c69b5978c30c3c53400ec70c484776128e36f0a87db358880f33671a5b3abe4658e283048d6aa76be8bf6b824040399d0fd8242d9d72ba0e1cabf5c2aae2c8ac6494c33098e2ae1efd82f3e2950d2d66173a2ac2393aa3cceecdd55436c0e1f0ba29b46e89fb709d3dccab024a26479b71ced06939458e15d85bab7885d628e05c570cbdfdaaa81f35ae30982eafafc1dbcf612932b9aea1573af1c43e335340151aa43ea07dd8dd1119ccdcfd90107ffb8ed2aa11d945a9b271f40c5d1fc9571165a5aa45b1836117198e6cb2ad915631c0c7c71dad998167e7b57d771015babcb0e1caf9141fd4b6fa2c9a3530b8724b955bc06c53609b89fdcc942dd5738c2b83a3c5724508b70ba96ee1392b45c2afd2224fd580642bb59b7b350216750a8850a92a7b12be20e644e38e86ea8a9595bb821032a07c60c7bce0023b173ed26c51a6a4661ec072c042ce7ea9260b4488d8e63e99db7697d9bb2770548753319e74c72730312c49cf1b4a4c5cd25a3ee93c3a7dd2d2c5ef1851aecbe0748c4a68e84dddbdab500001a575d77c3cdd3183ed9dde8eaadcf0f1542bdc2cb350f1a3f404a6f7c7d828c9396a3a4000000000000000000000000000000000000080e10161725", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 12, + "comment": "signature that takes 11 iteration(s)", + "msg": "3700000000000000000000000000000000000000000000000000000000000000", + "sig": "c637bb0b0fbe6404058b0c96283165ce84645a9d97507c6734778e42809b8d2fe0a78798d8286b11cdafc239accf515f80c6a6aad43bb304315bfe6f294697d41fc557a68770f74157c4b6703c154c19c3fa39a7eb85fcf62d4d9c8b9f7b06eb1ba9bcdc2970369bcd6d0f42fc0776f5403497f3d419676ee4db3a2858d7da648cf48773524c12bed8703fc73336df29583f8a25dd7951147f09ebe5df6d1d77cf53a2098b1b2cf2ada0c307f190061e3f71ae4139b3125693e8e0fe1e91aa4971502e1300b1fe5486f160b4556b519f82b5647689110f559137879a7eaef84c7e661028ed16eb70fe9a83f8f6bcf719e03ec0fdc0e816ece340b1ec8a7653c80584c9ad51cbb6aebe63ec59d3d31f747ceed6becc4b69f112bc102e29d938cb690314a6ada4a46241222007daf6b25e57e851b861dd51192e154158e6d2d12060e14189885e536dbc2503cb26d05e4d72766a2eebb24f9aac8fd2684de33b822d419085878338ed6ef87c3716c3ca1b3f538be659426545bfec8815ae56dc3a013f4d19859cee5abe44048a3303e0f8e09e3361b3c957ea5a99057f365a4cb68f03aef58f016e026bc733140e8ddc77c6fa049f5a5a2e510f03efd45b08e145d8f29a8519d92520a6da04c8ce472c1a6735698b35ee4cd6c3b645d67cab42e30d9a47cea4cd292ec8067f7cd357f87176236c30777ad9d01fd12963df2686c0060b11a8da4f06415ff2c4dacef91fc9c6d06fe85faee9834c57f5d7fb77f79b52d65ba4f999817ec5ccbc4c63b596aaf4f83f4f25b40c96815da4b80965818e7c9635500157d5bf9d000ea265b53b9c7bb6bec81028bfc35d76d3156cd29c7e4aaa27301169f11025ffe1ac35616497af59ee9829053d96f1fb4c8cc28ec9bd86e7fb493e3c7d8bb9e2d968b2209058dfff5426aeaca97a6d4ad94d0f737b2944af849190cabfb5670f9f26e0dd1628077b12c2062fa6e4d2f901a69a8c830b3c14e491fba4d975083357c7b1a74ff51005e34cc7601672907873bc6d83cf678f2ade44e4f28768cc07ec00f58378457fb1f714292d331008dff4555ff8c621ff88b40a25324f4651c09640747752e3dca6d4a3b0b9d08c513da50d071b967e6e8610273f7f9aad3add836b15d0783c3239b736768f8a3b39d21b6382939123118bc6a798af8c9266c0006e3dc1a105d0ccfd43fda88949f5c8e6f6e022e985e8e36d63d6f80f923d9647bbe1e8f6bad41e873cc8f19cdb3ed4b1a8b9d8bd2372c3a2251478449abced3c64548f697b388bc888281dc72cc67f046a116959b7cfd7a3c50ed74e1c7b3f9b4a5ce66bf862fa97e35634a35ee95b14ada6316d0ec6356a37f53bca72277f33275fde43107d468b09f997800aa039fe5515012f9a0b01341fe15d883a34e8a2e11f05012527dba32aa0f07f25035b128c50db9bd5e498c0a31165ff0c41ae58776854dda4937ef6591316a5ba687b358ee1de8228f3eb7d654f1cdfb7efe7d90f7b8d0a8c06e680611cee19426c84fd68e7aff1e8beb95f4a6414046795bd04611760582feb963320008f68c9759efe9ce7aea81bddc7a97ef18996813de741f872d4b51c2a0d2c2292262b6476c4160666e652bd89201b8393c26ad19580d5840c2eaf88320d343d6174774cbf06e3dfeca6e5c1ff39cdfea6a708a24c80f8fe3d5bd74af0d6d2c8bfef71c4dbb2b1323bd5c2e6bc9ea5f839d2aac40bd29d25f81d30e801a05b40a62a5166573cce6059138a119112420958faa76493eba44b47d011053d1935533ae2f3f6ebd4baef7a64111cbe7ab7734e4b41418335c93963be0534d723f4e1ae699e341955ce80a4f5506dd48e28c673e74a1de2d572a94842b2b50bec040f39b374a6d639f0a747c49f12244bc173708dfb0d2762d7c0a9a8c0bfcc7d3c6f5e3b0fb1e23fe0dd0898e0a1c40d8cb4bb6971d716af1d4be087010b2c3259ea03dead8df5fd6513268352dd8b5aa447b7139104105d6e25312cae63da6369973637381794e2762c3d70d6aab7c243ffeecc08c1e4e4eb1657fe0007888c1fdbb83d76612f8457dc0fdb6845c9debef1d25c1fac8c2bf37fb064a509d55639daec683dfa66f117d6aa6440f2abc3a0a806657e4972ba01b326df686a885d9845c94b799afc83d9a57f238089a9e201004691681fead57be7dde96b23e56a5a590acc6fbed77509c8c966efb321c444c04e17c14764db8859bf98f19d7932e648c077ca905bc481033e35b64e5840d467e84fd0107fb1d84489c9b92632c0ad494a6cf942ab41acaf27369370069c08bed93dd22bd20e26b0d6b41787efbcf2b02950e5c68c9af44fb1764d3886c15859bc2f8a650bcf162814a86b7796ed3f4f292a025f39c239cdd4bdfd02bd37070c06673ab9eb3009c38cb1ca428dd9ffb08776aa2acd91ac7294985f99590863eb0ec7ae4a0ffda1cc6366d50f412ece784c85bf98197b18eb489c5ebd6369e15bd696879144950265a1ceae8dd0f1dd35a350a8d21f5c9f421c98912ee8323d0c68527ea634973ee63b4343960523658e32c2999eccdebc6041988f21b0874f0aa0f13ef8d5742d1bb9d30feb8211c10b16d3804bfe3d9eecd6fed832fd42f596e50bb045ff058fb410798f62d0e88a853c22509ba6d46acff213ad9bd066f231db82badbfd4a530bc671839f4529794c6aa3dffe9a9c4f6a496e0ecd7021fa048f60094c7cd3f49707ce114efb99185a7022b1c35be8a6ba6413cd6b7e4c8c2351ce6cbab76f2a37943315258625bacf8ad6c177284952ba4aba33fcadf26a9eddccffee13afad56481513de9ce872de6bb602b10f831000817a0722e663c372f4a955713acb201698d0abf1f4bcfc20a1b78d1391a72a335253e7ec6b623319fbf37a2e18ece8e8ebb2b57d04e71d723b4adbd6a61bab8f7aea926eca495343de90f7929af9f7fc8372d16de32140825d7e26618fa67e9dc97e305c1750c7b01067fcb7ea337172b70cce793364977a6ead1caa844c6b9270e454dca244b46e0579375f8137fe0d4713143bb54ca9b25ca665292872062d02770064231a0d059541d8b27724b1f72c95674030d712516564a6287eb0006ea73496182e318e0bdde3bbd5b4beb70b2479d82894dbead03a69ed50cd9fc67f9f10d9a3d4e53489d75caa1138435942c19e88291ce5e35386215af3ed866cf9b4b1b13d04a159a1c6716e9da6fc8a311a711dba23a8ed8fee81a609c9f21ab6d6dfd0487a36b529b77d3a974ff8e1dca74b445496430ea3a5fc9f6facc2c571b3862310ccb01f9e8c54bba587c387aef2053a7ec5fc2a28c295e5130c69bfa30fab41c4a28c1220f1ce76c38231ba2dd5465095ebc8efefc8d2f7eb45563b0cbc526deee42b6b0e4bdc1842d4dbcb4ccd882afff6f13dee4ce935b21f2a954a54b1a99171945faa72e5608006c89cc1b93133b64dbfe0daeee95521038083b00983713ed865ec20a47deb8efec70af398b095e01969a4fc6dfbb3ee6df653eb40610d8cea3b5923a1b98771bb11bbd8ea11a7f9ac23885d183a91512af88cfa306c33cfb09271ebe615698b6e92663b0d374c70459971a0a961d5f417b662ff12836e03c63efeb34aec10a9336d2238e94674bbf6201fb92628f167221a071dd80be91b10fd1b7964866f47faa29da3303f116b742a73ae122121e109896c2af6d263a494b827556755ba89ee64c6fd9868e0ccb7b5af645f013847bb4147a4ddd2423934c752c966312c0d3901b0029250efbd4176c01b98a3d5542b14c19016df3f5eef6cb4be5cb2bee7856515f3a703ba445eb5d83e1312c0b94dc4ddfaada7998e769093f1e8cdcbf3dad82cd643ca63df02bba13164d036d2b38352dc7b8ee7ecc316106080adf2393cfbd956a3cbf1cd723e5d6bf0d7db0332ed647dac93386e4f452ed75f8edf6fea39bacbb36f64cdde2e085a6d45b6ad6681b8cf5b277102052ccbb382ceb8673a5818a12887d3b7f2f9c74337254b6269174c342365e0c5b5a1ce5533bf915a3461fdd2e97160500f78806f08b84d195851a20ab33b83ae5d0ac71a8505547af363a4e7e9ed1d1153d19bd6be44ca86d3c3a9b12c547e5397332905aa08e59874f296962a8cd8f448fb797f29dc4cb1691f130725e9b82c5ec5bbf880088a42d4af080ab83467df4dc0c52499863093c7213096af405bdde5aa53aa45c1588a8867d9c0521a7ea920dfea82a39600ce1d8314c292430fd82ff036c14e80494e7f6fd50da981c2c8abeb7e1d78c40da1ecb65d9b1ab6044802f7054889f719cfc13db6be8dae3dc66dd5d3f832f55a3eb8c4e38100ecad3d0ce469e05125dee3f6a5eb671ccf55fc62e39a4d6c5074d60677a40e738b042a00a6d5ffacfe65e263659160c5c003f3997f9863a46ad77a9d22ba6d1eff1dbe5348ead1642ebfc114f422d67f73c80147fe9b6d8bc19a2dda566de07f64e52d0eb8a0326bd1a9d4d61e107802d83dd7dce7575734610ef3377618731104b3425da03077c8299e8e66148109624125aa477bda68eee54c86f5afa56460bcfed063f847bc2d5ecb5eeecaa7c9d050648f1819292d5b669cb1cbcdcef02f89afe22b40cc1e1f2b414a71d6dc374068e90000000000000000000000000000000000000000000000000c10131b1f1f", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 13, + "comment": "signature that takes 12 iteration(s)", + "msg": "5a00000000000000000000000000000000000000000000000000000000000000", + "sig": "329d197dafcb5775b679fd04f0545cbe06b5ea670a0ca24c294ff6bf179a101a990c5c1d0cd955bbf66b8aacd6753e3b73a5d60318e508f18edf02c1642f4bae773bef697226c2d2d32a124c33230a610e9726ccbbf7810bc35880f110bc5b943ec08b5d48e69c7e517eb4c6e3a09223ef092778792d5c0f1c6146a250f385729105da422680b375eb90ab9cc5375a6252ddc1a8c9fd43673ed24a1bc9b29c33de1910e73d7ed01447c9ac5478b23e2101a41334d8c5e168a4cab4a8a6a9686288287181e3775a072210f5f7748baf6dafd3a5a08d623a780528bbfb7aecf47a7127a53fb97214c1d0b15fb2c07ba054bfab2c051fa8323e8d790731cc146af1ee8d14ee1ae533dc2e8deb327b04723593489a0c06e7c6ab483fe0d1b95b46433bb75dc308b300ca38f25877597c30b94b6c6d0e6bc596ba0a1f46588e0cf2dca60574b484b29592c9453fb79e2d26539f384f5c01c8b3881a95cb0d23d9c8715a837d2c6c4025a80a5d9f889c1497561718f621ecf740f7b8d5f0bec6fb68d3343434208f193f1a3784fba2bdedf35f42bba4a292f40937e09fe5f83edc8e9140d9a0acdc872ac7e989a86a8402971a7254d59eab5dee25682b4ea56bda9a30dd5de53c6186e94f8d434f61329445f4f573684f3746cffe66520f864751c22e51a2c1711b47b562e383f7a4273dfcd8c661aeb6ee8c2671dcd98ae3b4b4e8e896d33b45fdfca4307aa7bd34577966976943b69236edc5899f57b859990a81c1d646f9154beb9e6536910363a5bd4bc6384ca69414b3637db541fefc75c7b8f7ed04a9a29918c3bbd8439be6836e81c3628e0f281719dd362dc3f6709a3fa90d71e8f0bded396b2f4b42f160a614494e50f3098b1f15730e59dcc01927d3addfb9c8a6f2fb9467fa526803656033f7961eb1f97352f76607ff76fab9737ef795d033168ad31d3c2e2a50113e8460b8a05a5d2894e187dcbb7b1bbec8cd3985a862ee115f43eb9baf4e3432c4e7ad2ad5b14c1330c5beffb08b9a1f735ea76facc8315c30c0dcf4ef34ce2b41e4382f39c20a1d556c559055f9286d3c91408da01bccf91ed532ab6b7c4b7f9e26f188fe7783e1bf8f0acee41c801c1085fb4db8e0124145ebaf5b6fe1c067241a60bedfca3a60604149b008c544df6c5532a6bee7dde9d7970ba89b392b164eddab4a82b92e2f16c317bb21ab83e461dc7351743715781c74dedd09492fc36428d5e31bd04fad10f18be8c70c5f38607630ead73d36a3cc93b440cbd4b7dc5d880ecb155181b4d5e0c982047380b88872845c9203062c37dcfdf3f70dbe812399d696025a3aab6a337f71d8025f5fb2f76f440ab6d950a0d405348afa6309cc359e5b8a30c55aa6f6c8a3ce9019746d8e89f350bba91cc64ee3e9b129de50d855c8dcf0830cf9ea44d0a481a2a44254ca61b443fc7812f913367f136700b3ec7efb0050e4817036a411f0ef1ad51bdc2232faa0fb85dc27b675bc0c3fa929524d52ed760088d310bea8b3daebbdeb019db49533d34dffbc8b7341bd68428e5f3494c1d27f9ad4d3a337ad0271e8243ad82fc54606b48872aabbd3dbe31a670b0b2f1851fbfefe7c9711f6f03713eae031a9a7bc44e7f8b08b9fe9ac5ce6ffd19d49202aee7194a982089b348fcbdb98a722ee916237ee11b6dd81b53778662eb0dd6e890321d638d283b22aa64705293a6d26acf72e44c4a229e073ebc33e76717d1f6df90b583578c5d0806fa224024f7f3cbbd6701feb91eda28c483c0d99ae20eefec8e045a82e6085fe87c6f0543d5917ca8b289b4314222102128ed1cecf8858e4daf4275a3efed28a7fdca3182d741687660eb0e4c30a0489bad636be6752a66425c2094b58b8a52096a0d41abed69afdfd0c536f23f1e0455956a444ed84bba3567f3bfe18aaa315d88815f6e79a95db84516213f89b19496b511a60079322e2cb40550409711046acb5f25bdf7af252aa7ceb45211f8474d02f488fc7daf82c5b99ea803f509bd07f31a967d53a9ba872ee29d39255911a7fbb3fcfd3b51501a8cb7231eeb09581ef1373714772b15a3d752ee35c5f5c64cd7d104d625810307a946e2211cf8be6af39a0d9b12c64f1e03fca1cd8eb10f3cb96e4f1100952ff7cf5a71cf4c2ab867b94c7e73c5585314e680d33686340aa1cb26ec5b6a9b2be75c7d8fbd6439b1199421a68661057331291e5175be09d38fab7c11dea9c38a7380c62ad4cd3b9567353084b56defe4740e503b38dfe1b522b3b9d04c1fd9413a8ab2a318dcf3c1da81cf88d0559d3e5ae1e2568b3a3264257b740819d0b5deab9192a3ddbbd0c55b8b2092de9baf1b9a98bb26866242d94389d8bb7df073d851b086ea341f52d36d1c62df7dc351529584e2da55e059a8995c75c2cada3750ff15656edfb46593449566c35a4bcb2ca17269404ac1fb52b8312d43f24036c4a69de33bf09119982a9b59921f99ebb22cd5da19ed1a9cf22ba1bf19a1815a4266139f5cb2bf78b4f506c571d3d93ff4a2c19f8f705953fea214b0fde0272aefe59f26eef138808349a9805a47ef01c76a5d236160a7d950520b0e1e3066d3cfd78601a9828c9fbbc78ee4a115083af5dbc57dfbae21893f6fd84c4d78c8502b8fe21902b78b785215ff8c7928780220fd6837288472a904922cbf3a05195455744bc7bea6e086f8fd41d63c26fa411c0e528ae03eaad592f5cf2454cd8af3dbdd914dbed2a7ce827e49f90420f65763e7df627750240de5d288f83d39acc89f2feda0f15860119d472fca64d75e16a5f62ed79fa96fd69b7c1358b5f1e97688518260154e4acbb7a54c3be252a9e7258f05df3511b97e5aa66b42a66f481f7b4608baa3ca922f24e8d9cd13df6b8a015898738cfb9c9fc3205d16d3ec40463cdb4ccd46717f15aecb61a2722171f7b8e55003e2e1795ef0ce373283c1dc0582892c0390232ef6f9b95470b36235bc1150b9bc469bbaca81ed54ea12e47c176e57b99f2a544ff64abd7ba68a3ba2eca34944e44d7d103e73505f09b26c42ff5b70400410ef69f8d8fcf7ed4b69b568e8a5a53fe6893c2b1ff756b7bcc23ed98c3e9c7b6bace134d4be35e70ef761521ce673b174de2fb9416875c66dc6ca2addb810b0b2c85e1ec9ec36345a8971a69decd0db973d90ed8b9de3b4511c0c16010acc43c2caa47b9d8f4574c0f1a40eae91efc590745844eec43b159b76fdae4dbe2fa4eb50f62df085077ffa1ed648b7ece8993b8a9b3c8163279c0695fdf287df677f21b0b9a2582f2cf8a7bd402bc9d2d2c447a3efa95f774254900bb5bb307741f28c6b9f88b8d168d2392c81cebe15b2a1a25de950bba9bd9f9dfbb51cbaff1d141c61f3014b98144135d9e032555441fd89e063d8b9ba43c92471fdfc00bc61a45a569e862b23bad2150351e5268ef01a490a933a3ca894e6f69336c7f3ba6758f1afdb45640f0cffb1f5c917de1477941ddad6483f42018688ccc4a6095256ba3f36c7537113529735ac6251545df9b80b0b7098339911de42dbd0a92f6307185077862d338240ca63ef8808232aeb84e914508e4c50627e6b67905948accca40cc8ec9aec4d080acabd6955c51f468ac9f11962cb7ff70fb86dbf3bd4d7d0af9c1b03c26453da1c8be775d649f9da1027fd27b6330b432e862672a24f3aa208a2922bf66509440ad278754640e25bcea025aada0ed67159d9307234c4f2a9a56fffb6ad53b395f95c819df975bfedcb8201ea39e08176a9bb83662d2d617de735a1469d08f2a4b4941f378411062b3e4e9e006347734a13fcb80920c87fbbe57719b63d3028c52206c5f621047ee786ccffb16581718e41db86cfe419fe498d998ce63d10f8a90af1b283c28c1253eb8bab75f8ded541964202c4ed2c85448e4e1b184a87e5e6f57fa15f881010479590c181ec4a7183e21db1c8b8b588023e4cb272c55071aad4e651174535e3f678b675125c27da909ecfb6f63e5704549df56a0086db2a0f8e2157d5aaac663430b8f27dbb7b972f1550a409b68142b280799671bf00bec11cd7899e42e4ae7c42bf4201023d1aace65116cde7744e2f48505df146ce94dd9ee993c38b603ef96365e28abc9b9449ae4e46db9967a9d2c414585e3a0ae9ccd59176f46bc8ba7361d2dbedc615ef78534c860d279ac4c0d0df9f7ee1085ea26a7db76525b79e0169f9545e4f67af5a3bc804fc7701dfda5eedc6e0f9ad05245cf1b9462489e71ba7dc8721234bff9e439d07ccf92550de55fa1fcef637851f2cdac6c8f46a6c565ffffbc5fc0205a948848850d22ed9f4f26ae014e568bfb52a24555e68c30592b24accf4a56ee3dd6268a3a8a03b77414db823b0c169b4179e210aaa40952b5f3607ab1712f0bff61bf27c95b2e1d1346e85b760e636bfa01495da92cecc4c9f89fdfa410dfe51d548fb9b1170156c77c7ce23af4ea42ba296f01c71c0fee4368e0e80761381520e5d276e819369385b13f06250b3531bf81d14a8cc015afa9bbb1c3af8dcb7f09666d48aad985df0a3bc079b28be331d1a37c7980d0dc3efe276445245256a8026755fefce0b9fb06666875b0d3e3e6ee282ac4def345c5ed19539ca8e40b1037505864727ca3e5e9fd295c87ca0000000000000000000000000000000000090e11162226", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 14, + "comment": "signature that takes 13 iteration(s)", + "msg": "3000000000000000000000000000000000000000000000000000000000000000", + "sig": "aca955fb8affe2bb0cb8e1b0c4618d56d56c9699a62e2bf4362cc2d493d4a2265c5dc0071cbf9f2fe921ad693f471c54d6cc650859229f19cab5a00ff7c1414942db1fe91da60b617d7b54c31f740ab920827cb8feda78e929cb9912e3ff4b62d73828b43406b8ee8e68bd77e9cedc71bb36f177a9c4f0859e8df215d75bafd2ab9f8cd5ce7a5180a2e0e47678417ae2dd0a4356f616ca5733f753362139e6d27a1c51094f9119224f66131a4ee8901b23d5631ffc35d3fe6f034de35eb70fc3bb1835ec0ee49b900b5f459fd151846dac8d7de188937c21f35d11c92bd0c390dcdbb03e3431bd91974e985574a5d08731c65ad59faaab7a5905a8e8156ace76cfefe7f0dfe083ae0d229319be4a987695d75b93e467fc169b8e4e0ddc23f5c940bd9a8a50e0ed2829fce480aa1b1eaca14ccdbb1db5eb39dcebe1ec234014b14f55ade7a6aba06ed980e4a0004c0e439bec8af9ef6c0d711dd323f73fafe047e87f364164931162585bb7e559ca3d1b7cbf0383ecbb50d3fa2b9f6cd776e923cc6277f11b9a68008b01feac6a9b594480aad9c178f8f8793a4d49be97855b914e8495b46e9914db8d5f92f3cdfd59183fbac84c43b5f37494de9e27ea72f20dcd33411e17e38be40b02d1d9603bbdfd1427725a4e6ee8286861a601ec630e4f6a3820cc5fee5e92d125e1c1e230e5f24a51a5dd756b21645ea52454fcef53d4c45480510d3c5aac9c46991177276d993e584edec16c9f0e61bbaacac5efb72d3dd6f66761f6fe555f389f791a189f74f17dbf19270eabc7b89bf72708e98dced911c9f3baaecadae4c1aae77f082d64154a5f15f1ad0967c94a0590db7415f457a81c613eb792ea31ff54851b8066f25cbca4d48669de4913b14a877c50cbabe803e6dcb0ed70073ec5874709d92bb5e14e1e4e5cd6ca6193f89a61a3ae3b7e255edccffbbef97b9d891d5dc311ccec4e59775f4fc671f9d6263308bde1a0d8b920509df922561932e6f422ae8b92c92035e3fb5885ea32fc64ceb7d448beecceb5a9ef651db0469edaa36702b0210c5c8beddbf036115b44d704063b1904be41d596f8086bf84498b114b299b7c6dc519d4b023e6a0e22231903d0185630504826f0895c7c405c55f192518f04f56f8dd15872e9ce583dc24d95515fe32c82e5578299b00a8db6b2da48b90fd8b1e758390558a09449bc594c38c04b7d11806b297e41e78933757050fc1004f20e8e0aa1aa332b84c72337ffdeb5a092f6c05948c5c49ad7097481a6efb785159634f9fdbaa8aab2967be2d864bd1cdbcf648a94affb8cc156f8b76e6081be81d18247e28de5e003a05fd67ad947d4f07223439e160e3d54dfa5323d48bfabcd4a4ebcca482c8e88ecd571aa45f25504434b6ddad9609f7313fd89a64923a79fe3d12a68cb323d429cdc22b12565f6d971365f8de3ee01d0926cf0a711edfae2bda639d0328a58e32547b64589dcf1eb26556577e0e7c3caca3b421eaf53ff109b46fbe323e570fb822e4cbfa881814be4b8e7075f3434825ce1b58c3cd0bb429814e52bce0e02ceb1b7ef383fe264de2f6eee06ff18b02a7c2caf546d74f8113d10fe7287e1ca0570745badbaf2ebeebe5ddb071214e831b885d7c3746da4248298b8f5c74093dfdbaf00966db348246a2b9a3c3140ef3d64975367873d985172383d46a3a790054e671bbd0184ec74fd2fc17767326df3d71c15c3fcd4df2a388afdf7accf97c08872ce0c1a2c733dd5b48449fdc9fd62bab34cdf48a258df60ca2ef20a9dcbb56589b47c3b3975a6a8d28d9d66409eb2fcd1cd4608fdb2c327bc47a75094bee98173a6b5e22070705d7e6aae0ef2de45021dd5bfea084b299137b3d941aedfaec158a3d025521d266dfeee8c41e4d1c425120639144e76cc0fc68dbf64b84d16b09fbe83b7a9b19e74bacae9ecbef8b713964262c3beb333e5bbf0cf96e9a767db226357b54bd51f94581906885bb96e20197ae2f24b8a14dadf3dd0a531f3c855f7d2f06e0ba8887f9441456290e3aa60ef6ea6b52aa048178f16079b2d22070ca23a43e7c5709b3ce2f571c2faa7fe433d6441c32e006b9b250f184269433b13ddf59772e9c52fb971d236fcc8eb71f70564954bd06f8c2667a1d918bb64c23c5637e8f411386a97c1ecd68f7be593b3ab09483a93b92664f87f4b91fa0e3e24dd0f1f082d28da5f13e5bce6facae211d690f55431574c55f9f40d0308d059b0a8d5d49cd6e938621b0de48afa2dd46be95b1a7b77357881cc0df2334b2f90e43e8d78621b5501d447e53e2408d7c4398d59cae5a1edf930218daa72088f8ec2e1c64a5051400c58f8de5306326c1bbe0e821c6bd7628f32930cf459f20566effd455d6072edf25b062452bd84cb465507b79cbf3532f726b1cb1bc6cd1bfa58d518ba2d395b27b4385ee693a58a32052fd4f6967d1f4e187f22526da8d1c3fc0e5c208516de0df96558061ed41619b4b1cfcc3c72bc6059ddfd8d611161621a42dffda395ff8d9a5da32c39f929d38d7e2f3ba50ec9879c7fd641b93957ad7491277907140a33fd771f40aaaef04003769083f0183fb191c66612a53b68e54dfeb6e247c8caea47c6cf846aed2bbfb2703c73b810f8786f92247d0cd8dc3cbf30deab5a0751d66e6f222e2a40d4ce37a385b4e869f1b27a1107efe0da464c7f8a377db6fca17b68130717ddda1661d770136eee43ff12d9146bb13090d80def8ba21c5953bbb4b780dc34e5e0a0acb450a44a0903d18735c39e386c88c3a49cc085096404a347be7fe2e51c11fb82b1ed0e6c8b7b7935a8ddd99f090221493ca46a38d3447a40db20fe2e2076499937606ac5e31047b8aa2e9ea44d19b8a990298ad07b78dab6e3c7767796a7ba6aaa96a072c68fb610a3863e07a8bae57cab674862972b5fd41190d0ef7524329c311db6ddeaed868db7cc949849fcbcec4d5e78cd52fb881c6ae8646e3fc1d4c58b65e888a6cb7f1a9905aacfc7ef63c5e007e6dee38decbd69919d1c0252b296ee2a212d3862c2a6b63e1920270ca2d287d79e6c3a0506bd4d16d5de0937c7d2bc8d0e9210a0f14157383d8d5de764f9e8ac6014bbd50728c051f817663efc7cd89f2751bf9c0cbf15a005cd0fceda09dec15b0777d781c064fa4fdd56abe26a67ec75ed6ea3f6ef42971c2bbe732fb8622d8d006c03ccbd2148281259ea19f61902a949568e2a73f42b46fd0e097a04cdcfae9db2827ca86bffd0fabd2832575476cab43ac8f7a6e458db6d89e13a042d8397ca365ee81e47c190563a9e2a2e5835b0b76a54598f2a82f34317102f763b4e4dd035f605f2fa1bfdf124d4ce1457c78368d2cc3a09e947951198ef6d1a90e0cfbbc115b45c5a39b8c575ac7ea57d57fcc0c757d5dc65afa33af81a4316a859e6f63e7463e0c506b86df8b898223ab590e05b8149ed7dc4640fb1ba9bf0cd3d9423ff0b77acad57f5c8377a032441dddeb770920e17f6535ff5b213f59910f6d2ce723294788db3a1ec15d9753fbed0413a154e3559c7782f4b1b1d85e911f9fd53a0477b38e2cf3dc357d3274c887615946c536666fd9ed2ac02d0409bd71cb050605b6d72b5b86837d9c1834cf56b18be49aaee4272f45bae61204d101123e64952c1eb8c9bdf827b2872f237f58277450b704158f4a1d8836c2b5d943d76dcaf3332407d104295254d0567a3897e2675454c4cc8711d3eb974e80c7a08586c058de444991bf6d35aa9c0c001ebfda40fed69d9ad63057a6089b46c4157735aaa1474229d2bb4c0de4db11e363e24dd97e23f41cff4a902e2a22f4d273a1319209325ce275f898100c1a8644b6f6182e9c264206a361de85b3be510f0884722a34d070123bc59a5b704de7c1c5c7bc335bfd47a1524c97fd42529ca45339473051875012b06116cbb6b6ddd5a9ccccaf1f02fded20d7613a5567d07aac42bf78bd2bb1522a30cc3b3689a2dc08c18130dce4d13135d14946c68b8e4ccef451c3fd2e5a9a24b6847af0cb1d94d4e156008b5284ded4a465c3657d8102a5b8a1099ff518532d7e23a5b61711cef14e99f24c3d4454d06439105335bc522c54a3cec4df7376120ac34dcecef775db37666467ad58de5fbbc38f0a8d2d3bcec651b3ff4404b20fcba8314eabf4cb02976fa827d5f11df895ba518da951e62b8cfc1c4ddefe9a9c123fbf54351b9084aa5bf7c0d63bf142ac0f401bda28ca60888ce3fd93740eb6c96af730764175cb3a017ac52496c453465fb63e474ff9efe76f855f6c3de5c54bd93a1d00feb6c9706ef8344732102e0c9b1246d8d86563e5d4da036c3da3f15c325605e00614b1e7595dfb15f69df83ec567281a89cdc77c58d0103ef36a6f6a66044a52cfc97d0399161ea07fce9545bc2dc81f71aa69ef3cfc5f3fbe2cd00a41ce9ce9bc4f4f53edb4bb4515c1c224b5babb24e8164098034ac0eebcd4271bc3e03d78a10facd8d44c28081ceead3419e009898d93cd80d950cc2b73096012d4fe3fac6a99f960c1690f2404f08d28cd9e6236c4a62e7c158c00daef24780f36313fde6d0be73cc250788807d7c6ea2bccc364575889bed00031d6d81859bc3fc0f353a5480e3f7387475828fa9f400000000000000000000000000000000000000000000000002081118191f", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 15, + "comment": "signature that takes 14 iteration(s)", + "msg": "0700000000000000000000000000000000000000000000000000000000000000", + "sig": "4c20d4756ebb87c04e2b12bc10e946defbd6887c1e1e59235cde3e54f82e24a7bc40986ca2c136250474a24a6a4359e6ab24c0dd5f888e6ff4c3811165fdbf6bbd65f4c343a934c50cbb617ad05f611d70aad50c3ee1e82031599c8420a14f2249f9702af294df6d357a26e3d3bbeb73bee1920451e08600a48375690269ead2ed434a4b07dec198bb71440a6f1d3833207d592f41227ea3b80bee740b167699b1d1b62a8c0d380096fe20550a35621c91ad0b8b4591eecc06e968a7a0f42936f00bc1260b59bb8e998fba8369e6c0e4ab59d584e5d2fb6d3be236d6ddabf760e43613f9621bce0926008164feaca03fa415beaed6e229eff38aadb3bce226d4cbc14590abdf5dfe3671d01cf73e3b7df85649d4fd4a8dc4a0610943612bf8826811f014e1561f4d73d27c2d047abc03de8479c16e9c200209b74b5d5af065c379c815ca3de9479c4c796c05ffb1425273a33e44c508b90faf68d21f71db621bcdeac2de596ea8e2ddbcf8d83c40f212335cee03e5534033716d9e48187c5e6aed2b2f3159b05b7d26e664ed55eca7a020333390b5d75f2fd339b7d9110e9fd43213715efce49c058fe3ca8e9ae0819f59da0972875b6acc22d26bde3eafd0eb771b63cd750e2faf94849b624bc8380a7273357040da6d8dcaf17340952e61475f15569ac7fdbe96174afbe82f18154f152b828a1fbc3e0fb30360b0f71662425b226833ee355b692b4ac28bd76043cde5614a30573690d0491af1ec2357fc92cef92185701772c027b462859bd88a2606d0e762cd166b2ebe1c941499e001477be199d116cc10782e2fb2f93764860915ce744cc1c9dfeb5004a5f94c1035b7053e5063da3151835e7cbcc6c03bb6c245b29a1b53b5c60bf1131a6c9875b67f70d0e09b24af743c0669f55218b715f768ea00374c546157877c5f8da88506df17d08cb6b43616a52afe7ffb1e9573dc4748016811e362a0ce050db3fe521ad275872b2574dca118357dd8c54adc327e1c3f279165fdd6da2aefde314c8bf25c0adf2de1c3e999cd37ea9440ccae029a0a18a71fa49e3025a3534b4f5ea84146d4761837c6ecd6494f65e413705d407735151f63325fb0aecb6a08622f7d47b78dbde33f928c25bd7552bd5efc383954905e5081787dff7a99c9ead9c1a22e93c5611eadc2110bc61b8cda5849257ef3b364d714d3d8121123e53c17612dac8854ace6ee3724fea1aca65ecd78144bf636d381b04a8569f08044d48010d4f9dc82332384fec13fdf75a19b658cee93beb3fae83aed20a67e5b5222d2622057268bbadb06c867bc9fc5da9be0be1d5a80ac9254ea676df534499dc9d316245ac914744dd8ef39bb7f87e75e4c50180dbf2af70182df9fa9fa6d68f8f01118f1d62a92f753272b9608b52222bbb4850d76aae9f8bf3a34738b3b0c85ab34755cea1a2f8dfe3e59ee3f48df02fb26434a3c1e1b0c07e0f0da24e810f0b4190aab290ce081e7bb407642fc2a7c3a209d2c2af367217ef57b39c19285020a6af5bf367ea819e272b3c4988035fe23cab7bdba868c73c1673cffd537222572b68303a2c71aff1700b1c1054c38daf29029d5b80d17c571f6b3a370a155851a44d3f1f0eba7996589a25a011f706ebca54408ba0858c32692912675f8982c6fcc5b46fbf56d036ab51d23c1f5db1412e95e35f5b023f11f05bcb7d4a2339499bff3c517bd0ebf28000c41fb6cf513973cb06a0434f2b1e7d488c752c3f0cf88eb139610e1c6ed7b19d808b78a1068851d182ccf706cff29d07f1fd11d7dbdd0e5975cef2b8797c12d8f229e16309355eef3bb68c904605ab078b3b3c6a5230a79a01018abc653991272eb69377ed306d0fb21079cc11558f4afa644cc505b1eb93714c99d5d9f24e1add89c493f62d837e53e9c29d5874e7d2cc5ed570935c98f64b582813d09b9bbe0122a97f4a186e40e1d9e5871ae879e8898c4dbdfe8e7430f714fc9887d90c4fd25d7a45401e113c3697ecfbd72cbbd838d9f4c92a20529f5dfab9a7e45815c1e6a786ccdc1060f54e00072f9caf8746d54189ed53abae4583f1b12f5cf068de12f91a5a18c3ffc2e34f4c93c92bc32d5744b9ee3176e3d096bafb22d0f05dc7a2ab450b4ffa996fd34c52215ae4232461ebea39ee8036995b3a8f79a6038380046a6f8c4da731ad6d0ed8ef3eb18ce10e42295ff1429a362f5b487740f36dcdf5ae8147b1dff375929810addc6dfc5ead0653fd2f41a8b052ee356cfdfbd907fff2f50fca7c7fe315dd7421c45d7a5d44d059d8f043be9023deb6ad063bf7631a0bb268b718d10556562c0b7ae71fd7598b677b4afc2cbde1b3bb2fed29bc423cfb25fc50a6e2bcf7f72a69afd44c7a7e6ce90efe9869b9c3bc4842a8d5dd285b30e00ed00f9c04f8a319f56630a7588cfa05ac0215c90fe6304b0acf5d9012d9414f7db8355d62cd01421a0033f06bb82f3ffa5aba7d461ef0486f9c712232d62d7d1261ad3da6a050ed40dafab46f0d5625aededddaf365c1bd36e6c06086ebee512adf26fe51ae7adeb2825c416332170ba8c98bbd0fd61103d03444b09f3574966f908cbbc685fd521d8a7fbeaeaff70d3eb009335d8d6c36cadae7c0bebeced3cff06f08f5eeb55afd6428c1b09d3f87170a739e1eeff3726f7c8fc5fe40e6f748691b71d9a025c7f2516df9adbca126d0ae88f5d89311fb262413bb4822ffdeb00d36251d95e2b61cefdc45df8aa513fa1278d370fbc84e49317f71bfff01b54c44bdfbb4041191d99a2c38a08e7ba7a7f1d28cf4fd60c64a8e7e9ee943ec4b59dd1de214cf2e4f1e572db03780c80bac53cb78be8adf305ea2dd37cd298e09df98de9f214036642bdc622292a96673dfcc937904d98a7d5c22978825c0ff8af8128a28738d555fa8d0cf28cf90dc9d876aa28ac055ae4e18f52f526a1eab58e32c1d07bb62477bf3643fa0078dfe9fb1689b4b86e74cea57b182e044b192695da7d39097e74c8fcbad5bca84faff8b9e5d4c3fee68be456d906d3d6b33f8d623742beae927890717d06779af30d64656f0416acbfc36e0ba5479b92bfbceda0f502225ffb560fce92a0633a201a020ae7bd2e6c8ab100d2a103cffad4653a35b1de6ad2eafeb887db92bfcc1147a8ced56c31aed1043e3ffe28bd9e3a303fe54eb5d4e6f397050c45ef0cc3215e684c30dec801e7951b2f430c578d65945fc920c76468682ee7a5a9ed7a94c86f1ffde250f6bbf32ea7c6a164617bdb34b5f8f78a4bf863aef2ddd54fb67796c99ba3a30c908b74e291a1e3999187cc5e848dcbd4237771ca92cac386cde11a6ecac522140cbe2d2477a173d635cceeed3f4e677bea60f801d6b6d029542fee50051351c54f9d17156f54ab3c20f97212a442ca6ccd0763bd052e84d8501cf1e29949f6a065db8087b094dfcee63e5d3474f413aee22725dffeebb516a814c05c95d5e8a0c2437e83549e5b3c7e8b79f0a661dda431355d1af06012818d7ffea732ed983eb519cfca79913f4717875bc1147f0fabb622b5dd46c91afe56a0d5a1a890b85963c1a5e69573c51f80bd3b2c533299ace8a5741e8f463e939d8ff25bac06f56ea9fa497e8b445bde706071144edf446654ddc813cfbd79def406d88f1eabc13afc668939ca8ebb6857dc6507ad57598a20e37d3976065100bf691edb2e07e4af41da2e71b811a69ee30c9ceb2d7193f90df8d76cd844afd1663a919fc8bb2a9a2f5004432bb292d355ffc94709b3d56a0d2b6851f50b82cce36b0f9f5d0f9ce65aafec0226e6cd3c13cc175b23fdbde4f2dc727a316deefc49c36ce5e121d68c9904f6f8f8a77b771d35aac6c071b880a05a4d0beddf969f77ebc6ba7cc7cfe328cdd15978c5e19d14493439b1d26054c5546fbf726bfa5e7fcd0f79f936b392c32fd817ac69613c9113efa1a6c4fbdf7c0208d5c3244c4c3634b30aa3d427caabcbf6916e0c0b4d210798025cd079d99c7df73d36f9dcd015d6eb42c97607897ec0f325d63ed27f6e8f6f54933885e12fe331c27383081e54f4ee37fce9c80d45dbb240af499212026e3820e8fdc918278bc28d8c5b5720c99fdd2e7af558bc21e98b619ec466c6267ce57aff3364bd96136b33cd1a786c58a15bb1bb8b59ae76536b1486e9094e1bbd9c02ecda2163a091f089c68c9e322d58892f043f6aaaf40796a8a057b254c4b286db85b19a310830dbef3a9363f1f75cf216db0e7d9beb09ca3c34331bf46f6f7ed8dc5c492ea0a38cdd71f0bf308310da8cc9ba54ce737b14e6920d559789af7bb6f1d2d24c49f699cda760e2d359a2025b6b5fe8de7a3faee2b8d80049a37545a30dad4adedcb75b0d2259adf75d5fe6d8a25e79302c06dcd755b4c248071903c2db57506de14c2bd505fb8a22b1e7a89d4cb742b4ea08065b5a49ac1ebc9636979f2c3bd1975531549fa054d607403087637a299cccbbb22868caeb689b5a07ba9e4db8ce0096ff94343d1a5f3d81e2f4bfcb21f52ba0e03f2aceee92329d8b86db09907376e1bf0975896cb7d7c93f0871624bbe901dc44d21158525788012bc0914af7ccbcd50dd5918323540899eb4ced6d9252f728f9ac7eb1f4bd1f7051a393e535c6398a4d2de033b5e9df0444c5b6ca7000000000000000000000000000a111520252a", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 16, + "comment": "signature that takes 15 iteration(s)", + "msg": "5901000000000000000000000000000000000000000000000000000000000000", + "sig": "0ae96ff29db27475fb79c14c425c0ea4ed3a6f5aca3e03341c0915072a3e0e42a286c52fc6eae4942acfd1702bf89091301e0148ce84e6ff37324c910e879f5462bf79b2b694f816fc7add718bceac778c5aede41dc8fed0b36e389b578f2c2a9ce275106a43ce324e1f8ab3d90e2b74962c5312e0da28e7a2eabe551c7cdbf5570ce51b0a6375d485d60870e7d33ccaf6f38e83ddfae219fa43c3a628f906092d52436831a2bfebcc8ccc3d4c37af51145b7426796af475328e4f13af5277a61c6439fb4abd3e16e7926762ab654b43ecb35ad2b55d50124713f40b61d65286c1f6a22098688a54927a9c0809b4592fe84e6716b3fcb9e9578922a32552d0240ce23bc33ea207e7f0e454c4a1e8d04f1984412cc43fbd6190da1d7b27ba81710fc9357312e6a378a190c233c7a318317a18f8572af09790e9fc6533a75b8fcf50a98a2b4f812a6551ddbbb42b852515579d8f494180e88970d66249d6fcdd043d8d4a28f7da88befcaceaca48d5995ca175446e683ccb819604c22db1e64a00caaa9922fb47aa4b593e9ff1cddac56460d4d10a7edcc2f4eb55e656ac34360e59e2229f001e1b97359d6b34aca5abbe7e2f61a1544b55aed0ac5cd5ec8ecac54ab2dd60d2d388f30a58821a2ddf783d406f5661539522b08b2b75abf69b3846b812cdbe7f7f9703dedef8e44624dfae277d73d0a48dbb204367e42b5745e6d1b39e341feb9b277624d098c95074f9aef2a0ec6d19e814d6293505e522feb5fe8a307ced98c2ac121f2fb28766ebe91eeae3ed492e42b1e6d96766ca36f088e6be95a5c905239bc710be4453fa4c6e4a94b813299935a72aeeb28e82e2a5f75418473b1c6db746d9d5fb6ff8f3cf12ac89dd5d07981200a88ddb68d6b4163d33462641e6d864cfea94e4c3f1005c72842786ada132a5c208d78aa264178c27eb78ffd96c657822e87e644f04fb488b1475ba38e257d7502db05b3aa6d2bd7cb3624f8871ca02365f72b21a700a09c5a2ac8768aa9c2eea057a8b3044e57bc4522c54140fe3e56f1106f40372a4966fd7e2f49c0f50739c3deb57e55496680de407833b4572d0b8f2645c42c4e9e532eaf834751437d456bd8e7227f784e97024eef48a3c28de24ba3aba2e3ae0ab9115d8bc42c8046b112973fb5235050393000bcc9e9e7f5a1908da1e6d754bb6677e84b8b19ac59df7c04896d5efceba588cfca5a47ff525f3e3a03f23e1fc2c568d13f6703fe6be6d45de6108a5a779a1588e5ada196bf57e6a80f172ce2efe45a4cd02341a63ff68f9a220f54e98c0456c48232aef29b3cf7a0ee7476e53074dbe6f6d6b5cc6c7db09281d8d18556acf4389f980a4d3f31e7b68a6d185020d3fb3e7edc1f6146537ac6b53e2eb051a993741bf7178b135df37697a53da4416fa3a532b70b07acd25aa201d4d331fe2c99c8b909f537332167f16219d612e3b52c31391d88a1864c00f280933985e25edbf1275f1640c4c96d1a207dc9838dc2a79bb758e0492cfd82266d33a8010c9b7969a9c2cdd11afcc76806c8b313991371ca7628f4f6125aa8d6f93e54508edc4563ed98d95fe5599cae63e07cdfdb3296b702c6565719380c974191cd8aa3809ff70fa6a9549115c9f636f7cc013861290beb1acf259ef43d48e51d210ef9a15f01aa156c68b9426981657b40a9bcb1e24c59e0739852b9661372a93dcd5e15ff5dab707451da37b19a815a1c1e42e649a785941fada03fd49fe4350c52c0bccd5a3f37c9ad996b0d1e46f84e3c52a3cbdd034187bbcba24605aed2addf7a386cad0041e20d8332704b00fb4d7f7b5e41b51d22849b347479de81c1ffa4b60e550039d8ccc48c71dd700afc79a8a2db036a025001f14a29e8c1f6c262e766c9e60bd1def02bdf7ffac598d0bdfb7404fc80c0937d0cd390bb1cba5dbea4ad5917948ece345aba23475dab8da835e921885ee1cffbed132e3f8122429443df96bcf07b0af8d1d6268bc2d33ad91c873aa81fe95f10d76b7391b996f5a589483ffaec7deb9ee75dc674acba960e0a173686d7c8ade2cc8a3758c86db5406880d43e03a5ff2f32a304553877aec6aafd3dde8ad73e9221937c74785479267512802429aacaef9af27602de45d973d6cff72cf3c17305fa4dc896520caa84b91d644e0b50d1e92f909ec9fec83d5fab3b82814c3dc8ef17b122cd2ab487b07e926ea2a17a399e107c44414db3f61b7b81e9ab51fcd6deaf4bde305b678ac30edc62101c57aa347ff1e7787f40698c85aec1a8b8572798ec99d434e0670c4613dbe89c5e63dbc8a4a780a063ed1eacb7c3bb967938bbb9ccbdcc0c22d6d77b12f6d1db4b511eae4ee5b1412160cab2148ce81d2877d71d37ee9a32a12b866a9ce34e6b2693c126f96857ae921f6a4070230a1435ed8047afef81b82c0f99ac25e7c9585a3b5984bf1902c27aee5f7ceb3dca49ff573d87aa3ee9e0104e9409c8323e035c3d518bab3d92beeef73a36d5d7dd5a2947b361859a0734766754a5caa3247f75f56c123d60ab6a8552c2600fc5c38a841392ab5ccb833227fd0027162a9b3dc819baf21c4deb72c30e2a5432164a5084585257f404a786de69fa63e73cd1fa34c5c5a643e7751c8d641f46be9e9380672b88598bbcbacc68cd1b34b2ac484c76d6663ed17abdf56e8fd8e3a6d66a5e795c4d622b5ee22b9142150a42217e89f2636a8fa8030e797341bb453cdb400edcda2d76de0fcfdfdfd3c621af0f848013bd24d9165d0b16fd0fef369696cd617b8a971f4db1ca9e8de7d4af39212124c592ddffae21419b427aa3b8ac121011e93c37b603a1644a2853b1cc96ddb8950b7fc3dcd38e2500a9e44d7f9c5af0628258f0e4fef27645f5781a99cbe4cb15d27e1ba9b18c0dabe7fc00b61129dcc1ef9ced8e9284fec24800c2f4428e43cbebf84b6b5c9573fcda463dfa81490370a9d6f3da6756a0553f3c23b2beda638fb570bffd75c38f0a0567a71f290c818540ca440184c6254dbb5e26f1d31a82a4426179ac7c50168c2a64fb380ff31e3352d1dbb888d4da49880e55c53fe2e13731a6e69c281938779f3e85d7e2c481c24ae181a571267a4e6f756bebafad1f8cf77350a6b27b538f6e7c501d0c69b3bd00119ee8fac8581ae95241cb518446c1c525cf09d55b7c5370f09bb3bbd672192da98234eb96f66489c64427b6b16ce282001c3945cb77ece4a0404e2f769542d30b60da603a44e8107a821faebd42374ec1a7a4a956d7ce236f11ab39f849599a1b91c307d2ce38905e1632917e0b128e289823f55a750aba510ee2e9d53e6fee309b27b4fd9456c14413e84ceeed549a408955d82c97d0a706ddef7a4413e8d4c83e2cda09e92ef48aefe31904a9a223303c40f8b81aa59c32539f082aed85afb7d54365979bd78a3ea69bd79334270fe0960377114bd0f7f9af961c32b256878ddc6ca11baa6cf2248290c85e3ece829b6e95c584090b4b77de2135ac7507b97b7ede41db85c6c102046d353edae7f11cdead09413292dd8d68674bc21500fc704234ef36850220fa8944ba6ab04db5caec44ed0df6194160f4f7fc681206a2f4a83f2647cde571b7b2f71bc870800e80e5bb9eeb60177337d86fe0d6d50ca53f42bbc72d327451129508482e5a3b004960caed4b37cc2bc04a81173d164614780936c28fed286a68a9d6cd71720c55f8c7abbb13451f052eeb535ab9d155393dadb2e595f292978d14d126110010e6f7399259e54ed999ed8fe47109ad43d6905f0a3fe025d12efae1be7f812f09c0c61bb3031c0246971606bb4c3b230b8280b402e7dcdd7a57ca13f63a93cb621863207688841001cdbb5d1fb59c836e08c332577b906fe2933588052ba9d0ae97362de13f0ed1a508f98e20ba58de8e35f125819e4b75018c6dee49933932d8268ac2fed69b48a6ff22c4e841d3456e5476b1d834c2458034bbbce869195a5a8b046c8e80160eadb70b82655f7ee48f12f82ad8cd42625fe1c162b3fd5eab61ed00ccfa6ce908350f53af8a8a5842b1baabaa4fdfc7dc0d2dfcdc06b2bd3fb786c96667947b3837eb064db0477c16ba63012d28b479d6b11f49704a39df7b992b41eebe13e2f7eb5b021df2be37c2467c901325a33256eff193a89171b7b50c30e3081916689e0c95761a5ea1cecb5990adbf00934150ce12dd7f15ffa23c904b28cc8bd2441b2928716538dfdc9da600ecb962213e4cda73988e22b30d34a94003f3778792159246e206b2fa02989d4632b4d2e251acdba79f741635165cc0e9a589d6a263345f5ed3608aa5f235755774820e37175f03356a1641c73fb59f9eb34e169420a53edd8c7265f618ad42a1bfdac5bbc367ae366d3a765e39e5e426b688c68d649a82898130d462809550748d140f77177460962e76ab257bf605ea3e1cc34d3c77c78f416457f34998ac0693bd45033afa5e77e26c148bce33c2634238410a25c99cbbc47c0f0c892626f9eea3af77cfdd6bc410976c4eb02de3681a5a2f84c0b9430bc6f75a8c1387520afe25f0305d1715882f07029ebd05119df7bf01821ff73d422b04b8e833e16672c6a707be7f5ff1a535f647a858fedf84a4b88afb1bb2e36434d738eb8bd1d7b8c9956a0b70000000000000000000000000000000000000710161e2225", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 17, + "comment": "signature that takes 16 iteration(s)", + "msg": "bc00000000000000000000000000000000000000000000000000000000000000", + "sig": "f56c83a96b8a6ec436284c14cff08fb09b6f95428c11de44bd37bfdfb07274abffaa07cca07c2dfdad0af4a255e0288f84fe3e570cc5d50866f65b5734d32a9a64f67378cd9f68834dca02d0ca6ad618412ae1de64bb73e485a26a410535f37c11c29bc6ec709c7a0cd9f4db11705fe354c9e9c599894fe465ec19cfa6a648d200ae8b4aeb44e599607ae8cc5357687aa5aa4e16a1be0d3ffa9d8183f37e7057664e1a4af44bd95684a270376b045d659ec580447a712d7fa9f341cc5083a5723786f53b3bee31ed1340c70c56c6a0e4ba62b78ed2d138cb5f1bbf788a378742040cf1054148c77549d2411ab91c443bbabd71bf18a3682b91bf94fe16978a01139486a1ac69f8d5715e6bfeca102da3089477d4a7ff66e2a9e6c6d63ec5d2cf6d456c355ff6eb8d2cb8fa711401f2a977fe507a53a835a5b41c555943af8402532f214a84feb45df54fcc9941e85d7af3202f98258f55d85a6a2d0c3c3e9204c4e58a590ab3d7d10df85714b4b51ecc0eb462f0534f9c8851fd9fe01c5658a9b4456e377ee6aa65695a055aadef8a34ad67a3220d80815e9506846d00a74fa406fc0ee4e0066d9867c108a65c4e78aa52440b6d2229467f3a1dcd3327accd6ed34fb3284b3535b10514d6634a7b56350e1f0e7a5a99fb67223d5582456566e1fa843bc48a290ee82ef40f40681da92f2faab8bdb56b3a0f3b2d4263384c7b42672ee60a41a70af454ef462e05b6dece1b461184934ed7ed061dd8b624a57f266b4bd15cd50f0792c1a5511aa1fca0e25db6c85f67eb6d54d6d32517136abd776ec7cab1393af5c3ba071b2e8eb0f00f8793565122212587d2c3a3e881d8eacd3c3c5575448128402aead38e9f4203abc7c35139e88a7cc0b99d85cfdc542af4a6187feda485afce7600bc7e36d0bb9ef1f177e13ae25cc303b9245ad9c17e24d17b7201e38b94ef42730f04f583c6b26a8dbae3a2cc35c77e0f0fd93ef33c2c26ab83f9c87ebabd79da5f622053599f6865c94b0629a1d4865301b680890437a084f970997628a74f85683d0169111620dae9ce55b9869905adab7c12683b31884dd9c3e2ceb085462496164cd61b09673d0238ce57e039d8b049c5a6f8fb11125aa9bb2faacff9a48437e50c5fc263ef43c1fe418a39a5e70aa23d1592e26a0cfc355a8550dcede2690f6ac4743cbad17860bb13b2555a7f5661fdb02795acd5ddb66a02d9d08973e1571f4d1eafcec5089c3232cccadeed7ac4b354994c7d6cfa847e535f081bb2b8b72eae05484db1420466a2d729a020ba0de466c035670611304373bf03a34c98fdefb3bbddf878f5409bfb657fc1fcd2487b17e24c1a73a55e029263221bef495e94ef52e81f5e4f07da04996c7b9df0fced48e70c302bc25ae322c71ea12c7fce267d52e90d3c70e41473099bbfb49d88c9e16156fc01e231ac82cacac30bd6c5c452b8dada6b4fdd3821a5961c0daf8f373a125892069539dbb289bb26d6c255f5a72aa36088da358922be9ba030d367ed89601bac858a16829d8df676390f0b62c50be1dd189825454d1ef43e7bd29f646665877850411da7c5c317de8ce72e0a2b0ae6168c63fd33dbef65c21f0dae2b6724a52dd24b9958f0a4e8617ff5a7ba75952b360effc280ace26415211d215b6a6259dc66523a11dce0141696fe01ddb34caa4fb336f9a25e0f528eb00eaf20d6cbc11d7f6aea7d9c666f3db8f1962bc20d11dd6344bd26c98621b47d129039aa6114ae2e91919f9c01dcc70e79ed1f37acffa067eb3637317239a09a08d9e517c5f2cc7c20f9c060622144a1be49afab8cff13ce7aabc17fbe73e58a15ebbe63a094f052df71358f4aa217363842955d7e8b603e3cae644a52aba5ff069bd3395336049bdcb0b47e6d742c7c74861ba372d3cf071316b381032caa26f7ed20670761e63587ee9b873110b6a8f88da8be924103bbddfec35a685ad91a93eb3aecd202af975df233cd8a00c419a3b6d7b3feda4ebaab112417118b7b4a8d587c78830cf3c4bb3fb575b48fafcbf45a919dfb4d4afc55d8460fa276fcf5d13acb5411372018cd363898d7c57208f5d511e00295b8d45d053fa3d196de14c101ab072027d8b713ea59cdd6280affc59a98024a3c65586ebcf11ac9bf11d543c0905cee0f34bf1d28a04049aea9373af12da85627ca230db9242beb057c33281103e8d4c4130766312284e87626a2c502409d4009bc24e31e5c04c840363632f914efdf1e137269981d87bbe007fc3e7bb501fa6707ce784cebb58ae0bccd57eb0040b066e4229b2b4cd3a5bc6a3b8fc21f18cbbaad51db1a949e4859cb581418cbc4c4c9aa91b3a4eef7a87fe92464f066395dede537ecfab55f846ed9f858870e913d543a6f01ddbe4874a89bf05ff1c1278419dd98ae0de4a0647165aeb1eebb06ca7e54ba6b1ea8048a080e4976549bbbd6f543350ffbf2f2d33ed9fbc9918fc30a0cc60ee12552930a2096fa8748db1d55114ff8342e36dacf794fcd34063d0deb54a9845474045ddfc20e65dce65ddddb7dcc1f6f03ab11b87e4b60404eefae8412c464223d4f271277e8d54330c056a88b338e7b36cbd8eda0482c4247b6d2d5b45cb8df73751e4a4b116eb8db46a99f9197cd8c64638731f5cedff83c197ce3f0febfa5c9e074007010a5aca4488e2fc835d3548ff082914a34e4a2362a7fdea03349c720d49d40a6bdc9d583128df97a4b445b07d6e00ea75cd0f97e763b35bcb30d8e15a4a45cca248847cffe4f269dd54e7105af70f6cb32dc60e21c8ddd20a5e7c1e3daf6a2a2b5b71985ad74cad6bb68f38481248dd433ae360de8cd6347fa43d965954730bac0c51aa87d4ba1d40fe55c0b93c0502dcb99ad707d45b0d0112cea70b675b8aba2173bde78baf48585baa7787c67d5ef45612c873e785577404c585d1cbee8421d6c47a743e82865674815c1e541eb4ddf021f875fa87bfe12ca61ab4f03f31aaf32993c9e02c51e910c668f9c5199701269a1d97877546f9534d58e037d444223af8631ebbbdaee7783abeb30ea0e1f1aaa820b440462e02685cf61b1176deb8f22ec17f805a2f5d72da968bd697da1ad56b65f2d2aae0d6bdedd231e9d645101154cc797260bc88142a760933163eef09e5b5555449b8303493571e553f8f9299d235ebd8566f17f6c77c7a9f122a1a918f9361f47462816e29c66cf888d8e48292370ae1167d077435e9b21843ddbeab0f4fc57326408c382d7d83a8b6760f2a6cafb05bf6a8bdc0ea1b1df470c8e6c66ac3482d6180e00ff65738928e461ba88b836c3ae5bd8ec84507afb1b9bc7fdcc703e833c203d2d7bd3579c2f5c1619c36e93baf0afbcbee2dcb94ee5de10addad0935f22c41de878a9205bb61e23cff1d88cb9e1a84b731e0ef55144784380fa6a5a5e7b956827959ef5c26542807b2e4b906343b47f3b6f1cd63e81553239e18ee5fd2595170c529ede26d34b4b2e73a3fed14c4675c26f4beac5b312385a38742ad3ba96f5e55356586ba397a7bf719fbb28e8019fe0d4ba91ec1ca7b5d2b9677f9d95a785c034f284783ea1c52cb195d53490d655585e792ff4ed31895767b0289423dd5897f5276e595ce9b5d9fba87a633d6b51fc7ee604d2738d390c22bdadebc43c28c7dc8521c05fa49cfdead53a32e1f9b941e17512d95d22edfc7aca816f222ecf8d29da55628b1542f4ca7f8cf0a0582c172c2ee62597bdf36f590b68fd1eb4f5e565a1756788a54b43fdc67f78426fd7bee3414620aa8be0b1bde563e2f176173ce62f7916973ba949dbe29cc2f88d1fb30cb545e21aecd96ee7f66e69188292f6c31846b775634dce449fb96df1a066a1ea83dfca60d837b20b389aabf2a0d994d626630ca861122a85a9476fdd50d736ca657adb0ba60a21325e97d185337be6d7e85e98a2cd20e1dd7f8a909251724c6f18ce8d437dc0b3764c6052db81d0ac49aeddc37ba627efadc260c2cf6faf796b57adf3c7efc2df9c09e7818e4fa69b27ce38ae8d954a04cc528017eb184018adca03bd956c3f509715467670e842ef6b2ee8899d6db2afae79ccc8a5efa14d88bbaca7b9dfaf4b7836e7fe8c06f5a5a6532678e0eea2efe4ae5807b51770acbc09ebd48179f5dd48d4d19d1edb4be201e416532e8267b73c5cc28041df981fd6ad43b22882567b742c8f0f47b935c0a8f45cf3252a4ca2de4d466f78355d052894783b1c30a454fd3789074866268c1e281043a727438e8f1776cbfb61ff9b59ea1280483bb018ef58b58db7c6edca4268573adaffcfe35f1634c997bdaefbfcdd8a3d61f2a2b88f771e5fd865afecbe43305a66e801a16200c3fdbc003f6db0b864c6097918bb70f7e4d9a10050b79105a88886f63c1bdafe1ed99a112b48b931d1f006d0c6192a5f6de1051da3efce2ab68614f437a4737c3d422ac6785c58bb2e19add4de22e0c97cc39e580053e312cf1d6aad53b4aee11b928ca79b6015a397fda8c44c22feef97afbd5b4fb3f31ef9c92eb1c52b0bd77e1f5f17c944fc0624490097d0f842c7f96d7529604303a432617c7e1ba9771a2aff3c1dafc64c7cc9092a5892a5b1e6f8036299c1c8d1f01c2a2f4b6fa3b0ee265184858ca7b0c7daf6155dd800000000000000000000000000000000030b121a2427", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 18, + "comment": "signature that takes 17 iteration(s)", + "msg": "1000000000000000000000000000000000000000000000000000000000000000", + "sig": "af93c0f7a8fddcc796b60f67b473a00a34e99978489fdbb9988f9007954a44c7007d0ed719c29a9d81353f3e44b8c7e549ccbe338424c443e538c7b5ce544267f657803fa59637efd266055c8bad73d233ed5cfdc8f412fa1a046cd1f677d12aef276a68cdab8a2588faa74852a54bac330b1f7a4365498522013beeba215d4c783d181ad15984f7d0030ff757b8c0a50a7c1851a55cb4ddfdd69e0382c00508a727aadb019a9520e9ebb88e0995d76411c2518a930226048fee6b01dbd420c463a5334e164e41ace2542fc7640bdb200991344daef326d620c8ccdb8277173dfab2d7254bcb4a5546a0df28cdc4291755fd564245a8be0c23e7ef8c7674fbb3a6c81569e39d412f58ba8564291ee7c655328cb6449f38672011cc88b848f3a108cd33b92709effe3dc0801ca685abec737f74dcd13082e2eab3f9bcab9f8ee3b8b0725b42d78d01c547005819a63b9c7c24a252e6ce020904a45d1611641c744ace8c8baae5d2fbc33f586e89fe6f2ff01aa8737a5d41f79d967ad06220204c63f620bfc9fa0e1b881181f60ca9b291eea0c765b549e5f7ced9fd7ead3a9a127e73f7a361ee26613b12f678f61a336cb5965aabd48fc60801928667764b0e832b0d087d424ca3105552a8d46da5e43dec762b65f78b6afde136f30f807d355218e22e03516bbc681605ba55fbded8971a0a5f4d6c4d44d63b854a5cc21fe0110ae313fa9894d6f57f646b01a83e1a7ee41df6bb63bf72bca424f9449f6b260428ac001aac7b7b97d3645e38443626fc4831d235da29966eddb8e2e30f1415a1712097b7dc669d3cac46ef333674d85211e9a94d825fb49e7b8ae54eecb9fcaebab8edfe66b2433fcab5d4b9ddec943f3416dc47463c32ef40e9f7a68ff2415b6bc936c3c4cc83ebe5afccdb2af55cfe47ef5614b67dedeb13e57c846a3cc6852879b370cf8bf5e1f7346751c337a751be6c83e1865345ca8df92e516686d997022641ae6585f25dc807244a04f881e5b3274c8c7a70707d7fb5c5bf1d1096038d76ca31c35b451347eae7a5b2bd376b77a3c63876a7841a398e506963454da61dcf27bbcfb378ee04cc9507aff13be16db5ed64ffd3e1f23f5c6b06b519a3faa7f1260e205e9b1ed7c8f5b755daa51b8478e8f92e86f031be253ec3a20c36ae8c4a5202caadbf21aa3f465206cffe2cd6b380ea9e35de58a95f6490b71ba32e04d69a2c536f297ef1c7bdd44f0bdb961a3723a1a7e96255e6876f922fcc955376ca117418d54158433af5298352bb23b84dd3148c880e5c23ea49716f2623bbfc33f86a35cdc16c6f73e900ef2ad5bde1f8edb0ecbd712ce18086992a98ab2599ac44a51547fc0ff29ee444161e1620a7e2b529c38378340eb9377714cf1c5d8e73dcd81dedc847533316c07600523fb3ddb021757e46c0c2239cf13ae3011ebda4eea6a97b6686a07239dd556cc78ee20f9d65bb30bf67141baca8dff02de6e7563966c13b954b5b73fc9a0ffa8f1c46207ba024b64af5ad45a4f706dd3dc42eb7ee9d73acb5fa6bbb0820471ae23830a0ab3dc0e1d8b3125282a790d366d6823d9a5e05b7b2f5ba5d0b6eb3da3150cb72a33b4bfd157b4d567ce44d43dded029b4b43ee2de531f5a7abf86e2d9ecc4a3bdf4f274e0a8a055b26730e74b8de1138ade92d7fce4bbe21a3af06490059f3f0716369ab12e2dd6f25ee5b73a75d2c31afb0a5f8d7792a4027731475909c755ce7232812b981a9fe347d3686059c6cbfad3dff337c1ffbb18435a36e0af9431fec93bee8cf3503c0d86549a2e8f53b6ca6a0ef9a8d815d53667873bbf0ab80dbf8cf8aed5d3d6743b8ec867c08a6b9dcf32e6bb398ac8c4659646c88ed4e44141a8a15369a8c9265b8e0c1cc0a340ee30ecf4af0d5a44ea6935b08d132fdc33e21daffebc19f4d8df0ee0cff37ea4336a9d74e41ac59ea998ed84f1173d2b9f1f5d925f2870e6cf674cf5dde76c0847aa4606130f04a265f2a10f260ae932c6887f148a622b158ddc2de6c53132fb13741a2d91fcf6d8850c9215524632f6d2343af02b41eada24d3e8c5d29260ed4d16dbc48942edcbd34bb9b077627a9c143cd6ee2dc383d7b8222a7b7c91c7609e076e9d59111095ba654273166ab6fa705028167ca5de6e2e71861d3c6e9df0770fa686f732dfd932b13c19b13c94b19a98bad4cedda7c62538ce80269b21f852607bc4e98117aa23d544673563e75b6c719883ee844014e1e95c62d55c0c7cac26b64038ed78da5d953dadb17f51b5e93d513c79d2734f61270e8f9efdb68b77a8c32636cb6556f7bd6a1823e80bafdcfc155d13c7df59da43a36f172ddb748a0da0316f9a545523f325dc69a42972afa1c5fdb7f5381d8c965210149c6ffb333d21085fe711d8f7fa2a89bb26e10391fa30931e95db7e3d594e97551c4d8d39cef7598fe8a81a5d9fada9483588e137a314bbb9e95118dc3ba4c0ef42fb4615ff6302a0d36d54225afa09d810691962e61a11703f8469624afc54079e03003441949672fb86ee1cf3f792674f38d73b905aa37fc4902cb21d2e6f9d4bfd70d0bba049fa75dac673cc489eeab5f8f14dc948cfc9f2240ca4754a9592cb01188d19551f22742a961ded4f75516eb6f40519bc7acf9af731c435a417ddd8b0e0556220382e0277d27b71885a2d717c479f8b5afdee48bbea908c4bef0c28f1b49b97cd48b67583ba769eddde8367d9b674829253ae61ee24ffb20152e42c58d0abc0dea43518776701d9fa82c2b08985949dcabb80515e6064d0e5d914b8710905827a94729467201a4c8c1e4efa72ec531b730bddc188e8424290530be45f5db0fb1a63a0db4af22ea3609c9d06ddf5253bc2065c2dcc5fea4657c8d0165113b16c186c25adfa47cf7b363d9b9437b7f7ba32d33f8d45706b4051c39fd0c18675e340202faa9d6e0cb94b6c29d88d187709c39c65bc2a78dbdb1d21b7371f8ed0fd134e826cac83c80e9ec08fbd0e2b8fae270e948baa82e65a2d3a6d96e0f36e9ce1fe36af1d358fdadb0ccf3ecc3303f05ef51e9a6ec6437a13c1285aaead9fc8fb2a17fa8db08ae17090c06ea9ed4a392f01e5ae8cf06c76ffca51b9d9cb2adb9d98ac920a325b5dbd8a6c2f9ce33da8c2a08aa304b2457cccc71d39a7d7c6945180f221429672587dfcd2e1474cd860443cf669fbcfaad471a2eda300b662184a150941d0e126f8054470e927d353baa3cccc3cd255081a52648199e73d0d86d0054707859464c2a249913d01a1ed17026fca43fda575b3597b0770a6e931c8d4343131276d1ac598d2816a5e492da8c8ef5bf88bb6941898a223e3c274f9729d7109a3917f63115834e4c3accae2044cefe2d8810b41fda638f2904d55c4b42b280f5717600e282699c1860bfb7b6427abeeed8a261d1f6a1f1ec969ebee1d2a0236a6d9219db4f14d4342a1720c53fde54202fadcb8f44978e526650bc4c858ba7ec06daa021990f659d971c8529a8e8138024a1a54ba4bf5de975eda5fe450f72d3e5a10281cd582149e56136076c2342d64d5418bdaa21981faa2d5e79570e4d9b40d67f987c1eef79ce7c43cf7ed1b5f9b7302eacdbb644d1610459524e0092942edcfb2d89dec927d15589998c8dc051ec4ada88a39e40020a9aeaa89035cca9a2e12bebfb0a7911b163309374ea53b363715a09051ec6d372ca111cbb1c4b9c303bf267c8cdc503a7a2065dd21ad33862627598ec7c8b036abcef446832203a4091e299c47e148ceb0425ead34ca79980c994b96e8fa9a74eb00a3a95a7bc2cf82aad377820f608edda04d608442ca44bef07622c67bb6f18ed4461a5629a91951dacc068b1406db22c2185b855ffa9dba1caedd0ef747cb2101ce27d86cd6012969875355e292caef22b22bfbfd36b7e1731e5d1884939245cfc30583e7d6c1a9f97d6152f4f634faa69a9fa355c3e0287152ed7711b89d832875bc216c98dc140c5389453c4b7ad3796fece24535cd3010da842d0a57dbd35f8bfa26dc268b9303cc64a257db4ca8a999de7e2a7ce25dd94635a95de6985cb2368a8d0488d8caf976afaab06d76512c2eae9f8f7f7227c3688314b13d123c32257918fa39f13079007f10981f118622e1654a5771ea7b98939e03065c1c74c2736d373d55bbd61f2738b17a12e6d48918c515e64b52b729c4e25db55a4a1d8549aaaba3818174486e9bb5057c02bf5900cf3b3526c2a2a96dd9d4f9ac35c08a33060cd7a57f6cd8aacc2e30a58d6fdf8546f730fa3ae4a0297cf41a4a8b4b3c0f768f861fd7d1dd7a836ad5b102a4a433001e71c6d36f046926fa2557126aa478e605d9c66c020a4322abfe9cc1fed99551c12576275f8033d4c8850cadc9eaaa2229dac35c363ee21600c90ddd7cfbf171f333c3f0f4a3d0e7fda4523a9950dfd758619159c38afdce35e21065ee587747d21311b90e0766df0d94527c07cc187b439c8b38d5979c8aaa87714eb31ab0b0a37e860e5d7c87b22a209eced96a08f8c4c6d10acaa1e3ffd3e805546f42851114a950199b5e2a1ed7fb5036a0d670abc0d211b276236ed948fc3c747212e424f858b91bebff5363c64747b9bb60a2240586ad1d311a9b1bff45167b6babfc0cfe44bae00000000000000000000000000000000000910171c2426", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 19, + "comment": "signature that takes 18 iteration(s)", + "msg": "7200000000000000000000000000000000000000000000000000000000000000", + "sig": "89e3fcccb519e7a1c60e5f252131c30dd25d9a20b32cf6b2f0e281e2d5b6b99044f77de936046d11d13d89670f1578491a329a7c9cedb7611add5dc3fbb4df1b491e33ed7c40b851275f296d77f2c1a8a64e98353b95c332fe2aefe674ae9288c8334822fb6c42a58465f1ea2989ed51e462123188b529addedaf07b5f45236b86e0643cd3295a5391d085fcdd49ed6a1172acc80fbb094c5b492b61ab1b3dbfa0e095394a5a3831e267ff606ba17950bee38192c02c7e56ffebb85c4aaea630893b41938cf9640fc150eccff4e487311b3ac97a9cbc51121bd3eed73365052e38bf47192f9ec21219430895ee224d467ef2ec36cbed2e3056bcef987130cd5c3c7d8c66a7b06e635d81e482c8ea1c7cae12badbd6bd1e9617b04de30a76353f30ebc2683f9dd64fe9981f1e8d25b5aaa294c93a1eb5afafb477717abdc9677f1b4190ee2ce8f1a9815ca23f799ee73a1dcb32682cafe18375832ff1d02a1af90124a3cd307fd712e6184d2adf2bcb6a55607c56eedad38390b0de19b65589d765ec43a8b9a0830a825d26fbdf22b70a11586a301db6b94cf45cb3264b6e370aa6b346e0ae0d0db54cae4cba079456732106789d879284e1f0ddebdb7896f70f23b25f984ff2f0415a96cb7422fafb88767a28886ff8096f15e8761541a17986cb47938ccded129a6b30509bc3b6161f8e0c3783024ca65c4fe4179c0d4b701c6abde8a27423d3bdb5eeb6b693ae5d357f5740e3051a3697cc56e18501d1944fbb36e728a1c6a25cd7a6c463b9ca935691871f3733fc2e9841bbf6900c24a08e09fd28d43fead0a5ad656b2279895231b3f7a760c976f34d05e9fbea5e34c8d5477126dbb5fed21b5f30c415772dd2051149c3f68fc8fd8d1952127c74b3f394f57e323353b4ba41817a3b98a9c862d09bd709c1a58e97b4dacaf6ac977ddcafc5e9ae8142d63429078dee03b61a096c9539f7217144179286f61b18c6b4462d592cc40922d5b4d645f2967b5259b6629741b521dec58394435c37cdcba169d92bef5da32bc4e910e907b65961bf07ba3a0e99b699a0d051fa5fa961ee605f2f67c4ac5eb8a794215df11e666d89aa1e91c1088d7c80cc516045b793a0e516e8c55f0b08b8d85db1f2c7651333b9c9ae00aae0f2ef406cc55472a20de3c0bd0d53651d54c4609b4997e6c20f8bf7cab11d1875362f84697438c09059d9c690b998dec9797a2bcd730110b52a3618b911c535d3e75608825e3e51fbf0ecc49a4565d506c4ac0ca40699081f4cf7e9641b811b7e9db7b99e07479067b82a421f114bd72b87b48a362eaf90fa33d0b064e5351811e722dcd6044ab2153435b373a3891e05c15a74d8350e215155e9481e4e3e187e6f7ee87bb43c34668a27a044afe988a2486ca1299aaf0811f7a7638f9debd17b77b6a7062794f6fac860c319e5c3127890ba6a9a783f01f81d1aa757fdddcf9d2307b8f2d9a0540af771d00f6dcc36fd7279a0ba94c280f4bea00d43b181ee7674cd09a5c2e0a369bcd7f7166ae1f9bd0e92c3265e62c72308c9c358157b0c7a2b4b9c62927648799293265cf1981a67b8d46148bc5e619c0eadd3675c83753b3294865654ff0a7236773436e0c271dce2c35c61cc8db3a97683e14c2d5cee1fe08635252a16f3aa80d9f7e80cfb535c79fba5b52153e96c884a0d085bc02c31fdedd1b70ce9e4312e7ab12893f55ec3ba29ebf4d8923fe5396e7daaa5a9b2f310180390771d36d85b733bebb56d03df990ac69f7d371fd5bef121811a166c1e0bf4710768b004ea019fa8a52c970c492006137c864ae8ecf9e1a1bbb97e513146d4d21a58e0e739ad75af2167739e92912c59790e3f296236548bd13c05436695d3c1911a523ab833f4f28bcafe633e8567327f3112f664f3f63209e55f3ee488af6d7d281fbf15fa73d2bebd0124a71309b41d47bee8920f498b961a7702971afdf90e37d5c46f46d02f5dedd54638f5b169358f1ac9e58a5ee745ce6c342c33c76e3288dae0fb5b4c9fec740b3b141e492388f7e3f274767a8afb4794646858abfe976597906aa8b4b958f118eeaaff7d94c2950156456984d8f4fee7cb60ebb41550150e1b3b9519fefa00cfb20fc66bc44f87c9cdd018363db42fa9ef81a7679d37cc1de7480b3f6f78b92b5a09a1314bb0d90c8dfc8302abbfaeb9008f604a1ffc600514c5c676e414a9b2bdf07769dcba9c34f37f1e7eb3e0a5aab946c633bd46877bb84b4d742617e72aa90d89f58d1e4df6c4c550e4ec5c99f7b0e093df5ea492b3af72b6a7a41042b9ce896c8122f6e35d1e8c6f0f52150891b43c19cea1bc255118c824bd1760fe9d9d5fddc70146592547bd87eb077b4e8e81afde392d885de9b73a5bb02e7b7c68581c02b1b5e38b68443536de2f77b694e7e74b933a9cd8b76d8dfddccadea4410a2b94c26f8e948e92a7bf5469e75d426f1f6f85b1d6ce46e8820cf0649a26b1ae5c4a7423d304bb2c2ece2c84aa805203427df2f0fc0057ea5c702a6bd67b187e131017fffb93d5782a7e11625f6b8a41d3b53f3ac1ed2598423a5ac0f084d6bbd92a41f6bd2dd4764e4b865371f240e9bda5d68c3be3f224d9236c3ada888105ce0b053f604a48afe7a02927bc6b67b2f79e5f73b4521235c395754bdeb691bfc1df3740f1201af277047a5907adf4eb26bfb55ccf75bbbfc81c58ca59b5a2d2a53dab03341898ae908f64a237fbbeefb126882ec3974c1e9f97880afadc572a60d0a568c78254075c7cc7b1782c41856edfdc27d45f8b30fc47d9e68523c62f8d3558ae0ee252f5f12f9d8d607e584d8b9111c6f7f812a42667ed21b56f0228e4a28efac770d015e88cbf8b9d9ea380867e61902e6cafff7ead38ae60ba104f83ba6ed775589a7f782b2bf3a44c5321f217b030fb716094dc39e0d7626fcdf24ebf6c53284dbf54c97e8a4f305210fb142ff9eac36ee75e9577a989836954662645b0b06d05e2af26f209c67149d3a8cb4b87a040991bb619f9459e3f6a809cbf8c3e8439245755b27be0fd0f344ef6c13c579b72b3b7dc995985cf834ed07e146280c8afccb8dcec81d92ffa57c8b3a571e77d05d757dd6043ce3ece5c51e6bce0a9b704a57422943e333d20b8870dd492441094c6eab058bdac1a9f746f34e6233dd40bc87217a2d88da0361239883631460477320213131ba05f9c431df8be629051e6b13fc11a733ae1ccc71be9d00fdefc788c7f76ce0fa0d084bb12b5ad57b5e9e1c566f5c899fe8ec9ca04051e9a8c36f5fbdd7a2d8824d601812dacf94a33ff121a853b97f0973945f4c09190abd545361b9c80d98d47a7b8ef225e19debde3ff5364290b416b09c1f59eaab0237b1caf199cba737737aa3630c73ed1b81b787cd5b7eba372a6049882c9d8ec64d467f301267361e23bb1e56174cb0513981269d02eab2d2a896eec2464880199ce2e1848363045d65c7b63222b4bb7c1bffc76b371326f7ac2882389f58fee8cd2096dcad410a3fa1c7ee2a74aea61148e7b09a1f8065f20c627f9b42a10ea8fb23efd4a723a580619472f81a07a543917baa847c92f7bf106d6201ccbf577061f10a904da600ea23c986ac2101cd615b5492739d876bb301b41d92113402b55d06ef6663205fffed61b0492a2c02895fe023768837b6798ef7130a4c24403ece37d88f25e966a12bc9e33f359c5d0ec0badbbf3c1cef1d8c3c81b57f4ba30403a8a89d0ca671a19d768cf8a056ea75a3769a840d6a99faa8c7cc160f784bc055fbaee457afd7295d3c42f0e0c455198bc5cdd5683670f2fa0d544978d58cf7eac45f4e2dde9fdc0ab3b66b3b94148d0b9be9968101d35b8fe1c651287dd8bd5192cc85eac1fed8fa56bd1ee425036c2b494d934fa458c45b014c7ae2c849a79247833b222805c98efc232cda590ade0124610441615acfbcc43e2aca3da8f7a33c0285dcc8484344274e4d743540f5a59d22b8a64046b2656e5e814988baa234c2688a7a9d2df51e5aef0d77ed17b29246377360ab1471ba0975ef38f26e975d4b5cca86144aa4a32c41f69999d6ce1eaaa3c12f9c32cd86e0d18c715653725380e2b9a05e13cb9872f6080103f4d4150d454230aed7ce84e26b3f9093b3cd616a9f94ffed023e498562b1c85eda02c88961a752eeb654f0588d0da952aa2f46c580fc07d83984200cba01bfa6c604a429e1412b6a319b05789ab51e4732ef0a04b3f48b5014419d9094941c1a56647c6c41de617543266357255cfca5e6561364a7a4688096336fd9dae450249350ab57c5fdb895e1c263683b4f0f5ef93faa11d3ab3a936dd7ae7b2266a3458b6c61ad4223d190e874a25cb789e9a9d19f0c3c864bae17ac7d5c24613fce2cc010c2b07cb489012d0cd214ad0bf2278eab207ac4160021468b4a1bc4b2a31d322baf1a59cd71c79662d030fd6fecf6f1590c86564c064bf10d1ef3a876f65273928dc0f06a01586f856ba9df0aa5fb852f15d33fec277a3a33a79f5fa6cbfc3055f28ff741de987ac9a3bd1122aa7e1b1ccb349b45075943f661cf013fd211cf24565175c87d860eeb422c09abd386a6c2d50dfe606151c3176a8d0d90e1017519aa2afdbe7e906094c821c4987adc800000000000000000000000000000000000000000003070f191d22", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 20, + "comment": "signature that takes 19 iteration(s)", + "msg": "5000000000000000000000000000000000000000000000000000000000000000", + "sig": "d195b3100a492fd1f03970367c4d07e1284c8a322712615c275d637c9b96dad2ef21121f912e61b7cd334775443cd28ea75a5fc9bd34fcc95147da63acb8d624cec3318b1ee120b993223d41274d674d890d19befc0f7d36c8ab3b652d0d998806798cc679914c61f6c1ce9d673f77e050fae67ea3bd4f39d7ecd599d206bfd07d3abc228921300ccf5b09dac8953e2683dcff870b14ce3d11249ddd92697b129a78a662a064f70326e3de7dc138c31e4384b5a6337028943e1027c2c775b424aff4f19501267e25a6b29b71909299d0054c9081f62130bc741bc3c26460ae76f6ddc59b16612f965509ec9e1821090194720bf788172d0088ad9641c56ae26b34aff89937fb35085a213957ee177da345c391d968255c399e769522233e914b164010a66beaf2925bc54921979c3baabcaf5e8e0011b4df4713ad14fbe0e83e13b1ee808c17924a2bbadf06a6164b2efa23a43cbbaacfc7b573a21ade3e62362a09118f63588ec9ecc5a496b293e5dec027de91be7aaa8465623ed9451614cdcf9a2758639b410fc5a17515e84b0aef28401d26d27ace64de1e4c593f3d9324e1fe96afb7d5253bd4e0dd6038ef476b9e113b098d3cb28ca5db8a1fc347a21b47411cb46fa0d0d25ebaafb8f484f4d74710d2fde2c689bde16019a14e7226b4d1511a8586fb1cce623584f16b4532a3877003c0ec9e067a4031e2919d94426c4a1da9b126e64a5547884019e1556662fe591aa19bdd487af5d4d60bcaa80d156140ebd9d028f01bd8eb526b5ec1314fbb72c945ddf1d37a154d923b13f4e9c0d082b9f1568f2ea1f3c63b5bf1e8a8e53ff879cb9012c2ed3d9e3cc03a4c4df80c376aa20140b31ec67026049ddc3caa0a346370915641039d80876c4c9ba492d7e53184d75dd91a27b6f4d6998ac2d1ac678a01bdb31291e7e2d54a0ec5cd43e9b345af3667b1e7572099a907256c7d24d8779988b0074bc5dc7abe47a19f8b55e71d97ebf88a79ddb2e31459da9551b9a3daa3a4b5c2f880ae6f5a1281fecf9fc551bc4e7f28dd2106c03cbbd9c2b2e431849a74ffbd4ef436b89709ef99f56d5e0da522b244b1dd9e6d7f40f2f406427d3bb56fc0f104ccc4b0d4399072d46be4fe8e3571ec282609e5baa75ebb176e3fcb1801f12484ff84a19e420f562b0ac5bd50c4c00a2807de8ac33df85bb8696bddb44915e3f9857b375328d9af4d1493633fbf0249014117823b2328b7eea84fc9a44e77e3a407c3c247cc339ed63e5df93e59212b57d36c631f8ed932db4aa4d0d1201b9ec5fb645165e4b3c331c67693ea81c1877a96cf9452cd384ecc8054b067382f9bab4523f494292a112ebc63cd768df87d89088f7a2034bed8b3bcfb08ba36d08cb5cf935c00df9b84691ae61a8398102dc1724f1bc67ad07c4e595bea160e282849c087580f6128a4737252e6b9652f7b5abda7417199017099d30ea76514cc169b199ffbc48345e29f13961405670da7294ac9de9f0da0fd13a47f254a1c5cf8090ff391ca8558034b624e4508a9744a1dffb92f42d02787fc34b2fda548bd426bdc657f901ee220e7a5729eb0b889cbb851aa1773f99c51176604d8f287d3be31fc91ff6737b6305fbdaa3e80c4b8dd9796ae2dea6dbd2d9e97fad0e6a8952ea8e5dee06c2ccfa2ab7ca9faef5a1ba3bce786b5b1d62266af8ea4ed35a885d445c9c0d3b979282147130cc9b0818f1535a979d9a3849aba98807774ef7445288ed5cb8c3124ede54d7d9a34c35ed593a32b15fdf288ba498df82f6a348ba28ff3978d7ae36334b63ef873a2c638bd6cf921fa4e1688ff425d352ebb8c1794e512c8a96bdb0a50bd3268fab4f12e10c099f4871947e1583b847281760e497b8d8152b9d83ce418cc67f21c465042b70f63098b3f5858b0b64edd5f4aee6e121a4b1f3cf0f079764d716664ceec17960b1f4ffd9aad45e1c0399ac204f858045e8f6d436cd4afa788db43b26df5bcb8d7bf5c2a78bf59e1adda41d7b3d2fb6774c9e46ff83b7993a708f75855c8748aa9f121fda369f2565e4f7db8df3568a8adaa743bbc01f919a7567ec675ec0326a73e930090e0ec168b8fd8f0aed26eb23216eae57f8081502aa2368d74252874782bdfed800568c8327480ab6ea3223fe82903cb17bfe43fc301476c7f49d23417d08af26ea61f106fee4c7d49a4b18af0307c77334947b6014c29385e0613a85d618814d40806bdf0b8e4f4d8cda6399483beb0df880dbdeba74bd81170cb340fccdaf6e3b862dfbf89753f57b1d6a5384633a15f33b83d368aad4d0b21e850909530f1ae483896ba28544822f9134c58c7a13c75eb2ccca3d1b5e645add5e4aa696358dd486fa42fbbff23d73aa4c27f24ae001e314a969f349f3650bb2b53567061cb9276a22e568228629106088e4aee0885fe5ae5b4d54be6680218bc1b63ffdec229160ea32f62f2a7f36fd37049acf0c9e42f13a601b014236292a9e8f22c02d564baeb71bcb9f57b91f0f455f98abf4bff9f57f5c390fb3f4687170a7e1ad49a40b5a61eff0306862b762f43359c247ebe045fc6abe3fc21159ff533a038c6ecde4ac32637b27028e285333acc7635d751a24d01834e0e142d8ea32455ce08d03c8fc180be64cca4e17fe347919be46b51d83233c6d651c6061bf43fd1605b38ab4cc215188c822c899354451e8f90683ca97d0ec3c8244939389981b689f33569645102ecfde89bd714f7cc4269c218ff56ddadf455a377b04f375a1716069f79f5f72e5ac8737d754934b25c1d175da27d0443561b3b593eac1e3abdae794e47dcb8cfdd77cd94479794cb08a346aad446b7f0ad121b281f69486029160e3a0b2e267b0d35ff920dcf16aac60ac453b6ce7b51d8d469c15c28ee409165379dd0dae461c440a22f18c644b6444296c2a1cb8442ad1b21cb67bec20949057b799d3f5d38a7a06382d70a728e25ebf46120333232dcf2c89b288f38a47aa4ab9d599954e7f39b8863aa16e34fa38b45195389a5f396e4e35f635f9939ca24fb6f1739114286d4bf46ec439f3eda4f126b144b6442b5d64d0a8cf96d22f876b1b2219ca966b87546de684ed6317cbd6ef324de398eef3c39fdfb8ffc2ff06707f24a659f9e544de6bbacbcd2e84f59c240d1bf852c59a8cdecf61ce5d630da04987f72efc58b6b90703235cee579a2eadaed963f7617fdd088cc256469d8ade4197b6ea019b0e114efb98b0f78c4ff836f7dfaa8dbdc2c3b7fed9c4a4cb350b62591ade1bb881256dc746d72b7b345482a704f52745ab80b12a55efb83e9ee8f7e50f19672c2aaf58b7504079590a447d4ea9adebf13720fb366840f9e41f0c128789c1ab41f2e736a954aadf87aa93702c82c541895780c41285e5d5a42cb5252af85ab70889694a153850900d9e7b696c39a6026ba3aa18ef304e7b99ea209456959f7857da264ba4d707cb2fac183545bcaf89844ee448554ec1f124540c907eabefa6e7baf56d7abac473e433f949780b2d31b41c8c7dc597e6f58a1fb67f8d99ca1565622a4495e484384615efa8a1a3bd26d1328447791895cf82d14b7e9aa490559854c1e7175cffdf93c959896c74ef2b25c1e4dcac32beedd50fcb92481c255def447a0c0984e3a8f7839542bc8e5465cbace449d3ab75e03a39f59c8debc8f5f27782d425732fff5a3993a45bb0b26d8d929a7451dd2c1837eb3969168ddee0fa9b3ee1664b9f6a4ce5971d02ee990b58896195a844a740eec9bb76f90733b78a5e6c65848669e5899f049df2df8b7f6b1b88be4357d5555b4b7b7cfcea19ce5e48aaad6d1680e8fca41833debce5bd8734773eea6b237e9a31906ef4d7b29f832fba2f14f23e7ade4d2c3ebf7050f8633fa01e9c0e260faade6b980a7309e4f0b16886bf5bbf1c4044602736a754d459966b747f511a7a20c52bcc57ac4586fc3528deb0897c37bc9cf52e71b9206a5da2f1c594f4faf1983bd9966cfbc2507c601883d57dfd23e87b86d75b7d37213d0141b06539b2d6e422527437092913f423341437c683b8e5054bce2140765d4919e9d1e9c492d7cd56176302cabd608b52ad78a2e83ea21500769e1b16b29717bb0808e27bcbfb2c31dcc442912a43f3bdb4b9fb0d929d6e271b67620233c731f5835c12615c01574951efeda8c75618c79dcd957b9c72380557e9b9db7d8f85c64be2b70aedf19363bce90ef5015cd20adab909a8d155d9ad1aa0ee714953ef4de0d705ef616549a1f78f36f3601253984ca67880f5f2f1263cf4a91506abf6d1d82d1963e2571b458265a1487e1fe3c9bd2bfe9fe7580462282c23a15e0ec1765205d074e3c90a0b541e11871e932e054815415e74cca00be74194c80e66e99d754fe39df2cd73907251e1e9a80bb80ce076d889416a9a04d6279d3c2f8d289e0645356bcb41aa0ecf3a3fb70fe4df4fb4e8c42ac6683f5b81fe346f9a9cbe2f420f12d67777a2bc1fa17f85ed62a805f7a629880dbafffc15c9b7c28eda4bcc6cb988c3cb10815a2bc991e7fdfeb08665d0da9cd66a7a8ef8eb5fad7f879075397ab60a01c0e5d2b9490c38a8f9a9506030e1127a9b5e5e83279becdf6072541535b62a2b6cbe93c65666a73b1d1dedfe2e3eaf8018093cbe1eb1e314970bcdd00000000000000080d17242a30", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 21, + "comment": "signature that takes 20 iteration(s)", + "msg": "3a00000000000000000000000000000000000000000000000000000000000000", + "sig": "d5d4c237111de3d767eda7b22cc454df422bcf03257b0c6f426f9b6e2105862d63652590cc4b1e32c6a257ee0f6b0cfe50571154c5623c73c73e1bc93ee850d43e14c34f1d3011001b014d9a4afd32abeac0352fc6d15471125b6ea5040ed939d354a7a37826b3dc623c58f18a61c426d24060521add20fd76b9d97d79734a4a5a32aeecdaad09d8ba0d941ef82d62a0c6dd6cf9d07ff00d547607caa5eafe45cc4e8af67a1e40356ff0c1681b791325c1887c5ef56ec8b0cc7f5b881c6d4d0bdf6b8b589e75e5ce3629b565d5332c291755c8095907830388d5ce3c6519ba5161039655d00a73501adb9e25b56a7f37a1211bdbcf3f6d1acdad3d9f9131e43b3efd9914a8e822757a2c30a92867d1c333a9728f01c1ac931710d86e05a85a9b635b8b4e8e8a4c15a981e1907bbfe333f7fa686493c366ecd0ec101910e1f0003815b6f7a9336d5c6ba98f250d7760503727fe0d51826ab9cde573a99673a3154356f7ff7e2786958072df8c68607fa2dd1a15892887d39c4170eff34d0c4a4cc13beb561c5386909d734b8811ce42a44d3fd90c64d8dcf5bfba0dcc1e30ec5d2cf73db17e7903c6c1aaea40fd74badf28ba195fe12591ea57f424346f2fdeff968aaa9b458ab9fb01b3d6966ff6309058f498a213f733404ad82697f8b012963bf5a478f71f926fc82d0f5ed8e9c1d6274eba18b68f63508227b4d85e16d6577b8f16e0d218286d4dd23d7d4bf931e83eb825fcb27fa3fd8cccee8643915885fd35e57859c6eb50683746324cc25bcb6ab260e06247f99bbf3fe679b84b594a7c992685a0e4e78ee927b1c7845206a2c47561b8f8b5d3449f866d24287c1e7f8ecb3099f890dfbf481780100a0d8405fbafc4a93a74e2ba2bdccc2962f1cc33e453401880398975231173c0f0d476db5508e6de861af42b48c7bd3f6b685ea1290b7b559e02ca5d97a24588e3c93830f7858d2c3a9a58bf7388c30392bf665bbfff7995fc3015e58ee8ab7c169b681516886e30002beb3bd37d7cc46a41e756f321bb9e5126e41ea9e7052e50be777db79876ceb71c49e9ec8bfca0cb061c50e7930d4bc345765145ef81567f13bb7f5bf50e3f8944e92415166fdb8f1848c8ca5bd4817d5b85c9ff97d54fa3cd9d5767e3a33d6d7749c26c4ac63f84a7927bb952a16c4ed7b05fc5f648a15443ce3bf36730ea9c44740948bdd7803d99c2d00ddd11fe682424fc767eb9a2b99b1bb1234d2c8dfab6d2eb132c10d5f5e56938707784bd89baf9e4baa281f3ea7bed42e4e4b859eded26b3b7e5c6953ec9c9d8d7eceb3108c720c898bd639a754b5b9076da4b827bbe2177d807044c805780d87e7c0029885777f0438d177f761d19900eca270fb7f3a5bd603963a1f3e247ef56d120d2909a14b1414b1809afb632ada9291989cc84d53689a588a67a9a7ccb293c9209dd8c06bb5b9458f655e95978a5bc3dbf65ae84cf6b556d7eb52119c9f7ed1e1a9fd72432ca2f372976366c00bddef0f10316210aa1331d6133a81a929efcb7a10045f597215257cdc4c1bdfae9c05fddea982cea4423059d3bf9c657923b571cfce925a051e7ddfa5c021e1a05d109f41b1a390e1f3d4df8bc428ad3c948a1483888f3944d3c512d68d0f250a9203fe6f240ff3adea30343864d5a70cac82e00a292a1496e0cee1bb4b54f459570ae0f1e578ca2b9809182371fa90aadd4a1511301f1121e07064ac334d59f566b3326fde27b8954dfb1e0c3ffccdb0b17277353102dcd0b4a66fd22fc9d0da0e31fe58382d036be2f373e504145bfd343d8c4ca31d6b18c7144083a0de8944261637ce323213af02048400f68b6bdac8b0bd38075330bc452d33b64b574ecbadb28e7a0e5bcea64148c37d4e53f6bd70b74ad1152d5f0288e1d02246ebeda700524c64a53c9270ad5a203abd3684795ea83e0e46f377c2c3539e267edd0531b52567a4c6b22a9f267586de28563f46fbce127414f69df2992378ca7221a4d3ec40e336a99ebaff2ec9e0ae500da2944dd3efee4e3df1c9af4461bf2be79a400e0cd8aa9437817bd4fe0919f99a8adad6cccb02d9ed32355d539387a1ebdcf47dd542cceb56a0d3638498173ff7b279a842a96d61b1b09b3cc9fba0bbb3dc97f3cc439d065aa81c56c94bb80f61ca96df571e74fb2acbb123348ce8b8885882aef8a59d1ed4c1f4002be0f338336b7df6a0e60c8f693c751265de66ea247181398592a274318ad749e4b4239f5bf0c386f7110fa6c3ab0baeeee05468c56fc81f97be4fee082d6f93d9bd615c4abbf3dbaca1b8ddb3862521016beafc9924d92daac52bfeadf6dcff838a7304ecfd4c7960b6f87c0ed22c958dbce8498c601e18fffb839f2fffd2b0c7f76f9bf109324109ef59735500838188bd09439149845080e37bdd032db9b54d0aa6912cc84c75f5e6a2970cf93eaa0277722d4de868869e2c9b4a6b257dd07da582acb32e51336f204ff1a8a95da1f519583b63d16d8ff89f127177d31ae34d669aff049d1314ee62443ff81bf1a9817a7ee6ccb23ed801a2c029c90042d6138f8955110149cc15a6375246882e041952e3735f087d1bb78380ebeb3fd785c8d3ef5e58cc6b5c356bdeb1983632607928ebd6763b77dc5a42d6b5a145be0b59e5f178ab83869ccb335b189ed35323ca4bf8e8573581308db432d40d10ad5d2d1df72c35c06b4cf78b2345ac9f9ce5bd648370e42ecbc899ece3d647090f05d0aa07487f77d8beff80a694fb491084619b7a147f3aa900b1877674873b9409a6224d7bc70558084faab2dc7c22c880a1a41892f342f36d121b8957f33a9032605f226961f254d751cf45b2e74e8c853313be3268c03978b4e95eb100e846e9e37b932a4f6a4f29366858856c52bdae4339e4ffd2715dd3d11e03472be3145c97aa1b04277ff7e236a90dd6f989c5f571801c1aeb191cdedb744357d984ddde14b32748ad80365a6c05ae217ee7d166e1c47e1501c4989678b35dcfec700f9cc86db534f503216ea70cab8e14f3d4463651ded4bda83fc7e06b1288e36b35ba85ce6368e2ceb82dc63fe092b35d236a9333e980272e6350c78dfcd36cfcccd5e4f84848f95c559f36e921b75a8e34d9d190542af7fc129ad36067287af55001faaa2ff47348379cdf4dcb9d223b7bee63dc504c0b08b6ab6870c721ce320191e20f5391000f0588913a6363cc770a106daf8dc981e153a8914f230ad0dc2ccc93085bae61879d7b82b0be5904e0e5207116fcfa8a4eea9b744ce63ba82de2ca6443fd76bb9e933760c3613edb04c0a57b587937be3c70ffdae744cfc763c0b83a298d8fdababd26ff1d5f5059e74d48132c029d6766139e579333b97632b7de40bc25e83b9109e2bfac810029b3e0cac37a616965c81f473e3180866ebf6d7c646581c8d857f5aa0d43cd379179c9f52c18dd7207e6a95e47b99ce7fa8346433c630c5edb827e0d8f909b99fcb7c0df8e40c29548cb66459068f58ef431f8cd5ead9813958f06f9c8162184fef9c546290ee0edf0085387f0faceba71f5db046476ba8824f2fb4f8c162b5527bc8e3ce372331057c37cb1d054e0800440e184d126b45b5a55120e9a3c524f8e34869c3140e1d77cc17c34819d392032595c445f99ab002a8481971a148ec34850b9850d69bff5344135fc85d412a8ae5f5ed663ca237e8222889e9343f6c53dfb9c85013ade360bbd67aa546e69e6d9e9c5d0976c02c5e072e91dc82ad16447373b0e5b0d5b07be4fbadef9541286c964bb210a7bfe8b8f942ad9748d6763873435e97b8b9d18ceec2ce397222d45fd4bd75512e3a4e67a2860f64ede81ff013e1a563a4253c228ce8d894f216af05c63405538bfb4fb3074606acc8cc4ed5a12bebaad8d54767903661daa206b29461f4565cbb453fccbc9559df583fafa3128022c8c30d5086ce446532e2b448a75cd95c449a7159bc3d7475daf6c5b72f1320ca85b9e4f1a8bd0d95d8ba2b66b1a23f6f83c1c34e0e32fb56f0fcba0a0d790cef1de3543392c93688895fd0147f3949f1f93dd69c08cc282dd71f2f93148ef7a4e1a83fa8bf0e83041c3822da6cd6b8e66915ad2074fc5430247938223c0368fd367c2fb19b6bb3e59ebdf17f5f6b9f0da025bc3a1bd237abbaa1970cbe524271008a6e8b0f86fb8ab57832b1549bf060db8ca4bddcd587131e61d01214b2dba739290b410a49eeba87075ae899eb7ab7d0b22a7677fd18c205c48c2d0efc5250d3b64e777688e1df8f8f251ff73c7b73d01e06a1dedb8e44ecce22e5f23686f54ea59d3e398d6f38d9453fe571f9cd88ac21a5e8ae089fc74d93a02360b9267668d285f8b81153470634f3bb938c5975c62781d2d70a4b5540cec4e4ad8eea549953545cc98f761c35853971bbfdd1104df872c4a76cb7c72a9273b75e48828d9edc7950819435ff5148ab9a1069f429e6eec43733cd5a33f9db1c19f3bb54f6b4c7e1e1ce90e60bc1b9aef5fb65c3d3a041fba21d7e36284ea4ceb0ccff7480a22966b3f7d1a41b0de85d6dcb03e244628e56938ea4a2a933f460a1007d6dd3974f95ee1849a546539acde1e441456a919a9ba00f20257813b4de1f4e8891b3bbfe4564858b92c1f4000000000000000000000000000000000000000000060d11141b22", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 22, + "comment": "signature that takes 21 iteration(s)", + "msg": "0301000000000000000000000000000000000000000000000000000000000000", + "sig": "bc69835d4dc26784a0325b8049d40e922955c61b21148c20d8fe679e4167f21a10e880f6c75c0fbaac2994ffe766613c65683672413c55a0ea88c3ddb91d53e1ea8312d8a7781e611c7355945b8eff528a8623bac8b3eefe0ec5628155cff355cc6daaf158d459ae496cd3648f8749d08b8ab5359b8b62ed52cb6da031819d60f2e9eaee9a90a354edd6715adcfea9703d240bcb4c9390c68c4da321e7c06304b7162f6a87f0aac352e2cf4875eda31353ba980d1bf7a4516166c2c4cfd0fc0b7f5c00bbd520786b969ab57fbe151071d0af22f5ca50f6ba63005a04e0b2c8578c694bf7d5e7e5ac6c51f02c242623cface4d85ef1b3ee20a5a1d29642a47362f3709e0500d5c62d1cf155c97a3470c49332147b9060d7e3faa7ac06eb71946d23fa8d25ac0e6a314471679ad27867d4f19a17fe3c4a60ecead04b1f706bd74562e04210282220f268ed1ec33f4e5edcc72bfe09b3927358678f0654539503b3ce71346e0beb86dd74d8fad3710794acda646f639ed99bc38d5916ee939c7a230cbde69aff3bbff6da1a3e867f9ad8ec1f02e529a34def407a4567e055e65d17cf9b4df1c67844163cc4f0422fcf1879b96192ca6bcc6ee361ceed8472aabdff98a68e3e7c8e3015b36a323502eaa643626563fd9fcbdca779214086084a829ee6e3fba9072caf18c69f1442dab9fa5facf0970825e7ee57f2dd372e93d9cc921d97c4741d8315cc8df4d1e67115a6dbfbdda45a2235c1334422f2b9ae523270a8d4189c3a57b5e3be8f42e1cb1fd2bfdc56658290f737a72dd088a894cb2c3723de2ec448fcd05b20aaf1f6f27464260e5b406b987d1249ad9499ef56b4b7c42fb224336c5ebc13ee060cf1c81a63a3fc79aacba7e5527dc940765199b5f586eda057106732fe6d38d75b3676f2e1cd1d607382f943c30744dcc903fef904aee1c7a48cb53fed2b7efe5f886f7fc4cb37e6a14b540953c2fc4cac05f03e8f88cd27a4a174089c713a673bd46a77d05eb781150062dd1144a37fc66b9eae3e4fdbe4bbbc53a639b55c5befda2f6dceb39ed5acd9d613b3eb340e31555ab945bc878d44c80bc48e58412614277def3ca1f41823622f7c7e14a75c7d1370d7a5fddbec7438962888b14a84897d6831780d6e5c7b120011f8cc6c4761e1d7706d6abdc95dac0627d7c00504630cccbefccfce7292cc274326e9203faa904c3d99957da57aebcf0efe62230a1aff267446a6fa67cfa3912c395e49a25d9365d4b9e9ad0e30276dfa497ca24f25e7139c2389ce28d750342371ab6e2a1dfae9cbbfcc5aa5edb1350c799b36dfea285ef252b4161a8c5ea08ab8893b41e4ebf7a220358efb3235bfc74ec1e4846ba2d2a176cd214a52bcf0777fcbc9a0eb3ef5aad7f8f2e40681a170bec00a25feae9aa60ef29d14864d6df9a82073176f42022e8142e59dec8c583944e97ff8cea6e4d6bee0c31ca86c8f1f4a45f2e01a37c80ffa85efefa18b68c4e5819ec5529dddc39ec9b160dc2f2c20a7f6f483e74e3540d55a22052da34337b0e15a2f53ba3d3dbd74d7179d979c32df25e0992b4eb5e71d1853cd476be0fb6581e93c44a25c51b5b0b2d0de536d42966bc8757a98337e331cdbd7374e8e9a1e55c140720f995d6e59fd9321477911b14da22182e3ccdb52a1c2299956fd27cd22d4ff35167b09873cc28045f1754a4d2ee5631a3a2a848cd1a5e14c2639d949169c05260025aa6003ef2804d69d92f96af7dd405a95ab798bc695c990a301a4ce0321ceda4026300883385b6356433fa0eb81425e53040c78d75a2d28caa62c2180bd2caaa543295c67c55f3675bc1ba4e4e660b60b41f3cd9dad43885c5fa760957d826dd3e1c88fd2c5c0c61be9c4ff918d0f994246e370981d7e944d62af48da8b4e9d6e9cf526c12754c92e8d58f7cfc3ff3458ad469d89476a4081ed1a71e15814cfec977f9904ef570e933c19f0d87f28cb009d8959fb8fafa3fa26583b11e6aedae855d49b5ee0e71b9ab3f88c7342baad7a59397dcbf615a2af3547cc09db685f2a13be97ce8e1d18e129ec654899f4bcf2b871febd64b163ec52c0fd17ffca6bcb7efa6ad0fbda1f02fd26f6208658c0b4bfb5091196474a4da16a40319ea36203c3836a8c1b3a173aa5b6ee3774dd6f63fc246c4d41997fa72492d5a05d6c3dff9f84166d20284afa4a645df34f46b7368297305eab04e78c3e3a955f1c3adf7226cd93b21ae252e2efa9819475d1b39cca27438c16305fbe167b69ef443e0939d558cd1d9bdba4ea289605b15ff7a941a3a259406f3adbd28c15dc9f920d80819d0341368e7393b8fc0644f7fa96acadae97e935890429b24470e191cca79cd78ba248eb59a881b85b5f7b85cb9f13613322579419af8236eec6a0bf16adccd126a5ff4a56d741a5545bde822912130c79fdce1d6baefc8e235b1077df528ec1de808b5b190beb056b233c05cdca7466566e2e546c539e1fc92f4441f4e30c5b4e05552a6a0f7087c77a0b79b7ca04ee02675a92fcfc5be63a1902b8b53f052a87dcd6db0c79cf77ef7497eef42e34a095a9f33798d2a1b9be69035d29dbd8334d7499f62e4a5a92223f1ecb325634e399459ff1cdaf77f61c5aed1d5f46d605d87b091d494133815fac2ea307bfd8e6e4ec1f6b9ce4aa192bd94f69d37435b797cf00a275893f884c4ce08c26bb4575548c3c9f139fdfb165a02ba5a594492a2a9e8412d1a97f6ea8dc62dda903bcad8913ab3ffd96b2e03dc1cc3268f5a7b7298b212816c09ec8c4c3bf5cf6d1f343087463c84ce07f10ebcd6e97168e61a840d2215c62f39ace7d03605aefc6d456b816dcbe6d7cc3d77172136cd9121b4f05d433dec531a677298d268b9b25efa208bc772e5dd4cf7870410c765d70a4bf2594d6b2037ee2afd2e73b32590cb2c7f56e135859132f04c7dbf590dbe569af2b8529a051ea21e00727898aec481ab55d0d96960999da91db356615847ee91147aa9a907183ce995fb7834f37baaa15edb3122632ce9458c3db90bca7eddce97bb73ae7a5f8ac139734f761f64556a9a8f066c664d5774f8d2f28a5543c69c637c504191fe1d00fe9a88df5071c3d41760e9468040f4e108df4e3ee7274c6ccccb8ec08c085f9262e5e7ca3acab76cc8ae082b678219b0595c0b4aad6c6989474af5ffaf9753fd36987aa2eae9cae5714d913e166471bb8e2cc2deb6096ae16b66857ddfb5215643cd37b6b442a57e886aa9bb966877819ad5e5787730f08c6ddede8c7c52195b023c9d8655bd39e7eb3490d492fbbcc465bfafb903069454b97ff73ed90bc8be7265db1e93c62feafa8392b65e4ffa521a382ef8a32b58a1dba2eff98050bfd251b7099e32ed9f6cd768f0fcfe86250b160cfd8121e808ead63bc018105d4783702bf7363e767f224eba5b8698717feaf2c660fa772c73c0f4304f4a0345bc114cbf0f49d002df610c410867a7117b60fb5f8c2794e5bcd07a4b7fe849141cbb5e5d6532f08fe4a11b1523332349ab6ec7109e9e837dab5d224d00b58fba22e3910ac7158531a5b0a2ca26eae2b7e36188f7a309d560889c912f92826175f473df0d3943d37bf96dc91726bedc3a6173e0bbf035a0a2e61263c92385d27a04cda5c0325a652dfca9adf5f74b3f6c028cd590e9edf6eb1669876c0e449f16030252c85eb04d9a4b2d3d71ecd277edde659b0d11c930713830dacd452d2f5af5ea7a1b09e50e709983ed6cf1028898e13782980209ef72f8f61d07949962749b5fbd2c09d1f26df7d2a19aff854ed5ff0440756354fae6614c9f2e3b5917c748da5360dda149f4228b3f35f0bf77bd3e61456e377d94017ba1c8ab154cadbbdabdf533ac15d1ed9cb0dec3ffd79fc8cc295cc47ee8734e4773541dcb0ee9b746741376553175e98ca8753c1d66bdacffd717b0d11c3cb4e04ec4f85bd16342abd4a8f15442e46ecbabf3e8be618ed752842c5d77d1b0c63a293c5422b847ddca0b105ec8f185ad1e891eb2c01de98437e91093f2ad1cbe1b69c6383c4b092076e39db92f4aca72dd8a1ba9c4b4749a0af3019a77ec711929732e5a018dcc6a53db20ca478b013a7169bfb46ff4b1b27d9c0596061f4d3c9d92d5065b872af4f54850473bd72c772fca1a7cbc1611b7fcc2bda37b244ae24898a1b714c7e0e7a83a1303ff2cc34d3a9bdf6dac9d70cef8ebfc28fd35bc04f5ad34bc583846ce7791799bcd09ad0b49e8bd8f7315c344dfdd432a0fe23287ada28c28f8e1655a9b85a78ef281920d648b8e6780e23c388262ad283fc606b90a5cc8ecbc2824bb84c37b9cf392c7c9e9a478cea9d416f14f1d4a6153ed0c9367bdd1f3664c8308f56c237bff64b9e38c79cab7eb3463656de506c9e4cb0ee0ee53a576e0afedef1a0d4efcb8c83dd1359d725ce1ae0f94b4c12f569faa59c14d658d9383f6e8f26af7858609f4ca2704ba02098a09d194aa61bf4a644e67ebf205c96e40596f0dbb5b5afb2618a212a087ba23792e191d4b323c0cc6f6aa028a6f1393ce19bebe5d6077ed6a4c74ae1f02ea251c08db9298a895bac0bd271fda390da6c73001b3c67d62b353651224863656cb4d9ed062e4d7babafb4bbe1f428970e3f8cfc000000000000000000000000000000000000000000000509111b1d21", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 23, + "comment": "signature that takes 22 iteration(s)", + "msg": "df00000000000000000000000000000000000000000000000000000000000000", + "sig": "5904d8b360f2977a93d146bc85535f57d7c537459777b51bccf37747f50874a489d0c9f3b0cb4399568b420c8e6c36c2ecbb1d256ee4c33bb3274108568a5ca2c55236558db61f7f7b786021d948cec21d7dacf722d97a51e01922cab79fa56056dafa7d4df250acded7aff8403badeaf5d2b6b7679d34c1edc9da353ec106e855a496d6bb3d76728f2ef85e3a7ae7ae5006b05e6577868b0fd45050482a21f7b657fe25b263f93cd77f64802e164176c4d6e8bce5eda052a5810526c87af7fd8bc9754fd36184dfe017bae8b3c932f57e1fbfd6d7afcb92bfb8e366f5eda8cf034a93b93c7b9cb5ba4a9d89f3fbfaa624bfc3862428432b8c2860783620e7589d850c4bc59a98617fd466e20c68ea5739650cac8e1a4018c1b7d96f1c6d14ca3c6619d2025f09453ff93cbe6a6c9f3c27dea7b17f1bc96badb70b4b222d1ea14c632b1f15131a0e7ecd840ba27701bc35d7b24765546d4aef40fc5ed45f8c9a685649063891f71c6bfcdbe7fa5758b823bba2b5c385c3cfb9a99267b71e4d9732f83aa748cdc0e0f90d450f1beefa0634d380930902ff547ede10c0fd13e1713d4a2a20da85f36402f9a18972d5b1aa87b4da9ba202f1b73ce69b09d9009d3c181cae983a3fe952e41e6157dfef51e2df112514251197fb6a9cad72e2952de6dfa464541261c2c2d358f99e249beaea4dca80b5563bec8a0062be7634efa283ee943db470fe3fe3db4bb27ad6683f7b95f404372a90e8cdf9d796389f25084ab6625da15cf5efb9b6912b289541bc91ffdbbbc6b190f3c2f49b2bd12f948642b67162dafd5ef906ef5d963ca9f335a89083728020baf7c8638d1184ff3851fada92bda217bb848cfdde8cd0f2c923b4bc274e2b83f19a1ae53a168598070e128fd7219cff20f25afad63f6b5bd5151df0f12a72699e7d7f7fa3b667fd8621039265f98ad229b8cd90650e1511aa805d3a3e2f1da3931f39b227495e92b8baee558259c4e11cb30324660e659c19cfa6ffeeca971ee29912f73d56e752c6872b1d098eb37db5bcfb71ce6f5a2e464ebf6189225501099e623245ff3859c42fd3047cb8c039c4b9f0a348a579b5227b6fbad1f6300c441278af252b3154ece53e8eb01291e6b6033997cdeb058cdbeb2fa9892a526cc6ba4ff9eb7781488c368ba88369951e64deaafba8e97bda1fea3a466d1bb2e50dfdd775ea9fe776175203e27a5b4925e606f7ed87460abbefc572e07a058ba412908b89ae1c16bd1499f2e3d314b42b191e4250145097e392a7983915baff0894837229f6af94da23299a2f0d1448b3832e2c9adc76f3ca53192ceb68937b45a8ede43a21adbd171b2540b53e28f30c2e5d1d4b2db0abb1f91c028c044c76a77af64274e07d5990f68dfedad5d652271f4538bafaadae1307085e3219503125779854e1848a236916814dfd9283f30eb81d434320f7063f9e05bc8ddbb9de572580840269952103c4eacc9e57c99ec29d68fe66a733231b788b4f5b60ce0725d9f903a8a734b8784306fb76cbdbe990f7d4244757df91623fc062e18d6a9dd45ba6ebf904df58498330ba893beebd66539aacd43a18961ed901932df3d2f02d826b81e06894d3e42bbafeb9fcb9e31f863d41ba577e3b70089480b4853e1a290943c9668cdc040d5962e1922fa81c9e33746c5be5e7043ee74d8a03559c5cad68c66e73eccb7837096f0f9bf0158886a94a6ae42d7bf49f3c5490180292d1777ed2cdd253c2502e66a1b3f6896b7f69caedf92a77f5572e68e17f6f6055e1c7171695238e9a56c8a7d57153b72f2a2ce4b29394f88341e58293d8c8adc483f2e6932a7d6118c10162ac26dc925a78e3f8b7ed3ee5474fe1ddea69b99bc8c49a091dd9be7914432af0abd1ccf935a158256923cbb17dda32024b548c7544a0a1f00eba0727f96cc429f6574249da35b77f231380cc37c48d1cc65cdf8a13ea655c3ff90b0d61e97b3cb0126fcc9c8eba23528c166b6eefd7ff8711844480830768a2fe4c661d562eb0771788e6de01e951209eaffcac5cbc96a91b16044a50987030b360df5aeac87998ef534637148cf3b8a0580221a892227e2f312b7c348a1ba5dcb86126dfbcb9b7e556d1a1c3f200cfa79f7babd06bd5805513458d0c6cddadc5a82948bee265f27de58f2003a5bbf632a44850838bdc809b50d15eac428a1733fc1ccd6978dc68ac6ed92efc12226acfff102431523dfb279b2b54a2b586383cde777fdf3a4f509a12fd02d2339b940d04f30b3c2422b2a0b0d5c913e2c36d452c299d864a39fa6a424133a3f31d62ea38a1d42a49f8d1a56948963b3bec3619807b6548478e8bb9a2b7df274a93154cb159e6e138d21ecd4ebc07f3781a4e0c4de90beafff5495f5fe8124d8586c5a25d7dbe22f19d700720f57a27ef65c30b69cf81656370063031b75ecf3d6b5f796b364d30b18a39386051d95c2f3921313a18286a6887b66f1ff3f501102ef75c51119afc50bce788187752b1003b94fccbc16eceb52dca1886c7202f8087f08ad3dae91c3285a0b6c5f9d311c54a166f42b29f3d2b506237ba0d61c5f9a082c9a481f91e585c90fed220fd71140d983a8b817087b0975faa7f4bf8d2035495d5bdd76e008d3402f146e43735b6d21f5888538e678b1309a8377232c47aba73e7c2925b8e8631fd53e54cb17ccbdd253003b98067ef266c68faebeacfd11434885d47a63e80e948bdc7b91210174b0013b7ff192bc7851672c9b327850d3f9302e099d07ebee2af73d0baf2530d91fa93bac589881615c7dd13142bb3914a1a801847a1a362215b51dc3854141043933d0033568ed96063411b0e37512f110541d686f59de11a24cf4c83c6157a4e916e237665b3c8af75fb4984abc0725f08ecfc05a1d140e2d6606259efdc4167de8585cb3fa90d61a7dadf514f76fd73a2db81a10f2bf1142ee8937ae1c2070dce77f3cfe8d04de6bffd977b7775c85c97b3042230a5947367f8dd266d0415be08e37833b4b37a446eaceb12ac8d5a7361687226db529a2eebd3bb84e6e89c7b325fedccf6b1f5875ff921accd9a362fa8bcaa0181b84a1e97f8c5d2c10c49bea940caefe9fb6e1c1da54018a6c6df186769f18c97f32a5d98975cdfa7b29b4e3a0adb06fc3271afb9c1e85ddca82adb5628888d709cf9cc15c68385bc5bb898d8319f5d66fe962ff4ad9323bcee5f39846bf4a5010493ffa52e7bd8f4867283f537e64d76f44587e56086cfab70bcf2d1eae7731e47159e3aa87fa226701726b8aeee6fb07d1547366c1b3aa2dd3e6634926bc371da7a63c9d9e8b6833ae061e75a415b62b9f673e59710c6c07fd9954acc32aa04091e78db933845e65514105111eae207c7da2bfa6bdb85fc2346fc835b82121a91f1bc2a220bef3ea8137bafc9fb5ad6e0fca7041e0241136c694c624cd086065025882adb335426613d087f008f3d4056b7a4491dfae0d879528c1cbd163862222d2892ee47304dc30ca014849fc264e01209f1924758717f6f8ecd796cdbc411a3878fe55b3647bc4056f80a2f29a0fb027fb434f34111b8bafe5662c0dcd05d90f30dbf499de9a8ac7e14c8dabbd4598c0459117b4f9939aec74087c1271658cf9dba93044431893e52400bf75c1adbf4fd98c99ce921497f086796c115e212904fc0863f168beb6cf913f38b67dd03a3fc4fb6a8c85a9e5e4dba52fc1d37fefe5c221c4592c0be1f01a553e29c562c5d90c3e15751305ee1946810119c733a6c12f4c1c936e18c667f1332b2e209485c448547b0ee2f92915fc4794c06d4a0fdba012c02b4d10c226be3f3916569133c0f1dabfdbdd720b56fcec60a6188e43010209ee460feda5eac9920624b697c6da7b6e7b1b7ac528af533bcfb459fe9677f3717775111eb60802594f380986b52e33e1020410defc5f417ec536d23069e0bf5912d4dc5d6401020616ef046411ab8a690fbf6a93d44c980066b612e9166f944400a9b175d32e8b5b71620a7b5615eb177b331c59dd115f082d0dfe374c6f622445c6643f95683ece9acba27885937237e4a8c7c6e9bab86afacd12f12234c20c8870f0e592b748e4aa7897adca0c2036270713b4bc246cd7e4fa1b95bee3bf8ce0d660e384f45dcb0f168e23dfa2f440f8a1c9ba3dfc0374106e65f4b881c498f39867d57c7f05fd645c555e94bf1f7f08dfe1b49778184519d52637cfc4485ccaac8902340412c39f656839c9f6ea675ec08a556ec3cbefadca81e8729db5282070136838402aedb2e782d657ae2afbfd99afa12024f7900ebf115b1fd8d2c0e8e2dd9b3f35c3874a58f8e4407110af69d487be28e84cb85558802d1930b64763befbfc5e60595204b90c8bacdad1c7a17a78d97c521ec6a97ff7a6d234dd02965e1be1e724a98ded88c0131f8c45e866a3d7d0a9c02a3dba178f6befa170c4634262bf4a1bbebdc2fda75c5989c17e38325ab1195a2ae2bc7628a282a9078906e7a731e39567de1b4a5739f63635c8e41f49ef50ee89aafd842de9830a7bd3e96e91aa15de76e3f0d3121347bd00879b6ad9a7e4b0ef5684e3c32d08e65929e3188cdfd0d214a4e53626c858ebcd1e6f9193394a6dbe4fcfe3d5b5c76b7beea333f577a7c8ee95e707b8dafc0cdd8dae9f60000000000041119202732", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 24, + "comment": "signature that takes 23 iteration(s)", + "msg": "6600000000000000000000000000000000000000000000000000000000000000", + "sig": "f1d8a6b653571c99122842c7ca222606e74d6814eb27f05f2ef8dbed54201882859d0f809903a7777a3236da3bc18cc879283b6bd925a20c2b35a9f0c4917a46cfc0ebbc7e34b792f1577ccee1047e207e1c7eeb4eb6aeebb18c7e21d3fb28575ac2cda9e9a75580c5268af20917165e5dcb735a5615caf0cb4b001fe08b65454c2c65338bf5777a260d550456f8616aaeeff235a9ded33140de0712cafc0e729213514764f56e0aa4a852d5582135dc900bc4858cfa77fc098171a980ca338cffb8c0c9aff0a60aabe27d25ce0a329eeb802752e17e0d4c10d5efc2b83ed0d0654f5810a8585e3460655f0dc6057a2ccfe847a79509c919d0a3d81e1e05bdfb1cab826b5b3b76c19468f1e19db7d02e4657a40b724f8b966a873711e9305db43613a96bf1fdc0ff0e548bc22d56079a18b19cc4be342aac9fd83bac171118d5e25961ffcdcec1f55dc8a096b61883b3fc7eb4eb6fe40cc7e24875e39a907108e522e2bc8a7a0c4cbeb2315a8300278542c60cdd30ebd7eea0d5a5e9d26df5d3a37e7e7e62011700c74fb905f49671473ac6b63e9ab64ddfb1cf6acd419d7cc7049bb2d00b6d170ffc62b286dcc989a8f418162f36b149b5fceff5000537ea0f39f7da20597ae00849c6d9ec633592af60f30dd1a98c8a2e99f6194d527176cfbb587ea4772d17a387d7171c3602964cd4a150285f27278ab956778c4880839abe9c5ef4b4f9229a71b81239d1eb3a9d10d1caf62b9fb031221129c7b595069656836813d2672d93ec963fba56b8bca5615010aa9ab8875c10a23f6fdf87f852199cd91cb0e84d2f31fb8de5ff59e2db2d234c61a5175ac7f0390aee454544bb1d5d036d9a0ba4980e942ed17bfca4c50bc4f452075b6bc093fcbd4076265f3e926b73ae6690ca5c084f66fa8890ef01bc234563339953bd0f11b43aede7e9e1a505effbd3751ebe40b3c6126de59c5aa703a90e09bbb62ddeef444088bae807eff6ce95a047ab36db714eab5631991208215b0d1a6dc557e93f397961b1269a423d398c411a0329425949623087d299cc27525bae1977b972323f40e04bd48350b4e03afe61b3024cbcef5d0b66718d7cce18d6657d262c2bd253357b1ea077039865698d491d2c6d71c33227f1e484bd8eb31312142f9dd785242c722f61218e03922af3afc8507d5e9087f9e2b2d4194555e9efa7c01181186671b469d4596ac8b2726a1b973f94b67bd866ffcad0424a57a97e712e96576438b81a9a6a92c88e0cb7d26115a5cc96cdf4c7e01e06fc22aa4edde06d99f2694fa6e0ee0c50b6681d22e79dead0084bcdfd9e70315603d8e06dd315fa069ab4e635a9ccfbec07ee23690f5f8c3c6c585b71705835c7fb8d251c0173c28c3c1b3cd1ee410f2acbbdb18dfdcf33d6530c781ce00b7559b7a2ad1a37b9ec1a29306c60c6659982da1e0abd78f5167f202419ab0226a3e5393d9154a32cb428f1857866e6535fda4e79644d2d9811ac0639febfd926f07ab45266f3ee9cbf5b5dc13e3301849de423abfd112a18eb3ea7181012a17ac0f2d3647c38b7e8ef511a6bf7c39a7a8d2b15d8ff995527d768014076bd3c04ed5309f81a03363479a7c4a704c38d6282522d9cb5cecf6485c0a3be5e25fc9c66d5856e9946b02ea2fb3cd04b1b138880acedad31698b4ea78a1848fe9a88fd43a9223a5a3c238bcf118f7105fcd0f7a32194fba1a5fab339c88646c28fe340a3960a5e743e48e9959272b4c5fe3ecccc0a8424fa556a75326ecad32ea7eae8fc28a221efb38818478f09020510b8ee10545c1928d34b57386c04ed7b57cbc327a08ed010b8ec5161a27d3938a1f51b8abcc4ca53ffa110fefa4d1a9c0d1791fd08ff93cc703ba46bc863975d4133e96389f6eae6cc5947368e9755c1d4249df67df0db2692ebfe547f44d70a857057bc402dae21e8de324b4723c9ab3b9e5348db4f136ae5606d17d2f0385db013df81fec26a6185a2a97127ea253cbef907b4b1bffa72c84ad848c3e628e14e6d07c6d28bd3c3727cd6e77fbd4eeb587426ba98c0efb8b66d6fe0edd88ce487478d89018ff7a8cff9ded5abff5848c5f6bb702f595f5806d2833382e997c1d8104463d76cfb2a7d12b5dca8ac2161dc674041787e5bbc1d21b42fe86a8b6fe4b4945afcf1088bb16620c8c8bc9542f0950169ee13aa7b2d409188deceb87d9a95b49522cf96291c185f4e7bfa29df3ca7291cd8d876cbb017c96e7d621943d477442359bccf913e498f34e8efb6114d96928772cc00b091e9619cd7f869e25356fde75529f5aee0fc32cea46a5df2c0e5c2eaaee54dc94a5879dda8c653694f071d08377365569ebf8762d6d030da0c12d69050103912d9d779f6409a91fe0efaaf62017e7018d8a9a5b9ec25cae60afe000a36ce9c81cd8dbef732db13a09d5e5a65d763cc48c30941702321924c40736c0d1f7f4006476bbca04a1e0d20522a50a5a809b9c1a1a9b03d59e4461c5b9bcbc3e4c3650136804aea8aa55c1b2b1435d2d0469b5d6f010cb51725b864ddce08ed2b874cb5e4242058dbe3d79503590fabe53ab2247949c13f10adeeb02c059af1dc4b74278b3735c29de6c9e8a96ab4550bebc238c9f9b76f94bc70ccd7b7a006f6f8474de941730f699bb12f7ac129f64f9e0ee993aede6f127f124c117ed7c9f4eb0f1b32a30fad5aa52df671b43bb3d9c571443a968456a8a512e1e55f4f5cfcf7ca12b0e5840598bfcf739d573bfebcc12ce756bf4c18b8ff3f214f26b5a8560f8946e064c0c6bfea565b5e03196c1b88ab460f689afe860d5f209d6dca51547cd5a0546e44627ff6059979805b7e7f135392d1817ab9a71aa1328d3b3ce62b65bede368f4b94f96acc923ddc8456707a092aa5a861b15b577f3b357c7a05bc95e0617e754208da2c5bd733eece2e2ae36043dae2129e84358d8818f0913d175e8d747b977c26e6223d9272f02a4219316050134e548cd0aaac2a40cd4a18cf4c59653575fe7bc5f9105aa0588bee9642697d948f66692d954b941620b1c75e38bb8215492dae2f3f0b8785736d7e36c1a4c0623e8baf7299148927453b69c6bfd29554471e9c7110011e0cb03eaa86cb425a13f56886f4664bd315e433e23bbb3950f47a20be0953ccb1b061b5ae357d89695c5eb2678aada47e85d50db2cca2fcfc25d1b0b8aef77f8807826b787daad98e65fe04f405e58bf9a3190c15239e413e3756818794d1a5150f7a01753a1838ddd591fc1b7693f9e509e0488439290c1b8cfdca32aeacd3d1c523f79d71dc2970f31d09fb2fcec1710a533ecbbafb1b14780a8de4aa96cc098ea3bbb627c7b1be410b6102c46fda68ad79f4200e89651b5d3bf420430940da84fd1e44f3bea4f32c373fa789fd149cb188d05bf45e87e4ff686bc7d174bc1bebabdf86084503101d8e2de84d976a96c803fd9fd0e4835fdd621d33b9b38a71ae8f4967d29b7318b042c500052bafc46506dd861825bb0324bba1111d8f7fa9f405d023ac6f73da056e8c569278c69c3da0873132c987a77e9dc0cbc78c18c7a7a31f4ddc0ba4d3d292d09724c77d86da709d5c76f6ca64fe82dc3302f421aa076e03006d482205186dd5f2cc559f97afa7b24ed4aec51d0ff3b5d96847462464929e0b9c2017a91cadc5f5811b5cfcc4621794926bcb6cd08e68c8a2be7112220a0e3444fa2b745a984bd504ec05b352c3fc105afc554b59954237075fc0e9f36783db0f9bdb0487fedec2b9b20bdb788a0e7b2a6197e459e6c767649fa8671454f1bfd4c968a332c0d37ff139f9afe431acd4189c113963542777edf8f2137f9255a3a7a1cc959f7e5a2370a6cc027556b58bafb7dfd7f19205d2162bc8e3f934c99245a22774fa43118bc96f61b17d4e5acd3217aa6b79e7d17abc2f62b96d6389568fed71b0d4edf86d0ccaa06717a113bf8cd124043a1ad9f41e0a9e0b0b1abc01585459b9c28b0269c0822605acc2b6259a3b64214b3ef035f7ec3f59204e39a2b408f14c6f1bf6e34cf1b4a6bffa4577cb85c3ce3994b1019d4f3fe54b21798ebd137284e6d403c304b86a941ca4428c75e5a522915f4e2e829ec58b3044bba877cc7bfe1d28216c9720872ccac70b44cbed4858490ea5eaa7db5ddcb736229e360fc6f708ad4c862a2c7e9ae28bd8c19a97ed5759d83c7a89127361c941b54f214818e8713e156090f28b2adbbba31ef3bf22416b732a2e41d3977ba59fdf4594d407140af0122a74e01bca4c428ed7c5a430812c2f83b7a5c4bb3bc7467d9300edf2e4411e4e1681a54f80c606fc48cd5b224c98fae366967e8971a0496d022878942b65da37315e4e25e154b9abd2cc9f7d861f5bbbe416a917ebcc62398a9fc5c9c1f11276f1926eb6a975f1e529d3ae1e3c5b8284b27c5a82d82f580ee5cee542596da0d1c4862a29693c6fc60c50ca268bab10bb5119b79a2e8335935fcdb8ddebdc51969be025dae7c0faae34d2ace2869fcc9f531ff5215faf1f278cd01dddd49653b6d6b005415354e76d911e57202718fc1d42ced82ac768b81c40f7991abc3ab3edc186f62a0fe81dfc58e17e81bac4e1eb0c1a394451596b82aac9f0f5151eff313c63a9f634385868b9e02d3a4089d8ed00000000000000000000000000000000000612151a2026", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 25, + "comment": "signature that takes 24 iteration(s)", + "msg": "3800000000000000000000000000000000000000000000000000000000000000", + "sig": "b17badd5aa9343d1a5ad764f7aae6b7a20d588e4a075849acd08a3f52e41c305895ba94e249654a9eb6d5d1babb83d2dc0b6c7b65e8a0cabd2e3460c81c4aaf118bdbe28054c2a3201cbe2f2fd432c02a73224ad9e35dca777022d6b4108a9a78f3c5d8cd21443d618eeb319751359745e241073e20bffebdad3c52485a1dadd6451f203a54b13ae35a962e287ea763daa336623832298ed56c0c48cc16229d4b801f399df149ba78ae9035b16713771c616439519067316b1cd14780d58ccad2d71ea075de02aa0c3d68e02036548ffa0ab142a12d6e1f269754eb0cdf508575bb86843422e69c216545170ffeaf015ff177330b8ad9bee5c482f8fd333cc05d21dbfa7f4106aaf48c8094d956fbfd84bf3672a663eb2351f8e242930bb7ff29558df029c1cdf7aff3185be194efa1eb96074f57e0b0636faac04596a8ff28bfa4e698635a53adcae85c76bb4c25c9a1886d09c1708b43b765c296bbe0121177ce33d5da85b3f41a2c21275898866c05cba0854334c7f1f8c75102176cb886cfa461ec6a4c55bfb2d685eb9e604cb3abbbfe3237b6d724eb3ebf050769bbe6f3d50d28626e3dbf4c009bce530214c84e49477aca9bf49c6d7c53302bb5dd6e72f1ee26ed64fbc07693d240b729026ea719742a4f903c0ca0106ed79951fcfa382c4b0c7d07bf4fabc99803260e82fb728f1b0f4612d6d8cb21a14ae77bbfe299615181d9ec1275d0022fb583bcfeaf81df6e1624baa703389e65a3ea3baab0bda5462febdeb110b0473cda2a4a9fca096f4a68ee8fbe76136048176f8721ae6106bdb0f3ae310459d71add85a2444eb9479af450ca4864e1eaf0d5ba04c872bea6749560f570c67814884b1dbe5a87c505ce9b93f465f75c3e0a1ae3044d6f4e6cefe05904ab90e5b9afc485228de76b6f3415db1c311a41a55b13f0f0783add6be3ea5ee68ab27ff34e2a1006b5ddb8938f5c08d05946cac2efd3ebccfa654211d69a825773126e600693337a91a4a8777229e80f654f9f9a0f21e69d9a979890f8f3de93ceadb0e4890c7d19701fd7c2f957dc7da88910f31cc8d500ad68865477a66984c2caf86b08c13b7ca3de0b7545d41191f221c0c0de6e176be90690e2862db31886b8b25503529feb62593aa3d0c074271cbb8ce2385aa834294de61209ea793fb766862cb12e12c6464385761209811a78960542df923c5089fa3a103b2c0e2bf2eb3de0d05a57a514b02a1ef539ea4c35fba7fec65888832088baa38d5f1d7ae58dcefeaaa24de9d83c8d8ed481363bafffb1788dd36114a11377a7c871bda3b5813b9d6632f289145906c335359bb3876a127d4ddb8c3883e022c3ac1c869815d13f06e195d246c2cb95df4245e49a09c617b6088ece00177c30e7a962d9ed55d38be7e1880455f14913759597acbe866770c7d28c704cad764c547a750befae3dd88910da22d942b99503e0753053c95bc8b44843b556c396f9ba60cccf48e4a3cd692bc4c5f989725d0f89924c63ccbe7702bb98da76d442060a7946d00d195001428d30299cfcf807c7340a8681000d35da9e2d74446a83c89b158770b31158cfb99391ebc79521af25cdd2943d46d17a81a9d886ab68afd3e2825bcd1e7ff30a788c9db45d865ac8ea7ac65b5143c8910dd10380fa47cc2ea4114b4807e9860798e19c27ca856ba41d4866d393bf30ad5f40d9aaa712e8259315e4334940447e795eb293237781fc1d1e3ad79a21fad18f2dbee6f71ffbdcfcd1db77c2c8d1a3868e8f36094f51864de305783d39349b01cc26a0645b78809e2a59e761512635f455cd34c3a3cb0c416981fe2f85fb7e7a810138c9221371b126d85b63b6c96a5a5055e3ad48d54a85fa9d916478958543d114229568eea61e57b67fe644c27355bc5cb5d8af0a15727764751a6f13740f5181a8c134cf67b958ef7cda612c40a1cdada48c887587af26d2d47d57c6b772a89f6312336e646894f20b1820fc6b217c8b9e08ed4fd9e104c3c7e10a9cadbfcc1fba58a3e7fc84bab6756685e17f37b7205716699479f403009c36a12ed48eed461ec83b45e94d48e50be83231e16c4c9aa47a8edafce1e39dfffab382922c42646f4b83b81cbf2fb84afca7a2756038ce1d4691e8fb062dcd8123f3fa358a5076c74f5fbda1595e2f29c9167a42438f61290a12326d8d7cf9256db109d5509a4ffa9f06a98d6f89cd77ee04a10baf28933f31ff404673476f7759654e33083235b0b9e15022f2d7dbe40bb8c79c76dd60b9720c78a03d1cea71fed43f4a207dc32594940d00a19594dacb610c0678fa9ae8cb5d99c55311af7d121e017d960ce6d7450f0253217ff9ce9ca93ec2fc167ba4752cda6dd5b7f00286ebdd4b02e17ba40962d03f9f1f6f1d5c0513b8e768cfb0a55df7baf0352d63933c99ecf5479a38e66e9748734a6d69bc6c62eeb8c0199877631efebcd0e82f36a50664104a2aceaf10f99e73924b52e903cc9c8df8870696a4894f44db890c2dc5fb9ceb858d3424a6ff9fba82847807a6e11914d500b1224df23dcef2aaece0a6b44b0adb6edf276cce4ebe77e96f705c03993a411d98c45f25a6dd793a4b630c1617ae4319926f00ed248b4c3889977f9fe83fcfbd587fdf07c75a3ee3880fb26eb6dd4bb01966f74b6b6212311779f5f11627cf98889e104967ab4b18cacf4cd202e5ec46508f0d8df188edd20db49421b2b348684f336917a40b09ea1d6c4d931edfa4e28908a61e8c367b221ad2d4814b0d85afc99de3967f3d6c90e9a975715e2cf403afff1ea9f0c207ceb40d3629067e79c7344053a08a69460ecaf5be667aecc01bc045be25afe85416fa1e6b47fd6be17daf0a01004b0972420a3163b24a4fbbfa1b61f34380c1131b7c03382642a7030d7c17b845989c39dbec16175740023f8969feec059ce37fe0b5652259bd4df5526334a2e856ce57cea75319cad0a958c9d0b33e45920bd4d23427c44986fff3045a51e2559d990190b82bb7321a1c3d1a0973e51c7ed50fc2b9d31e727da677a0b29ead8b81596d6417c6d62c79fd30e838fd08729323a35766839dcac3597c76ccdf3e67d7835e7ea9184dc7be8526e7d014aa26955757762ebd75c3bab998b76dadab816ebac4b961c7084bb5b0d39db09bcd46c8bd7d2cfd85d69786e14b7ca62d50b2ccb9e322e38d1f90d556b51dfbfd145346a664638dd30f48db058f0843412ed47779169cf42bea4656e5d4dcf9c4984476bd677aa6cdaec9f4973e0933181c5ec98101259afeadfc65d55805de0b57e76fb38dac3ef3544b776926637e8dda46846fedc0cf55c19645759cea07b793d70a428bb654a9683e7df56fe23b1f4c52494677eee25b7fd9d0da1ce33d39e58da056b99e2a9265335498a80a873be748658fc8c37841b45cc70e3a46b8335cf5da9b0e51550355f42cd6aa1caa3a55ef21acd1c8143b8e0bfa68f81b06438ef9c24aa6005a77b4d9457a0b599c0f71eea26b40aeba5265eadd8a2be1fcddb318559df9bba95537d012daa14356e3fcdbb7cf41870b96ca9efbefc758bffc172dedefa450dd0e586c98783529dc44ea0778efe30f8e5e4b349f6fc0417b7d1ab53e592c627b93c2e26a6c607a0f899bcaad7761530bd1ff0d4997aa003a06ae940ad2994a2cdd9fbdb51b015bbe122bd333e54e1120c7be813ad75d2504e61c75f4931cf5a725545dea045a5fb768dc39cb9fd08d4658c31daeadd27765d2fd47cadd1b8bc1c51969e1f140de354708d69585e985047c73b139b79c2d1b646354fd9d7f94a0b791e429274cdcdc74fc1bf2b8ee29fafdc54241af82cf34bd471736fb8c3db0819ce586de4cbbf86c5be138ccadae85b20de30aec8219512061fc1c7688a78102d97dc9d7eee91ef52f6024e475a02be913adc96106a0bfd503112b17c80f60d506a70f4589bd5172475941b36305905a51d340a7b49d884d4531e83277b2fb865ddf727a8e17453cbf785101a2ddd3818d12ccb709518b3d1534a980720162dddd0703ea37111c67f81feedb854e8bb924158752e66d8213b24a7f37862f57737c0ab14e72a70b8e4ac673c15ef6d483b6ed1a70f265b8316b0e431971b7f2df7ca94723f7ff874d153bef275a72f26986353fd9405e6dac84b4726c137cc0fd2bc03bec0677efc299a4862d9aeef7103d1a19196a173ad9292198ad8d5c4335144156f17db54fc30c230965428a556a7ddf2a6cc4ff960224e01a38a59f526741e3036a040249f58d6633509e4161c73629d1a749a534c444424a11b9205569ac69bbc1600d11062529b48a1140aa2088f914f428b390952490fe59b2c561088d364f01c8b3f7c1ad896330b117176aa1829fbe8fe82d9327a5d9b67fe81f3af4d734eaac7bcc2649e99139d9b32ef4713c0de9fa3bdd2b4099ef3ac9dfc04d7e254e2f76e20d392ac638af5721abc161a9c28eda6e9b63aeba4a6b06f62e6cff70b87a38b23885e38426e322eda05166c3ab9659281af5dd25d3763610e3b3fa37130453ecf73305f4a34cf29215a40d106b9c652d10e665c5175c3115f19e573d68383ca003712d0821e2429315a62707798e4113f5dafb2031f394557787bb2bfe52668abdde5fe21313e8d61a8d1ff000000000000000000000000000000000a0f191f2327", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 26, + "comment": "signature that takes 25 iteration(s)", + "msg": "2a01000000000000000000000000000000000000000000000000000000000000", + "sig": "ba8e0a490b8289bf91c6ad96670ff09aecc7c4fbc1063a0da6e2c679b03de134f67fd1106ab8147565657e569a4f90e8a5bfaf65792937778e3b177beff1f6337e8732da0f5d6e68750311b8afa490588a2c71344344d887eec1b5828dafb88020c91477e6b7af11510e5431f4532365e4abc72897c34d781f014e17deab35a4de9138d8b1f8a374552c93988926eddfc0d3251a7ed2f89e832f732871416ba82b6d8f94eaa946ff0b9f9d26603e50ee9415516240797e7690095f536ca54f7e320acd8d4ae98c65f6eaf4ddf5a3c5f8ba25d1fc2aca577bf2b9adb6726f4c8ff84da5340a5291b563484e402068e6d41f2a472b60f33e5ee1a13473c6cc829433f5fe344d6e8ed513445062f54175366bc245fd34e1a1f772eda590ec392be722cca26c71593cee8b65b181bf25547f6418d05accfc9c545fac1fec115b3790a99c99e02028df2a5eb0457cc440ee925ac9c3e101e098a41f602a3b0f546e12cd16e0fcdf4db9cf70c9016a209deffef9a7aca0a2531d3481614b11fb73be650e5e98bc1fbf3f6797dc0ec864669e1e4b072f34b800f1af615c1d64cf8de2a3d0f634f6177c7e837911087c2d0e45a1a01f7f67066cc1b34b384ee1d6edd22e63b45121a73e29fe66dddfd2c24f5af1f7aab6cea8ee81a8fedae51f12c11bfee57bf20f3f4604f31220fb447d48d6c2919018318ce995c731daa55b960721a58c88700608c37627872c764a1c9d1f310afc72aa9c18e5c67c806b561ece7d6c8bc888999de43fe5e4d8b01aa40c66961cec612afa66b60b770c0f92cf9389a7abc4b7e4055ccda9d049ea4a9e7e203c866a360011dba8dea95242e1c81db5e69b5a012ad44af1d9d8554e12a6fd5490128fa45982eb3798909baee62451e0ae02b37bbb064302fa6b3058d99968e94058078ee8fc6b3ef89a0674afecaeb14c219f9f30749d90d7e89eaa9eb3f96b8574b5b7af292e5cc4cefd7a7b3d9079a4e67e9fd5622c4fdfe065e88a1f31a0a189ae699cec7349e7bfd4a9408e4854ba4c0ad7ba47a1d93c33e6ed2ed0c12bfca59eacff9be53a1b7903e1372357abcacb013be6eb47f8faedaf1605280fdc91c170f3dca54f38990f12bb9687add8b6c5fe5901fedca5568a37e5e7af1061743a9182a04bc37513ee5b2d55a014a6f9e3b2cb62d298b9d5e726de13b904ede0adc5ed335abc95362c6975e868a64f5aaeacef406c46896efed331a93052ff3634ea438d2a91749baeef6f063e0464dd3ea3a48b0014f8361259b7a2e33b157dbaac76de53691fa602f03fb25ab9331ac0ac449a428f551374590e86bf9048fe36f8a37aec825239df432efa544d294756b4b9937f202b8c25569f9bfd3cf43c95859e31237ddf39e7c0008c43262ce4ca1bfdfea4f95ad8536d0f0c108815cf8bd516f3a1388c236f4d3dec7e7e99cc8783e908fca0048da7d15cb2cf618a6074b936bf95bfb028b9c2278d70104d3a5126f09dab4102a3e26101770c1bfb0d534165c611b25291830033764c9e0bea382c1848fc5672d5b390cf439a7172295e4ecf786ed75a0f93093f80eceac98f6ff26d1c9aa64470aec649a0658c03096b666e5de22a9e5182daab4270e9593457ab62ff230f86ba093a66dd737ec1ba473c06e1d4dc533a6e8b33c1face7cb08114abe9e2217cf738bcfa1e263d6486f89274bd7f3fd6281a91a1dfb1b99e29d4998a354fe92ca8acdc5b354e7c3eba062998f98e23ff2675c5bac64e296e583b7484f7d9400a8c6667a26d1d597a451d3760fa91f298b490852ab9b1d26e16aad64f366cdd36079b528ca18b213ce11798aab5e054798e405d20b05ac450592af93f82be6c3b106266a0e2f98d31b09eb86851e1647a19165f1a3f57e1af2d64ae70c16a37409443298f3f9e170d32599212e7365e7970e34da4eaa5e77fa644d76e806a4c2523d547d18a90e147e403bd168d021c952904dd2e4391d9b19aa07268f202b8e69d440748ed3a6dedfb1e5b61e2fe121d980508e3c64cc97f2fec9fa2f39f4bc3ba08878a081e6e36471454a3ee2ca778df0d06eb5cfd045a3fcc15795c09cd38143c08e8138f590d05d442c36314fc39b2dce2ad003b56258a19872994a4d0d810d9dc5c0bcc1beb1c5f2b6ae9c72e6d6c196d5cebebad71de697689f7dedc9f3af16bfd543b049ab8997fa73e6626e865263a28cdc8c9e3b475682434b19d0a13a491e4918e7bf8656ffeb8db4d6aca3e4c7b5289458670655eb1360b5440ff0736a2f58bc3363a37e50a0ceed384d0c0a55a440939818241c026775f5870f1edc5ca2a0da998200b7be15acc27433013d5a128ccef8838662704079f63bfe547df67ffbe209a3e6af2da62c80e771b863f992fbe15dfff1ea5267cb37ca71f7629a618179327941ca4a864b4dfd7b4627690066a7152c0fef3f500f433a4c54d411bc59cfac9f1380a4806b04d524c7bb6b7b055f06e2751675d6fd1c3dbb520ff10dcc938f6ad19d577554b656c3643718df6b72c96b998750eb9102979c58ac4c8a8d23265b8ab8e1bfb2ee40434216dda64e539b6fb5cc349ed522ee02d393604bf04bf123192ebf131537a6cc1452ddd38f788ad8052fa5a2da6d5d9c58d44241f403c617aa688e024c50a296189cba610e031b45a1d6aeb0cc7c23854831b7632fce1bf7af1609afd72800be217eec043e8beae8956a6fcc99160ee2f0a04403d59a056af9127d5a8deba03723bbe6e14328704fc25630a147b687966ffec6095d1169db8f13a39d67a14a7ca574a6cd18f09632076ca53ef71110b818480af18dbc9dcaee1851cfb3fbb9d817d314a91df1edb4bae5f36ef05de9bcc049e672dc2920b392552c4af73fb5c2ddb0715fa4d46e269931574ece6c8b92fd5ccd4c33f6b128d34d8bb6d476d9a9e19576127822a0f9bdc2c2065563fc9567272d8bd1e5707aff183c090eca58faebb6162d04981aaaa6daeee847aee541d04b1794aaddd68da59a38882e29978fe8f3833d2ebb3e35cc0967c834edc53689282bc9a7e74ca45ee044b2638690ebff103cbc9810970e244f0ad42f0ba4a559d80f22957d246a2a6502dcd7e574d54e6c99c866bcf87f18133d0aee33bf9fb4d851f4e65a6d278ecc89e8342cba737bcdbf09bfb98500282df602a99000a37da8595b8950543d94ead49e895436c3c5458eb4ac5d75f12079a4fdc7695497d8abbf36f111919f395e99fc32d9e63b71d275afe40fb39a88d9d2609c73bb75e9f0f5ecf209fc06f8c6233eb083a88358b4d84f97c75d15089d510384b5b31ac26de5ad4d20464d36d085cab2785ffc13186021890c8a9c003dcaf4f456a46d10a06c7b95821c12d96e797c686ed6e7484ef96aee5a0bcf402ff7d59fed7cb621bb93620ad010e7adf7cae3582c8025e6c9f43a7d05dc8f0b165f54ccb2b9e0faee33dc008d5ab56e05db1358e52eb21e5e04484962f2fdf56aa75dd7def24300a5f9649497ff9f2af1aa15194b5b7b86aef3ac88614329ff4cd249365a3d284e387066427f71f100bb2c58204c236c4d122fd6042dd3aad7c56b3f48d263584ec2ffb6655560c50a0f1ed396213d85adea87ce1f5ff273746df024c73a449defda41f66ba1aba7f14f5e2042637dd9ebb18a976d5565d1a5299513933a114c42bc440f5523fa066205d6674e99f14842f2fd552866565081e3f630002eae82b8103575211bdb74a122af28e061910261eb6d23256c132b32223970b63d71b8a8c975d9973b2b5cc9b5f27830c4f0c42bf05a3560541ae7c8d6674cdf31ce2660290f279169bcf2eb652c51705fbb27123cd14095dd10b2b966ec0b44b6e729957faa7eba3af0d3baaddae47e48155238b0782a45ef4dc8ebe88f3bbe1ba2a7b2dc8e25bf285a808927fa1a7a4a7ccdea5cefb350e68d6107d9e2eb20d1b393dcc883f4d5247f36c124b072c42dce7f455cce4eb1da17de0da3a801728b32429bb8207f59f46c8d0ee0e6d303e9e6f285a16f0debd408b2c29f90c668a412964d2722de11349b04daf131da3e821bc9f0f294d1284b8ee097232449e147008b7a592140d148cb08c6dde3b13aa3ee738bb1f2d9163ee36cd36e52ea81a339ba09fb6f5cd4b889f89854123ac5e11286676f4b98d159d15bedf207a70408da9443b8aa8cb7dd6241cf8cdb3f6edc801f3a585692edd0543683f82b1371308143b825121ebd6dc531f18a50e5ccda7ddac2f429553e0375a27f20c333fe0c401ba379950ea359617e4cc4a1cc0a2a2a6a0b2215012b4c9a4060fcd1cb2913d70b03b61c4c3b140fa143eee9741558a7d7e94c4900fb04a746762c3a29a897c2f04dfa5608cd8fcf8a2052a994129485a575abff95e6e172cac945a282e662b3f08ce81cce600a30faf8521856b4b73488413c87f684866b4f9d47c95c3b1dbcbd4191c98ca7751358349d21955d76172b855be70d8e9884a086a2862417a5fd956818406b4eb89665c3859b806beae14642953d4aa708c4ce70d17b3d6294bda94a262da01ad271f0a51fbf4fb30d8df2ed047a869266a97bbd27f1db40ab40a85ac34f770cf62249e8a335866727f80c0d3dbf91b3f8f94b8bc098bc0c5c9e34973a7dce1131f65699cc91d435991a0bd000000000000000000000000000000000a10161b2127", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 27, + "comment": "signature that takes 26 iteration(s)", + "msg": "6005000000000000000000000000000000000000000000000000000000000000", + "sig": "e2e3002901d6ae3db8dc9d4e90095433bbc07465d4a3a5feb1cf53753419b2c48ca1d58b6fcd6e92d98daeb4674450d9b41d277bca9b8035ebd230af965b010f0aaa4093d336335c7840f480799f1ca5ec49e43e603506fb617ccfaf4f1d49f2be15f524543351b672cadea14c0fee4f6e3cb1cb22e78dda69420717c33711a01c2001f66bcae1e453f24e15023e8055bf7422f59f7b9347b866e004131b8bbb48572ba22354ab24b4d210c57705f918df669bafa3453ab34c60aaaf4cc4fce0e918a0c604a3938ef09d49903cd97d724a09f6b32615c7b50147384089685bed5bdac66dfdcf5a9e50f04b4ccf7d15421da6b3a63758fabf83ec088eda2fe7c4c3bba40cdb9af7153369c3f679dcfaaaa36df17bef61591e73947eb5e20d53037b1131c9760ae2949153f78fe92c81269e323222f6259671e506176794963bf2ebd339372badac72952db6f7682b4ffc48de396a4f2e86880654cd7c896295cad52bbb6f0e618fd18341d68b6136c9dbd384398a9fe189a71a030c1d933bc568fc4a1b39dc9450555a4a73c69ca1bc58ff64088675d0930b1ed616bf0cb0a3d1315f1f1b713bd9a96840468e43bfe87dbfe958a141bd307e16a91daf0b8d7ab7232d42b937cb9af60252ae21cbb4aaf67772ad7e9f3dd9f35fdba81d4b23767e24fb5a47ccc22ffee3711ce6f07bc5b2948321fa4c358d266078da461c0088d8dc4e43adfd37ae20c29c7bdd02d38dd215c55722dbb877c66f7e487e640402213248aa479b21a9ac1fcbcbc16daa6de93908b5cec812fbcde9a67735396285eddad434bee205876ac352cb3d62983d8a0fddfea53673247fb35d6e0e38ffbffc2bcb847cb6cab648080901f95349a8b08a2f327041e8755fe9ee5545d1c7b780192088135ade6614522cb5b761275c27b4614e1365cb4945a0d2d1c2a4f08275fdd3170e76e37fdf3c687b9f90ce3c4730a35c0bab0e5969b57fd4700230cb5ff64c5d9f82b2368995680c1c11d078f645a5c169b568e123c2cefb3813bb21cfea05616e865a7190304643ef6b9fc0658645e46ab145c1e16ea1c1d18956a081162ecc2194a7d6708963ad838aff77c735dae24f9c5ac1b2b0e3918137153b4f62bc94a4d3c0783e83055df250b88af533d92216017f218720404d5db528a9d7836de0c5b6ea675bce62634ddd5200f158b63144cae98ee39fcfc9aa1aed5cd1e406ef5a137d70d1e78a76d184dd554c5fb692880f75bb5fc12125a95ee2fa55a711589bffcd9e9d374a6e28a344e329d745bc897fea71ec99bf0a31a1b829be924794cd7e7593b87f1bc690fec324ed5a8a9e1cef5898932f9cf1ff448bba8adbe39d05cdc8f7a490fe4297ecb05d56581e74295c3dc34688de4b35c2d8060a759e662819cf45e59df5f020d3ac66a673f0e6cc8ec84b981d580cc83bec3fd4831547e86b190d8d629c3a0a8e9f8d0b9bc49fa799664973c3e1f95ebe9b5563306488df4f31921e7b9bb104a41b7bb07e6b4400ebf1c84b7ea14b3b4d46a07154f86c62b16967dd15b5008ebe9d9bc2ef4ba5e5cc36999dfb97277ff29053f323337201d16a943fe1941ab54aed4f553bf125d98de6a9716ecdf140162eec485c02da4a0c46674821c557e1c447e513c0b2676e2d3957bf8682041d6b6c2a02c79ecf12d54e3314631f4cc43403b0151c7eafcc95c1dc140215a8b1fb27fcfe6ff46e5d83697f825d0f052e2b3a78188b84eb1e286dce32572c95cc35c6945ddbe266815bffb85fa38b0af0f4819a34f2df093698fd99089c5b3867e4b5ea50b880f440c31d8ad04d39c410804572995ae993233fdb00a655b5e55a1299c4a09858d88c617bf2b96d4e2323753996ff05a03848be0dc382a99ec92c5f6eebedcada9f8ac1a24aa2123b14e2886f1bae57630fcf89e25c3cabe32a0a5c04d2daa13cef7ba846d5f2673e0d4046ce0a764c44de186c7cc8428c78f40f2e92d5ba339f70f6f1fb77fd4138e97291aa97dd73deb714ffa54a149ae3ca1099221d0c4bca018038eecebf0b609d3a6eacf85c662424f8326b82a2ce40fabab9b53be8ba87b2ad87ae9d0d38e1345d8aece7896503de334437c9b813e7513e0bd3e09fb6cdcc884330e0a63ce8b1061588dbe1d8ec2d164eb4c1b558070f592952e5671b99767fc86f5a4d9b56690da5ae97237dcb738c8601865d0701314b24f4566470b0dc28c2451e1ff6414ebda864bfa8eda434ab37ff1691a4ec593cf3c3e38877402fa7204c03961407f9307b0a94264e4ff6751bf0736bf0e32d4b1547c8a099b9155ceabc3f0f27fb51d9cfff842acfafe98051eca7b681a4aac7fec3b97c5fa2c92f13aa3e22118605c45691f81acb1835c8abc3e89c551248219e5aac51c43260deef89272a3c35ed3dc484f3a5484ed323dc7a41b45ffa2174905db7c9030729b27e92df220f42497a5d409a6fed0cdacfed7de66cbdb2e0dd65d0d89c452d14521f4aee4e17ab30dcd8f5183e0f1bb2203eb5fc0f45073520e1b06da4428e57fa91fa44583d70ba6718b0cf576c4be5eb6181a2a84ffa5d7db9056bcff5125e6b64fabdd5bab30ae6ffe546b62c93ce61960d49bad02dc65cee28e931d856e3f24b04ed0a434b9379314cf396eb10cdfb5fef9cdb779cc1ac4a947a150514aa65ee6bf7c4abc7d042ae8e1899b5891f80b219460d59d35bdc0a380c86ad868d6fcda6ab267027dcb567d6215a100b74c9d77f05fc21c27cb98266421e6d8827624e7132b7ef54f78075ad8d54167c59d139d547abd5a5ba0475f078dfc42a6942d28a9b3804866943de2049e62406b6a754cfa87c5e4bdd75bfba1c1dfe1ad116c8a5810c69450ea3fbc294d90c7759fc9723be5cf62e90b971221e43b098c3f0c9ddb0549c75cbc9be13140fc65989ddaec1ce71f00b2c76522db6d90a98b2921139c8d280b669c9481bb685d78eca1fca02cb98dd895859ff114b14a0b35d772abb59b6f6634bbe0e8d7b578c35fce04ed628f4cbc1b529a4a374900b7e3baeced01361ac933ac3532e803b5c85e7fd5852041c026d48b753d35b429916670f27511a855f0312c3a156b80b7fa428aa7fefd0d10eef31ead00447b1312dc107da80208c9ef5bc49a469984b74ea7fd1bad7404f3d5170166e74e3d5b1d5e6fd5cba1d0e0d5170976f9dddf4e8500e48aa267c1e5d53d2798de27c6a2c1df31fccfb509c4540467b527031046e0bc000b3c65e371795cdf17928bf5a7d062b9f6b8dcd65acba1f0ab86e29b95e0a12b372e101582534c7e98842bfb446fee6470e365a0350b949874b3d345c966e256f8a1aeaaf25dde3a83390b3c52de1829067bcc12ce9d962dcce6d12e8d1350963d852d7a14abb03e0ab0827fdedc7f309b3e29cce3b9f67a5402559d67561e6cf32fc6ab7406db5e89eee6fe75f41514db151b71bbce51b5b5665b374493d006dbd72f836b17d1c521631876392e516a53881cce14b589d9a533035d5bfa515ba087fa30fb45696e73923f54b0cc7c44ea75e80de04594a3f8727001658ea12718375b343423f6daa62492c74925ff0481d6a8e1b525e8c00c3b63c54bf744f7817fff2f9f18db82321fc972e307bf7fc6fef3d2be42ee3fb4f8c92571df5e15cbad49a32a306cfcc7a70d929bfc3d2c46d9ef87c6b4156b6ca9e91f439d8f2157df563064268c1fe032e12878a2cfcd232a0bfba1ae9fe14a8038483b9473d21cb0c846af238cb7af51bf7d3b6ca841c3f3f28b322022cae10c3466c88c3d188fa97357d69f0220d90bb6c3bb9ef624f6777f4067f5e207038acb7fe72c9098bedd7e08655c1919b509764d3b8839a928f9d3b93aaf3b422e00f79a5d027d6eccd69423d49613c06027158ede2ff7992f45c0cdbf67ce5fa4a64884d2c1e8797ae34db79bbc1f27285eb15bd0d667f6a76d5e8b777de699644646c3cb402537c44aa8b039391a0c4cfdca2d7f9bb64f4c02516d31ffac03008ccb55ce12e87d3d6fe363beaba87566249af79b4652c6d5123e081b0b44129eb790cc27837b193192edcba872d9c5a7f3ca134ff916da058c90f3efebc6bd59c11b9ba3473276323949f55e5a3406471c12ce1ff2a105c22c5d2f12b8789a871827fd8b9628bc59b2320f9143cb13c9c2ac6620a1be6f1e314374aa4a58c810c7fb292898b27fb5c7521c222c3b461092f8cccca1c930569035c0fc6a01a618aa9249e9317e1b1306f980170fc95458db571779aeaaadd1a534f53658484791d17fee5414c515912ce290d4e4f074b0a2c524c6ac4f095c7bfcfd30c8f17c4368e7e374ae30ee1d104b86438ce15b39a6daa670c7380e5fc9eea3a1cfa8213452bc1ad3924c4e44a8c9a5613cf116e646dc605bb8eb8179dcc0e4bf3c81ac3e43d35fda25e97e9c5967264c6a55910ec9d2666af2b347d77f87562b095b46ba0764aeb768a45947b9387b1d39490004aa5950d95e035c45c4c05b43ad9ad05f2ce64efb5b75ffca0ac868799171c8b2f9d6499700f194b4f800e97e449966dca97173b9dd632eb254afda45aa6c0d1e7fc81cc39af9dd16439ae9bbcc978f158cc9e850f1d1e6675a2cbdcf8496fecf40c292a6295cdcfff0559639aedf90c3a3d5a5f90b7bad9f4fd203a576b70a6ea00000000000000000000090d151b262d", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 28, + "comment": "signature that takes 27 iteration(s)", + "msg": "0003000000000000000000000000000000000000000000000000000000000000", + "sig": "0db5c5dd7972e157c32cd30dc3086c9dcb52a7b4bdfc1393ed1bbc9bc1b1beade5e981ec4cbca547797438f0a25019da9977ea631507ae1c92ef040b35245cbbdcc4299a7623b7434cf1c35c8e59cc8852523befc428b2fd42bea79d19b1395f2a774a877cb7d388d4b83889a65a535001862fed286834d52887b42a4fa2926f5fdcdfd13c24b3373e65d1411ef71c7de408b035d52fe8e8ed13a2094d006510794642a1591e08678fdf9df4b82b406af5a1c506e74d5fdcb8380497576258d176a7779e167a770fff44566ab3ec828b61464302c66b5c0a9ee6d481f03a0ca64eaeee11341eec7aadc936759b835b55c18de6eb66ddbbcab480f7f3eabd7017327a28c17990b60e9b3743080a562a4c5de191969003d8c6b9a30db7938ca477085ca1e4361c3bc630a9fbda7926e4d36dd9c15a170ea75cbcb62428efa955dce62b93dd026bf728231d2ce00c1c50457c4e06b726d7415619c2c12031eb9afe95da2c24fc65a7c1fcc6df3f810b29bd3f709107d665fbeae4c62fbf35ee38eba3b8bad38597fed3d69de52c6d01c412f239015c7bb3a6da5b9b22306fb33fab50b07b186b31adc79f4bb16110530653b86a498ce09a199db2e3aef76cc19f224df606d20f5986ce46c88690474b4bccef3e1224508e48791e03311dce6230db6e8babaa8fa12bf1090aea9cae50a43bb230c4712f5cae06e21e7798be877f13d6047c1e3fe1b3bb988e2a5888e79f3c08da35e328c832d7c72a0db3176fc7842cb5b41bc37ccefc21f6121ba0692fd39edb1ecb92427a0fe89ef8fc8829b1c29545d5ed0baeaade19cdc24b19bbc11ac4599aa4a28aa215aac5806882abfbdb72cba5ba01c0f1b83b868a87fbc7594c14b9e2653fc8d0585c857b41edbb9d306d2cfa368e01da1e78ebc9ada2ff235d90ce220ea489d6c088694437fd5907bf2eb4e0cb8ee0f4abd86ed7e7e0c5db3bf37487504cac0562a8e23638f4346075848e8c1a8be89b680ba84c03fe602ce3133b02befd0cdc524d271a4fe7c51ab3dd1318d12b3c4a73b748e9ae37acc98c95daf59a56263593e7f9d350ceaf82e3562977c503f8cd551aff52ae4fe71d8922256384c0fb9f56ff3148cb34e984090afc4d716da8ed5ae77adc21ec9dead3315acd6d5ac20a930e1b7e6a79c3ee09fa8293a7ff1edb125c138e3582f974e74e5189473a33e855aa48fbcb32e90c7e9438c6e7d9efeb77f6c9ab2ae564b833c51a9c61a56599d041e55c3dba4da5464e7642101a7752c8b81ba2c531ff730a998d603a0044d6c2a632b741cd456ebe4e9b0aaecc0ac4c99e46ce29957ada554e87f5e7e65e17007f3d976431b3ad5738ba5e535c8f6890cef767a46f7256ec89c96ad432e1986dd7f81d98f11e88c4fa43bd2eba95375d3e974429fc117b62a015ae28c1ef92c79f43e1e2e7e49a6f60ea80d9d24a7dfcc8252ed2a75029d07296ccb52c38ac66a83f7231deda2e0cfa143ff4384ae57e649700973064fdf5b127af39b3810b3382f4d81a233c1ac4e4ff39fc8109377e73d3916f06cc66682551618cda452b50029393c636031acb12fef3c903428eafee03a83a6f72fa2fbbc078fa99f910e4220b08554ec1918d946e62e6645b1bc155cc759cb8862bc3555700576d9292eff47e04a5bab53709ff24ca8c81093377c07816a7097207f4b8f0f7966af0b89dec150649648cd108c00a18621cf5488d3f3256bfa22cc23c49be059df96ff66d4c5756b6f79aa6375b718f2b2cfb794f108db01f9eae4b21cf6f4f9a997fd2bb62797ff8f449c484eafc62da8d6b00753b614aef05ff5448d6111fba45eb13435fe9aa1698d8a8da391950c0cbcc3d6c3e966f2c132b8030ba274d22f5601d324cafd1f9a6ef87059d9f7b3d0208041b27681abfc309c1d0113bb1b2dad16ee01522bea4fcf271a4bef428a7c66e237116a4a4310313403cd6596f7c8f94ac1818c3492428b1b0dc1ef747281bc9293d1eddb357668d27673b7aef728da7e4daadf21951c1d07430d672023414fcaf456da7a39f594b773d5c7ea66a4f94595ca97ee3334d5825be975b38ba856ec9526d911232d5638f493a393abf42282827e67806d6ccba59e3b7ac6880d077b3382032e51169a56081d90a24d85f5381fc76abc3e520d5cd99650aa844347e0156b5f7f8d417cee990c631c0ee587531b7399b73b328538fa226cdb3c35e8386b26c99e764f4d42c654b255ccde7cb311c01dfebecf018d459447577a8c5a3f9c4840ca26ba185b78209fb3fb51f237406406e005a4c419c76a5311c4f3646a214e19deb1f07dffdb653ca926ec3afb27751f9665ddb1e152cddbac663406b4dc5552dac580148835c6c8dbbe656f2b519603b19c7e79a69416544b4f99a6ca265150a1fb94d23e4f0ce270bf19e7b7829a90c80553cfed44650417f6cf91f038f9072e61554079031f706409e66139845cdd75e554b349eec294a92caba1ba6245623518f470d2d4424a967803238547da575af48ac4f5078d28a6611afb29884d542dbd228ea97bb7c38f5f328829be6bd24190dd8d80aab57652e34d530b5771001c45807d17ef5c2c6f14bedcc0116c942a98cc3ba5b5a57bba8fe644b76725b945057330ae4c68a574e9ab3bd7a78476d3712745371fddaa1871fb9756595e935bdbb6df34f5a0d12803422191af94eb54a6d0653d59437339389bac5d4f8283b8997d6136c16659ab4fed4d2b484f2b6e7e64db28ea40977cae8e8bc3b2c009b55e6065e96b5bfc696875b9c3d7f3979cef03e23ecd3067154afbf04ac711c58a02ce1700155971dd8e86565070c04b1bdf2399d7180be36c8a8bbf34b5f6ac1e9bf62fffb52192d73295bf55facac86ca7ce7d3eecc32eebcb71c29a19f53ab69d1b448a304958195ab32c8d7952455a4e1c25de3ba91ea06e44ac83872c775f345f9ad3e691c1afcdac7cb0a077c7292ad5b4c010109644fa2515f9e501851eb250f69f5445baa9d1c063a7cf6697978ce2c71ab8e6325ef2e70acc2ce6dde0b388f1d03a0af212cd177bed9dcd00fd381559444f563af6705a0fd42e40a969298b8d52271852e57a5545b410ffc4bc9af5e518780056d329cfaa31b1afa41199d76fdc4e44b98f9fb2fda61eca42d7741a163d30298040f9d27899dc8771b020827e31d60814c8b4d544f77bf67cbaf21e79a3c95070d1a57b622c56380ae8b6fd5cb5148ba9b495f96689a508554e2bb4986c185482ffb9ee590caa69f4e41e68e542f7ba0ac15c9c5173533083715a60a72fd46288bbc5eba4e4bf9ee8bdcbfeb5cd493a6b995f4f6b99a5432ce7be0f3940d27c49604fb9cfc52fd706e0b777a7049bdc719e42e4fbf3acbd934bc62d7f8980539d4d08ea99f1ecc876fcd7484607a95013458c6d5bf14bf3ee6e833870a044bbe004ba20833a7941316afeeabd4715f34fab6bc66bdc1079fcf98819eaaca614caf43507bc94a3fa63cb002938c68d98e898f8cf244cca23d703aede9a6e6d183c43a13fc677cb647956ca775ed2c38faa629d04e4e5774fe2752fa4e9ee2b257d665e1c1e968304eba5ae3d0a87b466a069c8d4d46c2fffd76afc2e8bb60c0afcd232c4ac56f43738b3da46578287d970c7f8959a0f820ecdecb6a38637e415b00f002868593061043d58a8fa42a237b61e3351bb24942c7039769a8b7f8193bb98342b621aaeaa00dcec721fae25c9d1c5d4ad57a4d2e473dfa21170e38a969792ab4c1fcad4b2e5d52269ee988941923b1a8db3d190b7cf2aa92f5e5ac3dbed2369913b3effd225841edd269a06df4f73c3e85e56c69e54b125e8bd2fd79191a6f43c6d9238f3a5d9a36bef70ee38e016a36fc3cc07a94a63110086ec0143a8deb67438e4d16242ad8d6133d01f6962e6c2f84afba07d51dc2e65d6bbb6205e0871751a2204611986f4740b2931ee47c1aa8aa20c1ccae2f5566f87f89c12a18d4d74bd5a06b98973e4434489d48c7e2b8996c40d5cc63b3bae199e8e3fdd30c3c68092fdefaab10fc1d028453b77ecc529484f61d6f5a141a1e5710faca6e1da5ba60fb98ec8371831fb846dfe7d52af0a60b185e27048e7dff00b7afa61c710a7c33b6663952399eec31d4bba9a15709cfea40c2dfd6a100884ebac62baef2016afd1bc22adfa6213ae54bd0ca929350d36ec46474aa524187a34578c60f1e7752cb29f3f4ef42edbb15c78afc63cef839dc5b44695206a8ab6d54288e998316ffb13c8d41a1259188844b3dd5bef5eb0ae641b9868216f65dc2a64747eea9005b7bc07bcf98da6b5f93588a5f9b609404eb9bf2712412f112ea7aca8a6ff40bc3eedbd350050483c1331006ea15f35cfce2e153c1dc4aaa5093d9813d4461c72f27c3f3490b49190cedf04dde769d111b18b49d688093354efdc7a5eb3ceb10458e766788d379903af5fc321a7f6d777c694d41f1e3bcd7ba1daa4ab25e4a66ec3843b08196e36c27dfa03f4cdddc6a0e8114c1a5d4c44100b829817d770df24c4f10ebf53c21410b0c33008d907b795ecdc38b308943a4d3f93d5de38024d09e446d8b75b35f110bccf066e363a7b90119212c44526011163d898faace013e99b3b9bbd5d7dc27324e687edd282a3f80aac0d0f5000000000000000000000000000000030a111a2028", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 29, + "comment": "signature that takes 28 iteration(s)", + "msg": "8303000000000000000000000000000000000000000000000000000000000000", + "sig": "1bc9c862b16df16d48180ebb9afd2ed72a1a420ba312090039f5da0d4ff270596d4c762f8d3dce5d949dced4cfa18f548937167d4d69d5b13bc4f7706b5e15a87b389e44cbacdcc955190ac44465dae66de9379aae42ab771592e5270a0723b7ae57235ed09af780c861b0b440ee5b88e396fe3bea23f76fc714f9dea39160610dc75414158299d59b52a10aca0431fe1f322fe46492087c0235f3bc4863a7b83c2a4a72aa0fcf2a1221d4df1169fced3c75d7699abe3287aca2686539d705bdd7a0a4ca4391ad5c68c5d17b417db850329c7a00973e0d46478309895762c8b829023153dcaaf7fa4f04d696c6946c991c21d9a1bfc00b96998049ea15d9acec52bf416e54f6fc28b1e9a3b5add96aa52431f1d361aba4aec723303bc351cee44830ae4c16d7eda53f418d868e59534cffd23b88a982f53ce90380b4f9063d04ae820d1d10a57b523a62c023eda78894785d3f462af9a3a28222b99552519b64337fef4067444d3520f088813a13089ccdf1e44a8a57f88d76b414351961402baa4d717bf0f992384fe1683df9c3df07d53ecbe76a21c4fe175e25902739637f4cd16727405493976a4c196da0fd1e469adb8cd0c3de4e3f9a47653ba8436448f62ea2f2356e0a9857cbb748fceb355ae43c6b9b2a27b5798e86a0ef51924eb1ff2ac7158594d7d2983955fa2b613458a18b957e7d6617381c03d2c20047a781379c0c0b6061af041e1f55b3963b7fb76d83142a9bc4ceb6131cd232ea0b173cd9141a36c1b8956d4aa2574b3815e35e2d8970d495c66a599f347aef6139c6af132be62d2f8eb4574ca209ca18e9072a3c988748f4d39405d1fb617613f665d15ce0b744afa4093d2c6d3ac6ab7f5f520e29b0b6817d7c7a76bebbb7577a48d2405afe79334a56772b88560667d46d0698eac1f0483df4671aa236876a58d15d2e14a17b65e07e5ed03e9496cd5492b08bbb5699558908120ae9204b2e3dedb83f9be70ee102ee84ad42a0352ddf68e86bb44343e6b6d2185a7a4ddb3744c2fb5de2ad7ade6414c85b684f1486c3854834b34abb1ee199deaebfb9314f69ed1a2bcea581998f474e315259f62502d54c2aea54f4ece5a8d8f298bfe609e7d5cfc082ba187ddeabfae7a58d83a240e49068d02dc36ec4d76340866b617ebfa1b85ddadae12d08d0a6bf905d3ce11f172ec74fd755b37c2dbe13da614c6a732f44c24404b1c9abec1000956e1a630cd3389372d8a76616df2714faee5d5ad754143a530b02c7a26db883683b13e847ac2ccc99c7f8bf383af93ef7b92fe780e1ebd4b1cae4740c20fe7c5760727436946a0f91e72585819d988735945b19dc925bde22f52dd32b882e71052dca1eb39c8c4e9c169b58d4bbdf5cde68581087f1ceb128c15618ef43f6bc4011c17892f35a10a78139b1b988d4b526ee4513356e280e390921a093da926d9c742ac710a6fedd23d616bcaeded70bf84151cb66a69f09e6834621e78ab217e2effe52d6708ef7f1b4343b6c76263967d7babcbf7a6850673237243e4d83c5df43007d184f7ce4af6498e0ea73bd32e2eec046ce175b0062653a8ec704a5991fe2bcf8efa6898099135814d813844ca2d6140a98ab4c95ae9d6a5121e252014fd9c9e887fe251774eddaedb8ce3681669adda972bd7a1d16a52ad6ad19e4ff02d486e386e0c2ca3157a3a666bfb4d407008c03f52219e2649d962eb7c15346b0aba2815cd67ca360a4d168e5ed9bcd2ee60498928a9d00d7cde750d85844c82926af0f50808ce3ea5e80dcc6823de71f05c171030bf13d93a04f1c156e66ca8d22b5dbbe8b44ddcaab9ccbf826231f55ade99412ab6ed7aaa35cb12a944536e1bd36c10d8181fc89d09f84bfda2d8de32c935faa02e267a3fbb6e8c3a44a5ca166eeb2788f691e63518198db0b4d030f85a2e38ec7f4e8d7d9a0d1b7eed1139fa8eaad17ad2ad00f15ccc09c715aa7ee5a703291276eecc0f4209077aa32eb970b73ac3c615defef689feee8895912dfac4611d6b834a96b3b9bff1538e07d88936723b6f4a39ce7c4a679078d634c92b8e9f349f203711940a576fce501c3870a3dd4fac09e5c8ba03a114ebd09651d5096a20ae52f0bdced915d6c8f7c7a23b8c2d4f79fc38b5a78dea3b628c40889a4b065e38387f260311f36f4b1fefdcbdff02cad18cae8995b3094bbc51a96f51f638af9c299bd79ac084a13b307faf13d68f3140140c6c3a9c8ceec7b65ea92a9a5e5b7b8d5d3d1f5cf48d7f42c022ac7cfd77def0f0998bc46effb4fd69a1baa6abadae10567e9a4b685778da34ea1ede2529984ef8f6336cc07acf730b05014054856799540d0269a2e8270465137000a47981f92a07fc202807db5f3983136777b6b61d3aed5bb093a2a6e18a7b4c64f9f0fb9d920b3f7558e4c09d62ae690435732b244104dd0e713621a4f001d2df4b1323a1c826b469e3debaf80cf753a7163c069aa4ff1837e33925b4c9ae10d8b19ba9a807e8cf6050b0f3f9ab2959f576235704622131acccad1b607fbde6dcfa840e6b0656d6eb62151719e082a3204e76b11b0f583d07cb784710f654e9fdd8e9a0ed42884ed99b7ce601fb19795ad3adfe936941d14952624ad6e75d675a1343a2d4f0ef56ea19291f6308db666ff5ad0bb73701442f1863fe7e82a29fc670de6019b93cb233e7d744de7571d02e85bd5c50304b2760840f6a4838dc0d0780725988fd52657769e22769188236269bdcd6c89fc3916aee8b04435799f5e74fe7e986cf31cb263a77c2b69ddb452bf3c697e0cfe9756e7bfadbad40e99b7420c07b7540cd1b48036ed3096715eebb356e0eb59df6a9340780068a269ed91fbad22f204de5c9f2ef819eebe6fbbd4bb2bb6c77ae1219decd680d933dd15720481e76e38695c0a1a93b17f90f32d53a1a89124ebb7b686c0a96b7176b913d39f374987b8bec493d80b75909788bfa389a9e5b546f46bf921ca4cdd91adfec87a91ab66d71f92fae2644876af07df0ec3a5cac2c4d62d97de6f9b584f6f8a889b0ee4e2a2143a4566126c9a25e3e4c5b4b4b92c8f38e7b20f26ac5fb0adddf50fd597a9202dde1cd8b8dbf1fcf3dfb6cfb3b7fba249e94fa6dd61d7c03d5f8d010e897ae69307e3382e275698c6a9d8d728de78fe754c5771e25e92997d4eedec79b7beb3c0fa871e5a2eb6f0729e33c724f4babf5782d42033c75959cb9f4c37099d1cad2560c1a4ed049ab586cdc43c368cb45cb73e504f491b0ee3646fcda7b210ceb531fb426bed577e4d468d4d18be91c6f0fa2b1d13427ee6ba551e77930fab959643c3a4e195e61893a8098658b16d549859ce4233c699a6b18021b33237712795696d78abd6c3f180f6a476ded3720158b4ef011d33e2601d458769cefb14c36eff46c32c5e47dae1967c46bc82bae8ae6eabeb831cf7569344e3adb76715fde48084581bbcf6cc736277b28bf258b8eb7e431f972f5b299108b3cd74249d97d6b95dde7f94cc9280ff1689e2905696301b81799bd721670c88497b0140ea8aad1a853780341f2936cdc3d39375567866d9c255edf95a3a935475ee0c35e81dcb138b996f33f5295cec3bc9b94af55852bb70330ed6545c3c6a6382aadf25bfe8a34d117c5f655c1da99a87d21b131ac3a909d80c63922efbd0ed2b72e8fd2e9150415c6d054aa609f45c1033a37528b64a5993f749651370c631a429e96fa141ee220ed3e7a70665ada077c3dcb8c1b302ad671a2a67fbfb350b8ce3517c64b90c6d434923cb33f9c5c7a18436a41bdc9bd792bddcec9ee1d27ce4f20b4841a01486224c8c8eeb0ae875df92896f82a67a584f6ba1a4c71000eb549c00206d41415c16479740d18089e910a14281b435a0d014c7cfeacecb8499543b4d5709c6effb16c0f947206d1e06dffd344e98a3be9133ca6462dc7cfa364deff631e9169cbee3b79859f4951c3e2267c6de922c1ef4ba4eb3491b4493397df97b1a9b89384e492e542de2511096da0930b360b92cd7b62142bfba4f8d7b6e7eb3b234bf50a2760545ede546caa7b5a020aa92bca66c909d819385f98afb19d56946c6bae17bd9dc2d1d9aa51c1cf1acc9f03e04790be9e0c1585d75bff0ae21b917cadfbc33fd5aace13a49572de0a9cc50c6bc2d7feb28db6ae4b362b3a23277d6a01575a9646a48fbd18ccb190c0490cb6b038638fb962b3c159a542bbb6ece365365b93516d0b5f5970d82de06c397e22001f41e96260a389bb1ed2d8d76c9851a7cc1a3fa3d4d98eabbbb679cd952d94770bfa76f283170110bfc719872c32d79c18bcb7457cf85e880c5bef6cb0356f7fb2c5f190982ffe0bf6c5cd92861f3fd8175620b232c084af4ea68d40c18408beca2dc96cc02b11b07c5123215fdb152c1801d5532069bbd3898d2181bc00f0517995f4d5ee6ccd4376c346c6d6df6c3b9c3a8ede9459f24a5680dffa2399eb279a366034eb0c7cf6f551b0e37bdd5d3f3595b9012f685bd2f67aa490665c81dfa5ea3b7e340d55ca7c4102afe9d12bbe8ee075b8dba97c9cd30fb8455000e98bfdb83f7fdf96c3a9db7b23c4fd7f83e490c0f5b5e77ecf9166075dcf92e3950578eb024528c93959d9eb1bfdbe8025d6e94a0a2aacae8eef1071a21305e606d7478cde0e3f30000070c121d2835", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 30, + "comment": "signature that takes 29 iteration(s)", + "msg": "f501000000000000000000000000000000000000000000000000000000000000", + "sig": "8c253cdebb1ba5796f440d3d2ab09cb0498b8ef4bce107d8662022fcf322abf787d74530ceac9e7b0d923cf8396f6154da88c9e566efdb82bf5c65e73e0d663022b737130269347938878e233db8a375232ae2c335dfc9aa8d1176a02d61cdb8574952fd5358f9628f03afc9fdf6ae1c80e80adae06f5e8e327891f984c1c657306fc4890356861d69f07e06dde87d05fcf9603f83debb6071687931f168cf34ee9cf0a4098b2a267d7b221c87ab8a39b5a1a624006bb96eebc8d4d1244f9ff9e3cdcef6745206d52524dbd6afdf90ba7987ce8da6322644380bb4c7f226e53dae556683a43c2faad7d4a37074fef5bf7d9466dc56ecba6647468ecf92df324c8b1fade1240d39b9098a06fb33c4d201d7b501c82f5c4b29c17a3882ef2b10a3bda10dca0b0a7797a00e72b50822a3020dc1ca4458d1d80997d3bfe31cb4d3d6b20a17fa901be64602aa79b0773070c57a2b263c11153fcbd3aac5b12931d307c9fd9431566d7d07ae6facdf8565e4eef6ffc3b03a4c27a3c807c9653846029bfb6f3a99e08b5dfbabbf3a170f5236e8e7a76971a27c462b4ce370bd8e0fd33645304bed23c7da17ef045f587bb90373218a767a7b5189a121daa38eb1f45140957f7f6b90102aab9031aa0f2cbf58f5c9e19160a2d52f93b0901c715b29dfffbbc8c4fa8787a28dd0d90b35d87a022f3686486ace972ae6e0e686478c7f6e96f250d60ea023329140a4cbbd2c79bf1de5cac656a2f1db70d3a9ff56c84959ab72bb0f228c42328b08933771f7b5ca46c3195b70f86bf702eeff671736973403e50a17b10e1598c8a53869b81d1102973030251d6d339474d579969d44a33044cdba3d99cdd8287a6fd9de987bd233cd056b4e214cf5eb893024fd75e4402d97ac80f753a127e67e1eee717e3f0940763cbeffbed94d8065b65755c2bf2c17ed323cdaee4678e8d188afa18fc17cdf12c82772fb6be3032a47b156ab4281ee0f7c8604b6f53c8936be92d09399f43369944e9113a435b351a4f9649ebf5bf42634413fc8135d0c0d21a2c2869280ce9cca7a7e13b387a0d9cc9b60c622994a02bef55c4dcf0f3583388b7d84acc7e75d208b1886772296fdc6e03e538b48d7750518557e1bd161aacadb98a702db7c91fef6ffca244dde2957dfe1e35fcb8d0604c953a9c4fd6b4870121ef58d2f98c66ec1dbd608c46b6e38d6535750dc6af9ce628ead48a53f64c5f9a6ab9f9d92e922ddadbe58c5ba6e3a57527514adfcef0c60f125ccea8b5df9229ac325328bd761e03d03fa541913846962c50cc801731ef4ea39a1e730de15c7e10c9b03d8adf15eea6e54d179cc90d090f04a665e8ddd67f29ff265784c61d98a2fb74c0b5916a00da89fde2250a44c6065a270634b259f40a240e857487d4b976e953364d614b4a32dcaf907e69303f0db3b3da6f958f6336fe0d70f49ddff907d2c6f2306bbbd26bf8c1d0ee8512cd671d1d9313c75dd1827157b9797d2836f6c89ac85683fa6b321cdbf5dfcd5f5f5f3c2c191002bd07f1dbb6c502cc97554d44dbec0bc0615059477b6679a03df31c8636399be38e068df1387b9e8a36101e3b2ca1438e0db16b7541241832aeac355b00c70a47413a0cf10572dc69e809d0b5d1960b3ce789d94396a2b91ceac18d1296efb98a7872a95656123b4cb94b106ff602c371fabc57cd99a2d76b75ee1fe813be4dfb099894b9e01d824aad6491495dc12fcd6c63d73cddfe8cf89ca3bb45745ee697f69cb0696e2ce96dd71cee0060518a55772b93c8d3b9f430276477280e72ef2cd29780c706ae7577439db3bbe329cda8f4699ebd1d60448ae1d60b6f473b94b341188016ca5b59da8a0badd45626754635b65602291a70e25900beb414487c2b73f591d2e55aa4f8d498747523afbda08aa146611c6260d1ce595b97ff7fe4d36440dda592ee5785399799b1d1a1f1ec6f62b9bbe5c862f03b6d30a03d3b291031feac23cc92ae7f2f3c683e702891f5a1850ef566324cd340d7f48fe748ddc234fd0232b9258e55ae80e16ace20a8e02112cbba0c1da90cad25b13b3de3459abaf495c6e547b67e5b93da9a538f19759bec1a32afac1362ec437324b65d0dc2584749183c0707c83ccf840263f75d0fa27bcfc88ad905e480878dc64b1dafd0dfde7826c824f8af0da8b6a86e2ef465f04039a54694cd12c2f9b741b8d560ec0b9f3543edd978778888fcd0a2f4299f7444c9d7ca48a41bd170ae0bb468a9b2abe7f50688ed04ccfb4e382a7e287893309b9cea35eb198bb5898d8a28e63b39151715749e4ce70f07bc1b19995676ba357b0bf5716038cf7195e50ff7fd6b6f0d9b2779c250b5fe7fcc64664e410d5abee8240d8c4541d01863afa7317b617e293292a3bbb4ed6e7beb5638a84156ac6e99c0d46fc05a261695aa7640cd8521ad7899af6b58bd45ccdf21b1083edfe8573495e866dee9ea454301fb920d54e8fdc71248ca41f23c2923ea7e88c21c2f5407fa1632ed1b6d6dd708363718c1f0246b33e822a41e54e255627f8c25ab671e90264b9179d217bb2a3fb00a985cfd7eba959bca17f68900af1316a16abc929ff5b9ff30b0d4bf32672a04b1671b2191571cc57665050e3d37602d161a7c830db43a4a244c5fc9929d3b55815e25d2b53f46e56109a0c3545d156da8c6959b610b028e62f89ab57f0bd6cc71023f7d5311fd688bd08185f6a21985785c7cade83b64703dd2167b6c31795a37bd306f0f8d964c004034a6f7f5631364e0684371fefb6c4dc93857e68cb9a07f0039c1cdeb76264ca83d716b5f6b169863b6f4fe89de74371d117c0766d5733bf6d9b8cfe923ecb9caa8b6875c34aa48cfc67e9b19cf88c8904f4b99396d3772268ee88fa0c4a5ec855e196e977b6299ed1ba98af54f6fe5209595dff4111ee880f4eb623399e0f8bd5c795baf558699cae469af914decd453def58dbc5fb25d701e7724e26f441c884b215949fc909f9b082eaa85221b85707edee7c013f08a8f734a78afeda72e76c43f79de08543b2ec20940604f3fb8c909d1468843e3e725d3f9aa29a8066d827ceb5d9ecb395d73894c8a339c6c3b6c767d50fceeef8b86c0ee5539de7f1ffab4fa24d24f133026a48e97128fbd133e1267552382f81416eacbbf4336856d01464118ec7624dfe21d3d4c2909a0eab355d91f87f6fc1296c47df1d57dbec8e0db94386429d0b0f9d59d01ca6ee187c9ba564eff5bb599fa587d5978cbff76a172a19ccccd6a2967c67153e2cf9c15d3e56da95bb71e6efb0083db1e1a6bdb566b06bbc3022d0cc6308161d8a5e2f81d3b883aba02804106412bb7ce257532654220496e6dd8aa2f8101e8be2dc64225e54d30083af043bc7085782ea0b1e99eb7128a453b9d1bfc4d4bd78091fbcea849cf2e2b0b7c5909ed7bd94524a58b8d56fe87207cae9817039a4681c429b19eaeff4dcf8d6d75cb7c058687ce6e27a9631d39c4d5dfa73119871d8b91e59c677102c25a55c6349f6165593945c51101a1f939e6975f77c89853b6074cfad9bc7af620e9d1d2b869502def1e697988425dd079727bf160307f5e04551d5e97b291a345c3e3ab0aa7eba4483a43b35f34a9f3afc41d525f83c5387fd78ae8b629c4923674860c74da16dc10123b2a44bf339187f389a89fd75418dc5624e1a4ab48fdcf1f389c8a5a9b7b52cd987bdfd9c7596ac3123889577ad6bf4318987f65a41ad8af55ec5ddcc5e1cf5de31bc94bc3bf214d2ccad36042ec2e36fe79218d4dbdfbe6a6a4fbc6693319bd7fab023d22edf401d297d2676d134894b68b970abd4f0c9105a31a4f8375359950d2ab59b018bab399994537be6545cc79b2ec9fae0084cdf47d0e08d7e5bcdb35c78a63af8d92fbfd760ce8979ccd7bb7a0a70a1e4dd77656dd7d3ef1e77edd2e17e0992afc5e4894295f3cc2c19c5058a95fcf33894710bd8a891f637cb55885eefb0cbd6b3224d23cd5766e054d7dc87b50797a9f6a8e018e8efab48d5b7b70c73a5ee62efafc2e2ec2d9a5019ad54188f5c3579bb882b60c738cc149d743d6cdf0320bbebabd420f50d894904e0ff55813838ae5f5d46743a61a64abf1b4349a72892e245a6e744d8b4dc3e9c13a1c5c14bf0c6fdec64e8f372f570b038c4b321be6ab1fdeec3fbed0105f77d13450eaf4bafbea36fdffcbc18ac309d4467ce56ff7b0d49810865c95bbe564f16da1ef783196c541a89396f44e09f5574264271ca5a1306bc1b46beac94f05e6c0e1446657849b8402ba61d1473be762c4414517181944336f240c0963fc41538f9791ecddb0ca90a862dc71f215b1b1898fd4b4d26f66bdb1d47e9af059a2cdcf03fd6218422e2f143bf6b69dc5b4c9d1c313c30993d9efa1c9fe23d9deb38851605d062656f21dc39b95e8752c054a54f0e43dc9f0d44aa195f3408df5f33b62ffa3a305b272ee4e72d29b9ad0f3c09481b208dfb3265218223a5a13f71c64e661233a0052839ae36a3402167d0553728b3be519a043d16d3bc54ad1c0775cd1c290c593a7d31d938c1fac92b45abdf1eae7b0bcd55b6ff0554e79941a808223b516c757c87888da8c4d2daef2663d2d3d6deedf64da1afb4e505326166a11a3a475c7896b1bdd5d9f4fb167bacfd0000000000000f171c212d31", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 31, + "comment": "signature that takes 30 iteration(s)", + "msg": "1710000000000000000000000000000000000000000000000000000000000000", + "sig": "2c85fcdbfac8e5adc031cf1eb284833d0359c84bfae3996c50fd75d3c2cdc4bc57c7bf72c2d23fe22b41dec00949e828824f7b9725d473fe934bd374cfb1b27a790d21647efdf916d65e90bb6f8371050005d23c3f2c31da7b14a3be22457686594ad526e0b09b8f92de2b1a00c0a4fe4a7217680821c7adc0f62fa3af98b3278a1e0cf7ea351332f891e57fdd51965663f20d6d96ad7d8053cce022dff296346442d19359cb24c726ba6c6a61e36231fedef753980861a11270ae043713c0865683516d854d5f375d694b147a23767a14ca4c57fa3e66f29578410d104c5dec4ac0f55d0928b435565481ecfc12de265aa89910afa4c7c265e32fa3eb9783b01904f71d3c3b9405f70a794e04077a3c94301bb75fce0fa263098ba425e0223ab1b74ff1b1360d744316036dec6531d29c1448176ea8102389704af4c496dd85fc9205687da8f65b3f4596b79be1d8816bdd059f353a94f6d35efc1b8d3e3d57a6ba56d6b872f3a6c082f5633885577448003fbf56c1f19dc84abb9b292e45fd8f291b37947411abeb9df1d7804f964538ca438d5b3bf27ff6bd9f3d9237db5f0ec1855f7ae6666bac62e6171ddec86c1afb4b90f0bf897c0f244bfd4e08b4ac11a911871d94879c4d8df68ec52e01de4896fb0f7b88dae0dd257281cb9db2c78de846207ef1dfebd66a8140e1e5c8d7279cd3b18bb89e0fc7df4ba54d84b73795298f41403c177707771877078e13b1db8c1ee9c36ab3f3713b52c1db0ed49f59ffba264d33701a088fcd69c6b35afdde9e9f74dce5a01488cceec00481dc6fdeb3fc2e353a98f9231654057cd815eacbd92fa1a40aeaa54f868c493eb5649a13ee296b2d3300c850ecfe78a26be1f7772fbd9c3c21fdfeb02ecc93ac12adafa23ec51eca46d1da11f6190d0591b6a618d225e8904e0c3e3b041af3db8a94aa52ec9f0167a013128857e7181c2e719af102a6c6e1290fd3f69115fb1337d8c5fab380e759d26120439e49fd89346e4838d0bdb48d7bd6d109be98460d355638dea4876a4d2a5ad4c9ca7f72c1c9af8f35eb8765e4ee9a7c1ef5f615599e183f734d8e76aa9ba37998aef053f2cb5daa80650266df03dde03830679611f365336c93f98a3709177b6f97df307d9984637a930b7bcd2cfa265474df1183ec28800a30ade5c6bc6cf176015aa43215c984ae7f255f7ed7f62c02d40ad1a705aed97af97e1f3f23cd234fb24100c5dc659309f1e51b973dd89d695fd1341e3ce9983dbc165c46774fd4f66995221a81ae2a583d0e978cba226946bf4d132dcabf647e8d1d2094b06e9afb6a5bf1be91403b0bc0e1188ba2fee9d4271e7690cf3a95096d7515c98cf9189346c5f21e72db09dc11ee2645d8e16742e68f47937858fb59a4e114e866d23cecc681353f61d22fa0d9b0d8b464a8f8ecf9e8f46eebaf37aa3ea60e125b2cce00fecd2a24a543075d4969cc7e1544142b8e46495d8b38ed2873666277b8b869514f756f97c42a762105f3ca6dce3eab4e3e552f4d49585bdffda46dd7a54fe772fc877af3015859e23051daade007d23fdddc883478fadc400f109f34e72b8e1a513dcb938889c045f34cd69d837dd4d40b77132c07c99fbba68aa5f327a562495a683928f38ea43112e1cf5fb2b66c0350193bd67b968a31b07cf42a6568a91f325696b386739f6634876df32685f0c6bfd4cd16802c8c8e559bb7a631edec8aadfb60522cdc7d6a2f67f88ab7701dcb61ac74e06e39fd4bb853f008b15056f8abf7469f5a0332d85575a6944ac0b746352424f9de67d0f7f292f3f02e93a152491ef0f401f56ddfa825902559c38cfcb2ff0bd63cfd87b1d7c4899ff1dbd0b40761b85194d9df1874cf7ff52a1f849d1f79aff5abd489f862585f27614b8f944ab091d18dbbb7deb5e84f62c59e5e904f98b5bb0415e3a2576132679754e0730dfa3465b537e160c85c8f1d30198fd5449bb02d3043b8084c93e29594af010cb2a9a293eb29e282c88821fcd302852453bc79b2902e1c786a64f4933292d99572f8700cb936dbacc3930fade53977937f28053885052743813b6c80c4dd8cb27224b1cd8cb36ed517d0d8d52d06c6e5033471dd98aa09c8517f5d0666901e80b36590b65ee57ca83bd730daf45518d0a37e66141b6397cedc4f6b0366f8c589c85c3bc05a6c92920a950390f32d2a0b8ded5feff23ae71a24da3dafccfb18921e96b5333e708c266a15372a1f8f4d62d7f42fe34a169b76bb0cc8357be8c855183eab2434de7fd97b8df8fc4e2361be6c8395a910efc0b44f1d03e6056d48b108ab470308d62faf31415c90f1cf9f5aefb1928a2efdf1429f798c66ef8dff4732791d3c440ae493234fce1d9f2e35af6bdc5e1709a3678ac317c8bbf644165a096f9b2835f86f23b14fb0b1efdcea57abd97db6cd9e07566a82dfdfd2e790cc48bbead0e2232b7aefb84a614893c22a0f0aee3f648a70ad7a2fae3b44b5fd45547ed6de7191375d9917449b536bf40856743eb44dbfdaf675dd6b493a0fed774a2fb89d4f383ca4771a6816409bd15afa7641fdd9a4ff0408dce586d9f0124e53886b54fbae0a771d6c94c382d0281ce0e51fc844f1175960c92886b793123df29712c6c142521be06b7d129e7034746206484ddbd743f7969186f8cbd1f5e14bb079ce36ff7a46d588dcf96fe3fa635f96e99034f053be26e80ce7cf1ac6431b22d4778d4b7ec970c2c7908854c3a13b21bc26a8b5b4399546290ccb98c1f62e5d5ca99c0106405e1a8a576b01613ad5d028c8b090d750718c159c7bee7248055f655c5c4d38e89ef58a2ff24b5136c7503c08e2211f534582187ca30dc8e1245f261d25ccce7b60aa5ebfab491e94d612eb1359e078583844577359f533ada0994fc3b107a3c7c3ee6296b5e5a2854df74dd942be779d7ba2d6ad6a42f2a059e57457bb972da0c2b3ca996df11efb6184daf4ea146df4b8a3baccb4d9cb05ebce23d752a194b7affc3fe62e28c7992841d8d441b91ce7761ce8b056dd3b93ef97aec940d518ace392f436fc2653e63ee24d4c9af568ba456f13f441350672206143f40e420aeb561b79a66a3db803da4b7394a43ec7982eee2ff86169065330fd4802e167bc38adbfd099f56475e1ffb4ae48eb8407f6ec4434f7a8a1cdad4e278f16f240fd54a8cb1bfe1055b34a58a5fcd6087d3e051cb44708e47e878461c21e4229c515202b6ec100c492192d2fb51a0121607d51e322b818a1588ac4e1b2ff94d1e8cd26a974cc222339d7a203db87f7f18e1556cd0c8477cd7cc9f8af4265f9ba29e6934a2c2ad8047f4756fab53653c5a4cbbe75a65d4a31c2fdeacbbc71ceb394792facdc1c79d497d9664aa3a759121f741dc9659be8cbc76b273cf2a5980752d15e0c9eae46a4780cb17e74f45a4f79197563b5db4cbc104b6c5e2135491c33d1ecfc95d7a4013aeb6e33aa81ef9e3fccd7511ab11b5c88f4d580c1e1f6f406df964b2a05ed4d8caaef82bac1a45bf235309a8cfb688c0c1211a08fe26e5e808609b2ea2dfbd0af98dce934aa57e659d78c71239f9cf6e3e5b0248eae03020dfb52ce99a91badd6146aed77e1a879d5f87a964b05c871cf291c5afe49759ae857fce382e5643dd687baea86776face56dd08c7ab062dbf68d43af4fbe3fb65912251e6a65655ca2a4f0c3bacd2da37dfe5ee3eb7cd959f56ac98a8c70785be7f08a2085fb7058f8836cd5540927db3c94393c9c67c0cf750c982788b41bfcd19b281ede811762d560de5b96f353647eb81c3fe572f1b819749727ca56cccc621b35cddbbc99989357d7fd6f5c3ebe20f3bffff6c990a3549499a8a5b31b1bba9b98ede4565ba3e7373ad85c1cbb18c29dd1b39cafbc8b96dfea6a1478ea6b939eff130f9a98e02a56cad1025b097c50c37b8d38e31871e69ecd60e02827796efc8b465b4baf8cd9a9dc04add8a18c98cee625e8eb82a798dd9f95586ea39e4c3bd52bb2061322947424eaa78211b9295e8eaf833d54ee8fbb633772f3f815ede5cad63e64ecf3a280c012bd05d4c855bf70909cb9d58a7a5cf5c88188084289fefca5b8946c082b192f7463172fc4e58e7807d1629834188c5c2d2e71d992dd4441ad2d9b9fa17f61a98ce106f26f5b3e668a2298adafc9e23829605e75be02ce82f3f39ce214696080e879dea08427d45990274799c5d852dc6e1d4d728ebd862899a9fe5e66137f769be684b587f01f0876e2763a9d478241ef15a807978b150444ad94e9ba007ffc0fcce70855e940aea38e9baa16c180296f5842acda8fb1458168a419172ceee5a85694e3a7b639b6137929abc9fe6c074c4fdc448178a4cc64d754956f3efb65a857687a30aa9bae4bd8cd9d59e473d95f98346e34500fc9f4daa931ea21553dfef45e6efa1b6ac6bbc1fb8ed7c440f404f3be0a7826e84c902b1bfb8f61d907331ea076ec028b1ce07a847b552c0391d769a13f614cca41f87a23204bdcaa6d429b0ac56a7878d363e5f58855f5fe9cf19d4bf9c327c67b21e7e3ee596de190301d719b33cb2186c1c861c0a44d26ad6ae9e6fa2612aa33606885cafa32353e75be06313e739caaabc5e90d316f7087049eb5eef70c103900000000000000000000000000000000000000000000060b14191e21", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 32, + "comment": "signature that takes 31 iteration(s)", + "msg": "5100000000000000000000000000000000000000000000000000000000000000", + "sig": "01eac4db3d5af8020d86fa01ffae47cf84bbedb7d6a54031ffc015be4d2648994182c9de061737191f16daa359c2a134606b3c2816848a84dd0c60246cf17453005d4c0a6256a6a31dd52c7b09d0baaf3791a22ead92d8f11ed0b7938a481e9c2c9e383e13af8fd06c3d85a50c865453453885dd62986e33aa42c6ae9b3b83402c6957aced4a8b673828baba64309835f0aef2e74f67d0cff227f71005cd43ccbed8cfca53033bde00152868ec79ae5c83f3b7b3fe4f954b0bfbd74c956c66e8fc31689b47aaa3e227428588f072be6579bc2829a36e143a4de51da03a35752bf6c1ffae7c6a5dbf951d634cdc81f7d661d29027aa5fb5aed7ec725af758ebd7075618905c05278bf913a3f126c374382558859c8bf375f8da8faeff00e59189678ba0eb29a5f557a23b51e1d560a982cc9b2a7134534086fc2e5b28dbb6ff1043b560fdfb4f4b9da4420b7f7d283a3dd8da2d6f9194c5d43e6cef26ad05fd58ead718e22feddb2816b455c50bdd5f776e8982f7c27ec7f38e07126b86e6105ceccd2357d1f459b8da652c6f79326f20aa658e15654c95f73417885f61fd1c2bfa9b7c50be0b113661b2b8afc9d942f16d1ab0bb0e3eab64126730a4b5d2fce426b4c911e0421898398bd18679ac1890a82829146c5b5d0ef7ee58003cba9eb5a8de86af08051a69d5b4d0ca70cb2a1623364e51af673f7f540463fd4260ee73e6b12d518e68cf40f1532165aab88e1bcbb9da41f385c2e601e511533af7b43e82cf67d47c72fb9ad3617f89017c825d3f0d7af95b69f55f73b3d699852201d70f4eca4a1ec59a59c1f4cefd1739cab4db6de0afcb15a8b87bec532646f3824f8de6fc716639bcb887a70b2468e0740f970720b1f571dbc5594e5106897c8f514c9307fe41d6e9f7f04e09c3c5478d55ea213d84d27745fe11a7514aaab5339661c8a1449a27d66ebdf1c1e7e95649bdba7a382df339a188494460b97174dd9bcea52c0bc69a812457475845426b1a26d9cda478fa600f25f09f8217c4dbc1a9d9a028a51259e9654d115f7889a6875952cc1e8162436de0360828d63c2decd077ba290b9c4992957189ec6385063a3b6cabce3581c5f909435b5f3eb373756b5d33c29f2abd530c03829fddaaefcd65eef2ff143d5f4a74ab8c6b862647ba6925550e4d0b7e16d357ddf2b30d79e931199d2eb0b771fdd15ca7ad3d5acb7808e550353b678c4f98a70cf2af0f5d9ceafdf70d736aa7fd755fef92dbebec9e9e78471775a8a7953cca04c021518be6b3ec8af2e65986359f0956d2745f6b4a5e0d3c7bd7dc3865be5b8da9ffb0cf77dd1a31a9624da0b8c9f9b385bec629efc9dff5a782ed90fc7c595adc65c46e4e3ccb155bafc102b861a8be3e01bb26811fd7575ed3cb98593a40e30bccefa56c648a0b17b6de9b7e67163f106a861c90ff9568eeb3c807db49eaaa5a2be38ef546afb69dafc42a1eb7a7b9aac9e5c9e081852773de237522327fac04f76a64883c9cd158099f223d901153be517f58dc82423b0b0aa9a6848b13b2e07d887abb96e083943c0f619448a90932abb31b276c65454c0dc65dbb014ea2cd0be91c855dff43b0637ad99e5c45f4450bcd2f968727e59ff86b50bdcb2c30ae347fa4bb8e4e35fed1fb33ef825b09d01ba2b736d080a6eb66dad7ebed7a353fdd1f821fe8f3113b820cdae08e04b1d031f3cab521b6b6e2b371d67acb911e63008ffcd206936d76e0de45b056617fce9a0ae0932d6f1c815ece53a2071d7827ff2db130e0b249a0a7b52a0cbf92d2d67062945c0dd2b12d3e2ceb302d2e33b711798082355e7839e4ce9173d78645991ddcc1ddfcbc566e24b79628f917d8b75a62721cf878f77a441298f306b99207dbef11f5ffb39a651a48cdbef63c539a63c8ada3bc269bccfe392802ab4c0acc4abcbb10022a57ae7db6aab779264d5de066d74939e1ea03b815fa14130b94fb3a633bf300ad00b5ff8cb13d896c1269f6c5a587ab4bcc4641961ec507a900e9609537aae477b6d64181c28d3f3fe44c6b07bc50407e7d77105633e994846e7d009784a3c7a2df07933f69447838dcc8a531c9075c80d34b9c13a0a5c6412da213f3a845c1e2bc38b0a99c0d10cc4ebac342c137fab6458dad3ce12ae18d074fcd91b6772804d8c80c1300d14b6f383a0768311e02d355db6da654715a523f8776e1bf03b51d256e8eebfaf9fb926bda55fb38d25410429158b2ef6e789f633d6dfab82483668594fd95652812e7e80fec788df5b3f3e4f1246c4c70f7c33ebad179da0e9e9485c0a1c070ca35cc0daf43c4513fd2c6062273a54d3c779d876e251b6a064252541744840387695d4757e9b4d6d7c600cd635f8d2ed5a76eda12f771d6164731f517599933471e34a9bfdc8b3e3361bcc2a6afa4af277583a7125b7e4cb9bb24ebd9edbed2558533647f32f6590c396dbbad1b7046129a86e3720347505a9efeb23459378a1a8b54b4e7960355eba1cb84f2e761ae08bfdcc52efd9e4fa3f579365a4519eac13f0bbf872c02ac7401ac2600feebc218f930f7dca793647a7f7940d29884ed6a7fbcb41633552ff7de28d4adb21fff2334cdcffc33db0d3a5cd42fa921d3387f20b87ea59d6871a3eb24c71b8296e3be9ed57e3cbb69d62b1fcf19db8f07732b0d6aec22f29719214d27132e1303af5ad5ee328e75b7b347052b2aeb4a98322e703ead7fbb27d7159bc128cddb06944115766d944647f644c8ecf45c71be4641536a40661e473f7aa9c70d2b61b61cce8f2e35b3e6e793ea1d103677c5e76ef2db62353ab1931de31bbe67fc2feb6e817d3e534c5f29a9aef5ac4969a532f9d01ff9e434ed135bf26c031a3be3cfb990b55700954a0d280161ced882aaf181b0a43e92b7eaa986598853150c102f70b231df612bf1ac58542afcc0e003f4da9c3bb86a2966e8746ce1f4a75c5984dfa45b6d84e1ef9dba9daecb9214bc14ab7d44c0b7fbee350c4c74b51025d207545ffc6c53c05a8c1e5919994f46f596cb990f11f33bfd70c3c8452eee7eac2e4413c6faea3393cef45e259baf7e3405cb6f694dc28a905932fec271a81f8bff02aeb47dab2575317bc3ad0dad3a83ce81efcec0d6c319380004cf03b0267f775888127507e396ab6b6e3ab20c4eec1b507da32f5314d5cbf8790c3ae3171d76a8e3833ed9a236621b9c5e91bdd77d7a2f06ef59607affc2afaadf55be88f6c8d742b6f479e38fdaa0fa130cc6f835a67abec845c137f3a644b0e96179dce4eb10504e30ec07869d04250311db87a72773de260c63f90e31cd3f059c4bd56cff67b3dd4f45ef41687342669cff023a4241a576b9d57fc74eb6376c90300e6418a730398a8ea54d759260dcf1b19d6bc59157159fe1af193ea02f58da51559f5e1eff3c4222f45ca00eca2dc9b2d7afbdb600fd97ce14ac231701c4efde8ed052c68fc763be4fb52019b9e6b6ea7ab85535e94425513e18423b2f7e0905e0535c7ddcf2f4afbc1b8ece7e7361d3efd3a412a090ab999a2010eca0a2664d121e7975688778fc2401a6076254bdd0995cb21b7c82d94d51f0af2a4d89eaa35b5259a134c0856f791db0a632fa6f9bdb3f902f4ece52b1b323b1f14509c1ceeba25756f43aacbd878e7a733f98e6b6e62221cc6799ecb2556f5a6bcf8f92ef8cfb44f45b89c6dd6525577e6adce1dd49438e90f12a880b0f85417e35a5369adb315d9a2bf2f2a098848998eddb6c0f5a8cdd3d331e0e8ea3ac796f7031cbebea2952974fc0038e511d01ef56a8af181ef281bf2380151898dbfcc33081b5976dd5fa93a89140f51def740a69519846c7ef29cce77d578a54da19ccd259d7a2f255ac0371468ec0dbdadb228f3c0a418b86bfa44827d232c162cb0c3c48ecca98331d4f2f40b6a66ec54b14585f112e5003a596645ce7f2b2d73e988b39e8eb2b12039a2cac4d78325d8a06f8500e7ce1898d3cce1de236518f88006ed12eeb65ea7b5244f446f3f21febd9e7ce0c5670d17d88cc618981a679f415fc25b82695b622d6cc49daf2cdbe96fc6f44c04367ffef73b071a5a481cf1edc9c96d6b4e44f5591c7c26b28a6f80d630c2503451ff6f051963eed1774b62772aecb4c0c5a54dde4dce004fc29473a71b5588db929141e28a9adfafc1f2243f5c984bd1ebdf187b5137c07a2bce7bbbbe72d9c847858668b7eb044ae04fadf395499f09dcf9937d4ad40d5914179bae8e337d325cd65661d16f7483a68257036a129047c59bae8f14a053c177e54c57f069c7d50e1fc87186d67caee5bf7e9e58d7eb4134e60f4337779f80bdd171faf8380e87b9928d360d600e7671d227a0ba10c5ee01507b951a9793956e247d09f50b2becd9ebe1a9be34ef7eb5868a1e5f7b9600048947fd8607a6fed0a5aedac7d2925674d74b16f462a360965e6ef756e442ee17d1c80114c1bb93cfcea183964032a14d0c2bfac98ec0678b1c2a90dd130fa9eafa717886bbf0e095fc29214983d2131e69fc9e63182867d4d59cff725c909090f5f000c12bb0aec5ef663ddb0da69a12809e89590ada3b19b4e2262e9ad04797d7f8e9ea4b13e5adffe212834464d50a4c64ba2afd1e0e8044b5f6f85be14426d6f87bcc5cf000000000000000000000000000000080c141a2028", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 33, + "comment": "signature that takes 32 iteration(s)", + "msg": "8b0d000000000000000000000000000000000000000000000000000000000000", + "sig": "f8dd8fbbc21eba0d0353de9a97de9336945958e82af93c8cc5061b00a1247283888887c38034709d4c56288de3175f1537c41d2dd3f0045cc0613c5e0408aa522170be1ce10a79cbcb18b7e4c2120b15b6cc47909af9d3b12e160d8000b2dcbafbe4a587757c07cdd1cde88466b31d8b425455964a1b3399a4bf222ca4f031a4e5be6c9f921b078ea61f063edef5c841f7788992b231252b74261f764548f930df5ed83736e50f97f8bed8b52a227561242b158bba244c29ebd49c44c61effcdde24ad5f2da561eb7a47071192299a0fd4afc27937d9e653150d31e7c13f66819f09d317e894abbd0a2d61b820552a8e816f3ba8e20695b187eadfc86b0445fcea20b9b2250ec38c368fef7f7db9c8ec0816c07835e8e61809f8324a5f3b5d7b3ea992efcac693cc4db79d45884211dd4777c4e9c5ebe688ea263020300d100115692a7c5704ba393dc218a89d568a2ab5744bf37f294bf2a6c522e8117ef58fc447dbf5478850f2030c14c7eb459e39787a30e585c047c33677d03cae36bfbf8866171cd7d26e4d31dba33f956c51b12b26461aef886fd82232a012cfe047cda97ed3eb47c8130b9dcb4fcb12979be1e067a5166c3bb1647b05bad6c582e015c569b490956e109cb642e5eae01668cd1975cb9c657b7d527710a10f0ed595afab34fa805b740dfdc6310c003a556daf244d0eaa42dacbc258a4978a231b9446eb01cad717f0ae6944e6daea99b9f08c0977cf7bfd188a1c997690979e8ff8d987d8a0417eaf643cde62406795620e5462875e77512f0229d2b12d3fbd39e4e34e007ede5c76e434aea73f6bf104c62a7a2e7276402455d4f0e179f14e6b17b90f4ca5a4ed34d8d4552ce4654f409396e3a3532bf52bbe93f0533260640a76bd64894000a27bdacb6d243757e464676e57e4d0f629c3d10085215651d94d75225500b1ac7f5921f86abc504443486b26c401a5917c855e0bfe548ec1d1543488a8f9560c387d14a41274286019449655935795ae37fca42f6428649006a873dd71d292b8486e12b6ec3dcb8e440e9adc2651f50756f44bd5cad087779af008f928962dbbc65aeb1b0ac916f32802eb41947821b3783874f94ffd66a066872a0f6bdee21766baa0e9d2f246b9c48fd65079efe3f120fe81d8bffbf36f07fa425ff4c1717d759a972a2b4e4121aeef340bde147ee50b9152edcfaf191d4bd83d4c089a80d8ee1f9ff56c32d22ebd176ecd1ad78bba09e575f0f8c6eb7a9b5b19d335c9b6e7543b1131130b40f928af9a20d3cd399cf5f221093459acbd060e9251cb80e52dab9ed531ddb5f9281616314d17ac99a51f492c7176cef2c49427ed767c8ddd6175fd92213fc3e6a99fc598d731ca01077d8537c724dfaffacb565548e0caa34755650294031f98ec246139f58e889419d0b75a4c319219e3b49927f72b3c19cd86f5f25fd58641a83c5583076b0b4f360999c6465e31b38e1e7e931ae182fa59fd37e3506e5d187dfba45d54caefc1c9991ed5426334acfc818a07e3bee7f8dcf07ce81f824299a84a45007b42d318c12bb5792f45a02ee011506619156c05b3400d33731584c72dbd49c3e6b09ca9c1aa51c0cc6481bf6325b1cb77dff6a7f6940ca80b974e12013e18e71971120a68322ec4be3122a5f8bdcd3c7a7e7a385cac585ad473c490873ce997e8cf52f8ff8af9c2ef23e4404c9b22a5d0b806a063ba2112382f0a11b2d805a6aa8da8f2aca0f976a9d0f1a0a251d4fb0c5194675c369a025087ef70adbede6191be31e918061ac2304c1d2241482fd9c150f09e4357423f72f533913e34a975f71b69b3ce42bf52a38e35949ca10d623333498304ca2e8ef9641c5b283b1d1ccfd5345a279f90e87101543632c2d3f61f3bca81362620439b8d4f1c131a34cc2c772c0ae04518416539c7bba5e072e15f081ddd9950dc2b222d3814b126f8cbfb6feca845b128d4d09a53717c944791dd37ed615a22363c4f2a2e8f842d4a3514e841865112f74d1aba767c92c1f9d378fece9375249d2be01c95bf6a395231230f935b02955f94c11495e9ca79c5389679ad71159057e7367e6baeda9eed697767ece1072df2cc25ac5190fe92bef5d7d56c135a4fd2741ee76481f72d522473e5f5b6a6db1fa1ff9ccc07cdefacc6eb9fc533279d56fe3b5bf046a1ecbd993554e38a8ac94fb09b05fefa4fcebd89ab8bafaa76fcc16122f3a7bf4b97eb76fc6b6fe315c141fc5a1f63308c584c9b895ee0bdcfa139eaea016fa292eeadaa1d2dbd72c1247fb409041a27bd74a4091fb9fa6244b4f8d637767b6456fd87b8bcef882696a83e91554af325da9b481521660e98c3e3d553dab5984770a5e22539d32d6cedcd786dfd917524e7564196992522fc3cdd355affb285de717355519c34ebf5209c176ac9534bd6faa23bacb2fe87ba34fc92746e2f82a2bbb70551682c748a522695ed6930c6423fc5d222a3856a5b3d106c0b096e496327ffec72d26ec67986686bc6e8f27b12a3460350e6772ad320358578c8949d14808067973f5baae5257d2452a4c9fc6249fc4fc13ab9568e6884a13f9d6ec6e5828d62c43ab3ad819664fb66e5758849afd25beca344b92d5f24a567b9323915b9b7803ce76baafbee01dec333eb63b236f64446501cdaf265145ae6e1a1ccfbc77c04dec25680bcedea1feb79862d4b02ebcea0fc58b90909d75fd33f6fa940dd75dbc3a99e1ea62a47e6049bf6d16e913d98f1ae7af115a1d19d598016d870c51d0c1456b4ac4c500020d4eda7840bde8d1216150d2ca7915877023339196ef35325aa05f1360f2e8e00b81177af4f142f67efb126367234ba0f62271b28bd65539c5d7642983791f61074e98bfec5e6c15e59a346d26cdfc699365d711e65e13e4e2b2608dc79f4908abcf5934f8efbc78195b74a1e766fd9cf2f5ee89c8153655c6a7744768fcc978fb36d1860c2167b85c89f3a1947b2fce55a4e14a8c3189580efc1f52e0cd768ff0b579509e003de240bc1f6ac0cac3f0f8448c586f737244a4886d01f08a36510156982ed74852b52e3126bc52ff96b421a0a9c3d1d6b136f1104b62c4d691f645ddaf2a6a1e02f91ab23febe5189781bc266b66b963d20a25070f0c354566fa16afeef5df705148bd73dc4d67bad8464100facf6a073c4647e9355a7224922590ba3bf1e3520658b675ccb0520c50c5d2e156014961ce4b3571cd0b7d5a40a23945b0a336dea45c5498fd859cdd942a89c180134e5e324647bebd50131a964a91ce1483347f2bffb60bdd4c6669b19f5d019400e4cd5373ceb4c612dea80f0b0abd4ee6a9a9b849051f600808c018972064c0ef98998d56d7df50ed36598606e7d10a4c16f3a376bca8b6006bf7e1da576064b0c37555d902c1bccfc96d82f37f7cfb5cc15856c3b456bc1e25d02ec4ce469123c4e80d3e8f763e0345e7363d97d7f643287cdaaacadb79f815f8c857dad8baad445b91388bcc43c1c0e9a22b993bd48ebe1d2d80bdb990440e0eeee61c6122cb628c694e626ac74597d2e46149eaaaf29f97226e06a3bc78fe27ce64f7373f282f9f8ffd546fd4f42eb4efa91483111e88e39f9b05013bd1d40ac2b9728acce4f6feea748bbe79191569411055dbbe998a39cfa496bc9f7f6503ab9ca01be10127fee2bf4ffb420962ecee559870ba7ba0e0e70618838309dc8d61e7abedf50fbf9445755ccc5a3330f9baa15e52c05a91cecb76d5b4e864be1cb1db91c37a6646c6bab89fb5f0127cb551600ff910e6f2936b44890909d1dd34d4d67eddfc0b7acc5b2a7ea1308a90c02bc24aed97c651ee41bd77639777d66e4161178b0bb93d09ad01868029556f686bff810dee136e4235d6e32cc160af3ce0a7f1f648c6169d3b7df5fa5011c16ff21a6f5739260f7cd319faa66b7286b91da26853f556cb4deda3dd34d132851b45e4a811637279cf937b8c5f9e71b72cbd229118e68f5c714e16c9025d65df8194e561f2b4b347a966091507a0705e142f88bca45b16a00fa9e9444f1f1fea22ee0109273b7f514f66f3d05b7f8577f21732e98ff8558de75e0dd335b543ba8cac44e1c58b9bbd2bc5ccc554035780a7a86ad5ac9e5ad2887df3df50e1d51f2041741c93c35f21646afdfb12646e2916762fb2a82158e5817e6102dba4b9377c108a55a35f0e1a67e606c1ec12684b0a9435f386a0c176320ea6443f6370edd0d83076287c97dbe7828e470b876fcc25fe86b58f50804a2644121ac3ab19add97de8806cf40bd1eaaaf36f03ef289dfe74c318d0692cce63ce7958bc2f821338aa0b0c433b825825b401287494319ab10897aa49dde720022128e18eb4f7a42b7eecc3a6f13dcd536bc307183e0d0104c037daf4ad2302a057da4a0e8967cd9a04f133a7f2cdb1cc838c024d7056eaaaedb66963adf559f347970a74c29ac62410ee9d36840f37c7fa1be5b118fa1b95e3459f48cdae7ac78d03a62a732a99fed3485d9caf7943b6a2c9a94ff4c7a050cec9160646827a874b10e891fc82de2edc0d9db0e8a9e1fd16ef2a9d0c95c6b0b6feb390e6bb6b733959718953a494b899c9eaeb7ea93f616178fa8bee9f6f749525d6c969dbde1f7f8686b7a9fc4f6102f658600000000000000000000000000000000090b131d2327", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 34, + "comment": "signature that takes 34 iteration(s)", + "msg": "6014000000000000000000000000000000000000000000000000000000000000", + "sig": "99893d22371304a26a3db4219be60f59e72fae2e331af713086816e2cb99878730191e2c9b66dfd0aee2fed1f1ee019d583fcaada86dce30ffbfab7492fe8caa777a0b67ebe537911afcf39315334952f6f03e9edb15ba5571b99c2b61cdeeb166fa36b07cfbe9bbc7186eed33064e3c8ae36e9afa0028fd6d5c6e06dee48783ffb7fa79c60fb8528cd5f9f2c7913769fd9aa23fc6e13e4acf9a9b1df92c986ffa594ac2e2986880e62446bae4efcccc2211479e7f63efff126e430f7b3e9284a802445bce8a82cce56255b960559b667075db347a4ae9d45beacb94e205429afaeb1823e8b9f160892398319d74f4ec57f75efdea595dae514e08fb0fa22445806fabec1dfcd05d80ff2834ffb81d462e4335564e7e642651d0c7423173a862e0c82a690e7269a62fb4684e3a3e3c9c0a99ea32525ece6b157972e52846ce4f92b12a5ac7733c1963f99537ffdfcc3e3254b87b1f297fd69afceb4ea5c58fd3dc389c6e0eb5c81954bcb8e14564f1627b59fc768797420d663ea275802cd1ecc606c57ce04903fc3644a8db03c26837b594e48346328adcffe0b8e50518997b62b5d25bed7b2180672dc403411320dfa3867777544555ea0aff222d159c3e8c2a0670533afad440238f326445fb48ace5e680e15b85a76a7f6f06d9ea1513a6f46dc6a43d85ac0ab1eb58bfa480647e34fec219dbe0e760d0843162d886c082e986a35ae4584f00cced01fd93026d29ce92d7f9f0a47ee337a7d395888c0e7bf87520bccdaf4d71208fa03065adbd6f9cd59a71b9f2a34227ca0b7d8cd4468fa8ad4dab11777cd6c4220ec64b9bebb3fc36b8867700b79ab1f5bf39218f9e596e292c6ce77fa06a2a8b760f6149691861a4a42e8a93dbdf490bc307f548a760d45c1b469b2c20d2187685f5fd5189afe2fd4a84e88119b732c5d384d54610307f0339913cf766acc2e7b697308d91669371cfe1b2ef4f5e6fe4b80f0451d0a363cd2b3a6331ecb5f7027bc9d013ffb85347797a2e47d02ec6146a8c2c8ad7ede90fc0f44c93cb41f0fd22c65a431037fd02e51d5908fa1b3537a3d925622b04a2218bbf052de349d15999e7aa731d0596e2cac1014523aca43cc5a26b2e3945f06bdc12f854d485d7d83fefa433f800559e192cc357996dd99604304fba475289435ec4e57cda06442a3baeae4c90ac3457047a25377777d13e4c8d367d0e2fae1b2ca117b952bb91ad9aef010c911d79fb4b8ebfa6d3b3d083cb5210a24d2de2360b75171b42908e9a698fd680da715c8ce151903f945a1e226ec2510410846fb36537411ec9d11e06cebf69265860775dfb96e7804f496ea0a86daaa7d7cfed679b895a856b097aa27ce79e056757b2666d6acb3dcbb33b184b85785d025aed348a400fd29747aa7dc33366336fae0fa371fa27a24d75b36fff6ad373a58c41387a5218054af533f7e78b288d02c3c4a01954ee56d5ac0009e8429499079d4313722cbfe79af1fe6601934f6301e2d2c958ad5afa6af2cd7a2cce652032b9d4e266625322980740a0f70035b4182d69b03d7f5e85de2499658cb7ca7def9d67156f148c314f5aa943d620f5b925b016942b97e73ceb690205954511974161550522a17b48ad64e49a450e269cbcbf1ce27d8bdadc137976aaa11632fcbbe0e6af086f3dfc302ace4eee7b2dd48511bc010c30bb0b8fa4108cc38242769daeff64663b3c90793b12dc689007b8491f42c32f16ec884ff660fb9c300b39e33ca52dde1365b91828ea9b5f52765112c4622ca10f14021ba33e606e4247182775c5a045e995375f96623e046693f4436b90060958d7ad70b91414fd53a9ffa06d6f589bba6f2fa2aef973ce1728efd15b307dd8883cbccd53483bde7cb6c36e84b25401f9c77bee2bbb92a65a53c9522d05331d35c05fec36f11f3ad2f9a4c11c7daaecd0143ae9d4839be50de35951b639fee01126ba7b3225e90a4f31fee99e29d21f58c36f8e88890a5e835abedb635fbab82ca66991fef7550fe1ce7728fe5d5d096182905e534ef4497217c3b6e494883941bd6c12395842837ea302502c31d35d33ccb0cc78a57720598bb37121b3ac734a707ffd7a3cdf9cec64b96762518d944c370c10ea2be59a691318b822bc06de27d7f67ff726a709ed5eaefd576b443a269e73ef4735a9af5671824fc5e9e589910f405d42f9a4759b31128fd49f3becc42e4a0e083b8bb618f57df5e7f9ee64f6107c67dfaec01546922cf3b0b90d88f5315976ea17378b22b58acccefe558be949a296d0756c882381152aecbd96e88a3ff4683ab7d678d572917321858e3ca66b9b87783c40341b35a5cdb04b1b384880c4df13623017d7b3f6b089941e96aec8f878ccea7d4eef9a95cdd9b3cc8758c2a9679d788989d18067bfe806f467c4a34cead74c5aec3703d86f575a9f4159f0ffd1bb05458159571e559da812b2033bbde0238c36baa6c8c0d979f5f5f231b5f94bc67b0fa129fe104c8b76592a5355a00a6472ccb95d4ef8d07e895d103502d816b5501f5b259b86925fffdbe30029bf8c002dee7597defbec850cc18a0accbd7d08e30b6fd2f9f3d2e7c9d6cb77a97690f15ed0bc6ed158b0a27a18fe7596e308bbbb01bb1411ba31d7f2b49cf7e6af5ad1837deca57e285c9084525f859d72e1381fb39c6525d46976ac5ef54b541e4b36cf50b92977e1170b0b04c6222e213db34b8a48d111627b905ce65821a73482cf439709851a26fbb82b381b84e076d807cc35de298aa3ff38eae9c9eebb52d339f62b6de3cf7bf934cf1f206ae4d9cbc6c2e5cf403732eda34df16a6e04b3a89edc0ef3c7de55e7946909b6c5acd1c51a5e505c62e0df81b0dbf94381b657daca9647b89ce5e75336c735382750c90ed21f611b2607ee7d4bbd97daf6b40572619a335d9344e459faf5672df500a9541e8113363bd4ab65724f6d086860630aba2b858ca21e3d491215d2e52d1fdd9aaf9b22e97b02d0b3cc653485929d6a7585a9701a45704b6ba175d916dc7dce0a75918f8c8db61528fb39ac509928a2a8498c07083136d14e28e1094db7cfd4c5cb401d55fcc4089c1fb1c18216ac7c007119858f2761f81ae717a5be42202b2064bd1fe51227ab82c30bb6378d3c9d514639278c25de38c99e70b8aeeeceecaa23e672975b8b9efb50f4b6e946b4fa00cb2a88f48f1bfc33909e93aa87fc056e67f7f81af4800178ce77e752e80a649a667d389cb03b13cbec353ace08674fb6c612b831500d01690e254779f23ec655804d53b10264b542a28897e3e0f041fc94aff3b3ab22b5e5ab3f4cf6551ad064a9c96fa2232fd9d1a2676e40358f49e38072a62cd223e6f00909cfde7c549b340e4a01ed71b866e2a6f898b5e61040d2e93904e4bafd5e5e34deb37481c50cda70e32d1a60f7b4adf786c7471e0f59e1b0eaaa793329ae660365530869eea6e5e770c11fa56861d69602deb0cb9c4f5181d010c43a36b118d481735e77a1b0170c206865f90f2fb5309593e2dc0dcf49488798b7618b11bd218f256335250012337f245ef45ad4cb615216f01ac27938095490a18df687db9b5002daf85aaa3ce939053cb5e84080d4f689ba7965e2034da99ea05d50b96a552816d938100f22cb2abf8fdcfb80d73c78c77fab1d1fa81ffc4e3ec48a116065b6e313154ea2281e5a4d6a98df5fe439df530de835fe169533b5a1f06faf13534e8e40e5f30c5dfa2f522f42682cdb1bde0fed6f23eece1c2707492f8b002442860609a24f2f4580a2138055c4311ba248e4d5adbd442972c54d41527de59dc9070adf8a299583ea0dde372303911fc97e94eefda2d4a05f30d225a7e506656a38529a45a8c3029d5235071f78e1f487b38cf6df4a6339ba55e99eb25754b18d9ca0ab26b3191277c9502a037254b742659dc410419c1c07e600533307d93f0b7e64262cf1c39d4eb4371e6af881052359f2239f7cd8824672d24b93a1b8cb9a8d8fd7081e24e29b4e48f813cc8c5e8d1a1fb335a76cece90a8032e06ff7669c28f5194d5ed88ed671c6b3bc2a3f47770386df323b00f4b3ca0cba3afa5cfd1f0050cb12ef36bf402917d808b179fa9361f34bb7ab6eee3bc25779528ac770ff5bb6de8af65891d3cc58a9424a2d178365e5ffc04ba513e98586d3b3e0ac5b5449dcdc7fc2c20ea95c12d2d8f6e1ce5a6594ed6090be82d6335e9fa9c8a7b147747c1726c302930de4b17baa609a4121cd29f3424c9831958f885c6dfc9c7496ed3c48e41a3c477711f67a7058c1f1be29aabae0a28f4cbf566dc33741dfb24ed4f434c831be69e23cec724b2838d6201aa8609c6c173015e01c821edaccca1780fbe149900f6ed2e5b855e8a6f7bddc2b28628942f3bff63a13f89b8cc26c3c19603a899812a7953c95d1446bf3023c691eb369062b5056fff2b6660b8a0ec98d8a4504af94dc24ff1ffb10537a89dd25b8a3c35007c1396d9fad096246832a7657984de550e36e868169ee27dd6632ee57a80f612c082c80d2cbecce6e2c0b7f7b4315f24151c20a80c4367fb53c308184463faa5591d276411ad6176e8436253d5491c3c90e0f2442474f5b758a9ae2e6f24c6fa610396089adbcf0143f58a8a9f6141c1d394f808da5bdc2e50000000000000000000613161d232e", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 35, + "comment": "signature that takes 39 iteration(s)", + "msg": "7515000000000000000000000000000000000000000000000000000000000000", + "sig": "c3304e029959e6b7ba4e9ef5bfec78bb36d08a2becbc4fe162d90926f2cfbeeb79eed7b76501a926d95293e35d3331c30c399330fac466a6c8499289b4633db15de3ff90c04ed672a4b913c96bb3d86c77dcd8c47391927a37e95ad26a6e8f04a87e384671f1821ee21171e3505dbd359b603521a216c467019508b591eb7e3e00b192af3e569add7e67f827f0fe056c53a23fcdb3d927e2f1fb7b3c3e360b634ecdc124f34a52db96dc3a3ac9238355d65f8a6f6650ae0ed2447009a3f940d37ba4c269045e98b26fcefb7039fc71a05f2cca90d5a9616f37427997f299a1e4dd9ab8bd9c1eb6433a3fe3a58662f37cbcfb4537adfe9c330b256991c55af4035edac7b298f8cfa821a0f21d4dc10023c12bafd86bb61a65bd9f7fee332d372cf227a67c8edeefaab8bb1ecf58740cf9c5062db241458403a344852b201298bcc816b0197ee92eb4489cb60ca20b1b6182c492995329aad2c3a5ebb1a003ba0d2d4674c019f974a329ae0328a44bba4b959509780016b71f89cc9fc48b30b11af86a6bbef213c1182729bb9e1c78372c5b85b898bda52a9260a9aec8c616650e1817b593cd0b82433cf2c4ab09baf9756af271abf4305e976fa97cf15749a316dcc24eb3087c447cbf975be71f29bef82ade63c40affed1109acc66d5e2126268a8c0490dbe3073e8d6e1d9427159b3e62122686538fde5b6712850fb89afaf222b9ee881026f21e86fa4209137427fb53bd70fbe58bf1b3e1347c0996fa4f21941bc691d981880d1ea39ea26bf6f2dca7e034475df70b88bf94318df9678a1fd0f1686950ed80cca56b7f511a68c0a5b374e5bff80e0084eb7e356d26bca683826c8a1c5c494a8aefdf814858cb055711cdce3ee41a000b6aee2d5d17c7d58c99ea1a11b7f7ac20ce4663b5e57e95ee72f8114d8e842df0537ef08d5598ea34be1fed1c8991b9a3a1481286402076db898987213b3dd8735d180cfeb0530e9a4c469eb8ecd049c5f0d8ca6b38ab37ef0f1a201bed54c3e5727d7360adecccd8522bb80e74b2228c0e538a36481e43f24a9dbbc7b06420983f9058254870d0ce6fad673a62e168165467b3c899896315fe62ddcb5cc5e82942d27ac0d6475977b4f37f765f85c2e7626f7f348260152efbe49f9521b88d41164edcd41e004c7c101ac5467d59947af5cb4f080fc528dc209d900e920a85262a2ee830d33c8e7af3a444850bb20e5accfe3513215ee9eed19d7b404dc0807414cd59b7365cf95a16fa1391d3025176738b40d0465063c05c572dae80fa1ae804dd6ea3ba13716e89e8984e247389d47ca043a761c0883dc68af4ec8d9cb01e8d2ecea6fce936c7c28a7dbd1f351be8e0b9fce5aca185cc9777aa08cff21f5008b68b7aadd983a856e5d9485c81bf86f08f7ea35acf7c0afda1d44d8ec411110ad4814cb0dfd86661c542c560cdf911c6829688f9f305b60b3de3bc22eedbd7836cf79abda8639ffe93f203e799b07b02297aab3031adddaf06c205286c247e44453b7d983323ee1f397ef8e6023fb7faf4bf511ab83ecc976a5dc8b6ab1a6d798cd6e4cc2223694ef74e439c935e27e23de4cacd6869b70ebce81787df8e1063d9a0082aa48461f0d2b3f5fcac025a1f6b1023e9f13ddf79696e601e4f26d288720986ad9ea3598b0651e12769689b6171f16ab65ec27af2d041b09ab1f19884e2c5866650ec1f4b7033090f564e2b1e660ecb1b3853e12247ec964b469c9222fe851be10cddc3b5e1d17b63019e696ba002fede98d7baeaa5d14360ea01515d49065cc0037f67924ec5abd5d0fc2f8d70f9c92b4c02dae4e298dadc923123a1234fb7f2d6b16e745d01c69b8d05cfa49980d44069550efb4ae4813a91aaba49779bf99d00cd1aabc03b023ddea283b62437a9eb984956611f5553cba5a1f0a47f6287129551951820af360a536de32a462b85eabadbff05b062bc73ecba0a5259aacad8a0d014a6a741e44e8654ab51eeb6ed295ab7d2b533db65309d393be413befefe0e3905ea28cd62d0d1c9a4503173f52079ae739227d6b1038680333c71a36aeb46e7fe63cc565da2b5ea862a40533a8708b6caabe549aacb9b03b95384f5cd1ba19a8e05930bc4be52e81ed37f6fdb0aaa683f16b8180439f7f23b8c9c2fc63806ca7317a533cae23c626d18c1858442baabd3766f29f0864330d6db45ce1b11fe5a647d7d36d305e3a1c2b1edbd69eef733287037970788f5b39300619986a34b25cbac2f715a144b77cf87b15d2869672cd14997d474d3997de266a7972b6e097bcd0557c8c73843bcaec6779f1574272370a0cc97c6159cdc35c55af1fca49c04b1f0a4081d35efcfa430d167072e2103bf1b74017e888e289305fe9b60df191243621fead191bad5bf198c3cfbdc8e101e1f6295f0f68e99878bf5b52e52e32d521d24909f7c6f2ca546ea88ae037f28f4447cd1e15dbb3affddcc64b5fb050467e8ac5fd5ddfe5225f82a29c74333ec6f3ee7bc7266b899a5609d0dc7a71b668d0f6ee47cd47eb1cfae4e3435be1288e5ab9ca9bd92a447fc8b7a7583435cc04f668ed4bbbc9da9d34d91e92ff222ab616ab26956dabbaa5366e3dab272acf75851803c183b165023d1761f017e0a1a8e3e99e29ee8cf50361a03a5146ae92eb29fad6bd6f457b54fcf48115f91fb2a0760c9b2f8af77c622b18c0aba4714dc37aca5a269621396105f8c4975c3ab7c0f80aa90f4510109ae250600c2b1a6f3274a6eee451e19fbce34f371f8dff7ffec59238f87436253ba145dd163af8edd0c8f8e97dd4a2e93f11a300f81b7d3eb1c86f6e41445901ab8efae10c2396598060992bab0fc2aef0a1d0dbecf33c387b77369d8edfce5475131465c5d014d871600e45a414ec63425cf44432e67d86282577355910fe2b3f1bd24d52289623e4a97f59980ad7dbbad95fb803627978e01e9d7061fdbbf00608f802690ac593442e989948b267601bc218f04ea3ea35b20dc910738818078295b26d1dac60382266a64dbd1c6f7e8de50bdb11e6f7da99fe22c231da3dc52139df05b15e4ae12c274fb2aa2fa4f00236a732124eccf699d9df4e88be06e2b1fa57151f361bc3f899dd0bdb35dc36e8eddbf6b10b6edbabdfefe968e362a1ee44c40784fbabe2bf3101a44756c0aaaf45a87705ac5290f1fadfcf8a8d8544014587a88aac922882fef8556db2d587ce3f9c6a48cbcffeb682f3fdd8b9e6eaf45e0251964d0355c67882942cd6f9d0fa95c97ad53b401bf348630d484fa4a38a3cd647c80ba4ff99b782caf1a132024b3613930c8002a0372af979ca367b47d0ce33821abfd12990d1adbc124b08de1c535e5039d87cdda29433593dd6697a4d33c812d96a8b502b2321bc5e045b0e91567e8e42e97be10cde96817c4c17f0dd255fea6a4de09b359d68e535599c71208ffc429a4507d32b8d5427abcf4e1069dcd8fbd89fc8c97b993b0af1db772a5620d01c81fb01f900b2774dbdeb288a1541a614bd5e0c1d04f0245258dad5f4546f319ad695fc0b9cd08b74922b648541c0457947e52a794bffc640572130c0262369c16aee59b5408023ad015f747a8251f667b84885563114dcc1cba1f2bc772f24ea86e6a6aa38b2af886d81a9cdd5ce3422ff238e6ac6f07c8b96b6ee9645be431baaee72969922f2193c085ef04dce50d6ba7054c5c2eec4e8ad6dcf8a95555a2dbb73020ec31a8e091b1ccc86267825be7c916248bde7cdf0cd7ef07c926b5cba9516a1a6f0b7224cfae79389957827a4c380e081716ac4aa27b2f81f4aa8426bfef404535e86eba668ff51f4c5b478b8dc3ab71a6349a8e3c2e28ecdbeb275eb07d671678179fc4f5002c83dbd8ca8bee9e04ce6abbe505398f58599481243552b3b54bfafca32abaeb05dd5df26f124b13a430e16e1eb41f20ac5981842ddc8d218ff65d69a7c5e4d2b34d130f0cc6a9ce4720ff52d2e4c3bb3abab6554bcb1938494b080cb164151d746182c27fa4015195f68f7a6ff536534537712ceaa98854f1be88fb902b1ee9388405b467baf960ad9a7115f61e71ec8666807f4521d5a436b7b4a2f6bf22711e253633d0b293775ef550b4d0fb084c36220067891ec7de5e16d0106bd10cc7c9ab8cfa46316c426ebda58ae11ba7d7e37396c2037f42664e09e4f95158a59e463900a55be6157288b3c87934f26278bba364014e3e74427eba15274cf832049da4b58d280bde1ff84a7dcd5593fc48f4661de021b1b727dfaf1783cd1b83ffeaeb1b53ddc34f51adb4697f48df2b7f0ac8df45e6e72a38a2030583877aa9871d282cdee2c88ccd162bbe1f90562403938d55acb8df04aabc1b3b45b98ea17fbb795b6156f8d0cd9dd02f887cb28ed04464fa2cc5560bfb9f0843eedfbbc2fe1fef61317c3b422b105fb07fc8a916818987920406db2d2d993ba3f56e51ddb7218813183d4ff202d6cdfc92f6e3acc2af6bdd3bc75d070ef1f2898a54aa5d467ce831f2af74e2075fe543b89e96fd546bb03a06d6bb7ece0670b391127bdbb41f96c0b1839da212d8bc3bb7ff6d9c22de0d4bf07650000078b0e40005527d848a92bb07a0f20e11316c72b8c6c7cbdb1348719607232db3d1fbfd214151575e7d87acb6dbe400000000000000000000000000070a14181f2a", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 36, + "comment": "signature that takes 40 iteration(s)", + "msg": "0b23000000000000000000000000000000000000000000000000000000000000", + "sig": "3d0f7f815df664c39fd42e0b8409b60187d3d7e0b32f7132eb739aa56184482a67d2834185bb705068f6b525676aff87445bfa3b53862b716ee41b95a565b5eeed7a7e07c873b22d48111a525d46e08338f877b5ac39a52b92437d378045acd64c52de02158015a57ca60754d5a0ac7ffad026d90b3c7ed8a2b05f4250842c7d6263ed1813c8ff92bebdf9a8a799beca22c1dcc19530cd3bc4e7c9b562a093987a0b663b0d75e6713cc512d7568dd84035b5e3a2cdb2d81f796ce832a8360939e3f642e0b605df54c5d521bf282902e593cf6fde287d4549a3a7b958b6cce8ee6095db422584df359fbb243c1025c4159cec357712224f66a74344acf0415198b91e66c0e6d765d2a203b33837a95deb4fcbac755c442d4fb7d56c819fe000d3b1928c97b18bcdee4af3a261804c317fb20e926dabd9c4a28decbd264d70a4a37c1e68473c16a34ae3b708f23c9b927451f9e6ceb565d5b3ec25408ece9dbd0cad318f7774e691067d353d01a5974ab3531c1b3d2e5957b50dacb3415ae10784b56db2247538490d46521ce0c442833f08a8be8d8785c4cc10fd32f81c1f15bbe9b5aef3b6474aa9351fed8f452480322016b757ce348d3d64b50bcaf3cc7e279801b6200526be95b2ee11308cc831e1a6e2b06ed7585062184699774d3d7d4ed0d69196450b0f07d13d042a2c985cfde48692b01606fea78daff716f1264858db1a0d495837048ee4bf8c0e341dfe340d3d854dbe61e77aaa974ffe8d75a716b0e6d9008a7213cda37dad64111a970ca999a257022275929a85a5ab04ad922e1a7d80bdfd683225133b0e575ddd139d9b6c792d4aa72f6e387a34ef8334f48ade8cf6700cd875490b9242df1c27d5a18473b5c60f1d3fa643dff98ba934fbd03e01bf06737d85d691448cbbcae356b9ed57737279a03f00cf1899082677900def4fedb0fa3a9bfae9c3589a116ab4ca4b8d14374c6ea7b9d61e7fe5124fa0b21c9ed26bb080bee74949be011d7b743eb21639d5eff564721fe64b10f00795e854e2d35bb99c810aa748f1acbac759dceaf5684580c9e6302e2c7be0c03404da2b273948db1f31c69bc91efc14285491f817a7ca71145c1ebd8cb27a21f323f834b2f536070cc410c47d98ad817d5d53088f124540417cd279fa43ff2f5eaee6991250adf0b1a70cb5c450ddadf4591eb9c22bc2a8445c44ccf8a9f314d667813b8d399b975fc19c61a05e1bff417c799f745203351a274a0515a5cd72fb1dc3174a17c459643fd29024c457abec8f947a447b2a55a144c59af4431343f803e75a57eccb7ec3d165be526a5de953e9e13cdd3e552f572737d232ce13f3a20a2517b2cb33a50ececbfcfdd54ce8c14a3ef29a9a917be8409a31ec33ef31040a5d18e720a399e6b7f078841534e1304880c9fb9a466f10a6f3fe71e45c3e6a87faf9331a39b995a096ce7e8be9211af6afdc9d7267c9aca5cf3dba5b984e78e2f009c161d483385609b50eea31fec821da6d51852bec1cf0a3431c09cf9fe9ec7ec1520b64cada3530b0f26db7dc7ae59f02d18cf60d851b5eb812bdc0b2be9f4db821a4f6e5b6b0a53ea779ba26137e81124bd441f50aa0dce7f25662d5fcba158d2402a7c1525241e178c73e28dad146743f2dfcf6acd97da4dcd81232e90a9178af64e89872cd3ec31e0c49676366355eb516f1744fca4291ef6d0d4c061c2ac3cb34401b3a9604b6aa939b0f2d2bbe443df962fe61e350efd0ffeea025460e2d4f5377c24f8db8adddd5d5de73888afa636411cb5aab098787ca786f73858e2602fc7446aee613823ddbf46d83cb13faa41d12bd41c2a6fe4fe4f5872f15fac2da8deeb7b54c0833cee0f3958cda91522a42110b5cd77aa77ad6e34d2a51bc1e109ae8ac0e63800b5b0cf477acec5ac787d8ff91aa9f73322b6c94d486f3e94bf4a9dc8eb1ebff80def0aa86f119f3e37c61c4bcf7b483e8b35773397425a6f4186b9f32f32bd37c63635f1e49a8da3ee5b12114dfc2b1a9788d3bb5ab07210e3d5455196d02202813c48303648bf6961a2cfa0f7004cd6173bc2b90fc0277122daa026b94a492874a95e5c4dece947ec8835bc9a7828b9615bc6de0636126770d0be74a8faed95bf9da614dafc58d3e4d214ec7f62d2f11c944ddf3cafd3274aafecb366b85cb5b8eb56ab12eebd16280deb70805e740034a280071efaecaadbfd32198ccabeb3a3c5ec15fab6eb9ab01de390ae0d76aaed650bd4e865a006744633cb10078f643b02152b9fbdb6334bdcc6dc2083d624ab9694224918c1ab275cf817d1204bdb3fb2d73e43602e6e02b1a3f1e7a31bb9447aa4f35f769603b47c32cb34778e1c13695f28959ca25489c08a5452fdcf56a685ff1ca77f25f8689fcd9cf6c7a2287f04f0895149f1cd9b8e2963b14c136403df7618612105d43e2224851555c4aa55d2dbac5ff0fce0af0be2b637b41f625f3de9944fad33e30463d3861017c2996a814c18b257f8d947ab09740605ab40b2764d7a82c368bbd4d9457eba6778f3cf0a63b8d3b94df91dea7809b8573cf00a6e96af1754fc7f0cccee04ed64230f0db9cccbf2bad09af509b74fc6db81bb30377bf11b35c42ce9f3ed2f95c487ba6d88a31ce77668f5e9720c497153024c92dfded2ae4e967b1a5c8dc1b05a8f9efe9cb646d5b0bfa4047dd3f120c7adb5c4496824e68b34138e0eccb2b1eb72b32d72f7f8f83bd95ba384bd9a8b267037ef62532687c10a0316d657895c2a1350c0af9db0773760e36cf5ec22d98b0abe4c528deb3c6ea8f661a909aee5190b9006e4f34fd26d92d4f4315cea2d6a908e4e597cca6a4930fe28bbaa8dbab549c12516707552ba07612000b99d5266ffa583709f531ff2031d1b93b5264a5d0b0869e1de7a19a4a0a0f8b883b382888488133a10c4ef5877013e76609e2b4e243256a2dda313437b7b054dab73cd15f8072d0ebeb61bc4ac5eb1968f23fcee84c69300af0a36bdc65d99f5a044a3ac7997926de34a099b8ffe4fd7e0d2d0966ac7434e44d31127667bf1b65a9392741b1f6bc71feadd1827efb08841e519ba46067da7ff47bb368748cd05dc48635ec4d4032c954683665b11d32ef4c732163eeca2a257fb0c7d372d255bbbbe017044f08fee9ec7f6a9a85f994fc3e111db886b29ff23e78512e9874f5f1dfada017377ea16843c15c199f0d0f70a24641f14da173319dcede7c6ba1046f614bc912aad8d42550408162698583e5103ef8e7aa121967540138e88683ecf16d1fab8f5725175dfca5a9601c9aaf9482c99a14ffac9013d06b0e24b5206b4155715519d8b5866051cdbc9b0364d84a07b9a615aa7e875a4cdfce594b33e1cd851d3eb8c925133999ff6546de4e0eaf9e92f7864237d07c021ebf4a80a979c3a5e667b6ca2671158e94071320e6cff5a778b3874af5c3b806d13c34fc3cd4e4da97df15d129647c14b717c437485168ffa4b11c7667dcc6bac22dbea8df1945f5f8692aab1a976810868ac5244958f2faa92f0c652330b0dc9c0b6a480df2c69ca2454ec86efa4c2d2c6bb3e4c604cc895fd44da5d61067f032cb72cab9174dcbc833b724e1051a7b2e258a2e4401b5be4f35625ab16e8d00f3c422865a1ed70de89085af53fa53b06262a1d0891213cbafd3e1be081ebc55c2cc501f0076dc0b0b64b543743747dd7465fd07e822346d5a08ed2cb6cec8ae67261dcdb6e34bdadca60385a8dda1fa71619bede51a87891b8984c62f9b20d0469bfdb1e29d5b248d67108f98f45208d6e9ebd56694d3c049f97a753d2389d2cb021699d597d5a786753dc6e5e5997f644c2842337e523af9d66f5b916b858a472978ad8df14d05e3843e15c8c400de938d9d6070c2ade1cccba39e581eb349b8b04f252c6afea402fa3e88cf32f46ca7af2feaa71da329749e389fd7c1fdd08e021c2c5c32ec1b3763454a63f4d9951ec32425b0a53a3d719cf9122c4b71afba1e4aeae273915a67c9938241b6feab4076b5cc16527e4a8d5902a11329cd725eb67264416f227efb5bb20fa59619354274e26208334c3a378e4a13165e67b559fa8400aadf09c334cbe808124d45adbcabb41049c64e4c211320cc41ec9e9129ff5be9f815ff9323d9924b79e691c801f626544fab47c223d2b82b42bfcc82197cba3f5bf013a06dcc7e1011dbd1e89bb68098311c8f6e998f48eda82cc24afb1cdcbf1d6538823c92f25f45d8919bd1fb8c4a5fee7109ac8bb2cae76b35a9f6429e165292b5a0f0d3db6ba60015cab94a49a781a2ebfce784341172f9ea256785dc233e6ec90ba756784c6d52688415586bf77456d8f45ceae5902d41a7cfbbbaf24e88d4daacd8be703113aa6b5597f41c46a2ef85024ae62098a88ce3014d13b9026815a18ec38ae1bf78f6b8abb6c2556ccd83a9c3b0500b13174f5d52f663acfce4892111a245a46efff636e8552f634148e7d1865b070072a9e9ef986c7d5710599d850f463533b7079104dff25abef2e13fbda6c2ea5746deb9e5c4ec50325f50a19362d7fc3d9335c367e096623a40e5e873ac05651086f802317ab818ca04455f7b85a6cbdc2b41a2d6f23536b0b90119616e989cb9192d479cd2f1414e578ee8000000000000000000000000000000000000000000070c10171d22", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 37, + "comment": "signature that takes 41 iteration(s)", + "msg": "7504000000000000000000000000000000000000000000000000000000000000", + "sig": "fe05190307b3c178fe84a59f36ce2fb27f95131d923be19a14049ab595b7893a79cff8e1fce183ad1efa99feffca7bf8f441ae4c8fbefa803a0b6513d81e4d82dd1c44e5b5fe911b5f09b47d9f6e5cd37e22d6eb7f8fdab3591c714a68829678b4eb25b50bfc012c93e4b553ec942b43165c82e64874c312a29e870644285fc66c7b52c7a9ac9cb583895df9d33a2e4d61f4cddf75e735f4f406fcdcd9a916ecb9042d2cc52bd1849a09c042af6aaf7339b9ed6768df14e59a719939b2b3168b112a590e48773412fb4cf26c1fab25f36e29f21d82aa1632a7d610fc34dded48dc589fdd5fb3967e5a691c9941f4a4a9e2e9b5fed4a93dca60599626d7df865c3bc980b9fb4cb4f81be8ad600871518401d82575ea9e976af0ae28232f6783ed09dfd2adaf75d335ffd402378c20c91d60b8146e9d605217945580e501d2edfe626b094066df77f325e6ba5a54e19de6bb45a6db689a08ca3d4b28a2fcc454527f4bb8cb89507b72d42cbe45bb72977a734db9e7bc49b87fd185471a30a858d4b7e291029d7911854e9509298671378b6757b76d896bf844aaf11ae2cb6b090e012e1063cbdee969c63d49e70e776c8c72c192bd0656633ae83772363f9439eec8b1f72a31873df3d46cf03b202cab1360598886542ee06585225b21f3489130640532421c989cbcab92108f0844bb34a59de145ac8651862202033050efc553a9335ba15858a51b7585cf345d8518cd547f8739ff3c95b16130a5473b6f4b32edc1f673154981e95d439519b90dd96e64b22f710b5a502d8dac2adde2f168c7a4ffb51dc950250cc207abe4cfe6efcabddd5b074dc0491aba4c8fbf8f85e62ac4ce181e782ceb0664d1f10776678c74cb00ff742e91279faa64fe6ae22855a06e3a3a278b04f5ea28367a84afd818891c00909838dbd482ed6611f9031e071a25b5e7227106efdc53f5e524141b71bc3dffeb069349f7c1d3a0a39f7c345d17f2b5c7a7a5645475e2057e1f551dfffe0e43ba63f2503532bbeba746de9a071a581cfe19ff9ce1907fe2539ec33ac7c9e7713a714ddc3eecfd9a68dfe81bd7a16e05fc99f7d641f8adc1bc896c42210e049bcacbdff65e15a302cc57918490204c683f0bbefc0d09dd1a7289213f39b3aa07fc4b5c9c6094859e5f1e658b85f58859a1c58417d39d1815dbbfa8cbc03339aa474767506d1dc9d3faec1b5257485fe836f0f8c05ccda7bc71bd126d3de6dd4c24faa1bfc118b3e7971c1ae05ced4ae210bd7f61d1996735c56d6fb1189bf7a4a85c2c75a3fd8d726a31692f6c57574332d9723a23dd7aa83836b4143fba5e5bb415695a5f77b981bb9e0f50f3a07935bf316e3ec51e476610bad5c31bc68f26500baca63ffc93a924453bcec94c2e1ae503210c2108624d97c47e922a27dcc680c0723e43d275f357a691357ff7c192987b198dba4ed82f74aac3b340e73e1d887fb71755a97ce72ffb38d3c204a2fc227dfa6febb305951b6a7c84017b5ac827c06acd5a11653df27ad927b539af41e38ac97452c877f2945dd7624bb37cf59f2ca2c4295c6683c5bd8be3dfedb3dc71267e6c823106ab00195160e8c9db811550a807b531d8e31d0f4e13ae0936a3c02312e334fa5246f9eafaf79c2782c502ff562a8c2dbf1b32c62d904fc62171eac3f394e365f7e00278f96dc59e6f6ff8cbe6e74643ab5a5e554fbebbb6af3115d914d6ffca0619f1c870040f8c9fadd4eff4455de64957317888e0aca04d452cc8506d0ac26dfe538df76a1761cc48acb103181f42cde489f424e4bf2f5aa86e5d0b7192f559d4afb0886ff3e1e3306e234f80af57a067252f7e89689a9416ee9f7b0c4392e86aeddefcf0e06f6f35d068ebc15d6a8f56e1b80169fd2184b8ca574719c0a155cfec2aa38c9f8cdfb339c24d9a525639b4c4b895e84794c148d5be82ae59b6ccac97ea157e96f03e573fbf826273167cce27be7fc8b921de850bc53fcdc35219223ac3b03b1f434c5ba11a20deaa1164781c7d14fb0d6dfff909ad97df4da16a648dca7f8d0c5b954600b027df9fca9051a26884513799dcd7a3ea1ecad9e2f0080a26dcd3e9a5531be456bd6ce40a9753c607ebc3cc22bc9871ae7588cf8aab7760e5e21a8f4e98e87544fc85525ee130bab060c02f6262474e4a05c50b660bffce5bcba156391cd2c1321d17605e32f7333182d9d31835b2f9ef2e0b064f9cd678d32a998912be023a102216fd29afcc9722eb827c38fae1742d10e6eb7939e85988de6c4a2c7a39eebe16647e59970acd67bb7c7f42dd003b18e131cdd18940f9220b3e8ec7b6191612e5eb2d5f191b13f68094ee204bab57cec4b9e8cabe35993bf48600751d08782b0ca58e4f2832f66dc45c922eb2765185f4656b2e06304f26281f60aef0281a44919bbb32015cdb573c20bdec136cba26edab9b4e5bd1c19a06ae460f67c1d32ad90d4516b0ac6307a50030615231449df1384124c9cad8466b01e899cb65eaac027fd4a22a0bfcb70e47dd9e01f24f41d09fcc8e2ce9d7c79eccd8b8992d050147a26439cdb3f746a4f3c8cb51e3ff6e8c2bbc5a26cb797265b8693ec47135f006c08ce63b8596b2ce5f7b51b7b997dc3bff82213213347889cc0bcdc47d8d311030f5c8b7b55fab5dededdec8e7dec50a3afe32f8974a2ceb204acc1e2c3d9bdb61fc90262b88904491331bd63845caf90ecb9a2cf5477c782bbb213328242c27ed9ef3a5c4e561643ae4084e31c3df1a418bf3f5481a8c7448ebe5ab51dd0f3ba00f71f59a59b531b000d8fb1c372e01991524079de326746615f5f3451d483903e20a3bbb70d255b85c004120c68aa8969d911c825399f9df2c7ba467fb7b08c182034c160e393fdc5648f44fbca6f0f10cc3361776f35c4f89f61a2c8243f957307e21d9b3cbe628c91f82f119e16c4239d858a667b6d4df1adb6c500b94543441441adc0616400ac9f312d1997efcf40885d0e0a6ad7832d1624580d94bac2a4680498c92159657d7606ff04195d69eae06cda609080ba16cb0eb1e38262bad5024aabd87a732d5c665356de842a1039e9b4c215be45a39bce4ba01204c47c7d72b09823c87bec9ab0324855261b17efeb231b87011010ed84f49a33432df5c247321f70ee93a84dbbfe7425b4d8978376c9a79a96dbcb16dcb52b05f6b5e9f41c0bc97f39a2b2ede586a6eb9115b1a08d88bc665fb37667bbca06239d36c5311d1f0f3efc5497af69cff6209ea92c1ee400667a6ae3ae471adedbabb2629c5589305afb2574f323c575720096db40b407884e89dedfef229da31501fcd6f3fd81403c00ff9116f2c9018c688e9f87f8cfc6c91ca556d2b7ad20970b66e150f7363da22b4a8b7b374c6952ccef30fb5062576aa7ff39370066b1ef847445791efeeb39b1763e8f385d7c8dcad9bfea58ccc19cef8e64fa40602d209a6a7b9d65b013f481139c6cf5eefcb90ebc0be487a024a4bf48116a29f213ebda7c4741fa228a6aa8fdc3d4c78586643c20c7332c926594bd10d238d7eeeb9a09281f87740ed00909a8426b5a7b57c77eda274dc4cb408c0a16ff2521cb6d59dc0aeb8bc74dc677d31db123e4df6913865625b2d2e40fc31bf34690ce41dd561532199094b94482e5853091f8fd78337f72dc50b9959f3d875c030367f6cc7a8ee449383a8e525bc653c31878f57a69225dfd0919cc8d347787db8ab7a76288de3ed78a466750a8391ef7dafbf6cfca8bb644dee21ee576d9b1a0f6916f537d2920690eed8b959497b3441bf6e9a05d935a3592be0195156085ac204909619a570964b90ad9ee4afe604e19c1277aa21aa9bb6a0738763b0b220e636455ed73d4da20c137ff7f10692db51e8d3fbb07da60bf658bff6ceb0907cc1efac9177702e09b694a1317003fc848b4914ac20bcc701fb2cd1f58709c275f1b3c839c2019fb564a610489d4ef2f833e70957aee616fa316d0217bb1cada518a5f4ad8d86803141ae180358cc16d3b63ea165f1578b07236b026734791b690645de7ef29df5ae81d5254bc24213a6a26799ca6e5c571b690fc50ede7c79a547d7a2b615b6c6a24b377e10d4b45f8827fa54f4b40a27b1eba16385e4d6332c29b24d3412780c117e49bc8675376fd4d6e389ae29f30425dfc6f1c744a1edefbcca35f4f0b4630ed1cd887f1348c38dd8f8d71441ab63bdb1fb9d6379d7622af23489c1e35e726592ea44b80194ad1d929d39c7951d071e3a5841075f830f9e5b9c38a8e7379d036aec2b7730db766ab9b3eb2294b0a2647915ec9c8bdc142e47ef22a7953b80d61188b9b71d720e03b313e97f835c69b78d8f37b0db67d02fb2b0aa322c04375eef24ba6277af79aac4a597d44905c736c2e7d57f89dc791150f0cae240d8270f9a421feec641a24d8ebb8ad06663867c0ea93fb5dc653c27a7298b8b814110f3bae23db3598251ba1b3a91bee607c889a9e455ab04c0cd84d84f642ae809cb09088a6c9eab192b51ea5765f669082800321e82ca2fc9a1ba3d592a357b143d29d5dca9e9903dace7e3699375d21d7260768ce5d6f351090cfd2fce2659788c9ae2f7fb0215222f3e6985aceaf40d575da7bbda24434d565ba3d7447fb0d5dc36515259fe0000000000000000000000000000000711171e2328", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 38, + "comment": "signature that takes 42 iteration(s)", + "msg": "f105000000000000000000000000000000000000000000000000000000000000", + "sig": "1217e9d5818e6f067be5d3f7e86622c2118c2a5cc0c45b58bf5f8e62a834e60a52efc3c922f9fbf25ed3ac7fe1565f1d62f2562b39554205615a19f809040d25565919f28f8c0ef319b4dc89049cbd69eb54099acad2167f396ed1cf31f2d87a0141807883644211889c571c4f55ded7c5d8654eb069e5b05dbfd3317a433632523117c3f2e35a1638633bc47704c6c640f1980cab109f2dcf5e6a9b0fd509c296560a17a4b4431566a4f04e58b8cfa7bc221973cb90ebf7df86a8dc273dbba0bed62ba36320198b75f18779002ebb5ed5c44ef722f850fdb656e5b4565234694a45c2bf65510905950de82145f4e1cac5b01c6a03017ac4c21a068d6f4462b6e2aab754ce231dde7e21d06daacd2cd9d54c225c877235e81ccc85b9649fcf241fcb9ca4294ee852f52812661c23ee796a28414d0846efd3e88a0250db787ec04368381d5a769c364ef51fd55feac6d51ee0a9048e4076bbc57851afdad4368e3b1a90db660d908084ee45f98cdeac8b321a99cd2cd7538cbc3a364eca4fb6003bf6aa681b93e207d252eeea027c9c14199cb15b4cc0e4bc6e59547b6673ae37e02794b8ca1aa16cb9501175b02154b45083f6c34e39cdf47c1548d303550d9e7b0ae083132b67708d228f7174f67561bdf230063bdbf3af4a11bf0330e90a0ef2d0e6c1410e8197ca8a5e892aac94b78da6c33dd220a3bc6752729c564d3670a9c127b88018d46e58062c9317982ed91f53dfce78f958508ca11515b5072526751a4b8a5e8066a86a4e97f540721372f1960b1d3e25e89d54e75ee14bfc2f1b9501195cf8f20d6add1a32d0c936f1fc351487afec12501c0bc1bfc7500076a9d50c2b1c4129b8d0438cb8334144906039dc1c5d97c88117c456e6e8f66dd13e9f0d4fa3c5db1f0e529071ae4d1c4c5053548b43d60bd6d7eabc2ef866e26bb809908bd90c359812ef913cd92eba8a09380d447c54594ca768ffef320fee5c7d2695585ae26423ec09d3421cf46b51170d7d64eea5c668613d5739baa160ecb26a8502422de2b10a9bf1d51526caeb8791195d8bbb45a498e1d5b3ce38f12841f1f47028c95be9ada9aeae76f3ed2e3f82f96beb319ff41bbafca29e553977c10d422006981dea385e6189a9c63168116f97fcd88a78e13bac20cdef4e3c5feacae81a43df02ce7ab2ee1a8effdbc524bc55ccba3192f6f0a794a3b8ab1d0eac8640ee4a8a9cde0110ee9557815ea16f20dcc515f919eb3ed722c8245783ed374a91b57c4825e7d0887b63aaa39688014e929a46619a0c5c2e413f2950467b6398072d3cf70a636b62439e80e8ed04d24aef6c8c8ec3e3aef68bde6869614bf30125df0889b1a903c9e930665e314917c416ca3ac2fc9bf060419f690e97843beb7f6b27d02d43d3c9427f0697892ab2b820d2ef0a9c319990ef6bbe7f1d0f3c4cd0c827699b37c14f6f28426340e6d79bc7783aab36084bdaafb536d1ae4edc8f9d1d0188eebd0c3dab59f8c897ce73c8f3e165c2809dbd45972483984270ed76a6539bb08630fd5e8b2532051aab0c9c74e728a52af4e888adf151556b90d6d1de6a65434a650d21085e0a49a7b9bcdb9e7d4d17071f6d06cc9b3b394b799f2bebeae8e1359ead7a9b565ea5161d77ddb95a682d500784a961ca50857467d3281aff2d40e9ef10c4fdb21a2ebca52dcf46f5fb14bc808d0a0e8f4d308774355fd9fa31f4e5318b6ddd92445efd54fa93641a99d452a6bb6d1d403ea5c37c912dbd74a58590d39168b2f21a9070ff57c408edb188e224660f5c8dff11805e2414257aa6130a90987cd065a3b3bf16671e2d21629f7feb8346ed350521f09cf44576136903e0b07c81cff80550240d5cacbbefac2b67742623c9d3fe822cb4363d38ebd9d59614b08a8736f8236701a107c19e0de8080004b722246578e794929c823c1ad79f2d5a428b6f5aeab8703857a98e1c354ebd797268f88f1c77f17aae27a438e21b25d9580a0d634cba30c5c3ebe31a2692cf1fbab42b3660474daa29a37c357fd2d79dbd0e22aa0946de5ba5335e0deef7b0a4d5ac23eb3538c327e835b2daf74ed77005088ac75b0a08d27609de4c77ad66bbd9958c6b9cd4251ce9d414df8dd111a6bf35ab015cd436d860913a5253896a803b9bd1d2504df18d7224071dc223c506f1edcc96e26f22619acd8616443db41283adb9d1e54b1774ee0300068bb7c959f46a36ba718fe716b3b3945cbe65cf1526cf66a52aeab76b02ff993301cb883e5654ffe3e3bf7763e5b8aaf64f764d10873a6087bc59f9b76741a7c441611272e3244a39c74b8a7fcabaa0b61a387e668f2a99ca35df13f68d77c959b6c607d7e5c9b7d4926de0efdba42864cd4949be8dfa87118cb8821f6236f5e9585226400a6a636086d77dbc71f6856bc715b83cd93e628438e1867f67163ffac23cde81a74dfa8b1e265e562dca1b5a881c85c45a21ab90533732a4606c405c8a04ee00088f000f4e9f33e2912c3d9142a71d2300654467e1be688ec5792efba01bf087bd36d15855dd96c417ba652f0386633c9151e4cf33209d93202f7d71dcdb51cb76a708fa5e23b070f95bcdeb99100555e8a64a6b84dc6d51504bd7ea24593a32223a4f1268d5d986a12bffa3ac548b7854ca02262871f7d20e0708d29ad7a7635c537a6f5569de2bd4a9bf41db3b357a181fc8f3d4277c05c4a2a98d8a0a40eaed01aa4a84e00208bee78c70b13ea5df61dd9dd63cd2ab8899879636ec575a7668bdb35e15cc2f24f8b646fc54049df718288c8c414f3cc1588786f40c0a5d6de7cfbfcf02414055035d6adbc30c3ac0d85fa572b604475ee6ffa09b20ddf23847658c9dd44f29d7e143e4a23e4c4f1751fc74107bdebf45ba1180880eb036c14e71cb2eb71260f3dad56d1cad348616446e01b7e66d64491034bfcd447c1a8570458929ceeefbca84571126691d3dba67994ba84e61fb4fd6b66122bb61a6510e7fa8eb284d1af65d25d5ed756a92dd5eeed49a7e19f9210c783008eb193a24a7d7258f0a89c7391912cd81545233666fe675c51907babe9d24c5d6524f307ab6188bfe5451f23aac9387ed87dfed2348dfe60b3c6d620d0632828cadb5c2f69a4a81855088edc9843fe34841c2c01696b183731f88002f4d0c466afea52b749f317cabd628a74c869e96e1da039f732cb7d15773b71c4d2a1f2178fe7e4f64e007288c5c5e3db21da4517613270e950b21e8d8062384bea6c1f092fb9d0aee11888bdf7065b154a343eefcc94736e5e375d3ead8a1409f41abf4c1c08dccf3b4cbcad8dbc31b593009db4cd25016f90ce177a5e9b96e7cd972e55b2c4e34a08cd75123465a58fc4c34870c787941c5a7f619848a2b0d90f2d55be371f4f47b706322909b45bacfadc6c290f17ee4df30305e04315063a02d5f76f5458b6a22ec1409d634ae43acdcfaa5c3a241a67c4e938b436640815e8c529bd6606ebf282482aa5c384de807c04f0be2668a6816868e28bc5863dad6ff0421b84d35578702d3cad09cff953bb421d260a2c98eec86bba870f545b3d160643463700acf522d665ae38498e57cd399560b41d923f5c2a564067fe85d9eaef21cc0133e91607bbd0fa83dd54404847d82443ce36efde619de2882adc72a79c2a65798f55dc2ef5f67a4edcb871e9d5f2642f36693bff3d694817e308857428e06b42f3681ae08adb354bfd104fa3bc2aa87173a1883aa0f28256ef146d4e1a5fb44eca834cd652d0e42ad8a681cbf24bd0de427b03093f1c0a7b3cf57359d5bfb8ce15e8ec8aaecdfe1b26ab5c78a6a523f2d9a576f4ca43f8365e412664a3d4511a42737a60d7708ed3b11e3bdcd731c07002525b13e0f19a78365bc6cd33e8cdf190a5bca4268e0142ffbb3ded4d3d49d385498b05e4cec7f3b7703307dad2c77ffbf10169cd0e5ed0fbc029b3c3455a94661b9e8138e20c262ff3682babe6a8d97476c01cac2e46fca1d788f6381e0561d3c8ba3da8ea09def32d0bd6262040f4143e82122417801e88d693425b7b243ba19049d275c747eeb96f63fee8d3b62900352fbeee3c367dd9eb1f97386174084c3e7ac78c1204b6032189e5ae1a4635d59a4197e6955139ff9e3b4520fa30b397edfe36f4c947bceba45c8ed8fa289186fa7c7b381c1c9aea249302b5e07c4fddae7270f45188a8193c0917b694be541cf17cf63dfaf99e1dfd98318405bc7909865f941e26cc9c0b70553a49f9b4a41c97a3d09fb49116180564724985b554751526f89a3c931a18fd1355f68f3f23fe9d04a965015f1385f78cd68ec5a91b7fbb2ae85038b3458ed91e82dd966ccc80b8e85243e390a2fb12907110a3f6b02fc851758f32dd82424eaf9621b02d9afd391aa6beeaff717e051f68139efa1d36461f577307b23c885bff1433a4107b184457a6560466183154c02a06ef149da5603363a4fb6f3bcc6a652cd6b6115b83e89299cd853abbd58ab459f487e8ed27a3896d41e47baafe0b497d07888123fc03b54c9090ded58970da8d0b4dd3f5bc9379d78b251abf5f1a02fe0109908533a11aa1ad15beff490ac7f5b666ca5db777d7ef24b71ecfc1d566c999bb0fe535b6bd4d9fe496f96c6e4edfbfd00000000000000000000000000000000000000000005090d141a22", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 39, + "comment": "signature that takes 51 iteration(s)", + "msg": "5f24000000000000000000000000000000000000000000000000000000000000", + "sig": "9cca8adf0460cc52697ce7610c5ce0d876060dedfe1ec0b2cc26b90039987757809cfdcd227828a160c27f96c0b5b395ac34b6184a828a0971dd2c218163558e6e7fb6c0aef05fce80eda92bfd740aab1376cb01595cdeeaad7fa757c0ad9d603295c3fc1b5814e2a8bd33b4ff31425cf46c832d4e1bfee3d02a9fe8804e662ae91ef43a27ddc105e1bc4a279f82b7da4ffa37bac496ed62e6afcec0aad0fab378c5a266b6885eb06f506b7e44a2cc0ad60ceb9a103164757ada2ae9dc50e2a3a5713a7edc673368004c81a98ae72c51374456546198785d61d1d99552a4f942289508c16f61e70d732627238a7dc19c0af92b87c256ac229c1073da067ef8594d0bbad6a5488b1085d4892a64460d32ae6bb3f7d33d15087c6ad9215764e89442e303d3fe68397f958ed67b0c2fcbbfe6cca89fbc5d600cb8c30c32f8299b0d24439f11db2bc8a77b78e010fe3a3fc8e7c9ddf28d20eb922c5498cd4e8aa96c5b9b1f01f79fb2dd03819c7a30d74b7a2fbe43d60a88a7b531b251d2dd675c6f95a76996714756b0b44e87612f19c2f211d16635b6471028672e4b8c570c548a5e80c7685fed950a6edde8ef2db0178def727ea4113749bfeb58cbd085ce897d0f650be44edd3b56afb334335b18ba896a86a13123849ab7ded4ffb7fd33cdb036928882216f399d1e6b778ba6f922aa7536e4ae870230b0befa0c4647b32b44c644a3b7a0adc003211838516c86edc1a91029af654b395adb354bda3fa43a52aedafad8065fb75bfc0d033370e30991e19c1797a75614100ca37b432421b954adc635e489dbe75b7c6c8c55cdce65cbfad6dba32a8313464c43415181327b9921f4375ca72c433f749e55b072a05b831f75c6cc412a773376a4b12f4fe6f09d10387a0a3b77780ed8df0c1f2d74f040d22cfdcb71ddadc6f0c00ceccc2a08a8708389e0f3eae60b6743fed338475acc5f95ca0b437f3a8080897c0d199e17c1a19b98cb3080c0edc38e0e6c469273804d156065dc4538715215f829c771ef039f4acbe0af43b6085e8525e130215f049ce3eee9c753a2fb739874a8a28b45d67a301fe5504daff4c940cbc06cf6be222317e44d1099bdd0016a939cc6fd19f0e9b7f4f55b94b21cafb9faa5212cdb78b4713f5ab58322ade42695c75b06b74659b54632cc43bab1b7f4db55e32e5a3f8b0c68e733a0f6426d2d49ba03b5afa121429db31090153bb262f2407e8d5a2b212374d05f05b95c9d8f29566582f3d202d7c24954c7e98fc586b00ec8f242226835d5c0b6ddb1693142aa49e277b94bd126c9d1ddcf73ad37e9360ee71cd5e19f30caa9bfb0b237f4a5e30cea16a00e68878b6f8d1ef1e0c6d829b73d01c9baca3f146e55c470ee867b5bcb0c161ba873a0fd9a4d9b5c0986c95ba8e6e3c6c8645410542f1cadd83439dd38c94fc792fdcc18512aaad09cdcc50a531f145a29bf40b7a817170a7c1a2aff774f32440c2b8c91182ea1a6ab2b548f068f5032c28629ef241d743d45a690420184c58e17f2acefe355b38a14ed30849862573afb010fb13fbee7dbadd8e0db68c327f0f6f77f323f06e6b6f7f9088a872a1ab151fb6b5c7ef54e2c5eee8d094aca7ad38c9301b3c1e38066c7c7e12cec49688f7209735a5498b1a390a2fb36fdc59408f8e843462874592b8750e15845fed34663b443501235028108c08eff7860da995ba221a39370daba9ee5528eca9930842f042c7907f3b0c8c50d9427e9256e9bf56de25d3cdaddc7475d297c1fd7de6b4e18c7393956871faac45467ca9ef5bae49bb2db203b994a344c2231854d05f053f29a0718ddadf9fc2c4ce38053517888c3a3e58a1258d6019cf4903640400555aa09e6f3d979ca764f64cb75a74b6c12f54ab2e6cc1f6a744636034ff7ac31cc7b2dd8a9ddd521f5c3828db0f74f123160332cc555b285df68bba0bf76bad472e157217184aa6d7d3c4947408f7e71a0c7aabcc5519ef8abfa56b18cf194cb69e38ebf57afa6c776ad12325cdceb1f5d96b2862d403c30174abbff700a107e6aac6ecc80a554c29be4f311a984039723bfc60efddd16d6ef3d2040882d8033c03465d0659787ceaa8d5c2338f437f7c9cf97c902882a5b178dc40acb9934cecdcec16e2a5a4a3992a932e45f577a7dc4cc204655c07374df197a1b93c7942a476c56a9295e123fb2e3de30d8ecc309d58486180c3bf4b9d889fb32a960447797d232ba3a201b013c6d625c61131b528df2499540410bbed33bc761dec3c9bdb01f2bacd119a14886098734a184f558d88344b91e480b456d46e81348ebc5578ea0ac20811b667106015729c9f4809399dcc46d480e89d0f7b253de8b5de6c2e024fa79352f21820ceea66497396eeab80993d4a0ce62b056f8c7c7c7ab938b7fe84427274a298e07f38a4743cb02861f9306ab36cf63686cf22220b179bcb1192b0391db03370b8d79dee6290c0dfa1179be1431678ba31ade9a1fe07b2fe77d1ae47218bd462a23c3457eacf619c07327d9263848146b4c5e3cef0c7fdc9443874f79883ee39c23e432c08695bf30d05bacd7c66ca8fe722fab18c074245d8fba614cf4781f7ca3ed046614006a393fcf509d8632adadeb099fcdb87a316be1e01f08ab6ec485e26ea20187256c31dad0dfec3043ed27a416ef7d21c592005a1c938a4c76d17b58d16001730ad951bcfbe1c761c268cc7618d13ced5445a3f5f1c114030f96bb618cdf3f97cb7a86bc2384945c4b66acf1481b0e280487cdbb7187d6d70035ba4c8235f638823edfba8770d3b587afbcc7d5523e0730b62bd703a762138764db6061829c40cd02b64e6fe74ff8248cf3d9380837358c185a8cd23fe69d2035c37263002b4b25182d68de82665be120329c483eeffa90083e266932666be519833c0088065b905b65fa87087b71f0e7686faf90ac320c02858d3db6e229d7f422b8816980037d9b2b1a19f7faa771fd43403f98d1e423dc3e5ac63e90d7a03cbee04851fa61025b017f6fc65aa319d6311c5ce65bcb5ea49c1345a7286e447351601feb400ce9252789ba8c86c84d98b53fb9fc9a784e71252fd7c979fee27efaa21c1180d287dda8fec742e89ed164cdeba7e049d7cff09729a2ce51c678404e7ef88784e1b90959d58d9aedbdf77c27daa7e6dd64216a4d1a5fb0fd816c6777f1432285e34e400294a21b1df767bf8de430d66a4462617cd4268dfe401812c65259be4b1f100be09860479bc056f2fe2276b8981b6178be861de3badf6297e76872ff7cbb35108c89037702df1966bad37cce6bf82141d918453526921d518d4c6bf2491ce2ecefb139d712abbd1d90de52e17b486a20815dc146732173e583fa1a185a447329e340004dab67af10fc2e9a85c349fb37cf5bb5719c550bdf2e06c471ea784ee06396b2c9e1253a6a6d83280abf9ebc7cefb1bc4ded49881b293cc34fd09b67de7c2b25e2ec16591dee608ccc7d79411399bff9fb8608cef0b87d2709475254eb63751a63852167414cc51f2410ad7fd848158c90c82ff7173142f6056ea432d6eb4a91e119933dbfca056f5636b035038992498b66ee9653d37bd49403db5cd7daca18d1d3515e9381f9edea67dde2717a5b07137d50593dc0b94ecbb91c1f21926caf33e1af87fb8061188408d85337548cfd4cb08bfb8e24802a61c43c0263b1271ab3c02360e16c19c23a641a59df3ba92e6e24139bd4cbd4f342c2638ee7ada58b42677dec2ef4f57cab94bd95862dfacf65fb9028ac2223dcfdf148556951372b4d6f8d38d8d831676c95843394adb32d7990559b7412eb2a72e333519f295bd8a5252310f3e7a42998b2d6d31d44bb072a4f3eed3bc7f4665892396f1c563cc9aa35c7e4ed3bed0892076907020df57838404e162eb3b28956767d71b7fc7377c00882e18925bc57440a367038850e7417f5c7bc4e42af7baa0fc55086a1e3213d188f40d54a8296460decdfddd341cc713beab8a3d7c7752ef45c8ba7adda0a511fb3c28bcf8be5d01b31d72f2c8dc0214b3e25b1702b329d7fa96d1ea15ba669f21756d5bbc36576a93c37aa94eb5a8ceb86fc17f2fdc1522f5b6ca074bf3aea170ede6e74e89f4d444cee9a44ce03c5f2993989af10ed2ef9a7cd40e3eb8a01d20068f65f9766002c7202ce105b0dacee1658f4ee2f0e8e91fe4ca41135136a849e67f998df5bbf9897f8c1818c8f36a79045b17edf5bac1ae0d1c6eb2d73e185bec0d4cc7cebd61f61be28d41178a13ad0b85d653d1a49e9877745d2e0024035b6e2f54eeec23fe5888732695d417aeceb0c4967de64ace7d3db409090fa92fcd0a91c5a695d68980a7e52bf77c932ad2676d193c723ae0185287d249621174efc7ad8fea0e7dae70c7ece2b74a4871407aa2a4decd8084b4df3b2a2ff1d49e9091a2e080c605696dc3b156d603c62b480a03d43fbbe97c00b8534e19b11c6a67d1e66ddae7cbddf2d89077f53ff5a3592b7b114d8e3d4c9957dc0b8197b97af45ef3c3f990a342844089e6224b96f5036233fb1499f458291d7fef706ad9a46c4d47205bef94d3c9723cd7f2a3033607084e30d3d6fc60c112a718b1476b8e21b398d98ced3dfe906174b526975959ede00000000000000000000000000000000000000060a0f131b24", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 40, + "comment": "signature that takes 54 iteration(s)", + "msg": "9f03000000000000000000000000000000000000000000000000000000000000", + "sig": "751f8773a0e4eb9a2913518df24d5d2a1a35d8bd92b6e2171fb43820f034d08e87df2d10fb8b86da69230e6231ffa2419da923fe0d06339558c3e69bd332bd1706b8cb0f662eb8ec576400f2af0091d3411091c0ee4afd6b7e2070925009bd76dc574940d83621f664f107519a59a77971b08ca011798efeebc363b41450bb8c8819e4fe784002ae579867814e6a6392c7fa4964639570b9716a7242f57ac9ee59f3b99e31bfbe2b513db90eebe87b114171903817bfea16d4b5073f4d880821f3a45da7f206a6b7a004992b912ec5d5d13628690b76c19ee3182dc2b74fd7f620aaaff3a028380afea0c92d7280d4b16a652e7753454e781382b559dcc95d05485a11ce45b0fd7390e280ffe9450e61d3c9cad6f63652b769dace89f3d9df3b02c5e1460c7df059b6b1f651324cc38f983dda8ef1789dccd8fb3045969aead0f6cf97e9c55e2172b53f8b43d1c6a4c576ae5b2832ce2b373260d9ead91943b6f437a64c826bc0c0f518226688c734ce088d5da62e8d6d7ecd1674597dcaf2bd52eedde7e6750bc7fb8ee5a784023aebd6ca1c5d627c54ad50a361d0f21aab46a83c8703f823e32e9eb5af3082554172f2b3f9dafdb01b42aa15bbb9f6f0b369b1fa6c703afffff0db8559de5b8d54f9c9b0fdd16103ae5c71900d6869530658c9ae227756f1b9ff4354b10141a18292f9e9c527e8ea6e0db395af07ca104922361f36c7c56b297b5f175a701d3faa988d4281244ac4cf6b54c54eddd896f6ea9340bb8a30e2b1462a231fd3958141b3d946d9d46c035d4a6614209d941273702aa0fc97e4dae314fad58497fb6bb858174c08300a225293c75e8c4ace84345d53d6d90d15dc1780e0b9730f7623a35090409d28dd9aab33e7e87bfc64e8996176fad4f16370ba2fca0d666da4e210ec6384394797004fbc82027171384a82a7034fbf41af22ae0eeb349f41c624f1c51aec6afda131785b368091ce5af0776f469b2afdebd3667fc5e372c17ce14d67cea6610462a74c6fed92b10677026039075aa1ac80003016f0654e5370b16f69486e7d7ac6cccc54527b02b9912a083f40aaac76c61f6a617255e4271c132573cc21417cb86aec5753d67323187a2e115d591dbfdc6c7fc1b13e7d4ac594157090912605ee74614e59f8bfaed0aa3716b15b53cfd83dba8b2a9c5f071e3ffafc9b46c82352b4dca4789ad6d188e372274672e3922bb7389477b9b4c854ea5a4b7b20dda6254c7681f2abf55f9cbf648663623b77d7c6844e5d98ae4de396e0aa8320b2e911398bc90bf7227d0b243179a9bcb887f61b184520175b6e1a0760a2acbb3db79d66055dd015d17d5b1ca2ff7d859a30385dd47456a0790d11570a83a74ae778a8c9a087b3f5b73984e5c5e5bc1ab11a24f1e3f425993228b4d06d61c87e117caa4d3de0e9bb506f3bbdd18b648a850f6fdf2f5e008fbe6368579b186514d4cceb0f73512c936d226a8cef99c763ab74ec87f38e47ebac830f57b79901100abb8b8e54ce99419e523834fbe8b8ec098c616e14eccc1812bf347ef2bcf17ee1cbd3102795ab27b18a01c1f3e8fe9cbfe053ec55faaaa59364dc757efae2b2744fc2c8f392464fb83493ec9b4d4960fcaa6dd9420d77c7a4c4b0275fe9fd215b328d057948f533d0cfbefde1a80096b477f27886b7f80d37e4a270aa6ef9432c5faa1b44d5b2431f925d8865a288fe11b915bae46f2d13aa29caafeae8d0499e32fc21b43e7e6fffaf5cab0322d21e6052023721e851b2e7f2107847e6c4edecec99c4e10dc951c94b17c8c48cdf79b4ad4ec8f78e205d2784553b0ee2a73d1ac7c8889f92c973c90a29a6cc11d356bee150390030aea7908fdd173e7700f01a8f4322fbb03b75852007e671536990b302add831f0d1abcc94b424ac08cbb197ace78315c5648e8dadc90f6071ee21e5a5323c9d0b7320e834a53f34f183e6c467c5999e7133dccd6f623051f5b98abf20b7b6356a0e9d2608b2f00b774468ef17b784173301b5e3866d07b1d9c34a71f11ffb0dc7131722e0ccf153d821f4bc54f5d8caa57f2dcf46552edadd2b9902eb664a668616c08558171e0cf53df6e202cdb96103fae6978addf84d4988f05af52b89cb387a5515c07c5b3bf716b84fd3c533c12bc850975ebd660c47463fccf823fd9eecefe180f5162b6a3059b8684e5278800138a728c4142a1ce6cd0e329aaf3c68c55db00582e7e195b19d88826eefb3efdf03d930e0a28686a92a13a6f77ea30409045df3546b85633b5c10935aa0d35c9fc5001b639a35104f79a4c384a7a57656d1b7ccbcd06f004092ef0584102ca0252806df91188716a01797496348893ba73bb4fa61cd9a699b9c001f6fc1eb04de9343357608cd12ae103434ae6dd30faf45a6528d96f24ceabf34f06dd37b96c71f2d5d75fd3f07881c0d62bbf9cb079152fff4179854dab85b0d051f1f3a09cf376da879647aecf5a30d534a3dd90e6fc1d2a409d58c96101024adf72d6a514f5274d92951cac1238f56a7d6629ba302ea8910925eb79b1c1f3a405d0ab8cc643d0fe28399e7ea5c40c99d2e6e1aa3bfcb4a9aa6518c4c59a792f5e238e2f3e3cc1db3bc7024a91a7168c8fea4d7c7100e8e2a52e2c7f37cf8043c4a1801d2744f1d106e850ddeec17dc1dd02c20d59573c5a064693bbea39bc454daced714e014a5277d3234685d73be268ae211c1e7414da84b75113d6d45164f3eb39e39abcd24961e048f3fa5cac9d6b759248159970cfc0a4b6c199597774f0ec058c8ef6b6a33f3e94dc25eefd66d7f7080280f90052986e7c3fc09ed5cf9564f84ccf9a60a210c3227f4c3ab98cc6c3aaa8494c9c0c6424b6d1a1f0a5c4a12347f3a6c976273c2ed32e148043068b1a791d21fe5c89cb3f920c3e88f78bf3378170e9fff636e2f5e1ffd6a6ec59f1029e7c14ba5735618e5d2a7aac442fd0fc3a9baf78bbc299f5ca22eb3fc58cb7c6c4076ea543a06b95cd56b560911bf8d072d0e59e22c56875cc5303b0919e4946ea1307f2de14d31a75e72e54feb569e85a40e3b3d391cb5c91a11a6c7585efc08bd32fd2fed0e2760435691e89ee7d330e058bb0c1c0f09561e15b9c21004eed9ab3c0c75174559cc3957d08e6f20467339508056f9c66b73c170f91b9cbbf69ad73becfce77360ba7753af3cc9e7a853be4d1c0881454548d5fc7b451a6955d5c2be4d20650bd7f84431b6bb65fd1f4750897ad99c966928b8c6e5bcc53fd7572ac92860496502e35aa164b4d53f733255873c0d6379c5451d08f008aa2a65d43aa0721ea86ad968dd3c8f4f3e4d0f1b6191630f2123a2e8fe137950c253b0cf01b9739423b9ffeb12d4ffd0597a8752d5ce83b4c64f78961de2885658aad82120871d4a44cc25c815f61b50f6418f9fe3bed595a5cddf333ccb98f9a15c1a7913c0c4057df3425f6e19c6cd23f7f37cbc9e5e4dc98098bcd9758ba78da394ec21d4ea9b9e9d5711eb0b19e1ac611b273299447bcbc9ab0dfc1bad528e739265d616f709ec328c42630ce1ea22fc4c5dc3cdb78c632f370e18b83e747d955035b5139d2576917f558edaeb208120973f4d090e2b9e91c7fadead96b493a78bbc9e787e89200ee925bf24bcefca795f137ecdd2b6d4470262acb42ed7eb5b527bd4bd700ca30462f13c4a9bdaa11bb59a6aa79c969d7de9ab00898935712bf0f84def5249168c4c7941fa98ec4d3165a547402df49178e78e92b5b41ee037487847620a7e938a7428e973eb664dd3f01fa25bf7bfd0930440b349c3adb06640590ec2b8093aa5306dc8b5bb60d89d0806e93f1a35ed0661f1e69b68b8f644911756a95115571524edd5804efda23601d0c63b065631fcca6271835cf54a1a1350683d4d195e222289e16c16cc30b1be5890ec1d2fd0e03fda62968bc8abd12648d7cae4126ed5d2120ef810bfcebf5d3a937f7c8fdcf142b757636bfafdd178efc30b4965d011d3ee00122c1a77c1620230e37c0a507b2bb28ec5c41ee648a18743d75666a9e7039655a8be4f2945ae0d303bed68c040b8438251c79dd2e6c18c9c667b82bb36df86abf342c2838faaa4ff32f1893f2af2c629d0ee7fd33a338f50ea21c2011b2ae7c42d5b11764025ec36a0c81b8a001ad8d94f48e6f7e1ab19c6a23848d9bf9eefff4949e117da687d6aa8b74ecc7e5740d7e28520ec2530a1b2947b64a6ee661904d1277a1aa2ae63ac4d00db200838101ccfc03172a5b7ba594ad042f68d0144e429da335e54a662fb21eda9c4e961ad9755bbed869c57484ff45bcc4b419c9ef0dd463447379c9f9d4fda38affabbf5ff0aa61fbf29716849e8426a90cfcd707158c07c2c04c27f9e04356c9d1ccff97c264335770b974746c940e9a9d820f48bf09effac52c0e4b1640b627534624b84ae4e95367aca8d2ed30d05040de8565f81aadad237c182f4b6bc30bcf56736deab0b794347979cfc363c92694b873a27df3ef2921e913fd02d336d66f3db23bf44edc92e6bc3b5d2ca8bc90f5cdcc9ccbb111346e1e360c8ad030cb318bfee4fe5158330ddd775278496b77b742cad30ee6c6d6ee3114c566467707f9196b7bac5f71974779aacd1f4f5f83e4898b922396ce5eaee0e282e353845b8df0000000000000000000000000310191d232b", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 41, + "comment": "sample_in_ball requires 1 SHAKE blocks", + "msg": "0100000000000000000000000000000000000000000000000000000000000000", + "sig": "e1412c0a8930ebd5be73cff29b68c3ad7426551e499553d7cab9b65a984cda37d793cfa5011ef4470dc57bf0c7d1c25449cd23c82868180997ef617a42d425cc5e1dcb6127d3b60e017a9ae1ac7dfe980debb098f6099d4a5d497b0ea1a063f863d484a697f9e4b87652249301455276eaeaae6e5b9c32991bb3a247f5eb6a64049c317a2e262bc9fbebaa53e1203d780aacdf8d8c1df9d104db25002257cfe39c49e88ee0adac298199ee0285aab5966c4decccdd64ff86a76da9fcb17765c10ce7ee8272595b0deccc58c8d89d11b78e56a4cc63b19d7d787988256a277b53ba7d99c1930bbf1cd550acf5c97f6f1b1bbdc6a9cd0c3be66672724e9acd89240987b0b17f9bb38b8b323e21b7df3a056b85cc41288d34707ddc050b8484598ede78ea295774222ef491f0d621509c9361b7c8537a4904e2e5ed1640968fa6dfcd828c8ba6e771f970aca894f0d57cd03ce325f4c3176b818f42f29c8646948b58796542da63ffc905171129418a349c0783ebf5ae14b3fee69492293ad3894345f07eddac036c40ad5215d4827de6a0ea0b4bd2dd86826c7f5c340fd2d62062a41c075259a9ecb3ace3722d3768d5a7d355373e3de4d6f87a408e5bde672f414826a2c6714a706198723d6e41feb39302b155f775bdd01b7cb4925b75aa1d0a0d533a2fbdabf68d03592de2b24a39d2d093fea87ca57e16622e59b46988d7057540a511506c1e7c819d8697564e161fb221de02db05b8715d7e8cb81b96bf41b257fe6c5dbd8ab7e4b6cde8a7e15077b3318c7d6b7c301c0ef33cf1f1c65668ce0106a259a599a4034010f5809fa7e781665d866dec4a5be77e8cd090a324fbd25cc07929b773cd8358d666ed767db22d540829f4bc09c3a60448a23ee40e09ec699c784649331563eb114ec47c8f1731db50761ddd7c972553e9819db31148fb97d3b4c9fbb89af7e87033536455f9fefdf8566b6eb0100040ecd080287da76a7791cb90af6253e701d9705af96b3597596aa58b9b0fdd7689eca35a7aa7c21b71bd80c3921449d3c5c8d9a26bd386b5c4002c8050b6c7f2489bee49b18ba85652d4b528beb21f35c4c9ab1f5e7f5fa4098b2d470be2cda7087c61c4f40e771ac04193ded1c45b0ad787be20acf7c9393671c354dd70e93618bcf89f684c9fb7c8fcbd004b737a65350e912a1945fa6f6f082406526f8b8b4603e171b754a3f571b7933e07bc9971ed2c299c4bbb4293b3282e34fc1244ad5c4c985acd31d4f2eb5b82e5b5e1f00c9be628e0a317885ab6e26aa7667c73c12f541cdf463cd72798cb1f7908d2945a131ca8ac4ba6343bc4fcf7dca98f30b0feade3f0841ee280da51d9501b5ceafccdb8319f9b32df23e74a12b4b61c44b3005ee58160c85302c141dbd6fe0d598b2886824b1bdadc874c530df612fe5260e996c6d289a2a5f3f811f2b50cac599477f9d8400298981654013858e4adf2b6a67daf24a5099e9a44f5dfc37b2dafc4aa738d4690f9650f019583eaaeddf32ba74c3468863cfd565d06fb26601ea919b68985f5b7f036b2ef1b7b0f6a738e292be4b263d30ea5d9784221c09dd6bd77f26daa6996bce002783305e478cc1cac235da49057da7f9cf7b8e25ae6fb02a46ad93ebc5d9440bdd07018ae26de5c51c87556ad561f3c7e130a24685f3fb9e39518c1e9d26c5be936cf3f9f08c464fd0a32502604a349c8956541d94cc0f11bd5a0733737fd75ecf57678264e63ce8b5323a0630a40cd6032d62ed84951427a5162ac1685f8682ee7d31621f6a77ade12acde5634bc44b21a2e1cafe4a689e0d30ac3d03a6903f75393be77fed6be1f970a4bd7f2e666721e271e155223c03c7068e4d9b348159ed8b09d14df65f4d86ae612ce3a931fc4a66c60da424d5c2cda9fbd7115b771e3262ac7788c70f6c0241ded2b9dc0d936e613c795f69d65539fe00ae8e7efdf07bc068ea4bb9bd83f5a64e970bae105036435bcfb23934dc13027ecfe3dfb7a1e9d3f7b2b07dba844598d4cf53d39fce8c0485b8eee92671ce8ed10b262e63944a1ee4889494917fa81e01b145b17fcbbd079e8574df474362fef1f48eac5b8a443973b75e72330eb03e15decfb18f69d10343f2daf0cceca3436c20612091e3ba0940dd3a5d5489338578e0e90f3795a7380d577a67e52adf7358f2e7aaacc75bbb81537134a12771c1539ad42307bb2c1a5277c123f10b74216cce836e78d24dc3ad7e794bfdba4d0306a519cb122e3b2d5a6769ef54636f4398e87bd42b0e6229dd7f430f5c6bd610f9c67c68f1f7a687b98c2e5a61ce50c9989a8de3f53c975bb75b97ccdeb3e0fb7c26f368b29df709f18193b9be27fec820136d8bbb9a037c13b03e8ffe2484d948a284d505916ee424414c5daf57514fde0a84665b2c31e2d4c8fde45bfdb2ca08e9974ea9449c5f332cddcaa46140f08deeb3f0b4bda7be04446239c7af4949fab33b40dba8feed31d45f85507fc232fdad3c85595643b4a7f2503c4bfc4b3c55d969af6ac80a3c02af1f5bebd23a66700733b36f133951193a1fce5d429b6200fdaf383798a1d11f3cd6536d3f9d27b58a5388482279f925a8ec2850db90f5f70650b0045b4002b952c36b460a5b566fd3ba2bf5bcdba0378c54ac9c12ccb46c7fe110aa99dbae10d5cefab484a3abbd517db89c71d60ed26fee9d55e73bd4ce16d898ba426a683b842885b514370f6d854321e599e24edec6c3a0db6f73c60bb36433ec58e162d6ffe8bbf2d345421341ec22e1d25fc740ec4d3d78b79484387a9207b9b48ec8585fb9f6bb4f776bf71fe7834d95bf4c6312d430eb79877fc71ea67ec4080c359d4c4901596e93edf71c6b3ae2edd5d491dea03186bd3fb24527e7f99c708fba19d606cc44ec5e1ffaa33cd2710cebf4d4b5869230b151ca8472d35a49cda5367098cf3ad4ddaf1838e77476108ead4c399938ff0cbdcd226b6f06d5323c3d885ff1b043e6a32cde2e052c7d5c273b5354eb020a81d4f9bba9fd29a5148359750ec9ceb6aa9906047f1fe4191d07a0b018df93bfcd96ff4af3beec9c5e5eb5884b32bc84f66570b9b57f506443ff634056b504871e4b75cc1bea1ebc8a9d5d07c9ea587b70eea92b93f65c3194b343cbfdc28d1a76daf95303c9c4ec0034fca333628720bdda7a3373d676e2928c08684e9d24eed7d9382aae547cad5837d6e1be3e7245e947053ee2219d39e33218d9ae52f6b5eb487b0e5b16ac35fffc45ac1d832df711cb11b2a887647bc2c3713945f92103f3ee2a52ad946b0d38bc0bd92e701c7e7d4aea25e6aa4ff2a42ccbf5da9bb99f88351076af1fb4e7caa65dc23a78372e1c2fa09ba8d46152cda3ecc8a9288598bed37e4d11507e6b5e239f377d1dc5afac7fb38ffbb7b2d4abc6bd74771923ae17cde020b34151d2555fdc1c09848196daab35745d88b80a79ce2bc86bfe7397edbd9f16188a133b2900fedb915629b3104dd6f00cd1403f8a62f71756d614c0224276594d4fb74891d1a2f93f43157b0a6a4135dd65fe25d227be62afe953667147fe7d3d486bc6d5436b218fb9ad0c6df31ce8fcafe01b81561e02ad5d34a0b669345a74ae16f651fae91365960dc687b5738d98817b10ea8197fb807c59a47eb187bcd2e4e873bacce97e70ddcba6b4189a57fdf7d6f8b62a0ff3d81348db2b8b35ad55d9cf67f668bb89d448a751b02071d1cf812027ede8658d51becac34be3eea1dbf31e6177509c81f5e3a373fe9e2af88282ec5bab7d00c1325c6a305bb0e2b47989ef26aa3cefe6a3f6e7ce5873f215dabf22c17e5e6fb210da4f5b5f576b0800ae1d282a5d897b6164d3a32c5d0aa176df03a6c1d2850cebd40f5d97ee707ec307b13538fc3a0c83a95ff0ea2e5470e1b682ed12f9e65f366c45775a9365bf74729daff7fc0e9bb4c05a53bfcce1b14cfad49647adfafaa0059707d4d72c133e5ec878e9887b41656cbebf749f9e19c3e9c4f464a67354a6212f43d15af01a762d8c7445f7ff27cf835e1ce11c844e488036838fd7254aa6c2cdb858b7fedf7852a90a8ac7fe2504dfdc1eea60f64a671dee39e72332e407637033a9146ce243950d4c3d07c17bfe22d9a191ff01315fd51653cdbb316e833c823eb459987aac7e3d6fb50bdee54652ab253cb9df0a661be1b5ae2a7e9ea429d7e8a5bbfe7683a2df259cf2f0221ce0c2feb06c117002d101921fb54e06ccadd05de9353e5874c2b67b45571a83e2967be45e77ad2336b076088b33f33f024185979eb36d57abbe493d84c7f7daee3b10e039339cff06cf36ddbb04abd0fb8c8dddef0f7e86f9724644d6654d4fffaca74f21f242a9722adbef84b44c9a1b7b815ea0317dc5cf688f57896c57af47f44b1aed5c92853a7eb1138a125c026c9e73770d982a0a25785cd91a4f315d03defca59a2d3cb3c015de5df285b53a455087d46109582854bedfc301b9ea9d87d4a04a2f9650b8d9a83b6885fc52cd32eeee85e740873330e29885c8be8bc9d657e612a87eb3969cd24950c9a8945844bffa33396876b885550860721dece6afb92f1d87707bbef2a34915657168c8fa2e3050f1029355f7e969fabd2ec252694a5bed8e0e6fa4e8b91d7294666737d80d3e2f51b1c65b8e5000000000000000000000005111a1e272c", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 42, + "comment": "sample_in_ball requires 76 SHAKE bytes", + "msg": "5f07000000000000000000000000000000000000000000000000000000000000", + "sig": "97a77dde48baada6090588b72e6b7ad2c44282dba1bd1db01fd9bd96a5caaa90eb975fef65599dec159367797fa9149747f1375653b74e6c973dc328651b27f8ea6ce9deeaaf67341e25e9421a0aad84a2c1085f56ddd002b2cd556fe7a555d4d03c41a5ab28857f2456d2f8e495dfe4b9f9e78fc9b84b1bb4238c2efe049c55cb8ed97a390626c184311b5125d5e6811b96ee45d98f5fa997972040fa7267981c407b45681cf7dd4c5a0a3df0b0098234e7ea01653b593eab1e671d9c792bfe734cfafa0edafe2b2fab7d386512e9caa29eaca22f5f3e13fad9005e8bac32ebb3676d247a3b53b4821aeb517a7dea13c1720365e40bcaa5d89e38521402e835d872ef62ca068fa570ff9ce8eeb16ea6a2b735fa3b80e8367626dac125059a83cfb964eac39a42729d238a3dc7486f6dee92a17e10df17857e37186700b0653fdce6c072ffb5f783281c659213aa09fb978a2095f1ec35fa420c421f085335f7685f77c5527e2b5017431e7d5418f07e27f529dbdbe8c66493b0bfbabde53afbe8b0c220692bb2bf1c3850603e7d0d469840bb9a79e183d41decf124bff1294e42469025687bbb1b496bb8f9b3a0d0f4c598014acda45636db287ff71df6f500c9e48c3d028a64ad0d085f1b2ef4b5307f357537bc9cc36c76e42dd0aa016eec7f80f20dbfa39d9af638b6c97639e6eb3d14aeade1c114db1bf1c17ab478b3f273891027b6490404e05e54fd97608eb4f4afb8389589d0a33469efc0fa00efe5b6197cbfaefa377f1ee13b7c4a2baf06c2a7696c28c32c5a6c717e487fcb5fa9cfabef0de5b867bdc8a9c9dac8b565c532fb667436d8de2b264c14543da221a527e05129092b9dc2071e0d414c807e70e13adb5e678900206f0d5a6ab82c14599a9f1f074c557f17b1a2a516cd26c9aa70d073833415823ba89d4153c4277f01e44086c8efadbf051109a829ab5508525df5562f5d19ba4e177e4db0d6a713dfc23d218c7ab13c9b3f53c29ecb3ad3b30fd136b34a6006aa30a4972a244132babd2a3c9da498a6a9e1567ee208e83686104e59f90dd2a3741301e586cd2fd86d9954ab1980f0cd513a0a6d34656ea31e87e09b1e10e18fe28e789103a08e79db9c8bf85f14e733f206ef2441aa45771d3aa1b5bc8b1e73149b43244784e98b6dfd7cbb4e1531fc71eebbcb277565cf1b528e529e7fc935db09945691b4bc77ec0de114aaa5696401ff7a6248bb785dccd11e819cddf857e039dea72043de5b36a6e8dd3bbed56bb47c3f2e37b0674084f8978332297f299095a8659af4aa916ed967efefc3c5b3f103bd19839d5d8d355fa06ae926d7efe47ebc914e7dbc4e14809f021c134a043c135b96800c5ab1e93d767ed0a2861884d70792ee93ee00d16236673924748ec88925c29ce2f9a2063647feb81c95123fcd0ded64912604602495207ab98a032cb81644a4f5e63fbe9e036be65b0147b4a81fb1e2bf5ae35d127a3579e30841cb6740c7e831170d83c02ba10d642b1d9e8d686394fbb00c06d6f8af6c1f001cbc352987c26c22ec239c68e00bc2ba2d3e4a2bf8b6ff803638c0d0366b6beef33f8a7d043de545acbf521f0f09c306ac960eb980d795bcb399da18258aa347b4b23dac64c1794961931086b1d8b7cf842b06422b1e052df65ecc6ce10785f656e35d633b3c18a5acb0faed33bab0022091926fee9ecd5bc683401922c94c901238f602fd2bd199c49f20a66089d85538517b32d6e19bad80180575fca04b18dc207b4a831c96eb0a67aefcf1a7540c6e6206a2d4b5561c169db7199dde498f7d2a966c432627d0ebcaed74fb04d1bcf8922bab0c5bdd688ff8d9ef9d2f181d0c7d411c0080e01e2846149f00910efa3e9e24db672e583cf1f25161cf8822e18b347afe6a75936ce7f2308c5a7401eb0342f89e48bc9a9e38ab993b5fbbbcc05c21f35fbbae3bde103aa84964ca4ea6f8bf3ff3ec19922206e0641834fc2093b36713b2dfe1021ad44ceb7cbffc70a656b7024586bb9af351ae55bbf3afb51c388881403d2350799683c074ef1c1ef54ae68fc9d28b85de1dd5f3edcb9ece5c867628130b5d2b2382b92a62909f108092eb035fa0010b0930a7dbb959200a8dd3ee88e5dda7723c2ff9773667852c30740e84d62162449e3dcd1bc1506aca37f14b43e9168a86531fe6ab919bca8ed4e4c3f45da0fc1d4082560b49a0fef0c466e4ee955832de16846b6772a57acc4fde0bd320e672363313f8b73d6f27f61bd0bad64fbc9a44a4c39b25bffdcd4a2617d16e73fe00972286d7d39335956ccec3644443b9072a3ec59a8f4d2090ead36e9c8cb654c1ece75803e0c1cb308c621e2e4efa1d6833bd38c4dbd60d402a780af1d491d228f6a4b31eb5cd1d76e570a7cabf028fa6492554615b46522324932b41d31a5aa22b8e074d88d1f18c02cdc244afc99bb2525a9471624c6cb0e9a4e2c3f6ab074004ead6d50c16cc5d09bb7547959714ec9d25ddc7ed2ed9efa26fd5e5c4b66b874847b6e6e5ed1b79c13697cd808af3897e4cc6e9e9ff0be373a6cc38d5056421b0f5d0c854807ed5e7f639df89c8e04fe33c6d442a593488472165a5f36de93ba4597286de3c79c84b855aaa9c78987b055fb239ec51036374a97a2052b23588343bc9042b014c8641e4d83be7ca343e3042a73e62a9b694ac17d6231b7066fb985b3f27a13fdd8ca021378aa9a5224f3f8774a891411c922eacba8f1e017416477b7166ef989cf649b1852cef35b67dadef3f709d0ef6aea11f66a006b38967c896360c79e0fd20b0c86b46468c14f6bd9311a1bdf99ecf835f5218cdffc9e98bf86d70dd381ec61f6ba4d17f06f434f5986f95fc16f2298bafa7dff786f90d6277193caff8e8aa31d4e23c1f41f407b181803a61f5b187cddc0a54e638aea5a950d681387888b4d50bf8006afa7051aa901e6add60769d22f0127f3c8913c23dd71d897f6649e2fb75bdaa76e838e6c2164222209f3544f2063ea79a1ea1a231aa4b0b253334a0065aeb382fab31dde9532a2664d9a28e33ddd896f517c7d3e50e0027fa10b4b47bdf36333de0b388cee8b18fc1e92d959cf6f440129de88397f9bf2c46fae78caaaee9ea5bf1a15a9912e8f61208e665690fcbcf2732ce6032092282b53dca14ad722e3db814748b5004e143cb605196d32693467144cc10ebb837673dc7ebb4bafa449961a578ea4c3856410ea200b37d9e6609ef19e9da63db7aaf7e2e54b132a4e2d7d9c2f926aef761581d532ec205edc6227b2cde95b30515a89b79b6908dcf6846440f87266715c9af73ce37f383438e44a4839a30ce8d1e3f1844f006b9b698d4dc52bb11f71b6c51b2338e85ec83e6da2b60d0d5c2f3e411609eace960d0a6f460612a4f0d6bbac27d202d4185e36bdb1c89c64bfd5fb4f3e3ebaf34a8e1ed0cf24b10dc24dc54a06562f5fd9dff7ab277682447f97a26203ed91925226074360d251b9d26bc7d2af105ee865b1cd2d59a964b5f3c02a3ef33c9c9acecd74d92e5ea48578d45a5292b91d221f872b77879bf2dfddf2fb9198fd8ccb6cb0de9eb15e610e1e4ae4d4938b1ff28304d1859066ee45664d849b9bd977bdc16f41e64b0ac60eb4ac518206383808cb59bceada3d87cdd6373a5f49e90dd5b7e71b389fb6e36f7bd7089a34698fc5195245f3ce76fb3b17ec71fef9b160d7e7514d271cc3bfe9281c1cfcce62bcc1c0d4b9c801bc84abd9dfef83e7db8e9edb02aadd8fd0a4d8c0954d1bba04552f049f346e8209d4702a5d0ebde2c199f73485eb11899ee2070cce593983c8705e14bffd69abdd6c9f27b9ff474ca6e938b20654edee807006a53f4aef62c897c23b5a160f43ae6e9d3b9a577deb17abe291a12bff1d1fcbe98ae9406eaebb27a8233b3d52af2a91ccc240c2b9deb50db5c42de42cbf56af5860e522f45cb3c696606a3bb5346a1f18ba2970815577dd72d9cbae732013101983720c29e897a2adb9e36c8d77f39ffc59092532938e83d8e80a7dadb71aec0ab7694bf8e5d67f71fa6bb7b185300d3aadff3f024214964d47dc9ed0dda55eee3591b7c20145065910751d96741c2ab8d2d4c9b8925019923ad11189da9f226b63d9656fdcc50d2466dadefcc8bc2be6fc07a5d99438e6cf3a164d30a342fcacf2d96982a5db6e6dc6aed591d02896940df04ce6b57b09341373a3e7d52d9b41941393d4e2bfedb54dbe1e68481e3ad51160b41c92817f7ea5b95d759467f7ad978b099fe692c1131ade3162314bc62c95462378cc895c5e4ee1ff383a39cb2ea495b83009547c974b9e82f380faa431504689bba67ed2f2d7dcfc9e0498398d9af1e76a5af5bf6a6ebc0c1de791c38de7505b65541a79b9af4dac303b9563fd8f5af6e3b88ad40bbe143a4376d5c9dad22a0eb6d66ece160533d80ecc8124c186f93db5826dfdb9800d253165bcb17699957cc1f0535deac0809e0f79aae8793d0090ec09428db8e5220c53d457d2bb8a730a668f35ae750944ed0c414888927ea329c71d1488b072cd9fe880a5c82c9b9cf915cd0b3b8a15688003d6b5e272ea61d3c8f38395864698b9ca4ccdaed1a1b40666996ef313a5b67c3dde9304041556a6c6e7bed0e1c3775839aa5c0cef42a6aaa00000000000000000b1219222c2f", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 43, + "comment": "z_max below the limit", + "msg": "4b00000000000000000000000000000000000000000000000000000000000000", + "sig": "88190ecd3e1bba698bde9c7175b2b855e3297f2c87f066eb0a4d3192b1e15e2a5539bc8a0db56ce7b9387c13b82170ea91a38e195f432493716e923a20511f8d32f7aa4f83e420eb76b6d61101351afc5e1eb1c317ad09795f08aeb9e05e5122c07e94c29e3d1c822c7329ae0f7969b6e525df66956318ea7660e1210be60aca014b4d7c3caed17d7deaf39dcbaabaa4f862d2fd55bf310f66737ac2c35bc7ef8915cf9cab73218afe38a155dc49ae81f0c3c58d656ab3631ca535770cbb1d158ff35051d94174f86c3b7d3f41d3ec7d1a1f9355ae373bcc4518070733c4993fc03f2f03145b5a1d0e1398a4a425924d3da2efd00bab3bc4151081a04e4e3d38ddf67e4740fa6cbabf3b0cbbcd411025b60b6896db7a13cd9d533601b564fe57f974dd29aa828508e19a6ecd084188a2c615026380f4075f6f5a16f67d49674002df963d628b3a964dc47d61dcef2a42d72bec1a4adef0acbadf7ab0ac0c25fcdd3777ea1ed00f649a216574aa198c2ca1a6964d3ce1442074f5fa857150e0b2d1f1dc750348ac4a196e259d6b80fda3e94eebb05e3fa80f75efa9557889629be2c66d5442f917f4e4a9ddfa3f3b75b76d725d2b690f98bbcbb48b9c9d7864dc274e9dc21da79bc6055810009eef2aa6bb98cd7d6e51fbbdb37ea404d3c33d6a31da87ff1c7caea51fdf9e5dc714961d1f82d1e6d4510e6e14983f2c3d045b4fcd0303b0b5215b2a9f952c7e5a7e411cf4d55447f78f7a60da2e8d07afda18ea491723a2c5c46febdd342d823cf079d6bdd258b354bb46b2a5aa6f0cd2ce24cb91e011c061c72541a10ada83fc668eada549b20bd407660ded336cb72277b9ebe4a609124ef196407c7abfa5d945148e6d735c9be5873e8dec42d61805863b937ba3d80eb60374c9b250a84aa2362421eed71cbe94dca23fc4f9b31b8e6b716ef115750b0e8790f3c6a38e7703607a4c0cae5bc3d69bcf74742f7087fb5c3f8ac91106cff31a1c00e4f27a08ebbe7b06798ed269b23beae0f21273626b5ff61448179ede64e4560bc8c0bac582da6fbf1856718d500a2548e0e7bb35a3d05679472e8f8d1f9331cfdb11f1a0cc117e8aa993ce5b05c605b74928197d16d18ce0e88c89fbdbb823744303d3432e898923da5d159b161b9d406d3ac6cffce16b6b054ad2bd9c7a9e13f0511875135911363adec3d2ede6c613b0d6b239be3dd632272768268927b18ca4e25a3e5962e733d4f5a8d3a8724c414a00092884833f63990fd854a97319d04001cf3585769d1568663bac855d6ad3780114c130d0e57784d7f7f7c042fea6c03f7e5010b1ad08244ae6db605355d657ad6dbda61fd920fb74b531265e91da21f3eed324ddb44c999af8a718d964c3d62cbd0190e5ffb8d02cfca43f2aece92263960be08b6042f76d320b572125d10a66a8fae11a8af4f50e7eb03bd872f34960efed71a0cdae54658fa50bfc7bec9637ffcd2673b093a942f81d432dfad0de68b893926e9024394d1dac5f6bec2dfb4229acb34e7e800fb2e3f1fee759ad157e79c8d14985448011f5d216cd68bd7e9cb2b48354fcacf0e7798d3e380ee39895f1f766ed9356c2b422764c06e7525f1646a699e22618dabbcf2f6098b2147219b9265161d7f5bc5cfe28167748eeb34f56816367156ee9335ce64a0a468403c38f748a3bf93ff2c2ae10b84221d99a9435c7715f23a1fdabd334714907c2aeb22f8c7fb438e391a32b2022760d8f714a5db12ff793e81114ab7b8cfa2df6131abe0605641e54d986c469dc6e112abffdf13231a34b8b0d204c27a871162ee794c66aa3a0441abec9942392ce162e6cf14601b65828e3d56c12ee3df93fbb6b8905268d6ab93b02eb828a586820daba8efbe0d979e8ad8b8aa1dd3b8c78bd85286e4c7798fb2aea13d28c3368e72fcb9d65ae692b96dae8cf47ea9d0dd16bbe9c2129ff02b69a2477296d21c2878cb13cc0c9aa9e982c52d824af6b9573339f1f15f468dd3fb9ec891b2479e1acd663481483ccdde9c793139474de2a9c413c62dadc069e197d864e420e3fa1ec4aa81fdeec8a0c356e58445d01099d8b12e60d66d7ab2fe41683e2980e48b6f6f5235a059490fba0067488a01e6439801b2e490683c4cfd79f086223ddda53ee4b66f132865da58471ad5d01148ea0b141b311cd7c928f12e3db20c766f13c22c43785ae80c6aa4ab8f13bc4f5c2e17e0c563c02feaba052b47674ff148b020ff289018a70c453f05c211b8dde962e71e9e6eef85c0200b9b6fbf73fa4f1d8aa7d4572e28ac8c470d215f83be9ebaac740989f10a7d9e174a1bd1ec371930d0a543807328bb336ec3ed05c976ff70500449503825253d22c8ae30082fdc631f31a736b234b7f1dab5a52ceb3c81682b57b2ad51797c4e68e59aae137b191396b6dcc5ea6728e07b6359550a4c904d247c3d106d1ed3dbc97b5fca6780dec1dc8f37c1be937aec53f5802c64c73711d6c1d119afc99b0c50e4f656b58256a2b780463916d89a9f7a3d3107dfc43d90b64b068711b6dab9431a5535e4736e546b6875cc9135dacb816a56836a821307874d03bb56702310b6f2a813416afcd87c25ec45c25ccedc438a3626822fc85fc6b6fd12756510537cd9f20c0963bbef088bd4560b1b722dd21a502493c68acd6b84c7ee7f9908bc663e91990ca6629d8644c4a97e552a2fcbf4195ff8e0b265e27bd84580784cda47c7f251b8fe4526238b11aad3dcfd48e3626f10ec2b30efdc57486c4d0cf1bd4f6407e7d62e7f680cc95f18847c207c895d22e778a4f8beb7d8ac671213e7763d6f35dae42c18d7e848bd1e808b4e7e57e782298ac52f02dc2fcf0bf5c8e2285f22595a8cef6a3a22e90eb545553fb9a765443021599f85647cd1cd0de00ea224b2fb77c3fec0be778f46a1190b83c1ea28bedd22ebc38d8bc3b747926840c3cd658ffbae54e98fd2ae1d2d01420dc323a67948b63d00721e14cd8fd5f6e964aa3a975c1db1f54aad4f8234a82f7e694d3ea036f3b61d031b53bc6cefb42afd0847cd1f1282e152f66f3a3cc005a9d3b0566827bed0bd0d5f5059c8bd13d689783bed285beee05ab104b50dc594faafce045b532d31e7a3371d6f1c9b90edbab8d7c71de038fab4a7498886e002af08dc0e099bea3046912f2157ad57ed1d2c2684da30c7fea95152a96e5cfe8b9ca916d1d0f3a8ce144e99441071443fb3fa2b5338136ee6bf087615edc1f6c12c070fa4ad223a2b718f350d41c221c7b5f2048073c99fb9c153d3ad259adb01331d66f3c5c910f44ab501c1d92a533999b7ac0bf10ace75e6eb4867513540594df4a6c0e8a4b776349aad80bba90b20b87bf740e46bbd6964eee91e54f7f698c57ab52f3cfc248f06cdfc67f06d9400881ab3f330343f528a024f282d9bfcd2c5077b2873e31808a3e375cc116b454ee48fd5c43905bdb71a91b0eab7a13bd642bf0f36fa46545065aebfbc26533684503923f0d840e8f9661c1b11b01149b396ab647839128dac9a39eaa0f4f927b2140c8a2fbab407d1baa72e863ab8874dd056406e857660001b1994dbdf4c63bc7dee46e26c98b823298a5572feccc994d73028fb6ac2900195fa49968afd0860c92e547bac193b240526fb135f0a9a979f37adc34d56c10a8ae2557f1fc238787ca6c76683e916957876ab71d5fef0062536eea8823ee8a17a07182e366545c6cb130da906cd14aefd564d9cfa987da4b6833b2d6e91400904b73305721cdd929d6cd640fd4462c312e1f2811f93b47b650086599fc32145a1c94ab3b0a67c7df23427c0f845084a0e163bb3ddef3bfffb5b420b908b7bbad931eeb5481007ad1b07a4e0947e34b36a3ddd26571e6aebbcd0b94cce0154f2aabf8ba23ce0f35f8c5d82419bc23a6051ff1007935f4c38703919f829b9971456c7c51169efc61a3155960e778bfec49642dc11551af2379036f9c9f5b1a2ae37aac45519f83fab4e14f41964e480e0f750fbb3f4a34eff0674c8233e0d444028c658d99929d50eb95bbbeb5b16f90b4be4acadc4c7e384ab2c6ad2829b97038fb297804a4db959b1c4588e789f9e35460a16450a3e1b4832d5ca66c69588ae4973dae90432c7f97bab95cc0c9e821d1e42564d10619006ccb9725bd059e19d1c09f65342b27436115e5fd6fac5d560074baa5ab9a8befc83234a99fd6210f038eacdddebd1484e5386c32ff1ea833888af8dd38196f76a110dfd330dfdbef1a1aff2844aff291c507f3d703ecb36817c41e6613ab500bdab75b5a712467e3a7aac1c22910f7d6154c48cd7d57eb8a04ee581809b6d35e0b6395b712fb1145a7c4cf5fc3184f50d0838d9a2f7ada094bebf21da3e9ff593668811236a43f3e3446ece18eb9d45da90cb75e4beba18371c1d5febc262fee5ad84638ce9fabaa60a0137c1232039f2718864f1d57aa0b5c0c0053ea10df2befc31bd53e22a5d3f7d27c2c5ff923df8c0a7505f09f5475f1e1595bd8728033a77f97754d81d6b0c43f45fd9dcb102b5389329eb27c7d199a34b06ab8b8e132305059429d424734e775cd8bb3b0697c031ef8c6b2143266769ac6dceff6fb494c5f7787a0d4e1f90f294e5386d8256063767c82cefd182146475a636a828692c3cbd5f6ff07375e6e0000000a1319213034", + "result": "valid", + "flags": [ + "ValidSignature", + "BoundaryCondition" + ] + }, + { + "tcId": 44, + "comment": "z_max above the limit", + "msg": "2c01000000000000000000000000000000000000000000000000000000000000", + "sig": "1b96ae9e6d51a0b5fb3dc41dbe9a83a1b91d850588e9f6d433c42cf0c71ad03630fe02b43a41f3c617af827af60f5fd54bfd8c62bea265344ad94270bb54fcbfa04c9d700cf009b74f90d66012f96ad265f7c59d71ba564281b39ae12f3f9bfa3d3dd88a93b5d7f34e51f0689125cf87418f350223cd4957219c0221f8c86cad528a609bc9cae35194be6d761a31b315c1f011f0671bbc16f1d2525ee5908c5dbcc2bf227f6b1a02186721afaf6168c5eabfeb477967fa75ed9d9e66a201d32c3ec5d476c05c2ada966b0b32fbfe1320ed3e4cc10ea3a78bb4c9e74e76dea0298f3138685fd93076c69a515728c6d0c950bcd6f9fb76f5dabb60e4555a3fcc5a020b84ddf4e51dcbe8f58666aafb56c5acb5dd4a62f475cfa66bb806f1792d80ea7d03af243c9d603aa1d37aa9b18fae107e7b3c13f25fd18916e04234939e8e14488257c79776ae04173cb91439b05ee00022ca590fada75edb0f34c4d300919c18e9efdbec7400c48777d1a4c73d23fa71c1fe773272ad90a7fa1f593784755c01960233708f45e10fe366a0276ce79f6aec1d2e042d2e13cd4cb5009a9211dd43c8ce4d82f70ac207d52d57c6b6f53f03b8da1aed029134df00dffd18c9deeda050513000242eca8e4586d2ffbe31e7dc13a637ef298aa6e23f5c199cb68a84d54ad618500f66b180e1f8b147965721754351d06051b78b8bab456ad986eba18c920fe2d4426e6a665899311b0ac30a4dfd8306f1b9c98aac0bd697280c6786a085a83cd2af2eb1f4b127ab82b7ae876f4b012cd201686546c44a6801b1760a66665ac730a4c89dba7757a229044905a05dc1312039b416c385398ea5197d4afa1598fd5925e82df7e124ab65cba6ce965307d0670d2331e28b24442f185c8d176fdf24c29eace23e1195e4cc1d71e7e1cb1ecbc144615959f2bb4815567085623590fddb56e3f3a0e9c7b3140494648dc8537e683f0995fc4db554a840ce0c8d9365638714dcba28893b2251e59055db75b7eb7e92d4597b5e611e353fe6373aeaca7735e5b781ff719f0933d9975e9a245edceedf77bb5a7c2741e3efd1a12b5c5c18ae425d53aa49eb26e3cd80e5a16a67f54ff7b4bfb588ea015e32281b82bd0e839bd05a3976ef6dee6a6a123e7c743d1ba04262f73cc960765dbb7c117ac035d1444c754969c0cc614d800dce6720c08c78e46af8aead49af596bd2596838bcadc863721ecfae26e29b1111295cbac3f8aeb76551a7dce55226daaf41eab266a3d4cfc229dc48338348b91f389e33536392fb6e27d03b28fa88fbbcd34b449e514d720916d9c98c60266730470d19f8cb7453df136ff7b0f61ea916e5477e5b8238ab9d02610a2cee6cbbcf84a9a2c86a19439aac921f14d710c25c297f1419b4f4e9824f56c0249ee0f5b9eca355805a03df22ebe1fbc8b93707ed1bd60a12046246186d9a816497e2ed7205e8f4359b6263edd23ad2f4f308191270902d37845910b4b97ff1eddeab3b5a94d290e5110a0ce5dd76e78edca4c56e47ef8a498c5cebfe3757a2a5a108a22beeeb9e1a06b843a0b24dace33b61eb3407b8a9547b08b079ab2c7075a709434eb3722aa91a5ca5cb3d8ca92d3c6041ed45c68d5ebc928000e948e6cd7a21a3b4fe05d4cf0d0df772f8b7f52a453dfa6ce44d0d52e27e069556250fd069532055a619b84e4a22d70ed558766e946e351ab49009bba1ee4a4655ad260773c2e046f4f1bbb5dfeaba6ed8c6b0373294c683c07589697ceff68d9ca47dec9ed8a2487fefdd10f2dd788475b794e7e08654a111e478c88c8c6c1c6424b8c8fef5eb489c098a45f33d74a6916b82020abd4df285ef5a5dce8b08f2318299fb387cb517420316e47928a13b06cd34750881628b210ce93c15fea4f16d0069c3476f9b4b257bc7fb46a9f7bc556a6214fd45aa98e3ef9e8ea89e9e4324184f152992bed351209f6e821bd9d0d0deeb743605db1ad840b02bdbe76e91a8266220276455f6ba16642e53b312778851e09d52e2cb848c6e91dbb551699cfd6203d9862c67773bc505d76a4bf784a77f95dddeff7b0f28cf61415de003b79f198da701797388eb5f1b56ec168fc1088ead14b4796d47ff8adf2a5a418c48328e474deb90312c00a8a350c07ccc468ee49d194ef657007262b2f907ea6c72c7f9716f443fc02f77e8e8420aea85b24e866262eb03da49c11f59a5e47062be56ce288d4c8d1258e6a6348562845628f278ae4c9dcddf629c4dc553c7bd32b4f7b81a26b766d0fb13a6d9c2e34589f56b5a0c014c61b402b521d0792443e7042d2f9a621ce9f25266b9b0f5a16444a7d15e6270d4bb2f0c2e8e480c7e12823ad2ed7828b6ebc96158746d5b3c3107ef928e6f0516eb3c5f707e142ecbb3bf9c889247e80e3f7559b92fcd4ef941ba992580e436a814243bf6540cd692bc2c33720d78b8976d3618fe505ef0d93b4d0b91eceadc785ee865b48b530316af6d294890b518b92ab490bac1b0d57f94cd9da765b791eb6b573cc7e36e8c203867089b55d0a3de1d1458a5e101f7748a620246eb3623af6bbe847b2f895c9dffd2916e072868eb1be05cddb9f6fd74b5c863503d16d8c3e50a329867883b382a9ef62b2b270c42af262587e31dee4d5829254fbbc019b3d237acfb1b173da3779451da5d3373fa18551e45614e14891566ecd89b2945dbe72944e98a081995d28d40212768248a2ce002f473ece8189f8803b7c8b9dbfb3cf6e203c59d07de99d012ddeefe35453d0b9e39ed880599ad2d28888feae66f664f0ca01ccdb3ee8085cc8a576382b9dbfd98a39f848d8d3348219d90c57675c20f24eb6c5bc8caba25e7c935156b42d530f4c826bcb5a0ce30cbb408df49da6c06b1142824410fb01edf247136536508ea9e7d77c5ebed0c42d4e398cf998196c47256ecf85e17070a609d1df95112cf1a1e843c0426084f36746c0fe04ac0c75b23f30e766b6ad71076f4e9ab412a247043c47f0e0d77df41bd7895d7ba08176a130e9efd1c7f03b3c409f92a5098a8afe9063f40a4a7719fc2498d2261effcfa3623ef1d0b96f39e7b934e0c58fc26b271695dd7184cd9a6ed4dda919723e05a46e06e357c6187b00a485fe0808637ca0b5303f38934e45f377694ea67cc2fd2d024b6ce724a8a50eb440ee759a4ef5a26014393f7e8fb8bee31531221409ed50f9fe199cd066de33ed0a6ed63e38018f6e1b721ab494a8fc5498381592752ca136e16b6bd9323d7d52b9144882c70dbfb4913121fd1c53beaf3d462147d17b0639b9ca109ea25574d2582235d5f993aa6126675d884339d9c445d5b783f5d63163652cf090e5513f0a5c12223d03a24c8ef2d4f90107d5d9bb16e472ef561b1d7284fd7af3b57f28002bdcf3a4f6792150d03294c2da159fc19577cbebd9f1f6f6bb373731b5f993ead2e4a7ac90b3dab651a12e85ad82dd12d7989ea0f04a782bf85a7919ec603507427e40a2e543ae1633c8e6a6c696e89c9a53c4d0452d2ad350714fba30b9c7c2c9e66ad86782719593796608fd3be225ccf213fa17529bd0460a861211462316ea58bbd0966d46883e4fc2db545ba09bab14e75c6a801a68813d7163e3307e0cd8d1042e08dd1ec26e891cdd9e03571ca271c0490781105fd2818511df86ff5fc045864cc10ff743506f3f7ba078acc72518911d68541c9660dfe9a631e90e3a326fe3658b172eb9d17d20d2a282a76a3bb248375b331fd9713a1616d3d478eba1842204824bd8db871f3d7a20910250c1d05b928d3dff0e869cdaa4cf16d4c853c7323c78d2c2bfb6188c8515b8a1a880c8eef9736145d7963fed6c214508666d15ad62f3c58845c31b25c6940914020d3a0bb87a0304b49757d5854034d90a5a6531ce45da4fc9fbb4cb333c734640d4089827805a3d7e6f6cc193615d4e1d9b6506ae3403f6c1ebf6f944b3528735647cea4e820c36408478ecaac229d4ae0d1877759f5e86e36a02384dc5d11958f9602040df6fb79f47deb7aa462f2e3e341ee98e85b023d379d5d06341bc7a32a95fde0a5ac5065b4bcb275a074a3a9b85d818d1e1a0a58a95cd06e508d521dbc0d6593aac784f59e350424594690974fd3034be2311b3e1da598039b25d5dee8dbded6793c50696caad8b9dd61f44ccb014d2e35a08915ae9ba304384a624df50a9c2ad809b44b0f4a2eee8a1fd7d10d9021c61bdf65fb09e35c5314f87506b19550e50bf19d5d37c079b642c5ed7b43ac2bdfe92f38ca2a17c8a3a58cd9e227647a1be6f6e733c4bebcc46bab048aed53b15088063d67ecf9bf007ae533fb32c606efb72b093f93e27ce1b3bd9f5279ff2d1b837d95b93b8b8a2371288dcce0b9a55d600761b1263b017bd3013a4ceda0e53169d4be8cd9311e5cec0d5aef037e859419ff20dc8f413143e30def0e36ef1629ff6c3300de11cff5184f2a512b72c6e92f8233bed60626400300cbfa800d74e10fb2af47b95887dc51bef0c770252895e7279e63c4e2fb72bb28c661644517014af3c5114700385ddba3e245b6233cfdc5baa0d479e6713b57f47413c762c626114f2248042e515c6f949aa0d0da599eafeaec0e2329474f666b7d8adae10420548e6e74759bb1b7bdcddf25289fd7da00000000000000000000000a0f1a1e272c", + "result": "valid", + "flags": [ + "ValidSignature", + "BoundaryCondition" + ] + }, + { + "tcId": 45, + "comment": "r0_max below the limit", + "msg": "1b02000000000000000000000000000000000000000000000000000000000000", + "sig": "d0f3650be15a65fc38721c970e700ff8da63ad4bd68eba40374f0e1c303f703768beb02da4cd729d6f2a5e3ddbe90d72fcf3e32bc7afc5cfeed6920f93508ae3688d0046d4d04737919fd404d790a90dd4816c0c80d8c3147ca5ef171fc266ce0990d973173d2cd9e04e598e47afc7ffa7fa8adb9f32a8ab47f13d1cd7de14b9e3ba63a4af1f391e7ac29773533cac14c722d9f2d1fd2177876bc6fa0e906f855f9d41e979a546ebc5aeba50e1ef0b8259b7fb5e0241e4a6d65e258c5b68f2f7cbf70fcdec29c4ccca614adb534955d678493a4f27753568798dea62e852edd0aaa52de0496d7cf65233e92f2a07168f1788c9892efb1b0b1520237a02f43e51b04cba756abb46d23b89930885e21aedc7fed54e46a47620bb8fbbbca05f2385a5f8fe600694eb5a286d8b6f4173df997fb08446fcbd686ca03ccb3df8e5181357b632b48bf88da86447752b9e04d02d0247bc23405667206eda3a3231c3011b435f6e6b859e36952fbeec26d676d0d6dc0b5f3662e9ecf11385a4d23e4fc8cfce61bfbdbb9bf5ad4ccbeabf0f714027b3a7a3d5e0dcd5f0ea3a75ea29f4da7eb60e39052972066f7f1b42a7109003c4de3e075fdf92b42d2588304050016b32152da99d8de0cd898013d6ac918ff6b77add6b22b2cc4c1f8b75e0d1ec069e8f9954a2504af914742b3f1d914ab5fa6dce9d3feb798c617d6230373e43d916d14340f30cf7bec1dc2847bf71d77bdd6b2310fb4aab6894e092b87abe9b02ce96626ec2d27e1ff3f402dac0436a6aff6cf55439cb8e3117475f45db47e95456331652c921439b8e6ad6f39171a0fda50230e72eee8434b5433f21d78f87839feac320cba94bae247dc70c456596c5af329022f8d226045a89bb6fa01ef875f81ec2e53f48d1c8b252be7acea1f51b9772e14d7e42b924b4c3b22cefd3295ce1f753877eddac4930130400d9378a4f433d2941006fcabfc3b7160a2d4a53a5898c6f590579fb61da92637d5ea1c84ed85b16d7ec4cb0772bb1beb94c4dbf9dd5ab41d34fb25120d5e6b2acb1b1efa411e30b5a9169110a5bc7d13a5ad92e6829c324bb7897fca65c290fe9b461f9e54756b81dbdce7b4666251d7941f7be7f83194ad814b202cf0e51dc3e3700eda636dede2f3da337ed6cb83e3590c71152be67a836a97d81ed78201c1cb89292bbc90af10130f6058a3343fe4a0ef296fdf045d8c9b9a2c922ed4fe7e9d8368c3167e0d5622c540efc91619a466ca2addbdb5e0ddcb403c4ae70417b993f66d41032d65042fc79b4d4eb802f9e8de55f6bf895afce5b8c3a2da3961a54bcc5d2091123a00570941a7ae51a5e91ed1c549b8e23f6b8479f705cd24a295b91300f35eb82c9659b28b269c6c21d56599696a15c2f038b363b4af9039b579d8590dace080e805e70ac7b9f13f570f9dc04fcea3d37a14230c04259a831450b8d8623b486ab03e9a9e6ba7adefb13d37f29dd1fd620f73bb8236625ec2b25a680d1fc0ed7c3097d709bb43702d6be1a4de7d8399ff02a3d5452cfb7d7ceb82c2239caa23a159fa8121dced581a0b966d36b0d4aaf26be88b73a3bf3c47444c6e4610b802b729b56e7417473bbca142e682ea46928e602e39487bf4b20e03dfd0dfebd04b890d731376e4a773b96f84b024bb1dde46dae63fdc9187944447f2f3d59461e7ab691d364c0a47c64417bebfd93fde12fffd5a6d747440c7ff458662989d5343bd8e7c154a3c7f6b661af5fdee60c7de49e86f0d10e42df9193cf75f07c1fbccf6298972f373769efad0b479c21fcad942702adbf21d52d0adea893bea5dbe0fe1c6360fdee0f98e3e878346cca5a09a83a1f8acd046cd8f42439758d201ef18d532ed74e0c453d64f3d19464c532eac1f7587457adf9d5943b35e27cbe877eff8dd52bc19a1537d0a6208531d6d5d8ab57a721ba399e7e73932219dfeeef1da9efb01cc7b42800c8a4d0880773dda3b4720e793d116dd18d201232c1ed7de2f6a5854f5170e6df3d848d382bde975a41fcb2cded3b4e40694a627f8a7d01ad71a88299160d5781316bc1022ca95d2314850243dbaf3ac054eb2796303b86c5db224f8f95e6805288a8a832b0ac6b853a36146c808e2d5c0bfda0aa1ac70af90f5380391a954aa04594a2d9b62ec1e0cbec2bfe73fb3dbaf79e3fb40fcdfe06ae96920e1c80240dfea7b490f440319c23d80489ed9af9d6b677cea2d3073e46bdf2c5163588508da085fc32d4cfbadedcdc714fddeaa5dfe7ec5f2a024224819539c685e76d0982481522de0ece718575ea5bb3f70be7e9d93904f3b40b0f43460ecbf95cc269efa6daab55ccca5c2d91534ac60040772da27604b08f68a84f3a4d977ba5d690ddbd8efd4bd5838c8bb2f5da599b4a5ae240c5b0256444c38cec1378576fee88c5ab6e7dd801f83b7836707fb3b22c1509a29640b721d8302ac2897cb10d98323157b6614ba2c3d5df3f2bc6927853ccb1f39cf275c5a0729a3cf50fa91a79c3c7326dff047666317c6d4e719662ffb25c40ed171508e0f938b8fbfa101b40b2b4a256d97532f801b21f3dbd65e693ef481fa36f92c3bf611c006e8491019ec087d6bc01549b6b7c3381c919e9dc2d1464849da2f1a92c6d8ed1fb864eb13192b4f09e6b03017094c1a4e10b8dfe788f6617b9886fcab092c8629aebbbed6182dc58d7eedaf2a5c8425bc087173aa79e570d24dcbc295cfb0495e3f1536b7c5bfd6c548fe7e37adbf73755a3efdd976e196f2fbe4087f3fab78946cc70f3328255eda772fcd627c7d07e36e2bb0ba4e04c7350872bfafaa25218e944fd537aefc8aa19ad321010f802c35846b7037f2fa362740a20096c22d79d0805833b79e946a7fa60d1c1c66f6e69fc5a37ed8d7a2d48d06560c8e8341ab8693be2ce14e120d1dad5868d48143116aa9e06f28af876879fcf38b3b695ca7b2b64620097535fbcd449b69deaf8cef75c73ee09e160b0dd347baaed60a5b1f5899d68ddd1d9915f8cc18b316c2a0712d7c459fe1d1bc2ccfbbbaef417fe1ddb3813206bfa0748167447b124b7f2c1a43d317fed1bdb079cc05101cb710a01bdc23e2b83dd33e6004a618ef89db5b3a0ccccfc810b5dfe3b86166e3e3da99a9fe6800f46ce69d3d8e0c9d3c64e404c07f8b835386b7002c90b915ef689bd35f1af85d060aa18e6bf8a6cc3a5820b150f32855433381683e34b31d39aff0907f10913c38be3c3e98037c09d59e5a4ecafa683fae16b72132c9300c1077dc9d786d7059d349d3bef11fdf31cfcce052ac6fcab6bd7b148acc88d0cd0c9771043b9f8612af19c25647afda5c28a9cbd9fce57765643258331584d3703721206fcfbc8bd70cb9693d2c758bc0e89385fb5a748087796fbe061127997267499ee685ed49c8ee0ef64e8a0136810ac3b75955db31e0fbbaebc171d2d05a62f8da64adabca6bc21f459608ef6bcf39c16ac8068ec98a729555687e9123018d4e2c5e2df32bccd32c630741b3bd06369ba39edfa64a73884e596ddbe2afa6a36d2ba073f36b9d5edceb1e62700f1f0b7a78b8e2931645bc9cfbae8f139735202f1bfa82cb34e006cd501c619a68e852c2bf7fa1eb653140a0e2dbd81a78dd57aa0b415f9a031f6dc1f2b07380fbba28b6454e9027108f407206e1ec8a5133adb37d8393b45d89632d5b529d1cc67f9c68ac1597ecc6b7ac1165012c2bbe3a72ac98dfcbd66212ced459c7d3f8e3367f3e6afc6c7c0eb6591d6fd090a9eb93b0719311d534db26827067283f9de8ceaa32ca3c910a79f0ea2f08f2b5fef210b4134648ca1543a23091dd6bc586b530b6e48d13828c16cf2f048cdd27a641fe0dd3004fa1c53d0569d5db776d6aeca58ab5ca4c7a57a305ff6e71db71852afdc0fc936987bf9b6745af2504392f64c752f9a234e29962bd5b12f27685815a36d9bd488c2a892faa4254c50454224ae3ce9d1295c860990b1e467b659f45606a7c08017b7cfbcd68e2d0d739d9eccf793a04271adb79a9fa9bc1d1a5a96633024462d0a95878ccd50938511f375ebd07f0f94f6151a6c1b8f787cf9f84b44c4b2cd30329b96b854e0a3154a21dfb000eb187567b815fd35bd533d61bff2365a11139661d41e68d22edd2796e86369dff96aa458be212fa6fd8295d543e7217dfa5963a0ae6dc1175f13341eba2910f60742a778152da38f22a09eb7d1227f8b8c3a33ed5208fdc1f1b9c0290850820a4e6c874675430356340998f6d96c9d7bac6c0b12ee232836840f4d8520b4685b0c2c1c9eb7db8685f0a39358c8d08e292844ea6f25f07280ef453dbb3d9a2c5dad2d8aa379f910d9581af4914339a7b51a0e09aa240ddfe1c25409fc87e6a98b2640349c56e4387db5df820321c986dcce30d7d7f56e125878f4439f53bc44b8c8696eef0ff1727a7a6493907b5a19b6afaa1a62d9319b79e8ea969bfa2b00dab99cb574eef7ea781c7cca5de961a8e2c806703f2675162c7a3e0d92534590e9cc1179df6cdd7bf086e55772b7d6d5174ea4791a596e8a6811888fac1de5c9533c43ece84bf374f8b9e2155c85ef4950ea2479fdfb5ff112364041acf153549fb602363c48666cc4d7e0e8ebf69ab6bcc0c5daf2f755647884e51e2e387ea3e4f800000000000000000000000000060a161e232a", + "result": "valid", + "flags": [ + "ValidSignature", + "BoundaryCondition" + ] + }, + { + "tcId": 46, + "comment": "r0_max above the limit", + "msg": "1a00000000000000000000000000000000000000000000000000000000000000", + "sig": "911a02631bfe7fba22bc9a785646a089c74fc26bd86516bbb9388554c2817fdbc717f08a0971450eb8092e862d92fa4d60d566fca3c0ba99bf43434e8d12580b9f09d78d4c045c618435469ea5a43686144a858eb1db217049ffb036ce98c07d0eef1ad02ee7fc430562a695d94e7b7f742c0d1f0aecf9d7a21e1dbe912b800fe894735ee371f0ebe9762f86e4f0e8e5302e306f428b56b1399806102bac34535d3b4a37857b75f44e8209b2b33661eaf9f0015aa2596f24b21e9547bb468ca55f8d0983493f8d136c8c3d5e763d98d74a819c1b37511357b6552f82c60ad7df91eb8a38762b3b39cb04ae30102f655dee62a4a5ead07ad0eef62d395a29029867e3b7aa4b58a0f0c34c33e3827cac3394e423996ae78ff8dcd5a399b8b29ebbe57453f5eec3f540f00a2a9fe4810c83dfc99f1d35c3cb7606c4610fe91655eedcf4a0b2aa7b4328b715268bacfb139909433b014cd32ec22050365279ed0613cb98a4b9a335f0db3d66195ed2bc7f4f9c7ad545350a939b242f13cdfc1d271e3c45db87e0c21d0b97ffacb0bb3dc5cced8ed47d3891ccf94071ca38f62a96efb0b23b849071e5bb01e8d5e891a5aebd749ddd37be5566b99ac4e242610aa15e3537490abbd4628205924af7b6300ebb9df52367b0a2614d78471788a4e6e1ad9a2cd4d9ab0c589c42633d84d49ca1257a99d34bd90d14900d556487170095dee45ceed8d5000a2a4c08d3e557b143d6e30e540354c513450828edc7485787bdaac462f608fe056fee8d9eeaba663b609a2a48d1e9c79982da006bf9f7ad63d64bc01f4a4e43f5c7ebb7c745c3c2315f080037edb501f601788042b865786ffed5ea00fecc0156b6c2b4546f6ed1b91d700c12b222f7e26b3a296fee0ee16644ef037ce46b30ec1b26a99430cdf27cbc6f4307a3a786a87ef98f80775d1d57d22c70d53aed30f91ec0f8ef83ce6d6f13a1a96021a739d69a1a1b6828502910d1a56d2716f8fcb6c3f5286a59740fe966b0d87e804880545db932e87199009884236e1165a7a3e40b5006438edef71c90df275eb2e43f27376a84189ff3b9fff14dec8febce31398cd656d1e10cfa7ad88673c61413870f92851abb5be17035c9a4431b3f2e0d9b9a9c97ea5fe7b165f4a2a79c964df0ca6ae3191820ababf197debadacc455f1277c9e4401f3a7ee4be9a6a0c69d3c8a3ed2e69df31f947622f6e606126e03732021dfeaa8b03fb3ccc2f90ae0e8a00f0a5214eb50ce6af2296901784c5853bf28a9df062cbfe8022709ed68478004b774a85ecd71d2cca96d00c6bb9c35abfaddb5c23a4cdb0b8dac66a4aa5f00064acb2953226b41b2a470dd74051d405da3014a5a892a3a0836263ab68ee7258edc65f6c59f15408957a7b2740741c75b84e3bb9491294c6cc943d85efe43cb4daecf60f6de6d6470db27f83ca29486fd322f4dc42d88147e529e24c3813540eb1c66d64840f144c438cc2f553592ac178394bf6d08307904d512b8c9714bdb96a2c5500a7309ecea8c5ec107c7b4be4e3a0731fc551398f008c5f22b97b5e7423a86a5fff31c3a91b24cd609b51f5918e74b1ed696b9d782a50e378c11be38b3e5f5fe7365299aede89d6865c7ccb173ff6ef223ef7664d978dcdca1658e92c263cf446c9e3932ec225885a866361b251bdd6699c7ba5f6af7534b6e91cdbff438a320c43ce8ee4f69a860703fe8517331b23105d00a78db06b61d9982b89d12436ed042b7a9c596069adf5ca1c9d32734d8748d34a0dabd8de8dbf90d1224fc794d07709f390c845e4f26822f9c428d27c39a1442aaf794fbd2835c6f35643e50c5113fdd0c75ed2cabfe9e7e630a5fb1ad6c2b342267378ed7e0762b914a93a9a010725008485f2d9a02f7af776b3e53a4bc7dbbb45089644f71d447c3a310ab40c631a7748933991f40060fc13834c5dda483d625dfd8e231ac958664fec34a8365d4b2d798732009395ecb38f9b9b82ea832590c484e16bda281e82835ba9efcd738db10de95f5ad9f93e8f6dcef28ff930174d23ca3d7da2c4950c2f4658be1845792be94978b2b25a9aaaa0ffd31dd7e7f015284bec91bff7cb404afb447a73ca72aa4d05a15fd485ea257c32da5dc6e102ca7a98212882da4b57dbd3e8a7a1775df3402b242f3be9b6e717687d5d3f3a1f55f1c683e7df7795f871433df3702b5ef2cae52858d18123f3573a95c1876fe0c6d0bc7599fd8a2e992057ea308ec29592f422a2eda074fc1a1bd4f9c6da2652fc217da21b5242141f0326a4e0072adcb5fbe7ad82fd2b1e3a97abdfe72aba34628b78116c01a45b331763393df589c178cee3b7162f488163c81fd44424a2a3a6707cebf1f5f87f2c150d61ae6cc8af0c708a854677d3de0381ed987ea4d7f69fae772a1eedfb7852915ba084ffc0d057e0456f36ea22e6e4234e44968adf8bfeee3692c5de12776b819e2aaeffb425698f802607110358fc9a5f1538ed93394c86c25312f6dd7ae5c9d5e1ad4b2cd9d32e7ce2095cb564f7e3446f6d5da0f57a5bbc3d5d427af30c9e1e7cdff8ff631bc94ceda2ff6ec746cc283fa10af1beafaac6bd43e5e9a1b63622a33d5f7a7b7d3a741329dda5663cdf9e52c195065615039b9bf96cc1093ae5b6778ba58171454374953f2c5d50721cf943c28825317ac76f2f5bfeb55d10e590e437b3cd46e7d464cb76a8612b9d836c22877ac89f4c4716fb330be2df6875e074a61147e16eb02ef627a54ba8641148dd6b556b442572fb9c14f1ec5730376de535178c3dc92dcec68016b8cf3c28d561f393bb2c6a90e18b04c9fb06ed926a69fe73875b3e353944ba0cb329f4b8f1a527aaebab4411638e725f5f8d837343a8fa2e6d1c48e8110a51ba71be5545d066ed06ca3ea83ced79b7d6fc8bac02b53f3bda4d2d38a52686fe51a72e8c1635c230bf3da64b378b673ac6e7b40fa1b22fdf14af2caabc8515c145af6c054779beb47b4749c1fe40ac47ebc1af9f4f73d8808ae5ac9e6b85dd571c19a3ae2d5030b8d8413b9c2508594dc5f99e879ef8a7b7a4572ca8de9b5d7c3c6b3c09bb437408e2da58dcbb37db0f36fc67ee74207fad89fffb9e6b2e1446da2422e23c339999ef2b946b6758f5d61e70c53d48b8d2ccc5bfb8065684d36630f82ac806a2a395f570d9034e443dd10bc200c1e818f67dc86401457b9b0b82f6d7e6fe2590b4fc0a380867a099b3f5d8b51bbd2dc3d9333c73cd86c6b16fc7c703221c67a6e86a9d7413ff6ffa010f7351782597bb84cd26adf1d92f47613df428abe3b9514abb15a00667cf14c9ea0c676fbec0f7427d9b0addda30da7a2b895c291cbd017fe8135580b3c9cd69fe02e08e9f140a0674311c6b7d3acd4aef8f5e356a2458d7d4dec8b7364baec737a93e5f9829d247f9c88cf200bd42f439dfa55ad6367fe010777d2e127cb191a57c969d1b579a69474eb8ae222e1b6ca9d174c1a35bf9811aaa9ff1594acd0a41442031ba47aaf1ed9f94c4b4877f5d9ab810c2bcdedbcc35f2195385d0f41df6d81433418a8db56aac9c24832067dbb7a8d56211f7208e6399c25df41422ed734d5fc475d43b8d17497005d2f629abbd6c3838691dafa7570a2f9af8ebc90c515c844de8849d137d1d5a89af65e504e09cbb43bd3e73219e6ea7c980a80364ba999ab38a3e9ac2432b582d8df787459a9330b926dcc7b4b358ec127f45450b14092a43b53c35ce034353602386fb6f74fbe48f56257487f0584f10c8762750fc26326861d68c997d5b37ce77ca40647c82c445a9000caa64685967d4b55c99d21ee59ef22b5e33b4637400559666b6d250863aef8e8f9aa467bdd36ce406616218472afd59f562273cc08671d1dbdbb48667dd685b4c55c0c202d544112814e4e460c72deed53c9d1fbdf6dce5980d89693bba5f6bcb0cfb60fce0c922c7ebbc0d25401892c7bd8f3008ade1bd1580bb6200cbd07582a5127396438e229b50f237d84d116f47401e42e499b4ca139171aa4aa4c903e22a72821ac9858ac764cead0d967365e7dbaaee5f366bbd66d628c67c870b884d58519c6b731acd4c857e2d5f3fa6e1139042bedfc3e4d56ac41769e6309824e54120218cf6a77648cd7859854287e8daaff5557921ef3880de6cc58e860a43038ae89fe74c47ee81f87b8dfba55b6779e43f1d064698143136b1181ffc0fb4182dad52ded814c8e10d4f502f1940689cc5bcc29b0b9d88374542f93692229d9f3be6acab3cd82a93b4ede5ef5bb013208bf886e171d43485d9e5c2f214ba633d5134014d111e836a23b2953204ae34f26403eb61622df0b2f5b76da164f9f9db6758c645e1c06ef88d8c277bbcd739c75a6c9a2dda7542eacd13d16f38c6532af09ca060ff0e526b6118febf5744296e9d2eaa93f1a4ef49f586e37e7dec4eb719bcdd338eaee83223480970f0be08bcaf1f79f83673dace99972e4210d54b6be0d9211b5e98414cb160cf2711c9cd58b185fc9ac4c3c74dd78548a40120c5089e485c9142090e9df898d1c2cbcc04a38322fcb54ecccf301e15a5dbb568c4ab748da773fd9badd9200aab0305494e54a2a9b7f113383d3f6c7785949da1c7d2e3e4fbfc21283453779ea2050c62dee1ecfe2426275a283159829395df0000000000091920272b32", + "result": "valid", + "flags": [ + "ValidSignature", + "BoundaryCondition" + ] + }, + { + "tcId": 47, + "comment": "h_ones below the limit", + "msg": "6f01000000000000000000000000000000000000000000000000000000000000", + "sig": "2a7f2f6e8c77bacb79932abe5708aa889e16891bf04eb42941428cdbe5b2a02694d658d104f6ca51ce8e87eb3fb20e0634e4239b26d0d6e08fbe9c8ba7624043eda4d7606a3f18063b28c203298de764b4083578e36b73751d6df5d0b2563dab5e40f30ad99078de98b14176dc57547f06c466359c30d5e0b953d3bf9d31442d7e006cc29730d9f069e487e2830c21c2e191d2af81efa3f0eb620efc0512a99efd5ef8d7efe658f070399cddbe383eaf46301224bba1326c86b260f8701f616d1908f8a9fee8b42646b2b1eb5735f1a62962395013ec05dc549bfcac77795da42b103730ff65843daa455d3d4f516a3a0a0f89cb30a3647bb2afe8a03e359e1d7380afcc316095290d731be3631a57f1f2ffba3bc24bccb32df16030fc5957267f1c082ed8966f3dcb14f6a209cbefb8e24fc6b65de21422dfdbf1acbfae731971e522308b856b69a0b0eb041668c5f966379ae1d3a6aff00e726c9bc73dd70adf67c98b933098e471ac6eb740074c834d429f8c026932e9103eb40b8b1c2842754fca9ef28e6a4ec9c7b878241ac720834c854e551d0222cc1d8c7c2e4718a9107c4f56668d30e40628fd60272fef34c6ad1ce3f34f91b1bed2e4e588220abdb7cbfc497699574b1931e4824f4673c42a37bc6dbcafa408b31fa067895919461fccf5e1cc364244ecebea76b3bb89a92315ce8a954693c1b27e619977b7606aa81e1eb41278e88169c4f51dc9f08010bb85e4c63924c2f36045e2d9fa8c1d8a339d1555428e5d43c2de4b156997a3189ffe356a4221b18b74dfaefde39c619322fb080de0f9c4299c75b81d54e3eee6cef65d4b075d032d66f461d0923f717066834d439f50c865d01a874d9e4dbea8a187bf28228c9b557a854afc6d68b83cd3670f49247dd6457e4813ce430a2e16847c2aa0943133e30f3a4ddada690830cb4921895052b9e4fe7cb28b95965f3659570ccfcb819c238767450fc25a823eead30273b5bf955f5d0548506125f2d835bcb807b63097a7c3d704c693b6d5043dc3c9679e0702bc729210f1a546a3890231e92cf40888837d8e9b63a5a58b8596ac5d06c97fb232ec836f3dfce3b512e67bd628a188084e3e7d90048f1a9348928b56314d33191e8fe6a9764a6cd8ee75f6518705b7cecbd2db4a2fef5103236a0e896912277d1504074d8a3d3073deff2acf5c5e06bd6f470e714d0955958caecc552c72e29697a8d84611a7dd5d73aeadae523fbea696eb59d160607fb62fe7d8adf8df1aaf5d7c5156e8d96e0e4a9f903dbeca6f2e81a8e2771309f14c761a4ca30277f9f2df8f46d30423e8084ce69d0ff8eb8a97895fb193b8dfb6344aef653ac818c54d0cec13d40c8a8d81650d90ddce05c5d941a0e036a326b8d13020254af23b06eab878ba9589af355d45beda5e1bd8f6ac80d313ae12f0b3eddf25fa01b4dad3f06efc918b6e7997f16a8907e1e61c8135cb4cb1e8d73bce5dc35279d4435d4b66de97649b6a11498b33f229014e9de1366369186d99d03200bb30d2ee6ee6464a05abbef217f3ad6a9e686cb2dd792a25266bc768ce17b3c32942c92a9a90d905500fb95eb65425a04ae954c4eae92f6cb6d0bab3cd722deea1c79c37826a7aac4311d31f3572565df5562d2c89e8fcd895b61b8c24a9d69ebe46630bdd7c3cf47c98453bed0c82cedc409f44e92258febc72f8f137cd1c09604669c0a1070b25c09cc6cea05620e87643800b5e0b6a45bdb5caef0d969688f560856f332b2095f764abb9340985ac232a800ae1c9291ab052a0b5ab0f18cf76e75c60f400a11eefc5531222439e01127983f3c98ccf418474a937173dd1d0c9d43caca7903a04bb5ae633176e5b059c1176fe804f91f7506314b0afdba5cb7adeead68257ba8b2cc07286834dc8c0d5e50f18c6ea45f73fd500222c949d4b57331f82a39f6d43434a852f5c2ca8da7a91f7bd78fdd451a7a8ed6799a3dfb3cbce3e12b8e0f0699b0bf98b20561cff0950e6ca6bbea5d714a52240db59af0bbe806a043611cc17fe310df8531f4c609804c5382800dd2b701d38fb9ddb42c698d9a324e636ee26bb39a81ef8a840e7c0602ccbe31da2fe6d816db1f713225f0e95e35cd4a3232237199735bd83453bf63db456fbdb06d0f7cc7b47b2ee2a8213d221a364da2b66865f54876eff1bf16aaeee396a8d7efb722be2351cb93b28461a475aecee021a4cb3c8c64afa243fab6111a986f45ac566dad078dd36d440441b02b5cb5b69e39a911253b969ba536d9f455f1e0a7fb1e5aeb4b816a14f2e07f951c82ad47e95f3fe4556c3c13640f29e1b0287a71531b6976e34dcc475b2200c1ac90373a52590d65c24dd2d6fab4a77cbd3f4cfecfc52da0da146bfd120d8c8d73ff1ae819f940f14219a1914646ad0b20ee103c5392283ca98e7c942c54ee77f4c46d7129502756645af792fb995981ae4e9607453d6ea8c63b64e7fa10ddc1b8d5b8533fbf6655f0c7a6351307201909128df0b90c70287bd8e2bde06e2bdab02c3bd319ae8b422fc3f5fb9badd45255ba572241db8f7789c108c8071067bbb0432add83159437592b6f58edbd7ff57275efe185ffaffb6629db28c28737efdcce06809b6320902c154689624004cb4a8fcaa65d336498bbd41e464559abe17e3a25a29e824ef2d9cb5f900fe0250625078c468bded27c11454a84e727a3873f5ce9ac68df451b4c055bd4ee12dea4fdc49d1e1840d46b87a0c8b5f398c10dcb249332e027d1e6f3fcbe33b1c0f26b816742099c74eb1608e16ce31a18629715941f6ba7190610c1be71371df6afb0a0471762ad86da0d00466bbd181975e6c410ad259ea6cc5c72fefb5e185cc612e33951522db41fed4aa84b9b35767e78a3c3598361669c82d1b6e99def54adfd1d09f88baa00c413b18fadedc1d92fafe9e286e3c0130c83491ce4084543ac52b115a96244cdc68e8f309e5ef041df076ef0fa23b8db04070a12861c8cf0913a8c11837d716fae090c4e3905e15c4e3f6e1b3ecb8affb0fce86232b85626f30eaea00a53319c32db6023c63e799668f30b060b5e883c4f15807831c6ac003a08de6b6bcf1a758e37beb99c6b3c1e486a0324da04521d0446dd960300b3ef8feeccddea79cd0143ecf516b0ac37faee1096c5403752a550192907358536934b1d8bed3d1aef9fa56bbe3ca0529d64bcc9a6596091ea9dfc0bb5b5392459947f1025ee5555b56e083c97331135400bd25d7f30d919647bc94a0577ec8963fa261c02e4e619f74e7cc803b0d2976395be4a37941e810e310b4cb04296210ab167af312082ea73157f0160f24126d2bba3b70218cb78a3c91cd573966befdb9da5b384d8d0f6d4fba384fb502800e3784f432cd2ab14d200d45705746622f659ead3d297945380236515eeb97c90033d5e2acc2fab9a71f386930f9238fabc4063038ace5427e1526390cba00f6eaf0f13fd3d96228b988d758a64e8d9105977d1b5933d9071f6d7ff26537d730bd00f871abeb94620ef4b10a152c0585a3db26d12aafd3ac9364d3bba9e69fc83e1864587a1e1d4f4fb62efcc92373ce2d53473cb567feb7caf022842e5c3285c9827bcb4b2013a834a42c36309daabffe52a9f8d2d8bf309c764cc1d62cd5fbcc07aab6e4d006e5a4935f347b45d7bbd1aeb46d1ebaf0d32f442dda1a19122aad3690f324770d6f867d0ad24ce0b590252d1d6f915fb96391fec04e1f4184d82daed46faed7ac87864875b720523ab1f3e176a207975e6eebaa4ced0798570519d0689ef6b45d9573ea3a00812594f35591fad9e5888c91caaf8bc5461e717ea5a77fe95e336e6201ac7ae3550300590c44c46f28318367f8b88288f10580c2a2d71dc4db6dc07192cb9d21efdfdf85b93e9c0c2e37e52f16320ca17b6a64848993a12a152de79c486be1e06282fca9ad4102909e9effa4e3adc7bd2be958799a6a8c9cd9ec22b853364ef6f76ccbd1ed6469ec65113eb78433fbab87eccfecf1836f829a51c7b9b3f710d8f90b7506117087679015a4d51c93f59607abf953c75439c1879ba1e31a3a4cc4f878839898c08e333556d9a7d499f133aebcc7d98b3576a557f52a88e6d5ad099e0597b8b1834bb00d9752258bac6e2d91502a91916837be2be4aac02a474a0a776dc81af8c6898f0e856fcd646c2d4d71f0ec913194dc59daaee548d41174750063eeba775ea83986c2efdb987eeadbc6d5dc36a9fd870f1973981d8cb3668c792f7b156dcc832654f4ef08890679dae49a7513af040dadc0b08563f95a03221194a02d0bc2b41f24d7f194d86d45961657df90737a8571312d407c8d6ffd68cf74de9fafde864bc5df2456714f812692b8eca59acad89bce4d4e853845b2df5570226f1d04dfbd6136c633d9018dd4f8171a10c9839e4c777b0d9f6a43db8b82e8dc9fc367d8aff643edd08e5c3895fe40ce4f53f72453a77b8b816f9969bdf19b3bed5c7c8f129ba24150d7c355f50d6a500f6d6ae4592ee3616966bb0fbfccc751e3f631aae9f92ccde3aeb6c9a98b832e035fecb23764cd82bbc23de3f52c82c060b2a6b70b1151799b9da1b3d0e30c5357a1aaacb3b6c3fd0f11196283adb0b9c1c4cdd9dce17689d0d1f6081f4b94a8b9bccf0430394e5f749ed10a1422272f37", + "result": "valid", + "flags": [ + "ValidSignature", + "BoundaryCondition" + ] + }, + { + "tcId": 48, + "comment": "h_ones above the limit", + "msg": "a301000000000000000000000000000000000000000000000000000000000000", + "sig": "8af63acab69436b2c1244e45c8e6f6e75dd5f7efcd93d132cc613a0defe5361548b9354dbb2ec4a674ca4e4495583ea51bbc3a9506ba941b305d4483fc09699ff6d95d55f12af96122c71ca8732aea69cbb3c21405572677ec926c06ee40b0a14a39eef44fce23743f0285e9fd3836657de1ac89006d100a189c4a44668d1a96a519580dcee29e2b4993bafe768d9ce84da1c274399c306d0ca24b3863e021e5fc1a7361362dc1e63b765a546f940259910a5ca341622f3a0e261090b4a30ad4624b2f6c166fc8cbae6366b19689f5a33dba664403ce6a5639645ee46d9c49b6ca1f0fa6bcd9f62336fe4bbe0ea5a571c116252a6ea763680cc12a7b25c4726abee6c6f46cd7eeaca9d33f820a13114c0d5b8793b911b26a3f43c29c3f87706694a77925bb7d67321d56da25975ed08c04d20b713b49b6d6e6fa1cc76f7fa63027e4d9afa19690bd4a356dbf5ce1d2d65a84ea803122dfc6877998a9f1226ffb1543ac4ece57338bb87c02e182714c904416a10ae8742e6b8205686d5fce8530bc1c9bb4ce3d7e1c1c56793d60814d4878e7f5176e09a40870fca693705e2bddb831d74a366a2bd668de5bd759340276e59ce846e14df866a091a7fa689c71da1594affd600fc1a202a8a6f9ace2820aeecd152d470d040e921760e48311d3c6a6e8db2ecc948bd8b0be6731e0c0966eb2598091413b331dfae46dfaf7f0b59107fcf0806fe2b6b551a20826c01d04f6547186c2e87514236e904842b2ba5a20bb6621dea873057ea2592ec1de4a5fa9b84dafd92a864d1eef8422a9e3320d913cddcc55d56739248f1bd61489af13afe4ebc6f7d3a6651113b613f5229c8bb78238bb680da85dca417ba4aa03339621b35180ec4d2075a2f0bfb23b810bd792823b85978a46e659a258d00ffbfe5423cdd2cd5d123bdf98fdb61da4cb926f9b3654a3479f55aafdd87831704d3606d8645b1cdbee5593d69c2acb0769e7c4820b0efc378e7ee56f5eec9c4ee0076677a9f9b89f08921bcb880d830f2337ef7465c774ddaba7236c3082117c40df45ad54695d2158992f77a3a5de49f3b0815b30a1b3dee31426f05513504ccf31bf88b20f0f247fdcd783257eb899a0362cc0c9119b683e3231d3dc653f271bd9c80e0e50b766c609e7f49b1479e766d0603f9a3d978b21fe88265ed6a610d56b9ebfadad6d3939cc5f85fd733ebb631fde924663d1f02cc1a190d53cb17d5ba519b3e041d03b01ef85d0c1c4d86a869683b782ba8847896f92d38fb54346ca9ab7a3af3577aa4df727e97d070f5044cf3e693caccf4f04877ed36a940298ab54b6de65bf9c7397550aa68e0bdc4d1c362643a6b24c655956fdb80b07e19ee941b1148fab8ab90163a029689f168323ad9d3e27264abef2c4f7dcf1e84c29b9655445af8cc195ff48b3e22788d30c42322c22191d02dca1ebadd062d937c9c852ffdc665312ede8a4d4468a32371f7fbd2962836478f26e34f1c04ca2278f13f7819c095324c027e8f702ba0da42ef814dddaaebac7fdf7b1a0df56e9d3b0ee05159681b7ad30a8bdcd44be7965d2a3101de8808b98d9fd992f4042abd1b55b26eb2bc7dd314dbf64be5800588500a418108ed417136ab924a544578ecc56b58db53e7a8952d350e1e98ad6d15a9bdabbee835c689019f607bfece26b1b0a8f90463316ac213b40f5d88e56c5659d626290cca99c7beb1d9774038d7be471cf9ff5f799d8d1710dfd6e4b4db9bae982a231cd0ac9df41f47dcb92574dd0cf68e25396837aee63dfcda9b393f2a2277ad2dfd7eddb8a50bcdb335a8bd44a6bd0cb3551d1bbeb19db1474c6bc6ad6316ff0edc21516b67dc906cbb4a4d2ef018c3821186e3a323a878fb502384caf49e154f0ce43cb53a584357bf20720fc0044be73eaec90eafc4a7bdc55d78fd7153ee37d24992e5c846557211aabc4661a79596c1cf226aa758e0ff776711a99640b3afff33dad0a6055e8d6c51ac69b125c916a0ca520ff9f697fc395837f43414380c520958d84b9bd670bd81d81ff456c5af9190abc2498a5de0f08c982cfd79aa8652a0dc9ad70f1472a939885972bdd4e699546815c950fb26b5ec8691c6ddd3aa53bf55581226606a5630232e4e4edbeba6db684522348e8228b9dce09b63c3f95029c7cb4dc90bb8b4156ac4cb4627e3d2e12f2197cf8c74c2840b91be255c3f02bccb427b2741df2eaf7b2b9c8b9adba98e74ec42e95c0dda2652180dd44fcdb008b1ace527e1f240dab90d4bc80238342cde0a92122c55f158566e0fb9e0db9391046cb20cb083610485be2e700126f20fd7745a0c877251c10e1773ff453230973e794dd11f3478562f1e2984e4efe2ec780877329cec171e4f6686b8b8e05ac68ff1296d066a2391a700e6c59b78f374e397f1e02516fa6d4bfe312a075ac4d4a5cdc062c7a6227dee0b95714c633447a557dd401f52ea7bb5909a47a37a3ed7a87ebc7fa8c703d48a2a0f80966541ba441f9ae50930f160d9c03b7742e7bef9a427636789bb4dae10e13ff552367d6a8f897a2bdc02aec3902d8eb387157456c4367a181222c4837de8305739f62df370d6cb19e8bdad686c049080c045b3c40253756e2073d35845f7f216f2ad3f82f7822f24c1390daf57cb003d5cb1910b668360e15e2483d8cf0f0eff239efec41fde5952fb4a8c5cb13a28ad4bc9b684aa9195768d5eed75ddc877afad68c4cb0dcc25812e8a8db3c5602b6ec4ff0becda3b2e6fd8b1a64957f207418ccdf31ed2b25ff185a3a1b48f2e7a72ddaf18a3f6c795d048ecb3cfd83e3c823a6a6ab94fec10232a1231126bc4f72e9bafba9a509587d72b3c05c1204d602608bdb4088e15ff4fe87e6cc40207597d578decb455fa30f0fe78c1a393ee55452b6bf704bd0bdb09b0edd65c025f1cd3abaefd8d3b2995fec922510dd94bf520c552780a438e61b1850cc00f99d67775ee8e5053d1b20117ebae042ad833dfc0d8703b8d1eb839d0d2ca19906bd60ac515c93357c1484875ca134c7dcee07ccb0b2cb2a143bc6965ff224518887b39ab348cccd82c64b0340b05e83dc951cd419dea37f5e98aaeba9e7f4a420ceb34a1c9da57670df45d3dd32feb4192cf0490494e47ba70107cd213e4e36d8650204116ab3faf000196ef870dd8a5a6860893d60e0f22a6ae6804ec687e3729d45f5323b86e4bc1b6e30f336471d958c23520d44da5b75453aa412a2685114c8239c7d73b3ae310d20d75bcdb2dc9a23d2bd9b9b27bb41115694fc98a7ad79bb2793a1ad04ce0131aaf8a74d627654b0d0ff74ce320ee98a1abc5aae2229d65d95a34ec37605fac9d353ae0330209c9a4c8752af1b32751ce01dc9197522a8b2641e9817a5873f6cf678de8684f386743671b8651ea5eb3f123daeaabe237a8c10b58bce7634c7b65cba61230eac412b32c4ce326b105ffb3d283270ca5df72d8f4e36f444dbf4cf050b468016f10bf77f92c24e02879291b6240d534461d5866ed6d2bc525c4f9049b2a1a7dc7dec180d33ff1f3ae0d8d59b40840dac21e87e1a896cc9fa14933ecdd82ed6e53fd10e3508466557fd762a642707df1c14d6274cb101a8bd83f5dd3da100b5689f4739621234d78be9ca691834f022369ee6a0300b26e6c8edff09d8b5856fccdca837f6691e12be1bac1a70ce0d29570c5edec8808dddd069dd50a67c758189bca72568eafbad11faa11b63262684ff1b4e24914b5e75e511cd1065f2cffa7a392f153392d470f097662c65ce59042aded66061f36ab84ad192c81228e1bf708ed79e4c6759f9526b4dca768d674abde8c985593f525985989ff2466d954c5a3cbcbff04fd9c7f227d6d1f044465a10621d1bcd8c37ce3eef7be3d7b6ef7c4c105d35e17fe3ee49c2b4900d8c8d431cd394ac3c66b9dc42b69490db87412fbbf94940fa7df64074820603bc4d49c022ba0697d7dd25e1a6fd822a8bf1d48053df1f5ad07a63ccb459492ea946ebf31e3eb7ee96267da62db8754cdccf03a77e335154d9fa8b8a4124196ca96e5e343efe7c952778f128fd1a2c2b66ef49679e7fcac002f69f1e884e8761b5aacf11b222a6efb51db75afa498eb4dced56c3fe0e44d80602d802550afa5a6108157c6d14c87809706fddc242d7205a4a3d3d4853efb68466e4fcf44743a342cf4a8e26b82f7b286947b124d8becb17bd366ee4520710df72194f339d21bff18b155acc353b2cf249d18d227d2315cc30e7dd6614fe940c23f4458de305ef37c2bb763594cb6dcbadb65c4349b9f4de4a43e084e778edfec85a384167dccdf0339a70fe83565b30e71f1b4afbbf0b4a3bbf19b49447d5e431e90a1df83678b575401833dda828d9b14aa20276874373e7177d700806a0242298ad056bec878caca1e8a550c326c3db38c2032e3cea380a53e09811aaf3c84b92f20fd7122a86a2076178c40f34e07f8ea7914e98fc4223c8a9a4f7fb2c2c9f07f73372afc727f5ad1565ad25027d4f227cf8a744290a04e350676981e415e172abf6848357b598db96c4cc870edba8175d88b9f7e859f78abfe2feff5423e8d670a49a3356accd0e0f225837c1dafd050626568999cc11234f6fc6d8db88cbd4f2f800000000000000000000000000000000000000000000000004080c131a1f", + "result": "valid", + "flags": [ + "ValidSignature", + "BoundaryCondition" + ] + }, + { + "tcId": 49, + "comment": "high_bits called on the edge case", + "msg": "b906000000000000000000000000000000000000000000000000000000000000", + "sig": "a8ae8cdd7601a1c6584a0046ac0cfb3c4e3bc3aba16e4519b1b4ed50a546da059987dd058f3a4508edef4dd7de054afa64aed0dfdc4c9f9558562696a4abd959e924570037741d10fc9cf0459822b57bd5a84f3ae7539b475c60d95e4e3b2d9376b0a84b4d3031d200e279a3b778b4d43542af4262c6e5ad39b962918366b0c3eb63b35bd3da14f084e1f92da6b229082ccc52d9176694476c10a294b98a890ae0dce28214ad6d127245dbc778c1e1927579350a3f361dce464594c3c1da42bedb2a081f62fc6c6296bc60718d8deeaf5a3b6df4d6cf48ade47837a95b8013cc3c92e03f94e932eeb4ad008d41d0b8053503fef97ffa71afb208dbd0e2981a519493d6de40c08b458a28fd5baef5fc24111657c20f953c36ac3ced9b0cbf3d48ea7ad7c2fe6813975c07f83bf7b7d85ee22c5a9aef62b328fd4b60833f377adcfad8eb6fff9e8e5034182517928db6ead56082d7f9e1dcf31e21acee55cbcfc6b180df3f140677c39299f96dc8101c11ceacb613784f8b75d7fa12ee0b38e7e86159d3b4379543725c305b48081888a44fb084c8c97911ba6c2d58c9184d3ef3ecf262feab0c9bd7a7347d3154f0ecef8c53de747da07e913e3f42c54c19e6c876d226de5e790dea94684f3031348cc5e66e8e6db22b154942cf779bebc8c2a762c60858c13c2ccdc5a6a7ab8be884e60b3c730bdee15311bada52403ae2733ca9e728ee224d919476bac87da7ae384dec6e47fa838a1d40df75b04fff35d5820622cd307609036493ce0530f7e2e59225c63703582abd8f2cb622a325a1155dba9f7b6474fa57dbcd2bdc526da41c7fdacbf8772ada912b95b6fd34fd709a292bb0d92360a6f55383836e967cee3fd13773e23e015caab30e250961496ce64b7eeb3a9120b0ed6bf90529b121f74923948ef1205c95bca03e98c9642404aedda7ace200d2a7aebdf854a350ef3c520d745746a76008293ec508b745f159ba493527c55e2ecdf67fdbc3426ced84cc9451ac7d42ea08f5c026a2e28544b1eaa65d12033518cb8f87adf6ce87a72b9b7b3d3505f2719c47d2670dbc13d76bf61fdab4b4a58af5ddbf79cbc449565a4712df8f10f4d58c2fd0f33f6074a0cbde6c18bb4d988da12263f58b5224924c79972ed39d0391d557efe9974a686a385f80f3b5c9c7e1ed4a1cd79186d24e38a2899af567886b36eb2a8b4f87a173094863e9e6ca77c99bcfbc93139d5c53272c1b7978de0908f55bfe90ed18b0612003473aaf252fadfeaad36de9f00ab6175d3c8a0d88a1cfabc21d6a70c53dcd3655ef13589c97d88b8b9499fccf1e0eb70b6fda164aa039add3acce52303e1e7edf17493dd6ffada104404aee7097695fc804d41bae02ef74bc9030fabbfdf269f027741a4b27e4b6d8ce636f605ce467802a286d73aa748468bc8e35b7d3f705ad650cf06ba9c8d2057633add59d5d92df71539ab957af1850c2a98790d003bbe6a38bb0a21e3521be83c94f77c57acb61beb013bcec2820a3dda5f9290965b8db9565f08507ae9ba11411869294620385d04e5a3015cf08633ee8a876755b6c76a722e557b4e289ca0f675f55363aff3f2d1013c64e72764122c75a4e527a7c19ea457817725f19b56f7fc05e22baa9be29825413acc19fa55600a95e842a7ef9bd0e7951725b3e396616983e234534305a4e05deb017c82d14d9d717d11316dc425de109c4574ee934a9ef4f629394fabe3953e9ed9cd30a5cec6c2aaf7f2ab02a85a7089cd903226306d30d29775067d2b3d60cde82a5ddeaf600146b5269908d3aa020344d992be7e5dc63042755e25f702025733c5f80a9b3c463326052c77fd4b5b97cdc2bdc505d8b30bcb4db7ba449438fa016509d9005c3a90a65af42b939caf7bab8520040be9730484f3db2d32cd144fd45adbe35d241c1fa3f80c9862939b335fe5509454cfe6836e9b0f2834c12476471db627e168d6d09c015c59e90c6a7ae21926342365bff7fd23d45d2d0a3d0277d6dee0f18a776fe5fa5f14637bbd09c246199ebe1583966cd133dc092fd7777e0476e9f4ed1b5313f9cff5cc270a5eb79b9f2baae0739f24968d553d420f76db16b8d4414567e17a9c41c3b4e49b8268129ac37ca356f0a5f052510c2f3134cbf3a5b95b1514858cb93afaa3a36bfbfa9bf51926b790485ac73ba738104ecad51aeeadb11443829f4ae6b0e6e2484b826e8f77a61efa1c96b5aa5ade23c7672872325ea63c4789bd7b612b1c6cdac1171bf318ebb00cbf28994d1694c810769d8fc07e5fae3fbafee192cec26c52535758a279a05295ec0ab14ba25b61b1770981d3cbfc7e990e1420d0dbd7922adc048d48074549ee7ee09e6568238a6b7be3e8e12a032a5b0cfc9bd43f8a075ea28816626f9cfb1618ae12b360804c9d640ccff5649bb150a8dda0b1b643412bac11accd304f6ec5894b3a7d92751b454fd50f1b0f49902169c6cb0065f37f660301612c59c632d7f84cc8955efd86c7373a9e729857e2e6e4a6a094bf98f0e9fab159094979557b0f31a4ec8a7c22957d0bf3dd31c058638fbe8f57469e3789d67ddc4f0cfdae459d54345a603d2ce79c633ffd9369a59fc45e3cc2f2aa5c5e5b7ed3338523ee2c8249d25deebfffeb9359e6d9074bf33deebd997559d21f0b664f029e536c5ee56096da4c7531c9e2e116d109011f86903cdfb4117fada57a01f178c71d4f9fc0367864769c9abc75540b920f0136179098f02fc5f808840ad1680981bed9731ee7a2997fcbbd8e80b00a8d85526898edbd6dbd60c478090b49ae0863f961654d3e7ba10f03a94cb4973edf27be2085085f799a5d5007d256eb0987a52adec876cd0d036622fbb0b53de0ecbfac30b1c4884a4248fe1340b6123519722cbccd712136642af9c13507a003dedc647be782e1766256c6ff9ccbf487919827df78a87d337049a7856618025a464fbfac986434b1ae21c1d0a7382e7e0781a457e4e0241cdd410706f4713d15f6d61929c3a519ce05524272c0a333a39cf6f437f1be0c86e0b531ba6aefa5bfe1c12b95c5e8f5cf62649b30d99eeb2cfeff4da6728c1ea3454a3fd5a63c2edaad7c7f7ef0526e085071630aa4674315917df3f0c1b94e19289c76acde2012a060259793574eff3534daa0966f7b33c616ecf7cef24eff84a207085c1dfccabf6d236b8d3888fb647b5ded9683cd8276807afa3e5e88aa5eb5a5cefa026eb7b8f6d7457bbc79e72de4cd4d92a51a38127376f01d2c386d2d67fe3b0d837c69d4d7e7f7f7088c0136c6cd68440f906e0b34f86392a9c1217ae98de0373f9519df555bac28411939feffbd5b6dea5e8fb0f9f87fc2f9678f520533dd4c1eb1b0981e540e355ba4ebd489a2672ff10d2380fbd956cfaf3bf315583f11313a3e34bf4156d7525788b7b7a8d17d14f975a695a22745dab8601fac6b3ce7f4bec9e298858e702d136d7ef683ddb367bd9dce2f54d5c54d4f160da32fe78be2dce9fb7bce3d079cce887399db28c759152c16cd112b1c67a2020d46589d0879eff71e1f60c05077b52e4a752a03238e697b5829826c5c7e5f67b14885654266325c2d08a51c061ef88ed081a5636febb510a8dc56319221ad23107deee4be080ee9c39ee3de0adf59157dfa36e403fe55bcebc4c4011a3d638c078a716d11d75ed96e860f39c30d4929dca6c7c61ef5592ad0ab218e54ec0d617f4f1fe0cc35c70fc08bc95d758f8117d02d3c57dbde6b3c78dc5f2644544d059699fb78f808cca390f0b65e9c5d3febf6bc83224cce78f602f2d289605c1f9513358c5188a649fbbe3744e3e27a40f59c0184ebf4b7fcdce3978b25d333706aceecb07a4a57a0e6536276505949fac58fe1534db31b2e68c327fd30ba76b4cb8522284bb9010155f45fac65b544bf28aa6552ce1ad878c6703054f499288627cc2fd5b2d7f62ddd12fcbb9064a8cd8b2e52d1b11c33bbee9e31570c53794262d974cb03bcb05a6da95d90467a6378271d3fe59ccfc5f0607e69c8a2dd542147c7449a82ac8887de89c0c6683d74c76023782fc40bfeb565c8b554821cb27fc528893ec77bf4ceaf128cc6888e54340df30c2439ede07ba9ecd30ad0ae498af1bc71480fb8bf8dcd1dc79baae421d17790f5d5331744e555e7a6fc0ad02cf5d6680318e1439ff535ca6b26db71bb57b66116f5c8ebed986f209296e474aeaef97ca694c0ff22d97d022c573d7274a20fe61464c994eeb478047ba7194f55bf7a98614d1fe6c668076ff36181ef2bd1447fab111bd439f658a982269532d51b677d87a7b21b6ad43445ac367566e46b423dbd531514aae2ae399985461552630037358278060eea1550c1629512314e8115b2c9218078dfba77d552541f0e2a84d1164a4ecaef7ce265941376c2755ad08254545e1d067d03fce227a43c3898a525699b1ded34bc0125e9208a16acef7f24676ac1cbd506d8978990d6cb8bc2e4a2ad024046d2049c587be4c8838a8ea95a0b09d7c49cfdd6db6efe5b79bffb9d0029160a6ed5c6ebed0fe13c385e90e91c235d0515374001db3158882d4889729872cedfbdc384a6da8e02b4306454685b8bf08212e73a7c1fd0c0f7ecaf8122187a8e20000000000000000000000000000000000000000000000000005070d14191e", + "result": "valid", + "flags": [ + "ValidSignature", + "BoundaryCondition" + ] + }, + { + "tcId": 50, + "comment": "low_bits called on the edge case", + "msg": "db00000000000000000000000000000000000000000000000000000000000000", + "sig": "76432e6ab59eac46a20dca4e4e47e611229522c99e1ce6fc194463ae709d93ab730c8140ef2672fa15c236da36c2c60e0464c076bbff7ae1ae2d720ad13905f269286ec74e8267dcd7a88ff4f04c3ae636481a55c781839ea1ac36062f031d137165e996ff75d4c065a98bb8eb707bd84545ceebe4da24d8a2efe41662335a474531ffb8c14238df52b18557836a0eab930ef7df9e64ef74bd9648bc42416ba401a521518d564c52af2d92cd0048d2228ff9157405f3d163f951a63e51525378c55a23af9f2cb52609ea6fb83de7538a40cc14374ce9cccbe760de69ce8f9d86f83b74dadf11b521210e13dd5aa12cd85b1d77e7ef38b25151c2d8009efd358278fe5c71ad2f2cfd8ad6a6ebf03e43a03897c269f229193e5c36e3b897326f9009f72b0da4c727c8e3503195bd1c82e783a19b0f81143be7baf57d92d290332cba51e4b3a4af66440d1d6939b02c3903667a7e0a2fb50bbe23164a31c3ad4b4c9f2402aeb00d60d16ff32d57667b3fb681205a422576f01d75d5218b560222296247647d060366c68417f2c388a8b004102dff8d13ae83fd34b1ecdd81c2f5ad807a3492d75b397af2e081dfcbbc3e8c8eff3be20dd7f482d2cc52492f8e7083c132a5c0fd4d4635362ef960e48d6e35efa51076b6ea32dd63179800f505e8e47099a3b861e537333950434273bd8383d0164a2c4aaa911e7e8cd0351d2e6be1e2980387b67081bffdb76ed80ae821e05454abdb12758b3de37bafa765ee5ab16648f4da5c2cb7a489212a743d37bafa06f58ed6a6bc6f20e6b0e8a1fa9ad07aa56548f93e23858619e67c83bf4dca2ec6516eec1c9e115aa34220c59255b3ae1d5b4f8e091c17fa55275fbc8230d217330b67473738b3362de17baeb131f7d4a9832443aea256b4a5e3889830abfb4f324e22698e827733aeeb16e34a33b0023b9551e3b81dd78bccbd2468a13cad54918d10ea69029c9ffd797e968253229d6eb410ff827a9d2cd6bf152e5eacfeba68e1d778b1e89f6b71fd040ac712f36c13d70969d025faab59338983edb26116d0561e066bdf5c7aaf24eab47a68d15ec19ed074f3d4e9026dcc8e33dc6d46010955e9be675f2b863af88ecf29e4c7ad7ff639e04da36ea15e8fdaabacb4f69967c12c36b33aefce2d9f3608531545d210bbbab46ea27dbb3a9e80cc844a18b1d1d9ac101ec131dc54143dc081b988a482bb46a84fbdd791e742e4b38088e8538ab8f2544d8f9a5f4f9c0eb83d37f856c4cbe64688447c7f052ee375b3edfab105a464d937923166833f3eebd302e30fd472343e75b661389a049e497df2d7150b9681ddd66d87a276a1a43a18edb7ea77d2f2eb23a722a4fae1a68fa2363f29b2d67381e7b70d359dc86a06ef2bd9fd0e791440906062e9ad715ee41abee8262eab49c3b7f9b11826684f735bddb21c3dcb681b12223ab13d38cb230e0cceb4d23e6af1fb184270e90aa00b311f8c2452688b8734c8d62c22ae08d8592479e8eaff64b2af23fd68f88576a66be58e085bbb85b022a5c6f460444c0287e7d25f4480c429ee9e5aa5d455743b38f91ca4445196672e360dc894571f978d29f72b3634682a5263b13fc4ceb9a1bcd71520973f8df457d61abf1faec612ad6c86305b65d9cbb7bce5035b8f644b716313f684eddc6909893dc958813e6e3341dda8a332c364a97bcc9b6472e6b9cc570716ecb625f4e8994da9b1f6dee8561ca4d2f6c691703022eae2235dad9d5c5cedea751974e8d602841e71ad1df6abc92f4f0337bf7237a65a17e010162c46deade485a04f46214fe7bef32db3c311661e43c0c2e9edd963908a1f8c1f6dcdfa45cc100da0dbb89b30d70e801d0688f377f6e908829defb4a17d78717eaf2e2d5744f11586bde49fb4c8ee40f36611da3c97bbc5cb69a3c94671122ba097bb01572cb883a6f9180c3977875a1a5581dbfc57851a5ece82e40e297679433d2a7cf18bab87d7f05e04c832299fd2a650bcc6bfe288db08d12653cadf12f768ef212c63c95714a4641a12962cca3cad694032d531307715f64ac64d259f835e316688965529e513e56677fc4855b8c4c9542795204a08c58dd0cd741655446865cc14a7181dfca296e47096729665a2cc9b340a26eae144197bb69b43e3c062e5408b8a15c6c7ed9e08a9d5a58b6a1cbdf8f7888afd4ddb9110848eae2a741d0bc3d745df8787fae2521124f3211c34b8ebba39f2034a9e1341db3c49fbeabacf949d3bbe4a89ae66b2cbf10f883fcf5783e419d947cfceb12d33619db27a970ffa82d368163a8d9db2a9c40f38dd69ae09d21e842794349040a6471d884d524eb009c6e182c36449f7b609b543551f6c3196f1f7cd4f311c277b5c6a1a99979607b246e0937d066dc6014eae9cc6232eac1426e954f70e881869e80d435bcfee437405fb528e179a68e28336085c9caded83b771a39be93e660b4ef5066ff8a5ea8df0c2fce41a2fbd7a9ea0abffd5a3832f1ba3cb114f975630de4b8583275f48fe7ee4ec19e84b23fc41fb4542ae0d569f417044216a61a3f7a5f7e340a028d7a035743cf71f7074a1a4b51da6748fc290f29bd42969dcab0282b6ab6711539c2d55b93a575ab062cfef43027c82dd57866a0133db184849c480bf014470bb72df543bedd1e5f80573929a7f101c1065090fde89ea5cb81c0cc2937493cb0028c4c57d74e141de27662dc744e15f6ec98796f01eec26209945533d789cee8f1126aa430afed7156ddcd0501c632b1f83837d157c3eefbc55a64d1e0ba4eebf25f157ad169a438d979f5d81c7c37f1312acbfffbcc267c084e098737e172026b4bfbb53d7c5f515b3d7005a120fba41eec124f22394ee0c735651e4ec5749a16847de77312b07399bcff4b3d1c5732ad0e9b88ae5bdec072ef63b0e2efb30309df310171e24a8242309100a173e62c53acb781f87831ac589de9e07cb461c5f455dedeb8084c39739dd33bf34ce6e0ad134b53351e9f14e3343eb1d7925ee463ed8d66ab2e45b7bfd6429b4a2ccfc868f78b603f4413e2ec432b299cba4b1f017704a41ac31f7027b0628a3c9c7dc43146690da24d7c51218f10f72465c176f84eee1f0364163a31eb761e33273ec07c806de809656ae57f86ede4b82845c3ed6ad075478ec179b3738a329d9627410127bf5cf193be7e021131518534b2813dd25cc7784b3a203139ba232c9efc1dd538563c970f2dc6141cfffc1e880cbf3bbf81b21b948f160a40cfcc83f71f652df1bf23e14943ed3346dc97441730e162ba39f3baa187206e22a7888cc5315ebc08d08b188cdcb76cdc24cad462303a0b0ad1cffa6abd013b1fce7fd78a6272b3a8e79eb0d171b4b48d63722c7524d0a367d60793259b53ff34ef2f295ef1728c57b1dadabd44272c94da9e2f8ddc8edb6a8148bc5a5bd4252cce3742c8d635d4a590682d7eb92d52836d55d8b5b985a7e0e9f941598436f8470b39e84795853a3daccf65b1eca82c8eb92ff5035932e4be8d34b1a441c47fc0fa515a3ae9df6782a041c751af1e825cc1551eae4b98bdf47293a485f7dfe59eb639d23b5d0deb0e19cf832a0a7659cec0fd7ad6dad928d762e2f5ab572af3f67ef51667f8503dc1fd8d73c70ceb08fa184eb7601242be1a7bd7813276f9b4e5f7a3180f6a773f1ecbc48bc4d917f417734601c05c9130c4169bb8e7ebac241f359bb63104dc97e2f4d11a1666e5bd6fe1c267edde2e1b4de17a5123defda1dc62231b7ef65352d8b319b9cf1277cc46b20064232ab378ff3d908446a61ad6223d9cba2d1c770ea8a8580725e6e945a04365729da77f39397a398725985388ad6bbbbfe28cb756aaa8afcef1cba634876187b497671a8f79180e37ec94751887c33814b33217ffd1a84d19e05314daa554581ca88260cf23278c0c1459b3d5308159a5349679959e06cbe727d26b399a37247bc6ba526531d10853c62703edb910cd4f1ca64bf7842a907aa1a00b3c78ea696a342d70019c6a32b81a278e6296da3f7111e5abc1e982de9caafd5cb65e690dc33e1eda512c29824ed0f085cc7f8cbdc012e5d9e7988a281ed3f8bf87c8cdd643e6b5e1f766983417b38b9b421a7c7193b9f5ff4ff54d71818cdb1a5407be5244b7e90cfc9e95262873dc6e8f69dd05fa0c61da32940b06a6999284a1348c8e54bd7a87a4d318e42e2b38f89a5f9bfcde2185c438bbcba42115cb986e2066cbc68b901fbe8e1cfb2e96b3df0563a1b121e8b1bdae6f49333ed55cead1a27c23c23382ea0fe81856599df39265bd68284e402e3c3cef38b50c7580f1dce8eeb8b93e9e41ae8c23dfae117973c39f45ec30674485445c232b13acb7960016503c5d28f338cbb5f167988eb2f0bc8228f607d9130a5b8a4af4114e203894bf0a522054bc8e3e40e4898e8aef82598c49227b6b992988450aa6bd7a72fad964f27d1c75009c6f8b1b1ab09bd03ca83afc0d63ed18ce114692ec801839de1d60bbe145dee09eb4a452744f9aee34dd7431b9692a8f1ffc57cfb9ed48000194931adcbc974e01f685f78523c7b1aa7f3bf990ec83226b3c8a62b182037476b77a5ecfa1f293591a1c2fe01424855bcd0eef3f70b0d24468e95a4cad00889969fee2433445889aad300000000000000000009101922272e", + "result": "valid", + "flags": [ + "ValidSignature", + "BoundaryCondition" + ] + } + ] + }, + { + "type": "MlDsaSign", + "privateKey": "5a04d37a8c83d373ba07da5cf96806002e3635ad8add42ce6ee9902dfc9a1f271d69371fb6d0d47fff2c2a3e14efdd968b5f906525510164dc0922789de9a364bef2114db20c23e2612e09ff08803f1370dfec0fe7baf7caa0b136307c4c5e28d66131588fd95ef62f045ce5f9fc97fb325a615633cd8b3750e0a59af4ee68b585216212026265666057753762085830687728826203255015364500824305705421788508673025302771854311582767373483402102665584887250778016030712061065380761502612101165404558474224202805007621230464462203685778016057425826815317568238050772886480511037851166340110028128861260455443102346746431860763856471622017425050180675648525378810181776072811033216622340005338886614075570325637871365126625102514372714386215651262883035888186882735136623044213523306773082628331327670166380686860637847735480225154251866458000167681310524352403754743431285760007611167504453407871341566585122186248157656528871414777375514604212473713857715880755217452466552765547571103116775577340526805888582608517271501687335575613163508777326368017651782262147563486803737458175820226282640535882745376418557344128517764663704648266473421507627362855741847253641767062483771431577003622528742541754555283538126218063277457610415642212865785272860763488822603010447634121135027541730132053856857612685470587335853528625287673006660740067107745148828747467378105737675563673630035158431677607703476053047211202662865785547755147672066236487346002377860303756441377465637130071476433050408631515287032557522016415124412332075877570258425456330211868467418120642856576372633652261325222715024638783743186171861336733668106817338115557030361837187742101862103468842371136426532687217056001673728818313538605158860500557560156230048207235127633885081362730082704536018247573410784180717282340546403568276245472708513411278815266833586788160374774788643872827514345643713837253483842354477256048542037314586713324523031845643038500151376685640174056050663250780675801307057876088208756066411843108776645730115257078437415660766813552323512700650800184476516820562567551552285130646380817033028871742634054206101718252575327248338188705041538562187351855145622016264058183741654220238467304622778808736028441101714166800430072405844877284520248118542118510634655810685885145833435215685301485377543437155877077875656275080061815578383736231754112225386161313110561783553214033227315467012608005005482155373246688252866116575420630874416827877888645175202647448136188068213011125518360748372782503005450707815046515730448781368663564651856447431414754067735276010414703833884088654636713747165327332281573023480151541626827321212337214250802680361011166354754226081576124500458162332812265381143530822838703121611803852746568104365872885773288001121184272014882478231480025680664574124608736806187572102766668231210386821073546640384601388305113017266233868666582444544268042874431663606850264533334251076203211018257626582513206133230678348438275316543603240506276801178108543248376246768821855768252037777833441606441085058451537820373165544816815818708581423418330152611557725506875882745171231630715162418605378345582260612866668700018875062702437733366cc5b335379c2528de2db3c7486bee132f92e34b325eb2b474e238581051d098eb8130998a5d0ce7e8ed551a204eb0dec3e53a53025fae317c1d973a27609d5bfc3fdbe6360bd155f107108c4a5971d913a3615b28caa60b7ddc27135a14608d2f43646126402f3f591e175ee4c34f142d7c2332c6ade52ffc31095a5b4e23ed5b63dc4dc9d05496c4bf49b308f526b447e5601d98a3a111c62d349af190cc96275fa4665f1aa379ac393ccab3f5ff0d05ad217bb0a8f69eebc1aedd7dc219668f9742e1e8a2862e620bc60b06ec7700fa9060655a892f183e70f29f6d188d8b1aabc090b8c4ef967d6ea350d65fc02ef4d6f062c3c0421794ec261f42d93d6f12eac55f5803518def6b936c27e1516e547bbed41e86cb23708bd941f0c75d272a1b4c8d09164c99e3330142170c403164419b916f956e80928990ff35b52c5b09f4cb1635d212d912126592f2f73770c759b93bebf89b65d0efcede2d29324c9170a716b93ef99536714b7f5cda111499dbafafd5412efeb291f874f0401f52616fd6eb04ab7d4df4b69322ccdef1a0a5a35cb365d5b0b02d1e5c78a9e1fcf1c02426add4bea769eab6f5ad19358ebe3e6c45603fb5d056ffb4474984b7942ef2c03b3e2b2fd000556ffd1ccfdd874f5628809bd39e396e172b3b1316f77b7e11290a0c584a148ef9575e7de4547a680808a0f09e604b7231e4d627995be092d61141b874fd03da36a8933ce3a1262099097806fe9b9a0fba7b16a0343f3e76e69ae9d91f68963c4b48f9c7bac411600ce4dbf87b295de39bd819dc632fa45e3943810cc231a4b285101797f2b6d4f08ccb33daa67eb92d632eae427c63426664226ded96652d32c9b18c25c421db3b0984aebd8289e248dedc4903297df22783366de4b71cec53c308e394225042017b7f92688204ed6bc8b0c5f34011ae3335079eea47f617563498be1205166bd3a1c7bd8110d9e6503a0dc72fd550de1acf401dcfa212ddb3790bc61f04e4df9fa0112d977779f6dea4333a19749e17bb70ec8a7a18ef4373ef131d89b3f77182fda0c9f98b7a614967a0708938f2288feafd89d19a1f542606874f2eba5a0b7582b5506ec9d907b50dcbe0edf55f32a22ac3a62dc906976ed327d530c67103b5aae417a1d9dbd4538772daec64891b90e913bba087f7b1cfb8dab9a0cb95a19bad82ae6c34102cfb34f783dcb78308509325fcad64d301b59a50f7eb1337b279fd39fbf2062a314d56b1ac8d809997dbc094201a0ba7e46d2c79efef3b2f738c534083edd16c41d2d0fec673c1f15e9c3f996e830ec248f9f27049cb276c59920bf690caa54a8ca5d012a004e1aa12ee181b9df54a2688aeb38a7194b64c4be3adf2392b7ab5fc3de1a29576dc9c70060bbb633d4af5e890c6c6f7567c6cb17cfe14f75d8eaf1a303393b68520d88705b6797a78e991d01735c715d5b93f5231d04b662cd949677385415e210fae274f454cdec9081222cef1defb7818ffd1640d55cfab872718786f26fde1d00ff1192060e5d67769246693eaf49d88f75a9910a83888b40ca630fb3af98d1c1c268dd5e16f7b8e501bfb2fab98129e09439eb3fe7a6356c1c1c3019568a0dd341125536d8006a23003f1557fa1cbede1a78c046bb91b00e3f350019b7995864734c0dbdeca44de7afc847102e270d880b6ea6d01e5903228e7c7ce66ca0e1d94b6cccab8dc3c90ca168ab8a131cd9160b515382f9a667b54365cefd27006f0edb52b8dfc61237cec28e31e3e8aa8e2a1882c13d3910ef0fe61511ff5d230eff4bb990ed7f471cb5351e88d780d74686097c1c32eb8e918fb07242aafbd52f3c584a7f669fbb6d71e01ae12d5f21824bb5fd1e4812d7cb93519f62fb9bb3d7dc2eed33bc85107edb0618fb01bc38ff89f3de70d39a602b2b21413bbb55f1541eb9d4b6a997e10eff77c759e5565353dfbaedc2942053ab72c64c9bcdf22cc3f99d5130fb4b55eada0fe8b69368af8d83282f3bd2a9686b18d0682184b48ee0a0a76b1464a31b37acf8dde3a295a3ab293907fb4dd5a6703c765926e23fc58bedd769d427c1b73e0a6e5d9f21a5df54292187b9d32a2ead8b9f91540efb7e98a390f76c1ef40e9fdf9253193d5318e1092d104a7312ccad9e2fd5c9c5214ea4626d429c389dfc931333181b931e5ea723e34034a0282174ff89130533c1e6284a99f6a01e376cbb79a136cbae3bcba43fdf94616ac206a4deb4ede69a2c126854cf9a7dd351c5290951893ce6bddd3a97faa51f0807693ffaa6ab7c7a1af39883d78b8600651d2709f9c01c73d62750d7d8729fc5b410fecfa3147cd06e8a8e453929e22a1b4e6c3b5909bdb605d1b52a107812f37b0ad7f875162c403600f19f6c9181977d2e1670e7364b8184c5c61508f5c6903925bffe36b605300584e251383c859a72908260ca1a78f611364a80fad6387aa3b71ecfe175a2bb9eb8c4c801eea2a82d90f4a5483e0abe46f541042dcd4157e94e2865993b9fc45f257cffbcfa6228fee327463adab4299143e6b175065cb93cbc21b2ba4efe06dcba5477d4de623b221b435ed0d5100526393e0cd1d1c6b200277ce8f7f020f79e5119f85643d4089217db311d76ed9bb3576b6ac21f118af5c9c5bdeb9487014b5fcef89a14b5f85c3e9416a5d333e7a501199c55f388b157bb89adda91a5bc39d212b3526af5c5e7115c2419d6a92db81b5c8811b16fbb66ff09f52879b4f96aa412d768a53fc11d9651844f5e7ce16bef00da7c2d8a1ec61fa3daffeed9b4d0ec314cace4f38ca12911e9c71f63f4ecb877bed1b95ddc57872ea136d786414038834d9d00929f9c40f0e74273e2fd55d331f1b61370d8a0ef0dd212525158fcd4e0b7e6d8c3f1b367cd6395337c751d35e8d528908d7f92cb7baf384577e9902eba8b2d1c50c440dc18135e6ceaf16093e810725437c8c118c2ea9d09bed3f71a38c95f7baa0822b25f662d0709783ed0e725bdb9ccf936bf66c4a660ee6ef5f9c1a0e0227582a1a304070b286806ba772c8f1fce8ec5eb7a8735e8d15b8261d8852ec913816cfd739475d1412fef0e5a85756385a9626fee1f4927aa227ac930db6ade1da75b6752c1191ed766fe9cee652c0d34f96a5cd596b96da30a841177307d32cf375066c0f56478a3cd87653d13c010793f6912abba2c2bd53c547fb5992ea521f4c59dfe955545aec832833e6a4b51f745b1d6677947bb6492e991a2ba411d74a5e67faac65d8e9f451374987d21f17fe15f99856173760ec4692d52bb1bd51fbeb29302bc09009279272bec9141aa2444ad020ffa416fa35943c423c00261d54770074f78dfd640cade82f9e7280b9c4ec3f8bcbc63a2286b5ede8e21a06b1c251b525d1f41febc0dce86225b0edd6de59d768df541127649759de213d1a84dd0b03eec32006758b069c1e0a21121a15c706263fb3e53d6f37d04c77e35c9fd70541b2d5ad0dcc826c143fcd1076319108007a9dab1d6be5e0ecd59d6090581", + "tests": [ + { + "tcId": 51, + "comment": "short private key", + "msg": "48656c6c6f20776f726c64", + "sig": "", + "result": "invalid", + "flags": [ + "IncorrectPrivateKeyLength" + ] + } + ] + }, + { + "type": "MlDsaSign", + "privateKey": "5a04d37a8c83d373ba07da5cf96806002e3635ad8add42ce6ee9902dfc9a1f271d69371fb6d0d47fff2c2a3e14efdd968b5f906525510164dc0922789de9a364bef2114db20c23e2612e09ff08803f1370dfec0fe7baf7caa0b136307c4c5e28d66131588fd95ef62f045ce5f9fc97fb325a615633cd8b3750e0a59af4ee68b585216212026265666057753762085830687728826203255015364500824305705421788508673025302771854311582767373483402102665584887250778016030712061065380761502612101165404558474224202805007621230464462203685778016057425826815317568238050772886480511037851166340110028128861260455443102346746431860763856471622017425050180675648525378810181776072811033216622340005338886614075570325637871365126625102514372714386215651262883035888186882735136623044213523306773082628331327670166380686860637847735480225154251866458000167681310524352403754743431285760007611167504453407871341566585122186248157656528871414777375514604212473713857715880755217452466552765547571103116775577340526805888582608517271501687335575613163508777326368017651782262147563486803737458175820226282640535882745376418557344128517764663704648266473421507627362855741847253641767062483771431577003622528742541754555283538126218063277457610415642212865785272860763488822603010447634121135027541730132053856857612685470587335853528625287673006660740067107745148828747467378105737675563673630035158431677607703476053047211202662865785547755147672066236487346002377860303756441377465637130071476433050408631515287032557522016415124412332075877570258425456330211868467418120642856576372633652261325222715024638783743186171861336733668106817338115557030361837187742101862103468842371136426532687217056001673728818313538605158860500557560156230048207235127633885081362730082704536018247573410784180717282340546403568276245472708513411278815266833586788160374774788643872827514345643713837253483842354477256048542037314586713324523031845643038500151376685640174056050663250780675801307057876088208756066411843108776645730115257078437415660766813552323512700650800184476516820562567551552285130646380817033028871742634054206101718252575327248338188705041538562187351855145622016264058183741654220238467304622778808736028441101714166800430072405844877284520248118542118510634655810685885145833435215685301485377543437155877077875656275080061815578383736231754112225386161313110561783553214033227315467012608005005482155373246688252866116575420630874416827877888645175202647448136188068213011125518360748372782503005450707815046515730448781368663564651856447431414754067735276010414703833884088654636713747165327332281573023480151541626827321212337214250802680361011166354754226081576124500458162332812265381143530822838703121611803852746568104365872885773288001121184272014882478231480025680664574124608736806187572102766668231210386821073546640384601388305113017266233868666582444544268042874431663606850264533334251076203211018257626582513206133230678348438275316543603240506276801178108543248376246768821855768252037777833441606441085058451537820373165544816815818708581423418330152611557725506875882745171231630715162418605378345582260612866668700018875062702437733366cc5b335379c2528de2db3c7486bee132f92e34b325eb2b474e238581051d098eb8130998a5d0ce7e8ed551a204eb0dec3e53a53025fae317c1d973a27609d5bfc3fdbe6360bd155f107108c4a5971d913a3615b28caa60b7ddc27135a14608d2f43646126402f3f591e175ee4c34f142d7c2332c6ade52ffc31095a5b4e23ed5b63dc4dc9d05496c4bf49b308f526b447e5601d98a3a111c62d349af190cc96275fa4665f1aa379ac393ccab3f5ff0d05ad217bb0a8f69eebc1aedd7dc219668f9742e1e8a2862e620bc60b06ec7700fa9060655a892f183e70f29f6d188d8b1aabc090b8c4ef967d6ea350d65fc02ef4d6f062c3c0421794ec261f42d93d6f12eac55f5803518def6b936c27e1516e547bbed41e86cb23708bd941f0c75d272a1b4c8d09164c99e3330142170c403164419b916f956e80928990ff35b52c5b09f4cb1635d212d912126592f2f73770c759b93bebf89b65d0efcede2d29324c9170a716b93ef99536714b7f5cda111499dbafafd5412efeb291f874f0401f52616fd6eb04ab7d4df4b69322ccdef1a0a5a35cb365d5b0b02d1e5c78a9e1fcf1c02426add4bea769eab6f5ad19358ebe3e6c45603fb5d056ffb4474984b7942ef2c03b3e2b2fd000556ffd1ccfdd874f5628809bd39e396e172b3b1316f77b7e11290a0c584a148ef9575e7de4547a680808a0f09e604b7231e4d627995be092d61141b874fd03da36a8933ce3a1262099097806fe9b9a0fba7b16a0343f3e76e69ae9d91f68963c4b48f9c7bac411600ce4dbf87b295de39bd819dc632fa45e3943810cc231a4b285101797f2b6d4f08ccb33daa67eb92d632eae427c63426664226ded96652d32c9b18c25c421db3b0984aebd8289e248dedc4903297df22783366de4b71cec53c308e394225042017b7f92688204ed6bc8b0c5f34011ae3335079eea47f617563498be1205166bd3a1c7bd8110d9e6503a0dc72fd550de1acf401dcfa212ddb3790bc61f04e4df9fa0112d977779f6dea4333a19749e17bb70ec8a7a18ef4373ef131d89b3f77182fda0c9f98b7a614967a0708938f2288feafd89d19a1f542606874f2eba5a0b7582b5506ec9d907b50dcbe0edf55f32a22ac3a62dc906976ed327d530c67103b5aae417a1d9dbd4538772daec64891b90e913bba087f7b1cfb8dab9a0cb95a19bad82ae6c34102cfb34f783dcb78308509325fcad64d301b59a50f7eb1337b279fd39fbf2062a314d56b1ac8d809997dbc094201a0ba7e46d2c79efef3b2f738c534083edd16c41d2d0fec673c1f15e9c3f996e830ec248f9f27049cb276c59920bf690caa54a8ca5d012a004e1aa12ee181b9df54a2688aeb38a7194b64c4be3adf2392b7ab5fc3de1a29576dc9c70060bbb633d4af5e890c6c6f7567c6cb17cfe14f75d8eaf1a303393b68520d88705b6797a78e991d01735c715d5b93f5231d04b662cd949677385415e210fae274f454cdec9081222cef1defb7818ffd1640d55cfab872718786f26fde1d00ff1192060e5d67769246693eaf49d88f75a9910a83888b40ca630fb3af98d1c1c268dd5e16f7b8e501bfb2fab98129e09439eb3fe7a6356c1c1c3019568a0dd341125536d8006a23003f1557fa1cbede1a78c046bb91b00e3f350019b7995864734c0dbdeca44de7afc847102e270d880b6ea6d01e5903228e7c7ce66ca0e1d94b6cccab8dc3c90ca168ab8a131cd9160b515382f9a667b54365cefd27006f0edb52b8dfc61237cec28e31e3e8aa8e2a1882c13d3910ef0fe61511ff5d230eff4bb990ed7f471cb5351e88d780d74686097c1c32eb8e918fb07242aafbd52f3c584a7f669fbb6d71e01ae12d5f21824bb5fd1e4812d7cb93519f62fb9bb3d7dc2eed33bc85107edb0618fb01bc38ff89f3de70d39a602b2b21413bbb55f1541eb9d4b6a997e10eff77c759e5565353dfbaedc2942053ab72c64c9bcdf22cc3f99d5130fb4b55eada0fe8b69368af8d83282f3bd2a9686b18d0682184b48ee0a0a76b1464a31b37acf8dde3a295a3ab293907fb4dd5a6703c765926e23fc58bedd769d427c1b73e0a6e5d9f21a5df54292187b9d32a2ead8b9f91540efb7e98a390f76c1ef40e9fdf9253193d5318e1092d104a7312ccad9e2fd5c9c5214ea4626d429c389dfc931333181b931e5ea723e34034a0282174ff89130533c1e6284a99f6a01e376cbb79a136cbae3bcba43fdf94616ac206a4deb4ede69a2c126854cf9a7dd351c5290951893ce6bddd3a97faa51f0807693ffaa6ab7c7a1af39883d78b8600651d2709f9c01c73d62750d7d8729fc5b410fecfa3147cd06e8a8e453929e22a1b4e6c3b5909bdb605d1b52a107812f37b0ad7f875162c403600f19f6c9181977d2e1670e7364b8184c5c61508f5c6903925bffe36b605300584e251383c859a72908260ca1a78f611364a80fad6387aa3b71ecfe175a2bb9eb8c4c801eea2a82d90f4a5483e0abe46f541042dcd4157e94e2865993b9fc45f257cffbcfa6228fee327463adab4299143e6b175065cb93cbc21b2ba4efe06dcba5477d4de623b221b435ed0d5100526393e0cd1d1c6b200277ce8f7f020f79e5119f85643d4089217db311d76ed9bb3576b6ac21f118af5c9c5bdeb9487014b5fcef89a14b5f85c3e9416a5d333e7a501199c55f388b157bb89adda91a5bc39d212b3526af5c5e7115c2419d6a92db81b5c8811b16fbb66ff09f52879b4f96aa412d768a53fc11d9651844f5e7ce16bef00da7c2d8a1ec61fa3daffeed9b4d0ec314cace4f38ca12911e9c71f63f4ecb877bed1b95ddc57872ea136d786414038834d9d00929f9c40f0e74273e2fd55d331f1b61370d8a0ef0dd212525158fcd4e0b7e6d8c3f1b367cd6395337c751d35e8d528908d7f92cb7baf384577e9902eba8b2d1c50c440dc18135e6ceaf16093e810725437c8c118c2ea9d09bed3f71a38c95f7baa0822b25f662d0709783ed0e725bdb9ccf936bf66c4a660ee6ef5f9c1a0e0227582a1a304070b286806ba772c8f1fce8ec5eb7a8735e8d15b8261d8852ec913816cfd739475d1412fef0e5a85756385a9626fee1f4927aa227ac930db6ade1da75b6752c1191ed766fe9cee652c0d34f96a5cd596b96da30a841177307d32cf375066c0f56478a3cd87653d13c010793f6912abba2c2bd53c547fb5992ea521f4c59dfe955545aec832833e6a4b51f745b1d6677947bb6492e991a2ba411d74a5e67faac65d8e9f451374987d21f17fe15f99856173760ec4692d52bb1bd51fbeb29302bc09009279272bec9141aa2444ad020ffa416fa35943c423c00261d54770074f78dfd640cade82f9e7280b9c4ec3f8bcbc63a2286b5ede8e21a06b1c251b525d1f41febc0dce86225b0edd6de59d768df541127649759de213d1a84dd0b03eec32006758b069c1e0a21121a15c706263fb3e53d6f37d04c77e35c9fd70541b2d5ad0dcc826c143fcd1076319108007a9dab1d6be5e0ecd59d60905813200", + "tests": [ + { + "tcId": 52, + "comment": "long private key", + "msg": "48656c6c6f20776f726c64", + "sig": "", + "result": "invalid", + "flags": [ + "IncorrectPrivateKeyLength" + ] + } + ] + }, + { + "type": "MlDsaSign", + "privateKey": "5a04d37a8c83d373ba07da5cf96806002e3635ad8add42ce6ee9902dfc9a1f271d69371fb6d0d47fff2c2a3e14efdd968b5f906525510164dc0922789de9a36401c37f701d3534f2b12bb1cf025d76c2e28cf618c0dfe01eaeb99e89244bd9addfb0ea382be7fd5b84fc7a542da6df8018393c1cb4447cd8a57a2a4010ef668c892162120262656660577537620858306877288262032550153645008243057054217885086730253027718543115827673734834021026655848872507780160307120610653807615026121011654045584742242028050076212304644622036857780160574258268153175682380507728864805110378511663401100281288612604554431023467464318607638564716220174250501806756485253788101817760728110332166223400053388866140755703256378713651266251025143727143862156512628830358881868827351366230442135233067730826283313276701663806868606378477354802251542518664580001676813105243524037547434312857600076111675044534078713415665851221862481576565288714147773755146042124737138577158807552174524665527655475711031167755773405268058885826085172715016873355756131635087773263680176517822621475634868037374581758202262826405358827453764185573441285177646637046482664734215076273628557418472536417670624837714315770036225287425417545552835381262180632774576104156422128657852728607634888226030104476341211350275417301320538568576126854705873358535286252876730066607400671077451488287474673781057376755636736300351584316776077034760530472112026628657855477551476720662364873460023778603037564413774656371300714764330504086315152870325575220164151244123320758775702584254563302118684674181206428565763726336522613252227150246387837431861718613367336681068173381155570303618371877421018621034688423711364265326872170560016737288183135386051588605005575601562300482072351276338850813627300827045360182475734107841807172823405464035682762454727085134112788152668335867881603747747886438728275143456437138372534838423544772560485420373145867133245230318456430385001513766856401740560506632507806758013070578760882087560664118431087766457301152570784374156607668135523235127006508001844765168205625675515522851306463808170330288717426340542061017182525753272483381887050415385621873518551456220162640581837416542202384673046227788087360284411017141668004300724058448772845202481185421185106346558106858851458334352156853014853775434371558770778756562750800618155783837362317541122253861613131105617835532140332273154670126080050054821553732466882528661165754206308744168278778886451752026474481361880682130111255183607483727825030054507078150465157304487813686635646518564474314147540677352760104147038338840886546367137471653273322815730234801515416268273212123372142508026803610111663547542260815761245004581623328122653811435308228387031216118038527465681043658728857732880011211842720148824782314800256806645741246087368061875721027666682312103868210735466403846013883051130172662338686665824445442680428744316636068502645333342510762032110182576265825132061332306783484382753165436032405062768011781085432483762467688218557682520377778334416064410850584515378203731655448168158187085814234183301526115577255068758827451712316307151624186053783455822606128666687000188750627024377333667f9ea90a30bf9214ea584ea87d0dcf45fe8c7d03d54e169a64cbb64533f801d4563e1718d439e86f91e421b90b02f63a4d8bd005575dd0badba5388c48e8e3167d1bd314810fc2c529c220c89ef3d1bb549ef3410719e6ccb2e2c359296f20d9b717704b98ec5861d0b74786be357e3368ec11fd0783034abe1d432ae30fa38ea10775686453b73450bac84f76f2b525e6a9b937bae8a593bb3e1d8fa3f33a55c20864923a2274bf766c405e785113e5efb2d572369148be39e03835a05c904866719106c11eceaeb08eb553cda18be3f685a30223a16b09f4516ff5a3a28aabbcadf48a7ed7916227aa6b04ca899e157fd2fb1219671134ed555b9d8c63cf769d5b2277c43689e215dc1886440d25b0d51e42fe94cb5af18b316f7373251598dbbaa2c828fe8f90c3892b65f159b495c7b11c3a315eb1908df603f7264b41281a6f2c7abe75b76c45b9e9dcd563d0215c022a7870ba9a77c2756cf4b9ac44be1e89b8d58108211a89b33ce610abeeab2603a136a2cec9f4a2e3abf1200baedaa33c5ce3c68004a2c9e49399239fa73ca36f9f7c38aa3f5c774e5ebfd38a416411fbf9d6dc424f1d35cc36aca3ab5e57723ced977a4c36f6f2d52f2cdfbbbb60f8e8cbd875047159b83b997837b4ba6914ee408f5c63ea8168d8386ce4be6d58a52c0dcf7e36ce356d0493e79f13832ccfda167e87339881f22d5c04ef3180abb68bf385fd85a91f2bad501f8c11d18b111967f151e75b645fe6c6e9132ea9ebfb96bc015865dedcc03a80b689dd9884ca2b03b9c3c139765b085764290e77b6f98424677315e92f9fb581cb6322ad0a6104f5b99e646e43f40115dcf43304fa3ac29e4ab019dfb5f95b1d15ac6dc7285a77066ffeb17308e8d630fe0c66d63e7fa641de17c0f18814940e4d46855f421894be71bfb4688c74bde7c96748d412b3dd77f702216847cf997b9a6f25ed951b17c4d4939c30b6e1d703a74201bc7a962900dece72a038d69e0679016aa4d198615f37e484c953e773c2d813e74d73da6f291cb7a079c297f240f779ebd15a53e62cab45c98b2645b956e20549504c1edf3b96fd3e2dd50b69e0d8a6af3e286fd8df55f4623b9c5560a7e93e7341262de6c09f1ee74101f5ab2949254caa89f43a268e86a790941e90ba460fef076e7cfb16f33ec06d5fbe61bb8d407f7a14edc7ef1bb61d9130d51559b484f7214018c97a875e87d76f96879d48486193b94553f6386ee0f0581f0e8d4f894b66f7e859f7857e089a76bcc3c7ccfc1c623c9f552579afad69bd87d050a38b860c4d8a5dd9dbeb9dcf2e2a0a21051dbdd3ee12de710cd6ab69ac26c4d97ddf5c503a7f2358995da75953841630e70ace374e03371cb1987259eb2d9fb19e28c5a46bc0e247103f9ded74fc99171a732dcc9836040389b7db854bad92c95e64d383c53324b32287f7dfd582854d218c261f49fb32aa6338d590abe900bd5f75b9db18624ae6b725bb1567226c85f5cbe59663d46e6cec63e1e11db91fecae53cbba9e45ec3f5b1b7750cddb93c41f86eae0f30d760e07980bc7e25f8c333b9153d510e5c1b92b6468a6ba76202e87c73087660adf1145f99dd5742639e034c63f235375f12a07283e2b0547ae90199eae17333c58f5af5e03e9f2e34d3752e763b618045eca78b845253a31005fb886872b30fb1c3949db436853a55753f8e427227fae92e30c3c6ba8c061da52b63410c880ae255df765742821e0236e7c5b582bf922deb404c5f7961557b150eef668b04baf50c3a2d3e21f7b942d4bf9dae3c25bd81a9ae3a0d76fe1ce0998c310cd936597ae1e178f99df6adb7b46c08a909dc51919d12dc2cde5a7d55ebb442f1f58ea53bf92a92a2e13e9917447ec09da24fc7499c5a140754d443e947338d7723c2e89c620a55650c630e63ef3d732b68b79debfce10db8a52d9f325e2c6df03e9ba4604bf928f01ece3f26ce8bca0e152c33172f065869918fdc70866823809a228993ca4282d05cfc1dc40adb514f68e5645fa7ab51109eaa2a16b60097c83beb377b5366fc564ef77ff33daa536d9bf0bdbc8f4c8eb31f1f241ed65a5ec257d0aaa689b7b7dc2b3145381165ba0e3e13860cfeeffbb295f0be75536d2a9d60ab9ddf9c2759d49de5a518c23f43f8fcdaa0e861e3f1bd0ee0fa8b4993516d111b7da0acac70fcbcbb5edd6944cfcc320f7371545ef4f79732bd215ff8db228bbd801609af01cd2aec750e13d573b6941a0dc41eb11aa9c8cc3f734c28738c7337e13754e3a3d5a378918b308fa305719b89632623daaa38c44d740d22e7f3b943acf23a7d9e416bfe75c865a363cbad9066f2b364cabccd7d25d1d4f05474594c5730918e23f2f7df47f04c5ab2a21830ef70d4340399e46deed555b0f1362fc4200ede6cd6b15c4c951bdfa98f3bc69867d884f44d70d2c8c333dbbde59208d29937603777b2fb97d0a9117202f972cb03d0752ef69fc72a4a63d63b889e83d47a190889ec5a2b543ffe04b0f51e232ebc8cd1c42a8412e1e468d9db1c80d69cd41132dbc1ae272ce5f2a53af70836025eebb061db84d10b5700959e1d79fbbcf94e95b82b7f652d8a785b0c347d0dfc74d78acfcb97352dbb69e8e02b2034d3566bd3088d782b01b980c8da9166caffdb68dc0a4ea0b67187ba124058236ff727a4f15b16361168a3816a9b084114443da01ac1ff83e754047a025f42861ed697a799db164d32748b74a3bc5112e7b14c7a7fba184278a4daf17982ca8b30f6325b69f7d6e9b191b6c54766825fdc50d03218c9a00f89c6bb9e0fbee658a68fb40f60a88cf673303326f92909e23672e8aaba8670d16c498cdac10cb7f1942df44890e4ec29be4ee7d1e8d87d42639239a6cc9cef7c70c0aed3057d9204795b3aacd78699422c69b10e77285a51c0241f37ea3cc251bcf8c2c3478344714a6862e2cfd5a16127f2a14b92788fa6f3d9e64525c8afae9d383c09d286be154a4b9d533fe7cea43e7bff797d7247a8cbf9345f1b25fdcd9567363d23b1d4e49d10a228e5f0fb1c4750b406df731daaeeb5b6a02c795e6d9fff553271031ecbdc2c4849fee22ec26fa2cbc5dcf354e7938824949ffd01d5ac45fc71fa7c75de411d023060e79725cd46e6064b5d27056d45687632952a6cf9ffe773559acaf265c9fb92f7fd348cdd21b0334493e5aa92b1012e2067760b6beee9bd3922a436aa2c218f2eab0992b1a654663befbb0559fdb9d6750121128d5cacc8e8bfd6e99d37cb1944f578cfe516a10c584f5833af9a6f895e77a433b5a7c997bb4aca1d5e8fa5aba5f876c49be22e2a200b0ef206655d3a0d440874d117adb20fbea3c4880682480e6ec0ec0df50b64f1222fe0e80524861bd03fe1990a8a014ffa43fd6cd1c0e046fd7be1eb981f9312fa72e3a3259dbe4e71c66318a6573ae1bcea28a37fd2ea38542078150937a2371efc3aab7a7b75d7ad6902f30c5f36e3c271935e96825261ae9340df4f3d2c36c743d08406a", + "tests": [ + { + "tcId": 53, + "comment": "private key with s1 vector out of range", + "msg": "48656c6c6f20776f726c64", + "sig": "", + "result": "invalid", + "flags": [ + "InvalidPrivateKey" + ] + } + ] + }, + { + "type": "MlDsaSign", + "privateKey": "5a04d37a8c83d373ba07da5cf96806002e3635ad8add42ce6ee9902dfc9a1f271d69371fb6d0d47fff2c2a3e14efdd968b5f906525510164dc0922789de9a364bef2114db20c23e2612e09ff08803f1370dfec0fe7baf7caa0b136307c4c5e28d66131588fd95ef62f045ce5f9fc97fb325a615633cd8b3750e0a59af4ee68b585216212026265666057753762085830687728826203255015364500824305705421788508673025302771854311582767373483402102665584887250778016030712061065380761502612101165404558474224202805007621230464462203685778016057425826815317568238050772886480511037851166340110028128861260455443102346746431860763856471622017425050180675648525378810181776072811033216622340005338886614075570325637871365126625102514372714386215651262883035888186882735136623044213523306773082628331327670166380686860637847735480225154251866458000167681310524352403754743431285760007611167504453407871341566585122186248157656528871414777375514604212473713857715880755217452466552765547571103116775577340526805888582608517271501687335575613163508777326368017651782262147563486803737458175820226282640535882745376418557344128517764663704648266473421507627362855741847253641767062483771431577003622528742541754555283538126218063277457610415642212865785272860763488822603010447634121135027541730132053856857612685470587335853528625287673006660740067107745148828747467378105737675563673630035158431677607703476053047211202662865785547755147672066236487346002377860303756441377465637130071476433050408631515287032557522016415124412332075877570258425456330211868467418120642856576372633652261325222715024638783743186171861336733698106817338115557030361837187742101862103468842371136426532687217056001673728818313538605158860500557560156230048207235127633885081362730082704536018247573410784180717282340546403568276245472708513411278815266833586788160374774788643872827514345643713837253483842354477256048542037314586713324523031845643038500151376685640174056050663250780675801307057876088208756066411843108776645730115257078437415660766813552323512700650800184476516820562567551552285130646380817033028871742634054206101718252575327248338188705041538562187351855145622016264058183741654220238467304622778808736028441101714166800430072405844877284520248118542118510634655810685885145833435215685301485377543437155877077875656275080061815578383736231754112225386161313110561783553214033227315467012608005005482155373246688252866116575420630874416827877888645175202647448136188068213011125518360748372782503005450707815046515730448781368663564651856447431414754067735276010414703833884088654636713747165327332281573023480151541626827321212337214250802680361011166354754226081576124500458162332812265381143530822838703121611803852746568104365872885773288001121184272014882478231480025680664574124608736806187572102766668231210386821073546640384601388305113017266233868666582444544268042874431663606850264533334251076203211018257626582513206133230678348438275316543603240506276801178108543248376246768821855768252037777833441606441085058451537820373165544816815818708581423418330152611557725506875882745171231630715162418605378345582260612866668700018875062702437733366cf5b335379c2528de2db3c7486bee132f92e34b325eb2b474e238581051d098eb8130998a5d0ce7e8ed551a204eb0dec3e53a53025fae317c1d973a27609d5bfc3fdbe6360bd155f107108c4a5971d913a3615b28caa60b7ddc27135a14608d2f43646126402f3f591e175ee4c34f142d7c2332c6ade52ffc31095a5b4e23ed5b63dc4dc9d05496c4bf49b308f526b447e5601d98a3a111c62d349af190cc96275fa4665f1aa379ac393ccab3f5ff0d05ad217bb0a8f69eebc1aedd7dc219668f9742e1e8a2862e620bc60b06ec7700fa9060655a892f183e70f29f6d188d8b1aabc090b8c4ef967d6ea350d65fc02ef4d6f062c3c0421794ec261f42d93d6f12eac55f5803518def6b936c27e1516e547bbed41e86cb23708bd941f0c75d272a1b4c8d09164c99e3330142170c403164419b916f956e80928990ff35b52c5b09f4cb1635d212d912126592f2f73770c759b93bebf89b65d0efcede2d29324c9170a716b93ef99536714b7f5cda111499dbafafd5412efeb291f874f0401f52616fd6eb04ab7d4df4b69322ccdef1a0a5a35cb365d5b0b02d1e5c78a9e1fcf1c02426add4bea769eab6f5ad19358ebe3e6c45603fb5d056ffb4474984b7942ef2c03b3e2b2fd000556ffd1ccfdd874f5628809bd39e396e172b3b1316f77b7e11290a0c584a148ef9575e7de4547a680808a0f09e604b7231e4d627995be092d61141b874fd03da36a8933ce3a1262099097806fe9b9a0fba7b16a0343f3e76e69ae9d91f68963c4b48f9c7bac411600ce4dbf87b295de39bd819dc632fa45e3943810cc231a4b285101797f2b6d4f08ccb33daa67eb92d632eae427c63426664226ded96652d32c9b18c25c421db3b0984aebd8289e248dedc4903297df22783366de4b71cec53c308e394225042017b7f92688204ed6bc8b0c5f34011ae3335079eea47f617563498be1205166bd3a1c7bd8110d9e6503a0dc72fd550de1acf401dcfa212ddb3790bc61f04e4df9fa0112d977779f6dea4333a19749e17bb70ec8a7a18ef4373ef131d89b3f77182fda0c9f98b7a614967a0708938f2288feafd89d19a1f542606874f2eba5a0b7582b5506ec9d907b50dcbe0edf55f32a22ac3a62dc906976ed327d530c67103b5aae417a1d9dbd4538772daec64891b90e913bba087f7b1cfb8dab9a0cb95a19bad82ae6c34102cfb34f783dcb78308509325fcad64d301b59a50f7eb1337b279fd39fbf2062a314d56b1ac8d809997dbc094201a0ba7e46d2c79efef3b2f738c534083edd16c41d2d0fec673c1f15e9c3f996e830ec248f9f27049cb276c59920bf690caa54a8ca5d012a004e1aa12ee181b9df54a2688aeb38a7194b64c4be3adf2392b7ab5fc3de1a29576dc9c70060bbb633d4af5e890c6c6f7567c6cb17cfe14f75d8eaf1a303393b68520d88705b6797a78e991d01735c715d5b93f5231d04b662cd949677385415e210fae274f454cdec9081222cef1defb7818ffd1640d55cfab872718786f26fde1d00ff1192060e5d67769246693eaf49d88f75a9910a83888b40ca630fb3af98d1c1c268dd5e16f7b8e501bfb2fab98129e09439eb3fe7a6356c1c1c3019568a0dd341125536d8006a23003f1557fa1cbede1a78c046bb91b00e3f350019b7995864734c0dbdeca44de7afc847102e270d880b6ea6d01e5903228e7c7ce66ca0e1d94b6cccab8dc3c90ca168ab8a131cd9160b515382f9a667b54365cefd27006f0edb52b8dfc61237cec28e31e3e8aa8e2a1882c13d3910ef0fe61511ff5d230eff4bb990ed7f471cb5351e88d780d74686097c1c32eb8e918fb07242aafbd52f3c584a7f669fbb6d71e01ae12d5f21824bb5fd1e4812d7cb93519f62fb9bb3d7dc2eed33bc85107edb0618fb01bc38ff89f3de70d39a602b2b21413bbb55f1541eb9d4b6a997e10eff77c759e5565353dfbaedc2942053ab72c64c9bcdf22cc3f99d5130fb4b55eada0fe8b69368af8d83282f3bd2a9686b18d0682184b48ee0a0a76b1464a31b37acf8dde3a295a3ab293907fb4dd5a6703c765926e23fc58bedd769d427c1b73e0a6e5d9f21a5df54292187b9d32a2ead8b9f91540efb7e98a390f76c1ef40e9fdf9253193d5318e1092d104a7312ccad9e2fd5c9c5214ea4626d429c389dfc931333181b931e5ea723e34034a0282174ff89130533c1e6284a99f6a01e376cbb79a136cbae3bcba43fdf94616ac206a4deb4ede69a2c126854cf9a7dd351c5290951893ce6bddd3a97faa51f0807693ffaa6ab7c7a1af39883d78b8600651d2709f9c01c73d62750d7d8729fc5b410fecfa3147cd06e8a8e453929e22a1b4e6c3b5909bdb605d1b52a107812f37b0ad7f875162c403600f19f6c9181977d2e1670e7364b8184c5c61508f5c6903925bffe36b605300584e251383c859a72908260ca1a78f611364a80fad6387aa3b71ecfe175a2bb9eb8c4c801eea2a82d90f4a5483e0abe46f541042dcd4157e94e2865993b9fc45f257cffbcfa6228fee327463adab4299143e6b175065cb93cbc21b2ba4efe06dcba5477d4de623b221b435ed0d5100526393e0cd1d1c6b200277ce8f7f020f79e5119f85643d4089217db311d76ed9bb3576b6ac21f118af5c9c5bdeb9487014b5fcef89a14b5f85c3e9416a5d333e7a501199c55f388b157bb89adda91a5bc39d212b3526af5c5e7115c2419d6a92db81b5c8811b16fbb66ff09f52879b4f96aa412d768a53fc11d9651844f5e7ce16bef00da7c2d8a1ec61fa3daffeed9b4d0ec314cace4f38ca12911e9c71f63f4ecb877bed1b95ddc57872ea136d786414038834d9d00929f9c40f0e74273e2fd55d331f1b61370d8a0ef0dd212525158fcd4e0b7e6d8c3f1b367cd6395337c751d35e8d528908d7f92cb7baf384577e9902eba8b2d1c50c440dc18135e6ceaf16093e810725437c8c118c2ea9d09bed3f71a38c95f7baa0822b25f662d0709783ed0e725bdb9ccf936bf66c4a660ee6ef5f9c1a0e0227582a1a304070b286806ba772c8f1fce8ec5eb7a8735e8d15b8261d8852ec913816cfd739475d1412fef0e5a85756385a9626fee1f4927aa227ac930db6ade1da75b6752c1191ed766fe9cee652c0d34f96a5cd596b96da30a841177307d32cf375066c0f56478a3cd87653d13c010793f6912abba2c2bd53c547fb5992ea521f4c59dfe955545aec832833e6a4b51f745b1d6677947bb6492e991a2ba411d74a5e67faac65d8e9f451374987d21f17fe15f99856173760ec4692d52bb1bd51fbeb29302bc09009279272bec9141aa2444ad020ffa416fa35943c423c00261d54770074f78dfd640cade82f9e7280b9c4ec3f8bcbc63a2286b5ede8e21a06b1c251b525d1f41febc0dce86225b0edd6de59d768df541127649759de213d1a84dd0b03eec32006758b069c1e0a21121a15c706263fb3e53d6f37d04c77e35c9fd70541b2d5ad0dcc826c143fcd1076319108007a9dab1d6be5e0ecd59d609058132", + "tests": [ + { + "tcId": 54, + "comment": "private key with s2 vector out of range", + "msg": "48656c6c6f20776f726c64", + "sig": "", + "result": "invalid", + "flags": [ + "InvalidPrivateKey" + ] + } + ] + }, + { + "type": "MlDsaSign", + "privateKey": "d83f3fe5bfd9895f3fca5d0b6ac999618c311772d3a9dd13d5f1dceae0f8dfc7d86c63ca8cf54c480edd1537e2482258fdacb27328f58bd2cd8055ea13be3bad08ae1092de5d43108ef9642495c5a1463317cb454b80ef2fd81072d92f9e93d0e1e248d4c3814ac62669ede39f05f36164fd1610a6d26a9c187a12b8aee8dc0905621382285870471134125485250844255442123244784880547268512633727337770546561634253401607317387373742276857434176786134680186282884138162341105032436114487587361614825265003743542077044014637717428071888830204235344735508768473564714131046021657546183437443841062682803813641721071641738886054301466850256112063147100271616112814876368374624345134475841516088333868260155187475272062267325526227164340561274317808608624583371163012362731844370315218218703456715385734028664401747415606705217177385721370841154338772368705305700366467755113257144784814107026041348176141846745605700208022665246682525357374470882022853834707235706003418167606203413810262242710038838515881260083746451866384576425368001252282184658214332207073243133063206883185703636721603305267885742482436774833663108244410401254378680257606056281870032600013063722605263501436121438003306361400508175316861102253221683218426130107101450502624712016188178186885835618468151764383132002037426788822462646334456356104540230845360853145887824037071870705675517356836081240754656548301034233465413055705723647885442818784714123443476032275268274876620684731506332320184028454826018261270602471163214452745182584768011750066462420700408022112167677443276264156261662023583717551060603843481054118602503815716171554167363010661616165167307551743386401312023444051676765067364257247535444588130760686223782827331225678674532658123324441733000440127534267225820268711001483113416170508235700844388865058645541582400322402110133286110841735642872267677424708812784620218651436842641625586204716611776715541243122626300857516266566575406181600656633746426427040605248250814184223183868381603572064646067671475635152314438574544776205366182711080774078413276800342258617867501040788344271327372368886311210384160413345532177278017235752255086055667483067020882626877754538633433610233037006837832875054285273046050270417512484138780231500015818806027560653625865250433881547683047881880107842300167356087786388071382464445747866870200455708020147304005565832022870614374417263724112308765014277366533272036781370007584236072114552752755743576678045868207804821738217614116160722788741078526756837256317877724156821547533556363455742148231173145636847706163820163557457033127117182584521450602880243106888286010613575007157860517226586582705687428708665653823450014840785434500752408618777432238387857187502588473051573712674068323728600406155714330434483248332330035516883840215848020046204481537332073007356386635524346023801146656667768025831438633264340053115116313045485428633701788422713850435022406083313738304232273718188161503856155348228057625214887361652151217027260546461061712338632841330437535648850681540536383778545061224304564384802318180034548402028602350344712554244542231280227008737078052016877458367121011466105126076452407543240056255056bd4136c3776fcc902bb88a602a6c3ac24950586a22102399a7c56ca5e061112887a23b60ae33131e73a72b4d26e3779f7440c1e053e024c0c8e250a481b252197389bcd4ec35972134e4ba9141440d07c835ff488a883e66cd2774b90033802460569d0988b231cc18c6831726fc8e1375cc220a7ee37e22945a237494389f40e1c618466e79aef7ffb059066031ed6b7e30114127b843a6fcec5876074d1d70e44048f29af7e070e5cd50fabc06fafac325d072bd20a56a2fb087d126ba3132b06417ddf9bbfe24e2244751ff244ddeb9cad99e5e22ea438c0af0ae2f90f9b395c9d8bec9190455ad64a536fe932f98eef9562e72230f7cf3a6beafcd90d47fe71d7fc5fabfbb240e32d2c4b00ff6280b5838de87cf1983f05327941a768632576061b012a0c54ccc3e75ecf9b8012807a74ac0033e50065e02d8c9f5f4899dccfdbee9fbf5da27f96da155c8dd4e8f82b6d8b0888d6001e1423e6354c828bb2d1471fd0d303a440b6625f660fa86796fbb76a8db811a82acb597e021d6eeddf3a5aba50481b54d02506c86e452f0d1e761e2269c39961f5d8fb3395e7920479013ad76d755549a28474a5dd3193f10ea67b2111f81dc797ce4cfe2137a0bd46b0755236577b793bd85e70db87733e70026c8cfad9c44ee49e0fe6169ba3aa1c6a537bdda3ac68426634fd54b06e644024351bb34dd6e6c45ace2ec75f8a0bf9b7d1e6d6d188b5f1219d0c53ad2cfee59b74b57ea4f76e26c519b94d7a7d252d22f92aabdd0762481192bd75a7ff374eae81fa9a32aa173bbb50b6389c24af000c1d148452b17f79a54fe34b6a1d610b7feae05bcc550ca49c7e490a51486a3d0f54150b5ff9f0d410b800b5d5da757a86350de63b9bff23c4b63aefd63126fc05b1af10ea098e380d5f3e42326eaf7eed02ef3ad26a8148b632e5859a0d3c3574df1c8c689f9977bf6d54af7d548290cdb4a11b25e902fb7fa1d2545dc2b884675c0e62f3f777bf021a36737da086a92d5e7e2931a41657a461221034261e3aa80d223a43854257d871be334b668c5d29a3f72b9322d4295d5e30b59bc8df6011bf4c660a06ad6e84b1523097a147edc22e5577767b4c468717141193b2a0ad609abdc84924d556b6cb69756b571825b490eb70e7b605a900d48bccacc01e7ba9a593c4c6517e1614a971d64f155d22ee51bff473e33772eaa85928c8d234003ecb833ed82309e854489c22a176ed157ef93a0802660c873b36f2d56ef76e015608d1c2fd778ce9da2d3a8c677d508416cf03249ad45743bf246c03cf26eb5524620ce3d452d7bc01c9bd01e15c926a2872b61eaad907a2970bec14a003bdfe6c5f5f206f2aa06c0c9fefeb516c0913b22328c266f80988f8315c0c371e199a43428a281517b7070bd4134b3ec9f7a3e944cfe6fa7ed219bfc942290b428e5dbb3502c9b3bd161aac14e200897de8dd6e83751b951d9ba1727e4e8cf83a73b05dcbbb0dcc9c968e157ba940810226d9e9a55351fc089925df790983fc215f570d5e5c9f46dd2d76ac4f2c3e35a686320ff863ece3d6fe027d184d180c3cff1cfe70895e3649c5644a16e4a7da3f2dbcdb0c89802a72799d2f62dde05f4abd93000911a1606673cd57c016af4c58d9ee0ee596770dc23633b73d7dcc44d7ae9752aef7c3589c4ee6565a2f911286845be1dbad3309e84896d8444a41cebfa57ca89085107b227f10c161fa3f6c6a809b4ace3243a4fccb1f24637d9d80ed201bc7f56cbb78078820a958e580b31a29a59aabd1a7b01a90c7287a66e5fcc367488de7ee06ed2176da817510a16568b3f5146aea6ecebd11e73ce48ae783765946367997e5f2ec3b619c99ca7e44bf1cbb35f400f891ecd0bd4d57f67f46a767d74fc3c615b85830611bded11d8fd0951698f9e14c7d01408af2735291bbe2cb2d6e189a4ba273a2867e00f9dc47de76ce306d08d702e09a61c022230862f38e9d434e1f652fa8644e523b704c4a4d224df227af52508ac86f2c9acb2cd8b73632026d8a235d448e0e58bcc1012bfa8c3fae888fee75f7575c82e2119b2a1a03090b234c7bc3ed51e83b7efaa1e8061d38110145a2447efb04c56ffd6405ce3a6831cd23bcc67e3a8bd01230c3f21056296364cd5f89db3b7c906f069a1d7ae5dfc347ff602bde1dbacf0976e18d256f7ccbc7bb7e3081ead70095bbb0f69593d845eaa64a751bdd42f8d82cda14edc7c533626f49803c702e13ffc39683944a673f2c3b27a715ef92708a63a573522f8b6f5a1b048f3868967b38ab48de71f10006115b5444f26fc22e401dc4dc51d3ebc4a26dd9753bf74a7b1353dd295c77d11b8e402f72e1209f1e62dc654183f8f7e473d8e42712c108ebba819fd58703a2ded0efa29f8e7c35fab62180e09b3f32ae23d7ee757af0fef6d46ca0fe87ae88f064f074e860216c038ab79e7342d95f222290d5bf75466fd88c00c41db0cff0702daf4e4657736ed1fed2cd3736b1cae65a62b649ab0cde2b67e16e20ac8a8f494dc81995163d1963089cd0dfffb52df2e897d47f4394485801423bc01fd4a3f8c476425c72576ef3cb21b313d104457fb455652baa5fbed435b223f68d591a662674c443186b26cddcd4088cd9cab68ff8ae68f5da1c1b6db149b325d01678e1f5f4ecd1967cef392197c1774bfd1853c1bd6c08e03dd9d47143c694c4af7d67c5f0a400eac989a9f05fa27c024661120847e7db8160a20b32e9f254bc99df8c4c65e9d76a88ce3b2fedc463645dd6ad44d80d5075f29358eadb1fa2018d4129ed7a7fe1ee6db69fea19804ea11e9b410a42c01e89f1d7343f021aa15c1c4f8ad04c56189bf336aacb4629ede86b3f4bca1eed91c26d50aae129f6da7e9cfa1b477b2023a4d5b05e9898f69ddf43209a50e8352c4a40a5482b642e9639566f3eb7da60e5c4ae6e73d9b84c1795d6db56da68aac9fa54f5a52da7abbf3ab2bd59ffb4c9bd6a2b8f42f75b21527ba77d3f8b285e624900827b4716b5df3361cd65bea88f5922e9791fe91c7a2f579be1aa4e3e1a500eba20c203f734fee8a0707e28b058b707a1c4081e71ca09e3aa0f3a277296798fb3f40b7b8629f77fc18ca9721eb1ea8d5e1d4e647faccf666a501540e9e255cce8aae3f6d450fdaf18ffc23467b7a628bde5fdc566088ff2a730772ad2ed93a1852c3b1039ad47af727ff762995b53fcc65d00a8191e44a1641b8cc830fa66146ff710ea12f036146dc87c71ba1518ed51c10ec882514043936c93a0cd483fcbaa5b697733a21000fd0d9b1f40fd1d103160ff9207f9fc4c7f6e30b9cf56f37eaba63735f91e0686c95ef2cee963d4585381b93e069cb3b9f59cfea501744885969f02adc0b997f014a4a28a586f158145ddf0158db06103652d37000c4c4fe692435915a9042b81d7c519bc59a1eabeaada5618bbc8f21700c00eb8c28a32a7afd6d9515f9e711dcc346d65509690c10f0f40623770834ce30f17a9a464543488571db36c92ce732f2", + "tests": [ + { + "tcId": 55, + "comment": "rej_ntt_poly (sample_uniform) requires 5 SHAKE blocks", + "msg": "48656c6c6f20776f726c64", + "sig": "16b336256c51560d99c97d15ff467360f5f563fb555932f56351acd1e53906f1c05c87f8544a821bcb05d0e3952a84c4d9de460becdc5ef5138c9729e905a3fd4117d32cb0957c5bad8e84ed7c4170be74d63e9b8d813c4ef7f534c5605a5e4f6ba4e06f6d800af82809016eae3e6fd4beef0f045304a4c17222be7f8c5e71a294ed8485c956865896457119a39ba4abc44bdb4d019493147d0b5e619bfe0a5f4ed1938e48e71b88ec8fbf267d1ea5dc8f63c67d98a1ebe9fe4757195c04a8202cf012133181892a4221cdaf79bcf240d005e80e8c68da8f0fdfaf8754f21ebc42d2a5900cff1ced847ee80e875c27100bf230f613b0758c3e4ccae5064111e71f0c13447a25ffca32669e53ccfa855b997236887f6aefa3baa2fe264686b879d1389d72c5967030d99915a9915182f97ac2375c93e5dafae6575dddc16908bd2bc865891d85e70fa998bdaa18246f73db0d69ca58ba813e33c90a3e6b2a2c2f8c97166c9b474c60fab1f3c7841b96c2af1349a37c443fd86291facb657a049e175a69443bb3662e252213a868e8241188d8941fd524ef6017633d2e3b47c9a1ac1bcb119722f54c514e62de40b5f2db38a1281e220a14e31e46442d31c71489df94f02811e53806c5ef65377433222b8510fb7e4f53ad31cba34456779563028dd1fe7ef3752f0121efbbcd28dcf09f045cacffa2f09f343cd4184820dfcfa3e0746aa7ca2defd2bc165dea6e3a07af3b4a8e9ba1c18c32b44ec37069d65013aa2a88afa691dad1a07ea87fdf8c7b187fe9572eae4f296bac40f3f729ec4c9ea4378aaa60b70f4febc3ff3a7561e2e22a7b8a23770af7bca50540236419762f1f42d9cba0b1285e83809ea02c4f0f9af086d506967168653b1a54754b629d769479eeef76eb8171b127b724040f0e7bb815577a4998ff01662d2968ddee9caad22212c3196f60d9212b5e1fd92f0367d5780d3c42c92332e305b6e15bdb3eed70643a26892ba2ba9c6e575a77ea82eef3f425dfb971c7f6e74520889a1869cfe4dddf2819445e8baf658668a9e0d3c65f263c208c4442d38e644f8ca193c5f463c4dcc2217dc337d37a0ffb61688a2c67a2223e41d24d07ca4984c35c5b33cf142f443e9a0ee0f631173399d714d41131e84f9b0c9be290dac2ce4716843cbccdd3851cde789e8d03a7133f08b6234dd78f63e17d29a7b93e992ec7c80d6bef2e7efaceacea917ffe1b23b8a37f438cf97c42551ca8e37b1831eefd5f4fa495d934ad6b7dc249be12baf8010f55552c87e04c79762e717a8647c427e9a9d41200438187475b8c51a990b1d268fbd1cb741059622bbe0b74d1c40c539d1719232a31023e7a0af41034a64f65f96347f7bd9b1501812fb48bc771b72dd3487485765bf4a769b8cedb355f425f49fb27da1375b5183196aca9009e4e638a0c5a07e424d2a9a6d828706de3e36d5c579704e30d3980511c3f95786fd6cdde178bd9b246929bab9bb6e55176f83a25252d4dc97e70239a24ede49a93cbba3ef31a637de8f254ab965c6d8824b31f28a9fc4c32beccde5299ecf43f488e9b8e037b848491db03f6deda7be882a5669dcd87b26d57856ea3f2d3bed6d5394b7a06c498fe8568f62acbf63197d21d1059b55516d08496608ccd6b0cac9a49b2a9b9b7436c1bd7f0673c2d66ea6cc6d20bdd975cad6d32c11436333454c7cbc67a9eff002b29f3b5ac34255fe7351888a5872862cc7f745ab7116bcdab0d76bcd187d4318b65ee3044d3e342b88bf231838b93b3328dc787b3340fff90931c392a1283f897f9a9091df52b7cd2ae885118d4fad2d595a76555071da39436675ad6c083e9160b3a964a6b020f65aee5a2cb3be2453c0157904e7283802f243c5cb40943ed48a91b48fed455648c576ef7ad7ff6df274723899b2977e13bf8e803faecf2ea7fb78f63a78975512c962e375bd6aa37bd0132b0a9232e35743620d1785a55bdf36620888b2a578141e29e197735bf388491fc40da63f423ccdf76e2947b53d975975840257ff2cb2b5075803305954941f49c7dac218e081fe269dc2a5506f4cc2a751bba6070d9ee0f8a801a90895ad3c1eb756475bcc3c6e0df907c49b4a3494dbb7066744ef693a5eab0edfd00bf41b90002713f08b35ceae0b19338d604dd47e55527fdd815408a20c575ac6388240e0f9b3fdd66c9e100e512ff6f73e1285c4dda646f6e667c1e358f166de2688e64e38fe47f0d44410a5cd284adaddc6b444a08bb44a3fa3dfddab4245d99ae058f019362eb5e89f56b41db5d885f038a31539545863809d094cd15fd23b77bb5c652d54ed422790532fad71ff5afd2ec1be5f0bb1456f09fd9b37d9da01fb9c103dbb277aed288eb4b5b28a2820ec7b717cebc4d9f0eebe5ffbfcbf722b0fac299c4ec37c03eb1a066147a18aa47752f21877111f5da3ea36b8d4a11d06126e90e59535b3a760d882bd694e5cf9e0dca9b73ab6984f50472782f9b105bb3a7fa7aa7b697f831d3a9a94abcef8f7b6295ee73a873d67a930b4b830d770af621e2db52c5ac7dd221c8ce33c2f2d5147ae5ef89ee1f370a90df218f69d3937ed20f2ac484d79cb5fb22c5c1bd477fb005a05414865ad6430233997053f1c4aaf7182af075d196058c97f871cf7951585f90360504841aebf6da4ba1e721aa97f681989704f04e13b1843fa2678254c536844a0cac2391d229f2c1382819f4e15cef9655c1c667f45449cc7d3bdba48c86e112e9be49c2cf45b65934304883eed0c97a0ed53e660d7019dcfd94773d4209058d8e131b0e8dd0df041a5af4dcb7ffa810757ea253204510c69d08d4fd77fcd971d4d9c5e0feb00b8672f525c13dcad6734b40b98893a74836dbddfd401c9bfe873da4d1acf4eb1028cbed94d48079b46643652af0a877091d28cde82585602b6003b47f19671d42be1660f0cfaa289268cf1300c2273038831c57bcbaa2c88934484565cd2952afb8214f76bc911d0c942d4b260293630be3c0c44358d16afc38bbcea3ad073179487bb17d0af4ee8884f30bf7ac5f7a8b469b7a82fd83c68a5531d2987338b2d760dc6718997dfb433ccbeecad89ef7b79690cdff544e93572468e0b044221304077c8d506dced5fd7a3ab0449771ed71cd5790dfc43b1bbbf22a519583bcbf5b4e836d6a59870d25abbe4bf8ae2a7723bbb98e3c763a9dff1809d0af5ea183eb1c983f06fc95735a64390876394ed3a98ca2dc5d4d6bc4f5004c7a4bacead5dae0adf46139fcc77e7c3d74b000e08ba87af82f1669a8cc41855430e1c3a1b42ed1790d127d0861058bdd401f59bd80836e81cb019a923bb4dbeae1ce5d8c9bdda06ca80a407cf057448618332c75f2e61050c4d9e20b34ef1bb5d00008d152d77f220ae4ed705973e704a20c170bd9cc1f00d2c7b09a6b00a010bc987e0743e2f3005c7a802b73f76d1831e0fdc39d7f5b881b551116bed6fa9b7878d1e34cd9bcef3e7f75c448eaef8520ee560846636009aa7c6352d3c9bf4471da268e00c9bd08d620a172e96cdf2d286d0433db1e00fca409df3355ed471053a4b061e07d7cebd0967c2840e3ee35ae99948f4ab0fc4875e8fdb847f6447e429d1261a961d0f54a6466bd1751313eeda7c7f1eb197c31e3ea96d207dcb30afa834a7923e9d482b7da24b2fad6f64908301335feb45f68b4257e08ab4b51297842661818eb1532dbd1fa152177118a119ebb89ff9693506c7ea51392a009745cbc5beb359bf6067958ec19a59f1ccf114dd379dc363663e284b182c7beffa1270330c009377c764d4c72a6a8c739430faa1ad5e6315c61bdfd1fd573afaaff096bac889c8195c07fd7f9203142c2bbf76764f948b92d8ab2b8e876a071f9c7626cd1f8f88885aa5f1bd2cd06161feae0949f7f45f6e1124feb6211ae8ca38a0b2f5810edb79dbb9f3eda2242e61cad3f75d8e030de89042d8041a2f6d4260d2effc31818d0bd34f57bad846b70d61b85eae3dbeeec6e7a1ea64e7bd691c4fd07af4292dda572b7d8d13e0fede3e3563cd86ef4c823b1cf96b639c13a988a6ef4389813296fb9d37070b5c17b4374681b8d46fc9ba4f53c63decb76eb907cb49a23f43fb788e22086ee2c269e25a0c45b5febc15d1f02198ba7e8d4de8134af6c10591a28eaef7f39f9b54d845107589f15087aeb2aca0c84e475497d25bae0353cf2d036cba5fc06a7a0b19dbac1aa464880dda5584eee02f306eb486fcee0d3b58bcc5555e8fed38c7bec8779ca1b47ec5b9f1ba01dd18a0c3a90ff771ede19f6b107f8dbfbb3af3904e4f45389b002de434e29425fa9473f751da9e0a44e8ecc3b09127e011a343d2022b18b953dca32938fb2d94d2fad4295c1ac9bcab0ad6941c950dd14ff5973239c7853dd5e80fb1db007a923ad0cbd26973c9885db7fffdd09dd896eb6e83ccba97a2ab7018a6339ec33e7aeb84d0f3323509e81ad2ed32e9f749011fef2f9fe7281c5e204e6a9e3107f9901b0e3a7a55a3ca54714c53ce2bc79c4ae2652d3d5b701c31ea92513c102a4077ed8f76708758b24f3083d620f2ead66ea3ce3d8341a0d4d8c99aab5d1265770a7adb8cf1c226a7d979899304b5f92999ab6b9bfca1460a2a3b4b6b8c92e459597b8d1d300000000000000000000060d141e262d", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 56, + "comment": "expand_a requires 150 SHAKE blocks", + "msg": "48656c6c6f20776f726c64", + "sig": "16b336256c51560d99c97d15ff467360f5f563fb555932f56351acd1e53906f1c05c87f8544a821bcb05d0e3952a84c4d9de460becdc5ef5138c9729e905a3fd4117d32cb0957c5bad8e84ed7c4170be74d63e9b8d813c4ef7f534c5605a5e4f6ba4e06f6d800af82809016eae3e6fd4beef0f045304a4c17222be7f8c5e71a294ed8485c956865896457119a39ba4abc44bdb4d019493147d0b5e619bfe0a5f4ed1938e48e71b88ec8fbf267d1ea5dc8f63c67d98a1ebe9fe4757195c04a8202cf012133181892a4221cdaf79bcf240d005e80e8c68da8f0fdfaf8754f21ebc42d2a5900cff1ced847ee80e875c27100bf230f613b0758c3e4ccae5064111e71f0c13447a25ffca32669e53ccfa855b997236887f6aefa3baa2fe264686b879d1389d72c5967030d99915a9915182f97ac2375c93e5dafae6575dddc16908bd2bc865891d85e70fa998bdaa18246f73db0d69ca58ba813e33c90a3e6b2a2c2f8c97166c9b474c60fab1f3c7841b96c2af1349a37c443fd86291facb657a049e175a69443bb3662e252213a868e8241188d8941fd524ef6017633d2e3b47c9a1ac1bcb119722f54c514e62de40b5f2db38a1281e220a14e31e46442d31c71489df94f02811e53806c5ef65377433222b8510fb7e4f53ad31cba34456779563028dd1fe7ef3752f0121efbbcd28dcf09f045cacffa2f09f343cd4184820dfcfa3e0746aa7ca2defd2bc165dea6e3a07af3b4a8e9ba1c18c32b44ec37069d65013aa2a88afa691dad1a07ea87fdf8c7b187fe9572eae4f296bac40f3f729ec4c9ea4378aaa60b70f4febc3ff3a7561e2e22a7b8a23770af7bca50540236419762f1f42d9cba0b1285e83809ea02c4f0f9af086d506967168653b1a54754b629d769479eeef76eb8171b127b724040f0e7bb815577a4998ff01662d2968ddee9caad22212c3196f60d9212b5e1fd92f0367d5780d3c42c92332e305b6e15bdb3eed70643a26892ba2ba9c6e575a77ea82eef3f425dfb971c7f6e74520889a1869cfe4dddf2819445e8baf658668a9e0d3c65f263c208c4442d38e644f8ca193c5f463c4dcc2217dc337d37a0ffb61688a2c67a2223e41d24d07ca4984c35c5b33cf142f443e9a0ee0f631173399d714d41131e84f9b0c9be290dac2ce4716843cbccdd3851cde789e8d03a7133f08b6234dd78f63e17d29a7b93e992ec7c80d6bef2e7efaceacea917ffe1b23b8a37f438cf97c42551ca8e37b1831eefd5f4fa495d934ad6b7dc249be12baf8010f55552c87e04c79762e717a8647c427e9a9d41200438187475b8c51a990b1d268fbd1cb741059622bbe0b74d1c40c539d1719232a31023e7a0af41034a64f65f96347f7bd9b1501812fb48bc771b72dd3487485765bf4a769b8cedb355f425f49fb27da1375b5183196aca9009e4e638a0c5a07e424d2a9a6d828706de3e36d5c579704e30d3980511c3f95786fd6cdde178bd9b246929bab9bb6e55176f83a25252d4dc97e70239a24ede49a93cbba3ef31a637de8f254ab965c6d8824b31f28a9fc4c32beccde5299ecf43f488e9b8e037b848491db03f6deda7be882a5669dcd87b26d57856ea3f2d3bed6d5394b7a06c498fe8568f62acbf63197d21d1059b55516d08496608ccd6b0cac9a49b2a9b9b7436c1bd7f0673c2d66ea6cc6d20bdd975cad6d32c11436333454c7cbc67a9eff002b29f3b5ac34255fe7351888a5872862cc7f745ab7116bcdab0d76bcd187d4318b65ee3044d3e342b88bf231838b93b3328dc787b3340fff90931c392a1283f897f9a9091df52b7cd2ae885118d4fad2d595a76555071da39436675ad6c083e9160b3a964a6b020f65aee5a2cb3be2453c0157904e7283802f243c5cb40943ed48a91b48fed455648c576ef7ad7ff6df274723899b2977e13bf8e803faecf2ea7fb78f63a78975512c962e375bd6aa37bd0132b0a9232e35743620d1785a55bdf36620888b2a578141e29e197735bf388491fc40da63f423ccdf76e2947b53d975975840257ff2cb2b5075803305954941f49c7dac218e081fe269dc2a5506f4cc2a751bba6070d9ee0f8a801a90895ad3c1eb756475bcc3c6e0df907c49b4a3494dbb7066744ef693a5eab0edfd00bf41b90002713f08b35ceae0b19338d604dd47e55527fdd815408a20c575ac6388240e0f9b3fdd66c9e100e512ff6f73e1285c4dda646f6e667c1e358f166de2688e64e38fe47f0d44410a5cd284adaddc6b444a08bb44a3fa3dfddab4245d99ae058f019362eb5e89f56b41db5d885f038a31539545863809d094cd15fd23b77bb5c652d54ed422790532fad71ff5afd2ec1be5f0bb1456f09fd9b37d9da01fb9c103dbb277aed288eb4b5b28a2820ec7b717cebc4d9f0eebe5ffbfcbf722b0fac299c4ec37c03eb1a066147a18aa47752f21877111f5da3ea36b8d4a11d06126e90e59535b3a760d882bd694e5cf9e0dca9b73ab6984f50472782f9b105bb3a7fa7aa7b697f831d3a9a94abcef8f7b6295ee73a873d67a930b4b830d770af621e2db52c5ac7dd221c8ce33c2f2d5147ae5ef89ee1f370a90df218f69d3937ed20f2ac484d79cb5fb22c5c1bd477fb005a05414865ad6430233997053f1c4aaf7182af075d196058c97f871cf7951585f90360504841aebf6da4ba1e721aa97f681989704f04e13b1843fa2678254c536844a0cac2391d229f2c1382819f4e15cef9655c1c667f45449cc7d3bdba48c86e112e9be49c2cf45b65934304883eed0c97a0ed53e660d7019dcfd94773d4209058d8e131b0e8dd0df041a5af4dcb7ffa810757ea253204510c69d08d4fd77fcd971d4d9c5e0feb00b8672f525c13dcad6734b40b98893a74836dbddfd401c9bfe873da4d1acf4eb1028cbed94d48079b46643652af0a877091d28cde82585602b6003b47f19671d42be1660f0cfaa289268cf1300c2273038831c57bcbaa2c88934484565cd2952afb8214f76bc911d0c942d4b260293630be3c0c44358d16afc38bbcea3ad073179487bb17d0af4ee8884f30bf7ac5f7a8b469b7a82fd83c68a5531d2987338b2d760dc6718997dfb433ccbeecad89ef7b79690cdff544e93572468e0b044221304077c8d506dced5fd7a3ab0449771ed71cd5790dfc43b1bbbf22a519583bcbf5b4e836d6a59870d25abbe4bf8ae2a7723bbb98e3c763a9dff1809d0af5ea183eb1c983f06fc95735a64390876394ed3a98ca2dc5d4d6bc4f5004c7a4bacead5dae0adf46139fcc77e7c3d74b000e08ba87af82f1669a8cc41855430e1c3a1b42ed1790d127d0861058bdd401f59bd80836e81cb019a923bb4dbeae1ce5d8c9bdda06ca80a407cf057448618332c75f2e61050c4d9e20b34ef1bb5d00008d152d77f220ae4ed705973e704a20c170bd9cc1f00d2c7b09a6b00a010bc987e0743e2f3005c7a802b73f76d1831e0fdc39d7f5b881b551116bed6fa9b7878d1e34cd9bcef3e7f75c448eaef8520ee560846636009aa7c6352d3c9bf4471da268e00c9bd08d620a172e96cdf2d286d0433db1e00fca409df3355ed471053a4b061e07d7cebd0967c2840e3ee35ae99948f4ab0fc4875e8fdb847f6447e429d1261a961d0f54a6466bd1751313eeda7c7f1eb197c31e3ea96d207dcb30afa834a7923e9d482b7da24b2fad6f64908301335feb45f68b4257e08ab4b51297842661818eb1532dbd1fa152177118a119ebb89ff9693506c7ea51392a009745cbc5beb359bf6067958ec19a59f1ccf114dd379dc363663e284b182c7beffa1270330c009377c764d4c72a6a8c739430faa1ad5e6315c61bdfd1fd573afaaff096bac889c8195c07fd7f9203142c2bbf76764f948b92d8ab2b8e876a071f9c7626cd1f8f88885aa5f1bd2cd06161feae0949f7f45f6e1124feb6211ae8ca38a0b2f5810edb79dbb9f3eda2242e61cad3f75d8e030de89042d8041a2f6d4260d2effc31818d0bd34f57bad846b70d61b85eae3dbeeec6e7a1ea64e7bd691c4fd07af4292dda572b7d8d13e0fede3e3563cd86ef4c823b1cf96b639c13a988a6ef4389813296fb9d37070b5c17b4374681b8d46fc9ba4f53c63decb76eb907cb49a23f43fb788e22086ee2c269e25a0c45b5febc15d1f02198ba7e8d4de8134af6c10591a28eaef7f39f9b54d845107589f15087aeb2aca0c84e475497d25bae0353cf2d036cba5fc06a7a0b19dbac1aa464880dda5584eee02f306eb486fcee0d3b58bcc5555e8fed38c7bec8779ca1b47ec5b9f1ba01dd18a0c3a90ff771ede19f6b107f8dbfbb3af3904e4f45389b002de434e29425fa9473f751da9e0a44e8ecc3b09127e011a343d2022b18b953dca32938fb2d94d2fad4295c1ac9bcab0ad6941c950dd14ff5973239c7853dd5e80fb1db007a923ad0cbd26973c9885db7fffdd09dd896eb6e83ccba97a2ab7018a6339ec33e7aeb84d0f3323509e81ad2ed32e9f749011fef2f9fe7281c5e204e6a9e3107f9901b0e3a7a55a3ca54714c53ce2bc79c4ae2652d3d5b701c31ea92513c102a4077ed8f76708758b24f3083d620f2ead66ea3ce3d8341a0d4d8c99aab5d1265770a7adb8cf1c226a7d979899304b5f92999ab6b9bfca1460a2a3b4b6b8c92e459597b8d1d300000000000000000000060d141e262d", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + } + ] + }, + { + "type": "MlDsaSign", + "privateKey": "da2593ac1dddc220922b9b1972a2549aaca212f972786a5a5d7c2e00abc407a14c3bdfec8156039e1da4334d82b03e6f05a91a5d07e6781cb8e5f864f700ed75dbe1da863a798be5b8f3ae8578a8fe444465f3ffaac17ad93756e2fcc020cfad625092c61e4dc425d5e0a22c767b14cf110b3ca30e5fff93170f8a929468437733240242771602371624281748881635455404240851716735204245036517314217660477141247651752202318835871263122834465622518458561780077570860257211388202828424008014443514083316467565616425053801127375637763428303217364610105374586512036253874800726837230162716148822164327068506803332315418054083547225706812304078461352086308710530384081037277854166504830426243572414407408807067584563753143818505264202624535777016578550230362345472415216650431401217458300408665544784324722748332322278777664586356034414654757657262504247556500211401345401633632741015515507171327888844234052648183330470851507147642405011866458485633820262788642782878068572673764871060611175567457021424002753343444086888376536447420702267251221218146408501871634878388454550872582658835214562682244426224475466035676608602843155263580626230150842033248603648045111465125166150463405382800002130416240806315850553846481530573430675344031702350257584774586310886740422471750257872037045052462248458052528310612653318074267532471381843037180462020573145748487714165878431675412705266272883888522812737706187220141562472444608108751574284107500551523613755517205820802554537456472286135021874748137217128706016733830887854258265828367300270303688338615155720044524266136303075024644836528707042470381300746328842652066778278360422851101372253223058104244141813851508547177371185144321751212267126011721730140741157833213735215450754734241507573286055156700385456280846738617521217123054445074451325688276346468707312574862207552642663548548006064707771678722151222408424131676603022358014116704218102765763220018254127460208100760178570451172847165177018721533544777204435777016163523672650735463502720238108316666455643220017356565343428200835360837373844180544144352881713204857857475283554064001504530445706362647323837262767542470713007783072813357666324626452082513155822315431771831533353774735457021432081815828511167247735257252207870833776828767812535771064485036603077422461118011787676222326187572812047703517384221243253372787888484247837613713745444303744714023057142788518300475325804728133127280300837257426767222163200074467704616626445262164854074466715868706312213461252075860557076740331725532473364424816665372457837782646305451803381218164544633135260215368500311410018803458480043617560274602523857205160615303773138882578846268136350868032875856830550881618585006705173072806163276643010734884562004778601413036154804022584203461258326073168381752728371217553553072852062614530162028308602407870450875047041736371067424124246880624651802834462053710506787152280328350525218258780431783325044038233126036707436687026446108813622227012560541130112833734768030554033032652400333425772416241614235203647050010158470101686540263860467711728648476401612215730561313346286742687105744030513126763260341562750403722707670821811162538571202bb6601a2c57c94bdcb201a3d2bf2eba46770d436f29f6120121745259e43e68fdaa00a599e862e6cb6b251dfd9248f68db07632534062bba7d82d7b59ce53add88aded324352da2e85d0f60779b7bcc5c97bccd7f7853bffa225876f3da5cad225ee4cfa67a0ea26ad2cb37f044cccf2e40cd2216396924624d4d63ea47bdbc3a22d910c07f4a5788c74f6c72f901beef1cd4f309d2d2f1edab870969dda414129ffe834dc6641c9e91c2c3282d983bfe19f2e39225fcbff429e1a6ee4304914f36489d4167785ab7c8d34a122e6789abce8e2ecf978da0f9703fd81b79ef438a9eea48f9f7d8bcb155b18638eda7275569d3fc26dfc5a513062721b72238896ac1cb0bbe88cae8612a94875b76bf70596d498a85641d90e232b40631a6459e89876297736bdd89405236ca9055054e7f0c844257311eeed1325b90f833aca583413658b46db07a7abb4548354d10e72c3b38ca1ddb2abc9819c1b7f24360066faf28ef5d3a694a142463b63e13790f517f130ff7c6a93253e8bce723e1842a5829a1cc301fd6dd5b2b08dfac76ed4b8ed9b1a66c5475d7deb3b17989630ff26f9197977fefd993033098bcef68d6d9f2da859cd772d800cabfdf02a7737e048a66419f117c6f3eedfe33bf8007506755d9d338054206cc10861980ab82f979a85c727a5ed1ce39b8f36ab449051460befbff33ae33ea9b4db373805ddfa04135b0522ceb824c5d6d1b0cf840f0e018d41fd1b4b5fb7907c8212f534a91d79afa3ad6f95ab903d89f6e58c36a20f805c9b73a393fd6e54a2e5c27cf090bc2600bf81d7e658f22152d48964644580e1e5b29bbcbe3e72cf4c2973b438094b3484ac8fc1e2348e9fda2f4c02f0d6b01395ca9110421ce33ff49fd5c70b51b516e9cddf8bd74f4342ce04106c4d0c51fea11c79ec0ff946ae087d4a02d8f5356588be470e5dc034ed9161eb7899776527a6d5348702aafcddafdb4d07ccad4e1715cbb2f8aa9ac5f5cde4d31aae06eb47508891bb21e97a08567937d70b81cb862a68c136e0fcb965d139b281ae2e7c396ef085e2f69fe95611b313bee0ec65c028a4a7ad7c00a06fcc03a9220fb607a10fd60308f8df3dfc8c606c13b8892a88a57f13db9e13bf0d75c00eedd42ee212bf51c4b389c34a12c3f58005a9ce4f4efabaf93bb8ce18edb72e74a578cb5b8907aad9f95ea310e9fdd49d567320263d1137d6e95db30c60f88d7e3c00757c593280f4cf718ce514c4dfa5881e822f6cf019da816ab50ba6ebc4a376fd13809279ec94e54194b9396e0ba47207eb0ea5f0a3c5554423b3121fd9886322f2a8c83f4b98d9b07bffd556e9347f25b435f8b2fe0951750ac7e71fe9ceeb71f1603700bba0d11d8d343976a1d8661ba117a94ec39c4a5587b5e436cd779ac939a7950c816a0e28ba61ea18885f00ac0f4b8963a3c5e2885176f23cf59eefd169b45595598d7c3f7eb042978e1c62ff7f7e88cdefab52322b1f0d15141aa322bf8c2e75792b9a7fb78ed2bb24aefaec4ed407a20d56cd220fc814ddb868649b59dea7cbcccbf64124214a1524fd6e31f143d7c3538be0b6b338bf605760d20fc651694b62b8995ef493bca2ee57472698607edc3a3a4261de6fe9e0bfd9b93515682b313b4dd8c49e656b8bf6f667f6af72b80e96ea0a9ed76288df4f53cd984e9def5f9968cd430480bf4a8418f3a4a7fd6246e279102c0a8328b1dedbd1fe4955b1f3109de39b2574c6bc9f8fd4ebdce25d185564ec35e3c8dbf49f25d92ea0f122c102206591d39637b4e9f760d33296d0253c962299a2e21f05c8b85f754022d91cede63603bd66fd67fd420274ca2e1fde081fd3dbeb70f282c7930109030117f4a5e0f9807fc5d7307e7fd8800d362a4bb8292631b868bc63ada8cc163cf7af1ff3aa10544c88eb6d00e2aae0799deee71ee271ac3f62d796271c2dd613976214e944b33453fd48eeb9a3553293b3644acec58a4ed56445f223538e357a2d7e3104a6d4b5f709fcec2022b2222ac772accaa9e12b1b33e0c5071513fbd02bc64fe6d350c8f9525629350d24829f3c7824eafeb898148b8f923c81c2b04d9ea4a627b4c554b258d0e176d87083d0e20903e9fb41d7d937472b022b79f4efd3c0a988e3f637fc62d973682ce891b5aab1b3371e61755faf20476d7fe3b622ae983a418b022f0669f89ddf60bc249465043142b45ac97f214cc8d2bbe6a41e35bd8055f10d9178bfe7a8e8dece2de0a8ab965ee1d3005684e2b7bfbc974dccd181dfd18733857f99a383e452afe7b8b6da94e37eb7e0bdb1f289419e61cb10e4f839e36a17f5c3263b0aed6ad74397c55029508ca38e6d61a55c63532ab2bfa90eff64046aaa278bda1e25576b15d7ded96c24e850351d074842ed54afb0ea76c50612b28cd467b2c26ecbcfbb1ca9b704ae9e089c315710ba1aac9232e8827e3b33479ccc51d7191b4c00e4e8ed21daa612e00bc1bd57e8d8af9c150319e54d06645c27d742f35cd7d5ba40bbabdc755280e496e8fba6dbba127d0484ac0b12182b640f8e9ec1ad7e3618f76fe63d6ea5543473277f49107830d29548921763c53946726b19dbc0b8358b29af7e81a5234e468ba32b02597529e4a79eaf716b4bc7729d4df03232b3a56d393b55aeae6a5c28d0b37080b66cee42bd2bc1f0367a2bce60ceb70bdd9ee6acdad8fe4246498b0d35cb26e5a4f31c9f301f9b1aff29835d7c0ed8d5964f820b8f7c44b5d1d337329560a7fbfc665b3e3f0255f55c64896c704b907d54c4f0470e30dffb7132df233732505e2ba1c42142390a1d7ca00ec36eaf6c558f83c813e3e65ffa4b93d302f15d72bd0c116ed6bae9e8ad690fb3c35f4262f08c384d426f6fa460c3cc7f4bbee0374f58b3f323d9c0bdc2431800b2913be73faba07308cd135a016d8316d6571567e7a1d879de51e13f1bc24ac0f36e84f6255d1d70138e2da0fcebc3c8b5dc43f5c5b65475f2d793f5a48fba33fd975f8afddcdb9ab72f413b04f9d790215817acbb30817ed563b87f049c7079fc857f9ce51ad2fe061f0b564dc0b7c991d2aa3e1936973cfd9c9457433af11ac3f88565a49f4d09a92f080e4a89ed896e5b30dc84526ee46f70b1c2be115a9ba0da900e73eaf8e987755d5265811a54c47731d83b381445c97e35d03538ed31ffeeed0e896f394552600fcd21f71d9724e6b418cb99963dc5915c20b89137e0217623927c4fd46713ac1f68b3f455053129c5bce36e305cada071b17dbde422c139419159feb11787486eca3f053449de5010e17eeb6ca850800281c41082120f6fa45cbf92f40239e4d85a760a82c6f08b642880fc8ab71e47266daa313878dcd805d901778ab1ebe265fbfffb44622b979e7606a5c4e14e1a6f40380fc4fd0b251de3311f7acb698f7ce0c27aa89dde3ba0b2b1678b2ebc6bce52940492ba8a0fce96f3bbbd7052936f522fa4bd0935b6c38190981e723f55de51cc6b7113a8bf648abb54795ede77945030fcc4db", + "tests": [ + { + "tcId": 57, + "comment": "rej_ntt_poly (sample_uniform) requires 783 SHAKE bytes", + "msg": "48656c6c6f20776f726c64", + "sig": "1873df7bd504c772b508a823f78c4c0e859d16a7bc477575e700ad4a5e862f74d2537cadf3b3ad288ecbfa3fb6acb3a8ddcad7e1225cec57dabc09444f900a7c922dd7ac0901a2527a71e32dcd3b6c71ff446ea8b8d404e61d59d24439171f1bd2d809136b9e71db3ececcacb25ddc3c84b318ec60327563b30cb9f29eb59b21b214e45fc14139cce27a424cd804f869d69b5757caed6cc254d3caac256bc4a3d8a95fd3a68e27a8cd88600c143dcb6f1559e83de3b50127b75233e79c09c0fc9ba447971931bab365b3675289d8a97cfc58305aeb4b81d9d9d221e21da52150aaa9d1c655c8586cfa705ad67b793f2f96e545892b02144927c3beace27beadb7e1b696557cd8e4a745b6101d4b05a8c999d05831c568367b0e71fc3fb682c22d9a52654835f06aac19ff5dc5e4c1eff1c49846571565d60458a337c44c6484884ece36197bd5a759fa54348d4433058d1ce34505a79672d2e13bb01e810708739e5b4e86b5010e21f56d6035fe66acff867061294fecf203e528d71bc84df0d46b63ee9ebb0806c3d346cb9787db32d667b059a42fade5da9e88167c74056380e1e35004e59277e90fd4a835032442ab773d52a2a60da388f0cac93bbf26dbfe11b9c5f16bba1d4877b6382b5f98b1e279de8c06fc569ebab6442f247cc321c38afe012a003e5454f5a3389afa18dc958b4bd99a93b5a1ed6d4497c75b0209d0d7669bd6a4f2d21fc61873a31c1b617cb90aec8ac7fd16b12860ba0834aac4e60f66108c0f8b17ed43e306e52e76c4d1f572e12d986abac77cb79d265271cc876e46ba3cd58bf650326ae1bd91fdb92a337d884c230f625235c403ea6bf1cf601834b7e0e6145d23cf386514f957b9caf959d5e420964e2b07fd2e7e7541bdb8252103871a48b5bab5b13707c872ff4b08989bfe71142346e2953028f26e1df451bf67a7f1d71dafec0d64828cdd535f44be1fd8e9c69a113bddb421676e07027851b073053a9e319d3f2c5ef128476d78d44df98d1c72494d1581b7ade65a2dbcf7b0c9135aa42169daefd63124dfef3deab5d93029d3acf418c99ab58f39b49d32fd0525017d4dde93495ca4f812152a74047eb93c3e63c0bea2af63194d8287779742d7f5a1b0c48fb299a1a1b773a331c221755be407866695f00afaa33e4b458037a0030f3609b3b0a16f7e68920d0013cf5943c076b3e20ba19c8da95c18f69526fe271301ccf45fbf248fdb8a5cbabb191d6355f1f87da4b9e0d11b417f5bd1aa8603e10d9a082dce8f29a1b10e814d5e5b1532a209a636ec0c1854746087666c2f030221324dc62b24a2ef2e30d519ebca2908a84c384735a322f1931597635dbab254a1ae28305883c1beff6ce068fe7766e92d7977dfe4a315c09d0e39920e6fbd2a3a9139fb0b8d6cdbf44ddce7af4caf616d0fd9ad62c41f48e3fe81235d79259cdb48ec0412c08219f60728e935f3c059198b5ec99168fc3503230a50536165ac05583dde40a99a950639b0eee5650341dee03e84fdd4f5bff58c9e90d8cb2740beff0bd05951b107a7ed5c0cc8b987aa753edfd1cc3e5a57668b7c6f6b46979500a63608ba2a438e4093f8226845aed1f8dcef6906c9b590d0343ea442f20416e199f9a0ef1e35ba075832d1fb1feadf5af89f84df428cbfe7adc07129e2c4381e0ee4aaf48c3e83567796d4df6a0f77bf524eadb07450fb026112b1ea538dae20f494acbc9e020e6311b7ff4b325261fad7784e5728d1e22033f28b95773da2d9230c48e82daf126882178bcfc58df7adc163b2d41e105027bfd9824cede1d5eda485062d9dfbe197f25d7b0f7a1742e9ee705b5213df8bdcf3ec012fad069f13dca7eb025c6586222cd754e7488135ec0a38569e45d7364ed9400e4a9d5dcaa7bb1ece595973912b4ba3be885c6684243a3c856e054a342235b53f217ea2fb6280daa54a31027c9ba72aab802501f355adc9604e799fe3276655657068d1db6a699cbd6cec2f3bc5c9c502d43fce11ae3f8b2b07a85fbe0d244fd81c9f92495459a782fca7a2591b43dd420dbc860c8645dbd55fd191ccfc99226eaace268d6be92a09f29aaa1e61b53642180956aff65b59d93c21302cefa86e85cdf7d926933809977416649f853a3ebad040d952ff34ebd5d6b2a3c8f9ba32b15e3921b70ba47c505ec1233044d3f349f49db4d262eaafc04ac0bca4317a6863f3fc88d98a311f80eb41bfc5c611312538c4d92043e7a96b567937b1a3eb166081d0dac70ab5865d6409b3310fa3fb55bccd8ef6b6b79fd677ea89c9117ba9bef2c0f282e2765cf100570e1fdd58323d4926648e8c9e4f3cb3e74ae5e3ef0cb53ddf48f7a082d346798566fd508e1a81bdd8faa0f9aa23abdc25a7080ee24ac4d147097976e6a350c23c5b9fb70f0068c272cf79756e25b2708f74d7d73d4976e6edbd48214aa276f823b535f1ea6b1004612d965b6b43b17c66ec24b222e6a50c119157bee10abea8fc902f66edcdd9d10ce822b186c9aa837f2dfb0e0d612b358cf057becc23106dfbb8511bbc14dbafdcc1c44f140a6234b915e297d967ef905373c9579ca1c135c695b25a57cf8e7280bd32d20880a2155aa2e6f37cce95ec487bf57f387bd19d398ad6495a8d6c3e34225f02912d204b110e92085db5958ba740ebe55e14d37ab874e52884d30bded1bf58065049fe9d495ad0095ff765615d2d192ad35c2e5ce12368a47bd53c94956e4bbb13b5f43fc2daf2a82d1168e76e0bfb70f55a636dd68120936e888c79a2ce18fb1d8307be5518c8831f8122ede516db4f1bbe06e22c9e683769e3fa0d42455dcf53b099535d7b2dd023c79947b2269ac8c4eded0ce16d6666e738743fa61f05cb1afb685d5da51550ab115465c5047044dcca58a3a47c9a42a03ffba31174fe3dabecdd1b887ecd3bab1a1afd6bc61cb527b5c71208d797151a05b806209b454d62ac2afabdb4023e8d215b6d8de761852ea366e4dea97eb3d54010767d2154b3b72b6a3599f624098aa9bdbb9d0d9242f7dc823a71aa89277f75abe825d6d5240c5590439f1084952625466a1676f778ff117d3e344e66adcf06f2f78935e723d86c0bb8cbb9d90238f963f8c63f94c5fa8a946d6a925cdc77f6ca2aec141e8f16de1d46236eb81c57ce682d973f2cb3ac12e3cf9e0290e4ed555ea1a57ad3b49d872dd6ba99fb89b91c8e6b25dfe38f8df7d91023bae4eb2dc7cb0a585a3baa9422ab93f349167578dd3936197e8daa71128083f7f783c67532fac42ae9b88b94be99fd9b62ea0d6e8c53eb4ba21b726644438649d0e19f379eb77594f1d5cab77e97d61440c8f0ab0bed326b54fe5accdd7ac69adeb946c855e32afe33b6c75f00fc992f53fff91546317c70ca6102052efbe00407ca20fd276cc5e0c2984af9a442787798673877dd990f6d49fb774fa6a6969d73e37d7afe31b9546125c9f1c12280ad11abd8866a0c13a210b8342390367ade2772b2a6fa98ed4c373d2407a7060f5abb6b0d8046c7a6392835b1b5bfe69b8973135b5b4dcb4da252af6706b3d813b4023574201b087bd7eba6f7ba4c2e32f94db3da7cabbdb04728efcca581373fd34e9c518c3e8a388e46626cf240a5d30e18448b5b0058a5f5a65f0c8f3d5c42fb02f8f391c8ad68a8f05385b86d3e816f604bd75b7ed5f27589e4196a0a15e376261f56a89958ad737448226700bfc9bd2fc05a09c23e86b85304be0fed7b4bee40f106ff3357e40107055f26189e59126de22de0c50c20ce74c2d30fba2f8290c969508321be117ab8aa6270961a9da3c451b3a4910efadf20d2cb52b07a57700a11ab4d5449cd370789057c1e66b1ccd6412b4461b0208c87863a068c4a2dc52e1d6cb77103dbc6993c26e77d8df0e847bfe649aa9d111f9f3718d5ed949f6688339de0d7a02931c5c2fb34ec6e5bfae039208a10c3edd34db3292aae4b1cc2de238914da4e0b605e5ba988674176541faecedbdedfe8f954d86972c9f187de5d4ec61d9dbe89c3df927e245b14a8a4b7cba2264c1646e632e07dc59b4c6c0578ae7266e312174caecd94a57a50e5d87a82dc94aacaf6a3e87928bf5ed7b4a939c5a2d445beb9e7929c1ed4901b38ca28fffcba1f9c859962698dbe4460a694d99fd47bcb91b391ec8f4e50500466617ff2a0123da15798e9cc4992043b34c759b63b6a3b8d2b6edeef00f6b8c5a2b3f0225c315b6cd6a744151cd5ab9cacf0445bd62586b7469c0c4e6d466ffcbdbb165dfa42ba888d64e9f7d22d1ae22e1a361f4ddd5c059ff273928a47eaa229b409e20e48570ccd7191067869940f661385b0e57c04f936c72aa36c0fa1de1cf3a18ea4b2e889f7ab3300d223e2f73200266ad8ff854e7276ef9420539dff1422296d22188d519a5f7e8fabcf04b4e85be6271a07e26ac654d93d31c1bc674f5799a84474fd347c44a9beb5523f6e89d8993c35bd6e5db1996225ef5a6c7a92c0b2c57f1b19ec26c75d5a9125bb4faf7c0ea29063ca6708dfe044d5c8b23f03e376a4765a2e1a127a82e51a7c9353112d05e841245d1d2c3f254e4c6b0eeb4bb53818769e10610254044636aa5c93a678ba0ab1a1b41434e7b899dda0f70959da80275dd00000000000000000000000000000000000000000000020b10191e21", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + } + ] + }, + { + "type": "MlDsaSign", + "privateKey": "a65c0585d2ef17634953ecffd89a4ce8459cf96fe59d2f9f59170d5796e90f535413afe11d1a0ca3836e0d2c20d592b3e2b30e82a0671c1b7ed5d35c8ba49b67e09ac3ee366ed99c1ca60e5f36aa0e78ca6d2e7607fe7763156a1616c29368aa745314c893f5c08fac6fd11abad39b2a1e830e2748c6b73bffe9bab748fb9a2e28803823122456206453855788175133716500411187104307286261026560502276812271470016274682378081051078477760471788355034715262832450543584782475087405654320272043531536847377115776627727860873852105773035732813101351077852848385363142078211177447687250018588057661617208152684668736778235370622835174116464801511730173062288114768142132876460670374143345577773826000045227372736571148288708040183586352562333517837331817745028303240586403576114053066560710702257210756523743211726361424371032147682127500550825747848502418085063207545453313656443256232646141857353613204133843418035544067888681122272844478801600062564840286175178208362573661304742345871508625477747322316032063844720421725827782840748457260383178004701058333436144083501188757383513822741182362708418182852151765458332117485622464531660501037717830388612310167121564436655088655580744281322717253177831136660170480574035408883326257721574028754586428217608652561424438141334413064315518355444417543220016455615864566823058774187310573807710175105527003145650180157787728750600247538322166521584723315123440882885466086786856351436173732516343262566085503372167281773674582008866772060830441534407767833356227567270004501087672031411500661783352872523310182873635673662512038105134773586117812335312570266610625722125340813251638778137244180737408284564016464041845164346255744716012381221667445872068848404067760018632171848852708557638268542587005211035148571375664600414263105403275782165013331372041415288885416686184851430758434005232385506258845256035475747721865025877463810348877355178034016111540727086730648166603777551635052723151845735830847287563074565842682504835725268864063667602021012605240728285584158237252518303676840605075414085568428615102260231726022004810427264601241074310367856717545583103728506572540201828346564666774027734375847122137870252073112730664821413326403604136742067254434075666126815786075354270451174033207611078056555442647184881585217005584242777568473272130613457713676703657358871417720770321004500306107521861072718033003550086182702205505544046548131166402121018064215383764452210735674377766486604372216170112344087784222435604210544388333468321450714373686305858404845430553733256074103817433152252414544045147441614020028266876880382575183847773375040127206307543411284330013672775477383526288753504882118781556208456374552411775046420266050850888602622431002416836135636080303178717344020082347562764404506175760367060712405824378725225252681168328208688460384047473776787057018800122848375573147448782613146373883500678702510552243874527428633830283650230563225106284504548454775738508148010664668277637080287082715278376873366616877452842355420873382111244885452752528538885654267050617150128367460516664385627081857143800868422658317015370770168663532238726437051187010222000628348578847340441768212cfae340d43837aa29e4c20edcbd89d2221e74e251b8d6cd86941af979d4435385ceb3996be1b4a0942a685f30851e608dacfa80fa609c9d8a038bc23afb58e2ac5551f9840bfee19256590ac44ab268a6771f7b24573194b095b5a5549f741e241521561fcfccfbc30638b4a111868301e73a0a3e886b230dbccab01ec669e2a4227a68fcaab2fa33ff72d5bdb3c49d7cc30bedd70f3fdb4b3040b30a144dd3bd7f85dd25a4f06b0e044deb2bdc66326a43182517ff7d6c121ef4439959c5593558636a8cecc76c7eee4377f12c450b882033b01ebf67d3a02b6f5bd783aca9fb6ad18be2021d84c0cd55eaf862083afc0af458137a2ed648464f99dc43bf852c97a98fe502e31c22bda8cad497daca11640b4bc0b70fc8ce3ae3d2ec60a5112b399e38bba55e6e5a1575f0f21a3afd43d3729180914003382a5ec06a719f8a47bb768e227f87a88b67a4299d003f0e12f0da6628f9f02135ab15badeef6deaba2daec3355cbbab2e73944ef32c1f2511b631e083274cd4752c2fa1309e905960bd4bf10e9370db5342850fbe92415c0e2470ad7b51a598250e8be474dbd5770fe2002d260dfafcc8668161eea1b1db31e5ddc90d31559cfb3f6a8e6ce068612827e3a9af6631cbabff514feab89a05e2383f542916b8b077b5901e68dc979d6b39334c1394d3073254737150acdb20993876a736aa9c504744d8e3e3584f3329d8909e0d6a35fff7c02f67c5e9b8389818545e75d051eac1d7917008e0e9b1153851f1d755a7de509de21069edc846e0cd8dcc545bd8f07c45b72fe2f523ad5cca6e059bc1f0b835f28d6d33f8d77f744fcb095e3e1c7076ee1279926fc0dd36d17ab41c685c4ebb1aa3231f50a9b5a4f2812bbf6b08014d37a7a2bc70272032ceb83629109af2b37549616e9d29df0b0075a7a9a750be5964e6d500e4780ea753c5f60a98ea0cdce8e61f08fa87f57d08efef9011c44b27a62864fe6bb05fbc1c9755152b6dfdaef254b76cdd574b1f013e2beca4f4ebdae17d7302440ad40b5bff57a84e1013f152ef03dcd568dc2488268279f1c1517e357918ab795071040c02633ff68e42610530e2a7621705983e11832ed238c92740b17d78db86073c708053177d143a2b1e30b05d66a19f9a3dad723b9610ec72a042cad021ddac3c056594ee8078155128d0f2f14c4eafd3ee977cbd2fcc0ea3eab4b405db899eabe19f722c166d2c7ed4961983a34e2cbfd00f13ad7b4927dd45d9321a0cbf520b727abeecb40d37bb704013c701e8635be5d4e2445542c527ea078ec5201e45b68948d41074dae91c7a725b364f41c0bece31cac2eae25f0549d510cd1f12d75bfa872a311daa8fdcb4b98da74d249da40bd6e4b5cc7b18274fe4ed4a3bfbeda23d02bc92bcf75d265b5095335269329396dd7c2b8a141315e412583340563c803650791a5a58fcbc46034d883f4d76285af08e4c6cb612a4c9a3f8b8a4378da426e23305d860bed794dcc296163c43928147e578db19604f33464fde6b09b82569873ef0974dc8bc7aa8fbb1eb3c72a2fd3dc544c8f0b89853d3be0600c992f071734ba3ba9fa1e6100e3ddbca2b7316afd5615364d8063798131821327941c61868b8fd02a921fcb897b3b967034532ea501c974370c66bf060e69b70824d5e3a8c6a248861ada7f891e7390a210cba7ba7e9a36abbdc25077ca8afc4c78bc7a755660ab8d22a91624efc24ac00ce3a90ad23fd6e81b2d5772d457a86a35ed874d053c75484a2a1cb4f7268b7cb29894310aebc8999b68ec35c5ab792a238e1a11d058047a1e1621b7011d5aa87b4801d854dbd3f93931f2ab21aa6580abe50ca317d36f112eed1b9d45b2c2308bd3f7a0211b143edf875958a5e0c5984bfe1982f03f67a47dc39b1b466387b1edf073689ebf69d81a357294fe062c494c6ab35f7a77f61adf74e0c95e9fa9a9fb3a9c480322e8d7e6e16aad503378d497bcda82aca132d351dc5de8093a91e4abd523f70b75c0d48bffa4d6ecdd8f78e13c7f0027b960e5d1053d51e73f6f8e2768894d54620bf38ff1d860ce2e53680db698dff64924e7ed0905e1013814fcae5f2e81ae2810990a4b57010ffc1663062c58437b7cb45536d08b1516ed48f67e607eedc730201541ca8666e965f01d13dc239ba5cd90c055d45508bd8530268335fa0daeaf8ed5143039406bece8fbe2a88cda782ba1af015dff428c4e80147802f55c96dc1ac26a3600cb540dc62e2d7f0b46504d88472bbcc47f54517083240f4f87f3e13c1d1b4494ccd7ab34f7417b7f72767712911bfb39980e71bc02a19d710b61f6f0e067be9f6cc9effba0e70d180b36ff051377273d969f061efadd4ade9d99e100086592990fabe22bfbcb8de0f1c28f3964489f95af12b127da60dbdf1453a051bc4eb084f7ae8660f4338ec1bd352846ca75c274e415c1e199ba6f8e2475f105750ce13a83bb797cf361d340c0bdb3b9cf3ec418fc87393da998ef8900dfd90cf25d887aacc3aebc55bca907673d20dba2f36f3940105d625ce13086f8d5cedeaf7f89a062d6e3f3e6778dd33a11bd73ce79a49fca1cdfd163155241e975b2d81c49e8505b721f3189b291248fa1c90a06e59670d6015aab5eb9a7d5599af27b274bf7569e25d4df6a833f2275c7003c53a35d60b499e14cdd6ce1beadd85f415d62e9dd1195bbb5b71145b94878d287f28e8cd81a035dfed190eb2bfc57a9300269901356ca7ae0c74aae3d5c81ca88f4d26dc4fc14c4be6125ecf27896eef347d1a4cc3fb2fcd4a68d2860a7df8cd724f7a67d8f0823c48a2a9d9c62cb1a573f0cec4d658fa9da5d28fa97aaf5cb07d92068d88f7e12c2e3a8a3481f38520ac182d5a9dba02726e9e43ab21e438dfea02d71955a0c20916649f57932ed6aa86637a03d9cc5b2030835a9102ebd392f5ccc367742c1b7fdcf08d36da1a0522db09ca34128233a556e3b0c8a60d0732c8962e7bc5d493512a205f9f5367d9f5192e471cff71c97dd8e850b19a2ba1e6b0d26604a3e28d0d9c9753273f0155264a3ff43131fd7bd6f635f43343bd69c178f3a80b8396b1d4d3b2de1006fa32e54c33c2b63f3c2c81b63fad3b98022f499c1fc0118304ed20f2dcb593431405c5f93afc27c77023f564ffcb2be50df68e1be774cae88fe6c042d87f9d91ae084cafcc37a9281b3cebda45ac9f409b0ca0b9e600bb9e024b28a63f9a9145b182e7ec6a5a5b9b3dedc5f14f7d301cd53b18450d91dbb6fd86b34462503bddc273b3511c414661309d18d8e69ca2c14d0a3eeb6daa539431dbc7c9cd67eadf3afa1a19dafc969664216386de2acfc4096cb00e3e3941dfc856c3c1790bd2c97ad0f0bf76a24bfc480c9543f23113f749818ad8b97f9603873287bbfdf3aa6f570d176178fbb7b0c537eca21ea04518b3440e4a7de0d8cc83ff62b5d91a8bd3d45af74eecec1d01ffaa4abaa283ccdb7d50a7cfea9d7cd98a8a657a3bb003ed1c6bae25a961dc31db5850822e871", + "tests": [ + { + "tcId": 58, + "comment": "expand_a requires 23103 SHAKE bytes", + "msg": "48656c6c6f20776f726c64", + "sig": "5c713bb1755f4a31c900ffac7ad74ac8adcc218ddc7b7f2a7655a89cd348461ac84bedd66de6d3f9d2d78e6441b2756e31345b4bbc5dbcd8491daa61080abe2c108e7ea92d02c5064daa8447cb982326c83bef10ebd654c0846a572bf1aadddad8ac66db63e6875150242cb8299433d5ddacd8e9dff829ad3af5635795d90e932b05c499b3bdb6a5bebd3d5b276993606d82855fddc31cd3233b255a92b6a6bfb78fc673d057d44f555b15b87cb15b16a2b50354237c1de8bf2cd45cf4d808448b7fa6b554aeb422c4f4666c53bf6cefd9e57d752509c0d278815116ee858f07d1b924608f76824981fb3d50e43973cb3ae375a337afcadfea2f4081c7be3cb6f89388d2de94a2565f7ed22bf296916d26b7298e2fd86b993720bc220b827efb0d3017a8b73a4768e21e2ac437fe462518c199361e141d28f1cfc2117cfeb5e10bcbf402427a6dd1572cfb296d2b145588b82fdf547ec3a08876a9ae7d7980a97671bebf5a0464b22d49737c677d7b65717a2f368d3e95c8ebfd58eb0412ec7d55aa49dc38dfe6edd15a814a620a0efacc6ec38e96f342a8590eaa1b25531fe3e82f85e4f5e46302140d1ee4aeaeec02cf0274dc7519e3c95ac09c77d5d8bf5821fa9ea276fdd26434b57f838f8dab472250eeded38c7d5dcde7d4850c56c6aeeb9d0690e127e3d530de6cf11b934e55085e8f89cd72988c93c6b2e9650650d90c561a208bb9ada1a58f9ae0029b492bfe1a44c99b54de4226ca44a47c7bb4ab2bbbc0658e9484b6a51fa46e54e7cbf8dd0efee828815aaa1986034b78fddcb51fb41e2bb232e623841350318a427ff8bbeef53b7b4b51c6f3ff16b7e7d7a5dfe574632ae42785b07027b3e5f9591064ec287d07092ebfe406731aee43fa17d363564d5078af8a59a791fb8e3625fa6581bec1a7df4f6b36babec24ed58878f1ac431ceb7bd690996162642b60860fd8f43e6698a8b9911e7532839827122c5244e0252646f32235dff933c04aaa92590448254b9e529adcbb22982de869bea2a0035a33f10fe559ba90758f491c2be1d5d8f1fdcbccce193d40658c8ff753700b73adb2afa7ac7c38d02d9cbca3bb6e797fb8c7fe428f0b0b267b2d40a7329c902d90ad4c5d00542c0681db02a39dbdac0259e0a36c9abd6318e709c2ecac66819f93c6e424abab8c58ff53f5251066f8fd9f8b4af9adfabce77ceb0c7d9485fc593c1309d160a5b06896ee147336db19d8303545537ad166203214c72bb76df59b4387a6287ae1390df354e9eb4f8212f7eaef0eaf486df611775bedf64e579cdac9e982ee9f3fed430a464e513c3bbb40322b786d39e8172d553ae9c1fefaf85c7032b7eea351ce428c25a7a77e194415d75f421c0eb37a366e5cfdfd876bf24aa48fcf2f7e194cd79f4e433a5a33eda08e2c7780e86eafe3d3a2b37b275cba8355fb196a5b4fb6c92130c99ae0230ea69a64138a54daf9e4b7b3c06d898e0c8edcb0cd47446e587cbe1351e38c18e8f8c913c116dc0a532870012b795f7d8ea90d5b45ecb399b79f10960d46f0e38bbd2aeaa3fe7dc1f0a4a3af34d93c0a4790d0cad37ca1b2e8bdd5e19cf95dbda815171a93371d2fb9f3fa682ca5955eb83ea1af89a9be5d1f898ee779bfeba43d497cd9bf434ca423c6f7ee856133fef62e88f68fa9c8a3f6919a4dd39a1fbc1755229fc376232630082157273cde5e44f1ed90268d52271ffe9917026d4e7e435c502c027dbcad78009f25350f69626e2b367ae951cd9be2549c865df0e96876a860567c61f7e9f93d379a78fd0f21be36bc87bf4111b7e362341aeb39d08e0ebd93f19b9cee674c3aaa3303b5ccf3ee9a17852a7b2f8f2a2ed4264a418122cb8ec18579a9205838548689adf6714ed73332acc7bed58cb4125af069805553bf17b4624711781466e3d16888fd88b1a207ed140a3d741a0b014556904c24f6ce9bbd5491803131235056ad10ea16f68e5311ad81c3d10dbb10bd15d0437ff942c12dc4f9b0206371820f5669065fccefec40e98c65d58c7283178eb6e03ee178df912bd2f9bf1ddef5d0e8bb7c21027ac835a6f4ac405b67c2e00974b183b3b69f4a21e2fb5577cd3fa80a922dbbb2ef9ccc1460fdf886286f98092d1ddcccdcc1a92fcc2f3c9aa95346e5a8e7f9ee66312a8d6d79b92afd56e7528d821f9ffa0b2b0105c0946ed8fa93882862a8540e193402f6579a377b5d6bd341d010438d0c8fb181388ffb65e0b2cdcf32155c0b4d6f126ef8a1179ea3541a38edde3f1f8e11c09cf92903987b1bcfc0f99c58623da618a5e92414e714cd545d3ddf46e084596b6ff8faf0973be86ef48c8ca973f0a1fc3871a6dd67a691bd3e0ddf1a423b9bef6181024d0da29c69e969d43a45512ac0869533041a300c1750a4681a93dde85c2a7d1ece439c0cd3965376038269548eb760374909beb0c46aac289613c1a8b53ae0698ef0ad4d286cb7637ecb07d20d286ec5187a91f812cb4f99b6da9b74819a384c04f295dfd4008fe11976fbcc83d53adabcd6ec5737c1634e704c1b68381788b4ba28dad170c0ad2a4bc871762f07fd0ffd1d37dee0f2152672bdc97fb69acbbe7a0a85ff88019fa51de355f47dca0a74ea528e8fb0b29bc04cf70bb18590a03f2b2b725d451b8f5f37cb1a7ff237698194351583217055bac197ff529b9d8f8b7ea0f78cb12f0ba2bfd9a7dc5ba469aaf8421b01f3242848e801b01cec65da9ebc1c1618106f0858f44fb4a81e7c07cd098ed4aca64ffb0a181b1dbd83f7d3e82c86f02aa805bf888f999d5ccadd1c6dd25b58820f9afd8b9a53aa93cb32938fe8e0d1b1f04c84d923bb2f76a7ef0cb5f501d5beead7b2d8e84722dbe50084cc715813edbaceb17ab046c9075f21aaad399402a9d3606b664d58e992a117e3e92389ac87f39a83eb035a4df9569f4f171577a67224eceed4ab6f4c897aab269dc3fcaa2c36feea43587a0befc5c2c9ebae65c103f04b92dc2e0f6a793ce8a13bb5fc14d99f0650806d617caf9dfd894b036f83b6e01804de1ff9ada1b12e0dac5ef9f95d6468be6d28b04640ec3becceff1436d7aaf96da77428d3582ae13d61eefda18e3af9256bcae31fbac6dc6c2c8bca8a1316f9972a82830d2d1a840329dfd4404af13b99c1fa2528e8b180c9402a79794f5249384166bbd69b703fd4a122a275d415a178a69408a99e1a011c8f820695d955142aae70549588181573e9096ba3db75c0f5ef8296c226c9ba3783ebb93cb1fdb09e36b98b67991f583d2f41204823a64cbb18c005a96642e90409229f65c67ce69f4c062604ac8ad1f60ddeec981d9e0911e1f5e897ab2b94f35487114382c3b71a09a27717a08eb9f87329657c14da835a4523e7b5d2951031ab26eaa90d3473a850760ea2e2261cf2564531ede5d4ed3023ea73ab9d98d842492e0e560e01befc685277a4b5a53cb4210a5131223b205f7033aa51a6b0546c3d9731a4d6574e612509946d55f47a0f207f956378ca1f4af2ae9bda14cea65ef74d58302136c29659af7cc753986aecd52563d1ccf9d11efadf5b5fc108263c2ed24a935a8bf48fe3269f552a9a9659813f94f6eaafa76ab20f5af37576409ad6be15aaebfedf66df5aec89a98d0e7d549d6bd1c73cabb6c16f6cd1166f517316cbffe91e5d63371875d6923cdfcdeafc5a12d7402264fe51eca38ad1fc0815b688f3ff9d1c42c703eed9f8df1d4ced289dc635776e3409df2635930de118fcc33c3a112c458478d565367643d376248b27569187450ace30502cb9a85cd55f6d40737b6535278631468d200e08dfbb0d6dc82e420df310d331d5d3c95ca36af71fa9871b265464ceb092d427945f94dd13106bb3e2d5b395ba2dc08dd3cc1e1d718a390930e7d078a388dbfc82a84c1ae17bf776f524930a5aac14fabd97bd8816d2e118de666864669fda008d9ef5fc5b321496da23188cf659c9c51ce39aefa9906c2a00269baa823ba9390e3978e5a26c451aade8974638b4d35c6b781f9e0f4e9d20fc4ce491c9b007cca5f047ad7158e66a7c43554a5ff02fb8a704751c769264ddac792bac252dfc8dc8ae9f7c06578015e8e11c7c94d1ba277f9d2657168b2f3d2be2fe3dca8d5c7dd639eeffd04f94ef21ade4de04b845bbb7258dd65cdb99989803caf5b65127079aedcdd0b1063cac8688307feb4302ea2ac43617f8cc44cbf3274ef928063dba017d0c9310dbe912a0ffeca7f3b212deb90def7da2b219426cf68edd169fcd27321819e0ff163bf467fd53b1f21aaa1c98c13f1751e2d2a0f32a26352c6c7734441aa45beca811f5d44746c9b3b23c4c3a438e7261a65b5499dc339e2d545e6bd39e7e56cca44a6b17ccf19876aaeb1bb41e416e755b59f9ac67e65d7ed6d4143837e1cbd32185a8d638f9bed16b49c645dce9b21d4bc9380ed95c940b4101ab59c7b261baa867f3a7278758f3e01298b6f08db2802ec178fa2eedae79d4e37a68d9ffd92a8320ed59a8e14c5f32e7837f90d9a142ebc681ba1ee4acaf2f37c92e80335880d025ddb8d3f8b2d07f2d3c79c5ebbb42229295460dfd2f682a3e497e879bbed50b17274144617486a1d3fa1241467b8a15193b61949dc7496781949ea5a8c40b1141424dcfee0000000000000000000813181f272e", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + } + ] + }, + { + "type": "MlDsaSign", + "privateKey": "15e04bf6d4209b8c4cfe8afc2bbe6f9da39072db9496502939931b5fa7088abe7dc282e4e0eff44cc33246aba043ae58f5580dc29c245efabb45931559dfdfa1a07a3bedff273a6e47f64d1ac7ba44829494610f96eaac1f23372c021d743ac1818dd93c7a14d184262239b09bac038f72db6972d9569215564f8999abf3fd1e10532724231011337456217036651077730508052880818760806160751806170164663433355545615283765085350508078377035004151744503252773505805358154735886776704316047452278002678847701405625061721302633630605222112541361513112675864588705573387633224061814414671303134081657868544138322028276384547783275413756702872815400677568001214202382375456844814303101682851070534268540571581148163622044326614713241637578885886688076042150712647888272016447631217734854758706461010102132010432200727240772745010572302410884572815837320233756111343254514166240434577501066220065324845107553075545377005061712315368747721883757147641151826688505572565666738470360700843280884212780241532331107083428008227356265427521111870423565387340043132150503670487182576310665147254247211881342422584452637420407245147372335772840610140835601378568632028445714113182316404243153003634664828555522310627707505836555635567068522055610882231720335571501637870542374813375860826285711778260712664213386600821806047601271701047853517641072285287384574175360828558418302386737766144004173187862802765583086034507322125875850455442624101866863735425067248804547080868362557417160555525363864835873214323638281571522811654242756610601404833175620162368434323240241760340406676662886635261348541564677564767134347333470767883726274868380017331024712582284556055237124305642244743257138887670003742801306036847154153114675437183648505435007528267683453658650852811048417462432337661661375763565056365241780266050387832165651352222571753131486130836850786545355205136833050015157500834722027636561411463025112866261775454665432443068808524023617165344341136130223754366544818018001343845644340522285747182822058742865222674504745137258226160600765466072223318580156368825672771457033343076140880132411186504716000317478847588277168174450437172577880704742002762548507637725135434428731087777884458068582737487178841862785621361663446152340357804006076240324043588184334267526623653547661543221151011367088665308242538635565130125763604378531306611567187036333563846250178870025736642224674342651553430701017761680741423128566050602372512367615727052717441425334046516826113215100452505816581380524441357000406166838682106158821566127226124603083712207388660786721345252340813554546152123500662137500560882778341382084701880670088705108537811203815322225014026064082218866548713232168455686538071862224232266547703654183348330832565518507071868454606436323184778381776211715364782153030587630247811772053211877652166382213612772616075643328111771810731202355883085102132273505526328864443457265846132836137217448686255471417403828411743763451816160662054017700261054811206825807336066367836578746365523872472344048608140551775425681273542677214442075461163541306017276038654506130141817072482646314726228871607758763523228237848337324324301481318756373102431168fdde3121a2ce8b9f908343221274c3a5780af7da8a606bcde7e3fd50ca079b08991f4d78e3cf1a0c4b20d599003b6930f7e2a93d5ac38e179bfb234471056c9842c59006f9e5531372dd21ff8f3ca81b5b5cdb5bd50b2ba286484f23e7a373e354f21005f7a22ea1db7ceac84bf7eab93955f6f327dcab2bcb7cad9d7e16b91314fab94e9fb67242363cdebc4095ad6b0df05bad4338ee0be6f214ca0308621cc028e2bfb91b9ec910edb4fb1761903c4b99df04c7ada3dad8615b1403c58f3e30602088c74c4c08734f6b87b9c1f321f3307bc1cb561bb55e1063b3d76cb82c314e2c87bd27d888efd6704f106aa68392b7fb6f725fd7d6ca1da9571609694adc70e996ff07ad9b9f581cb902f8054d49532eca9b67337d81fc8c1a903a4ce8d4566d0c66cda5b6db030b7e132901b0f7ed4f86585b67370d79d0b399b69a64ee975f610d8ede730802b42caaac63d2f2f575c2a5bc6e6c92084825295322fc73e54d56312964b3b21747e0995e1b778709a5ed4992e3991d805cfd0329295b680ee003e06a17c374b852246f2800b83cd9226ef275afbc3f4c6cafd1dc768e439fd05b768a87b095f864ae9bbf7137832de3267311c27e3af6c6834ed3c351c4f0078b66a859d38c0c81138c3fa136d70d1ee7b56b938a30c1e39b4dfa5ec11453a13b8ceb3b40dc8ba90bba993bf53ce4ce870c94a5429fc6021f35898339d1d5a39d3fd24e2e8b1e8242b4eec35dc61435972fd47c6618bd725dbd7986d56071466448c96506542e48c6406da3f624a7c063c09d9137a1ecd7ac8b5b1fd7160c69b52d5207a0e3551d0ddf9f18f61c147595e64d8b6fcd5d63289f5b2b4a4259cb7acc3e00bc31f17c5d9bc7765f31f6dfdd11f125bae25ce496fdec9358dd336d7c58394982113215eb11a461096523990802dd281a4bd5ddf286734d92eca02e26936c0d83ac4d1a22f6477e9dd132ed558f7fa8e1730f1fd9d2e7d23e395cbaae84dec2fe0380cd7c2b55b89ff333006c4916f0c5e5f7970601f1ecb79024bd16a82169992047870c2b1a0c4e98065bf9f6dd3142dc941db338b65e2a917e7006c8a1b80e08c490ef19bef13a523ed0e49930069f896cafda87a52babc37081148f0213c702b6d84a550a18658957bdc1231a097a7ff5c6b6d1fe4d656231e862d40257dcd8f1789e670dee04e43b721cd45f43bea66036d1ba9a2ad594da042c4c6d0e41477c566d51c358bed1848ecafd34436effaedf22880957ebaaa882b52fdac499e9838be416f1a119db4082b1db0c792badaf50b8370cdd8972d7ab35452f66ba6fd7c0ea74787993b1fd8fb674a2f89772476f272a128658579e5a72469c09589abb4f896ce2c894d0a5c2a23955d98f2e6620c4bb2b852dbe7becbd3700db42a98849e05602b01707e27f0a1e0eafaed579d6f5195d5d28d48caf839e3e07a3512b8432eca403d16b6ae1bbe6599c1f9945ced437f2a1b59e209e242c8005350270bc3dbe7acdd0ec5b4e596716b8a4366ad46aa33fa521a051f78715ec593dca870c69d0391c0d6a0dc3bd881c57b6da009b8b4ca2a4d3161a9121899b4b602e13cec5de361440c25f91213d2194475bac036d7ad82e48e5319f14271ea5b7580d55020cf0f978f824d0d8cf9f723f3bcc48519f594663644f2a1e1add9bc665ffe92e841666bf1414c3f06e35dc895b825e944a3c397fc8aadb7be46e36f3a1c3d6df6271e4c71aba786970deae48f1c5bf48e2de014bcbf78c2ddd8b32886ad3284f0e106ab19550b3404f5b8d5d54d85e28eb231d3db947fa09e3bbdb40315c7b6ff8b9a3e7373744e4b656f29d741d72a2700a2cbb135b2b69440399258e0d61418abcafbabdbc5ec01ab321f0c675e234d9b2f1bc1c4a00cfc085cba1afa87d42626d5db4577ff26435eebfb9d4f31b33453d28028bae26b5936f30b9149f2ef68b129a0b03885cd3d756cfaf03614acc1096016dd8d738b76a813eb37e8c4100af4bf0248c7b4929edfaa6121f6b7e10cd25248709e8f0d17c20649095051ffde01c49c42c1d34ca0e406f26ed67d1812463df2cdac5160f98f09cfdb917fccefef409d4c2bea9bf166cc43cda18c14834273ee057052e5b47973ed8f2ad7ee25a2609b8dcd4b95a7f0e55ece59ccee4863edc434942847f813f85f620379ffed7835e845a3e6f6986df0b6f0a08fd789ae711fe20959714bcab4ed1b5b610508af507234b143adc6be34e4b4737042ceb3e21ff9d5a336df1e60278566a7706e7a12f604acb66c06c3ff43de33384ba106bb304913816fec66a51ebab43eb0167ca37a0d5657398314628937d2e942994e6c1783a43d127258261a905b04144acd6a196b5e22fdea526ffc63535d6194efcc2d4e10647be22ca36a8d3f7fc1e897e9c8444d06953da8d6179e3662ac0b2e6495222e7f64751a9d178397dda874c2b0fd30fddd92a48171fe2697214723cafc21cccf314f0f4c24795854560807ad9ae4c873a4bf85b5aed6b711950c726ccbd1a972cf7d931bc50c5d60c9dc48e6b5721b31c1309c562c18ddd494575d023e99e0be15db11905262209f72d747690372191ad742d56d09b9cb48f7cb2a47c0e39af54ef94f875cb9f7ff352ba89831bb248670b267098a27888ba6e594e56ef860d3fff472032354e8a5b77a5ac3c804dad988cfe0f60c9fe8915aa2454893e35b8001d5e8e3bbcc3f018dfa31dc73187fdc623a11aceb969539a6ca0132c8311a047e21cb924f24d469f1c8b6319a8b4ceabfde66409b8b140b3a4e01f02683feb9bf74c5a3beb86401e8ef4ccc37ddf7d44d5c71296b72351d7857a15d7424190c972fe69053389ef39f3fa5d91fcfd4118fae269167cefdf260932731ec8acc81414acdea52fc926c6635be4eed57acb95047eb0dd30c82f3428023b72aff6cf99338c1f8873f122c52c2da7051aa2a306a778c361ac98aadfd73bba2b9ac06125f18f6e64fe99dcc195e02085f9efbc12e064f296aefe6a81988b07c68e0903484437ccb45960cedf23302bcf3524ebc89d47e6e797d738d62beecacd4022312b3973612dc31da40626867604f00733fa781b435adc2e8df5cac855df761c4c620616b895915cfb98074390d2e813362770c7c3ee14aecb979333580257ab1bb44b2dcb9d1d3c003e71c29db1d45e5ed80706aa3b3ad49ba918b15e79deb544d9920e70d0982594ea0afea60514d18a5101bf50386e6c2e96da7c7e0e71fd498a3e9828245caf0c9992642f3d85d1c1a530fdf83887e8234ac4e338c4640c1b77c773cea2a39849d7a2b7874184ae65a073c583436f17aa85980d1d6497da62229f6fa8914302ce450b56e58aac3b585ccdef36fee8467d71b65c597cac0f5aa21ce36735e1ac2ec9327132d988939b90cae7e2cd67d9d80d7e899189688e6d9c5760a19543de2085c269102534498536a6c6b4568fccd18991dc035742415d16b27dee0a3dd5f845153a6820b456ae74527d43d27f817506bab9d7a912e7", + "tests": [ + { + "tcId": 59, + "comment": "rej_bounded_poly (sample_uniform_eta) requires 3 SHAKE blocks", + "msg": "48656c6c6f20776f726c64", + "sig": "0c75beb55db356144146bdc41a5fcdb1ee2fd32feb0f4a37458617b6b02cf5363b96b58166aed22162d54823970d25ade5e22205af1d387f455a30429e53a1186b03d5568785893dfe81fa7fb28ad50f8b547be838d4e57b1d6aec98ca75161f3dd8ab552b417bc573495f1e59b3ab692eaa7f4d30c6f3a02474a1d01d156f3a0caa81c2ca9b2c65d1619c148b226463428085f7eaf1bbcd491f1be100c93ad8a9c33e57ebb76f8b57bb603534d1930c1bcb17d2036d44e7c37d88fe3cb0d285e0f8d275d8bb44827d7cfd23ea6468cb4ab3c53b19ddaa2e4e688a33a4303e6a57e1db745f3db0da5e3301c4290b4ab8cb42a0f8b3e1cb63c29ff943cc4dfac41c8a9c2ed987d8f3012cc4550e19ce99366f0700341b86103a1fc81ea1fc0f49c66ea638319f1bbdbbaee13175e06954ce060870055c5e861bffca5f706424891627b43e92c92815cc4a093bf794bf528024dfa927998ae93898cadf1f2d680a4f26e77e749db84231ee587f3eb82a6eee42498fba367bda88c7a066e25c47453e1269de4ea56abaedc0d2e7040636f8207fcb7e6273f2f43f557cb56680214ca86b1d5f6e774d699e9b7e85d32b7c0cbe31f2e8b4188b7c8bfbbda09f1c70018f3bd73ef365f8bbba82b461b78cadb3d0cbf9ca4b418472cc424860dc81dd2549d3503bf93e293929f7f83c2d576709ccd291a8bd4c7d9b4a9a5f64a8f2f20413582611888feafd5757f851609b5c7b00e9ad93a4beae2e21b1f65519c7d068a29f4b2db0b2a61e676ed721b153e2a7818bdd624978d6f71c582e04ea2bb81c23047b463c808e3f3220f5de8e161e6b37336be5e635f0fcf31777c341c7f46c5144e1097b90e44bc8ee6672cbef59924d841d7faf0e0495122c98a1ad1004165ab89462137d9d35330239c438fa864eef96467b6f3b17de011bb72b57c38482eb527deb3edae42dcbbae0f2202793c76e0458b60ddf7a59e0438cee78736c4649c3aa96d798a4103471ae967e93dc657848beb0f22d997e9e6f97ce3c42bba7da71f3bc7c95efb98b6739f5e88b37bffea5e6ccf39af2a97223249f89655bb0df36c1a6c88b613c1e3768c1087d2ed5662e12d4cee9d95f1f5296902ca56ebe44e37b74e9782637e4db29b300cc217e9e2258c57e8fcc4daa69f39be21f6e0fed143ca5e7aae26057cd622c14ae735f020833c75b9df4dab14a5c75b1e1dabf4d3075e0af0cce8a7d85e0b32e1e4f361d9653ba38db3469d01a957716c851d70eb39bbc5747e7a5a45fff6c6e3b0b8b9d76126fde2f65e956339eca35fabb8f28f905c81510dc1d63f3364ffe9b0588f37ddac2630b3700cd627b48b747364bc96ddeab281ab27d5d591d5cf240fd7d5b49b66c8e48072a816d5a218359b1c030160ca0bffd77cacc7c583e4363ebd2c3bd6bf0f8ece2b2b5651b718567e36d5d5266cc38d85c453d169aaf0ea1830ef7b944f5997b0ff94e6444ceedf5b5d5288dfb75cbcffb789ca8613268d659320f449e3e4d75b03a1ad31305c08aa319e8845a05c21d8a20b4e84a46ac75a83674c2421d02d9fc2f0808d42a46a247d84daea362079efbf7830c4c3cbe8fe47d31524704417590631fc67e93264e5855d8cd3344e65de204a5ead08148ae674f8423d2468707ba27b4bd14ce3cb51e60bb5c35016baefffec2ed017c2517dd18675a5b8d9e0055c2e9df3effd128ecf88a2ea1a302154b2b7e3268068501334b0245fbe10651a2ec76917b82d5dce274e9570902f42a76277dce44793191bf15d2a3aea4cd7b403aee4c0feefc7d8121c686398e46ecbaf55248085ffefa3d9a8e96ab48a7dfcdb7bd9cba7af25278a449562ac1cb5084cf79c42376d68268ff53eb377c7207cfea631376cfdcfcd207a2b10a3ccf2a6dfda0ce55e15479a50730ba664ea4a09b412b3fbe6bd6e3d0e81af22080d8e94d685225f2f69b39b0afed4099702a602771cceaf6df0ae8c7e7ec972f883af6aa711de81ae0e83e5494b6926bc26c8aac103bc030749bbe655bc85d85b39135a0d3d5af23026357e5e4d30103d012ca37e59c0920278f9e3d84021011e0c3ad7ff90a677905ffd78817e4cdd36d20da46e15cb48351cf468c138c6f16ebdcad4a91692285659a99d468949e3b53fa0cbeed3bb148ed404dd6d1bd65cbab046f16a633ca0eded57a3b66fd8b36297abe19916cb604f1fb08589434c8eca083877ad3a1f799c41d4e187148548c7414469eb48e0623363eefa18ef0160a71eaa3534c81fd171bfb0f604fbeb14bfd178f640c4fb79b79093eb8bd11e81dd6e3adcf0e7b2ef540a8c14c310849fd065cbf97d027880ab6e81709c4594e6965079ec77f823f22c1f41ba5d46eab14e11e7931aeb2dbdbc631f0c764a3a84d8d9a32809a1f18386cd583c2f86bf644c912a969656e6b215f0c8584695c2fd559d60289c12c9642b6f9b9e92e3bf5707321c8d8125680a026757fd487058aaea659db79aa3aa0a8bd4de34a5c412fb534b0c9feec86a49e9a2942c3f4f6a2e006dbec02bbbb7231fe9104d170b7a6defc30ec60baf66e8df7fc2725af9cf347871da7ace0084d13f98a6f42e6feb6f7ddbe30febc3c8518fa81e0d233ab4a5ee54d90e64c4cc0d82e6903253ad3500def856b50e46fd59e3af48bb3d0fb9aefdfd8bf4b588a1137205855bf16deeeeabd1005a9ffe0bc1e59612eed56a544a0e5abb3480e066fd551a273f2b04be332f3dd1096f73d7c0d4992daca9cd3eeb256f7c9729d1344978978701b307402ac9974257a2603a77dcf6e0aa186b7ae11bdab8b5e85196922739ddb109e7e0dcc80305599f19b90f5d0c0bdef9fc8b443e46260a8ebfc3c8633dacea35cb51c02e1ce6e87c788744ff47f2ba48fe8c73a3df66a9b7752cc041d2a0b89df7306cd85ac666a71ce8f38adee5e9edd9df90639432bc2ef67664fb02e388b88e95aee0549578f7398a18296ab9b3df35a9b497c9a41d0042b5b66c593e353c94e3d8ddf031b3a3d071409f92498651f86047f1656665fe076730b3465ad551f7026cd30b938ede716daf4f85aa3fe6ac76ea240861e4e222fa034b18ab54ce04c476acffcc4ed9b79304516e37f2a1eeb5116fe4a81a73268254ef02e85a82c6f921c73064011a421f3310389da4a05e28aa87d3ee9d2ed5551be90d1bd58935cb38fdef9ebeceed1ecce29d20d2cfedd85f4afe0db902c615efcfcf180098839cd6eb7acd8927b397eb0f0d70b19d0d4cfcda80ab4a5deb950101e7724c9d848374ebfc97ec72d5c30c6acd158cc864f5168e1afd4c99ced7f8343719454357a33c3a519001d76055f5d95f13365e1f7fb97674094ca62986de4a0d87bfa4bee1e655c3e72736a899576262ebd782485eb7bc4834822e004379a971d54665cd498f1f599e7fa4e7041392d243940698957a31df79ce06e2b6df3d5d37e6b94d81b056c129c35ccaef3438c5104e1154c6bc976936ee6622cba189496cc62f00b4b087ecc6256f125c840dd54c364530a159fffab8dfba9874df3eeffb1943489101db83df904b7e2e3da5aeb29a9714453d36568646ba43d102189bfd90d473ce5e5e213b5c6118cc22afaf826eaf6536af5e861b6c832553c3a7fb1522caa688792b3e47fb5e9e1cb762d5113b5fb8726d166e3a7c7eac734e23bb44754fddb0487bee9312e738e415bc66da00276d3e3c48606d733f2216bb322c5bd28f90a35a41b0f3c56f20f53c923e86ed7629740b6ef27cd51477f140e1507c9162c508ac4de2cd6543e6e68eaddcbe026fa177cdefbd91ecf8d782b480e52b8c180349654e495bffb2284573a1dfcc21ff7046448d6d7e5ad3743d7c98e4c56655e88daf7bd293961277a5283620acc979c39ebcd8b59e9683a8d84d361a904ddab46bc06c64d03b48ce4356a494ad4786c9859551b52ef99229c846b8f9ddb12c0130198ce92468f103c8660a3fdc504c749e89b7247c9c0f8d8ca4ce188d1e03cf3c3ba8444d96c84006ab4572c45896d5f521447610c0a12ee91aec667368e3cf88883e9f4ddf456812ab0589ebda1d8faed0ce6e3ce7389c7559993d3192ecb2e6e3d17e900e2cd1c9129440294467036c82d1261296fb479441cbde0ba2ec5c4390e72baba6b88a349fa5a13f5ab49241a8db7c0bfb12dcfda0346cc3414041dc78d50d44118523bc34c07b3e2ad92a918b96f294e8aa212c65638a3d3a869eb90f334ae7fcd387034f00cf5f6fceec7c9a0f5df4028dc63a1ac408d4570656afb0be4321ba047b998f24177be997b0e47c2010656be55c84b685729ae5a3230ecef2c92cb660383a989cbc9df9b6eeb8dc2577d12fe6a3d0989e3a60b88422d42bd75f1a7ac8391d57b5268bb41b9ed5c4b0cb9edf76454693fd604b1f4b2f6425a71a1c8a587f18691ecf2da6a6ee366d50e05239655d02a4cf110571ec706f9e6a6f059472c39dd2d53ea9f311a89d735e1b8b19953849e0689e2880ea5d94e3d97fae414db347ed1b26eeed05df3c7d8fba6af4316e79f890654ccc61d6549524a51783f2412e8ef0e37db33d6b1b2bc9adc84227866ae18ad9f987ff8010717395389bc163072a1a2e8082d3b5372758911477db0ddfe254867a9b417186ce3e400000000000000000000000000000000000000070d141a1f24", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 60, + "comment": "expand_s requires 23 SHAKE blocks", + "msg": "48656c6c6f20776f726c64", + "sig": "0c75beb55db356144146bdc41a5fcdb1ee2fd32feb0f4a37458617b6b02cf5363b96b58166aed22162d54823970d25ade5e22205af1d387f455a30429e53a1186b03d5568785893dfe81fa7fb28ad50f8b547be838d4e57b1d6aec98ca75161f3dd8ab552b417bc573495f1e59b3ab692eaa7f4d30c6f3a02474a1d01d156f3a0caa81c2ca9b2c65d1619c148b226463428085f7eaf1bbcd491f1be100c93ad8a9c33e57ebb76f8b57bb603534d1930c1bcb17d2036d44e7c37d88fe3cb0d285e0f8d275d8bb44827d7cfd23ea6468cb4ab3c53b19ddaa2e4e688a33a4303e6a57e1db745f3db0da5e3301c4290b4ab8cb42a0f8b3e1cb63c29ff943cc4dfac41c8a9c2ed987d8f3012cc4550e19ce99366f0700341b86103a1fc81ea1fc0f49c66ea638319f1bbdbbaee13175e06954ce060870055c5e861bffca5f706424891627b43e92c92815cc4a093bf794bf528024dfa927998ae93898cadf1f2d680a4f26e77e749db84231ee587f3eb82a6eee42498fba367bda88c7a066e25c47453e1269de4ea56abaedc0d2e7040636f8207fcb7e6273f2f43f557cb56680214ca86b1d5f6e774d699e9b7e85d32b7c0cbe31f2e8b4188b7c8bfbbda09f1c70018f3bd73ef365f8bbba82b461b78cadb3d0cbf9ca4b418472cc424860dc81dd2549d3503bf93e293929f7f83c2d576709ccd291a8bd4c7d9b4a9a5f64a8f2f20413582611888feafd5757f851609b5c7b00e9ad93a4beae2e21b1f65519c7d068a29f4b2db0b2a61e676ed721b153e2a7818bdd624978d6f71c582e04ea2bb81c23047b463c808e3f3220f5de8e161e6b37336be5e635f0fcf31777c341c7f46c5144e1097b90e44bc8ee6672cbef59924d841d7faf0e0495122c98a1ad1004165ab89462137d9d35330239c438fa864eef96467b6f3b17de011bb72b57c38482eb527deb3edae42dcbbae0f2202793c76e0458b60ddf7a59e0438cee78736c4649c3aa96d798a4103471ae967e93dc657848beb0f22d997e9e6f97ce3c42bba7da71f3bc7c95efb98b6739f5e88b37bffea5e6ccf39af2a97223249f89655bb0df36c1a6c88b613c1e3768c1087d2ed5662e12d4cee9d95f1f5296902ca56ebe44e37b74e9782637e4db29b300cc217e9e2258c57e8fcc4daa69f39be21f6e0fed143ca5e7aae26057cd622c14ae735f020833c75b9df4dab14a5c75b1e1dabf4d3075e0af0cce8a7d85e0b32e1e4f361d9653ba38db3469d01a957716c851d70eb39bbc5747e7a5a45fff6c6e3b0b8b9d76126fde2f65e956339eca35fabb8f28f905c81510dc1d63f3364ffe9b0588f37ddac2630b3700cd627b48b747364bc96ddeab281ab27d5d591d5cf240fd7d5b49b66c8e48072a816d5a218359b1c030160ca0bffd77cacc7c583e4363ebd2c3bd6bf0f8ece2b2b5651b718567e36d5d5266cc38d85c453d169aaf0ea1830ef7b944f5997b0ff94e6444ceedf5b5d5288dfb75cbcffb789ca8613268d659320f449e3e4d75b03a1ad31305c08aa319e8845a05c21d8a20b4e84a46ac75a83674c2421d02d9fc2f0808d42a46a247d84daea362079efbf7830c4c3cbe8fe47d31524704417590631fc67e93264e5855d8cd3344e65de204a5ead08148ae674f8423d2468707ba27b4bd14ce3cb51e60bb5c35016baefffec2ed017c2517dd18675a5b8d9e0055c2e9df3effd128ecf88a2ea1a302154b2b7e3268068501334b0245fbe10651a2ec76917b82d5dce274e9570902f42a76277dce44793191bf15d2a3aea4cd7b403aee4c0feefc7d8121c686398e46ecbaf55248085ffefa3d9a8e96ab48a7dfcdb7bd9cba7af25278a449562ac1cb5084cf79c42376d68268ff53eb377c7207cfea631376cfdcfcd207a2b10a3ccf2a6dfda0ce55e15479a50730ba664ea4a09b412b3fbe6bd6e3d0e81af22080d8e94d685225f2f69b39b0afed4099702a602771cceaf6df0ae8c7e7ec972f883af6aa711de81ae0e83e5494b6926bc26c8aac103bc030749bbe655bc85d85b39135a0d3d5af23026357e5e4d30103d012ca37e59c0920278f9e3d84021011e0c3ad7ff90a677905ffd78817e4cdd36d20da46e15cb48351cf468c138c6f16ebdcad4a91692285659a99d468949e3b53fa0cbeed3bb148ed404dd6d1bd65cbab046f16a633ca0eded57a3b66fd8b36297abe19916cb604f1fb08589434c8eca083877ad3a1f799c41d4e187148548c7414469eb48e0623363eefa18ef0160a71eaa3534c81fd171bfb0f604fbeb14bfd178f640c4fb79b79093eb8bd11e81dd6e3adcf0e7b2ef540a8c14c310849fd065cbf97d027880ab6e81709c4594e6965079ec77f823f22c1f41ba5d46eab14e11e7931aeb2dbdbc631f0c764a3a84d8d9a32809a1f18386cd583c2f86bf644c912a969656e6b215f0c8584695c2fd559d60289c12c9642b6f9b9e92e3bf5707321c8d8125680a026757fd487058aaea659db79aa3aa0a8bd4de34a5c412fb534b0c9feec86a49e9a2942c3f4f6a2e006dbec02bbbb7231fe9104d170b7a6defc30ec60baf66e8df7fc2725af9cf347871da7ace0084d13f98a6f42e6feb6f7ddbe30febc3c8518fa81e0d233ab4a5ee54d90e64c4cc0d82e6903253ad3500def856b50e46fd59e3af48bb3d0fb9aefdfd8bf4b588a1137205855bf16deeeeabd1005a9ffe0bc1e59612eed56a544a0e5abb3480e066fd551a273f2b04be332f3dd1096f73d7c0d4992daca9cd3eeb256f7c9729d1344978978701b307402ac9974257a2603a77dcf6e0aa186b7ae11bdab8b5e85196922739ddb109e7e0dcc80305599f19b90f5d0c0bdef9fc8b443e46260a8ebfc3c8633dacea35cb51c02e1ce6e87c788744ff47f2ba48fe8c73a3df66a9b7752cc041d2a0b89df7306cd85ac666a71ce8f38adee5e9edd9df90639432bc2ef67664fb02e388b88e95aee0549578f7398a18296ab9b3df35a9b497c9a41d0042b5b66c593e353c94e3d8ddf031b3a3d071409f92498651f86047f1656665fe076730b3465ad551f7026cd30b938ede716daf4f85aa3fe6ac76ea240861e4e222fa034b18ab54ce04c476acffcc4ed9b79304516e37f2a1eeb5116fe4a81a73268254ef02e85a82c6f921c73064011a421f3310389da4a05e28aa87d3ee9d2ed5551be90d1bd58935cb38fdef9ebeceed1ecce29d20d2cfedd85f4afe0db902c615efcfcf180098839cd6eb7acd8927b397eb0f0d70b19d0d4cfcda80ab4a5deb950101e7724c9d848374ebfc97ec72d5c30c6acd158cc864f5168e1afd4c99ced7f8343719454357a33c3a519001d76055f5d95f13365e1f7fb97674094ca62986de4a0d87bfa4bee1e655c3e72736a899576262ebd782485eb7bc4834822e004379a971d54665cd498f1f599e7fa4e7041392d243940698957a31df79ce06e2b6df3d5d37e6b94d81b056c129c35ccaef3438c5104e1154c6bc976936ee6622cba189496cc62f00b4b087ecc6256f125c840dd54c364530a159fffab8dfba9874df3eeffb1943489101db83df904b7e2e3da5aeb29a9714453d36568646ba43d102189bfd90d473ce5e5e213b5c6118cc22afaf826eaf6536af5e861b6c832553c3a7fb1522caa688792b3e47fb5e9e1cb762d5113b5fb8726d166e3a7c7eac734e23bb44754fddb0487bee9312e738e415bc66da00276d3e3c48606d733f2216bb322c5bd28f90a35a41b0f3c56f20f53c923e86ed7629740b6ef27cd51477f140e1507c9162c508ac4de2cd6543e6e68eaddcbe026fa177cdefbd91ecf8d782b480e52b8c180349654e495bffb2284573a1dfcc21ff7046448d6d7e5ad3743d7c98e4c56655e88daf7bd293961277a5283620acc979c39ebcd8b59e9683a8d84d361a904ddab46bc06c64d03b48ce4356a494ad4786c9859551b52ef99229c846b8f9ddb12c0130198ce92468f103c8660a3fdc504c749e89b7247c9c0f8d8ca4ce188d1e03cf3c3ba8444d96c84006ab4572c45896d5f521447610c0a12ee91aec667368e3cf88883e9f4ddf456812ab0589ebda1d8faed0ce6e3ce7389c7559993d3192ecb2e6e3d17e900e2cd1c9129440294467036c82d1261296fb479441cbde0ba2ec5c4390e72baba6b88a349fa5a13f5ab49241a8db7c0bfb12dcfda0346cc3414041dc78d50d44118523bc34c07b3e2ad92a918b96f294e8aa212c65638a3d3a869eb90f334ae7fcd387034f00cf5f6fceec7c9a0f5df4028dc63a1ac408d4570656afb0be4321ba047b998f24177be997b0e47c2010656be55c84b685729ae5a3230ecef2c92cb660383a989cbc9df9b6eeb8dc2577d12fe6a3d0989e3a60b88422d42bd75f1a7ac8391d57b5268bb41b9ed5c4b0cb9edf76454693fd604b1f4b2f6425a71a1c8a587f18691ecf2da6a6ee366d50e05239655d02a4cf110571ec706f9e6a6f059472c39dd2d53ea9f311a89d735e1b8b19953849e0689e2880ea5d94e3d97fae414db347ed1b26eeed05df3c7d8fba6af4316e79f890654ccc61d6549524a51783f2412e8ef0e37db33d6b1b2bc9adc84227866ae18ad9f987ff8010717395389bc163072a1a2e8082d3b5372758911477db0ddfe254867a9b417186ce3e400000000000000000000000000000000000000070d141a1f24", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + } + ] + }, + { + "type": "MlDsaSign", + "privateKey": "9ee65680ce782748db4f70d31a92d596acf4e42765b63397fc0f9a3a7bd14a464e9b4abde70fe0f411233c3a5c2a0e4f137510f47a7526a7b13d3b0e6720bfc17b49f66b7579c8417fd7f22d49ff0bceb7d00cbf7857e2833ed9fc4d8494e220556007c689ca04f9bb81676689a8e9cca8800a72a94c58ac60d9a9d79b5c8240811372256641568808647784702482241460868268526201550403827252455601678435284820150830567721248762612834321302086367250887152770434221660510838753215561014566286015827522152368333112244860040211084204822552305182514208014878312131078760188816743853857354847285161161018814180425644732051481084803442543338246032065270747234533255510585508217316557045882103778475366203264334837558368472827262552032761000662032050241258204747682513008075110767867554545506432417500066272385364860478208077752344624062825285224505047606873375807824340087188543217236572402602107383548151860165266335253812470860353657317261137627118248058228510737718571460547707828670044256367626641785031338370231632702840507411582803743371003632346682785702600070454202180087360153264663354186317118344512245382437531667340842435867235244724874640820515765106512101273448236504853631674814153610804801256615007104720200506018852513781335635270120431134238468567826284825855676622045587475773424475263846702022153326348030835873536361348071160413631476754137787123766738388158563777744740403266086615527774127256865336072311316586561200404474116417866763017877777603723662216624773574825412437472107856837122162275131537365740575227872700462131624022731310250270731680678685507683845307310038073677466120303605112401776200565853645458855123357526081587748450863278785378470585428556131820342327513250037508524767726165166011808414087622736856602721525064557224280072473544631327216688220733216153435740584451676631585550482405630550868054174482655344211738815563288036788030701342488157438816586211504443241817625361221540063308170453832305686748748440257814278071628525840876320406517161101531532768165715882274776247748823574001256367534066447526412860044700647260843250731417231120743174870302132700713475617402160375705151316752638408856788242883076382512108636415443230802481110714731854381405317642637008831535325325221337727355362740228082703430564570362316370382664845203684358165266804021441178657417654123101831668357562316408721627068745070668062268423768543208780575075437777081838772107153654755243302043568141647278835854021801345746057745046620504611132143763307327305383775152826586705023428244174336436085631213618057400848277112400358478023631112165431288730828374778001072011845283284220061542242260142105848581450544862436452174120478310050337258837218717441127444350412335121814067252260607768808876346172116227303155366782222802181212868128764518045488524171470047073175163615477467648103825128878737382205808145664627787703675186184764508138504556105524137436471315460471471234175451433086108125415281350722216344167516340067552620427858710260708133702016551504482511368547360272713253776782433307647021652503475547725325775583513687143208105011478748846214151744557771604131125677866210726038283636672008866536215078564573648883c0199bd226946e884a38a70dec6ea918299d8a2cf2246cc941273373b9d286529381c0ffdfd6b04c8cd5b4e78f5b46a132afb33f7d654d1cfeb38507772cf5e081bc6e84595b64df4cd7edcfe0e8a2ff0f0f2db70db9b5dd6eb123219b24939e97c68839aa014e84a04907158732f4de57d9401dcd57dde6286b0ddd8d0ce277a99198e2e5d301bb706fa5e7428f2c0e9df8db3409adf23143b1853594a11685ef3e842c5e7045a80307745fb6866fd6212d136682d29886178467af8956b1e980fd3e83a4bc5f2cde789c28fd46682995de409afc535483b5973729e83ed2572dba455e844e64332ddc95fa97cce72a5a23a25f7c6de540d3669d83b40bc74f65ca015dcc7091c5f6eecc56cc89aa81af4470efb27c9e4d6d0735770951eec2be4f2b441fc65eecc43df4b9efa76e54b2ebd8356e02e2f76d776e1f1564bff0651022294d8bafa0d936b22d216d115e2f681fa24b46137e8710a9e22ba8f068e76653c6aa1f06a905b895af81e12edd6f383bf311bc2f711c430a3355c55bfdfc1b19084d9531f628db40bc2e78fafce4b1663792fc4e48127abc8911ec206f30bbecb56a62385c45fea73e3b30b3fbd57a60d6abb27c1de57858f63393b04edae302551642cfa8a242fa056ae1084c802b1d884dae8c862a851a3b0ad273fdd6e92b4476ad50cfe7c525cde5fd19b2cbff1e4c1d714371bdc486540462a1dbfc3ffeea4a4e95caa6f192ad317d83ea0b9f1c1e02b04046a0bb391cb78adb18e1a006a803381fe5024b47bb98d840134d81cf819f82637b025b2fac2f3a060a1101e54bf0dacbbfeee0e82da966886caac47ba9e445346eb8ec3f748933ccb3dc33cc159dc646cf809fa635466bf8a7adda56d11cf4aaf72326b3189101a04e14bb75ed9c9c9ad41668e627364e33002fe56a286dce60e36529ec0644f4e9eb8fe830af783e46ef401ef01f304f080dd1fbf512335b25e9e3934685633b0da0c16263f5861249628401259681283012e417b18398eb4b8d3b6a279b70d4dc7873d4acb45fc19d50dc120f0e945de4f56cb94a012dc1687614deb1984f1482f31741eda9836133bec19aac5200251a1dff621e78612ff8643e1d37b764a0bd57c422118c076085aed3618ffcedb490cf56ebca112b29a5dca9a0e5b45c3049a26be2cfb7441faf39094bb4487818212a59d75c10eea36953a79ed133fe34bb669b65ca16f46bfc9dd1fd897d2de92cafedcfd19d629c733dc5e8d11d886fd6180e95b9ae561d6e620039b30f4389f0a6938e1aef75e2b971781904a0ef5f032c58dcdc91e485c3f06d4d303dd6d2b0d1b73b1c4a17979134365f3a0591f5b8c241323e0444af4e520b49da0cd24ad54436f231712b1466adcb2a63821352e68a4d1df3be3dbe272049dee81401f67fa66410a1dff6181dc483a0f46eec8823780352bb5e44892982e5d16d8f9483392f5166177d51b520c7ba847450de21eff50a51ccf6c6bd1449bd50aeb95985c8a31b14f44d96a50a8f6b630b0fc29f3f51d29a04f88df29dd745d31ef4826c12a18296d4bd8f3a442262de978bb381075e3b0606f83f5b99b8028d0b49d36f946fdb8ca3b9abbe2cb9d6ea387bf00e119ae3a9827b8b3a7dfcd0aefa1d89bf02fe8dc49e43a30b42ab024ca431c91f5567214b4fbd313b4d9d39ad65b54e6afe37dfd389156d96e516e98215b2514300446f3da43a734113d525d5ff9c5e4db4d63032419483e1bd827250951e065c16f052a1d0938c249d6e6f2f313d12e32abfe4c7783e7ac3c14445ef665bf36c9d0e25e75471528c23a953b1838cee041ec4a476d7923dc65964ec32fbcff9514e7b76251cad4361a7b5244c1e8ea3d2d41596fd4bbd49a5c57843135dfe0d30d9420414c822e19b8ddf4ce9a35fe8fb9c5ad8c19f9dc0122255f5edc328fe60452214701577bfd87ea8a019106b48ffc1f2184b0a88f6b2a597cec184fff1d4d74eab2ceb197785d5a0ea25f6cce727d6fe3cbef37dd8984cc9b473be7a85c58ed72f013545951d5428109806686d277009baa87dbec470ac1a3ed4e9a206573875f7c591f095633583e83a22ed5010934f3780eb5a7393b622f80b6786899712398e75005cf31d0b25ff14e506478136f7266dc9bf318f6cb3478ea1ff9b78af6efab129b483b657b45fee12ccdff819da54280c91442e5e1ea76e4dd3e436b7b33b3c7741e872d14440632c563b41ce550154f556412f577e5d5afc020b0d011fc377d3fb94a6de0797255dc5d1b51448041e99a3c0f4999ee970659baed2f9d64c107adbd72b6e2dbf3c4911d5ef754fa9022714574add0b1bf6f5fedf8a9cea5fb64a1390eb9978303a88c91b308201a5bf1947426d35a6148d31beb3269270fdcd926b1aefd5acf3954cd105a6fed3fbebaacf72583cce38222be0976d7c42b752f5cd74f5675ed13637e9bab7a54221d6bba9412993c9e93764c6f35672265018815d0ba9bafc15adbc02ea9a09aec8ffa96d0e6a9f027f2a1aff405d8b90adc8a755bc4cea631a08488681d44f174d4bec2fcff5f2427d5471bb6fc4b3ae45707ed7ef21f340e92d309da7fea5b97b5fe033b52d11685ae2f42d590f1a70b718338e88fa8658b6d3defcb3c60f4105197d1195d561d78947e4619bb9910f4f0787c7502d0188f3ccf5da6e737f7fb94cdb4948181aef4a4eeca0d57df5ceed47e04405beaac87ef378bbc96d62cdc9b6d330a351c99b0307554055e1550cdee3f1d78a51e7c09be2b85c02303051ac1e1f1a3a08fb4dbe83c1a1591bd29e064c8b11a32502e0c6d9775ba5ebbcbed8e5c562a2725f419912797dae2050844fa3359113513024ef056ed9e3521a0a5f05ced47f01fc3a3242214b8e9634afeb69ef38c9df483b4ce256cdffca8f1838d10232b8e7476e905cb9951b5ee47e1861024a5de8693113af41657f1f2bab04dce3cd4b4c16cd438436268558dc08858eb0d2a1cb6830fb3e1f28277ecc8586f9eb29f138a00e5be34eeddf35326195cd1b230143e46df890a619a922ff88a146db3605a31fb7a076c0f9ade9d593d5e1199c3ca25b3bfa0b808620ee910cc9b8e89f56af786c43c70348447f358dd58f234a62c10d5903c74eb1728cfc499b75939efa1da90ef8f536a5ae8e5bf513676cf87128f4d8ba823d972447b56d00a7737a7f63020b4302ef41bdc5084709c90af75b10de041a21a6c788cd48796c6c6618ae5ee24c756160cf561cc6bc60d13424f39144862b977cedf7498f233e84d25e1345254abf8c7cbce9a1601201ed581939eecddd1362ed509653b32d93c56b14864fda9812510c2f198d83b3d16f060bee47c9fd34fd046b920c21eaa9562f5293da5213e4599aab6a000354cb77dca26dd0d4b0b36d68ff0854e713dae256ce4a51219aa659fb7dd17d2639accdead35d81fe52d86187e12b89e8cf08fc32a7a8ae4e1b65e9236bacc1edfe4f7e29c79e4318ac124dd62c3dc82348127df899fbe5e15b698a2d4ddbcd3c9", + "tests": [ + { + "tcId": 61, + "comment": "rej_bounded_poly (sample_uniform_eta) requires 277 SHAKE bytes", + "msg": "48656c6c6f20776f726c64", + "sig": "ebc6b035ee412836992fd32cb31edec14a0901edf47b682f79ee0ee00ab31f56b150e3c0ad7cdb295c635f1dbd6271b11b17710308daac7ea40878561153c9573f09d21dbc3a2481b377f8f34118053568285fbcf5b1d6481ff12e52e5574a62b70368396a0036d053e8c43a30b51085d0204f8b80ecedf6a4b663647ba18753cacc8401eb046b05b5899e547438e9a303df6de686c9dc1fbf9697985ba1014a86f3f3351813341c7b52d7b1a92e01a4c11fa279b20e1972b0463b33098610eca011b1cda8461fa20923faf42487eb36350f3d52ce71fe48f52fdd5161886fd76fb49426c1b9f8e2a364533f74be1062e26ae641f29735389be8ebe31e6b0f59ac5bc20462acb3dc24e85a1a0f1f8c322465cd904cab50549896bfe500e2c57444297ebb8c569bf5bc9ef6f78773b2349f50893619c4879d0dfc0cad871fc7ce0f63abee084426ed70b0e4a3a163985fd210dd4ee1db20afabd1da9d87164de031d46a4662934b3617d729368c52c8ed7abf9101929b210227b8189e02c018c3b2b699c25055f8e47831893ca0e86c154b2f62005ccb49d886c874c5af3f6fe1126ed41d53aa258b7e8268a699609a7ec1f0e439f379b69a00940b1ad63a735aa34942b97214150b55d74311c0c5beeadc5a28571b7b9b8bb685c6e42173dd71315dc0e864e6b967177ad9efa00c2c89b9d27a1f5776317a8647388798dc1977e4eeef5c80920f12f12245dcebb74a5096485359f47331a352e2b7050775f6122ff7f4883e09791648084d91cf15682060733af18f10f872c22dbe55acabd0b4eec5cb6285c5f009ffb354af539b5b3e64011cb752fea88a1a868abf72fc26cfd65f99bd1205df61f377c95be80257d10704d6d12ea41e6bd8c11e3e07e78d3ba113085c0b71639e08e1d9193f5a21b992484b5a4851d0e568f9baa3af9d23fdf389885f1f65cae6e1c1138bcbc1f2e9518004790c2f5df8b7b90034503d436c3385b1653498a78f5e7f5be8b181fd8a99f93bb6ba4647bf9856d37322d1333cf5e977a3ecd2926acf280c26cdb2d998a283fcbf587a8abc5006d5055474dd8644f90413dc7cf6d1b2ef6925342dc26aca81f8439824705e400f42abf61d1c505ee79941ffa48ae45a472ab9e2c01ba12d0638570b7b4919d413ae11f7e0ebc11e718289dff4f4195a3e12d92a477d59de56f0ff61e09596942bc1678e18af15337c5945096a5ecca247bc03f4b649f570ac6fe66318ce0fafd080feb92b4414db54e8a1f1914094484251deba8d407c3a81bbddceee08832f6140d54f04c3917a5b7200239b92d84211d2e551fbf4de38d1b6c12bd1131f08a3d1be59c1828e6873b51f91b3c14cf30e3c4ddb7c009a1830ed1957bf2b7241d6ee1b1e5a4a4996949392ae2a847132c64aa166dcfa8fe231a2357321e3106e44c3a2333334b53240ffca65bedf30952c7f81d85b3f8f4299f86ff9993cfc21e66b3b96387bb2e52f948e6d5dc25f1b83168c45092c5496b229317535b8b3c9b0c6db6e667ef941b8c0cdd042479e1a9ed31a91cb6ceb4a34d31f0216082df33d1057e6eb97aa28b911ebdb9e7a557d3c7f1c14460f134df2c49e4458450908ceb277dd0483b7de858bd035b339a9e68d9585aa695de7a59b806ac7392f81b68f960cb71fdb0e7acfee27daa350591c9ddff5a4d6b93817a9eba93ff228dff9a8148c90c0d54fa5bd9f4f844b829611c83a0d1695b05428d430e5a42b94103f2efa2782692b77c6f1532c334c5609323cf173481eb3c3c8a7afce8b87ce68a17dc88c4dfac633fd2c3d68bc383b272d8292fbc239db7ae454a84f1306bedeb5f93200eb9a9c0897a47e40ea2c3af500f30dd9cffb4faff594dbd23f1ce23e19aa38fd85bcf1fdf354fd7aab1ed82fcc908e5f275dd7a74738348c3a1b037c19c787d31f9db1655f4f069c7b26a0d00c507e5aedf078b7d33ff326737d25f0174ba6383c4a95ee7dd524d8cc7789c77113819e4686cf8ef5980a8b2c83e0ef141ae07d2c9ad4dda887db56b8066d4f8f138c9519ab30f662833aee8b91809ace2cfc1b8076a37a80ac966e994acec0f1986f563e28f68ef3c2783fe3e892ba8060285bebbdce7ffb661a210531788d5838b6619a789f0688aa3b5f68e646791a1c1793eeb0d06f3782995d3ae731b185d29a7a6ebfb0556b959268e48e71bc8c726874f3127f4b53b80891445604202529f62898de839c0be7e7efb669c5e53f64996750f754a26e95f3826af92b03d55bc0bf4f30ac4e4725a8a9959bd815a68ee67bd624e8122586a8365346e224bb38b1c917bc1868153d14cc85d1573de9be3cfe03be5a0bce13b82048ab49a46ab507df9aecd843a2374fc8e074a6152039a0f39a6766f2ced16ffb143a8169dbd680ad7fa95a831293d60ac41e1a7501d6ee7b42549190bcdbef70c29bd48c9fdbc57a77d29425c90a5e9eeb55c24fd458228f637ab06fb334ddddef6a530d3322a66cfda77b32ded21802f1d904048e1c4f76ab23bf0a2b5e650a9da8c04fa763c63353acf60d56a08b1e6f27971aff5370f1d91f0aa8798009b39d06cad8717be03b9c729eba35424c053d18792ee5cdba4bd3ef6af1f75e4f1887c194e9b0efb2e8db3f27cf1c48e66a70e4940cd82c2e0f774417923f611d541a8feedf8553a9f3f18135c6bab6a671d2c7f788fa3d73541ce884358c7651122647f59c5b2b4dcb0183f7f5c0a30f231b6406b006409b2496baeef47095f63159d145d0913e89c5d2bdddda4410d25acd6d068622d7e4e235a5140207c385b95d01188b948657d4df0198c79fabd5731464e958eb458fd4f1c75cb51fa7b01008af6f485d31fd34f9b994393f99c48507c0125b7d2d056875a5b1568e92db318cd5cc61526c28a3592af6f33b8747d0b442bb3a6fce1e6652616f090a714f00213c2e025a8ddc0edb29c1f3b75867033b4989d6b36d5637d2e3db0ed6c214acb196c4150e94f8aeb45e2b404f1dae338c73ce087181a8a3d919610a71aaee2ed7733547b15b6495f47e796037e77d44960f962a84557ba68f8e6b2150104fa5ac800e6bbfd18c519bbd037c64c0175abc1d6c2100f9f0a8e2bc707be87398bf47025f715226f03e85b93694cb9753252207b974984a6be79dbd800c16b5f652b9ce2d84954c292a9d3fd0ca5aa18a15ee6bfbc06da1404096b65260c39018ab259c06b3a638e27abb901f2a19d8a7a3257dcf3226ba94b24668bc9cf82d95fae945a4d055bf5948f0f1e85526cc8d6f92b1c2985e1689b8339d5c1e5860f14810b9fd5fd78aa4bbebf7540e74e01ee36822a6ebd810a102b86bc49debb37ad99d45dca9c12e062e8cdc3cea19cb6c62dfb8f04041bde1c063d0e7596e73b47a0be7a4ff4c7c5b1196ee34999a32887663bb3728ff133037fd90a319f3c640c3e59ab9dd6fd9e344a3e98e13351e28b6650ab6457c54be6da4b50b3e4cdd1566ffe834927c32bf2b31b08d53618c3af25124d6323be3b8d3e656ff8e0da14e654e969ba8f34023723514c29e5ea179e6b78c582cd2a852ce2b46e2fa29f30a2912dedbabbe2c8b6aa5e2cb147cda3ce25532044a4f5a5be463cd26c7624c2858e18ad9562a6ab120c1a567f4b2082e15d95cbc430f825f931319f039188e127be8d62c270eecd9306d070fc564973e424d38e9faaacd12b131e0a223e70f44ae2d7e9b7518358adbf93ce34ad05f7b84b7399f3e7ad5958066c79816773c6e35f654fffebcebdc0d73ebfd9253c45d2ec350442007b2c1f8a6d24bf4641f083178474fc0cf6bfd27455f8a71c20af9b21ac1f2ca02927408ecb3862af0e82fa003693251b503d85950a28a4a820c95d524f00d797af7066166bf86fc28175665e85e7e0e193d1793d572f9fd778e481620db91e1f8e5f4a686cc3d11584202ac6f336c272c342e119bd23542c03e17924c0c54a518850f77da9eb7ccc6e352e99abf6079d1e5114922f597f08c63d1b2bfe812fd356901366bec1e162d064549853d1de25ad6153e2cbb3cc96e6611a9fad92506963c25b2176db560763b1df0d34db177ce99a789e6a413e50695c16ebd8f44cb3bcd592a977c87e9c6935e05650c121f5e5fcc656efe6f8e2369ab7564392442f7d3c2dd30b9a5bcddd769ee25e0278ebde0279188768755ca50f7a0e06d05abc880272d19012b411211dda63f8fa4a971f9accd4e6374f17b7adfbe90d2c8f671aef7ba05567dfb39bb016f5654c7956334f89b9480e6905f3841042ebd0b60a1c7969c31d82d49046fd12ff1b74ad397c7824155a819bb667bdad9ebe44c691d1d171f0bd494ba140cd8aaae9c3ee0629d459dea0cd76559fa79fd94808d804610c18cbf139cca39edeb86cb4a958387662c50f7cf1a4d3bd057ad259c89a713f2aa767325684c022c5e7fa20b1143a967b191b19247df804945fa7012b078df47a01d65c0322dd2ad521389a80dde3cfde5c2454a2e08e23f2ffda6075c55683fd02ce235deee69041257350ac56a70bd3f35b3c1bf83dec2ac7a3a8fee847ed82f22e229a573a9feded6dfd697f3144823804a9fbb4b0f2c565ecadae5040a123b4c637586d1d64b4c6081a4ca0d2f88b9c6cadc14767a8b9ff2fd4a4b5e6e6f707a898dbacfe2f800000000000711171e2532", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + } + ] + }, + { + "type": "MlDsaSign", + "privateKey": "8f6fb031d69b3b782b7f523d787ac54d7850596bab67e61a2714d525abc9a79f176e959225d16646233de658a5aca6d0dd5075c980dcc16b38e0a62ef89fe5173c22419881148ba2d1c4d1e8ff56d28347a90686294e2d1bc4e9c897f78664620b383273f476f948dd833e26650950003d0f1aac192c1662f34e0cb8e73d48764778414017680776242812250638008357333285020234236483581182366612106274542547410400035011752518644854678377407082810445004604061876522045886714651344437511752652167153085385430728725682662614372515462228286225400848261525411383173776734580521477636036800732132422356624660026028466036145076645660825516702153673624483231816666805687774140612002480856670362514516776684431320850610804750183886683143513723758070184618610386168082277530515486533488100457080440718860008285344461260614076102175477315162407244803825861736635128804266423108830803120203067233365240340283651662361750452324877104808118613767017171632882725547162605201512604114115423880108851478263427527166380102040856521463101876662245036365588534770031824603803262535586618525244238612443234752724248440150152450741681058863671504577770776636451856523573415182545167881657002111372064554180286008848780002872865533351364501187077113858057643834336312476818400308382241136484145114264584416146114180661008271721123486415705685640436204156548221126373846805331703355503735401426124651123510583577386475007655687742783263654675165634571171843121826410313470414334437112173325345832508650461562204863407081471043085361880554155081723886504851661756230517254161104027032355520620732344424778661361233588472184806576214234566246534530214513047562421372583012020570554256654112221562615166564753745054065564811134780073482547212222885882276242876068171712640853204081265873884135641023215853861411228037004035504887442715024230385885164202203747441036502438358545481744248057118744866163613405012378616218070474763333267274624778703143000505841006132760220460280244511060882144880777487751730874053007530178450108648451353527674436530802808115751536714635588553385802258250470207370211318564587864567887002465027642648738230325548223674025258730024686136371373542854327512240657638031402020814006523821430008322082813864583451460738043266212127530185605511488001872528708153004870562374663017836311830133540850135461085643214330686747725454637737744328013084464708735614037526614215152748712475727377652438478647854416121626260845483587724306634211708220158450874873263280672727726858006683436374523582537464353771714262722232852615470512527220624725067617115267424158867015263385846835037614224105116026142125300576727488862507011641521577067713861410672638261875713417265140237271286127858485752335036411806028233584020802788047462688836573084440632056154252016737458134725342718412278214780456518562722238668724636705067378352835386217111701784454620426556135232600754535718078362414455508861188014426401064454265644380107651602714130364085342244833780372511561305630766083431053185545574732624860164210763131754251763541716106383517620517588748757308161543664066721213165522538283888467110316021560225080353238031625702413641563738423650600563280750216261758a825f76bda3d8c0cca9a2ba53f80f3b84c756523c17e7aa83311cff43e32fdbe39f9342d66d3667b4d4fbc51dfc6bafc98f7e7ef3425de5f2fb245c9b6579dadc2a5df690a82180fd7bbe9f315e62e914f93041e95d037f4d0e67f623dbb529da51dcd89858c213c915f708f82f04040139bca144ca7fb915d29305ef4ddf9844e8b9b9f0108ae7d0f599c68c1a7c5e8b6c41893dbaf261f1cc621a5f1342c228d79a85df1a706686c9828c4d0f9e08c367a47f25ff56a519fc5b368a1fabd2f17c6e96b0b330a67a0f700019fe86af32074753ee44ff20600e36583f9e8d9ae894787ee15251efdf31d973b48bc98b864402bb848c7213e426b561cd62606d8da271453313d2aa7af255301f04ed55a7e0b013f6e7380a6d58fb2c777fe962bd575c223cb64dce0cd9b164578006bed04d4697c3374697dd0a0c42911c22270f2c3ba57e2079ed58b8e0c7e8a4cad661deb0258f8382719513e9ec174de3877599747375a38fd4a68b91ab4a9cf4ee4b3a5f8d55dca5cb8ec289ed1ab64f68382917196bc0f22640df84680cd321d08b250a66787e1d2b13d78844f9943bb2707686194071a1aba1426e38c4d0042dc342cdc08d5043a6831d065f4d39ae681e25bb8e2e7d7f78b4538d109cb4b1d615303568356d5cc19ed57c1bb62e303532ab5fecf68e8b261bd483ab0342a47dc7e5bb71463ca88f17009def789b3af57a0af1abc543ee622324102507555bb0d1f25127700f523db1acfe738678aaa657d7181d97be22d68ed70175c0c66b1ee9acf907363897051be277d29258ed68a185647f00b8f7db7c6c3078d89695574b8b954377f6ad40172a8c9a1267ea2a9321fdb180dc96a1fb5907016caafc7f8eb20858b6c6fe30be6e847f531b5b55b1152736cf5b8ba7cc7b0a204ae643d5e6eaf46b8ba435f44aaaf77a32c575e632df7bc51f7f782b0869825f44b489aae492268f53ba1d5e5a491e9fbddfa7316ea5ecdaf2036e9e308c0f834348328e5f10e55bdc3499a7434a25daa7760b1e4214ebbd66c6f10023a53aad7f2253e0cbece786913157aff83211832b4645a8a62992830ea176fec70865901632536178f5935401f68873782b29d62a128bd9baf6ff436d9a3685b2113b9290c76024c87db08c1e61abb22b88ad326338a7fc01c411208b05dcd7cf6d53611351072576fe1a41265a0e87c16ef9f1b2aa068fb1520b2a960dd46c81f58e63c76a42a45c8465815920e2a0f02648c9b4b103713d2af1a00badd0e7329e3af919b3160e8a75ccdb558088868f2fffea718134d85fbe328b72fac93cd842add2ef9b5b3d5d1027b91f78d09b471a1e384ee4773f7e2be0184b4c776a752fa74d85b653a65da018be0ce64128ad582ea4a589256957eb93989a04160627fc55141554a6d0e3d77d2a4772596b8e30da22fb1d474fdef5d0a4213fb3ce760da0c94a30de1dda07e60c5e89a5af01fe390b18a5edbbf0646d7c07d7cf07c3caa35f8bf8f80f00435f6045afe2aebe2867351fde58e3ccd6d8a327153a69c700e9c09cd94f6b45bc19c9bb889d9e9610d3ddc37720649264da6da8598c089c5332e4be0d65b930d71ceadf4a85d64acaf416df0145d2a37ccb370878980b28d302f48f39283d155a5dc5fead2975d055754f1ae3b6b1f5ff8ccdc77b457097eb707f36078ef8e324c2d368f4563e284949efca4d52e3c973273b06d37d01e528552dd97f5c0a9af15d5ad839af71a77b37bd0742c90e8cef1eeb25c98c6a43c403b467a8657d9105b5bd1254d8720b1b2bc4bd0be780219ed085431eb8670389422738e3327194be1a22419e271b3498943c83592cdea8c66d178eeb9c6ab4d836591b1c4d50e0fa2f74f0a77ee11791fa0be48bcaaf909555ea39131ee24f22545e37bc7f9485e6c2785f044c9efd4cd231e7b4d86645f2e6228d0ebfb3707d2bfbf1ea809190991fd0af9566d148ee620d1b272d3010125d05971a55c7db3612a2eae0e98c4f0355441e96db448051bcd0e20cb896941ff2d29c7ef9e9725bdea272cb015225fc94967773b9284182c3da4eafc930f6846f0216f4664a125cdfa5bf4a2d5b91f0cb58ddcbd10c164bf693d4901975c04dbd40a32a8bf8f90f6f22dedbc0b3e7b12edff0822248c41cd05cb963b783ab2fccbd10bd24688423a05d4ac2631c520a2bb736df5188291257bf51ccf4174d7c2a34310958ff4870ba868058e2bce44493b6f34156f8d1065075fa30630e1348eb780d8c1f199a803e67617d12fec5650f92752ff3ec6855d1d1a1c70c6a9dceef715ed416058f9fdc20e4eb0f78d593981655bc9b13741c5d31b47fc7d0cca14bc20d8835c8bae83d05e80fa05e1172518a76edbfadf608416e8a93ee25170c59d7cb82b52ac8e7a533a3b1e8914d5a180170f95a904ce77a5eb42d8d396ed301ac6858595d58ec5bf57e75e148c85ad81986d2dc652db8efe1f11280dd8525c4008e032a46d72f627d6a9e55d004004f0993a70f865e1327e04717201c01fc9ebf5eb4d5123b202ca872a373c61bcc31fc87425e8f922c7b4e5835293c692175e45c1750f668f2f68064cc9faf851149119826a6353a76c6f12e7dd12a00395d09bd17008d4b4f8a3ce9d4feee2a6d4ca292ca7d36d94bf06976c6549d9f92d760db601561004aa1cdd59a24b2f413513832c15c49963e34748b2cd692cf9fcaef936470c4b96f226af2b3b9aa1dabc133c023d303bebe1df787329b3a1b4979f52c5c07c18725ec3ce34cccd005aa0cbe964b7195ebba2191312f8440979fb877b506cd665e365caae7ea0576b5080aae8bd5c78c6cbe2ea19d657c516e8f93a4100d601efeec2ddea9cc48a5bd73014fc6272231c929ef92b2b0b13b54a1d9e61b812c2a803ccbe856bf93f397f8de5ba5c2155017da15b38b77a981b92b84b43169d9b29f376d7ef3c042b13b070fd7f42fd6154fd648164c425a753833c81e44db89e9b208719d36c9b1d075b51ff47b3529d56210eebc34cb1a002616e6d2da9c2d7ee96d54d4046863cc9d978af3a55f588525a908306631338db805b2566e5308509abb77e38a9f99de6ef0237a75bb9a9747b3a924fa6a2bab9e47c4105057500dbc3c2003a026b50ccbaeb236119656e4fa81e2bfef204372329d53583dfe392ea89277f4f014165fd141e28bb7981a37170bfb7dbabe79dc158f49fd178b3ee02dcd607b96b65e3e815b4ffa5514f9a635b23e51f8a48fe0aa2ff0a674a7d2b9a60e0364aafffa872150f9438fb748114c83011e3f8221e8f1957b99294d47c0ad3f7c54fccd5f129fc4915f486dbc0018ab1cde3ded5f3c28f45f539a30b163fdf95f74633d061b63505f9ce97b152670dbc26379f64e9bd90e0ba980608540306f80f6b3b227019a8690d48a86be78e8f0831bac02f53620d5128ea6ad7da067a4d14b730e1f173b6f46b9a926ff48a8fbec1d6b4eaf992d7e071ae64a7318d4d3e02d4ee5e02eeaf53c4932bc0de18ede20de401a5e8", + "tests": [ + { + "tcId": 62, + "comment": "expand_s requires 2649 SHAKE bytes", + "msg": "48656c6c6f20776f726c64", + "sig": "b55ef66f65c4af861c0c4a9404422784ff219dfcf4b1565989fab2eb5f9e89779a8c88471849a4a0653beb072b9be59123f3d5c3d200f1b1e43ae3cd2cb7c46bc55ddf877e8f12602647f369f6f3ea297b44d1e5b3adf136769d588e1299360efe3e52a21970be043c29578b8d996b2a4f80947282e463269f629347199708ec4a71747cd0e25a996e8c1c41f55f1da52703eb155e413340b9b04a2a7596b50ee2e5885a197d7165b396ec6203122fe7029df1097bbef4c79846dfb99901e70e6c11b46f7288a4ee98adaa1fafad60987dcbb2a586a504d03813c0268abb240b4cb3cb3c3866e8392b57a8aa600da00db1a0cf30f9090d324fd5eec1b4e8a6be500576c9057d344d83a9a94aea2ee10319e91273ed91e24c4d41783aa5d03b79c426fc922a914c59c62cce192e5cdfc096c6b229561a03d21b409fc862c18d55752b3d8c8b79b9c0c1fca00589809039ca4f83208f22c415b9ec2059e21d099c1a5149efecd815500cf80c03221d9a30165fa6b6b52955f970c9ff5bec404a6e99848c56f5c8ef653663995fe3c9e7835d25ce4465555feb1cbb42ae6ac58a172d16c22cbc34c6170fde45906c2bc93cd8535fcf1c00da91dce35efa0da3957261efd4b4e4b7837db93d243934254107f2b7b6a2dea16a1eb2446811597cb8569ef0477ef87632e496042f175f4b0e82f7d1a1e62a5000ec62639002a429088f89287f1825525aa25fa4f21d82be9eaffedb3217044ba1f605988c7c2fc1c5a5bef3ea1f358170b4a5482d267c74d2ba7ab4011ca431e81f871990371fbfc6353dcd2c8b78319a865bfc6af081fdbb20f85646d03e25c388aea77eeb7880f2bc3c0c3a75ac5476ce9ed84a456b668ec930509ced087c1af7edcc0fe233e86ba914acf800c68e9dd4f82645ed6338b824b12eb0950d07cdb86301edb64f245eb93363681dc5d40cdcb9e1777f4b852398ab92374c40b890f1ebd0a60ca7765a8d76df7f9e2d7e0c5168e591b293b87fc9e8dde9acd9a0d29edaacabb904436c8052ff90eca628f5a41a8e5b51738c58a719dd7ea5f7dd3b4724057086073facb58d674bb004f6cc7617a972d348aef1707a411a1a12c1375fd7584cd601f9d7b9ae9b9c6f209a7f83a2076ac5c29fe0e4021c2222176c10e926d3ad7fc7ce50e47480c621496ab04babbf643180900565be9fb3594ef994e96279defd17ad104989db8897c93729aa0381084d50f1ed218eb245285a04942688ebf7dac914ffac4b382c68ad076cf03246e7793ae10da30347705c878c34ea191ce95a5690284552cae5759598d7e98a232810641b86b36dd79ea28b597b66e623c74ea9a838c48a8584d9b883d24a11d46e3fef10ae82f30ff5d30b7c25cc731ec19286159312def6a5567856ff7f3b33808a6dc09ec05521a252a9d794658b4397891faa3e7c3e45fa8da4b190bbd2cdd094c2a00a9b5d2492f1bae28c7642f3e082d86347c3944811d597a284a3cdcdad2dedbebe491e583b48d5adf8a841b5ed4a0dad472edf3815bc41f729e4f8e8b365a6e4764a350ccd8b737bfd7a434b2a24bef1a438e0cce806a1ed6834af4ee5cc0d115070b2348080df0cae01af9a2efb2095cce7845566fdc25255f55245293ca83bee29f9a51d9123262cb2944036b88a0c9cd6f46ddf7d0f9c6a26fa0024611fcde29c09c0ec779902d23e3b1770a4530772918054776dccc59fce9bd9ee253062e1bb689d349b4fb9f72c469ee8a555aea259f948a0344eb931c3e1f94b6d7a70925e880804240d2bf23e0174810972953ebe3161af39fcea82041befe007bd66392de0fc0a03fb1fb35fa307dfce0329b77aa8134d5a8671156d61ce28eaa845824cb87d62ad2f57819a396d18592a7eee75dc91ba3fe23fe79bb1aa4c424066b90ff8c747565b9185d4f112fb66dd0020c92245a18ced444125127fcc97f7cd862ca82cfca9609df97ad48023784610e2e5d61b41bc8973467672e9d55d3532129cad9cc9710a83aea3e50909ffe7c6d537928877e694833f42ff8a1b2ef0b0f2321b87848b8e7e86acc1e0a9844da116cdac7ba502f1a24b4a81fce236d2bae5c5dd905f2cdfdcc276e3e2f8a79e1e18e53a80a3810c684054274dc140c713699c131085bfcf24ed67366c7a13ca20ef736a6b6e81c3e01198d7a62cfe1a3301701e68cd2916ac3f0992c71a67d123e90da45b3e46c2dfba24ef2d20ac03f739d27a102905c78523139e9420908d041255c03f0fd62bfcb5bfa0373cb7b8d4b83b20ee721f9c299c4bc2aaab248f2ba0c03838c9c01645b9eb24deb906e16deb9f29ff4aae14012f473dafa7c6f067bb7dda25aa8ec375270d6b3942e254655df3de4e924bc03bb6195015aa2647bd94ae885bcd6c5db820f8ab1688f6957dbc2be06ca28fd54f1caa566233f4c90db5b34ef865bf6c0d8ced9c4d9cf4c7a275580586b8d93f56255051fff05c1cc4537240bab98cec70c879f4703a95dc269348e7142a2fd7d33a705e5b38113d5ae7f089de10ec88f62de0a1c8243acd0424c9c2cfeacecbbd19b34ce3a35270ab3536d6be36ed17a1b1f5219181decfc266f301e71775e0fff5a4e3ae8b3326f495ade1c1cc77eb30c9fe8ddeb65ab5fd02c5fcf749c76672d48fc75a41ff510ac17a79bf536761b6534f8c86b3af005d3dab70c62b13826bcd06af0fbd09afd05978b3882be006f8e7ded0b7af37c54f93552390655b6d24f1df1938201baefa2492ba2ca9885d9475dc6f1cdebca90ea78b56ae945bf89af3067624a1038cf7b51c0008ec7654346c50ede20cab0af90c93c53a3c83d10fc227fa89528c8bd244630f7389e7c6705de3494604d87e9884bea2809cd48d9a2e151e6865f6ee2891dbd9257b47ea6e96b4ca0f800f2cc1c7dfb9423e6e106b8bd14c1e846da036163c22e2a8f94966d790cbfc81caea81c59d78e1c64b8dac60bd22e9ff6c772fb801b9ebfff2f03ec2d9303e752a30c8256f9be65b04213d5d948025f5099da506ea202f94b2d6722a7d52612933b0d97978534930e2876a9f4ce21cdfb15f1d53d879cf23014f0972e1f13b5545b955da450d39895d95283b98befcc8fb3e4f344cfd18dcf6b1480c282e91eaabc81a5eff80952df44045e2578fcf465412176714c5380f744baf5a797d422c837363f620bec51d2983c476398eef3be3fde3497431f3f2baf9ea0cc05abdaf8527816097e6f6b34324674fd5240ed293da43b561687b83d2b4c1b020509ac978a8ee23bdc2210a7b7066edcd79459adeb3bb88edc016d504b06e7e16eb64b7edb443922bfff0fc0a8afcacd0b9fe37aab251f78bcc119c92b2d5b8ca3d2fd7e676389d65c66719d59cf4946f9d6826042a1dd603d6222f30a6d4140a1a1d7854b0e99f48db73cb980dbe2324a25bf4b2963adf37b2b1a643a794c5e256337f6df9517c205aa380720808cc7941121dbda09d26746e6f0335f9727f2673d849a87dd8b15ed24cf9bbacdb934aabe991a6b26629c3a16243fb5cfa6bbb883672975947ac90e5fcbca684c460b1d84ab98e34e789ea6349da807c027f78a9c4846e0301b0497ad11f9ea087bd3e16096420c7b662af11a4ef16682f32b473ca87127f263550690e89e2b4435116945fc50acf8215239a5ffe902cce7ca78ffa35a0eddf0c32ebbae8ae46864c179410698b4474fc0556db384870c7c5557f5670f7ff0be583faeb9d78a990cc62dcbfc98ad933f671369f180afefd794651cddb20f951b4fd6d4ca8bd8ab9193ce30a50dc4af87d04c4ca5d0d85b35db92c22122bef14e3105e347cb882404da9754bb30b61ce3240c60c97c080ec9befcd4a94cfe4a585409e415406d0a83c702480aeba1c5efef64de1eef32b285e812acbcd13f2a6880812c37f8f7a082f9dc130eb332450acd9b4a56c5f64e65166ee94291a78734754506943ee6b872040ce76718c25bcb07e0bf9daca73fa42886fb0067773dda68dce7b33e45bdd13fd68f3704b3105e79dd9f7d8a3761707f59309aaf78642091c9a3bcc3ace81b1ead9baa5915c95f9c2f6dd79079a065a6de158004b13a23775997b6c9278c25975bf5799943be53b81ff49cc060a7e0b53e4b6e89e137e086ca8bf8afe4a3b6b1c1e2658b42638d7e8746da4697e749c3fe1ae3770fc5fa6f2b5a747ede6a5ca8dead6b65dc4c44198f827446029592e80c8e895c2ad72e2792b21dce1cec77838af238d2f1e7c413dc2c916e7dd431af3cbd666afa2a0a1ee08c7421f69e6188dfb3d358fd34c49d37f56d8a1786bcdb104b3fd22be6615013f034145c8ae39c8707388414340d5770ac70452eb3a99f264b2cf6d926a6641677b7fe41a42cb3c9f260646775fcd653ab2c3c651e217a71179f379ae9f2181b66fb72e0dcd4ca5b75bbfdebe497ae66f69f9ab09e80b3282b893ed057909460d1c073d9e885352feb51d367e71ab7eb237a3dc05063fc5da78276b27d32a22b6b0c858637ff0b8436d56bebb511590f810aa9b6dbd5047c67714c12736c24a98f7e9550988feee669c39bd7ff95097a8e938ebaeeed34890b995af165eb230204378b5cddd5dcdf71b44557180909feaf902162c38608ab0bcc4cbcde3fc343b44c2caea11586a7179000000000000000000000000000609121f252a", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + } + ] + }, + { + "type": "MlDsaSign", + "privateKey": "2c3c585610631e4701ae30f2fa3df0da7b607281a51396d7165aae1d3310295e1c8746f0f3a769952a7d563630b10a5c6305b86afe0ba7561a00ff86ce5d25e5d8999d12447ff5fccaa6494a7d61c6c9821477c5147b0b02a9c6218413e5e8071b7b1826eb179771f3b62bff71f7378034867c5543b645e03fcf7b4662523e5c1604127204064276700542763035473345630064522335721055031526058045630574676140056421116366348274104327731228017724100836361037207200650805235710036867535072630813360230535438206851805466378166186421512041556678521045440876217501360510482316745724203144384731833282068664186364456444326328716170417080333753525342230563158170033177532752262731027163557275765257447024613726486150620514314140622242677046131014680630246055787752253238148624425636722211312343545481621814524810015180085623248762522478248853823485368581372828433063738223220075730516052188530550514413615855836025084856362316852437236047085070368763512834586862163002715678586655745237735778571372076054376673638006407738088856804516161536424710237763714612401676023802157006726748536178350054275700334606448243673615601363163367534712476831672513300034674430126178430088301876066646555582371486880487240537011306072684122201346857851375364801058118430355124240571612633531618104728483858653410800713362777850856556034821328052183074183456872046343700123782645808416062413086767132444324256702185332548430208407224050361348546067758122868387345648742542142524734384063470735248137373271063625046525276063768607656472018672632634343403473165457534364463736803418870635724006430063082108443642180466638042163283412358540780615835120801486762307888384722623242651682382036718185454515207720310531817282634565500512833054018826546667363071425455387788767277645670034228061581771847712750364834550660185621284468754710156052083526681327876713703573275411457050422535250418870670736148330767606060410688271528613457060235848538772043326624417166857308816130765311044885611114121115470801534447755025076056204642711662646311041403228633562557882845548251541627238141218433525662622405520352517615121545403357853545512021053558601473705488212423735223040406574152507836453736255665243466661724117536505766054672274283310246263662013844253763776808065401037710101366843667537252147764655885513140876471862545803362337520222843676106672641216300662800447246632375765250638705063152717450164248788646166177121328413277563255614438402153136610066407781473138042336184360685281420808086047814315278546717307544870304810442768885120725770350217626134454157653326460317773663678017840606163401005831548734654406202500441884161716826060117306774405251850136364261322253087475606404416057886475646675101602362425223183675441134046744626328457273822424602240504307856627664260638232055286431074147582415560670701886310285682103603648000444881651375483776230741111662525641427540486142223160451307323401864517280350108643258754426064213678126353018002282575605018618463770116060844460558406638476372867870154152752684667401735301278753066642215560335321623503262145035877478761271158322550153455863524854685105244615701808058726328880286850424216237628372567433660257546585132303484179d62fcb67b53caaf584f3e443354450991c02ab1dbe73a6ba8e8b6fcf38f3b90bb8adc0dd8eec84122cbba3c6686326cf59eae772e6e664796c58dbe2a324be7ab5dc18fc880c09cfb75878df8a1f63034c3900292c1a923359366c173a134fb0fe9f46bcf33c3d376dc2ef797f4251ecd8e7c476fc92c25b7456118729eeb14ed82fd7f7c69fa95e244ed573df0d039c5e9918f25fa88e7e02fbb29291441fa33b57518f53bd3c3306daeb0d6236e7d4dcc83f6424e635c14a4f5896c149c62a1394e4c27e65c33a8945a347408af364131fc0ff8fde65eae46567292c956798d92134db1a48e475751b249b0d8bf4b3755f7b694423226677692e9db0d7e680661db12e91e699e7d61057de5b66d4bdb020f5a4159c2576d6f63083757f119cc3665e946cfd04e9104320c90d367f265f178fa405acf31d1115eb1e520b2f8cd2158909243e85d27e673085c8b7cb9f7a10b24ac41ff3400e12fc7c36bbba191c9d5662c2ce0a288caa8f1d9aeb68f3192202e338b1b86c444041bda16cee7b43daaacf2f2dc695275364abf1d5abf279ea09112ec123441a00c3282b580a0046674bbf038646653ed0b639c725aa970a7ebc2dcd9b922df356034a3ad7a43263b6d6a0aa9ee01347ea0bf35c5f7f32c216d2afee20a29390d505338b52537ef20ac87ce6a177cea00547612dc7af04c45fd31eee09b4c2c2a6d906d9b11c022991878c4e821943813c53683e851d3fda37c43da799610dbdb7c44e124ddec38a86226dda921e619bc30f530273c5773472fe4ae27db232ea155bb255c7e14429fcdd62b77cf3cedca8525e4e46985c731c7bdf581e09a964fed04e91f12757a525464c0cfbdaacca7d68150aea76127e6d04149fce8bc7859aebfac950f4b0973e2d118db62704071ca6f4799d45a2493d292a4e0c6bde38fce2ebc167bf533ad8a60d76c97dbc19a1f45b979a7583cc9ad5be21accd713e8efd0a5c25b0a12bfdc4985baeea3f506e90b3d03851f8dc5140e52ef53c997ecd9dc79eec6940b896e2425eab36cde668e3ab506aaaf4e59f455509322b1f704efb3e332f8f9c74ce88047568c921b3352167d6c4be708f4a90cc27162862052004caad837ddd6737384666e98f9e25b1a77b5057b857c9d587c25d7d7a76d20e9629f1c5ac72bc1f2d93a8ddbf415686d49c6c7fc59011f751736052825b1754cab85044489bc9363fde7129d57210b877f663e55a54473a09f7f8ec644b2e0a2e66c30b2d070fdf5849ac0c5d3732181e91aef1def619542cfadd394cb4b3a7b4fbb6ae2abc0a975108cf064219c232f269eaa1ca9b6b6db48ea7c3c528d0d92d5ffb8debee25d0060cb57f51616639c98e9a262ad29313589b208daa2996e4fbb2846360c13d0d6e6d3ddb79aa7d85fe963a5ddd9a59a40a6906cd31be0ac96463d9c5e5829c22868a1fbfc86e148f9231e4c2e5bec76f0956cca381e67fa8aacd89ebe4db0fbe53115737b1642608c9f2a788a513cefaa6960de22632d36a37f41860534e031674158f64f500681f774f8e5e22ebb0ca84efcafa82d8a5f05a797ab22c770a48926c8ec99c13dfa1938fd502d6957d1efb57eb624d5fec6f9464a3ac52e582fb6223709dec26855db91d0308ac13de1832d41031818d602932e960c18b0b4e41ebb249e783ab7b5bbbc8aeb5ea5284a24d825c9cf9291965362c4bd4397dde15ddd8d7431ab030f5a2a9ce1cf3a04652700e36b7c48c64a3e5e880b9a3c333bf03a90e2f89522f22bcd030577db0876e246f500f6329b2781efb894aecf52f834f95a6416686e86704dd07013d90f39c48338f4b556c363b0a9a6e09a28e8fc179cf2c2213bb505f86b21bd3eb7971bb6755ca0155a62154281ee4f0cf42caa439ab2b75cbac4a868ba20d72c67f3639258e68855fd1dcb9480bc879d3762029a1c5339df049e1d3880e7d8413beb6a83eb13d81dcd0c91e5a44d905093bdc00f89c9a5af8741ec5f05ec391e30929a6e48de8b7b186bd0c6b01498ef0eefa5f516a59518fc12019298a2c7f654f1484ef6503a1d278745ecb8d7362d2529dd5a4512afaf1659ffdd924d1b2a2dbae7208a5ab2e124ed58464615e4e343aae7fb99f4680f830be68d2139cc6e091381534433eb482c5044b9847ce6104828835de04908985778a13dace38c1d390f28a715b895075ad32173bf23fef12f6e533d8d3744eecd67f9e740b13530f8509da3af364d3595685952d3b0e578fa36126736c69d628842400da5486d6f6c9845847c57b2d7af12e8b455996327dd5a01aff3eeb51218e16d0dd9147576a367a29786385e6dce4af04934505f65fab9e54f2a5b6fbfd1ba592bd09d98d02b2e50a046d2af660140f0b871a14535491b278eb01888554a7d60c06120473387f4ba619f51c4415885b1fd1899ae7be6da70b75d50e2426b9247ca55f448bd2a5f9688d60e41a57ca3ba7bbfa5139ba68a66095399c389fa5b234ceef865a9446b72bd740c534c2f0b8eccda5a1101d25176238bd687950add41fbcf7dfd7bba9419c1458ac0cbb7ce85d41dccb84a616c309fe4555e22587f6eb656a690f8643edad05448fab9a71c530d0de3aecc7dbba0499a247e79ea77e99b35abd10e300470945d567b191fad0e1b3e383f34eb6728f0281c26d3fa9ff0ab6ce297968071ba8971decf703f1d21c3f5d10fac7b405826ef458f9ad11821865a1ecf542a0a27a485dda5863659dd1cb662cb884ead304db16d2745df0cca49fcb6cd06121b1ec3e461b6eac352dc77e67406007e4ad8c4c720ffee9a5511c2000c707b7b3eccaf786183e5291b43f846d55bef9dfa3712f8f438d0e25d8c1eb6a2ded79251b4b4b9ad3d3212113cf3a69a0d6dcca6127227d8ea355ffe9e9499ce2874c5723685e17fdc77dfafab51b2c55703ec270659defccb19378333360fcdff57da49f823fafffba6e39df50ad973484bea5d4884876aeb2a95ca16111ac02a3365a590b176d2302715c35203d32d3560f88d29cff6273b24d1d0d51a989d951cdeb2ad316751cab1b962e5804ebea323fdda77f06233e47b0bc182a2010885f955c36911c08d566a1d840649ff48be98052bd2ebdb11d4a01cc7a18dc932dfa6f7386be67a5ab1fa50edcef70cd624f7b2cfa9c4a729fee36d4d9206b5bcbfbddc54c61beaec4a71ead1bdcc6eb8e0461f44ef5924a614db25418912a89440f8b6171dd0bb5fc218023507be113e6bd889caff54070c095e336be4c2e28f784904c505164d7da86d8f725dc496ac257f35b5206c3304ff8db507169d11d48d6d58676e52a9cc03e7ecb0faa40774b55f15886595607ee773ab306acb12b6a56519a02e4c595e5733fa80f6c9feaa27006e9dc7433ff415c48b9c7ffb0df2d86bea275d615d6d3f3e9733d3fc7bb3fe67e586883e2cfd70b853f8e5e771cbc1b2c53db75cb88fb1f259b46bd13e57cc0ad9dabdde2d857218c96709102d3d1025ab814360d26d52b7778fcaa5", + "tests": [ + { + "tcId": 63, + "comment": "power_2_round returns a remainder of 4096", + "msg": "48656c6c6f20776f726c64", + "sig": "3252c634b9ee85c05fb1916f7c3685a1c663a34c1a64dafeb3b97b21f069fdf838f9851f17cb09ad664b4dbfe549430b0fb07d22f1d2fe8129de85c2e29004a4bbaf382966eef89122fa342cf7677fa2c2672726e3329154f9291bbe472e5a49a8f3dda70764a1ac81ec6bfeb2799ebfe86b0973adafa63e5875ca368e8f654f636798c68814606a9b19051666ea9824cc60fd6ed13ff68c5b93b805826643409ba223eb0f932bc6ff5c75bc25099fbd1c6e12b512e97af21ea0c610d9c00c090d5b1160b1ffabbf02cfeae290274e95bb75e6a7f8cc73d6a3e511786652142085bbf0665e3dc4ac940e3a0d49febdeac7f6a35d6bfd93551669ebef0eae26a212ba8050daeb06c47a96e22ea48993a702efcb3fb292d5a2f2b20b5b2b2b6167f5bb7645ca1d8af8747b207319f48d42a54d3d267396844272ace71e6431d013c6a308b900c5cfdacf40da532865df57bc8626b15285a1911c75c6b7f44621a4a40ef5b4f79c3c9b5d7c26ab76e5eae17754766819b7d9630c4d973ab85cb721ea7cf88cfc5157d025626ad2a3d58579466fb68d585a048cd311cd87cbecb83079cb71bff87e38ea69bbaa6883be0cd47730643e52ea3e21ee8518935d6d79d764b7ee2ae3f68e3334efe45a3306014a22cd88a660d83980939a1aff7cb49073ee2073f95ab783669d849219f5b7f2d862efcaf43b45af00aeab14ed06c96fae0232e4573acd74751bdb207a23c5fa4a55ad3c28a1914f839e47202e499af7d443d760b8a08344bbd92080a9218aa7d24b534c71bb6699d3ffb1c61b64e5012778517d4ebe01b6b089d51e702f1ee0ce02d22faf14ec630e5db698c0f366bfa8649badf678bb01ab7073ea50a9dd62f1432ef809760801c6cd8145036526da0da5b817b2b066565ecca455251c0f56b2bcdfd09de20915524f12d3e0e7e1c532f39baaa7544221264d9766c49b6f99c597a0773c7c37fb91aafbd6c261c7ef3a26923254996314da7133c704c446a8023928300fbcd8bfa1d8c5718b4ab4cd5c3f7a0aeb1ca5f955825cf53d897eb1c4a8eaede421a38a79adb5bf5251f452f9eccd1c1185bd9eb45f0bda34ee948b6e060935fd677c7252d64b60dc1b167cb1fb8a1d1c4f31d5947d73e67d436f4653717e330d37a72727b9178b0976a0f8ba25c21ce6b33352fedbaf605c10c68bdafd38c7aab7b8af606a7c16770b2a3e8b21d56ca2862178e4faa98f0fd341fa99afa2039fe69ae1e1a6d5a0f2bbb262136cecd7ce36926ee09faf17a36f08388a922dc7a565f2e049bab08d05e9841734578efac0d0a8ec8072b30a3ce18a7f6f9e57fd3a857cfd94a5155706714926ea98ff97402322ff1a436ae7e5c5933cdbe1616b2b229bf338f8fa500ee02f584f3762e35362b7c2b5ff101ebbbf4388609604ab32255d3e66ff29413bf9561afa6b3ccc87ff1133a4d1f678a708c8090140f55b9d25bca9f5a12f0b5d027fa53d97107e2835f1879b0c9823839ee51643346bcccaf31ddd7b2d21e7c1dd1aa7b2f2a23d31db5b20647f908f27e85041e5f442437b18e70e1cca8fdd6b6b305df8efe9ba83d7bc19309bf699808391d0c2fa7e89a9c88f72667118bca4413483f1951d6c2eac994a0ed825b23a501dfddde2c449063940a48ac25cd36cc1e9b8324b8a42af3df49c64e9daf2eadde511ca44e8fcf3dc710f85d060d9eef51a52cfa0f080383d77b3a3b5879f0ad387243b78b434ec5244a7185febbb60a981187c54cc479f7ace7d61e1069776e4eb85ba8e2b42b6b64d74298eb63362e542929df6a8fb4468d68dca27892b6280b8231b5098b01546e375571295e86cd5a16753fc8394d22895c12afdf891e11b867ffea49372baed8e820496a7cde8a1bc4ec545a01e56dd2c639b9efa3537d1c4fb79a7f03fe8aa44f708350a979b5195edc49c0e1a12c2aeab77302371c394a2435f54a3cd2011fdef514a6e037ae3807c7167161278ed46581c52360bfa14b88cd3a7d737d3eb00447cc8d0f46a2fcfe80fec05ad9464cc3b3c48975dca9764dd16067713f2ccc72e29a526f1ca33c1f54fb4caa2300b8614c229bbb632a905d75760aa8fade939e8a33857c57ffe5178c3bf1318d082931a18596f5a666866b956d7385737c8731c4cc26215398c6432f47a9ab9f48cdc827e5579354cf7ecd7f2ed6533c1d771febd34d25bc0e71dd30483fb9425cec7f8acc23cccb8d08fa543125c8dff14c6097e06add4709d7892921b1f69905661f9020f35267aca4d99dfbcb3be28810d4ea53b8283deced4b221de1046096aeb85179aed35bcadfd342f993dba2393fa13ac2fbed9f361d5bf54874552c68fcd3d96650d28f6f07f427876c434a71d72b245d37d4ba7ea7db2c69cc6198df0edf7330f805c10bb70f17d22bb0f456ebbfdfb126fb172a0522d0553b9c85e1bfe41c8083d03dce5f4095ae837a3af5f1921af474544f68aa628f74b203b744a36f0cafa5b99747ec09bca01f8134b7062e6b8d2a949cfd21013afc82093ea42ae917f2843dde2adc1140cc4a981bbfb8cd690ef3e9b5ad79dfcb48b441bcf8aea715ebc3b42bc90fa98ec08cb7a4c9054350e915734e31a768be190cfa7216f4ca36c3d387bcc30f6544540289d4749164ea19d152f5ca77d5b303baac1476060b97681b0e35a1e9fa4ad3b230c8226666a24d4a54cd97b4528a0df6c4070d7ca1b43f9ad213e94a8523812f663d7ea802837cc757bade7d35619314f97e232f029cad77c4b8a53b9770bed9bc7b87a0d0d53b3e3b7170653ac832e73021082fbf15ca74dd1069f0ec08bb50bc0faee60ad220119433e80d4ad0e962b548dd7691cbfa5ce76fe47da08a5d0d3197d7bb4e133ac0bb74c59f3e167fc65beb5fdaf07939991d48c596eefc78b1a52f69a39e11bdebbe056b10c5fcf2e86af6ffb87708cb8c0315dbe641d7f295bea6a9dc83a8c8b704832c383c9bb70847f3c1227ea907b12b9afd0dc6f4d2326c25f238c1728e69878847f6cb590beb592f24ade9120230ceecf9e1c05d474cab335a3fe04c6b30792b91f8daab5651e58fcbb5f79ad69411c27468b63a0398e26d0913cd8f5edda187ee2077b3201215d96d7f628b207e2da29557f0b81f21ee66e331eb06bfa6b5c78c19b0fc8f6fc2cff999ab25c18bfd7d63e3918aaa4c3dc16203f706ebd63281ca69b7f2964a24e7dd946bb213c1408cb14f9de7b4d74c3bef3a3e571bb4b5f59c7c7d2ac404a45be0ee191dd45fac05402fe4d238385ef6cfa3f19d9f48b990356e8c5a4491fe339ddd120b2804c8b51af093cfd66917c2d1f56cac546da1b195261e9c54f988878ac76b64d4e13259a61c1d45b6f8a7943c40a57ca2c4e3a48b3056f9bf8bb30b9aaa3493e4c73150d14a0ddb97449c77259ca370cc889a82f4e74ab04579a5d515fe2bed5689a56dbccd3eec1304e554e7ac13f6f95a88716b27a1c8a9f4fe148db5bc4c3f74c9148803b0aef6002cd0f4d6740fe7c2394eeb888aa33bb03ce580417d55f7c6d7405685cae1ab111adbe13572ba9dc5a4bcf618435e61e13b056ee47d601d39ff2ed9094c5aa558cf4805e90593e16138025590ccca86e57c1f983807d391af9f3a5b7f3d2dc25726a0f39e5df5aa8d0a763359ad4827aa2fd511d3409008665347610954734e367193eef3baa492d0928686d944ef2158b6966c39a131b06d091781f4a2242b8becd7e1dd4ebc30f06a773954154d6104d68970ccebec727d4d157eaf456ca7f1afca87fa14dd07b4dc510e800898ecd5e250151bc82b97c821cf3aaa98d677faf56de996d042fdf0cd8e8eb44a10cac17b3789f32be8846f2d034d435390e921618166c995b917734b9f096987bba505aa1aaa722cd8d217a5d23050ccf786fb3a7744b555b243547018b3c162ac81a996689aaee7a1ac6cdfca62c906dddae7f162bdc125e4b920607c0e43c80c5b59c23ff9f762a265463b87967c027d43faa65584a592acef698188b019ff2dbeb552028fb1d67404ecf940827e5c4ab63f4dc0b3b49b23f50ca74e08f204f218ef490df434ca51b57a5f0127343fbc393dfb66aa0d83f4bbb929a3c98ddee8ff0299fdcab059d4ed9382e098df497457d9b25784a53e779c4c73d7ecb2ed3639522cd8bfa958811740e8d7695d084ab0e597a2dea8085c536094623a395e1dbd25a246ddc73eab1c759417530731bbdfd4dd94367dccb9ac3fa758c35b7b30c62e7620db96e2fcea2a91144a6876bdd0471044271b9c625097eaa4c4268547e7d66d1a1b4f998f23763890cd4a01ba45e99cd6174756af676f27da6fe6b1f0ff648845714f46c02a917716e150b3812b2cdc64fd59e11c3fe2bdc2327e8b34dca44bd19a65b74b2ac65b7d1a16844b8cdd87d6a2c4972cbb8115e05fc71b68ecb7feac54ce4af5a8b40ceb26dd97c066e7004cc1d7549d6e1200ce2dd133a25ab175857bf7359bf84494392a9ba4c1c9923f7884aef54512d5f4c9d5e07f0d9fb564611df44a2988950e8d3fd999462892a66d63578fca06dd06a8f1955cff3ada5ef22417fecf4523d6616d27842e23d94a2e31f81a9abe9ff072e507a95be04618ab3c3ce1a41498ce72b3b4f7c96c3d2e70000000000000000000000000000000000000000040a10161b23", + "result": "valid", + "flags": [ + "ValidSignature", + "BoundaryCondition" + ] + }, + { + "tcId": 64, + "comment": "power_2_round returns a remainder of -4095", + "msg": "48656c6c6f20776f726c64", + "sig": "3252c634b9ee85c05fb1916f7c3685a1c663a34c1a64dafeb3b97b21f069fdf838f9851f17cb09ad664b4dbfe549430b0fb07d22f1d2fe8129de85c2e29004a4bbaf382966eef89122fa342cf7677fa2c2672726e3329154f9291bbe472e5a49a8f3dda70764a1ac81ec6bfeb2799ebfe86b0973adafa63e5875ca368e8f654f636798c68814606a9b19051666ea9824cc60fd6ed13ff68c5b93b805826643409ba223eb0f932bc6ff5c75bc25099fbd1c6e12b512e97af21ea0c610d9c00c090d5b1160b1ffabbf02cfeae290274e95bb75e6a7f8cc73d6a3e511786652142085bbf0665e3dc4ac940e3a0d49febdeac7f6a35d6bfd93551669ebef0eae26a212ba8050daeb06c47a96e22ea48993a702efcb3fb292d5a2f2b20b5b2b2b6167f5bb7645ca1d8af8747b207319f48d42a54d3d267396844272ace71e6431d013c6a308b900c5cfdacf40da532865df57bc8626b15285a1911c75c6b7f44621a4a40ef5b4f79c3c9b5d7c26ab76e5eae17754766819b7d9630c4d973ab85cb721ea7cf88cfc5157d025626ad2a3d58579466fb68d585a048cd311cd87cbecb83079cb71bff87e38ea69bbaa6883be0cd47730643e52ea3e21ee8518935d6d79d764b7ee2ae3f68e3334efe45a3306014a22cd88a660d83980939a1aff7cb49073ee2073f95ab783669d849219f5b7f2d862efcaf43b45af00aeab14ed06c96fae0232e4573acd74751bdb207a23c5fa4a55ad3c28a1914f839e47202e499af7d443d760b8a08344bbd92080a9218aa7d24b534c71bb6699d3ffb1c61b64e5012778517d4ebe01b6b089d51e702f1ee0ce02d22faf14ec630e5db698c0f366bfa8649badf678bb01ab7073ea50a9dd62f1432ef809760801c6cd8145036526da0da5b817b2b066565ecca455251c0f56b2bcdfd09de20915524f12d3e0e7e1c532f39baaa7544221264d9766c49b6f99c597a0773c7c37fb91aafbd6c261c7ef3a26923254996314da7133c704c446a8023928300fbcd8bfa1d8c5718b4ab4cd5c3f7a0aeb1ca5f955825cf53d897eb1c4a8eaede421a38a79adb5bf5251f452f9eccd1c1185bd9eb45f0bda34ee948b6e060935fd677c7252d64b60dc1b167cb1fb8a1d1c4f31d5947d73e67d436f4653717e330d37a72727b9178b0976a0f8ba25c21ce6b33352fedbaf605c10c68bdafd38c7aab7b8af606a7c16770b2a3e8b21d56ca2862178e4faa98f0fd341fa99afa2039fe69ae1e1a6d5a0f2bbb262136cecd7ce36926ee09faf17a36f08388a922dc7a565f2e049bab08d05e9841734578efac0d0a8ec8072b30a3ce18a7f6f9e57fd3a857cfd94a5155706714926ea98ff97402322ff1a436ae7e5c5933cdbe1616b2b229bf338f8fa500ee02f584f3762e35362b7c2b5ff101ebbbf4388609604ab32255d3e66ff29413bf9561afa6b3ccc87ff1133a4d1f678a708c8090140f55b9d25bca9f5a12f0b5d027fa53d97107e2835f1879b0c9823839ee51643346bcccaf31ddd7b2d21e7c1dd1aa7b2f2a23d31db5b20647f908f27e85041e5f442437b18e70e1cca8fdd6b6b305df8efe9ba83d7bc19309bf699808391d0c2fa7e89a9c88f72667118bca4413483f1951d6c2eac994a0ed825b23a501dfddde2c449063940a48ac25cd36cc1e9b8324b8a42af3df49c64e9daf2eadde511ca44e8fcf3dc710f85d060d9eef51a52cfa0f080383d77b3a3b5879f0ad387243b78b434ec5244a7185febbb60a981187c54cc479f7ace7d61e1069776e4eb85ba8e2b42b6b64d74298eb63362e542929df6a8fb4468d68dca27892b6280b8231b5098b01546e375571295e86cd5a16753fc8394d22895c12afdf891e11b867ffea49372baed8e820496a7cde8a1bc4ec545a01e56dd2c639b9efa3537d1c4fb79a7f03fe8aa44f708350a979b5195edc49c0e1a12c2aeab77302371c394a2435f54a3cd2011fdef514a6e037ae3807c7167161278ed46581c52360bfa14b88cd3a7d737d3eb00447cc8d0f46a2fcfe80fec05ad9464cc3b3c48975dca9764dd16067713f2ccc72e29a526f1ca33c1f54fb4caa2300b8614c229bbb632a905d75760aa8fade939e8a33857c57ffe5178c3bf1318d082931a18596f5a666866b956d7385737c8731c4cc26215398c6432f47a9ab9f48cdc827e5579354cf7ecd7f2ed6533c1d771febd34d25bc0e71dd30483fb9425cec7f8acc23cccb8d08fa543125c8dff14c6097e06add4709d7892921b1f69905661f9020f35267aca4d99dfbcb3be28810d4ea53b8283deced4b221de1046096aeb85179aed35bcadfd342f993dba2393fa13ac2fbed9f361d5bf54874552c68fcd3d96650d28f6f07f427876c434a71d72b245d37d4ba7ea7db2c69cc6198df0edf7330f805c10bb70f17d22bb0f456ebbfdfb126fb172a0522d0553b9c85e1bfe41c8083d03dce5f4095ae837a3af5f1921af474544f68aa628f74b203b744a36f0cafa5b99747ec09bca01f8134b7062e6b8d2a949cfd21013afc82093ea42ae917f2843dde2adc1140cc4a981bbfb8cd690ef3e9b5ad79dfcb48b441bcf8aea715ebc3b42bc90fa98ec08cb7a4c9054350e915734e31a768be190cfa7216f4ca36c3d387bcc30f6544540289d4749164ea19d152f5ca77d5b303baac1476060b97681b0e35a1e9fa4ad3b230c8226666a24d4a54cd97b4528a0df6c4070d7ca1b43f9ad213e94a8523812f663d7ea802837cc757bade7d35619314f97e232f029cad77c4b8a53b9770bed9bc7b87a0d0d53b3e3b7170653ac832e73021082fbf15ca74dd1069f0ec08bb50bc0faee60ad220119433e80d4ad0e962b548dd7691cbfa5ce76fe47da08a5d0d3197d7bb4e133ac0bb74c59f3e167fc65beb5fdaf07939991d48c596eefc78b1a52f69a39e11bdebbe056b10c5fcf2e86af6ffb87708cb8c0315dbe641d7f295bea6a9dc83a8c8b704832c383c9bb70847f3c1227ea907b12b9afd0dc6f4d2326c25f238c1728e69878847f6cb590beb592f24ade9120230ceecf9e1c05d474cab335a3fe04c6b30792b91f8daab5651e58fcbb5f79ad69411c27468b63a0398e26d0913cd8f5edda187ee2077b3201215d96d7f628b207e2da29557f0b81f21ee66e331eb06bfa6b5c78c19b0fc8f6fc2cff999ab25c18bfd7d63e3918aaa4c3dc16203f706ebd63281ca69b7f2964a24e7dd946bb213c1408cb14f9de7b4d74c3bef3a3e571bb4b5f59c7c7d2ac404a45be0ee191dd45fac05402fe4d238385ef6cfa3f19d9f48b990356e8c5a4491fe339ddd120b2804c8b51af093cfd66917c2d1f56cac546da1b195261e9c54f988878ac76b64d4e13259a61c1d45b6f8a7943c40a57ca2c4e3a48b3056f9bf8bb30b9aaa3493e4c73150d14a0ddb97449c77259ca370cc889a82f4e74ab04579a5d515fe2bed5689a56dbccd3eec1304e554e7ac13f6f95a88716b27a1c8a9f4fe148db5bc4c3f74c9148803b0aef6002cd0f4d6740fe7c2394eeb888aa33bb03ce580417d55f7c6d7405685cae1ab111adbe13572ba9dc5a4bcf618435e61e13b056ee47d601d39ff2ed9094c5aa558cf4805e90593e16138025590ccca86e57c1f983807d391af9f3a5b7f3d2dc25726a0f39e5df5aa8d0a763359ad4827aa2fd511d3409008665347610954734e367193eef3baa492d0928686d944ef2158b6966c39a131b06d091781f4a2242b8becd7e1dd4ebc30f06a773954154d6104d68970ccebec727d4d157eaf456ca7f1afca87fa14dd07b4dc510e800898ecd5e250151bc82b97c821cf3aaa98d677faf56de996d042fdf0cd8e8eb44a10cac17b3789f32be8846f2d034d435390e921618166c995b917734b9f096987bba505aa1aaa722cd8d217a5d23050ccf786fb3a7744b555b243547018b3c162ac81a996689aaee7a1ac6cdfca62c906dddae7f162bdc125e4b920607c0e43c80c5b59c23ff9f762a265463b87967c027d43faa65584a592acef698188b019ff2dbeb552028fb1d67404ecf940827e5c4ab63f4dc0b3b49b23f50ca74e08f204f218ef490df434ca51b57a5f0127343fbc393dfb66aa0d83f4bbb929a3c98ddee8ff0299fdcab059d4ed9382e098df497457d9b25784a53e779c4c73d7ecb2ed3639522cd8bfa958811740e8d7695d084ab0e597a2dea8085c536094623a395e1dbd25a246ddc73eab1c759417530731bbdfd4dd94367dccb9ac3fa758c35b7b30c62e7620db96e2fcea2a91144a6876bdd0471044271b9c625097eaa4c4268547e7d66d1a1b4f998f23763890cd4a01ba45e99cd6174756af676f27da6fe6b1f0ff648845714f46c02a917716e150b3812b2cdc64fd59e11c3fe2bdc2327e8b34dca44bd19a65b74b2ac65b7d1a16844b8cdd87d6a2c4972cbb8115e05fc71b68ecb7feac54ce4af5a8b40ceb26dd97c066e7004cc1d7549d6e1200ce2dd133a25ab175857bf7359bf84494392a9ba4c1c9923f7884aef54512d5f4c9d5e07f0d9fb564611df44a2988950e8d3fd999462892a66d63578fca06dd06a8f1955cff3ada5ef22417fecf4523d6616d27842e23d94a2e31f81a9abe9ff072e507a95be04618ab3c3ce1a41498ce72b3b4f7c96c3d2e70000000000000000000000000000000000000000040a10161b23", + "result": "valid", + "flags": [ + "ValidSignature", + "BoundaryCondition" + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/libcrux-ml-dsa/tests/wycheproof/mldsa_65_draft_verify_test.json b/libcrux-ml-dsa/tests/wycheproof/mldsa_65_draft_verify_test.json new file mode 100644 index 000000000..c9ce6517a --- /dev/null +++ b/libcrux-ml-dsa/tests/wycheproof/mldsa_65_draft_verify_test.json @@ -0,0 +1,983 @@ +{ + "algorithm": "ML-DSA", + "generatorVersion": "1", + "header": [ + "Test vectors of type MlDsaVerify are meant for the verification of ML-DSA signatures" + ], + "notes": { + "BoundaryCondition": { + "bugType": "EDGE_CASE", + "description": "This case exercises a boundary condition (e.g. in the signing rejection loop). The verification algorithm may not notice." + }, + "IncorrectPublicKeyLength": { + "bugType": "BASIC", + "description": "The public key has an incorrect length." + }, + "IncorrectSignatureLength": { + "bugType": "BASIC", + "description": "The signature has an incorrect length." + }, + "InvalidHintsEncoding": { + "bugType": "BASIC", + "description": "The encoding of hints in the signature is invalid (e.g. non-canonical order)." + }, + "InvalidPrivateKey": { + "bugType": "BASIC", + "description": "The private key is invalid, but the verifier does not know that." + }, + "ManySteps": { + "bugType": "EDGE_CASE", + "description": "This case requires many steps (e.g. many hashes in the matrix expansion, many iterations in the signing rejection loop). The verification algorithm may not notice." + }, + "ModifiedSignature": { + "bugType": "BASIC", + "description": "The test vector contains an invalid signature, generated by modifying a valid signature (e.g. flipping a bit)." + }, + "ValidSignature": { + "bugType": "BASIC", + "description": "The test vector contains a valid signature." + }, + "ZeroPublicKey": { + "bugType": "EDGE_CASE", + "description": "The public key contains a zero vector. This makes it trivial to forge signatures, but that's none of the verification algorithm's business." + } + }, + "numberOfTests": 80, + "schema": "mldsa_verify_schema.json", + "testGroups": [ + { + "type": "MlDsaVerify", + "publicKey": "5a04d37a8c83d373ba07da5cf96806002e3635ad8add42ce6ee9902dfc9a1f27af2b332e1a44672f757802793a43b7e9f1927fdf4b89b7a4ad975ecf8bdaea48583cafbaf30c7ee6f668c225ddc25ba1d394d920f435173ea8453bc83bac373e3b6429f48a01c7deffc3ee5a986648a40dfcb31662f46f3a07d22ce9d486a0be0e822c1c75ea58965b9167ee08c9e6b07e80be89b257be37a57d5385a8bbf5e4439bf3aa80c17874a9f37d7a62eb0baeee9893be6e0fc223c31834baebedbd9611225d25542d78fb659b6f41ff3182d94b3e471f8c837f82a42fcab82ab6254a67632edf81f6feb720dbcdaf92c92a05f68db7fd074349cc54b84865326e3dc45e40645c95b41908aa66d38dafdbc4ec559cf0f86c5bfe7c2a84e8e56ac5bf97e88456f7995d77c8d114120a9c7dcd3758c182f8382f8f0ab8cabd451f71c72daf985ea2f64d85b561dd294c2f96abd8f351f2821fa920ebc8fe576aa4a9253cc23ce45e3fb4695f181ddeaa2ad12e96fb0c658e12f12cbbb4c244efe0b40b09c0c8dffdaff6f47a8c1f4ddcdf4c5e62eb68bdf66a63eff871a31fb1fe3cc67db129dcc8daeed2ad3e80ef54e600bf7494752d890e7183fe7f22f9ddd790d25a46621820b79203d584aec35ad52dc7fad76a9a7c69b276b7fc66ac7b873db7beb6d1c2f6bc8ddf11b9cab1b8e8b321ecd33bc4fa548f99cf116379ad7a7b20672f2e7cb6432cc2d792221ddb59ef4f62bdace3bf3269888085f703cf0358235d22f3d2f5b19ebbb5692a39282aefae8015e39425678f982eb31755804d4f1e698491ff7cc94157055a2276f8a9576022cbfa45982214f356dc4b5eb3741e12c3f6361d9f8334f175503deb9c03eb40c6db999056538c750c99a2f55d39cfd104f5c9e77c462b127007e5e24775726a9f7c841838eede9f90f62e35a68dab88147448581bf09cdcf927afb10c054c56f4cebc4b18a4e01427e0427d1525a3857d969c5823920a1b56436e8bb484d4f0e96e17f71db9da6d1317dd6a6029c4b6ed21fbef7552581d56d786facdff8f5a225c7593cdc9bb42c722f47ecde0967dc0a8f1a5c99ce711f8399f7a45489a80e55b982caaac1e2728b84674eb27c76c2f0b67bfd4e1c88dbb26e090b9f3e19954d7b32cc33bd331996dfac4187d76b75ae71e359c93bc1a848943ee06c933f757afbc1d68d63c8e1ddaaf100069f6160ed97b3ab56a36985a45ae43ff8504e2720ea0d203766a63dde7d9fb45e7854657f7a30705bb09f9591aaa991ae8df24c31463c83dd00d02ce3493b92e3f4595bb0765fac637a5132f83e29d50aeb53b2ec911d0562c9ff4972342eed56e85f06e7ddabc08b4eff380f96b56cb09731ac82398e1df085deb8083b61bb52a8d473417c1d3ae2be90de8435a062783477302d2fa8ed939dbee525fb5804de60ad4abfdf4d02ad41453536cac2c9d5bdc3786628d3fe45d42fdea409443df330e5fd0f4858b6cda8c0a63d7b1217e5dc771bda256a823bb30720e3dcf2252959489a638089bb89aa24d688143a6b1a76172e7f0d5dbca3d033a369cc2af5f3ce0ac4ddf2255a80c23e2d467a96ad105de238cd3ae03ce1151aae6888f3dc54fe3dc07307a05ed4b0844363f0af2168f64d7feae7059ee1dcf5a10098f402f401cdad049fc4a81e1c9527c973bf32c8b7721d1b88f87297da77395debde40f1ae549eb56b2cf6ac15a7b2399ab5d96692a82239cd5a2d6d469a64b3a3154b2ae81e9a42189efb498ee86441dd039e38ac1204a286cd6d08a2218ea2e77e6379b40b81bdc19489a828905701b5e19d2ad82b7e885310007161a86a21e43fc70012b5f2c684a2cf546d9f623e593faab383cbf5879a871802ae4c9d4879bb28c5785b2d6cd3a83c8600befce72c187d48f5a879d9d9e57b3c55916b097f04ffca9aef8e3e4574bfc7db6a505021a800fd79a856550978a899dab650389f55c0654641890d0dea6c8ec177216cedbd29395a126a66c376d432d20d0bd00b1d7c1091f85af2dab7d4e60204beacc90a3d523b0be21fefa5f4e892130379c2f947889a28a2eb2dc8cc2b7d0090d41db53e9279b54e1243ce17089f946d112a5ffe1ce7dbcd4e849b6b7bce239b256005d46f7f1a2e2af1a048cf4218881e015b6cf4c7f6440f5fc61197f79749da80dc9ca03e2bb23afbe8e3656036cea31ff18ff07368a4df0b053c2d4bbb3b929bbf42cae74c88004b93493a42ae204b156fbf785eff086b5fad30570e88dcded140f016ce113f4c8907ccc0387f3eb4958953d8cacebf890666f3cb312a2e87555d93132fa88c1fb685c96b4a45ecbd3d274909ccb1f5bdd2d392a733de7cf1c87c3a8ea4ce905141116b2037c7f5adb387cf618deed6ad796711ceada04ff33d7930186582756d7b1c418ef02ae7399b431b38198c131b7a747407e2d4f08dc19f8a863e808ad6078caee2c8a1554d0f582eccf4ba0ae43afeb9cc62e2a5909ca81ba28ece723e141a7ae3317afacb3d0b61d9f199b05cfda42b750834c5f57098be4476fe2bb690481e7cf509e5e94d929b256c6df712a5125a12ddddb68e9b11dc0523cfefe2fc431185b96c5ddccd8ebef1361e2e01d812da62781e29c934eb89d59ec45adcd208ba6cc4735c59711452de1f1869861e7c10f626ba3b0872e7024b370eac3373223129dc44546ba9354d094bf745bb0e3ecea28a26cf1d3750f23276cd4954a08c05464eaed3e5610e5b4e4cb9380", + "tests": [ + { + "tcId": 1, + "comment": "baseline", + "msg": "48656c6c6f20776f726c64", + "sig": "6589e14a5fb859884747dfd23755c73b7c934678879769eedc8b0b9ef592eb521f597b6f02978bc8f2c652267412078b39b728d6b026ad3770a26f4ee4ce6a0330828352e5258fc136de7b62a425c24c6d03e05fea6fa88ba5daf9fef26e8a761e59af74c6583fa2cd70815e97bc2f7fbe63f4c9048877ad637d6eb4f6ae89d2c7c927cdbeaf31f46c6f3f3988f890c53326be3e124d0712a3142eec3a341709d711457126f1f6c0029c3fed6aaea45a323e5df23de97e1584160c26219b64de00382a41f5ad633e7617e4724c0024d38ed1028ca117656af0b15febe5368ce38892a63adef0e93d13e98e03d4a7f85dbbdf9a36c072381929b566659576cd87d5f7c577eacc7c267218c95050d06668296ace945bf61c49e8fd82d6de18fe2e724f964f022292e4d4cfb8c7dcc3d28f1846e71830f2eb7fb64a8171b1fb8e1b3cb501e3da0f855e502f81c90e90657a239af07cbe2c7a66815952e6a83d26a600e36f6207f90741576101736bfcee82de016ae9380de38c1150a8469ce7613e360bf223b7653774cb2f81992d629cd0a39c9870b9542c72e38c4dcf10a798fb0b8b122f45dbdf311fb278e6e43a6efb95508e9926ac9b3576f9476f78e509586653a57303b06a75ced648332f87fcbe59f7bebf1f20424d4f30e06f4641b32638da7dea7f21cc4826b6f9991fd92dc6ace1e3e33d7bbd2daf35f4b8e4d984e773793abb06439ef71041d0ff74ce992b2ebfd0bf3b94574baedb529a654bd5a522d7ac80fb5d80d848ffd0d9d3c323c101b998beece494f6c27718ef1557bb90f0d6778ad3b8b48f4bdf641b60cf3839a8cb982493885a774ae75225657014a11fe03a4695118a6fbe3df1dd1454b1b075707f1c79ffe586f173bbbbea4a96ea21c99ed68974e4b711fca1b4974fbcb062bf0ac75f290f32c785f7c4f2106c58aca146a926ae912e7c0d95dbcd93d8435d08a984d9dc6d3a8ad6e6f09634dba641c1e3c519dd38f25a4cbbbc4b49887aac12adae7d0085b50cf3b3f4a38319367e62d192edf98c4eb4dd15d8f34283c6da0bf6fad423011a968f94ec44732e292b62d96739162a6e813ccf978639fba8929698002551f1e834c4b350044ff44693ef6a028eb224999b127b800248d085c3609b84a821a82591d16c0860bbc3ee853dd815fdf5c8695299af6bc979e8902daa96ba75f87435c97ce7e5dc2cf5b0638f5efcc2349d464ff60594fab1ff03ba5e90415a813693905e20a3f07caa5731a7b69bb9b7028f493ba65825826709aec686496a0cbfb2ec9224838278a7ff0068712eeef0a1788847cea1732a1fbf48ecf6628b809e9b8cdf85683b2f0957a3e3a78911a08a4c8528dbea43e7d2c26af405832ce6d0199efddd208eb077d99af735ffda60f4caf7cc9e5c6d96f77d354c262c7f6ab36dc57c841dc5695ca3eb6430da473830a966ac9c730577588f384edf35e00c77bfc4adf70cbf039f75a8f524a72a6c3d91b9c0f7ecc18bc97cd9e86cc4b077f28f5c81469cd3cddc1273146b819fb1345f83e2e389d4d82d67f8145230365ca68f517896121a4c335fec698a6998c90aa1d120ab54715ef1935924d298b2541a4b815969b20a657aa0289a4ee98b2584cf9485dff02ee1c823c1878a11a3276ae719a9b44b31e607f3ba82cb3f89a36ea64c82343e108ca357f461721e6512ef823d15a6f50bcab489962344bc5fb7b6d32aa7e177530ad7d2ced8d4fb4eee07bf6b9137d62f1ff1e8d196145b805d037d4d922d97d315ea37b6db5d78786dd651d520fcfcd83d35c61c9459dd1abdec5c7fdfda068f9fcb6a0d8697a5ec1968a2364de2c87979af280dd6a113900b6d71a1c667f8f9163fdaaec41e12e234cce2a22c06d03f96d3eb95f40c8b2aa886cb0f27b9ae33b3feac414cb00f184b64f684e91e1c672020e849013f13abf3ca9dbe10b12fc68f61b76ff48e4823e699699bca18ef394110110671bd336ca7013b0b694a1dc5198958a6f33469f2153aa9855809b2ce9d40cb9a1abe3fbb5f29be6a16c7bbd0fea398b214429109f11db96d2757f3afa6a4291386840923640d89da6ef249270a5e779b5b37d301156018bc64eb3ea49368802dfb372f7bb208642186609c7ba264f7e0eff71cee5fa7e04cddbf5b4269d11a9ec8d7ada95dc65fa1cb262ea0902980e7ad0cbffabfc50bee60d83368864698f64787b7f62084d847bad84c1882b45dc13af9ac33fe7f185d699cf902f01bbf20f3a7be7bd4f489e87b0ce4e50ee0ac7d1eaa2410d8b3fdf00d2ec2005d654e239d4148055bd3f071a6f121a2a38c6bad34b0183ba826e7363c74aef4a5f460cfb890c152524d0c3a50e44029c2dd323e08c989bca6f86951389626c4e05ee5dedb141ed465bc8e2abe8a7b05a3627ba30acbf79d12ece568d61ddb836c1d581f3de127a9888471546c8ae5e9ad7dc7d1e5ab477b735931b7091bfdaa69b0ab8976e2861bc178108a40e726225d79bdd4643873a251c87d8146bd45b4fe97573a4946b51632d55aa8d4c24bdbc3ed8e6bafc39a503aa25dece834467b3485adfbec2fbe7ae2d6385fb2adef081595f7b67c887acd14f1a97fd493f1363b5cdcbecdfa69ccfb02c03a7b0795560a69911a2de0e8f6efa29db0e4103763930835266abfcfcbf338040a8ef38b0401a4a98690cacaffad195bda13de62185788c2043a2900844497cc3706d5d13f700052d16d71d74be385f9a6af2ecff497e21c518fa61473b9f0dc36da3d322f24b6119dc6c5e1d93fb83fec7ffe91fd32d230342d2bf4f80765fd3c0acbd85043867c4a14caa2ff20da4d731eb102c24bc9c6012966467f790585f0fcf4f9b60bdb2f7334db4fae55808c999f072ae4e995ad4bc078e4206954758f2dcde2072f76a5958ba63c3a49868eb3fef5a49e042d07180979ba79d732b2675c702aef3041d3a6699ab2d1a6dc76d4b0044536329a40bee29021899f2eb024ee29b96df86fb6cbc129539e1fb964b56c2d14e08b9a793c59d43c5839fc977bfe938ba2b512a76fe450efe166d9daa5ac670c875daa626e664381a6670d1671d439f763cb4221c7e89f298e04590fbc315e214cdd96e50c6ce5972c9aa649dd6ecfa32e454e81880794074572469d5a44cfac07998616815f2a1d2397ff5d7b4c10d24f250e0edd05ef3c462251c81103af606705eba22a7a4f5129840872309bb7e2bfec94ca8ee00fb41407e3d80fef6f03da8499a86d2ab5ce65ec6b745a02a072ed0907ca728c2cb16d050393bcecf72706608038ccbac194ab4ba306cc2fe44e7a69e713f8556cf29660cd20c7912138bfeb4fb3e42eaf740a8c4592e2a79601f7e6432f297f6856a04f38c05db3f9de1a23170315257f38ca0cc2c1c1961a851afb342aa7263d34231e3279e3790c6b46e6b60137ce361a9b7f9cd3bcd06fc2512c4ca4fb1b498f88f3ad0a45eb9f7f281e4d2f8a8dc7f003bb6945685fefb80b738e94ea4ac18ed149a7162fae53bd658fc29ae467865509f9daf3cdfdcdf489bec5edc5a8abcbfc43c032cd10a4dd010225ea88e2625b19a2c019cd5caf883ee2bd8f1de21b2a884a8d6ebf4a156b8b600c98670401e23d34c6bcab2cf9f81193de2aa5a8e49744cbc0e5980e64cabdd4919831b4a532b01722f54c20b4a5481a62cb9ee7adbf01f1137e9d4ac33bb775345a8a465e9026c80ffa25ea68f067076dfc5a338eb3cc5c2187bc3028b3f45bebd26be52734a8d71d0dce4f28bac2bfb43390b793316b731580498ee651869099d40045135d94656a6dc0455e778535bc2a40d232fe14a5e6f5eb056731dc70cae835372ef463430a15a991b287500c5241d40997b8bc9ba99b4c7d87b1b18492f02a6cd769a87c1f1475a3de27fc549f030dd2956e3bf01d6fef9e63f5ea844e1edb3699df080aaa3e44c9664948a27fae173c4442e37cc31a992764121d3329e30297a9412e0c8216d15eb836c26a9bc3a3b7c7d9b09dd20a3a1e2c9588d7a2736f8e05a3f98d2d37d868a9a88050988a4c8f8d3d17d9d92c269bbb42709c083c6b30bdbfcf94e8b5f932f4ab8272bd81c3714381d8c3a968bff5c6cfbac90852d1e54df7cae73a92a0adf97f698fcef7c861053cf02be42ea4f02415c3a5a8326b70a6eeb9afbf17d728fe1f6cb5774574d68f4ec6c511e11a4657bb7313dee5df1afa4eaf0e6dd009f30c24ac1bb10d52701a056578c5e0e82a1dd4cef83a143a8aac3cf9bf1639d3d7b1fbc5268f9a313f14140b5ab458b8faa95f242850795129295aac8160c85e38b2431da00a6800d836e36982a9a378e4354e00fdb50ed0ebbbd17764eee2fe1e0fd4495bf7b53819993891c8f68d510e2566b0f87bb88734d83adc531352f494fb99520eb72d06d908922e5d2b9ae6527f81c6cac254851a3bd733066d69e45c13d76376427bdd4ac92d5cbe41013e09d6b0b84ac2a6e41c81a3994cd929175774877198af8a3263beb51c5c1479ef80f6f1b0aab54118249b7111b8c49186bd0c7af66f5a0d865b1e10c26d19aabf546c979444e96ef3d506562f57d06b4ff55b8345a9c76b4172b0e25089afb7b9bce3e52798b6e7102230407d87b4ccecfa7999d5d7ea6a8ea7d6d900000000000000000000000000000000000000040c101a1f24", + "result": "valid", + "flags": [ + "ValidSignature" + ] + }, + { + "tcId": 2, + "comment": "short signature", + "msg": "48656c6c6f20776f726c64", + "sig": "6589e14a5fb859884747dfd23755c73b7c934678879769eedc8b0b9ef592eb521f597b6f02978bc8f2c652267412078b39b728d6b026ad3770a26f4ee4ce6a0330828352e5258fc136de7b62a425c24c6d03e05fea6fa88ba5daf9fef26e8a761e59af74c6583fa2cd70815e97bc2f7fbe63f4c9048877ad637d6eb4f6ae89d2c7c927cdbeaf31f46c6f3f3988f890c53326be3e124d0712a3142eec3a341709d711457126f1f6c0029c3fed6aaea45a323e5df23de97e1584160c26219b64de00382a41f5ad633e7617e4724c0024d38ed1028ca117656af0b15febe5368ce38892a63adef0e93d13e98e03d4a7f85dbbdf9a36c072381929b566659576cd87d5f7c577eacc7c267218c95050d06668296ace945bf61c49e8fd82d6de18fe2e724f964f022292e4d4cfb8c7dcc3d28f1846e71830f2eb7fb64a8171b1fb8e1b3cb501e3da0f855e502f81c90e90657a239af07cbe2c7a66815952e6a83d26a600e36f6207f90741576101736bfcee82de016ae9380de38c1150a8469ce7613e360bf223b7653774cb2f81992d629cd0a39c9870b9542c72e38c4dcf10a798fb0b8b122f45dbdf311fb278e6e43a6efb95508e9926ac9b3576f9476f78e509586653a57303b06a75ced648332f87fcbe59f7bebf1f20424d4f30e06f4641b32638da7dea7f21cc4826b6f9991fd92dc6ace1e3e33d7bbd2daf35f4b8e4d984e773793abb06439ef71041d0ff74ce992b2ebfd0bf3b94574baedb529a654bd5a522d7ac80fb5d80d848ffd0d9d3c323c101b998beece494f6c27718ef1557bb90f0d6778ad3b8b48f4bdf641b60cf3839a8cb982493885a774ae75225657014a11fe03a4695118a6fbe3df1dd1454b1b075707f1c79ffe586f173bbbbea4a96ea21c99ed68974e4b711fca1b4974fbcb062bf0ac75f290f32c785f7c4f2106c58aca146a926ae912e7c0d95dbcd93d8435d08a984d9dc6d3a8ad6e6f09634dba641c1e3c519dd38f25a4cbbbc4b49887aac12adae7d0085b50cf3b3f4a38319367e62d192edf98c4eb4dd15d8f34283c6da0bf6fad423011a968f94ec44732e292b62d96739162a6e813ccf978639fba8929698002551f1e834c4b350044ff44693ef6a028eb224999b127b800248d085c3609b84a821a82591d16c0860bbc3ee853dd815fdf5c8695299af6bc979e8902daa96ba75f87435c97ce7e5dc2cf5b0638f5efcc2349d464ff60594fab1ff03ba5e90415a813693905e20a3f07caa5731a7b69bb9b7028f493ba65825826709aec686496a0cbfb2ec9224838278a7ff0068712eeef0a1788847cea1732a1fbf48ecf6628b809e9b8cdf85683b2f0957a3e3a78911a08a4c8528dbea43e7d2c26af405832ce6d0199efddd208eb077d99af735ffda60f4caf7cc9e5c6d96f77d354c262c7f6ab36dc57c841dc5695ca3eb6430da473830a966ac9c730577588f384edf35e00c77bfc4adf70cbf039f75a8f524a72a6c3d91b9c0f7ecc18bc97cd9e86cc4b077f28f5c81469cd3cddc1273146b819fb1345f83e2e389d4d82d67f8145230365ca68f517896121a4c335fec698a6998c90aa1d120ab54715ef1935924d298b2541a4b815969b20a657aa0289a4ee98b2584cf9485dff02ee1c823c1878a11a3276ae719a9b44b31e607f3ba82cb3f89a36ea64c82343e108ca357f461721e6512ef823d15a6f50bcab489962344bc5fb7b6d32aa7e177530ad7d2ced8d4fb4eee07bf6b9137d62f1ff1e8d196145b805d037d4d922d97d315ea37b6db5d78786dd651d520fcfcd83d35c61c9459dd1abdec5c7fdfda068f9fcb6a0d8697a5ec1968a2364de2c87979af280dd6a113900b6d71a1c667f8f9163fdaaec41e12e234cce2a22c06d03f96d3eb95f40c8b2aa886cb0f27b9ae33b3feac414cb00f184b64f684e91e1c672020e849013f13abf3ca9dbe10b12fc68f61b76ff48e4823e699699bca18ef394110110671bd336ca7013b0b694a1dc5198958a6f33469f2153aa9855809b2ce9d40cb9a1abe3fbb5f29be6a16c7bbd0fea398b214429109f11db96d2757f3afa6a4291386840923640d89da6ef249270a5e779b5b37d301156018bc64eb3ea49368802dfb372f7bb208642186609c7ba264f7e0eff71cee5fa7e04cddbf5b4269d11a9ec8d7ada95dc65fa1cb262ea0902980e7ad0cbffabfc50bee60d83368864698f64787b7f62084d847bad84c1882b45dc13af9ac33fe7f185d699cf902f01bbf20f3a7be7bd4f489e87b0ce4e50ee0ac7d1eaa2410d8b3fdf00d2ec2005d654e239d4148055bd3f071a6f121a2a38c6bad34b0183ba826e7363c74aef4a5f460cfb890c152524d0c3a50e44029c2dd323e08c989bca6f86951389626c4e05ee5dedb141ed465bc8e2abe8a7b05a3627ba30acbf79d12ece568d61ddb836c1d581f3de127a9888471546c8ae5e9ad7dc7d1e5ab477b735931b7091bfdaa69b0ab8976e2861bc178108a40e726225d79bdd4643873a251c87d8146bd45b4fe97573a4946b51632d55aa8d4c24bdbc3ed8e6bafc39a503aa25dece834467b3485adfbec2fbe7ae2d6385fb2adef081595f7b67c887acd14f1a97fd493f1363b5cdcbecdfa69ccfb02c03a7b0795560a69911a2de0e8f6efa29db0e4103763930835266abfcfcbf338040a8ef38b0401a4a98690cacaffad195bda13de62185788c2043a2900844497cc3706d5d13f700052d16d71d74be385f9a6af2ecff497e21c518fa61473b9f0dc36da3d322f24b6119dc6c5e1d93fb83fec7ffe91fd32d230342d2bf4f80765fd3c0acbd85043867c4a14caa2ff20da4d731eb102c24bc9c6012966467f790585f0fcf4f9b60bdb2f7334db4fae55808c999f072ae4e995ad4bc078e4206954758f2dcde2072f76a5958ba63c3a49868eb3fef5a49e042d07180979ba79d732b2675c702aef3041d3a6699ab2d1a6dc76d4b0044536329a40bee29021899f2eb024ee29b96df86fb6cbc129539e1fb964b56c2d14e08b9a793c59d43c5839fc977bfe938ba2b512a76fe450efe166d9daa5ac670c875daa626e664381a6670d1671d439f763cb4221c7e89f298e04590fbc315e214cdd96e50c6ce5972c9aa649dd6ecfa32e454e81880794074572469d5a44cfac07998616815f2a1d2397ff5d7b4c10d24f250e0edd05ef3c462251c81103af606705eba22a7a4f5129840872309bb7e2bfec94ca8ee00fb41407e3d80fef6f03da8499a86d2ab5ce65ec6b745a02a072ed0907ca728c2cb16d050393bcecf72706608038ccbac194ab4ba306cc2fe44e7a69e713f8556cf29660cd20c7912138bfeb4fb3e42eaf740a8c4592e2a79601f7e6432f297f6856a04f38c05db3f9de1a23170315257f38ca0cc2c1c1961a851afb342aa7263d34231e3279e3790c6b46e6b60137ce361a9b7f9cd3bcd06fc2512c4ca4fb1b498f88f3ad0a45eb9f7f281e4d2f8a8dc7f003bb6945685fefb80b738e94ea4ac18ed149a7162fae53bd658fc29ae467865509f9daf3cdfdcdf489bec5edc5a8abcbfc43c032cd10a4dd010225ea88e2625b19a2c019cd5caf883ee2bd8f1de21b2a884a8d6ebf4a156b8b600c98670401e23d34c6bcab2cf9f81193de2aa5a8e49744cbc0e5980e64cabdd4919831b4a532b01722f54c20b4a5481a62cb9ee7adbf01f1137e9d4ac33bb775345a8a465e9026c80ffa25ea68f067076dfc5a338eb3cc5c2187bc3028b3f45bebd26be52734a8d71d0dce4f28bac2bfb43390b793316b731580498ee651869099d40045135d94656a6dc0455e778535bc2a40d232fe14a5e6f5eb056731dc70cae835372ef463430a15a991b287500c5241d40997b8bc9ba99b4c7d87b1b18492f02a6cd769a87c1f1475a3de27fc549f030dd2956e3bf01d6fef9e63f5ea844e1edb3699df080aaa3e44c9664948a27fae173c4442e37cc31a992764121d3329e30297a9412e0c8216d15eb836c26a9bc3a3b7c7d9b09dd20a3a1e2c9588d7a2736f8e05a3f98d2d37d868a9a88050988a4c8f8d3d17d9d92c269bbb42709c083c6b30bdbfcf94e8b5f932f4ab8272bd81c3714381d8c3a968bff5c6cfbac90852d1e54df7cae73a92a0adf97f698fcef7c861053cf02be42ea4f02415c3a5a8326b70a6eeb9afbf17d728fe1f6cb5774574d68f4ec6c511e11a4657bb7313dee5df1afa4eaf0e6dd009f30c24ac1bb10d52701a056578c5e0e82a1dd4cef83a143a8aac3cf9bf1639d3d7b1fbc5268f9a313f14140b5ab458b8faa95f242850795129295aac8160c85e38b2431da00a6800d836e36982a9a378e4354e00fdb50ed0ebbbd17764eee2fe1e0fd4495bf7b53819993891c8f68d510e2566b0f87bb88734d83adc531352f494fb99520eb72d06d908922e5d2b9ae6527f81c6cac254851a3bd733066d69e45c13d76376427bdd4ac92d5cbe41013e09d6b0b84ac2a6e41c81a3994cd929175774877198af8a3263beb51c5c1479ef80f6f1b0aab54118249b7111b8c49186bd0c7af66f5a0d865b1e10c26d19aabf546c979444e96ef3d506562f57d06b4ff55b8345a9c76b4172b0e25089afb7b9bce3e52798b6e7102230407d87b4ccecfa7999d5d7ea6a8ea7d6d900000000000000000000000000000000000000040c101a1f", + "result": "invalid", + "flags": [ + "IncorrectSignatureLength" + ] + }, + { + "tcId": 3, + "comment": "long signature", + "msg": "48656c6c6f20776f726c64", + "sig": "6589e14a5fb859884747dfd23755c73b7c934678879769eedc8b0b9ef592eb521f597b6f02978bc8f2c652267412078b39b728d6b026ad3770a26f4ee4ce6a0330828352e5258fc136de7b62a425c24c6d03e05fea6fa88ba5daf9fef26e8a761e59af74c6583fa2cd70815e97bc2f7fbe63f4c9048877ad637d6eb4f6ae89d2c7c927cdbeaf31f46c6f3f3988f890c53326be3e124d0712a3142eec3a341709d711457126f1f6c0029c3fed6aaea45a323e5df23de97e1584160c26219b64de00382a41f5ad633e7617e4724c0024d38ed1028ca117656af0b15febe5368ce38892a63adef0e93d13e98e03d4a7f85dbbdf9a36c072381929b566659576cd87d5f7c577eacc7c267218c95050d06668296ace945bf61c49e8fd82d6de18fe2e724f964f022292e4d4cfb8c7dcc3d28f1846e71830f2eb7fb64a8171b1fb8e1b3cb501e3da0f855e502f81c90e90657a239af07cbe2c7a66815952e6a83d26a600e36f6207f90741576101736bfcee82de016ae9380de38c1150a8469ce7613e360bf223b7653774cb2f81992d629cd0a39c9870b9542c72e38c4dcf10a798fb0b8b122f45dbdf311fb278e6e43a6efb95508e9926ac9b3576f9476f78e509586653a57303b06a75ced648332f87fcbe59f7bebf1f20424d4f30e06f4641b32638da7dea7f21cc4826b6f9991fd92dc6ace1e3e33d7bbd2daf35f4b8e4d984e773793abb06439ef71041d0ff74ce992b2ebfd0bf3b94574baedb529a654bd5a522d7ac80fb5d80d848ffd0d9d3c323c101b998beece494f6c27718ef1557bb90f0d6778ad3b8b48f4bdf641b60cf3839a8cb982493885a774ae75225657014a11fe03a4695118a6fbe3df1dd1454b1b075707f1c79ffe586f173bbbbea4a96ea21c99ed68974e4b711fca1b4974fbcb062bf0ac75f290f32c785f7c4f2106c58aca146a926ae912e7c0d95dbcd93d8435d08a984d9dc6d3a8ad6e6f09634dba641c1e3c519dd38f25a4cbbbc4b49887aac12adae7d0085b50cf3b3f4a38319367e62d192edf98c4eb4dd15d8f34283c6da0bf6fad423011a968f94ec44732e292b62d96739162a6e813ccf978639fba8929698002551f1e834c4b350044ff44693ef6a028eb224999b127b800248d085c3609b84a821a82591d16c0860bbc3ee853dd815fdf5c8695299af6bc979e8902daa96ba75f87435c97ce7e5dc2cf5b0638f5efcc2349d464ff60594fab1ff03ba5e90415a813693905e20a3f07caa5731a7b69bb9b7028f493ba65825826709aec686496a0cbfb2ec9224838278a7ff0068712eeef0a1788847cea1732a1fbf48ecf6628b809e9b8cdf85683b2f0957a3e3a78911a08a4c8528dbea43e7d2c26af405832ce6d0199efddd208eb077d99af735ffda60f4caf7cc9e5c6d96f77d354c262c7f6ab36dc57c841dc5695ca3eb6430da473830a966ac9c730577588f384edf35e00c77bfc4adf70cbf039f75a8f524a72a6c3d91b9c0f7ecc18bc97cd9e86cc4b077f28f5c81469cd3cddc1273146b819fb1345f83e2e389d4d82d67f8145230365ca68f517896121a4c335fec698a6998c90aa1d120ab54715ef1935924d298b2541a4b815969b20a657aa0289a4ee98b2584cf9485dff02ee1c823c1878a11a3276ae719a9b44b31e607f3ba82cb3f89a36ea64c82343e108ca357f461721e6512ef823d15a6f50bcab489962344bc5fb7b6d32aa7e177530ad7d2ced8d4fb4eee07bf6b9137d62f1ff1e8d196145b805d037d4d922d97d315ea37b6db5d78786dd651d520fcfcd83d35c61c9459dd1abdec5c7fdfda068f9fcb6a0d8697a5ec1968a2364de2c87979af280dd6a113900b6d71a1c667f8f9163fdaaec41e12e234cce2a22c06d03f96d3eb95f40c8b2aa886cb0f27b9ae33b3feac414cb00f184b64f684e91e1c672020e849013f13abf3ca9dbe10b12fc68f61b76ff48e4823e699699bca18ef394110110671bd336ca7013b0b694a1dc5198958a6f33469f2153aa9855809b2ce9d40cb9a1abe3fbb5f29be6a16c7bbd0fea398b214429109f11db96d2757f3afa6a4291386840923640d89da6ef249270a5e779b5b37d301156018bc64eb3ea49368802dfb372f7bb208642186609c7ba264f7e0eff71cee5fa7e04cddbf5b4269d11a9ec8d7ada95dc65fa1cb262ea0902980e7ad0cbffabfc50bee60d83368864698f64787b7f62084d847bad84c1882b45dc13af9ac33fe7f185d699cf902f01bbf20f3a7be7bd4f489e87b0ce4e50ee0ac7d1eaa2410d8b3fdf00d2ec2005d654e239d4148055bd3f071a6f121a2a38c6bad34b0183ba826e7363c74aef4a5f460cfb890c152524d0c3a50e44029c2dd323e08c989bca6f86951389626c4e05ee5dedb141ed465bc8e2abe8a7b05a3627ba30acbf79d12ece568d61ddb836c1d581f3de127a9888471546c8ae5e9ad7dc7d1e5ab477b735931b7091bfdaa69b0ab8976e2861bc178108a40e726225d79bdd4643873a251c87d8146bd45b4fe97573a4946b51632d55aa8d4c24bdbc3ed8e6bafc39a503aa25dece834467b3485adfbec2fbe7ae2d6385fb2adef081595f7b67c887acd14f1a97fd493f1363b5cdcbecdfa69ccfb02c03a7b0795560a69911a2de0e8f6efa29db0e4103763930835266abfcfcbf338040a8ef38b0401a4a98690cacaffad195bda13de62185788c2043a2900844497cc3706d5d13f700052d16d71d74be385f9a6af2ecff497e21c518fa61473b9f0dc36da3d322f24b6119dc6c5e1d93fb83fec7ffe91fd32d230342d2bf4f80765fd3c0acbd85043867c4a14caa2ff20da4d731eb102c24bc9c6012966467f790585f0fcf4f9b60bdb2f7334db4fae55808c999f072ae4e995ad4bc078e4206954758f2dcde2072f76a5958ba63c3a49868eb3fef5a49e042d07180979ba79d732b2675c702aef3041d3a6699ab2d1a6dc76d4b0044536329a40bee29021899f2eb024ee29b96df86fb6cbc129539e1fb964b56c2d14e08b9a793c59d43c5839fc977bfe938ba2b512a76fe450efe166d9daa5ac670c875daa626e664381a6670d1671d439f763cb4221c7e89f298e04590fbc315e214cdd96e50c6ce5972c9aa649dd6ecfa32e454e81880794074572469d5a44cfac07998616815f2a1d2397ff5d7b4c10d24f250e0edd05ef3c462251c81103af606705eba22a7a4f5129840872309bb7e2bfec94ca8ee00fb41407e3d80fef6f03da8499a86d2ab5ce65ec6b745a02a072ed0907ca728c2cb16d050393bcecf72706608038ccbac194ab4ba306cc2fe44e7a69e713f8556cf29660cd20c7912138bfeb4fb3e42eaf740a8c4592e2a79601f7e6432f297f6856a04f38c05db3f9de1a23170315257f38ca0cc2c1c1961a851afb342aa7263d34231e3279e3790c6b46e6b60137ce361a9b7f9cd3bcd06fc2512c4ca4fb1b498f88f3ad0a45eb9f7f281e4d2f8a8dc7f003bb6945685fefb80b738e94ea4ac18ed149a7162fae53bd658fc29ae467865509f9daf3cdfdcdf489bec5edc5a8abcbfc43c032cd10a4dd010225ea88e2625b19a2c019cd5caf883ee2bd8f1de21b2a884a8d6ebf4a156b8b600c98670401e23d34c6bcab2cf9f81193de2aa5a8e49744cbc0e5980e64cabdd4919831b4a532b01722f54c20b4a5481a62cb9ee7adbf01f1137e9d4ac33bb775345a8a465e9026c80ffa25ea68f067076dfc5a338eb3cc5c2187bc3028b3f45bebd26be52734a8d71d0dce4f28bac2bfb43390b793316b731580498ee651869099d40045135d94656a6dc0455e778535bc2a40d232fe14a5e6f5eb056731dc70cae835372ef463430a15a991b287500c5241d40997b8bc9ba99b4c7d87b1b18492f02a6cd769a87c1f1475a3de27fc549f030dd2956e3bf01d6fef9e63f5ea844e1edb3699df080aaa3e44c9664948a27fae173c4442e37cc31a992764121d3329e30297a9412e0c8216d15eb836c26a9bc3a3b7c7d9b09dd20a3a1e2c9588d7a2736f8e05a3f98d2d37d868a9a88050988a4c8f8d3d17d9d92c269bbb42709c083c6b30bdbfcf94e8b5f932f4ab8272bd81c3714381d8c3a968bff5c6cfbac90852d1e54df7cae73a92a0adf97f698fcef7c861053cf02be42ea4f02415c3a5a8326b70a6eeb9afbf17d728fe1f6cb5774574d68f4ec6c511e11a4657bb7313dee5df1afa4eaf0e6dd009f30c24ac1bb10d52701a056578c5e0e82a1dd4cef83a143a8aac3cf9bf1639d3d7b1fbc5268f9a313f14140b5ab458b8faa95f242850795129295aac8160c85e38b2431da00a6800d836e36982a9a378e4354e00fdb50ed0ebbbd17764eee2fe1e0fd4495bf7b53819993891c8f68d510e2566b0f87bb88734d83adc531352f494fb99520eb72d06d908922e5d2b9ae6527f81c6cac254851a3bd733066d69e45c13d76376427bdd4ac92d5cbe41013e09d6b0b84ac2a6e41c81a3994cd929175774877198af8a3263beb51c5c1479ef80f6f1b0aab54118249b7111b8c49186bd0c7af66f5a0d865b1e10c26d19aabf546c979444e96ef3d506562f57d06b4ff55b8345a9c76b4172b0e25089afb7b9bce3e52798b6e7102230407d87b4ccecfa7999d5d7ea6a8ea7d6d900000000000000000000000000000000000000040c101a1f2400", + "result": "invalid", + "flags": [ + "IncorrectSignatureLength" + ] + }, + { + "tcId": 4, + "comment": "signature with a bit flip in c_tilde", + "msg": "48656c6c6f20776f726c64", + "sig": "6489e14a5fb859884747dfd23755c73b7c934678879769eedc8b0b9ef592eb521f597b6f02978bc8f2c652267412078b39b728d6b026ad3770a26f4ee4ce6a0330828352e5258fc136de7b62a425c24c6d03e05fea6fa88ba5daf9fef26e8a761e59af74c6583fa2cd70815e97bc2f7fbe63f4c9048877ad637d6eb4f6ae89d2c7c927cdbeaf31f46c6f3f3988f890c53326be3e124d0712a3142eec3a341709d711457126f1f6c0029c3fed6aaea45a323e5df23de97e1584160c26219b64de00382a41f5ad633e7617e4724c0024d38ed1028ca117656af0b15febe5368ce38892a63adef0e93d13e98e03d4a7f85dbbdf9a36c072381929b566659576cd87d5f7c577eacc7c267218c95050d06668296ace945bf61c49e8fd82d6de18fe2e724f964f022292e4d4cfb8c7dcc3d28f1846e71830f2eb7fb64a8171b1fb8e1b3cb501e3da0f855e502f81c90e90657a239af07cbe2c7a66815952e6a83d26a600e36f6207f90741576101736bfcee82de016ae9380de38c1150a8469ce7613e360bf223b7653774cb2f81992d629cd0a39c9870b9542c72e38c4dcf10a798fb0b8b122f45dbdf311fb278e6e43a6efb95508e9926ac9b3576f9476f78e509586653a57303b06a75ced648332f87fcbe59f7bebf1f20424d4f30e06f4641b32638da7dea7f21cc4826b6f9991fd92dc6ace1e3e33d7bbd2daf35f4b8e4d984e773793abb06439ef71041d0ff74ce992b2ebfd0bf3b94574baedb529a654bd5a522d7ac80fb5d80d848ffd0d9d3c323c101b998beece494f6c27718ef1557bb90f0d6778ad3b8b48f4bdf641b60cf3839a8cb982493885a774ae75225657014a11fe03a4695118a6fbe3df1dd1454b1b075707f1c79ffe586f173bbbbea4a96ea21c99ed68974e4b711fca1b4974fbcb062bf0ac75f290f32c785f7c4f2106c58aca146a926ae912e7c0d95dbcd93d8435d08a984d9dc6d3a8ad6e6f09634dba641c1e3c519dd38f25a4cbbbc4b49887aac12adae7d0085b50cf3b3f4a38319367e62d192edf98c4eb4dd15d8f34283c6da0bf6fad423011a968f94ec44732e292b62d96739162a6e813ccf978639fba8929698002551f1e834c4b350044ff44693ef6a028eb224999b127b800248d085c3609b84a821a82591d16c0860bbc3ee853dd815fdf5c8695299af6bc979e8902daa96ba75f87435c97ce7e5dc2cf5b0638f5efcc2349d464ff60594fab1ff03ba5e90415a813693905e20a3f07caa5731a7b69bb9b7028f493ba65825826709aec686496a0cbfb2ec9224838278a7ff0068712eeef0a1788847cea1732a1fbf48ecf6628b809e9b8cdf85683b2f0957a3e3a78911a08a4c8528dbea43e7d2c26af405832ce6d0199efddd208eb077d99af735ffda60f4caf7cc9e5c6d96f77d354c262c7f6ab36dc57c841dc5695ca3eb6430da473830a966ac9c730577588f384edf35e00c77bfc4adf70cbf039f75a8f524a72a6c3d91b9c0f7ecc18bc97cd9e86cc4b077f28f5c81469cd3cddc1273146b819fb1345f83e2e389d4d82d67f8145230365ca68f517896121a4c335fec698a6998c90aa1d120ab54715ef1935924d298b2541a4b815969b20a657aa0289a4ee98b2584cf9485dff02ee1c823c1878a11a3276ae719a9b44b31e607f3ba82cb3f89a36ea64c82343e108ca357f461721e6512ef823d15a6f50bcab489962344bc5fb7b6d32aa7e177530ad7d2ced8d4fb4eee07bf6b9137d62f1ff1e8d196145b805d037d4d922d97d315ea37b6db5d78786dd651d520fcfcd83d35c61c9459dd1abdec5c7fdfda068f9fcb6a0d8697a5ec1968a2364de2c87979af280dd6a113900b6d71a1c667f8f9163fdaaec41e12e234cce2a22c06d03f96d3eb95f40c8b2aa886cb0f27b9ae33b3feac414cb00f184b64f684e91e1c672020e849013f13abf3ca9dbe10b12fc68f61b76ff48e4823e699699bca18ef394110110671bd336ca7013b0b694a1dc5198958a6f33469f2153aa9855809b2ce9d40cb9a1abe3fbb5f29be6a16c7bbd0fea398b214429109f11db96d2757f3afa6a4291386840923640d89da6ef249270a5e779b5b37d301156018bc64eb3ea49368802dfb372f7bb208642186609c7ba264f7e0eff71cee5fa7e04cddbf5b4269d11a9ec8d7ada95dc65fa1cb262ea0902980e7ad0cbffabfc50bee60d83368864698f64787b7f62084d847bad84c1882b45dc13af9ac33fe7f185d699cf902f01bbf20f3a7be7bd4f489e87b0ce4e50ee0ac7d1eaa2410d8b3fdf00d2ec2005d654e239d4148055bd3f071a6f121a2a38c6bad34b0183ba826e7363c74aef4a5f460cfb890c152524d0c3a50e44029c2dd323e08c989bca6f86951389626c4e05ee5dedb141ed465bc8e2abe8a7b05a3627ba30acbf79d12ece568d61ddb836c1d581f3de127a9888471546c8ae5e9ad7dc7d1e5ab477b735931b7091bfdaa69b0ab8976e2861bc178108a40e726225d79bdd4643873a251c87d8146bd45b4fe97573a4946b51632d55aa8d4c24bdbc3ed8e6bafc39a503aa25dece834467b3485adfbec2fbe7ae2d6385fb2adef081595f7b67c887acd14f1a97fd493f1363b5cdcbecdfa69ccfb02c03a7b0795560a69911a2de0e8f6efa29db0e4103763930835266abfcfcbf338040a8ef38b0401a4a98690cacaffad195bda13de62185788c2043a2900844497cc3706d5d13f700052d16d71d74be385f9a6af2ecff497e21c518fa61473b9f0dc36da3d322f24b6119dc6c5e1d93fb83fec7ffe91fd32d230342d2bf4f80765fd3c0acbd85043867c4a14caa2ff20da4d731eb102c24bc9c6012966467f790585f0fcf4f9b60bdb2f7334db4fae55808c999f072ae4e995ad4bc078e4206954758f2dcde2072f76a5958ba63c3a49868eb3fef5a49e042d07180979ba79d732b2675c702aef3041d3a6699ab2d1a6dc76d4b0044536329a40bee29021899f2eb024ee29b96df86fb6cbc129539e1fb964b56c2d14e08b9a793c59d43c5839fc977bfe938ba2b512a76fe450efe166d9daa5ac670c875daa626e664381a6670d1671d439f763cb4221c7e89f298e04590fbc315e214cdd96e50c6ce5972c9aa649dd6ecfa32e454e81880794074572469d5a44cfac07998616815f2a1d2397ff5d7b4c10d24f250e0edd05ef3c462251c81103af606705eba22a7a4f5129840872309bb7e2bfec94ca8ee00fb41407e3d80fef6f03da8499a86d2ab5ce65ec6b745a02a072ed0907ca728c2cb16d050393bcecf72706608038ccbac194ab4ba306cc2fe44e7a69e713f8556cf29660cd20c7912138bfeb4fb3e42eaf740a8c4592e2a79601f7e6432f297f6856a04f38c05db3f9de1a23170315257f38ca0cc2c1c1961a851afb342aa7263d34231e3279e3790c6b46e6b60137ce361a9b7f9cd3bcd06fc2512c4ca4fb1b498f88f3ad0a45eb9f7f281e4d2f8a8dc7f003bb6945685fefb80b738e94ea4ac18ed149a7162fae53bd658fc29ae467865509f9daf3cdfdcdf489bec5edc5a8abcbfc43c032cd10a4dd010225ea88e2625b19a2c019cd5caf883ee2bd8f1de21b2a884a8d6ebf4a156b8b600c98670401e23d34c6bcab2cf9f81193de2aa5a8e49744cbc0e5980e64cabdd4919831b4a532b01722f54c20b4a5481a62cb9ee7adbf01f1137e9d4ac33bb775345a8a465e9026c80ffa25ea68f067076dfc5a338eb3cc5c2187bc3028b3f45bebd26be52734a8d71d0dce4f28bac2bfb43390b793316b731580498ee651869099d40045135d94656a6dc0455e778535bc2a40d232fe14a5e6f5eb056731dc70cae835372ef463430a15a991b287500c5241d40997b8bc9ba99b4c7d87b1b18492f02a6cd769a87c1f1475a3de27fc549f030dd2956e3bf01d6fef9e63f5ea844e1edb3699df080aaa3e44c9664948a27fae173c4442e37cc31a992764121d3329e30297a9412e0c8216d15eb836c26a9bc3a3b7c7d9b09dd20a3a1e2c9588d7a2736f8e05a3f98d2d37d868a9a88050988a4c8f8d3d17d9d92c269bbb42709c083c6b30bdbfcf94e8b5f932f4ab8272bd81c3714381d8c3a968bff5c6cfbac90852d1e54df7cae73a92a0adf97f698fcef7c861053cf02be42ea4f02415c3a5a8326b70a6eeb9afbf17d728fe1f6cb5774574d68f4ec6c511e11a4657bb7313dee5df1afa4eaf0e6dd009f30c24ac1bb10d52701a056578c5e0e82a1dd4cef83a143a8aac3cf9bf1639d3d7b1fbc5268f9a313f14140b5ab458b8faa95f242850795129295aac8160c85e38b2431da00a6800d836e36982a9a378e4354e00fdb50ed0ebbbd17764eee2fe1e0fd4495bf7b53819993891c8f68d510e2566b0f87bb88734d83adc531352f494fb99520eb72d06d908922e5d2b9ae6527f81c6cac254851a3bd733066d69e45c13d76376427bdd4ac92d5cbe41013e09d6b0b84ac2a6e41c81a3994cd929175774877198af8a3263beb51c5c1479ef80f6f1b0aab54118249b7111b8c49186bd0c7af66f5a0d865b1e10c26d19aabf546c979444e96ef3d506562f57d06b4ff55b8345a9c76b4172b0e25089afb7b9bce3e52798b6e7102230407d87b4ccecfa7999d5d7ea6a8ea7d6d900000000000000000000000000000000000000040c101a1f24", + "result": "invalid", + "flags": [ + "ModifiedSignature" + ] + }, + { + "tcId": 5, + "comment": "signature with a bit flip in z[0]", + "msg": "48656c6c6f20776f726c64", + "sig": "6589e14a5fb859884747dfd23755c73b7c934678879769eedc8b0b9ef592eb521f597b6f02978bc8f2c652267412078b38b728d6b026ad3770a26f4ee4ce6a0330828352e5258fc136de7b62a425c24c6d03e05fea6fa88ba5daf9fef26e8a761e59af74c6583fa2cd70815e97bc2f7fbe63f4c9048877ad637d6eb4f6ae89d2c7c927cdbeaf31f46c6f3f3988f890c53326be3e124d0712a3142eec3a341709d711457126f1f6c0029c3fed6aaea45a323e5df23de97e1584160c26219b64de00382a41f5ad633e7617e4724c0024d38ed1028ca117656af0b15febe5368ce38892a63adef0e93d13e98e03d4a7f85dbbdf9a36c072381929b566659576cd87d5f7c577eacc7c267218c95050d06668296ace945bf61c49e8fd82d6de18fe2e724f964f022292e4d4cfb8c7dcc3d28f1846e71830f2eb7fb64a8171b1fb8e1b3cb501e3da0f855e502f81c90e90657a239af07cbe2c7a66815952e6a83d26a600e36f6207f90741576101736bfcee82de016ae9380de38c1150a8469ce7613e360bf223b7653774cb2f81992d629cd0a39c9870b9542c72e38c4dcf10a798fb0b8b122f45dbdf311fb278e6e43a6efb95508e9926ac9b3576f9476f78e509586653a57303b06a75ced648332f87fcbe59f7bebf1f20424d4f30e06f4641b32638da7dea7f21cc4826b6f9991fd92dc6ace1e3e33d7bbd2daf35f4b8e4d984e773793abb06439ef71041d0ff74ce992b2ebfd0bf3b94574baedb529a654bd5a522d7ac80fb5d80d848ffd0d9d3c323c101b998beece494f6c27718ef1557bb90f0d6778ad3b8b48f4bdf641b60cf3839a8cb982493885a774ae75225657014a11fe03a4695118a6fbe3df1dd1454b1b075707f1c79ffe586f173bbbbea4a96ea21c99ed68974e4b711fca1b4974fbcb062bf0ac75f290f32c785f7c4f2106c58aca146a926ae912e7c0d95dbcd93d8435d08a984d9dc6d3a8ad6e6f09634dba641c1e3c519dd38f25a4cbbbc4b49887aac12adae7d0085b50cf3b3f4a38319367e62d192edf98c4eb4dd15d8f34283c6da0bf6fad423011a968f94ec44732e292b62d96739162a6e813ccf978639fba8929698002551f1e834c4b350044ff44693ef6a028eb224999b127b800248d085c3609b84a821a82591d16c0860bbc3ee853dd815fdf5c8695299af6bc979e8902daa96ba75f87435c97ce7e5dc2cf5b0638f5efcc2349d464ff60594fab1ff03ba5e90415a813693905e20a3f07caa5731a7b69bb9b7028f493ba65825826709aec686496a0cbfb2ec9224838278a7ff0068712eeef0a1788847cea1732a1fbf48ecf6628b809e9b8cdf85683b2f0957a3e3a78911a08a4c8528dbea43e7d2c26af405832ce6d0199efddd208eb077d99af735ffda60f4caf7cc9e5c6d96f77d354c262c7f6ab36dc57c841dc5695ca3eb6430da473830a966ac9c730577588f384edf35e00c77bfc4adf70cbf039f75a8f524a72a6c3d91b9c0f7ecc18bc97cd9e86cc4b077f28f5c81469cd3cddc1273146b819fb1345f83e2e389d4d82d67f8145230365ca68f517896121a4c335fec698a6998c90aa1d120ab54715ef1935924d298b2541a4b815969b20a657aa0289a4ee98b2584cf9485dff02ee1c823c1878a11a3276ae719a9b44b31e607f3ba82cb3f89a36ea64c82343e108ca357f461721e6512ef823d15a6f50bcab489962344bc5fb7b6d32aa7e177530ad7d2ced8d4fb4eee07bf6b9137d62f1ff1e8d196145b805d037d4d922d97d315ea37b6db5d78786dd651d520fcfcd83d35c61c9459dd1abdec5c7fdfda068f9fcb6a0d8697a5ec1968a2364de2c87979af280dd6a113900b6d71a1c667f8f9163fdaaec41e12e234cce2a22c06d03f96d3eb95f40c8b2aa886cb0f27b9ae33b3feac414cb00f184b64f684e91e1c672020e849013f13abf3ca9dbe10b12fc68f61b76ff48e4823e699699bca18ef394110110671bd336ca7013b0b694a1dc5198958a6f33469f2153aa9855809b2ce9d40cb9a1abe3fbb5f29be6a16c7bbd0fea398b214429109f11db96d2757f3afa6a4291386840923640d89da6ef249270a5e779b5b37d301156018bc64eb3ea49368802dfb372f7bb208642186609c7ba264f7e0eff71cee5fa7e04cddbf5b4269d11a9ec8d7ada95dc65fa1cb262ea0902980e7ad0cbffabfc50bee60d83368864698f64787b7f62084d847bad84c1882b45dc13af9ac33fe7f185d699cf902f01bbf20f3a7be7bd4f489e87b0ce4e50ee0ac7d1eaa2410d8b3fdf00d2ec2005d654e239d4148055bd3f071a6f121a2a38c6bad34b0183ba826e7363c74aef4a5f460cfb890c152524d0c3a50e44029c2dd323e08c989bca6f86951389626c4e05ee5dedb141ed465bc8e2abe8a7b05a3627ba30acbf79d12ece568d61ddb836c1d581f3de127a9888471546c8ae5e9ad7dc7d1e5ab477b735931b7091bfdaa69b0ab8976e2861bc178108a40e726225d79bdd4643873a251c87d8146bd45b4fe97573a4946b51632d55aa8d4c24bdbc3ed8e6bafc39a503aa25dece834467b3485adfbec2fbe7ae2d6385fb2adef081595f7b67c887acd14f1a97fd493f1363b5cdcbecdfa69ccfb02c03a7b0795560a69911a2de0e8f6efa29db0e4103763930835266abfcfcbf338040a8ef38b0401a4a98690cacaffad195bda13de62185788c2043a2900844497cc3706d5d13f700052d16d71d74be385f9a6af2ecff497e21c518fa61473b9f0dc36da3d322f24b6119dc6c5e1d93fb83fec7ffe91fd32d230342d2bf4f80765fd3c0acbd85043867c4a14caa2ff20da4d731eb102c24bc9c6012966467f790585f0fcf4f9b60bdb2f7334db4fae55808c999f072ae4e995ad4bc078e4206954758f2dcde2072f76a5958ba63c3a49868eb3fef5a49e042d07180979ba79d732b2675c702aef3041d3a6699ab2d1a6dc76d4b0044536329a40bee29021899f2eb024ee29b96df86fb6cbc129539e1fb964b56c2d14e08b9a793c59d43c5839fc977bfe938ba2b512a76fe450efe166d9daa5ac670c875daa626e664381a6670d1671d439f763cb4221c7e89f298e04590fbc315e214cdd96e50c6ce5972c9aa649dd6ecfa32e454e81880794074572469d5a44cfac07998616815f2a1d2397ff5d7b4c10d24f250e0edd05ef3c462251c81103af606705eba22a7a4f5129840872309bb7e2bfec94ca8ee00fb41407e3d80fef6f03da8499a86d2ab5ce65ec6b745a02a072ed0907ca728c2cb16d050393bcecf72706608038ccbac194ab4ba306cc2fe44e7a69e713f8556cf29660cd20c7912138bfeb4fb3e42eaf740a8c4592e2a79601f7e6432f297f6856a04f38c05db3f9de1a23170315257f38ca0cc2c1c1961a851afb342aa7263d34231e3279e3790c6b46e6b60137ce361a9b7f9cd3bcd06fc2512c4ca4fb1b498f88f3ad0a45eb9f7f281e4d2f8a8dc7f003bb6945685fefb80b738e94ea4ac18ed149a7162fae53bd658fc29ae467865509f9daf3cdfdcdf489bec5edc5a8abcbfc43c032cd10a4dd010225ea88e2625b19a2c019cd5caf883ee2bd8f1de21b2a884a8d6ebf4a156b8b600c98670401e23d34c6bcab2cf9f81193de2aa5a8e49744cbc0e5980e64cabdd4919831b4a532b01722f54c20b4a5481a62cb9ee7adbf01f1137e9d4ac33bb775345a8a465e9026c80ffa25ea68f067076dfc5a338eb3cc5c2187bc3028b3f45bebd26be52734a8d71d0dce4f28bac2bfb43390b793316b731580498ee651869099d40045135d94656a6dc0455e778535bc2a40d232fe14a5e6f5eb056731dc70cae835372ef463430a15a991b287500c5241d40997b8bc9ba99b4c7d87b1b18492f02a6cd769a87c1f1475a3de27fc549f030dd2956e3bf01d6fef9e63f5ea844e1edb3699df080aaa3e44c9664948a27fae173c4442e37cc31a992764121d3329e30297a9412e0c8216d15eb836c26a9bc3a3b7c7d9b09dd20a3a1e2c9588d7a2736f8e05a3f98d2d37d868a9a88050988a4c8f8d3d17d9d92c269bbb42709c083c6b30bdbfcf94e8b5f932f4ab8272bd81c3714381d8c3a968bff5c6cfbac90852d1e54df7cae73a92a0adf97f698fcef7c861053cf02be42ea4f02415c3a5a8326b70a6eeb9afbf17d728fe1f6cb5774574d68f4ec6c511e11a4657bb7313dee5df1afa4eaf0e6dd009f30c24ac1bb10d52701a056578c5e0e82a1dd4cef83a143a8aac3cf9bf1639d3d7b1fbc5268f9a313f14140b5ab458b8faa95f242850795129295aac8160c85e38b2431da00a6800d836e36982a9a378e4354e00fdb50ed0ebbbd17764eee2fe1e0fd4495bf7b53819993891c8f68d510e2566b0f87bb88734d83adc531352f494fb99520eb72d06d908922e5d2b9ae6527f81c6cac254851a3bd733066d69e45c13d76376427bdd4ac92d5cbe41013e09d6b0b84ac2a6e41c81a3994cd929175774877198af8a3263beb51c5c1479ef80f6f1b0aab54118249b7111b8c49186bd0c7af66f5a0d865b1e10c26d19aabf546c979444e96ef3d506562f57d06b4ff55b8345a9c76b4172b0e25089afb7b9bce3e52798b6e7102230407d87b4ccecfa7999d5d7ea6a8ea7d6d900000000000000000000000000000000000000040c101a1f24", + "result": "invalid", + "flags": [ + "ModifiedSignature" + ] + }, + { + "tcId": 6, + "comment": "signature with a bit flip in z[1]", + "msg": "48656c6c6f20776f726c64", + "sig": "6589e14a5fb859884747dfd23755c73b7c934678879769eedc8b0b9ef592eb521f597b6f02978bc8f2c652267412078b39b728d6b026ad3770a26f4ee4ce6a0330828352e5258fc136de7b62a425c24c6d03e05fea6fa88ba5daf9fef26e8a761e59af74c6583fa2cd70815e97bc2f7fbe63f4c9048877ad637d6eb4f6ae89d2c7c927cdbeaf31f46c6f3f3988f890c53326be3e124d0712a3142eec3a341709d711457126f1f6c0029c3fed6aaea45a323e5df23de97e1584160c26219b64de00382a41f5ad633e7617e4724c0024d38ed1028ca117656af0b15febe5368ce38892a63adef0e93d13e98e03d4a7f85dbbdf9a36c072381929b566659576cd87d5f7c577eacc7c267218c95050d06668296ace945bf61c49e8fd82d6de18fe2e724f964f022292e4d4cfb8c7dcc3d28f1846e71830f2eb7fb64a8171b1fb8e1b3cb501e3da0f855e502f81c90e90657a239af07cbe2c7a66815952e6a83d26a600e36f6207f90741576101736bfcee82de016ae9380de38c1150a8469ce7613e360bf223b7653774cb2f81992d629cd0a39c9870b9542c72e38c4dcf10a798fb0b8b122f45dbdf311fb278e6e43a6efb95508e9926ac9b3576f9476f78e509586653a57303b06a75ced648332f87fcbe59f7bebf1f20424d4f30e06f4641b32638da7dea7f21cc4826b6f9991fd92dc6ace1e3e33d7bbd2daf35f4b8e4d984e773793abb06439ef71041d0ff74ce992b2ebfd0bf3b94574baedb529a654bd5a522d7ac80fb5d80d848ffd0d9d3c323c101b998beece494f6c27718ef1557bb90f0d6778ad3b8b48f4bdf641b60cf3839a8cb982493885a774ae75225657014a11fe03a4695118a6fbe3df1dd1454b1b075707f1c79ffe586f173bbbbea4a96ea21c99ed68974e4b711fca1b4974fbcb062bf0ac75f290f32c785f7c4f2106c58aca146a926ae912e7c0d95dbcd93d8435c08a984d9dc6d3a8ad6e6f09634dba641c1e3c519dd38f25a4cbbbc4b49887aac12adae7d0085b50cf3b3f4a38319367e62d192edf98c4eb4dd15d8f34283c6da0bf6fad423011a968f94ec44732e292b62d96739162a6e813ccf978639fba8929698002551f1e834c4b350044ff44693ef6a028eb224999b127b800248d085c3609b84a821a82591d16c0860bbc3ee853dd815fdf5c8695299af6bc979e8902daa96ba75f87435c97ce7e5dc2cf5b0638f5efcc2349d464ff60594fab1ff03ba5e90415a813693905e20a3f07caa5731a7b69bb9b7028f493ba65825826709aec686496a0cbfb2ec9224838278a7ff0068712eeef0a1788847cea1732a1fbf48ecf6628b809e9b8cdf85683b2f0957a3e3a78911a08a4c8528dbea43e7d2c26af405832ce6d0199efddd208eb077d99af735ffda60f4caf7cc9e5c6d96f77d354c262c7f6ab36dc57c841dc5695ca3eb6430da473830a966ac9c730577588f384edf35e00c77bfc4adf70cbf039f75a8f524a72a6c3d91b9c0f7ecc18bc97cd9e86cc4b077f28f5c81469cd3cddc1273146b819fb1345f83e2e389d4d82d67f8145230365ca68f517896121a4c335fec698a6998c90aa1d120ab54715ef1935924d298b2541a4b815969b20a657aa0289a4ee98b2584cf9485dff02ee1c823c1878a11a3276ae719a9b44b31e607f3ba82cb3f89a36ea64c82343e108ca357f461721e6512ef823d15a6f50bcab489962344bc5fb7b6d32aa7e177530ad7d2ced8d4fb4eee07bf6b9137d62f1ff1e8d196145b805d037d4d922d97d315ea37b6db5d78786dd651d520fcfcd83d35c61c9459dd1abdec5c7fdfda068f9fcb6a0d8697a5ec1968a2364de2c87979af280dd6a113900b6d71a1c667f8f9163fdaaec41e12e234cce2a22c06d03f96d3eb95f40c8b2aa886cb0f27b9ae33b3feac414cb00f184b64f684e91e1c672020e849013f13abf3ca9dbe10b12fc68f61b76ff48e4823e699699bca18ef394110110671bd336ca7013b0b694a1dc5198958a6f33469f2153aa9855809b2ce9d40cb9a1abe3fbb5f29be6a16c7bbd0fea398b214429109f11db96d2757f3afa6a4291386840923640d89da6ef249270a5e779b5b37d301156018bc64eb3ea49368802dfb372f7bb208642186609c7ba264f7e0eff71cee5fa7e04cddbf5b4269d11a9ec8d7ada95dc65fa1cb262ea0902980e7ad0cbffabfc50bee60d83368864698f64787b7f62084d847bad84c1882b45dc13af9ac33fe7f185d699cf902f01bbf20f3a7be7bd4f489e87b0ce4e50ee0ac7d1eaa2410d8b3fdf00d2ec2005d654e239d4148055bd3f071a6f121a2a38c6bad34b0183ba826e7363c74aef4a5f460cfb890c152524d0c3a50e44029c2dd323e08c989bca6f86951389626c4e05ee5dedb141ed465bc8e2abe8a7b05a3627ba30acbf79d12ece568d61ddb836c1d581f3de127a9888471546c8ae5e9ad7dc7d1e5ab477b735931b7091bfdaa69b0ab8976e2861bc178108a40e726225d79bdd4643873a251c87d8146bd45b4fe97573a4946b51632d55aa8d4c24bdbc3ed8e6bafc39a503aa25dece834467b3485adfbec2fbe7ae2d6385fb2adef081595f7b67c887acd14f1a97fd493f1363b5cdcbecdfa69ccfb02c03a7b0795560a69911a2de0e8f6efa29db0e4103763930835266abfcfcbf338040a8ef38b0401a4a98690cacaffad195bda13de62185788c2043a2900844497cc3706d5d13f700052d16d71d74be385f9a6af2ecff497e21c518fa61473b9f0dc36da3d322f24b6119dc6c5e1d93fb83fec7ffe91fd32d230342d2bf4f80765fd3c0acbd85043867c4a14caa2ff20da4d731eb102c24bc9c6012966467f790585f0fcf4f9b60bdb2f7334db4fae55808c999f072ae4e995ad4bc078e4206954758f2dcde2072f76a5958ba63c3a49868eb3fef5a49e042d07180979ba79d732b2675c702aef3041d3a6699ab2d1a6dc76d4b0044536329a40bee29021899f2eb024ee29b96df86fb6cbc129539e1fb964b56c2d14e08b9a793c59d43c5839fc977bfe938ba2b512a76fe450efe166d9daa5ac670c875daa626e664381a6670d1671d439f763cb4221c7e89f298e04590fbc315e214cdd96e50c6ce5972c9aa649dd6ecfa32e454e81880794074572469d5a44cfac07998616815f2a1d2397ff5d7b4c10d24f250e0edd05ef3c462251c81103af606705eba22a7a4f5129840872309bb7e2bfec94ca8ee00fb41407e3d80fef6f03da8499a86d2ab5ce65ec6b745a02a072ed0907ca728c2cb16d050393bcecf72706608038ccbac194ab4ba306cc2fe44e7a69e713f8556cf29660cd20c7912138bfeb4fb3e42eaf740a8c4592e2a79601f7e6432f297f6856a04f38c05db3f9de1a23170315257f38ca0cc2c1c1961a851afb342aa7263d34231e3279e3790c6b46e6b60137ce361a9b7f9cd3bcd06fc2512c4ca4fb1b498f88f3ad0a45eb9f7f281e4d2f8a8dc7f003bb6945685fefb80b738e94ea4ac18ed149a7162fae53bd658fc29ae467865509f9daf3cdfdcdf489bec5edc5a8abcbfc43c032cd10a4dd010225ea88e2625b19a2c019cd5caf883ee2bd8f1de21b2a884a8d6ebf4a156b8b600c98670401e23d34c6bcab2cf9f81193de2aa5a8e49744cbc0e5980e64cabdd4919831b4a532b01722f54c20b4a5481a62cb9ee7adbf01f1137e9d4ac33bb775345a8a465e9026c80ffa25ea68f067076dfc5a338eb3cc5c2187bc3028b3f45bebd26be52734a8d71d0dce4f28bac2bfb43390b793316b731580498ee651869099d40045135d94656a6dc0455e778535bc2a40d232fe14a5e6f5eb056731dc70cae835372ef463430a15a991b287500c5241d40997b8bc9ba99b4c7d87b1b18492f02a6cd769a87c1f1475a3de27fc549f030dd2956e3bf01d6fef9e63f5ea844e1edb3699df080aaa3e44c9664948a27fae173c4442e37cc31a992764121d3329e30297a9412e0c8216d15eb836c26a9bc3a3b7c7d9b09dd20a3a1e2c9588d7a2736f8e05a3f98d2d37d868a9a88050988a4c8f8d3d17d9d92c269bbb42709c083c6b30bdbfcf94e8b5f932f4ab8272bd81c3714381d8c3a968bff5c6cfbac90852d1e54df7cae73a92a0adf97f698fcef7c861053cf02be42ea4f02415c3a5a8326b70a6eeb9afbf17d728fe1f6cb5774574d68f4ec6c511e11a4657bb7313dee5df1afa4eaf0e6dd009f30c24ac1bb10d52701a056578c5e0e82a1dd4cef83a143a8aac3cf9bf1639d3d7b1fbc5268f9a313f14140b5ab458b8faa95f242850795129295aac8160c85e38b2431da00a6800d836e36982a9a378e4354e00fdb50ed0ebbbd17764eee2fe1e0fd4495bf7b53819993891c8f68d510e2566b0f87bb88734d83adc531352f494fb99520eb72d06d908922e5d2b9ae6527f81c6cac254851a3bd733066d69e45c13d76376427bdd4ac92d5cbe41013e09d6b0b84ac2a6e41c81a3994cd929175774877198af8a3263beb51c5c1479ef80f6f1b0aab54118249b7111b8c49186bd0c7af66f5a0d865b1e10c26d19aabf546c979444e96ef3d506562f57d06b4ff55b8345a9c76b4172b0e25089afb7b9bce3e52798b6e7102230407d87b4ccecfa7999d5d7ea6a8ea7d6d900000000000000000000000000000000000000040c101a1f24", + "result": "invalid", + "flags": [ + "ModifiedSignature" + ] + }, + { + "tcId": 7, + "comment": "signature with a bit flip in z[2]", + "msg": "48656c6c6f20776f726c64", + "sig": "6589e14a5fb859884747dfd23755c73b7c934678879769eedc8b0b9ef592eb521f597b6f02978bc8f2c652267412078b39b728d6b026ad3770a26f4ee4ce6a0330828352e5258fc136de7b62a425c24c6d03e05fea6fa88ba5daf9fef26e8a761e59af74c6583fa2cd70815e97bc2f7fbe63f4c9048877ad637d6eb4f6ae89d2c7c927cdbeaf31f46c6f3f3988f890c53326be3e124d0712a3142eec3a341709d711457126f1f6c0029c3fed6aaea45a323e5df23de97e1584160c26219b64de00382a41f5ad633e7617e4724c0024d38ed1028ca117656af0b15febe5368ce38892a63adef0e93d13e98e03d4a7f85dbbdf9a36c072381929b566659576cd87d5f7c577eacc7c267218c95050d06668296ace945bf61c49e8fd82d6de18fe2e724f964f022292e4d4cfb8c7dcc3d28f1846e71830f2eb7fb64a8171b1fb8e1b3cb501e3da0f855e502f81c90e90657a239af07cbe2c7a66815952e6a83d26a600e36f6207f90741576101736bfcee82de016ae9380de38c1150a8469ce7613e360bf223b7653774cb2f81992d629cd0a39c9870b9542c72e38c4dcf10a798fb0b8b122f45dbdf311fb278e6e43a6efb95508e9926ac9b3576f9476f78e509586653a57303b06a75ced648332f87fcbe59f7bebf1f20424d4f30e06f4641b32638da7dea7f21cc4826b6f9991fd92dc6ace1e3e33d7bbd2daf35f4b8e4d984e773793abb06439ef71041d0ff74ce992b2ebfd0bf3b94574baedb529a654bd5a522d7ac80fb5d80d848ffd0d9d3c323c101b998beece494f6c27718ef1557bb90f0d6778ad3b8b48f4bdf641b60cf3839a8cb982493885a774ae75225657014a11fe03a4695118a6fbe3df1dd1454b1b075707f1c79ffe586f173bbbbea4a96ea21c99ed68974e4b711fca1b4974fbcb062bf0ac75f290f32c785f7c4f2106c58aca146a926ae912e7c0d95dbcd93d8435d08a984d9dc6d3a8ad6e6f09634dba641c1e3c519dd38f25a4cbbbc4b49887aac12adae7d0085b50cf3b3f4a38319367e62d192edf98c4eb4dd15d8f34283c6da0bf6fad423011a968f94ec44732e292b62d96739162a6e813ccf978639fba8929698002551f1e834c4b350044ff44693ef6a028eb224999b127b800248d085c3609b84a821a82591d16c0860bbc3ee853dd815fdf5c8695299af6bc979e8902daa96ba75f87435c97ce7e5dc2cf5b0638f5efcc2349d464ff60594fab1ff03ba5e90415a813693905e20a3f07caa5731a7b69bb9b7028f493ba65825826709aec686496a0cbfb2ec9224838278a7ff0068712eeef0a1788847cea1732a1fbf48ecf6628b809e9b8cdf85683b2f0957a3e3a78911a08a4c8528dbea43e7d2c26af405832ce6d0199efddd208eb077d99af735ffda60f4caf7cc9e5c6d96f77d354c262c7f6ab36dc57c841dc5695ca3eb6430da473830a966ac9c730577588f384edf35e00c77bfc4adf70cbf039f75a8f524a72a6c3d91b9c0f7ecc18bc97cd9e86cc4b077f28f5c81469cd3cddc1273146b819fb1345f83e2e389d4d82d67f8145230365ca68f517896121a4c335fec698a6998c90aa1d120ab54715ef1935924d298b2541a4b815969b20a657aa0289a4ee98b2584cf9485dff02ee1c823c1878a11a3276ae719a9b44b31e607f3ba82cb3f89a36ea64c82343e108ca357f461721e6512ef823d15a6f50bcab489962344bc5fb7b6d32aa7e177530ad7d2ced8d4fb4eee07bf6b9137d62f1ff1e8d196145b805d037d4d922d97d315ea37b6db5d78786dd651d520fcfcd83d35c61c9459dd1abdec5c7fdfda068f9fcb6a0d8697a5ec1968a2364de2c87979af280dd6a113900b6d71a1c667f8f9163fdaafc41e12e234cce2a22c06d03f96d3eb95f40c8b2aa886cb0f27b9ae33b3feac414cb00f184b64f684e91e1c672020e849013f13abf3ca9dbe10b12fc68f61b76ff48e4823e699699bca18ef394110110671bd336ca7013b0b694a1dc5198958a6f33469f2153aa9855809b2ce9d40cb9a1abe3fbb5f29be6a16c7bbd0fea398b214429109f11db96d2757f3afa6a4291386840923640d89da6ef249270a5e779b5b37d301156018bc64eb3ea49368802dfb372f7bb208642186609c7ba264f7e0eff71cee5fa7e04cddbf5b4269d11a9ec8d7ada95dc65fa1cb262ea0902980e7ad0cbffabfc50bee60d83368864698f64787b7f62084d847bad84c1882b45dc13af9ac33fe7f185d699cf902f01bbf20f3a7be7bd4f489e87b0ce4e50ee0ac7d1eaa2410d8b3fdf00d2ec2005d654e239d4148055bd3f071a6f121a2a38c6bad34b0183ba826e7363c74aef4a5f460cfb890c152524d0c3a50e44029c2dd323e08c989bca6f86951389626c4e05ee5dedb141ed465bc8e2abe8a7b05a3627ba30acbf79d12ece568d61ddb836c1d581f3de127a9888471546c8ae5e9ad7dc7d1e5ab477b735931b7091bfdaa69b0ab8976e2861bc178108a40e726225d79bdd4643873a251c87d8146bd45b4fe97573a4946b51632d55aa8d4c24bdbc3ed8e6bafc39a503aa25dece834467b3485adfbec2fbe7ae2d6385fb2adef081595f7b67c887acd14f1a97fd493f1363b5cdcbecdfa69ccfb02c03a7b0795560a69911a2de0e8f6efa29db0e4103763930835266abfcfcbf338040a8ef38b0401a4a98690cacaffad195bda13de62185788c2043a2900844497cc3706d5d13f700052d16d71d74be385f9a6af2ecff497e21c518fa61473b9f0dc36da3d322f24b6119dc6c5e1d93fb83fec7ffe91fd32d230342d2bf4f80765fd3c0acbd85043867c4a14caa2ff20da4d731eb102c24bc9c6012966467f790585f0fcf4f9b60bdb2f7334db4fae55808c999f072ae4e995ad4bc078e4206954758f2dcde2072f76a5958ba63c3a49868eb3fef5a49e042d07180979ba79d732b2675c702aef3041d3a6699ab2d1a6dc76d4b0044536329a40bee29021899f2eb024ee29b96df86fb6cbc129539e1fb964b56c2d14e08b9a793c59d43c5839fc977bfe938ba2b512a76fe450efe166d9daa5ac670c875daa626e664381a6670d1671d439f763cb4221c7e89f298e04590fbc315e214cdd96e50c6ce5972c9aa649dd6ecfa32e454e81880794074572469d5a44cfac07998616815f2a1d2397ff5d7b4c10d24f250e0edd05ef3c462251c81103af606705eba22a7a4f5129840872309bb7e2bfec94ca8ee00fb41407e3d80fef6f03da8499a86d2ab5ce65ec6b745a02a072ed0907ca728c2cb16d050393bcecf72706608038ccbac194ab4ba306cc2fe44e7a69e713f8556cf29660cd20c7912138bfeb4fb3e42eaf740a8c4592e2a79601f7e6432f297f6856a04f38c05db3f9de1a23170315257f38ca0cc2c1c1961a851afb342aa7263d34231e3279e3790c6b46e6b60137ce361a9b7f9cd3bcd06fc2512c4ca4fb1b498f88f3ad0a45eb9f7f281e4d2f8a8dc7f003bb6945685fefb80b738e94ea4ac18ed149a7162fae53bd658fc29ae467865509f9daf3cdfdcdf489bec5edc5a8abcbfc43c032cd10a4dd010225ea88e2625b19a2c019cd5caf883ee2bd8f1de21b2a884a8d6ebf4a156b8b600c98670401e23d34c6bcab2cf9f81193de2aa5a8e49744cbc0e5980e64cabdd4919831b4a532b01722f54c20b4a5481a62cb9ee7adbf01f1137e9d4ac33bb775345a8a465e9026c80ffa25ea68f067076dfc5a338eb3cc5c2187bc3028b3f45bebd26be52734a8d71d0dce4f28bac2bfb43390b793316b731580498ee651869099d40045135d94656a6dc0455e778535bc2a40d232fe14a5e6f5eb056731dc70cae835372ef463430a15a991b287500c5241d40997b8bc9ba99b4c7d87b1b18492f02a6cd769a87c1f1475a3de27fc549f030dd2956e3bf01d6fef9e63f5ea844e1edb3699df080aaa3e44c9664948a27fae173c4442e37cc31a992764121d3329e30297a9412e0c8216d15eb836c26a9bc3a3b7c7d9b09dd20a3a1e2c9588d7a2736f8e05a3f98d2d37d868a9a88050988a4c8f8d3d17d9d92c269bbb42709c083c6b30bdbfcf94e8b5f932f4ab8272bd81c3714381d8c3a968bff5c6cfbac90852d1e54df7cae73a92a0adf97f698fcef7c861053cf02be42ea4f02415c3a5a8326b70a6eeb9afbf17d728fe1f6cb5774574d68f4ec6c511e11a4657bb7313dee5df1afa4eaf0e6dd009f30c24ac1bb10d52701a056578c5e0e82a1dd4cef83a143a8aac3cf9bf1639d3d7b1fbc5268f9a313f14140b5ab458b8faa95f242850795129295aac8160c85e38b2431da00a6800d836e36982a9a378e4354e00fdb50ed0ebbbd17764eee2fe1e0fd4495bf7b53819993891c8f68d510e2566b0f87bb88734d83adc531352f494fb99520eb72d06d908922e5d2b9ae6527f81c6cac254851a3bd733066d69e45c13d76376427bdd4ac92d5cbe41013e09d6b0b84ac2a6e41c81a3994cd929175774877198af8a3263beb51c5c1479ef80f6f1b0aab54118249b7111b8c49186bd0c7af66f5a0d865b1e10c26d19aabf546c979444e96ef3d506562f57d06b4ff55b8345a9c76b4172b0e25089afb7b9bce3e52798b6e7102230407d87b4ccecfa7999d5d7ea6a8ea7d6d900000000000000000000000000000000000000040c101a1f24", + "result": "invalid", + "flags": [ + "ModifiedSignature" + ] + }, + { + "tcId": 8, + "comment": "signature with a bit flip in z[3]", + "msg": "48656c6c6f20776f726c64", + "sig": "6589e14a5fb859884747dfd23755c73b7c934678879769eedc8b0b9ef592eb521f597b6f02978bc8f2c652267412078b39b728d6b026ad3770a26f4ee4ce6a0330828352e5258fc136de7b62a425c24c6d03e05fea6fa88ba5daf9fef26e8a761e59af74c6583fa2cd70815e97bc2f7fbe63f4c9048877ad637d6eb4f6ae89d2c7c927cdbeaf31f46c6f3f3988f890c53326be3e124d0712a3142eec3a341709d711457126f1f6c0029c3fed6aaea45a323e5df23de97e1584160c26219b64de00382a41f5ad633e7617e4724c0024d38ed1028ca117656af0b15febe5368ce38892a63adef0e93d13e98e03d4a7f85dbbdf9a36c072381929b566659576cd87d5f7c577eacc7c267218c95050d06668296ace945bf61c49e8fd82d6de18fe2e724f964f022292e4d4cfb8c7dcc3d28f1846e71830f2eb7fb64a8171b1fb8e1b3cb501e3da0f855e502f81c90e90657a239af07cbe2c7a66815952e6a83d26a600e36f6207f90741576101736bfcee82de016ae9380de38c1150a8469ce7613e360bf223b7653774cb2f81992d629cd0a39c9870b9542c72e38c4dcf10a798fb0b8b122f45dbdf311fb278e6e43a6efb95508e9926ac9b3576f9476f78e509586653a57303b06a75ced648332f87fcbe59f7bebf1f20424d4f30e06f4641b32638da7dea7f21cc4826b6f9991fd92dc6ace1e3e33d7bbd2daf35f4b8e4d984e773793abb06439ef71041d0ff74ce992b2ebfd0bf3b94574baedb529a654bd5a522d7ac80fb5d80d848ffd0d9d3c323c101b998beece494f6c27718ef1557bb90f0d6778ad3b8b48f4bdf641b60cf3839a8cb982493885a774ae75225657014a11fe03a4695118a6fbe3df1dd1454b1b075707f1c79ffe586f173bbbbea4a96ea21c99ed68974e4b711fca1b4974fbcb062bf0ac75f290f32c785f7c4f2106c58aca146a926ae912e7c0d95dbcd93d8435d08a984d9dc6d3a8ad6e6f09634dba641c1e3c519dd38f25a4cbbbc4b49887aac12adae7d0085b50cf3b3f4a38319367e62d192edf98c4eb4dd15d8f34283c6da0bf6fad423011a968f94ec44732e292b62d96739162a6e813ccf978639fba8929698002551f1e834c4b350044ff44693ef6a028eb224999b127b800248d085c3609b84a821a82591d16c0860bbc3ee853dd815fdf5c8695299af6bc979e8902daa96ba75f87435c97ce7e5dc2cf5b0638f5efcc2349d464ff60594fab1ff03ba5e90415a813693905e20a3f07caa5731a7b69bb9b7028f493ba65825826709aec686496a0cbfb2ec9224838278a7ff0068712eeef0a1788847cea1732a1fbf48ecf6628b809e9b8cdf85683b2f0957a3e3a78911a08a4c8528dbea43e7d2c26af405832ce6d0199efddd208eb077d99af735ffda60f4caf7cc9e5c6d96f77d354c262c7f6ab36dc57c841dc5695ca3eb6430da473830a966ac9c730577588f384edf35e00c77bfc4adf70cbf039f75a8f524a72a6c3d91b9c0f7ecc18bc97cd9e86cc4b077f28f5c81469cd3cddc1273146b819fb1345f83e2e389d4d82d67f8145230365ca68f517896121a4c335fec698a6998c90aa1d120ab54715ef1935924d298b2541a4b815969b20a657aa0289a4ee98b2584cf9485dff02ee1c823c1878a11a3276ae719a9b44b31e607f3ba82cb3f89a36ea64c82343e108ca357f461721e6512ef823d15a6f50bcab489962344bc5fb7b6d32aa7e177530ad7d2ced8d4fb4eee07bf6b9137d62f1ff1e8d196145b805d037d4d922d97d315ea37b6db5d78786dd651d520fcfcd83d35c61c9459dd1abdec5c7fdfda068f9fcb6a0d8697a5ec1968a2364de2c87979af280dd6a113900b6d71a1c667f8f9163fdaaec41e12e234cce2a22c06d03f96d3eb95f40c8b2aa886cb0f27b9ae33b3feac414cb00f184b64f684e91e1c672020e849013f13abf3ca9dbe10b12fc68f61b76ff48e4823e699699bca18ef394110110671bd336ca7013b0b694a1dc5198958a6f33469f2153aa9855809b2ce9d40cb9a1abe3fbb5f29be6a16c7bbd0fea398b214429109f11db96d2757f3afa6a4291386840923640d89da6ef249270a5e779b5b37d301156018bc64eb3ea49368802dfb372f7bb208642186609c7ba264f7e0eff71cee5fa7e04cddbf5b4269d11a9ec8d7ada95dc65fa1cb262ea0902980e7ad0cbffabfc50bee60d83368864698f64787b7f62084d847bad84c1882b45dc13af9ac33fe7f185d699cf902f01bbf20f3a7be7bd4f489e87b0ce4e50ee0ac7d1eaa2410d8b3fdf00d2ec2005d654e239d4148055bd3f071a6f121a2a38c6bad34b0183ba826e7363c74aef4a5f460cfb890c152524d0c3a50e44029c2dd323e08c989bca6f86951389626c4e05ee5dedb141ed465bc8e2abe8a7b05a3627ba30acbf79d12ece568d61ddb836c1d581f3de127a9888471546c8ae5e9ad7dc7d1e5ab477b735931b7091bfdaa69b0ab8976e2861bc178108a40e726225d79bdd4643873a251c87d8146bd45b4fe97573a4946b51632d55aa8d4c24bdbc3ed8e6bafc39a503aa25dece834467b3485adfbec2fbe7ae2d6385fb2adef081595f7b67c887acd14f1a97fd493f1363b5cdcbecdfa69ccfb02c03a7b0795560a69911a2de0e8f6efa29db0e4103763930835266abfcfcbf338040a8ef38b0401a4a98690cacaffad195bda13de62185788c2043a2900844497cc3706d5d13f700052d16d71d74be385f9a6af2ecff497e21c518fa61473b9f0dc36da3d322f24b6119cc6c5e1d93fb83fec7ffe91fd32d230342d2bf4f80765fd3c0acbd85043867c4a14caa2ff20da4d731eb102c24bc9c6012966467f790585f0fcf4f9b60bdb2f7334db4fae55808c999f072ae4e995ad4bc078e4206954758f2dcde2072f76a5958ba63c3a49868eb3fef5a49e042d07180979ba79d732b2675c702aef3041d3a6699ab2d1a6dc76d4b0044536329a40bee29021899f2eb024ee29b96df86fb6cbc129539e1fb964b56c2d14e08b9a793c59d43c5839fc977bfe938ba2b512a76fe450efe166d9daa5ac670c875daa626e664381a6670d1671d439f763cb4221c7e89f298e04590fbc315e214cdd96e50c6ce5972c9aa649dd6ecfa32e454e81880794074572469d5a44cfac07998616815f2a1d2397ff5d7b4c10d24f250e0edd05ef3c462251c81103af606705eba22a7a4f5129840872309bb7e2bfec94ca8ee00fb41407e3d80fef6f03da8499a86d2ab5ce65ec6b745a02a072ed0907ca728c2cb16d050393bcecf72706608038ccbac194ab4ba306cc2fe44e7a69e713f8556cf29660cd20c7912138bfeb4fb3e42eaf740a8c4592e2a79601f7e6432f297f6856a04f38c05db3f9de1a23170315257f38ca0cc2c1c1961a851afb342aa7263d34231e3279e3790c6b46e6b60137ce361a9b7f9cd3bcd06fc2512c4ca4fb1b498f88f3ad0a45eb9f7f281e4d2f8a8dc7f003bb6945685fefb80b738e94ea4ac18ed149a7162fae53bd658fc29ae467865509f9daf3cdfdcdf489bec5edc5a8abcbfc43c032cd10a4dd010225ea88e2625b19a2c019cd5caf883ee2bd8f1de21b2a884a8d6ebf4a156b8b600c98670401e23d34c6bcab2cf9f81193de2aa5a8e49744cbc0e5980e64cabdd4919831b4a532b01722f54c20b4a5481a62cb9ee7adbf01f1137e9d4ac33bb775345a8a465e9026c80ffa25ea68f067076dfc5a338eb3cc5c2187bc3028b3f45bebd26be52734a8d71d0dce4f28bac2bfb43390b793316b731580498ee651869099d40045135d94656a6dc0455e778535bc2a40d232fe14a5e6f5eb056731dc70cae835372ef463430a15a991b287500c5241d40997b8bc9ba99b4c7d87b1b18492f02a6cd769a87c1f1475a3de27fc549f030dd2956e3bf01d6fef9e63f5ea844e1edb3699df080aaa3e44c9664948a27fae173c4442e37cc31a992764121d3329e30297a9412e0c8216d15eb836c26a9bc3a3b7c7d9b09dd20a3a1e2c9588d7a2736f8e05a3f98d2d37d868a9a88050988a4c8f8d3d17d9d92c269bbb42709c083c6b30bdbfcf94e8b5f932f4ab8272bd81c3714381d8c3a968bff5c6cfbac90852d1e54df7cae73a92a0adf97f698fcef7c861053cf02be42ea4f02415c3a5a8326b70a6eeb9afbf17d728fe1f6cb5774574d68f4ec6c511e11a4657bb7313dee5df1afa4eaf0e6dd009f30c24ac1bb10d52701a056578c5e0e82a1dd4cef83a143a8aac3cf9bf1639d3d7b1fbc5268f9a313f14140b5ab458b8faa95f242850795129295aac8160c85e38b2431da00a6800d836e36982a9a378e4354e00fdb50ed0ebbbd17764eee2fe1e0fd4495bf7b53819993891c8f68d510e2566b0f87bb88734d83adc531352f494fb99520eb72d06d908922e5d2b9ae6527f81c6cac254851a3bd733066d69e45c13d76376427bdd4ac92d5cbe41013e09d6b0b84ac2a6e41c81a3994cd929175774877198af8a3263beb51c5c1479ef80f6f1b0aab54118249b7111b8c49186bd0c7af66f5a0d865b1e10c26d19aabf546c979444e96ef3d506562f57d06b4ff55b8345a9c76b4172b0e25089afb7b9bce3e52798b6e7102230407d87b4ccecfa7999d5d7ea6a8ea7d6d900000000000000000000000000000000000000040c101a1f24", + "result": "invalid", + "flags": [ + "ModifiedSignature" + ] + }, + { + "tcId": 9, + "comment": "signature with a bit flip in z[4]", + "msg": "48656c6c6f20776f726c64", + "sig": "6589e14a5fb859884747dfd23755c73b7c934678879769eedc8b0b9ef592eb521f597b6f02978bc8f2c652267412078b39b728d6b026ad3770a26f4ee4ce6a0330828352e5258fc136de7b62a425c24c6d03e05fea6fa88ba5daf9fef26e8a761e59af74c6583fa2cd70815e97bc2f7fbe63f4c9048877ad637d6eb4f6ae89d2c7c927cdbeaf31f46c6f3f3988f890c53326be3e124d0712a3142eec3a341709d711457126f1f6c0029c3fed6aaea45a323e5df23de97e1584160c26219b64de00382a41f5ad633e7617e4724c0024d38ed1028ca117656af0b15febe5368ce38892a63adef0e93d13e98e03d4a7f85dbbdf9a36c072381929b566659576cd87d5f7c577eacc7c267218c95050d06668296ace945bf61c49e8fd82d6de18fe2e724f964f022292e4d4cfb8c7dcc3d28f1846e71830f2eb7fb64a8171b1fb8e1b3cb501e3da0f855e502f81c90e90657a239af07cbe2c7a66815952e6a83d26a600e36f6207f90741576101736bfcee82de016ae9380de38c1150a8469ce7613e360bf223b7653774cb2f81992d629cd0a39c9870b9542c72e38c4dcf10a798fb0b8b122f45dbdf311fb278e6e43a6efb95508e9926ac9b3576f9476f78e509586653a57303b06a75ced648332f87fcbe59f7bebf1f20424d4f30e06f4641b32638da7dea7f21cc4826b6f9991fd92dc6ace1e3e33d7bbd2daf35f4b8e4d984e773793abb06439ef71041d0ff74ce992b2ebfd0bf3b94574baedb529a654bd5a522d7ac80fb5d80d848ffd0d9d3c323c101b998beece494f6c27718ef1557bb90f0d6778ad3b8b48f4bdf641b60cf3839a8cb982493885a774ae75225657014a11fe03a4695118a6fbe3df1dd1454b1b075707f1c79ffe586f173bbbbea4a96ea21c99ed68974e4b711fca1b4974fbcb062bf0ac75f290f32c785f7c4f2106c58aca146a926ae912e7c0d95dbcd93d8435d08a984d9dc6d3a8ad6e6f09634dba641c1e3c519dd38f25a4cbbbc4b49887aac12adae7d0085b50cf3b3f4a38319367e62d192edf98c4eb4dd15d8f34283c6da0bf6fad423011a968f94ec44732e292b62d96739162a6e813ccf978639fba8929698002551f1e834c4b350044ff44693ef6a028eb224999b127b800248d085c3609b84a821a82591d16c0860bbc3ee853dd815fdf5c8695299af6bc979e8902daa96ba75f87435c97ce7e5dc2cf5b0638f5efcc2349d464ff60594fab1ff03ba5e90415a813693905e20a3f07caa5731a7b69bb9b7028f493ba65825826709aec686496a0cbfb2ec9224838278a7ff0068712eeef0a1788847cea1732a1fbf48ecf6628b809e9b8cdf85683b2f0957a3e3a78911a08a4c8528dbea43e7d2c26af405832ce6d0199efddd208eb077d99af735ffda60f4caf7cc9e5c6d96f77d354c262c7f6ab36dc57c841dc5695ca3eb6430da473830a966ac9c730577588f384edf35e00c77bfc4adf70cbf039f75a8f524a72a6c3d91b9c0f7ecc18bc97cd9e86cc4b077f28f5c81469cd3cddc1273146b819fb1345f83e2e389d4d82d67f8145230365ca68f517896121a4c335fec698a6998c90aa1d120ab54715ef1935924d298b2541a4b815969b20a657aa0289a4ee98b2584cf9485dff02ee1c823c1878a11a3276ae719a9b44b31e607f3ba82cb3f89a36ea64c82343e108ca357f461721e6512ef823d15a6f50bcab489962344bc5fb7b6d32aa7e177530ad7d2ced8d4fb4eee07bf6b9137d62f1ff1e8d196145b805d037d4d922d97d315ea37b6db5d78786dd651d520fcfcd83d35c61c9459dd1abdec5c7fdfda068f9fcb6a0d8697a5ec1968a2364de2c87979af280dd6a113900b6d71a1c667f8f9163fdaaec41e12e234cce2a22c06d03f96d3eb95f40c8b2aa886cb0f27b9ae33b3feac414cb00f184b64f684e91e1c672020e849013f13abf3ca9dbe10b12fc68f61b76ff48e4823e699699bca18ef394110110671bd336ca7013b0b694a1dc5198958a6f33469f2153aa9855809b2ce9d40cb9a1abe3fbb5f29be6a16c7bbd0fea398b214429109f11db96d2757f3afa6a4291386840923640d89da6ef249270a5e779b5b37d301156018bc64eb3ea49368802dfb372f7bb208642186609c7ba264f7e0eff71cee5fa7e04cddbf5b4269d11a9ec8d7ada95dc65fa1cb262ea0902980e7ad0cbffabfc50bee60d83368864698f64787b7f62084d847bad84c1882b45dc13af9ac33fe7f185d699cf902f01bbf20f3a7be7bd4f489e87b0ce4e50ee0ac7d1eaa2410d8b3fdf00d2ec2005d654e239d4148055bd3f071a6f121a2a38c6bad34b0183ba826e7363c74aef4a5f460cfb890c152524d0c3a50e44029c2dd323e08c989bca6f86951389626c4e05ee5dedb141ed465bc8e2abe8a7b05a3627ba30acbf79d12ece568d61ddb836c1d581f3de127a9888471546c8ae5e9ad7dc7d1e5ab477b735931b7091bfdaa69b0ab8976e2861bc178108a40e726225d79bdd4643873a251c87d8146bd45b4fe97573a4946b51632d55aa8d4c24bdbc3ed8e6bafc39a503aa25dece834467b3485adfbec2fbe7ae2d6385fb2adef081595f7b67c887acd14f1a97fd493f1363b5cdcbecdfa69ccfb02c03a7b0795560a69911a2de0e8f6efa29db0e4103763930835266abfcfcbf338040a8ef38b0401a4a98690cacaffad195bda13de62185788c2043a2900844497cc3706d5d13f700052d16d71d74be385f9a6af2ecff497e21c518fa61473b9f0dc36da3d322f24b6119dc6c5e1d93fb83fec7ffe91fd32d230342d2bf4f80765fd3c0acbd85043867c4a14caa2ff20da4d731eb102c24bc9c6012966467f790585f0fcf4f9b60bdb2f7334db4fae55808c999f072ae4e995ad4bc078e4206954758f2dcde2072f76a5958ba63c3a49868eb3fef5a49e042d07180979ba79d732b2675c702aef3041d3a6699ab2d1a6dc76d4b0044536329a40bee29021899f2eb024ee29b96df86fb6cbc129539e1fb964b56c2d14e08b9a793c59d43c5839fc977bfe938ba2b512a76fe450efe166d9daa5ac670c875daa626e664381a6670d1671d439f763cb4221c7e89f298e04590fbc315e214cdd96e50c6ce5972c9aa649dd6ecfa32e454e81880794074572469d5a44cfac07998616815f2a1d2397ff5d7b4c10d24f250e0edd05ef3c462251c81103af606705eba22a7a4f5129840872309bb7e2bfec94ca8ee00fb41407e3d80fef6f03da8499a86d2ab5ce65ec6b745a02a072ed0907ca728c2cb16d050393bcecf72706608038ccbac194ab4ba306cc2fe44e7a69e713f8556cf29660cd20c7912138bfeb4fb3e42eaf740a8c4592e2a79601f7e6432f297f6856a04f38c05db3f9de1a23170315257f38ca0cc2c1c1961a851afb342aa7263d34231e3279e3790c6b46e6b60137ce361a9b7f9cd3bcd06fc2512c4ca4fb1b498f88f3ad0a45eb9f7f281e4d2f8a8dc7f003bb6945685fefb80b738e94ea4ac18ed149a7162fae53bd658fc29ae467865509f9daf3cdfdcdf489bec5edc5a8abcbfc43c032cd10a4dd010225ea88e2625b19a2c019cd5caf883ee2bd8f1de21b2a884a8d6ebf4a156b8b600c98670401e23d34c6bcab2cf9f81193de2aa5a8e49744cbc0e5980e64cabdd4919831b4a532b01722f54c20b4a5481a62cb9fe7adbf01f1137e9d4ac33bb775345a8a465e9026c80ffa25ea68f067076dfc5a338eb3cc5c2187bc3028b3f45bebd26be52734a8d71d0dce4f28bac2bfb43390b793316b731580498ee651869099d40045135d94656a6dc0455e778535bc2a40d232fe14a5e6f5eb056731dc70cae835372ef463430a15a991b287500c5241d40997b8bc9ba99b4c7d87b1b18492f02a6cd769a87c1f1475a3de27fc549f030dd2956e3bf01d6fef9e63f5ea844e1edb3699df080aaa3e44c9664948a27fae173c4442e37cc31a992764121d3329e30297a9412e0c8216d15eb836c26a9bc3a3b7c7d9b09dd20a3a1e2c9588d7a2736f8e05a3f98d2d37d868a9a88050988a4c8f8d3d17d9d92c269bbb42709c083c6b30bdbfcf94e8b5f932f4ab8272bd81c3714381d8c3a968bff5c6cfbac90852d1e54df7cae73a92a0adf97f698fcef7c861053cf02be42ea4f02415c3a5a8326b70a6eeb9afbf17d728fe1f6cb5774574d68f4ec6c511e11a4657bb7313dee5df1afa4eaf0e6dd009f30c24ac1bb10d52701a056578c5e0e82a1dd4cef83a143a8aac3cf9bf1639d3d7b1fbc5268f9a313f14140b5ab458b8faa95f242850795129295aac8160c85e38b2431da00a6800d836e36982a9a378e4354e00fdb50ed0ebbbd17764eee2fe1e0fd4495bf7b53819993891c8f68d510e2566b0f87bb88734d83adc531352f494fb99520eb72d06d908922e5d2b9ae6527f81c6cac254851a3bd733066d69e45c13d76376427bdd4ac92d5cbe41013e09d6b0b84ac2a6e41c81a3994cd929175774877198af8a3263beb51c5c1479ef80f6f1b0aab54118249b7111b8c49186bd0c7af66f5a0d865b1e10c26d19aabf546c979444e96ef3d506562f57d06b4ff55b8345a9c76b4172b0e25089afb7b9bce3e52798b6e7102230407d87b4ccecfa7999d5d7ea6a8ea7d6d900000000000000000000000000000000000000040c101a1f24", + "result": "invalid", + "flags": [ + "ModifiedSignature" + ] + }, + { + "tcId": 10, + "comment": "signature with a bit flip in hints", + "msg": "48656c6c6f20776f726c64", + "sig": "6589e14a5fb859884747dfd23755c73b7c934678879769eedc8b0b9ef592eb521f597b6f02978bc8f2c652267412078b39b728d6b026ad3770a26f4ee4ce6a0330828352e5258fc136de7b62a425c24c6d03e05fea6fa88ba5daf9fef26e8a761e59af74c6583fa2cd70815e97bc2f7fbe63f4c9048877ad637d6eb4f6ae89d2c7c927cdbeaf31f46c6f3f3988f890c53326be3e124d0712a3142eec3a341709d711457126f1f6c0029c3fed6aaea45a323e5df23de97e1584160c26219b64de00382a41f5ad633e7617e4724c0024d38ed1028ca117656af0b15febe5368ce38892a63adef0e93d13e98e03d4a7f85dbbdf9a36c072381929b566659576cd87d5f7c577eacc7c267218c95050d06668296ace945bf61c49e8fd82d6de18fe2e724f964f022292e4d4cfb8c7dcc3d28f1846e71830f2eb7fb64a8171b1fb8e1b3cb501e3da0f855e502f81c90e90657a239af07cbe2c7a66815952e6a83d26a600e36f6207f90741576101736bfcee82de016ae9380de38c1150a8469ce7613e360bf223b7653774cb2f81992d629cd0a39c9870b9542c72e38c4dcf10a798fb0b8b122f45dbdf311fb278e6e43a6efb95508e9926ac9b3576f9476f78e509586653a57303b06a75ced648332f87fcbe59f7bebf1f20424d4f30e06f4641b32638da7dea7f21cc4826b6f9991fd92dc6ace1e3e33d7bbd2daf35f4b8e4d984e773793abb06439ef71041d0ff74ce992b2ebfd0bf3b94574baedb529a654bd5a522d7ac80fb5d80d848ffd0d9d3c323c101b998beece494f6c27718ef1557bb90f0d6778ad3b8b48f4bdf641b60cf3839a8cb982493885a774ae75225657014a11fe03a4695118a6fbe3df1dd1454b1b075707f1c79ffe586f173bbbbea4a96ea21c99ed68974e4b711fca1b4974fbcb062bf0ac75f290f32c785f7c4f2106c58aca146a926ae912e7c0d95dbcd93d8435d08a984d9dc6d3a8ad6e6f09634dba641c1e3c519dd38f25a4cbbbc4b49887aac12adae7d0085b50cf3b3f4a38319367e62d192edf98c4eb4dd15d8f34283c6da0bf6fad423011a968f94ec44732e292b62d96739162a6e813ccf978639fba8929698002551f1e834c4b350044ff44693ef6a028eb224999b127b800248d085c3609b84a821a82591d16c0860bbc3ee853dd815fdf5c8695299af6bc979e8902daa96ba75f87435c97ce7e5dc2cf5b0638f5efcc2349d464ff60594fab1ff03ba5e90415a813693905e20a3f07caa5731a7b69bb9b7028f493ba65825826709aec686496a0cbfb2ec9224838278a7ff0068712eeef0a1788847cea1732a1fbf48ecf6628b809e9b8cdf85683b2f0957a3e3a78911a08a4c8528dbea43e7d2c26af405832ce6d0199efddd208eb077d99af735ffda60f4caf7cc9e5c6d96f77d354c262c7f6ab36dc57c841dc5695ca3eb6430da473830a966ac9c730577588f384edf35e00c77bfc4adf70cbf039f75a8f524a72a6c3d91b9c0f7ecc18bc97cd9e86cc4b077f28f5c81469cd3cddc1273146b819fb1345f83e2e389d4d82d67f8145230365ca68f517896121a4c335fec698a6998c90aa1d120ab54715ef1935924d298b2541a4b815969b20a657aa0289a4ee98b2584cf9485dff02ee1c823c1878a11a3276ae719a9b44b31e607f3ba82cb3f89a36ea64c82343e108ca357f461721e6512ef823d15a6f50bcab489962344bc5fb7b6d32aa7e177530ad7d2ced8d4fb4eee07bf6b9137d62f1ff1e8d196145b805d037d4d922d97d315ea37b6db5d78786dd651d520fcfcd83d35c61c9459dd1abdec5c7fdfda068f9fcb6a0d8697a5ec1968a2364de2c87979af280dd6a113900b6d71a1c667f8f9163fdaaec41e12e234cce2a22c06d03f96d3eb95f40c8b2aa886cb0f27b9ae33b3feac414cb00f184b64f684e91e1c672020e849013f13abf3ca9dbe10b12fc68f61b76ff48e4823e699699bca18ef394110110671bd336ca7013b0b694a1dc5198958a6f33469f2153aa9855809b2ce9d40cb9a1abe3fbb5f29be6a16c7bbd0fea398b214429109f11db96d2757f3afa6a4291386840923640d89da6ef249270a5e779b5b37d301156018bc64eb3ea49368802dfb372f7bb208642186609c7ba264f7e0eff71cee5fa7e04cddbf5b4269d11a9ec8d7ada95dc65fa1cb262ea0902980e7ad0cbffabfc50bee60d83368864698f64787b7f62084d847bad84c1882b45dc13af9ac33fe7f185d699cf902f01bbf20f3a7be7bd4f489e87b0ce4e50ee0ac7d1eaa2410d8b3fdf00d2ec2005d654e239d4148055bd3f071a6f121a2a38c6bad34b0183ba826e7363c74aef4a5f460cfb890c152524d0c3a50e44029c2dd323e08c989bca6f86951389626c4e05ee5dedb141ed465bc8e2abe8a7b05a3627ba30acbf79d12ece568d61ddb836c1d581f3de127a9888471546c8ae5e9ad7dc7d1e5ab477b735931b7091bfdaa69b0ab8976e2861bc178108a40e726225d79bdd4643873a251c87d8146bd45b4fe97573a4946b51632d55aa8d4c24bdbc3ed8e6bafc39a503aa25dece834467b3485adfbec2fbe7ae2d6385fb2adef081595f7b67c887acd14f1a97fd493f1363b5cdcbecdfa69ccfb02c03a7b0795560a69911a2de0e8f6efa29db0e4103763930835266abfcfcbf338040a8ef38b0401a4a98690cacaffad195bda13de62185788c2043a2900844497cc3706d5d13f700052d16d71d74be385f9a6af2ecff497e21c518fa61473b9f0dc36da3d322f24b6119dc6c5e1d93fb83fec7ffe91fd32d230342d2bf4f80765fd3c0acbd85043867c4a14caa2ff20da4d731eb102c24bc9c6012966467f790585f0fcf4f9b60bdb2f7334db4fae55808c999f072ae4e995ad4bc078e4206954758f2dcde2072f76a5958ba63c3a49868eb3fef5a49e042d07180979ba79d732b2675c702aef3041d3a6699ab2d1a6dc76d4b0044536329a40bee29021899f2eb024ee29b96df86fb6cbc129539e1fb964b56c2d14e08b9a793c59d43c5839fc977bfe938ba2b512a76fe450efe166d9daa5ac670c875daa626e664381a6670d1671d439f763cb4221c7e89f298e04590fbc315e214cdd96e50c6ce5972c9aa649dd6ecfa32e454e81880794074572469d5a44cfac07998616815f2a1d2397ff5d7b4c10d24f250e0edd05ef3c462251c81103af606705eba22a7a4f5129840872309bb7e2bfec94ca8ee00fb41407e3d80fef6f03da8499a86d2ab5ce65ec6b745a02a072ed0907ca728c2cb16d050393bcecf72706608038ccbac194ab4ba306cc2fe44e7a69e713f8556cf29660cd20c7912138bfeb4fb3e42eaf740a8c4592e2a79601f7e6432f297f6856a04f38c05db3f9de1a23170315257f38ca0cc2c1c1961a851afb342aa7263d34231e3279e3790c6b46e6b60137ce361a9b7f9cd3bcd06fc2512c4ca4fb1b498f88f3ad0a45eb9f7f281e4d2f8a8dc7f003bb6945685fefb80b738e94ea4ac18ed149a7162fae53bd658fc29ae467865509f9daf3cdfdcdf489bec5edc5a8abcbfc43c032cd10a4dd010225ea88e2625b19a2c019cd5caf883ee2bd8f1de21b2a884a8d6ebf4a156b8b600c98670401e23d34c6bcab2cf9f81193de2aa5a8e49744cbc0e5980e64cabdd4919831b4a532b01722f54c20b4a5481a62cb9ee7adbf01f1137e9d4ac33bb775345a8a465e9026c80ffa25ea68f067076dfc5a338eb3cc5c2187bc3028b3f45bebd26be52734a8d71d0dce4f28bac2bfb43390b793316b731580498ee651869099d40045135d94656a6dc0455e778535bc2a40d232fe14a5e6f5eb056731dc70cae835372ef463430a15a991b287500c5241d40997b8bc9ba99b4c7d87b1b18492f02a6cd769a87c1f1475a3de27fc549f030dd2956e3bf01d6fef9e63f5ea844e1edb3699df080aaa3e44c9664948a27fae173c4442e37cc31a992764121d3329e30297a9412e0c8216d15eb836c26a9bc3a3b7c7d9b09dd20a3a1e2c9588d7a2736f8e05a3f98d2d37d868a9a88050988a4c8f8d3d17d9d92c269bbb42709c083c6b30bdbfcf94e8b5f932f4ab8272bd81c3714381d8c3a968bff5c6cfbac90852d1e54df7cae73a92a0adf97f698fcef7c861053cf02be42ea4f02415c3a5a8326b70a6eeb9afbf17d728fe1f6cb5774574d68f4ec6c511e11a4657bb7313dee5df1afa4eaf0e6dd009f30c24ac1bb10d52701a056578c5e0e82a1dd4cef83a143a8aac3cf9bf1639d3d7b1fbc5268f9a313f14140b5ab458b8faa95f242850795129295aac8160c85e38b2431da00a6800d836e36982a9a378e4354e00fdb50ed0ebbbd17764eee2fe1e0fd4495bf7b53819993891c8f68d510e2566b0f87bb88734d83adc531352f494fb99520eb72d06d908922e5d2b9ae6527f81c6cac254851a3bd733066d69e45c13d76376427bdd4ac92d5cbe41013e09d6b0b84ac2a6e41c81a3994cd929175774877198af8a3263beb51c5c1479ef80f6f1b0aab54118249b7111b8c49186bd0c7af66f5a0d865b1e10c26d19aabf546c979444e96ef3d506562f57d06b4ff55b8345a9c76b4072b0e25089afb7b9bce3e52798b6e7102230407d87b4ccecfa7999d5d7ea6a8ea7d6d900000000000000000000000000000000000000040c101a1f24", + "result": "invalid", + "flags": [ + "ModifiedSignature" + ] + }, + { + "tcId": 11, + "comment": "signature with a bit flip in the last byte", + "msg": "48656c6c6f20776f726c64", + "sig": "6589e14a5fb859884747dfd23755c73b7c934678879769eedc8b0b9ef592eb521f597b6f02978bc8f2c652267412078b39b728d6b026ad3770a26f4ee4ce6a0330828352e5258fc136de7b62a425c24c6d03e05fea6fa88ba5daf9fef26e8a761e59af74c6583fa2cd70815e97bc2f7fbe63f4c9048877ad637d6eb4f6ae89d2c7c927cdbeaf31f46c6f3f3988f890c53326be3e124d0712a3142eec3a341709d711457126f1f6c0029c3fed6aaea45a323e5df23de97e1584160c26219b64de00382a41f5ad633e7617e4724c0024d38ed1028ca117656af0b15febe5368ce38892a63adef0e93d13e98e03d4a7f85dbbdf9a36c072381929b566659576cd87d5f7c577eacc7c267218c95050d06668296ace945bf61c49e8fd82d6de18fe2e724f964f022292e4d4cfb8c7dcc3d28f1846e71830f2eb7fb64a8171b1fb8e1b3cb501e3da0f855e502f81c90e90657a239af07cbe2c7a66815952e6a83d26a600e36f6207f90741576101736bfcee82de016ae9380de38c1150a8469ce7613e360bf223b7653774cb2f81992d629cd0a39c9870b9542c72e38c4dcf10a798fb0b8b122f45dbdf311fb278e6e43a6efb95508e9926ac9b3576f9476f78e509586653a57303b06a75ced648332f87fcbe59f7bebf1f20424d4f30e06f4641b32638da7dea7f21cc4826b6f9991fd92dc6ace1e3e33d7bbd2daf35f4b8e4d984e773793abb06439ef71041d0ff74ce992b2ebfd0bf3b94574baedb529a654bd5a522d7ac80fb5d80d848ffd0d9d3c323c101b998beece494f6c27718ef1557bb90f0d6778ad3b8b48f4bdf641b60cf3839a8cb982493885a774ae75225657014a11fe03a4695118a6fbe3df1dd1454b1b075707f1c79ffe586f173bbbbea4a96ea21c99ed68974e4b711fca1b4974fbcb062bf0ac75f290f32c785f7c4f2106c58aca146a926ae912e7c0d95dbcd93d8435d08a984d9dc6d3a8ad6e6f09634dba641c1e3c519dd38f25a4cbbbc4b49887aac12adae7d0085b50cf3b3f4a38319367e62d192edf98c4eb4dd15d8f34283c6da0bf6fad423011a968f94ec44732e292b62d96739162a6e813ccf978639fba8929698002551f1e834c4b350044ff44693ef6a028eb224999b127b800248d085c3609b84a821a82591d16c0860bbc3ee853dd815fdf5c8695299af6bc979e8902daa96ba75f87435c97ce7e5dc2cf5b0638f5efcc2349d464ff60594fab1ff03ba5e90415a813693905e20a3f07caa5731a7b69bb9b7028f493ba65825826709aec686496a0cbfb2ec9224838278a7ff0068712eeef0a1788847cea1732a1fbf48ecf6628b809e9b8cdf85683b2f0957a3e3a78911a08a4c8528dbea43e7d2c26af405832ce6d0199efddd208eb077d99af735ffda60f4caf7cc9e5c6d96f77d354c262c7f6ab36dc57c841dc5695ca3eb6430da473830a966ac9c730577588f384edf35e00c77bfc4adf70cbf039f75a8f524a72a6c3d91b9c0f7ecc18bc97cd9e86cc4b077f28f5c81469cd3cddc1273146b819fb1345f83e2e389d4d82d67f8145230365ca68f517896121a4c335fec698a6998c90aa1d120ab54715ef1935924d298b2541a4b815969b20a657aa0289a4ee98b2584cf9485dff02ee1c823c1878a11a3276ae719a9b44b31e607f3ba82cb3f89a36ea64c82343e108ca357f461721e6512ef823d15a6f50bcab489962344bc5fb7b6d32aa7e177530ad7d2ced8d4fb4eee07bf6b9137d62f1ff1e8d196145b805d037d4d922d97d315ea37b6db5d78786dd651d520fcfcd83d35c61c9459dd1abdec5c7fdfda068f9fcb6a0d8697a5ec1968a2364de2c87979af280dd6a113900b6d71a1c667f8f9163fdaaec41e12e234cce2a22c06d03f96d3eb95f40c8b2aa886cb0f27b9ae33b3feac414cb00f184b64f684e91e1c672020e849013f13abf3ca9dbe10b12fc68f61b76ff48e4823e699699bca18ef394110110671bd336ca7013b0b694a1dc5198958a6f33469f2153aa9855809b2ce9d40cb9a1abe3fbb5f29be6a16c7bbd0fea398b214429109f11db96d2757f3afa6a4291386840923640d89da6ef249270a5e779b5b37d301156018bc64eb3ea49368802dfb372f7bb208642186609c7ba264f7e0eff71cee5fa7e04cddbf5b4269d11a9ec8d7ada95dc65fa1cb262ea0902980e7ad0cbffabfc50bee60d83368864698f64787b7f62084d847bad84c1882b45dc13af9ac33fe7f185d699cf902f01bbf20f3a7be7bd4f489e87b0ce4e50ee0ac7d1eaa2410d8b3fdf00d2ec2005d654e239d4148055bd3f071a6f121a2a38c6bad34b0183ba826e7363c74aef4a5f460cfb890c152524d0c3a50e44029c2dd323e08c989bca6f86951389626c4e05ee5dedb141ed465bc8e2abe8a7b05a3627ba30acbf79d12ece568d61ddb836c1d581f3de127a9888471546c8ae5e9ad7dc7d1e5ab477b735931b7091bfdaa69b0ab8976e2861bc178108a40e726225d79bdd4643873a251c87d8146bd45b4fe97573a4946b51632d55aa8d4c24bdbc3ed8e6bafc39a503aa25dece834467b3485adfbec2fbe7ae2d6385fb2adef081595f7b67c887acd14f1a97fd493f1363b5cdcbecdfa69ccfb02c03a7b0795560a69911a2de0e8f6efa29db0e4103763930835266abfcfcbf338040a8ef38b0401a4a98690cacaffad195bda13de62185788c2043a2900844497cc3706d5d13f700052d16d71d74be385f9a6af2ecff497e21c518fa61473b9f0dc36da3d322f24b6119dc6c5e1d93fb83fec7ffe91fd32d230342d2bf4f80765fd3c0acbd85043867c4a14caa2ff20da4d731eb102c24bc9c6012966467f790585f0fcf4f9b60bdb2f7334db4fae55808c999f072ae4e995ad4bc078e4206954758f2dcde2072f76a5958ba63c3a49868eb3fef5a49e042d07180979ba79d732b2675c702aef3041d3a6699ab2d1a6dc76d4b0044536329a40bee29021899f2eb024ee29b96df86fb6cbc129539e1fb964b56c2d14e08b9a793c59d43c5839fc977bfe938ba2b512a76fe450efe166d9daa5ac670c875daa626e664381a6670d1671d439f763cb4221c7e89f298e04590fbc315e214cdd96e50c6ce5972c9aa649dd6ecfa32e454e81880794074572469d5a44cfac07998616815f2a1d2397ff5d7b4c10d24f250e0edd05ef3c462251c81103af606705eba22a7a4f5129840872309bb7e2bfec94ca8ee00fb41407e3d80fef6f03da8499a86d2ab5ce65ec6b745a02a072ed0907ca728c2cb16d050393bcecf72706608038ccbac194ab4ba306cc2fe44e7a69e713f8556cf29660cd20c7912138bfeb4fb3e42eaf740a8c4592e2a79601f7e6432f297f6856a04f38c05db3f9de1a23170315257f38ca0cc2c1c1961a851afb342aa7263d34231e3279e3790c6b46e6b60137ce361a9b7f9cd3bcd06fc2512c4ca4fb1b498f88f3ad0a45eb9f7f281e4d2f8a8dc7f003bb6945685fefb80b738e94ea4ac18ed149a7162fae53bd658fc29ae467865509f9daf3cdfdcdf489bec5edc5a8abcbfc43c032cd10a4dd010225ea88e2625b19a2c019cd5caf883ee2bd8f1de21b2a884a8d6ebf4a156b8b600c98670401e23d34c6bcab2cf9f81193de2aa5a8e49744cbc0e5980e64cabdd4919831b4a532b01722f54c20b4a5481a62cb9ee7adbf01f1137e9d4ac33bb775345a8a465e9026c80ffa25ea68f067076dfc5a338eb3cc5c2187bc3028b3f45bebd26be52734a8d71d0dce4f28bac2bfb43390b793316b731580498ee651869099d40045135d94656a6dc0455e778535bc2a40d232fe14a5e6f5eb056731dc70cae835372ef463430a15a991b287500c5241d40997b8bc9ba99b4c7d87b1b18492f02a6cd769a87c1f1475a3de27fc549f030dd2956e3bf01d6fef9e63f5ea844e1edb3699df080aaa3e44c9664948a27fae173c4442e37cc31a992764121d3329e30297a9412e0c8216d15eb836c26a9bc3a3b7c7d9b09dd20a3a1e2c9588d7a2736f8e05a3f98d2d37d868a9a88050988a4c8f8d3d17d9d92c269bbb42709c083c6b30bdbfcf94e8b5f932f4ab8272bd81c3714381d8c3a968bff5c6cfbac90852d1e54df7cae73a92a0adf97f698fcef7c861053cf02be42ea4f02415c3a5a8326b70a6eeb9afbf17d728fe1f6cb5774574d68f4ec6c511e11a4657bb7313dee5df1afa4eaf0e6dd009f30c24ac1bb10d52701a056578c5e0e82a1dd4cef83a143a8aac3cf9bf1639d3d7b1fbc5268f9a313f14140b5ab458b8faa95f242850795129295aac8160c85e38b2431da00a6800d836e36982a9a378e4354e00fdb50ed0ebbbd17764eee2fe1e0fd4495bf7b53819993891c8f68d510e2566b0f87bb88734d83adc531352f494fb99520eb72d06d908922e5d2b9ae6527f81c6cac254851a3bd733066d69e45c13d76376427bdd4ac92d5cbe41013e09d6b0b84ac2a6e41c81a3994cd929175774877198af8a3263beb51c5c1479ef80f6f1b0aab54118249b7111b8c49186bd0c7af66f5a0d865b1e10c26d19aabf546c979444e96ef3d506562f57d06b4ff55b8345a9c76b4172b0e25089afb7b9bce3e52798b6e7102230407d87b4ccecfa7999d5d7ea6a8ea7d6d900000000000000000000000000000000000000040c101a1f25", + "result": "invalid", + "flags": [ + "ModifiedSignature" + ] + }, + { + "tcId": 12, + "comment": "signature with hints in reverse order", + "msg": "0100000000000000000000000000000000000000000000000000000000000000", + "sig": "e1412c0a8930ebd5be73cff29b68c3ad7426551e499553d7cab9b65a984cda37d793cfa5011ef4470dc57bf0c7d1c25449cd23c82868180997ef617a42d425cc5e1dcb6127d3b60e017a9ae1ac7dfe980debb098f6099d4a5d497b0ea1a063f863d484a697f9e4b87652249301455276eaeaae6e5b9c32991bb3a247f5eb6a64049c317a2e262bc9fbebaa53e1203d780aacdf8d8c1df9d104db25002257cfe39c49e88ee0adac298199ee0285aab5966c4decccdd64ff86a76da9fcb17765c10ce7ee8272595b0deccc58c8d89d11b78e56a4cc63b19d7d787988256a277b53ba7d99c1930bbf1cd550acf5c97f6f1b1bbdc6a9cd0c3be66672724e9acd89240987b0b17f9bb38b8b323e21b7df3a056b85cc41288d34707ddc050b8484598ede78ea295774222ef491f0d621509c9361b7c8537a4904e2e5ed1640968fa6dfcd828c8ba6e771f970aca894f0d57cd03ce325f4c3176b818f42f29c8646948b58796542da63ffc905171129418a349c0783ebf5ae14b3fee69492293ad3894345f07eddac036c40ad5215d4827de6a0ea0b4bd2dd86826c7f5c340fd2d62062a41c075259a9ecb3ace3722d3768d5a7d355373e3de4d6f87a408e5bde672f414826a2c6714a706198723d6e41feb39302b155f775bdd01b7cb4925b75aa1d0a0d533a2fbdabf68d03592de2b24a39d2d093fea87ca57e16622e59b46988d7057540a511506c1e7c819d8697564e161fb221de02db05b8715d7e8cb81b96bf41b257fe6c5dbd8ab7e4b6cde8a7e15077b3318c7d6b7c301c0ef33cf1f1c65668ce0106a259a599a4034010f5809fa7e781665d866dec4a5be77e8cd090a324fbd25cc07929b773cd8358d666ed767db22d540829f4bc09c3a60448a23ee40e09ec699c784649331563eb114ec47c8f1731db50761ddd7c972553e9819db31148fb97d3b4c9fbb89af7e87033536455f9fefdf8566b6eb0100040ecd080287da76a7791cb90af6253e701d9705af96b3597596aa58b9b0fdd7689eca35a7aa7c21b71bd80c3921449d3c5c8d9a26bd386b5c4002c8050b6c7f2489bee49b18ba85652d4b528beb21f35c4c9ab1f5e7f5fa4098b2d470be2cda7087c61c4f40e771ac04193ded1c45b0ad787be20acf7c9393671c354dd70e93618bcf89f684c9fb7c8fcbd004b737a65350e912a1945fa6f6f082406526f8b8b4603e171b754a3f571b7933e07bc9971ed2c299c4bbb4293b3282e34fc1244ad5c4c985acd31d4f2eb5b82e5b5e1f00c9be628e0a317885ab6e26aa7667c73c12f541cdf463cd72798cb1f7908d2945a131ca8ac4ba6343bc4fcf7dca98f30b0feade3f0841ee280da51d9501b5ceafccdb8319f9b32df23e74a12b4b61c44b3005ee58160c85302c141dbd6fe0d598b2886824b1bdadc874c530df612fe5260e996c6d289a2a5f3f811f2b50cac599477f9d8400298981654013858e4adf2b6a67daf24a5099e9a44f5dfc37b2dafc4aa738d4690f9650f019583eaaeddf32ba74c3468863cfd565d06fb26601ea919b68985f5b7f036b2ef1b7b0f6a738e292be4b263d30ea5d9784221c09dd6bd77f26daa6996bce002783305e478cc1cac235da49057da7f9cf7b8e25ae6fb02a46ad93ebc5d9440bdd07018ae26de5c51c87556ad561f3c7e130a24685f3fb9e39518c1e9d26c5be936cf3f9f08c464fd0a32502604a349c8956541d94cc0f11bd5a0733737fd75ecf57678264e63ce8b5323a0630a40cd6032d62ed84951427a5162ac1685f8682ee7d31621f6a77ade12acde5634bc44b21a2e1cafe4a689e0d30ac3d03a6903f75393be77fed6be1f970a4bd7f2e666721e271e155223c03c7068e4d9b348159ed8b09d14df65f4d86ae612ce3a931fc4a66c60da424d5c2cda9fbd7115b771e3262ac7788c70f6c0241ded2b9dc0d936e613c795f69d65539fe00ae8e7efdf07bc068ea4bb9bd83f5a64e970bae105036435bcfb23934dc13027ecfe3dfb7a1e9d3f7b2b07dba844598d4cf53d39fce8c0485b8eee92671ce8ed10b262e63944a1ee4889494917fa81e01b145b17fcbbd079e8574df474362fef1f48eac5b8a443973b75e72330eb03e15decfb18f69d10343f2daf0cceca3436c20612091e3ba0940dd3a5d5489338578e0e90f3795a7380d577a67e52adf7358f2e7aaacc75bbb81537134a12771c1539ad42307bb2c1a5277c123f10b74216cce836e78d24dc3ad7e794bfdba4d0306a519cb122e3b2d5a6769ef54636f4398e87bd42b0e6229dd7f430f5c6bd610f9c67c68f1f7a687b98c2e5a61ce50c9989a8de3f53c975bb75b97ccdeb3e0fb7c26f368b29df709f18193b9be27fec820136d8bbb9a037c13b03e8ffe2484d948a284d505916ee424414c5daf57514fde0a84665b2c31e2d4c8fde45bfdb2ca08e9974ea9449c5f332cddcaa46140f08deeb3f0b4bda7be04446239c7af4949fab33b40dba8feed31d45f85507fc232fdad3c85595643b4a7f2503c4bfc4b3c55d969af6ac80a3c02af1f5bebd23a66700733b36f133951193a1fce5d429b6200fdaf383798a1d11f3cd6536d3f9d27b58a5388482279f925a8ec2850db90f5f70650b0045b4002b952c36b460a5b566fd3ba2bf5bcdba0378c54ac9c12ccb46c7fe110aa99dbae10d5cefab484a3abbd517db89c71d60ed26fee9d55e73bd4ce16d898ba426a683b842885b514370f6d854321e599e24edec6c3a0db6f73c60bb36433ec58e162d6ffe8bbf2d345421341ec22e1d25fc740ec4d3d78b79484387a9207b9b48ec8585fb9f6bb4f776bf71fe7834d95bf4c6312d430eb79877fc71ea67ec4080c359d4c4901596e93edf71c6b3ae2edd5d491dea03186bd3fb24527e7f99c708fba19d606cc44ec5e1ffaa33cd2710cebf4d4b5869230b151ca8472d35a49cda5367098cf3ad4ddaf1838e77476108ead4c399938ff0cbdcd226b6f06d5323c3d885ff1b043e6a32cde2e052c7d5c273b5354eb020a81d4f9bba9fd29a5148359750ec9ceb6aa9906047f1fe4191d07a0b018df93bfcd96ff4af3beec9c5e5eb5884b32bc84f66570b9b57f506443ff634056b504871e4b75cc1bea1ebc8a9d5d07c9ea587b70eea92b93f65c3194b343cbfdc28d1a76daf95303c9c4ec0034fca333628720bdda7a3373d676e2928c08684e9d24eed7d9382aae547cad5837d6e1be3e7245e947053ee2219d39e33218d9ae52f6b5eb487b0e5b16ac35fffc45ac1d832df711cb11b2a887647bc2c3713945f92103f3ee2a52ad946b0d38bc0bd92e701c7e7d4aea25e6aa4ff2a42ccbf5da9bb99f88351076af1fb4e7caa65dc23a78372e1c2fa09ba8d46152cda3ecc8a9288598bed37e4d11507e6b5e239f377d1dc5afac7fb38ffbb7b2d4abc6bd74771923ae17cde020b34151d2555fdc1c09848196daab35745d88b80a79ce2bc86bfe7397edbd9f16188a133b2900fedb915629b3104dd6f00cd1403f8a62f71756d614c0224276594d4fb74891d1a2f93f43157b0a6a4135dd65fe25d227be62afe953667147fe7d3d486bc6d5436b218fb9ad0c6df31ce8fcafe01b81561e02ad5d34a0b669345a74ae16f651fae91365960dc687b5738d98817b10ea8197fb807c59a47eb187bcd2e4e873bacce97e70ddcba6b4189a57fdf7d6f8b62a0ff3d81348db2b8b35ad55d9cf67f668bb89d448a751b02071d1cf812027ede8658d51becac34be3eea1dbf31e6177509c81f5e3a373fe9e2af88282ec5bab7d00c1325c6a305bb0e2b47989ef26aa3cefe6a3f6e7ce5873f215dabf22c17e5e6fb210da4f5b5f576b0800ae1d282a5d897b6164d3a32c5d0aa176df03a6c1d2850cebd40f5d97ee707ec307b13538fc3a0c83a95ff0ea2e5470e1b682ed12f9e65f366c45775a9365bf74729daff7fc0e9bb4c05a53bfcce1b14cfad49647adfafaa0059707d4d72c133e5ec878e9887b41656cbebf749f9e19c3e9c4f464a67354a6212f43d15af01a762d8c7445f7ff27cf835e1ce11c844e488036838fd7254aa6c2cdb858b7fedf7852a90a8ac7fe2504dfdc1eea60f64a671dee39e72332e407637033a9146ce243950d4c3d07c17bfe22d9a191ff01315fd51653cdbb316e833c823eb459987aac7e3d6fb50bdee54652ab253cb9df0a661be1b5ae2a7e9ea429d7e8a5bbfe7683a2df259cf2f0221ce0c2feb06c117002d101921fb54e06ccadd05de9353e5874c2b67b45571a83e2967be45e77ad2336b076088b33f33f024185979eb36d57abbe493d84c7f7daee3b10e039339cff06cf36ddbb04abd0fb8c8dddef0f7e86f9724644d6654d4fffaca74f21f242a9722adbef84b44c9a1b7b815ea0317dc5cf688f57896c57af47f44b1aed5c92853a7eb1138a125c026c9e73770d982a0a25785cd91a4f315d03defca59a2d3cb3c015de5df285b53a455087d46109582854bedfc301b9ea9d87d4a04a2f9650b8d9a83b6885fc52cd32eeee85e740873330e29885c8be8bc9d657e612a87eb3969cd24950c9a8945844bffa33396876b885550860721dece6afb92f1d87707bbef2a34915657e3a28f8c16ecd2ab9f967e5f3529100f05fae6e0d8bea5942625d7918b4ef5e2d3807d73664629e5b8651c1b000000000000000000000005111a1e272c", + "result": "invalid", + "flags": [ + "InvalidHintsEncoding" + ] + }, + { + "tcId": 13, + "comment": "signature with too many hints (causing a buffer overflow)", + "msg": "0100000000000000000000000000000000000000000000000000000000000000", + "sig": "e1412c0a8930ebd5be73cff29b68c3ad7426551e499553d7cab9b65a984cda37d793cfa5011ef4470dc57bf0c7d1c25449cd23c82868180997ef617a42d425cc5e1dcb6127d3b60e017a9ae1ac7dfe980debb098f6099d4a5d497b0ea1a063f863d484a697f9e4b87652249301455276eaeaae6e5b9c32991bb3a247f5eb6a64049c317a2e262bc9fbebaa53e1203d780aacdf8d8c1df9d104db25002257cfe39c49e88ee0adac298199ee0285aab5966c4decccdd64ff86a76da9fcb17765c10ce7ee8272595b0deccc58c8d89d11b78e56a4cc63b19d7d787988256a277b53ba7d99c1930bbf1cd550acf5c97f6f1b1bbdc6a9cd0c3be66672724e9acd89240987b0b17f9bb38b8b323e21b7df3a056b85cc41288d34707ddc050b8484598ede78ea295774222ef491f0d621509c9361b7c8537a4904e2e5ed1640968fa6dfcd828c8ba6e771f970aca894f0d57cd03ce325f4c3176b818f42f29c8646948b58796542da63ffc905171129418a349c0783ebf5ae14b3fee69492293ad3894345f07eddac036c40ad5215d4827de6a0ea0b4bd2dd86826c7f5c340fd2d62062a41c075259a9ecb3ace3722d3768d5a7d355373e3de4d6f87a408e5bde672f414826a2c6714a706198723d6e41feb39302b155f775bdd01b7cb4925b75aa1d0a0d533a2fbdabf68d03592de2b24a39d2d093fea87ca57e16622e59b46988d7057540a511506c1e7c819d8697564e161fb221de02db05b8715d7e8cb81b96bf41b257fe6c5dbd8ab7e4b6cde8a7e15077b3318c7d6b7c301c0ef33cf1f1c65668ce0106a259a599a4034010f5809fa7e781665d866dec4a5be77e8cd090a324fbd25cc07929b773cd8358d666ed767db22d540829f4bc09c3a60448a23ee40e09ec699c784649331563eb114ec47c8f1731db50761ddd7c972553e9819db31148fb97d3b4c9fbb89af7e87033536455f9fefdf8566b6eb0100040ecd080287da76a7791cb90af6253e701d9705af96b3597596aa58b9b0fdd7689eca35a7aa7c21b71bd80c3921449d3c5c8d9a26bd386b5c4002c8050b6c7f2489bee49b18ba85652d4b528beb21f35c4c9ab1f5e7f5fa4098b2d470be2cda7087c61c4f40e771ac04193ded1c45b0ad787be20acf7c9393671c354dd70e93618bcf89f684c9fb7c8fcbd004b737a65350e912a1945fa6f6f082406526f8b8b4603e171b754a3f571b7933e07bc9971ed2c299c4bbb4293b3282e34fc1244ad5c4c985acd31d4f2eb5b82e5b5e1f00c9be628e0a317885ab6e26aa7667c73c12f541cdf463cd72798cb1f7908d2945a131ca8ac4ba6343bc4fcf7dca98f30b0feade3f0841ee280da51d9501b5ceafccdb8319f9b32df23e74a12b4b61c44b3005ee58160c85302c141dbd6fe0d598b2886824b1bdadc874c530df612fe5260e996c6d289a2a5f3f811f2b50cac599477f9d8400298981654013858e4adf2b6a67daf24a5099e9a44f5dfc37b2dafc4aa738d4690f9650f019583eaaeddf32ba74c3468863cfd565d06fb26601ea919b68985f5b7f036b2ef1b7b0f6a738e292be4b263d30ea5d9784221c09dd6bd77f26daa6996bce002783305e478cc1cac235da49057da7f9cf7b8e25ae6fb02a46ad93ebc5d9440bdd07018ae26de5c51c87556ad561f3c7e130a24685f3fb9e39518c1e9d26c5be936cf3f9f08c464fd0a32502604a349c8956541d94cc0f11bd5a0733737fd75ecf57678264e63ce8b5323a0630a40cd6032d62ed84951427a5162ac1685f8682ee7d31621f6a77ade12acde5634bc44b21a2e1cafe4a689e0d30ac3d03a6903f75393be77fed6be1f970a4bd7f2e666721e271e155223c03c7068e4d9b348159ed8b09d14df65f4d86ae612ce3a931fc4a66c60da424d5c2cda9fbd7115b771e3262ac7788c70f6c0241ded2b9dc0d936e613c795f69d65539fe00ae8e7efdf07bc068ea4bb9bd83f5a64e970bae105036435bcfb23934dc13027ecfe3dfb7a1e9d3f7b2b07dba844598d4cf53d39fce8c0485b8eee92671ce8ed10b262e63944a1ee4889494917fa81e01b145b17fcbbd079e8574df474362fef1f48eac5b8a443973b75e72330eb03e15decfb18f69d10343f2daf0cceca3436c20612091e3ba0940dd3a5d5489338578e0e90f3795a7380d577a67e52adf7358f2e7aaacc75bbb81537134a12771c1539ad42307bb2c1a5277c123f10b74216cce836e78d24dc3ad7e794bfdba4d0306a519cb122e3b2d5a6769ef54636f4398e87bd42b0e6229dd7f430f5c6bd610f9c67c68f1f7a687b98c2e5a61ce50c9989a8de3f53c975bb75b97ccdeb3e0fb7c26f368b29df709f18193b9be27fec820136d8bbb9a037c13b03e8ffe2484d948a284d505916ee424414c5daf57514fde0a84665b2c31e2d4c8fde45bfdb2ca08e9974ea9449c5f332cddcaa46140f08deeb3f0b4bda7be04446239c7af4949fab33b40dba8feed31d45f85507fc232fdad3c85595643b4a7f2503c4bfc4b3c55d969af6ac80a3c02af1f5bebd23a66700733b36f133951193a1fce5d429b6200fdaf383798a1d11f3cd6536d3f9d27b58a5388482279f925a8ec2850db90f5f70650b0045b4002b952c36b460a5b566fd3ba2bf5bcdba0378c54ac9c12ccb46c7fe110aa99dbae10d5cefab484a3abbd517db89c71d60ed26fee9d55e73bd4ce16d898ba426a683b842885b514370f6d854321e599e24edec6c3a0db6f73c60bb36433ec58e162d6ffe8bbf2d345421341ec22e1d25fc740ec4d3d78b79484387a9207b9b48ec8585fb9f6bb4f776bf71fe7834d95bf4c6312d430eb79877fc71ea67ec4080c359d4c4901596e93edf71c6b3ae2edd5d491dea03186bd3fb24527e7f99c708fba19d606cc44ec5e1ffaa33cd2710cebf4d4b5869230b151ca8472d35a49cda5367098cf3ad4ddaf1838e77476108ead4c399938ff0cbdcd226b6f06d5323c3d885ff1b043e6a32cde2e052c7d5c273b5354eb020a81d4f9bba9fd29a5148359750ec9ceb6aa9906047f1fe4191d07a0b018df93bfcd96ff4af3beec9c5e5eb5884b32bc84f66570b9b57f506443ff634056b504871e4b75cc1bea1ebc8a9d5d07c9ea587b70eea92b93f65c3194b343cbfdc28d1a76daf95303c9c4ec0034fca333628720bdda7a3373d676e2928c08684e9d24eed7d9382aae547cad5837d6e1be3e7245e947053ee2219d39e33218d9ae52f6b5eb487b0e5b16ac35fffc45ac1d832df711cb11b2a887647bc2c3713945f92103f3ee2a52ad946b0d38bc0bd92e701c7e7d4aea25e6aa4ff2a42ccbf5da9bb99f88351076af1fb4e7caa65dc23a78372e1c2fa09ba8d46152cda3ecc8a9288598bed37e4d11507e6b5e239f377d1dc5afac7fb38ffbb7b2d4abc6bd74771923ae17cde020b34151d2555fdc1c09848196daab35745d88b80a79ce2bc86bfe7397edbd9f16188a133b2900fedb915629b3104dd6f00cd1403f8a62f71756d614c0224276594d4fb74891d1a2f93f43157b0a6a4135dd65fe25d227be62afe953667147fe7d3d486bc6d5436b218fb9ad0c6df31ce8fcafe01b81561e02ad5d34a0b669345a74ae16f651fae91365960dc687b5738d98817b10ea8197fb807c59a47eb187bcd2e4e873bacce97e70ddcba6b4189a57fdf7d6f8b62a0ff3d81348db2b8b35ad55d9cf67f668bb89d448a751b02071d1cf812027ede8658d51becac34be3eea1dbf31e6177509c81f5e3a373fe9e2af88282ec5bab7d00c1325c6a305bb0e2b47989ef26aa3cefe6a3f6e7ce5873f215dabf22c17e5e6fb210da4f5b5f576b0800ae1d282a5d897b6164d3a32c5d0aa176df03a6c1d2850cebd40f5d97ee707ec307b13538fc3a0c83a95ff0ea2e5470e1b682ed12f9e65f366c45775a9365bf74729daff7fc0e9bb4c05a53bfcce1b14cfad49647adfafaa0059707d4d72c133e5ec878e9887b41656cbebf749f9e19c3e9c4f464a67354a6212f43d15af01a762d8c7445f7ff27cf835e1ce11c844e488036838fd7254aa6c2cdb858b7fedf7852a90a8ac7fe2504dfdc1eea60f64a671dee39e72332e407637033a9146ce243950d4c3d07c17bfe22d9a191ff01315fd51653cdbb316e833c823eb459987aac7e3d6fb50bdee54652ab253cb9df0a661be1b5ae2a7e9ea429d7e8a5bbfe7683a2df259cf2f0221ce0c2feb06c117002d101921fb54e06ccadd05de9353e5874c2b67b45571a83e2967be45e77ad2336b076088b33f33f024185979eb36d57abbe493d84c7f7daee3b10e039339cff06cf36ddbb04abd0fb8c8dddef0f7e86f9724644d6654d4fffaca74f21f242a9722adbef84b44c9a1b7b815ea0317dc5cf688f57896c57af47f44b1aed5c92853a7eb1138a125c026c9e73770d982a0a25785cd91a4f315d03defca59a2d3cb3c015de5df285b53a455087d46109582854bedfc301b9ea9d87d4a04a2f9650b8d9a83b6885fc52cd32eeee85e740873330e29885c8be8bc9d657e612a87eb3969cd24950c9a8945844bffa33396876b885550860721dece6afb92f1d87707bbef2a34915657168c8fa2e3050f1029355f7e969fabd2ec252694a5bed8e0e6fa4e8b91d7294666737d80d3e2f51b1c65b8e5000000000000000000000005111a1e27ff", + "result": "invalid", + "flags": [ + "InvalidHintsEncoding" + ] + }, + { + "tcId": 14, + "comment": "signature with non-zero padding in hints", + "msg": "0100000000000000000000000000000000000000000000000000000000000000", + "sig": "e1412c0a8930ebd5be73cff29b68c3ad7426551e499553d7cab9b65a984cda37d793cfa5011ef4470dc57bf0c7d1c25449cd23c82868180997ef617a42d425cc5e1dcb6127d3b60e017a9ae1ac7dfe980debb098f6099d4a5d497b0ea1a063f863d484a697f9e4b87652249301455276eaeaae6e5b9c32991bb3a247f5eb6a64049c317a2e262bc9fbebaa53e1203d780aacdf8d8c1df9d104db25002257cfe39c49e88ee0adac298199ee0285aab5966c4decccdd64ff86a76da9fcb17765c10ce7ee8272595b0deccc58c8d89d11b78e56a4cc63b19d7d787988256a277b53ba7d99c1930bbf1cd550acf5c97f6f1b1bbdc6a9cd0c3be66672724e9acd89240987b0b17f9bb38b8b323e21b7df3a056b85cc41288d34707ddc050b8484598ede78ea295774222ef491f0d621509c9361b7c8537a4904e2e5ed1640968fa6dfcd828c8ba6e771f970aca894f0d57cd03ce325f4c3176b818f42f29c8646948b58796542da63ffc905171129418a349c0783ebf5ae14b3fee69492293ad3894345f07eddac036c40ad5215d4827de6a0ea0b4bd2dd86826c7f5c340fd2d62062a41c075259a9ecb3ace3722d3768d5a7d355373e3de4d6f87a408e5bde672f414826a2c6714a706198723d6e41feb39302b155f775bdd01b7cb4925b75aa1d0a0d533a2fbdabf68d03592de2b24a39d2d093fea87ca57e16622e59b46988d7057540a511506c1e7c819d8697564e161fb221de02db05b8715d7e8cb81b96bf41b257fe6c5dbd8ab7e4b6cde8a7e15077b3318c7d6b7c301c0ef33cf1f1c65668ce0106a259a599a4034010f5809fa7e781665d866dec4a5be77e8cd090a324fbd25cc07929b773cd8358d666ed767db22d540829f4bc09c3a60448a23ee40e09ec699c784649331563eb114ec47c8f1731db50761ddd7c972553e9819db31148fb97d3b4c9fbb89af7e87033536455f9fefdf8566b6eb0100040ecd080287da76a7791cb90af6253e701d9705af96b3597596aa58b9b0fdd7689eca35a7aa7c21b71bd80c3921449d3c5c8d9a26bd386b5c4002c8050b6c7f2489bee49b18ba85652d4b528beb21f35c4c9ab1f5e7f5fa4098b2d470be2cda7087c61c4f40e771ac04193ded1c45b0ad787be20acf7c9393671c354dd70e93618bcf89f684c9fb7c8fcbd004b737a65350e912a1945fa6f6f082406526f8b8b4603e171b754a3f571b7933e07bc9971ed2c299c4bbb4293b3282e34fc1244ad5c4c985acd31d4f2eb5b82e5b5e1f00c9be628e0a317885ab6e26aa7667c73c12f541cdf463cd72798cb1f7908d2945a131ca8ac4ba6343bc4fcf7dca98f30b0feade3f0841ee280da51d9501b5ceafccdb8319f9b32df23e74a12b4b61c44b3005ee58160c85302c141dbd6fe0d598b2886824b1bdadc874c530df612fe5260e996c6d289a2a5f3f811f2b50cac599477f9d8400298981654013858e4adf2b6a67daf24a5099e9a44f5dfc37b2dafc4aa738d4690f9650f019583eaaeddf32ba74c3468863cfd565d06fb26601ea919b68985f5b7f036b2ef1b7b0f6a738e292be4b263d30ea5d9784221c09dd6bd77f26daa6996bce002783305e478cc1cac235da49057da7f9cf7b8e25ae6fb02a46ad93ebc5d9440bdd07018ae26de5c51c87556ad561f3c7e130a24685f3fb9e39518c1e9d26c5be936cf3f9f08c464fd0a32502604a349c8956541d94cc0f11bd5a0733737fd75ecf57678264e63ce8b5323a0630a40cd6032d62ed84951427a5162ac1685f8682ee7d31621f6a77ade12acde5634bc44b21a2e1cafe4a689e0d30ac3d03a6903f75393be77fed6be1f970a4bd7f2e666721e271e155223c03c7068e4d9b348159ed8b09d14df65f4d86ae612ce3a931fc4a66c60da424d5c2cda9fbd7115b771e3262ac7788c70f6c0241ded2b9dc0d936e613c795f69d65539fe00ae8e7efdf07bc068ea4bb9bd83f5a64e970bae105036435bcfb23934dc13027ecfe3dfb7a1e9d3f7b2b07dba844598d4cf53d39fce8c0485b8eee92671ce8ed10b262e63944a1ee4889494917fa81e01b145b17fcbbd079e8574df474362fef1f48eac5b8a443973b75e72330eb03e15decfb18f69d10343f2daf0cceca3436c20612091e3ba0940dd3a5d5489338578e0e90f3795a7380d577a67e52adf7358f2e7aaacc75bbb81537134a12771c1539ad42307bb2c1a5277c123f10b74216cce836e78d24dc3ad7e794bfdba4d0306a519cb122e3b2d5a6769ef54636f4398e87bd42b0e6229dd7f430f5c6bd610f9c67c68f1f7a687b98c2e5a61ce50c9989a8de3f53c975bb75b97ccdeb3e0fb7c26f368b29df709f18193b9be27fec820136d8bbb9a037c13b03e8ffe2484d948a284d505916ee424414c5daf57514fde0a84665b2c31e2d4c8fde45bfdb2ca08e9974ea9449c5f332cddcaa46140f08deeb3f0b4bda7be04446239c7af4949fab33b40dba8feed31d45f85507fc232fdad3c85595643b4a7f2503c4bfc4b3c55d969af6ac80a3c02af1f5bebd23a66700733b36f133951193a1fce5d429b6200fdaf383798a1d11f3cd6536d3f9d27b58a5388482279f925a8ec2850db90f5f70650b0045b4002b952c36b460a5b566fd3ba2bf5bcdba0378c54ac9c12ccb46c7fe110aa99dbae10d5cefab484a3abbd517db89c71d60ed26fee9d55e73bd4ce16d898ba426a683b842885b514370f6d854321e599e24edec6c3a0db6f73c60bb36433ec58e162d6ffe8bbf2d345421341ec22e1d25fc740ec4d3d78b79484387a9207b9b48ec8585fb9f6bb4f776bf71fe7834d95bf4c6312d430eb79877fc71ea67ec4080c359d4c4901596e93edf71c6b3ae2edd5d491dea03186bd3fb24527e7f99c708fba19d606cc44ec5e1ffaa33cd2710cebf4d4b5869230b151ca8472d35a49cda5367098cf3ad4ddaf1838e77476108ead4c399938ff0cbdcd226b6f06d5323c3d885ff1b043e6a32cde2e052c7d5c273b5354eb020a81d4f9bba9fd29a5148359750ec9ceb6aa9906047f1fe4191d07a0b018df93bfcd96ff4af3beec9c5e5eb5884b32bc84f66570b9b57f506443ff634056b504871e4b75cc1bea1ebc8a9d5d07c9ea587b70eea92b93f65c3194b343cbfdc28d1a76daf95303c9c4ec0034fca333628720bdda7a3373d676e2928c08684e9d24eed7d9382aae547cad5837d6e1be3e7245e947053ee2219d39e33218d9ae52f6b5eb487b0e5b16ac35fffc45ac1d832df711cb11b2a887647bc2c3713945f92103f3ee2a52ad946b0d38bc0bd92e701c7e7d4aea25e6aa4ff2a42ccbf5da9bb99f88351076af1fb4e7caa65dc23a78372e1c2fa09ba8d46152cda3ecc8a9288598bed37e4d11507e6b5e239f377d1dc5afac7fb38ffbb7b2d4abc6bd74771923ae17cde020b34151d2555fdc1c09848196daab35745d88b80a79ce2bc86bfe7397edbd9f16188a133b2900fedb915629b3104dd6f00cd1403f8a62f71756d614c0224276594d4fb74891d1a2f93f43157b0a6a4135dd65fe25d227be62afe953667147fe7d3d486bc6d5436b218fb9ad0c6df31ce8fcafe01b81561e02ad5d34a0b669345a74ae16f651fae91365960dc687b5738d98817b10ea8197fb807c59a47eb187bcd2e4e873bacce97e70ddcba6b4189a57fdf7d6f8b62a0ff3d81348db2b8b35ad55d9cf67f668bb89d448a751b02071d1cf812027ede8658d51becac34be3eea1dbf31e6177509c81f5e3a373fe9e2af88282ec5bab7d00c1325c6a305bb0e2b47989ef26aa3cefe6a3f6e7ce5873f215dabf22c17e5e6fb210da4f5b5f576b0800ae1d282a5d897b6164d3a32c5d0aa176df03a6c1d2850cebd40f5d97ee707ec307b13538fc3a0c83a95ff0ea2e5470e1b682ed12f9e65f366c45775a9365bf74729daff7fc0e9bb4c05a53bfcce1b14cfad49647adfafaa0059707d4d72c133e5ec878e9887b41656cbebf749f9e19c3e9c4f464a67354a6212f43d15af01a762d8c7445f7ff27cf835e1ce11c844e488036838fd7254aa6c2cdb858b7fedf7852a90a8ac7fe2504dfdc1eea60f64a671dee39e72332e407637033a9146ce243950d4c3d07c17bfe22d9a191ff01315fd51653cdbb316e833c823eb459987aac7e3d6fb50bdee54652ab253cb9df0a661be1b5ae2a7e9ea429d7e8a5bbfe7683a2df259cf2f0221ce0c2feb06c117002d101921fb54e06ccadd05de9353e5874c2b67b45571a83e2967be45e77ad2336b076088b33f33f024185979eb36d57abbe493d84c7f7daee3b10e039339cff06cf36ddbb04abd0fb8c8dddef0f7e86f9724644d6654d4fffaca74f21f242a9722adbef84b44c9a1b7b815ea0317dc5cf688f57896c57af47f44b1aed5c92853a7eb1138a125c026c9e73770d982a0a25785cd91a4f315d03defca59a2d3cb3c015de5df285b53a455087d46109582854bedfc301b9ea9d87d4a04a2f9650b8d9a83b6885fc52cd32eeee85e740873330e29885c8be8bc9d657e612a87eb3969cd24950c9a8945844bffa33396876b885550860721dece6afb92f1d87707bbef2a34915657168c8fa2e3050f1029355f7e969fabd2ec252694a5bed8e0e6fa4e8b91d7294666737d80d3e2f51b1c65b8e52a2a2a2a2a2a2a2a2a2a2a05111a1e272c", + "result": "invalid", + "flags": [ + "InvalidHintsEncoding" + ] + }, + { + "tcId": 15, + "comment": "signature with a repeated hint", + "msg": "0100000000000000000000000000000000000000000000000000000000000000", + "sig": "e1412c0a8930ebd5be73cff29b68c3ad7426551e499553d7cab9b65a984cda37d793cfa5011ef4470dc57bf0c7d1c25449cd23c82868180997ef617a42d425cc5e1dcb6127d3b60e017a9ae1ac7dfe980debb098f6099d4a5d497b0ea1a063f863d484a697f9e4b87652249301455276eaeaae6e5b9c32991bb3a247f5eb6a64049c317a2e262bc9fbebaa53e1203d780aacdf8d8c1df9d104db25002257cfe39c49e88ee0adac298199ee0285aab5966c4decccdd64ff86a76da9fcb17765c10ce7ee8272595b0deccc58c8d89d11b78e56a4cc63b19d7d787988256a277b53ba7d99c1930bbf1cd550acf5c97f6f1b1bbdc6a9cd0c3be66672724e9acd89240987b0b17f9bb38b8b323e21b7df3a056b85cc41288d34707ddc050b8484598ede78ea295774222ef491f0d621509c9361b7c8537a4904e2e5ed1640968fa6dfcd828c8ba6e771f970aca894f0d57cd03ce325f4c3176b818f42f29c8646948b58796542da63ffc905171129418a349c0783ebf5ae14b3fee69492293ad3894345f07eddac036c40ad5215d4827de6a0ea0b4bd2dd86826c7f5c340fd2d62062a41c075259a9ecb3ace3722d3768d5a7d355373e3de4d6f87a408e5bde672f414826a2c6714a706198723d6e41feb39302b155f775bdd01b7cb4925b75aa1d0a0d533a2fbdabf68d03592de2b24a39d2d093fea87ca57e16622e59b46988d7057540a511506c1e7c819d8697564e161fb221de02db05b8715d7e8cb81b96bf41b257fe6c5dbd8ab7e4b6cde8a7e15077b3318c7d6b7c301c0ef33cf1f1c65668ce0106a259a599a4034010f5809fa7e781665d866dec4a5be77e8cd090a324fbd25cc07929b773cd8358d666ed767db22d540829f4bc09c3a60448a23ee40e09ec699c784649331563eb114ec47c8f1731db50761ddd7c972553e9819db31148fb97d3b4c9fbb89af7e87033536455f9fefdf8566b6eb0100040ecd080287da76a7791cb90af6253e701d9705af96b3597596aa58b9b0fdd7689eca35a7aa7c21b71bd80c3921449d3c5c8d9a26bd386b5c4002c8050b6c7f2489bee49b18ba85652d4b528beb21f35c4c9ab1f5e7f5fa4098b2d470be2cda7087c61c4f40e771ac04193ded1c45b0ad787be20acf7c9393671c354dd70e93618bcf89f684c9fb7c8fcbd004b737a65350e912a1945fa6f6f082406526f8b8b4603e171b754a3f571b7933e07bc9971ed2c299c4bbb4293b3282e34fc1244ad5c4c985acd31d4f2eb5b82e5b5e1f00c9be628e0a317885ab6e26aa7667c73c12f541cdf463cd72798cb1f7908d2945a131ca8ac4ba6343bc4fcf7dca98f30b0feade3f0841ee280da51d9501b5ceafccdb8319f9b32df23e74a12b4b61c44b3005ee58160c85302c141dbd6fe0d598b2886824b1bdadc874c530df612fe5260e996c6d289a2a5f3f811f2b50cac599477f9d8400298981654013858e4adf2b6a67daf24a5099e9a44f5dfc37b2dafc4aa738d4690f9650f019583eaaeddf32ba74c3468863cfd565d06fb26601ea919b68985f5b7f036b2ef1b7b0f6a738e292be4b263d30ea5d9784221c09dd6bd77f26daa6996bce002783305e478cc1cac235da49057da7f9cf7b8e25ae6fb02a46ad93ebc5d9440bdd07018ae26de5c51c87556ad561f3c7e130a24685f3fb9e39518c1e9d26c5be936cf3f9f08c464fd0a32502604a349c8956541d94cc0f11bd5a0733737fd75ecf57678264e63ce8b5323a0630a40cd6032d62ed84951427a5162ac1685f8682ee7d31621f6a77ade12acde5634bc44b21a2e1cafe4a689e0d30ac3d03a6903f75393be77fed6be1f970a4bd7f2e666721e271e155223c03c7068e4d9b348159ed8b09d14df65f4d86ae612ce3a931fc4a66c60da424d5c2cda9fbd7115b771e3262ac7788c70f6c0241ded2b9dc0d936e613c795f69d65539fe00ae8e7efdf07bc068ea4bb9bd83f5a64e970bae105036435bcfb23934dc13027ecfe3dfb7a1e9d3f7b2b07dba844598d4cf53d39fce8c0485b8eee92671ce8ed10b262e63944a1ee4889494917fa81e01b145b17fcbbd079e8574df474362fef1f48eac5b8a443973b75e72330eb03e15decfb18f69d10343f2daf0cceca3436c20612091e3ba0940dd3a5d5489338578e0e90f3795a7380d577a67e52adf7358f2e7aaacc75bbb81537134a12771c1539ad42307bb2c1a5277c123f10b74216cce836e78d24dc3ad7e794bfdba4d0306a519cb122e3b2d5a6769ef54636f4398e87bd42b0e6229dd7f430f5c6bd610f9c67c68f1f7a687b98c2e5a61ce50c9989a8de3f53c975bb75b97ccdeb3e0fb7c26f368b29df709f18193b9be27fec820136d8bbb9a037c13b03e8ffe2484d948a284d505916ee424414c5daf57514fde0a84665b2c31e2d4c8fde45bfdb2ca08e9974ea9449c5f332cddcaa46140f08deeb3f0b4bda7be04446239c7af4949fab33b40dba8feed31d45f85507fc232fdad3c85595643b4a7f2503c4bfc4b3c55d969af6ac80a3c02af1f5bebd23a66700733b36f133951193a1fce5d429b6200fdaf383798a1d11f3cd6536d3f9d27b58a5388482279f925a8ec2850db90f5f70650b0045b4002b952c36b460a5b566fd3ba2bf5bcdba0378c54ac9c12ccb46c7fe110aa99dbae10d5cefab484a3abbd517db89c71d60ed26fee9d55e73bd4ce16d898ba426a683b842885b514370f6d854321e599e24edec6c3a0db6f73c60bb36433ec58e162d6ffe8bbf2d345421341ec22e1d25fc740ec4d3d78b79484387a9207b9b48ec8585fb9f6bb4f776bf71fe7834d95bf4c6312d430eb79877fc71ea67ec4080c359d4c4901596e93edf71c6b3ae2edd5d491dea03186bd3fb24527e7f99c708fba19d606cc44ec5e1ffaa33cd2710cebf4d4b5869230b151ca8472d35a49cda5367098cf3ad4ddaf1838e77476108ead4c399938ff0cbdcd226b6f06d5323c3d885ff1b043e6a32cde2e052c7d5c273b5354eb020a81d4f9bba9fd29a5148359750ec9ceb6aa9906047f1fe4191d07a0b018df93bfcd96ff4af3beec9c5e5eb5884b32bc84f66570b9b57f506443ff634056b504871e4b75cc1bea1ebc8a9d5d07c9ea587b70eea92b93f65c3194b343cbfdc28d1a76daf95303c9c4ec0034fca333628720bdda7a3373d676e2928c08684e9d24eed7d9382aae547cad5837d6e1be3e7245e947053ee2219d39e33218d9ae52f6b5eb487b0e5b16ac35fffc45ac1d832df711cb11b2a887647bc2c3713945f92103f3ee2a52ad946b0d38bc0bd92e701c7e7d4aea25e6aa4ff2a42ccbf5da9bb99f88351076af1fb4e7caa65dc23a78372e1c2fa09ba8d46152cda3ecc8a9288598bed37e4d11507e6b5e239f377d1dc5afac7fb38ffbb7b2d4abc6bd74771923ae17cde020b34151d2555fdc1c09848196daab35745d88b80a79ce2bc86bfe7397edbd9f16188a133b2900fedb915629b3104dd6f00cd1403f8a62f71756d614c0224276594d4fb74891d1a2f93f43157b0a6a4135dd65fe25d227be62afe953667147fe7d3d486bc6d5436b218fb9ad0c6df31ce8fcafe01b81561e02ad5d34a0b669345a74ae16f651fae91365960dc687b5738d98817b10ea8197fb807c59a47eb187bcd2e4e873bacce97e70ddcba6b4189a57fdf7d6f8b62a0ff3d81348db2b8b35ad55d9cf67f668bb89d448a751b02071d1cf812027ede8658d51becac34be3eea1dbf31e6177509c81f5e3a373fe9e2af88282ec5bab7d00c1325c6a305bb0e2b47989ef26aa3cefe6a3f6e7ce5873f215dabf22c17e5e6fb210da4f5b5f576b0800ae1d282a5d897b6164d3a32c5d0aa176df03a6c1d2850cebd40f5d97ee707ec307b13538fc3a0c83a95ff0ea2e5470e1b682ed12f9e65f366c45775a9365bf74729daff7fc0e9bb4c05a53bfcce1b14cfad49647adfafaa0059707d4d72c133e5ec878e9887b41656cbebf749f9e19c3e9c4f464a67354a6212f43d15af01a762d8c7445f7ff27cf835e1ce11c844e488036838fd7254aa6c2cdb858b7fedf7852a90a8ac7fe2504dfdc1eea60f64a671dee39e72332e407637033a9146ce243950d4c3d07c17bfe22d9a191ff01315fd51653cdbb316e833c823eb459987aac7e3d6fb50bdee54652ab253cb9df0a661be1b5ae2a7e9ea429d7e8a5bbfe7683a2df259cf2f0221ce0c2feb06c117002d101921fb54e06ccadd05de9353e5874c2b67b45571a83e2967be45e77ad2336b076088b33f33f024185979eb36d57abbe493d84c7f7daee3b10e039339cff06cf36ddbb04abd0fb8c8dddef0f7e86f9724644d6654d4fffaca74f21f242a9722adbef84b44c9a1b7b815ea0317dc5cf688f57896c57af47f44b1aed5c92853a7eb1138a125c026c9e73770d982a0a25785cd91a4f315d03defca59a2d3cb3c015de5df285b53a455087d46109582854bedfc301b9ea9d87d4a04a2f9650b8d9a83b6885fc52cd32eeee85e740873330e29885c8be8bc9d657e612a87eb3969cd24950c9a8945844bffa33396876b885550860721dece6afb92f1d87707bbef2a3491565716168c8fa2e3050f1029355f7e969fabd2ec252694a5bed8e0e6fa4e8b91d7294666737d80d3e2f51b1c65b8e50000000000000000000006121b1f282d", + "result": "invalid", + "flags": [ + "InvalidHintsEncoding" + ] + }, + { + "tcId": 16, + "comment": "signature with omega+1 hints (causing a buffer overflow)", + "msg": "db1f000000000000000000000000000000000000000000000000000000000000", + "sig": "9cf706beae50213e5c02cd17012ac726c80594fa32e3a2ec1978667cde026dedac5433d4d01b148c06a31e367e564fd8590de2587b5ad8e7deed72ae20f575c3ff672a23a8e9bb33f17850df016402a6b0997b63c8a3ad5efc9076e9506bfbbad7a92761290a99389ad4222cf08a71f2bed7aad06d60f09fed22f7fff8765fbf021e40feaff0f7ddbc7977e8e2c013e66cf0640b12ec365fe756a72382a9c029e48921e63b68ee207ec61384a72944b205e614b65444005550065c882224ee77c2bf92c0b6ae4640133afdeb5dea948cbce800961b243b6e2f1cdb9738811fe0f95e4609042fee953c3191d001491a08a97dfdc72f72860af4586b9ef497dff7766c03a36a94aa946ac762ea6010875b20caec650e2ba8d2af07f17ae6bc3f0b56f054da131fcb8b4aa19b7fd6d3b067f846e43920070046f1e796b669410fd938dbb172a327ebad362d036d0b3ea3e31723ce0c1037e9e293e3015bc71ea99ddab259cfb852f2d3b2a274e3bb353b16d664fdf0d29d5a88b4fea4cb1c70ba7b34f8a6ec8da7753d168e0b1d88bc039fcd9c4d0b3261056c8d2c8909ce2e3f6bad2e15ce870653107993fd17198818a65648ec7b1af1737a0045bc8310f15824c1c63279f680847f2d746021f7882188d4a4d7e54a55e39461afdb9a4101c47ceb3d371cd2b0e7a5f3215136fcfc03627bebd80ba2bbea12bb6e7ea48d37ab859ed78b6e724ae7c6ae4082317155dcb470deaaa9bab61aed7ec35cf7054c81bee3c8baaaa587e9cff23c66702fb3d65bb842889278ce853b9fc112b3047a1b80d1fa3075066ef76a54a84c0e47920ceaf93a165770b65275d1da2e0b46564f505b586d7c76fad7829c9d46555e67d2d5f2bdf77f68029435cad95c5b705ab9b305567882f2fbae8cb8c68eb26635231caf4c10e7667ff122c7f5db40b6c45c1f181336944bffc3093f8aa6a35b52471d4d9c5986e243ab13407b049e11e5f2fc45a679b697b86f750f4a67ee8b47e1ce54e8e23502053fea980306521885dd5e0b8c3c9f5ef0f4f7f0da83b5f8c62c3389ece67722a9cf65c0c735e9a2c09873f20faa1a62b8c18cadc47a2b45865c95b6489fa171da61d8278f136b05c7df3a186b146de48bff6f5e2c05ea2b1034d2b580c6d5129b663140c78e267c2c4153b40338bfe032c06adb91eccff8539e014ce5d309462417326643e6bb67d464583f082506e072af9c3e63d9dc663e0ee5f660a567c18d86a87b47bb7e9f4db8522c1b5255490263003e7cb30f7d5428bfedef7ef0aad4a85f1995b64598d5299bd8aceb64b88cc8cd0f97aa40f171a80abf33f3eb4b62a4e478107532122c8b837da7de0800c6dcc963ddf97138e693d1d5beca694f83faf310a05ad07c63106634938fdd129bb881e24a764a0f754d6116fd2a629e13baa85519ab380a1445470fb34ecba2faeddac739bb1fddf9b47a136333ef548e964e3d7d06c5a7e4d71d5248b7cdbf9e9f7f40ad77150de0cf13d1dc594d8e5a24e432279ac25f758a29ddf56f3f27a8a63df9f6d22b37807d02e1619a58d048b8451e5512baa8ec9a175589f174186cf07ec2e0bf3f3d69812ffb39c0b9c6ca07715f9129ba8ada1dabad9036065d5fce97435c53687a4aa1f9f216c3e9986547ee71805975b21b99ffe0378adbf6aa5f9401744226007f11ccc91d39d827bc2b95b2aecc3cf82a54537fd685256f4af35dd785fdb981cee388d3991f13bca1b5176eb1b385a5e6729fdc5247baec55d31b0778bb00ed9fb9794f2f5344d4612ef57c0bcb1a94bf7102e222c8c1148bf4aee31fad93eba32bef2a86691d9759c0a6b0ad3bfe74511394768c3b393b899a89f8c056f1c20e7bcc15d192eaef9a77bf9a00717936d4ed3bf9b85f806a7e61e021685d981d079188120c836cbd5b4278eb833550e6a9b62bd2b7ce34e6f99a6f9c4d87dea8745783b2302e5f0833922911f49e79b8c9b71a78abf53be3696dc6f2ad716cae5299d47d72c79e2892329ab5a2c4e2c4a6c50f37671dd596a7836dca1ebdbce9e05b217c073ba87ba3c242c610a162bc6150dd101c187a2c6076adf7f2ec82cec56595958ca36cfe6620bf5c4f98b8eb73f954d64f03fb8e44f0cdcedc70f5be7939283954c4f0a60137bd6940c417e132425591a19720695e0158fbcc9c24562b68a6c1d88cafa1c38dfd2ef08339a96df49455c89f3982ffae5a559474cc4e9affdb925ad7974cf081606104db3555509724ad3b274f132b7ac902463a56cd9451cc168d311bc16d6e9102a7ef78d2d0b10e7a527cc91aa33f841edcf96711cc10a72cb3a3b5e945877a7651ba8ce235905ac2c0a821cf0d539132ced57bfc51c47ea5332d28524ae902ed8fe0a8bdcde7d0a1e18d7519d97d43d44f6dbbb510f0ede9532a7da4d5b209a8c4836668d4854e872b89e49a62ceff48a3bd34692666cdf85b42d05708e6624ce945ff1a05271355be0887e4cd054d3e9d7affcd249eb608e9a71c4588bf393cfbc34ed349998d719dac5a95cba59d3809423f6e626975697fc9a533c633bcbefd25e02ed3d1d4040dfe7b0f7f72d3937539e1cb3472f0ca5f383f70519166a4cb19badae8d1941936ef0aa6513e54f718092f2101981fb6ba5324226923d6772367bf23960cfc1e3576f3e489af826bacb1e4da43ae37f664d5e0f45b7c72cf271b1ffd216a406ce4ade7578144b341932293b8ed22e41f6bf002d5fc788ea9b4a6ed407e0277da5b9cb4a969cbc4eb06fe37be7b15875b34e4a0ab3ecadfb3469ea3651a323a1280fdb8504fa8640ffe545f942240f79c07c74832a43ccf8d23b6723ec95a0fa28f7b8d605db2b58e6b7b0cebf8ea5dea74128173da04433d23763f0ffc0f54ee8e0648cabeafd66c5d919b820fa1a161992e876d0ca000af2eecaf66f33effc8d9bbfd77523af48aabb443d03efb417df3e5c8e424d2c3645d3506b4eee80786d8320c1fbe22a1073b68c888cfc94ad64e485284d10f1fa74af07581f2aeea11cc4225a877cb5b346d920cbf302e33fdfc336cc6a0951338e3e1ec9c37c5d709fca28b8027699e8734500bafaef2491ce33c5bb4c8564bda969d498c55884154f6a7701804135d42048d2e9f39ac1556585a3f201a3689e281df5885be17d411bee984890cb123cb76afe52dbcfd21881fe7a3e6735f892bbf984bb6d21791098776d44b9bda94428391726b38b9c7a48cdde8685bd307b691118ef415d74da5aaa487cad61586a7c9302a946dd431a101d5387163bdbcc262114a35212596a537dc11b425b0260e6d0a3e3e10af22487dedcfcbb1f5ded611d1fd63b09deed301774a5543e8ed515c5216af3e2b39adc313f4d5c7848751dc92995e9fd01468f96e15823513a20c6d90449ffb0d68568f5348392872f3738e5861a1c6e4750a41f7163716627ca385ca890c7239ee1697bc547b9aacc6e429cd504b1f7f36e3f56670fb2528c5a6aaaf8a2166b00f13f863f0fa47915aea2aa5f93555ffed16461a3abad4d718cf6e414daf438064dee139a30f163ba53183d1a882a7e16466f99b23c29c49f7e7083511a8bd13934e9d5a2566b6a6f07f551bdebd059ab848e2dc016f1121b08262ab847bc198232739ed99e70f426449d1b85dd8a57836093e140ffd27b0a892b13652563136bc490057a6ccbc5819478c8ca7b515e1fabbf6f14cd8e86f5385a4f6585111026e2f1aff431097a23bef594a90346ca79ee6d5d568af6545f6dd485c25fa1b65ce615d00291cb4d6d1073589bfcd56b63972c0f73e77a49665662110f655386dd6b6d7831d80e2ab482f6f4985985c30afe7f47aa55fd7b8b48e25ac8e104723d89d4acbd9a87bd5956b930845a04dc775d8e19ebf69a2f220ca9dec09b2d91917ba9248666209a1ba4d162b9e7289cf18c2d53b16c1b576539ebc787cc078282ac7f80b062845d67f6f207b9f2a403680ff0b0ba01115d8ae0185734be8870992eea91191233d12590e98c6365a8af19237b76f45eb0cdc945930d2f99963242ec63661d884886750ba2eb68a7a15f15d9aee5d48f30a6a9495f7a3de22e9d0fff18d2ae799fdd8ca742a5b74f64080f1a7cdc359f3820c2e223deffd2b2c53df7f0c96c7b3528de9a0effb8969d16a2a4c9dd35010974b75b8bd7a5c1659b743284c1c89cd9f1142152546609feedca278828e35e6fb8f8802bc0fd4a3fb072e8af233caf8a197b55356cabfe3f3d188718584aedc60e61eeabec6efd01bc7b9628b63854322ba1905840ae41c269456588180db609d9437e80554c3309e32e4d985e2f8c4d196e0eed76e226e287540983e88d456f90d50f01f46355a6f49af7db15e1a3f2eb525d1bf61cbb340339c6cede8ca662f73206a8f83cc320720f81169092c84ebfc961bedc5fca847ace1460f68a1549a2e18da57fcd3ea858dd471df43dee62078e201e3185b3ac8a115096ff31ff85adc0c584f282d2beaab6e0baf33791ea886b539edb40d7585ba9a95abf5273e820c7f510c5c04c8b52631f51e4f37c0b2359b2372a0d2e1e66b8ba309b74152aaf8cfee96f3e73a6571dd0111131c31335c759fced7f70e182e9eb0b1b5b6c0cff205516a6e82a5a8aed7e6f5619cde3595a3b4dce418404751658d93ace2e6f1fc0c1722252b37", + "result": "invalid", + "flags": [ + "InvalidHintsEncoding" + ] + }, + { + "tcId": 17, + "comment": "private key with s2 vector out of range", + "msg": "48656c6c6f20776f726c64", + "sig": "6589e14a5fb859884747dfd23755c73b7c934678879769eedc8b0b9ef592eb521f597b6f02978bc8f2c652267412078b39b728d6b026ad3770a26f4ee4ce6a0330828352e5258fc136de7b62a425c24c6d03e05fea6fa88ba5daf9fef26e8a761e59af74c6583fa2cd70815e97bc2f7fbe63f4c9048877ad637d6eb4f6ae89d2c7c927cdbeaf31f46c6f3f3988f890c53326be3e124d0712a3142eec3a341709d711457126f1f6c0029c3fed6aaea45a323e5df23de97e1584160c26219b64de00382a41f5ad633e7617e4724c0024d38ed1028ca117656af0b15febe5368ce38892a63adef0e93d13e98e03d4a7f85dbbdf9a36c072381929b566659576cd87d5f7c577eacc7c267218c95050d06668296ace945bf61c49e8fd82d6de18fe2e724f964f022292e4d4cfb8c7dcc3d28f1846e71830f2eb7fb64a8171b1fb8e1b3cb501e3da0f855e502f81c90e90657a239af07cbe2c7a66815952e6a83d26a600e36f6207f90741576101736bfcee82de016ae9380de38c1150a8469ce7613e360bf223b7653774cb2f81992d629cd0a39c9870b9542c72e38c4dcf10a798fb0b8b122f45dbdf311fb278e6e43a6efb95508e9926ac9b3576f9476f78e509586653a57303b06a75ced648332f87fcbe59f7bebf1f20424d4f30e06f4641b32638da7dea7f21cc4826b6f9991fd92dc6ace1e3e33d7bbd2daf35f4b8e4d984e773793abb06439ef71041d0ff74ce992b2ebfd0bf3b94574baedb529a654bd5a522d7ac80fb5d80d848ffd0d9d3c323c101b998beece494f6c27718ef1557bb90f0d6778ad3b8b48f4bdf641b60cf3839a8cb982493885a774ae75225657014a11fe03a4695118a6fbe3df1dd1454b1b075707f1c79ffe586f173bbbbea4a96ea21c99ed68974e4b711fca1b4974fbcb062bf0ac75f290f32c785f7c4f2106c58aca146a926ae912e7c0d95dbcd93d8435d08a984d9dc6d3a8ad6e6f09634dba641c1e3c519dd38f25a4cbbbc4b49887aac12adae7d0085b50cf3b3f4a38319367e62d192edf98c4eb4dd15d8f34283c6da0bf6fad423011a968f94ec44732e292b62d96739162a6e813ccf978639fba8929698002551f1e834c4b350044ff44693ef6a028eb224999b127b800248d085c3609b84a821a82591d16c0860bbc3ee853dd815fdf5c8695299af6bc979e8902daa96ba75f87435c97ce7e5dc2cf5b0638f5efcc2349d464ff60594fab1ff03ba5e90415a813693905e20a3f07caa5731a7b69bb9b7028f493ba65825826709aec686496a0cbfb2ec9224838278a7ff0068712eeef0a1788847cea1732a1fbf48ecf6628b809e9b8cdf85683b2f0957a3e3a78911a08a4c8528dbea43e7d2c26af405832ce6d0199efddd208eb077d99af735ffda60f4caf7cc9e5c6d96f77d354c262c7f6ab36dc57c841dc5695ca3eb6430da473830a966ac9c730577588f384edf35e00c77bfc4adf70cbf039f75a8f524a72a6c3d91b9c0f7ecc18bc97cd9e86cc4b077f28f5c81469cd3cddc1273146b819fb1345f83e2e389d4d82d67f8145230365ca68f517896121a4c335fec698a6998c90aa1d120ab54715ef1935924d298b2541a4b815969b20a657aa0289a4ee98b2584cf9485dff02ee1c823c1878a11a3276ae719a9b44b31e607f3ba82cb3f89a36ea64c82343e108ca357f461721e6512ef823d15a6f50bcab489962344bc5fb7b6d32aa7e177530ad7d2ced8d4fb4eee07bf6b9137d62f1ff1e8d196145b805d037d4d922d97d315ea37b6db5d78786dd651d520fcfcd83d35c61c9459dd1abdec5c7fdfda068f9fcb6a0d8697a5ec1968a2364de2c87979af280dd6a113900b6d71a1c667f8f9163fdaaec41e12e234cce2a22c06d03f96d3eb95f40c8b2aa886cb0f27b9ae33b3feac414cb00f184b64f684e91e1c672020e849013f13abf3ca9dbe10b12fc68f61b76ff48e4823e699699bca18ef394110110671bd336ca7013b0b694a1dc5198958a6f33469f2153aa9855809b2ce9d40cb9a1abe3fbb5f29be6a16c7bbd0fea398b214429109f11db96d2757f3afa6a4291386840923640d89da6ef249270a5e779b5b37d301156018bc64eb3ea49368802dfb372f7bb208642186609c7ba264f7e0eff71cee5fa7e04cddbf5b4269d11a9ec8d7ada95dc65fa1cb262ea0902980e7ad0cbffabfc50bee60d83368864698f64787b7f62084d847bad84c1882b45dc13af9ac33fe7f185d699cf902f01bbf20f3a7be7bd4f489e87b0ce4e50ee0ac7d1eaa2410d8b3fdf00d2ec2005d654e239d4148055bd3f071a6f121a2a38c6bad34b0183ba826e7363c74aef4a5f460cfb890c152524d0c3a50e44029c2dd323e08c989bca6f86951389626c4e05ee5dedb141ed465bc8e2abe8a7b05a3627ba30acbf79d12ece568d61ddb836c1d581f3de127a9888471546c8ae5e9ad7dc7d1e5ab477b735931b7091bfdaa69b0ab8976e2861bc178108a40e726225d79bdd4643873a251c87d8146bd45b4fe97573a4946b51632d55aa8d4c24bdbc3ed8e6bafc39a503aa25dece834467b3485adfbec2fbe7ae2d6385fb2adef081595f7b67c887acd14f1a97fd493f1363b5cdcbecdfa69ccfb02c03a7b0795560a69911a2de0e8f6efa29db0e4103763930835266abfcfcbf338040a8ef38b0401a4a98690cacaffad195bda13de62185788c2043a2900844497cc3706d5d13f700052d16d71d74be385f9a6af2ecff497e21c518fa61473b9f0dc36da3d322f24b6119dc6c5e1d93fb83fec7ffe91fd32d230342d2bf4f80765fd3c0acbd85043867c4a14caa2ff20da4d731eb102c24bc9c6012966467f790585f0fcf4f9b60bdb2f7334db4fae55808c999f072ae4e995ad4bc078e4206954758f2dcde2072f76a5958ba63c3a49868eb3fef5a49e042d07180979ba79d732b2675c702aef3041d3a6699ab2d1a6dc76d4b0044536329a40bee29021899f2eb024ee29b96df86fb6cbc129539e1fb964b56c2d14e08b9a793c59d43c5839fc977bfe938ba2b512a76fe450efe166d9daa5ac670c875daa626e664381a6670d1671d439f763cb4221c7e89f298e04590fbc315e214cdd96e50c6ce5972c9aa649dd6ecfa32e454e81880794074572469d5a44cfac07998616815f2a1d2397ff5d7b4c10d24f250e0edd05ef3c462251c81103af606705eba22a7a4f5129840872309bb7e2bfec94ca8ee00fb41407e3d80fef6f03da8499a86d2ab5ce65ec6b745a02a072ed0907ca728c2cb16d050393bcecf72706608038ccbac194ab4ba306cc2fe44e7a69e713f8556cf29660cd20c7912138bfeb4fb3e42eaf740a8c4592e2a79601f7e6432f297f6856a04f38c05db3f9de1a23170315257f38ca0cc2c1c1961a851afb342aa7263d34231e3279e3790c6b46e6b60137ce361a9b7f9cd3bcd06fc2512c4ca4fb1b498f88f3ad0a45eb9f7f281e4d2f8a8dc7f003bb6945685fefb80b738e94ea4ac18ed149a7162fae53bd658fc29ae467865509f9daf3cdfdcdf489bec5edc5a8abcbfc43c032cd10a4dd010225ea88e2625b19a2c019cd5caf883ee2bd8f1de21b2a884a8d6ebf4a156b8b600c98670401e23d34c6bcab2cf9f81193de2aa5a8e49744cbc0e5980e64cabdd4919831b4a532b01722f54c20b4a5481a62cb9ee7adbf01f1137e9d4ac33bb775345a8a465e9026c80ffa25ea68f067076dfc5a338eb3cc5c2187bc3028b3f45bebd26be52734a8d71d0dce4f28bac2bfb43390b793316b731580498ee651869099d40045135d94656a6dc0455e778535bc2a40d232fe14a5e6f5eb056731dc70cae835372ef463430a15a991b287500c5241d40997b8bc9ba99b4c7d87b1b18492f02a6cd769a87c1f1475a3de27fc549f030dd2956e3bf01d6fef9e63f5ea844e1edb3699df080aaa3e44c9664948a27fae173c4442e37cc31a992764121d3329e30297a9412e0c8216d15eb836c26a9bc3a3b7c7d9b09dd20a3a1e2c9588d7a2736f8e05a3f98d2d37d868a9a88050988a4c8f8d3d17d9d92c269bbb42709c083c6b30bdbfcf94e8b5f932f4ab8272bd81c3714381d8c3a968bff5c6cfbac90852d1e54df7cae73a92a0adf97f698fcef7c861053cf02be42ea4f02415c3a5a8326b70a6eeb9afbf17d728fe1f6cb5774574d68f4ec6c511e11a4657bb7313dee5df1afa4eaf0e6dd009f30c24ac1bb10d52701a056578c5e0e82a1dd4cef83a143a8aac3cf9bf1639d3d7b1fbc5268f9a313f14140b5ab458b8faa95f242850795129295aac8160c85e38b2431da00a6800d836e36982a9a378e4354e00fdb50ed0ebbbd17764eee2fe1e0fd4495bf7b53819993891c8f68d510e2566b0f87bb88734d83adc531352f494fb99520eb72d06d908922e5d2b9ae6527f81c6cac254851a3bd733066d69e45c13d76376427bdd4ac92d5cbe41013e09d6b0b84ac2a6e41c81a3994cd929175774877198af8a3263beb51c5c1479ef80f6f1b0aab54118249b7111b8c49186bd0c7af66f5a0d865b1e10c26d19aabf546c979444e96ef3d506562f57d06b4ff55b8345a9c76b4172b0e25089afb7b9bce3e52798b6e7102230407d87b4ccecfa7999d5d7ea6a8ea7d6d900000000000000000000000000000000000000040c101a1f24", + "result": "valid", + "flags": [ + "ValidSignature", + "InvalidPrivateKey" + ] + }, + { + "tcId": 18, + "comment": "signature that takes 1 iteration(s)", + "msg": "0300000000000000000000000000000000000000000000000000000000000000", + "sig": "35390d83e9b544e464339524412d01be38c19e0a91b4bf2373a59adddee17e5fa0c6437f27a97e16b05c916ef7671962f362c3b11a422d60d07fe9667ef4225c3376bc7844238d9d80d289ae111a82ea08cf2901fef205bde7e2f76ef3dd75fac6eb6cc93bc493646c393afc11ea0ee022bb03244950d3277293ffed1b950c15f710163dad25723e551d01e4ee838a8ba5c815a4937572539629354d6ccfffc516d9e3f0f5fec67d7a8a6c7ec169b3e4f8985293dfa7c2f8f6060eaa81322683b6dc50f21116481b2fa172ffa76e535ee37c408ecb7c826bb38e05f3908815fa7f4009ce0f6c75b6279be48f578ba400fed352634123796244974b5c978f7fc6a51346c21f56143415044411d1f7640ce49572fa8b8a8ba0322599dd4cf7e8e12b96709133810692983e69f27fed2ead33f38690a49668fcd10b343890c38a8974d72a3952e1d6da7b7eaff59fac010f821620cc784a8858d04d1241e16a0c2a656d68760eff84b63e6f60b3fb98de3980d9d90ba34892202cabdd5cdb1be1a98c7fd66a127ec3fa6fd5b68b1b5bffbf91562486de3dc30294f63f81aa5e58d8108f813853f26472a801426d2b0b148bf908ee954ab9d64531d2be46d43bf1ca6cf00a2644dad4bd63b79eca088a7356c4c0844b986ee05b867dd8e50af832302ebfc8bb1d9c2b700e8d153d4d2f220386de68f2605ddeece2a449cf2c92d002841308b0806c901c2dc3908cd086993c2c5922b218f33ff8a4ed4676e2c95373ba9c3a3290cd399a3e2e82f4e3b7d94204c432daa4e9df6659decef06588c0550ed995e078a9cf6df555127d58333386ff5b62d094985af06db92c83bb6fa88372de1e255ec18c56e100dcfd13519064f87a6957798e1eb9d992850fd335edcaf98328e253a02ccdc4ee7c6f031cdec6875ec6577fb6e1db278efa20dad69475925452c4931fe701f5710f1338c0dde065f78ca7c31480abefadd2706ab4454f21ec0fc3818ef0472481d30820c910c50caff4d1c0743c2b3c331ca2e32632df7ac797b12c360c982109994a987025d0dd57f96e9150b6fe1061b84543ff05eaafe9fcc3cf4a211fb5187bcb381013b26bc444a18ec3702fb42a0bbbac7f19a60748506e22896f091b5696c4562454345eeb4e80c44888b514449ac32c50049703e8ade88c5584fc94b7ec766a40b8a9bd92766f31b1c35ed646cb0a012c12fea5ce1a7dda4062754a21c1bbe641b180ef277c7fa7cd01b2533a7dde8573d9b89bb332dfda4de383698e57f3a4d01d7a0425f64f635d8d345913241d8521df09a38f8b1447582ba401d4e68f5d0ec96e283ca4dc33b228a8a233d3841b463e041cc44f08a5bf6dc176e7534cb209617a4226bf78c124b6d9b22aa27536f63dcb44853ada78966bda53f07a74a20c6961815786b09f4cbfc99ff499163447daf8290bba869978ce0799c7bd7a803f91d7b18c7f7a82d1e019df788083c9df9dfbb1cbac0bea8937a7019111213d8ca12ca85fde3aaecc805e235bc4b038caa02fe1fa6d5211cb44a03b18a7566171a9527b902fb95290529b0d6e967f38950706e5ff29692cdb8e6641e29bad6d5a6bc143cc0e2dbf74a1b076d84ca23cb1e90d1b4a42fe208b81a569b085f55468e3d4f5535aa74dd8756c5411885aaea260a4c47738176f6391b6e34126f50f19b5e1957a6bec7010e42974a49172e7e51e6fd0457a3494877f76961997953fd2a1264e28c6624d70cc633b3e5c3bede1602d2f2497ef5dc9637d56864e0a07ae62619a7041f90fdf667ee326bc4afc1bc844bca948e1b5f6436b150c2b9ca9803e36b3b00d24e00cc91ffc4cdb73b2b689d9a1144243b7ef99d46bfd47e70df5fc130a19b85caabd31267be6b1c293032ea0019d1b34f6f9abb221a5abc99d8229e8c0f95313562abc358e19349dd44f56924cf40dca534b5343558d445fed929bf50baac983888f88f913021a2d17a25dc5f1182c6271720ff64af77de6eb059be9b68b80b87cf3cb8e859b3730f838ac1fd533f6710ee8d54a740095a7c95aafc8756232988f32fb135811747a60823f68310f1f0b046a1eaedc9a705b3d725663b9a5810da797e37deb4c42fff7e770f85456b53245b84c9366c69018d7aa40bf3ce643a86a5eb3eb0db337c8fbd64ffe9fbc4990f97b3574e8113287d2305faa6378fc914b57027350ba8078d145864f8827f445896cf9aaea17e529e92225e9c71ccccd46fa516e9e79e433dc219efa398603d38c14b4d61b4e20ed8346474d0b15231392ae0486fa22bf438eedb9e5e57840dfff4af51dc4a60dfb5e87e984381b3aac96a2091ae4e884eaffb423d56412981b1296838e86aa4c6b441518dbbf438d2c2673b9d7237ac2070d4066245f77d2afef2e0878e57cfcf3d50ddc478354c7a581ad82330259a8a0e45df110c341b1202983f64c388568aeca38e1f1d8ed4fae542d6fd17a81f7e9c27bddf34ffd09f5846110b7b142ce7392d17afe27f3306ff59b502ace62989fd351d38e599c6d7b1fbe5a742579fae6cdc9caf6cb6086ace48194432c9f5a5c17fe107291409eedcc89277c1901693caf014560427e6276ca572e45325ca861170d5fda4fc4317e1c566fbb504c1918baedfd8c2d1d216bb3f58de8ae306aef3041ae92628a32eac2bd610b2826c474c212aca3f2d92b97a5dabc1233f3148aeadd53b601f57413b27ad0dd861c44923b6a8a61bed0e8cf5f060ec8002dfb59ce0648f595fd60e98aea4ae82602ffc2dac37d129a57b9cede8e4911a1f36e87ef6d9111d31ae78d3766aa40913d7b87135f1a19857cf2436b38a9993d518df444a23b98be28c1f17c2b8ffbe954bb149307450c317378b5fbb9a86be299d92e8f0ae52459a8b281ae9e991c8039762a072c78926e7b5b1bd2f032be517a8b37896f3d5d2ad4c1ebb9bb893fdcc509bafc2b83bb7226a90c7050c893549127b1df0126887a3d155837ea27ee188d6c86d973aec3f027f150e268a8d2ba593e998f43eb29402a1f912047194e4e8fe4346af0aa003e522fab92037cc16bb1f7e1878d744f6ff765693e54600c312769c0b4b2d5e12727d3052a73114d2ab5df5e276a425d941b3068e4ede76e7f88c38397c9ca93cef4f34b694c2ccfcf0e2c887b8d3c2e2f01d9f3649f9d453a5e52780855a6d6c439b6975594bda5c25cec6a6a75e536ebc8e836d5761b5d2cd1085ebfcac2b0c49558cdde0c18b8ad46700941bf64f810418ad7364a9672051d20c8eddc39164f2dfa20a9552a3132995a247f43c01e835297535a55568e95d6ab2a4b3be1442a0c8f5f07447fd5d285360b10a044014b1cf4a1410838996a57dac7ab8c34960f568ee9a858e99a4b498ab235df57ba37215d0db48c94388a731ab285a987442139254487db2d244b350e6f84a27545fb0ffae19ad93ea658ed01187647df0908ea644c3591e31f096be30da4e6063fa201fd725bd9e17c945c4e1fe4142f4377e4c866feb2839d82e8252c27119bf498f6f0489db684646f44cf83fdd9242434bd35a65bdf9d809e53a43077598aa8c45ba86da107414d2e46136db6da185cd3dc8dd216b17440fefa541222b52c6348d6eb0fde53826890083498f5d22bc87ed487adbeb3a55a8f3ce68ab614e43f053a26431255ace3da8b066c3bb322fcc6d1ba99fbb7c116efc5a31836c59b57659258755ff5067534dcb875ff1bb38178a146c2fb0b569116ef80730de85c111946690e0f3d8f48dea6b1f34713c73a5be7af868cb2510269c450ce1eb2afa586f725fe9ff0f595a6f12e32025a96d71072bf735169591dac9934dd07e18db0ff580662ff0700e5711e08e58e406db8668bf471480e65b23706b13866c150b3291d042871f8f2c0f424dd0009989e395c11ef2b5d33650cfc05ebe52af1d27a038ce34cb83947659393d3da9a2dcf4a63ec3c022734841dde0cb8ef21df6f7258e01e7a2db59fc67dd7368abb0b1041d7971dbb9077edd3107f9d310c435ae2d126f0d5e14ce8957fa0dd3bcf8b5fa42fe16a3dd2ae0bfdc3ed778968b367af3b788d4a2874cb56329faa49dd84b4fb60e8b256c76fb416f18fbb3bf5b8d3dbe94dd1ab3e82b745766244a5be8ee2d2ed932d95cff0b396c8bc6f6827ba0e1926fdbbce0df0ce6a0df631db8daa72146e2e8cfbe1c0b573d00e5aaf755f7e9a1454cdd0d165f8e077a3e5ee7def1c59666f8179fde6e2cca97cce9c696eaf1ba66dcbcd3d5ebbbedff43658c20dbb182a48bbda59b3c0f40ac4c75289759eabac31e6ac40d008f135f4b18610ec21fc229af0750ceb7c52ed25bf1642d4e823232a6479e30c4cc431741474208483650d264cb0ac88da48cb9878845d88cd4364621b34e0ccfbc17ec9bb13ab04f298ec8c2172222cfce5e0514958e61e75235c0c45d171faeddab4b80cc5bf863e8e05ec00443318fed599ba7cf66a6eb330d461ed40af9bf0adf600df2645ec7ded8ce816f3eadfe38f1b4a63722895de304810218aeeca1e4a7300718f2515c7b1bfdac62e1df2e686ba579901456c43d419c165479e34e85c5f902defe7faf34e386368bddfea1a49528894b4c0cb0929363a98a64a56d5d81f67cdfc0941486a869d9fa5aebdccf8000000000000000000000000000000060e14181c28", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 19, + "comment": "signature that takes 2 iteration(s)", + "msg": "0a00000000000000000000000000000000000000000000000000000000000000", + "sig": "06e1477f032b417f6f1fb468d213acc90ae675672e2108780599a0c778afcf50b763de4b13df5c81a0ee78d66a1c0af7956a1c1654ee03773d4ae23039fa749eb8e824212b137d4cdb270f790988990e0b24da0b14e14b48c38b96b4a2916f7a8abe3e0f3847069a4497ce70828db8e0b7a143268732324f6516f160ed54d2b1e7b5ea31fed71365b7d7bcf9d50d17f9417b0af1f6b5db7af8c7063aed32c21af3a71027504ded80fe1828fae33675d5d1e47bf45dc4e1102313ddc0d9c3348e5378b68cf29b6aa3e80ef854dad0ce1c5e7cc5ebfa145e51cba874696f4a62ee4cf0591e1f78cd5ece9ab042956f9997ebd609096b81f95dfe461a04172772a3eea62b5553c751e039fd2d8d8283e745fdde2b7320c06016df6d260760542d5d433ec9594e88918c7a16d64ae484efe5c7a4baa4f038e5c777215b3c84df89c67d57a766e7a51cec76f4e14507b5fe3818f6c91f43da897d1a97e100aac0265f46770b6813642f6e6fa9611b982a8e1f8d79b51a0aca523cf5c0b2c5e2d6a9d5bd4e166a60491df2c777cc1d3bf4b0316964b066bf79833b324e15bc2c862d524d5c77f563f3b7d6a027895b69f6c69ed0e74ffdb3f3f708d386d07a13b1f649e428aba12db6ce5af1aaa28588de91154b1ff0b0fe1cf78a0e087fb03e0146e18451b7fd992a1ee7e1fa25dd925ee77bbc8f8cf1080b862378d0923524240bd3a696712a3a9f7f8c088461ff3627fadc6237356ce0f3ee9756f4e0a7ae1042ac2608de536dd2c3028afd1c250e42f9dda6d8dea8727b186566feb5e1f9e0860742c802476b115346d47c732126540afa947a297ff963dafcb7d67fa1c1bf877003d987a151d7a9c5961c92cfa403a6288863fdce1ee59730ad62204a73e0d5e6d92eb309aa115cacef5f3270aaec3375904d348861fb5a3ca1fa509c56352e185b5cd817d037a0e64bdfb80358a0410dcfcd16946260fdae9dd9164510951c333bd1118e0043970ca01b2469062cf4ac39285a01b554bb45459c999f379226eeef754639e8129f6dcaa695cb9af4026a86c2c32cbc4a7a528f2d2c162c9d78b4976d60f03a68037552139094b9dcf6ca1df2882d0b13ce681d38c271fb119d8c0fed6d962db8e0ff56dc528dc099d24cd023ea86ffa85ba2f1b1a3eea854497ff0e3274083981478f7ea090f7e6ddb1588c0fc47f19d6c4e55d51e78c026010f9bcb021d7af31e8bc9688810f8127a79db03abb6a1977a6115f89af9698cc9ad2a1f52af5f485ab1bb77e36c946ac5ff4fa22b8159eeb3569fdf6d9b8cba45dd5232b6cf5088eb08efffcbe8256da673e198f692a332aa6c2d61596fc714af5d74193db856b135945acf3bc48f162495df092bbea85866a99ef710ec7b814b04435320cf1cddc37a641e73fbdba77576b64d6c0f26a3b7bc43f890cbad92e92d5afae9fad7e008c2e524ae4948819efecefa253372f70868f0bdb705981da77c6a134eaa18e093d8e0612ad5e0939920063ba299b3fa7b67eb3b309f2d3b6ece9bd7043d7a69c23090361c5d78877b573141ea470b600d55a8135c2f2c88db871109af0c8629fb3fb7014339911ac78396b05cdd8dd994559f671a1df9abdd0e351416e99ae6831a2178b3bdd669ed2b0e36fa7ff6e0d003fe748de3e465d513397be9dce3fd7808b598d824accbf614d9c3bf37fa202bfcb39419b617dcc1bfd1da298da213d75fd72ed5fbc96ff692e250ee1168e5562e943697add071de60d275f97daafac026f4f330d0ebdf78ccf4f5ffb5d393bcca0a4daf9e5857ad6c568306c0dffe7d4b25e27b5709d80f4883f2f4f2d0e8a74b92ec438046c47b4acc70d74e45a802d44196251f0def2736668cf5dea20849d102108bd7c1a3b7062dc8c27f08c6e9e58bdf80be8ad297e0a345d5fec9c56e2dd682e6e8f83c906d96b535d1e46996bc48bebefa31a994a8364caaecd14359be24c1fa429113e7138670f4b0b83450441e41575cce13bfde72f649db05b252d8db708c1ea907208679afd5f4f6aaa47ae67303547a2795d7fc6d640968377e36452ee667b1fc95e4e00d850d35187b2a5bf6a14d7b1cdca7444a15d6746522f25b505ce5dbee34c3c90ddb5d14ec017286fb433a8939e626b9aaae6a00362aec1d644ef01d45cd6ce39cca54125b80e0aaf7236cfaada69df1213cde47bf7c66e2a685c477dcfeb051ba25d815010b414708703757ec2adf8ff68bf6994d53852d9af571d0324b82edaae973467b8bdf45abda2c76e716e16403d953c2bce331e03948d6b27fa81c841d23f2bbcd60178db3b8ef769cc7a7c35667d5eb5129aaebcd792f8474b4b54628e64ad7cd14cb1f26763257c90e2fe223e122882cbd6b4667688ef98e357988650b70597b014ac487d5b95fb7dcfd1feab4a875e76bd17074917a7ef1d5a1b1bbf44650a49bf976fe21ad72d31d91bd628890ae0ab6b8062d111d441de4e7bac80346850891deddd0e437d6d8f110ed16a535c9c1873186a68b13b0f10a5dad3dba0c14b3beb544306f57f4f302a732b46bd30e8f95943fed534d2ec8c93bca12a8e49384e236b63090af902e1b291806a0a595723b32e2bc84a94dba2f767ef2e9f7c808d7457888041ffb6c56eebc22671f2eeef5f865c69908932a21b9e39bde4195029abcb2669c41317b1a86ad43f0f6b88730ee6a6a34edab5f21e415e33ea6851589855a1d9cd7598e320f9cf2d3d4296c51324248b99bd83a5eaa7216791195ce88e598dcc9e77302b4ea690a056d9bf1c6c148049b86bdeabdcfce75790d5781405c5daccdc08ac560b294f5f1ff08a321cac157391c6c4b05656fe3e8fbe0328f03541be0a7423e3943dad132c513725c470f4ef03c6c3436606b4292e9a3387a8439e572ee08cf6601a6390a3a8321b6aac0a3798bc02e59cd13db4d21fd24b7976db3a76122f80d28247e0e3d91420531a58c935385947be95aec39837d3cd15b95c849e4033c9cf01992463793f4519e802ee7ff94188ae04341f77b9ff4d02ed489ca4f3d6692be73423aea0fe07711bda9dd212fbe0c1d36f3e5180ef5ca3d5e236d7079f0df29bf01efced2895059c59e69f89d2557090f41c7625bd570749992d8c1516d0370a8ea089d10df7fcbc46ba9b1afe8f83d044089951f48e020b72633993a8be6cd138506f4122339cd61e8fffb67e1556431503a2b609469f80ecea17e8b06279e71aedf7bd40542da1b78b040aa9ad84a47fe0057856d656fe6077ae9c15af10b05f5f7e2e7e158f7fd519b4b15b616d8cd5604a59a30d9cf6523ec5f75f1381e038f29ec5d62a40b7c84818c8aeedadc39c7aae6e2a354bfd71712e81c9e8122e8d11bcfdf6df8b3be5493f8c24aa0a2bbeece07d8e22869b55f9b2052064e4b2b6c10d578e5207764ccb3fd7a22475c89a95df8fceac1c17554fc74485c6daff0d1bdff7c0ae17cae3661628daa1f4ac3f28236473bdd036cd1bc23dc3615d88b29da279c8932badf7b46014cf7ad68032dbf5aa74cc74919bd52833c027dab146e0d3c1064ede6ddb9780957edd044b27915d15df7aa497a7351328c91559853fb9c9784e7307ce676b54ff2338473d06a13186e1a943c50155d726c3458b87764519667471965ad94b44273977c30156db0c52cf0a2294418f83a29cf88a8401ad54fe75d2bdef85f8b3e1d26b73b6f58eba6639fd57e11e35063f8d445b55855d59c83e798d18e47d5a58bbf01f894e862d2fc7ab1a5c7e9bb59de924182e239f4cb443bb3e7b5a4bd42803032bfb857bebf21029c7dd8126113bc8d3d72d18dac0ecb80a1d65f8997870050fdac159915588c3ce74d84b4508b5a85cc8baaf19a8cb7c110afe83882ef4e11efa9f7db7b70f770dc695ebf6302a9d2573b5e72d7d14e44b62fc762e0e58b0e6b442464af9996b01e6436a43e2d07b3972f27ae7043d4539e66d23a352c43d9e41fb297c2205d100806f00a5aa814f9d83bd28014af96aa7396d8f6b01693605a2cf1e4d9ee35334ed1db913869f4657454b98b6c18fbb1042ca875c117aa64f30b16fc25501fb32aac607ec6800629c8dab7bf8e87a6b21b051b8cc9972845e63d785fb95fdc150af9dcedb4abee97a4be07abacd1453e607a3d97343e499263f7949a23df69a2e5a373749bcdfa8260e6fc527b06ac347b73df75902b7abb28ff73a5a6c5cc7d3a75474e1bfd8a306f57867b5d929dfad5f1256d16b79ed5620c5a6011d14124e4220b5385ac38d66c6a799379b2f88ebb582135584171431e70b84334591d8b5d640e4db39bcdac0d6bddb2a4c8f2d7c348e8eb04de5335c29a36ce8a94d61cb3d2c885afd64f7d62e13b1337aa915e503c2b0f1f75c106b92669c0378bb7ea27cfa7e0c5c6a68dc8394edd4c1d807ce69715796401211e58623e469532d529d0590105bf7b65fbfa126762b9fa80f0ab0434085721b996619017c33df28637324c0ce95f1637171b792eee9e21d460d0e3525e78e11b00bbc59da44489c14ac50489d85b2eb1802c9744054630d1896b25a56af459296cf4054e9c029677e41c7b719cbfeadba4b35d222a374e542e788296afc487bdcdd4e3eb092a3191afe0e313243a54bc3d6b000000000000000000000000000000000000000000000000050b11181d1f", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 20, + "comment": "signature that takes 3 iteration(s)", + "msg": "1700000000000000000000000000000000000000000000000000000000000000", + "sig": "933370d9dba15cae6bb2e5bd527aae89aab84158416edae3ec8b082123c613727c19a5d36a429cca70e084aacbe5814d43c86f6576372413458ff12fa0fd9a971c0c9599160348ffbe5a4eb36cdc471b1fdee78fd2c9ff27850cca7dcbe1fdc7952685aa1dea344233972a5e98dc38ac5fec50d6010bd62602b326e8d25f4f96ec746ac95dae223fca61f87e374643aeb1763da40f25619c1b759a68851b23c124c669d8e40b8178435d1c759a4d76ed85b0d689df4123a28221eae8aae39c9be30ad50a9dcb5dad392a487dfabda8f00406229b89a7a2ca5bde33076343d26f7f804fd5eec4425562938850ac8424632d0152f4a3c2333c784016998aa5d1670137c470d2703b963e8d1d75aab8adafc95b611a6c798c5fd989512ed5c663e4b5e4a75ef651c9cced827632ebc92f87854fdadf891d61b6166a0e60a8c43212566b5923fb58ccf77449fda7a26adc43070fdfe51f169bdea03b375b9eeb9003fee45d4a35b94cd05c2aff37d73fc3dfcbb3c0730dddbebc8ffbe931c00553b951f3f43721fbc9a35b6a66ca1cfc7f3c3156174e392bc0365561eecebe498f17738efda8fb3a84b1c0372bdef2f2123fa4f2c3bea41f68fba80987086df098d5b723d323ef4118f82da49141e7a0f3482dd73b09a6a4a4ae7afeed28f4b2a17fa2013256e4dcf58aae656a5a5ab7329cfeb73d90ea6f3a119260d812b6fb18bbfda9c23c96f1d2e35c2d847a9108e626a8f1a186da2531045b2138a0366286c87b789357133a838928b943684c3696af815a427343add25c51d1826fc48a6b9b1083060279af15bd4121574439aea39b97e20b52e90bf9bc39f1cd306b89c014a276b76d0d46dbe9262e020cb75f7bf9c03b1bd1aec2374b3cf8963d620ac70695f210b95d401d61c3823a9e486c5db3b5a7be095915bc0ce03fee3e555f76c7bc8179c5c7088e0dcb4d2b9ebfb9cd4d44e94a9c13e5ea33e0f8f644021b16bb124ad74a3f4b974516cbc123294d554a6c3d619dca00a62d2229fe47d56e97fa63aebeb84f96dcfa272b224983d54190f50da0759dbdd4168216d0b17cd29d717dd111bb2de1038f09b52b996d875de39d393247b58f6af81f228fee3598a4b111110c125b71072c483de8b42aac1b32570c3b703cf380eb718f37572bb0b402ea427fa711649b193e708dff17a369ce430033461b5746c887d7b0d885535ee4701f3177947e66272c5b76c9dc1bd927d5441fa3bcb06acb2463017dabc1de7bae9a73262fc5ec075b1e31e7d7891d336bb67b2b28767920bd35cd2c81082114291d1e0aee7a285fe0aa6e033124876f5f0526611f46f99dd9cce92dc67a5116348020f02890ab1824781c434fbf222247042953f86c639b90bffe8f22b6af5e219031ad3a093171f88b1e285b9aa37fd2fe901ded5853ec762892477a53989be6b56d68668ca30e3de42477dabefc134da18bf4aeef27e5bfbf01c9a26e03eab7f77275fdc9a7a762373297f71a522eaffce5e5774cb46bf270eadce581e95dcf59878afbb0d357b5777aa1b9605868273c2405bfbc342fb15fe6e24184c98a47142e4858a2e05fe2f6d7c1cd3d24587a743e5b56e4a74be19e8a1b3651012a4ec6cfe3aa79f008cae2c72e130eb21969badbd1046a7982f53080ae1d05944bd7aafeb0a8eba906b8a6bfd282fa84c60f8091bcf683526a7ebf458a8e38f31aafa2330e93187edb8eeab52a41923596bf1e4b17d3fb258be9714d73f8acfd6160c3d3ec5088a717f8f95ae17ddb97a62d8eacb41dafc8935704e4503ef6c2711bcdfd7af7f84689655018d805752774a38480aa44e8bca3c63caaad21e999185b11a25ff91cc5f0ee469b5a793c11cc57d39ec4d990a1065400bd4d7b1a8256771eec57307ddaeff11ef1ed288e4a1846085e45d54eae002fcf6d977b0adb8999d3d6f80d549c49bba7f4b444539a7d6cc35f045809eb8689d70ab8c3e237113f12674f57dfdd17deb72fb6e387c8bc633610903a77dd57816cc0a6e280a4e2f33a0af1aba75332fac152fadd4665e7610753b7085144ac0800bcf188ea0c19f1d4c27b5cceeb603f4f7c88ec89361821e0f226516d19384b1ad1c416484b0716aea2bdce885d36990cf6524f21615229fc002d2fdb242363cf8114662a1d1ad17bb1b6e72432c2e7e137ba7c93ea9f273cc80baa30326ce14e17df0ba54ef2ce11e2f34eb44927d3a14397a04a3b6fd5dd1e73a73002f7f1d9d1428f6224a11a8d36b0bd0034b5abfbf02dfeb655f08f3e0476e6e6d6d9ec947e2e67aa4f6e745365ea91c025d1aec010fe1e7e938835c89a5258a9e0ec5101a60bc70c3d0a72fae0958bdb67ff5422271061670247bb6dac5c8b677492676b57652edab72c41b09c27be11ebded986a1aaa642e6ac8c7ff7bacafa6f8c46f4fd89b4f0a01c70a7a6e7e9282cc6b54e22648e1b65207b8d7004b1cf5f939fdd8ff53de649bdc90a252c7482ceb3ccc6ade3e87d6aafe6b8b8c06d66a4463ae93600d530da0322586d01e12f5c74fab208cbda52f921eb30c62f55fadf53f4cedeb7d30cb6ce9645b0b5dff6a016817dc1a0b9a12154b313da604a1782e264a7cda600464e14f08122b89c70bb254a3afd805df6af925b80b90dac6e966ed6cc7a98e394e9db81c61f193e548dca9744ff2c8c81da5d5bc0ad30a35e1684d9138c2a6d8e1f8b14e2cca3bb71fb8da85c236f454bfe35edce1862a11c69ff1f14c186f6c2f63c1faf7797321aab3777eda7a7eaf43174c232dceddbc5e7eec0c0310d3a4b47b0f058197283d24beae7a235db0ec16bb48fc8ec970e3b7faa4d21959f4460d0e69959b86d134d60d0af83d660234f9a33818a12ba69cf9d26cbcb7919e58cc9b6f3ae8949fe0b3eaad07faaf72c192dccb6c8f3a402cd9c7c79957fd02b97f49bb77c3136462dbaef60e9e49efd9b4ccdb85bb674b956f02deb3714fa157ad108925bb171af703780ec937aa00059052274aaf49239edd76293b358b9a8d12f31f6936efbc56d0c337cdbbe53e9849952c114a58ee46fb8f3e77606e33bd6b504a578af9251a6f0ce4e2cfffc2bc5a635c53742453c61ed0b3769cebaefafa6a9c96ea7ba451792ecef7f42c72b25e51403705119c704dab75d5daac4b21315999615a1961d471dfe01149216985b70f02e132d25a2255be21991f4b2805ae4ac23df53331b00f8d04cdaf4c1524f66b24e4de46923bf497b0dc5df968599fd5dc785db98a3c4f331cb143ae77da7c56e8149469d97d11bb82e27b0f724b1d897540c60095947c5890f5ae59cf47454fda7e5239dec35c43e70cb852812cd8513efae586a59ecdb5deaf12bde5e64cd81f2786c1b28ab8cd81d5934157a72d84b7e819faeed9490893fa0d57c8e2be60fccd08b6469f286ee86b1ff9b1f01ab12644e583dcf7abb82d63c7f747b7bd6e92c3184c0b21a6b2485ec16e3cf56b8990a1f270cda4a7b3ae107787edeeccebd2926a0a9ba57e25dfe80f926d6d144ae981f1f22bb1cec9f5fb74a2d85d54ad0a36f89fdf74b529da55c77e983c88675dcfee789c2c61ef987e63c92b86610fb5145dde6d4e8807a2345ed9e6b52891e4e44a527a91ad9fb737e821b7e4f5a43bc5d93308f87872e920d94d738783d8d6797fc89b7796472c74087e890330cfdd1deb3fde357b5b7c7352dee21ced6565292f744d836cc10920f9be5978a8d697f0e2c75beed6d0a9ec750966e58ddd9600575fb4339804cfe7ea08bd193cbbdf30133ec8ae5bc6e17ee93890274420b0c641063b2c5f5932f805681691b445054a2f8b09ac6ea4cc3b5e70431b5cd65d2842d5772a6be0ce1432a646e5856f3890e2e412c18d780d61bfbd6ab2a32c945b01bc326c01c6b53fc56778f871e306a501951d795ae5e70cebb2d8229f31d71cac228cecb77b7c1ae57806151a891d758043afeef3d57950cbda51b46a57924930238e2c820a0b325ab02d3c7085cd63f080a4ee5e16ddb191bb3874da801f5f14f37a734a943a73ec3b8c7d6ce0fe4aa1a4e33ffe069897658912e9ce9665efcbb9e63bb6f019cde82de80aab64fd3f0105898392c096cf7c88c2e757cd758a327ed6c524be0b150f80ad1e6c5e098f6ad82baa82862790ef3cd000b0d6001864474ed836a8a79becc1d280d9b10c5693c8e0a35c2a475249f2d9829e17a302a191b210b21b72bca020351fe64034082ad615dced25ecddccbadbb997e4ac3f1e6eadd8baa206101952ba02941526c4d41de8142be857baf927f9006bdfe952e51630b19438bdce494ab8a56fb2d32bd7c0b4ff7a258285a4df89cfaa3d437a99cf0ff4fca0d7e07e972b593e00fd56f5023697b3012ec2b79091b3850f48754a5ca1d643dfa20cb5542be4cc0c88facefaba58d040154922ee6007ea84d022e31e58f9657c1ca5c5fab27f30446e7538255842f3abf57388db45278323cc8c191642f8d1b5e97c0b173ac7de5f2cca4e8acee200981c2f5009968893a5820663c41f75fd5842f56b6657c60a44320d01877f5808703839a42a439a14d04b6e559e1cca6d4713ac0a6b101368a87264582a9092544555aff5fbaccfb1b1c4849525c90a5ed566c7f9dd2e6f1f47987ecedf800000000000000000000000000000000000000040a0e171f24", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 21, + "comment": "signature that takes 4 iteration(s)", + "msg": "0600000000000000000000000000000000000000000000000000000000000000", + "sig": "7c4dff99f029bc8a43bff5483f53e3d5233e2ae3358c21bced17c6463459952f95c5d288e283382e9315ea212a2d6f8e809abae806404307bb784e1a9d40b9b42eb75dedfe370d78faef47a77684fbb35daf64e9cb154a8253b7a3249df68687bebb1eb5dd45fffe3a2e05dca8f315a3aa6aa1d2d9e7f2adaa2a92a5dad67eac8f37ca3fa2f9c64c97222d786735cd06ddb9787a7dc7fd4026ef4c984186c7f695461afa65f11ce018023155da1b3d7c13eeb2df0ebc697690295cb70b5c08d3ae431062337ad205cab5fa85531639a0cd3d3dd03e503d36563638228375960e125168ac95870f9f40f4cf620e97fdad9590935cf3acb818e6c194829e6aa80aa19791dfb83f9f84b1aa98676b352e8105a425f2606eca2b23faf20231c00222c3db547123c16f0c4e72eb1cb8bb3f411b882b2f552da45c957805aaa752ad9dc24984214b527e398e088f729e1690fb7f6385455e3da14e5939e85ad2a33225223972db3303e1fd2ee5bf1e344688620f76319631a7cec70a14ae8b41684f227d9d242c339584e3ed547414404e4a9eee931c1fafa16dc570a1a7c0b400b592afe14511da4f0cca1f474333dd4f48b8a663450748571325956eecf5c6cfe984377055e39352f07d4a3a95a3a41aa5a220cc39283066fd4bb2696cdf1b71fe837b200cacbfbffb06bcad747619e6e5823d8683e7ef5f42c40b8fff87d5f3d8882d595c192e7e941390cf0ffb1f5ea864ce27558229076be5159067ca7bc6e46af17f5270e79ade6f615c5b25c8acc461a26c7c6e30361654319fd54094f35efc6f50f7a9d9cceabf4260917ee95a191c0b95b3cc53317f60f57d151f8c767fbbf9358b3956734a1ce14463ff88255e5c735778aca422a1e0266cc5a111611539e699a928ad2c67a53ced4635dc866f1921d4f15d40fffcc599f2eedea3cca120d7920ba4ea1d0f96ffb5c802497f020552446d319de1d3b07fb396fccad4f24e1d602e2316f3ef658f0a8c465b8beaaf7f8471cd3282a5d3d8ac8db08193685f37706c43888c8f22b0a182b3b8297aa22ed5a9f464da6195fb380861e40b837fd2dfa64d7affd8b61719921fea3c883cfb9a8363d1374f19616afdb36a94509486cfbe7566bf22d017b97ffc76671930b17c04f92869ac903eaf3f291d85b8460d612ee7b6078a09b958ee53017edb9f14a8692bfd40e53c455d3295ef7d09231d0fa50ca6174e5c89497bbf3b3599c038a89df8a9828a166ed3218f916b0b036f540cfa9ac4ccf7de613f706060877a5efc33f7c28f63f5782c582495bf7bc02c639b23f9279c695cb738670d9cc6381486c0428047fcff70df16389d8e50e15831713dbfde8f87ccbb008df71d3d883a1ea7b6a16db49536f9b95373b93dd6636cba0305fff8217eabe9450c4e2098dfe09d5cb70fd9e9cb911d2dbe51b86b3ed4857821b5203df5fe28d86056f152bc56f5ff8316a211e5cbc05c4b70dc68220e1bd8522404f1402571dc20b97808c707a0f88a582a18bdb3d29321291d3127d5d889e7acd44fdf8df4cdc503a974cadaed6a6129302359be31ca7138d06be2b36d0f7985b1e165e4fc92456e5bea6f4422b918ac61f83416eedfa88ea1d623654140265f9e8cd08fab25a278231ac361a1f2e41c31fd99fa304e4edd83752c424aa0fd0aad2056cb1a5d8f323a75bf799b22c0aa2100a8a22c63b367afe21bfb47fe09b8282b5d8b3200588e94318ca9adbefd1ccad3e1b51b3d8136d8919b5daf30d9a1c26b7f404877328d3bc75eb04f5086b1addfcc6fca576d2f294c9af5321032a40962b38d09483acb1a297da896c3b262e9fe2e1a01e4339bd9302a9e18b9c9738b5f6ed919890c019b71c88b00162eff4e4bc0cc42202d20d7498013d1999b498537a06faf3bfce5f495b3b85b2ca59c3f308bce13ed20080ec8fde5051a0edee329a95efa552d94aa93fd40b688974be5ab661e9828cc9e98786c9cd2c93a65ca4f0beb69893bf4195088c560a869038a060cad4b2e75d459c984d73e7cc6286b00aa4cd3009be25da507d10ff6a2d9a8d9da74d71a1070842dbe468e488b3cbd25c965ed5f3e8b8b4299b172b2a3759dc0e4b7298c4e410db2c91fc459b3024967b1ff9419643580be1c2a5265288a930da874f67a93d34083489a440d28e461d5169b81b0c186e727b7bddb008a9043322bf8e148407e52bfd3271489f687f81726e624744c3fdbf23e74362be766e57c91b6884b3026b2715ed8b0409602cf7d41b0b193fa607231dc2475973b76bf7baffa103bb4d3202ea689db064bd77e466167e3f8c44c82631a94ce7ec090d8bd7984dbc365549af68331d5786c042defc40119c13709d93c08a146a1d53f967ff9aecd47b0873126dcef4c9ddd7bd4413086c3ae64daa9553119a0b0736d686e9b5462834094a7e74b49016b387bc189f2166aed154a646e59ea02ecb8d396b3dedfc75236177af79c943e81c8c2fe4891c2359d519f1f0a1bc6c28df47c1765c5880ccee8c46b2cc5fba64e1714f0cee54fb1f82ce5222cfe6a65f1220c70bc02383576644eaf94ba74bb0f2783ff3afd6fb689b9b4a495b5f12701b70a86426f76c49f8378a7875308e0d3c929ca4a9af40fcd75852baf760529d232d38b4159ea276884ca06451c9a8a3b1ff64e72cd0fd170a1df82b344dec3b1d81f62be5ff16e346f7707fd46032d0c39519c1eec878293d2745c0198d25323b3a0f3420baf2ba7f13d770430356230dce3150a5be083c95cb62d291153b15779b92b1e7dd2168d6d75743516e737b2df6c6dcaf298631b437a99e040b79821816b7e7760b6744494ef192626d4143aed607194d62849950685454a3e802d4c1ebd70343cbf7250eb55f5c7de9095a5a7265654cc9692fa914187d933db141a6eb2cb8c3a74fc3a882f65f8e2684d0a280cf68a8b8b4bc09b30d0e83a45b8bd1b1039d145fa994730175d53711f99f8d28f833fa53e01e6613fb831763b10a393fa05856c07cc5500bdfd3a4385fd993b36060d11eaa5d0802513080a4268114fe21599ac1a484a69bae1365d278608784df96a0f6f0f2a3dac459958118ffb80e2ce2d2e59dc0cc8826396444279e031b8a37f3b3b57e67207688d68d45e1d344b64172f66801407f1cf16190b359ba1b65987b726f752da5378b28e6262ecdcafe786fc9d73d9620111c20187bcce5550da1f82333333b8678d877e07367dbfb461fbe14b6c631efae7aac1f930c6e19f9a24565d5c121157f999cc61261fbfefa3875e9f7c7828552a9c816b293a93b44c4fc8ba4235523cf92efea01efb6f71121a8d8ab051300268a5a15ee6cc8f67af72fd033838c7316c7534521eb1fbf028ec0c5fc41d5f0347971ed1752fc9f2e8ccde1e7249df9a7386872a9b391969aa1a7e175ac0e2d67a8dd244a01ee5c1a9e28dbcbf93a0c570e3143d8fe42ad4958ad7c3f676aba3629f57c3d73c96702d8d85a7e158d078e83a18fae5e0a641ac36f83114bdfc4e3defd42f95f21402191ba0bc8264d3eabbd6c098368253d7b72b5939a3186b1cbe84184a69c3977d9e772ee1515fd39c70ec58e79033d457d04e18c61f660b35f869809c4334d8ecb524d1a5958aec2330f3ea03fa9a40ba38195fdb7c87e41b36f3c1208103588155b51da98b04d77a17ad6a4a34b9470030b4ba17b4d68e5766b10879327c1fcfb7b2c3aae17c2e9e4ec4591fac2c4ec655d57670b9d03999c39c003c94d888a33087df8743dff45fa6bd17816f08d6928903a0beca9681c5b9b2dbc0b86c77a350438561b8089a5b89db7323c680f167541da4388b3032825aa01fe6b313ff3ea1eb950f3ae61db339477bfff17b02edc3758281c21ef56eb0f119f9f766fad84f00eead21481cd2cffdda423b6ef36dda929e8bc202d83a26f7f2210523fae9801449549e1a5408e4e67f71c5e4ba649ab92ca80e7405b374cff399552bd67cb2e23af1a523c82d1b59cc216f4fc145a7d37e3e93005f1e80f20dc6f1c28083eb9df92c419691bf409127779aeb5eff0ba751ecbc87a2e01a28ba7be40518da2ccb9bd64d7c1f4998246ce0fb821155add716cb735e85036d4c891a8387b0a6d4075d0931b4321e823393c69c66bab4b7ecfc0b0be3aca9b9838dd104e6012eaacec40295bcfd4bf014fa4b30c4e609138de329a4aa6db6c8fc8274da94e2d4f120e4eb349acb075337c07264465b0491ea1ef1d530ee93816253abc0132500b573713c4399c8e3fdd7386cc736a2ca4e8ecf903ea13a2ae0929072ce3894f54103f1c1bd7f700e184ad61e2054f43bc18ead24d1ee3dfc7d7d4b901b692107102115ed5af19c94b5024a0be4187b479d7a704d0eb6cebcaac1b4d9405d464aec3147c0159e852ee41cf82887261d1df5953ee611066a574ffc61f6b03601202c678adab494483ccb6694a26619b0ad7fdf3de777d21e56ca9f00aae7fb2e2045c9c2e7ee23787cc3fc6d08822b34224f77d5ab5afa1226a18570827ead6dccb028974c33a5785cc3f611188faf233b89febfaca4d7eb5afde7b5eee064cd3b99f865392f6fbd6af39b1a943f4b7094b3d7d9e5f61b4d9cacd9a5b2b438618192ba0724c8d4d7fe00000000000000000000000000000000000000000000000000020b1013181e", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 22, + "comment": "signature that takes 5 iteration(s)", + "msg": "0c00000000000000000000000000000000000000000000000000000000000000", + "sig": "5957630f7c1e2cf91eb85656aff138a7d6627d1c59392d5c516219d3d2fd910e226ba8fc718b148905489d47413b3bdf6972a2395ca215a37d384b4ddf51f394c53fbdf10d8bee17811d6e43a2b8d4030d402a7a10b5cce9843c4814d6fee3cc9f8914c532c8bc5866d0f16efc8e521c367dc8af5f7196a933325d5220972b5c2b466d87010b85f38ea29dbab50689149ef09e90bd5e0f988f965770f75c27d075ac980b0d8b1381131e536f76182ab9b755622d176c365647e2fbd71707bd286be33ec48e340632539cb5d318b2e40c2a941d4738a40bdc5d2743a8fab723f464e49b601d76413187429da0430910fb7668f1c79fd0c02bea63040507b5a497a65b654820c1e647ac708f4ac8cda1adfa5ee28a944bad5a992a79c737086ec03dcd66afb04e622e0efaf59141bf4d5e626e437c429e843cde7a287222a02647c1856aec463996d28ec95697c5461728a1b06fc7743917d7219c04c6d8b0f8b8aaa1b02a82350da7e1f2958e0b5c0b096f459a55f37c6ebd412b5cb08e6ece7ae3467bdc142cae85fe3d065d2bbdfecb5191966457d02bb1def1a7e373c36696d28421fb769ce29858e329f1f66c4b130a31ca8ba94ea145dcead22c2c56e9f7e4106ea977b532e1a7a9d55d43e9c5208ef3eaf170e63905bc6d030298771aaef8529c672fbbd68702f6c1bcc7b37c884615e4394d05e38d34e885eb12176c6c33af56fe89c8ea75a50cb343c35eb0eacbf759a973b0f65a054488de0a73f6db2d1e1cf0ae9c6f8ee44d7416e5a42ea6f582927b91a8510ca7c3e0044b4e9e665423c1fa079076780ce663aa8ad8419c3cc2d7951aeb4a4658d6e74d16543ba82dc86346469736344a512e304a54ed6a026933ac95e2caad31de54e196f21b9a7ce8572cc9f35efcbd678ab7f3e9db9bf505b798331464ca6dc6302b41c8c0b757aef052eacc2646f0ff0dcfa6d915b3d066a14bb1e439dd7a68a7ba0980924666abe8e95d4153015627c5637efc81f97cb527fad1eb65ec623a713266e655ce24f5625a5ceae8004887a4ef127832bb89a6e95a8a8489ef56aed8fe51777d46c883a1cbdd2d45ac6751f410217d511d9c96851199b4f1075bf836ec3751aa13478562ffb8369176f14b7507d6bac3dc81378d9e94a861d19805c09e7d95401503566eab2487e69c3f9852298403a92d4c1522fb08e2c972918ba5e319f8d1e7fdab7b76380148e902138bd99866babc15f81ebfe5c11a2b8cbf306faede35d02d7553588ad37168aea5a046fe59ae78ec8523e2be594d9c7d5b4605b23b58617ab691e7acac66f27da0d17524ff04d7b533634f68290f83f35eb15ace70bff19b347f7dce405ab39ebdba8022deeb66c4fb10d16c551fd0f8ff9aff94cdc1dd9e1d282c2e2427da2bd1bcce7e0a7bae958a69e9490aaf7c88313a67424ac98d59377856f6ab8ec7e397616e8f51e86f852ae88e9915a0c5b0ad5e57e778db7fde223ed85e53743ac644d39c726bf8466472cc2c900d130a8d0b46b6c400af2446046e83651c0f86cdb8b96a8ece9bef26184d920b35179a033c40f94a00977b24a37ce2fea80ea4679d975f44c918470ec9a742414905e34b49487753f04e66589955b6efc660d91d3525ac72f750eb4e0c0eaa841830ea20b9eba7f43afcce8de1a82c37846fe08657875a612d00b9f6f58f1c07b5253d86f83966517cf2dce9ccf4d1ce3fc0b9aeafbc73d92e7ee4eb92517cd65820116b2de4ba4ed54e117e635ca80c68984cc8c6a8d5fd2e4f588f5abeae6227d3dc0b1355838788306c71da6ce90021deb333cd37b51bd4d0328de175b3850d6f33df7dfce1cd15bb0fe5bb251bd92fc3018cdcf86e9a2827dba1d45cfd2dfaa210916485e5c2662fdf801fe8489fee76ade3b0ce6be6414f5ac89b64bc797902c344bc5ab09eef3cbf92504f361ea3aa2bdf1d9d1cc694da990ae1f4fd961333fb5d6ad724c712bb6f216d337ba6130f40fc8af64c43e51f4674a7750be251d48d54e14b81322d655d47d9a60dc14b0b4d5fefebbcc3fd54ea6edc89cc05112ace53e0cf7762cf58134cfbc02e288468379106954a7f427ade2230cf80ee385d304ac6991d63443ceca1a957c6cd1cda5b65f4538d0418f054128b446c54fbf549a8ab2989ad8bd4a2274d08e155bc179ba90e75960df884a01cbe8f52d95625b31ad4fe7eb09c552cde89913e16f1524b1e2cd071edeb6318fcb145f08f68bd5a8b7e270be7d036109418c605ae7da18832e7224926d41ed282146ddadb38e11483e9919ba9930564f96676abc213da990f30f46158c101a89114ddf43c1844f39b674866c824baa440dd4857bee3faceec67bd0a62a12ce10161c0d4f2d7a900d33dad9ee0287ece2485664b96a83b96b61c1fa2699c603660de49a34f2dbd7c4c01e83cf4b0e1990221d6e242bf3b8971d4b0e04182585295f7521463c335df24a6dcec3456f721d44261a86b082ec1fd8232ae7a6510e086684ea01a8a6a0cfbc6deefac67f45e8a6b6f2de045b2fa4498884462adc991e40755f6d845eae3523b218513e4bf0e071308fc78043abad2f357bdc75f7e551a403e39987df2ac1f8668a0b75220c3d55763b08f968a06456641430f13559eff3aedc6fcfed436b9f85c799e8f94d7c90dbb5403a660b2c830b630876eaeef80bbcf81cdf769cb9024d0e4657308d806c10f8a1bec1da5c74799eb7bd31ba732f0788684ef66882461200ea5454a0e5a564150355a468f2ccc6fb67bb948ed4540709a0c79562af61bbb88c79a54e5001c168beff2f34ccaf684e46fcad2b434f55a60bd0bba8ae2a894fa8111d6469b6efbe8fa7537aa29d8907ca23e06ff5bcfc29958b288556932fc820f91de7e7a8a5d5a3a2c1e4254b647a82fc17661688ddbb7a518bb3774b777aae991e72dd60cd47885cddbd944d14be13beeb5c714cbf57347a224af71e95c26552159ee9d1a04ef09d167ee33564a4764ed53a08d05fd40ab57039c9bc2a3a6e1511811b7c2020755e1d889f552a5912162b729d5617c6acfd6a5ca7bfaa336e727c13eca15d5abedba1fafa451c5af1747409ec8e6cd2fd4c7e4cfec6235170cfe181262e1922d23aa2413b51c2bc848434d47955ad1bf19b58f7b27e2d38231928c72dde3f79420289060e48d988c96dd410455e4edc60a5cf78d57dd4769469fbfde9713a7ded6d1b735ac8161555bf97a671dc350fded988731487ea9c13abbcdb0d22f9bf15d543f4b7c1f72db9fdfb4ed2ed414de9349edda54d478ea1da24649c919424612002dd983105d9b7870f0b250964122051f0028229bd6f0877af38fc73a27e8e876b1a758612eee3bf94faaeefab2247f1abace705a3c587a260bba88b66a3ed189d089638ef0f55b81d34680a0620293b39c53228d8d80f4b184b628effbcc3e4e602037984d266d6767be2cce6709751642a2821b86f57fcd9ec3c0cb5dbd15adb43a48c5f5efd8419ac6f2606e836e39cc3d99e07562332ebea08d869fa7289d490590db83e22c5d3d36fcb8dbf6352a799661e358728359ce5c8e1c580fcf24a91fe91e48de5555cf7b13aa9fef7a3748225a545f17072b1739e33edaf4971a320e13056ec1df53e1f14a9180cac5a0ca827c8b140b20be51a6cc1d5907c5d2e579e97c8dc38653987bcd69440c6a5d4ed53e21154e03da52af3e1c377d1bf32b0cc45c96c96c3d6ddd4472f237c576bf63943e9bc365fb30cc2d5d0556dccb8eac3335284f514be897e62fd78d1c9ed301afaf026d1f257bced72e52946a76b5c5ba8231e13e34dc598e26d3366b73d11550df1e5f78b45b250443f4fc38230f5883e19241c761c1b371a45e0d010906bd8925fb3a62e80bf9618cd0d0d1b5e2f9b75470b2d7c3819bde2ad4cbc796cb97dd90e5145f20e6524e0fc68a23a7488e86d9730a0a95fdd73559b15c0106dd6692b85834abf5ade250b994f74f5c789f329f8bef8808dcef76d11ac5acec3a26ba7bac871198668186e333ef2b3194662bb40056925e756c9c15dbd80fd7089aa43bc91d90adaae64c2e23854878e7bbbca12f870b9a72461fe331dcc5423588be2fcf5df20bcdfd9b771ad3dbacb3119c28e67d461c7e1543572f22f285ae3bbc2131732d2949512e622e688c6fb6224d0e358124ff6b6e2280501180903425f17eb2891bb6d63441d23ea433ded94e0929cb3b9c9b601a7c409a36d97862b545903c7cd6752b3d0cbc578042673e4b52510d040509a6f06aea689fb624ebcf0cb13e8854e024b82f8aa624a161f6a697d11e159334eb46058d591832ba9e7ca4695523ce4026d560b86a06df6960ec0821f428709cd4062bdf81bcfdc5aa0e49671e741ee9e032886c2180de9b5723f08e5ef343e4a76f86c8096cf0d73c166ef584db07dcf3bff8c8f68ccf4188b80ed2b4f8127525b260f86b8b3e8518276055604f754b51b6d7c01cee266ff32d2136772bddd8aea1eda2ac41252f728b6121572f8f2178d09fe0d651489696df53954c291a8324e704a5bcd74ac0b29004242f4e2270e408d6251011b7fc3f03c8680cf633a798ae3b7898dadf1a425a6d8eb1e3f7469294f601072761868fa1b7c7131f23374daed4364e86a7caf2f5000000000000000000000000000000050d111a2128", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 23, + "comment": "signature that takes 6 iteration(s)", + "msg": "0100000000000000000000000000000000000000000000000000000000000000", + "sig": "e1412c0a8930ebd5be73cff29b68c3ad7426551e499553d7cab9b65a984cda37d793cfa5011ef4470dc57bf0c7d1c25449cd23c82868180997ef617a42d425cc5e1dcb6127d3b60e017a9ae1ac7dfe980debb098f6099d4a5d497b0ea1a063f863d484a697f9e4b87652249301455276eaeaae6e5b9c32991bb3a247f5eb6a64049c317a2e262bc9fbebaa53e1203d780aacdf8d8c1df9d104db25002257cfe39c49e88ee0adac298199ee0285aab5966c4decccdd64ff86a76da9fcb17765c10ce7ee8272595b0deccc58c8d89d11b78e56a4cc63b19d7d787988256a277b53ba7d99c1930bbf1cd550acf5c97f6f1b1bbdc6a9cd0c3be66672724e9acd89240987b0b17f9bb38b8b323e21b7df3a056b85cc41288d34707ddc050b8484598ede78ea295774222ef491f0d621509c9361b7c8537a4904e2e5ed1640968fa6dfcd828c8ba6e771f970aca894f0d57cd03ce325f4c3176b818f42f29c8646948b58796542da63ffc905171129418a349c0783ebf5ae14b3fee69492293ad3894345f07eddac036c40ad5215d4827de6a0ea0b4bd2dd86826c7f5c340fd2d62062a41c075259a9ecb3ace3722d3768d5a7d355373e3de4d6f87a408e5bde672f414826a2c6714a706198723d6e41feb39302b155f775bdd01b7cb4925b75aa1d0a0d533a2fbdabf68d03592de2b24a39d2d093fea87ca57e16622e59b46988d7057540a511506c1e7c819d8697564e161fb221de02db05b8715d7e8cb81b96bf41b257fe6c5dbd8ab7e4b6cde8a7e15077b3318c7d6b7c301c0ef33cf1f1c65668ce0106a259a599a4034010f5809fa7e781665d866dec4a5be77e8cd090a324fbd25cc07929b773cd8358d666ed767db22d540829f4bc09c3a60448a23ee40e09ec699c784649331563eb114ec47c8f1731db50761ddd7c972553e9819db31148fb97d3b4c9fbb89af7e87033536455f9fefdf8566b6eb0100040ecd080287da76a7791cb90af6253e701d9705af96b3597596aa58b9b0fdd7689eca35a7aa7c21b71bd80c3921449d3c5c8d9a26bd386b5c4002c8050b6c7f2489bee49b18ba85652d4b528beb21f35c4c9ab1f5e7f5fa4098b2d470be2cda7087c61c4f40e771ac04193ded1c45b0ad787be20acf7c9393671c354dd70e93618bcf89f684c9fb7c8fcbd004b737a65350e912a1945fa6f6f082406526f8b8b4603e171b754a3f571b7933e07bc9971ed2c299c4bbb4293b3282e34fc1244ad5c4c985acd31d4f2eb5b82e5b5e1f00c9be628e0a317885ab6e26aa7667c73c12f541cdf463cd72798cb1f7908d2945a131ca8ac4ba6343bc4fcf7dca98f30b0feade3f0841ee280da51d9501b5ceafccdb8319f9b32df23e74a12b4b61c44b3005ee58160c85302c141dbd6fe0d598b2886824b1bdadc874c530df612fe5260e996c6d289a2a5f3f811f2b50cac599477f9d8400298981654013858e4adf2b6a67daf24a5099e9a44f5dfc37b2dafc4aa738d4690f9650f019583eaaeddf32ba74c3468863cfd565d06fb26601ea919b68985f5b7f036b2ef1b7b0f6a738e292be4b263d30ea5d9784221c09dd6bd77f26daa6996bce002783305e478cc1cac235da49057da7f9cf7b8e25ae6fb02a46ad93ebc5d9440bdd07018ae26de5c51c87556ad561f3c7e130a24685f3fb9e39518c1e9d26c5be936cf3f9f08c464fd0a32502604a349c8956541d94cc0f11bd5a0733737fd75ecf57678264e63ce8b5323a0630a40cd6032d62ed84951427a5162ac1685f8682ee7d31621f6a77ade12acde5634bc44b21a2e1cafe4a689e0d30ac3d03a6903f75393be77fed6be1f970a4bd7f2e666721e271e155223c03c7068e4d9b348159ed8b09d14df65f4d86ae612ce3a931fc4a66c60da424d5c2cda9fbd7115b771e3262ac7788c70f6c0241ded2b9dc0d936e613c795f69d65539fe00ae8e7efdf07bc068ea4bb9bd83f5a64e970bae105036435bcfb23934dc13027ecfe3dfb7a1e9d3f7b2b07dba844598d4cf53d39fce8c0485b8eee92671ce8ed10b262e63944a1ee4889494917fa81e01b145b17fcbbd079e8574df474362fef1f48eac5b8a443973b75e72330eb03e15decfb18f69d10343f2daf0cceca3436c20612091e3ba0940dd3a5d5489338578e0e90f3795a7380d577a67e52adf7358f2e7aaacc75bbb81537134a12771c1539ad42307bb2c1a5277c123f10b74216cce836e78d24dc3ad7e794bfdba4d0306a519cb122e3b2d5a6769ef54636f4398e87bd42b0e6229dd7f430f5c6bd610f9c67c68f1f7a687b98c2e5a61ce50c9989a8de3f53c975bb75b97ccdeb3e0fb7c26f368b29df709f18193b9be27fec820136d8bbb9a037c13b03e8ffe2484d948a284d505916ee424414c5daf57514fde0a84665b2c31e2d4c8fde45bfdb2ca08e9974ea9449c5f332cddcaa46140f08deeb3f0b4bda7be04446239c7af4949fab33b40dba8feed31d45f85507fc232fdad3c85595643b4a7f2503c4bfc4b3c55d969af6ac80a3c02af1f5bebd23a66700733b36f133951193a1fce5d429b6200fdaf383798a1d11f3cd6536d3f9d27b58a5388482279f925a8ec2850db90f5f70650b0045b4002b952c36b460a5b566fd3ba2bf5bcdba0378c54ac9c12ccb46c7fe110aa99dbae10d5cefab484a3abbd517db89c71d60ed26fee9d55e73bd4ce16d898ba426a683b842885b514370f6d854321e599e24edec6c3a0db6f73c60bb36433ec58e162d6ffe8bbf2d345421341ec22e1d25fc740ec4d3d78b79484387a9207b9b48ec8585fb9f6bb4f776bf71fe7834d95bf4c6312d430eb79877fc71ea67ec4080c359d4c4901596e93edf71c6b3ae2edd5d491dea03186bd3fb24527e7f99c708fba19d606cc44ec5e1ffaa33cd2710cebf4d4b5869230b151ca8472d35a49cda5367098cf3ad4ddaf1838e77476108ead4c399938ff0cbdcd226b6f06d5323c3d885ff1b043e6a32cde2e052c7d5c273b5354eb020a81d4f9bba9fd29a5148359750ec9ceb6aa9906047f1fe4191d07a0b018df93bfcd96ff4af3beec9c5e5eb5884b32bc84f66570b9b57f506443ff634056b504871e4b75cc1bea1ebc8a9d5d07c9ea587b70eea92b93f65c3194b343cbfdc28d1a76daf95303c9c4ec0034fca333628720bdda7a3373d676e2928c08684e9d24eed7d9382aae547cad5837d6e1be3e7245e947053ee2219d39e33218d9ae52f6b5eb487b0e5b16ac35fffc45ac1d832df711cb11b2a887647bc2c3713945f92103f3ee2a52ad946b0d38bc0bd92e701c7e7d4aea25e6aa4ff2a42ccbf5da9bb99f88351076af1fb4e7caa65dc23a78372e1c2fa09ba8d46152cda3ecc8a9288598bed37e4d11507e6b5e239f377d1dc5afac7fb38ffbb7b2d4abc6bd74771923ae17cde020b34151d2555fdc1c09848196daab35745d88b80a79ce2bc86bfe7397edbd9f16188a133b2900fedb915629b3104dd6f00cd1403f8a62f71756d614c0224276594d4fb74891d1a2f93f43157b0a6a4135dd65fe25d227be62afe953667147fe7d3d486bc6d5436b218fb9ad0c6df31ce8fcafe01b81561e02ad5d34a0b669345a74ae16f651fae91365960dc687b5738d98817b10ea8197fb807c59a47eb187bcd2e4e873bacce97e70ddcba6b4189a57fdf7d6f8b62a0ff3d81348db2b8b35ad55d9cf67f668bb89d448a751b02071d1cf812027ede8658d51becac34be3eea1dbf31e6177509c81f5e3a373fe9e2af88282ec5bab7d00c1325c6a305bb0e2b47989ef26aa3cefe6a3f6e7ce5873f215dabf22c17e5e6fb210da4f5b5f576b0800ae1d282a5d897b6164d3a32c5d0aa176df03a6c1d2850cebd40f5d97ee707ec307b13538fc3a0c83a95ff0ea2e5470e1b682ed12f9e65f366c45775a9365bf74729daff7fc0e9bb4c05a53bfcce1b14cfad49647adfafaa0059707d4d72c133e5ec878e9887b41656cbebf749f9e19c3e9c4f464a67354a6212f43d15af01a762d8c7445f7ff27cf835e1ce11c844e488036838fd7254aa6c2cdb858b7fedf7852a90a8ac7fe2504dfdc1eea60f64a671dee39e72332e407637033a9146ce243950d4c3d07c17bfe22d9a191ff01315fd51653cdbb316e833c823eb459987aac7e3d6fb50bdee54652ab253cb9df0a661be1b5ae2a7e9ea429d7e8a5bbfe7683a2df259cf2f0221ce0c2feb06c117002d101921fb54e06ccadd05de9353e5874c2b67b45571a83e2967be45e77ad2336b076088b33f33f024185979eb36d57abbe493d84c7f7daee3b10e039339cff06cf36ddbb04abd0fb8c8dddef0f7e86f9724644d6654d4fffaca74f21f242a9722adbef84b44c9a1b7b815ea0317dc5cf688f57896c57af47f44b1aed5c92853a7eb1138a125c026c9e73770d982a0a25785cd91a4f315d03defca59a2d3cb3c015de5df285b53a455087d46109582854bedfc301b9ea9d87d4a04a2f9650b8d9a83b6885fc52cd32eeee85e740873330e29885c8be8bc9d657e612a87eb3969cd24950c9a8945844bffa33396876b885550860721dece6afb92f1d87707bbef2a34915657168c8fa2e3050f1029355f7e969fabd2ec252694a5bed8e0e6fa4e8b91d7294666737d80d3e2f51b1c65b8e5000000000000000000000005111a1e272c", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 24, + "comment": "signature that takes 7 iteration(s)", + "msg": "1600000000000000000000000000000000000000000000000000000000000000", + "sig": "4f7c826c9ac53f6d972c7cabe6749f3e045f1a718c31f1d860283a9ca33f12a2cd9255e55228c637fac5b89f39226c235956825c853e63a0370b5b6a1e531479d190f7f122d070142a664c1a14b7e7498e413acf0f1215a64f629e67abc94f76ec3687eda08a1b1f3140227c6dc3ec0a83da6d409b37618b04c961c22446ec81660f6f15dd2ad86b47b0aa3652e58ca9ef362feed608343178337f20e4dee23620c99e3ed4d8df087462db45a2845ca1fa4b732d17345a8beb9dac372f0dc399398d4c40fcb898fabb85d0dcf3cdd24e8a222b5d4db8945774dd061dd479f4fa143a524a6554a4253b5801f7c4bada4a50e5f71bf436277bc3e039c6a17f6aa4bc2b24cf84976438e5dee8bea760d13ce70f1b9299483e10509c9b4944011ef0a60ee29c6222399cec1ac30f5a75c14fa654bad1fe8b9d554f912f8b8b4a7cdd5d01b5caeb95d5816a7e4dafa42b9fa5cf1806e6fd8330a04acfb88ea8d1244365f4eae72585a17d06eef04dc7b0a9cf75fdd251bf72445250d94dddcd6c2890c4783d3dbe6ce5f062638b260f1777c46eed801c9fc5b9ed8c152d858707520e0fd4c7930a3cc6df555c6495671fdb0e27ab1c414272f6c10107146f5d8244237a4ad939f72957f1311483838cf443c1de48ee754be77a267995c2eee3ee8cc46a75723b9f8be0a16bf8a78f097196e094f8fd9e06506dcb82e10a03e8ca0ec6f363816c3f095e7abfa64043c6944e03f58cd478a65865bd706d4f3cfcc5d221822e728ff9c4180541af9e1bec0ed5803eff2ab27c008a22ae991b1fa6413b6b6ad0f2ac94975fad9d406ca77575ff3c02ca6916f13092be92b43088ca1d808606fe44e7db9f7151f83c423dd3c172f15bc635b44952c7573b592b2afc3e59f837badfacdfbb7df61f784aa6142cd9118be1347680db435213bd9cfaea1a128fe546e19e022c25cfde56793b3eff610783926b3ec2871ca1542784518c0056041fc18f604ade4b0b56edf2fd0652cb3577949ebf9cd02017f05730fdc741f267a8d03ffb41c02280a7ddc1da0c0c0b85f47f6968627bbb9a7adbeb36620f52f00ba2c772f256e20311643fee4c32ca079c81b46cf4e61b3e9766758ca0a87faa3f55328314006961dfb1a02773c363982ee84937668b98d98841c4da6b4935a6ca15003716f7c372a8ae78c29bd79af078e4ce9a18c9cdc19f313470dd6cd2e0ee931b29422c5a2a4654aad8879e35fc1f2bcd9811e128661f7c40e7784dbd3ae2a80772519a3a30c40852c7864a4e79d4861c6b5e27f09319970dc24211ec9b4c8e16c0a90e3efbb8a6105ec20761995592d85641c09eae0f98318a30b47e2a91dbe8f506a3d0b4bd8700462f92af214e0255ad7c85359d9ea046991057a5974311e94e0c5756344819743d40c91510ba540c7dfe2256ef8ed316c928d7e817ada81b0f798fec0b47e53776c46a1d58b56d95402f10cfec2a741b9eeae635898c8b2ac60f9660bbba2e02377b294e0e7de4426e402d5c8de978a11b42aa123eef24d6e5a98f82b49733eefd74ca677d15fb6a1b7206f1d8597b1f2a692feb244d7eccab6a9700a70cd8511704d1c469c6725b59417a8c25d90906222712461e9cd0e9a274aa609c511f6d6265c3aec5cffec419266ded863b9a596934f8787e950810c648341374a33bbf2b16809597abe0d99283f16bedc855a95111bcb7ddb2899da912dbb35248b567292adc76cdc9ea09c44134a98ed555271d24798ae270b91265687d37275d5f400a3329df5d5491faaf7a9232c74a06d065d0f7b3fa3bdff51e0a1a3fa8f2ef2e689a8ad260722d0ecad61dfe6ab3e8bb8a810cb81abc3e4aaa2d85e67fe5e7bf8ab1a2a0f70b1ccd50908a8e87017989cf8b4b928bf2e9f2686b05c1562c0f762a6dceb3c72584823ccfda18f42f9997e6c1758b5b3061fb757b4efcd6df14dcc469f4a1a0bebc7456debe613a732d578420f0eacec760b56a37ac7a2e7e7ad2ddcec761a13812d3d688ca4d0cfbeccca16bc0b01e6d348d42c10e834add48b53e910be11e16e4a40cd6cd15e663c6433f699e060ecb7ffb17cecd8ce20e8ec4c216305470adfbb4ec88710e6c051a3af5ff75354be0f8a192cf22e212446f561db3a3feea12a70291283e42c15978cd919335ec2e07eb2f716855d7bb78ecb4ea0a655f66c16bb92447af488baba080259e68ef8a3eddcb81bde0473cac96efc887be27017825852adc1475ce4d17a51f50f74d2876134722679ffd5c59afbed5fe43417a86f09a1bdd87331cc5b7a9b96a2395c66b5bf3ff17e6b9fdfdece2a8a1a465c726fc9043153110b3cf6a3c9048081783e62c1bc6d3f8fe5afa3908f9007a0db29b539a4e5e83f811aa2b13bacd1612c0efba98935698a727843a618b13a08e275f2a1f4502a0eea7f4bd369390304fbc5009acfd6141631102e8401048431f6b6ee078a9a750a29821ac41ef6267581dab60533e443b0444d87425b7e2f0db338d5c1d21391068d7c32a0b5c9f93fa6b138dbb47623fe8a1063dba1e7e993a6d8a097b4644fd394fe36e58d2715456974619872a1b4fa9eaea4823fe7a456aea64411554a1923b2bf9fccc6bdbd1e07d469e24771740d79c5bfe17565c281d5725ee7ab587d1181fc2aaa4ce62a018a61274737a2c0e59fefaa7fc32f1ae9cf40c82ce75c1ee88a4238ade693e7cbe902a575f8e0a12d5239331863103fe09906c2e80e744a8b2df74ddf78e745410786920a2f349f62346ea86bcf663123b16846526b9081718b422502653894e04eb13967444665d3b0424cefb7d6d30db4e84cb887cca1c8251c01314eff24687e10001db87f37e19c8112bfd31bcf77a38d846bd11a869383d32f87fbd18877ad7b47b557c213075b7b66bb55460423e0219d14affc639d7032c51f1edf8ad7559f817716971cadf47362734169e35f1d899a4deaf03132e8408179f0657e31734c92d6447ddc740b5b55c4d1c5d354a80fd6234f049268341552aa79f6f37da01745bf9cdfc8b28192bc0d0bab1d722ad325b6c2fa52cf1a01713bef7e7c428449f0ac7f258870cac215bc471448b47db93759a53124afcd92a0bb9b48b86fd65b1c575221137000608620c4db6a0812b7d9e632849e554446bb1794dfe1259e6688ebf02e4470f0e818b21f1fb6646f4cf2a3107089bbe231bd59f8322abb0045cf3d0f558bc91a07c91cf77c917140e0fdd926c22a85a3487180d7b3ccdc43a58ccad777e72bcd7da338b6a486d0853a305a0dfe027c8e98bb7421cc3f84d50bfb0fca0496bc012ec95d06661d548b97b47741ba9c6b66866e00fbe15db52d5cf968163066a54733e1c62859969ce33ac9606ce6e6c2cc38405a75af34eece3eea4874d7ffb42b55635ffe3cb5c383e6c3cf9e1bf30ed5bd4fb16dcd77eaa08cd5f34b0403bc97f3cce09ad04fe0d5dd5a033cf008ba1111744ab06d941d177fb3c24d8a86104db2e06d5fd85772c083bf6b838f6ad63d1f1025c4deb2ecb931928d66fd82c970f5692854d87b9de5a82d3fd726e300b95abd03d466e55080cd97a5cb12ff69c2b7764fa1ccb48a35d1da8bb18ae4fda44e43555ed3df57f30796eb4a13c1842bfff6caf9498b2e423fc743cf16c9f7c6e19afce9d3a2dd634900a51a06fc2eadd8fb6e816f74fff53246624a28111ef764da214ce1ed7a1fdf356c7e319296a0fe1db5a4a16caaff06755fa5ccd5a669311545a946028806a75dca6346028c5aa2a6a10e5fdcd7532e84ba3b5935efe175837249a35cab8c0e3284daf987d1cb68383dc1d4f58875ee1709054859a7fa46dda6bd0f04f35a0e4820760edadc69fbcecac8e449b0d9daf4519d957d5595b3e7d824af80a3488f6de3fcc757e68937fedf4f4dc267a6f0e3237f254c6a62fec3759f4a08a0509fca56768fc80550a798a55104c9b0ad9371595a4a5c5b00e13274828946ea4cf47f146df6161fb961c1b9dc5adbc66b993c0b436cdcb2bb98d6b3ba56cdc2e4e7ffd18ae54c42063effbec222f40ad313619d4fa2464f99eedbedb5fd7eed24bb655ad997e4052c2c5656691c85701fd4e66c40adfe4c9ab502da176193060330010b0a2fc558f645593ca792eadef21560a19ba0609fa27f1278cb6c9556392cc1322003269972abb48e3d3f13edf75ed2d27d696afd56c6910c55f1e103b20b3a1eaf7e8b34a3cd6179ec003f6d243253aff072da6992e755d17c1f8f85306f18780eb66c17a280b290b420c18498a1f8227fa8909909fe98db84ff9e6066728f90d08a0ecde373f7a10cac1911014420ef787fe1c6672a6c44ac3c67a55ad64e702dec536102fb26586f13a6f2c7b26f53aa7e1b67ee8218b7131b738521c53bb9e32b513768b5073e50c450ab839649369fc1354afe13da4eebb0e30ffcb622bc837ae21fca627e7546755c9034f1dc4b5221a229738ad5ee45128af12eebb3b28a22c0add29a46b07add683bd299d542ec6b9b45632c73d07799ee4569250e1da500a45aaf6f92f06c2ce245f2d77f4b0680dd69562a44fad935ec7af5f642d6c8534cc5031310a5361bc8210486d71899cd60382e92577bdbe293d484c50607895b6d40235e5f1f2378c9cd0dce90000000000000000000000000000000000000000000005080c161b21", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 25, + "comment": "signature that takes 8 iteration(s)", + "msg": "0800000000000000000000000000000000000000000000000000000000000000", + "sig": "464a36de67f458e0bfb24c3988b420700b2fc79c11ebcd8dc15f3ae7c4bd88d939c4d450c2e69b8cde439dd8f31023472f95bf20077dcf6cd357361162917c73d6756d22faa92bd22de95e303d089c5f5bebdb35ec518338824c46d9421ff69ffd586b99ac3efd76a9f92b4afe3330ad81f04d2aa3e335488d1516b4f8588786ff9b47ea3c43082a67eaa7338dba529ca69a3c2cc9d039fb9c7ab2356d7d47912aefa904557be7ad21dcc2c5d5ec1b7dc6fe29c3b466997e9082ff5b76c758f677a71802816ccae8cf422d5e26c3ea5fab1afcc7721ac5f36dfc1e918945ffbf8590ac4fda8cb7bac27f42bd75960a8be558aff04362700bc13ec5a14165c1e2fd1e935abc7634be683a1fa006b161c489dacb3b87304c8e16c6bc3b198d178aef455e5b3d94b1b1c8d1574e4369c7587dd811ea19456d4ff8c3525f4109093a028c94242f7888f1d0f37eda92fd4324ab20221171e2f092e6351790349b6757ac3190992018a4b3b82b65282aee78a8956efc70b99daaa2f7cbe58ecc1bd9dfffe966ac7b1c0f2ee072187c0f55306bc40e46c2890dcedeae6f7916043f048ceafccd28032e3f8d687d20198bba7d3744473b3afca295284babf1ae006bd143aeb7212a425228caeb19f87d7bbe235212eaf0690d536d30f4d5bd1216187a2fd812ebeb888a15a5e8b772f7f22020a086b3108679bd7041c7cba5fe5be8920578a9a4ef06e3d63a382a1a089ac66f39e715a7cf68b03538a45433f61546fb5f3b3d329f6891d2449d74c7601b988c4053b70e5d2c6432fcb60319deaedf0cabd72489940abaf67886d90c8c5e22b2c2b0ffffd043775bb91ccf9381c8c1915f48aade11606fb5e6e6f102fa10c2243292bb9567c1f0fb8496140f72b7d8a3bb30c10666298b7ae8384ed079be583c012ff54e6a1bd22ea8f528005612aa176fceea77bffaa3443e7acc537666574922078b5bd3227763b9ceb295d7024e95518590f566129773bfa8371825ce68aca58d76baa364dbe51c184681d7a6450c4442da1d5f943e97332f74031b7326c6e52ed8de535da46f6e33d2b456ae9f6b24c94892af7650c3c4193c11d82d3b859ed87fa188896e3c4e90de4534d21d04ed5968be5c8966674f42e6dbdaecbedb0d3afaad6ecfa97a30cea4c09eeeeaefc069d8d54816f1bc57a9e109978336b4f6718e49432062dd137a928770055bc2766a745ac511d949efb31c2f2fa2436b4bf1f98d6f0c82c5fcc88365f0de5e99f99125284534fd8900223e40ee63f1301e4ff886b6cf972543a385931ae5dfa14cd6d6ab7fd93ceae766e35dbc22e09866d5a125bdbc107c8d8c14a9e405eda8f04f764289b8e37c1ea7f5ca0550f79ba16d65544041982903fcf614df600dc788d908db234acff7dac63335bec95caf2673e772b8798199cf0199f80bcd50767c0462de2b44e9b83aa02cff70925a9a7242598f78726e5e4a0563dfd3c847b198cc74c25f10f14ac3c9ac7b57d007bdab39bd12f18a80b6b1b6a091851c7b161205218e8da921569b1d1e197fba831663905e58de88bc4b90295104332818bcd70f066fc8bda0e46ae858b05ac4af73ee90c90604be8b9bb4aa78cf0387229fdbdb6daa96554cb85bd95fa9e5b6ea277f058a6379c39ee2e94bcf5f4cc3ef936c80201fe22ee4b42f5f752a273de0dbd7698964167721b0af0430d53a69b9ade587aa8e2f8a659e917ef377c08e1c80e9ae51fabd2bf48d393f806a4d1aac149424cc8ccdbf947450c32d2e35522094643991cea2fcd62aa3f827b1a17869fedf099efba80016b916a9447b200c18842c0c0b8e21512df0d55cfa369052a7481a461f133a56e5de09df57047d61f2df2ed4a6d93cf21b2e9f5b220bd0438b4a1f7bd773b994d1f4c0b205dc6fdd50bd6051c526f63c91c0f8f316cc688714775961e114f3f23395525d8a44640032576c92a46e82b9c1b00157adaf4e3483a49f3246e98b1042d1d23995ba8429e751b03f6f386f42bfcbbc02c59befafeb5dfd7de2bf4b60971b261f3ee2a2de7191a520d0830335b14afbf37aca3998ac027cd2fcaa10b8f1e2068f110b751abf3ec913c721ab1c8cab31d1cf29cbfefddabf5617cb04ea123700d4a6c6aabfb8aefab3ee22f33c6c98d92c4a50e0f27d1fbc9ef06fd31f0c7d0526b10db0d88627a4ac927cab03f087c498bfabfb2c6600f73e6e83ecac32d555ecf87991a8fe7f83fb3817eb5e88b398f5498d0d0e62858d30f2278c9a7427abcc67e5d8a377be81a0a93c262b462ea1497a05df1983c34da6aaa3a8b11c9af92089c9556f56b6c91295c74efa1624aaf4c0c3c7bc404e0023c8244cb8616d5352e61e63673d3920d41e2b7925b961f409fe522f692f405658a56395915f9979d28f6620fa0fa759f57c5d04ef8d69b86494e86f243d778e123b86ed787128853cd4c7121610c6a660fd7b7e3ded7b405e90d4aff1b60b6149bd636d1f3a1f382516d8ea8dff9981b0242cb0ebfd4fafa63155f192cd2483bcf5b6a06a0c7b7b2df5137e5b1e0691ff2fb95d065e115e6ab4c7b087170d2116275f0640063aea5330b0648d17b3b7870259e6e8d87daa68543034ca23e42ff9d78b38ae8c9d690747986554378f233b6e8e45b4fd40e0ebdc1dc6b9f221e9207668da6881780d96079ddd6fd7b9e79a79f54e48b11845610e19cf659cf11774ecb092a6a092a58c3ffa54df3046808d6caa3be698b215754606ed1a0fbb1b9c688d93aa6a51c8e70b4f220a11e953fd3de404cde7901b21a85fa2f27e38eda37a11518e70e0be97c2305d8815add3c5da2f2c698b03ca930d473be7f3fd5916624df59168bf5b2cb2b7370dcaece0433a06a5bff3e3a64fe5a096a22124bf0d37f2510afaabc93a94b4fefce8b963a03c9a89ddeeaddeb330eff6060a8466350b56447453781b6e236412c1498980b9cf7e527ecd6aa1e19c1d6316ee8c1be442bf4cf4ba1ba9fb5883a2a3105dadc1b43a9d758b6fa8ddb565c8318c73c0271c6259a88f0ce41ff5378b970854a0d3b9ccd65dc31f89e88c4a6dd121e12bc82442dab16236b98dcfe81af616f3039dcfb1f7f8f09a8248790a9da50e80a2144b605f75bacb5554492bd4d18cdd49cb0a6bbfa194c1727947e91352ea439df58abbc285741d863b66ac49654f9406b9be2d5de8dc94ea0ee7e17c0abf2f1384b90e521502922339532e001e3781cca33f09a6ea0ac5ba91422abdb0668a339b8f8c6af7a4c8a44b2c91d30dcb355d3687bfc8b48a10813c8e5354adfd011149973a73699814dfc7811bf6b35abc9a9033915f48d0fcaffe2d43d84ae399c39d404a71fcde8d375974203c6df99cf2adab52e765da9e3e829cc5b18e96f86bc5f6466e0db75acc0004de2d2a6564840479c493a52558a1110a334b5c3fe3ed5b1abad114d2ee451352853c7f766841ca5bb885b0bdd523385c228a261ba2369f8365082c594b295a9499ab3b95836d6764b4d8fca839fbc06bf81b384a1a27136786e7ffbd362d9b9026b2ca42aa0e4816cbe2142e3c96f2fbbfd1824889f1bedd40df2bcdc9e85930140a99a6d294cc358accb1a6e736b69b15360c8687002afb54b716c2a7e6a894990be8e974c842f554cf3ff5c9b83d5f399bf7b08bc176bc55cbf49ca0965d29fd71de9ba2c516d82c6a5d3e71774919a173c15e47e54a5e073973c10f0fdfa044c0027aff7f0a4a06a0a48c6506fdd1158dc1d63072f13e2f16736ec9e5be9fce68b5fb129a1ef4acf1af3c66372958fff0ac9ea86e1502e37441b7cefc3d5f208e1c6fb4b293ef6964dcd1d80cd95ae905b780ddc8b24ae516385bc8e8a3eaa3fbe3faf252c2d766416e84dd38329393b79be37388314ca1b70206440ef266991bd855b1eb59869e2c96ee29bd14d8fb72cc2c9828979f0807b3038702b9235b627d93d7712c87d00f0e580f57a07685a949e228d5a808f91c20e371ad2a7c7dc47cb04d3827117560377c2ba11ba522cc5fd604e11e67c0b411fa82fc7581f6b3bd23857bc37230aae8f2c16f914d2488e23c34f12d148549f9c066d95a7193186352f1280bcf63b4df0d0486510fac5cf8b03abf45f35aa652fb5fd4babba7fb618ef680a1e87731ee117aa79ab9cc482a7fd11989e3891f266e15d3dc71770024436561460113fef8d4ea7a9590ca908186ca41dabeaf35e9c2e2d515ee9c5cfd618163ddbc47ca922c657fb7c959c54842cc6019fa40e3ac2c2bac9262a7c8ab79f3cb8c8ae6ca39d7a1adedd0aa70798d45aeb6d347749552260adb3872edbb2006b8b650d6e5de76d78934a42a85039583994093b98f705a86ceb559d8922aca6abd456ae7011296f0875ce052e419e395b4f9b67f59ab578851bc7a3a29342115c362f2e19af0251a6729981f9e4dcaee9e6628a19a0db9d12a014a5cc81a13100d25b9138e6b9dd2d6a807debf391b6a56dc18ce8d844efe8e8ff1e03d4eb03af85f9465b660125d8da022e4928000fa7cc629b7c2706123ccbc2dabfb7b1b9d526c450afb567fcc5a762d7d034564d744e52035e6b34e8bbae827c252e50032743a4b719ca0adc4435b7c7e8498a6ce10353a6c82a3a84a6576838adcf62f32616e73b0bfc413f6ff000000000000000000000000000000070f161d2528", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 26, + "comment": "signature that takes 9 iteration(s)", + "msg": "0d00000000000000000000000000000000000000000000000000000000000000", + "sig": "e68878508e16f608560d18e3ad67a4af53640fb64937e39ad0b7b636361262c54b9df9f721da48a3b3e1cd6e66dc6d5200949d8938d0be6019c72362866c6ebdf3800620c512ade29f5b31c43cfd8db916e4b070efb06b8e1534d92fc2ec4cb83747185eed0039a1832789e565e94ec8f01c3f57ce619e9656a389a1c8142324558d8b8f143bd6652c77fe42a773651931fa4857bb8c76b6328036cda7fb2f32da164b69984d709dc270a9f91d2ec31e5222a38fad92e04cf3dcb99b1cc6fe106885cc334fbb4f896ae07d8ce2bde81f346a28ad373438b6deb6938ff7bd6988395182a47fceff6cc11aa44d1cfff7a3e51ae1194e983bd64d6524db77f366512dd156fb4c2e7719f8a9b711e0a1703676ebe182a4445ffd1f3f05fceb6d0b7d2cb757b989127e23585b3a81dfbefc4590ffca2cd68208a390d99806f9126986b02757caec6fa6408c2ae1bc71d352baae3ded8185b7ee2dcb9a5f66e5da2598c4710f4d1df226b787a4bf620d18c3b2aa4e01d4a1bccdbec97bee2bff7a062329f8c59a4fc72add75472e0b9b9a0bc7e69ed0321045f0cbb1bffcdc2fb1d6782203741ab9c8cb043c07b3672a523e806ecac52713f9cf24733c9694f84bd1844fb272d2decd083f9779d583fb6591bfab6ee5c1d300c99ceb94957ebb96bd1efcc0c44b46feb54c16ac8c78bcbd30aa3d27ba0fff2e6a4e175b42066c0dac8d7740b769eb24fcad8f0cd90db5840b3bb36359e8ca30f3cb12d0538e741a9d8f536bf4cdc888dd2881e2cdb022aedce462c26cd1f2f81cda5d3ab3a76213bd8fb75753236523cddb436b9180a5ccf403154b93b57ba5b24e7335506c2287bde4319d8ce48b9d10da5672c07a23736f89944ff56bae2eb49c2bf485f1d8d6718265a5df4e632f840929aa1b508f91fc9797471614d93d2c171fc512d99917e32a37cb24eed04dc4fad9bdac904a076f927a14562c81cd027b6fa32b027bc2b60e1b7b50694533d3bc08fa6a5617d36af278199d52f566b1a770840ae26274357470dcec5fe52279d3d342a118ee44a85a017941e1259ff070f2ce566fdd8efb99fc81523740a9128448ed728276b6e22f29564e6471599d109ec52ee6ec45c284b71073a157f57225b29e3bf1de26204ca82fffe2bf526e77020e37446ec5581e63a246b76ee9dd86d00b490e2f2ca258fcb5676d95e79335f2039b9ffefaf59d7785bbd82cdaff931f147ad3838f8ec26b6b4029d5ce230b6f2eacc4107cbb339e69b117c64bfba217f4a89224deeab637a6d28caa0963c730fb0d15860336e740466abc7f5145aba081fd592a54327200e481a19a9a91df105dd9f064666c2130b63aac8652815fd4318e6f06593bc00cfa193d37d4be276886790dabca1a3b94f0db5878b03e7296ec874af7d909087ef9e9daa06d5111076a9e2672d7833e14cb858d2ec3dec31645481d36295966d1bf8d8c2b18342f36eb77ccf904cbf6f5c2b5a52b7c0edf23827356ec7df716f7e3231132c01292f2d088b2f2cada8b88bc4038d955e3c70a64e047ca5a6b73c73f97bfe36b0bcaddd403c70c03dbd51492c76fd0bc87364669df42ed1d6cdfd1a96f51f2357cde949b173ce9faf474c2eea3565a3ccb6532815afd469b3db6e01a239b263bd70a6ef147ca3f471ad065452cb8d3ded26d0589f2598a072fc5799c16a75ff4a1648d1a1df4fb6baae1eb92a1d2cbdd588e3935e56a90d8cb53a92cdec9edc6e80d66c15656ceec21ce75caec72af9b5b7883223dbdbb71cca72ed008f49941055e71eaae4d858d5dc3eea06d76c3f9f92f3ddc26c1a824fa1b36a84e1011b0e51c37e1ca84b678c54701b24c72d809bb49a78857cf84dec8a79886719c66e32983098c80590b817209a71d115f11f8cced1b684251bb25d3fcb3dc9107d3c8e4fc551eb6cff7c9ac7a5c03e86650d7ac7119df3b73a52083cb520683e1c784bf47c9428126bc4298f7b926423aeb67ffb0d51b4de97da92a690fa0cdf7818717e0c3dbbbe26cb8ce6da26732d7125bd31c4b454ae9308a668c19bb7c29cb8a5bf9751aaa65c7bb5d3b33cbb3f9d49ba36640d16c32ef88136dc464c60e54307daef9ed8c52679cab4e48793d0d2e812c88d5928a7f6b378332aa1593e28d070dca8e744505ce03feaee21562b90c59323e88cef4aaf9c7802c504d552b6a5eaee2c49007fa5930b12513f1898222eae1c2e08c1c0bdccbbf8b73db580dbff060491f8434712329e5a10378d7e891502e45288f886036544db76274694e7c45b8a1e009408db5b1de8e5e4b53e5c98c3af2eb8cf3ecda76c14be58a9bb1e2ef961d3de593157fd67d08ff93973281690504cff3a55d86e9370199bc464aca85efb5b0bacf233a58e0dab930478d79ccf5fc2513ae5624204bda96c512327e165dacc79c35083af569b39706996a0d699e3ee9aaaab2e02ccd4abf6b763330789c7a4113728dc4dfd9fad065d2df51107edcdbb1d32ee9f563972668baa1df20e77c09fd96b538ad2705c58b2a87cbe0a532427432a8436e671f4965e05f0f10081ca49c538bebf0e98bb4ccd72b0e21ad5961f93d9897953b27fd539b7ded7bc981d34c313ed267a244cf76c4fd54db755d3c114ccb9eee6c4709e0475f919a49df41cb3b76c7989a15e2afc8781e394976d142a14de5abb1a984ca1e9c5131a5ed2da4bf69a3777585291c782655bd9696456967d420a03e27e9fb6f3d217031670360247e14de3ac4a2267b2cbcd1be7445c35e3726ac90e74873d373b58c522a85fc4eed6176d6c4d1fa26f6dc644868e2ee04118a35c51a921215c36a04407fc967dd4bd41fbe43b609a0842c4231ad11f94d7c18a7d65179e4280065cf55deb6c7bfd65a24530f92eea71586c51a17f964e9587e71b7d6249b96ca8307305133e2aa2e8cfb400edd8d3d5e6de5dff6de3dcb4382ae53eb30a3cda97ce83e61c4621f2163b2f7a22009123df09d10d534a313d9f3b6a882ff22dc6d4d56aa517ee23609ee1db6b45ac4b196ca8699a132a8a01882e382f2a89fdae0e259332fbe6d65b3987a5b2f1d077dfa5c1ed8d461130592669002150247aca0c7094c9e831f4303ee9398d54ac247a252acc1749ccfba7dfe02f468541f0f76a697f90e5c1e7737f00fa6279abceaf9c4b19e476a2c7dde6763bb3ca9d75264564c878fb8827c3ca7cee86e8cd6e9070e09b61b60d14e5f21600ff547f0a8c894a0e6d03e1bd779102596fd54e2d5da6b93f901b5f482dc0223c6b977db029ef1d5b3ee9beabd505079d27b72d06c9f12967db41b1bc6f3e806a16e82df9c7df95e9c3c69c40c1329ba98e845717813a04ae816bd98131899f54f7d2673680bab5325ced6dd33b4af8b6d727fc19362eaeb74589b3a81f3c2e37626dab4f2ff9ef42fded16c81fe7d3d38b55468139b0d874fb21e0a977aed92b00e23c5e0a7ebc9b4da764d865d0c8a74c5029fc38e0715095ff6da6df4aef21d13851bffa2d98790e84cd456820d3ff56000ba61113ef5fa278ffcfe962ae4ab674510e3b4c409a78452a356ad705db0001c78c4ed36ec95fdafd6c65ba8e01474f0e0ded11e565aed7af85d42e50c242467dacfad3f07caef2ccd80ce0254d19280f98b20f535e7528b9bf14c4d182a11f235b3eb2fecb680fb384edf7c8e1d0497ac298e8cb16f8038bffadf7b6ffd898e46b71e8b5c3d45a1c83ed3b44c7f870fed1502d86952c77a41c2401aa7b48fa61c19e1869a7371905f89cd9670f3bca59b9313c77c41a20493060712cd3e63189ed5d3a7b372ac4a8aa4bd351670d0f5bab0f5956efad2baeeb7ef8f9540cc8bf4a166c4bdba16e8dbd76989210b9b5f066f9332101b0f8906bbf75ad060faba2a0d59b7a721937f82cf8d24606cd894d2f097b1cddb32725ef9c1923b4aa3e0014f19f955f873ccb1582f4ea6631c43bf4d28e9ea9f98a79ba798a6d130cc91ac5259b0cb5149ffd2859864d962790b1346918b47829c53eaee487be3aff644f402ebb0797a8bbb04ab375ab2c008300cf5eb28ef4f43e3a6fbadef515285b8780914c10238af19ae80ac6fea959566620b7e489ec3dffd255a871ae06bd6ddec26b340f7983e184a2e1dd25d1db9566acdf0e6534c73e894c88eb52e85d8921b1aab25a4bbfce665ac2dfd5d03bd8fe4beb8b42cf93ed9418e494009a4ad4a9f7c3ca516a09c55f0b62a4bc4431d8b75e651998c40007ccdd658ef51fcef5851feaf148145ddc460f26e264ac6cec355df1e9f19a3b47aaf23e8bb5efe2dcf4c12cdf76a5200c4522708dd911bf287ee56ed5288a092a3724a79885857c6b759b04e9e956cccc3a0c087c78f787468e4a52c72971ae7fa8100ea015c662405853a14d1e9f4734591e96b111b301c2e68fda861d4ff4085a46de15de8ed123dbb77dc7cd286eba809e45d6064169da469ac17ab32d57ff3f9a1b79c3fb487973a10caf5f19bead7e29be0e4d61c385d04402e03f7fd47915da98745a1a8caf5ae2fe05cc4d8c6c95645798cf453d42db1b189afaaf957e91bbd924ad2f6740ee6ec2234be5b08676710145bb92f488b9495a860f1f42d439dc1fe2a40436896da353c4b526f7f8c95d2d3e3f20f104476bff0f800000000000000000000000000000000000004070c121e25", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 27, + "comment": "signature that takes 10 iteration(s)", + "msg": "0200000000000000000000000000000000000000000000000000000000000000", + "sig": "282f0f7272b8b9f6cce50d748f0d3f9761f610d4f636bf25bf2ec47b2cf033ad91c0c60abc1c11cffd5f9bdd41468454372ccc204a83d613c8c1dc3c5a2ad9083b9ab3406afc430206e7595736baa97123fedc02b36ae5d0ece70b26890e93f8e9919112da1915bce6441767a9252d90a9671acf056ac1896aa6642936a0578d1e84ccc95522d2d49611d6b67a28163a02f777d5adf1fef167431b1d143f08b1a908914c64b40d6a3bc259b7f850bf32f14d9bc0e8e61e3bf789c4fc059bb45d48c1e58b786486ac35bacae36c51bc0137d28810bc288223f2126d94e0bf36cbfeade622585b37c80407e777006eff850990604de7836590e81ba14e067317b889d33413d71f2c38f6f3d19de662e61da54cffe96c9ad5518876a842907cfaae3c83a5c9393c8705d451babb59c306036a0ebc7eeeaab2ac9e61a5f58691f9cdb5da907faaa055094515491efe40d924d9f50cbea000300d83b20ceb99912fe8b1bc8108c216420c3d52ab28031413de2b55221175c3c60d83fd2e06138da00a76b77f916a7c9b97c145d83e03ac8433bfef3ef4937d29cd0e7e75ebac78a8f4514860374ae97cee2d3a62c44f1a3ca9a1b80ceae734ef1220add08c96b6db12cf28d39d8583ab8d932b03e0d0d6873c7c2428405150a7f3664de648749b92fce22e56ab2eb422f26b00ce50adf5c6016e92bf5c58e917ffbbc86c70ea35a37ffba3046df32d24a50e3b42ce2070c36f7e2a6f6e6d85f5dde6ed6c9e0b0fe6d5627dfdcc9ba00b0e400157adb5107e392eca42ce4f4c42556a0ad16c1d36b6146be7ee747a005857c8059f8854642a623aa94132cce088ead46f0cb534a9bfa82b1ecb6c00083207c7049468b0432fea8bfb75db58dacf174d85d10f9dc3a98240ccf841385f4220363e5e3d40f4b4c6e51a14080dda0bdb3f97d37bf151eb6bb802000d87bc522436583fa3950f6fb7ffd5333e7f732e23c0ed85a1c3545b1c771aff5e6332717ecdde23cb6b64a350970379d4f218f865245f8483102fe8c65cb3bbb28ec6dd8973b388f8c4dddbbc7d979efdee2fc32b6762207ab568b192ae3d7404e2cb6f158e61475549cb325fc0585702bdd5aedd4707216c78eb748082a441b12b4d9c0e79fe0189aa088d39a26380c5498e08f0a38712af2e0afe3246b0f99969721d4d2ad2fc4baf09cee10d2cd2e93ed41406968140123d21850418299ebd5fba68ae153573cc616e667fb8698431bf76e9fa2b0e1ce0f3a2a4db5ddf4033a6a51082efb64c52c8e25280cecc45ec378149a608660402754873cd5072330582d2b6f38722c2b31cd98713aa06eff1a59e1256a6d5bcd4916ca6c0a017e8823d2f98967e64132471a6ad8e7f157a8224ac5dc219b57c929cfbae11a37e742eaa1a8ebb7f799cbbce4dc13f003cf988048aebbd72c39f8a8d257be7dfcd959b72854102b92c3f17938a8fa60bde930537865ea8cabef0216007b841d2c3b6a1da1903b35a3226d6634e474ec83dc6d2eb3cc6c0acd7905c5afcbc01a255b4926a5ad781681fc5db7a0a73f49a8a5b55d313cc197ae9eafbc8fc9db13fe79447812ce4e4f0ce2fddca7db04c4fee7ed282e311528a00410dbf0a43fb311c4109a35264ae7b17a7fe64f4e9e0f1a579224226a04d5a94f86b9120ed208bd0736833b20de004fb46b41d07d04c1a4ca786a49a45034f1815bb49ff032be4f48d6ff2904d989b6f6ee9cf52ed5a5b83c93ca9688cfd0679c40b828e1be7885f42c14716674c733b7d51e9794ca1a35a92639bad80a8e05323989848e848fb3c4fff60bee96ac9e1f665da9648f728950d0b0df3339d26838f618d6fe228b5cc0416f9da3cce99da0a1a453c975e4172efbe4e4636293b64bc188d0da318ef428b6ef17325b136fef140bc45ca8d998dbdd65cb28f935a28a60ab12b502e95164da6704a5c9667708294bb45d8d8508e4cebad5a82b4ac75b0803876aa1f3d4cf7749609c726af0337b84abbaf620952d8803526718f56fa341ea7d89a2d08bb81c4d4c85cf4a828b443a0b29dd247e7c0e31490130b987c0b391c1fa59ca4f7aeec89a9aea1f744419a08821ddea90122989c186023d179e51456ba066aa6449452770734971ad90a67640ce95d10ef6c8415fb34188e052d5ffefdf8d97da4f67bf59945e0b1b94463960230862747f847ca3f294759b131bc586c7630a64c69de7e6345f8c8c018dff3d386ba99c3bebd3d79896cf41f516f007006b1f9fb948a3476b1d4f47b95d890e99e8e4e3d301181ec263291c1d9381240f450d636976f8a4d88b00e505d5dd008afb36a058ed3192d3a36755006bffa0c14ae06df23d73756ba918b0672a3972dd3bc09b12c272e136464763dda07c98e9c81b9d93f987b786d92ac9254b63df4ae200a3cb8a77950736b56c5ce5fb4255dba095ef0c2acb965377f57600c6ed20c532c77756e3e5771d4685a0e90d7eb553ad85233d61282f71adf5b4b9a49b1f77247cf77435d043e43fa6ec17deabaab8952360f0798292c8f63c3ae4694c237406644ab820b33c9119da8bacd0ed930b5fc1197fbbd6218cf493e86bef3ed4db1e1b1bbf692ce8df4758ffa08a782567c2379dd563774425547dd0b7976bd17198465125743ab65171eea74e8b55d06f3d6593b5b769784cc39879bd3f775f1d33b11a12ff67945aa943d0772336d862257c933c283972d20d18d6fc793cbd7f9643a9cceda691f7203facd650a98e9f8bc9e86671847298ccb0c3a2cf4bbd58552f81628fa82b4d4863d025f0f4438c2f31411a2b20633d24d0b90c606043d386c4190df5225ef3428d0d9176445afd7f70d3d0d27ebca9eb517c4bde3b0bf528cfa1bf7a1a688c6ed6e672fc09f93396e4a0227700627e9837cc8e6c653551b021071a7d347dc8fcf77f51b80fc43906e7b021a61f51eba9e89ed78a630f8e1cd1863e4031eeb6e6497c493b47cf245575e6543ed138b9ce06c8188f0e6de18f2cbd9c9f74915a0260e4a3d4f9edc1b68330b9dd2e61394cf9d9e193b1b1d3b2e10a0ee23b4146fd5cb261be5e48ffb2349bf31346688b6517f4e84c9e32592782dee40854da7af0cb67d80b59f08d7dd9d410360e89dfdaf52b786bec57dc09b2ea7b9f5a6765de586b1a40024187bc538c5e71b19bf54c692f687dad5da709963f208f45702c6ae500bc0be672680249ca271cf915f239433fee9676e6b007b04e5c1687e4549184b0b3d65643467fed567d229a2133cf1697eabfd45f58022373aa4331454ea041eed9cf612cd1b1ed5327b80c24ad2807001dc827164fb3cf8b8b57d61ddf1ac5b4f1d9db78f08bb72e347e7a0afeb9477fb6d7f6613355fc24be06cfd6ccf6278b4beba566ec53af541c2a43a33c6d749ba9ccaa3a5f92b3487151fc1a027fdedc6c4ea81458e01dcdefb7114f3b7aa48153e3be3b37b7ac55a37eb90d0ac4cd52f3c5bc744c3cb83b8f4efe62d23535a9b1127b707b99d1438360c78e3d748b49b8ca75a2ae6ad9ee0f61b396cc5af8f75ea007e6c0134cc145527ba4c2ef30eb0fc8bcd9e5976a60da49909ebf2a8efdb7fe6fb285c97bea6188bcb6b9893da5af769bd36c5bb273551d7aa8cb9486193647278fabf78df3c50ae48c419bc83e11c18d840e7345bfef2739278fc106c6c21e109d5c0d4e385e0d72a3d0b1f4ce5cfeec3cb6a205c57381a1b1e77f3d42b0d21ba1d358e217d3c5405b1d8fae81dd2c3db63b8a8b1e316f84d6a98878d0ba8dee9833a75ce240493e43826430144aece8e6d1a465ca08b8aab43200094e81120e9c650de002bfcd0edbcb5ea44f4c32e2361374b2fc4fe6352a7193302acab5750565fb6858efec3dd5af2dff33de712dd4ed2e21ef646066b9fc8b3d0bb5cda6f751bc8327bea3bde750dd6f4e4f8a7ccb19a96be6d0899b68233eca525e488a1919d11d8f2cd63533ff048af696f601a83d15259b9cf12c403bbc1f1e033029847399ecf60fe4271d973c79b8f6c7f454cdf34d27fb69f37f9735c69b5978c30c3c53400ec70c484776128e36f0a87db358880f33671a5b3abe4658e283048d6aa76be8bf6b824040399d0fd8242d9d72ba0e1cabf5c2aae2c8ac6494c33098e2ae1efd82f3e2950d2d66173a2ac2393aa3cceecdd55436c0e1f0ba29b46e89fb709d3dccab024a26479b71ced06939458e15d85bab7885d628e05c570cbdfdaaa81f35ae30982eafafc1dbcf612932b9aea1573af1c43e335340151aa43ea07dd8dd1119ccdcfd90107ffb8ed2aa11d945a9b271f40c5d1fc9571165a5aa45b1836117198e6cb2ad915631c0c7c71dad998167e7b57d771015babcb0e1caf9141fd4b6fa2c9a3530b8724b955bc06c53609b89fdcc942dd5738c2b83a3c5724508b70ba96ee1392b45c2afd2224fd580642bb59b7b350216750a8850a92a7b12be20e644e38e86ea8a9595bb821032a07c60c7bce0023b173ed26c51a6a4661ec072c042ce7ea9260b4488d8e63e99db7697d9bb2770548753319e74c72730312c49cf1b4a4c5cd25a3ee93c3a7dd2d2c5ef1851aecbe0748c4a68e84dddbdab500001a575d77c3cdd3183ed9dde8eaadcf0f1542bdc2cb350f1a3f404a6f7c7d828c9396a3a4000000000000000000000000000000000000080e10161725", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 28, + "comment": "signature that takes 11 iteration(s)", + "msg": "3700000000000000000000000000000000000000000000000000000000000000", + "sig": "c637bb0b0fbe6404058b0c96283165ce84645a9d97507c6734778e42809b8d2fe0a78798d8286b11cdafc239accf515f80c6a6aad43bb304315bfe6f294697d41fc557a68770f74157c4b6703c154c19c3fa39a7eb85fcf62d4d9c8b9f7b06eb1ba9bcdc2970369bcd6d0f42fc0776f5403497f3d419676ee4db3a2858d7da648cf48773524c12bed8703fc73336df29583f8a25dd7951147f09ebe5df6d1d77cf53a2098b1b2cf2ada0c307f190061e3f71ae4139b3125693e8e0fe1e91aa4971502e1300b1fe5486f160b4556b519f82b5647689110f559137879a7eaef84c7e661028ed16eb70fe9a83f8f6bcf719e03ec0fdc0e816ece340b1ec8a7653c80584c9ad51cbb6aebe63ec59d3d31f747ceed6becc4b69f112bc102e29d938cb690314a6ada4a46241222007daf6b25e57e851b861dd51192e154158e6d2d12060e14189885e536dbc2503cb26d05e4d72766a2eebb24f9aac8fd2684de33b822d419085878338ed6ef87c3716c3ca1b3f538be659426545bfec8815ae56dc3a013f4d19859cee5abe44048a3303e0f8e09e3361b3c957ea5a99057f365a4cb68f03aef58f016e026bc733140e8ddc77c6fa049f5a5a2e510f03efd45b08e145d8f29a8519d92520a6da04c8ce472c1a6735698b35ee4cd6c3b645d67cab42e30d9a47cea4cd292ec8067f7cd357f87176236c30777ad9d01fd12963df2686c0060b11a8da4f06415ff2c4dacef91fc9c6d06fe85faee9834c57f5d7fb77f79b52d65ba4f999817ec5ccbc4c63b596aaf4f83f4f25b40c96815da4b80965818e7c9635500157d5bf9d000ea265b53b9c7bb6bec81028bfc35d76d3156cd29c7e4aaa27301169f11025ffe1ac35616497af59ee9829053d96f1fb4c8cc28ec9bd86e7fb493e3c7d8bb9e2d968b2209058dfff5426aeaca97a6d4ad94d0f737b2944af849190cabfb5670f9f26e0dd1628077b12c2062fa6e4d2f901a69a8c830b3c14e491fba4d975083357c7b1a74ff51005e34cc7601672907873bc6d83cf678f2ade44e4f28768cc07ec00f58378457fb1f714292d331008dff4555ff8c621ff88b40a25324f4651c09640747752e3dca6d4a3b0b9d08c513da50d071b967e6e8610273f7f9aad3add836b15d0783c3239b736768f8a3b39d21b6382939123118bc6a798af8c9266c0006e3dc1a105d0ccfd43fda88949f5c8e6f6e022e985e8e36d63d6f80f923d9647bbe1e8f6bad41e873cc8f19cdb3ed4b1a8b9d8bd2372c3a2251478449abced3c64548f697b388bc888281dc72cc67f046a116959b7cfd7a3c50ed74e1c7b3f9b4a5ce66bf862fa97e35634a35ee95b14ada6316d0ec6356a37f53bca72277f33275fde43107d468b09f997800aa039fe5515012f9a0b01341fe15d883a34e8a2e11f05012527dba32aa0f07f25035b128c50db9bd5e498c0a31165ff0c41ae58776854dda4937ef6591316a5ba687b358ee1de8228f3eb7d654f1cdfb7efe7d90f7b8d0a8c06e680611cee19426c84fd68e7aff1e8beb95f4a6414046795bd04611760582feb963320008f68c9759efe9ce7aea81bddc7a97ef18996813de741f872d4b51c2a0d2c2292262b6476c4160666e652bd89201b8393c26ad19580d5840c2eaf88320d343d6174774cbf06e3dfeca6e5c1ff39cdfea6a708a24c80f8fe3d5bd74af0d6d2c8bfef71c4dbb2b1323bd5c2e6bc9ea5f839d2aac40bd29d25f81d30e801a05b40a62a5166573cce6059138a119112420958faa76493eba44b47d011053d1935533ae2f3f6ebd4baef7a64111cbe7ab7734e4b41418335c93963be0534d723f4e1ae699e341955ce80a4f5506dd48e28c673e74a1de2d572a94842b2b50bec040f39b374a6d639f0a747c49f12244bc173708dfb0d2762d7c0a9a8c0bfcc7d3c6f5e3b0fb1e23fe0dd0898e0a1c40d8cb4bb6971d716af1d4be087010b2c3259ea03dead8df5fd6513268352dd8b5aa447b7139104105d6e25312cae63da6369973637381794e2762c3d70d6aab7c243ffeecc08c1e4e4eb1657fe0007888c1fdbb83d76612f8457dc0fdb6845c9debef1d25c1fac8c2bf37fb064a509d55639daec683dfa66f117d6aa6440f2abc3a0a806657e4972ba01b326df686a885d9845c94b799afc83d9a57f238089a9e201004691681fead57be7dde96b23e56a5a590acc6fbed77509c8c966efb321c444c04e17c14764db8859bf98f19d7932e648c077ca905bc481033e35b64e5840d467e84fd0107fb1d84489c9b92632c0ad494a6cf942ab41acaf27369370069c08bed93dd22bd20e26b0d6b41787efbcf2b02950e5c68c9af44fb1764d3886c15859bc2f8a650bcf162814a86b7796ed3f4f292a025f39c239cdd4bdfd02bd37070c06673ab9eb3009c38cb1ca428dd9ffb08776aa2acd91ac7294985f99590863eb0ec7ae4a0ffda1cc6366d50f412ece784c85bf98197b18eb489c5ebd6369e15bd696879144950265a1ceae8dd0f1dd35a350a8d21f5c9f421c98912ee8323d0c68527ea634973ee63b4343960523658e32c2999eccdebc6041988f21b0874f0aa0f13ef8d5742d1bb9d30feb8211c10b16d3804bfe3d9eecd6fed832fd42f596e50bb045ff058fb410798f62d0e88a853c22509ba6d46acff213ad9bd066f231db82badbfd4a530bc671839f4529794c6aa3dffe9a9c4f6a496e0ecd7021fa048f60094c7cd3f49707ce114efb99185a7022b1c35be8a6ba6413cd6b7e4c8c2351ce6cbab76f2a37943315258625bacf8ad6c177284952ba4aba33fcadf26a9eddccffee13afad56481513de9ce872de6bb602b10f831000817a0722e663c372f4a955713acb201698d0abf1f4bcfc20a1b78d1391a72a335253e7ec6b623319fbf37a2e18ece8e8ebb2b57d04e71d723b4adbd6a61bab8f7aea926eca495343de90f7929af9f7fc8372d16de32140825d7e26618fa67e9dc97e305c1750c7b01067fcb7ea337172b70cce793364977a6ead1caa844c6b9270e454dca244b46e0579375f8137fe0d4713143bb54ca9b25ca665292872062d02770064231a0d059541d8b27724b1f72c95674030d712516564a6287eb0006ea73496182e318e0bdde3bbd5b4beb70b2479d82894dbead03a69ed50cd9fc67f9f10d9a3d4e53489d75caa1138435942c19e88291ce5e35386215af3ed866cf9b4b1b13d04a159a1c6716e9da6fc8a311a711dba23a8ed8fee81a609c9f21ab6d6dfd0487a36b529b77d3a974ff8e1dca74b445496430ea3a5fc9f6facc2c571b3862310ccb01f9e8c54bba587c387aef2053a7ec5fc2a28c295e5130c69bfa30fab41c4a28c1220f1ce76c38231ba2dd5465095ebc8efefc8d2f7eb45563b0cbc526deee42b6b0e4bdc1842d4dbcb4ccd882afff6f13dee4ce935b21f2a954a54b1a99171945faa72e5608006c89cc1b93133b64dbfe0daeee95521038083b00983713ed865ec20a47deb8efec70af398b095e01969a4fc6dfbb3ee6df653eb40610d8cea3b5923a1b98771bb11bbd8ea11a7f9ac23885d183a91512af88cfa306c33cfb09271ebe615698b6e92663b0d374c70459971a0a961d5f417b662ff12836e03c63efeb34aec10a9336d2238e94674bbf6201fb92628f167221a071dd80be91b10fd1b7964866f47faa29da3303f116b742a73ae122121e109896c2af6d263a494b827556755ba89ee64c6fd9868e0ccb7b5af645f013847bb4147a4ddd2423934c752c966312c0d3901b0029250efbd4176c01b98a3d5542b14c19016df3f5eef6cb4be5cb2bee7856515f3a703ba445eb5d83e1312c0b94dc4ddfaada7998e769093f1e8cdcbf3dad82cd643ca63df02bba13164d036d2b38352dc7b8ee7ecc316106080adf2393cfbd956a3cbf1cd723e5d6bf0d7db0332ed647dac93386e4f452ed75f8edf6fea39bacbb36f64cdde2e085a6d45b6ad6681b8cf5b277102052ccbb382ceb8673a5818a12887d3b7f2f9c74337254b6269174c342365e0c5b5a1ce5533bf915a3461fdd2e97160500f78806f08b84d195851a20ab33b83ae5d0ac71a8505547af363a4e7e9ed1d1153d19bd6be44ca86d3c3a9b12c547e5397332905aa08e59874f296962a8cd8f448fb797f29dc4cb1691f130725e9b82c5ec5bbf880088a42d4af080ab83467df4dc0c52499863093c7213096af405bdde5aa53aa45c1588a8867d9c0521a7ea920dfea82a39600ce1d8314c292430fd82ff036c14e80494e7f6fd50da981c2c8abeb7e1d78c40da1ecb65d9b1ab6044802f7054889f719cfc13db6be8dae3dc66dd5d3f832f55a3eb8c4e38100ecad3d0ce469e05125dee3f6a5eb671ccf55fc62e39a4d6c5074d60677a40e738b042a00a6d5ffacfe65e263659160c5c003f3997f9863a46ad77a9d22ba6d1eff1dbe5348ead1642ebfc114f422d67f73c80147fe9b6d8bc19a2dda566de07f64e52d0eb8a0326bd1a9d4d61e107802d83dd7dce7575734610ef3377618731104b3425da03077c8299e8e66148109624125aa477bda68eee54c86f5afa56460bcfed063f847bc2d5ecb5eeecaa7c9d050648f1819292d5b669cb1cbcdcef02f89afe22b40cc1e1f2b414a71d6dc374068e90000000000000000000000000000000000000000000000000c10131b1f1f", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 29, + "comment": "signature that takes 12 iteration(s)", + "msg": "5a00000000000000000000000000000000000000000000000000000000000000", + "sig": "329d197dafcb5775b679fd04f0545cbe06b5ea670a0ca24c294ff6bf179a101a990c5c1d0cd955bbf66b8aacd6753e3b73a5d60318e508f18edf02c1642f4bae773bef697226c2d2d32a124c33230a610e9726ccbbf7810bc35880f110bc5b943ec08b5d48e69c7e517eb4c6e3a09223ef092778792d5c0f1c6146a250f385729105da422680b375eb90ab9cc5375a6252ddc1a8c9fd43673ed24a1bc9b29c33de1910e73d7ed01447c9ac5478b23e2101a41334d8c5e168a4cab4a8a6a9686288287181e3775a072210f5f7748baf6dafd3a5a08d623a780528bbfb7aecf47a7127a53fb97214c1d0b15fb2c07ba054bfab2c051fa8323e8d790731cc146af1ee8d14ee1ae533dc2e8deb327b04723593489a0c06e7c6ab483fe0d1b95b46433bb75dc308b300ca38f25877597c30b94b6c6d0e6bc596ba0a1f46588e0cf2dca60574b484b29592c9453fb79e2d26539f384f5c01c8b3881a95cb0d23d9c8715a837d2c6c4025a80a5d9f889c1497561718f621ecf740f7b8d5f0bec6fb68d3343434208f193f1a3784fba2bdedf35f42bba4a292f40937e09fe5f83edc8e9140d9a0acdc872ac7e989a86a8402971a7254d59eab5dee25682b4ea56bda9a30dd5de53c6186e94f8d434f61329445f4f573684f3746cffe66520f864751c22e51a2c1711b47b562e383f7a4273dfcd8c661aeb6ee8c2671dcd98ae3b4b4e8e896d33b45fdfca4307aa7bd34577966976943b69236edc5899f57b859990a81c1d646f9154beb9e6536910363a5bd4bc6384ca69414b3637db541fefc75c7b8f7ed04a9a29918c3bbd8439be6836e81c3628e0f281719dd362dc3f6709a3fa90d71e8f0bded396b2f4b42f160a614494e50f3098b1f15730e59dcc01927d3addfb9c8a6f2fb9467fa526803656033f7961eb1f97352f76607ff76fab9737ef795d033168ad31d3c2e2a50113e8460b8a05a5d2894e187dcbb7b1bbec8cd3985a862ee115f43eb9baf4e3432c4e7ad2ad5b14c1330c5beffb08b9a1f735ea76facc8315c30c0dcf4ef34ce2b41e4382f39c20a1d556c559055f9286d3c91408da01bccf91ed532ab6b7c4b7f9e26f188fe7783e1bf8f0acee41c801c1085fb4db8e0124145ebaf5b6fe1c067241a60bedfca3a60604149b008c544df6c5532a6bee7dde9d7970ba89b392b164eddab4a82b92e2f16c317bb21ab83e461dc7351743715781c74dedd09492fc36428d5e31bd04fad10f18be8c70c5f38607630ead73d36a3cc93b440cbd4b7dc5d880ecb155181b4d5e0c982047380b88872845c9203062c37dcfdf3f70dbe812399d696025a3aab6a337f71d8025f5fb2f76f440ab6d950a0d405348afa6309cc359e5b8a30c55aa6f6c8a3ce9019746d8e89f350bba91cc64ee3e9b129de50d855c8dcf0830cf9ea44d0a481a2a44254ca61b443fc7812f913367f136700b3ec7efb0050e4817036a411f0ef1ad51bdc2232faa0fb85dc27b675bc0c3fa929524d52ed760088d310bea8b3daebbdeb019db49533d34dffbc8b7341bd68428e5f3494c1d27f9ad4d3a337ad0271e8243ad82fc54606b48872aabbd3dbe31a670b0b2f1851fbfefe7c9711f6f03713eae031a9a7bc44e7f8b08b9fe9ac5ce6ffd19d49202aee7194a982089b348fcbdb98a722ee916237ee11b6dd81b53778662eb0dd6e890321d638d283b22aa64705293a6d26acf72e44c4a229e073ebc33e76717d1f6df90b583578c5d0806fa224024f7f3cbbd6701feb91eda28c483c0d99ae20eefec8e045a82e6085fe87c6f0543d5917ca8b289b4314222102128ed1cecf8858e4daf4275a3efed28a7fdca3182d741687660eb0e4c30a0489bad636be6752a66425c2094b58b8a52096a0d41abed69afdfd0c536f23f1e0455956a444ed84bba3567f3bfe18aaa315d88815f6e79a95db84516213f89b19496b511a60079322e2cb40550409711046acb5f25bdf7af252aa7ceb45211f8474d02f488fc7daf82c5b99ea803f509bd07f31a967d53a9ba872ee29d39255911a7fbb3fcfd3b51501a8cb7231eeb09581ef1373714772b15a3d752ee35c5f5c64cd7d104d625810307a946e2211cf8be6af39a0d9b12c64f1e03fca1cd8eb10f3cb96e4f1100952ff7cf5a71cf4c2ab867b94c7e73c5585314e680d33686340aa1cb26ec5b6a9b2be75c7d8fbd6439b1199421a68661057331291e5175be09d38fab7c11dea9c38a7380c62ad4cd3b9567353084b56defe4740e503b38dfe1b522b3b9d04c1fd9413a8ab2a318dcf3c1da81cf88d0559d3e5ae1e2568b3a3264257b740819d0b5deab9192a3ddbbd0c55b8b2092de9baf1b9a98bb26866242d94389d8bb7df073d851b086ea341f52d36d1c62df7dc351529584e2da55e059a8995c75c2cada3750ff15656edfb46593449566c35a4bcb2ca17269404ac1fb52b8312d43f24036c4a69de33bf09119982a9b59921f99ebb22cd5da19ed1a9cf22ba1bf19a1815a4266139f5cb2bf78b4f506c571d3d93ff4a2c19f8f705953fea214b0fde0272aefe59f26eef138808349a9805a47ef01c76a5d236160a7d950520b0e1e3066d3cfd78601a9828c9fbbc78ee4a115083af5dbc57dfbae21893f6fd84c4d78c8502b8fe21902b78b785215ff8c7928780220fd6837288472a904922cbf3a05195455744bc7bea6e086f8fd41d63c26fa411c0e528ae03eaad592f5cf2454cd8af3dbdd914dbed2a7ce827e49f90420f65763e7df627750240de5d288f83d39acc89f2feda0f15860119d472fca64d75e16a5f62ed79fa96fd69b7c1358b5f1e97688518260154e4acbb7a54c3be252a9e7258f05df3511b97e5aa66b42a66f481f7b4608baa3ca922f24e8d9cd13df6b8a015898738cfb9c9fc3205d16d3ec40463cdb4ccd46717f15aecb61a2722171f7b8e55003e2e1795ef0ce373283c1dc0582892c0390232ef6f9b95470b36235bc1150b9bc469bbaca81ed54ea12e47c176e57b99f2a544ff64abd7ba68a3ba2eca34944e44d7d103e73505f09b26c42ff5b70400410ef69f8d8fcf7ed4b69b568e8a5a53fe6893c2b1ff756b7bcc23ed98c3e9c7b6bace134d4be35e70ef761521ce673b174de2fb9416875c66dc6ca2addb810b0b2c85e1ec9ec36345a8971a69decd0db973d90ed8b9de3b4511c0c16010acc43c2caa47b9d8f4574c0f1a40eae91efc590745844eec43b159b76fdae4dbe2fa4eb50f62df085077ffa1ed648b7ece8993b8a9b3c8163279c0695fdf287df677f21b0b9a2582f2cf8a7bd402bc9d2d2c447a3efa95f774254900bb5bb307741f28c6b9f88b8d168d2392c81cebe15b2a1a25de950bba9bd9f9dfbb51cbaff1d141c61f3014b98144135d9e032555441fd89e063d8b9ba43c92471fdfc00bc61a45a569e862b23bad2150351e5268ef01a490a933a3ca894e6f69336c7f3ba6758f1afdb45640f0cffb1f5c917de1477941ddad6483f42018688ccc4a6095256ba3f36c7537113529735ac6251545df9b80b0b7098339911de42dbd0a92f6307185077862d338240ca63ef8808232aeb84e914508e4c50627e6b67905948accca40cc8ec9aec4d080acabd6955c51f468ac9f11962cb7ff70fb86dbf3bd4d7d0af9c1b03c26453da1c8be775d649f9da1027fd27b6330b432e862672a24f3aa208a2922bf66509440ad278754640e25bcea025aada0ed67159d9307234c4f2a9a56fffb6ad53b395f95c819df975bfedcb8201ea39e08176a9bb83662d2d617de735a1469d08f2a4b4941f378411062b3e4e9e006347734a13fcb80920c87fbbe57719b63d3028c52206c5f621047ee786ccffb16581718e41db86cfe419fe498d998ce63d10f8a90af1b283c28c1253eb8bab75f8ded541964202c4ed2c85448e4e1b184a87e5e6f57fa15f881010479590c181ec4a7183e21db1c8b8b588023e4cb272c55071aad4e651174535e3f678b675125c27da909ecfb6f63e5704549df56a0086db2a0f8e2157d5aaac663430b8f27dbb7b972f1550a409b68142b280799671bf00bec11cd7899e42e4ae7c42bf4201023d1aace65116cde7744e2f48505df146ce94dd9ee993c38b603ef96365e28abc9b9449ae4e46db9967a9d2c414585e3a0ae9ccd59176f46bc8ba7361d2dbedc615ef78534c860d279ac4c0d0df9f7ee1085ea26a7db76525b79e0169f9545e4f67af5a3bc804fc7701dfda5eedc6e0f9ad05245cf1b9462489e71ba7dc8721234bff9e439d07ccf92550de55fa1fcef637851f2cdac6c8f46a6c565ffffbc5fc0205a948848850d22ed9f4f26ae014e568bfb52a24555e68c30592b24accf4a56ee3dd6268a3a8a03b77414db823b0c169b4179e210aaa40952b5f3607ab1712f0bff61bf27c95b2e1d1346e85b760e636bfa01495da92cecc4c9f89fdfa410dfe51d548fb9b1170156c77c7ce23af4ea42ba296f01c71c0fee4368e0e80761381520e5d276e819369385b13f06250b3531bf81d14a8cc015afa9bbb1c3af8dcb7f09666d48aad985df0a3bc079b28be331d1a37c7980d0dc3efe276445245256a8026755fefce0b9fb06666875b0d3e3e6ee282ac4def345c5ed19539ca8e40b1037505864727ca3e5e9fd295c87ca0000000000000000000000000000000000090e11162226", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 30, + "comment": "signature that takes 13 iteration(s)", + "msg": "3000000000000000000000000000000000000000000000000000000000000000", + "sig": "aca955fb8affe2bb0cb8e1b0c4618d56d56c9699a62e2bf4362cc2d493d4a2265c5dc0071cbf9f2fe921ad693f471c54d6cc650859229f19cab5a00ff7c1414942db1fe91da60b617d7b54c31f740ab920827cb8feda78e929cb9912e3ff4b62d73828b43406b8ee8e68bd77e9cedc71bb36f177a9c4f0859e8df215d75bafd2ab9f8cd5ce7a5180a2e0e47678417ae2dd0a4356f616ca5733f753362139e6d27a1c51094f9119224f66131a4ee8901b23d5631ffc35d3fe6f034de35eb70fc3bb1835ec0ee49b900b5f459fd151846dac8d7de188937c21f35d11c92bd0c390dcdbb03e3431bd91974e985574a5d08731c65ad59faaab7a5905a8e8156ace76cfefe7f0dfe083ae0d229319be4a987695d75b93e467fc169b8e4e0ddc23f5c940bd9a8a50e0ed2829fce480aa1b1eaca14ccdbb1db5eb39dcebe1ec234014b14f55ade7a6aba06ed980e4a0004c0e439bec8af9ef6c0d711dd323f73fafe047e87f364164931162585bb7e559ca3d1b7cbf0383ecbb50d3fa2b9f6cd776e923cc6277f11b9a68008b01feac6a9b594480aad9c178f8f8793a4d49be97855b914e8495b46e9914db8d5f92f3cdfd59183fbac84c43b5f37494de9e27ea72f20dcd33411e17e38be40b02d1d9603bbdfd1427725a4e6ee8286861a601ec630e4f6a3820cc5fee5e92d125e1c1e230e5f24a51a5dd756b21645ea52454fcef53d4c45480510d3c5aac9c46991177276d993e584edec16c9f0e61bbaacac5efb72d3dd6f66761f6fe555f389f791a189f74f17dbf19270eabc7b89bf72708e98dced911c9f3baaecadae4c1aae77f082d64154a5f15f1ad0967c94a0590db7415f457a81c613eb792ea31ff54851b8066f25cbca4d48669de4913b14a877c50cbabe803e6dcb0ed70073ec5874709d92bb5e14e1e4e5cd6ca6193f89a61a3ae3b7e255edccffbbef97b9d891d5dc311ccec4e59775f4fc671f9d6263308bde1a0d8b920509df922561932e6f422ae8b92c92035e3fb5885ea32fc64ceb7d448beecceb5a9ef651db0469edaa36702b0210c5c8beddbf036115b44d704063b1904be41d596f8086bf84498b114b299b7c6dc519d4b023e6a0e22231903d0185630504826f0895c7c405c55f192518f04f56f8dd15872e9ce583dc24d95515fe32c82e5578299b00a8db6b2da48b90fd8b1e758390558a09449bc594c38c04b7d11806b297e41e78933757050fc1004f20e8e0aa1aa332b84c72337ffdeb5a092f6c05948c5c49ad7097481a6efb785159634f9fdbaa8aab2967be2d864bd1cdbcf648a94affb8cc156f8b76e6081be81d18247e28de5e003a05fd67ad947d4f07223439e160e3d54dfa5323d48bfabcd4a4ebcca482c8e88ecd571aa45f25504434b6ddad9609f7313fd89a64923a79fe3d12a68cb323d429cdc22b12565f6d971365f8de3ee01d0926cf0a711edfae2bda639d0328a58e32547b64589dcf1eb26556577e0e7c3caca3b421eaf53ff109b46fbe323e570fb822e4cbfa881814be4b8e7075f3434825ce1b58c3cd0bb429814e52bce0e02ceb1b7ef383fe264de2f6eee06ff18b02a7c2caf546d74f8113d10fe7287e1ca0570745badbaf2ebeebe5ddb071214e831b885d7c3746da4248298b8f5c74093dfdbaf00966db348246a2b9a3c3140ef3d64975367873d985172383d46a3a790054e671bbd0184ec74fd2fc17767326df3d71c15c3fcd4df2a388afdf7accf97c08872ce0c1a2c733dd5b48449fdc9fd62bab34cdf48a258df60ca2ef20a9dcbb56589b47c3b3975a6a8d28d9d66409eb2fcd1cd4608fdb2c327bc47a75094bee98173a6b5e22070705d7e6aae0ef2de45021dd5bfea084b299137b3d941aedfaec158a3d025521d266dfeee8c41e4d1c425120639144e76cc0fc68dbf64b84d16b09fbe83b7a9b19e74bacae9ecbef8b713964262c3beb333e5bbf0cf96e9a767db226357b54bd51f94581906885bb96e20197ae2f24b8a14dadf3dd0a531f3c855f7d2f06e0ba8887f9441456290e3aa60ef6ea6b52aa048178f16079b2d22070ca23a43e7c5709b3ce2f571c2faa7fe433d6441c32e006b9b250f184269433b13ddf59772e9c52fb971d236fcc8eb71f70564954bd06f8c2667a1d918bb64c23c5637e8f411386a97c1ecd68f7be593b3ab09483a93b92664f87f4b91fa0e3e24dd0f1f082d28da5f13e5bce6facae211d690f55431574c55f9f40d0308d059b0a8d5d49cd6e938621b0de48afa2dd46be95b1a7b77357881cc0df2334b2f90e43e8d78621b5501d447e53e2408d7c4398d59cae5a1edf930218daa72088f8ec2e1c64a5051400c58f8de5306326c1bbe0e821c6bd7628f32930cf459f20566effd455d6072edf25b062452bd84cb465507b79cbf3532f726b1cb1bc6cd1bfa58d518ba2d395b27b4385ee693a58a32052fd4f6967d1f4e187f22526da8d1c3fc0e5c208516de0df96558061ed41619b4b1cfcc3c72bc6059ddfd8d611161621a42dffda395ff8d9a5da32c39f929d38d7e2f3ba50ec9879c7fd641b93957ad7491277907140a33fd771f40aaaef04003769083f0183fb191c66612a53b68e54dfeb6e247c8caea47c6cf846aed2bbfb2703c73b810f8786f92247d0cd8dc3cbf30deab5a0751d66e6f222e2a40d4ce37a385b4e869f1b27a1107efe0da464c7f8a377db6fca17b68130717ddda1661d770136eee43ff12d9146bb13090d80def8ba21c5953bbb4b780dc34e5e0a0acb450a44a0903d18735c39e386c88c3a49cc085096404a347be7fe2e51c11fb82b1ed0e6c8b7b7935a8ddd99f090221493ca46a38d3447a40db20fe2e2076499937606ac5e31047b8aa2e9ea44d19b8a990298ad07b78dab6e3c7767796a7ba6aaa96a072c68fb610a3863e07a8bae57cab674862972b5fd41190d0ef7524329c311db6ddeaed868db7cc949849fcbcec4d5e78cd52fb881c6ae8646e3fc1d4c58b65e888a6cb7f1a9905aacfc7ef63c5e007e6dee38decbd69919d1c0252b296ee2a212d3862c2a6b63e1920270ca2d287d79e6c3a0506bd4d16d5de0937c7d2bc8d0e9210a0f14157383d8d5de764f9e8ac6014bbd50728c051f817663efc7cd89f2751bf9c0cbf15a005cd0fceda09dec15b0777d781c064fa4fdd56abe26a67ec75ed6ea3f6ef42971c2bbe732fb8622d8d006c03ccbd2148281259ea19f61902a949568e2a73f42b46fd0e097a04cdcfae9db2827ca86bffd0fabd2832575476cab43ac8f7a6e458db6d89e13a042d8397ca365ee81e47c190563a9e2a2e5835b0b76a54598f2a82f34317102f763b4e4dd035f605f2fa1bfdf124d4ce1457c78368d2cc3a09e947951198ef6d1a90e0cfbbc115b45c5a39b8c575ac7ea57d57fcc0c757d5dc65afa33af81a4316a859e6f63e7463e0c506b86df8b898223ab590e05b8149ed7dc4640fb1ba9bf0cd3d9423ff0b77acad57f5c8377a032441dddeb770920e17f6535ff5b213f59910f6d2ce723294788db3a1ec15d9753fbed0413a154e3559c7782f4b1b1d85e911f9fd53a0477b38e2cf3dc357d3274c887615946c536666fd9ed2ac02d0409bd71cb050605b6d72b5b86837d9c1834cf56b18be49aaee4272f45bae61204d101123e64952c1eb8c9bdf827b2872f237f58277450b704158f4a1d8836c2b5d943d76dcaf3332407d104295254d0567a3897e2675454c4cc8711d3eb974e80c7a08586c058de444991bf6d35aa9c0c001ebfda40fed69d9ad63057a6089b46c4157735aaa1474229d2bb4c0de4db11e363e24dd97e23f41cff4a902e2a22f4d273a1319209325ce275f898100c1a8644b6f6182e9c264206a361de85b3be510f0884722a34d070123bc59a5b704de7c1c5c7bc335bfd47a1524c97fd42529ca45339473051875012b06116cbb6b6ddd5a9ccccaf1f02fded20d7613a5567d07aac42bf78bd2bb1522a30cc3b3689a2dc08c18130dce4d13135d14946c68b8e4ccef451c3fd2e5a9a24b6847af0cb1d94d4e156008b5284ded4a465c3657d8102a5b8a1099ff518532d7e23a5b61711cef14e99f24c3d4454d06439105335bc522c54a3cec4df7376120ac34dcecef775db37666467ad58de5fbbc38f0a8d2d3bcec651b3ff4404b20fcba8314eabf4cb02976fa827d5f11df895ba518da951e62b8cfc1c4ddefe9a9c123fbf54351b9084aa5bf7c0d63bf142ac0f401bda28ca60888ce3fd93740eb6c96af730764175cb3a017ac52496c453465fb63e474ff9efe76f855f6c3de5c54bd93a1d00feb6c9706ef8344732102e0c9b1246d8d86563e5d4da036c3da3f15c325605e00614b1e7595dfb15f69df83ec567281a89cdc77c58d0103ef36a6f6a66044a52cfc97d0399161ea07fce9545bc2dc81f71aa69ef3cfc5f3fbe2cd00a41ce9ce9bc4f4f53edb4bb4515c1c224b5babb24e8164098034ac0eebcd4271bc3e03d78a10facd8d44c28081ceead3419e009898d93cd80d950cc2b73096012d4fe3fac6a99f960c1690f2404f08d28cd9e6236c4a62e7c158c00daef24780f36313fde6d0be73cc250788807d7c6ea2bccc364575889bed00031d6d81859bc3fc0f353a5480e3f7387475828fa9f400000000000000000000000000000000000000000000000002081118191f", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 31, + "comment": "signature that takes 14 iteration(s)", + "msg": "0700000000000000000000000000000000000000000000000000000000000000", + "sig": "4c20d4756ebb87c04e2b12bc10e946defbd6887c1e1e59235cde3e54f82e24a7bc40986ca2c136250474a24a6a4359e6ab24c0dd5f888e6ff4c3811165fdbf6bbd65f4c343a934c50cbb617ad05f611d70aad50c3ee1e82031599c8420a14f2249f9702af294df6d357a26e3d3bbeb73bee1920451e08600a48375690269ead2ed434a4b07dec198bb71440a6f1d3833207d592f41227ea3b80bee740b167699b1d1b62a8c0d380096fe20550a35621c91ad0b8b4591eecc06e968a7a0f42936f00bc1260b59bb8e998fba8369e6c0e4ab59d584e5d2fb6d3be236d6ddabf760e43613f9621bce0926008164feaca03fa415beaed6e229eff38aadb3bce226d4cbc14590abdf5dfe3671d01cf73e3b7df85649d4fd4a8dc4a0610943612bf8826811f014e1561f4d73d27c2d047abc03de8479c16e9c200209b74b5d5af065c379c815ca3de9479c4c796c05ffb1425273a33e44c508b90faf68d21f71db621bcdeac2de596ea8e2ddbcf8d83c40f212335cee03e5534033716d9e48187c5e6aed2b2f3159b05b7d26e664ed55eca7a020333390b5d75f2fd339b7d9110e9fd43213715efce49c058fe3ca8e9ae0819f59da0972875b6acc22d26bde3eafd0eb771b63cd750e2faf94849b624bc8380a7273357040da6d8dcaf17340952e61475f15569ac7fdbe96174afbe82f18154f152b828a1fbc3e0fb30360b0f71662425b226833ee355b692b4ac28bd76043cde5614a30573690d0491af1ec2357fc92cef92185701772c027b462859bd88a2606d0e762cd166b2ebe1c941499e001477be199d116cc10782e2fb2f93764860915ce744cc1c9dfeb5004a5f94c1035b7053e5063da3151835e7cbcc6c03bb6c245b29a1b53b5c60bf1131a6c9875b67f70d0e09b24af743c0669f55218b715f768ea00374c546157877c5f8da88506df17d08cb6b43616a52afe7ffb1e9573dc4748016811e362a0ce050db3fe521ad275872b2574dca118357dd8c54adc327e1c3f279165fdd6da2aefde314c8bf25c0adf2de1c3e999cd37ea9440ccae029a0a18a71fa49e3025a3534b4f5ea84146d4761837c6ecd6494f65e413705d407735151f63325fb0aecb6a08622f7d47b78dbde33f928c25bd7552bd5efc383954905e5081787dff7a99c9ead9c1a22e93c5611eadc2110bc61b8cda5849257ef3b364d714d3d8121123e53c17612dac8854ace6ee3724fea1aca65ecd78144bf636d381b04a8569f08044d48010d4f9dc82332384fec13fdf75a19b658cee93beb3fae83aed20a67e5b5222d2622057268bbadb06c867bc9fc5da9be0be1d5a80ac9254ea676df534499dc9d316245ac914744dd8ef39bb7f87e75e4c50180dbf2af70182df9fa9fa6d68f8f01118f1d62a92f753272b9608b52222bbb4850d76aae9f8bf3a34738b3b0c85ab34755cea1a2f8dfe3e59ee3f48df02fb26434a3c1e1b0c07e0f0da24e810f0b4190aab290ce081e7bb407642fc2a7c3a209d2c2af367217ef57b39c19285020a6af5bf367ea819e272b3c4988035fe23cab7bdba868c73c1673cffd537222572b68303a2c71aff1700b1c1054c38daf29029d5b80d17c571f6b3a370a155851a44d3f1f0eba7996589a25a011f706ebca54408ba0858c32692912675f8982c6fcc5b46fbf56d036ab51d23c1f5db1412e95e35f5b023f11f05bcb7d4a2339499bff3c517bd0ebf28000c41fb6cf513973cb06a0434f2b1e7d488c752c3f0cf88eb139610e1c6ed7b19d808b78a1068851d182ccf706cff29d07f1fd11d7dbdd0e5975cef2b8797c12d8f229e16309355eef3bb68c904605ab078b3b3c6a5230a79a01018abc653991272eb69377ed306d0fb21079cc11558f4afa644cc505b1eb93714c99d5d9f24e1add89c493f62d837e53e9c29d5874e7d2cc5ed570935c98f64b582813d09b9bbe0122a97f4a186e40e1d9e5871ae879e8898c4dbdfe8e7430f714fc9887d90c4fd25d7a45401e113c3697ecfbd72cbbd838d9f4c92a20529f5dfab9a7e45815c1e6a786ccdc1060f54e00072f9caf8746d54189ed53abae4583f1b12f5cf068de12f91a5a18c3ffc2e34f4c93c92bc32d5744b9ee3176e3d096bafb22d0f05dc7a2ab450b4ffa996fd34c52215ae4232461ebea39ee8036995b3a8f79a6038380046a6f8c4da731ad6d0ed8ef3eb18ce10e42295ff1429a362f5b487740f36dcdf5ae8147b1dff375929810addc6dfc5ead0653fd2f41a8b052ee356cfdfbd907fff2f50fca7c7fe315dd7421c45d7a5d44d059d8f043be9023deb6ad063bf7631a0bb268b718d10556562c0b7ae71fd7598b677b4afc2cbde1b3bb2fed29bc423cfb25fc50a6e2bcf7f72a69afd44c7a7e6ce90efe9869b9c3bc4842a8d5dd285b30e00ed00f9c04f8a319f56630a7588cfa05ac0215c90fe6304b0acf5d9012d9414f7db8355d62cd01421a0033f06bb82f3ffa5aba7d461ef0486f9c712232d62d7d1261ad3da6a050ed40dafab46f0d5625aededddaf365c1bd36e6c06086ebee512adf26fe51ae7adeb2825c416332170ba8c98bbd0fd61103d03444b09f3574966f908cbbc685fd521d8a7fbeaeaff70d3eb009335d8d6c36cadae7c0bebeced3cff06f08f5eeb55afd6428c1b09d3f87170a739e1eeff3726f7c8fc5fe40e6f748691b71d9a025c7f2516df9adbca126d0ae88f5d89311fb262413bb4822ffdeb00d36251d95e2b61cefdc45df8aa513fa1278d370fbc84e49317f71bfff01b54c44bdfbb4041191d99a2c38a08e7ba7a7f1d28cf4fd60c64a8e7e9ee943ec4b59dd1de214cf2e4f1e572db03780c80bac53cb78be8adf305ea2dd37cd298e09df98de9f214036642bdc622292a96673dfcc937904d98a7d5c22978825c0ff8af8128a28738d555fa8d0cf28cf90dc9d876aa28ac055ae4e18f52f526a1eab58e32c1d07bb62477bf3643fa0078dfe9fb1689b4b86e74cea57b182e044b192695da7d39097e74c8fcbad5bca84faff8b9e5d4c3fee68be456d906d3d6b33f8d623742beae927890717d06779af30d64656f0416acbfc36e0ba5479b92bfbceda0f502225ffb560fce92a0633a201a020ae7bd2e6c8ab100d2a103cffad4653a35b1de6ad2eafeb887db92bfcc1147a8ced56c31aed1043e3ffe28bd9e3a303fe54eb5d4e6f397050c45ef0cc3215e684c30dec801e7951b2f430c578d65945fc920c76468682ee7a5a9ed7a94c86f1ffde250f6bbf32ea7c6a164617bdb34b5f8f78a4bf863aef2ddd54fb67796c99ba3a30c908b74e291a1e3999187cc5e848dcbd4237771ca92cac386cde11a6ecac522140cbe2d2477a173d635cceeed3f4e677bea60f801d6b6d029542fee50051351c54f9d17156f54ab3c20f97212a442ca6ccd0763bd052e84d8501cf1e29949f6a065db8087b094dfcee63e5d3474f413aee22725dffeebb516a814c05c95d5e8a0c2437e83549e5b3c7e8b79f0a661dda431355d1af06012818d7ffea732ed983eb519cfca79913f4717875bc1147f0fabb622b5dd46c91afe56a0d5a1a890b85963c1a5e69573c51f80bd3b2c533299ace8a5741e8f463e939d8ff25bac06f56ea9fa497e8b445bde706071144edf446654ddc813cfbd79def406d88f1eabc13afc668939ca8ebb6857dc6507ad57598a20e37d3976065100bf691edb2e07e4af41da2e71b811a69ee30c9ceb2d7193f90df8d76cd844afd1663a919fc8bb2a9a2f5004432bb292d355ffc94709b3d56a0d2b6851f50b82cce36b0f9f5d0f9ce65aafec0226e6cd3c13cc175b23fdbde4f2dc727a316deefc49c36ce5e121d68c9904f6f8f8a77b771d35aac6c071b880a05a4d0beddf969f77ebc6ba7cc7cfe328cdd15978c5e19d14493439b1d26054c5546fbf726bfa5e7fcd0f79f936b392c32fd817ac69613c9113efa1a6c4fbdf7c0208d5c3244c4c3634b30aa3d427caabcbf6916e0c0b4d210798025cd079d99c7df73d36f9dcd015d6eb42c97607897ec0f325d63ed27f6e8f6f54933885e12fe331c27383081e54f4ee37fce9c80d45dbb240af499212026e3820e8fdc918278bc28d8c5b5720c99fdd2e7af558bc21e98b619ec466c6267ce57aff3364bd96136b33cd1a786c58a15bb1bb8b59ae76536b1486e9094e1bbd9c02ecda2163a091f089c68c9e322d58892f043f6aaaf40796a8a057b254c4b286db85b19a310830dbef3a9363f1f75cf216db0e7d9beb09ca3c34331bf46f6f7ed8dc5c492ea0a38cdd71f0bf308310da8cc9ba54ce737b14e6920d559789af7bb6f1d2d24c49f699cda760e2d359a2025b6b5fe8de7a3faee2b8d80049a37545a30dad4adedcb75b0d2259adf75d5fe6d8a25e79302c06dcd755b4c248071903c2db57506de14c2bd505fb8a22b1e7a89d4cb742b4ea08065b5a49ac1ebc9636979f2c3bd1975531549fa054d607403087637a299cccbbb22868caeb689b5a07ba9e4db8ce0096ff94343d1a5f3d81e2f4bfcb21f52ba0e03f2aceee92329d8b86db09907376e1bf0975896cb7d7c93f0871624bbe901dc44d21158525788012bc0914af7ccbcd50dd5918323540899eb4ced6d9252f728f9ac7eb1f4bd1f7051a393e535c6398a4d2de033b5e9df0444c5b6ca7000000000000000000000000000a111520252a", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 32, + "comment": "signature that takes 15 iteration(s)", + "msg": "5901000000000000000000000000000000000000000000000000000000000000", + "sig": "0ae96ff29db27475fb79c14c425c0ea4ed3a6f5aca3e03341c0915072a3e0e42a286c52fc6eae4942acfd1702bf89091301e0148ce84e6ff37324c910e879f5462bf79b2b694f816fc7add718bceac778c5aede41dc8fed0b36e389b578f2c2a9ce275106a43ce324e1f8ab3d90e2b74962c5312e0da28e7a2eabe551c7cdbf5570ce51b0a6375d485d60870e7d33ccaf6f38e83ddfae219fa43c3a628f906092d52436831a2bfebcc8ccc3d4c37af51145b7426796af475328e4f13af5277a61c6439fb4abd3e16e7926762ab654b43ecb35ad2b55d50124713f40b61d65286c1f6a22098688a54927a9c0809b4592fe84e6716b3fcb9e9578922a32552d0240ce23bc33ea207e7f0e454c4a1e8d04f1984412cc43fbd6190da1d7b27ba81710fc9357312e6a378a190c233c7a318317a18f8572af09790e9fc6533a75b8fcf50a98a2b4f812a6551ddbbb42b852515579d8f494180e88970d66249d6fcdd043d8d4a28f7da88befcaceaca48d5995ca175446e683ccb819604c22db1e64a00caaa9922fb47aa4b593e9ff1cddac56460d4d10a7edcc2f4eb55e656ac34360e59e2229f001e1b97359d6b34aca5abbe7e2f61a1544b55aed0ac5cd5ec8ecac54ab2dd60d2d388f30a58821a2ddf783d406f5661539522b08b2b75abf69b3846b812cdbe7f7f9703dedef8e44624dfae277d73d0a48dbb204367e42b5745e6d1b39e341feb9b277624d098c95074f9aef2a0ec6d19e814d6293505e522feb5fe8a307ced98c2ac121f2fb28766ebe91eeae3ed492e42b1e6d96766ca36f088e6be95a5c905239bc710be4453fa4c6e4a94b813299935a72aeeb28e82e2a5f75418473b1c6db746d9d5fb6ff8f3cf12ac89dd5d07981200a88ddb68d6b4163d33462641e6d864cfea94e4c3f1005c72842786ada132a5c208d78aa264178c27eb78ffd96c657822e87e644f04fb488b1475ba38e257d7502db05b3aa6d2bd7cb3624f8871ca02365f72b21a700a09c5a2ac8768aa9c2eea057a8b3044e57bc4522c54140fe3e56f1106f40372a4966fd7e2f49c0f50739c3deb57e55496680de407833b4572d0b8f2645c42c4e9e532eaf834751437d456bd8e7227f784e97024eef48a3c28de24ba3aba2e3ae0ab9115d8bc42c8046b112973fb5235050393000bcc9e9e7f5a1908da1e6d754bb6677e84b8b19ac59df7c04896d5efceba588cfca5a47ff525f3e3a03f23e1fc2c568d13f6703fe6be6d45de6108a5a779a1588e5ada196bf57e6a80f172ce2efe45a4cd02341a63ff68f9a220f54e98c0456c48232aef29b3cf7a0ee7476e53074dbe6f6d6b5cc6c7db09281d8d18556acf4389f980a4d3f31e7b68a6d185020d3fb3e7edc1f6146537ac6b53e2eb051a993741bf7178b135df37697a53da4416fa3a532b70b07acd25aa201d4d331fe2c99c8b909f537332167f16219d612e3b52c31391d88a1864c00f280933985e25edbf1275f1640c4c96d1a207dc9838dc2a79bb758e0492cfd82266d33a8010c9b7969a9c2cdd11afcc76806c8b313991371ca7628f4f6125aa8d6f93e54508edc4563ed98d95fe5599cae63e07cdfdb3296b702c6565719380c974191cd8aa3809ff70fa6a9549115c9f636f7cc013861290beb1acf259ef43d48e51d210ef9a15f01aa156c68b9426981657b40a9bcb1e24c59e0739852b9661372a93dcd5e15ff5dab707451da37b19a815a1c1e42e649a785941fada03fd49fe4350c52c0bccd5a3f37c9ad996b0d1e46f84e3c52a3cbdd034187bbcba24605aed2addf7a386cad0041e20d8332704b00fb4d7f7b5e41b51d22849b347479de81c1ffa4b60e550039d8ccc48c71dd700afc79a8a2db036a025001f14a29e8c1f6c262e766c9e60bd1def02bdf7ffac598d0bdfb7404fc80c0937d0cd390bb1cba5dbea4ad5917948ece345aba23475dab8da835e921885ee1cffbed132e3f8122429443df96bcf07b0af8d1d6268bc2d33ad91c873aa81fe95f10d76b7391b996f5a589483ffaec7deb9ee75dc674acba960e0a173686d7c8ade2cc8a3758c86db5406880d43e03a5ff2f32a304553877aec6aafd3dde8ad73e9221937c74785479267512802429aacaef9af27602de45d973d6cff72cf3c17305fa4dc896520caa84b91d644e0b50d1e92f909ec9fec83d5fab3b82814c3dc8ef17b122cd2ab487b07e926ea2a17a399e107c44414db3f61b7b81e9ab51fcd6deaf4bde305b678ac30edc62101c57aa347ff1e7787f40698c85aec1a8b8572798ec99d434e0670c4613dbe89c5e63dbc8a4a780a063ed1eacb7c3bb967938bbb9ccbdcc0c22d6d77b12f6d1db4b511eae4ee5b1412160cab2148ce81d2877d71d37ee9a32a12b866a9ce34e6b2693c126f96857ae921f6a4070230a1435ed8047afef81b82c0f99ac25e7c9585a3b5984bf1902c27aee5f7ceb3dca49ff573d87aa3ee9e0104e9409c8323e035c3d518bab3d92beeef73a36d5d7dd5a2947b361859a0734766754a5caa3247f75f56c123d60ab6a8552c2600fc5c38a841392ab5ccb833227fd0027162a9b3dc819baf21c4deb72c30e2a5432164a5084585257f404a786de69fa63e73cd1fa34c5c5a643e7751c8d641f46be9e9380672b88598bbcbacc68cd1b34b2ac484c76d6663ed17abdf56e8fd8e3a6d66a5e795c4d622b5ee22b9142150a42217e89f2636a8fa8030e797341bb453cdb400edcda2d76de0fcfdfdfd3c621af0f848013bd24d9165d0b16fd0fef369696cd617b8a971f4db1ca9e8de7d4af39212124c592ddffae21419b427aa3b8ac121011e93c37b603a1644a2853b1cc96ddb8950b7fc3dcd38e2500a9e44d7f9c5af0628258f0e4fef27645f5781a99cbe4cb15d27e1ba9b18c0dabe7fc00b61129dcc1ef9ced8e9284fec24800c2f4428e43cbebf84b6b5c9573fcda463dfa81490370a9d6f3da6756a0553f3c23b2beda638fb570bffd75c38f0a0567a71f290c818540ca440184c6254dbb5e26f1d31a82a4426179ac7c50168c2a64fb380ff31e3352d1dbb888d4da49880e55c53fe2e13731a6e69c281938779f3e85d7e2c481c24ae181a571267a4e6f756bebafad1f8cf77350a6b27b538f6e7c501d0c69b3bd00119ee8fac8581ae95241cb518446c1c525cf09d55b7c5370f09bb3bbd672192da98234eb96f66489c64427b6b16ce282001c3945cb77ece4a0404e2f769542d30b60da603a44e8107a821faebd42374ec1a7a4a956d7ce236f11ab39f849599a1b91c307d2ce38905e1632917e0b128e289823f55a750aba510ee2e9d53e6fee309b27b4fd9456c14413e84ceeed549a408955d82c97d0a706ddef7a4413e8d4c83e2cda09e92ef48aefe31904a9a223303c40f8b81aa59c32539f082aed85afb7d54365979bd78a3ea69bd79334270fe0960377114bd0f7f9af961c32b256878ddc6ca11baa6cf2248290c85e3ece829b6e95c584090b4b77de2135ac7507b97b7ede41db85c6c102046d353edae7f11cdead09413292dd8d68674bc21500fc704234ef36850220fa8944ba6ab04db5caec44ed0df6194160f4f7fc681206a2f4a83f2647cde571b7b2f71bc870800e80e5bb9eeb60177337d86fe0d6d50ca53f42bbc72d327451129508482e5a3b004960caed4b37cc2bc04a81173d164614780936c28fed286a68a9d6cd71720c55f8c7abbb13451f052eeb535ab9d155393dadb2e595f292978d14d126110010e6f7399259e54ed999ed8fe47109ad43d6905f0a3fe025d12efae1be7f812f09c0c61bb3031c0246971606bb4c3b230b8280b402e7dcdd7a57ca13f63a93cb621863207688841001cdbb5d1fb59c836e08c332577b906fe2933588052ba9d0ae97362de13f0ed1a508f98e20ba58de8e35f125819e4b75018c6dee49933932d8268ac2fed69b48a6ff22c4e841d3456e5476b1d834c2458034bbbce869195a5a8b046c8e80160eadb70b82655f7ee48f12f82ad8cd42625fe1c162b3fd5eab61ed00ccfa6ce908350f53af8a8a5842b1baabaa4fdfc7dc0d2dfcdc06b2bd3fb786c96667947b3837eb064db0477c16ba63012d28b479d6b11f49704a39df7b992b41eebe13e2f7eb5b021df2be37c2467c901325a33256eff193a89171b7b50c30e3081916689e0c95761a5ea1cecb5990adbf00934150ce12dd7f15ffa23c904b28cc8bd2441b2928716538dfdc9da600ecb962213e4cda73988e22b30d34a94003f3778792159246e206b2fa02989d4632b4d2e251acdba79f741635165cc0e9a589d6a263345f5ed3608aa5f235755774820e37175f03356a1641c73fb59f9eb34e169420a53edd8c7265f618ad42a1bfdac5bbc367ae366d3a765e39e5e426b688c68d649a82898130d462809550748d140f77177460962e76ab257bf605ea3e1cc34d3c77c78f416457f34998ac0693bd45033afa5e77e26c148bce33c2634238410a25c99cbbc47c0f0c892626f9eea3af77cfdd6bc410976c4eb02de3681a5a2f84c0b9430bc6f75a8c1387520afe25f0305d1715882f07029ebd05119df7bf01821ff73d422b04b8e833e16672c6a707be7f5ff1a535f647a858fedf84a4b88afb1bb2e36434d738eb8bd1d7b8c9956a0b70000000000000000000000000000000000000710161e2225", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 33, + "comment": "signature that takes 16 iteration(s)", + "msg": "bc00000000000000000000000000000000000000000000000000000000000000", + "sig": "f56c83a96b8a6ec436284c14cff08fb09b6f95428c11de44bd37bfdfb07274abffaa07cca07c2dfdad0af4a255e0288f84fe3e570cc5d50866f65b5734d32a9a64f67378cd9f68834dca02d0ca6ad618412ae1de64bb73e485a26a410535f37c11c29bc6ec709c7a0cd9f4db11705fe354c9e9c599894fe465ec19cfa6a648d200ae8b4aeb44e599607ae8cc5357687aa5aa4e16a1be0d3ffa9d8183f37e7057664e1a4af44bd95684a270376b045d659ec580447a712d7fa9f341cc5083a5723786f53b3bee31ed1340c70c56c6a0e4ba62b78ed2d138cb5f1bbf788a378742040cf1054148c77549d2411ab91c443bbabd71bf18a3682b91bf94fe16978a01139486a1ac69f8d5715e6bfeca102da3089477d4a7ff66e2a9e6c6d63ec5d2cf6d456c355ff6eb8d2cb8fa711401f2a977fe507a53a835a5b41c555943af8402532f214a84feb45df54fcc9941e85d7af3202f98258f55d85a6a2d0c3c3e9204c4e58a590ab3d7d10df85714b4b51ecc0eb462f0534f9c8851fd9fe01c5658a9b4456e377ee6aa65695a055aadef8a34ad67a3220d80815e9506846d00a74fa406fc0ee4e0066d9867c108a65c4e78aa52440b6d2229467f3a1dcd3327accd6ed34fb3284b3535b10514d6634a7b56350e1f0e7a5a99fb67223d5582456566e1fa843bc48a290ee82ef40f40681da92f2faab8bdb56b3a0f3b2d4263384c7b42672ee60a41a70af454ef462e05b6dece1b461184934ed7ed061dd8b624a57f266b4bd15cd50f0792c1a5511aa1fca0e25db6c85f67eb6d54d6d32517136abd776ec7cab1393af5c3ba071b2e8eb0f00f8793565122212587d2c3a3e881d8eacd3c3c5575448128402aead38e9f4203abc7c35139e88a7cc0b99d85cfdc542af4a6187feda485afce7600bc7e36d0bb9ef1f177e13ae25cc303b9245ad9c17e24d17b7201e38b94ef42730f04f583c6b26a8dbae3a2cc35c77e0f0fd93ef33c2c26ab83f9c87ebabd79da5f622053599f6865c94b0629a1d4865301b680890437a084f970997628a74f85683d0169111620dae9ce55b9869905adab7c12683b31884dd9c3e2ceb085462496164cd61b09673d0238ce57e039d8b049c5a6f8fb11125aa9bb2faacff9a48437e50c5fc263ef43c1fe418a39a5e70aa23d1592e26a0cfc355a8550dcede2690f6ac4743cbad17860bb13b2555a7f5661fdb02795acd5ddb66a02d9d08973e1571f4d1eafcec5089c3232cccadeed7ac4b354994c7d6cfa847e535f081bb2b8b72eae05484db1420466a2d729a020ba0de466c035670611304373bf03a34c98fdefb3bbddf878f5409bfb657fc1fcd2487b17e24c1a73a55e029263221bef495e94ef52e81f5e4f07da04996c7b9df0fced48e70c302bc25ae322c71ea12c7fce267d52e90d3c70e41473099bbfb49d88c9e16156fc01e231ac82cacac30bd6c5c452b8dada6b4fdd3821a5961c0daf8f373a125892069539dbb289bb26d6c255f5a72aa36088da358922be9ba030d367ed89601bac858a16829d8df676390f0b62c50be1dd189825454d1ef43e7bd29f646665877850411da7c5c317de8ce72e0a2b0ae6168c63fd33dbef65c21f0dae2b6724a52dd24b9958f0a4e8617ff5a7ba75952b360effc280ace26415211d215b6a6259dc66523a11dce0141696fe01ddb34caa4fb336f9a25e0f528eb00eaf20d6cbc11d7f6aea7d9c666f3db8f1962bc20d11dd6344bd26c98621b47d129039aa6114ae2e91919f9c01dcc70e79ed1f37acffa067eb3637317239a09a08d9e517c5f2cc7c20f9c060622144a1be49afab8cff13ce7aabc17fbe73e58a15ebbe63a094f052df71358f4aa217363842955d7e8b603e3cae644a52aba5ff069bd3395336049bdcb0b47e6d742c7c74861ba372d3cf071316b381032caa26f7ed20670761e63587ee9b873110b6a8f88da8be924103bbddfec35a685ad91a93eb3aecd202af975df233cd8a00c419a3b6d7b3feda4ebaab112417118b7b4a8d587c78830cf3c4bb3fb575b48fafcbf45a919dfb4d4afc55d8460fa276fcf5d13acb5411372018cd363898d7c57208f5d511e00295b8d45d053fa3d196de14c101ab072027d8b713ea59cdd6280affc59a98024a3c65586ebcf11ac9bf11d543c0905cee0f34bf1d28a04049aea9373af12da85627ca230db9242beb057c33281103e8d4c4130766312284e87626a2c502409d4009bc24e31e5c04c840363632f914efdf1e137269981d87bbe007fc3e7bb501fa6707ce784cebb58ae0bccd57eb0040b066e4229b2b4cd3a5bc6a3b8fc21f18cbbaad51db1a949e4859cb581418cbc4c4c9aa91b3a4eef7a87fe92464f066395dede537ecfab55f846ed9f858870e913d543a6f01ddbe4874a89bf05ff1c1278419dd98ae0de4a0647165aeb1eebb06ca7e54ba6b1ea8048a080e4976549bbbd6f543350ffbf2f2d33ed9fbc9918fc30a0cc60ee12552930a2096fa8748db1d55114ff8342e36dacf794fcd34063d0deb54a9845474045ddfc20e65dce65ddddb7dcc1f6f03ab11b87e4b60404eefae8412c464223d4f271277e8d54330c056a88b338e7b36cbd8eda0482c4247b6d2d5b45cb8df73751e4a4b116eb8db46a99f9197cd8c64638731f5cedff83c197ce3f0febfa5c9e074007010a5aca4488e2fc835d3548ff082914a34e4a2362a7fdea03349c720d49d40a6bdc9d583128df97a4b445b07d6e00ea75cd0f97e763b35bcb30d8e15a4a45cca248847cffe4f269dd54e7105af70f6cb32dc60e21c8ddd20a5e7c1e3daf6a2a2b5b71985ad74cad6bb68f38481248dd433ae360de8cd6347fa43d965954730bac0c51aa87d4ba1d40fe55c0b93c0502dcb99ad707d45b0d0112cea70b675b8aba2173bde78baf48585baa7787c67d5ef45612c873e785577404c585d1cbee8421d6c47a743e82865674815c1e541eb4ddf021f875fa87bfe12ca61ab4f03f31aaf32993c9e02c51e910c668f9c5199701269a1d97877546f9534d58e037d444223af8631ebbbdaee7783abeb30ea0e1f1aaa820b440462e02685cf61b1176deb8f22ec17f805a2f5d72da968bd697da1ad56b65f2d2aae0d6bdedd231e9d645101154cc797260bc88142a760933163eef09e5b5555449b8303493571e553f8f9299d235ebd8566f17f6c77c7a9f122a1a918f9361f47462816e29c66cf888d8e48292370ae1167d077435e9b21843ddbeab0f4fc57326408c382d7d83a8b6760f2a6cafb05bf6a8bdc0ea1b1df470c8e6c66ac3482d6180e00ff65738928e461ba88b836c3ae5bd8ec84507afb1b9bc7fdcc703e833c203d2d7bd3579c2f5c1619c36e93baf0afbcbee2dcb94ee5de10addad0935f22c41de878a9205bb61e23cff1d88cb9e1a84b731e0ef55144784380fa6a5a5e7b956827959ef5c26542807b2e4b906343b47f3b6f1cd63e81553239e18ee5fd2595170c529ede26d34b4b2e73a3fed14c4675c26f4beac5b312385a38742ad3ba96f5e55356586ba397a7bf719fbb28e8019fe0d4ba91ec1ca7b5d2b9677f9d95a785c034f284783ea1c52cb195d53490d655585e792ff4ed31895767b0289423dd5897f5276e595ce9b5d9fba87a633d6b51fc7ee604d2738d390c22bdadebc43c28c7dc8521c05fa49cfdead53a32e1f9b941e17512d95d22edfc7aca816f222ecf8d29da55628b1542f4ca7f8cf0a0582c172c2ee62597bdf36f590b68fd1eb4f5e565a1756788a54b43fdc67f78426fd7bee3414620aa8be0b1bde563e2f176173ce62f7916973ba949dbe29cc2f88d1fb30cb545e21aecd96ee7f66e69188292f6c31846b775634dce449fb96df1a066a1ea83dfca60d837b20b389aabf2a0d994d626630ca861122a85a9476fdd50d736ca657adb0ba60a21325e97d185337be6d7e85e98a2cd20e1dd7f8a909251724c6f18ce8d437dc0b3764c6052db81d0ac49aeddc37ba627efadc260c2cf6faf796b57adf3c7efc2df9c09e7818e4fa69b27ce38ae8d954a04cc528017eb184018adca03bd956c3f509715467670e842ef6b2ee8899d6db2afae79ccc8a5efa14d88bbaca7b9dfaf4b7836e7fe8c06f5a5a6532678e0eea2efe4ae5807b51770acbc09ebd48179f5dd48d4d19d1edb4be201e416532e8267b73c5cc28041df981fd6ad43b22882567b742c8f0f47b935c0a8f45cf3252a4ca2de4d466f78355d052894783b1c30a454fd3789074866268c1e281043a727438e8f1776cbfb61ff9b59ea1280483bb018ef58b58db7c6edca4268573adaffcfe35f1634c997bdaefbfcdd8a3d61f2a2b88f771e5fd865afecbe43305a66e801a16200c3fdbc003f6db0b864c6097918bb70f7e4d9a10050b79105a88886f63c1bdafe1ed99a112b48b931d1f006d0c6192a5f6de1051da3efce2ab68614f437a4737c3d422ac6785c58bb2e19add4de22e0c97cc39e580053e312cf1d6aad53b4aee11b928ca79b6015a397fda8c44c22feef97afbd5b4fb3f31ef9c92eb1c52b0bd77e1f5f17c944fc0624490097d0f842c7f96d7529604303a432617c7e1ba9771a2aff3c1dafc64c7cc9092a5892a5b1e6f8036299c1c8d1f01c2a2f4b6fa3b0ee265184858ca7b0c7daf6155dd800000000000000000000000000000000030b121a2427", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 34, + "comment": "signature that takes 17 iteration(s)", + "msg": "1000000000000000000000000000000000000000000000000000000000000000", + "sig": "af93c0f7a8fddcc796b60f67b473a00a34e99978489fdbb9988f9007954a44c7007d0ed719c29a9d81353f3e44b8c7e549ccbe338424c443e538c7b5ce544267f657803fa59637efd266055c8bad73d233ed5cfdc8f412fa1a046cd1f677d12aef276a68cdab8a2588faa74852a54bac330b1f7a4365498522013beeba215d4c783d181ad15984f7d0030ff757b8c0a50a7c1851a55cb4ddfdd69e0382c00508a727aadb019a9520e9ebb88e0995d76411c2518a930226048fee6b01dbd420c463a5334e164e41ace2542fc7640bdb200991344daef326d620c8ccdb8277173dfab2d7254bcb4a5546a0df28cdc4291755fd564245a8be0c23e7ef8c7674fbb3a6c81569e39d412f58ba8564291ee7c655328cb6449f38672011cc88b848f3a108cd33b92709effe3dc0801ca685abec737f74dcd13082e2eab3f9bcab9f8ee3b8b0725b42d78d01c547005819a63b9c7c24a252e6ce020904a45d1611641c744ace8c8baae5d2fbc33f586e89fe6f2ff01aa8737a5d41f79d967ad06220204c63f620bfc9fa0e1b881181f60ca9b291eea0c765b549e5f7ced9fd7ead3a9a127e73f7a361ee26613b12f678f61a336cb5965aabd48fc60801928667764b0e832b0d087d424ca3105552a8d46da5e43dec762b65f78b6afde136f30f807d355218e22e03516bbc681605ba55fbded8971a0a5f4d6c4d44d63b854a5cc21fe0110ae313fa9894d6f57f646b01a83e1a7ee41df6bb63bf72bca424f9449f6b260428ac001aac7b7b97d3645e38443626fc4831d235da29966eddb8e2e30f1415a1712097b7dc669d3cac46ef333674d85211e9a94d825fb49e7b8ae54eecb9fcaebab8edfe66b2433fcab5d4b9ddec943f3416dc47463c32ef40e9f7a68ff2415b6bc936c3c4cc83ebe5afccdb2af55cfe47ef5614b67dedeb13e57c846a3cc6852879b370cf8bf5e1f7346751c337a751be6c83e1865345ca8df92e516686d997022641ae6585f25dc807244a04f881e5b3274c8c7a70707d7fb5c5bf1d1096038d76ca31c35b451347eae7a5b2bd376b77a3c63876a7841a398e506963454da61dcf27bbcfb378ee04cc9507aff13be16db5ed64ffd3e1f23f5c6b06b519a3faa7f1260e205e9b1ed7c8f5b755daa51b8478e8f92e86f031be253ec3a20c36ae8c4a5202caadbf21aa3f465206cffe2cd6b380ea9e35de58a95f6490b71ba32e04d69a2c536f297ef1c7bdd44f0bdb961a3723a1a7e96255e6876f922fcc955376ca117418d54158433af5298352bb23b84dd3148c880e5c23ea49716f2623bbfc33f86a35cdc16c6f73e900ef2ad5bde1f8edb0ecbd712ce18086992a98ab2599ac44a51547fc0ff29ee444161e1620a7e2b529c38378340eb9377714cf1c5d8e73dcd81dedc847533316c07600523fb3ddb021757e46c0c2239cf13ae3011ebda4eea6a97b6686a07239dd556cc78ee20f9d65bb30bf67141baca8dff02de6e7563966c13b954b5b73fc9a0ffa8f1c46207ba024b64af5ad45a4f706dd3dc42eb7ee9d73acb5fa6bbb0820471ae23830a0ab3dc0e1d8b3125282a790d366d6823d9a5e05b7b2f5ba5d0b6eb3da3150cb72a33b4bfd157b4d567ce44d43dded029b4b43ee2de531f5a7abf86e2d9ecc4a3bdf4f274e0a8a055b26730e74b8de1138ade92d7fce4bbe21a3af06490059f3f0716369ab12e2dd6f25ee5b73a75d2c31afb0a5f8d7792a4027731475909c755ce7232812b981a9fe347d3686059c6cbfad3dff337c1ffbb18435a36e0af9431fec93bee8cf3503c0d86549a2e8f53b6ca6a0ef9a8d815d53667873bbf0ab80dbf8cf8aed5d3d6743b8ec867c08a6b9dcf32e6bb398ac8c4659646c88ed4e44141a8a15369a8c9265b8e0c1cc0a340ee30ecf4af0d5a44ea6935b08d132fdc33e21daffebc19f4d8df0ee0cff37ea4336a9d74e41ac59ea998ed84f1173d2b9f1f5d925f2870e6cf674cf5dde76c0847aa4606130f04a265f2a10f260ae932c6887f148a622b158ddc2de6c53132fb13741a2d91fcf6d8850c9215524632f6d2343af02b41eada24d3e8c5d29260ed4d16dbc48942edcbd34bb9b077627a9c143cd6ee2dc383d7b8222a7b7c91c7609e076e9d59111095ba654273166ab6fa705028167ca5de6e2e71861d3c6e9df0770fa686f732dfd932b13c19b13c94b19a98bad4cedda7c62538ce80269b21f852607bc4e98117aa23d544673563e75b6c719883ee844014e1e95c62d55c0c7cac26b64038ed78da5d953dadb17f51b5e93d513c79d2734f61270e8f9efdb68b77a8c32636cb6556f7bd6a1823e80bafdcfc155d13c7df59da43a36f172ddb748a0da0316f9a545523f325dc69a42972afa1c5fdb7f5381d8c965210149c6ffb333d21085fe711d8f7fa2a89bb26e10391fa30931e95db7e3d594e97551c4d8d39cef7598fe8a81a5d9fada9483588e137a314bbb9e95118dc3ba4c0ef42fb4615ff6302a0d36d54225afa09d810691962e61a11703f8469624afc54079e03003441949672fb86ee1cf3f792674f38d73b905aa37fc4902cb21d2e6f9d4bfd70d0bba049fa75dac673cc489eeab5f8f14dc948cfc9f2240ca4754a9592cb01188d19551f22742a961ded4f75516eb6f40519bc7acf9af731c435a417ddd8b0e0556220382e0277d27b71885a2d717c479f8b5afdee48bbea908c4bef0c28f1b49b97cd48b67583ba769eddde8367d9b674829253ae61ee24ffb20152e42c58d0abc0dea43518776701d9fa82c2b08985949dcabb80515e6064d0e5d914b8710905827a94729467201a4c8c1e4efa72ec531b730bddc188e8424290530be45f5db0fb1a63a0db4af22ea3609c9d06ddf5253bc2065c2dcc5fea4657c8d0165113b16c186c25adfa47cf7b363d9b9437b7f7ba32d33f8d45706b4051c39fd0c18675e340202faa9d6e0cb94b6c29d88d187709c39c65bc2a78dbdb1d21b7371f8ed0fd134e826cac83c80e9ec08fbd0e2b8fae270e948baa82e65a2d3a6d96e0f36e9ce1fe36af1d358fdadb0ccf3ecc3303f05ef51e9a6ec6437a13c1285aaead9fc8fb2a17fa8db08ae17090c06ea9ed4a392f01e5ae8cf06c76ffca51b9d9cb2adb9d98ac920a325b5dbd8a6c2f9ce33da8c2a08aa304b2457cccc71d39a7d7c6945180f221429672587dfcd2e1474cd860443cf669fbcfaad471a2eda300b662184a150941d0e126f8054470e927d353baa3cccc3cd255081a52648199e73d0d86d0054707859464c2a249913d01a1ed17026fca43fda575b3597b0770a6e931c8d4343131276d1ac598d2816a5e492da8c8ef5bf88bb6941898a223e3c274f9729d7109a3917f63115834e4c3accae2044cefe2d8810b41fda638f2904d55c4b42b280f5717600e282699c1860bfb7b6427abeeed8a261d1f6a1f1ec969ebee1d2a0236a6d9219db4f14d4342a1720c53fde54202fadcb8f44978e526650bc4c858ba7ec06daa021990f659d971c8529a8e8138024a1a54ba4bf5de975eda5fe450f72d3e5a10281cd582149e56136076c2342d64d5418bdaa21981faa2d5e79570e4d9b40d67f987c1eef79ce7c43cf7ed1b5f9b7302eacdbb644d1610459524e0092942edcfb2d89dec927d15589998c8dc051ec4ada88a39e40020a9aeaa89035cca9a2e12bebfb0a7911b163309374ea53b363715a09051ec6d372ca111cbb1c4b9c303bf267c8cdc503a7a2065dd21ad33862627598ec7c8b036abcef446832203a4091e299c47e148ceb0425ead34ca79980c994b96e8fa9a74eb00a3a95a7bc2cf82aad377820f608edda04d608442ca44bef07622c67bb6f18ed4461a5629a91951dacc068b1406db22c2185b855ffa9dba1caedd0ef747cb2101ce27d86cd6012969875355e292caef22b22bfbfd36b7e1731e5d1884939245cfc30583e7d6c1a9f97d6152f4f634faa69a9fa355c3e0287152ed7711b89d832875bc216c98dc140c5389453c4b7ad3796fece24535cd3010da842d0a57dbd35f8bfa26dc268b9303cc64a257db4ca8a999de7e2a7ce25dd94635a95de6985cb2368a8d0488d8caf976afaab06d76512c2eae9f8f7f7227c3688314b13d123c32257918fa39f13079007f10981f118622e1654a5771ea7b98939e03065c1c74c2736d373d55bbd61f2738b17a12e6d48918c515e64b52b729c4e25db55a4a1d8549aaaba3818174486e9bb5057c02bf5900cf3b3526c2a2a96dd9d4f9ac35c08a33060cd7a57f6cd8aacc2e30a58d6fdf8546f730fa3ae4a0297cf41a4a8b4b3c0f768f861fd7d1dd7a836ad5b102a4a433001e71c6d36f046926fa2557126aa478e605d9c66c020a4322abfe9cc1fed99551c12576275f8033d4c8850cadc9eaaa2229dac35c363ee21600c90ddd7cfbf171f333c3f0f4a3d0e7fda4523a9950dfd758619159c38afdce35e21065ee587747d21311b90e0766df0d94527c07cc187b439c8b38d5979c8aaa87714eb31ab0b0a37e860e5d7c87b22a209eced96a08f8c4c6d10acaa1e3ffd3e805546f42851114a950199b5e2a1ed7fb5036a0d670abc0d211b276236ed948fc3c747212e424f858b91bebff5363c64747b9bb60a2240586ad1d311a9b1bff45167b6babfc0cfe44bae00000000000000000000000000000000000910171c2426", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 35, + "comment": "signature that takes 18 iteration(s)", + "msg": "7200000000000000000000000000000000000000000000000000000000000000", + "sig": "89e3fcccb519e7a1c60e5f252131c30dd25d9a20b32cf6b2f0e281e2d5b6b99044f77de936046d11d13d89670f1578491a329a7c9cedb7611add5dc3fbb4df1b491e33ed7c40b851275f296d77f2c1a8a64e98353b95c332fe2aefe674ae9288c8334822fb6c42a58465f1ea2989ed51e462123188b529addedaf07b5f45236b86e0643cd3295a5391d085fcdd49ed6a1172acc80fbb094c5b492b61ab1b3dbfa0e095394a5a3831e267ff606ba17950bee38192c02c7e56ffebb85c4aaea630893b41938cf9640fc150eccff4e487311b3ac97a9cbc51121bd3eed73365052e38bf47192f9ec21219430895ee224d467ef2ec36cbed2e3056bcef987130cd5c3c7d8c66a7b06e635d81e482c8ea1c7cae12badbd6bd1e9617b04de30a76353f30ebc2683f9dd64fe9981f1e8d25b5aaa294c93a1eb5afafb477717abdc9677f1b4190ee2ce8f1a9815ca23f799ee73a1dcb32682cafe18375832ff1d02a1af90124a3cd307fd712e6184d2adf2bcb6a55607c56eedad38390b0de19b65589d765ec43a8b9a0830a825d26fbdf22b70a11586a301db6b94cf45cb3264b6e370aa6b346e0ae0d0db54cae4cba079456732106789d879284e1f0ddebdb7896f70f23b25f984ff2f0415a96cb7422fafb88767a28886ff8096f15e8761541a17986cb47938ccded129a6b30509bc3b6161f8e0c3783024ca65c4fe4179c0d4b701c6abde8a27423d3bdb5eeb6b693ae5d357f5740e3051a3697cc56e18501d1944fbb36e728a1c6a25cd7a6c463b9ca935691871f3733fc2e9841bbf6900c24a08e09fd28d43fead0a5ad656b2279895231b3f7a760c976f34d05e9fbea5e34c8d5477126dbb5fed21b5f30c415772dd2051149c3f68fc8fd8d1952127c74b3f394f57e323353b4ba41817a3b98a9c862d09bd709c1a58e97b4dacaf6ac977ddcafc5e9ae8142d63429078dee03b61a096c9539f7217144179286f61b18c6b4462d592cc40922d5b4d645f2967b5259b6629741b521dec58394435c37cdcba169d92bef5da32bc4e910e907b65961bf07ba3a0e99b699a0d051fa5fa961ee605f2f67c4ac5eb8a794215df11e666d89aa1e91c1088d7c80cc516045b793a0e516e8c55f0b08b8d85db1f2c7651333b9c9ae00aae0f2ef406cc55472a20de3c0bd0d53651d54c4609b4997e6c20f8bf7cab11d1875362f84697438c09059d9c690b998dec9797a2bcd730110b52a3618b911c535d3e75608825e3e51fbf0ecc49a4565d506c4ac0ca40699081f4cf7e9641b811b7e9db7b99e07479067b82a421f114bd72b87b48a362eaf90fa33d0b064e5351811e722dcd6044ab2153435b373a3891e05c15a74d8350e215155e9481e4e3e187e6f7ee87bb43c34668a27a044afe988a2486ca1299aaf0811f7a7638f9debd17b77b6a7062794f6fac860c319e5c3127890ba6a9a783f01f81d1aa757fdddcf9d2307b8f2d9a0540af771d00f6dcc36fd7279a0ba94c280f4bea00d43b181ee7674cd09a5c2e0a369bcd7f7166ae1f9bd0e92c3265e62c72308c9c358157b0c7a2b4b9c62927648799293265cf1981a67b8d46148bc5e619c0eadd3675c83753b3294865654ff0a7236773436e0c271dce2c35c61cc8db3a97683e14c2d5cee1fe08635252a16f3aa80d9f7e80cfb535c79fba5b52153e96c884a0d085bc02c31fdedd1b70ce9e4312e7ab12893f55ec3ba29ebf4d8923fe5396e7daaa5a9b2f310180390771d36d85b733bebb56d03df990ac69f7d371fd5bef121811a166c1e0bf4710768b004ea019fa8a52c970c492006137c864ae8ecf9e1a1bbb97e513146d4d21a58e0e739ad75af2167739e92912c59790e3f296236548bd13c05436695d3c1911a523ab833f4f28bcafe633e8567327f3112f664f3f63209e55f3ee488af6d7d281fbf15fa73d2bebd0124a71309b41d47bee8920f498b961a7702971afdf90e37d5c46f46d02f5dedd54638f5b169358f1ac9e58a5ee745ce6c342c33c76e3288dae0fb5b4c9fec740b3b141e492388f7e3f274767a8afb4794646858abfe976597906aa8b4b958f118eeaaff7d94c2950156456984d8f4fee7cb60ebb41550150e1b3b9519fefa00cfb20fc66bc44f87c9cdd018363db42fa9ef81a7679d37cc1de7480b3f6f78b92b5a09a1314bb0d90c8dfc8302abbfaeb9008f604a1ffc600514c5c676e414a9b2bdf07769dcba9c34f37f1e7eb3e0a5aab946c633bd46877bb84b4d742617e72aa90d89f58d1e4df6c4c550e4ec5c99f7b0e093df5ea492b3af72b6a7a41042b9ce896c8122f6e35d1e8c6f0f52150891b43c19cea1bc255118c824bd1760fe9d9d5fddc70146592547bd87eb077b4e8e81afde392d885de9b73a5bb02e7b7c68581c02b1b5e38b68443536de2f77b694e7e74b933a9cd8b76d8dfddccadea4410a2b94c26f8e948e92a7bf5469e75d426f1f6f85b1d6ce46e8820cf0649a26b1ae5c4a7423d304bb2c2ece2c84aa805203427df2f0fc0057ea5c702a6bd67b187e131017fffb93d5782a7e11625f6b8a41d3b53f3ac1ed2598423a5ac0f084d6bbd92a41f6bd2dd4764e4b865371f240e9bda5d68c3be3f224d9236c3ada888105ce0b053f604a48afe7a02927bc6b67b2f79e5f73b4521235c395754bdeb691bfc1df3740f1201af277047a5907adf4eb26bfb55ccf75bbbfc81c58ca59b5a2d2a53dab03341898ae908f64a237fbbeefb126882ec3974c1e9f97880afadc572a60d0a568c78254075c7cc7b1782c41856edfdc27d45f8b30fc47d9e68523c62f8d3558ae0ee252f5f12f9d8d607e584d8b9111c6f7f812a42667ed21b56f0228e4a28efac770d015e88cbf8b9d9ea380867e61902e6cafff7ead38ae60ba104f83ba6ed775589a7f782b2bf3a44c5321f217b030fb716094dc39e0d7626fcdf24ebf6c53284dbf54c97e8a4f305210fb142ff9eac36ee75e9577a989836954662645b0b06d05e2af26f209c67149d3a8cb4b87a040991bb619f9459e3f6a809cbf8c3e8439245755b27be0fd0f344ef6c13c579b72b3b7dc995985cf834ed07e146280c8afccb8dcec81d92ffa57c8b3a571e77d05d757dd6043ce3ece5c51e6bce0a9b704a57422943e333d20b8870dd492441094c6eab058bdac1a9f746f34e6233dd40bc87217a2d88da0361239883631460477320213131ba05f9c431df8be629051e6b13fc11a733ae1ccc71be9d00fdefc788c7f76ce0fa0d084bb12b5ad57b5e9e1c566f5c899fe8ec9ca04051e9a8c36f5fbdd7a2d8824d601812dacf94a33ff121a853b97f0973945f4c09190abd545361b9c80d98d47a7b8ef225e19debde3ff5364290b416b09c1f59eaab0237b1caf199cba737737aa3630c73ed1b81b787cd5b7eba372a6049882c9d8ec64d467f301267361e23bb1e56174cb0513981269d02eab2d2a896eec2464880199ce2e1848363045d65c7b63222b4bb7c1bffc76b371326f7ac2882389f58fee8cd2096dcad410a3fa1c7ee2a74aea61148e7b09a1f8065f20c627f9b42a10ea8fb23efd4a723a580619472f81a07a543917baa847c92f7bf106d6201ccbf577061f10a904da600ea23c986ac2101cd615b5492739d876bb301b41d92113402b55d06ef6663205fffed61b0492a2c02895fe023768837b6798ef7130a4c24403ece37d88f25e966a12bc9e33f359c5d0ec0badbbf3c1cef1d8c3c81b57f4ba30403a8a89d0ca671a19d768cf8a056ea75a3769a840d6a99faa8c7cc160f784bc055fbaee457afd7295d3c42f0e0c455198bc5cdd5683670f2fa0d544978d58cf7eac45f4e2dde9fdc0ab3b66b3b94148d0b9be9968101d35b8fe1c651287dd8bd5192cc85eac1fed8fa56bd1ee425036c2b494d934fa458c45b014c7ae2c849a79247833b222805c98efc232cda590ade0124610441615acfbcc43e2aca3da8f7a33c0285dcc8484344274e4d743540f5a59d22b8a64046b2656e5e814988baa234c2688a7a9d2df51e5aef0d77ed17b29246377360ab1471ba0975ef38f26e975d4b5cca86144aa4a32c41f69999d6ce1eaaa3c12f9c32cd86e0d18c715653725380e2b9a05e13cb9872f6080103f4d4150d454230aed7ce84e26b3f9093b3cd616a9f94ffed023e498562b1c85eda02c88961a752eeb654f0588d0da952aa2f46c580fc07d83984200cba01bfa6c604a429e1412b6a319b05789ab51e4732ef0a04b3f48b5014419d9094941c1a56647c6c41de617543266357255cfca5e6561364a7a4688096336fd9dae450249350ab57c5fdb895e1c263683b4f0f5ef93faa11d3ab3a936dd7ae7b2266a3458b6c61ad4223d190e874a25cb789e9a9d19f0c3c864bae17ac7d5c24613fce2cc010c2b07cb489012d0cd214ad0bf2278eab207ac4160021468b4a1bc4b2a31d322baf1a59cd71c79662d030fd6fecf6f1590c86564c064bf10d1ef3a876f65273928dc0f06a01586f856ba9df0aa5fb852f15d33fec277a3a33a79f5fa6cbfc3055f28ff741de987ac9a3bd1122aa7e1b1ccb349b45075943f661cf013fd211cf24565175c87d860eeb422c09abd386a6c2d50dfe606151c3176a8d0d90e1017519aa2afdbe7e906094c821c4987adc800000000000000000000000000000000000000000003070f191d22", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 36, + "comment": "signature that takes 19 iteration(s)", + "msg": "5000000000000000000000000000000000000000000000000000000000000000", + "sig": "d195b3100a492fd1f03970367c4d07e1284c8a322712615c275d637c9b96dad2ef21121f912e61b7cd334775443cd28ea75a5fc9bd34fcc95147da63acb8d624cec3318b1ee120b993223d41274d674d890d19befc0f7d36c8ab3b652d0d998806798cc679914c61f6c1ce9d673f77e050fae67ea3bd4f39d7ecd599d206bfd07d3abc228921300ccf5b09dac8953e2683dcff870b14ce3d11249ddd92697b129a78a662a064f70326e3de7dc138c31e4384b5a6337028943e1027c2c775b424aff4f19501267e25a6b29b71909299d0054c9081f62130bc741bc3c26460ae76f6ddc59b16612f965509ec9e1821090194720bf788172d0088ad9641c56ae26b34aff89937fb35085a213957ee177da345c391d968255c399e769522233e914b164010a66beaf2925bc54921979c3baabcaf5e8e0011b4df4713ad14fbe0e83e13b1ee808c17924a2bbadf06a6164b2efa23a43cbbaacfc7b573a21ade3e62362a09118f63588ec9ecc5a496b293e5dec027de91be7aaa8465623ed9451614cdcf9a2758639b410fc5a17515e84b0aef28401d26d27ace64de1e4c593f3d9324e1fe96afb7d5253bd4e0dd6038ef476b9e113b098d3cb28ca5db8a1fc347a21b47411cb46fa0d0d25ebaafb8f484f4d74710d2fde2c689bde16019a14e7226b4d1511a8586fb1cce623584f16b4532a3877003c0ec9e067a4031e2919d94426c4a1da9b126e64a5547884019e1556662fe591aa19bdd487af5d4d60bcaa80d156140ebd9d028f01bd8eb526b5ec1314fbb72c945ddf1d37a154d923b13f4e9c0d082b9f1568f2ea1f3c63b5bf1e8a8e53ff879cb9012c2ed3d9e3cc03a4c4df80c376aa20140b31ec67026049ddc3caa0a346370915641039d80876c4c9ba492d7e53184d75dd91a27b6f4d6998ac2d1ac678a01bdb31291e7e2d54a0ec5cd43e9b345af3667b1e7572099a907256c7d24d8779988b0074bc5dc7abe47a19f8b55e71d97ebf88a79ddb2e31459da9551b9a3daa3a4b5c2f880ae6f5a1281fecf9fc551bc4e7f28dd2106c03cbbd9c2b2e431849a74ffbd4ef436b89709ef99f56d5e0da522b244b1dd9e6d7f40f2f406427d3bb56fc0f104ccc4b0d4399072d46be4fe8e3571ec282609e5baa75ebb176e3fcb1801f12484ff84a19e420f562b0ac5bd50c4c00a2807de8ac33df85bb8696bddb44915e3f9857b375328d9af4d1493633fbf0249014117823b2328b7eea84fc9a44e77e3a407c3c247cc339ed63e5df93e59212b57d36c631f8ed932db4aa4d0d1201b9ec5fb645165e4b3c331c67693ea81c1877a96cf9452cd384ecc8054b067382f9bab4523f494292a112ebc63cd768df87d89088f7a2034bed8b3bcfb08ba36d08cb5cf935c00df9b84691ae61a8398102dc1724f1bc67ad07c4e595bea160e282849c087580f6128a4737252e6b9652f7b5abda7417199017099d30ea76514cc169b199ffbc48345e29f13961405670da7294ac9de9f0da0fd13a47f254a1c5cf8090ff391ca8558034b624e4508a9744a1dffb92f42d02787fc34b2fda548bd426bdc657f901ee220e7a5729eb0b889cbb851aa1773f99c51176604d8f287d3be31fc91ff6737b6305fbdaa3e80c4b8dd9796ae2dea6dbd2d9e97fad0e6a8952ea8e5dee06c2ccfa2ab7ca9faef5a1ba3bce786b5b1d62266af8ea4ed35a885d445c9c0d3b979282147130cc9b0818f1535a979d9a3849aba98807774ef7445288ed5cb8c3124ede54d7d9a34c35ed593a32b15fdf288ba498df82f6a348ba28ff3978d7ae36334b63ef873a2c638bd6cf921fa4e1688ff425d352ebb8c1794e512c8a96bdb0a50bd3268fab4f12e10c099f4871947e1583b847281760e497b8d8152b9d83ce418cc67f21c465042b70f63098b3f5858b0b64edd5f4aee6e121a4b1f3cf0f079764d716664ceec17960b1f4ffd9aad45e1c0399ac204f858045e8f6d436cd4afa788db43b26df5bcb8d7bf5c2a78bf59e1adda41d7b3d2fb6774c9e46ff83b7993a708f75855c8748aa9f121fda369f2565e4f7db8df3568a8adaa743bbc01f919a7567ec675ec0326a73e930090e0ec168b8fd8f0aed26eb23216eae57f8081502aa2368d74252874782bdfed800568c8327480ab6ea3223fe82903cb17bfe43fc301476c7f49d23417d08af26ea61f106fee4c7d49a4b18af0307c77334947b6014c29385e0613a85d618814d40806bdf0b8e4f4d8cda6399483beb0df880dbdeba74bd81170cb340fccdaf6e3b862dfbf89753f57b1d6a5384633a15f33b83d368aad4d0b21e850909530f1ae483896ba28544822f9134c58c7a13c75eb2ccca3d1b5e645add5e4aa696358dd486fa42fbbff23d73aa4c27f24ae001e314a969f349f3650bb2b53567061cb9276a22e568228629106088e4aee0885fe5ae5b4d54be6680218bc1b63ffdec229160ea32f62f2a7f36fd37049acf0c9e42f13a601b014236292a9e8f22c02d564baeb71bcb9f57b91f0f455f98abf4bff9f57f5c390fb3f4687170a7e1ad49a40b5a61eff0306862b762f43359c247ebe045fc6abe3fc21159ff533a038c6ecde4ac32637b27028e285333acc7635d751a24d01834e0e142d8ea32455ce08d03c8fc180be64cca4e17fe347919be46b51d83233c6d651c6061bf43fd1605b38ab4cc215188c822c899354451e8f90683ca97d0ec3c8244939389981b689f33569645102ecfde89bd714f7cc4269c218ff56ddadf455a377b04f375a1716069f79f5f72e5ac8737d754934b25c1d175da27d0443561b3b593eac1e3abdae794e47dcb8cfdd77cd94479794cb08a346aad446b7f0ad121b281f69486029160e3a0b2e267b0d35ff920dcf16aac60ac453b6ce7b51d8d469c15c28ee409165379dd0dae461c440a22f18c644b6444296c2a1cb8442ad1b21cb67bec20949057b799d3f5d38a7a06382d70a728e25ebf46120333232dcf2c89b288f38a47aa4ab9d599954e7f39b8863aa16e34fa38b45195389a5f396e4e35f635f9939ca24fb6f1739114286d4bf46ec439f3eda4f126b144b6442b5d64d0a8cf96d22f876b1b2219ca966b87546de684ed6317cbd6ef324de398eef3c39fdfb8ffc2ff06707f24a659f9e544de6bbacbcd2e84f59c240d1bf852c59a8cdecf61ce5d630da04987f72efc58b6b90703235cee579a2eadaed963f7617fdd088cc256469d8ade4197b6ea019b0e114efb98b0f78c4ff836f7dfaa8dbdc2c3b7fed9c4a4cb350b62591ade1bb881256dc746d72b7b345482a704f52745ab80b12a55efb83e9ee8f7e50f19672c2aaf58b7504079590a447d4ea9adebf13720fb366840f9e41f0c128789c1ab41f2e736a954aadf87aa93702c82c541895780c41285e5d5a42cb5252af85ab70889694a153850900d9e7b696c39a6026ba3aa18ef304e7b99ea209456959f7857da264ba4d707cb2fac183545bcaf89844ee448554ec1f124540c907eabefa6e7baf56d7abac473e433f949780b2d31b41c8c7dc597e6f58a1fb67f8d99ca1565622a4495e484384615efa8a1a3bd26d1328447791895cf82d14b7e9aa490559854c1e7175cffdf93c959896c74ef2b25c1e4dcac32beedd50fcb92481c255def447a0c0984e3a8f7839542bc8e5465cbace449d3ab75e03a39f59c8debc8f5f27782d425732fff5a3993a45bb0b26d8d929a7451dd2c1837eb3969168ddee0fa9b3ee1664b9f6a4ce5971d02ee990b58896195a844a740eec9bb76f90733b78a5e6c65848669e5899f049df2df8b7f6b1b88be4357d5555b4b7b7cfcea19ce5e48aaad6d1680e8fca41833debce5bd8734773eea6b237e9a31906ef4d7b29f832fba2f14f23e7ade4d2c3ebf7050f8633fa01e9c0e260faade6b980a7309e4f0b16886bf5bbf1c4044602736a754d459966b747f511a7a20c52bcc57ac4586fc3528deb0897c37bc9cf52e71b9206a5da2f1c594f4faf1983bd9966cfbc2507c601883d57dfd23e87b86d75b7d37213d0141b06539b2d6e422527437092913f423341437c683b8e5054bce2140765d4919e9d1e9c492d7cd56176302cabd608b52ad78a2e83ea21500769e1b16b29717bb0808e27bcbfb2c31dcc442912a43f3bdb4b9fb0d929d6e271b67620233c731f5835c12615c01574951efeda8c75618c79dcd957b9c72380557e9b9db7d8f85c64be2b70aedf19363bce90ef5015cd20adab909a8d155d9ad1aa0ee714953ef4de0d705ef616549a1f78f36f3601253984ca67880f5f2f1263cf4a91506abf6d1d82d1963e2571b458265a1487e1fe3c9bd2bfe9fe7580462282c23a15e0ec1765205d074e3c90a0b541e11871e932e054815415e74cca00be74194c80e66e99d754fe39df2cd73907251e1e9a80bb80ce076d889416a9a04d6279d3c2f8d289e0645356bcb41aa0ecf3a3fb70fe4df4fb4e8c42ac6683f5b81fe346f9a9cbe2f420f12d67777a2bc1fa17f85ed62a805f7a629880dbafffc15c9b7c28eda4bcc6cb988c3cb10815a2bc991e7fdfeb08665d0da9cd66a7a8ef8eb5fad7f879075397ab60a01c0e5d2b9490c38a8f9a9506030e1127a9b5e5e83279becdf6072541535b62a2b6cbe93c65666a73b1d1dedfe2e3eaf8018093cbe1eb1e314970bcdd00000000000000080d17242a30", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 37, + "comment": "signature that takes 20 iteration(s)", + "msg": "3a00000000000000000000000000000000000000000000000000000000000000", + "sig": "d5d4c237111de3d767eda7b22cc454df422bcf03257b0c6f426f9b6e2105862d63652590cc4b1e32c6a257ee0f6b0cfe50571154c5623c73c73e1bc93ee850d43e14c34f1d3011001b014d9a4afd32abeac0352fc6d15471125b6ea5040ed939d354a7a37826b3dc623c58f18a61c426d24060521add20fd76b9d97d79734a4a5a32aeecdaad09d8ba0d941ef82d62a0c6dd6cf9d07ff00d547607caa5eafe45cc4e8af67a1e40356ff0c1681b791325c1887c5ef56ec8b0cc7f5b881c6d4d0bdf6b8b589e75e5ce3629b565d5332c291755c8095907830388d5ce3c6519ba5161039655d00a73501adb9e25b56a7f37a1211bdbcf3f6d1acdad3d9f9131e43b3efd9914a8e822757a2c30a92867d1c333a9728f01c1ac931710d86e05a85a9b635b8b4e8e8a4c15a981e1907bbfe333f7fa686493c366ecd0ec101910e1f0003815b6f7a9336d5c6ba98f250d7760503727fe0d51826ab9cde573a99673a3154356f7ff7e2786958072df8c68607fa2dd1a15892887d39c4170eff34d0c4a4cc13beb561c5386909d734b8811ce42a44d3fd90c64d8dcf5bfba0dcc1e30ec5d2cf73db17e7903c6c1aaea40fd74badf28ba195fe12591ea57f424346f2fdeff968aaa9b458ab9fb01b3d6966ff6309058f498a213f733404ad82697f8b012963bf5a478f71f926fc82d0f5ed8e9c1d6274eba18b68f63508227b4d85e16d6577b8f16e0d218286d4dd23d7d4bf931e83eb825fcb27fa3fd8cccee8643915885fd35e57859c6eb50683746324cc25bcb6ab260e06247f99bbf3fe679b84b594a7c992685a0e4e78ee927b1c7845206a2c47561b8f8b5d3449f866d24287c1e7f8ecb3099f890dfbf481780100a0d8405fbafc4a93a74e2ba2bdccc2962f1cc33e453401880398975231173c0f0d476db5508e6de861af42b48c7bd3f6b685ea1290b7b559e02ca5d97a24588e3c93830f7858d2c3a9a58bf7388c30392bf665bbfff7995fc3015e58ee8ab7c169b681516886e30002beb3bd37d7cc46a41e756f321bb9e5126e41ea9e7052e50be777db79876ceb71c49e9ec8bfca0cb061c50e7930d4bc345765145ef81567f13bb7f5bf50e3f8944e92415166fdb8f1848c8ca5bd4817d5b85c9ff97d54fa3cd9d5767e3a33d6d7749c26c4ac63f84a7927bb952a16c4ed7b05fc5f648a15443ce3bf36730ea9c44740948bdd7803d99c2d00ddd11fe682424fc767eb9a2b99b1bb1234d2c8dfab6d2eb132c10d5f5e56938707784bd89baf9e4baa281f3ea7bed42e4e4b859eded26b3b7e5c6953ec9c9d8d7eceb3108c720c898bd639a754b5b9076da4b827bbe2177d807044c805780d87e7c0029885777f0438d177f761d19900eca270fb7f3a5bd603963a1f3e247ef56d120d2909a14b1414b1809afb632ada9291989cc84d53689a588a67a9a7ccb293c9209dd8c06bb5b9458f655e95978a5bc3dbf65ae84cf6b556d7eb52119c9f7ed1e1a9fd72432ca2f372976366c00bddef0f10316210aa1331d6133a81a929efcb7a10045f597215257cdc4c1bdfae9c05fddea982cea4423059d3bf9c657923b571cfce925a051e7ddfa5c021e1a05d109f41b1a390e1f3d4df8bc428ad3c948a1483888f3944d3c512d68d0f250a9203fe6f240ff3adea30343864d5a70cac82e00a292a1496e0cee1bb4b54f459570ae0f1e578ca2b9809182371fa90aadd4a1511301f1121e07064ac334d59f566b3326fde27b8954dfb1e0c3ffccdb0b17277353102dcd0b4a66fd22fc9d0da0e31fe58382d036be2f373e504145bfd343d8c4ca31d6b18c7144083a0de8944261637ce323213af02048400f68b6bdac8b0bd38075330bc452d33b64b574ecbadb28e7a0e5bcea64148c37d4e53f6bd70b74ad1152d5f0288e1d02246ebeda700524c64a53c9270ad5a203abd3684795ea83e0e46f377c2c3539e267edd0531b52567a4c6b22a9f267586de28563f46fbce127414f69df2992378ca7221a4d3ec40e336a99ebaff2ec9e0ae500da2944dd3efee4e3df1c9af4461bf2be79a400e0cd8aa9437817bd4fe0919f99a8adad6cccb02d9ed32355d539387a1ebdcf47dd542cceb56a0d3638498173ff7b279a842a96d61b1b09b3cc9fba0bbb3dc97f3cc439d065aa81c56c94bb80f61ca96df571e74fb2acbb123348ce8b8885882aef8a59d1ed4c1f4002be0f338336b7df6a0e60c8f693c751265de66ea247181398592a274318ad749e4b4239f5bf0c386f7110fa6c3ab0baeeee05468c56fc81f97be4fee082d6f93d9bd615c4abbf3dbaca1b8ddb3862521016beafc9924d92daac52bfeadf6dcff838a7304ecfd4c7960b6f87c0ed22c958dbce8498c601e18fffb839f2fffd2b0c7f76f9bf109324109ef59735500838188bd09439149845080e37bdd032db9b54d0aa6912cc84c75f5e6a2970cf93eaa0277722d4de868869e2c9b4a6b257dd07da582acb32e51336f204ff1a8a95da1f519583b63d16d8ff89f127177d31ae34d669aff049d1314ee62443ff81bf1a9817a7ee6ccb23ed801a2c029c90042d6138f8955110149cc15a6375246882e041952e3735f087d1bb78380ebeb3fd785c8d3ef5e58cc6b5c356bdeb1983632607928ebd6763b77dc5a42d6b5a145be0b59e5f178ab83869ccb335b189ed35323ca4bf8e8573581308db432d40d10ad5d2d1df72c35c06b4cf78b2345ac9f9ce5bd648370e42ecbc899ece3d647090f05d0aa07487f77d8beff80a694fb491084619b7a147f3aa900b1877674873b9409a6224d7bc70558084faab2dc7c22c880a1a41892f342f36d121b8957f33a9032605f226961f254d751cf45b2e74e8c853313be3268c03978b4e95eb100e846e9e37b932a4f6a4f29366858856c52bdae4339e4ffd2715dd3d11e03472be3145c97aa1b04277ff7e236a90dd6f989c5f571801c1aeb191cdedb744357d984ddde14b32748ad80365a6c05ae217ee7d166e1c47e1501c4989678b35dcfec700f9cc86db534f503216ea70cab8e14f3d4463651ded4bda83fc7e06b1288e36b35ba85ce6368e2ceb82dc63fe092b35d236a9333e980272e6350c78dfcd36cfcccd5e4f84848f95c559f36e921b75a8e34d9d190542af7fc129ad36067287af55001faaa2ff47348379cdf4dcb9d223b7bee63dc504c0b08b6ab6870c721ce320191e20f5391000f0588913a6363cc770a106daf8dc981e153a8914f230ad0dc2ccc93085bae61879d7b82b0be5904e0e5207116fcfa8a4eea9b744ce63ba82de2ca6443fd76bb9e933760c3613edb04c0a57b587937be3c70ffdae744cfc763c0b83a298d8fdababd26ff1d5f5059e74d48132c029d6766139e579333b97632b7de40bc25e83b9109e2bfac810029b3e0cac37a616965c81f473e3180866ebf6d7c646581c8d857f5aa0d43cd379179c9f52c18dd7207e6a95e47b99ce7fa8346433c630c5edb827e0d8f909b99fcb7c0df8e40c29548cb66459068f58ef431f8cd5ead9813958f06f9c8162184fef9c546290ee0edf0085387f0faceba71f5db046476ba8824f2fb4f8c162b5527bc8e3ce372331057c37cb1d054e0800440e184d126b45b5a55120e9a3c524f8e34869c3140e1d77cc17c34819d392032595c445f99ab002a8481971a148ec34850b9850d69bff5344135fc85d412a8ae5f5ed663ca237e8222889e9343f6c53dfb9c85013ade360bbd67aa546e69e6d9e9c5d0976c02c5e072e91dc82ad16447373b0e5b0d5b07be4fbadef9541286c964bb210a7bfe8b8f942ad9748d6763873435e97b8b9d18ceec2ce397222d45fd4bd75512e3a4e67a2860f64ede81ff013e1a563a4253c228ce8d894f216af05c63405538bfb4fb3074606acc8cc4ed5a12bebaad8d54767903661daa206b29461f4565cbb453fccbc9559df583fafa3128022c8c30d5086ce446532e2b448a75cd95c449a7159bc3d7475daf6c5b72f1320ca85b9e4f1a8bd0d95d8ba2b66b1a23f6f83c1c34e0e32fb56f0fcba0a0d790cef1de3543392c93688895fd0147f3949f1f93dd69c08cc282dd71f2f93148ef7a4e1a83fa8bf0e83041c3822da6cd6b8e66915ad2074fc5430247938223c0368fd367c2fb19b6bb3e59ebdf17f5f6b9f0da025bc3a1bd237abbaa1970cbe524271008a6e8b0f86fb8ab57832b1549bf060db8ca4bddcd587131e61d01214b2dba739290b410a49eeba87075ae899eb7ab7d0b22a7677fd18c205c48c2d0efc5250d3b64e777688e1df8f8f251ff73c7b73d01e06a1dedb8e44ecce22e5f23686f54ea59d3e398d6f38d9453fe571f9cd88ac21a5e8ae089fc74d93a02360b9267668d285f8b81153470634f3bb938c5975c62781d2d70a4b5540cec4e4ad8eea549953545cc98f761c35853971bbfdd1104df872c4a76cb7c72a9273b75e48828d9edc7950819435ff5148ab9a1069f429e6eec43733cd5a33f9db1c19f3bb54f6b4c7e1e1ce90e60bc1b9aef5fb65c3d3a041fba21d7e36284ea4ceb0ccff7480a22966b3f7d1a41b0de85d6dcb03e244628e56938ea4a2a933f460a1007d6dd3974f95ee1849a546539acde1e441456a919a9ba00f20257813b4de1f4e8891b3bbfe4564858b92c1f4000000000000000000000000000000000000000000060d11141b22", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 38, + "comment": "signature that takes 21 iteration(s)", + "msg": "0301000000000000000000000000000000000000000000000000000000000000", + "sig": "bc69835d4dc26784a0325b8049d40e922955c61b21148c20d8fe679e4167f21a10e880f6c75c0fbaac2994ffe766613c65683672413c55a0ea88c3ddb91d53e1ea8312d8a7781e611c7355945b8eff528a8623bac8b3eefe0ec5628155cff355cc6daaf158d459ae496cd3648f8749d08b8ab5359b8b62ed52cb6da031819d60f2e9eaee9a90a354edd6715adcfea9703d240bcb4c9390c68c4da321e7c06304b7162f6a87f0aac352e2cf4875eda31353ba980d1bf7a4516166c2c4cfd0fc0b7f5c00bbd520786b969ab57fbe151071d0af22f5ca50f6ba63005a04e0b2c8578c694bf7d5e7e5ac6c51f02c242623cface4d85ef1b3ee20a5a1d29642a47362f3709e0500d5c62d1cf155c97a3470c49332147b9060d7e3faa7ac06eb71946d23fa8d25ac0e6a314471679ad27867d4f19a17fe3c4a60ecead04b1f706bd74562e04210282220f268ed1ec33f4e5edcc72bfe09b3927358678f0654539503b3ce71346e0beb86dd74d8fad3710794acda646f639ed99bc38d5916ee939c7a230cbde69aff3bbff6da1a3e867f9ad8ec1f02e529a34def407a4567e055e65d17cf9b4df1c67844163cc4f0422fcf1879b96192ca6bcc6ee361ceed8472aabdff98a68e3e7c8e3015b36a323502eaa643626563fd9fcbdca779214086084a829ee6e3fba9072caf18c69f1442dab9fa5facf0970825e7ee57f2dd372e93d9cc921d97c4741d8315cc8df4d1e67115a6dbfbdda45a2235c1334422f2b9ae523270a8d4189c3a57b5e3be8f42e1cb1fd2bfdc56658290f737a72dd088a894cb2c3723de2ec448fcd05b20aaf1f6f27464260e5b406b987d1249ad9499ef56b4b7c42fb224336c5ebc13ee060cf1c81a63a3fc79aacba7e5527dc940765199b5f586eda057106732fe6d38d75b3676f2e1cd1d607382f943c30744dcc903fef904aee1c7a48cb53fed2b7efe5f886f7fc4cb37e6a14b540953c2fc4cac05f03e8f88cd27a4a174089c713a673bd46a77d05eb781150062dd1144a37fc66b9eae3e4fdbe4bbbc53a639b55c5befda2f6dceb39ed5acd9d613b3eb340e31555ab945bc878d44c80bc48e58412614277def3ca1f41823622f7c7e14a75c7d1370d7a5fddbec7438962888b14a84897d6831780d6e5c7b120011f8cc6c4761e1d7706d6abdc95dac0627d7c00504630cccbefccfce7292cc274326e9203faa904c3d99957da57aebcf0efe62230a1aff267446a6fa67cfa3912c395e49a25d9365d4b9e9ad0e30276dfa497ca24f25e7139c2389ce28d750342371ab6e2a1dfae9cbbfcc5aa5edb1350c799b36dfea285ef252b4161a8c5ea08ab8893b41e4ebf7a220358efb3235bfc74ec1e4846ba2d2a176cd214a52bcf0777fcbc9a0eb3ef5aad7f8f2e40681a170bec00a25feae9aa60ef29d14864d6df9a82073176f42022e8142e59dec8c583944e97ff8cea6e4d6bee0c31ca86c8f1f4a45f2e01a37c80ffa85efefa18b68c4e5819ec5529dddc39ec9b160dc2f2c20a7f6f483e74e3540d55a22052da34337b0e15a2f53ba3d3dbd74d7179d979c32df25e0992b4eb5e71d1853cd476be0fb6581e93c44a25c51b5b0b2d0de536d42966bc8757a98337e331cdbd7374e8e9a1e55c140720f995d6e59fd9321477911b14da22182e3ccdb52a1c2299956fd27cd22d4ff35167b09873cc28045f1754a4d2ee5631a3a2a848cd1a5e14c2639d949169c05260025aa6003ef2804d69d92f96af7dd405a95ab798bc695c990a301a4ce0321ceda4026300883385b6356433fa0eb81425e53040c78d75a2d28caa62c2180bd2caaa543295c67c55f3675bc1ba4e4e660b60b41f3cd9dad43885c5fa760957d826dd3e1c88fd2c5c0c61be9c4ff918d0f994246e370981d7e944d62af48da8b4e9d6e9cf526c12754c92e8d58f7cfc3ff3458ad469d89476a4081ed1a71e15814cfec977f9904ef570e933c19f0d87f28cb009d8959fb8fafa3fa26583b11e6aedae855d49b5ee0e71b9ab3f88c7342baad7a59397dcbf615a2af3547cc09db685f2a13be97ce8e1d18e129ec654899f4bcf2b871febd64b163ec52c0fd17ffca6bcb7efa6ad0fbda1f02fd26f6208658c0b4bfb5091196474a4da16a40319ea36203c3836a8c1b3a173aa5b6ee3774dd6f63fc246c4d41997fa72492d5a05d6c3dff9f84166d20284afa4a645df34f46b7368297305eab04e78c3e3a955f1c3adf7226cd93b21ae252e2efa9819475d1b39cca27438c16305fbe167b69ef443e0939d558cd1d9bdba4ea289605b15ff7a941a3a259406f3adbd28c15dc9f920d80819d0341368e7393b8fc0644f7fa96acadae97e935890429b24470e191cca79cd78ba248eb59a881b85b5f7b85cb9f13613322579419af8236eec6a0bf16adccd126a5ff4a56d741a5545bde822912130c79fdce1d6baefc8e235b1077df528ec1de808b5b190beb056b233c05cdca7466566e2e546c539e1fc92f4441f4e30c5b4e05552a6a0f7087c77a0b79b7ca04ee02675a92fcfc5be63a1902b8b53f052a87dcd6db0c79cf77ef7497eef42e34a095a9f33798d2a1b9be69035d29dbd8334d7499f62e4a5a92223f1ecb325634e399459ff1cdaf77f61c5aed1d5f46d605d87b091d494133815fac2ea307bfd8e6e4ec1f6b9ce4aa192bd94f69d37435b797cf00a275893f884c4ce08c26bb4575548c3c9f139fdfb165a02ba5a594492a2a9e8412d1a97f6ea8dc62dda903bcad8913ab3ffd96b2e03dc1cc3268f5a7b7298b212816c09ec8c4c3bf5cf6d1f343087463c84ce07f10ebcd6e97168e61a840d2215c62f39ace7d03605aefc6d456b816dcbe6d7cc3d77172136cd9121b4f05d433dec531a677298d268b9b25efa208bc772e5dd4cf7870410c765d70a4bf2594d6b2037ee2afd2e73b32590cb2c7f56e135859132f04c7dbf590dbe569af2b8529a051ea21e00727898aec481ab55d0d96960999da91db356615847ee91147aa9a907183ce995fb7834f37baaa15edb3122632ce9458c3db90bca7eddce97bb73ae7a5f8ac139734f761f64556a9a8f066c664d5774f8d2f28a5543c69c637c504191fe1d00fe9a88df5071c3d41760e9468040f4e108df4e3ee7274c6ccccb8ec08c085f9262e5e7ca3acab76cc8ae082b678219b0595c0b4aad6c6989474af5ffaf9753fd36987aa2eae9cae5714d913e166471bb8e2cc2deb6096ae16b66857ddfb5215643cd37b6b442a57e886aa9bb966877819ad5e5787730f08c6ddede8c7c52195b023c9d8655bd39e7eb3490d492fbbcc465bfafb903069454b97ff73ed90bc8be7265db1e93c62feafa8392b65e4ffa521a382ef8a32b58a1dba2eff98050bfd251b7099e32ed9f6cd768f0fcfe86250b160cfd8121e808ead63bc018105d4783702bf7363e767f224eba5b8698717feaf2c660fa772c73c0f4304f4a0345bc114cbf0f49d002df610c410867a7117b60fb5f8c2794e5bcd07a4b7fe849141cbb5e5d6532f08fe4a11b1523332349ab6ec7109e9e837dab5d224d00b58fba22e3910ac7158531a5b0a2ca26eae2b7e36188f7a309d560889c912f92826175f473df0d3943d37bf96dc91726bedc3a6173e0bbf035a0a2e61263c92385d27a04cda5c0325a652dfca9adf5f74b3f6c028cd590e9edf6eb1669876c0e449f16030252c85eb04d9a4b2d3d71ecd277edde659b0d11c930713830dacd452d2f5af5ea7a1b09e50e709983ed6cf1028898e13782980209ef72f8f61d07949962749b5fbd2c09d1f26df7d2a19aff854ed5ff0440756354fae6614c9f2e3b5917c748da5360dda149f4228b3f35f0bf77bd3e61456e377d94017ba1c8ab154cadbbdabdf533ac15d1ed9cb0dec3ffd79fc8cc295cc47ee8734e4773541dcb0ee9b746741376553175e98ca8753c1d66bdacffd717b0d11c3cb4e04ec4f85bd16342abd4a8f15442e46ecbabf3e8be618ed752842c5d77d1b0c63a293c5422b847ddca0b105ec8f185ad1e891eb2c01de98437e91093f2ad1cbe1b69c6383c4b092076e39db92f4aca72dd8a1ba9c4b4749a0af3019a77ec711929732e5a018dcc6a53db20ca478b013a7169bfb46ff4b1b27d9c0596061f4d3c9d92d5065b872af4f54850473bd72c772fca1a7cbc1611b7fcc2bda37b244ae24898a1b714c7e0e7a83a1303ff2cc34d3a9bdf6dac9d70cef8ebfc28fd35bc04f5ad34bc583846ce7791799bcd09ad0b49e8bd8f7315c344dfdd432a0fe23287ada28c28f8e1655a9b85a78ef281920d648b8e6780e23c388262ad283fc606b90a5cc8ecbc2824bb84c37b9cf392c7c9e9a478cea9d416f14f1d4a6153ed0c9367bdd1f3664c8308f56c237bff64b9e38c79cab7eb3463656de506c9e4cb0ee0ee53a576e0afedef1a0d4efcb8c83dd1359d725ce1ae0f94b4c12f569faa59c14d658d9383f6e8f26af7858609f4ca2704ba02098a09d194aa61bf4a644e67ebf205c96e40596f0dbb5b5afb2618a212a087ba23792e191d4b323c0cc6f6aa028a6f1393ce19bebe5d6077ed6a4c74ae1f02ea251c08db9298a895bac0bd271fda390da6c73001b3c67d62b353651224863656cb4d9ed062e4d7babafb4bbe1f428970e3f8cfc000000000000000000000000000000000000000000000509111b1d21", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 39, + "comment": "signature that takes 22 iteration(s)", + "msg": "df00000000000000000000000000000000000000000000000000000000000000", + "sig": "5904d8b360f2977a93d146bc85535f57d7c537459777b51bccf37747f50874a489d0c9f3b0cb4399568b420c8e6c36c2ecbb1d256ee4c33bb3274108568a5ca2c55236558db61f7f7b786021d948cec21d7dacf722d97a51e01922cab79fa56056dafa7d4df250acded7aff8403badeaf5d2b6b7679d34c1edc9da353ec106e855a496d6bb3d76728f2ef85e3a7ae7ae5006b05e6577868b0fd45050482a21f7b657fe25b263f93cd77f64802e164176c4d6e8bce5eda052a5810526c87af7fd8bc9754fd36184dfe017bae8b3c932f57e1fbfd6d7afcb92bfb8e366f5eda8cf034a93b93c7b9cb5ba4a9d89f3fbfaa624bfc3862428432b8c2860783620e7589d850c4bc59a98617fd466e20c68ea5739650cac8e1a4018c1b7d96f1c6d14ca3c6619d2025f09453ff93cbe6a6c9f3c27dea7b17f1bc96badb70b4b222d1ea14c632b1f15131a0e7ecd840ba27701bc35d7b24765546d4aef40fc5ed45f8c9a685649063891f71c6bfcdbe7fa5758b823bba2b5c385c3cfb9a99267b71e4d9732f83aa748cdc0e0f90d450f1beefa0634d380930902ff547ede10c0fd13e1713d4a2a20da85f36402f9a18972d5b1aa87b4da9ba202f1b73ce69b09d9009d3c181cae983a3fe952e41e6157dfef51e2df112514251197fb6a9cad72e2952de6dfa464541261c2c2d358f99e249beaea4dca80b5563bec8a0062be7634efa283ee943db470fe3fe3db4bb27ad6683f7b95f404372a90e8cdf9d796389f25084ab6625da15cf5efb9b6912b289541bc91ffdbbbc6b190f3c2f49b2bd12f948642b67162dafd5ef906ef5d963ca9f335a89083728020baf7c8638d1184ff3851fada92bda217bb848cfdde8cd0f2c923b4bc274e2b83f19a1ae53a168598070e128fd7219cff20f25afad63f6b5bd5151df0f12a72699e7d7f7fa3b667fd8621039265f98ad229b8cd90650e1511aa805d3a3e2f1da3931f39b227495e92b8baee558259c4e11cb30324660e659c19cfa6ffeeca971ee29912f73d56e752c6872b1d098eb37db5bcfb71ce6f5a2e464ebf6189225501099e623245ff3859c42fd3047cb8c039c4b9f0a348a579b5227b6fbad1f6300c441278af252b3154ece53e8eb01291e6b6033997cdeb058cdbeb2fa9892a526cc6ba4ff9eb7781488c368ba88369951e64deaafba8e97bda1fea3a466d1bb2e50dfdd775ea9fe776175203e27a5b4925e606f7ed87460abbefc572e07a058ba412908b89ae1c16bd1499f2e3d314b42b191e4250145097e392a7983915baff0894837229f6af94da23299a2f0d1448b3832e2c9adc76f3ca53192ceb68937b45a8ede43a21adbd171b2540b53e28f30c2e5d1d4b2db0abb1f91c028c044c76a77af64274e07d5990f68dfedad5d652271f4538bafaadae1307085e3219503125779854e1848a236916814dfd9283f30eb81d434320f7063f9e05bc8ddbb9de572580840269952103c4eacc9e57c99ec29d68fe66a733231b788b4f5b60ce0725d9f903a8a734b8784306fb76cbdbe990f7d4244757df91623fc062e18d6a9dd45ba6ebf904df58498330ba893beebd66539aacd43a18961ed901932df3d2f02d826b81e06894d3e42bbafeb9fcb9e31f863d41ba577e3b70089480b4853e1a290943c9668cdc040d5962e1922fa81c9e33746c5be5e7043ee74d8a03559c5cad68c66e73eccb7837096f0f9bf0158886a94a6ae42d7bf49f3c5490180292d1777ed2cdd253c2502e66a1b3f6896b7f69caedf92a77f5572e68e17f6f6055e1c7171695238e9a56c8a7d57153b72f2a2ce4b29394f88341e58293d8c8adc483f2e6932a7d6118c10162ac26dc925a78e3f8b7ed3ee5474fe1ddea69b99bc8c49a091dd9be7914432af0abd1ccf935a158256923cbb17dda32024b548c7544a0a1f00eba0727f96cc429f6574249da35b77f231380cc37c48d1cc65cdf8a13ea655c3ff90b0d61e97b3cb0126fcc9c8eba23528c166b6eefd7ff8711844480830768a2fe4c661d562eb0771788e6de01e951209eaffcac5cbc96a91b16044a50987030b360df5aeac87998ef534637148cf3b8a0580221a892227e2f312b7c348a1ba5dcb86126dfbcb9b7e556d1a1c3f200cfa79f7babd06bd5805513458d0c6cddadc5a82948bee265f27de58f2003a5bbf632a44850838bdc809b50d15eac428a1733fc1ccd6978dc68ac6ed92efc12226acfff102431523dfb279b2b54a2b586383cde777fdf3a4f509a12fd02d2339b940d04f30b3c2422b2a0b0d5c913e2c36d452c299d864a39fa6a424133a3f31d62ea38a1d42a49f8d1a56948963b3bec3619807b6548478e8bb9a2b7df274a93154cb159e6e138d21ecd4ebc07f3781a4e0c4de90beafff5495f5fe8124d8586c5a25d7dbe22f19d700720f57a27ef65c30b69cf81656370063031b75ecf3d6b5f796b364d30b18a39386051d95c2f3921313a18286a6887b66f1ff3f501102ef75c51119afc50bce788187752b1003b94fccbc16eceb52dca1886c7202f8087f08ad3dae91c3285a0b6c5f9d311c54a166f42b29f3d2b506237ba0d61c5f9a082c9a481f91e585c90fed220fd71140d983a8b817087b0975faa7f4bf8d2035495d5bdd76e008d3402f146e43735b6d21f5888538e678b1309a8377232c47aba73e7c2925b8e8631fd53e54cb17ccbdd253003b98067ef266c68faebeacfd11434885d47a63e80e948bdc7b91210174b0013b7ff192bc7851672c9b327850d3f9302e099d07ebee2af73d0baf2530d91fa93bac589881615c7dd13142bb3914a1a801847a1a362215b51dc3854141043933d0033568ed96063411b0e37512f110541d686f59de11a24cf4c83c6157a4e916e237665b3c8af75fb4984abc0725f08ecfc05a1d140e2d6606259efdc4167de8585cb3fa90d61a7dadf514f76fd73a2db81a10f2bf1142ee8937ae1c2070dce77f3cfe8d04de6bffd977b7775c85c97b3042230a5947367f8dd266d0415be08e37833b4b37a446eaceb12ac8d5a7361687226db529a2eebd3bb84e6e89c7b325fedccf6b1f5875ff921accd9a362fa8bcaa0181b84a1e97f8c5d2c10c49bea940caefe9fb6e1c1da54018a6c6df186769f18c97f32a5d98975cdfa7b29b4e3a0adb06fc3271afb9c1e85ddca82adb5628888d709cf9cc15c68385bc5bb898d8319f5d66fe962ff4ad9323bcee5f39846bf4a5010493ffa52e7bd8f4867283f537e64d76f44587e56086cfab70bcf2d1eae7731e47159e3aa87fa226701726b8aeee6fb07d1547366c1b3aa2dd3e6634926bc371da7a63c9d9e8b6833ae061e75a415b62b9f673e59710c6c07fd9954acc32aa04091e78db933845e65514105111eae207c7da2bfa6bdb85fc2346fc835b82121a91f1bc2a220bef3ea8137bafc9fb5ad6e0fca7041e0241136c694c624cd086065025882adb335426613d087f008f3d4056b7a4491dfae0d879528c1cbd163862222d2892ee47304dc30ca014849fc264e01209f1924758717f6f8ecd796cdbc411a3878fe55b3647bc4056f80a2f29a0fb027fb434f34111b8bafe5662c0dcd05d90f30dbf499de9a8ac7e14c8dabbd4598c0459117b4f9939aec74087c1271658cf9dba93044431893e52400bf75c1adbf4fd98c99ce921497f086796c115e212904fc0863f168beb6cf913f38b67dd03a3fc4fb6a8c85a9e5e4dba52fc1d37fefe5c221c4592c0be1f01a553e29c562c5d90c3e15751305ee1946810119c733a6c12f4c1c936e18c667f1332b2e209485c448547b0ee2f92915fc4794c06d4a0fdba012c02b4d10c226be3f3916569133c0f1dabfdbdd720b56fcec60a6188e43010209ee460feda5eac9920624b697c6da7b6e7b1b7ac528af533bcfb459fe9677f3717775111eb60802594f380986b52e33e1020410defc5f417ec536d23069e0bf5912d4dc5d6401020616ef046411ab8a690fbf6a93d44c980066b612e9166f944400a9b175d32e8b5b71620a7b5615eb177b331c59dd115f082d0dfe374c6f622445c6643f95683ece9acba27885937237e4a8c7c6e9bab86afacd12f12234c20c8870f0e592b748e4aa7897adca0c2036270713b4bc246cd7e4fa1b95bee3bf8ce0d660e384f45dcb0f168e23dfa2f440f8a1c9ba3dfc0374106e65f4b881c498f39867d57c7f05fd645c555e94bf1f7f08dfe1b49778184519d52637cfc4485ccaac8902340412c39f656839c9f6ea675ec08a556ec3cbefadca81e8729db5282070136838402aedb2e782d657ae2afbfd99afa12024f7900ebf115b1fd8d2c0e8e2dd9b3f35c3874a58f8e4407110af69d487be28e84cb85558802d1930b64763befbfc5e60595204b90c8bacdad1c7a17a78d97c521ec6a97ff7a6d234dd02965e1be1e724a98ded88c0131f8c45e866a3d7d0a9c02a3dba178f6befa170c4634262bf4a1bbebdc2fda75c5989c17e38325ab1195a2ae2bc7628a282a9078906e7a731e39567de1b4a5739f63635c8e41f49ef50ee89aafd842de9830a7bd3e96e91aa15de76e3f0d3121347bd00879b6ad9a7e4b0ef5684e3c32d08e65929e3188cdfd0d214a4e53626c858ebcd1e6f9193394a6dbe4fcfe3d5b5c76b7beea333f577a7c8ee95e707b8dafc0cdd8dae9f60000000000041119202732", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 40, + "comment": "signature that takes 23 iteration(s)", + "msg": "6600000000000000000000000000000000000000000000000000000000000000", + "sig": "f1d8a6b653571c99122842c7ca222606e74d6814eb27f05f2ef8dbed54201882859d0f809903a7777a3236da3bc18cc879283b6bd925a20c2b35a9f0c4917a46cfc0ebbc7e34b792f1577ccee1047e207e1c7eeb4eb6aeebb18c7e21d3fb28575ac2cda9e9a75580c5268af20917165e5dcb735a5615caf0cb4b001fe08b65454c2c65338bf5777a260d550456f8616aaeeff235a9ded33140de0712cafc0e729213514764f56e0aa4a852d5582135dc900bc4858cfa77fc098171a980ca338cffb8c0c9aff0a60aabe27d25ce0a329eeb802752e17e0d4c10d5efc2b83ed0d0654f5810a8585e3460655f0dc6057a2ccfe847a79509c919d0a3d81e1e05bdfb1cab826b5b3b76c19468f1e19db7d02e4657a40b724f8b966a873711e9305db43613a96bf1fdc0ff0e548bc22d56079a18b19cc4be342aac9fd83bac171118d5e25961ffcdcec1f55dc8a096b61883b3fc7eb4eb6fe40cc7e24875e39a907108e522e2bc8a7a0c4cbeb2315a8300278542c60cdd30ebd7eea0d5a5e9d26df5d3a37e7e7e62011700c74fb905f49671473ac6b63e9ab64ddfb1cf6acd419d7cc7049bb2d00b6d170ffc62b286dcc989a8f418162f36b149b5fceff5000537ea0f39f7da20597ae00849c6d9ec633592af60f30dd1a98c8a2e99f6194d527176cfbb587ea4772d17a387d7171c3602964cd4a150285f27278ab956778c4880839abe9c5ef4b4f9229a71b81239d1eb3a9d10d1caf62b9fb031221129c7b595069656836813d2672d93ec963fba56b8bca5615010aa9ab8875c10a23f6fdf87f852199cd91cb0e84d2f31fb8de5ff59e2db2d234c61a5175ac7f0390aee454544bb1d5d036d9a0ba4980e942ed17bfca4c50bc4f452075b6bc093fcbd4076265f3e926b73ae6690ca5c084f66fa8890ef01bc234563339953bd0f11b43aede7e9e1a505effbd3751ebe40b3c6126de59c5aa703a90e09bbb62ddeef444088bae807eff6ce95a047ab36db714eab5631991208215b0d1a6dc557e93f397961b1269a423d398c411a0329425949623087d299cc27525bae1977b972323f40e04bd48350b4e03afe61b3024cbcef5d0b66718d7cce18d6657d262c2bd253357b1ea077039865698d491d2c6d71c33227f1e484bd8eb31312142f9dd785242c722f61218e03922af3afc8507d5e9087f9e2b2d4194555e9efa7c01181186671b469d4596ac8b2726a1b973f94b67bd866ffcad0424a57a97e712e96576438b81a9a6a92c88e0cb7d26115a5cc96cdf4c7e01e06fc22aa4edde06d99f2694fa6e0ee0c50b6681d22e79dead0084bcdfd9e70315603d8e06dd315fa069ab4e635a9ccfbec07ee23690f5f8c3c6c585b71705835c7fb8d251c0173c28c3c1b3cd1ee410f2acbbdb18dfdcf33d6530c781ce00b7559b7a2ad1a37b9ec1a29306c60c6659982da1e0abd78f5167f202419ab0226a3e5393d9154a32cb428f1857866e6535fda4e79644d2d9811ac0639febfd926f07ab45266f3ee9cbf5b5dc13e3301849de423abfd112a18eb3ea7181012a17ac0f2d3647c38b7e8ef511a6bf7c39a7a8d2b15d8ff995527d768014076bd3c04ed5309f81a03363479a7c4a704c38d6282522d9cb5cecf6485c0a3be5e25fc9c66d5856e9946b02ea2fb3cd04b1b138880acedad31698b4ea78a1848fe9a88fd43a9223a5a3c238bcf118f7105fcd0f7a32194fba1a5fab339c88646c28fe340a3960a5e743e48e9959272b4c5fe3ecccc0a8424fa556a75326ecad32ea7eae8fc28a221efb38818478f09020510b8ee10545c1928d34b57386c04ed7b57cbc327a08ed010b8ec5161a27d3938a1f51b8abcc4ca53ffa110fefa4d1a9c0d1791fd08ff93cc703ba46bc863975d4133e96389f6eae6cc5947368e9755c1d4249df67df0db2692ebfe547f44d70a857057bc402dae21e8de324b4723c9ab3b9e5348db4f136ae5606d17d2f0385db013df81fec26a6185a2a97127ea253cbef907b4b1bffa72c84ad848c3e628e14e6d07c6d28bd3c3727cd6e77fbd4eeb587426ba98c0efb8b66d6fe0edd88ce487478d89018ff7a8cff9ded5abff5848c5f6bb702f595f5806d2833382e997c1d8104463d76cfb2a7d12b5dca8ac2161dc674041787e5bbc1d21b42fe86a8b6fe4b4945afcf1088bb16620c8c8bc9542f0950169ee13aa7b2d409188deceb87d9a95b49522cf96291c185f4e7bfa29df3ca7291cd8d876cbb017c96e7d621943d477442359bccf913e498f34e8efb6114d96928772cc00b091e9619cd7f869e25356fde75529f5aee0fc32cea46a5df2c0e5c2eaaee54dc94a5879dda8c653694f071d08377365569ebf8762d6d030da0c12d69050103912d9d779f6409a91fe0efaaf62017e7018d8a9a5b9ec25cae60afe000a36ce9c81cd8dbef732db13a09d5e5a65d763cc48c30941702321924c40736c0d1f7f4006476bbca04a1e0d20522a50a5a809b9c1a1a9b03d59e4461c5b9bcbc3e4c3650136804aea8aa55c1b2b1435d2d0469b5d6f010cb51725b864ddce08ed2b874cb5e4242058dbe3d79503590fabe53ab2247949c13f10adeeb02c059af1dc4b74278b3735c29de6c9e8a96ab4550bebc238c9f9b76f94bc70ccd7b7a006f6f8474de941730f699bb12f7ac129f64f9e0ee993aede6f127f124c117ed7c9f4eb0f1b32a30fad5aa52df671b43bb3d9c571443a968456a8a512e1e55f4f5cfcf7ca12b0e5840598bfcf739d573bfebcc12ce756bf4c18b8ff3f214f26b5a8560f8946e064c0c6bfea565b5e03196c1b88ab460f689afe860d5f209d6dca51547cd5a0546e44627ff6059979805b7e7f135392d1817ab9a71aa1328d3b3ce62b65bede368f4b94f96acc923ddc8456707a092aa5a861b15b577f3b357c7a05bc95e0617e754208da2c5bd733eece2e2ae36043dae2129e84358d8818f0913d175e8d747b977c26e6223d9272f02a4219316050134e548cd0aaac2a40cd4a18cf4c59653575fe7bc5f9105aa0588bee9642697d948f66692d954b941620b1c75e38bb8215492dae2f3f0b8785736d7e36c1a4c0623e8baf7299148927453b69c6bfd29554471e9c7110011e0cb03eaa86cb425a13f56886f4664bd315e433e23bbb3950f47a20be0953ccb1b061b5ae357d89695c5eb2678aada47e85d50db2cca2fcfc25d1b0b8aef77f8807826b787daad98e65fe04f405e58bf9a3190c15239e413e3756818794d1a5150f7a01753a1838ddd591fc1b7693f9e509e0488439290c1b8cfdca32aeacd3d1c523f79d71dc2970f31d09fb2fcec1710a533ecbbafb1b14780a8de4aa96cc098ea3bbb627c7b1be410b6102c46fda68ad79f4200e89651b5d3bf420430940da84fd1e44f3bea4f32c373fa789fd149cb188d05bf45e87e4ff686bc7d174bc1bebabdf86084503101d8e2de84d976a96c803fd9fd0e4835fdd621d33b9b38a71ae8f4967d29b7318b042c500052bafc46506dd861825bb0324bba1111d8f7fa9f405d023ac6f73da056e8c569278c69c3da0873132c987a77e9dc0cbc78c18c7a7a31f4ddc0ba4d3d292d09724c77d86da709d5c76f6ca64fe82dc3302f421aa076e03006d482205186dd5f2cc559f97afa7b24ed4aec51d0ff3b5d96847462464929e0b9c2017a91cadc5f5811b5cfcc4621794926bcb6cd08e68c8a2be7112220a0e3444fa2b745a984bd504ec05b352c3fc105afc554b59954237075fc0e9f36783db0f9bdb0487fedec2b9b20bdb788a0e7b2a6197e459e6c767649fa8671454f1bfd4c968a332c0d37ff139f9afe431acd4189c113963542777edf8f2137f9255a3a7a1cc959f7e5a2370a6cc027556b58bafb7dfd7f19205d2162bc8e3f934c99245a22774fa43118bc96f61b17d4e5acd3217aa6b79e7d17abc2f62b96d6389568fed71b0d4edf86d0ccaa06717a113bf8cd124043a1ad9f41e0a9e0b0b1abc01585459b9c28b0269c0822605acc2b6259a3b64214b3ef035f7ec3f59204e39a2b408f14c6f1bf6e34cf1b4a6bffa4577cb85c3ce3994b1019d4f3fe54b21798ebd137284e6d403c304b86a941ca4428c75e5a522915f4e2e829ec58b3044bba877cc7bfe1d28216c9720872ccac70b44cbed4858490ea5eaa7db5ddcb736229e360fc6f708ad4c862a2c7e9ae28bd8c19a97ed5759d83c7a89127361c941b54f214818e8713e156090f28b2adbbba31ef3bf22416b732a2e41d3977ba59fdf4594d407140af0122a74e01bca4c428ed7c5a430812c2f83b7a5c4bb3bc7467d9300edf2e4411e4e1681a54f80c606fc48cd5b224c98fae366967e8971a0496d022878942b65da37315e4e25e154b9abd2cc9f7d861f5bbbe416a917ebcc62398a9fc5c9c1f11276f1926eb6a975f1e529d3ae1e3c5b8284b27c5a82d82f580ee5cee542596da0d1c4862a29693c6fc60c50ca268bab10bb5119b79a2e8335935fcdb8ddebdc51969be025dae7c0faae34d2ace2869fcc9f531ff5215faf1f278cd01dddd49653b6d6b005415354e76d911e57202718fc1d42ced82ac768b81c40f7991abc3ab3edc186f62a0fe81dfc58e17e81bac4e1eb0c1a394451596b82aac9f0f5151eff313c63a9f634385868b9e02d3a4089d8ed00000000000000000000000000000000000612151a2026", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 41, + "comment": "signature that takes 24 iteration(s)", + "msg": "3800000000000000000000000000000000000000000000000000000000000000", + "sig": "b17badd5aa9343d1a5ad764f7aae6b7a20d588e4a075849acd08a3f52e41c305895ba94e249654a9eb6d5d1babb83d2dc0b6c7b65e8a0cabd2e3460c81c4aaf118bdbe28054c2a3201cbe2f2fd432c02a73224ad9e35dca777022d6b4108a9a78f3c5d8cd21443d618eeb319751359745e241073e20bffebdad3c52485a1dadd6451f203a54b13ae35a962e287ea763daa336623832298ed56c0c48cc16229d4b801f399df149ba78ae9035b16713771c616439519067316b1cd14780d58ccad2d71ea075de02aa0c3d68e02036548ffa0ab142a12d6e1f269754eb0cdf508575bb86843422e69c216545170ffeaf015ff177330b8ad9bee5c482f8fd333cc05d21dbfa7f4106aaf48c8094d956fbfd84bf3672a663eb2351f8e242930bb7ff29558df029c1cdf7aff3185be194efa1eb96074f57e0b0636faac04596a8ff28bfa4e698635a53adcae85c76bb4c25c9a1886d09c1708b43b765c296bbe0121177ce33d5da85b3f41a2c21275898866c05cba0854334c7f1f8c75102176cb886cfa461ec6a4c55bfb2d685eb9e604cb3abbbfe3237b6d724eb3ebf050769bbe6f3d50d28626e3dbf4c009bce530214c84e49477aca9bf49c6d7c53302bb5dd6e72f1ee26ed64fbc07693d240b729026ea719742a4f903c0ca0106ed79951fcfa382c4b0c7d07bf4fabc99803260e82fb728f1b0f4612d6d8cb21a14ae77bbfe299615181d9ec1275d0022fb583bcfeaf81df6e1624baa703389e65a3ea3baab0bda5462febdeb110b0473cda2a4a9fca096f4a68ee8fbe76136048176f8721ae6106bdb0f3ae310459d71add85a2444eb9479af450ca4864e1eaf0d5ba04c872bea6749560f570c67814884b1dbe5a87c505ce9b93f465f75c3e0a1ae3044d6f4e6cefe05904ab90e5b9afc485228de76b6f3415db1c311a41a55b13f0f0783add6be3ea5ee68ab27ff34e2a1006b5ddb8938f5c08d05946cac2efd3ebccfa654211d69a825773126e600693337a91a4a8777229e80f654f9f9a0f21e69d9a979890f8f3de93ceadb0e4890c7d19701fd7c2f957dc7da88910f31cc8d500ad68865477a66984c2caf86b08c13b7ca3de0b7545d41191f221c0c0de6e176be90690e2862db31886b8b25503529feb62593aa3d0c074271cbb8ce2385aa834294de61209ea793fb766862cb12e12c6464385761209811a78960542df923c5089fa3a103b2c0e2bf2eb3de0d05a57a514b02a1ef539ea4c35fba7fec65888832088baa38d5f1d7ae58dcefeaaa24de9d83c8d8ed481363bafffb1788dd36114a11377a7c871bda3b5813b9d6632f289145906c335359bb3876a127d4ddb8c3883e022c3ac1c869815d13f06e195d246c2cb95df4245e49a09c617b6088ece00177c30e7a962d9ed55d38be7e1880455f14913759597acbe866770c7d28c704cad764c547a750befae3dd88910da22d942b99503e0753053c95bc8b44843b556c396f9ba60cccf48e4a3cd692bc4c5f989725d0f89924c63ccbe7702bb98da76d442060a7946d00d195001428d30299cfcf807c7340a8681000d35da9e2d74446a83c89b158770b31158cfb99391ebc79521af25cdd2943d46d17a81a9d886ab68afd3e2825bcd1e7ff30a788c9db45d865ac8ea7ac65b5143c8910dd10380fa47cc2ea4114b4807e9860798e19c27ca856ba41d4866d393bf30ad5f40d9aaa712e8259315e4334940447e795eb293237781fc1d1e3ad79a21fad18f2dbee6f71ffbdcfcd1db77c2c8d1a3868e8f36094f51864de305783d39349b01cc26a0645b78809e2a59e761512635f455cd34c3a3cb0c416981fe2f85fb7e7a810138c9221371b126d85b63b6c96a5a5055e3ad48d54a85fa9d916478958543d114229568eea61e57b67fe644c27355bc5cb5d8af0a15727764751a6f13740f5181a8c134cf67b958ef7cda612c40a1cdada48c887587af26d2d47d57c6b772a89f6312336e646894f20b1820fc6b217c8b9e08ed4fd9e104c3c7e10a9cadbfcc1fba58a3e7fc84bab6756685e17f37b7205716699479f403009c36a12ed48eed461ec83b45e94d48e50be83231e16c4c9aa47a8edafce1e39dfffab382922c42646f4b83b81cbf2fb84afca7a2756038ce1d4691e8fb062dcd8123f3fa358a5076c74f5fbda1595e2f29c9167a42438f61290a12326d8d7cf9256db109d5509a4ffa9f06a98d6f89cd77ee04a10baf28933f31ff404673476f7759654e33083235b0b9e15022f2d7dbe40bb8c79c76dd60b9720c78a03d1cea71fed43f4a207dc32594940d00a19594dacb610c0678fa9ae8cb5d99c55311af7d121e017d960ce6d7450f0253217ff9ce9ca93ec2fc167ba4752cda6dd5b7f00286ebdd4b02e17ba40962d03f9f1f6f1d5c0513b8e768cfb0a55df7baf0352d63933c99ecf5479a38e66e9748734a6d69bc6c62eeb8c0199877631efebcd0e82f36a50664104a2aceaf10f99e73924b52e903cc9c8df8870696a4894f44db890c2dc5fb9ceb858d3424a6ff9fba82847807a6e11914d500b1224df23dcef2aaece0a6b44b0adb6edf276cce4ebe77e96f705c03993a411d98c45f25a6dd793a4b630c1617ae4319926f00ed248b4c3889977f9fe83fcfbd587fdf07c75a3ee3880fb26eb6dd4bb01966f74b6b6212311779f5f11627cf98889e104967ab4b18cacf4cd202e5ec46508f0d8df188edd20db49421b2b348684f336917a40b09ea1d6c4d931edfa4e28908a61e8c367b221ad2d4814b0d85afc99de3967f3d6c90e9a975715e2cf403afff1ea9f0c207ceb40d3629067e79c7344053a08a69460ecaf5be667aecc01bc045be25afe85416fa1e6b47fd6be17daf0a01004b0972420a3163b24a4fbbfa1b61f34380c1131b7c03382642a7030d7c17b845989c39dbec16175740023f8969feec059ce37fe0b5652259bd4df5526334a2e856ce57cea75319cad0a958c9d0b33e45920bd4d23427c44986fff3045a51e2559d990190b82bb7321a1c3d1a0973e51c7ed50fc2b9d31e727da677a0b29ead8b81596d6417c6d62c79fd30e838fd08729323a35766839dcac3597c76ccdf3e67d7835e7ea9184dc7be8526e7d014aa26955757762ebd75c3bab998b76dadab816ebac4b961c7084bb5b0d39db09bcd46c8bd7d2cfd85d69786e14b7ca62d50b2ccb9e322e38d1f90d556b51dfbfd145346a664638dd30f48db058f0843412ed47779169cf42bea4656e5d4dcf9c4984476bd677aa6cdaec9f4973e0933181c5ec98101259afeadfc65d55805de0b57e76fb38dac3ef3544b776926637e8dda46846fedc0cf55c19645759cea07b793d70a428bb654a9683e7df56fe23b1f4c52494677eee25b7fd9d0da1ce33d39e58da056b99e2a9265335498a80a873be748658fc8c37841b45cc70e3a46b8335cf5da9b0e51550355f42cd6aa1caa3a55ef21acd1c8143b8e0bfa68f81b06438ef9c24aa6005a77b4d9457a0b599c0f71eea26b40aeba5265eadd8a2be1fcddb318559df9bba95537d012daa14356e3fcdbb7cf41870b96ca9efbefc758bffc172dedefa450dd0e586c98783529dc44ea0778efe30f8e5e4b349f6fc0417b7d1ab53e592c627b93c2e26a6c607a0f899bcaad7761530bd1ff0d4997aa003a06ae940ad2994a2cdd9fbdb51b015bbe122bd333e54e1120c7be813ad75d2504e61c75f4931cf5a725545dea045a5fb768dc39cb9fd08d4658c31daeadd27765d2fd47cadd1b8bc1c51969e1f140de354708d69585e985047c73b139b79c2d1b646354fd9d7f94a0b791e429274cdcdc74fc1bf2b8ee29fafdc54241af82cf34bd471736fb8c3db0819ce586de4cbbf86c5be138ccadae85b20de30aec8219512061fc1c7688a78102d97dc9d7eee91ef52f6024e475a02be913adc96106a0bfd503112b17c80f60d506a70f4589bd5172475941b36305905a51d340a7b49d884d4531e83277b2fb865ddf727a8e17453cbf785101a2ddd3818d12ccb709518b3d1534a980720162dddd0703ea37111c67f81feedb854e8bb924158752e66d8213b24a7f37862f57737c0ab14e72a70b8e4ac673c15ef6d483b6ed1a70f265b8316b0e431971b7f2df7ca94723f7ff874d153bef275a72f26986353fd9405e6dac84b4726c137cc0fd2bc03bec0677efc299a4862d9aeef7103d1a19196a173ad9292198ad8d5c4335144156f17db54fc30c230965428a556a7ddf2a6cc4ff960224e01a38a59f526741e3036a040249f58d6633509e4161c73629d1a749a534c444424a11b9205569ac69bbc1600d11062529b48a1140aa2088f914f428b390952490fe59b2c561088d364f01c8b3f7c1ad896330b117176aa1829fbe8fe82d9327a5d9b67fe81f3af4d734eaac7bcc2649e99139d9b32ef4713c0de9fa3bdd2b4099ef3ac9dfc04d7e254e2f76e20d392ac638af5721abc161a9c28eda6e9b63aeba4a6b06f62e6cff70b87a38b23885e38426e322eda05166c3ab9659281af5dd25d3763610e3b3fa37130453ecf73305f4a34cf29215a40d106b9c652d10e665c5175c3115f19e573d68383ca003712d0821e2429315a62707798e4113f5dafb2031f394557787bb2bfe52668abdde5fe21313e8d61a8d1ff000000000000000000000000000000000a0f191f2327", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 42, + "comment": "signature that takes 25 iteration(s)", + "msg": "2a01000000000000000000000000000000000000000000000000000000000000", + "sig": "ba8e0a490b8289bf91c6ad96670ff09aecc7c4fbc1063a0da6e2c679b03de134f67fd1106ab8147565657e569a4f90e8a5bfaf65792937778e3b177beff1f6337e8732da0f5d6e68750311b8afa490588a2c71344344d887eec1b5828dafb88020c91477e6b7af11510e5431f4532365e4abc72897c34d781f014e17deab35a4de9138d8b1f8a374552c93988926eddfc0d3251a7ed2f89e832f732871416ba82b6d8f94eaa946ff0b9f9d26603e50ee9415516240797e7690095f536ca54f7e320acd8d4ae98c65f6eaf4ddf5a3c5f8ba25d1fc2aca577bf2b9adb6726f4c8ff84da5340a5291b563484e402068e6d41f2a472b60f33e5ee1a13473c6cc829433f5fe344d6e8ed513445062f54175366bc245fd34e1a1f772eda590ec392be722cca26c71593cee8b65b181bf25547f6418d05accfc9c545fac1fec115b3790a99c99e02028df2a5eb0457cc440ee925ac9c3e101e098a41f602a3b0f546e12cd16e0fcdf4db9cf70c9016a209deffef9a7aca0a2531d3481614b11fb73be650e5e98bc1fbf3f6797dc0ec864669e1e4b072f34b800f1af615c1d64cf8de2a3d0f634f6177c7e837911087c2d0e45a1a01f7f67066cc1b34b384ee1d6edd22e63b45121a73e29fe66dddfd2c24f5af1f7aab6cea8ee81a8fedae51f12c11bfee57bf20f3f4604f31220fb447d48d6c2919018318ce995c731daa55b960721a58c88700608c37627872c764a1c9d1f310afc72aa9c18e5c67c806b561ece7d6c8bc888999de43fe5e4d8b01aa40c66961cec612afa66b60b770c0f92cf9389a7abc4b7e4055ccda9d049ea4a9e7e203c866a360011dba8dea95242e1c81db5e69b5a012ad44af1d9d8554e12a6fd5490128fa45982eb3798909baee62451e0ae02b37bbb064302fa6b3058d99968e94058078ee8fc6b3ef89a0674afecaeb14c219f9f30749d90d7e89eaa9eb3f96b8574b5b7af292e5cc4cefd7a7b3d9079a4e67e9fd5622c4fdfe065e88a1f31a0a189ae699cec7349e7bfd4a9408e4854ba4c0ad7ba47a1d93c33e6ed2ed0c12bfca59eacff9be53a1b7903e1372357abcacb013be6eb47f8faedaf1605280fdc91c170f3dca54f38990f12bb9687add8b6c5fe5901fedca5568a37e5e7af1061743a9182a04bc37513ee5b2d55a014a6f9e3b2cb62d298b9d5e726de13b904ede0adc5ed335abc95362c6975e868a64f5aaeacef406c46896efed331a93052ff3634ea438d2a91749baeef6f063e0464dd3ea3a48b0014f8361259b7a2e33b157dbaac76de53691fa602f03fb25ab9331ac0ac449a428f551374590e86bf9048fe36f8a37aec825239df432efa544d294756b4b9937f202b8c25569f9bfd3cf43c95859e31237ddf39e7c0008c43262ce4ca1bfdfea4f95ad8536d0f0c108815cf8bd516f3a1388c236f4d3dec7e7e99cc8783e908fca0048da7d15cb2cf618a6074b936bf95bfb028b9c2278d70104d3a5126f09dab4102a3e26101770c1bfb0d534165c611b25291830033764c9e0bea382c1848fc5672d5b390cf439a7172295e4ecf786ed75a0f93093f80eceac98f6ff26d1c9aa64470aec649a0658c03096b666e5de22a9e5182daab4270e9593457ab62ff230f86ba093a66dd737ec1ba473c06e1d4dc533a6e8b33c1face7cb08114abe9e2217cf738bcfa1e263d6486f89274bd7f3fd6281a91a1dfb1b99e29d4998a354fe92ca8acdc5b354e7c3eba062998f98e23ff2675c5bac64e296e583b7484f7d9400a8c6667a26d1d597a451d3760fa91f298b490852ab9b1d26e16aad64f366cdd36079b528ca18b213ce11798aab5e054798e405d20b05ac450592af93f82be6c3b106266a0e2f98d31b09eb86851e1647a19165f1a3f57e1af2d64ae70c16a37409443298f3f9e170d32599212e7365e7970e34da4eaa5e77fa644d76e806a4c2523d547d18a90e147e403bd168d021c952904dd2e4391d9b19aa07268f202b8e69d440748ed3a6dedfb1e5b61e2fe121d980508e3c64cc97f2fec9fa2f39f4bc3ba08878a081e6e36471454a3ee2ca778df0d06eb5cfd045a3fcc15795c09cd38143c08e8138f590d05d442c36314fc39b2dce2ad003b56258a19872994a4d0d810d9dc5c0bcc1beb1c5f2b6ae9c72e6d6c196d5cebebad71de697689f7dedc9f3af16bfd543b049ab8997fa73e6626e865263a28cdc8c9e3b475682434b19d0a13a491e4918e7bf8656ffeb8db4d6aca3e4c7b5289458670655eb1360b5440ff0736a2f58bc3363a37e50a0ceed384d0c0a55a440939818241c026775f5870f1edc5ca2a0da998200b7be15acc27433013d5a128ccef8838662704079f63bfe547df67ffbe209a3e6af2da62c80e771b863f992fbe15dfff1ea5267cb37ca71f7629a618179327941ca4a864b4dfd7b4627690066a7152c0fef3f500f433a4c54d411bc59cfac9f1380a4806b04d524c7bb6b7b055f06e2751675d6fd1c3dbb520ff10dcc938f6ad19d577554b656c3643718df6b72c96b998750eb9102979c58ac4c8a8d23265b8ab8e1bfb2ee40434216dda64e539b6fb5cc349ed522ee02d393604bf04bf123192ebf131537a6cc1452ddd38f788ad8052fa5a2da6d5d9c58d44241f403c617aa688e024c50a296189cba610e031b45a1d6aeb0cc7c23854831b7632fce1bf7af1609afd72800be217eec043e8beae8956a6fcc99160ee2f0a04403d59a056af9127d5a8deba03723bbe6e14328704fc25630a147b687966ffec6095d1169db8f13a39d67a14a7ca574a6cd18f09632076ca53ef71110b818480af18dbc9dcaee1851cfb3fbb9d817d314a91df1edb4bae5f36ef05de9bcc049e672dc2920b392552c4af73fb5c2ddb0715fa4d46e269931574ece6c8b92fd5ccd4c33f6b128d34d8bb6d476d9a9e19576127822a0f9bdc2c2065563fc9567272d8bd1e5707aff183c090eca58faebb6162d04981aaaa6daeee847aee541d04b1794aaddd68da59a38882e29978fe8f3833d2ebb3e35cc0967c834edc53689282bc9a7e74ca45ee044b2638690ebff103cbc9810970e244f0ad42f0ba4a559d80f22957d246a2a6502dcd7e574d54e6c99c866bcf87f18133d0aee33bf9fb4d851f4e65a6d278ecc89e8342cba737bcdbf09bfb98500282df602a99000a37da8595b8950543d94ead49e895436c3c5458eb4ac5d75f12079a4fdc7695497d8abbf36f111919f395e99fc32d9e63b71d275afe40fb39a88d9d2609c73bb75e9f0f5ecf209fc06f8c6233eb083a88358b4d84f97c75d15089d510384b5b31ac26de5ad4d20464d36d085cab2785ffc13186021890c8a9c003dcaf4f456a46d10a06c7b95821c12d96e797c686ed6e7484ef96aee5a0bcf402ff7d59fed7cb621bb93620ad010e7adf7cae3582c8025e6c9f43a7d05dc8f0b165f54ccb2b9e0faee33dc008d5ab56e05db1358e52eb21e5e04484962f2fdf56aa75dd7def24300a5f9649497ff9f2af1aa15194b5b7b86aef3ac88614329ff4cd249365a3d284e387066427f71f100bb2c58204c236c4d122fd6042dd3aad7c56b3f48d263584ec2ffb6655560c50a0f1ed396213d85adea87ce1f5ff273746df024c73a449defda41f66ba1aba7f14f5e2042637dd9ebb18a976d5565d1a5299513933a114c42bc440f5523fa066205d6674e99f14842f2fd552866565081e3f630002eae82b8103575211bdb74a122af28e061910261eb6d23256c132b32223970b63d71b8a8c975d9973b2b5cc9b5f27830c4f0c42bf05a3560541ae7c8d6674cdf31ce2660290f279169bcf2eb652c51705fbb27123cd14095dd10b2b966ec0b44b6e729957faa7eba3af0d3baaddae47e48155238b0782a45ef4dc8ebe88f3bbe1ba2a7b2dc8e25bf285a808927fa1a7a4a7ccdea5cefb350e68d6107d9e2eb20d1b393dcc883f4d5247f36c124b072c42dce7f455cce4eb1da17de0da3a801728b32429bb8207f59f46c8d0ee0e6d303e9e6f285a16f0debd408b2c29f90c668a412964d2722de11349b04daf131da3e821bc9f0f294d1284b8ee097232449e147008b7a592140d148cb08c6dde3b13aa3ee738bb1f2d9163ee36cd36e52ea81a339ba09fb6f5cd4b889f89854123ac5e11286676f4b98d159d15bedf207a70408da9443b8aa8cb7dd6241cf8cdb3f6edc801f3a585692edd0543683f82b1371308143b825121ebd6dc531f18a50e5ccda7ddac2f429553e0375a27f20c333fe0c401ba379950ea359617e4cc4a1cc0a2a2a6a0b2215012b4c9a4060fcd1cb2913d70b03b61c4c3b140fa143eee9741558a7d7e94c4900fb04a746762c3a29a897c2f04dfa5608cd8fcf8a2052a994129485a575abff95e6e172cac945a282e662b3f08ce81cce600a30faf8521856b4b73488413c87f684866b4f9d47c95c3b1dbcbd4191c98ca7751358349d21955d76172b855be70d8e9884a086a2862417a5fd956818406b4eb89665c3859b806beae14642953d4aa708c4ce70d17b3d6294bda94a262da01ad271f0a51fbf4fb30d8df2ed047a869266a97bbd27f1db40ab40a85ac34f770cf62249e8a335866727f80c0d3dbf91b3f8f94b8bc098bc0c5c9e34973a7dce1131f65699cc91d435991a0bd000000000000000000000000000000000a10161b2127", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 43, + "comment": "signature that takes 26 iteration(s)", + "msg": "6005000000000000000000000000000000000000000000000000000000000000", + "sig": "e2e3002901d6ae3db8dc9d4e90095433bbc07465d4a3a5feb1cf53753419b2c48ca1d58b6fcd6e92d98daeb4674450d9b41d277bca9b8035ebd230af965b010f0aaa4093d336335c7840f480799f1ca5ec49e43e603506fb617ccfaf4f1d49f2be15f524543351b672cadea14c0fee4f6e3cb1cb22e78dda69420717c33711a01c2001f66bcae1e453f24e15023e8055bf7422f59f7b9347b866e004131b8bbb48572ba22354ab24b4d210c57705f918df669bafa3453ab34c60aaaf4cc4fce0e918a0c604a3938ef09d49903cd97d724a09f6b32615c7b50147384089685bed5bdac66dfdcf5a9e50f04b4ccf7d15421da6b3a63758fabf83ec088eda2fe7c4c3bba40cdb9af7153369c3f679dcfaaaa36df17bef61591e73947eb5e20d53037b1131c9760ae2949153f78fe92c81269e323222f6259671e506176794963bf2ebd339372badac72952db6f7682b4ffc48de396a4f2e86880654cd7c896295cad52bbb6f0e618fd18341d68b6136c9dbd384398a9fe189a71a030c1d933bc568fc4a1b39dc9450555a4a73c69ca1bc58ff64088675d0930b1ed616bf0cb0a3d1315f1f1b713bd9a96840468e43bfe87dbfe958a141bd307e16a91daf0b8d7ab7232d42b937cb9af60252ae21cbb4aaf67772ad7e9f3dd9f35fdba81d4b23767e24fb5a47ccc22ffee3711ce6f07bc5b2948321fa4c358d266078da461c0088d8dc4e43adfd37ae20c29c7bdd02d38dd215c55722dbb877c66f7e487e640402213248aa479b21a9ac1fcbcbc16daa6de93908b5cec812fbcde9a67735396285eddad434bee205876ac352cb3d62983d8a0fddfea53673247fb35d6e0e38ffbffc2bcb847cb6cab648080901f95349a8b08a2f327041e8755fe9ee5545d1c7b780192088135ade6614522cb5b761275c27b4614e1365cb4945a0d2d1c2a4f08275fdd3170e76e37fdf3c687b9f90ce3c4730a35c0bab0e5969b57fd4700230cb5ff64c5d9f82b2368995680c1c11d078f645a5c169b568e123c2cefb3813bb21cfea05616e865a7190304643ef6b9fc0658645e46ab145c1e16ea1c1d18956a081162ecc2194a7d6708963ad838aff77c735dae24f9c5ac1b2b0e3918137153b4f62bc94a4d3c0783e83055df250b88af533d92216017f218720404d5db528a9d7836de0c5b6ea675bce62634ddd5200f158b63144cae98ee39fcfc9aa1aed5cd1e406ef5a137d70d1e78a76d184dd554c5fb692880f75bb5fc12125a95ee2fa55a711589bffcd9e9d374a6e28a344e329d745bc897fea71ec99bf0a31a1b829be924794cd7e7593b87f1bc690fec324ed5a8a9e1cef5898932f9cf1ff448bba8adbe39d05cdc8f7a490fe4297ecb05d56581e74295c3dc34688de4b35c2d8060a759e662819cf45e59df5f020d3ac66a673f0e6cc8ec84b981d580cc83bec3fd4831547e86b190d8d629c3a0a8e9f8d0b9bc49fa799664973c3e1f95ebe9b5563306488df4f31921e7b9bb104a41b7bb07e6b4400ebf1c84b7ea14b3b4d46a07154f86c62b16967dd15b5008ebe9d9bc2ef4ba5e5cc36999dfb97277ff29053f323337201d16a943fe1941ab54aed4f553bf125d98de6a9716ecdf140162eec485c02da4a0c46674821c557e1c447e513c0b2676e2d3957bf8682041d6b6c2a02c79ecf12d54e3314631f4cc43403b0151c7eafcc95c1dc140215a8b1fb27fcfe6ff46e5d83697f825d0f052e2b3a78188b84eb1e286dce32572c95cc35c6945ddbe266815bffb85fa38b0af0f4819a34f2df093698fd99089c5b3867e4b5ea50b880f440c31d8ad04d39c410804572995ae993233fdb00a655b5e55a1299c4a09858d88c617bf2b96d4e2323753996ff05a03848be0dc382a99ec92c5f6eebedcada9f8ac1a24aa2123b14e2886f1bae57630fcf89e25c3cabe32a0a5c04d2daa13cef7ba846d5f2673e0d4046ce0a764c44de186c7cc8428c78f40f2e92d5ba339f70f6f1fb77fd4138e97291aa97dd73deb714ffa54a149ae3ca1099221d0c4bca018038eecebf0b609d3a6eacf85c662424f8326b82a2ce40fabab9b53be8ba87b2ad87ae9d0d38e1345d8aece7896503de334437c9b813e7513e0bd3e09fb6cdcc884330e0a63ce8b1061588dbe1d8ec2d164eb4c1b558070f592952e5671b99767fc86f5a4d9b56690da5ae97237dcb738c8601865d0701314b24f4566470b0dc28c2451e1ff6414ebda864bfa8eda434ab37ff1691a4ec593cf3c3e38877402fa7204c03961407f9307b0a94264e4ff6751bf0736bf0e32d4b1547c8a099b9155ceabc3f0f27fb51d9cfff842acfafe98051eca7b681a4aac7fec3b97c5fa2c92f13aa3e22118605c45691f81acb1835c8abc3e89c551248219e5aac51c43260deef89272a3c35ed3dc484f3a5484ed323dc7a41b45ffa2174905db7c9030729b27e92df220f42497a5d409a6fed0cdacfed7de66cbdb2e0dd65d0d89c452d14521f4aee4e17ab30dcd8f5183e0f1bb2203eb5fc0f45073520e1b06da4428e57fa91fa44583d70ba6718b0cf576c4be5eb6181a2a84ffa5d7db9056bcff5125e6b64fabdd5bab30ae6ffe546b62c93ce61960d49bad02dc65cee28e931d856e3f24b04ed0a434b9379314cf396eb10cdfb5fef9cdb779cc1ac4a947a150514aa65ee6bf7c4abc7d042ae8e1899b5891f80b219460d59d35bdc0a380c86ad868d6fcda6ab267027dcb567d6215a100b74c9d77f05fc21c27cb98266421e6d8827624e7132b7ef54f78075ad8d54167c59d139d547abd5a5ba0475f078dfc42a6942d28a9b3804866943de2049e62406b6a754cfa87c5e4bdd75bfba1c1dfe1ad116c8a5810c69450ea3fbc294d90c7759fc9723be5cf62e90b971221e43b098c3f0c9ddb0549c75cbc9be13140fc65989ddaec1ce71f00b2c76522db6d90a98b2921139c8d280b669c9481bb685d78eca1fca02cb98dd895859ff114b14a0b35d772abb59b6f6634bbe0e8d7b578c35fce04ed628f4cbc1b529a4a374900b7e3baeced01361ac933ac3532e803b5c85e7fd5852041c026d48b753d35b429916670f27511a855f0312c3a156b80b7fa428aa7fefd0d10eef31ead00447b1312dc107da80208c9ef5bc49a469984b74ea7fd1bad7404f3d5170166e74e3d5b1d5e6fd5cba1d0e0d5170976f9dddf4e8500e48aa267c1e5d53d2798de27c6a2c1df31fccfb509c4540467b527031046e0bc000b3c65e371795cdf17928bf5a7d062b9f6b8dcd65acba1f0ab86e29b95e0a12b372e101582534c7e98842bfb446fee6470e365a0350b949874b3d345c966e256f8a1aeaaf25dde3a83390b3c52de1829067bcc12ce9d962dcce6d12e8d1350963d852d7a14abb03e0ab0827fdedc7f309b3e29cce3b9f67a5402559d67561e6cf32fc6ab7406db5e89eee6fe75f41514db151b71bbce51b5b5665b374493d006dbd72f836b17d1c521631876392e516a53881cce14b589d9a533035d5bfa515ba087fa30fb45696e73923f54b0cc7c44ea75e80de04594a3f8727001658ea12718375b343423f6daa62492c74925ff0481d6a8e1b525e8c00c3b63c54bf744f7817fff2f9f18db82321fc972e307bf7fc6fef3d2be42ee3fb4f8c92571df5e15cbad49a32a306cfcc7a70d929bfc3d2c46d9ef87c6b4156b6ca9e91f439d8f2157df563064268c1fe032e12878a2cfcd232a0bfba1ae9fe14a8038483b9473d21cb0c846af238cb7af51bf7d3b6ca841c3f3f28b322022cae10c3466c88c3d188fa97357d69f0220d90bb6c3bb9ef624f6777f4067f5e207038acb7fe72c9098bedd7e08655c1919b509764d3b8839a928f9d3b93aaf3b422e00f79a5d027d6eccd69423d49613c06027158ede2ff7992f45c0cdbf67ce5fa4a64884d2c1e8797ae34db79bbc1f27285eb15bd0d667f6a76d5e8b777de699644646c3cb402537c44aa8b039391a0c4cfdca2d7f9bb64f4c02516d31ffac03008ccb55ce12e87d3d6fe363beaba87566249af79b4652c6d5123e081b0b44129eb790cc27837b193192edcba872d9c5a7f3ca134ff916da058c90f3efebc6bd59c11b9ba3473276323949f55e5a3406471c12ce1ff2a105c22c5d2f12b8789a871827fd8b9628bc59b2320f9143cb13c9c2ac6620a1be6f1e314374aa4a58c810c7fb292898b27fb5c7521c222c3b461092f8cccca1c930569035c0fc6a01a618aa9249e9317e1b1306f980170fc95458db571779aeaaadd1a534f53658484791d17fee5414c515912ce290d4e4f074b0a2c524c6ac4f095c7bfcfd30c8f17c4368e7e374ae30ee1d104b86438ce15b39a6daa670c7380e5fc9eea3a1cfa8213452bc1ad3924c4e44a8c9a5613cf116e646dc605bb8eb8179dcc0e4bf3c81ac3e43d35fda25e97e9c5967264c6a55910ec9d2666af2b347d77f87562b095b46ba0764aeb768a45947b9387b1d39490004aa5950d95e035c45c4c05b43ad9ad05f2ce64efb5b75ffca0ac868799171c8b2f9d6499700f194b4f800e97e449966dca97173b9dd632eb254afda45aa6c0d1e7fc81cc39af9dd16439ae9bbcc978f158cc9e850f1d1e6675a2cbdcf8496fecf40c292a6295cdcfff0559639aedf90c3a3d5a5f90b7bad9f4fd203a576b70a6ea00000000000000000000090d151b262d", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 44, + "comment": "signature that takes 27 iteration(s)", + "msg": "0003000000000000000000000000000000000000000000000000000000000000", + "sig": "0db5c5dd7972e157c32cd30dc3086c9dcb52a7b4bdfc1393ed1bbc9bc1b1beade5e981ec4cbca547797438f0a25019da9977ea631507ae1c92ef040b35245cbbdcc4299a7623b7434cf1c35c8e59cc8852523befc428b2fd42bea79d19b1395f2a774a877cb7d388d4b83889a65a535001862fed286834d52887b42a4fa2926f5fdcdfd13c24b3373e65d1411ef71c7de408b035d52fe8e8ed13a2094d006510794642a1591e08678fdf9df4b82b406af5a1c506e74d5fdcb8380497576258d176a7779e167a770fff44566ab3ec828b61464302c66b5c0a9ee6d481f03a0ca64eaeee11341eec7aadc936759b835b55c18de6eb66ddbbcab480f7f3eabd7017327a28c17990b60e9b3743080a562a4c5de191969003d8c6b9a30db7938ca477085ca1e4361c3bc630a9fbda7926e4d36dd9c15a170ea75cbcb62428efa955dce62b93dd026bf728231d2ce00c1c50457c4e06b726d7415619c2c12031eb9afe95da2c24fc65a7c1fcc6df3f810b29bd3f709107d665fbeae4c62fbf35ee38eba3b8bad38597fed3d69de52c6d01c412f239015c7bb3a6da5b9b22306fb33fab50b07b186b31adc79f4bb16110530653b86a498ce09a199db2e3aef76cc19f224df606d20f5986ce46c88690474b4bccef3e1224508e48791e03311dce6230db6e8babaa8fa12bf1090aea9cae50a43bb230c4712f5cae06e21e7798be877f13d6047c1e3fe1b3bb988e2a5888e79f3c08da35e328c832d7c72a0db3176fc7842cb5b41bc37ccefc21f6121ba0692fd39edb1ecb92427a0fe89ef8fc8829b1c29545d5ed0baeaade19cdc24b19bbc11ac4599aa4a28aa215aac5806882abfbdb72cba5ba01c0f1b83b868a87fbc7594c14b9e2653fc8d0585c857b41edbb9d306d2cfa368e01da1e78ebc9ada2ff235d90ce220ea489d6c088694437fd5907bf2eb4e0cb8ee0f4abd86ed7e7e0c5db3bf37487504cac0562a8e23638f4346075848e8c1a8be89b680ba84c03fe602ce3133b02befd0cdc524d271a4fe7c51ab3dd1318d12b3c4a73b748e9ae37acc98c95daf59a56263593e7f9d350ceaf82e3562977c503f8cd551aff52ae4fe71d8922256384c0fb9f56ff3148cb34e984090afc4d716da8ed5ae77adc21ec9dead3315acd6d5ac20a930e1b7e6a79c3ee09fa8293a7ff1edb125c138e3582f974e74e5189473a33e855aa48fbcb32e90c7e9438c6e7d9efeb77f6c9ab2ae564b833c51a9c61a56599d041e55c3dba4da5464e7642101a7752c8b81ba2c531ff730a998d603a0044d6c2a632b741cd456ebe4e9b0aaecc0ac4c99e46ce29957ada554e87f5e7e65e17007f3d976431b3ad5738ba5e535c8f6890cef767a46f7256ec89c96ad432e1986dd7f81d98f11e88c4fa43bd2eba95375d3e974429fc117b62a015ae28c1ef92c79f43e1e2e7e49a6f60ea80d9d24a7dfcc8252ed2a75029d07296ccb52c38ac66a83f7231deda2e0cfa143ff4384ae57e649700973064fdf5b127af39b3810b3382f4d81a233c1ac4e4ff39fc8109377e73d3916f06cc66682551618cda452b50029393c636031acb12fef3c903428eafee03a83a6f72fa2fbbc078fa99f910e4220b08554ec1918d946e62e6645b1bc155cc759cb8862bc3555700576d9292eff47e04a5bab53709ff24ca8c81093377c07816a7097207f4b8f0f7966af0b89dec150649648cd108c00a18621cf5488d3f3256bfa22cc23c49be059df96ff66d4c5756b6f79aa6375b718f2b2cfb794f108db01f9eae4b21cf6f4f9a997fd2bb62797ff8f449c484eafc62da8d6b00753b614aef05ff5448d6111fba45eb13435fe9aa1698d8a8da391950c0cbcc3d6c3e966f2c132b8030ba274d22f5601d324cafd1f9a6ef87059d9f7b3d0208041b27681abfc309c1d0113bb1b2dad16ee01522bea4fcf271a4bef428a7c66e237116a4a4310313403cd6596f7c8f94ac1818c3492428b1b0dc1ef747281bc9293d1eddb357668d27673b7aef728da7e4daadf21951c1d07430d672023414fcaf456da7a39f594b773d5c7ea66a4f94595ca97ee3334d5825be975b38ba856ec9526d911232d5638f493a393abf42282827e67806d6ccba59e3b7ac6880d077b3382032e51169a56081d90a24d85f5381fc76abc3e520d5cd99650aa844347e0156b5f7f8d417cee990c631c0ee587531b7399b73b328538fa226cdb3c35e8386b26c99e764f4d42c654b255ccde7cb311c01dfebecf018d459447577a8c5a3f9c4840ca26ba185b78209fb3fb51f237406406e005a4c419c76a5311c4f3646a214e19deb1f07dffdb653ca926ec3afb27751f9665ddb1e152cddbac663406b4dc5552dac580148835c6c8dbbe656f2b519603b19c7e79a69416544b4f99a6ca265150a1fb94d23e4f0ce270bf19e7b7829a90c80553cfed44650417f6cf91f038f9072e61554079031f706409e66139845cdd75e554b349eec294a92caba1ba6245623518f470d2d4424a967803238547da575af48ac4f5078d28a6611afb29884d542dbd228ea97bb7c38f5f328829be6bd24190dd8d80aab57652e34d530b5771001c45807d17ef5c2c6f14bedcc0116c942a98cc3ba5b5a57bba8fe644b76725b945057330ae4c68a574e9ab3bd7a78476d3712745371fddaa1871fb9756595e935bdbb6df34f5a0d12803422191af94eb54a6d0653d59437339389bac5d4f8283b8997d6136c16659ab4fed4d2b484f2b6e7e64db28ea40977cae8e8bc3b2c009b55e6065e96b5bfc696875b9c3d7f3979cef03e23ecd3067154afbf04ac711c58a02ce1700155971dd8e86565070c04b1bdf2399d7180be36c8a8bbf34b5f6ac1e9bf62fffb52192d73295bf55facac86ca7ce7d3eecc32eebcb71c29a19f53ab69d1b448a304958195ab32c8d7952455a4e1c25de3ba91ea06e44ac83872c775f345f9ad3e691c1afcdac7cb0a077c7292ad5b4c010109644fa2515f9e501851eb250f69f5445baa9d1c063a7cf6697978ce2c71ab8e6325ef2e70acc2ce6dde0b388f1d03a0af212cd177bed9dcd00fd381559444f563af6705a0fd42e40a969298b8d52271852e57a5545b410ffc4bc9af5e518780056d329cfaa31b1afa41199d76fdc4e44b98f9fb2fda61eca42d7741a163d30298040f9d27899dc8771b020827e31d60814c8b4d544f77bf67cbaf21e79a3c95070d1a57b622c56380ae8b6fd5cb5148ba9b495f96689a508554e2bb4986c185482ffb9ee590caa69f4e41e68e542f7ba0ac15c9c5173533083715a60a72fd46288bbc5eba4e4bf9ee8bdcbfeb5cd493a6b995f4f6b99a5432ce7be0f3940d27c49604fb9cfc52fd706e0b777a7049bdc719e42e4fbf3acbd934bc62d7f8980539d4d08ea99f1ecc876fcd7484607a95013458c6d5bf14bf3ee6e833870a044bbe004ba20833a7941316afeeabd4715f34fab6bc66bdc1079fcf98819eaaca614caf43507bc94a3fa63cb002938c68d98e898f8cf244cca23d703aede9a6e6d183c43a13fc677cb647956ca775ed2c38faa629d04e4e5774fe2752fa4e9ee2b257d665e1c1e968304eba5ae3d0a87b466a069c8d4d46c2fffd76afc2e8bb60c0afcd232c4ac56f43738b3da46578287d970c7f8959a0f820ecdecb6a38637e415b00f002868593061043d58a8fa42a237b61e3351bb24942c7039769a8b7f8193bb98342b621aaeaa00dcec721fae25c9d1c5d4ad57a4d2e473dfa21170e38a969792ab4c1fcad4b2e5d52269ee988941923b1a8db3d190b7cf2aa92f5e5ac3dbed2369913b3effd225841edd269a06df4f73c3e85e56c69e54b125e8bd2fd79191a6f43c6d9238f3a5d9a36bef70ee38e016a36fc3cc07a94a63110086ec0143a8deb67438e4d16242ad8d6133d01f6962e6c2f84afba07d51dc2e65d6bbb6205e0871751a2204611986f4740b2931ee47c1aa8aa20c1ccae2f5566f87f89c12a18d4d74bd5a06b98973e4434489d48c7e2b8996c40d5cc63b3bae199e8e3fdd30c3c68092fdefaab10fc1d028453b77ecc529484f61d6f5a141a1e5710faca6e1da5ba60fb98ec8371831fb846dfe7d52af0a60b185e27048e7dff00b7afa61c710a7c33b6663952399eec31d4bba9a15709cfea40c2dfd6a100884ebac62baef2016afd1bc22adfa6213ae54bd0ca929350d36ec46474aa524187a34578c60f1e7752cb29f3f4ef42edbb15c78afc63cef839dc5b44695206a8ab6d54288e998316ffb13c8d41a1259188844b3dd5bef5eb0ae641b9868216f65dc2a64747eea9005b7bc07bcf98da6b5f93588a5f9b609404eb9bf2712412f112ea7aca8a6ff40bc3eedbd350050483c1331006ea15f35cfce2e153c1dc4aaa5093d9813d4461c72f27c3f3490b49190cedf04dde769d111b18b49d688093354efdc7a5eb3ceb10458e766788d379903af5fc321a7f6d777c694d41f1e3bcd7ba1daa4ab25e4a66ec3843b08196e36c27dfa03f4cdddc6a0e8114c1a5d4c44100b829817d770df24c4f10ebf53c21410b0c33008d907b795ecdc38b308943a4d3f93d5de38024d09e446d8b75b35f110bccf066e363a7b90119212c44526011163d898faace013e99b3b9bbd5d7dc27324e687edd282a3f80aac0d0f5000000000000000000000000000000030a111a2028", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 45, + "comment": "signature that takes 28 iteration(s)", + "msg": "8303000000000000000000000000000000000000000000000000000000000000", + "sig": "1bc9c862b16df16d48180ebb9afd2ed72a1a420ba312090039f5da0d4ff270596d4c762f8d3dce5d949dced4cfa18f548937167d4d69d5b13bc4f7706b5e15a87b389e44cbacdcc955190ac44465dae66de9379aae42ab771592e5270a0723b7ae57235ed09af780c861b0b440ee5b88e396fe3bea23f76fc714f9dea39160610dc75414158299d59b52a10aca0431fe1f322fe46492087c0235f3bc4863a7b83c2a4a72aa0fcf2a1221d4df1169fced3c75d7699abe3287aca2686539d705bdd7a0a4ca4391ad5c68c5d17b417db850329c7a00973e0d46478309895762c8b829023153dcaaf7fa4f04d696c6946c991c21d9a1bfc00b96998049ea15d9acec52bf416e54f6fc28b1e9a3b5add96aa52431f1d361aba4aec723303bc351cee44830ae4c16d7eda53f418d868e59534cffd23b88a982f53ce90380b4f9063d04ae820d1d10a57b523a62c023eda78894785d3f462af9a3a28222b99552519b64337fef4067444d3520f088813a13089ccdf1e44a8a57f88d76b414351961402baa4d717bf0f992384fe1683df9c3df07d53ecbe76a21c4fe175e25902739637f4cd16727405493976a4c196da0fd1e469adb8cd0c3de4e3f9a47653ba8436448f62ea2f2356e0a9857cbb748fceb355ae43c6b9b2a27b5798e86a0ef51924eb1ff2ac7158594d7d2983955fa2b613458a18b957e7d6617381c03d2c20047a781379c0c0b6061af041e1f55b3963b7fb76d83142a9bc4ceb6131cd232ea0b173cd9141a36c1b8956d4aa2574b3815e35e2d8970d495c66a599f347aef6139c6af132be62d2f8eb4574ca209ca18e9072a3c988748f4d39405d1fb617613f665d15ce0b744afa4093d2c6d3ac6ab7f5f520e29b0b6817d7c7a76bebbb7577a48d2405afe79334a56772b88560667d46d0698eac1f0483df4671aa236876a58d15d2e14a17b65e07e5ed03e9496cd5492b08bbb5699558908120ae9204b2e3dedb83f9be70ee102ee84ad42a0352ddf68e86bb44343e6b6d2185a7a4ddb3744c2fb5de2ad7ade6414c85b684f1486c3854834b34abb1ee199deaebfb9314f69ed1a2bcea581998f474e315259f62502d54c2aea54f4ece5a8d8f298bfe609e7d5cfc082ba187ddeabfae7a58d83a240e49068d02dc36ec4d76340866b617ebfa1b85ddadae12d08d0a6bf905d3ce11f172ec74fd755b37c2dbe13da614c6a732f44c24404b1c9abec1000956e1a630cd3389372d8a76616df2714faee5d5ad754143a530b02c7a26db883683b13e847ac2ccc99c7f8bf383af93ef7b92fe780e1ebd4b1cae4740c20fe7c5760727436946a0f91e72585819d988735945b19dc925bde22f52dd32b882e71052dca1eb39c8c4e9c169b58d4bbdf5cde68581087f1ceb128c15618ef43f6bc4011c17892f35a10a78139b1b988d4b526ee4513356e280e390921a093da926d9c742ac710a6fedd23d616bcaeded70bf84151cb66a69f09e6834621e78ab217e2effe52d6708ef7f1b4343b6c76263967d7babcbf7a6850673237243e4d83c5df43007d184f7ce4af6498e0ea73bd32e2eec046ce175b0062653a8ec704a5991fe2bcf8efa6898099135814d813844ca2d6140a98ab4c95ae9d6a5121e252014fd9c9e887fe251774eddaedb8ce3681669adda972bd7a1d16a52ad6ad19e4ff02d486e386e0c2ca3157a3a666bfb4d407008c03f52219e2649d962eb7c15346b0aba2815cd67ca360a4d168e5ed9bcd2ee60498928a9d00d7cde750d85844c82926af0f50808ce3ea5e80dcc6823de71f05c171030bf13d93a04f1c156e66ca8d22b5dbbe8b44ddcaab9ccbf826231f55ade99412ab6ed7aaa35cb12a944536e1bd36c10d8181fc89d09f84bfda2d8de32c935faa02e267a3fbb6e8c3a44a5ca166eeb2788f691e63518198db0b4d030f85a2e38ec7f4e8d7d9a0d1b7eed1139fa8eaad17ad2ad00f15ccc09c715aa7ee5a703291276eecc0f4209077aa32eb970b73ac3c615defef689feee8895912dfac4611d6b834a96b3b9bff1538e07d88936723b6f4a39ce7c4a679078d634c92b8e9f349f203711940a576fce501c3870a3dd4fac09e5c8ba03a114ebd09651d5096a20ae52f0bdced915d6c8f7c7a23b8c2d4f79fc38b5a78dea3b628c40889a4b065e38387f260311f36f4b1fefdcbdff02cad18cae8995b3094bbc51a96f51f638af9c299bd79ac084a13b307faf13d68f3140140c6c3a9c8ceec7b65ea92a9a5e5b7b8d5d3d1f5cf48d7f42c022ac7cfd77def0f0998bc46effb4fd69a1baa6abadae10567e9a4b685778da34ea1ede2529984ef8f6336cc07acf730b05014054856799540d0269a2e8270465137000a47981f92a07fc202807db5f3983136777b6b61d3aed5bb093a2a6e18a7b4c64f9f0fb9d920b3f7558e4c09d62ae690435732b244104dd0e713621a4f001d2df4b1323a1c826b469e3debaf80cf753a7163c069aa4ff1837e33925b4c9ae10d8b19ba9a807e8cf6050b0f3f9ab2959f576235704622131acccad1b607fbde6dcfa840e6b0656d6eb62151719e082a3204e76b11b0f583d07cb784710f654e9fdd8e9a0ed42884ed99b7ce601fb19795ad3adfe936941d14952624ad6e75d675a1343a2d4f0ef56ea19291f6308db666ff5ad0bb73701442f1863fe7e82a29fc670de6019b93cb233e7d744de7571d02e85bd5c50304b2760840f6a4838dc0d0780725988fd52657769e22769188236269bdcd6c89fc3916aee8b04435799f5e74fe7e986cf31cb263a77c2b69ddb452bf3c697e0cfe9756e7bfadbad40e99b7420c07b7540cd1b48036ed3096715eebb356e0eb59df6a9340780068a269ed91fbad22f204de5c9f2ef819eebe6fbbd4bb2bb6c77ae1219decd680d933dd15720481e76e38695c0a1a93b17f90f32d53a1a89124ebb7b686c0a96b7176b913d39f374987b8bec493d80b75909788bfa389a9e5b546f46bf921ca4cdd91adfec87a91ab66d71f92fae2644876af07df0ec3a5cac2c4d62d97de6f9b584f6f8a889b0ee4e2a2143a4566126c9a25e3e4c5b4b4b92c8f38e7b20f26ac5fb0adddf50fd597a9202dde1cd8b8dbf1fcf3dfb6cfb3b7fba249e94fa6dd61d7c03d5f8d010e897ae69307e3382e275698c6a9d8d728de78fe754c5771e25e92997d4eedec79b7beb3c0fa871e5a2eb6f0729e33c724f4babf5782d42033c75959cb9f4c37099d1cad2560c1a4ed049ab586cdc43c368cb45cb73e504f491b0ee3646fcda7b210ceb531fb426bed577e4d468d4d18be91c6f0fa2b1d13427ee6ba551e77930fab959643c3a4e195e61893a8098658b16d549859ce4233c699a6b18021b33237712795696d78abd6c3f180f6a476ded3720158b4ef011d33e2601d458769cefb14c36eff46c32c5e47dae1967c46bc82bae8ae6eabeb831cf7569344e3adb76715fde48084581bbcf6cc736277b28bf258b8eb7e431f972f5b299108b3cd74249d97d6b95dde7f94cc9280ff1689e2905696301b81799bd721670c88497b0140ea8aad1a853780341f2936cdc3d39375567866d9c255edf95a3a935475ee0c35e81dcb138b996f33f5295cec3bc9b94af55852bb70330ed6545c3c6a6382aadf25bfe8a34d117c5f655c1da99a87d21b131ac3a909d80c63922efbd0ed2b72e8fd2e9150415c6d054aa609f45c1033a37528b64a5993f749651370c631a429e96fa141ee220ed3e7a70665ada077c3dcb8c1b302ad671a2a67fbfb350b8ce3517c64b90c6d434923cb33f9c5c7a18436a41bdc9bd792bddcec9ee1d27ce4f20b4841a01486224c8c8eeb0ae875df92896f82a67a584f6ba1a4c71000eb549c00206d41415c16479740d18089e910a14281b435a0d014c7cfeacecb8499543b4d5709c6effb16c0f947206d1e06dffd344e98a3be9133ca6462dc7cfa364deff631e9169cbee3b79859f4951c3e2267c6de922c1ef4ba4eb3491b4493397df97b1a9b89384e492e542de2511096da0930b360b92cd7b62142bfba4f8d7b6e7eb3b234bf50a2760545ede546caa7b5a020aa92bca66c909d819385f98afb19d56946c6bae17bd9dc2d1d9aa51c1cf1acc9f03e04790be9e0c1585d75bff0ae21b917cadfbc33fd5aace13a49572de0a9cc50c6bc2d7feb28db6ae4b362b3a23277d6a01575a9646a48fbd18ccb190c0490cb6b038638fb962b3c159a542bbb6ece365365b93516d0b5f5970d82de06c397e22001f41e96260a389bb1ed2d8d76c9851a7cc1a3fa3d4d98eabbbb679cd952d94770bfa76f283170110bfc719872c32d79c18bcb7457cf85e880c5bef6cb0356f7fb2c5f190982ffe0bf6c5cd92861f3fd8175620b232c084af4ea68d40c18408beca2dc96cc02b11b07c5123215fdb152c1801d5532069bbd3898d2181bc00f0517995f4d5ee6ccd4376c346c6d6df6c3b9c3a8ede9459f24a5680dffa2399eb279a366034eb0c7cf6f551b0e37bdd5d3f3595b9012f685bd2f67aa490665c81dfa5ea3b7e340d55ca7c4102afe9d12bbe8ee075b8dba97c9cd30fb8455000e98bfdb83f7fdf96c3a9db7b23c4fd7f83e490c0f5b5e77ecf9166075dcf92e3950578eb024528c93959d9eb1bfdbe8025d6e94a0a2aacae8eef1071a21305e606d7478cde0e3f30000070c121d2835", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 46, + "comment": "signature that takes 29 iteration(s)", + "msg": "f501000000000000000000000000000000000000000000000000000000000000", + "sig": "8c253cdebb1ba5796f440d3d2ab09cb0498b8ef4bce107d8662022fcf322abf787d74530ceac9e7b0d923cf8396f6154da88c9e566efdb82bf5c65e73e0d663022b737130269347938878e233db8a375232ae2c335dfc9aa8d1176a02d61cdb8574952fd5358f9628f03afc9fdf6ae1c80e80adae06f5e8e327891f984c1c657306fc4890356861d69f07e06dde87d05fcf9603f83debb6071687931f168cf34ee9cf0a4098b2a267d7b221c87ab8a39b5a1a624006bb96eebc8d4d1244f9ff9e3cdcef6745206d52524dbd6afdf90ba7987ce8da6322644380bb4c7f226e53dae556683a43c2faad7d4a37074fef5bf7d9466dc56ecba6647468ecf92df324c8b1fade1240d39b9098a06fb33c4d201d7b501c82f5c4b29c17a3882ef2b10a3bda10dca0b0a7797a00e72b50822a3020dc1ca4458d1d80997d3bfe31cb4d3d6b20a17fa901be64602aa79b0773070c57a2b263c11153fcbd3aac5b12931d307c9fd9431566d7d07ae6facdf8565e4eef6ffc3b03a4c27a3c807c9653846029bfb6f3a99e08b5dfbabbf3a170f5236e8e7a76971a27c462b4ce370bd8e0fd33645304bed23c7da17ef045f587bb90373218a767a7b5189a121daa38eb1f45140957f7f6b90102aab9031aa0f2cbf58f5c9e19160a2d52f93b0901c715b29dfffbbc8c4fa8787a28dd0d90b35d87a022f3686486ace972ae6e0e686478c7f6e96f250d60ea023329140a4cbbd2c79bf1de5cac656a2f1db70d3a9ff56c84959ab72bb0f228c42328b08933771f7b5ca46c3195b70f86bf702eeff671736973403e50a17b10e1598c8a53869b81d1102973030251d6d339474d579969d44a33044cdba3d99cdd8287a6fd9de987bd233cd056b4e214cf5eb893024fd75e4402d97ac80f753a127e67e1eee717e3f0940763cbeffbed94d8065b65755c2bf2c17ed323cdaee4678e8d188afa18fc17cdf12c82772fb6be3032a47b156ab4281ee0f7c8604b6f53c8936be92d09399f43369944e9113a435b351a4f9649ebf5bf42634413fc8135d0c0d21a2c2869280ce9cca7a7e13b387a0d9cc9b60c622994a02bef55c4dcf0f3583388b7d84acc7e75d208b1886772296fdc6e03e538b48d7750518557e1bd161aacadb98a702db7c91fef6ffca244dde2957dfe1e35fcb8d0604c953a9c4fd6b4870121ef58d2f98c66ec1dbd608c46b6e38d6535750dc6af9ce628ead48a53f64c5f9a6ab9f9d92e922ddadbe58c5ba6e3a57527514adfcef0c60f125ccea8b5df9229ac325328bd761e03d03fa541913846962c50cc801731ef4ea39a1e730de15c7e10c9b03d8adf15eea6e54d179cc90d090f04a665e8ddd67f29ff265784c61d98a2fb74c0b5916a00da89fde2250a44c6065a270634b259f40a240e857487d4b976e953364d614b4a32dcaf907e69303f0db3b3da6f958f6336fe0d70f49ddff907d2c6f2306bbbd26bf8c1d0ee8512cd671d1d9313c75dd1827157b9797d2836f6c89ac85683fa6b321cdbf5dfcd5f5f5f3c2c191002bd07f1dbb6c502cc97554d44dbec0bc0615059477b6679a03df31c8636399be38e068df1387b9e8a36101e3b2ca1438e0db16b7541241832aeac355b00c70a47413a0cf10572dc69e809d0b5d1960b3ce789d94396a2b91ceac18d1296efb98a7872a95656123b4cb94b106ff602c371fabc57cd99a2d76b75ee1fe813be4dfb099894b9e01d824aad6491495dc12fcd6c63d73cddfe8cf89ca3bb45745ee697f69cb0696e2ce96dd71cee0060518a55772b93c8d3b9f430276477280e72ef2cd29780c706ae7577439db3bbe329cda8f4699ebd1d60448ae1d60b6f473b94b341188016ca5b59da8a0badd45626754635b65602291a70e25900beb414487c2b73f591d2e55aa4f8d498747523afbda08aa146611c6260d1ce595b97ff7fe4d36440dda592ee5785399799b1d1a1f1ec6f62b9bbe5c862f03b6d30a03d3b291031feac23cc92ae7f2f3c683e702891f5a1850ef566324cd340d7f48fe748ddc234fd0232b9258e55ae80e16ace20a8e02112cbba0c1da90cad25b13b3de3459abaf495c6e547b67e5b93da9a538f19759bec1a32afac1362ec437324b65d0dc2584749183c0707c83ccf840263f75d0fa27bcfc88ad905e480878dc64b1dafd0dfde7826c824f8af0da8b6a86e2ef465f04039a54694cd12c2f9b741b8d560ec0b9f3543edd978778888fcd0a2f4299f7444c9d7ca48a41bd170ae0bb468a9b2abe7f50688ed04ccfb4e382a7e287893309b9cea35eb198bb5898d8a28e63b39151715749e4ce70f07bc1b19995676ba357b0bf5716038cf7195e50ff7fd6b6f0d9b2779c250b5fe7fcc64664e410d5abee8240d8c4541d01863afa7317b617e293292a3bbb4ed6e7beb5638a84156ac6e99c0d46fc05a261695aa7640cd8521ad7899af6b58bd45ccdf21b1083edfe8573495e866dee9ea454301fb920d54e8fdc71248ca41f23c2923ea7e88c21c2f5407fa1632ed1b6d6dd708363718c1f0246b33e822a41e54e255627f8c25ab671e90264b9179d217bb2a3fb00a985cfd7eba959bca17f68900af1316a16abc929ff5b9ff30b0d4bf32672a04b1671b2191571cc57665050e3d37602d161a7c830db43a4a244c5fc9929d3b55815e25d2b53f46e56109a0c3545d156da8c6959b610b028e62f89ab57f0bd6cc71023f7d5311fd688bd08185f6a21985785c7cade83b64703dd2167b6c31795a37bd306f0f8d964c004034a6f7f5631364e0684371fefb6c4dc93857e68cb9a07f0039c1cdeb76264ca83d716b5f6b169863b6f4fe89de74371d117c0766d5733bf6d9b8cfe923ecb9caa8b6875c34aa48cfc67e9b19cf88c8904f4b99396d3772268ee88fa0c4a5ec855e196e977b6299ed1ba98af54f6fe5209595dff4111ee880f4eb623399e0f8bd5c795baf558699cae469af914decd453def58dbc5fb25d701e7724e26f441c884b215949fc909f9b082eaa85221b85707edee7c013f08a8f734a78afeda72e76c43f79de08543b2ec20940604f3fb8c909d1468843e3e725d3f9aa29a8066d827ceb5d9ecb395d73894c8a339c6c3b6c767d50fceeef8b86c0ee5539de7f1ffab4fa24d24f133026a48e97128fbd133e1267552382f81416eacbbf4336856d01464118ec7624dfe21d3d4c2909a0eab355d91f87f6fc1296c47df1d57dbec8e0db94386429d0b0f9d59d01ca6ee187c9ba564eff5bb599fa587d5978cbff76a172a19ccccd6a2967c67153e2cf9c15d3e56da95bb71e6efb0083db1e1a6bdb566b06bbc3022d0cc6308161d8a5e2f81d3b883aba02804106412bb7ce257532654220496e6dd8aa2f8101e8be2dc64225e54d30083af043bc7085782ea0b1e99eb7128a453b9d1bfc4d4bd78091fbcea849cf2e2b0b7c5909ed7bd94524a58b8d56fe87207cae9817039a4681c429b19eaeff4dcf8d6d75cb7c058687ce6e27a9631d39c4d5dfa73119871d8b91e59c677102c25a55c6349f6165593945c51101a1f939e6975f77c89853b6074cfad9bc7af620e9d1d2b869502def1e697988425dd079727bf160307f5e04551d5e97b291a345c3e3ab0aa7eba4483a43b35f34a9f3afc41d525f83c5387fd78ae8b629c4923674860c74da16dc10123b2a44bf339187f389a89fd75418dc5624e1a4ab48fdcf1f389c8a5a9b7b52cd987bdfd9c7596ac3123889577ad6bf4318987f65a41ad8af55ec5ddcc5e1cf5de31bc94bc3bf214d2ccad36042ec2e36fe79218d4dbdfbe6a6a4fbc6693319bd7fab023d22edf401d297d2676d134894b68b970abd4f0c9105a31a4f8375359950d2ab59b018bab399994537be6545cc79b2ec9fae0084cdf47d0e08d7e5bcdb35c78a63af8d92fbfd760ce8979ccd7bb7a0a70a1e4dd77656dd7d3ef1e77edd2e17e0992afc5e4894295f3cc2c19c5058a95fcf33894710bd8a891f637cb55885eefb0cbd6b3224d23cd5766e054d7dc87b50797a9f6a8e018e8efab48d5b7b70c73a5ee62efafc2e2ec2d9a5019ad54188f5c3579bb882b60c738cc149d743d6cdf0320bbebabd420f50d894904e0ff55813838ae5f5d46743a61a64abf1b4349a72892e245a6e744d8b4dc3e9c13a1c5c14bf0c6fdec64e8f372f570b038c4b321be6ab1fdeec3fbed0105f77d13450eaf4bafbea36fdffcbc18ac309d4467ce56ff7b0d49810865c95bbe564f16da1ef783196c541a89396f44e09f5574264271ca5a1306bc1b46beac94f05e6c0e1446657849b8402ba61d1473be762c4414517181944336f240c0963fc41538f9791ecddb0ca90a862dc71f215b1b1898fd4b4d26f66bdb1d47e9af059a2cdcf03fd6218422e2f143bf6b69dc5b4c9d1c313c30993d9efa1c9fe23d9deb38851605d062656f21dc39b95e8752c054a54f0e43dc9f0d44aa195f3408df5f33b62ffa3a305b272ee4e72d29b9ad0f3c09481b208dfb3265218223a5a13f71c64e661233a0052839ae36a3402167d0553728b3be519a043d16d3bc54ad1c0775cd1c290c593a7d31d938c1fac92b45abdf1eae7b0bcd55b6ff0554e79941a808223b516c757c87888da8c4d2daef2663d2d3d6deedf64da1afb4e505326166a11a3a475c7896b1bdd5d9f4fb167bacfd0000000000000f171c212d31", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 47, + "comment": "signature that takes 30 iteration(s)", + "msg": "1710000000000000000000000000000000000000000000000000000000000000", + "sig": "2c85fcdbfac8e5adc031cf1eb284833d0359c84bfae3996c50fd75d3c2cdc4bc57c7bf72c2d23fe22b41dec00949e828824f7b9725d473fe934bd374cfb1b27a790d21647efdf916d65e90bb6f8371050005d23c3f2c31da7b14a3be22457686594ad526e0b09b8f92de2b1a00c0a4fe4a7217680821c7adc0f62fa3af98b3278a1e0cf7ea351332f891e57fdd51965663f20d6d96ad7d8053cce022dff296346442d19359cb24c726ba6c6a61e36231fedef753980861a11270ae043713c0865683516d854d5f375d694b147a23767a14ca4c57fa3e66f29578410d104c5dec4ac0f55d0928b435565481ecfc12de265aa89910afa4c7c265e32fa3eb9783b01904f71d3c3b9405f70a794e04077a3c94301bb75fce0fa263098ba425e0223ab1b74ff1b1360d744316036dec6531d29c1448176ea8102389704af4c496dd85fc9205687da8f65b3f4596b79be1d8816bdd059f353a94f6d35efc1b8d3e3d57a6ba56d6b872f3a6c082f5633885577448003fbf56c1f19dc84abb9b292e45fd8f291b37947411abeb9df1d7804f964538ca438d5b3bf27ff6bd9f3d9237db5f0ec1855f7ae6666bac62e6171ddec86c1afb4b90f0bf897c0f244bfd4e08b4ac11a911871d94879c4d8df68ec52e01de4896fb0f7b88dae0dd257281cb9db2c78de846207ef1dfebd66a8140e1e5c8d7279cd3b18bb89e0fc7df4ba54d84b73795298f41403c177707771877078e13b1db8c1ee9c36ab3f3713b52c1db0ed49f59ffba264d33701a088fcd69c6b35afdde9e9f74dce5a01488cceec00481dc6fdeb3fc2e353a98f9231654057cd815eacbd92fa1a40aeaa54f868c493eb5649a13ee296b2d3300c850ecfe78a26be1f7772fbd9c3c21fdfeb02ecc93ac12adafa23ec51eca46d1da11f6190d0591b6a618d225e8904e0c3e3b041af3db8a94aa52ec9f0167a013128857e7181c2e719af102a6c6e1290fd3f69115fb1337d8c5fab380e759d26120439e49fd89346e4838d0bdb48d7bd6d109be98460d355638dea4876a4d2a5ad4c9ca7f72c1c9af8f35eb8765e4ee9a7c1ef5f615599e183f734d8e76aa9ba37998aef053f2cb5daa80650266df03dde03830679611f365336c93f98a3709177b6f97df307d9984637a930b7bcd2cfa265474df1183ec28800a30ade5c6bc6cf176015aa43215c984ae7f255f7ed7f62c02d40ad1a705aed97af97e1f3f23cd234fb24100c5dc659309f1e51b973dd89d695fd1341e3ce9983dbc165c46774fd4f66995221a81ae2a583d0e978cba226946bf4d132dcabf647e8d1d2094b06e9afb6a5bf1be91403b0bc0e1188ba2fee9d4271e7690cf3a95096d7515c98cf9189346c5f21e72db09dc11ee2645d8e16742e68f47937858fb59a4e114e866d23cecc681353f61d22fa0d9b0d8b464a8f8ecf9e8f46eebaf37aa3ea60e125b2cce00fecd2a24a543075d4969cc7e1544142b8e46495d8b38ed2873666277b8b869514f756f97c42a762105f3ca6dce3eab4e3e552f4d49585bdffda46dd7a54fe772fc877af3015859e23051daade007d23fdddc883478fadc400f109f34e72b8e1a513dcb938889c045f34cd69d837dd4d40b77132c07c99fbba68aa5f327a562495a683928f38ea43112e1cf5fb2b66c0350193bd67b968a31b07cf42a6568a91f325696b386739f6634876df32685f0c6bfd4cd16802c8c8e559bb7a631edec8aadfb60522cdc7d6a2f67f88ab7701dcb61ac74e06e39fd4bb853f008b15056f8abf7469f5a0332d85575a6944ac0b746352424f9de67d0f7f292f3f02e93a152491ef0f401f56ddfa825902559c38cfcb2ff0bd63cfd87b1d7c4899ff1dbd0b40761b85194d9df1874cf7ff52a1f849d1f79aff5abd489f862585f27614b8f944ab091d18dbbb7deb5e84f62c59e5e904f98b5bb0415e3a2576132679754e0730dfa3465b537e160c85c8f1d30198fd5449bb02d3043b8084c93e29594af010cb2a9a293eb29e282c88821fcd302852453bc79b2902e1c786a64f4933292d99572f8700cb936dbacc3930fade53977937f28053885052743813b6c80c4dd8cb27224b1cd8cb36ed517d0d8d52d06c6e5033471dd98aa09c8517f5d0666901e80b36590b65ee57ca83bd730daf45518d0a37e66141b6397cedc4f6b0366f8c589c85c3bc05a6c92920a950390f32d2a0b8ded5feff23ae71a24da3dafccfb18921e96b5333e708c266a15372a1f8f4d62d7f42fe34a169b76bb0cc8357be8c855183eab2434de7fd97b8df8fc4e2361be6c8395a910efc0b44f1d03e6056d48b108ab470308d62faf31415c90f1cf9f5aefb1928a2efdf1429f798c66ef8dff4732791d3c440ae493234fce1d9f2e35af6bdc5e1709a3678ac317c8bbf644165a096f9b2835f86f23b14fb0b1efdcea57abd97db6cd9e07566a82dfdfd2e790cc48bbead0e2232b7aefb84a614893c22a0f0aee3f648a70ad7a2fae3b44b5fd45547ed6de7191375d9917449b536bf40856743eb44dbfdaf675dd6b493a0fed774a2fb89d4f383ca4771a6816409bd15afa7641fdd9a4ff0408dce586d9f0124e53886b54fbae0a771d6c94c382d0281ce0e51fc844f1175960c92886b793123df29712c6c142521be06b7d129e7034746206484ddbd743f7969186f8cbd1f5e14bb079ce36ff7a46d588dcf96fe3fa635f96e99034f053be26e80ce7cf1ac6431b22d4778d4b7ec970c2c7908854c3a13b21bc26a8b5b4399546290ccb98c1f62e5d5ca99c0106405e1a8a576b01613ad5d028c8b090d750718c159c7bee7248055f655c5c4d38e89ef58a2ff24b5136c7503c08e2211f534582187ca30dc8e1245f261d25ccce7b60aa5ebfab491e94d612eb1359e078583844577359f533ada0994fc3b107a3c7c3ee6296b5e5a2854df74dd942be779d7ba2d6ad6a42f2a059e57457bb972da0c2b3ca996df11efb6184daf4ea146df4b8a3baccb4d9cb05ebce23d752a194b7affc3fe62e28c7992841d8d441b91ce7761ce8b056dd3b93ef97aec940d518ace392f436fc2653e63ee24d4c9af568ba456f13f441350672206143f40e420aeb561b79a66a3db803da4b7394a43ec7982eee2ff86169065330fd4802e167bc38adbfd099f56475e1ffb4ae48eb8407f6ec4434f7a8a1cdad4e278f16f240fd54a8cb1bfe1055b34a58a5fcd6087d3e051cb44708e47e878461c21e4229c515202b6ec100c492192d2fb51a0121607d51e322b818a1588ac4e1b2ff94d1e8cd26a974cc222339d7a203db87f7f18e1556cd0c8477cd7cc9f8af4265f9ba29e6934a2c2ad8047f4756fab53653c5a4cbbe75a65d4a31c2fdeacbbc71ceb394792facdc1c79d497d9664aa3a759121f741dc9659be8cbc76b273cf2a5980752d15e0c9eae46a4780cb17e74f45a4f79197563b5db4cbc104b6c5e2135491c33d1ecfc95d7a4013aeb6e33aa81ef9e3fccd7511ab11b5c88f4d580c1e1f6f406df964b2a05ed4d8caaef82bac1a45bf235309a8cfb688c0c1211a08fe26e5e808609b2ea2dfbd0af98dce934aa57e659d78c71239f9cf6e3e5b0248eae03020dfb52ce99a91badd6146aed77e1a879d5f87a964b05c871cf291c5afe49759ae857fce382e5643dd687baea86776face56dd08c7ab062dbf68d43af4fbe3fb65912251e6a65655ca2a4f0c3bacd2da37dfe5ee3eb7cd959f56ac98a8c70785be7f08a2085fb7058f8836cd5540927db3c94393c9c67c0cf750c982788b41bfcd19b281ede811762d560de5b96f353647eb81c3fe572f1b819749727ca56cccc621b35cddbbc99989357d7fd6f5c3ebe20f3bffff6c990a3549499a8a5b31b1bba9b98ede4565ba3e7373ad85c1cbb18c29dd1b39cafbc8b96dfea6a1478ea6b939eff130f9a98e02a56cad1025b097c50c37b8d38e31871e69ecd60e02827796efc8b465b4baf8cd9a9dc04add8a18c98cee625e8eb82a798dd9f95586ea39e4c3bd52bb2061322947424eaa78211b9295e8eaf833d54ee8fbb633772f3f815ede5cad63e64ecf3a280c012bd05d4c855bf70909cb9d58a7a5cf5c88188084289fefca5b8946c082b192f7463172fc4e58e7807d1629834188c5c2d2e71d992dd4441ad2d9b9fa17f61a98ce106f26f5b3e668a2298adafc9e23829605e75be02ce82f3f39ce214696080e879dea08427d45990274799c5d852dc6e1d4d728ebd862899a9fe5e66137f769be684b587f01f0876e2763a9d478241ef15a807978b150444ad94e9ba007ffc0fcce70855e940aea38e9baa16c180296f5842acda8fb1458168a419172ceee5a85694e3a7b639b6137929abc9fe6c074c4fdc448178a4cc64d754956f3efb65a857687a30aa9bae4bd8cd9d59e473d95f98346e34500fc9f4daa931ea21553dfef45e6efa1b6ac6bbc1fb8ed7c440f404f3be0a7826e84c902b1bfb8f61d907331ea076ec028b1ce07a847b552c0391d769a13f614cca41f87a23204bdcaa6d429b0ac56a7878d363e5f58855f5fe9cf19d4bf9c327c67b21e7e3ee596de190301d719b33cb2186c1c861c0a44d26ad6ae9e6fa2612aa33606885cafa32353e75be06313e739caaabc5e90d316f7087049eb5eef70c103900000000000000000000000000000000000000000000060b14191e21", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 48, + "comment": "signature that takes 31 iteration(s)", + "msg": "5100000000000000000000000000000000000000000000000000000000000000", + "sig": "01eac4db3d5af8020d86fa01ffae47cf84bbedb7d6a54031ffc015be4d2648994182c9de061737191f16daa359c2a134606b3c2816848a84dd0c60246cf17453005d4c0a6256a6a31dd52c7b09d0baaf3791a22ead92d8f11ed0b7938a481e9c2c9e383e13af8fd06c3d85a50c865453453885dd62986e33aa42c6ae9b3b83402c6957aced4a8b673828baba64309835f0aef2e74f67d0cff227f71005cd43ccbed8cfca53033bde00152868ec79ae5c83f3b7b3fe4f954b0bfbd74c956c66e8fc31689b47aaa3e227428588f072be6579bc2829a36e143a4de51da03a35752bf6c1ffae7c6a5dbf951d634cdc81f7d661d29027aa5fb5aed7ec725af758ebd7075618905c05278bf913a3f126c374382558859c8bf375f8da8faeff00e59189678ba0eb29a5f557a23b51e1d560a982cc9b2a7134534086fc2e5b28dbb6ff1043b560fdfb4f4b9da4420b7f7d283a3dd8da2d6f9194c5d43e6cef26ad05fd58ead718e22feddb2816b455c50bdd5f776e8982f7c27ec7f38e07126b86e6105ceccd2357d1f459b8da652c6f79326f20aa658e15654c95f73417885f61fd1c2bfa9b7c50be0b113661b2b8afc9d942f16d1ab0bb0e3eab64126730a4b5d2fce426b4c911e0421898398bd18679ac1890a82829146c5b5d0ef7ee58003cba9eb5a8de86af08051a69d5b4d0ca70cb2a1623364e51af673f7f540463fd4260ee73e6b12d518e68cf40f1532165aab88e1bcbb9da41f385c2e601e511533af7b43e82cf67d47c72fb9ad3617f89017c825d3f0d7af95b69f55f73b3d699852201d70f4eca4a1ec59a59c1f4cefd1739cab4db6de0afcb15a8b87bec532646f3824f8de6fc716639bcb887a70b2468e0740f970720b1f571dbc5594e5106897c8f514c9307fe41d6e9f7f04e09c3c5478d55ea213d84d27745fe11a7514aaab5339661c8a1449a27d66ebdf1c1e7e95649bdba7a382df339a188494460b97174dd9bcea52c0bc69a812457475845426b1a26d9cda478fa600f25f09f8217c4dbc1a9d9a028a51259e9654d115f7889a6875952cc1e8162436de0360828d63c2decd077ba290b9c4992957189ec6385063a3b6cabce3581c5f909435b5f3eb373756b5d33c29f2abd530c03829fddaaefcd65eef2ff143d5f4a74ab8c6b862647ba6925550e4d0b7e16d357ddf2b30d79e931199d2eb0b771fdd15ca7ad3d5acb7808e550353b678c4f98a70cf2af0f5d9ceafdf70d736aa7fd755fef92dbebec9e9e78471775a8a7953cca04c021518be6b3ec8af2e65986359f0956d2745f6b4a5e0d3c7bd7dc3865be5b8da9ffb0cf77dd1a31a9624da0b8c9f9b385bec629efc9dff5a782ed90fc7c595adc65c46e4e3ccb155bafc102b861a8be3e01bb26811fd7575ed3cb98593a40e30bccefa56c648a0b17b6de9b7e67163f106a861c90ff9568eeb3c807db49eaaa5a2be38ef546afb69dafc42a1eb7a7b9aac9e5c9e081852773de237522327fac04f76a64883c9cd158099f223d901153be517f58dc82423b0b0aa9a6848b13b2e07d887abb96e083943c0f619448a90932abb31b276c65454c0dc65dbb014ea2cd0be91c855dff43b0637ad99e5c45f4450bcd2f968727e59ff86b50bdcb2c30ae347fa4bb8e4e35fed1fb33ef825b09d01ba2b736d080a6eb66dad7ebed7a353fdd1f821fe8f3113b820cdae08e04b1d031f3cab521b6b6e2b371d67acb911e63008ffcd206936d76e0de45b056617fce9a0ae0932d6f1c815ece53a2071d7827ff2db130e0b249a0a7b52a0cbf92d2d67062945c0dd2b12d3e2ceb302d2e33b711798082355e7839e4ce9173d78645991ddcc1ddfcbc566e24b79628f917d8b75a62721cf878f77a441298f306b99207dbef11f5ffb39a651a48cdbef63c539a63c8ada3bc269bccfe392802ab4c0acc4abcbb10022a57ae7db6aab779264d5de066d74939e1ea03b815fa14130b94fb3a633bf300ad00b5ff8cb13d896c1269f6c5a587ab4bcc4641961ec507a900e9609537aae477b6d64181c28d3f3fe44c6b07bc50407e7d77105633e994846e7d009784a3c7a2df07933f69447838dcc8a531c9075c80d34b9c13a0a5c6412da213f3a845c1e2bc38b0a99c0d10cc4ebac342c137fab6458dad3ce12ae18d074fcd91b6772804d8c80c1300d14b6f383a0768311e02d355db6da654715a523f8776e1bf03b51d256e8eebfaf9fb926bda55fb38d25410429158b2ef6e789f633d6dfab82483668594fd95652812e7e80fec788df5b3f3e4f1246c4c70f7c33ebad179da0e9e9485c0a1c070ca35cc0daf43c4513fd2c6062273a54d3c779d876e251b6a064252541744840387695d4757e9b4d6d7c600cd635f8d2ed5a76eda12f771d6164731f517599933471e34a9bfdc8b3e3361bcc2a6afa4af277583a7125b7e4cb9bb24ebd9edbed2558533647f32f6590c396dbbad1b7046129a86e3720347505a9efeb23459378a1a8b54b4e7960355eba1cb84f2e761ae08bfdcc52efd9e4fa3f579365a4519eac13f0bbf872c02ac7401ac2600feebc218f930f7dca793647a7f7940d29884ed6a7fbcb41633552ff7de28d4adb21fff2334cdcffc33db0d3a5cd42fa921d3387f20b87ea59d6871a3eb24c71b8296e3be9ed57e3cbb69d62b1fcf19db8f07732b0d6aec22f29719214d27132e1303af5ad5ee328e75b7b347052b2aeb4a98322e703ead7fbb27d7159bc128cddb06944115766d944647f644c8ecf45c71be4641536a40661e473f7aa9c70d2b61b61cce8f2e35b3e6e793ea1d103677c5e76ef2db62353ab1931de31bbe67fc2feb6e817d3e534c5f29a9aef5ac4969a532f9d01ff9e434ed135bf26c031a3be3cfb990b55700954a0d280161ced882aaf181b0a43e92b7eaa986598853150c102f70b231df612bf1ac58542afcc0e003f4da9c3bb86a2966e8746ce1f4a75c5984dfa45b6d84e1ef9dba9daecb9214bc14ab7d44c0b7fbee350c4c74b51025d207545ffc6c53c05a8c1e5919994f46f596cb990f11f33bfd70c3c8452eee7eac2e4413c6faea3393cef45e259baf7e3405cb6f694dc28a905932fec271a81f8bff02aeb47dab2575317bc3ad0dad3a83ce81efcec0d6c319380004cf03b0267f775888127507e396ab6b6e3ab20c4eec1b507da32f5314d5cbf8790c3ae3171d76a8e3833ed9a236621b9c5e91bdd77d7a2f06ef59607affc2afaadf55be88f6c8d742b6f479e38fdaa0fa130cc6f835a67abec845c137f3a644b0e96179dce4eb10504e30ec07869d04250311db87a72773de260c63f90e31cd3f059c4bd56cff67b3dd4f45ef41687342669cff023a4241a576b9d57fc74eb6376c90300e6418a730398a8ea54d759260dcf1b19d6bc59157159fe1af193ea02f58da51559f5e1eff3c4222f45ca00eca2dc9b2d7afbdb600fd97ce14ac231701c4efde8ed052c68fc763be4fb52019b9e6b6ea7ab85535e94425513e18423b2f7e0905e0535c7ddcf2f4afbc1b8ece7e7361d3efd3a412a090ab999a2010eca0a2664d121e7975688778fc2401a6076254bdd0995cb21b7c82d94d51f0af2a4d89eaa35b5259a134c0856f791db0a632fa6f9bdb3f902f4ece52b1b323b1f14509c1ceeba25756f43aacbd878e7a733f98e6b6e62221cc6799ecb2556f5a6bcf8f92ef8cfb44f45b89c6dd6525577e6adce1dd49438e90f12a880b0f85417e35a5369adb315d9a2bf2f2a098848998eddb6c0f5a8cdd3d331e0e8ea3ac796f7031cbebea2952974fc0038e511d01ef56a8af181ef281bf2380151898dbfcc33081b5976dd5fa93a89140f51def740a69519846c7ef29cce77d578a54da19ccd259d7a2f255ac0371468ec0dbdadb228f3c0a418b86bfa44827d232c162cb0c3c48ecca98331d4f2f40b6a66ec54b14585f112e5003a596645ce7f2b2d73e988b39e8eb2b12039a2cac4d78325d8a06f8500e7ce1898d3cce1de236518f88006ed12eeb65ea7b5244f446f3f21febd9e7ce0c5670d17d88cc618981a679f415fc25b82695b622d6cc49daf2cdbe96fc6f44c04367ffef73b071a5a481cf1edc9c96d6b4e44f5591c7c26b28a6f80d630c2503451ff6f051963eed1774b62772aecb4c0c5a54dde4dce004fc29473a71b5588db929141e28a9adfafc1f2243f5c984bd1ebdf187b5137c07a2bce7bbbbe72d9c847858668b7eb044ae04fadf395499f09dcf9937d4ad40d5914179bae8e337d325cd65661d16f7483a68257036a129047c59bae8f14a053c177e54c57f069c7d50e1fc87186d67caee5bf7e9e58d7eb4134e60f4337779f80bdd171faf8380e87b9928d360d600e7671d227a0ba10c5ee01507b951a9793956e247d09f50b2becd9ebe1a9be34ef7eb5868a1e5f7b9600048947fd8607a6fed0a5aedac7d2925674d74b16f462a360965e6ef756e442ee17d1c80114c1bb93cfcea183964032a14d0c2bfac98ec0678b1c2a90dd130fa9eafa717886bbf0e095fc29214983d2131e69fc9e63182867d4d59cff725c909090f5f000c12bb0aec5ef663ddb0da69a12809e89590ada3b19b4e2262e9ad04797d7f8e9ea4b13e5adffe212834464d50a4c64ba2afd1e0e8044b5f6f85be14426d6f87bcc5cf000000000000000000000000000000080c141a2028", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 49, + "comment": "signature that takes 32 iteration(s)", + "msg": "8b0d000000000000000000000000000000000000000000000000000000000000", + "sig": "f8dd8fbbc21eba0d0353de9a97de9336945958e82af93c8cc5061b00a1247283888887c38034709d4c56288de3175f1537c41d2dd3f0045cc0613c5e0408aa522170be1ce10a79cbcb18b7e4c2120b15b6cc47909af9d3b12e160d8000b2dcbafbe4a587757c07cdd1cde88466b31d8b425455964a1b3399a4bf222ca4f031a4e5be6c9f921b078ea61f063edef5c841f7788992b231252b74261f764548f930df5ed83736e50f97f8bed8b52a227561242b158bba244c29ebd49c44c61effcdde24ad5f2da561eb7a47071192299a0fd4afc27937d9e653150d31e7c13f66819f09d317e894abbd0a2d61b820552a8e816f3ba8e20695b187eadfc86b0445fcea20b9b2250ec38c368fef7f7db9c8ec0816c07835e8e61809f8324a5f3b5d7b3ea992efcac693cc4db79d45884211dd4777c4e9c5ebe688ea263020300d100115692a7c5704ba393dc218a89d568a2ab5744bf37f294bf2a6c522e8117ef58fc447dbf5478850f2030c14c7eb459e39787a30e585c047c33677d03cae36bfbf8866171cd7d26e4d31dba33f956c51b12b26461aef886fd82232a012cfe047cda97ed3eb47c8130b9dcb4fcb12979be1e067a5166c3bb1647b05bad6c582e015c569b490956e109cb642e5eae01668cd1975cb9c657b7d527710a10f0ed595afab34fa805b740dfdc6310c003a556daf244d0eaa42dacbc258a4978a231b9446eb01cad717f0ae6944e6daea99b9f08c0977cf7bfd188a1c997690979e8ff8d987d8a0417eaf643cde62406795620e5462875e77512f0229d2b12d3fbd39e4e34e007ede5c76e434aea73f6bf104c62a7a2e7276402455d4f0e179f14e6b17b90f4ca5a4ed34d8d4552ce4654f409396e3a3532bf52bbe93f0533260640a76bd64894000a27bdacb6d243757e464676e57e4d0f629c3d10085215651d94d75225500b1ac7f5921f86abc504443486b26c401a5917c855e0bfe548ec1d1543488a8f9560c387d14a41274286019449655935795ae37fca42f6428649006a873dd71d292b8486e12b6ec3dcb8e440e9adc2651f50756f44bd5cad087779af008f928962dbbc65aeb1b0ac916f32802eb41947821b3783874f94ffd66a066872a0f6bdee21766baa0e9d2f246b9c48fd65079efe3f120fe81d8bffbf36f07fa425ff4c1717d759a972a2b4e4121aeef340bde147ee50b9152edcfaf191d4bd83d4c089a80d8ee1f9ff56c32d22ebd176ecd1ad78bba09e575f0f8c6eb7a9b5b19d335c9b6e7543b1131130b40f928af9a20d3cd399cf5f221093459acbd060e9251cb80e52dab9ed531ddb5f9281616314d17ac99a51f492c7176cef2c49427ed767c8ddd6175fd92213fc3e6a99fc598d731ca01077d8537c724dfaffacb565548e0caa34755650294031f98ec246139f58e889419d0b75a4c319219e3b49927f72b3c19cd86f5f25fd58641a83c5583076b0b4f360999c6465e31b38e1e7e931ae182fa59fd37e3506e5d187dfba45d54caefc1c9991ed5426334acfc818a07e3bee7f8dcf07ce81f824299a84a45007b42d318c12bb5792f45a02ee011506619156c05b3400d33731584c72dbd49c3e6b09ca9c1aa51c0cc6481bf6325b1cb77dff6a7f6940ca80b974e12013e18e71971120a68322ec4be3122a5f8bdcd3c7a7e7a385cac585ad473c490873ce997e8cf52f8ff8af9c2ef23e4404c9b22a5d0b806a063ba2112382f0a11b2d805a6aa8da8f2aca0f976a9d0f1a0a251d4fb0c5194675c369a025087ef70adbede6191be31e918061ac2304c1d2241482fd9c150f09e4357423f72f533913e34a975f71b69b3ce42bf52a38e35949ca10d623333498304ca2e8ef9641c5b283b1d1ccfd5345a279f90e87101543632c2d3f61f3bca81362620439b8d4f1c131a34cc2c772c0ae04518416539c7bba5e072e15f081ddd9950dc2b222d3814b126f8cbfb6feca845b128d4d09a53717c944791dd37ed615a22363c4f2a2e8f842d4a3514e841865112f74d1aba767c92c1f9d378fece9375249d2be01c95bf6a395231230f935b02955f94c11495e9ca79c5389679ad71159057e7367e6baeda9eed697767ece1072df2cc25ac5190fe92bef5d7d56c135a4fd2741ee76481f72d522473e5f5b6a6db1fa1ff9ccc07cdefacc6eb9fc533279d56fe3b5bf046a1ecbd993554e38a8ac94fb09b05fefa4fcebd89ab8bafaa76fcc16122f3a7bf4b97eb76fc6b6fe315c141fc5a1f63308c584c9b895ee0bdcfa139eaea016fa292eeadaa1d2dbd72c1247fb409041a27bd74a4091fb9fa6244b4f8d637767b6456fd87b8bcef882696a83e91554af325da9b481521660e98c3e3d553dab5984770a5e22539d32d6cedcd786dfd917524e7564196992522fc3cdd355affb285de717355519c34ebf5209c176ac9534bd6faa23bacb2fe87ba34fc92746e2f82a2bbb70551682c748a522695ed6930c6423fc5d222a3856a5b3d106c0b096e496327ffec72d26ec67986686bc6e8f27b12a3460350e6772ad320358578c8949d14808067973f5baae5257d2452a4c9fc6249fc4fc13ab9568e6884a13f9d6ec6e5828d62c43ab3ad819664fb66e5758849afd25beca344b92d5f24a567b9323915b9b7803ce76baafbee01dec333eb63b236f64446501cdaf265145ae6e1a1ccfbc77c04dec25680bcedea1feb79862d4b02ebcea0fc58b90909d75fd33f6fa940dd75dbc3a99e1ea62a47e6049bf6d16e913d98f1ae7af115a1d19d598016d870c51d0c1456b4ac4c500020d4eda7840bde8d1216150d2ca7915877023339196ef35325aa05f1360f2e8e00b81177af4f142f67efb126367234ba0f62271b28bd65539c5d7642983791f61074e98bfec5e6c15e59a346d26cdfc699365d711e65e13e4e2b2608dc79f4908abcf5934f8efbc78195b74a1e766fd9cf2f5ee89c8153655c6a7744768fcc978fb36d1860c2167b85c89f3a1947b2fce55a4e14a8c3189580efc1f52e0cd768ff0b579509e003de240bc1f6ac0cac3f0f8448c586f737244a4886d01f08a36510156982ed74852b52e3126bc52ff96b421a0a9c3d1d6b136f1104b62c4d691f645ddaf2a6a1e02f91ab23febe5189781bc266b66b963d20a25070f0c354566fa16afeef5df705148bd73dc4d67bad8464100facf6a073c4647e9355a7224922590ba3bf1e3520658b675ccb0520c50c5d2e156014961ce4b3571cd0b7d5a40a23945b0a336dea45c5498fd859cdd942a89c180134e5e324647bebd50131a964a91ce1483347f2bffb60bdd4c6669b19f5d019400e4cd5373ceb4c612dea80f0b0abd4ee6a9a9b849051f600808c018972064c0ef98998d56d7df50ed36598606e7d10a4c16f3a376bca8b6006bf7e1da576064b0c37555d902c1bccfc96d82f37f7cfb5cc15856c3b456bc1e25d02ec4ce469123c4e80d3e8f763e0345e7363d97d7f643287cdaaacadb79f815f8c857dad8baad445b91388bcc43c1c0e9a22b993bd48ebe1d2d80bdb990440e0eeee61c6122cb628c694e626ac74597d2e46149eaaaf29f97226e06a3bc78fe27ce64f7373f282f9f8ffd546fd4f42eb4efa91483111e88e39f9b05013bd1d40ac2b9728acce4f6feea748bbe79191569411055dbbe998a39cfa496bc9f7f6503ab9ca01be10127fee2bf4ffb420962ecee559870ba7ba0e0e70618838309dc8d61e7abedf50fbf9445755ccc5a3330f9baa15e52c05a91cecb76d5b4e864be1cb1db91c37a6646c6bab89fb5f0127cb551600ff910e6f2936b44890909d1dd34d4d67eddfc0b7acc5b2a7ea1308a90c02bc24aed97c651ee41bd77639777d66e4161178b0bb93d09ad01868029556f686bff810dee136e4235d6e32cc160af3ce0a7f1f648c6169d3b7df5fa5011c16ff21a6f5739260f7cd319faa66b7286b91da26853f556cb4deda3dd34d132851b45e4a811637279cf937b8c5f9e71b72cbd229118e68f5c714e16c9025d65df8194e561f2b4b347a966091507a0705e142f88bca45b16a00fa9e9444f1f1fea22ee0109273b7f514f66f3d05b7f8577f21732e98ff8558de75e0dd335b543ba8cac44e1c58b9bbd2bc5ccc554035780a7a86ad5ac9e5ad2887df3df50e1d51f2041741c93c35f21646afdfb12646e2916762fb2a82158e5817e6102dba4b9377c108a55a35f0e1a67e606c1ec12684b0a9435f386a0c176320ea6443f6370edd0d83076287c97dbe7828e470b876fcc25fe86b58f50804a2644121ac3ab19add97de8806cf40bd1eaaaf36f03ef289dfe74c318d0692cce63ce7958bc2f821338aa0b0c433b825825b401287494319ab10897aa49dde720022128e18eb4f7a42b7eecc3a6f13dcd536bc307183e0d0104c037daf4ad2302a057da4a0e8967cd9a04f133a7f2cdb1cc838c024d7056eaaaedb66963adf559f347970a74c29ac62410ee9d36840f37c7fa1be5b118fa1b95e3459f48cdae7ac78d03a62a732a99fed3485d9caf7943b6a2c9a94ff4c7a050cec9160646827a874b10e891fc82de2edc0d9db0e8a9e1fd16ef2a9d0c95c6b0b6feb390e6bb6b733959718953a494b899c9eaeb7ea93f616178fa8bee9f6f749525d6c969dbde1f7f8686b7a9fc4f6102f658600000000000000000000000000000000090b131d2327", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 50, + "comment": "signature that takes 34 iteration(s)", + "msg": "6014000000000000000000000000000000000000000000000000000000000000", + "sig": "99893d22371304a26a3db4219be60f59e72fae2e331af713086816e2cb99878730191e2c9b66dfd0aee2fed1f1ee019d583fcaada86dce30ffbfab7492fe8caa777a0b67ebe537911afcf39315334952f6f03e9edb15ba5571b99c2b61cdeeb166fa36b07cfbe9bbc7186eed33064e3c8ae36e9afa0028fd6d5c6e06dee48783ffb7fa79c60fb8528cd5f9f2c7913769fd9aa23fc6e13e4acf9a9b1df92c986ffa594ac2e2986880e62446bae4efcccc2211479e7f63efff126e430f7b3e9284a802445bce8a82cce56255b960559b667075db347a4ae9d45beacb94e205429afaeb1823e8b9f160892398319d74f4ec57f75efdea595dae514e08fb0fa22445806fabec1dfcd05d80ff2834ffb81d462e4335564e7e642651d0c7423173a862e0c82a690e7269a62fb4684e3a3e3c9c0a99ea32525ece6b157972e52846ce4f92b12a5ac7733c1963f99537ffdfcc3e3254b87b1f297fd69afceb4ea5c58fd3dc389c6e0eb5c81954bcb8e14564f1627b59fc768797420d663ea275802cd1ecc606c57ce04903fc3644a8db03c26837b594e48346328adcffe0b8e50518997b62b5d25bed7b2180672dc403411320dfa3867777544555ea0aff222d159c3e8c2a0670533afad440238f326445fb48ace5e680e15b85a76a7f6f06d9ea1513a6f46dc6a43d85ac0ab1eb58bfa480647e34fec219dbe0e760d0843162d886c082e986a35ae4584f00cced01fd93026d29ce92d7f9f0a47ee337a7d395888c0e7bf87520bccdaf4d71208fa03065adbd6f9cd59a71b9f2a34227ca0b7d8cd4468fa8ad4dab11777cd6c4220ec64b9bebb3fc36b8867700b79ab1f5bf39218f9e596e292c6ce77fa06a2a8b760f6149691861a4a42e8a93dbdf490bc307f548a760d45c1b469b2c20d2187685f5fd5189afe2fd4a84e88119b732c5d384d54610307f0339913cf766acc2e7b697308d91669371cfe1b2ef4f5e6fe4b80f0451d0a363cd2b3a6331ecb5f7027bc9d013ffb85347797a2e47d02ec6146a8c2c8ad7ede90fc0f44c93cb41f0fd22c65a431037fd02e51d5908fa1b3537a3d925622b04a2218bbf052de349d15999e7aa731d0596e2cac1014523aca43cc5a26b2e3945f06bdc12f854d485d7d83fefa433f800559e192cc357996dd99604304fba475289435ec4e57cda06442a3baeae4c90ac3457047a25377777d13e4c8d367d0e2fae1b2ca117b952bb91ad9aef010c911d79fb4b8ebfa6d3b3d083cb5210a24d2de2360b75171b42908e9a698fd680da715c8ce151903f945a1e226ec2510410846fb36537411ec9d11e06cebf69265860775dfb96e7804f496ea0a86daaa7d7cfed679b895a856b097aa27ce79e056757b2666d6acb3dcbb33b184b85785d025aed348a400fd29747aa7dc33366336fae0fa371fa27a24d75b36fff6ad373a58c41387a5218054af533f7e78b288d02c3c4a01954ee56d5ac0009e8429499079d4313722cbfe79af1fe6601934f6301e2d2c958ad5afa6af2cd7a2cce652032b9d4e266625322980740a0f70035b4182d69b03d7f5e85de2499658cb7ca7def9d67156f148c314f5aa943d620f5b925b016942b97e73ceb690205954511974161550522a17b48ad64e49a450e269cbcbf1ce27d8bdadc137976aaa11632fcbbe0e6af086f3dfc302ace4eee7b2dd48511bc010c30bb0b8fa4108cc38242769daeff64663b3c90793b12dc689007b8491f42c32f16ec884ff660fb9c300b39e33ca52dde1365b91828ea9b5f52765112c4622ca10f14021ba33e606e4247182775c5a045e995375f96623e046693f4436b90060958d7ad70b91414fd53a9ffa06d6f589bba6f2fa2aef973ce1728efd15b307dd8883cbccd53483bde7cb6c36e84b25401f9c77bee2bbb92a65a53c9522d05331d35c05fec36f11f3ad2f9a4c11c7daaecd0143ae9d4839be50de35951b639fee01126ba7b3225e90a4f31fee99e29d21f58c36f8e88890a5e835abedb635fbab82ca66991fef7550fe1ce7728fe5d5d096182905e534ef4497217c3b6e494883941bd6c12395842837ea302502c31d35d33ccb0cc78a57720598bb37121b3ac734a707ffd7a3cdf9cec64b96762518d944c370c10ea2be59a691318b822bc06de27d7f67ff726a709ed5eaefd576b443a269e73ef4735a9af5671824fc5e9e589910f405d42f9a4759b31128fd49f3becc42e4a0e083b8bb618f57df5e7f9ee64f6107c67dfaec01546922cf3b0b90d88f5315976ea17378b22b58acccefe558be949a296d0756c882381152aecbd96e88a3ff4683ab7d678d572917321858e3ca66b9b87783c40341b35a5cdb04b1b384880c4df13623017d7b3f6b089941e96aec8f878ccea7d4eef9a95cdd9b3cc8758c2a9679d788989d18067bfe806f467c4a34cead74c5aec3703d86f575a9f4159f0ffd1bb05458159571e559da812b2033bbde0238c36baa6c8c0d979f5f5f231b5f94bc67b0fa129fe104c8b76592a5355a00a6472ccb95d4ef8d07e895d103502d816b5501f5b259b86925fffdbe30029bf8c002dee7597defbec850cc18a0accbd7d08e30b6fd2f9f3d2e7c9d6cb77a97690f15ed0bc6ed158b0a27a18fe7596e308bbbb01bb1411ba31d7f2b49cf7e6af5ad1837deca57e285c9084525f859d72e1381fb39c6525d46976ac5ef54b541e4b36cf50b92977e1170b0b04c6222e213db34b8a48d111627b905ce65821a73482cf439709851a26fbb82b381b84e076d807cc35de298aa3ff38eae9c9eebb52d339f62b6de3cf7bf934cf1f206ae4d9cbc6c2e5cf403732eda34df16a6e04b3a89edc0ef3c7de55e7946909b6c5acd1c51a5e505c62e0df81b0dbf94381b657daca9647b89ce5e75336c735382750c90ed21f611b2607ee7d4bbd97daf6b40572619a335d9344e459faf5672df500a9541e8113363bd4ab65724f6d086860630aba2b858ca21e3d491215d2e52d1fdd9aaf9b22e97b02d0b3cc653485929d6a7585a9701a45704b6ba175d916dc7dce0a75918f8c8db61528fb39ac509928a2a8498c07083136d14e28e1094db7cfd4c5cb401d55fcc4089c1fb1c18216ac7c007119858f2761f81ae717a5be42202b2064bd1fe51227ab82c30bb6378d3c9d514639278c25de38c99e70b8aeeeceecaa23e672975b8b9efb50f4b6e946b4fa00cb2a88f48f1bfc33909e93aa87fc056e67f7f81af4800178ce77e752e80a649a667d389cb03b13cbec353ace08674fb6c612b831500d01690e254779f23ec655804d53b10264b542a28897e3e0f041fc94aff3b3ab22b5e5ab3f4cf6551ad064a9c96fa2232fd9d1a2676e40358f49e38072a62cd223e6f00909cfde7c549b340e4a01ed71b866e2a6f898b5e61040d2e93904e4bafd5e5e34deb37481c50cda70e32d1a60f7b4adf786c7471e0f59e1b0eaaa793329ae660365530869eea6e5e770c11fa56861d69602deb0cb9c4f5181d010c43a36b118d481735e77a1b0170c206865f90f2fb5309593e2dc0dcf49488798b7618b11bd218f256335250012337f245ef45ad4cb615216f01ac27938095490a18df687db9b5002daf85aaa3ce939053cb5e84080d4f689ba7965e2034da99ea05d50b96a552816d938100f22cb2abf8fdcfb80d73c78c77fab1d1fa81ffc4e3ec48a116065b6e313154ea2281e5a4d6a98df5fe439df530de835fe169533b5a1f06faf13534e8e40e5f30c5dfa2f522f42682cdb1bde0fed6f23eece1c2707492f8b002442860609a24f2f4580a2138055c4311ba248e4d5adbd442972c54d41527de59dc9070adf8a299583ea0dde372303911fc97e94eefda2d4a05f30d225a7e506656a38529a45a8c3029d5235071f78e1f487b38cf6df4a6339ba55e99eb25754b18d9ca0ab26b3191277c9502a037254b742659dc410419c1c07e600533307d93f0b7e64262cf1c39d4eb4371e6af881052359f2239f7cd8824672d24b93a1b8cb9a8d8fd7081e24e29b4e48f813cc8c5e8d1a1fb335a76cece90a8032e06ff7669c28f5194d5ed88ed671c6b3bc2a3f47770386df323b00f4b3ca0cba3afa5cfd1f0050cb12ef36bf402917d808b179fa9361f34bb7ab6eee3bc25779528ac770ff5bb6de8af65891d3cc58a9424a2d178365e5ffc04ba513e98586d3b3e0ac5b5449dcdc7fc2c20ea95c12d2d8f6e1ce5a6594ed6090be82d6335e9fa9c8a7b147747c1726c302930de4b17baa609a4121cd29f3424c9831958f885c6dfc9c7496ed3c48e41a3c477711f67a7058c1f1be29aabae0a28f4cbf566dc33741dfb24ed4f434c831be69e23cec724b2838d6201aa8609c6c173015e01c821edaccca1780fbe149900f6ed2e5b855e8a6f7bddc2b28628942f3bff63a13f89b8cc26c3c19603a899812a7953c95d1446bf3023c691eb369062b5056fff2b6660b8a0ec98d8a4504af94dc24ff1ffb10537a89dd25b8a3c35007c1396d9fad096246832a7657984de550e36e868169ee27dd6632ee57a80f612c082c80d2cbecce6e2c0b7f7b4315f24151c20a80c4367fb53c308184463faa5591d276411ad6176e8436253d5491c3c90e0f2442474f5b758a9ae2e6f24c6fa610396089adbcf0143f58a8a9f6141c1d394f808da5bdc2e50000000000000000000613161d232e", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 51, + "comment": "signature that takes 39 iteration(s)", + "msg": "7515000000000000000000000000000000000000000000000000000000000000", + "sig": "c3304e029959e6b7ba4e9ef5bfec78bb36d08a2becbc4fe162d90926f2cfbeeb79eed7b76501a926d95293e35d3331c30c399330fac466a6c8499289b4633db15de3ff90c04ed672a4b913c96bb3d86c77dcd8c47391927a37e95ad26a6e8f04a87e384671f1821ee21171e3505dbd359b603521a216c467019508b591eb7e3e00b192af3e569add7e67f827f0fe056c53a23fcdb3d927e2f1fb7b3c3e360b634ecdc124f34a52db96dc3a3ac9238355d65f8a6f6650ae0ed2447009a3f940d37ba4c269045e98b26fcefb7039fc71a05f2cca90d5a9616f37427997f299a1e4dd9ab8bd9c1eb6433a3fe3a58662f37cbcfb4537adfe9c330b256991c55af4035edac7b298f8cfa821a0f21d4dc10023c12bafd86bb61a65bd9f7fee332d372cf227a67c8edeefaab8bb1ecf58740cf9c5062db241458403a344852b201298bcc816b0197ee92eb4489cb60ca20b1b6182c492995329aad2c3a5ebb1a003ba0d2d4674c019f974a329ae0328a44bba4b959509780016b71f89cc9fc48b30b11af86a6bbef213c1182729bb9e1c78372c5b85b898bda52a9260a9aec8c616650e1817b593cd0b82433cf2c4ab09baf9756af271abf4305e976fa97cf15749a316dcc24eb3087c447cbf975be71f29bef82ade63c40affed1109acc66d5e2126268a8c0490dbe3073e8d6e1d9427159b3e62122686538fde5b6712850fb89afaf222b9ee881026f21e86fa4209137427fb53bd70fbe58bf1b3e1347c0996fa4f21941bc691d981880d1ea39ea26bf6f2dca7e034475df70b88bf94318df9678a1fd0f1686950ed80cca56b7f511a68c0a5b374e5bff80e0084eb7e356d26bca683826c8a1c5c494a8aefdf814858cb055711cdce3ee41a000b6aee2d5d17c7d58c99ea1a11b7f7ac20ce4663b5e57e95ee72f8114d8e842df0537ef08d5598ea34be1fed1c8991b9a3a1481286402076db898987213b3dd8735d180cfeb0530e9a4c469eb8ecd049c5f0d8ca6b38ab37ef0f1a201bed54c3e5727d7360adecccd8522bb80e74b2228c0e538a36481e43f24a9dbbc7b06420983f9058254870d0ce6fad673a62e168165467b3c899896315fe62ddcb5cc5e82942d27ac0d6475977b4f37f765f85c2e7626f7f348260152efbe49f9521b88d41164edcd41e004c7c101ac5467d59947af5cb4f080fc528dc209d900e920a85262a2ee830d33c8e7af3a444850bb20e5accfe3513215ee9eed19d7b404dc0807414cd59b7365cf95a16fa1391d3025176738b40d0465063c05c572dae80fa1ae804dd6ea3ba13716e89e8984e247389d47ca043a761c0883dc68af4ec8d9cb01e8d2ecea6fce936c7c28a7dbd1f351be8e0b9fce5aca185cc9777aa08cff21f5008b68b7aadd983a856e5d9485c81bf86f08f7ea35acf7c0afda1d44d8ec411110ad4814cb0dfd86661c542c560cdf911c6829688f9f305b60b3de3bc22eedbd7836cf79abda8639ffe93f203e799b07b02297aab3031adddaf06c205286c247e44453b7d983323ee1f397ef8e6023fb7faf4bf511ab83ecc976a5dc8b6ab1a6d798cd6e4cc2223694ef74e439c935e27e23de4cacd6869b70ebce81787df8e1063d9a0082aa48461f0d2b3f5fcac025a1f6b1023e9f13ddf79696e601e4f26d288720986ad9ea3598b0651e12769689b6171f16ab65ec27af2d041b09ab1f19884e2c5866650ec1f4b7033090f564e2b1e660ecb1b3853e12247ec964b469c9222fe851be10cddc3b5e1d17b63019e696ba002fede98d7baeaa5d14360ea01515d49065cc0037f67924ec5abd5d0fc2f8d70f9c92b4c02dae4e298dadc923123a1234fb7f2d6b16e745d01c69b8d05cfa49980d44069550efb4ae4813a91aaba49779bf99d00cd1aabc03b023ddea283b62437a9eb984956611f5553cba5a1f0a47f6287129551951820af360a536de32a462b85eabadbff05b062bc73ecba0a5259aacad8a0d014a6a741e44e8654ab51eeb6ed295ab7d2b533db65309d393be413befefe0e3905ea28cd62d0d1c9a4503173f52079ae739227d6b1038680333c71a36aeb46e7fe63cc565da2b5ea862a40533a8708b6caabe549aacb9b03b95384f5cd1ba19a8e05930bc4be52e81ed37f6fdb0aaa683f16b8180439f7f23b8c9c2fc63806ca7317a533cae23c626d18c1858442baabd3766f29f0864330d6db45ce1b11fe5a647d7d36d305e3a1c2b1edbd69eef733287037970788f5b39300619986a34b25cbac2f715a144b77cf87b15d2869672cd14997d474d3997de266a7972b6e097bcd0557c8c73843bcaec6779f1574272370a0cc97c6159cdc35c55af1fca49c04b1f0a4081d35efcfa430d167072e2103bf1b74017e888e289305fe9b60df191243621fead191bad5bf198c3cfbdc8e101e1f6295f0f68e99878bf5b52e52e32d521d24909f7c6f2ca546ea88ae037f28f4447cd1e15dbb3affddcc64b5fb050467e8ac5fd5ddfe5225f82a29c74333ec6f3ee7bc7266b899a5609d0dc7a71b668d0f6ee47cd47eb1cfae4e3435be1288e5ab9ca9bd92a447fc8b7a7583435cc04f668ed4bbbc9da9d34d91e92ff222ab616ab26956dabbaa5366e3dab272acf75851803c183b165023d1761f017e0a1a8e3e99e29ee8cf50361a03a5146ae92eb29fad6bd6f457b54fcf48115f91fb2a0760c9b2f8af77c622b18c0aba4714dc37aca5a269621396105f8c4975c3ab7c0f80aa90f4510109ae250600c2b1a6f3274a6eee451e19fbce34f371f8dff7ffec59238f87436253ba145dd163af8edd0c8f8e97dd4a2e93f11a300f81b7d3eb1c86f6e41445901ab8efae10c2396598060992bab0fc2aef0a1d0dbecf33c387b77369d8edfce5475131465c5d014d871600e45a414ec63425cf44432e67d86282577355910fe2b3f1bd24d52289623e4a97f59980ad7dbbad95fb803627978e01e9d7061fdbbf00608f802690ac593442e989948b267601bc218f04ea3ea35b20dc910738818078295b26d1dac60382266a64dbd1c6f7e8de50bdb11e6f7da99fe22c231da3dc52139df05b15e4ae12c274fb2aa2fa4f00236a732124eccf699d9df4e88be06e2b1fa57151f361bc3f899dd0bdb35dc36e8eddbf6b10b6edbabdfefe968e362a1ee44c40784fbabe2bf3101a44756c0aaaf45a87705ac5290f1fadfcf8a8d8544014587a88aac922882fef8556db2d587ce3f9c6a48cbcffeb682f3fdd8b9e6eaf45e0251964d0355c67882942cd6f9d0fa95c97ad53b401bf348630d484fa4a38a3cd647c80ba4ff99b782caf1a132024b3613930c8002a0372af979ca367b47d0ce33821abfd12990d1adbc124b08de1c535e5039d87cdda29433593dd6697a4d33c812d96a8b502b2321bc5e045b0e91567e8e42e97be10cde96817c4c17f0dd255fea6a4de09b359d68e535599c71208ffc429a4507d32b8d5427abcf4e1069dcd8fbd89fc8c97b993b0af1db772a5620d01c81fb01f900b2774dbdeb288a1541a614bd5e0c1d04f0245258dad5f4546f319ad695fc0b9cd08b74922b648541c0457947e52a794bffc640572130c0262369c16aee59b5408023ad015f747a8251f667b84885563114dcc1cba1f2bc772f24ea86e6a6aa38b2af886d81a9cdd5ce3422ff238e6ac6f07c8b96b6ee9645be431baaee72969922f2193c085ef04dce50d6ba7054c5c2eec4e8ad6dcf8a95555a2dbb73020ec31a8e091b1ccc86267825be7c916248bde7cdf0cd7ef07c926b5cba9516a1a6f0b7224cfae79389957827a4c380e081716ac4aa27b2f81f4aa8426bfef404535e86eba668ff51f4c5b478b8dc3ab71a6349a8e3c2e28ecdbeb275eb07d671678179fc4f5002c83dbd8ca8bee9e04ce6abbe505398f58599481243552b3b54bfafca32abaeb05dd5df26f124b13a430e16e1eb41f20ac5981842ddc8d218ff65d69a7c5e4d2b34d130f0cc6a9ce4720ff52d2e4c3bb3abab6554bcb1938494b080cb164151d746182c27fa4015195f68f7a6ff536534537712ceaa98854f1be88fb902b1ee9388405b467baf960ad9a7115f61e71ec8666807f4521d5a436b7b4a2f6bf22711e253633d0b293775ef550b4d0fb084c36220067891ec7de5e16d0106bd10cc7c9ab8cfa46316c426ebda58ae11ba7d7e37396c2037f42664e09e4f95158a59e463900a55be6157288b3c87934f26278bba364014e3e74427eba15274cf832049da4b58d280bde1ff84a7dcd5593fc48f4661de021b1b727dfaf1783cd1b83ffeaeb1b53ddc34f51adb4697f48df2b7f0ac8df45e6e72a38a2030583877aa9871d282cdee2c88ccd162bbe1f90562403938d55acb8df04aabc1b3b45b98ea17fbb795b6156f8d0cd9dd02f887cb28ed04464fa2cc5560bfb9f0843eedfbbc2fe1fef61317c3b422b105fb07fc8a916818987920406db2d2d993ba3f56e51ddb7218813183d4ff202d6cdfc92f6e3acc2af6bdd3bc75d070ef1f2898a54aa5d467ce831f2af74e2075fe543b89e96fd546bb03a06d6bb7ece0670b391127bdbb41f96c0b1839da212d8bc3bb7ff6d9c22de0d4bf07650000078b0e40005527d848a92bb07a0f20e11316c72b8c6c7cbdb1348719607232db3d1fbfd214151575e7d87acb6dbe400000000000000000000000000070a14181f2a", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 52, + "comment": "signature that takes 40 iteration(s)", + "msg": "0b23000000000000000000000000000000000000000000000000000000000000", + "sig": "3d0f7f815df664c39fd42e0b8409b60187d3d7e0b32f7132eb739aa56184482a67d2834185bb705068f6b525676aff87445bfa3b53862b716ee41b95a565b5eeed7a7e07c873b22d48111a525d46e08338f877b5ac39a52b92437d378045acd64c52de02158015a57ca60754d5a0ac7ffad026d90b3c7ed8a2b05f4250842c7d6263ed1813c8ff92bebdf9a8a799beca22c1dcc19530cd3bc4e7c9b562a093987a0b663b0d75e6713cc512d7568dd84035b5e3a2cdb2d81f796ce832a8360939e3f642e0b605df54c5d521bf282902e593cf6fde287d4549a3a7b958b6cce8ee6095db422584df359fbb243c1025c4159cec357712224f66a74344acf0415198b91e66c0e6d765d2a203b33837a95deb4fcbac755c442d4fb7d56c819fe000d3b1928c97b18bcdee4af3a261804c317fb20e926dabd9c4a28decbd264d70a4a37c1e68473c16a34ae3b708f23c9b927451f9e6ceb565d5b3ec25408ece9dbd0cad318f7774e691067d353d01a5974ab3531c1b3d2e5957b50dacb3415ae10784b56db2247538490d46521ce0c442833f08a8be8d8785c4cc10fd32f81c1f15bbe9b5aef3b6474aa9351fed8f452480322016b757ce348d3d64b50bcaf3cc7e279801b6200526be95b2ee11308cc831e1a6e2b06ed7585062184699774d3d7d4ed0d69196450b0f07d13d042a2c985cfde48692b01606fea78daff716f1264858db1a0d495837048ee4bf8c0e341dfe340d3d854dbe61e77aaa974ffe8d75a716b0e6d9008a7213cda37dad64111a970ca999a257022275929a85a5ab04ad922e1a7d80bdfd683225133b0e575ddd139d9b6c792d4aa72f6e387a34ef8334f48ade8cf6700cd875490b9242df1c27d5a18473b5c60f1d3fa643dff98ba934fbd03e01bf06737d85d691448cbbcae356b9ed57737279a03f00cf1899082677900def4fedb0fa3a9bfae9c3589a116ab4ca4b8d14374c6ea7b9d61e7fe5124fa0b21c9ed26bb080bee74949be011d7b743eb21639d5eff564721fe64b10f00795e854e2d35bb99c810aa748f1acbac759dceaf5684580c9e6302e2c7be0c03404da2b273948db1f31c69bc91efc14285491f817a7ca71145c1ebd8cb27a21f323f834b2f536070cc410c47d98ad817d5d53088f124540417cd279fa43ff2f5eaee6991250adf0b1a70cb5c450ddadf4591eb9c22bc2a8445c44ccf8a9f314d667813b8d399b975fc19c61a05e1bff417c799f745203351a274a0515a5cd72fb1dc3174a17c459643fd29024c457abec8f947a447b2a55a144c59af4431343f803e75a57eccb7ec3d165be526a5de953e9e13cdd3e552f572737d232ce13f3a20a2517b2cb33a50ececbfcfdd54ce8c14a3ef29a9a917be8409a31ec33ef31040a5d18e720a399e6b7f078841534e1304880c9fb9a466f10a6f3fe71e45c3e6a87faf9331a39b995a096ce7e8be9211af6afdc9d7267c9aca5cf3dba5b984e78e2f009c161d483385609b50eea31fec821da6d51852bec1cf0a3431c09cf9fe9ec7ec1520b64cada3530b0f26db7dc7ae59f02d18cf60d851b5eb812bdc0b2be9f4db821a4f6e5b6b0a53ea779ba26137e81124bd441f50aa0dce7f25662d5fcba158d2402a7c1525241e178c73e28dad146743f2dfcf6acd97da4dcd81232e90a9178af64e89872cd3ec31e0c49676366355eb516f1744fca4291ef6d0d4c061c2ac3cb34401b3a9604b6aa939b0f2d2bbe443df962fe61e350efd0ffeea025460e2d4f5377c24f8db8adddd5d5de73888afa636411cb5aab098787ca786f73858e2602fc7446aee613823ddbf46d83cb13faa41d12bd41c2a6fe4fe4f5872f15fac2da8deeb7b54c0833cee0f3958cda91522a42110b5cd77aa77ad6e34d2a51bc1e109ae8ac0e63800b5b0cf477acec5ac787d8ff91aa9f73322b6c94d486f3e94bf4a9dc8eb1ebff80def0aa86f119f3e37c61c4bcf7b483e8b35773397425a6f4186b9f32f32bd37c63635f1e49a8da3ee5b12114dfc2b1a9788d3bb5ab07210e3d5455196d02202813c48303648bf6961a2cfa0f7004cd6173bc2b90fc0277122daa026b94a492874a95e5c4dece947ec8835bc9a7828b9615bc6de0636126770d0be74a8faed95bf9da614dafc58d3e4d214ec7f62d2f11c944ddf3cafd3274aafecb366b85cb5b8eb56ab12eebd16280deb70805e740034a280071efaecaadbfd32198ccabeb3a3c5ec15fab6eb9ab01de390ae0d76aaed650bd4e865a006744633cb10078f643b02152b9fbdb6334bdcc6dc2083d624ab9694224918c1ab275cf817d1204bdb3fb2d73e43602e6e02b1a3f1e7a31bb9447aa4f35f769603b47c32cb34778e1c13695f28959ca25489c08a5452fdcf56a685ff1ca77f25f8689fcd9cf6c7a2287f04f0895149f1cd9b8e2963b14c136403df7618612105d43e2224851555c4aa55d2dbac5ff0fce0af0be2b637b41f625f3de9944fad33e30463d3861017c2996a814c18b257f8d947ab09740605ab40b2764d7a82c368bbd4d9457eba6778f3cf0a63b8d3b94df91dea7809b8573cf00a6e96af1754fc7f0cccee04ed64230f0db9cccbf2bad09af509b74fc6db81bb30377bf11b35c42ce9f3ed2f95c487ba6d88a31ce77668f5e9720c497153024c92dfded2ae4e967b1a5c8dc1b05a8f9efe9cb646d5b0bfa4047dd3f120c7adb5c4496824e68b34138e0eccb2b1eb72b32d72f7f8f83bd95ba384bd9a8b267037ef62532687c10a0316d657895c2a1350c0af9db0773760e36cf5ec22d98b0abe4c528deb3c6ea8f661a909aee5190b9006e4f34fd26d92d4f4315cea2d6a908e4e597cca6a4930fe28bbaa8dbab549c12516707552ba07612000b99d5266ffa583709f531ff2031d1b93b5264a5d0b0869e1de7a19a4a0a0f8b883b382888488133a10c4ef5877013e76609e2b4e243256a2dda313437b7b054dab73cd15f8072d0ebeb61bc4ac5eb1968f23fcee84c69300af0a36bdc65d99f5a044a3ac7997926de34a099b8ffe4fd7e0d2d0966ac7434e44d31127667bf1b65a9392741b1f6bc71feadd1827efb08841e519ba46067da7ff47bb368748cd05dc48635ec4d4032c954683665b11d32ef4c732163eeca2a257fb0c7d372d255bbbbe017044f08fee9ec7f6a9a85f994fc3e111db886b29ff23e78512e9874f5f1dfada017377ea16843c15c199f0d0f70a24641f14da173319dcede7c6ba1046f614bc912aad8d42550408162698583e5103ef8e7aa121967540138e88683ecf16d1fab8f5725175dfca5a9601c9aaf9482c99a14ffac9013d06b0e24b5206b4155715519d8b5866051cdbc9b0364d84a07b9a615aa7e875a4cdfce594b33e1cd851d3eb8c925133999ff6546de4e0eaf9e92f7864237d07c021ebf4a80a979c3a5e667b6ca2671158e94071320e6cff5a778b3874af5c3b806d13c34fc3cd4e4da97df15d129647c14b717c437485168ffa4b11c7667dcc6bac22dbea8df1945f5f8692aab1a976810868ac5244958f2faa92f0c652330b0dc9c0b6a480df2c69ca2454ec86efa4c2d2c6bb3e4c604cc895fd44da5d61067f032cb72cab9174dcbc833b724e1051a7b2e258a2e4401b5be4f35625ab16e8d00f3c422865a1ed70de89085af53fa53b06262a1d0891213cbafd3e1be081ebc55c2cc501f0076dc0b0b64b543743747dd7465fd07e822346d5a08ed2cb6cec8ae67261dcdb6e34bdadca60385a8dda1fa71619bede51a87891b8984c62f9b20d0469bfdb1e29d5b248d67108f98f45208d6e9ebd56694d3c049f97a753d2389d2cb021699d597d5a786753dc6e5e5997f644c2842337e523af9d66f5b916b858a472978ad8df14d05e3843e15c8c400de938d9d6070c2ade1cccba39e581eb349b8b04f252c6afea402fa3e88cf32f46ca7af2feaa71da329749e389fd7c1fdd08e021c2c5c32ec1b3763454a63f4d9951ec32425b0a53a3d719cf9122c4b71afba1e4aeae273915a67c9938241b6feab4076b5cc16527e4a8d5902a11329cd725eb67264416f227efb5bb20fa59619354274e26208334c3a378e4a13165e67b559fa8400aadf09c334cbe808124d45adbcabb41049c64e4c211320cc41ec9e9129ff5be9f815ff9323d9924b79e691c801f626544fab47c223d2b82b42bfcc82197cba3f5bf013a06dcc7e1011dbd1e89bb68098311c8f6e998f48eda82cc24afb1cdcbf1d6538823c92f25f45d8919bd1fb8c4a5fee7109ac8bb2cae76b35a9f6429e165292b5a0f0d3db6ba60015cab94a49a781a2ebfce784341172f9ea256785dc233e6ec90ba756784c6d52688415586bf77456d8f45ceae5902d41a7cfbbbaf24e88d4daacd8be703113aa6b5597f41c46a2ef85024ae62098a88ce3014d13b9026815a18ec38ae1bf78f6b8abb6c2556ccd83a9c3b0500b13174f5d52f663acfce4892111a245a46efff636e8552f634148e7d1865b070072a9e9ef986c7d5710599d850f463533b7079104dff25abef2e13fbda6c2ea5746deb9e5c4ec50325f50a19362d7fc3d9335c367e096623a40e5e873ac05651086f802317ab818ca04455f7b85a6cbdc2b41a2d6f23536b0b90119616e989cb9192d479cd2f1414e578ee8000000000000000000000000000000000000000000070c10171d22", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 53, + "comment": "signature that takes 41 iteration(s)", + "msg": "7504000000000000000000000000000000000000000000000000000000000000", + "sig": "fe05190307b3c178fe84a59f36ce2fb27f95131d923be19a14049ab595b7893a79cff8e1fce183ad1efa99feffca7bf8f441ae4c8fbefa803a0b6513d81e4d82dd1c44e5b5fe911b5f09b47d9f6e5cd37e22d6eb7f8fdab3591c714a68829678b4eb25b50bfc012c93e4b553ec942b43165c82e64874c312a29e870644285fc66c7b52c7a9ac9cb583895df9d33a2e4d61f4cddf75e735f4f406fcdcd9a916ecb9042d2cc52bd1849a09c042af6aaf7339b9ed6768df14e59a719939b2b3168b112a590e48773412fb4cf26c1fab25f36e29f21d82aa1632a7d610fc34dded48dc589fdd5fb3967e5a691c9941f4a4a9e2e9b5fed4a93dca60599626d7df865c3bc980b9fb4cb4f81be8ad600871518401d82575ea9e976af0ae28232f6783ed09dfd2adaf75d335ffd402378c20c91d60b8146e9d605217945580e501d2edfe626b094066df77f325e6ba5a54e19de6bb45a6db689a08ca3d4b28a2fcc454527f4bb8cb89507b72d42cbe45bb72977a734db9e7bc49b87fd185471a30a858d4b7e291029d7911854e9509298671378b6757b76d896bf844aaf11ae2cb6b090e012e1063cbdee969c63d49e70e776c8c72c192bd0656633ae83772363f9439eec8b1f72a31873df3d46cf03b202cab1360598886542ee06585225b21f3489130640532421c989cbcab92108f0844bb34a59de145ac8651862202033050efc553a9335ba15858a51b7585cf345d8518cd547f8739ff3c95b16130a5473b6f4b32edc1f673154981e95d439519b90dd96e64b22f710b5a502d8dac2adde2f168c7a4ffb51dc950250cc207abe4cfe6efcabddd5b074dc0491aba4c8fbf8f85e62ac4ce181e782ceb0664d1f10776678c74cb00ff742e91279faa64fe6ae22855a06e3a3a278b04f5ea28367a84afd818891c00909838dbd482ed6611f9031e071a25b5e7227106efdc53f5e524141b71bc3dffeb069349f7c1d3a0a39f7c345d17f2b5c7a7a5645475e2057e1f551dfffe0e43ba63f2503532bbeba746de9a071a581cfe19ff9ce1907fe2539ec33ac7c9e7713a714ddc3eecfd9a68dfe81bd7a16e05fc99f7d641f8adc1bc896c42210e049bcacbdff65e15a302cc57918490204c683f0bbefc0d09dd1a7289213f39b3aa07fc4b5c9c6094859e5f1e658b85f58859a1c58417d39d1815dbbfa8cbc03339aa474767506d1dc9d3faec1b5257485fe836f0f8c05ccda7bc71bd126d3de6dd4c24faa1bfc118b3e7971c1ae05ced4ae210bd7f61d1996735c56d6fb1189bf7a4a85c2c75a3fd8d726a31692f6c57574332d9723a23dd7aa83836b4143fba5e5bb415695a5f77b981bb9e0f50f3a07935bf316e3ec51e476610bad5c31bc68f26500baca63ffc93a924453bcec94c2e1ae503210c2108624d97c47e922a27dcc680c0723e43d275f357a691357ff7c192987b198dba4ed82f74aac3b340e73e1d887fb71755a97ce72ffb38d3c204a2fc227dfa6febb305951b6a7c84017b5ac827c06acd5a11653df27ad927b539af41e38ac97452c877f2945dd7624bb37cf59f2ca2c4295c6683c5bd8be3dfedb3dc71267e6c823106ab00195160e8c9db811550a807b531d8e31d0f4e13ae0936a3c02312e334fa5246f9eafaf79c2782c502ff562a8c2dbf1b32c62d904fc62171eac3f394e365f7e00278f96dc59e6f6ff8cbe6e74643ab5a5e554fbebbb6af3115d914d6ffca0619f1c870040f8c9fadd4eff4455de64957317888e0aca04d452cc8506d0ac26dfe538df76a1761cc48acb103181f42cde489f424e4bf2f5aa86e5d0b7192f559d4afb0886ff3e1e3306e234f80af57a067252f7e89689a9416ee9f7b0c4392e86aeddefcf0e06f6f35d068ebc15d6a8f56e1b80169fd2184b8ca574719c0a155cfec2aa38c9f8cdfb339c24d9a525639b4c4b895e84794c148d5be82ae59b6ccac97ea157e96f03e573fbf826273167cce27be7fc8b921de850bc53fcdc35219223ac3b03b1f434c5ba11a20deaa1164781c7d14fb0d6dfff909ad97df4da16a648dca7f8d0c5b954600b027df9fca9051a26884513799dcd7a3ea1ecad9e2f0080a26dcd3e9a5531be456bd6ce40a9753c607ebc3cc22bc9871ae7588cf8aab7760e5e21a8f4e98e87544fc85525ee130bab060c02f6262474e4a05c50b660bffce5bcba156391cd2c1321d17605e32f7333182d9d31835b2f9ef2e0b064f9cd678d32a998912be023a102216fd29afcc9722eb827c38fae1742d10e6eb7939e85988de6c4a2c7a39eebe16647e59970acd67bb7c7f42dd003b18e131cdd18940f9220b3e8ec7b6191612e5eb2d5f191b13f68094ee204bab57cec4b9e8cabe35993bf48600751d08782b0ca58e4f2832f66dc45c922eb2765185f4656b2e06304f26281f60aef0281a44919bbb32015cdb573c20bdec136cba26edab9b4e5bd1c19a06ae460f67c1d32ad90d4516b0ac6307a50030615231449df1384124c9cad8466b01e899cb65eaac027fd4a22a0bfcb70e47dd9e01f24f41d09fcc8e2ce9d7c79eccd8b8992d050147a26439cdb3f746a4f3c8cb51e3ff6e8c2bbc5a26cb797265b8693ec47135f006c08ce63b8596b2ce5f7b51b7b997dc3bff82213213347889cc0bcdc47d8d311030f5c8b7b55fab5dededdec8e7dec50a3afe32f8974a2ceb204acc1e2c3d9bdb61fc90262b88904491331bd63845caf90ecb9a2cf5477c782bbb213328242c27ed9ef3a5c4e561643ae4084e31c3df1a418bf3f5481a8c7448ebe5ab51dd0f3ba00f71f59a59b531b000d8fb1c372e01991524079de326746615f5f3451d483903e20a3bbb70d255b85c004120c68aa8969d911c825399f9df2c7ba467fb7b08c182034c160e393fdc5648f44fbca6f0f10cc3361776f35c4f89f61a2c8243f957307e21d9b3cbe628c91f82f119e16c4239d858a667b6d4df1adb6c500b94543441441adc0616400ac9f312d1997efcf40885d0e0a6ad7832d1624580d94bac2a4680498c92159657d7606ff04195d69eae06cda609080ba16cb0eb1e38262bad5024aabd87a732d5c665356de842a1039e9b4c215be45a39bce4ba01204c47c7d72b09823c87bec9ab0324855261b17efeb231b87011010ed84f49a33432df5c247321f70ee93a84dbbfe7425b4d8978376c9a79a96dbcb16dcb52b05f6b5e9f41c0bc97f39a2b2ede586a6eb9115b1a08d88bc665fb37667bbca06239d36c5311d1f0f3efc5497af69cff6209ea92c1ee400667a6ae3ae471adedbabb2629c5589305afb2574f323c575720096db40b407884e89dedfef229da31501fcd6f3fd81403c00ff9116f2c9018c688e9f87f8cfc6c91ca556d2b7ad20970b66e150f7363da22b4a8b7b374c6952ccef30fb5062576aa7ff39370066b1ef847445791efeeb39b1763e8f385d7c8dcad9bfea58ccc19cef8e64fa40602d209a6a7b9d65b013f481139c6cf5eefcb90ebc0be487a024a4bf48116a29f213ebda7c4741fa228a6aa8fdc3d4c78586643c20c7332c926594bd10d238d7eeeb9a09281f87740ed00909a8426b5a7b57c77eda274dc4cb408c0a16ff2521cb6d59dc0aeb8bc74dc677d31db123e4df6913865625b2d2e40fc31bf34690ce41dd561532199094b94482e5853091f8fd78337f72dc50b9959f3d875c030367f6cc7a8ee449383a8e525bc653c31878f57a69225dfd0919cc8d347787db8ab7a76288de3ed78a466750a8391ef7dafbf6cfca8bb644dee21ee576d9b1a0f6916f537d2920690eed8b959497b3441bf6e9a05d935a3592be0195156085ac204909619a570964b90ad9ee4afe604e19c1277aa21aa9bb6a0738763b0b220e636455ed73d4da20c137ff7f10692db51e8d3fbb07da60bf658bff6ceb0907cc1efac9177702e09b694a1317003fc848b4914ac20bcc701fb2cd1f58709c275f1b3c839c2019fb564a610489d4ef2f833e70957aee616fa316d0217bb1cada518a5f4ad8d86803141ae180358cc16d3b63ea165f1578b07236b026734791b690645de7ef29df5ae81d5254bc24213a6a26799ca6e5c571b690fc50ede7c79a547d7a2b615b6c6a24b377e10d4b45f8827fa54f4b40a27b1eba16385e4d6332c29b24d3412780c117e49bc8675376fd4d6e389ae29f30425dfc6f1c744a1edefbcca35f4f0b4630ed1cd887f1348c38dd8f8d71441ab63bdb1fb9d6379d7622af23489c1e35e726592ea44b80194ad1d929d39c7951d071e3a5841075f830f9e5b9c38a8e7379d036aec2b7730db766ab9b3eb2294b0a2647915ec9c8bdc142e47ef22a7953b80d61188b9b71d720e03b313e97f835c69b78d8f37b0db67d02fb2b0aa322c04375eef24ba6277af79aac4a597d44905c736c2e7d57f89dc791150f0cae240d8270f9a421feec641a24d8ebb8ad06663867c0ea93fb5dc653c27a7298b8b814110f3bae23db3598251ba1b3a91bee607c889a9e455ab04c0cd84d84f642ae809cb09088a6c9eab192b51ea5765f669082800321e82ca2fc9a1ba3d592a357b143d29d5dca9e9903dace7e3699375d21d7260768ce5d6f351090cfd2fce2659788c9ae2f7fb0215222f3e6985aceaf40d575da7bbda24434d565ba3d7447fb0d5dc36515259fe0000000000000000000000000000000711171e2328", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 54, + "comment": "signature that takes 42 iteration(s)", + "msg": "f105000000000000000000000000000000000000000000000000000000000000", + "sig": "1217e9d5818e6f067be5d3f7e86622c2118c2a5cc0c45b58bf5f8e62a834e60a52efc3c922f9fbf25ed3ac7fe1565f1d62f2562b39554205615a19f809040d25565919f28f8c0ef319b4dc89049cbd69eb54099acad2167f396ed1cf31f2d87a0141807883644211889c571c4f55ded7c5d8654eb069e5b05dbfd3317a433632523117c3f2e35a1638633bc47704c6c640f1980cab109f2dcf5e6a9b0fd509c296560a17a4b4431566a4f04e58b8cfa7bc221973cb90ebf7df86a8dc273dbba0bed62ba36320198b75f18779002ebb5ed5c44ef722f850fdb656e5b4565234694a45c2bf65510905950de82145f4e1cac5b01c6a03017ac4c21a068d6f4462b6e2aab754ce231dde7e21d06daacd2cd9d54c225c877235e81ccc85b9649fcf241fcb9ca4294ee852f52812661c23ee796a28414d0846efd3e88a0250db787ec04368381d5a769c364ef51fd55feac6d51ee0a9048e4076bbc57851afdad4368e3b1a90db660d908084ee45f98cdeac8b321a99cd2cd7538cbc3a364eca4fb6003bf6aa681b93e207d252eeea027c9c14199cb15b4cc0e4bc6e59547b6673ae37e02794b8ca1aa16cb9501175b02154b45083f6c34e39cdf47c1548d303550d9e7b0ae083132b67708d228f7174f67561bdf230063bdbf3af4a11bf0330e90a0ef2d0e6c1410e8197ca8a5e892aac94b78da6c33dd220a3bc6752729c564d3670a9c127b88018d46e58062c9317982ed91f53dfce78f958508ca11515b5072526751a4b8a5e8066a86a4e97f540721372f1960b1d3e25e89d54e75ee14bfc2f1b9501195cf8f20d6add1a32d0c936f1fc351487afec12501c0bc1bfc7500076a9d50c2b1c4129b8d0438cb8334144906039dc1c5d97c88117c456e6e8f66dd13e9f0d4fa3c5db1f0e529071ae4d1c4c5053548b43d60bd6d7eabc2ef866e26bb809908bd90c359812ef913cd92eba8a09380d447c54594ca768ffef320fee5c7d2695585ae26423ec09d3421cf46b51170d7d64eea5c668613d5739baa160ecb26a8502422de2b10a9bf1d51526caeb8791195d8bbb45a498e1d5b3ce38f12841f1f47028c95be9ada9aeae76f3ed2e3f82f96beb319ff41bbafca29e553977c10d422006981dea385e6189a9c63168116f97fcd88a78e13bac20cdef4e3c5feacae81a43df02ce7ab2ee1a8effdbc524bc55ccba3192f6f0a794a3b8ab1d0eac8640ee4a8a9cde0110ee9557815ea16f20dcc515f919eb3ed722c8245783ed374a91b57c4825e7d0887b63aaa39688014e929a46619a0c5c2e413f2950467b6398072d3cf70a636b62439e80e8ed04d24aef6c8c8ec3e3aef68bde6869614bf30125df0889b1a903c9e930665e314917c416ca3ac2fc9bf060419f690e97843beb7f6b27d02d43d3c9427f0697892ab2b820d2ef0a9c319990ef6bbe7f1d0f3c4cd0c827699b37c14f6f28426340e6d79bc7783aab36084bdaafb536d1ae4edc8f9d1d0188eebd0c3dab59f8c897ce73c8f3e165c2809dbd45972483984270ed76a6539bb08630fd5e8b2532051aab0c9c74e728a52af4e888adf151556b90d6d1de6a65434a650d21085e0a49a7b9bcdb9e7d4d17071f6d06cc9b3b394b799f2bebeae8e1359ead7a9b565ea5161d77ddb95a682d500784a961ca50857467d3281aff2d40e9ef10c4fdb21a2ebca52dcf46f5fb14bc808d0a0e8f4d308774355fd9fa31f4e5318b6ddd92445efd54fa93641a99d452a6bb6d1d403ea5c37c912dbd74a58590d39168b2f21a9070ff57c408edb188e224660f5c8dff11805e2414257aa6130a90987cd065a3b3bf16671e2d21629f7feb8346ed350521f09cf44576136903e0b07c81cff80550240d5cacbbefac2b67742623c9d3fe822cb4363d38ebd9d59614b08a8736f8236701a107c19e0de8080004b722246578e794929c823c1ad79f2d5a428b6f5aeab8703857a98e1c354ebd797268f88f1c77f17aae27a438e21b25d9580a0d634cba30c5c3ebe31a2692cf1fbab42b3660474daa29a37c357fd2d79dbd0e22aa0946de5ba5335e0deef7b0a4d5ac23eb3538c327e835b2daf74ed77005088ac75b0a08d27609de4c77ad66bbd9958c6b9cd4251ce9d414df8dd111a6bf35ab015cd436d860913a5253896a803b9bd1d2504df18d7224071dc223c506f1edcc96e26f22619acd8616443db41283adb9d1e54b1774ee0300068bb7c959f46a36ba718fe716b3b3945cbe65cf1526cf66a52aeab76b02ff993301cb883e5654ffe3e3bf7763e5b8aaf64f764d10873a6087bc59f9b76741a7c441611272e3244a39c74b8a7fcabaa0b61a387e668f2a99ca35df13f68d77c959b6c607d7e5c9b7d4926de0efdba42864cd4949be8dfa87118cb8821f6236f5e9585226400a6a636086d77dbc71f6856bc715b83cd93e628438e1867f67163ffac23cde81a74dfa8b1e265e562dca1b5a881c85c45a21ab90533732a4606c405c8a04ee00088f000f4e9f33e2912c3d9142a71d2300654467e1be688ec5792efba01bf087bd36d15855dd96c417ba652f0386633c9151e4cf33209d93202f7d71dcdb51cb76a708fa5e23b070f95bcdeb99100555e8a64a6b84dc6d51504bd7ea24593a32223a4f1268d5d986a12bffa3ac548b7854ca02262871f7d20e0708d29ad7a7635c537a6f5569de2bd4a9bf41db3b357a181fc8f3d4277c05c4a2a98d8a0a40eaed01aa4a84e00208bee78c70b13ea5df61dd9dd63cd2ab8899879636ec575a7668bdb35e15cc2f24f8b646fc54049df718288c8c414f3cc1588786f40c0a5d6de7cfbfcf02414055035d6adbc30c3ac0d85fa572b604475ee6ffa09b20ddf23847658c9dd44f29d7e143e4a23e4c4f1751fc74107bdebf45ba1180880eb036c14e71cb2eb71260f3dad56d1cad348616446e01b7e66d64491034bfcd447c1a8570458929ceeefbca84571126691d3dba67994ba84e61fb4fd6b66122bb61a6510e7fa8eb284d1af65d25d5ed756a92dd5eeed49a7e19f9210c783008eb193a24a7d7258f0a89c7391912cd81545233666fe675c51907babe9d24c5d6524f307ab6188bfe5451f23aac9387ed87dfed2348dfe60b3c6d620d0632828cadb5c2f69a4a81855088edc9843fe34841c2c01696b183731f88002f4d0c466afea52b749f317cabd628a74c869e96e1da039f732cb7d15773b71c4d2a1f2178fe7e4f64e007288c5c5e3db21da4517613270e950b21e8d8062384bea6c1f092fb9d0aee11888bdf7065b154a343eefcc94736e5e375d3ead8a1409f41abf4c1c08dccf3b4cbcad8dbc31b593009db4cd25016f90ce177a5e9b96e7cd972e55b2c4e34a08cd75123465a58fc4c34870c787941c5a7f619848a2b0d90f2d55be371f4f47b706322909b45bacfadc6c290f17ee4df30305e04315063a02d5f76f5458b6a22ec1409d634ae43acdcfaa5c3a241a67c4e938b436640815e8c529bd6606ebf282482aa5c384de807c04f0be2668a6816868e28bc5863dad6ff0421b84d35578702d3cad09cff953bb421d260a2c98eec86bba870f545b3d160643463700acf522d665ae38498e57cd399560b41d923f5c2a564067fe85d9eaef21cc0133e91607bbd0fa83dd54404847d82443ce36efde619de2882adc72a79c2a65798f55dc2ef5f67a4edcb871e9d5f2642f36693bff3d694817e308857428e06b42f3681ae08adb354bfd104fa3bc2aa87173a1883aa0f28256ef146d4e1a5fb44eca834cd652d0e42ad8a681cbf24bd0de427b03093f1c0a7b3cf57359d5bfb8ce15e8ec8aaecdfe1b26ab5c78a6a523f2d9a576f4ca43f8365e412664a3d4511a42737a60d7708ed3b11e3bdcd731c07002525b13e0f19a78365bc6cd33e8cdf190a5bca4268e0142ffbb3ded4d3d49d385498b05e4cec7f3b7703307dad2c77ffbf10169cd0e5ed0fbc029b3c3455a94661b9e8138e20c262ff3682babe6a8d97476c01cac2e46fca1d788f6381e0561d3c8ba3da8ea09def32d0bd6262040f4143e82122417801e88d693425b7b243ba19049d275c747eeb96f63fee8d3b62900352fbeee3c367dd9eb1f97386174084c3e7ac78c1204b6032189e5ae1a4635d59a4197e6955139ff9e3b4520fa30b397edfe36f4c947bceba45c8ed8fa289186fa7c7b381c1c9aea249302b5e07c4fddae7270f45188a8193c0917b694be541cf17cf63dfaf99e1dfd98318405bc7909865f941e26cc9c0b70553a49f9b4a41c97a3d09fb49116180564724985b554751526f89a3c931a18fd1355f68f3f23fe9d04a965015f1385f78cd68ec5a91b7fbb2ae85038b3458ed91e82dd966ccc80b8e85243e390a2fb12907110a3f6b02fc851758f32dd82424eaf9621b02d9afd391aa6beeaff717e051f68139efa1d36461f577307b23c885bff1433a4107b184457a6560466183154c02a06ef149da5603363a4fb6f3bcc6a652cd6b6115b83e89299cd853abbd58ab459f487e8ed27a3896d41e47baafe0b497d07888123fc03b54c9090ded58970da8d0b4dd3f5bc9379d78b251abf5f1a02fe0109908533a11aa1ad15beff490ac7f5b666ca5db777d7ef24b71ecfc1d566c999bb0fe535b6bd4d9fe496f96c6e4edfbfd00000000000000000000000000000000000000000005090d141a22", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 55, + "comment": "signature that takes 51 iteration(s)", + "msg": "5f24000000000000000000000000000000000000000000000000000000000000", + "sig": "9cca8adf0460cc52697ce7610c5ce0d876060dedfe1ec0b2cc26b90039987757809cfdcd227828a160c27f96c0b5b395ac34b6184a828a0971dd2c218163558e6e7fb6c0aef05fce80eda92bfd740aab1376cb01595cdeeaad7fa757c0ad9d603295c3fc1b5814e2a8bd33b4ff31425cf46c832d4e1bfee3d02a9fe8804e662ae91ef43a27ddc105e1bc4a279f82b7da4ffa37bac496ed62e6afcec0aad0fab378c5a266b6885eb06f506b7e44a2cc0ad60ceb9a103164757ada2ae9dc50e2a3a5713a7edc673368004c81a98ae72c51374456546198785d61d1d99552a4f942289508c16f61e70d732627238a7dc19c0af92b87c256ac229c1073da067ef8594d0bbad6a5488b1085d4892a64460d32ae6bb3f7d33d15087c6ad9215764e89442e303d3fe68397f958ed67b0c2fcbbfe6cca89fbc5d600cb8c30c32f8299b0d24439f11db2bc8a77b78e010fe3a3fc8e7c9ddf28d20eb922c5498cd4e8aa96c5b9b1f01f79fb2dd03819c7a30d74b7a2fbe43d60a88a7b531b251d2dd675c6f95a76996714756b0b44e87612f19c2f211d16635b6471028672e4b8c570c548a5e80c7685fed950a6edde8ef2db0178def727ea4113749bfeb58cbd085ce897d0f650be44edd3b56afb334335b18ba896a86a13123849ab7ded4ffb7fd33cdb036928882216f399d1e6b778ba6f922aa7536e4ae870230b0befa0c4647b32b44c644a3b7a0adc003211838516c86edc1a91029af654b395adb354bda3fa43a52aedafad8065fb75bfc0d033370e30991e19c1797a75614100ca37b432421b954adc635e489dbe75b7c6c8c55cdce65cbfad6dba32a8313464c43415181327b9921f4375ca72c433f749e55b072a05b831f75c6cc412a773376a4b12f4fe6f09d10387a0a3b77780ed8df0c1f2d74f040d22cfdcb71ddadc6f0c00ceccc2a08a8708389e0f3eae60b6743fed338475acc5f95ca0b437f3a8080897c0d199e17c1a19b98cb3080c0edc38e0e6c469273804d156065dc4538715215f829c771ef039f4acbe0af43b6085e8525e130215f049ce3eee9c753a2fb739874a8a28b45d67a301fe5504daff4c940cbc06cf6be222317e44d1099bdd0016a939cc6fd19f0e9b7f4f55b94b21cafb9faa5212cdb78b4713f5ab58322ade42695c75b06b74659b54632cc43bab1b7f4db55e32e5a3f8b0c68e733a0f6426d2d49ba03b5afa121429db31090153bb262f2407e8d5a2b212374d05f05b95c9d8f29566582f3d202d7c24954c7e98fc586b00ec8f242226835d5c0b6ddb1693142aa49e277b94bd126c9d1ddcf73ad37e9360ee71cd5e19f30caa9bfb0b237f4a5e30cea16a00e68878b6f8d1ef1e0c6d829b73d01c9baca3f146e55c470ee867b5bcb0c161ba873a0fd9a4d9b5c0986c95ba8e6e3c6c8645410542f1cadd83439dd38c94fc792fdcc18512aaad09cdcc50a531f145a29bf40b7a817170a7c1a2aff774f32440c2b8c91182ea1a6ab2b548f068f5032c28629ef241d743d45a690420184c58e17f2acefe355b38a14ed30849862573afb010fb13fbee7dbadd8e0db68c327f0f6f77f323f06e6b6f7f9088a872a1ab151fb6b5c7ef54e2c5eee8d094aca7ad38c9301b3c1e38066c7c7e12cec49688f7209735a5498b1a390a2fb36fdc59408f8e843462874592b8750e15845fed34663b443501235028108c08eff7860da995ba221a39370daba9ee5528eca9930842f042c7907f3b0c8c50d9427e9256e9bf56de25d3cdaddc7475d297c1fd7de6b4e18c7393956871faac45467ca9ef5bae49bb2db203b994a344c2231854d05f053f29a0718ddadf9fc2c4ce38053517888c3a3e58a1258d6019cf4903640400555aa09e6f3d979ca764f64cb75a74b6c12f54ab2e6cc1f6a744636034ff7ac31cc7b2dd8a9ddd521f5c3828db0f74f123160332cc555b285df68bba0bf76bad472e157217184aa6d7d3c4947408f7e71a0c7aabcc5519ef8abfa56b18cf194cb69e38ebf57afa6c776ad12325cdceb1f5d96b2862d403c30174abbff700a107e6aac6ecc80a554c29be4f311a984039723bfc60efddd16d6ef3d2040882d8033c03465d0659787ceaa8d5c2338f437f7c9cf97c902882a5b178dc40acb9934cecdcec16e2a5a4a3992a932e45f577a7dc4cc204655c07374df197a1b93c7942a476c56a9295e123fb2e3de30d8ecc309d58486180c3bf4b9d889fb32a960447797d232ba3a201b013c6d625c61131b528df2499540410bbed33bc761dec3c9bdb01f2bacd119a14886098734a184f558d88344b91e480b456d46e81348ebc5578ea0ac20811b667106015729c9f4809399dcc46d480e89d0f7b253de8b5de6c2e024fa79352f21820ceea66497396eeab80993d4a0ce62b056f8c7c7c7ab938b7fe84427274a298e07f38a4743cb02861f9306ab36cf63686cf22220b179bcb1192b0391db03370b8d79dee6290c0dfa1179be1431678ba31ade9a1fe07b2fe77d1ae47218bd462a23c3457eacf619c07327d9263848146b4c5e3cef0c7fdc9443874f79883ee39c23e432c08695bf30d05bacd7c66ca8fe722fab18c074245d8fba614cf4781f7ca3ed046614006a393fcf509d8632adadeb099fcdb87a316be1e01f08ab6ec485e26ea20187256c31dad0dfec3043ed27a416ef7d21c592005a1c938a4c76d17b58d16001730ad951bcfbe1c761c268cc7618d13ced5445a3f5f1c114030f96bb618cdf3f97cb7a86bc2384945c4b66acf1481b0e280487cdbb7187d6d70035ba4c8235f638823edfba8770d3b587afbcc7d5523e0730b62bd703a762138764db6061829c40cd02b64e6fe74ff8248cf3d9380837358c185a8cd23fe69d2035c37263002b4b25182d68de82665be120329c483eeffa90083e266932666be519833c0088065b905b65fa87087b71f0e7686faf90ac320c02858d3db6e229d7f422b8816980037d9b2b1a19f7faa771fd43403f98d1e423dc3e5ac63e90d7a03cbee04851fa61025b017f6fc65aa319d6311c5ce65bcb5ea49c1345a7286e447351601feb400ce9252789ba8c86c84d98b53fb9fc9a784e71252fd7c979fee27efaa21c1180d287dda8fec742e89ed164cdeba7e049d7cff09729a2ce51c678404e7ef88784e1b90959d58d9aedbdf77c27daa7e6dd64216a4d1a5fb0fd816c6777f1432285e34e400294a21b1df767bf8de430d66a4462617cd4268dfe401812c65259be4b1f100be09860479bc056f2fe2276b8981b6178be861de3badf6297e76872ff7cbb35108c89037702df1966bad37cce6bf82141d918453526921d518d4c6bf2491ce2ecefb139d712abbd1d90de52e17b486a20815dc146732173e583fa1a185a447329e340004dab67af10fc2e9a85c349fb37cf5bb5719c550bdf2e06c471ea784ee06396b2c9e1253a6a6d83280abf9ebc7cefb1bc4ded49881b293cc34fd09b67de7c2b25e2ec16591dee608ccc7d79411399bff9fb8608cef0b87d2709475254eb63751a63852167414cc51f2410ad7fd848158c90c82ff7173142f6056ea432d6eb4a91e119933dbfca056f5636b035038992498b66ee9653d37bd49403db5cd7daca18d1d3515e9381f9edea67dde2717a5b07137d50593dc0b94ecbb91c1f21926caf33e1af87fb8061188408d85337548cfd4cb08bfb8e24802a61c43c0263b1271ab3c02360e16c19c23a641a59df3ba92e6e24139bd4cbd4f342c2638ee7ada58b42677dec2ef4f57cab94bd95862dfacf65fb9028ac2223dcfdf148556951372b4d6f8d38d8d831676c95843394adb32d7990559b7412eb2a72e333519f295bd8a5252310f3e7a42998b2d6d31d44bb072a4f3eed3bc7f4665892396f1c563cc9aa35c7e4ed3bed0892076907020df57838404e162eb3b28956767d71b7fc7377c00882e18925bc57440a367038850e7417f5c7bc4e42af7baa0fc55086a1e3213d188f40d54a8296460decdfddd341cc713beab8a3d7c7752ef45c8ba7adda0a511fb3c28bcf8be5d01b31d72f2c8dc0214b3e25b1702b329d7fa96d1ea15ba669f21756d5bbc36576a93c37aa94eb5a8ceb86fc17f2fdc1522f5b6ca074bf3aea170ede6e74e89f4d444cee9a44ce03c5f2993989af10ed2ef9a7cd40e3eb8a01d20068f65f9766002c7202ce105b0dacee1658f4ee2f0e8e91fe4ca41135136a849e67f998df5bbf9897f8c1818c8f36a79045b17edf5bac1ae0d1c6eb2d73e185bec0d4cc7cebd61f61be28d41178a13ad0b85d653d1a49e9877745d2e0024035b6e2f54eeec23fe5888732695d417aeceb0c4967de64ace7d3db409090fa92fcd0a91c5a695d68980a7e52bf77c932ad2676d193c723ae0185287d249621174efc7ad8fea0e7dae70c7ece2b74a4871407aa2a4decd8084b4df3b2a2ff1d49e9091a2e080c605696dc3b156d603c62b480a03d43fbbe97c00b8534e19b11c6a67d1e66ddae7cbddf2d89077f53ff5a3592b7b114d8e3d4c9957dc0b8197b97af45ef3c3f990a342844089e6224b96f5036233fb1499f458291d7fef706ad9a46c4d47205bef94d3c9723cd7f2a3033607084e30d3d6fc60c112a718b1476b8e21b398d98ced3dfe906174b526975959ede00000000000000000000000000000000000000060a0f131b24", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 56, + "comment": "signature that takes 54 iteration(s)", + "msg": "9f03000000000000000000000000000000000000000000000000000000000000", + "sig": "751f8773a0e4eb9a2913518df24d5d2a1a35d8bd92b6e2171fb43820f034d08e87df2d10fb8b86da69230e6231ffa2419da923fe0d06339558c3e69bd332bd1706b8cb0f662eb8ec576400f2af0091d3411091c0ee4afd6b7e2070925009bd76dc574940d83621f664f107519a59a77971b08ca011798efeebc363b41450bb8c8819e4fe784002ae579867814e6a6392c7fa4964639570b9716a7242f57ac9ee59f3b99e31bfbe2b513db90eebe87b114171903817bfea16d4b5073f4d880821f3a45da7f206a6b7a004992b912ec5d5d13628690b76c19ee3182dc2b74fd7f620aaaff3a028380afea0c92d7280d4b16a652e7753454e781382b559dcc95d05485a11ce45b0fd7390e280ffe9450e61d3c9cad6f63652b769dace89f3d9df3b02c5e1460c7df059b6b1f651324cc38f983dda8ef1789dccd8fb3045969aead0f6cf97e9c55e2172b53f8b43d1c6a4c576ae5b2832ce2b373260d9ead91943b6f437a64c826bc0c0f518226688c734ce088d5da62e8d6d7ecd1674597dcaf2bd52eedde7e6750bc7fb8ee5a784023aebd6ca1c5d627c54ad50a361d0f21aab46a83c8703f823e32e9eb5af3082554172f2b3f9dafdb01b42aa15bbb9f6f0b369b1fa6c703afffff0db8559de5b8d54f9c9b0fdd16103ae5c71900d6869530658c9ae227756f1b9ff4354b10141a18292f9e9c527e8ea6e0db395af07ca104922361f36c7c56b297b5f175a701d3faa988d4281244ac4cf6b54c54eddd896f6ea9340bb8a30e2b1462a231fd3958141b3d946d9d46c035d4a6614209d941273702aa0fc97e4dae314fad58497fb6bb858174c08300a225293c75e8c4ace84345d53d6d90d15dc1780e0b9730f7623a35090409d28dd9aab33e7e87bfc64e8996176fad4f16370ba2fca0d666da4e210ec6384394797004fbc82027171384a82a7034fbf41af22ae0eeb349f41c624f1c51aec6afda131785b368091ce5af0776f469b2afdebd3667fc5e372c17ce14d67cea6610462a74c6fed92b10677026039075aa1ac80003016f0654e5370b16f69486e7d7ac6cccc54527b02b9912a083f40aaac76c61f6a617255e4271c132573cc21417cb86aec5753d67323187a2e115d591dbfdc6c7fc1b13e7d4ac594157090912605ee74614e59f8bfaed0aa3716b15b53cfd83dba8b2a9c5f071e3ffafc9b46c82352b4dca4789ad6d188e372274672e3922bb7389477b9b4c854ea5a4b7b20dda6254c7681f2abf55f9cbf648663623b77d7c6844e5d98ae4de396e0aa8320b2e911398bc90bf7227d0b243179a9bcb887f61b184520175b6e1a0760a2acbb3db79d66055dd015d17d5b1ca2ff7d859a30385dd47456a0790d11570a83a74ae778a8c9a087b3f5b73984e5c5e5bc1ab11a24f1e3f425993228b4d06d61c87e117caa4d3de0e9bb506f3bbdd18b648a850f6fdf2f5e008fbe6368579b186514d4cceb0f73512c936d226a8cef99c763ab74ec87f38e47ebac830f57b79901100abb8b8e54ce99419e523834fbe8b8ec098c616e14eccc1812bf347ef2bcf17ee1cbd3102795ab27b18a01c1f3e8fe9cbfe053ec55faaaa59364dc757efae2b2744fc2c8f392464fb83493ec9b4d4960fcaa6dd9420d77c7a4c4b0275fe9fd215b328d057948f533d0cfbefde1a80096b477f27886b7f80d37e4a270aa6ef9432c5faa1b44d5b2431f925d8865a288fe11b915bae46f2d13aa29caafeae8d0499e32fc21b43e7e6fffaf5cab0322d21e6052023721e851b2e7f2107847e6c4edecec99c4e10dc951c94b17c8c48cdf79b4ad4ec8f78e205d2784553b0ee2a73d1ac7c8889f92c973c90a29a6cc11d356bee150390030aea7908fdd173e7700f01a8f4322fbb03b75852007e671536990b302add831f0d1abcc94b424ac08cbb197ace78315c5648e8dadc90f6071ee21e5a5323c9d0b7320e834a53f34f183e6c467c5999e7133dccd6f623051f5b98abf20b7b6356a0e9d2608b2f00b774468ef17b784173301b5e3866d07b1d9c34a71f11ffb0dc7131722e0ccf153d821f4bc54f5d8caa57f2dcf46552edadd2b9902eb664a668616c08558171e0cf53df6e202cdb96103fae6978addf84d4988f05af52b89cb387a5515c07c5b3bf716b84fd3c533c12bc850975ebd660c47463fccf823fd9eecefe180f5162b6a3059b8684e5278800138a728c4142a1ce6cd0e329aaf3c68c55db00582e7e195b19d88826eefb3efdf03d930e0a28686a92a13a6f77ea30409045df3546b85633b5c10935aa0d35c9fc5001b639a35104f79a4c384a7a57656d1b7ccbcd06f004092ef0584102ca0252806df91188716a01797496348893ba73bb4fa61cd9a699b9c001f6fc1eb04de9343357608cd12ae103434ae6dd30faf45a6528d96f24ceabf34f06dd37b96c71f2d5d75fd3f07881c0d62bbf9cb079152fff4179854dab85b0d051f1f3a09cf376da879647aecf5a30d534a3dd90e6fc1d2a409d58c96101024adf72d6a514f5274d92951cac1238f56a7d6629ba302ea8910925eb79b1c1f3a405d0ab8cc643d0fe28399e7ea5c40c99d2e6e1aa3bfcb4a9aa6518c4c59a792f5e238e2f3e3cc1db3bc7024a91a7168c8fea4d7c7100e8e2a52e2c7f37cf8043c4a1801d2744f1d106e850ddeec17dc1dd02c20d59573c5a064693bbea39bc454daced714e014a5277d3234685d73be268ae211c1e7414da84b75113d6d45164f3eb39e39abcd24961e048f3fa5cac9d6b759248159970cfc0a4b6c199597774f0ec058c8ef6b6a33f3e94dc25eefd66d7f7080280f90052986e7c3fc09ed5cf9564f84ccf9a60a210c3227f4c3ab98cc6c3aaa8494c9c0c6424b6d1a1f0a5c4a12347f3a6c976273c2ed32e148043068b1a791d21fe5c89cb3f920c3e88f78bf3378170e9fff636e2f5e1ffd6a6ec59f1029e7c14ba5735618e5d2a7aac442fd0fc3a9baf78bbc299f5ca22eb3fc58cb7c6c4076ea543a06b95cd56b560911bf8d072d0e59e22c56875cc5303b0919e4946ea1307f2de14d31a75e72e54feb569e85a40e3b3d391cb5c91a11a6c7585efc08bd32fd2fed0e2760435691e89ee7d330e058bb0c1c0f09561e15b9c21004eed9ab3c0c75174559cc3957d08e6f20467339508056f9c66b73c170f91b9cbbf69ad73becfce77360ba7753af3cc9e7a853be4d1c0881454548d5fc7b451a6955d5c2be4d20650bd7f84431b6bb65fd1f4750897ad99c966928b8c6e5bcc53fd7572ac92860496502e35aa164b4d53f733255873c0d6379c5451d08f008aa2a65d43aa0721ea86ad968dd3c8f4f3e4d0f1b6191630f2123a2e8fe137950c253b0cf01b9739423b9ffeb12d4ffd0597a8752d5ce83b4c64f78961de2885658aad82120871d4a44cc25c815f61b50f6418f9fe3bed595a5cddf333ccb98f9a15c1a7913c0c4057df3425f6e19c6cd23f7f37cbc9e5e4dc98098bcd9758ba78da394ec21d4ea9b9e9d5711eb0b19e1ac611b273299447bcbc9ab0dfc1bad528e739265d616f709ec328c42630ce1ea22fc4c5dc3cdb78c632f370e18b83e747d955035b5139d2576917f558edaeb208120973f4d090e2b9e91c7fadead96b493a78bbc9e787e89200ee925bf24bcefca795f137ecdd2b6d4470262acb42ed7eb5b527bd4bd700ca30462f13c4a9bdaa11bb59a6aa79c969d7de9ab00898935712bf0f84def5249168c4c7941fa98ec4d3165a547402df49178e78e92b5b41ee037487847620a7e938a7428e973eb664dd3f01fa25bf7bfd0930440b349c3adb06640590ec2b8093aa5306dc8b5bb60d89d0806e93f1a35ed0661f1e69b68b8f644911756a95115571524edd5804efda23601d0c63b065631fcca6271835cf54a1a1350683d4d195e222289e16c16cc30b1be5890ec1d2fd0e03fda62968bc8abd12648d7cae4126ed5d2120ef810bfcebf5d3a937f7c8fdcf142b757636bfafdd178efc30b4965d011d3ee00122c1a77c1620230e37c0a507b2bb28ec5c41ee648a18743d75666a9e7039655a8be4f2945ae0d303bed68c040b8438251c79dd2e6c18c9c667b82bb36df86abf342c2838faaa4ff32f1893f2af2c629d0ee7fd33a338f50ea21c2011b2ae7c42d5b11764025ec36a0c81b8a001ad8d94f48e6f7e1ab19c6a23848d9bf9eefff4949e117da687d6aa8b74ecc7e5740d7e28520ec2530a1b2947b64a6ee661904d1277a1aa2ae63ac4d00db200838101ccfc03172a5b7ba594ad042f68d0144e429da335e54a662fb21eda9c4e961ad9755bbed869c57484ff45bcc4b419c9ef0dd463447379c9f9d4fda38affabbf5ff0aa61fbf29716849e8426a90cfcd707158c07c2c04c27f9e04356c9d1ccff97c264335770b974746c940e9a9d820f48bf09effac52c0e4b1640b627534624b84ae4e95367aca8d2ed30d05040de8565f81aadad237c182f4b6bc30bcf56736deab0b794347979cfc363c92694b873a27df3ef2921e913fd02d336d66f3db23bf44edc92e6bc3b5d2ca8bc90f5cdcc9ccbb111346e1e360c8ad030cb318bfee4fe5158330ddd775278496b77b742cad30ee6c6d6ee3114c566467707f9196b7bac5f71974779aacd1f4f5f83e4898b922396ce5eaee0e282e353845b8df0000000000000000000000000310191d232b", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 57, + "comment": "sample_in_ball requires 1 SHAKE blocks", + "msg": "0100000000000000000000000000000000000000000000000000000000000000", + "sig": "e1412c0a8930ebd5be73cff29b68c3ad7426551e499553d7cab9b65a984cda37d793cfa5011ef4470dc57bf0c7d1c25449cd23c82868180997ef617a42d425cc5e1dcb6127d3b60e017a9ae1ac7dfe980debb098f6099d4a5d497b0ea1a063f863d484a697f9e4b87652249301455276eaeaae6e5b9c32991bb3a247f5eb6a64049c317a2e262bc9fbebaa53e1203d780aacdf8d8c1df9d104db25002257cfe39c49e88ee0adac298199ee0285aab5966c4decccdd64ff86a76da9fcb17765c10ce7ee8272595b0deccc58c8d89d11b78e56a4cc63b19d7d787988256a277b53ba7d99c1930bbf1cd550acf5c97f6f1b1bbdc6a9cd0c3be66672724e9acd89240987b0b17f9bb38b8b323e21b7df3a056b85cc41288d34707ddc050b8484598ede78ea295774222ef491f0d621509c9361b7c8537a4904e2e5ed1640968fa6dfcd828c8ba6e771f970aca894f0d57cd03ce325f4c3176b818f42f29c8646948b58796542da63ffc905171129418a349c0783ebf5ae14b3fee69492293ad3894345f07eddac036c40ad5215d4827de6a0ea0b4bd2dd86826c7f5c340fd2d62062a41c075259a9ecb3ace3722d3768d5a7d355373e3de4d6f87a408e5bde672f414826a2c6714a706198723d6e41feb39302b155f775bdd01b7cb4925b75aa1d0a0d533a2fbdabf68d03592de2b24a39d2d093fea87ca57e16622e59b46988d7057540a511506c1e7c819d8697564e161fb221de02db05b8715d7e8cb81b96bf41b257fe6c5dbd8ab7e4b6cde8a7e15077b3318c7d6b7c301c0ef33cf1f1c65668ce0106a259a599a4034010f5809fa7e781665d866dec4a5be77e8cd090a324fbd25cc07929b773cd8358d666ed767db22d540829f4bc09c3a60448a23ee40e09ec699c784649331563eb114ec47c8f1731db50761ddd7c972553e9819db31148fb97d3b4c9fbb89af7e87033536455f9fefdf8566b6eb0100040ecd080287da76a7791cb90af6253e701d9705af96b3597596aa58b9b0fdd7689eca35a7aa7c21b71bd80c3921449d3c5c8d9a26bd386b5c4002c8050b6c7f2489bee49b18ba85652d4b528beb21f35c4c9ab1f5e7f5fa4098b2d470be2cda7087c61c4f40e771ac04193ded1c45b0ad787be20acf7c9393671c354dd70e93618bcf89f684c9fb7c8fcbd004b737a65350e912a1945fa6f6f082406526f8b8b4603e171b754a3f571b7933e07bc9971ed2c299c4bbb4293b3282e34fc1244ad5c4c985acd31d4f2eb5b82e5b5e1f00c9be628e0a317885ab6e26aa7667c73c12f541cdf463cd72798cb1f7908d2945a131ca8ac4ba6343bc4fcf7dca98f30b0feade3f0841ee280da51d9501b5ceafccdb8319f9b32df23e74a12b4b61c44b3005ee58160c85302c141dbd6fe0d598b2886824b1bdadc874c530df612fe5260e996c6d289a2a5f3f811f2b50cac599477f9d8400298981654013858e4adf2b6a67daf24a5099e9a44f5dfc37b2dafc4aa738d4690f9650f019583eaaeddf32ba74c3468863cfd565d06fb26601ea919b68985f5b7f036b2ef1b7b0f6a738e292be4b263d30ea5d9784221c09dd6bd77f26daa6996bce002783305e478cc1cac235da49057da7f9cf7b8e25ae6fb02a46ad93ebc5d9440bdd07018ae26de5c51c87556ad561f3c7e130a24685f3fb9e39518c1e9d26c5be936cf3f9f08c464fd0a32502604a349c8956541d94cc0f11bd5a0733737fd75ecf57678264e63ce8b5323a0630a40cd6032d62ed84951427a5162ac1685f8682ee7d31621f6a77ade12acde5634bc44b21a2e1cafe4a689e0d30ac3d03a6903f75393be77fed6be1f970a4bd7f2e666721e271e155223c03c7068e4d9b348159ed8b09d14df65f4d86ae612ce3a931fc4a66c60da424d5c2cda9fbd7115b771e3262ac7788c70f6c0241ded2b9dc0d936e613c795f69d65539fe00ae8e7efdf07bc068ea4bb9bd83f5a64e970bae105036435bcfb23934dc13027ecfe3dfb7a1e9d3f7b2b07dba844598d4cf53d39fce8c0485b8eee92671ce8ed10b262e63944a1ee4889494917fa81e01b145b17fcbbd079e8574df474362fef1f48eac5b8a443973b75e72330eb03e15decfb18f69d10343f2daf0cceca3436c20612091e3ba0940dd3a5d5489338578e0e90f3795a7380d577a67e52adf7358f2e7aaacc75bbb81537134a12771c1539ad42307bb2c1a5277c123f10b74216cce836e78d24dc3ad7e794bfdba4d0306a519cb122e3b2d5a6769ef54636f4398e87bd42b0e6229dd7f430f5c6bd610f9c67c68f1f7a687b98c2e5a61ce50c9989a8de3f53c975bb75b97ccdeb3e0fb7c26f368b29df709f18193b9be27fec820136d8bbb9a037c13b03e8ffe2484d948a284d505916ee424414c5daf57514fde0a84665b2c31e2d4c8fde45bfdb2ca08e9974ea9449c5f332cddcaa46140f08deeb3f0b4bda7be04446239c7af4949fab33b40dba8feed31d45f85507fc232fdad3c85595643b4a7f2503c4bfc4b3c55d969af6ac80a3c02af1f5bebd23a66700733b36f133951193a1fce5d429b6200fdaf383798a1d11f3cd6536d3f9d27b58a5388482279f925a8ec2850db90f5f70650b0045b4002b952c36b460a5b566fd3ba2bf5bcdba0378c54ac9c12ccb46c7fe110aa99dbae10d5cefab484a3abbd517db89c71d60ed26fee9d55e73bd4ce16d898ba426a683b842885b514370f6d854321e599e24edec6c3a0db6f73c60bb36433ec58e162d6ffe8bbf2d345421341ec22e1d25fc740ec4d3d78b79484387a9207b9b48ec8585fb9f6bb4f776bf71fe7834d95bf4c6312d430eb79877fc71ea67ec4080c359d4c4901596e93edf71c6b3ae2edd5d491dea03186bd3fb24527e7f99c708fba19d606cc44ec5e1ffaa33cd2710cebf4d4b5869230b151ca8472d35a49cda5367098cf3ad4ddaf1838e77476108ead4c399938ff0cbdcd226b6f06d5323c3d885ff1b043e6a32cde2e052c7d5c273b5354eb020a81d4f9bba9fd29a5148359750ec9ceb6aa9906047f1fe4191d07a0b018df93bfcd96ff4af3beec9c5e5eb5884b32bc84f66570b9b57f506443ff634056b504871e4b75cc1bea1ebc8a9d5d07c9ea587b70eea92b93f65c3194b343cbfdc28d1a76daf95303c9c4ec0034fca333628720bdda7a3373d676e2928c08684e9d24eed7d9382aae547cad5837d6e1be3e7245e947053ee2219d39e33218d9ae52f6b5eb487b0e5b16ac35fffc45ac1d832df711cb11b2a887647bc2c3713945f92103f3ee2a52ad946b0d38bc0bd92e701c7e7d4aea25e6aa4ff2a42ccbf5da9bb99f88351076af1fb4e7caa65dc23a78372e1c2fa09ba8d46152cda3ecc8a9288598bed37e4d11507e6b5e239f377d1dc5afac7fb38ffbb7b2d4abc6bd74771923ae17cde020b34151d2555fdc1c09848196daab35745d88b80a79ce2bc86bfe7397edbd9f16188a133b2900fedb915629b3104dd6f00cd1403f8a62f71756d614c0224276594d4fb74891d1a2f93f43157b0a6a4135dd65fe25d227be62afe953667147fe7d3d486bc6d5436b218fb9ad0c6df31ce8fcafe01b81561e02ad5d34a0b669345a74ae16f651fae91365960dc687b5738d98817b10ea8197fb807c59a47eb187bcd2e4e873bacce97e70ddcba6b4189a57fdf7d6f8b62a0ff3d81348db2b8b35ad55d9cf67f668bb89d448a751b02071d1cf812027ede8658d51becac34be3eea1dbf31e6177509c81f5e3a373fe9e2af88282ec5bab7d00c1325c6a305bb0e2b47989ef26aa3cefe6a3f6e7ce5873f215dabf22c17e5e6fb210da4f5b5f576b0800ae1d282a5d897b6164d3a32c5d0aa176df03a6c1d2850cebd40f5d97ee707ec307b13538fc3a0c83a95ff0ea2e5470e1b682ed12f9e65f366c45775a9365bf74729daff7fc0e9bb4c05a53bfcce1b14cfad49647adfafaa0059707d4d72c133e5ec878e9887b41656cbebf749f9e19c3e9c4f464a67354a6212f43d15af01a762d8c7445f7ff27cf835e1ce11c844e488036838fd7254aa6c2cdb858b7fedf7852a90a8ac7fe2504dfdc1eea60f64a671dee39e72332e407637033a9146ce243950d4c3d07c17bfe22d9a191ff01315fd51653cdbb316e833c823eb459987aac7e3d6fb50bdee54652ab253cb9df0a661be1b5ae2a7e9ea429d7e8a5bbfe7683a2df259cf2f0221ce0c2feb06c117002d101921fb54e06ccadd05de9353e5874c2b67b45571a83e2967be45e77ad2336b076088b33f33f024185979eb36d57abbe493d84c7f7daee3b10e039339cff06cf36ddbb04abd0fb8c8dddef0f7e86f9724644d6654d4fffaca74f21f242a9722adbef84b44c9a1b7b815ea0317dc5cf688f57896c57af47f44b1aed5c92853a7eb1138a125c026c9e73770d982a0a25785cd91a4f315d03defca59a2d3cb3c015de5df285b53a455087d46109582854bedfc301b9ea9d87d4a04a2f9650b8d9a83b6885fc52cd32eeee85e740873330e29885c8be8bc9d657e612a87eb3969cd24950c9a8945844bffa33396876b885550860721dece6afb92f1d87707bbef2a34915657168c8fa2e3050f1029355f7e969fabd2ec252694a5bed8e0e6fa4e8b91d7294666737d80d3e2f51b1c65b8e5000000000000000000000005111a1e272c", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 58, + "comment": "sample_in_ball requires 76 SHAKE bytes", + "msg": "5f07000000000000000000000000000000000000000000000000000000000000", + "sig": "97a77dde48baada6090588b72e6b7ad2c44282dba1bd1db01fd9bd96a5caaa90eb975fef65599dec159367797fa9149747f1375653b74e6c973dc328651b27f8ea6ce9deeaaf67341e25e9421a0aad84a2c1085f56ddd002b2cd556fe7a555d4d03c41a5ab28857f2456d2f8e495dfe4b9f9e78fc9b84b1bb4238c2efe049c55cb8ed97a390626c184311b5125d5e6811b96ee45d98f5fa997972040fa7267981c407b45681cf7dd4c5a0a3df0b0098234e7ea01653b593eab1e671d9c792bfe734cfafa0edafe2b2fab7d386512e9caa29eaca22f5f3e13fad9005e8bac32ebb3676d247a3b53b4821aeb517a7dea13c1720365e40bcaa5d89e38521402e835d872ef62ca068fa570ff9ce8eeb16ea6a2b735fa3b80e8367626dac125059a83cfb964eac39a42729d238a3dc7486f6dee92a17e10df17857e37186700b0653fdce6c072ffb5f783281c659213aa09fb978a2095f1ec35fa420c421f085335f7685f77c5527e2b5017431e7d5418f07e27f529dbdbe8c66493b0bfbabde53afbe8b0c220692bb2bf1c3850603e7d0d469840bb9a79e183d41decf124bff1294e42469025687bbb1b496bb8f9b3a0d0f4c598014acda45636db287ff71df6f500c9e48c3d028a64ad0d085f1b2ef4b5307f357537bc9cc36c76e42dd0aa016eec7f80f20dbfa39d9af638b6c97639e6eb3d14aeade1c114db1bf1c17ab478b3f273891027b6490404e05e54fd97608eb4f4afb8389589d0a33469efc0fa00efe5b6197cbfaefa377f1ee13b7c4a2baf06c2a7696c28c32c5a6c717e487fcb5fa9cfabef0de5b867bdc8a9c9dac8b565c532fb667436d8de2b264c14543da221a527e05129092b9dc2071e0d414c807e70e13adb5e678900206f0d5a6ab82c14599a9f1f074c557f17b1a2a516cd26c9aa70d073833415823ba89d4153c4277f01e44086c8efadbf051109a829ab5508525df5562f5d19ba4e177e4db0d6a713dfc23d218c7ab13c9b3f53c29ecb3ad3b30fd136b34a6006aa30a4972a244132babd2a3c9da498a6a9e1567ee208e83686104e59f90dd2a3741301e586cd2fd86d9954ab1980f0cd513a0a6d34656ea31e87e09b1e10e18fe28e789103a08e79db9c8bf85f14e733f206ef2441aa45771d3aa1b5bc8b1e73149b43244784e98b6dfd7cbb4e1531fc71eebbcb277565cf1b528e529e7fc935db09945691b4bc77ec0de114aaa5696401ff7a6248bb785dccd11e819cddf857e039dea72043de5b36a6e8dd3bbed56bb47c3f2e37b0674084f8978332297f299095a8659af4aa916ed967efefc3c5b3f103bd19839d5d8d355fa06ae926d7efe47ebc914e7dbc4e14809f021c134a043c135b96800c5ab1e93d767ed0a2861884d70792ee93ee00d16236673924748ec88925c29ce2f9a2063647feb81c95123fcd0ded64912604602495207ab98a032cb81644a4f5e63fbe9e036be65b0147b4a81fb1e2bf5ae35d127a3579e30841cb6740c7e831170d83c02ba10d642b1d9e8d686394fbb00c06d6f8af6c1f001cbc352987c26c22ec239c68e00bc2ba2d3e4a2bf8b6ff803638c0d0366b6beef33f8a7d043de545acbf521f0f09c306ac960eb980d795bcb399da18258aa347b4b23dac64c1794961931086b1d8b7cf842b06422b1e052df65ecc6ce10785f656e35d633b3c18a5acb0faed33bab0022091926fee9ecd5bc683401922c94c901238f602fd2bd199c49f20a66089d85538517b32d6e19bad80180575fca04b18dc207b4a831c96eb0a67aefcf1a7540c6e6206a2d4b5561c169db7199dde498f7d2a966c432627d0ebcaed74fb04d1bcf8922bab0c5bdd688ff8d9ef9d2f181d0c7d411c0080e01e2846149f00910efa3e9e24db672e583cf1f25161cf8822e18b347afe6a75936ce7f2308c5a7401eb0342f89e48bc9a9e38ab993b5fbbbcc05c21f35fbbae3bde103aa84964ca4ea6f8bf3ff3ec19922206e0641834fc2093b36713b2dfe1021ad44ceb7cbffc70a656b7024586bb9af351ae55bbf3afb51c388881403d2350799683c074ef1c1ef54ae68fc9d28b85de1dd5f3edcb9ece5c867628130b5d2b2382b92a62909f108092eb035fa0010b0930a7dbb959200a8dd3ee88e5dda7723c2ff9773667852c30740e84d62162449e3dcd1bc1506aca37f14b43e9168a86531fe6ab919bca8ed4e4c3f45da0fc1d4082560b49a0fef0c466e4ee955832de16846b6772a57acc4fde0bd320e672363313f8b73d6f27f61bd0bad64fbc9a44a4c39b25bffdcd4a2617d16e73fe00972286d7d39335956ccec3644443b9072a3ec59a8f4d2090ead36e9c8cb654c1ece75803e0c1cb308c621e2e4efa1d6833bd38c4dbd60d402a780af1d491d228f6a4b31eb5cd1d76e570a7cabf028fa6492554615b46522324932b41d31a5aa22b8e074d88d1f18c02cdc244afc99bb2525a9471624c6cb0e9a4e2c3f6ab074004ead6d50c16cc5d09bb7547959714ec9d25ddc7ed2ed9efa26fd5e5c4b66b874847b6e6e5ed1b79c13697cd808af3897e4cc6e9e9ff0be373a6cc38d5056421b0f5d0c854807ed5e7f639df89c8e04fe33c6d442a593488472165a5f36de93ba4597286de3c79c84b855aaa9c78987b055fb239ec51036374a97a2052b23588343bc9042b014c8641e4d83be7ca343e3042a73e62a9b694ac17d6231b7066fb985b3f27a13fdd8ca021378aa9a5224f3f8774a891411c922eacba8f1e017416477b7166ef989cf649b1852cef35b67dadef3f709d0ef6aea11f66a006b38967c896360c79e0fd20b0c86b46468c14f6bd9311a1bdf99ecf835f5218cdffc9e98bf86d70dd381ec61f6ba4d17f06f434f5986f95fc16f2298bafa7dff786f90d6277193caff8e8aa31d4e23c1f41f407b181803a61f5b187cddc0a54e638aea5a950d681387888b4d50bf8006afa7051aa901e6add60769d22f0127f3c8913c23dd71d897f6649e2fb75bdaa76e838e6c2164222209f3544f2063ea79a1ea1a231aa4b0b253334a0065aeb382fab31dde9532a2664d9a28e33ddd896f517c7d3e50e0027fa10b4b47bdf36333de0b388cee8b18fc1e92d959cf6f440129de88397f9bf2c46fae78caaaee9ea5bf1a15a9912e8f61208e665690fcbcf2732ce6032092282b53dca14ad722e3db814748b5004e143cb605196d32693467144cc10ebb837673dc7ebb4bafa449961a578ea4c3856410ea200b37d9e6609ef19e9da63db7aaf7e2e54b132a4e2d7d9c2f926aef761581d532ec205edc6227b2cde95b30515a89b79b6908dcf6846440f87266715c9af73ce37f383438e44a4839a30ce8d1e3f1844f006b9b698d4dc52bb11f71b6c51b2338e85ec83e6da2b60d0d5c2f3e411609eace960d0a6f460612a4f0d6bbac27d202d4185e36bdb1c89c64bfd5fb4f3e3ebaf34a8e1ed0cf24b10dc24dc54a06562f5fd9dff7ab277682447f97a26203ed91925226074360d251b9d26bc7d2af105ee865b1cd2d59a964b5f3c02a3ef33c9c9acecd74d92e5ea48578d45a5292b91d221f872b77879bf2dfddf2fb9198fd8ccb6cb0de9eb15e610e1e4ae4d4938b1ff28304d1859066ee45664d849b9bd977bdc16f41e64b0ac60eb4ac518206383808cb59bceada3d87cdd6373a5f49e90dd5b7e71b389fb6e36f7bd7089a34698fc5195245f3ce76fb3b17ec71fef9b160d7e7514d271cc3bfe9281c1cfcce62bcc1c0d4b9c801bc84abd9dfef83e7db8e9edb02aadd8fd0a4d8c0954d1bba04552f049f346e8209d4702a5d0ebde2c199f73485eb11899ee2070cce593983c8705e14bffd69abdd6c9f27b9ff474ca6e938b20654edee807006a53f4aef62c897c23b5a160f43ae6e9d3b9a577deb17abe291a12bff1d1fcbe98ae9406eaebb27a8233b3d52af2a91ccc240c2b9deb50db5c42de42cbf56af5860e522f45cb3c696606a3bb5346a1f18ba2970815577dd72d9cbae732013101983720c29e897a2adb9e36c8d77f39ffc59092532938e83d8e80a7dadb71aec0ab7694bf8e5d67f71fa6bb7b185300d3aadff3f024214964d47dc9ed0dda55eee3591b7c20145065910751d96741c2ab8d2d4c9b8925019923ad11189da9f226b63d9656fdcc50d2466dadefcc8bc2be6fc07a5d99438e6cf3a164d30a342fcacf2d96982a5db6e6dc6aed591d02896940df04ce6b57b09341373a3e7d52d9b41941393d4e2bfedb54dbe1e68481e3ad51160b41c92817f7ea5b95d759467f7ad978b099fe692c1131ade3162314bc62c95462378cc895c5e4ee1ff383a39cb2ea495b83009547c974b9e82f380faa431504689bba67ed2f2d7dcfc9e0498398d9af1e76a5af5bf6a6ebc0c1de791c38de7505b65541a79b9af4dac303b9563fd8f5af6e3b88ad40bbe143a4376d5c9dad22a0eb6d66ece160533d80ecc8124c186f93db5826dfdb9800d253165bcb17699957cc1f0535deac0809e0f79aae8793d0090ec09428db8e5220c53d457d2bb8a730a668f35ae750944ed0c414888927ea329c71d1488b072cd9fe880a5c82c9b9cf915cd0b3b8a15688003d6b5e272ea61d3c8f38395864698b9ca4ccdaed1a1b40666996ef313a5b67c3dde9304041556a6c6e7bed0e1c3775839aa5c0cef42a6aaa00000000000000000b1219222c2f", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 59, + "comment": "z_max below the limit", + "msg": "4b00000000000000000000000000000000000000000000000000000000000000", + "sig": "88190ecd3e1bba698bde9c7175b2b855e3297f2c87f066eb0a4d3192b1e15e2a5539bc8a0db56ce7b9387c13b82170ea91a38e195f432493716e923a20511f8d32f7aa4f83e420eb76b6d61101351afc5e1eb1c317ad09795f08aeb9e05e5122c07e94c29e3d1c822c7329ae0f7969b6e525df66956318ea7660e1210be60aca014b4d7c3caed17d7deaf39dcbaabaa4f862d2fd55bf310f66737ac2c35bc7ef8915cf9cab73218afe38a155dc49ae81f0c3c58d656ab3631ca535770cbb1d158ff35051d94174f86c3b7d3f41d3ec7d1a1f9355ae373bcc4518070733c4993fc03f2f03145b5a1d0e1398a4a425924d3da2efd00bab3bc4151081a04e4e3d38ddf67e4740fa6cbabf3b0cbbcd411025b60b6896db7a13cd9d533601b564fe57f974dd29aa828508e19a6ecd084188a2c615026380f4075f6f5a16f67d49674002df963d628b3a964dc47d61dcef2a42d72bec1a4adef0acbadf7ab0ac0c25fcdd3777ea1ed00f649a216574aa198c2ca1a6964d3ce1442074f5fa857150e0b2d1f1dc750348ac4a196e259d6b80fda3e94eebb05e3fa80f75efa9557889629be2c66d5442f917f4e4a9ddfa3f3b75b76d725d2b690f98bbcbb48b9c9d7864dc274e9dc21da79bc6055810009eef2aa6bb98cd7d6e51fbbdb37ea404d3c33d6a31da87ff1c7caea51fdf9e5dc714961d1f82d1e6d4510e6e14983f2c3d045b4fcd0303b0b5215b2a9f952c7e5a7e411cf4d55447f78f7a60da2e8d07afda18ea491723a2c5c46febdd342d823cf079d6bdd258b354bb46b2a5aa6f0cd2ce24cb91e011c061c72541a10ada83fc668eada549b20bd407660ded336cb72277b9ebe4a609124ef196407c7abfa5d945148e6d735c9be5873e8dec42d61805863b937ba3d80eb60374c9b250a84aa2362421eed71cbe94dca23fc4f9b31b8e6b716ef115750b0e8790f3c6a38e7703607a4c0cae5bc3d69bcf74742f7087fb5c3f8ac91106cff31a1c00e4f27a08ebbe7b06798ed269b23beae0f21273626b5ff61448179ede64e4560bc8c0bac582da6fbf1856718d500a2548e0e7bb35a3d05679472e8f8d1f9331cfdb11f1a0cc117e8aa993ce5b05c605b74928197d16d18ce0e88c89fbdbb823744303d3432e898923da5d159b161b9d406d3ac6cffce16b6b054ad2bd9c7a9e13f0511875135911363adec3d2ede6c613b0d6b239be3dd632272768268927b18ca4e25a3e5962e733d4f5a8d3a8724c414a00092884833f63990fd854a97319d04001cf3585769d1568663bac855d6ad3780114c130d0e57784d7f7f7c042fea6c03f7e5010b1ad08244ae6db605355d657ad6dbda61fd920fb74b531265e91da21f3eed324ddb44c999af8a718d964c3d62cbd0190e5ffb8d02cfca43f2aece92263960be08b6042f76d320b572125d10a66a8fae11a8af4f50e7eb03bd872f34960efed71a0cdae54658fa50bfc7bec9637ffcd2673b093a942f81d432dfad0de68b893926e9024394d1dac5f6bec2dfb4229acb34e7e800fb2e3f1fee759ad157e79c8d14985448011f5d216cd68bd7e9cb2b48354fcacf0e7798d3e380ee39895f1f766ed9356c2b422764c06e7525f1646a699e22618dabbcf2f6098b2147219b9265161d7f5bc5cfe28167748eeb34f56816367156ee9335ce64a0a468403c38f748a3bf93ff2c2ae10b84221d99a9435c7715f23a1fdabd334714907c2aeb22f8c7fb438e391a32b2022760d8f714a5db12ff793e81114ab7b8cfa2df6131abe0605641e54d986c469dc6e112abffdf13231a34b8b0d204c27a871162ee794c66aa3a0441abec9942392ce162e6cf14601b65828e3d56c12ee3df93fbb6b8905268d6ab93b02eb828a586820daba8efbe0d979e8ad8b8aa1dd3b8c78bd85286e4c7798fb2aea13d28c3368e72fcb9d65ae692b96dae8cf47ea9d0dd16bbe9c2129ff02b69a2477296d21c2878cb13cc0c9aa9e982c52d824af6b9573339f1f15f468dd3fb9ec891b2479e1acd663481483ccdde9c793139474de2a9c413c62dadc069e197d864e420e3fa1ec4aa81fdeec8a0c356e58445d01099d8b12e60d66d7ab2fe41683e2980e48b6f6f5235a059490fba0067488a01e6439801b2e490683c4cfd79f086223ddda53ee4b66f132865da58471ad5d01148ea0b141b311cd7c928f12e3db20c766f13c22c43785ae80c6aa4ab8f13bc4f5c2e17e0c563c02feaba052b47674ff148b020ff289018a70c453f05c211b8dde962e71e9e6eef85c0200b9b6fbf73fa4f1d8aa7d4572e28ac8c470d215f83be9ebaac740989f10a7d9e174a1bd1ec371930d0a543807328bb336ec3ed05c976ff70500449503825253d22c8ae30082fdc631f31a736b234b7f1dab5a52ceb3c81682b57b2ad51797c4e68e59aae137b191396b6dcc5ea6728e07b6359550a4c904d247c3d106d1ed3dbc97b5fca6780dec1dc8f37c1be937aec53f5802c64c73711d6c1d119afc99b0c50e4f656b58256a2b780463916d89a9f7a3d3107dfc43d90b64b068711b6dab9431a5535e4736e546b6875cc9135dacb816a56836a821307874d03bb56702310b6f2a813416afcd87c25ec45c25ccedc438a3626822fc85fc6b6fd12756510537cd9f20c0963bbef088bd4560b1b722dd21a502493c68acd6b84c7ee7f9908bc663e91990ca6629d8644c4a97e552a2fcbf4195ff8e0b265e27bd84580784cda47c7f251b8fe4526238b11aad3dcfd48e3626f10ec2b30efdc57486c4d0cf1bd4f6407e7d62e7f680cc95f18847c207c895d22e778a4f8beb7d8ac671213e7763d6f35dae42c18d7e848bd1e808b4e7e57e782298ac52f02dc2fcf0bf5c8e2285f22595a8cef6a3a22e90eb545553fb9a765443021599f85647cd1cd0de00ea224b2fb77c3fec0be778f46a1190b83c1ea28bedd22ebc38d8bc3b747926840c3cd658ffbae54e98fd2ae1d2d01420dc323a67948b63d00721e14cd8fd5f6e964aa3a975c1db1f54aad4f8234a82f7e694d3ea036f3b61d031b53bc6cefb42afd0847cd1f1282e152f66f3a3cc005a9d3b0566827bed0bd0d5f5059c8bd13d689783bed285beee05ab104b50dc594faafce045b532d31e7a3371d6f1c9b90edbab8d7c71de038fab4a7498886e002af08dc0e099bea3046912f2157ad57ed1d2c2684da30c7fea95152a96e5cfe8b9ca916d1d0f3a8ce144e99441071443fb3fa2b5338136ee6bf087615edc1f6c12c070fa4ad223a2b718f350d41c221c7b5f2048073c99fb9c153d3ad259adb01331d66f3c5c910f44ab501c1d92a533999b7ac0bf10ace75e6eb4867513540594df4a6c0e8a4b776349aad80bba90b20b87bf740e46bbd6964eee91e54f7f698c57ab52f3cfc248f06cdfc67f06d9400881ab3f330343f528a024f282d9bfcd2c5077b2873e31808a3e375cc116b454ee48fd5c43905bdb71a91b0eab7a13bd642bf0f36fa46545065aebfbc26533684503923f0d840e8f9661c1b11b01149b396ab647839128dac9a39eaa0f4f927b2140c8a2fbab407d1baa72e863ab8874dd056406e857660001b1994dbdf4c63bc7dee46e26c98b823298a5572feccc994d73028fb6ac2900195fa49968afd0860c92e547bac193b240526fb135f0a9a979f37adc34d56c10a8ae2557f1fc238787ca6c76683e916957876ab71d5fef0062536eea8823ee8a17a07182e366545c6cb130da906cd14aefd564d9cfa987da4b6833b2d6e91400904b73305721cdd929d6cd640fd4462c312e1f2811f93b47b650086599fc32145a1c94ab3b0a67c7df23427c0f845084a0e163bb3ddef3bfffb5b420b908b7bbad931eeb5481007ad1b07a4e0947e34b36a3ddd26571e6aebbcd0b94cce0154f2aabf8ba23ce0f35f8c5d82419bc23a6051ff1007935f4c38703919f829b9971456c7c51169efc61a3155960e778bfec49642dc11551af2379036f9c9f5b1a2ae37aac45519f83fab4e14f41964e480e0f750fbb3f4a34eff0674c8233e0d444028c658d99929d50eb95bbbeb5b16f90b4be4acadc4c7e384ab2c6ad2829b97038fb297804a4db959b1c4588e789f9e35460a16450a3e1b4832d5ca66c69588ae4973dae90432c7f97bab95cc0c9e821d1e42564d10619006ccb9725bd059e19d1c09f65342b27436115e5fd6fac5d560074baa5ab9a8befc83234a99fd6210f038eacdddebd1484e5386c32ff1ea833888af8dd38196f76a110dfd330dfdbef1a1aff2844aff291c507f3d703ecb36817c41e6613ab500bdab75b5a712467e3a7aac1c22910f7d6154c48cd7d57eb8a04ee581809b6d35e0b6395b712fb1145a7c4cf5fc3184f50d0838d9a2f7ada094bebf21da3e9ff593668811236a43f3e3446ece18eb9d45da90cb75e4beba18371c1d5febc262fee5ad84638ce9fabaa60a0137c1232039f2718864f1d57aa0b5c0c0053ea10df2befc31bd53e22a5d3f7d27c2c5ff923df8c0a7505f09f5475f1e1595bd8728033a77f97754d81d6b0c43f45fd9dcb102b5389329eb27c7d199a34b06ab8b8e132305059429d424734e775cd8bb3b0697c031ef8c6b2143266769ac6dceff6fb494c5f7787a0d4e1f90f294e5386d8256063767c82cefd182146475a636a828692c3cbd5f6ff07375e6e0000000a1319213034", + "result": "valid", + "flags": [ + "ValidSignature", + "BoundaryCondition" + ] + }, + { + "tcId": 60, + "comment": "z_max above the limit", + "msg": "2c01000000000000000000000000000000000000000000000000000000000000", + "sig": "1b96ae9e6d51a0b5fb3dc41dbe9a83a1b91d850588e9f6d433c42cf0c71ad03630fe02b43a41f3c617af827af60f5fd54bfd8c62bea265344ad94270bb54fcbfa04c9d700cf009b74f90d66012f96ad265f7c59d71ba564281b39ae12f3f9bfa3d3dd88a93b5d7f34e51f0689125cf87418f350223cd4957219c0221f8c86cad528a609bc9cae35194be6d761a31b315c1f011f0671bbc16f1d2525ee5908c5dbcc2bf227f6b1a02186721afaf6168c5eabfeb477967fa75ed9d9e66a201d32c3ec5d476c05c2ada966b0b32fbfe1320ed3e4cc10ea3a78bb4c9e74e76dea0298f3138685fd93076c69a515728c6d0c950bcd6f9fb76f5dabb60e4555a3fcc5a020b84ddf4e51dcbe8f58666aafb56c5acb5dd4a62f475cfa66bb806f1792d80ea7d03af243c9d603aa1d37aa9b18fae107e7b3c13f25fd18916e04234939e8e14488257c79776ae04173cb91439b05ee00022ca590fada75edb0f34c4d300919c18e9efdbec7400c48777d1a4c73d23fa71c1fe773272ad90a7fa1f593784755c01960233708f45e10fe366a0276ce79f6aec1d2e042d2e13cd4cb5009a9211dd43c8ce4d82f70ac207d52d57c6b6f53f03b8da1aed029134df00dffd18c9deeda050513000242eca8e4586d2ffbe31e7dc13a637ef298aa6e23f5c199cb68a84d54ad618500f66b180e1f8b147965721754351d06051b78b8bab456ad986eba18c920fe2d4426e6a665899311b0ac30a4dfd8306f1b9c98aac0bd697280c6786a085a83cd2af2eb1f4b127ab82b7ae876f4b012cd201686546c44a6801b1760a66665ac730a4c89dba7757a229044905a05dc1312039b416c385398ea5197d4afa1598fd5925e82df7e124ab65cba6ce965307d0670d2331e28b24442f185c8d176fdf24c29eace23e1195e4cc1d71e7e1cb1ecbc144615959f2bb4815567085623590fddb56e3f3a0e9c7b3140494648dc8537e683f0995fc4db554a840ce0c8d9365638714dcba28893b2251e59055db75b7eb7e92d4597b5e611e353fe6373aeaca7735e5b781ff719f0933d9975e9a245edceedf77bb5a7c2741e3efd1a12b5c5c18ae425d53aa49eb26e3cd80e5a16a67f54ff7b4bfb588ea015e32281b82bd0e839bd05a3976ef6dee6a6a123e7c743d1ba04262f73cc960765dbb7c117ac035d1444c754969c0cc614d800dce6720c08c78e46af8aead49af596bd2596838bcadc863721ecfae26e29b1111295cbac3f8aeb76551a7dce55226daaf41eab266a3d4cfc229dc48338348b91f389e33536392fb6e27d03b28fa88fbbcd34b449e514d720916d9c98c60266730470d19f8cb7453df136ff7b0f61ea916e5477e5b8238ab9d02610a2cee6cbbcf84a9a2c86a19439aac921f14d710c25c297f1419b4f4e9824f56c0249ee0f5b9eca355805a03df22ebe1fbc8b93707ed1bd60a12046246186d9a816497e2ed7205e8f4359b6263edd23ad2f4f308191270902d37845910b4b97ff1eddeab3b5a94d290e5110a0ce5dd76e78edca4c56e47ef8a498c5cebfe3757a2a5a108a22beeeb9e1a06b843a0b24dace33b61eb3407b8a9547b08b079ab2c7075a709434eb3722aa91a5ca5cb3d8ca92d3c6041ed45c68d5ebc928000e948e6cd7a21a3b4fe05d4cf0d0df772f8b7f52a453dfa6ce44d0d52e27e069556250fd069532055a619b84e4a22d70ed558766e946e351ab49009bba1ee4a4655ad260773c2e046f4f1bbb5dfeaba6ed8c6b0373294c683c07589697ceff68d9ca47dec9ed8a2487fefdd10f2dd788475b794e7e08654a111e478c88c8c6c1c6424b8c8fef5eb489c098a45f33d74a6916b82020abd4df285ef5a5dce8b08f2318299fb387cb517420316e47928a13b06cd34750881628b210ce93c15fea4f16d0069c3476f9b4b257bc7fb46a9f7bc556a6214fd45aa98e3ef9e8ea89e9e4324184f152992bed351209f6e821bd9d0d0deeb743605db1ad840b02bdbe76e91a8266220276455f6ba16642e53b312778851e09d52e2cb848c6e91dbb551699cfd6203d9862c67773bc505d76a4bf784a77f95dddeff7b0f28cf61415de003b79f198da701797388eb5f1b56ec168fc1088ead14b4796d47ff8adf2a5a418c48328e474deb90312c00a8a350c07ccc468ee49d194ef657007262b2f907ea6c72c7f9716f443fc02f77e8e8420aea85b24e866262eb03da49c11f59a5e47062be56ce288d4c8d1258e6a6348562845628f278ae4c9dcddf629c4dc553c7bd32b4f7b81a26b766d0fb13a6d9c2e34589f56b5a0c014c61b402b521d0792443e7042d2f9a621ce9f25266b9b0f5a16444a7d15e6270d4bb2f0c2e8e480c7e12823ad2ed7828b6ebc96158746d5b3c3107ef928e6f0516eb3c5f707e142ecbb3bf9c889247e80e3f7559b92fcd4ef941ba992580e436a814243bf6540cd692bc2c33720d78b8976d3618fe505ef0d93b4d0b91eceadc785ee865b48b530316af6d294890b518b92ab490bac1b0d57f94cd9da765b791eb6b573cc7e36e8c203867089b55d0a3de1d1458a5e101f7748a620246eb3623af6bbe847b2f895c9dffd2916e072868eb1be05cddb9f6fd74b5c863503d16d8c3e50a329867883b382a9ef62b2b270c42af262587e31dee4d5829254fbbc019b3d237acfb1b173da3779451da5d3373fa18551e45614e14891566ecd89b2945dbe72944e98a081995d28d40212768248a2ce002f473ece8189f8803b7c8b9dbfb3cf6e203c59d07de99d012ddeefe35453d0b9e39ed880599ad2d28888feae66f664f0ca01ccdb3ee8085cc8a576382b9dbfd98a39f848d8d3348219d90c57675c20f24eb6c5bc8caba25e7c935156b42d530f4c826bcb5a0ce30cbb408df49da6c06b1142824410fb01edf247136536508ea9e7d77c5ebed0c42d4e398cf998196c47256ecf85e17070a609d1df95112cf1a1e843c0426084f36746c0fe04ac0c75b23f30e766b6ad71076f4e9ab412a247043c47f0e0d77df41bd7895d7ba08176a130e9efd1c7f03b3c409f92a5098a8afe9063f40a4a7719fc2498d2261effcfa3623ef1d0b96f39e7b934e0c58fc26b271695dd7184cd9a6ed4dda919723e05a46e06e357c6187b00a485fe0808637ca0b5303f38934e45f377694ea67cc2fd2d024b6ce724a8a50eb440ee759a4ef5a26014393f7e8fb8bee31531221409ed50f9fe199cd066de33ed0a6ed63e38018f6e1b721ab494a8fc5498381592752ca136e16b6bd9323d7d52b9144882c70dbfb4913121fd1c53beaf3d462147d17b0639b9ca109ea25574d2582235d5f993aa6126675d884339d9c445d5b783f5d63163652cf090e5513f0a5c12223d03a24c8ef2d4f90107d5d9bb16e472ef561b1d7284fd7af3b57f28002bdcf3a4f6792150d03294c2da159fc19577cbebd9f1f6f6bb373731b5f993ead2e4a7ac90b3dab651a12e85ad82dd12d7989ea0f04a782bf85a7919ec603507427e40a2e543ae1633c8e6a6c696e89c9a53c4d0452d2ad350714fba30b9c7c2c9e66ad86782719593796608fd3be225ccf213fa17529bd0460a861211462316ea58bbd0966d46883e4fc2db545ba09bab14e75c6a801a68813d7163e3307e0cd8d1042e08dd1ec26e891cdd9e03571ca271c0490781105fd2818511df86ff5fc045864cc10ff743506f3f7ba078acc72518911d68541c9660dfe9a631e90e3a326fe3658b172eb9d17d20d2a282a76a3bb248375b331fd9713a1616d3d478eba1842204824bd8db871f3d7a20910250c1d05b928d3dff0e869cdaa4cf16d4c853c7323c78d2c2bfb6188c8515b8a1a880c8eef9736145d7963fed6c214508666d15ad62f3c58845c31b25c6940914020d3a0bb87a0304b49757d5854034d90a5a6531ce45da4fc9fbb4cb333c734640d4089827805a3d7e6f6cc193615d4e1d9b6506ae3403f6c1ebf6f944b3528735647cea4e820c36408478ecaac229d4ae0d1877759f5e86e36a02384dc5d11958f9602040df6fb79f47deb7aa462f2e3e341ee98e85b023d379d5d06341bc7a32a95fde0a5ac5065b4bcb275a074a3a9b85d818d1e1a0a58a95cd06e508d521dbc0d6593aac784f59e350424594690974fd3034be2311b3e1da598039b25d5dee8dbded6793c50696caad8b9dd61f44ccb014d2e35a08915ae9ba304384a624df50a9c2ad809b44b0f4a2eee8a1fd7d10d9021c61bdf65fb09e35c5314f87506b19550e50bf19d5d37c079b642c5ed7b43ac2bdfe92f38ca2a17c8a3a58cd9e227647a1be6f6e733c4bebcc46bab048aed53b15088063d67ecf9bf007ae533fb32c606efb72b093f93e27ce1b3bd9f5279ff2d1b837d95b93b8b8a2371288dcce0b9a55d600761b1263b017bd3013a4ceda0e53169d4be8cd9311e5cec0d5aef037e859419ff20dc8f413143e30def0e36ef1629ff6c3300de11cff5184f2a512b72c6e92f8233bed60626400300cbfa800d74e10fb2af47b95887dc51bef0c770252895e7279e63c4e2fb72bb28c661644517014af3c5114700385ddba3e245b6233cfdc5baa0d479e6713b57f47413c762c626114f2248042e515c6f949aa0d0da599eafeaec0e2329474f666b7d8adae10420548e6e74759bb1b7bdcddf25289fd7da00000000000000000000000a0f1a1e272c", + "result": "valid", + "flags": [ + "ValidSignature", + "BoundaryCondition" + ] + }, + { + "tcId": 61, + "comment": "r0_max below the limit", + "msg": "1b02000000000000000000000000000000000000000000000000000000000000", + "sig": "d0f3650be15a65fc38721c970e700ff8da63ad4bd68eba40374f0e1c303f703768beb02da4cd729d6f2a5e3ddbe90d72fcf3e32bc7afc5cfeed6920f93508ae3688d0046d4d04737919fd404d790a90dd4816c0c80d8c3147ca5ef171fc266ce0990d973173d2cd9e04e598e47afc7ffa7fa8adb9f32a8ab47f13d1cd7de14b9e3ba63a4af1f391e7ac29773533cac14c722d9f2d1fd2177876bc6fa0e906f855f9d41e979a546ebc5aeba50e1ef0b8259b7fb5e0241e4a6d65e258c5b68f2f7cbf70fcdec29c4ccca614adb534955d678493a4f27753568798dea62e852edd0aaa52de0496d7cf65233e92f2a07168f1788c9892efb1b0b1520237a02f43e51b04cba756abb46d23b89930885e21aedc7fed54e46a47620bb8fbbbca05f2385a5f8fe600694eb5a286d8b6f4173df997fb08446fcbd686ca03ccb3df8e5181357b632b48bf88da86447752b9e04d02d0247bc23405667206eda3a3231c3011b435f6e6b859e36952fbeec26d676d0d6dc0b5f3662e9ecf11385a4d23e4fc8cfce61bfbdbb9bf5ad4ccbeabf0f714027b3a7a3d5e0dcd5f0ea3a75ea29f4da7eb60e39052972066f7f1b42a7109003c4de3e075fdf92b42d2588304050016b32152da99d8de0cd898013d6ac918ff6b77add6b22b2cc4c1f8b75e0d1ec069e8f9954a2504af914742b3f1d914ab5fa6dce9d3feb798c617d6230373e43d916d14340f30cf7bec1dc2847bf71d77bdd6b2310fb4aab6894e092b87abe9b02ce96626ec2d27e1ff3f402dac0436a6aff6cf55439cb8e3117475f45db47e95456331652c921439b8e6ad6f39171a0fda50230e72eee8434b5433f21d78f87839feac320cba94bae247dc70c456596c5af329022f8d226045a89bb6fa01ef875f81ec2e53f48d1c8b252be7acea1f51b9772e14d7e42b924b4c3b22cefd3295ce1f753877eddac4930130400d9378a4f433d2941006fcabfc3b7160a2d4a53a5898c6f590579fb61da92637d5ea1c84ed85b16d7ec4cb0772bb1beb94c4dbf9dd5ab41d34fb25120d5e6b2acb1b1efa411e30b5a9169110a5bc7d13a5ad92e6829c324bb7897fca65c290fe9b461f9e54756b81dbdce7b4666251d7941f7be7f83194ad814b202cf0e51dc3e3700eda636dede2f3da337ed6cb83e3590c71152be67a836a97d81ed78201c1cb89292bbc90af10130f6058a3343fe4a0ef296fdf045d8c9b9a2c922ed4fe7e9d8368c3167e0d5622c540efc91619a466ca2addbdb5e0ddcb403c4ae70417b993f66d41032d65042fc79b4d4eb802f9e8de55f6bf895afce5b8c3a2da3961a54bcc5d2091123a00570941a7ae51a5e91ed1c549b8e23f6b8479f705cd24a295b91300f35eb82c9659b28b269c6c21d56599696a15c2f038b363b4af9039b579d8590dace080e805e70ac7b9f13f570f9dc04fcea3d37a14230c04259a831450b8d8623b486ab03e9a9e6ba7adefb13d37f29dd1fd620f73bb8236625ec2b25a680d1fc0ed7c3097d709bb43702d6be1a4de7d8399ff02a3d5452cfb7d7ceb82c2239caa23a159fa8121dced581a0b966d36b0d4aaf26be88b73a3bf3c47444c6e4610b802b729b56e7417473bbca142e682ea46928e602e39487bf4b20e03dfd0dfebd04b890d731376e4a773b96f84b024bb1dde46dae63fdc9187944447f2f3d59461e7ab691d364c0a47c64417bebfd93fde12fffd5a6d747440c7ff458662989d5343bd8e7c154a3c7f6b661af5fdee60c7de49e86f0d10e42df9193cf75f07c1fbccf6298972f373769efad0b479c21fcad942702adbf21d52d0adea893bea5dbe0fe1c6360fdee0f98e3e878346cca5a09a83a1f8acd046cd8f42439758d201ef18d532ed74e0c453d64f3d19464c532eac1f7587457adf9d5943b35e27cbe877eff8dd52bc19a1537d0a6208531d6d5d8ab57a721ba399e7e73932219dfeeef1da9efb01cc7b42800c8a4d0880773dda3b4720e793d116dd18d201232c1ed7de2f6a5854f5170e6df3d848d382bde975a41fcb2cded3b4e40694a627f8a7d01ad71a88299160d5781316bc1022ca95d2314850243dbaf3ac054eb2796303b86c5db224f8f95e6805288a8a832b0ac6b853a36146c808e2d5c0bfda0aa1ac70af90f5380391a954aa04594a2d9b62ec1e0cbec2bfe73fb3dbaf79e3fb40fcdfe06ae96920e1c80240dfea7b490f440319c23d80489ed9af9d6b677cea2d3073e46bdf2c5163588508da085fc32d4cfbadedcdc714fddeaa5dfe7ec5f2a024224819539c685e76d0982481522de0ece718575ea5bb3f70be7e9d93904f3b40b0f43460ecbf95cc269efa6daab55ccca5c2d91534ac60040772da27604b08f68a84f3a4d977ba5d690ddbd8efd4bd5838c8bb2f5da599b4a5ae240c5b0256444c38cec1378576fee88c5ab6e7dd801f83b7836707fb3b22c1509a29640b721d8302ac2897cb10d98323157b6614ba2c3d5df3f2bc6927853ccb1f39cf275c5a0729a3cf50fa91a79c3c7326dff047666317c6d4e719662ffb25c40ed171508e0f938b8fbfa101b40b2b4a256d97532f801b21f3dbd65e693ef481fa36f92c3bf611c006e8491019ec087d6bc01549b6b7c3381c919e9dc2d1464849da2f1a92c6d8ed1fb864eb13192b4f09e6b03017094c1a4e10b8dfe788f6617b9886fcab092c8629aebbbed6182dc58d7eedaf2a5c8425bc087173aa79e570d24dcbc295cfb0495e3f1536b7c5bfd6c548fe7e37adbf73755a3efdd976e196f2fbe4087f3fab78946cc70f3328255eda772fcd627c7d07e36e2bb0ba4e04c7350872bfafaa25218e944fd537aefc8aa19ad321010f802c35846b7037f2fa362740a20096c22d79d0805833b79e946a7fa60d1c1c66f6e69fc5a37ed8d7a2d48d06560c8e8341ab8693be2ce14e120d1dad5868d48143116aa9e06f28af876879fcf38b3b695ca7b2b64620097535fbcd449b69deaf8cef75c73ee09e160b0dd347baaed60a5b1f5899d68ddd1d9915f8cc18b316c2a0712d7c459fe1d1bc2ccfbbbaef417fe1ddb3813206bfa0748167447b124b7f2c1a43d317fed1bdb079cc05101cb710a01bdc23e2b83dd33e6004a618ef89db5b3a0ccccfc810b5dfe3b86166e3e3da99a9fe6800f46ce69d3d8e0c9d3c64e404c07f8b835386b7002c90b915ef689bd35f1af85d060aa18e6bf8a6cc3a5820b150f32855433381683e34b31d39aff0907f10913c38be3c3e98037c09d59e5a4ecafa683fae16b72132c9300c1077dc9d786d7059d349d3bef11fdf31cfcce052ac6fcab6bd7b148acc88d0cd0c9771043b9f8612af19c25647afda5c28a9cbd9fce57765643258331584d3703721206fcfbc8bd70cb9693d2c758bc0e89385fb5a748087796fbe061127997267499ee685ed49c8ee0ef64e8a0136810ac3b75955db31e0fbbaebc171d2d05a62f8da64adabca6bc21f459608ef6bcf39c16ac8068ec98a729555687e9123018d4e2c5e2df32bccd32c630741b3bd06369ba39edfa64a73884e596ddbe2afa6a36d2ba073f36b9d5edceb1e62700f1f0b7a78b8e2931645bc9cfbae8f139735202f1bfa82cb34e006cd501c619a68e852c2bf7fa1eb653140a0e2dbd81a78dd57aa0b415f9a031f6dc1f2b07380fbba28b6454e9027108f407206e1ec8a5133adb37d8393b45d89632d5b529d1cc67f9c68ac1597ecc6b7ac1165012c2bbe3a72ac98dfcbd66212ced459c7d3f8e3367f3e6afc6c7c0eb6591d6fd090a9eb93b0719311d534db26827067283f9de8ceaa32ca3c910a79f0ea2f08f2b5fef210b4134648ca1543a23091dd6bc586b530b6e48d13828c16cf2f048cdd27a641fe0dd3004fa1c53d0569d5db776d6aeca58ab5ca4c7a57a305ff6e71db71852afdc0fc936987bf9b6745af2504392f64c752f9a234e29962bd5b12f27685815a36d9bd488c2a892faa4254c50454224ae3ce9d1295c860990b1e467b659f45606a7c08017b7cfbcd68e2d0d739d9eccf793a04271adb79a9fa9bc1d1a5a96633024462d0a95878ccd50938511f375ebd07f0f94f6151a6c1b8f787cf9f84b44c4b2cd30329b96b854e0a3154a21dfb000eb187567b815fd35bd533d61bff2365a11139661d41e68d22edd2796e86369dff96aa458be212fa6fd8295d543e7217dfa5963a0ae6dc1175f13341eba2910f60742a778152da38f22a09eb7d1227f8b8c3a33ed5208fdc1f1b9c0290850820a4e6c874675430356340998f6d96c9d7bac6c0b12ee232836840f4d8520b4685b0c2c1c9eb7db8685f0a39358c8d08e292844ea6f25f07280ef453dbb3d9a2c5dad2d8aa379f910d9581af4914339a7b51a0e09aa240ddfe1c25409fc87e6a98b2640349c56e4387db5df820321c986dcce30d7d7f56e125878f4439f53bc44b8c8696eef0ff1727a7a6493907b5a19b6afaa1a62d9319b79e8ea969bfa2b00dab99cb574eef7ea781c7cca5de961a8e2c806703f2675162c7a3e0d92534590e9cc1179df6cdd7bf086e55772b7d6d5174ea4791a596e8a6811888fac1de5c9533c43ece84bf374f8b9e2155c85ef4950ea2479fdfb5ff112364041acf153549fb602363c48666cc4d7e0e8ebf69ab6bcc0c5daf2f755647884e51e2e387ea3e4f800000000000000000000000000060a161e232a", + "result": "valid", + "flags": [ + "ValidSignature", + "BoundaryCondition" + ] + }, + { + "tcId": 62, + "comment": "r0_max above the limit", + "msg": "1a00000000000000000000000000000000000000000000000000000000000000", + "sig": "911a02631bfe7fba22bc9a785646a089c74fc26bd86516bbb9388554c2817fdbc717f08a0971450eb8092e862d92fa4d60d566fca3c0ba99bf43434e8d12580b9f09d78d4c045c618435469ea5a43686144a858eb1db217049ffb036ce98c07d0eef1ad02ee7fc430562a695d94e7b7f742c0d1f0aecf9d7a21e1dbe912b800fe894735ee371f0ebe9762f86e4f0e8e5302e306f428b56b1399806102bac34535d3b4a37857b75f44e8209b2b33661eaf9f0015aa2596f24b21e9547bb468ca55f8d0983493f8d136c8c3d5e763d98d74a819c1b37511357b6552f82c60ad7df91eb8a38762b3b39cb04ae30102f655dee62a4a5ead07ad0eef62d395a29029867e3b7aa4b58a0f0c34c33e3827cac3394e423996ae78ff8dcd5a399b8b29ebbe57453f5eec3f540f00a2a9fe4810c83dfc99f1d35c3cb7606c4610fe91655eedcf4a0b2aa7b4328b715268bacfb139909433b014cd32ec22050365279ed0613cb98a4b9a335f0db3d66195ed2bc7f4f9c7ad545350a939b242f13cdfc1d271e3c45db87e0c21d0b97ffacb0bb3dc5cced8ed47d3891ccf94071ca38f62a96efb0b23b849071e5bb01e8d5e891a5aebd749ddd37be5566b99ac4e242610aa15e3537490abbd4628205924af7b6300ebb9df52367b0a2614d78471788a4e6e1ad9a2cd4d9ab0c589c42633d84d49ca1257a99d34bd90d14900d556487170095dee45ceed8d5000a2a4c08d3e557b143d6e30e540354c513450828edc7485787bdaac462f608fe056fee8d9eeaba663b609a2a48d1e9c79982da006bf9f7ad63d64bc01f4a4e43f5c7ebb7c745c3c2315f080037edb501f601788042b865786ffed5ea00fecc0156b6c2b4546f6ed1b91d700c12b222f7e26b3a296fee0ee16644ef037ce46b30ec1b26a99430cdf27cbc6f4307a3a786a87ef98f80775d1d57d22c70d53aed30f91ec0f8ef83ce6d6f13a1a96021a739d69a1a1b6828502910d1a56d2716f8fcb6c3f5286a59740fe966b0d87e804880545db932e87199009884236e1165a7a3e40b5006438edef71c90df275eb2e43f27376a84189ff3b9fff14dec8febce31398cd656d1e10cfa7ad88673c61413870f92851abb5be17035c9a4431b3f2e0d9b9a9c97ea5fe7b165f4a2a79c964df0ca6ae3191820ababf197debadacc455f1277c9e4401f3a7ee4be9a6a0c69d3c8a3ed2e69df31f947622f6e606126e03732021dfeaa8b03fb3ccc2f90ae0e8a00f0a5214eb50ce6af2296901784c5853bf28a9df062cbfe8022709ed68478004b774a85ecd71d2cca96d00c6bb9c35abfaddb5c23a4cdb0b8dac66a4aa5f00064acb2953226b41b2a470dd74051d405da3014a5a892a3a0836263ab68ee7258edc65f6c59f15408957a7b2740741c75b84e3bb9491294c6cc943d85efe43cb4daecf60f6de6d6470db27f83ca29486fd322f4dc42d88147e529e24c3813540eb1c66d64840f144c438cc2f553592ac178394bf6d08307904d512b8c9714bdb96a2c5500a7309ecea8c5ec107c7b4be4e3a0731fc551398f008c5f22b97b5e7423a86a5fff31c3a91b24cd609b51f5918e74b1ed696b9d782a50e378c11be38b3e5f5fe7365299aede89d6865c7ccb173ff6ef223ef7664d978dcdca1658e92c263cf446c9e3932ec225885a866361b251bdd6699c7ba5f6af7534b6e91cdbff438a320c43ce8ee4f69a860703fe8517331b23105d00a78db06b61d9982b89d12436ed042b7a9c596069adf5ca1c9d32734d8748d34a0dabd8de8dbf90d1224fc794d07709f390c845e4f26822f9c428d27c39a1442aaf794fbd2835c6f35643e50c5113fdd0c75ed2cabfe9e7e630a5fb1ad6c2b342267378ed7e0762b914a93a9a010725008485f2d9a02f7af776b3e53a4bc7dbbb45089644f71d447c3a310ab40c631a7748933991f40060fc13834c5dda483d625dfd8e231ac958664fec34a8365d4b2d798732009395ecb38f9b9b82ea832590c484e16bda281e82835ba9efcd738db10de95f5ad9f93e8f6dcef28ff930174d23ca3d7da2c4950c2f4658be1845792be94978b2b25a9aaaa0ffd31dd7e7f015284bec91bff7cb404afb447a73ca72aa4d05a15fd485ea257c32da5dc6e102ca7a98212882da4b57dbd3e8a7a1775df3402b242f3be9b6e717687d5d3f3a1f55f1c683e7df7795f871433df3702b5ef2cae52858d18123f3573a95c1876fe0c6d0bc7599fd8a2e992057ea308ec29592f422a2eda074fc1a1bd4f9c6da2652fc217da21b5242141f0326a4e0072adcb5fbe7ad82fd2b1e3a97abdfe72aba34628b78116c01a45b331763393df589c178cee3b7162f488163c81fd44424a2a3a6707cebf1f5f87f2c150d61ae6cc8af0c708a854677d3de0381ed987ea4d7f69fae772a1eedfb7852915ba084ffc0d057e0456f36ea22e6e4234e44968adf8bfeee3692c5de12776b819e2aaeffb425698f802607110358fc9a5f1538ed93394c86c25312f6dd7ae5c9d5e1ad4b2cd9d32e7ce2095cb564f7e3446f6d5da0f57a5bbc3d5d427af30c9e1e7cdff8ff631bc94ceda2ff6ec746cc283fa10af1beafaac6bd43e5e9a1b63622a33d5f7a7b7d3a741329dda5663cdf9e52c195065615039b9bf96cc1093ae5b6778ba58171454374953f2c5d50721cf943c28825317ac76f2f5bfeb55d10e590e437b3cd46e7d464cb76a8612b9d836c22877ac89f4c4716fb330be2df6875e074a61147e16eb02ef627a54ba8641148dd6b556b442572fb9c14f1ec5730376de535178c3dc92dcec68016b8cf3c28d561f393bb2c6a90e18b04c9fb06ed926a69fe73875b3e353944ba0cb329f4b8f1a527aaebab4411638e725f5f8d837343a8fa2e6d1c48e8110a51ba71be5545d066ed06ca3ea83ced79b7d6fc8bac02b53f3bda4d2d38a52686fe51a72e8c1635c230bf3da64b378b673ac6e7b40fa1b22fdf14af2caabc8515c145af6c054779beb47b4749c1fe40ac47ebc1af9f4f73d8808ae5ac9e6b85dd571c19a3ae2d5030b8d8413b9c2508594dc5f99e879ef8a7b7a4572ca8de9b5d7c3c6b3c09bb437408e2da58dcbb37db0f36fc67ee74207fad89fffb9e6b2e1446da2422e23c339999ef2b946b6758f5d61e70c53d48b8d2ccc5bfb8065684d36630f82ac806a2a395f570d9034e443dd10bc200c1e818f67dc86401457b9b0b82f6d7e6fe2590b4fc0a380867a099b3f5d8b51bbd2dc3d9333c73cd86c6b16fc7c703221c67a6e86a9d7413ff6ffa010f7351782597bb84cd26adf1d92f47613df428abe3b9514abb15a00667cf14c9ea0c676fbec0f7427d9b0addda30da7a2b895c291cbd017fe8135580b3c9cd69fe02e08e9f140a0674311c6b7d3acd4aef8f5e356a2458d7d4dec8b7364baec737a93e5f9829d247f9c88cf200bd42f439dfa55ad6367fe010777d2e127cb191a57c969d1b579a69474eb8ae222e1b6ca9d174c1a35bf9811aaa9ff1594acd0a41442031ba47aaf1ed9f94c4b4877f5d9ab810c2bcdedbcc35f2195385d0f41df6d81433418a8db56aac9c24832067dbb7a8d56211f7208e6399c25df41422ed734d5fc475d43b8d17497005d2f629abbd6c3838691dafa7570a2f9af8ebc90c515c844de8849d137d1d5a89af65e504e09cbb43bd3e73219e6ea7c980a80364ba999ab38a3e9ac2432b582d8df787459a9330b926dcc7b4b358ec127f45450b14092a43b53c35ce034353602386fb6f74fbe48f56257487f0584f10c8762750fc26326861d68c997d5b37ce77ca40647c82c445a9000caa64685967d4b55c99d21ee59ef22b5e33b4637400559666b6d250863aef8e8f9aa467bdd36ce406616218472afd59f562273cc08671d1dbdbb48667dd685b4c55c0c202d544112814e4e460c72deed53c9d1fbdf6dce5980d89693bba5f6bcb0cfb60fce0c922c7ebbc0d25401892c7bd8f3008ade1bd1580bb6200cbd07582a5127396438e229b50f237d84d116f47401e42e499b4ca139171aa4aa4c903e22a72821ac9858ac764cead0d967365e7dbaaee5f366bbd66d628c67c870b884d58519c6b731acd4c857e2d5f3fa6e1139042bedfc3e4d56ac41769e6309824e54120218cf6a77648cd7859854287e8daaff5557921ef3880de6cc58e860a43038ae89fe74c47ee81f87b8dfba55b6779e43f1d064698143136b1181ffc0fb4182dad52ded814c8e10d4f502f1940689cc5bcc29b0b9d88374542f93692229d9f3be6acab3cd82a93b4ede5ef5bb013208bf886e171d43485d9e5c2f214ba633d5134014d111e836a23b2953204ae34f26403eb61622df0b2f5b76da164f9f9db6758c645e1c06ef88d8c277bbcd739c75a6c9a2dda7542eacd13d16f38c6532af09ca060ff0e526b6118febf5744296e9d2eaa93f1a4ef49f586e37e7dec4eb719bcdd338eaee83223480970f0be08bcaf1f79f83673dace99972e4210d54b6be0d9211b5e98414cb160cf2711c9cd58b185fc9ac4c3c74dd78548a40120c5089e485c9142090e9df898d1c2cbcc04a38322fcb54ecccf301e15a5dbb568c4ab748da773fd9badd9200aab0305494e54a2a9b7f113383d3f6c7785949da1c7d2e3e4fbfc21283453779ea2050c62dee1ecfe2426275a283159829395df0000000000091920272b32", + "result": "valid", + "flags": [ + "ValidSignature", + "BoundaryCondition" + ] + }, + { + "tcId": 63, + "comment": "h_ones below the limit", + "msg": "6f01000000000000000000000000000000000000000000000000000000000000", + "sig": "2a7f2f6e8c77bacb79932abe5708aa889e16891bf04eb42941428cdbe5b2a02694d658d104f6ca51ce8e87eb3fb20e0634e4239b26d0d6e08fbe9c8ba7624043eda4d7606a3f18063b28c203298de764b4083578e36b73751d6df5d0b2563dab5e40f30ad99078de98b14176dc57547f06c466359c30d5e0b953d3bf9d31442d7e006cc29730d9f069e487e2830c21c2e191d2af81efa3f0eb620efc0512a99efd5ef8d7efe658f070399cddbe383eaf46301224bba1326c86b260f8701f616d1908f8a9fee8b42646b2b1eb5735f1a62962395013ec05dc549bfcac77795da42b103730ff65843daa455d3d4f516a3a0a0f89cb30a3647bb2afe8a03e359e1d7380afcc316095290d731be3631a57f1f2ffba3bc24bccb32df16030fc5957267f1c082ed8966f3dcb14f6a209cbefb8e24fc6b65de21422dfdbf1acbfae731971e522308b856b69a0b0eb041668c5f966379ae1d3a6aff00e726c9bc73dd70adf67c98b933098e471ac6eb740074c834d429f8c026932e9103eb40b8b1c2842754fca9ef28e6a4ec9c7b878241ac720834c854e551d0222cc1d8c7c2e4718a9107c4f56668d30e40628fd60272fef34c6ad1ce3f34f91b1bed2e4e588220abdb7cbfc497699574b1931e4824f4673c42a37bc6dbcafa408b31fa067895919461fccf5e1cc364244ecebea76b3bb89a92315ce8a954693c1b27e619977b7606aa81e1eb41278e88169c4f51dc9f08010bb85e4c63924c2f36045e2d9fa8c1d8a339d1555428e5d43c2de4b156997a3189ffe356a4221b18b74dfaefde39c619322fb080de0f9c4299c75b81d54e3eee6cef65d4b075d032d66f461d0923f717066834d439f50c865d01a874d9e4dbea8a187bf28228c9b557a854afc6d68b83cd3670f49247dd6457e4813ce430a2e16847c2aa0943133e30f3a4ddada690830cb4921895052b9e4fe7cb28b95965f3659570ccfcb819c238767450fc25a823eead30273b5bf955f5d0548506125f2d835bcb807b63097a7c3d704c693b6d5043dc3c9679e0702bc729210f1a546a3890231e92cf40888837d8e9b63a5a58b8596ac5d06c97fb232ec836f3dfce3b512e67bd628a188084e3e7d90048f1a9348928b56314d33191e8fe6a9764a6cd8ee75f6518705b7cecbd2db4a2fef5103236a0e896912277d1504074d8a3d3073deff2acf5c5e06bd6f470e714d0955958caecc552c72e29697a8d84611a7dd5d73aeadae523fbea696eb59d160607fb62fe7d8adf8df1aaf5d7c5156e8d96e0e4a9f903dbeca6f2e81a8e2771309f14c761a4ca30277f9f2df8f46d30423e8084ce69d0ff8eb8a97895fb193b8dfb6344aef653ac818c54d0cec13d40c8a8d81650d90ddce05c5d941a0e036a326b8d13020254af23b06eab878ba9589af355d45beda5e1bd8f6ac80d313ae12f0b3eddf25fa01b4dad3f06efc918b6e7997f16a8907e1e61c8135cb4cb1e8d73bce5dc35279d4435d4b66de97649b6a11498b33f229014e9de1366369186d99d03200bb30d2ee6ee6464a05abbef217f3ad6a9e686cb2dd792a25266bc768ce17b3c32942c92a9a90d905500fb95eb65425a04ae954c4eae92f6cb6d0bab3cd722deea1c79c37826a7aac4311d31f3572565df5562d2c89e8fcd895b61b8c24a9d69ebe46630bdd7c3cf47c98453bed0c82cedc409f44e92258febc72f8f137cd1c09604669c0a1070b25c09cc6cea05620e87643800b5e0b6a45bdb5caef0d969688f560856f332b2095f764abb9340985ac232a800ae1c9291ab052a0b5ab0f18cf76e75c60f400a11eefc5531222439e01127983f3c98ccf418474a937173dd1d0c9d43caca7903a04bb5ae633176e5b059c1176fe804f91f7506314b0afdba5cb7adeead68257ba8b2cc07286834dc8c0d5e50f18c6ea45f73fd500222c949d4b57331f82a39f6d43434a852f5c2ca8da7a91f7bd78fdd451a7a8ed6799a3dfb3cbce3e12b8e0f0699b0bf98b20561cff0950e6ca6bbea5d714a52240db59af0bbe806a043611cc17fe310df8531f4c609804c5382800dd2b701d38fb9ddb42c698d9a324e636ee26bb39a81ef8a840e7c0602ccbe31da2fe6d816db1f713225f0e95e35cd4a3232237199735bd83453bf63db456fbdb06d0f7cc7b47b2ee2a8213d221a364da2b66865f54876eff1bf16aaeee396a8d7efb722be2351cb93b28461a475aecee021a4cb3c8c64afa243fab6111a986f45ac566dad078dd36d440441b02b5cb5b69e39a911253b969ba536d9f455f1e0a7fb1e5aeb4b816a14f2e07f951c82ad47e95f3fe4556c3c13640f29e1b0287a71531b6976e34dcc475b2200c1ac90373a52590d65c24dd2d6fab4a77cbd3f4cfecfc52da0da146bfd120d8c8d73ff1ae819f940f14219a1914646ad0b20ee103c5392283ca98e7c942c54ee77f4c46d7129502756645af792fb995981ae4e9607453d6ea8c63b64e7fa10ddc1b8d5b8533fbf6655f0c7a6351307201909128df0b90c70287bd8e2bde06e2bdab02c3bd319ae8b422fc3f5fb9badd45255ba572241db8f7789c108c8071067bbb0432add83159437592b6f58edbd7ff57275efe185ffaffb6629db28c28737efdcce06809b6320902c154689624004cb4a8fcaa65d336498bbd41e464559abe17e3a25a29e824ef2d9cb5f900fe0250625078c468bded27c11454a84e727a3873f5ce9ac68df451b4c055bd4ee12dea4fdc49d1e1840d46b87a0c8b5f398c10dcb249332e027d1e6f3fcbe33b1c0f26b816742099c74eb1608e16ce31a18629715941f6ba7190610c1be71371df6afb0a0471762ad86da0d00466bbd181975e6c410ad259ea6cc5c72fefb5e185cc612e33951522db41fed4aa84b9b35767e78a3c3598361669c82d1b6e99def54adfd1d09f88baa00c413b18fadedc1d92fafe9e286e3c0130c83491ce4084543ac52b115a96244cdc68e8f309e5ef041df076ef0fa23b8db04070a12861c8cf0913a8c11837d716fae090c4e3905e15c4e3f6e1b3ecb8affb0fce86232b85626f30eaea00a53319c32db6023c63e799668f30b060b5e883c4f15807831c6ac003a08de6b6bcf1a758e37beb99c6b3c1e486a0324da04521d0446dd960300b3ef8feeccddea79cd0143ecf516b0ac37faee1096c5403752a550192907358536934b1d8bed3d1aef9fa56bbe3ca0529d64bcc9a6596091ea9dfc0bb5b5392459947f1025ee5555b56e083c97331135400bd25d7f30d919647bc94a0577ec8963fa261c02e4e619f74e7cc803b0d2976395be4a37941e810e310b4cb04296210ab167af312082ea73157f0160f24126d2bba3b70218cb78a3c91cd573966befdb9da5b384d8d0f6d4fba384fb502800e3784f432cd2ab14d200d45705746622f659ead3d297945380236515eeb97c90033d5e2acc2fab9a71f386930f9238fabc4063038ace5427e1526390cba00f6eaf0f13fd3d96228b988d758a64e8d9105977d1b5933d9071f6d7ff26537d730bd00f871abeb94620ef4b10a152c0585a3db26d12aafd3ac9364d3bba9e69fc83e1864587a1e1d4f4fb62efcc92373ce2d53473cb567feb7caf022842e5c3285c9827bcb4b2013a834a42c36309daabffe52a9f8d2d8bf309c764cc1d62cd5fbcc07aab6e4d006e5a4935f347b45d7bbd1aeb46d1ebaf0d32f442dda1a19122aad3690f324770d6f867d0ad24ce0b590252d1d6f915fb96391fec04e1f4184d82daed46faed7ac87864875b720523ab1f3e176a207975e6eebaa4ced0798570519d0689ef6b45d9573ea3a00812594f35591fad9e5888c91caaf8bc5461e717ea5a77fe95e336e6201ac7ae3550300590c44c46f28318367f8b88288f10580c2a2d71dc4db6dc07192cb9d21efdfdf85b93e9c0c2e37e52f16320ca17b6a64848993a12a152de79c486be1e06282fca9ad4102909e9effa4e3adc7bd2be958799a6a8c9cd9ec22b853364ef6f76ccbd1ed6469ec65113eb78433fbab87eccfecf1836f829a51c7b9b3f710d8f90b7506117087679015a4d51c93f59607abf953c75439c1879ba1e31a3a4cc4f878839898c08e333556d9a7d499f133aebcc7d98b3576a557f52a88e6d5ad099e0597b8b1834bb00d9752258bac6e2d91502a91916837be2be4aac02a474a0a776dc81af8c6898f0e856fcd646c2d4d71f0ec913194dc59daaee548d41174750063eeba775ea83986c2efdb987eeadbc6d5dc36a9fd870f1973981d8cb3668c792f7b156dcc832654f4ef08890679dae49a7513af040dadc0b08563f95a03221194a02d0bc2b41f24d7f194d86d45961657df90737a8571312d407c8d6ffd68cf74de9fafde864bc5df2456714f812692b8eca59acad89bce4d4e853845b2df5570226f1d04dfbd6136c633d9018dd4f8171a10c9839e4c777b0d9f6a43db8b82e8dc9fc367d8aff643edd08e5c3895fe40ce4f53f72453a77b8b816f9969bdf19b3bed5c7c8f129ba24150d7c355f50d6a500f6d6ae4592ee3616966bb0fbfccc751e3f631aae9f92ccde3aeb6c9a98b832e035fecb23764cd82bbc23de3f52c82c060b2a6b70b1151799b9da1b3d0e30c5357a1aaacb3b6c3fd0f11196283adb0b9c1c4cdd9dce17689d0d1f6081f4b94a8b9bccf0430394e5f749ed10a1422272f37", + "result": "valid", + "flags": [ + "ValidSignature", + "BoundaryCondition" + ] + }, + { + "tcId": 64, + "comment": "h_ones above the limit", + "msg": "a301000000000000000000000000000000000000000000000000000000000000", + "sig": "8af63acab69436b2c1244e45c8e6f6e75dd5f7efcd93d132cc613a0defe5361548b9354dbb2ec4a674ca4e4495583ea51bbc3a9506ba941b305d4483fc09699ff6d95d55f12af96122c71ca8732aea69cbb3c21405572677ec926c06ee40b0a14a39eef44fce23743f0285e9fd3836657de1ac89006d100a189c4a44668d1a96a519580dcee29e2b4993bafe768d9ce84da1c274399c306d0ca24b3863e021e5fc1a7361362dc1e63b765a546f940259910a5ca341622f3a0e261090b4a30ad4624b2f6c166fc8cbae6366b19689f5a33dba664403ce6a5639645ee46d9c49b6ca1f0fa6bcd9f62336fe4bbe0ea5a571c116252a6ea763680cc12a7b25c4726abee6c6f46cd7eeaca9d33f820a13114c0d5b8793b911b26a3f43c29c3f87706694a77925bb7d67321d56da25975ed08c04d20b713b49b6d6e6fa1cc76f7fa63027e4d9afa19690bd4a356dbf5ce1d2d65a84ea803122dfc6877998a9f1226ffb1543ac4ece57338bb87c02e182714c904416a10ae8742e6b8205686d5fce8530bc1c9bb4ce3d7e1c1c56793d60814d4878e7f5176e09a40870fca693705e2bddb831d74a366a2bd668de5bd759340276e59ce846e14df866a091a7fa689c71da1594affd600fc1a202a8a6f9ace2820aeecd152d470d040e921760e48311d3c6a6e8db2ecc948bd8b0be6731e0c0966eb2598091413b331dfae46dfaf7f0b59107fcf0806fe2b6b551a20826c01d04f6547186c2e87514236e904842b2ba5a20bb6621dea873057ea2592ec1de4a5fa9b84dafd92a864d1eef8422a9e3320d913cddcc55d56739248f1bd61489af13afe4ebc6f7d3a6651113b613f5229c8bb78238bb680da85dca417ba4aa03339621b35180ec4d2075a2f0bfb23b810bd792823b85978a46e659a258d00ffbfe5423cdd2cd5d123bdf98fdb61da4cb926f9b3654a3479f55aafdd87831704d3606d8645b1cdbee5593d69c2acb0769e7c4820b0efc378e7ee56f5eec9c4ee0076677a9f9b89f08921bcb880d830f2337ef7465c774ddaba7236c3082117c40df45ad54695d2158992f77a3a5de49f3b0815b30a1b3dee31426f05513504ccf31bf88b20f0f247fdcd783257eb899a0362cc0c9119b683e3231d3dc653f271bd9c80e0e50b766c609e7f49b1479e766d0603f9a3d978b21fe88265ed6a610d56b9ebfadad6d3939cc5f85fd733ebb631fde924663d1f02cc1a190d53cb17d5ba519b3e041d03b01ef85d0c1c4d86a869683b782ba8847896f92d38fb54346ca9ab7a3af3577aa4df727e97d070f5044cf3e693caccf4f04877ed36a940298ab54b6de65bf9c7397550aa68e0bdc4d1c362643a6b24c655956fdb80b07e19ee941b1148fab8ab90163a029689f168323ad9d3e27264abef2c4f7dcf1e84c29b9655445af8cc195ff48b3e22788d30c42322c22191d02dca1ebadd062d937c9c852ffdc665312ede8a4d4468a32371f7fbd2962836478f26e34f1c04ca2278f13f7819c095324c027e8f702ba0da42ef814dddaaebac7fdf7b1a0df56e9d3b0ee05159681b7ad30a8bdcd44be7965d2a3101de8808b98d9fd992f4042abd1b55b26eb2bc7dd314dbf64be5800588500a418108ed417136ab924a544578ecc56b58db53e7a8952d350e1e98ad6d15a9bdabbee835c689019f607bfece26b1b0a8f90463316ac213b40f5d88e56c5659d626290cca99c7beb1d9774038d7be471cf9ff5f799d8d1710dfd6e4b4db9bae982a231cd0ac9df41f47dcb92574dd0cf68e25396837aee63dfcda9b393f2a2277ad2dfd7eddb8a50bcdb335a8bd44a6bd0cb3551d1bbeb19db1474c6bc6ad6316ff0edc21516b67dc906cbb4a4d2ef018c3821186e3a323a878fb502384caf49e154f0ce43cb53a584357bf20720fc0044be73eaec90eafc4a7bdc55d78fd7153ee37d24992e5c846557211aabc4661a79596c1cf226aa758e0ff776711a99640b3afff33dad0a6055e8d6c51ac69b125c916a0ca520ff9f697fc395837f43414380c520958d84b9bd670bd81d81ff456c5af9190abc2498a5de0f08c982cfd79aa8652a0dc9ad70f1472a939885972bdd4e699546815c950fb26b5ec8691c6ddd3aa53bf55581226606a5630232e4e4edbeba6db684522348e8228b9dce09b63c3f95029c7cb4dc90bb8b4156ac4cb4627e3d2e12f2197cf8c74c2840b91be255c3f02bccb427b2741df2eaf7b2b9c8b9adba98e74ec42e95c0dda2652180dd44fcdb008b1ace527e1f240dab90d4bc80238342cde0a92122c55f158566e0fb9e0db9391046cb20cb083610485be2e700126f20fd7745a0c877251c10e1773ff453230973e794dd11f3478562f1e2984e4efe2ec780877329cec171e4f6686b8b8e05ac68ff1296d066a2391a700e6c59b78f374e397f1e02516fa6d4bfe312a075ac4d4a5cdc062c7a6227dee0b95714c633447a557dd401f52ea7bb5909a47a37a3ed7a87ebc7fa8c703d48a2a0f80966541ba441f9ae50930f160d9c03b7742e7bef9a427636789bb4dae10e13ff552367d6a8f897a2bdc02aec3902d8eb387157456c4367a181222c4837de8305739f62df370d6cb19e8bdad686c049080c045b3c40253756e2073d35845f7f216f2ad3f82f7822f24c1390daf57cb003d5cb1910b668360e15e2483d8cf0f0eff239efec41fde5952fb4a8c5cb13a28ad4bc9b684aa9195768d5eed75ddc877afad68c4cb0dcc25812e8a8db3c5602b6ec4ff0becda3b2e6fd8b1a64957f207418ccdf31ed2b25ff185a3a1b48f2e7a72ddaf18a3f6c795d048ecb3cfd83e3c823a6a6ab94fec10232a1231126bc4f72e9bafba9a509587d72b3c05c1204d602608bdb4088e15ff4fe87e6cc40207597d578decb455fa30f0fe78c1a393ee55452b6bf704bd0bdb09b0edd65c025f1cd3abaefd8d3b2995fec922510dd94bf520c552780a438e61b1850cc00f99d67775ee8e5053d1b20117ebae042ad833dfc0d8703b8d1eb839d0d2ca19906bd60ac515c93357c1484875ca134c7dcee07ccb0b2cb2a143bc6965ff224518887b39ab348cccd82c64b0340b05e83dc951cd419dea37f5e98aaeba9e7f4a420ceb34a1c9da57670df45d3dd32feb4192cf0490494e47ba70107cd213e4e36d8650204116ab3faf000196ef870dd8a5a6860893d60e0f22a6ae6804ec687e3729d45f5323b86e4bc1b6e30f336471d958c23520d44da5b75453aa412a2685114c8239c7d73b3ae310d20d75bcdb2dc9a23d2bd9b9b27bb41115694fc98a7ad79bb2793a1ad04ce0131aaf8a74d627654b0d0ff74ce320ee98a1abc5aae2229d65d95a34ec37605fac9d353ae0330209c9a4c8752af1b32751ce01dc9197522a8b2641e9817a5873f6cf678de8684f386743671b8651ea5eb3f123daeaabe237a8c10b58bce7634c7b65cba61230eac412b32c4ce326b105ffb3d283270ca5df72d8f4e36f444dbf4cf050b468016f10bf77f92c24e02879291b6240d534461d5866ed6d2bc525c4f9049b2a1a7dc7dec180d33ff1f3ae0d8d59b40840dac21e87e1a896cc9fa14933ecdd82ed6e53fd10e3508466557fd762a642707df1c14d6274cb101a8bd83f5dd3da100b5689f4739621234d78be9ca691834f022369ee6a0300b26e6c8edff09d8b5856fccdca837f6691e12be1bac1a70ce0d29570c5edec8808dddd069dd50a67c758189bca72568eafbad11faa11b63262684ff1b4e24914b5e75e511cd1065f2cffa7a392f153392d470f097662c65ce59042aded66061f36ab84ad192c81228e1bf708ed79e4c6759f9526b4dca768d674abde8c985593f525985989ff2466d954c5a3cbcbff04fd9c7f227d6d1f044465a10621d1bcd8c37ce3eef7be3d7b6ef7c4c105d35e17fe3ee49c2b4900d8c8d431cd394ac3c66b9dc42b69490db87412fbbf94940fa7df64074820603bc4d49c022ba0697d7dd25e1a6fd822a8bf1d48053df1f5ad07a63ccb459492ea946ebf31e3eb7ee96267da62db8754cdccf03a77e335154d9fa8b8a4124196ca96e5e343efe7c952778f128fd1a2c2b66ef49679e7fcac002f69f1e884e8761b5aacf11b222a6efb51db75afa498eb4dced56c3fe0e44d80602d802550afa5a6108157c6d14c87809706fddc242d7205a4a3d3d4853efb68466e4fcf44743a342cf4a8e26b82f7b286947b124d8becb17bd366ee4520710df72194f339d21bff18b155acc353b2cf249d18d227d2315cc30e7dd6614fe940c23f4458de305ef37c2bb763594cb6dcbadb65c4349b9f4de4a43e084e778edfec85a384167dccdf0339a70fe83565b30e71f1b4afbbf0b4a3bbf19b49447d5e431e90a1df83678b575401833dda828d9b14aa20276874373e7177d700806a0242298ad056bec878caca1e8a550c326c3db38c2032e3cea380a53e09811aaf3c84b92f20fd7122a86a2076178c40f34e07f8ea7914e98fc4223c8a9a4f7fb2c2c9f07f73372afc727f5ad1565ad25027d4f227cf8a744290a04e350676981e415e172abf6848357b598db96c4cc870edba8175d88b9f7e859f78abfe2feff5423e8d670a49a3356accd0e0f225837c1dafd050626568999cc11234f6fc6d8db88cbd4f2f800000000000000000000000000000000000000000000000004080c131a1f", + "result": "valid", + "flags": [ + "ValidSignature", + "BoundaryCondition" + ] + }, + { + "tcId": 65, + "comment": "high_bits called on the edge case", + "msg": "b906000000000000000000000000000000000000000000000000000000000000", + "sig": "a8ae8cdd7601a1c6584a0046ac0cfb3c4e3bc3aba16e4519b1b4ed50a546da059987dd058f3a4508edef4dd7de054afa64aed0dfdc4c9f9558562696a4abd959e924570037741d10fc9cf0459822b57bd5a84f3ae7539b475c60d95e4e3b2d9376b0a84b4d3031d200e279a3b778b4d43542af4262c6e5ad39b962918366b0c3eb63b35bd3da14f084e1f92da6b229082ccc52d9176694476c10a294b98a890ae0dce28214ad6d127245dbc778c1e1927579350a3f361dce464594c3c1da42bedb2a081f62fc6c6296bc60718d8deeaf5a3b6df4d6cf48ade47837a95b8013cc3c92e03f94e932eeb4ad008d41d0b8053503fef97ffa71afb208dbd0e2981a519493d6de40c08b458a28fd5baef5fc24111657c20f953c36ac3ced9b0cbf3d48ea7ad7c2fe6813975c07f83bf7b7d85ee22c5a9aef62b328fd4b60833f377adcfad8eb6fff9e8e5034182517928db6ead56082d7f9e1dcf31e21acee55cbcfc6b180df3f140677c39299f96dc8101c11ceacb613784f8b75d7fa12ee0b38e7e86159d3b4379543725c305b48081888a44fb084c8c97911ba6c2d58c9184d3ef3ecf262feab0c9bd7a7347d3154f0ecef8c53de747da07e913e3f42c54c19e6c876d226de5e790dea94684f3031348cc5e66e8e6db22b154942cf779bebc8c2a762c60858c13c2ccdc5a6a7ab8be884e60b3c730bdee15311bada52403ae2733ca9e728ee224d919476bac87da7ae384dec6e47fa838a1d40df75b04fff35d5820622cd307609036493ce0530f7e2e59225c63703582abd8f2cb622a325a1155dba9f7b6474fa57dbcd2bdc526da41c7fdacbf8772ada912b95b6fd34fd709a292bb0d92360a6f55383836e967cee3fd13773e23e015caab30e250961496ce64b7eeb3a9120b0ed6bf90529b121f74923948ef1205c95bca03e98c9642404aedda7ace200d2a7aebdf854a350ef3c520d745746a76008293ec508b745f159ba493527c55e2ecdf67fdbc3426ced84cc9451ac7d42ea08f5c026a2e28544b1eaa65d12033518cb8f87adf6ce87a72b9b7b3d3505f2719c47d2670dbc13d76bf61fdab4b4a58af5ddbf79cbc449565a4712df8f10f4d58c2fd0f33f6074a0cbde6c18bb4d988da12263f58b5224924c79972ed39d0391d557efe9974a686a385f80f3b5c9c7e1ed4a1cd79186d24e38a2899af567886b36eb2a8b4f87a173094863e9e6ca77c99bcfbc93139d5c53272c1b7978de0908f55bfe90ed18b0612003473aaf252fadfeaad36de9f00ab6175d3c8a0d88a1cfabc21d6a70c53dcd3655ef13589c97d88b8b9499fccf1e0eb70b6fda164aa039add3acce52303e1e7edf17493dd6ffada104404aee7097695fc804d41bae02ef74bc9030fabbfdf269f027741a4b27e4b6d8ce636f605ce467802a286d73aa748468bc8e35b7d3f705ad650cf06ba9c8d2057633add59d5d92df71539ab957af1850c2a98790d003bbe6a38bb0a21e3521be83c94f77c57acb61beb013bcec2820a3dda5f9290965b8db9565f08507ae9ba11411869294620385d04e5a3015cf08633ee8a876755b6c76a722e557b4e289ca0f675f55363aff3f2d1013c64e72764122c75a4e527a7c19ea457817725f19b56f7fc05e22baa9be29825413acc19fa55600a95e842a7ef9bd0e7951725b3e396616983e234534305a4e05deb017c82d14d9d717d11316dc425de109c4574ee934a9ef4f629394fabe3953e9ed9cd30a5cec6c2aaf7f2ab02a85a7089cd903226306d30d29775067d2b3d60cde82a5ddeaf600146b5269908d3aa020344d992be7e5dc63042755e25f702025733c5f80a9b3c463326052c77fd4b5b97cdc2bdc505d8b30bcb4db7ba449438fa016509d9005c3a90a65af42b939caf7bab8520040be9730484f3db2d32cd144fd45adbe35d241c1fa3f80c9862939b335fe5509454cfe6836e9b0f2834c12476471db627e168d6d09c015c59e90c6a7ae21926342365bff7fd23d45d2d0a3d0277d6dee0f18a776fe5fa5f14637bbd09c246199ebe1583966cd133dc092fd7777e0476e9f4ed1b5313f9cff5cc270a5eb79b9f2baae0739f24968d553d420f76db16b8d4414567e17a9c41c3b4e49b8268129ac37ca356f0a5f052510c2f3134cbf3a5b95b1514858cb93afaa3a36bfbfa9bf51926b790485ac73ba738104ecad51aeeadb11443829f4ae6b0e6e2484b826e8f77a61efa1c96b5aa5ade23c7672872325ea63c4789bd7b612b1c6cdac1171bf318ebb00cbf28994d1694c810769d8fc07e5fae3fbafee192cec26c52535758a279a05295ec0ab14ba25b61b1770981d3cbfc7e990e1420d0dbd7922adc048d48074549ee7ee09e6568238a6b7be3e8e12a032a5b0cfc9bd43f8a075ea28816626f9cfb1618ae12b360804c9d640ccff5649bb150a8dda0b1b643412bac11accd304f6ec5894b3a7d92751b454fd50f1b0f49902169c6cb0065f37f660301612c59c632d7f84cc8955efd86c7373a9e729857e2e6e4a6a094bf98f0e9fab159094979557b0f31a4ec8a7c22957d0bf3dd31c058638fbe8f57469e3789d67ddc4f0cfdae459d54345a603d2ce79c633ffd9369a59fc45e3cc2f2aa5c5e5b7ed3338523ee2c8249d25deebfffeb9359e6d9074bf33deebd997559d21f0b664f029e536c5ee56096da4c7531c9e2e116d109011f86903cdfb4117fada57a01f178c71d4f9fc0367864769c9abc75540b920f0136179098f02fc5f808840ad1680981bed9731ee7a2997fcbbd8e80b00a8d85526898edbd6dbd60c478090b49ae0863f961654d3e7ba10f03a94cb4973edf27be2085085f799a5d5007d256eb0987a52adec876cd0d036622fbb0b53de0ecbfac30b1c4884a4248fe1340b6123519722cbccd712136642af9c13507a003dedc647be782e1766256c6ff9ccbf487919827df78a87d337049a7856618025a464fbfac986434b1ae21c1d0a7382e7e0781a457e4e0241cdd410706f4713d15f6d61929c3a519ce05524272c0a333a39cf6f437f1be0c86e0b531ba6aefa5bfe1c12b95c5e8f5cf62649b30d99eeb2cfeff4da6728c1ea3454a3fd5a63c2edaad7c7f7ef0526e085071630aa4674315917df3f0c1b94e19289c76acde2012a060259793574eff3534daa0966f7b33c616ecf7cef24eff84a207085c1dfccabf6d236b8d3888fb647b5ded9683cd8276807afa3e5e88aa5eb5a5cefa026eb7b8f6d7457bbc79e72de4cd4d92a51a38127376f01d2c386d2d67fe3b0d837c69d4d7e7f7f7088c0136c6cd68440f906e0b34f86392a9c1217ae98de0373f9519df555bac28411939feffbd5b6dea5e8fb0f9f87fc2f9678f520533dd4c1eb1b0981e540e355ba4ebd489a2672ff10d2380fbd956cfaf3bf315583f11313a3e34bf4156d7525788b7b7a8d17d14f975a695a22745dab8601fac6b3ce7f4bec9e298858e702d136d7ef683ddb367bd9dce2f54d5c54d4f160da32fe78be2dce9fb7bce3d079cce887399db28c759152c16cd112b1c67a2020d46589d0879eff71e1f60c05077b52e4a752a03238e697b5829826c5c7e5f67b14885654266325c2d08a51c061ef88ed081a5636febb510a8dc56319221ad23107deee4be080ee9c39ee3de0adf59157dfa36e403fe55bcebc4c4011a3d638c078a716d11d75ed96e860f39c30d4929dca6c7c61ef5592ad0ab218e54ec0d617f4f1fe0cc35c70fc08bc95d758f8117d02d3c57dbde6b3c78dc5f2644544d059699fb78f808cca390f0b65e9c5d3febf6bc83224cce78f602f2d289605c1f9513358c5188a649fbbe3744e3e27a40f59c0184ebf4b7fcdce3978b25d333706aceecb07a4a57a0e6536276505949fac58fe1534db31b2e68c327fd30ba76b4cb8522284bb9010155f45fac65b544bf28aa6552ce1ad878c6703054f499288627cc2fd5b2d7f62ddd12fcbb9064a8cd8b2e52d1b11c33bbee9e31570c53794262d974cb03bcb05a6da95d90467a6378271d3fe59ccfc5f0607e69c8a2dd542147c7449a82ac8887de89c0c6683d74c76023782fc40bfeb565c8b554821cb27fc528893ec77bf4ceaf128cc6888e54340df30c2439ede07ba9ecd30ad0ae498af1bc71480fb8bf8dcd1dc79baae421d17790f5d5331744e555e7a6fc0ad02cf5d6680318e1439ff535ca6b26db71bb57b66116f5c8ebed986f209296e474aeaef97ca694c0ff22d97d022c573d7274a20fe61464c994eeb478047ba7194f55bf7a98614d1fe6c668076ff36181ef2bd1447fab111bd439f658a982269532d51b677d87a7b21b6ad43445ac367566e46b423dbd531514aae2ae399985461552630037358278060eea1550c1629512314e8115b2c9218078dfba77d552541f0e2a84d1164a4ecaef7ce265941376c2755ad08254545e1d067d03fce227a43c3898a525699b1ded34bc0125e9208a16acef7f24676ac1cbd506d8978990d6cb8bc2e4a2ad024046d2049c587be4c8838a8ea95a0b09d7c49cfdd6db6efe5b79bffb9d0029160a6ed5c6ebed0fe13c385e90e91c235d0515374001db3158882d4889729872cedfbdc384a6da8e02b4306454685b8bf08212e73a7c1fd0c0f7ecaf8122187a8e20000000000000000000000000000000000000000000000000005070d14191e", + "result": "valid", + "flags": [ + "ValidSignature", + "BoundaryCondition" + ] + }, + { + "tcId": 66, + "comment": "low_bits called on the edge case", + "msg": "db00000000000000000000000000000000000000000000000000000000000000", + "sig": "76432e6ab59eac46a20dca4e4e47e611229522c99e1ce6fc194463ae709d93ab730c8140ef2672fa15c236da36c2c60e0464c076bbff7ae1ae2d720ad13905f269286ec74e8267dcd7a88ff4f04c3ae636481a55c781839ea1ac36062f031d137165e996ff75d4c065a98bb8eb707bd84545ceebe4da24d8a2efe41662335a474531ffb8c14238df52b18557836a0eab930ef7df9e64ef74bd9648bc42416ba401a521518d564c52af2d92cd0048d2228ff9157405f3d163f951a63e51525378c55a23af9f2cb52609ea6fb83de7538a40cc14374ce9cccbe760de69ce8f9d86f83b74dadf11b521210e13dd5aa12cd85b1d77e7ef38b25151c2d8009efd358278fe5c71ad2f2cfd8ad6a6ebf03e43a03897c269f229193e5c36e3b897326f9009f72b0da4c727c8e3503195bd1c82e783a19b0f81143be7baf57d92d290332cba51e4b3a4af66440d1d6939b02c3903667a7e0a2fb50bbe23164a31c3ad4b4c9f2402aeb00d60d16ff32d57667b3fb681205a422576f01d75d5218b560222296247647d060366c68417f2c388a8b004102dff8d13ae83fd34b1ecdd81c2f5ad807a3492d75b397af2e081dfcbbc3e8c8eff3be20dd7f482d2cc52492f8e7083c132a5c0fd4d4635362ef960e48d6e35efa51076b6ea32dd63179800f505e8e47099a3b861e537333950434273bd8383d0164a2c4aaa911e7e8cd0351d2e6be1e2980387b67081bffdb76ed80ae821e05454abdb12758b3de37bafa765ee5ab16648f4da5c2cb7a489212a743d37bafa06f58ed6a6bc6f20e6b0e8a1fa9ad07aa56548f93e23858619e67c83bf4dca2ec6516eec1c9e115aa34220c59255b3ae1d5b4f8e091c17fa55275fbc8230d217330b67473738b3362de17baeb131f7d4a9832443aea256b4a5e3889830abfb4f324e22698e827733aeeb16e34a33b0023b9551e3b81dd78bccbd2468a13cad54918d10ea69029c9ffd797e968253229d6eb410ff827a9d2cd6bf152e5eacfeba68e1d778b1e89f6b71fd040ac712f36c13d70969d025faab59338983edb26116d0561e066bdf5c7aaf24eab47a68d15ec19ed074f3d4e9026dcc8e33dc6d46010955e9be675f2b863af88ecf29e4c7ad7ff639e04da36ea15e8fdaabacb4f69967c12c36b33aefce2d9f3608531545d210bbbab46ea27dbb3a9e80cc844a18b1d1d9ac101ec131dc54143dc081b988a482bb46a84fbdd791e742e4b38088e8538ab8f2544d8f9a5f4f9c0eb83d37f856c4cbe64688447c7f052ee375b3edfab105a464d937923166833f3eebd302e30fd472343e75b661389a049e497df2d7150b9681ddd66d87a276a1a43a18edb7ea77d2f2eb23a722a4fae1a68fa2363f29b2d67381e7b70d359dc86a06ef2bd9fd0e791440906062e9ad715ee41abee8262eab49c3b7f9b11826684f735bddb21c3dcb681b12223ab13d38cb230e0cceb4d23e6af1fb184270e90aa00b311f8c2452688b8734c8d62c22ae08d8592479e8eaff64b2af23fd68f88576a66be58e085bbb85b022a5c6f460444c0287e7d25f4480c429ee9e5aa5d455743b38f91ca4445196672e360dc894571f978d29f72b3634682a5263b13fc4ceb9a1bcd71520973f8df457d61abf1faec612ad6c86305b65d9cbb7bce5035b8f644b716313f684eddc6909893dc958813e6e3341dda8a332c364a97bcc9b6472e6b9cc570716ecb625f4e8994da9b1f6dee8561ca4d2f6c691703022eae2235dad9d5c5cedea751974e8d602841e71ad1df6abc92f4f0337bf7237a65a17e010162c46deade485a04f46214fe7bef32db3c311661e43c0c2e9edd963908a1f8c1f6dcdfa45cc100da0dbb89b30d70e801d0688f377f6e908829defb4a17d78717eaf2e2d5744f11586bde49fb4c8ee40f36611da3c97bbc5cb69a3c94671122ba097bb01572cb883a6f9180c3977875a1a5581dbfc57851a5ece82e40e297679433d2a7cf18bab87d7f05e04c832299fd2a650bcc6bfe288db08d12653cadf12f768ef212c63c95714a4641a12962cca3cad694032d531307715f64ac64d259f835e316688965529e513e56677fc4855b8c4c9542795204a08c58dd0cd741655446865cc14a7181dfca296e47096729665a2cc9b340a26eae144197bb69b43e3c062e5408b8a15c6c7ed9e08a9d5a58b6a1cbdf8f7888afd4ddb9110848eae2a741d0bc3d745df8787fae2521124f3211c34b8ebba39f2034a9e1341db3c49fbeabacf949d3bbe4a89ae66b2cbf10f883fcf5783e419d947cfceb12d33619db27a970ffa82d368163a8d9db2a9c40f38dd69ae09d21e842794349040a6471d884d524eb009c6e182c36449f7b609b543551f6c3196f1f7cd4f311c277b5c6a1a99979607b246e0937d066dc6014eae9cc6232eac1426e954f70e881869e80d435bcfee437405fb528e179a68e28336085c9caded83b771a39be93e660b4ef5066ff8a5ea8df0c2fce41a2fbd7a9ea0abffd5a3832f1ba3cb114f975630de4b8583275f48fe7ee4ec19e84b23fc41fb4542ae0d569f417044216a61a3f7a5f7e340a028d7a035743cf71f7074a1a4b51da6748fc290f29bd42969dcab0282b6ab6711539c2d55b93a575ab062cfef43027c82dd57866a0133db184849c480bf014470bb72df543bedd1e5f80573929a7f101c1065090fde89ea5cb81c0cc2937493cb0028c4c57d74e141de27662dc744e15f6ec98796f01eec26209945533d789cee8f1126aa430afed7156ddcd0501c632b1f83837d157c3eefbc55a64d1e0ba4eebf25f157ad169a438d979f5d81c7c37f1312acbfffbcc267c084e098737e172026b4bfbb53d7c5f515b3d7005a120fba41eec124f22394ee0c735651e4ec5749a16847de77312b07399bcff4b3d1c5732ad0e9b88ae5bdec072ef63b0e2efb30309df310171e24a8242309100a173e62c53acb781f87831ac589de9e07cb461c5f455dedeb8084c39739dd33bf34ce6e0ad134b53351e9f14e3343eb1d7925ee463ed8d66ab2e45b7bfd6429b4a2ccfc868f78b603f4413e2ec432b299cba4b1f017704a41ac31f7027b0628a3c9c7dc43146690da24d7c51218f10f72465c176f84eee1f0364163a31eb761e33273ec07c806de809656ae57f86ede4b82845c3ed6ad075478ec179b3738a329d9627410127bf5cf193be7e021131518534b2813dd25cc7784b3a203139ba232c9efc1dd538563c970f2dc6141cfffc1e880cbf3bbf81b21b948f160a40cfcc83f71f652df1bf23e14943ed3346dc97441730e162ba39f3baa187206e22a7888cc5315ebc08d08b188cdcb76cdc24cad462303a0b0ad1cffa6abd013b1fce7fd78a6272b3a8e79eb0d171b4b48d63722c7524d0a367d60793259b53ff34ef2f295ef1728c57b1dadabd44272c94da9e2f8ddc8edb6a8148bc5a5bd4252cce3742c8d635d4a590682d7eb92d52836d55d8b5b985a7e0e9f941598436f8470b39e84795853a3daccf65b1eca82c8eb92ff5035932e4be8d34b1a441c47fc0fa515a3ae9df6782a041c751af1e825cc1551eae4b98bdf47293a485f7dfe59eb639d23b5d0deb0e19cf832a0a7659cec0fd7ad6dad928d762e2f5ab572af3f67ef51667f8503dc1fd8d73c70ceb08fa184eb7601242be1a7bd7813276f9b4e5f7a3180f6a773f1ecbc48bc4d917f417734601c05c9130c4169bb8e7ebac241f359bb63104dc97e2f4d11a1666e5bd6fe1c267edde2e1b4de17a5123defda1dc62231b7ef65352d8b319b9cf1277cc46b20064232ab378ff3d908446a61ad6223d9cba2d1c770ea8a8580725e6e945a04365729da77f39397a398725985388ad6bbbbfe28cb756aaa8afcef1cba634876187b497671a8f79180e37ec94751887c33814b33217ffd1a84d19e05314daa554581ca88260cf23278c0c1459b3d5308159a5349679959e06cbe727d26b399a37247bc6ba526531d10853c62703edb910cd4f1ca64bf7842a907aa1a00b3c78ea696a342d70019c6a32b81a278e6296da3f7111e5abc1e982de9caafd5cb65e690dc33e1eda512c29824ed0f085cc7f8cbdc012e5d9e7988a281ed3f8bf87c8cdd643e6b5e1f766983417b38b9b421a7c7193b9f5ff4ff54d71818cdb1a5407be5244b7e90cfc9e95262873dc6e8f69dd05fa0c61da32940b06a6999284a1348c8e54bd7a87a4d318e42e2b38f89a5f9bfcde2185c438bbcba42115cb986e2066cbc68b901fbe8e1cfb2e96b3df0563a1b121e8b1bdae6f49333ed55cead1a27c23c23382ea0fe81856599df39265bd68284e402e3c3cef38b50c7580f1dce8eeb8b93e9e41ae8c23dfae117973c39f45ec30674485445c232b13acb7960016503c5d28f338cbb5f167988eb2f0bc8228f607d9130a5b8a4af4114e203894bf0a522054bc8e3e40e4898e8aef82598c49227b6b992988450aa6bd7a72fad964f27d1c75009c6f8b1b1ab09bd03ca83afc0d63ed18ce114692ec801839de1d60bbe145dee09eb4a452744f9aee34dd7431b9692a8f1ffc57cfb9ed48000194931adcbc974e01f685f78523c7b1aa7f3bf990ec83226b3c8a62b182037476b77a5ecfa1f293591a1c2fe01424855bcd0eef3f70b0d24468e95a4cad00889969fee2433445889aad300000000000000000009101922272e", + "result": "valid", + "flags": [ + "ValidSignature", + "BoundaryCondition" + ] + } + ] + }, + { + "type": "MlDsaVerify", + "publicKey": "5a04d37a8c83d373ba07da5cf96806002e3635ad8add42ce6ee9902dfc9a1f27af2b332e1a44672f757802793a43b7e9f1927fdf4b89b7a4ad975ecf8bdaea48583cafbaf30c7ee6f668c225ddc25ba1d394d920f435173ea8453bc83bac373e3b6429f48a01c7deffc3ee5a986648a40dfcb31662f46f3a07d22ce9d486a0be0e822c1c75ea58965b9167ee08c9e6b07e80be89b257be37a57d5385a8bbf5e4439bf3aa80c17874a9f37d7a62eb0baeee9893be6e0fc223c31834baebedbd9611225d25542d78fb659b6f41ff3182d94b3e471f8c837f82a42fcab82ab6254a67632edf81f6feb720dbcdaf92c92a05f68db7fd074349cc54b84865326e3dc45e40645c95b41908aa66d38dafdbc4ec559cf0f86c5bfe7c2a84e8e56ac5bf97e88456f7995d77c8d114120a9c7dcd3758c182f8382f8f0ab8cabd451f71c72daf985ea2f64d85b561dd294c2f96abd8f351f2821fa920ebc8fe576aa4a9253cc23ce45e3fb4695f181ddeaa2ad12e96fb0c658e12f12cbbb4c244efe0b40b09c0c8dffdaff6f47a8c1f4ddcdf4c5e62eb68bdf66a63eff871a31fb1fe3cc67db129dcc8daeed2ad3e80ef54e600bf7494752d890e7183fe7f22f9ddd790d25a46621820b79203d584aec35ad52dc7fad76a9a7c69b276b7fc66ac7b873db7beb6d1c2f6bc8ddf11b9cab1b8e8b321ecd33bc4fa548f99cf116379ad7a7b20672f2e7cb6432cc2d792221ddb59ef4f62bdace3bf3269888085f703cf0358235d22f3d2f5b19ebbb5692a39282aefae8015e39425678f982eb31755804d4f1e698491ff7cc94157055a2276f8a9576022cbfa45982214f356dc4b5eb3741e12c3f6361d9f8334f175503deb9c03eb40c6db999056538c750c99a2f55d39cfd104f5c9e77c462b127007e5e24775726a9f7c841838eede9f90f62e35a68dab88147448581bf09cdcf927afb10c054c56f4cebc4b18a4e01427e0427d1525a3857d969c5823920a1b56436e8bb484d4f0e96e17f71db9da6d1317dd6a6029c4b6ed21fbef7552581d56d786facdff8f5a225c7593cdc9bb42c722f47ecde0967dc0a8f1a5c99ce711f8399f7a45489a80e55b982caaac1e2728b84674eb27c76c2f0b67bfd4e1c88dbb26e090b9f3e19954d7b32cc33bd331996dfac4187d76b75ae71e359c93bc1a848943ee06c933f757afbc1d68d63c8e1ddaaf100069f6160ed97b3ab56a36985a45ae43ff8504e2720ea0d203766a63dde7d9fb45e7854657f7a30705bb09f9591aaa991ae8df24c31463c83dd00d02ce3493b92e3f4595bb0765fac637a5132f83e29d50aeb53b2ec911d0562c9ff4972342eed56e85f06e7ddabc08b4eff380f96b56cb09731ac82398e1df085deb8083b61bb52a8d473417c1d3ae2be90de8435a062783477302d2fa8ed939dbee525fb5804de60ad4abfdf4d02ad41453536cac2c9d5bdc3786628d3fe45d42fdea409443df330e5fd0f4858b6cda8c0a63d7b1217e5dc771bda256a823bb30720e3dcf2252959489a638089bb89aa24d688143a6b1a76172e7f0d5dbca3d033a369cc2af5f3ce0ac4ddf2255a80c23e2d467a96ad105de238cd3ae03ce1151aae6888f3dc54fe3dc07307a05ed4b0844363f0af2168f64d7feae7059ee1dcf5a10098f402f401cdad049fc4a81e1c9527c973bf32c8b7721d1b88f87297da77395debde40f1ae549eb56b2cf6ac15a7b2399ab5d96692a82239cd5a2d6d469a64b3a3154b2ae81e9a42189efb498ee86441dd039e38ac1204a286cd6d08a2218ea2e77e6379b40b81bdc19489a828905701b5e19d2ad82b7e885310007161a86a21e43fc70012b5f2c684a2cf546d9f623e593faab383cbf5879a871802ae4c9d4879bb28c5785b2d6cd3a83c8600befce72c187d48f5a879d9d9e57b3c55916b097f04ffca9aef8e3e4574bfc7db6a505021a800fd79a856550978a899dab650389f55c0654641890d0dea6c8ec177216cedbd29395a126a66c376d432d20d0bd00b1d7c1091f85af2dab7d4e60204beacc90a3d523b0be21fefa5f4e892130379c2f947889a28a2eb2dc8cc2b7d0090d41db53e9279b54e1243ce17089f946d112a5ffe1ce7dbcd4e849b6b7bce239b256005d46f7f1a2e2af1a048cf4218881e015b6cf4c7f6440f5fc61197f79749da80dc9ca03e2bb23afbe8e3656036cea31ff18ff07368a4df0b053c2d4bbb3b929bbf42cae74c88004b93493a42ae204b156fbf785eff086b5fad30570e88dcded140f016ce113f4c8907ccc0387f3eb4958953d8cacebf890666f3cb312a2e87555d93132fa88c1fb685c96b4a45ecbd3d274909ccb1f5bdd2d392a733de7cf1c87c3a8ea4ce905141116b2037c7f5adb387cf618deed6ad796711ceada04ff33d7930186582756d7b1c418ef02ae7399b431b38198c131b7a747407e2d4f08dc19f8a863e808ad6078caee2c8a1554d0f582eccf4ba0ae43afeb9cc62e2a5909ca81ba28ece723e141a7ae3317afacb3d0b61d9f199b05cfda42b750834c5f57098be4476fe2bb690481e7cf509e5e94d929b256c6df712a5125a12ddddb68e9b11dc0523cfefe2fc431185b96c5ddccd8ebef1361e2e01d812da62781e29c934eb89d59ec45adcd208ba6cc4735c59711452de1f1869861e7c10f626ba3b0872e7024b370eac3373223129dc44546ba9354d094bf745bb0e3ecea28a26cf1d3750f23276cd4954a08c05464eaed3e5610e5b4e4cb93", + "tests": [ + { + "tcId": 67, + "comment": "short public key", + "msg": "48656c6c6f20776f726c64", + "sig": "6589e14a5fb859884747dfd23755c73b7c934678879769eedc8b0b9ef592eb521f597b6f02978bc8f2c652267412078b39b728d6b026ad3770a26f4ee4ce6a0330828352e5258fc136de7b62a425c24c6d03e05fea6fa88ba5daf9fef26e8a761e59af74c6583fa2cd70815e97bc2f7fbe63f4c9048877ad637d6eb4f6ae89d2c7c927cdbeaf31f46c6f3f3988f890c53326be3e124d0712a3142eec3a341709d711457126f1f6c0029c3fed6aaea45a323e5df23de97e1584160c26219b64de00382a41f5ad633e7617e4724c0024d38ed1028ca117656af0b15febe5368ce38892a63adef0e93d13e98e03d4a7f85dbbdf9a36c072381929b566659576cd87d5f7c577eacc7c267218c95050d06668296ace945bf61c49e8fd82d6de18fe2e724f964f022292e4d4cfb8c7dcc3d28f1846e71830f2eb7fb64a8171b1fb8e1b3cb501e3da0f855e502f81c90e90657a239af07cbe2c7a66815952e6a83d26a600e36f6207f90741576101736bfcee82de016ae9380de38c1150a8469ce7613e360bf223b7653774cb2f81992d629cd0a39c9870b9542c72e38c4dcf10a798fb0b8b122f45dbdf311fb278e6e43a6efb95508e9926ac9b3576f9476f78e509586653a57303b06a75ced648332f87fcbe59f7bebf1f20424d4f30e06f4641b32638da7dea7f21cc4826b6f9991fd92dc6ace1e3e33d7bbd2daf35f4b8e4d984e773793abb06439ef71041d0ff74ce992b2ebfd0bf3b94574baedb529a654bd5a522d7ac80fb5d80d848ffd0d9d3c323c101b998beece494f6c27718ef1557bb90f0d6778ad3b8b48f4bdf641b60cf3839a8cb982493885a774ae75225657014a11fe03a4695118a6fbe3df1dd1454b1b075707f1c79ffe586f173bbbbea4a96ea21c99ed68974e4b711fca1b4974fbcb062bf0ac75f290f32c785f7c4f2106c58aca146a926ae912e7c0d95dbcd93d8435d08a984d9dc6d3a8ad6e6f09634dba641c1e3c519dd38f25a4cbbbc4b49887aac12adae7d0085b50cf3b3f4a38319367e62d192edf98c4eb4dd15d8f34283c6da0bf6fad423011a968f94ec44732e292b62d96739162a6e813ccf978639fba8929698002551f1e834c4b350044ff44693ef6a028eb224999b127b800248d085c3609b84a821a82591d16c0860bbc3ee853dd815fdf5c8695299af6bc979e8902daa96ba75f87435c97ce7e5dc2cf5b0638f5efcc2349d464ff60594fab1ff03ba5e90415a813693905e20a3f07caa5731a7b69bb9b7028f493ba65825826709aec686496a0cbfb2ec9224838278a7ff0068712eeef0a1788847cea1732a1fbf48ecf6628b809e9b8cdf85683b2f0957a3e3a78911a08a4c8528dbea43e7d2c26af405832ce6d0199efddd208eb077d99af735ffda60f4caf7cc9e5c6d96f77d354c262c7f6ab36dc57c841dc5695ca3eb6430da473830a966ac9c730577588f384edf35e00c77bfc4adf70cbf039f75a8f524a72a6c3d91b9c0f7ecc18bc97cd9e86cc4b077f28f5c81469cd3cddc1273146b819fb1345f83e2e389d4d82d67f8145230365ca68f517896121a4c335fec698a6998c90aa1d120ab54715ef1935924d298b2541a4b815969b20a657aa0289a4ee98b2584cf9485dff02ee1c823c1878a11a3276ae719a9b44b31e607f3ba82cb3f89a36ea64c82343e108ca357f461721e6512ef823d15a6f50bcab489962344bc5fb7b6d32aa7e177530ad7d2ced8d4fb4eee07bf6b9137d62f1ff1e8d196145b805d037d4d922d97d315ea37b6db5d78786dd651d520fcfcd83d35c61c9459dd1abdec5c7fdfda068f9fcb6a0d8697a5ec1968a2364de2c87979af280dd6a113900b6d71a1c667f8f9163fdaaec41e12e234cce2a22c06d03f96d3eb95f40c8b2aa886cb0f27b9ae33b3feac414cb00f184b64f684e91e1c672020e849013f13abf3ca9dbe10b12fc68f61b76ff48e4823e699699bca18ef394110110671bd336ca7013b0b694a1dc5198958a6f33469f2153aa9855809b2ce9d40cb9a1abe3fbb5f29be6a16c7bbd0fea398b214429109f11db96d2757f3afa6a4291386840923640d89da6ef249270a5e779b5b37d301156018bc64eb3ea49368802dfb372f7bb208642186609c7ba264f7e0eff71cee5fa7e04cddbf5b4269d11a9ec8d7ada95dc65fa1cb262ea0902980e7ad0cbffabfc50bee60d83368864698f64787b7f62084d847bad84c1882b45dc13af9ac33fe7f185d699cf902f01bbf20f3a7be7bd4f489e87b0ce4e50ee0ac7d1eaa2410d8b3fdf00d2ec2005d654e239d4148055bd3f071a6f121a2a38c6bad34b0183ba826e7363c74aef4a5f460cfb890c152524d0c3a50e44029c2dd323e08c989bca6f86951389626c4e05ee5dedb141ed465bc8e2abe8a7b05a3627ba30acbf79d12ece568d61ddb836c1d581f3de127a9888471546c8ae5e9ad7dc7d1e5ab477b735931b7091bfdaa69b0ab8976e2861bc178108a40e726225d79bdd4643873a251c87d8146bd45b4fe97573a4946b51632d55aa8d4c24bdbc3ed8e6bafc39a503aa25dece834467b3485adfbec2fbe7ae2d6385fb2adef081595f7b67c887acd14f1a97fd493f1363b5cdcbecdfa69ccfb02c03a7b0795560a69911a2de0e8f6efa29db0e4103763930835266abfcfcbf338040a8ef38b0401a4a98690cacaffad195bda13de62185788c2043a2900844497cc3706d5d13f700052d16d71d74be385f9a6af2ecff497e21c518fa61473b9f0dc36da3d322f24b6119dc6c5e1d93fb83fec7ffe91fd32d230342d2bf4f80765fd3c0acbd85043867c4a14caa2ff20da4d731eb102c24bc9c6012966467f790585f0fcf4f9b60bdb2f7334db4fae55808c999f072ae4e995ad4bc078e4206954758f2dcde2072f76a5958ba63c3a49868eb3fef5a49e042d07180979ba79d732b2675c702aef3041d3a6699ab2d1a6dc76d4b0044536329a40bee29021899f2eb024ee29b96df86fb6cbc129539e1fb964b56c2d14e08b9a793c59d43c5839fc977bfe938ba2b512a76fe450efe166d9daa5ac670c875daa626e664381a6670d1671d439f763cb4221c7e89f298e04590fbc315e214cdd96e50c6ce5972c9aa649dd6ecfa32e454e81880794074572469d5a44cfac07998616815f2a1d2397ff5d7b4c10d24f250e0edd05ef3c462251c81103af606705eba22a7a4f5129840872309bb7e2bfec94ca8ee00fb41407e3d80fef6f03da8499a86d2ab5ce65ec6b745a02a072ed0907ca728c2cb16d050393bcecf72706608038ccbac194ab4ba306cc2fe44e7a69e713f8556cf29660cd20c7912138bfeb4fb3e42eaf740a8c4592e2a79601f7e6432f297f6856a04f38c05db3f9de1a23170315257f38ca0cc2c1c1961a851afb342aa7263d34231e3279e3790c6b46e6b60137ce361a9b7f9cd3bcd06fc2512c4ca4fb1b498f88f3ad0a45eb9f7f281e4d2f8a8dc7f003bb6945685fefb80b738e94ea4ac18ed149a7162fae53bd658fc29ae467865509f9daf3cdfdcdf489bec5edc5a8abcbfc43c032cd10a4dd010225ea88e2625b19a2c019cd5caf883ee2bd8f1de21b2a884a8d6ebf4a156b8b600c98670401e23d34c6bcab2cf9f81193de2aa5a8e49744cbc0e5980e64cabdd4919831b4a532b01722f54c20b4a5481a62cb9ee7adbf01f1137e9d4ac33bb775345a8a465e9026c80ffa25ea68f067076dfc5a338eb3cc5c2187bc3028b3f45bebd26be52734a8d71d0dce4f28bac2bfb43390b793316b731580498ee651869099d40045135d94656a6dc0455e778535bc2a40d232fe14a5e6f5eb056731dc70cae835372ef463430a15a991b287500c5241d40997b8bc9ba99b4c7d87b1b18492f02a6cd769a87c1f1475a3de27fc549f030dd2956e3bf01d6fef9e63f5ea844e1edb3699df080aaa3e44c9664948a27fae173c4442e37cc31a992764121d3329e30297a9412e0c8216d15eb836c26a9bc3a3b7c7d9b09dd20a3a1e2c9588d7a2736f8e05a3f98d2d37d868a9a88050988a4c8f8d3d17d9d92c269bbb42709c083c6b30bdbfcf94e8b5f932f4ab8272bd81c3714381d8c3a968bff5c6cfbac90852d1e54df7cae73a92a0adf97f698fcef7c861053cf02be42ea4f02415c3a5a8326b70a6eeb9afbf17d728fe1f6cb5774574d68f4ec6c511e11a4657bb7313dee5df1afa4eaf0e6dd009f30c24ac1bb10d52701a056578c5e0e82a1dd4cef83a143a8aac3cf9bf1639d3d7b1fbc5268f9a313f14140b5ab458b8faa95f242850795129295aac8160c85e38b2431da00a6800d836e36982a9a378e4354e00fdb50ed0ebbbd17764eee2fe1e0fd4495bf7b53819993891c8f68d510e2566b0f87bb88734d83adc531352f494fb99520eb72d06d908922e5d2b9ae6527f81c6cac254851a3bd733066d69e45c13d76376427bdd4ac92d5cbe41013e09d6b0b84ac2a6e41c81a3994cd929175774877198af8a3263beb51c5c1479ef80f6f1b0aab54118249b7111b8c49186bd0c7af66f5a0d865b1e10c26d19aabf546c979444e96ef3d506562f57d06b4ff55b8345a9c76b4172b0e25089afb7b9bce3e52798b6e7102230407d87b4ccecfa7999d5d7ea6a8ea7d6d900000000000000000000000000000000000000040c101a1f24", + "result": "invalid", + "flags": [ + "IncorrectPublicKeyLength" + ] + } + ] + }, + { + "type": "MlDsaVerify", + "publicKey": "5a04d37a8c83d373ba07da5cf96806002e3635ad8add42ce6ee9902dfc9a1f27af2b332e1a44672f757802793a43b7e9f1927fdf4b89b7a4ad975ecf8bdaea48583cafbaf30c7ee6f668c225ddc25ba1d394d920f435173ea8453bc83bac373e3b6429f48a01c7deffc3ee5a986648a40dfcb31662f46f3a07d22ce9d486a0be0e822c1c75ea58965b9167ee08c9e6b07e80be89b257be37a57d5385a8bbf5e4439bf3aa80c17874a9f37d7a62eb0baeee9893be6e0fc223c31834baebedbd9611225d25542d78fb659b6f41ff3182d94b3e471f8c837f82a42fcab82ab6254a67632edf81f6feb720dbcdaf92c92a05f68db7fd074349cc54b84865326e3dc45e40645c95b41908aa66d38dafdbc4ec559cf0f86c5bfe7c2a84e8e56ac5bf97e88456f7995d77c8d114120a9c7dcd3758c182f8382f8f0ab8cabd451f71c72daf985ea2f64d85b561dd294c2f96abd8f351f2821fa920ebc8fe576aa4a9253cc23ce45e3fb4695f181ddeaa2ad12e96fb0c658e12f12cbbb4c244efe0b40b09c0c8dffdaff6f47a8c1f4ddcdf4c5e62eb68bdf66a63eff871a31fb1fe3cc67db129dcc8daeed2ad3e80ef54e600bf7494752d890e7183fe7f22f9ddd790d25a46621820b79203d584aec35ad52dc7fad76a9a7c69b276b7fc66ac7b873db7beb6d1c2f6bc8ddf11b9cab1b8e8b321ecd33bc4fa548f99cf116379ad7a7b20672f2e7cb6432cc2d792221ddb59ef4f62bdace3bf3269888085f703cf0358235d22f3d2f5b19ebbb5692a39282aefae8015e39425678f982eb31755804d4f1e698491ff7cc94157055a2276f8a9576022cbfa45982214f356dc4b5eb3741e12c3f6361d9f8334f175503deb9c03eb40c6db999056538c750c99a2f55d39cfd104f5c9e77c462b127007e5e24775726a9f7c841838eede9f90f62e35a68dab88147448581bf09cdcf927afb10c054c56f4cebc4b18a4e01427e0427d1525a3857d969c5823920a1b56436e8bb484d4f0e96e17f71db9da6d1317dd6a6029c4b6ed21fbef7552581d56d786facdff8f5a225c7593cdc9bb42c722f47ecde0967dc0a8f1a5c99ce711f8399f7a45489a80e55b982caaac1e2728b84674eb27c76c2f0b67bfd4e1c88dbb26e090b9f3e19954d7b32cc33bd331996dfac4187d76b75ae71e359c93bc1a848943ee06c933f757afbc1d68d63c8e1ddaaf100069f6160ed97b3ab56a36985a45ae43ff8504e2720ea0d203766a63dde7d9fb45e7854657f7a30705bb09f9591aaa991ae8df24c31463c83dd00d02ce3493b92e3f4595bb0765fac637a5132f83e29d50aeb53b2ec911d0562c9ff4972342eed56e85f06e7ddabc08b4eff380f96b56cb09731ac82398e1df085deb8083b61bb52a8d473417c1d3ae2be90de8435a062783477302d2fa8ed939dbee525fb5804de60ad4abfdf4d02ad41453536cac2c9d5bdc3786628d3fe45d42fdea409443df330e5fd0f4858b6cda8c0a63d7b1217e5dc771bda256a823bb30720e3dcf2252959489a638089bb89aa24d688143a6b1a76172e7f0d5dbca3d033a369cc2af5f3ce0ac4ddf2255a80c23e2d467a96ad105de238cd3ae03ce1151aae6888f3dc54fe3dc07307a05ed4b0844363f0af2168f64d7feae7059ee1dcf5a10098f402f401cdad049fc4a81e1c9527c973bf32c8b7721d1b88f87297da77395debde40f1ae549eb56b2cf6ac15a7b2399ab5d96692a82239cd5a2d6d469a64b3a3154b2ae81e9a42189efb498ee86441dd039e38ac1204a286cd6d08a2218ea2e77e6379b40b81bdc19489a828905701b5e19d2ad82b7e885310007161a86a21e43fc70012b5f2c684a2cf546d9f623e593faab383cbf5879a871802ae4c9d4879bb28c5785b2d6cd3a83c8600befce72c187d48f5a879d9d9e57b3c55916b097f04ffca9aef8e3e4574bfc7db6a505021a800fd79a856550978a899dab650389f55c0654641890d0dea6c8ec177216cedbd29395a126a66c376d432d20d0bd00b1d7c1091f85af2dab7d4e60204beacc90a3d523b0be21fefa5f4e892130379c2f947889a28a2eb2dc8cc2b7d0090d41db53e9279b54e1243ce17089f946d112a5ffe1ce7dbcd4e849b6b7bce239b256005d46f7f1a2e2af1a048cf4218881e015b6cf4c7f6440f5fc61197f79749da80dc9ca03e2bb23afbe8e3656036cea31ff18ff07368a4df0b053c2d4bbb3b929bbf42cae74c88004b93493a42ae204b156fbf785eff086b5fad30570e88dcded140f016ce113f4c8907ccc0387f3eb4958953d8cacebf890666f3cb312a2e87555d93132fa88c1fb685c96b4a45ecbd3d274909ccb1f5bdd2d392a733de7cf1c87c3a8ea4ce905141116b2037c7f5adb387cf618deed6ad796711ceada04ff33d7930186582756d7b1c418ef02ae7399b431b38198c131b7a747407e2d4f08dc19f8a863e808ad6078caee2c8a1554d0f582eccf4ba0ae43afeb9cc62e2a5909ca81ba28ece723e141a7ae3317afacb3d0b61d9f199b05cfda42b750834c5f57098be4476fe2bb690481e7cf509e5e94d929b256c6df712a5125a12ddddb68e9b11dc0523cfefe2fc431185b96c5ddccd8ebef1361e2e01d812da62781e29c934eb89d59ec45adcd208ba6cc4735c59711452de1f1869861e7c10f626ba3b0872e7024b370eac3373223129dc44546ba9354d094bf745bb0e3ecea28a26cf1d3750f23276cd4954a08c05464eaed3e5610e5b4e4cb938000", + "tests": [ + { + "tcId": 68, + "comment": "long public key", + "msg": "48656c6c6f20776f726c64", + "sig": "6589e14a5fb859884747dfd23755c73b7c934678879769eedc8b0b9ef592eb521f597b6f02978bc8f2c652267412078b39b728d6b026ad3770a26f4ee4ce6a0330828352e5258fc136de7b62a425c24c6d03e05fea6fa88ba5daf9fef26e8a761e59af74c6583fa2cd70815e97bc2f7fbe63f4c9048877ad637d6eb4f6ae89d2c7c927cdbeaf31f46c6f3f3988f890c53326be3e124d0712a3142eec3a341709d711457126f1f6c0029c3fed6aaea45a323e5df23de97e1584160c26219b64de00382a41f5ad633e7617e4724c0024d38ed1028ca117656af0b15febe5368ce38892a63adef0e93d13e98e03d4a7f85dbbdf9a36c072381929b566659576cd87d5f7c577eacc7c267218c95050d06668296ace945bf61c49e8fd82d6de18fe2e724f964f022292e4d4cfb8c7dcc3d28f1846e71830f2eb7fb64a8171b1fb8e1b3cb501e3da0f855e502f81c90e90657a239af07cbe2c7a66815952e6a83d26a600e36f6207f90741576101736bfcee82de016ae9380de38c1150a8469ce7613e360bf223b7653774cb2f81992d629cd0a39c9870b9542c72e38c4dcf10a798fb0b8b122f45dbdf311fb278e6e43a6efb95508e9926ac9b3576f9476f78e509586653a57303b06a75ced648332f87fcbe59f7bebf1f20424d4f30e06f4641b32638da7dea7f21cc4826b6f9991fd92dc6ace1e3e33d7bbd2daf35f4b8e4d984e773793abb06439ef71041d0ff74ce992b2ebfd0bf3b94574baedb529a654bd5a522d7ac80fb5d80d848ffd0d9d3c323c101b998beece494f6c27718ef1557bb90f0d6778ad3b8b48f4bdf641b60cf3839a8cb982493885a774ae75225657014a11fe03a4695118a6fbe3df1dd1454b1b075707f1c79ffe586f173bbbbea4a96ea21c99ed68974e4b711fca1b4974fbcb062bf0ac75f290f32c785f7c4f2106c58aca146a926ae912e7c0d95dbcd93d8435d08a984d9dc6d3a8ad6e6f09634dba641c1e3c519dd38f25a4cbbbc4b49887aac12adae7d0085b50cf3b3f4a38319367e62d192edf98c4eb4dd15d8f34283c6da0bf6fad423011a968f94ec44732e292b62d96739162a6e813ccf978639fba8929698002551f1e834c4b350044ff44693ef6a028eb224999b127b800248d085c3609b84a821a82591d16c0860bbc3ee853dd815fdf5c8695299af6bc979e8902daa96ba75f87435c97ce7e5dc2cf5b0638f5efcc2349d464ff60594fab1ff03ba5e90415a813693905e20a3f07caa5731a7b69bb9b7028f493ba65825826709aec686496a0cbfb2ec9224838278a7ff0068712eeef0a1788847cea1732a1fbf48ecf6628b809e9b8cdf85683b2f0957a3e3a78911a08a4c8528dbea43e7d2c26af405832ce6d0199efddd208eb077d99af735ffda60f4caf7cc9e5c6d96f77d354c262c7f6ab36dc57c841dc5695ca3eb6430da473830a966ac9c730577588f384edf35e00c77bfc4adf70cbf039f75a8f524a72a6c3d91b9c0f7ecc18bc97cd9e86cc4b077f28f5c81469cd3cddc1273146b819fb1345f83e2e389d4d82d67f8145230365ca68f517896121a4c335fec698a6998c90aa1d120ab54715ef1935924d298b2541a4b815969b20a657aa0289a4ee98b2584cf9485dff02ee1c823c1878a11a3276ae719a9b44b31e607f3ba82cb3f89a36ea64c82343e108ca357f461721e6512ef823d15a6f50bcab489962344bc5fb7b6d32aa7e177530ad7d2ced8d4fb4eee07bf6b9137d62f1ff1e8d196145b805d037d4d922d97d315ea37b6db5d78786dd651d520fcfcd83d35c61c9459dd1abdec5c7fdfda068f9fcb6a0d8697a5ec1968a2364de2c87979af280dd6a113900b6d71a1c667f8f9163fdaaec41e12e234cce2a22c06d03f96d3eb95f40c8b2aa886cb0f27b9ae33b3feac414cb00f184b64f684e91e1c672020e849013f13abf3ca9dbe10b12fc68f61b76ff48e4823e699699bca18ef394110110671bd336ca7013b0b694a1dc5198958a6f33469f2153aa9855809b2ce9d40cb9a1abe3fbb5f29be6a16c7bbd0fea398b214429109f11db96d2757f3afa6a4291386840923640d89da6ef249270a5e779b5b37d301156018bc64eb3ea49368802dfb372f7bb208642186609c7ba264f7e0eff71cee5fa7e04cddbf5b4269d11a9ec8d7ada95dc65fa1cb262ea0902980e7ad0cbffabfc50bee60d83368864698f64787b7f62084d847bad84c1882b45dc13af9ac33fe7f185d699cf902f01bbf20f3a7be7bd4f489e87b0ce4e50ee0ac7d1eaa2410d8b3fdf00d2ec2005d654e239d4148055bd3f071a6f121a2a38c6bad34b0183ba826e7363c74aef4a5f460cfb890c152524d0c3a50e44029c2dd323e08c989bca6f86951389626c4e05ee5dedb141ed465bc8e2abe8a7b05a3627ba30acbf79d12ece568d61ddb836c1d581f3de127a9888471546c8ae5e9ad7dc7d1e5ab477b735931b7091bfdaa69b0ab8976e2861bc178108a40e726225d79bdd4643873a251c87d8146bd45b4fe97573a4946b51632d55aa8d4c24bdbc3ed8e6bafc39a503aa25dece834467b3485adfbec2fbe7ae2d6385fb2adef081595f7b67c887acd14f1a97fd493f1363b5cdcbecdfa69ccfb02c03a7b0795560a69911a2de0e8f6efa29db0e4103763930835266abfcfcbf338040a8ef38b0401a4a98690cacaffad195bda13de62185788c2043a2900844497cc3706d5d13f700052d16d71d74be385f9a6af2ecff497e21c518fa61473b9f0dc36da3d322f24b6119dc6c5e1d93fb83fec7ffe91fd32d230342d2bf4f80765fd3c0acbd85043867c4a14caa2ff20da4d731eb102c24bc9c6012966467f790585f0fcf4f9b60bdb2f7334db4fae55808c999f072ae4e995ad4bc078e4206954758f2dcde2072f76a5958ba63c3a49868eb3fef5a49e042d07180979ba79d732b2675c702aef3041d3a6699ab2d1a6dc76d4b0044536329a40bee29021899f2eb024ee29b96df86fb6cbc129539e1fb964b56c2d14e08b9a793c59d43c5839fc977bfe938ba2b512a76fe450efe166d9daa5ac670c875daa626e664381a6670d1671d439f763cb4221c7e89f298e04590fbc315e214cdd96e50c6ce5972c9aa649dd6ecfa32e454e81880794074572469d5a44cfac07998616815f2a1d2397ff5d7b4c10d24f250e0edd05ef3c462251c81103af606705eba22a7a4f5129840872309bb7e2bfec94ca8ee00fb41407e3d80fef6f03da8499a86d2ab5ce65ec6b745a02a072ed0907ca728c2cb16d050393bcecf72706608038ccbac194ab4ba306cc2fe44e7a69e713f8556cf29660cd20c7912138bfeb4fb3e42eaf740a8c4592e2a79601f7e6432f297f6856a04f38c05db3f9de1a23170315257f38ca0cc2c1c1961a851afb342aa7263d34231e3279e3790c6b46e6b60137ce361a9b7f9cd3bcd06fc2512c4ca4fb1b498f88f3ad0a45eb9f7f281e4d2f8a8dc7f003bb6945685fefb80b738e94ea4ac18ed149a7162fae53bd658fc29ae467865509f9daf3cdfdcdf489bec5edc5a8abcbfc43c032cd10a4dd010225ea88e2625b19a2c019cd5caf883ee2bd8f1de21b2a884a8d6ebf4a156b8b600c98670401e23d34c6bcab2cf9f81193de2aa5a8e49744cbc0e5980e64cabdd4919831b4a532b01722f54c20b4a5481a62cb9ee7adbf01f1137e9d4ac33bb775345a8a465e9026c80ffa25ea68f067076dfc5a338eb3cc5c2187bc3028b3f45bebd26be52734a8d71d0dce4f28bac2bfb43390b793316b731580498ee651869099d40045135d94656a6dc0455e778535bc2a40d232fe14a5e6f5eb056731dc70cae835372ef463430a15a991b287500c5241d40997b8bc9ba99b4c7d87b1b18492f02a6cd769a87c1f1475a3de27fc549f030dd2956e3bf01d6fef9e63f5ea844e1edb3699df080aaa3e44c9664948a27fae173c4442e37cc31a992764121d3329e30297a9412e0c8216d15eb836c26a9bc3a3b7c7d9b09dd20a3a1e2c9588d7a2736f8e05a3f98d2d37d868a9a88050988a4c8f8d3d17d9d92c269bbb42709c083c6b30bdbfcf94e8b5f932f4ab8272bd81c3714381d8c3a968bff5c6cfbac90852d1e54df7cae73a92a0adf97f698fcef7c861053cf02be42ea4f02415c3a5a8326b70a6eeb9afbf17d728fe1f6cb5774574d68f4ec6c511e11a4657bb7313dee5df1afa4eaf0e6dd009f30c24ac1bb10d52701a056578c5e0e82a1dd4cef83a143a8aac3cf9bf1639d3d7b1fbc5268f9a313f14140b5ab458b8faa95f242850795129295aac8160c85e38b2431da00a6800d836e36982a9a378e4354e00fdb50ed0ebbbd17764eee2fe1e0fd4495bf7b53819993891c8f68d510e2566b0f87bb88734d83adc531352f494fb99520eb72d06d908922e5d2b9ae6527f81c6cac254851a3bd733066d69e45c13d76376427bdd4ac92d5cbe41013e09d6b0b84ac2a6e41c81a3994cd929175774877198af8a3263beb51c5c1479ef80f6f1b0aab54118249b7111b8c49186bd0c7af66f5a0d865b1e10c26d19aabf546c979444e96ef3d506562f57d06b4ff55b8345a9c76b4172b0e25089afb7b9bce3e52798b6e7102230407d87b4ccecfa7999d5d7ea6a8ea7d6d900000000000000000000000000000000000000040c101a1f24", + "result": "invalid", + "flags": [ + "IncorrectPublicKeyLength" + ] + } + ] + }, + { + "type": "MlDsaVerify", + "publicKey": "5a04d37a8c83d373ba07da5cf96806002e3635ad8add42ce6ee9902dfc9a1f27cd931f803c2103d181ee5228549e4f2bb5cb4bfcffcca966f1ede24a9958ad53842a15db226adf91810a689f440ef71184a2c6b4f40e5f133bde58fe9331defa1aabb9819abdf9cbac8cc564ecb89d648cb5d66a09453da4dba410784fbc41db6216e19856de2bed90f6c30f3975a9b7bb47c2cb63e0b3df09331dbfbbc23c15a45844ece88226fda9071185fabc073a8e832e7a940877972734ca3bc6bd66bcc84a61b683a3e59c9453bb1ae493ea1f0988c30e05dbd65e8824e73d7b335465e119f7b5cb640725121565c5610f7470ab86fdcc18bb005eab35929df14652a9771a496ec4d44ab84688f9481bdbbf79614e8c4fc611e1086bf2d4c798174039dd9686aa9f43e4cbaf94f9ec0533465d327e758f99637600455f5a51e9cf4220e8cada21dc8a5c650cfb00d964c49575306862c7fa4128e6c65503f93cd3d2c079b7ce193da9c9577cd7deeda0f66c087180ecb7d561309cc1a2a9e9da2093ff5cf1f8bc15f1d1d91f6462eae7a9122234e660b1739b7db3043b09a1bfe0af241eb0249efd1f3255d7bda8749bc0fa6c193b52cb8b1d3e1b4eed21d7d7bd6f024c680aadadacf51b5f0bccb09735594f176242cc95fa4f61ce884b73f0878dbed24062e219ffef82a912435b55f954e58728c79be21cec1bd74b0bd80f5fd0a5cc418c8c936f2be63bcdd3902a0a4bbde4325478fd58bfae7b5dd977139fb7dda993adc68dad65208bef03fb2a20f18ae37344a2a858dfb47b2db4c24488650d19f4aaabb43fa8b98f1bee7a4d7fc38363bc9711d63c691feabcf95336c67e2ccca3f927641ab8d9b97f709e96553ec1a4948503b4783054c9d827756bf7cb8cb74b1dd5077330b2c2ca7460de521a591bbb8dad8575278e62b9129add32f30165caf72c05788773cfd4d7fc6042a72df403c396d496b17893a9694e0a067bb4d625e409ad5f0e818a81f314694e6c3eb63f0c7f468511462497eb40fa7a09d0d60e5d4bca7904de88a3b9b3df40fd4854142302481fa7458d59dbc295db173e1bec6e7c9fc6f1c46a4c469b63b286defbd30e1af010ae36c9cb50ba5e201d7fc5cc5386eaefca0d81c22f49a7ad8ecc272141e58e90d6e88c228c9c0d3c0947e13daffd477a055f4777761d060fe2505c8de34ccc96a3147619d424650d6230840c3bdb1a86db1d0969e1f5db8b98a8a328c9c2ffc0c90732845ac67efd45e29d7f5335637683a019c67b323e0ecb627333568a6611cd193eed5d12eff8528ed26a37fe8f0ea7ed3b65f434d69d4aec0b1f4a2ce9d44fc111d9e5a6c99f346379beea4ba3b5223eab08dda2841086d6974e1c638b82d5fea7bc85c0eb697c76265d147637e919725bc00ecbc66163a8c589d07d26a61c781eeb47189b993d5fc31876242c79b2943a4aad36933d576c21ad62596941fc9bd4fddf223f646858a726d489a0d89ac38f609092660fcb9bba8b00bfece9a1c2fd7d5cfcb3ed46b75a7d5f5f89694c76ef76443e37d0cf4e1bc34f18d8faacfae991f2d10e06cf46ca7fb40ebc4f849b1c6c7d9f33ccdbe9171c59b48b6be2c18923bbf33ad0101ed73af20150885dffc2f7607b1039d4a020a597acb7ebdff1b591ef32c213d8b5c67c593e91e6c123f82bd3f55c5fac30ed7c01bbd137adf7a1dd49c4338235da356eb6f4a4138626a832d2bdf590a15a98258dc283bde285d12c1bb96e4c664c720f8b04a21f70b70c6dda30402b8995df99f72d987b7725ab4426dd9a04473c7079aada56547e9b275626744ef69c2f867752e0a9fd18dc6ddbc6be74bc42e23235e8d12a66de855046c6dfcd4e89b34dcd0d1eb1b0836b74431e8c7154b14f6077dc6baf602f86afbdc0dbe1c1faf81efd83b7361ffa9d46449b2a10a040b1857cddd5f274de67559006fab88536365f63ff9109994d395baba2410e613548528311ba3b300b20ea1b29a333ae40c6e77f30d2e0b2cbc47ffd849028189489c580aba2f2bb9add957a4b3257e3740e81515930419b28aa91df5ffac928857830e20a3ae970ddfc8b277f656d117cef643dea29ad1479c1d9d5f5296011aa5cee51dd4440a770306a561927b52fad013801252a9714706e3d7aa198119467bd5f0f4fc1a76a5a727b0dab83de31b4581858be975072809cb1f7e56bba1dde4af1122b5a28162bf29fab7d4a864352af1699f3456f4d7bd72752d477ef16fe44bca379259f6562fdb8821e8bed4772b3870397474929f5354c360b06741a9e2ff7f62e3765a1ac1eb69507ca0682282562744650769798b91b92f7b7b6e251c1d590aeb4c69154f262d3bbbf32653cc1ee51274ef7137d87c5d71a7cb4db570b1fc0f98627aa025a3cae57756ffeb5e2ca0dfc2cebee981e395166470ec1feb9705a78ccaaee282d3ba43073f9f4aa8026b581c2555f2a77467e0f4d9d25ed02d59e1e2d6968442bb737ead64e377cadc229dc70303d5d0e30bcc620dd22736f4674444b54ce16658058419bbbdd2b75937df077b2bb131ec9cacecb6720b97aff8907785d50d48d6896c54b262fc114d34421d3e210e4a393a357011eecb39a877fb2b65da40638be4cc434a35b3b215e3fb673a302656c96a49d6d007c1708fcda4c2d1e1699969835d8427c1b34b14660c2549df232246d729bd75327458895df9395f06d6c8f817f9b6ff38c48df0c0378c035cdc3a3cc9a8df239597359", + "tests": [ + { + "tcId": 69, + "comment": "private key with s1 vector out of range", + "msg": "48656c6c6f20776f726c64", + "sig": "001536c68f6d411a61684379ccce641d8d321311ec0af3760645bcc4bcec457c5d16593c830803146e10c484646e75ec5d0eb8b744ccbe1a0db8c852d4dce5ff8bcf2029418fb884fd93e859cc93a2658009ba6dbb1fc26e52f3e3e10d147b746bbd5d072e32b7db49894ec8bea11e95fe44725ed9cde9fc5f0c6d0de0573148b104aa34636a3dd7e177a903c32f34edd3ce1ee17e12509146839833fc36633cd1031ed0da14abcab55aa7b33ca7496f6d4f679c684bb788c572f815f495ce895d775dbe3220acae830fb332c69fe49bb89ff84e2f9cf252659c888759994bbc1eb7842b17f6e4807ddcced8108e0c6a5e3315395979f2455a8e0c1e2a15cf352fe90c03e28d55a44807081d0136c70e57b3ea3e57a2f0bc1da74309cca31d16ef7c4b0aa0029839d6e517f766cd74e8f98378c69a4f540b5778f89c401530e36cd72cd00f99f2194af91f1df6977fb2ba45649690e8f67679db29eb8dee15c21ea512e3b01794b65d64b0c4785d87cce2e6f91c4803652faddcc623389d0c3729d153a548144396e54db4533a8f7c8a40188a2ffd81c17a9ba70d5e9c982f451830542dd45dd5701a0354ad1e805752b2cf7a6482dab42655f0ca011d97ce8e934330f80b9546ff781bc18e82ebc89e5a69f045d6eaefb6cae8c5138c65ef89378e7f5c5d80d3c1c891d3167e13defca609257f63386eb0c52256b0fe6b5151be099ad783aea7e2d7d7c4a78048747487db8cec2244c06566b73b49c9f1693db4faa60349c9633a758ab6a372755132743ab22ed8eb36e766286afc21408dfa556bcab43fb2cdd886cf53c1f50993c93780fb594a5e63dd89d5e29756917ecca24a276146188bf4b3d53806571ef5f1e949dccced66d5656fd80e0da59dd73a84eaf9505eb04f5a3d9ebe15e96b2539f17db286e4c5545a8deb815d03524743a40ce265fd2d3bd3c6c0b281dd33b64e9a2c2e0d638476ae181b2572d58db7c0f989510017a919cf5b82f973c255245a01fa567d8c307fa77be4c6f51f1507416bfde78060f11ee687f95ddee6990f6b2b4034ab09a7b3f6d2d7a121f47ed669a36524501f833d26d8b73d8205bf1606508ba9ccd40fbe6bc64b6d784c5fcc0535b63c2d2f4e619a69982dc4922f26181a559387338a34413e8737598286814ac89fa0c9207bdb4aa91062601acd988ceb88f6f79f726ae055a484e23da021b9a9a90ea5b05da9ec8ca1f0c5cd74ba84d6a0d11cb3ce0fca89f54d030e3227ce6e55edee7f0d7a78082a1e14500ac97ac31feca4b227b76a8066a539f6655fcbbde001533f564a5dc22c6cce282bff9dafefe07e65d7f9422a621b15b966d0171f2c94c28d3d91db87868f190e926e598205695a7516d0b374d35383421127faf67872f88784382666672a9861747dc46d3af69bf8763c98aa8e32ac9f57ee9bb87d022d2dae340181e903f32c03fae1fd5b996dda6c9ae8d2ff645ece493959d97ee2ebadc87005aa88ba797b2abf5d29892e24837cd311d61f5674508caa3bd9b9ae6d421a051c2855a200c6bbd4c2d1ec43c25224b55ae9867a971f6bc663044ef3e6a50467bd5028023297f4cddbeb52be7d9e32112001b54905825b0965c679f75513f28aa9281102cf364b87de95e76458339072265fc31f41ebb342fba2b51609c60fc37db24b53c44680aae030a61f2c7611e0d43afc45f6654fe1b920db4716d5acd5c556f60113c0ee898d7575e97b65fa849207b29d0ac649c0d5e6860bc63a04e837415d3a9420bd97856b499f0e839e130d9b8bc189c37a63071a01d79ccbee4e97ef76060731a629cd188a562bfede98c131c8cfe5d419fac0a0bd3eb8b9e06d1a306f0dffb863903005dc08115f22e12c57c7dcd4b2624a1fe7511637c26338ff67b40a97cbb65f7e401c75243d17ada8f11b199487c75f3ab265b3692b7ea1240e1dc4da62bbe1442e06a99bd9a25ebc5a267b5360556dc6daaa44e166c65b59ae6ee5376dd46333916df9d715d13b480768145d9ca08c37dc162ddb12d06237d2841ef3ec473f1792950d9adbceebe8ca6152807768fd7696b12b2fcae571c58b33bf9b17041959d0c9cd4f0ad40a971a15dc89f70f752b2cfcc8b402c4c0b8c1601e1d9d977ec233418bd8a54d81f179e9f5b1134861f6b26719c7e2fb7fa6982cae090ca03c338f6bca56dabab39a9f4d2784dfa5c8e5fbce5a405abc1bdeb62f612cda83c0b4728605d59137412ccc59fed5c9112112d1cf59ba6776e7db331efc3cf83c7b28a0616c10eef7a57bc9a08924f344a3c2947787909547533094963922b1896d92d48412b45d91bec4211eb684f29474ebbca69b82c6b76efdb7b9fd6e758858747af359f6789d9cc197c3e7b39242ea789708d0237715b8288f8315609c0c23f3c932fbf6f3a16580d360c48f5e3efb70ae07f6f7e4a1812ba25e5209eae05f14c3586b8e440b6a72c60feb3d718740768a5011f6156d7af28cdf07ba2779179e1e897d3c40ae1c18aca5b35a5c447d98f2d1b6710243e0b4cea1dcebff9af4cb5df31fecc88b729dd6da8987d4bf80208ed4b3bc3b4f17497b167a43341b51976925093b8b41fd5d8f3efbb273382f83a64c3f05dcf6a70e6a6f5800b62d535d48cba37f2d24dec8f1134e1960781154cef5528c6b3f08f563ebf4eeed86761061dbf8d089b2a06cd2afee86616ef347d35bf5987a238ef5cee695b1438671b5b6cbf6bbef83ddd48eb3b2264fd45fdd115ba0bc4d289a803f71dd9524228e673a1f1c2af3ef2a979f98f7f4bcafc5995c3f3b80551481186bcf2b7d399e21ce3791ba4a36e2884dd0498dcce82b8b6d3ce54ba2745ce76ef1b4ecaa769a23104ace1f99e217257545e2347bf12c0a28c7bbe6d3a7dfc72119d9603231a9d20d34fcefe2b60bef5598cb1085cb36a6fe9618167a512fa504e3af78ae9a7de9d2220a7bebfc42f90268c9992c1f91ca51dd6f1c3e4b29bb156ac115c43a7a52c5cb3cb94c9dbe695a865322e96a3bfcdd549418802b02dc08791aab60124669606c3aa15225e263111a22de1895da83578b880e6e6509132cb6954558a8d5a01b4ea8994691e53e896c2eedbedb6f477e76f3716ddf41c10317c2862714d50aad161f55a68b43571beb34d0e50c0f23fa61a73b7f85159e4a519b452c682633e2892a02f1af51599462a0bbf4f51ba1d37ed62fd6dd6c35bafdefcb09e3c5560b46d6d5486687dc356b8cb2029ca7614c58540169e85961fe60724b37fe35e631e328b334e3b06559cd4513bc9be7cdb27a48a013ab02e5ca6dd32e52246107f25cdd7f2b2c7ae7338763cb062f1b5139014dfdaeb310a97cbc06ae44c22c9d874498ddf0962b1d5c32f1deeda67eb35b79663394eda3737a432c5d16e7b6d2f1e58b8477bd94bb222d340835df44f8449e644717f55bdd3276633637eccc9020c27082cae35730e35e8993fa23781e516675ff36455c7c97a46170b4378615a39d257a63bcd77816c9a0d9c1cf756c0f9b524e242f3b93655750c6054114ddc18dc61b7c9db7dafa9dc865f628b6b42216674f7047a2e2dc6977091a57d46d968dea38f77598b9403b816d66cf12681a3f2c7fc782364bc1198f9bc68e552394bf70e7af301dd00ce37632621adf8f4281302cc3e27d9f016e0f7fddcaacb6c9bf1692656c918024520a49dd3db8b282806b85bf23e06101aba2fde0aa1776f074dc1ad30bcb0f1591a7be9bd0ea7f02265da62a43b498b53ade79a449d8e6f0236b9f0c544d831b25c637583861a93a5839109a1cbc512685d1897ce0c3d4a1aae722a4e2c26a54357ed7f88b2ae6a11d86e230132dd0bfd05372f8ce595d5ba28b13310b7cd49e48ab1a41e444d5c49471b091eefc11c598b9b0cfc330b003e1a36f0556d52eb6ae4bab963fe1c4531699e422d38e90d3e4f4c4cb5f456a70890ed8ce2a88ec878f0d0a24ce30d21ed0c7d8ddf31d0edb72ffae692ff13456636748a9f101607f95e3ca0b6b5d334002e96a158d616750597457179efeb38829ddf2f18117bafde6825e9eeec4358c8052e613aac57a947463aac827040150a41537c2e93aa468a952eb1663839525df68ab86559db169ef6569e132b5dec205835ee06300bc9c45c33cd647522ba0d04b28f08bbef431c81d0ded805b9050a4eff24caf48504b35f1ce64fa254442af37f2ac6ccf48e09ddb61fe01df8a05afe6fd914e748d9de966d5d926b28b90b4de94acaddb8936ce47e5dd2cb879a756c8863c62cd919817e2bd0a3749f5585a89f3e374b0e64639d9de75c9946fbaeb6834c699490d59830874af84c239c7003a4af24e61a3a43504cdd5a68534b3c8f68c38a3662add4ff024e944d52d6c609aa68420ecd274ce3f33a3486174893ba640cef7cb42292bbc166cca7b11018441d55117c59982a0bd10989077481e6f878b93e479bfd7bf799c84c38436530c10aa2c442644381fe549c201f47489e15b42a9d4fb2ed9244836899be26f0fca4f9282dafa5957972101a2234e4154913a36f489ddf4c2cd663dacdb13ba1ffaf497b8230e82b4ae50d8d4f8226e9411164b5196c3e8f6fd164d7a85c8ce2d33cafa027eb6c2c7d0edee1955f3348fb0d2000000000000000000000000000000000000000000090f131b1e22", + "result": "valid", + "flags": [ + "ValidSignature", + "InvalidPrivateKey" + ] + } + ] + }, + { + "type": "MlDsaVerify", + "publicKey": "2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "tests": [ + { + "tcId": 70, + "comment": "public key with t1 component set to zero", + "msg": "48656c6c6f20776f726c64", + "sig": "f90c671a8259c85bebcb01ff120f55a3b2bf0aed40c18af7382b4ad29ca238c4a62ab8cf3bc2cb8a0df1d5b74fa4d7e5000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "result": "valid", + "flags": [ + "ValidSignature", + "ZeroPublicKey" + ] + } + ] + }, + { + "type": "MlDsaVerify", + "publicKey": "d83f3fe5bfd9895f3fca5d0b6ac999618c311772d3a9dd13d5f1dceae0f8dfc7ecca61b55aca5b59f6a6903299e30af3000a59a1d0c07ef37b56612ab56d886111fd3b846ebd40093f592fae3d7c68323001324416d0b484c39d8d86e8cb60f61bd4476b3a9b29cca23aeaa9376f22a4d1c2cedaf64eb061c5f7780141f1afd18e9fc0363d617048cf56de2ea77e73ba5e433874cfedada42c2f410b84e20f48a7a09eff493365bd997eacffa795796376b9abfb8fc3fae21a2cda94b4e4684efc57b5f589d43a6a34615adab3cce5973f230351da3650c20182095452eec5319e702c49d3426d9852eb9fc2817e3a55445c11b2b1a632cfba5c2012a3ef691a4998c1ca23fd4a5bf4b75791e2db6c067bae0bc77764e227489ae0f1fe857756013bc8ebc5245c78c58e411e63a433ac20fcd89a442d2891e6a3040bc65136a508152dc0b82ebe0e44975c366fc9157f6b8caa84350a7951f5d2a4677d647d17b9359d4566cd8fc5b7ab55135a39caba73a79063bf1684915e64afec7e56942a8b342061fd2ca7f36b7e0972a88ec6efc24dbe5c0b3918183663f769a9de66c88511e013decb1711542ce17a23912268cbc81821e95505eb2ac4e6f71c679d46ea423cd5b43513da45fcc36be2a084071aadd7608aa79ad7e1e3b6dc42bb689196e477953390089d4524df56489d1b6e7c8fab35c411a3b61204f805e80d55a37754e4cbea7e25a73afffb51b0dd1a62eec109e01e90ea00ddb76612ec1bb35cd6fc86d788db8370e0fab652750e53fab5a488c87da2533d96e8106b1eb1702bec29387dea33eaf4b224c7c2ebd938d88df9946cb0ea1febc56b6c95a334f2f5a85d5b6be24ddefb149372b24311bd49ca08c509da8ea75924a2ba12b41507ae853b63698161bfaa8598c4f5b15465c8baf8a2bd67d78ca6a7f9a0ece321785f29dc8f2fba22df727535e9d07d393c71899f72f3502eba8c024ae578df3f89a8dbd30dd4f989cbac63f75935ff92659dc6822025333e08de49b1faaca128e22ccf992cad4334e71bd01a0361e7832ae0cb8aebdefbed6343160c2f0e5ef75b388b8679c791f2f777aa146a675356fd90d88755ce0bdce67e4d54ac57ba627c8c9e2c5a23b9fa9865d743804d852283cde3e3fdf8e246ba0ee5fd1d7c9769bcfa3ee123e288193186e6cfb3adb76614001d3dff5f7168d8a16fa189d347614c0296d361baecae268f19a3ae5824ff8c6d65453a082da30c9167a61930c70934484ffe5aeae169ea3b32e5bd36af63300e389ffdcce5e7ac62df06a1bf6d3ad01793f8d8e40963e91003861c40b90c7167863881b34e8916565a1bb02e622b54ea6d04fbecb2ea23320a8cdf1052e32b05f23aacae527214860ddd6be63d34b0a81915a280b8428807c9e36c5bd1bb79d9b9a5b658d04ecd677efa9c987f4977f013162f1f8fe2ddf2a331fb767cf8b944c0523054ef264269c12eab37e56d1a814cf6ecb4367da3b69bfa07c6d04fd36fb6b007e33a8faccc5085b652d0af902df2d4116a3caa826014fb80c9405519ce80a4c03dc10f994de92e43e59e4ac6e9815472492ceaa358927a14b2e083aa70ba58802c790c9911166b7dc1ed94318b4395d0b1ed125cdc83dfcaac5f30eb90b0275f55498398dc30c755b79db3e2e913e87e621efee191da71cede227839ddc565a69e2467ef0ce03a3e2ebe625b53db0e3c0c7bcdd37a322243ec39dcb3e6ca0d79644d974ae226978dbe1457bb4ae87b6b160e05474badc09b7dac93cc089565c10927baee18ce9320c9817a1ff89b3d39b4415e9820012c920097c3d1d3649bae3528930fac8e5aefcce444c04a9fc923557391b6df0a74bf8cfcaf3ae1f54b1e5031ed928dc31dec5956c45057fdf5f231ce1087f8b6301e387f21966f44b69ae9473888b6a6a19c99b2420c957dd9d14bbd53ec2f3b13d519776c39112c3586fd1fb87fce63b9ddbef1d4e0b37ff8fc19960eddfd0c747b07ae7d8ff1ce85fdfd68fe6716774ee1e981d65255c9b7be3680be3d512736870c4c9c1f2d4ffa0553bd1ab66f15be16d360ee3176af9e00fd0d03e6925d22fd02d245eb89c3df68eb50e8b14b690c5dc818f42656e4594156122e91a9d30a91d333e0e12fbdb4f1ee89ee80531310f9d5cd5a2c38b9aa7ca0fe71ca28fb8930bd9521dcbb5365d1038e8b784c53b0d1a95e679a1ae748f2fa6626ec1a594b5b523626707469556b50ebada8b9c3367227a287a3125c8ed8f1960b81e6c23b42d6e8e863fe4f01f469954408746f86845006cbccd7baef8e1f05c0f55d4eca56f27cddc28e370669cef9afb62bea1290f46fa71bb3734f7128bfa959d9521c8b8bbedc2d451828bb98a2e4f2d4ff0aef0ce0ae7e75e00a8de69802f496addc8a7cd64b47d8b2210b611f2271db3b3056d0295980bf68447daed63ee6bd70df86ca6d5394b530f9bdde060dd4fd33dea9a98e0bef653dbb6d5f3ad9337a84802e114a44da3bed5873e143629d46c2d5c3abee1a385245ad6efdd2f260e976c5ef4640252f1cfd5b8dbb5504632cb732701a33d03ce2ba810d8935c2a140a4f9e2186463b7e65c671c4fcec23d426afb2b12b624644a59acf3548fac2bd812e9e054472dccd560bc334d05a4bf2b8bb4f6b5b79f3ea095d8a0e3a6a0be76cfb184a84073302be28655fca4b5359f968aa55a6fe5814ac0176ce5c8fb93de69ab61cb85489c69ac3734c4a3994779ca35e26ecc009018", + "tests": [ + { + "tcId": 71, + "comment": "rej_ntt_poly (sample_uniform) requires 5 SHAKE blocks", + "msg": "48656c6c6f20776f726c64", + "sig": "16b336256c51560d99c97d15ff467360f5f563fb555932f56351acd1e53906f1c05c87f8544a821bcb05d0e3952a84c4d9de460becdc5ef5138c9729e905a3fd4117d32cb0957c5bad8e84ed7c4170be74d63e9b8d813c4ef7f534c5605a5e4f6ba4e06f6d800af82809016eae3e6fd4beef0f045304a4c17222be7f8c5e71a294ed8485c956865896457119a39ba4abc44bdb4d019493147d0b5e619bfe0a5f4ed1938e48e71b88ec8fbf267d1ea5dc8f63c67d98a1ebe9fe4757195c04a8202cf012133181892a4221cdaf79bcf240d005e80e8c68da8f0fdfaf8754f21ebc42d2a5900cff1ced847ee80e875c27100bf230f613b0758c3e4ccae5064111e71f0c13447a25ffca32669e53ccfa855b997236887f6aefa3baa2fe264686b879d1389d72c5967030d99915a9915182f97ac2375c93e5dafae6575dddc16908bd2bc865891d85e70fa998bdaa18246f73db0d69ca58ba813e33c90a3e6b2a2c2f8c97166c9b474c60fab1f3c7841b96c2af1349a37c443fd86291facb657a049e175a69443bb3662e252213a868e8241188d8941fd524ef6017633d2e3b47c9a1ac1bcb119722f54c514e62de40b5f2db38a1281e220a14e31e46442d31c71489df94f02811e53806c5ef65377433222b8510fb7e4f53ad31cba34456779563028dd1fe7ef3752f0121efbbcd28dcf09f045cacffa2f09f343cd4184820dfcfa3e0746aa7ca2defd2bc165dea6e3a07af3b4a8e9ba1c18c32b44ec37069d65013aa2a88afa691dad1a07ea87fdf8c7b187fe9572eae4f296bac40f3f729ec4c9ea4378aaa60b70f4febc3ff3a7561e2e22a7b8a23770af7bca50540236419762f1f42d9cba0b1285e83809ea02c4f0f9af086d506967168653b1a54754b629d769479eeef76eb8171b127b724040f0e7bb815577a4998ff01662d2968ddee9caad22212c3196f60d9212b5e1fd92f0367d5780d3c42c92332e305b6e15bdb3eed70643a26892ba2ba9c6e575a77ea82eef3f425dfb971c7f6e74520889a1869cfe4dddf2819445e8baf658668a9e0d3c65f263c208c4442d38e644f8ca193c5f463c4dcc2217dc337d37a0ffb61688a2c67a2223e41d24d07ca4984c35c5b33cf142f443e9a0ee0f631173399d714d41131e84f9b0c9be290dac2ce4716843cbccdd3851cde789e8d03a7133f08b6234dd78f63e17d29a7b93e992ec7c80d6bef2e7efaceacea917ffe1b23b8a37f438cf97c42551ca8e37b1831eefd5f4fa495d934ad6b7dc249be12baf8010f55552c87e04c79762e717a8647c427e9a9d41200438187475b8c51a990b1d268fbd1cb741059622bbe0b74d1c40c539d1719232a31023e7a0af41034a64f65f96347f7bd9b1501812fb48bc771b72dd3487485765bf4a769b8cedb355f425f49fb27da1375b5183196aca9009e4e638a0c5a07e424d2a9a6d828706de3e36d5c579704e30d3980511c3f95786fd6cdde178bd9b246929bab9bb6e55176f83a25252d4dc97e70239a24ede49a93cbba3ef31a637de8f254ab965c6d8824b31f28a9fc4c32beccde5299ecf43f488e9b8e037b848491db03f6deda7be882a5669dcd87b26d57856ea3f2d3bed6d5394b7a06c498fe8568f62acbf63197d21d1059b55516d08496608ccd6b0cac9a49b2a9b9b7436c1bd7f0673c2d66ea6cc6d20bdd975cad6d32c11436333454c7cbc67a9eff002b29f3b5ac34255fe7351888a5872862cc7f745ab7116bcdab0d76bcd187d4318b65ee3044d3e342b88bf231838b93b3328dc787b3340fff90931c392a1283f897f9a9091df52b7cd2ae885118d4fad2d595a76555071da39436675ad6c083e9160b3a964a6b020f65aee5a2cb3be2453c0157904e7283802f243c5cb40943ed48a91b48fed455648c576ef7ad7ff6df274723899b2977e13bf8e803faecf2ea7fb78f63a78975512c962e375bd6aa37bd0132b0a9232e35743620d1785a55bdf36620888b2a578141e29e197735bf388491fc40da63f423ccdf76e2947b53d975975840257ff2cb2b5075803305954941f49c7dac218e081fe269dc2a5506f4cc2a751bba6070d9ee0f8a801a90895ad3c1eb756475bcc3c6e0df907c49b4a3494dbb7066744ef693a5eab0edfd00bf41b90002713f08b35ceae0b19338d604dd47e55527fdd815408a20c575ac6388240e0f9b3fdd66c9e100e512ff6f73e1285c4dda646f6e667c1e358f166de2688e64e38fe47f0d44410a5cd284adaddc6b444a08bb44a3fa3dfddab4245d99ae058f019362eb5e89f56b41db5d885f038a31539545863809d094cd15fd23b77bb5c652d54ed422790532fad71ff5afd2ec1be5f0bb1456f09fd9b37d9da01fb9c103dbb277aed288eb4b5b28a2820ec7b717cebc4d9f0eebe5ffbfcbf722b0fac299c4ec37c03eb1a066147a18aa47752f21877111f5da3ea36b8d4a11d06126e90e59535b3a760d882bd694e5cf9e0dca9b73ab6984f50472782f9b105bb3a7fa7aa7b697f831d3a9a94abcef8f7b6295ee73a873d67a930b4b830d770af621e2db52c5ac7dd221c8ce33c2f2d5147ae5ef89ee1f370a90df218f69d3937ed20f2ac484d79cb5fb22c5c1bd477fb005a05414865ad6430233997053f1c4aaf7182af075d196058c97f871cf7951585f90360504841aebf6da4ba1e721aa97f681989704f04e13b1843fa2678254c536844a0cac2391d229f2c1382819f4e15cef9655c1c667f45449cc7d3bdba48c86e112e9be49c2cf45b65934304883eed0c97a0ed53e660d7019dcfd94773d4209058d8e131b0e8dd0df041a5af4dcb7ffa810757ea253204510c69d08d4fd77fcd971d4d9c5e0feb00b8672f525c13dcad6734b40b98893a74836dbddfd401c9bfe873da4d1acf4eb1028cbed94d48079b46643652af0a877091d28cde82585602b6003b47f19671d42be1660f0cfaa289268cf1300c2273038831c57bcbaa2c88934484565cd2952afb8214f76bc911d0c942d4b260293630be3c0c44358d16afc38bbcea3ad073179487bb17d0af4ee8884f30bf7ac5f7a8b469b7a82fd83c68a5531d2987338b2d760dc6718997dfb433ccbeecad89ef7b79690cdff544e93572468e0b044221304077c8d506dced5fd7a3ab0449771ed71cd5790dfc43b1bbbf22a519583bcbf5b4e836d6a59870d25abbe4bf8ae2a7723bbb98e3c763a9dff1809d0af5ea183eb1c983f06fc95735a64390876394ed3a98ca2dc5d4d6bc4f5004c7a4bacead5dae0adf46139fcc77e7c3d74b000e08ba87af82f1669a8cc41855430e1c3a1b42ed1790d127d0861058bdd401f59bd80836e81cb019a923bb4dbeae1ce5d8c9bdda06ca80a407cf057448618332c75f2e61050c4d9e20b34ef1bb5d00008d152d77f220ae4ed705973e704a20c170bd9cc1f00d2c7b09a6b00a010bc987e0743e2f3005c7a802b73f76d1831e0fdc39d7f5b881b551116bed6fa9b7878d1e34cd9bcef3e7f75c448eaef8520ee560846636009aa7c6352d3c9bf4471da268e00c9bd08d620a172e96cdf2d286d0433db1e00fca409df3355ed471053a4b061e07d7cebd0967c2840e3ee35ae99948f4ab0fc4875e8fdb847f6447e429d1261a961d0f54a6466bd1751313eeda7c7f1eb197c31e3ea96d207dcb30afa834a7923e9d482b7da24b2fad6f64908301335feb45f68b4257e08ab4b51297842661818eb1532dbd1fa152177118a119ebb89ff9693506c7ea51392a009745cbc5beb359bf6067958ec19a59f1ccf114dd379dc363663e284b182c7beffa1270330c009377c764d4c72a6a8c739430faa1ad5e6315c61bdfd1fd573afaaff096bac889c8195c07fd7f9203142c2bbf76764f948b92d8ab2b8e876a071f9c7626cd1f8f88885aa5f1bd2cd06161feae0949f7f45f6e1124feb6211ae8ca38a0b2f5810edb79dbb9f3eda2242e61cad3f75d8e030de89042d8041a2f6d4260d2effc31818d0bd34f57bad846b70d61b85eae3dbeeec6e7a1ea64e7bd691c4fd07af4292dda572b7d8d13e0fede3e3563cd86ef4c823b1cf96b639c13a988a6ef4389813296fb9d37070b5c17b4374681b8d46fc9ba4f53c63decb76eb907cb49a23f43fb788e22086ee2c269e25a0c45b5febc15d1f02198ba7e8d4de8134af6c10591a28eaef7f39f9b54d845107589f15087aeb2aca0c84e475497d25bae0353cf2d036cba5fc06a7a0b19dbac1aa464880dda5584eee02f306eb486fcee0d3b58bcc5555e8fed38c7bec8779ca1b47ec5b9f1ba01dd18a0c3a90ff771ede19f6b107f8dbfbb3af3904e4f45389b002de434e29425fa9473f751da9e0a44e8ecc3b09127e011a343d2022b18b953dca32938fb2d94d2fad4295c1ac9bcab0ad6941c950dd14ff5973239c7853dd5e80fb1db007a923ad0cbd26973c9885db7fffdd09dd896eb6e83ccba97a2ab7018a6339ec33e7aeb84d0f3323509e81ad2ed32e9f749011fef2f9fe7281c5e204e6a9e3107f9901b0e3a7a55a3ca54714c53ce2bc79c4ae2652d3d5b701c31ea92513c102a4077ed8f76708758b24f3083d620f2ead66ea3ce3d8341a0d4d8c99aab5d1265770a7adb8cf1c226a7d979899304b5f92999ab6b9bfca1460a2a3b4b6b8c92e459597b8d1d300000000000000000000060d141e262d", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 72, + "comment": "expand_a requires 150 SHAKE blocks", + "msg": "48656c6c6f20776f726c64", + "sig": "16b336256c51560d99c97d15ff467360f5f563fb555932f56351acd1e53906f1c05c87f8544a821bcb05d0e3952a84c4d9de460becdc5ef5138c9729e905a3fd4117d32cb0957c5bad8e84ed7c4170be74d63e9b8d813c4ef7f534c5605a5e4f6ba4e06f6d800af82809016eae3e6fd4beef0f045304a4c17222be7f8c5e71a294ed8485c956865896457119a39ba4abc44bdb4d019493147d0b5e619bfe0a5f4ed1938e48e71b88ec8fbf267d1ea5dc8f63c67d98a1ebe9fe4757195c04a8202cf012133181892a4221cdaf79bcf240d005e80e8c68da8f0fdfaf8754f21ebc42d2a5900cff1ced847ee80e875c27100bf230f613b0758c3e4ccae5064111e71f0c13447a25ffca32669e53ccfa855b997236887f6aefa3baa2fe264686b879d1389d72c5967030d99915a9915182f97ac2375c93e5dafae6575dddc16908bd2bc865891d85e70fa998bdaa18246f73db0d69ca58ba813e33c90a3e6b2a2c2f8c97166c9b474c60fab1f3c7841b96c2af1349a37c443fd86291facb657a049e175a69443bb3662e252213a868e8241188d8941fd524ef6017633d2e3b47c9a1ac1bcb119722f54c514e62de40b5f2db38a1281e220a14e31e46442d31c71489df94f02811e53806c5ef65377433222b8510fb7e4f53ad31cba34456779563028dd1fe7ef3752f0121efbbcd28dcf09f045cacffa2f09f343cd4184820dfcfa3e0746aa7ca2defd2bc165dea6e3a07af3b4a8e9ba1c18c32b44ec37069d65013aa2a88afa691dad1a07ea87fdf8c7b187fe9572eae4f296bac40f3f729ec4c9ea4378aaa60b70f4febc3ff3a7561e2e22a7b8a23770af7bca50540236419762f1f42d9cba0b1285e83809ea02c4f0f9af086d506967168653b1a54754b629d769479eeef76eb8171b127b724040f0e7bb815577a4998ff01662d2968ddee9caad22212c3196f60d9212b5e1fd92f0367d5780d3c42c92332e305b6e15bdb3eed70643a26892ba2ba9c6e575a77ea82eef3f425dfb971c7f6e74520889a1869cfe4dddf2819445e8baf658668a9e0d3c65f263c208c4442d38e644f8ca193c5f463c4dcc2217dc337d37a0ffb61688a2c67a2223e41d24d07ca4984c35c5b33cf142f443e9a0ee0f631173399d714d41131e84f9b0c9be290dac2ce4716843cbccdd3851cde789e8d03a7133f08b6234dd78f63e17d29a7b93e992ec7c80d6bef2e7efaceacea917ffe1b23b8a37f438cf97c42551ca8e37b1831eefd5f4fa495d934ad6b7dc249be12baf8010f55552c87e04c79762e717a8647c427e9a9d41200438187475b8c51a990b1d268fbd1cb741059622bbe0b74d1c40c539d1719232a31023e7a0af41034a64f65f96347f7bd9b1501812fb48bc771b72dd3487485765bf4a769b8cedb355f425f49fb27da1375b5183196aca9009e4e638a0c5a07e424d2a9a6d828706de3e36d5c579704e30d3980511c3f95786fd6cdde178bd9b246929bab9bb6e55176f83a25252d4dc97e70239a24ede49a93cbba3ef31a637de8f254ab965c6d8824b31f28a9fc4c32beccde5299ecf43f488e9b8e037b848491db03f6deda7be882a5669dcd87b26d57856ea3f2d3bed6d5394b7a06c498fe8568f62acbf63197d21d1059b55516d08496608ccd6b0cac9a49b2a9b9b7436c1bd7f0673c2d66ea6cc6d20bdd975cad6d32c11436333454c7cbc67a9eff002b29f3b5ac34255fe7351888a5872862cc7f745ab7116bcdab0d76bcd187d4318b65ee3044d3e342b88bf231838b93b3328dc787b3340fff90931c392a1283f897f9a9091df52b7cd2ae885118d4fad2d595a76555071da39436675ad6c083e9160b3a964a6b020f65aee5a2cb3be2453c0157904e7283802f243c5cb40943ed48a91b48fed455648c576ef7ad7ff6df274723899b2977e13bf8e803faecf2ea7fb78f63a78975512c962e375bd6aa37bd0132b0a9232e35743620d1785a55bdf36620888b2a578141e29e197735bf388491fc40da63f423ccdf76e2947b53d975975840257ff2cb2b5075803305954941f49c7dac218e081fe269dc2a5506f4cc2a751bba6070d9ee0f8a801a90895ad3c1eb756475bcc3c6e0df907c49b4a3494dbb7066744ef693a5eab0edfd00bf41b90002713f08b35ceae0b19338d604dd47e55527fdd815408a20c575ac6388240e0f9b3fdd66c9e100e512ff6f73e1285c4dda646f6e667c1e358f166de2688e64e38fe47f0d44410a5cd284adaddc6b444a08bb44a3fa3dfddab4245d99ae058f019362eb5e89f56b41db5d885f038a31539545863809d094cd15fd23b77bb5c652d54ed422790532fad71ff5afd2ec1be5f0bb1456f09fd9b37d9da01fb9c103dbb277aed288eb4b5b28a2820ec7b717cebc4d9f0eebe5ffbfcbf722b0fac299c4ec37c03eb1a066147a18aa47752f21877111f5da3ea36b8d4a11d06126e90e59535b3a760d882bd694e5cf9e0dca9b73ab6984f50472782f9b105bb3a7fa7aa7b697f831d3a9a94abcef8f7b6295ee73a873d67a930b4b830d770af621e2db52c5ac7dd221c8ce33c2f2d5147ae5ef89ee1f370a90df218f69d3937ed20f2ac484d79cb5fb22c5c1bd477fb005a05414865ad6430233997053f1c4aaf7182af075d196058c97f871cf7951585f90360504841aebf6da4ba1e721aa97f681989704f04e13b1843fa2678254c536844a0cac2391d229f2c1382819f4e15cef9655c1c667f45449cc7d3bdba48c86e112e9be49c2cf45b65934304883eed0c97a0ed53e660d7019dcfd94773d4209058d8e131b0e8dd0df041a5af4dcb7ffa810757ea253204510c69d08d4fd77fcd971d4d9c5e0feb00b8672f525c13dcad6734b40b98893a74836dbddfd401c9bfe873da4d1acf4eb1028cbed94d48079b46643652af0a877091d28cde82585602b6003b47f19671d42be1660f0cfaa289268cf1300c2273038831c57bcbaa2c88934484565cd2952afb8214f76bc911d0c942d4b260293630be3c0c44358d16afc38bbcea3ad073179487bb17d0af4ee8884f30bf7ac5f7a8b469b7a82fd83c68a5531d2987338b2d760dc6718997dfb433ccbeecad89ef7b79690cdff544e93572468e0b044221304077c8d506dced5fd7a3ab0449771ed71cd5790dfc43b1bbbf22a519583bcbf5b4e836d6a59870d25abbe4bf8ae2a7723bbb98e3c763a9dff1809d0af5ea183eb1c983f06fc95735a64390876394ed3a98ca2dc5d4d6bc4f5004c7a4bacead5dae0adf46139fcc77e7c3d74b000e08ba87af82f1669a8cc41855430e1c3a1b42ed1790d127d0861058bdd401f59bd80836e81cb019a923bb4dbeae1ce5d8c9bdda06ca80a407cf057448618332c75f2e61050c4d9e20b34ef1bb5d00008d152d77f220ae4ed705973e704a20c170bd9cc1f00d2c7b09a6b00a010bc987e0743e2f3005c7a802b73f76d1831e0fdc39d7f5b881b551116bed6fa9b7878d1e34cd9bcef3e7f75c448eaef8520ee560846636009aa7c6352d3c9bf4471da268e00c9bd08d620a172e96cdf2d286d0433db1e00fca409df3355ed471053a4b061e07d7cebd0967c2840e3ee35ae99948f4ab0fc4875e8fdb847f6447e429d1261a961d0f54a6466bd1751313eeda7c7f1eb197c31e3ea96d207dcb30afa834a7923e9d482b7da24b2fad6f64908301335feb45f68b4257e08ab4b51297842661818eb1532dbd1fa152177118a119ebb89ff9693506c7ea51392a009745cbc5beb359bf6067958ec19a59f1ccf114dd379dc363663e284b182c7beffa1270330c009377c764d4c72a6a8c739430faa1ad5e6315c61bdfd1fd573afaaff096bac889c8195c07fd7f9203142c2bbf76764f948b92d8ab2b8e876a071f9c7626cd1f8f88885aa5f1bd2cd06161feae0949f7f45f6e1124feb6211ae8ca38a0b2f5810edb79dbb9f3eda2242e61cad3f75d8e030de89042d8041a2f6d4260d2effc31818d0bd34f57bad846b70d61b85eae3dbeeec6e7a1ea64e7bd691c4fd07af4292dda572b7d8d13e0fede3e3563cd86ef4c823b1cf96b639c13a988a6ef4389813296fb9d37070b5c17b4374681b8d46fc9ba4f53c63decb76eb907cb49a23f43fb788e22086ee2c269e25a0c45b5febc15d1f02198ba7e8d4de8134af6c10591a28eaef7f39f9b54d845107589f15087aeb2aca0c84e475497d25bae0353cf2d036cba5fc06a7a0b19dbac1aa464880dda5584eee02f306eb486fcee0d3b58bcc5555e8fed38c7bec8779ca1b47ec5b9f1ba01dd18a0c3a90ff771ede19f6b107f8dbfbb3af3904e4f45389b002de434e29425fa9473f751da9e0a44e8ecc3b09127e011a343d2022b18b953dca32938fb2d94d2fad4295c1ac9bcab0ad6941c950dd14ff5973239c7853dd5e80fb1db007a923ad0cbd26973c9885db7fffdd09dd896eb6e83ccba97a2ab7018a6339ec33e7aeb84d0f3323509e81ad2ed32e9f749011fef2f9fe7281c5e204e6a9e3107f9901b0e3a7a55a3ca54714c53ce2bc79c4ae2652d3d5b701c31ea92513c102a4077ed8f76708758b24f3083d620f2ead66ea3ce3d8341a0d4d8c99aab5d1265770a7adb8cf1c226a7d979899304b5f92999ab6b9bfca1460a2a3b4b6b8c92e459597b8d1d300000000000000000000060d141e262d", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + } + ] + }, + { + "type": "MlDsaVerify", + "publicKey": "da2593ac1dddc220922b9b1972a2549aaca212f972786a5a5d7c2e00abc407a15ab30db5873f2f39918130072d0fb8a7ba465e13973a1142237fb10a22589d14b6ee9e60a7b72d7ab9a92e0ba034e81cb8a1d13e69f27428adc34c3765f63c99504c780fbee3d0c9a0fc10052d1d0a7312d549b9c1dd68e48d5607e2bcd689c4a7920479aeea469f1e8d40565218b2cdbd3571fd57ac5049ffcfaff950e0196f41fc619cab4c6e915e0f1431e7af3af8caa6e28daebb9c686e8caa4fd0210143113a833ba364e973024787923fa7b8a35786bded103af9c7dfab64d84fb1b94e9704805d6a309c32e0b0b4585e23cc025a0ab37a8f3b308e19ac06f967b25402144ac242fe89e8aea7ae87138bffd5689a53639b3a9e529ef32bceb3612bd160da3d57093b2ee231b0b0121ee71981aa56f1bac86443220ab4087e5b0449bb5ca2fc0e7a517691e0b87ab2dad3abc6566a1512650704794d4a7005f082ba95ff0ddd84922fa4d5a16aa7a9b7beb4eac15dc00610b7fcad4d36bbc8df52d4ef5229a0edf4c1d23d8501e5911e4465a6df861b63ad76ed2b1f423098bb3d44a353aa299befa92dbd9bb577cdb5bcfb4fd40a18bdfc65c208f666a47d2b0fb03bf6d42ef9cc75ed1763b49fc63f3635478751c97a553ef62f339cc70497d9da673ef3f49616f6baa94095e540c1903c126a8c045f4fa7d737cfea3f0697a8abcf3cdfaa47743dc569fc1d75ed7f8100b29c77607a92cb2daf531f0e3a4e7f51f8595225c7cbff4d02b0403980ca0d3b3969e8db7e2dbd85a037e2e762feb282c01c419cb8201ea99f5f5319e393b8cf8ea1c05c22237f2df31370ec2d532c3039cdaedbd1d56957baafcd942555d3383256fed05f6107dad8cb6879e183960cf29747f12fe6c04d74831486899dd83bf1b43fd1b74ac96c4a719b19e7bc04a466183d965e70801a81122f177096d8948e581c7d311a2e8092bbd1379016137303d15d6dd2f1509c3a4854ef5d4a40d9b2ae38628478e3463c075b81d2ba5f5f4cbf33fb2cf1dff757d4dfc997c240c9a7e02ae42ae082ccdc0c337f2bdba83cf4925129872b34c9d29ae69eb5a39fcf4c6f48b7614f7781f2407f893a0d477a37c51934cc89014eef0e2748302be8db88c5e773118fe6ae17a522a224346b2c4f7c34c34cb8a7da4f206f02ff89007b62949ff8c73b72cf67802d2ae552b6b70df172188f33aacc11345c6337270a3dc67b1cddc30aa0746400f3939b7e352dd28dd6139b8fe5e97f676a394c174f46ac1ab04c14dc58b0714cab249d6836ccf01b3663d35776f8473b8b3c35ea3770c0c3f27b19f9a85a05648f1fc5fc0274f44ee5b4b6a35c9a29270f8b60ee2528672370537f7b7afdc5cef8dd2b2cde9dfa9a31ac9b0d62b5d9f358146470ac2fb0a29b016cf3434be4ddb10fe0b8f29423764df46da0fb3f393ea4d572fbc3c5789d3efd4c28e3ac30f1d78e54f80af9a6ab47883d293d9f1cc345ae095fbb836f0baf26deb82d99081f2ba3ef25ab747307cc146968f7ff95a8e3f57605f01933fdc9802e0acc2854e4bfcc32d2affc7c6a88168cbd735c51bb993fbacb7a382f8e5cd65a8723398309f25413951a605c1a013626b75c36e067e84785b27c775ee240ff3ccf16eae36b0e75b6aa1a5f582eb35b7dafd91352626fa21389443238afbe2e6529bef2612f8328c037bb0d866eeec99575f4d9a77d92bc458dc890b6585e4db23755491d8f28a8f1ab3e291cd58086bef3a83956884e2839e019ef2fabda66ab524ddaf93dc817f5d19be8864524b46434200260406b1f0a773e6724631196df3d62496173ebc6caa8b1eb8cf9cd98b16ac67b671e9067a31303abc033056c9caf5e1039230d9e18a98598d25a53a63d9ffcb0bedcccfeaba825c657480c35c781d92b8258cb188e9652b40b4fc2cfe1a9f2112ad6cb2bb1883962277488f59f5ad44f7ecb996e27f10d2fe8ca23a8e9d8e873751e9701ef895736bfb9e43adc08e3898ce14b77eb2ab41ee2e506f2a9f2e553ec8cc0d8ce4c0a2981c42edfd09c411daaae275009bacd5217f17054e6eb2ed391f21431278dd3e1a5526082f8f977a0e4b87a180635e58c87051b4ebd68c13f4e75bccdf27cfbfc4f0e86951bd20d8e7f7d993ead4d46b381bef821a18ccfa9de77d4561b0ca8ad8565d3942b3c6bd11f8b89ab1686ddb7da0ddbc904aa25f2e508f6b24901874e2c579f74e8dd65110af3bc445160c18afd08b892fcd28d94cc219e8dcd7b9fb2be6f3e1923b93922b1f5cd0a9327042aa5d067b0edb6a0697d27bc94c16a5a245bfd1a32d4a180f7d37bd17481530e6b8ef38f8b17c90aea56b3bdc2acc1127921c12e3caa289f37c531927c180a0ea7c44bf41f1fd85c2e94d476df0531e3a954724deec307473d7253e48725331fa896bd1eb9d7f2cb97b59e6eab042deeb00a8870a2a0b240c02c0c278c331ac0171c2cba820f64c9843edd11819b9fea0718266d44f29dcf0e06ea83b6e2fcee44b52d497eabf6754d0dd2a516db1ff7b8b04dcfce3306127046798c4902d29e87957947533e71e218bf3eaa98ea41718f7bbb1d6154e5d71826d4fa8ce3689d7f2d49530a4b60779682ce2fb41612a1197f030d9c07b0f2a32054c3050c61c04cc88ede4f9edf31aa6195d9d4acf61d2e129818119533462874399f065944a0be397c1dbe7ff37912b42287dad747164bd25af43bb71ea5f279a3692250d0bd7f4056", + "tests": [ + { + "tcId": 73, + "comment": "rej_ntt_poly (sample_uniform) requires 783 SHAKE bytes", + "msg": "48656c6c6f20776f726c64", + "sig": "1873df7bd504c772b508a823f78c4c0e859d16a7bc477575e700ad4a5e862f74d2537cadf3b3ad288ecbfa3fb6acb3a8ddcad7e1225cec57dabc09444f900a7c922dd7ac0901a2527a71e32dcd3b6c71ff446ea8b8d404e61d59d24439171f1bd2d809136b9e71db3ececcacb25ddc3c84b318ec60327563b30cb9f29eb59b21b214e45fc14139cce27a424cd804f869d69b5757caed6cc254d3caac256bc4a3d8a95fd3a68e27a8cd88600c143dcb6f1559e83de3b50127b75233e79c09c0fc9ba447971931bab365b3675289d8a97cfc58305aeb4b81d9d9d221e21da52150aaa9d1c655c8586cfa705ad67b793f2f96e545892b02144927c3beace27beadb7e1b696557cd8e4a745b6101d4b05a8c999d05831c568367b0e71fc3fb682c22d9a52654835f06aac19ff5dc5e4c1eff1c49846571565d60458a337c44c6484884ece36197bd5a759fa54348d4433058d1ce34505a79672d2e13bb01e810708739e5b4e86b5010e21f56d6035fe66acff867061294fecf203e528d71bc84df0d46b63ee9ebb0806c3d346cb9787db32d667b059a42fade5da9e88167c74056380e1e35004e59277e90fd4a835032442ab773d52a2a60da388f0cac93bbf26dbfe11b9c5f16bba1d4877b6382b5f98b1e279de8c06fc569ebab6442f247cc321c38afe012a003e5454f5a3389afa18dc958b4bd99a93b5a1ed6d4497c75b0209d0d7669bd6a4f2d21fc61873a31c1b617cb90aec8ac7fd16b12860ba0834aac4e60f66108c0f8b17ed43e306e52e76c4d1f572e12d986abac77cb79d265271cc876e46ba3cd58bf650326ae1bd91fdb92a337d884c230f625235c403ea6bf1cf601834b7e0e6145d23cf386514f957b9caf959d5e420964e2b07fd2e7e7541bdb8252103871a48b5bab5b13707c872ff4b08989bfe71142346e2953028f26e1df451bf67a7f1d71dafec0d64828cdd535f44be1fd8e9c69a113bddb421676e07027851b073053a9e319d3f2c5ef128476d78d44df98d1c72494d1581b7ade65a2dbcf7b0c9135aa42169daefd63124dfef3deab5d93029d3acf418c99ab58f39b49d32fd0525017d4dde93495ca4f812152a74047eb93c3e63c0bea2af63194d8287779742d7f5a1b0c48fb299a1a1b773a331c221755be407866695f00afaa33e4b458037a0030f3609b3b0a16f7e68920d0013cf5943c076b3e20ba19c8da95c18f69526fe271301ccf45fbf248fdb8a5cbabb191d6355f1f87da4b9e0d11b417f5bd1aa8603e10d9a082dce8f29a1b10e814d5e5b1532a209a636ec0c1854746087666c2f030221324dc62b24a2ef2e30d519ebca2908a84c384735a322f1931597635dbab254a1ae28305883c1beff6ce068fe7766e92d7977dfe4a315c09d0e39920e6fbd2a3a9139fb0b8d6cdbf44ddce7af4caf616d0fd9ad62c41f48e3fe81235d79259cdb48ec0412c08219f60728e935f3c059198b5ec99168fc3503230a50536165ac05583dde40a99a950639b0eee5650341dee03e84fdd4f5bff58c9e90d8cb2740beff0bd05951b107a7ed5c0cc8b987aa753edfd1cc3e5a57668b7c6f6b46979500a63608ba2a438e4093f8226845aed1f8dcef6906c9b590d0343ea442f20416e199f9a0ef1e35ba075832d1fb1feadf5af89f84df428cbfe7adc07129e2c4381e0ee4aaf48c3e83567796d4df6a0f77bf524eadb07450fb026112b1ea538dae20f494acbc9e020e6311b7ff4b325261fad7784e5728d1e22033f28b95773da2d9230c48e82daf126882178bcfc58df7adc163b2d41e105027bfd9824cede1d5eda485062d9dfbe197f25d7b0f7a1742e9ee705b5213df8bdcf3ec012fad069f13dca7eb025c6586222cd754e7488135ec0a38569e45d7364ed9400e4a9d5dcaa7bb1ece595973912b4ba3be885c6684243a3c856e054a342235b53f217ea2fb6280daa54a31027c9ba72aab802501f355adc9604e799fe3276655657068d1db6a699cbd6cec2f3bc5c9c502d43fce11ae3f8b2b07a85fbe0d244fd81c9f92495459a782fca7a2591b43dd420dbc860c8645dbd55fd191ccfc99226eaace268d6be92a09f29aaa1e61b53642180956aff65b59d93c21302cefa86e85cdf7d926933809977416649f853a3ebad040d952ff34ebd5d6b2a3c8f9ba32b15e3921b70ba47c505ec1233044d3f349f49db4d262eaafc04ac0bca4317a6863f3fc88d98a311f80eb41bfc5c611312538c4d92043e7a96b567937b1a3eb166081d0dac70ab5865d6409b3310fa3fb55bccd8ef6b6b79fd677ea89c9117ba9bef2c0f282e2765cf100570e1fdd58323d4926648e8c9e4f3cb3e74ae5e3ef0cb53ddf48f7a082d346798566fd508e1a81bdd8faa0f9aa23abdc25a7080ee24ac4d147097976e6a350c23c5b9fb70f0068c272cf79756e25b2708f74d7d73d4976e6edbd48214aa276f823b535f1ea6b1004612d965b6b43b17c66ec24b222e6a50c119157bee10abea8fc902f66edcdd9d10ce822b186c9aa837f2dfb0e0d612b358cf057becc23106dfbb8511bbc14dbafdcc1c44f140a6234b915e297d967ef905373c9579ca1c135c695b25a57cf8e7280bd32d20880a2155aa2e6f37cce95ec487bf57f387bd19d398ad6495a8d6c3e34225f02912d204b110e92085db5958ba740ebe55e14d37ab874e52884d30bded1bf58065049fe9d495ad0095ff765615d2d192ad35c2e5ce12368a47bd53c94956e4bbb13b5f43fc2daf2a82d1168e76e0bfb70f55a636dd68120936e888c79a2ce18fb1d8307be5518c8831f8122ede516db4f1bbe06e22c9e683769e3fa0d42455dcf53b099535d7b2dd023c79947b2269ac8c4eded0ce16d6666e738743fa61f05cb1afb685d5da51550ab115465c5047044dcca58a3a47c9a42a03ffba31174fe3dabecdd1b887ecd3bab1a1afd6bc61cb527b5c71208d797151a05b806209b454d62ac2afabdb4023e8d215b6d8de761852ea366e4dea97eb3d54010767d2154b3b72b6a3599f624098aa9bdbb9d0d9242f7dc823a71aa89277f75abe825d6d5240c5590439f1084952625466a1676f778ff117d3e344e66adcf06f2f78935e723d86c0bb8cbb9d90238f963f8c63f94c5fa8a946d6a925cdc77f6ca2aec141e8f16de1d46236eb81c57ce682d973f2cb3ac12e3cf9e0290e4ed555ea1a57ad3b49d872dd6ba99fb89b91c8e6b25dfe38f8df7d91023bae4eb2dc7cb0a585a3baa9422ab93f349167578dd3936197e8daa71128083f7f783c67532fac42ae9b88b94be99fd9b62ea0d6e8c53eb4ba21b726644438649d0e19f379eb77594f1d5cab77e97d61440c8f0ab0bed326b54fe5accdd7ac69adeb946c855e32afe33b6c75f00fc992f53fff91546317c70ca6102052efbe00407ca20fd276cc5e0c2984af9a442787798673877dd990f6d49fb774fa6a6969d73e37d7afe31b9546125c9f1c12280ad11abd8866a0c13a210b8342390367ade2772b2a6fa98ed4c373d2407a7060f5abb6b0d8046c7a6392835b1b5bfe69b8973135b5b4dcb4da252af6706b3d813b4023574201b087bd7eba6f7ba4c2e32f94db3da7cabbdb04728efcca581373fd34e9c518c3e8a388e46626cf240a5d30e18448b5b0058a5f5a65f0c8f3d5c42fb02f8f391c8ad68a8f05385b86d3e816f604bd75b7ed5f27589e4196a0a15e376261f56a89958ad737448226700bfc9bd2fc05a09c23e86b85304be0fed7b4bee40f106ff3357e40107055f26189e59126de22de0c50c20ce74c2d30fba2f8290c969508321be117ab8aa6270961a9da3c451b3a4910efadf20d2cb52b07a57700a11ab4d5449cd370789057c1e66b1ccd6412b4461b0208c87863a068c4a2dc52e1d6cb77103dbc6993c26e77d8df0e847bfe649aa9d111f9f3718d5ed949f6688339de0d7a02931c5c2fb34ec6e5bfae039208a10c3edd34db3292aae4b1cc2de238914da4e0b605e5ba988674176541faecedbdedfe8f954d86972c9f187de5d4ec61d9dbe89c3df927e245b14a8a4b7cba2264c1646e632e07dc59b4c6c0578ae7266e312174caecd94a57a50e5d87a82dc94aacaf6a3e87928bf5ed7b4a939c5a2d445beb9e7929c1ed4901b38ca28fffcba1f9c859962698dbe4460a694d99fd47bcb91b391ec8f4e50500466617ff2a0123da15798e9cc4992043b34c759b63b6a3b8d2b6edeef00f6b8c5a2b3f0225c315b6cd6a744151cd5ab9cacf0445bd62586b7469c0c4e6d466ffcbdbb165dfa42ba888d64e9f7d22d1ae22e1a361f4ddd5c059ff273928a47eaa229b409e20e48570ccd7191067869940f661385b0e57c04f936c72aa36c0fa1de1cf3a18ea4b2e889f7ab3300d223e2f73200266ad8ff854e7276ef9420539dff1422296d22188d519a5f7e8fabcf04b4e85be6271a07e26ac654d93d31c1bc674f5799a84474fd347c44a9beb5523f6e89d8993c35bd6e5db1996225ef5a6c7a92c0b2c57f1b19ec26c75d5a9125bb4faf7c0ea29063ca6708dfe044d5c8b23f03e376a4765a2e1a127a82e51a7c9353112d05e841245d1d2c3f254e4c6b0eeb4bb53818769e10610254044636aa5c93a678ba0ab1a1b41434e7b899dda0f70959da80275dd00000000000000000000000000000000000000000000020b10191e21", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + } + ] + }, + { + "type": "MlDsaVerify", + "publicKey": "a65c0585d2ef17634953ecffd89a4ce8459cf96fe59d2f9f59170d5796e90f53d579c0f05bc3a2f82a4e83afa6f2a94dc3fb1dc53d839506ef76f919b859c93b643e4193f658d3696a36daba1a8718f5666a7e1e8d3b71be62cc0f48610a580f465f9f6e3dfbd46ab16891947b100c1e14d454bf77f1b56bf638deeae60e026fe37f3cce68af7cb67824947d0404cc2177b45a0dd62f5271030f6d7dc2df6f91aa6baf30978cdc46b53cd5df316c8a9e2e2bf0ffc06de6590278d63f69de3b7f438a1fc1a063a7a2a184f7abb827e5231354e9c7a12702ba4dd4e58116de01637821125e120c3d9bde373b0ed987ddd2d2de6660b3712e803be1cb7948b561de26a314944b0b612888c0ca6bd9673c16e5af1d42bb411ee3a9b1c2e7bff3a15e7068927ea3180c64bd0af3a69cc96e0dc18c515aa4250712c3198c6cd55aced8a5f8a447a8c1d5679dd697a6ad9127b4847ac363616d82f626007948cee72cbec1720a552f74f4e83c0782105dca13dc99af313b3eab386e895f385449e243c35521db76702828f1d39951f8a35dec93f5288b700cd13e48deeece3c96dd87090654b34b5122ac8918917f700e2f638728115cc632fc3b38f49ff54d8ac48c4bfaa5590e01f914431931301c4b624f346dac671e94c7cc75ea7f9fbddde4ff554b0b297484e83bb68394be78fd97a91eb9e378f1e024cc370420a24f7609a6708fc673d5955602265cc45b486923dfbcaa40e60b02131577c95a158fc831e69597309b84d91145de41ddde0de26d5d9f9248c5b99c838157768693f7fb07127fd918da1b037e502888aa8928a9b80ec8bf61f1cce40cc6ebe578d2595c845058db2a5a126705e37b6ae90fd77163a918d567c2c63826c560470ae283eed492e8f641da2b708b7648dd92b1f44cf2134c6382d8baeb9b7601d404a2a3e332ca8e72063fae85e70d57520eba31cacd45e2b44aae388acf33a4377cd86380fd2ba5a6ba9e0bd09b9c4de13069fe7debd01ed5183c8ff7d693e4342038816b44a03cf0ea44a22691b5bbc3b4a977f9230ba5479821f087843361ae95f0eb3344f72ce6e5a2b913349badb7d760d8f23ac2975584cae258cedebcba5e481c1988c13d7b5cfb6fca2e8830edf0d7ea135b124c66bcfa2bafdf5e89ce68e9cba37b81d55fb08aa26fdc8e5cfbd2b9a9e7f6b5d96cbcb49d414fea45d96fb0c4ef5fd26b583c63ac26ef3b932dec83b3d81f23117513064df9e51f1fe232efa2c3f964c43a74543ab37900ad9023ecdde3d36c8caa17c5e16e9fd5b5ab9e3bffa5d527f4a75fdcd5f986d51d45a9b3e7396a592ef707292877973a6e9b1824ca13a2d119a6deb1ca7156eec968978ba00ef4f7eb67bf640e352ca41334eaf535fad7307a89a327949e4c2110db2ca4eba4e0fe5afc427890b61748044472cb0d4a3962db462a1a6299fffb46f909316c177a4978bec12dad103b9857327920f198704cccded557fc8767d157c1d35c697957d3aa50be58ed319fc45e5a253d9ead960970597ede575442774d5fca19e0fe5e8307f7f04b72857ee4182d8f1da022074187f45cfcebe46ce8f81708c5f171692f7986d6080dde42746b4cee0582e0d273c90cc97de52374a323b8ab72c3bb7a3ded2b807ef818e26248942a50775349059f3e6076943a528828f125aeb30e8794d28087ff1e819909eac7ce193e1c836b52cfe14cbb72008ed498f627a11748a6b61e2a6c20db49a0087b57b51ddb50ec63e3e62a7780f4ae76b365abb82244026fd921f46b5d6adb0cd4fdee1d6a6932e54f99d38da331d18f34515dff67beb7dbafc40921e0d6abb0dfbe190964d8d7d5fcc244bf0580be685f145862776684eadf30dc7d3da75f56d37847b92215f9aaa87247a1ec52b6843eee2e78b3384a0d81fb608845471e84f4e30f4a77bda73dab2392b433715b0ac9043a2ce8dd839bda5b0b5b3196f32f0de70081da0d68428620946d66ed663c98826575a9bf6df2b48bef7ed7d2bc2ff52a9d48afa2fb82e13b383579f3ed1dee732b78144664b8e891a15d26ca0e5b4aa220dd8f038324813a7a9079ad03c6653be1f8a1315c09709771b41a9b1e40f6fec2797e31ca5f9fbcea90a228d907636484e297817cf7c35dd8a3cde2f29609cd682bc75eb2fd565ec671ba9312b0c1d5b4fa7eb94b34f7d756ec25a2efb1cc1626f4262ad29a4772829af54d60c3e2a9462786952419a40b34f256b473d1c4dc58b18c85113dae39f6dd4098ab99409e24bfa9ebc242e35357660f065158a2f0487f97e6c08503d8f565662793969955f09779d64aa3867b3e39b61536baf0c8f18ef5229c21c0ef0b44f962fbdf8c295dea5982a74d4755ced8a84ba00aee2a546f64062e4881f95b01f74466a61570803a0498b9da59ef87c7ea1d48e33b3c68dba82f4169c11597440eeb1ea4306fc7e6594a174446431dd25d94390f4f7e44905c8b90d6bc3409d0610d1248baee08e6ca9429ff39ef4aba46788283ff8eee6aa2a9414f45a590e021be15922023e7a8b8c5d65903c4f011212cd10611785f6aec8f24a0cd093e18e4deb7ace3406913739d502eb6a0e36ee21678fad144914e8776913edd80bf5341c8418b570b55647042009c820e8c3795eefb4de859797ac913910d9b1594e4935ea393daa619967fa22b146c5c423bf4619392fc9222fde72132748b5bc8cc94ba6b24e8e89309602b29ff460e4c745f6a64e24e3530034903a50f", + "tests": [ + { + "tcId": 74, + "comment": "expand_a requires 23103 SHAKE bytes", + "msg": "48656c6c6f20776f726c64", + "sig": "5c713bb1755f4a31c900ffac7ad74ac8adcc218ddc7b7f2a7655a89cd348461ac84bedd66de6d3f9d2d78e6441b2756e31345b4bbc5dbcd8491daa61080abe2c108e7ea92d02c5064daa8447cb982326c83bef10ebd654c0846a572bf1aadddad8ac66db63e6875150242cb8299433d5ddacd8e9dff829ad3af5635795d90e932b05c499b3bdb6a5bebd3d5b276993606d82855fddc31cd3233b255a92b6a6bfb78fc673d057d44f555b15b87cb15b16a2b50354237c1de8bf2cd45cf4d808448b7fa6b554aeb422c4f4666c53bf6cefd9e57d752509c0d278815116ee858f07d1b924608f76824981fb3d50e43973cb3ae375a337afcadfea2f4081c7be3cb6f89388d2de94a2565f7ed22bf296916d26b7298e2fd86b993720bc220b827efb0d3017a8b73a4768e21e2ac437fe462518c199361e141d28f1cfc2117cfeb5e10bcbf402427a6dd1572cfb296d2b145588b82fdf547ec3a08876a9ae7d7980a97671bebf5a0464b22d49737c677d7b65717a2f368d3e95c8ebfd58eb0412ec7d55aa49dc38dfe6edd15a814a620a0efacc6ec38e96f342a8590eaa1b25531fe3e82f85e4f5e46302140d1ee4aeaeec02cf0274dc7519e3c95ac09c77d5d8bf5821fa9ea276fdd26434b57f838f8dab472250eeded38c7d5dcde7d4850c56c6aeeb9d0690e127e3d530de6cf11b934e55085e8f89cd72988c93c6b2e9650650d90c561a208bb9ada1a58f9ae0029b492bfe1a44c99b54de4226ca44a47c7bb4ab2bbbc0658e9484b6a51fa46e54e7cbf8dd0efee828815aaa1986034b78fddcb51fb41e2bb232e623841350318a427ff8bbeef53b7b4b51c6f3ff16b7e7d7a5dfe574632ae42785b07027b3e5f9591064ec287d07092ebfe406731aee43fa17d363564d5078af8a59a791fb8e3625fa6581bec1a7df4f6b36babec24ed58878f1ac431ceb7bd690996162642b60860fd8f43e6698a8b9911e7532839827122c5244e0252646f32235dff933c04aaa92590448254b9e529adcbb22982de869bea2a0035a33f10fe559ba90758f491c2be1d5d8f1fdcbccce193d40658c8ff753700b73adb2afa7ac7c38d02d9cbca3bb6e797fb8c7fe428f0b0b267b2d40a7329c902d90ad4c5d00542c0681db02a39dbdac0259e0a36c9abd6318e709c2ecac66819f93c6e424abab8c58ff53f5251066f8fd9f8b4af9adfabce77ceb0c7d9485fc593c1309d160a5b06896ee147336db19d8303545537ad166203214c72bb76df59b4387a6287ae1390df354e9eb4f8212f7eaef0eaf486df611775bedf64e579cdac9e982ee9f3fed430a464e513c3bbb40322b786d39e8172d553ae9c1fefaf85c7032b7eea351ce428c25a7a77e194415d75f421c0eb37a366e5cfdfd876bf24aa48fcf2f7e194cd79f4e433a5a33eda08e2c7780e86eafe3d3a2b37b275cba8355fb196a5b4fb6c92130c99ae0230ea69a64138a54daf9e4b7b3c06d898e0c8edcb0cd47446e587cbe1351e38c18e8f8c913c116dc0a532870012b795f7d8ea90d5b45ecb399b79f10960d46f0e38bbd2aeaa3fe7dc1f0a4a3af34d93c0a4790d0cad37ca1b2e8bdd5e19cf95dbda815171a93371d2fb9f3fa682ca5955eb83ea1af89a9be5d1f898ee779bfeba43d497cd9bf434ca423c6f7ee856133fef62e88f68fa9c8a3f6919a4dd39a1fbc1755229fc376232630082157273cde5e44f1ed90268d52271ffe9917026d4e7e435c502c027dbcad78009f25350f69626e2b367ae951cd9be2549c865df0e96876a860567c61f7e9f93d379a78fd0f21be36bc87bf4111b7e362341aeb39d08e0ebd93f19b9cee674c3aaa3303b5ccf3ee9a17852a7b2f8f2a2ed4264a418122cb8ec18579a9205838548689adf6714ed73332acc7bed58cb4125af069805553bf17b4624711781466e3d16888fd88b1a207ed140a3d741a0b014556904c24f6ce9bbd5491803131235056ad10ea16f68e5311ad81c3d10dbb10bd15d0437ff942c12dc4f9b0206371820f5669065fccefec40e98c65d58c7283178eb6e03ee178df912bd2f9bf1ddef5d0e8bb7c21027ac835a6f4ac405b67c2e00974b183b3b69f4a21e2fb5577cd3fa80a922dbbb2ef9ccc1460fdf886286f98092d1ddcccdcc1a92fcc2f3c9aa95346e5a8e7f9ee66312a8d6d79b92afd56e7528d821f9ffa0b2b0105c0946ed8fa93882862a8540e193402f6579a377b5d6bd341d010438d0c8fb181388ffb65e0b2cdcf32155c0b4d6f126ef8a1179ea3541a38edde3f1f8e11c09cf92903987b1bcfc0f99c58623da618a5e92414e714cd545d3ddf46e084596b6ff8faf0973be86ef48c8ca973f0a1fc3871a6dd67a691bd3e0ddf1a423b9bef6181024d0da29c69e969d43a45512ac0869533041a300c1750a4681a93dde85c2a7d1ece439c0cd3965376038269548eb760374909beb0c46aac289613c1a8b53ae0698ef0ad4d286cb7637ecb07d20d286ec5187a91f812cb4f99b6da9b74819a384c04f295dfd4008fe11976fbcc83d53adabcd6ec5737c1634e704c1b68381788b4ba28dad170c0ad2a4bc871762f07fd0ffd1d37dee0f2152672bdc97fb69acbbe7a0a85ff88019fa51de355f47dca0a74ea528e8fb0b29bc04cf70bb18590a03f2b2b725d451b8f5f37cb1a7ff237698194351583217055bac197ff529b9d8f8b7ea0f78cb12f0ba2bfd9a7dc5ba469aaf8421b01f3242848e801b01cec65da9ebc1c1618106f0858f44fb4a81e7c07cd098ed4aca64ffb0a181b1dbd83f7d3e82c86f02aa805bf888f999d5ccadd1c6dd25b58820f9afd8b9a53aa93cb32938fe8e0d1b1f04c84d923bb2f76a7ef0cb5f501d5beead7b2d8e84722dbe50084cc715813edbaceb17ab046c9075f21aaad399402a9d3606b664d58e992a117e3e92389ac87f39a83eb035a4df9569f4f171577a67224eceed4ab6f4c897aab269dc3fcaa2c36feea43587a0befc5c2c9ebae65c103f04b92dc2e0f6a793ce8a13bb5fc14d99f0650806d617caf9dfd894b036f83b6e01804de1ff9ada1b12e0dac5ef9f95d6468be6d28b04640ec3becceff1436d7aaf96da77428d3582ae13d61eefda18e3af9256bcae31fbac6dc6c2c8bca8a1316f9972a82830d2d1a840329dfd4404af13b99c1fa2528e8b180c9402a79794f5249384166bbd69b703fd4a122a275d415a178a69408a99e1a011c8f820695d955142aae70549588181573e9096ba3db75c0f5ef8296c226c9ba3783ebb93cb1fdb09e36b98b67991f583d2f41204823a64cbb18c005a96642e90409229f65c67ce69f4c062604ac8ad1f60ddeec981d9e0911e1f5e897ab2b94f35487114382c3b71a09a27717a08eb9f87329657c14da835a4523e7b5d2951031ab26eaa90d3473a850760ea2e2261cf2564531ede5d4ed3023ea73ab9d98d842492e0e560e01befc685277a4b5a53cb4210a5131223b205f7033aa51a6b0546c3d9731a4d6574e612509946d55f47a0f207f956378ca1f4af2ae9bda14cea65ef74d58302136c29659af7cc753986aecd52563d1ccf9d11efadf5b5fc108263c2ed24a935a8bf48fe3269f552a9a9659813f94f6eaafa76ab20f5af37576409ad6be15aaebfedf66df5aec89a98d0e7d549d6bd1c73cabb6c16f6cd1166f517316cbffe91e5d63371875d6923cdfcdeafc5a12d7402264fe51eca38ad1fc0815b688f3ff9d1c42c703eed9f8df1d4ced289dc635776e3409df2635930de118fcc33c3a112c458478d565367643d376248b27569187450ace30502cb9a85cd55f6d40737b6535278631468d200e08dfbb0d6dc82e420df310d331d5d3c95ca36af71fa9871b265464ceb092d427945f94dd13106bb3e2d5b395ba2dc08dd3cc1e1d718a390930e7d078a388dbfc82a84c1ae17bf776f524930a5aac14fabd97bd8816d2e118de666864669fda008d9ef5fc5b321496da23188cf659c9c51ce39aefa9906c2a00269baa823ba9390e3978e5a26c451aade8974638b4d35c6b781f9e0f4e9d20fc4ce491c9b007cca5f047ad7158e66a7c43554a5ff02fb8a704751c769264ddac792bac252dfc8dc8ae9f7c06578015e8e11c7c94d1ba277f9d2657168b2f3d2be2fe3dca8d5c7dd639eeffd04f94ef21ade4de04b845bbb7258dd65cdb99989803caf5b65127079aedcdd0b1063cac8688307feb4302ea2ac43617f8cc44cbf3274ef928063dba017d0c9310dbe912a0ffeca7f3b212deb90def7da2b219426cf68edd169fcd27321819e0ff163bf467fd53b1f21aaa1c98c13f1751e2d2a0f32a26352c6c7734441aa45beca811f5d44746c9b3b23c4c3a438e7261a65b5499dc339e2d545e6bd39e7e56cca44a6b17ccf19876aaeb1bb41e416e755b59f9ac67e65d7ed6d4143837e1cbd32185a8d638f9bed16b49c645dce9b21d4bc9380ed95c940b4101ab59c7b261baa867f3a7278758f3e01298b6f08db2802ec178fa2eedae79d4e37a68d9ffd92a8320ed59a8e14c5f32e7837f90d9a142ebc681ba1ee4acaf2f37c92e80335880d025ddb8d3f8b2d07f2d3c79c5ebbb42229295460dfd2f682a3e497e879bbed50b17274144617486a1d3fa1241467b8a15193b61949dc7496781949ea5a8c40b1141424dcfee0000000000000000000813181f272e", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + } + ] + }, + { + "type": "MlDsaVerify", + "publicKey": "15e04bf6d4209b8c4cfe8afc2bbe6f9da39072db9496502939931b5fa7088abee3abb33fe17f89fb14ad6aecf7c21c5beba421abe25149e51e28c6d6fd5e7ed14ea713c03b8cceb9aa6afc671d638ddd2c2572d02c5456c9a1a60c62255784a63500479e7eff313505a01d7ab7abcf6f380935d633bce23cea4fce9cf6155bbe562cf9f7b333b181d14466024e5da6a91411f818c643ecd5bd70671ce452aba3a408f02d48ae9999b2a36f23298ff8f939952775cebb7f2f044045bf0ea5ca015eff456d54fb76f63a224602a1ba8d46a35305ebba2a566bfb50894b87f18a19de5eb3e9555b9279eb0193b2b557dcea6f1c94e1220ae6b6c24a379290659c21b876c243649e3c4a78fb29d0b5d9a465019b3f3c33497c0a275ce714763d0d0f9d2af723e0a052f7776f8731c5d17348bbd1e451337f44bc9d62500b92004b9900e1d22125453639b1f26de264774b6379377c13eec0e40be84c363b74477e2333b690cbf86e57b8faedb3423e2275491799e208df1c391aa3e894594952f0beb23c84f32abe7b816a85eec59909712ff932397b697343a117a3c8bb1e151e960690803a4217ccc623e868ea4d998087d50dd4e0b0af610acc18b61117d0678e6c979b7a2c3a6bda0b0db5bc499dcf2ac036cdba0ce4852796a15ff84e352ad21f0ce536379a1b0df46b10bc6edfca8fea1411f361c905ecbacdeb2eb2b94e61b6785ab477beb2c0c58bb6d7e78fdbb5a1f26d750112195497c352fa080f28a5167e38f6d6fee6cca8891a8520a3b06847ff4ae3d198dae3891b76eecb09929a57241daa4345972785ceecf6b5fc9e8e68e371f410e4edfbab52a1e54fc296580eb3a21a7af6a744a0ecfd619ea3dcb483793eecbc78f30cf4104b653cc5fcbcb1aa8263c44ab9b7fa3b1d736c9bdb9df748f97bb960aceaa7b9c37c6244a4d668c1c58e043d0d39b944a43e70528118b2a15756540f8198dfbfd7f52e15dbbc5cdf0374c5115161260b0ee768dbcde74aef6d0fc4804ac442a5c4dcee799a452ce651c6fe352c8cde2c74122c5f1b11474c60d85f7647c814bc1262dd822d4f9e3fdce17a8a47e6224feb2d9aaf7bbb8cdb2f25ab8d1dfcaa1041887b9079b47137f1e9c0510f549dcc2e82fb49bb6a0d365a0c935a31032e698589b30c665ba95b32abe45d14e280de2073bdd0fc1f461177775468db1eee020732996b677eb78c7bdcb87b4b5e72ebd6ad684e4d3e8293304f938120182879bf1e2915120253ecf3a0b0b49f84ca5e895dfec71995fa1a23aceb15f71285f55e11a477bcfc00f76077baaba21853ebf7065db5ce1c33391b9021eda07940a14e52dd210abb41e0b50b79a06a0e8f09666931202464e963401f6c24b750156990d57c403a17d8a436aa4795538a795d7c7b724d4ff65153c1e1e7fad09c4511072b5a6e3a35fcbb0c09e0ab7250d6a00848d60b7168fdd5e9771c5d9d60129dc7ca5e572d430acb0314427bf2893927d784e7a617cd9420429caa9cf037e774599e763c57e3ad3c4c79b44ed8cd28b8c16d2f788e25f3a0e5f277952a984bdfdc0ae99b5768f6c778e6926eee4daa3fd706f3ceed4bbdeeff037392fd47aed9fc68776eae3e9ad3d035554eba56fe2569da14488d03f0b43ee510f25636bf986540d845c9d73a541c7b7a3bd0a3990c6cd1ef2bfebab340b3976f7622d1d967516f75e31f3d182da8873623b832474e2bd77e0884861b1f36b803d4a8f462b3708561b849e7641fa0b7875a36b6bf0ea3dd04080dc3c46a3fdc098f3c3449c86df2bd7d8ea7b76fe6b9963df28287c0b1a24b2c1252d7fcbbe2aee5723d0d393482143d257ec1c2897387c0c4b4447db8ce671fd486281a91f86813a659081451cfa0c15876e34a406a48a3094098562f851b31c19a3cbd87816b8dfa249b75090fc6045635f71df6e8d2ad374af393126e5e7facb9af0495ca7d581522185a2a1de1f980599a42c1b2c39e345a24d9219c7b8cf8a66850e5390de8626a74664a0478485444a4628fbca04f46eea77c8de9aba2802fe57f4c92e6b80d7686b0a7f075235a6a0117e79236e9d89b82f1c483f04829fd640f66022533f6f76b3579e07a153ede6398e5012bfc6b87f7f83f4852ac8c886ca1faa1042eb85783495a9fcb4d0fdc47f9ec15651c7cdc2484058cfd2bddd914d1a4d35c71925af84b0022c3e9b620076c2b9ddbcf852e33af25d6fb6b2949186279478ff2ca73b993ac55faa810f877ea7e0a2ebcd9479c3c52ad185711890c5646746bae35ee294d6b1dfbfd850ad844ebddda0c50d636e0400fa156ecadcbdf8379bd043f5198667d04170e63e4d6a0c6958779f419bc052fd49967121ae74f328f6ed9402a4c7d20ceec9fb48298c388687a99a9565a34c20b94fa29ffb843fc1e3c88b26cdecb7509a1bc368f268f8e122127bb4f06b24c8473d70cb1a073c0dc99619712b6bf9efab676e5a8972f34aeab43f2d3e83789daf462feb0779cc2be735aec0446a7ca42a6e58972aff8848084c30b95a09f7a7e17ccdbed6aed1df9343d5cb36d5fdc72294aaea8e1d9e927821a719f3cfc6825ce8c7d5c910fb049cb9a35ea66a8c281909a7edb0547cb112d4c8d00f554470c8ef4f44b240c8944a3d34a064974d92c01efa7ffd5dadfd9b8c15db3c5de3905f84de751f2d327662a97b6486a41d50691c83248286fbb354988ac277031e3b411cc74ddb6fe760b9be88ed92e508155cec068e6", + "tests": [ + { + "tcId": 75, + "comment": "rej_bounded_poly (sample_uniform_eta) requires 3 SHAKE blocks", + "msg": "48656c6c6f20776f726c64", + "sig": "0c75beb55db356144146bdc41a5fcdb1ee2fd32feb0f4a37458617b6b02cf5363b96b58166aed22162d54823970d25ade5e22205af1d387f455a30429e53a1186b03d5568785893dfe81fa7fb28ad50f8b547be838d4e57b1d6aec98ca75161f3dd8ab552b417bc573495f1e59b3ab692eaa7f4d30c6f3a02474a1d01d156f3a0caa81c2ca9b2c65d1619c148b226463428085f7eaf1bbcd491f1be100c93ad8a9c33e57ebb76f8b57bb603534d1930c1bcb17d2036d44e7c37d88fe3cb0d285e0f8d275d8bb44827d7cfd23ea6468cb4ab3c53b19ddaa2e4e688a33a4303e6a57e1db745f3db0da5e3301c4290b4ab8cb42a0f8b3e1cb63c29ff943cc4dfac41c8a9c2ed987d8f3012cc4550e19ce99366f0700341b86103a1fc81ea1fc0f49c66ea638319f1bbdbbaee13175e06954ce060870055c5e861bffca5f706424891627b43e92c92815cc4a093bf794bf528024dfa927998ae93898cadf1f2d680a4f26e77e749db84231ee587f3eb82a6eee42498fba367bda88c7a066e25c47453e1269de4ea56abaedc0d2e7040636f8207fcb7e6273f2f43f557cb56680214ca86b1d5f6e774d699e9b7e85d32b7c0cbe31f2e8b4188b7c8bfbbda09f1c70018f3bd73ef365f8bbba82b461b78cadb3d0cbf9ca4b418472cc424860dc81dd2549d3503bf93e293929f7f83c2d576709ccd291a8bd4c7d9b4a9a5f64a8f2f20413582611888feafd5757f851609b5c7b00e9ad93a4beae2e21b1f65519c7d068a29f4b2db0b2a61e676ed721b153e2a7818bdd624978d6f71c582e04ea2bb81c23047b463c808e3f3220f5de8e161e6b37336be5e635f0fcf31777c341c7f46c5144e1097b90e44bc8ee6672cbef59924d841d7faf0e0495122c98a1ad1004165ab89462137d9d35330239c438fa864eef96467b6f3b17de011bb72b57c38482eb527deb3edae42dcbbae0f2202793c76e0458b60ddf7a59e0438cee78736c4649c3aa96d798a4103471ae967e93dc657848beb0f22d997e9e6f97ce3c42bba7da71f3bc7c95efb98b6739f5e88b37bffea5e6ccf39af2a97223249f89655bb0df36c1a6c88b613c1e3768c1087d2ed5662e12d4cee9d95f1f5296902ca56ebe44e37b74e9782637e4db29b300cc217e9e2258c57e8fcc4daa69f39be21f6e0fed143ca5e7aae26057cd622c14ae735f020833c75b9df4dab14a5c75b1e1dabf4d3075e0af0cce8a7d85e0b32e1e4f361d9653ba38db3469d01a957716c851d70eb39bbc5747e7a5a45fff6c6e3b0b8b9d76126fde2f65e956339eca35fabb8f28f905c81510dc1d63f3364ffe9b0588f37ddac2630b3700cd627b48b747364bc96ddeab281ab27d5d591d5cf240fd7d5b49b66c8e48072a816d5a218359b1c030160ca0bffd77cacc7c583e4363ebd2c3bd6bf0f8ece2b2b5651b718567e36d5d5266cc38d85c453d169aaf0ea1830ef7b944f5997b0ff94e6444ceedf5b5d5288dfb75cbcffb789ca8613268d659320f449e3e4d75b03a1ad31305c08aa319e8845a05c21d8a20b4e84a46ac75a83674c2421d02d9fc2f0808d42a46a247d84daea362079efbf7830c4c3cbe8fe47d31524704417590631fc67e93264e5855d8cd3344e65de204a5ead08148ae674f8423d2468707ba27b4bd14ce3cb51e60bb5c35016baefffec2ed017c2517dd18675a5b8d9e0055c2e9df3effd128ecf88a2ea1a302154b2b7e3268068501334b0245fbe10651a2ec76917b82d5dce274e9570902f42a76277dce44793191bf15d2a3aea4cd7b403aee4c0feefc7d8121c686398e46ecbaf55248085ffefa3d9a8e96ab48a7dfcdb7bd9cba7af25278a449562ac1cb5084cf79c42376d68268ff53eb377c7207cfea631376cfdcfcd207a2b10a3ccf2a6dfda0ce55e15479a50730ba664ea4a09b412b3fbe6bd6e3d0e81af22080d8e94d685225f2f69b39b0afed4099702a602771cceaf6df0ae8c7e7ec972f883af6aa711de81ae0e83e5494b6926bc26c8aac103bc030749bbe655bc85d85b39135a0d3d5af23026357e5e4d30103d012ca37e59c0920278f9e3d84021011e0c3ad7ff90a677905ffd78817e4cdd36d20da46e15cb48351cf468c138c6f16ebdcad4a91692285659a99d468949e3b53fa0cbeed3bb148ed404dd6d1bd65cbab046f16a633ca0eded57a3b66fd8b36297abe19916cb604f1fb08589434c8eca083877ad3a1f799c41d4e187148548c7414469eb48e0623363eefa18ef0160a71eaa3534c81fd171bfb0f604fbeb14bfd178f640c4fb79b79093eb8bd11e81dd6e3adcf0e7b2ef540a8c14c310849fd065cbf97d027880ab6e81709c4594e6965079ec77f823f22c1f41ba5d46eab14e11e7931aeb2dbdbc631f0c764a3a84d8d9a32809a1f18386cd583c2f86bf644c912a969656e6b215f0c8584695c2fd559d60289c12c9642b6f9b9e92e3bf5707321c8d8125680a026757fd487058aaea659db79aa3aa0a8bd4de34a5c412fb534b0c9feec86a49e9a2942c3f4f6a2e006dbec02bbbb7231fe9104d170b7a6defc30ec60baf66e8df7fc2725af9cf347871da7ace0084d13f98a6f42e6feb6f7ddbe30febc3c8518fa81e0d233ab4a5ee54d90e64c4cc0d82e6903253ad3500def856b50e46fd59e3af48bb3d0fb9aefdfd8bf4b588a1137205855bf16deeeeabd1005a9ffe0bc1e59612eed56a544a0e5abb3480e066fd551a273f2b04be332f3dd1096f73d7c0d4992daca9cd3eeb256f7c9729d1344978978701b307402ac9974257a2603a77dcf6e0aa186b7ae11bdab8b5e85196922739ddb109e7e0dcc80305599f19b90f5d0c0bdef9fc8b443e46260a8ebfc3c8633dacea35cb51c02e1ce6e87c788744ff47f2ba48fe8c73a3df66a9b7752cc041d2a0b89df7306cd85ac666a71ce8f38adee5e9edd9df90639432bc2ef67664fb02e388b88e95aee0549578f7398a18296ab9b3df35a9b497c9a41d0042b5b66c593e353c94e3d8ddf031b3a3d071409f92498651f86047f1656665fe076730b3465ad551f7026cd30b938ede716daf4f85aa3fe6ac76ea240861e4e222fa034b18ab54ce04c476acffcc4ed9b79304516e37f2a1eeb5116fe4a81a73268254ef02e85a82c6f921c73064011a421f3310389da4a05e28aa87d3ee9d2ed5551be90d1bd58935cb38fdef9ebeceed1ecce29d20d2cfedd85f4afe0db902c615efcfcf180098839cd6eb7acd8927b397eb0f0d70b19d0d4cfcda80ab4a5deb950101e7724c9d848374ebfc97ec72d5c30c6acd158cc864f5168e1afd4c99ced7f8343719454357a33c3a519001d76055f5d95f13365e1f7fb97674094ca62986de4a0d87bfa4bee1e655c3e72736a899576262ebd782485eb7bc4834822e004379a971d54665cd498f1f599e7fa4e7041392d243940698957a31df79ce06e2b6df3d5d37e6b94d81b056c129c35ccaef3438c5104e1154c6bc976936ee6622cba189496cc62f00b4b087ecc6256f125c840dd54c364530a159fffab8dfba9874df3eeffb1943489101db83df904b7e2e3da5aeb29a9714453d36568646ba43d102189bfd90d473ce5e5e213b5c6118cc22afaf826eaf6536af5e861b6c832553c3a7fb1522caa688792b3e47fb5e9e1cb762d5113b5fb8726d166e3a7c7eac734e23bb44754fddb0487bee9312e738e415bc66da00276d3e3c48606d733f2216bb322c5bd28f90a35a41b0f3c56f20f53c923e86ed7629740b6ef27cd51477f140e1507c9162c508ac4de2cd6543e6e68eaddcbe026fa177cdefbd91ecf8d782b480e52b8c180349654e495bffb2284573a1dfcc21ff7046448d6d7e5ad3743d7c98e4c56655e88daf7bd293961277a5283620acc979c39ebcd8b59e9683a8d84d361a904ddab46bc06c64d03b48ce4356a494ad4786c9859551b52ef99229c846b8f9ddb12c0130198ce92468f103c8660a3fdc504c749e89b7247c9c0f8d8ca4ce188d1e03cf3c3ba8444d96c84006ab4572c45896d5f521447610c0a12ee91aec667368e3cf88883e9f4ddf456812ab0589ebda1d8faed0ce6e3ce7389c7559993d3192ecb2e6e3d17e900e2cd1c9129440294467036c82d1261296fb479441cbde0ba2ec5c4390e72baba6b88a349fa5a13f5ab49241a8db7c0bfb12dcfda0346cc3414041dc78d50d44118523bc34c07b3e2ad92a918b96f294e8aa212c65638a3d3a869eb90f334ae7fcd387034f00cf5f6fceec7c9a0f5df4028dc63a1ac408d4570656afb0be4321ba047b998f24177be997b0e47c2010656be55c84b685729ae5a3230ecef2c92cb660383a989cbc9df9b6eeb8dc2577d12fe6a3d0989e3a60b88422d42bd75f1a7ac8391d57b5268bb41b9ed5c4b0cb9edf76454693fd604b1f4b2f6425a71a1c8a587f18691ecf2da6a6ee366d50e05239655d02a4cf110571ec706f9e6a6f059472c39dd2d53ea9f311a89d735e1b8b19953849e0689e2880ea5d94e3d97fae414db347ed1b26eeed05df3c7d8fba6af4316e79f890654ccc61d6549524a51783f2412e8ef0e37db33d6b1b2bc9adc84227866ae18ad9f987ff8010717395389bc163072a1a2e8082d3b5372758911477db0ddfe254867a9b417186ce3e400000000000000000000000000000000000000070d141a1f24", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 76, + "comment": "expand_s requires 23 SHAKE blocks", + "msg": "48656c6c6f20776f726c64", + "sig": "0c75beb55db356144146bdc41a5fcdb1ee2fd32feb0f4a37458617b6b02cf5363b96b58166aed22162d54823970d25ade5e22205af1d387f455a30429e53a1186b03d5568785893dfe81fa7fb28ad50f8b547be838d4e57b1d6aec98ca75161f3dd8ab552b417bc573495f1e59b3ab692eaa7f4d30c6f3a02474a1d01d156f3a0caa81c2ca9b2c65d1619c148b226463428085f7eaf1bbcd491f1be100c93ad8a9c33e57ebb76f8b57bb603534d1930c1bcb17d2036d44e7c37d88fe3cb0d285e0f8d275d8bb44827d7cfd23ea6468cb4ab3c53b19ddaa2e4e688a33a4303e6a57e1db745f3db0da5e3301c4290b4ab8cb42a0f8b3e1cb63c29ff943cc4dfac41c8a9c2ed987d8f3012cc4550e19ce99366f0700341b86103a1fc81ea1fc0f49c66ea638319f1bbdbbaee13175e06954ce060870055c5e861bffca5f706424891627b43e92c92815cc4a093bf794bf528024dfa927998ae93898cadf1f2d680a4f26e77e749db84231ee587f3eb82a6eee42498fba367bda88c7a066e25c47453e1269de4ea56abaedc0d2e7040636f8207fcb7e6273f2f43f557cb56680214ca86b1d5f6e774d699e9b7e85d32b7c0cbe31f2e8b4188b7c8bfbbda09f1c70018f3bd73ef365f8bbba82b461b78cadb3d0cbf9ca4b418472cc424860dc81dd2549d3503bf93e293929f7f83c2d576709ccd291a8bd4c7d9b4a9a5f64a8f2f20413582611888feafd5757f851609b5c7b00e9ad93a4beae2e21b1f65519c7d068a29f4b2db0b2a61e676ed721b153e2a7818bdd624978d6f71c582e04ea2bb81c23047b463c808e3f3220f5de8e161e6b37336be5e635f0fcf31777c341c7f46c5144e1097b90e44bc8ee6672cbef59924d841d7faf0e0495122c98a1ad1004165ab89462137d9d35330239c438fa864eef96467b6f3b17de011bb72b57c38482eb527deb3edae42dcbbae0f2202793c76e0458b60ddf7a59e0438cee78736c4649c3aa96d798a4103471ae967e93dc657848beb0f22d997e9e6f97ce3c42bba7da71f3bc7c95efb98b6739f5e88b37bffea5e6ccf39af2a97223249f89655bb0df36c1a6c88b613c1e3768c1087d2ed5662e12d4cee9d95f1f5296902ca56ebe44e37b74e9782637e4db29b300cc217e9e2258c57e8fcc4daa69f39be21f6e0fed143ca5e7aae26057cd622c14ae735f020833c75b9df4dab14a5c75b1e1dabf4d3075e0af0cce8a7d85e0b32e1e4f361d9653ba38db3469d01a957716c851d70eb39bbc5747e7a5a45fff6c6e3b0b8b9d76126fde2f65e956339eca35fabb8f28f905c81510dc1d63f3364ffe9b0588f37ddac2630b3700cd627b48b747364bc96ddeab281ab27d5d591d5cf240fd7d5b49b66c8e48072a816d5a218359b1c030160ca0bffd77cacc7c583e4363ebd2c3bd6bf0f8ece2b2b5651b718567e36d5d5266cc38d85c453d169aaf0ea1830ef7b944f5997b0ff94e6444ceedf5b5d5288dfb75cbcffb789ca8613268d659320f449e3e4d75b03a1ad31305c08aa319e8845a05c21d8a20b4e84a46ac75a83674c2421d02d9fc2f0808d42a46a247d84daea362079efbf7830c4c3cbe8fe47d31524704417590631fc67e93264e5855d8cd3344e65de204a5ead08148ae674f8423d2468707ba27b4bd14ce3cb51e60bb5c35016baefffec2ed017c2517dd18675a5b8d9e0055c2e9df3effd128ecf88a2ea1a302154b2b7e3268068501334b0245fbe10651a2ec76917b82d5dce274e9570902f42a76277dce44793191bf15d2a3aea4cd7b403aee4c0feefc7d8121c686398e46ecbaf55248085ffefa3d9a8e96ab48a7dfcdb7bd9cba7af25278a449562ac1cb5084cf79c42376d68268ff53eb377c7207cfea631376cfdcfcd207a2b10a3ccf2a6dfda0ce55e15479a50730ba664ea4a09b412b3fbe6bd6e3d0e81af22080d8e94d685225f2f69b39b0afed4099702a602771cceaf6df0ae8c7e7ec972f883af6aa711de81ae0e83e5494b6926bc26c8aac103bc030749bbe655bc85d85b39135a0d3d5af23026357e5e4d30103d012ca37e59c0920278f9e3d84021011e0c3ad7ff90a677905ffd78817e4cdd36d20da46e15cb48351cf468c138c6f16ebdcad4a91692285659a99d468949e3b53fa0cbeed3bb148ed404dd6d1bd65cbab046f16a633ca0eded57a3b66fd8b36297abe19916cb604f1fb08589434c8eca083877ad3a1f799c41d4e187148548c7414469eb48e0623363eefa18ef0160a71eaa3534c81fd171bfb0f604fbeb14bfd178f640c4fb79b79093eb8bd11e81dd6e3adcf0e7b2ef540a8c14c310849fd065cbf97d027880ab6e81709c4594e6965079ec77f823f22c1f41ba5d46eab14e11e7931aeb2dbdbc631f0c764a3a84d8d9a32809a1f18386cd583c2f86bf644c912a969656e6b215f0c8584695c2fd559d60289c12c9642b6f9b9e92e3bf5707321c8d8125680a026757fd487058aaea659db79aa3aa0a8bd4de34a5c412fb534b0c9feec86a49e9a2942c3f4f6a2e006dbec02bbbb7231fe9104d170b7a6defc30ec60baf66e8df7fc2725af9cf347871da7ace0084d13f98a6f42e6feb6f7ddbe30febc3c8518fa81e0d233ab4a5ee54d90e64c4cc0d82e6903253ad3500def856b50e46fd59e3af48bb3d0fb9aefdfd8bf4b588a1137205855bf16deeeeabd1005a9ffe0bc1e59612eed56a544a0e5abb3480e066fd551a273f2b04be332f3dd1096f73d7c0d4992daca9cd3eeb256f7c9729d1344978978701b307402ac9974257a2603a77dcf6e0aa186b7ae11bdab8b5e85196922739ddb109e7e0dcc80305599f19b90f5d0c0bdef9fc8b443e46260a8ebfc3c8633dacea35cb51c02e1ce6e87c788744ff47f2ba48fe8c73a3df66a9b7752cc041d2a0b89df7306cd85ac666a71ce8f38adee5e9edd9df90639432bc2ef67664fb02e388b88e95aee0549578f7398a18296ab9b3df35a9b497c9a41d0042b5b66c593e353c94e3d8ddf031b3a3d071409f92498651f86047f1656665fe076730b3465ad551f7026cd30b938ede716daf4f85aa3fe6ac76ea240861e4e222fa034b18ab54ce04c476acffcc4ed9b79304516e37f2a1eeb5116fe4a81a73268254ef02e85a82c6f921c73064011a421f3310389da4a05e28aa87d3ee9d2ed5551be90d1bd58935cb38fdef9ebeceed1ecce29d20d2cfedd85f4afe0db902c615efcfcf180098839cd6eb7acd8927b397eb0f0d70b19d0d4cfcda80ab4a5deb950101e7724c9d848374ebfc97ec72d5c30c6acd158cc864f5168e1afd4c99ced7f8343719454357a33c3a519001d76055f5d95f13365e1f7fb97674094ca62986de4a0d87bfa4bee1e655c3e72736a899576262ebd782485eb7bc4834822e004379a971d54665cd498f1f599e7fa4e7041392d243940698957a31df79ce06e2b6df3d5d37e6b94d81b056c129c35ccaef3438c5104e1154c6bc976936ee6622cba189496cc62f00b4b087ecc6256f125c840dd54c364530a159fffab8dfba9874df3eeffb1943489101db83df904b7e2e3da5aeb29a9714453d36568646ba43d102189bfd90d473ce5e5e213b5c6118cc22afaf826eaf6536af5e861b6c832553c3a7fb1522caa688792b3e47fb5e9e1cb762d5113b5fb8726d166e3a7c7eac734e23bb44754fddb0487bee9312e738e415bc66da00276d3e3c48606d733f2216bb322c5bd28f90a35a41b0f3c56f20f53c923e86ed7629740b6ef27cd51477f140e1507c9162c508ac4de2cd6543e6e68eaddcbe026fa177cdefbd91ecf8d782b480e52b8c180349654e495bffb2284573a1dfcc21ff7046448d6d7e5ad3743d7c98e4c56655e88daf7bd293961277a5283620acc979c39ebcd8b59e9683a8d84d361a904ddab46bc06c64d03b48ce4356a494ad4786c9859551b52ef99229c846b8f9ddb12c0130198ce92468f103c8660a3fdc504c749e89b7247c9c0f8d8ca4ce188d1e03cf3c3ba8444d96c84006ab4572c45896d5f521447610c0a12ee91aec667368e3cf88883e9f4ddf456812ab0589ebda1d8faed0ce6e3ce7389c7559993d3192ecb2e6e3d17e900e2cd1c9129440294467036c82d1261296fb479441cbde0ba2ec5c4390e72baba6b88a349fa5a13f5ab49241a8db7c0bfb12dcfda0346cc3414041dc78d50d44118523bc34c07b3e2ad92a918b96f294e8aa212c65638a3d3a869eb90f334ae7fcd387034f00cf5f6fceec7c9a0f5df4028dc63a1ac408d4570656afb0be4321ba047b998f24177be997b0e47c2010656be55c84b685729ae5a3230ecef2c92cb660383a989cbc9df9b6eeb8dc2577d12fe6a3d0989e3a60b88422d42bd75f1a7ac8391d57b5268bb41b9ed5c4b0cb9edf76454693fd604b1f4b2f6425a71a1c8a587f18691ecf2da6a6ee366d50e05239655d02a4cf110571ec706f9e6a6f059472c39dd2d53ea9f311a89d735e1b8b19953849e0689e2880ea5d94e3d97fae414db347ed1b26eeed05df3c7d8fba6af4316e79f890654ccc61d6549524a51783f2412e8ef0e37db33d6b1b2bc9adc84227866ae18ad9f987ff8010717395389bc163072a1a2e8082d3b5372758911477db0ddfe254867a9b417186ce3e400000000000000000000000000000000000000070d141a1f24", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + } + ] + }, + { + "type": "MlDsaVerify", + "publicKey": "9ee65680ce782748db4f70d31a92d596acf4e42765b63397fc0f9a3a7bd14a461e0eeedabb392ecdcabc513f482a5f10f76820a9645e6442917256ae56447f2f8c6b18cb3fddb0e4614c0b4ed978ddc9dd643d2e50de1590d4eadfaaa25073288a755f41b37fbc58ebf0571157f556fe7cfbefcb5ede0ffe3d048a17119c97dad0e117c6cb6f2fdeac4f5bf206c8a656b9fd3ac1eb9d710d37c2141dbcd4979be137fa2d850a3a74c078a5ec33a5683ab4de51e3388165ac6b150c04c226a47d59f438bfd1990afb0fa19e58fda7db15f0ade85c9082214cc72811f915a36ae880342c1dcc3a6a436a2e853f1f7129c662c1d256dddac97414b333401532cab2718ff96aa383e8317a4be545a4c39cb0eb6fdb50d88cf15dac05ec3b0d9dd1eecda8cc60009fc5d5b49cde4d385578f2e34bc528e9413ee5df37cb31fd6edc69185820051f4adc4ebcb76d3a178637ca34b830d3aba914d8ef51b159569bef4dd534e2ea92cfe780468407ee3a89008216d00c9bb7fef5a1f68e189d1275c06296cf9ca436b330ba091cda2e4b3621cce005ca8e94c4a2baf1e9ed3a001daf2b44e21f0b7fdf7c67db091513725108ccb68536128f73134dc6eedaab04152bb1ab8aa8ab4d3468a95717cace46aeb65ad0555988fe3e9ea41fb7517a62441eb091daa319a4fc8f575f993166e5bfe9d2a6fa5ef942e4b337d6cd42fc7ee6f72f847510a3cfe93e3228f57984229d74860eb5463e9106b7745819ba9c42517e3388abcc9fa80ba11f91f1f383708d2792c89cab95b4a6bd8bbbefe697a2fdff194d3b1e9343abdaa49918f84c0c88447bfe82c8e2ada7ad7072863e6c0884d9b0844f1decc3784f05afbf3194e915a9c49616458899ced8c94323755909a2716a30d435a099082dcf1e3b746727ff61162f597ef2f9cc0e31a0d97de790deb57c841128db2d550ca2d5f1bdaabe91e455abb97760c213e59caef3585dea740d3fe2ed3c3c26fd508c0bee3646f0c50c782acda53391d6dcedd472b1f338157cdcec0558f7f8edef74aaa640af7944bf23022e3e174a0ea4d2375f353b025ced1c99971b8a8782d452f0a856cae5393567feab9a3653276685f3c960351b3e62f085560e34b115b39631e0c6271640837a39a4c3d96205f2f28630c7265a98501079592bc34afdeb54aa7048e31a1df4b42491c8a2f15f0a838cac3ccb960ae20fcbbf97d77cdae3a025e9d9a390415ce128ec6137d12aae51744452b99ae60128742bd0aef168f49338f614cbe9d669256cd06a671377bf18d391cd128a552cc23e4f3122354b4f42d5f2799f524ea82457bff18909f38a1d49f6db3cc09abc802e9cef7a7e5f9a785b9616ad1053e620aa7db6800353c6a43ac34451682275915449d81616f2b615982730c6a4b092b19572640df0e8aa2c11137eab0e487001748dadb69ec14d6285397992ad95e6cb1e3f73b6fff23b90cab86fd04a040e6d40b045158152eb5ac030c1dfb98d95dbb45bb8e3bcb31fa7c735aafc5c5e0094efb605a91756e21282fb5f7a47fbdccce484349e21a6a2f8ee580b58f8490e1d65b3de1a5a2e3de23c6d9ed71bbb846f6fc14e88c76b176b1912f7f499cc0f411b90f3f11426bbbdfa4a4627b2a759f7802801403733e04be8a2f571d80de9f358290ab690a6a8f99c8144890a69150ef48f891d18b1eb3aa205cf8345e1b9d43c757881a19e6f35c633837c3cd4d3f58e5c914966b6ab5a01ba41e3adedf5154a585c7b76c6072efeb1bf4dc385b191cfa4bf124783e4287fdfcda30ad1ed8d40c808b674671c5573257885dfe024ddae157f984b2c24ba99a2370fecae3fca493b29dc8a63ae577cc36415c3b048dc5e9a87d29184a1fd1610cede05dc1f7f375b3c56579fec60d793658ad2545db1d13e5824d5225d28a7a19bde4798ade127221f8e8a6157feed44b66f2316640dab02e5ccd41febaf57d4b55ae7f8cf96548b783e31440148aa0cf2c99804c85c42908165f836b444a229b7946b1d4fa1f6b525ffd07c9f2da4d83714d1e76e5d3fe7b115f09bdb7d773357d2250162b473c44762b1dbd06bbc5bce3c32a7cb6245f1923c9d3db0a7f55f2237c61de0d79b676ef419404d74f019ce5870cd4893c4d94410b130b4b235cdb98bf94685085710e3147af44f6a26880cbeadbdc01b278dc639f2fb45493e266793ace30ea44859a580f431e06134b02350ba76ca78d47f10822a5e26a9a34e7df8659d1a2f883a6d02d592b1fcac68ba148161f9958d526aa6fd43e252c9520ca3f19e88e74066d7ce666b90c62d4200d7a621e4a1b3cf379eabd8a77f3a5628fecef578650229df45773ad474b9729746779c12ca343576cf7f4f97e243846042ff9b50c225cf005e7ce7821c4f78c3f454c2665d59fdfeb15096f2b5a79a94bbc9939af1fbc4be3ce68906c7e7bd8759038baa0aef50308bdf2e6c5b29ff69cad356f00e87c5be3ba439e303e63c7c2296f09b40c349bd82c52b07c93e40b7cfbb27eb38fe08c517c49d5a15076185ad2255e5416b8c7e0c6f3690d4d1e6e258ac88930b71779a7db60575222db84e27e5f6a8961294d8b65958516b2f15494aa7a48b193b293e1ae600685bcb21b562d58f500ac631f1b082b3a396052fa2c7ca5b7ddf9845cce8034105add6e9b97067408690ed49598f70c42b7bdfb1bce089c6b984f9e987d42b776a960c8912c9a2fa6025198083ea03e9a8d05828ecedd0eb0f2d", + "tests": [ + { + "tcId": 77, + "comment": "rej_bounded_poly (sample_uniform_eta) requires 277 SHAKE bytes", + "msg": "48656c6c6f20776f726c64", + "sig": "ebc6b035ee412836992fd32cb31edec14a0901edf47b682f79ee0ee00ab31f56b150e3c0ad7cdb295c635f1dbd6271b11b17710308daac7ea40878561153c9573f09d21dbc3a2481b377f8f34118053568285fbcf5b1d6481ff12e52e5574a62b70368396a0036d053e8c43a30b51085d0204f8b80ecedf6a4b663647ba18753cacc8401eb046b05b5899e547438e9a303df6de686c9dc1fbf9697985ba1014a86f3f3351813341c7b52d7b1a92e01a4c11fa279b20e1972b0463b33098610eca011b1cda8461fa20923faf42487eb36350f3d52ce71fe48f52fdd5161886fd76fb49426c1b9f8e2a364533f74be1062e26ae641f29735389be8ebe31e6b0f59ac5bc20462acb3dc24e85a1a0f1f8c322465cd904cab50549896bfe500e2c57444297ebb8c569bf5bc9ef6f78773b2349f50893619c4879d0dfc0cad871fc7ce0f63abee084426ed70b0e4a3a163985fd210dd4ee1db20afabd1da9d87164de031d46a4662934b3617d729368c52c8ed7abf9101929b210227b8189e02c018c3b2b699c25055f8e47831893ca0e86c154b2f62005ccb49d886c874c5af3f6fe1126ed41d53aa258b7e8268a699609a7ec1f0e439f379b69a00940b1ad63a735aa34942b97214150b55d74311c0c5beeadc5a28571b7b9b8bb685c6e42173dd71315dc0e864e6b967177ad9efa00c2c89b9d27a1f5776317a8647388798dc1977e4eeef5c80920f12f12245dcebb74a5096485359f47331a352e2b7050775f6122ff7f4883e09791648084d91cf15682060733af18f10f872c22dbe55acabd0b4eec5cb6285c5f009ffb354af539b5b3e64011cb752fea88a1a868abf72fc26cfd65f99bd1205df61f377c95be80257d10704d6d12ea41e6bd8c11e3e07e78d3ba113085c0b71639e08e1d9193f5a21b992484b5a4851d0e568f9baa3af9d23fdf389885f1f65cae6e1c1138bcbc1f2e9518004790c2f5df8b7b90034503d436c3385b1653498a78f5e7f5be8b181fd8a99f93bb6ba4647bf9856d37322d1333cf5e977a3ecd2926acf280c26cdb2d998a283fcbf587a8abc5006d5055474dd8644f90413dc7cf6d1b2ef6925342dc26aca81f8439824705e400f42abf61d1c505ee79941ffa48ae45a472ab9e2c01ba12d0638570b7b4919d413ae11f7e0ebc11e718289dff4f4195a3e12d92a477d59de56f0ff61e09596942bc1678e18af15337c5945096a5ecca247bc03f4b649f570ac6fe66318ce0fafd080feb92b4414db54e8a1f1914094484251deba8d407c3a81bbddceee08832f6140d54f04c3917a5b7200239b92d84211d2e551fbf4de38d1b6c12bd1131f08a3d1be59c1828e6873b51f91b3c14cf30e3c4ddb7c009a1830ed1957bf2b7241d6ee1b1e5a4a4996949392ae2a847132c64aa166dcfa8fe231a2357321e3106e44c3a2333334b53240ffca65bedf30952c7f81d85b3f8f4299f86ff9993cfc21e66b3b96387bb2e52f948e6d5dc25f1b83168c45092c5496b229317535b8b3c9b0c6db6e667ef941b8c0cdd042479e1a9ed31a91cb6ceb4a34d31f0216082df33d1057e6eb97aa28b911ebdb9e7a557d3c7f1c14460f134df2c49e4458450908ceb277dd0483b7de858bd035b339a9e68d9585aa695de7a59b806ac7392f81b68f960cb71fdb0e7acfee27daa350591c9ddff5a4d6b93817a9eba93ff228dff9a8148c90c0d54fa5bd9f4f844b829611c83a0d1695b05428d430e5a42b94103f2efa2782692b77c6f1532c334c5609323cf173481eb3c3c8a7afce8b87ce68a17dc88c4dfac633fd2c3d68bc383b272d8292fbc239db7ae454a84f1306bedeb5f93200eb9a9c0897a47e40ea2c3af500f30dd9cffb4faff594dbd23f1ce23e19aa38fd85bcf1fdf354fd7aab1ed82fcc908e5f275dd7a74738348c3a1b037c19c787d31f9db1655f4f069c7b26a0d00c507e5aedf078b7d33ff326737d25f0174ba6383c4a95ee7dd524d8cc7789c77113819e4686cf8ef5980a8b2c83e0ef141ae07d2c9ad4dda887db56b8066d4f8f138c9519ab30f662833aee8b91809ace2cfc1b8076a37a80ac966e994acec0f1986f563e28f68ef3c2783fe3e892ba8060285bebbdce7ffb661a210531788d5838b6619a789f0688aa3b5f68e646791a1c1793eeb0d06f3782995d3ae731b185d29a7a6ebfb0556b959268e48e71bc8c726874f3127f4b53b80891445604202529f62898de839c0be7e7efb669c5e53f64996750f754a26e95f3826af92b03d55bc0bf4f30ac4e4725a8a9959bd815a68ee67bd624e8122586a8365346e224bb38b1c917bc1868153d14cc85d1573de9be3cfe03be5a0bce13b82048ab49a46ab507df9aecd843a2374fc8e074a6152039a0f39a6766f2ced16ffb143a8169dbd680ad7fa95a831293d60ac41e1a7501d6ee7b42549190bcdbef70c29bd48c9fdbc57a77d29425c90a5e9eeb55c24fd458228f637ab06fb334ddddef6a530d3322a66cfda77b32ded21802f1d904048e1c4f76ab23bf0a2b5e650a9da8c04fa763c63353acf60d56a08b1e6f27971aff5370f1d91f0aa8798009b39d06cad8717be03b9c729eba35424c053d18792ee5cdba4bd3ef6af1f75e4f1887c194e9b0efb2e8db3f27cf1c48e66a70e4940cd82c2e0f774417923f611d541a8feedf8553a9f3f18135c6bab6a671d2c7f788fa3d73541ce884358c7651122647f59c5b2b4dcb0183f7f5c0a30f231b6406b006409b2496baeef47095f63159d145d0913e89c5d2bdddda4410d25acd6d068622d7e4e235a5140207c385b95d01188b948657d4df0198c79fabd5731464e958eb458fd4f1c75cb51fa7b01008af6f485d31fd34f9b994393f99c48507c0125b7d2d056875a5b1568e92db318cd5cc61526c28a3592af6f33b8747d0b442bb3a6fce1e6652616f090a714f00213c2e025a8ddc0edb29c1f3b75867033b4989d6b36d5637d2e3db0ed6c214acb196c4150e94f8aeb45e2b404f1dae338c73ce087181a8a3d919610a71aaee2ed7733547b15b6495f47e796037e77d44960f962a84557ba68f8e6b2150104fa5ac800e6bbfd18c519bbd037c64c0175abc1d6c2100f9f0a8e2bc707be87398bf47025f715226f03e85b93694cb9753252207b974984a6be79dbd800c16b5f652b9ce2d84954c292a9d3fd0ca5aa18a15ee6bfbc06da1404096b65260c39018ab259c06b3a638e27abb901f2a19d8a7a3257dcf3226ba94b24668bc9cf82d95fae945a4d055bf5948f0f1e85526cc8d6f92b1c2985e1689b8339d5c1e5860f14810b9fd5fd78aa4bbebf7540e74e01ee36822a6ebd810a102b86bc49debb37ad99d45dca9c12e062e8cdc3cea19cb6c62dfb8f04041bde1c063d0e7596e73b47a0be7a4ff4c7c5b1196ee34999a32887663bb3728ff133037fd90a319f3c640c3e59ab9dd6fd9e344a3e98e13351e28b6650ab6457c54be6da4b50b3e4cdd1566ffe834927c32bf2b31b08d53618c3af25124d6323be3b8d3e656ff8e0da14e654e969ba8f34023723514c29e5ea179e6b78c582cd2a852ce2b46e2fa29f30a2912dedbabbe2c8b6aa5e2cb147cda3ce25532044a4f5a5be463cd26c7624c2858e18ad9562a6ab120c1a567f4b2082e15d95cbc430f825f931319f039188e127be8d62c270eecd9306d070fc564973e424d38e9faaacd12b131e0a223e70f44ae2d7e9b7518358adbf93ce34ad05f7b84b7399f3e7ad5958066c79816773c6e35f654fffebcebdc0d73ebfd9253c45d2ec350442007b2c1f8a6d24bf4641f083178474fc0cf6bfd27455f8a71c20af9b21ac1f2ca02927408ecb3862af0e82fa003693251b503d85950a28a4a820c95d524f00d797af7066166bf86fc28175665e85e7e0e193d1793d572f9fd778e481620db91e1f8e5f4a686cc3d11584202ac6f336c272c342e119bd23542c03e17924c0c54a518850f77da9eb7ccc6e352e99abf6079d1e5114922f597f08c63d1b2bfe812fd356901366bec1e162d064549853d1de25ad6153e2cbb3cc96e6611a9fad92506963c25b2176db560763b1df0d34db177ce99a789e6a413e50695c16ebd8f44cb3bcd592a977c87e9c6935e05650c121f5e5fcc656efe6f8e2369ab7564392442f7d3c2dd30b9a5bcddd769ee25e0278ebde0279188768755ca50f7a0e06d05abc880272d19012b411211dda63f8fa4a971f9accd4e6374f17b7adfbe90d2c8f671aef7ba05567dfb39bb016f5654c7956334f89b9480e6905f3841042ebd0b60a1c7969c31d82d49046fd12ff1b74ad397c7824155a819bb667bdad9ebe44c691d1d171f0bd494ba140cd8aaae9c3ee0629d459dea0cd76559fa79fd94808d804610c18cbf139cca39edeb86cb4a958387662c50f7cf1a4d3bd057ad259c89a713f2aa767325684c022c5e7fa20b1143a967b191b19247df804945fa7012b078df47a01d65c0322dd2ad521389a80dde3cfde5c2454a2e08e23f2ffda6075c55683fd02ce235deee69041257350ac56a70bd3f35b3c1bf83dec2ac7a3a8fee847ed82f22e229a573a9feded6dfd697f3144823804a9fbb4b0f2c565ecadae5040a123b4c637586d1d64b4c6081a4ca0d2f88b9c6cadc14767a8b9ff2fd4a4b5e6e6f707a898dbacfe2f800000000000711171e2532", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + } + ] + }, + { + "type": "MlDsaVerify", + "publicKey": "8f6fb031d69b3b782b7f523d787ac54d7850596bab67e61a2714d525abc9a79f6adb7c28f11b189290e38c8f3b9d540d69740f7409cbd8bcda65b1e9d20be98f5cff9a6eed47895a2fc15f211d26e292669ca9b9160363ffe75b98f253a5b2e83894c90a41189e81cfd8fc2008f8a61a2ef95a588745ceb7c882f2b53af1087c459beeb4aebfb5974473df6f40e21032d50d42fe6254f49769d702c2428cf76049657cbba111e008fefe1074346cee7dce8dee3e41fa27760410bd30e7dfa638df0716fdcc646aed553faa5b05c49e859386ac336ac18e1003e83ca2c32f05e8637007771fb11adae058014c7cc1801476318d3908feaed523a717beb9bf91e566cb0e7f4a901f5e30ee77f25ab9ba3ce24a0d76d3c3c66fed21c39c51c2784bc6a68fe03e472d9a1fe73f38accdc3efc60c063d7406c1bcc35333494ba361b5939e7008bebcf1feba3688dfe5b06d0078d642eddc8661f08136b5bafa22044f35be67f29f087f3be2df8c6238097eb151b0d0df4f60ddf457d90f3d1c821a2c787e8e00816d4c00ed0ec52057499213cf6cdb9541bff9614c98ad8bb8ff266d76bd071bbb070909f042f39b5bdb90ee8b5aaf2e1e6d84e2b5fa225e80e2462c04d2cdfbc512c440d5454e775f106ca7e09af864e7cbb05779f5093f739088eda7e36e058eff7e7486720cb11f873783d78d0ea356fe7ed2ce3f759c49420cee76a7125f9396586d826e40371393c3e206f19b8eef1c45916ce21917b5d233750e07a7a0a19f00335afe7ef8b8716b83a67c7d68709b2bd3a7fe85c756251e40ade43f6d0f851fde45783aee5809210a31bd36755172abb1504d661e2d7e90d94cfb36439ea334e8086888183995426958941967b212364e5e7bf94629f69ed98c92162163c5252432fb7f5f2b36d592430392cf46e0e17c8fd3d3f5c528f7d4bbdf4ad9867485d0ade2961bbd99b5142c060cff53726e9bc018929dc8bfe041996e2293dee8b248107c57bbcf3b2136ee9318a38f642abab78b5dd22cec3ae2c599cb5f4633f6be360abc18d492ceef7ab015b97daf1897623a6c771ed83d49fe71bd4d2f547372e3bdf09e3ee77cb400d272bf825b3d8d9329b232840017a31286d4088cb5b8eb84fdd086adc655e7582d082fc690557b86083f15ddcc9579be8b64c7097b1af6dc060ce6757141464e50d0f6361d791f770c5a1def7181c97ae1ac8be32b65e12451c6e4a881148d6d8160dd6dc92c2176a5b4cc044931629447381591bec097a94bad60440f9c22e5fc8b222fbd2ee4e0af0a332d345ea1c66b985205f0b35164eb39bc8163bc0b2259a8146574e6839b8bbd90cf49e23e86125b4f62016f8c6e136d5bef7a825a376343ba6e3c1ae11a8430c20087f570fa74ef61fd332900cfef73aa5416a10d97e8b75fc6c280d07bf2a6499189c98532f92b25386d0de9cf9a5eb6aab3ff372871b8a4a7e7d6b29587dda2d9e0096eaa9e20324b3f64b7dc37fba084b5963973bbbc05ce8b354b95a7462e857848a75b93a07a9e713d8d095466c191a9fc51828207df2d1fc507fdc54aab6565445d8c6852dc763e289e5b6504350077f7761b005f885bbbac5fae4ed1da70d5fc0383981c3c68c744cd9974be2722a0ff50cbdafb73a70839e229c57f596c23eb945dcc1eefffcc2248e22e9c147e62a478fdb2bda3e23921416d5110155f0801d44f1cabf1576f8bd627a8819d74fed427826cf885c6d8044b5d5ee185cda1b6614cded45711278199b8ed556629d1bf1dc6c8a0b936394372325cf7a3dc4bd5e297a7fad279f412a8d5755a0d30792ff1c400ea622f38ce432b1d02faeaf0b5e49a4e617742e055ba2ea7c0a99a12bdcdac2c5f5293c2da7aa8a382a2aa9e8cf8625cc495abee59fa5d39f9c899a63d7fec4610d987aedaded222d22c494cba36938e093395506611d8fbb8a8cc407e49ed2aed093f78faff66055d344b75d83e6bd40c34e970169b401536bfa16c39cf21ddc40194f7251ff36909c4df71fe3a134ae51c7158fb659fd64ac952e3f84bb08222f7802379a0153830fb45ade07c86b5378b71683144d78edbbb3817aee0269286508316e0fe42366f437cf33dd20260b0644f2e6d2bb4062ecdeb7f1ed89403fea2355023b80f93a2a4327d358f85a1fd47c74b7522a5fa3df19f94ade769e40be63ac8f5c9c709e0d32746fc9c5841c58b16dc5a8257788ea46425708eebd5436940d4eaa3b501cf0660918130dbe8886f48823ca9cea52e0542cb83e692302524db5120319b222632dd3701deab9da5aeb57c92f92329809328d8a16ff12d8bceaa510bccc2e27cff912a5df48e35727276ac1a2d59e2059a0fbf6fed323007885c50279b87fc8e300e63ae617b076db9604bc0283eb73e5b48417e6b6632cc51f72d1e3bc386097ad048a1f4dfa0438feefa58fc6b631281080169c9a77a8f6119e66a6a8f8eca70fba2a5deea676e72d9944a6d02adb84786cea3492a271cad65e0da6ec11f0f2a7a0c63dc0727c8c5e77103bdf414dc7ccff8d1569ed014ff76378ee8eba99b91aab788f536f92ac1a9d3199cc49c9081230d3301ab7441289b039a58abf7a4331a068e7d11813f4be4748b808031302b25bf709c66b00694cf05ffda6e37b5ce425f0e31454669612db90e0698aed85fc4eb3b3226ac43d37be921a86f2fa05e67d8e9a420709a388b391adf639cc1e2331c263470d4c607cc5837d6a1f9079fb6748233", + "tests": [ + { + "tcId": 78, + "comment": "expand_s requires 2649 SHAKE bytes", + "msg": "48656c6c6f20776f726c64", + "sig": "b55ef66f65c4af861c0c4a9404422784ff219dfcf4b1565989fab2eb5f9e89779a8c88471849a4a0653beb072b9be59123f3d5c3d200f1b1e43ae3cd2cb7c46bc55ddf877e8f12602647f369f6f3ea297b44d1e5b3adf136769d588e1299360efe3e52a21970be043c29578b8d996b2a4f80947282e463269f629347199708ec4a71747cd0e25a996e8c1c41f55f1da52703eb155e413340b9b04a2a7596b50ee2e5885a197d7165b396ec6203122fe7029df1097bbef4c79846dfb99901e70e6c11b46f7288a4ee98adaa1fafad60987dcbb2a586a504d03813c0268abb240b4cb3cb3c3866e8392b57a8aa600da00db1a0cf30f9090d324fd5eec1b4e8a6be500576c9057d344d83a9a94aea2ee10319e91273ed91e24c4d41783aa5d03b79c426fc922a914c59c62cce192e5cdfc096c6b229561a03d21b409fc862c18d55752b3d8c8b79b9c0c1fca00589809039ca4f83208f22c415b9ec2059e21d099c1a5149efecd815500cf80c03221d9a30165fa6b6b52955f970c9ff5bec404a6e99848c56f5c8ef653663995fe3c9e7835d25ce4465555feb1cbb42ae6ac58a172d16c22cbc34c6170fde45906c2bc93cd8535fcf1c00da91dce35efa0da3957261efd4b4e4b7837db93d243934254107f2b7b6a2dea16a1eb2446811597cb8569ef0477ef87632e496042f175f4b0e82f7d1a1e62a5000ec62639002a429088f89287f1825525aa25fa4f21d82be9eaffedb3217044ba1f605988c7c2fc1c5a5bef3ea1f358170b4a5482d267c74d2ba7ab4011ca431e81f871990371fbfc6353dcd2c8b78319a865bfc6af081fdbb20f85646d03e25c388aea77eeb7880f2bc3c0c3a75ac5476ce9ed84a456b668ec930509ced087c1af7edcc0fe233e86ba914acf800c68e9dd4f82645ed6338b824b12eb0950d07cdb86301edb64f245eb93363681dc5d40cdcb9e1777f4b852398ab92374c40b890f1ebd0a60ca7765a8d76df7f9e2d7e0c5168e591b293b87fc9e8dde9acd9a0d29edaacabb904436c8052ff90eca628f5a41a8e5b51738c58a719dd7ea5f7dd3b4724057086073facb58d674bb004f6cc7617a972d348aef1707a411a1a12c1375fd7584cd601f9d7b9ae9b9c6f209a7f83a2076ac5c29fe0e4021c2222176c10e926d3ad7fc7ce50e47480c621496ab04babbf643180900565be9fb3594ef994e96279defd17ad104989db8897c93729aa0381084d50f1ed218eb245285a04942688ebf7dac914ffac4b382c68ad076cf03246e7793ae10da30347705c878c34ea191ce95a5690284552cae5759598d7e98a232810641b86b36dd79ea28b597b66e623c74ea9a838c48a8584d9b883d24a11d46e3fef10ae82f30ff5d30b7c25cc731ec19286159312def6a5567856ff7f3b33808a6dc09ec05521a252a9d794658b4397891faa3e7c3e45fa8da4b190bbd2cdd094c2a00a9b5d2492f1bae28c7642f3e082d86347c3944811d597a284a3cdcdad2dedbebe491e583b48d5adf8a841b5ed4a0dad472edf3815bc41f729e4f8e8b365a6e4764a350ccd8b737bfd7a434b2a24bef1a438e0cce806a1ed6834af4ee5cc0d115070b2348080df0cae01af9a2efb2095cce7845566fdc25255f55245293ca83bee29f9a51d9123262cb2944036b88a0c9cd6f46ddf7d0f9c6a26fa0024611fcde29c09c0ec779902d23e3b1770a4530772918054776dccc59fce9bd9ee253062e1bb689d349b4fb9f72c469ee8a555aea259f948a0344eb931c3e1f94b6d7a70925e880804240d2bf23e0174810972953ebe3161af39fcea82041befe007bd66392de0fc0a03fb1fb35fa307dfce0329b77aa8134d5a8671156d61ce28eaa845824cb87d62ad2f57819a396d18592a7eee75dc91ba3fe23fe79bb1aa4c424066b90ff8c747565b9185d4f112fb66dd0020c92245a18ced444125127fcc97f7cd862ca82cfca9609df97ad48023784610e2e5d61b41bc8973467672e9d55d3532129cad9cc9710a83aea3e50909ffe7c6d537928877e694833f42ff8a1b2ef0b0f2321b87848b8e7e86acc1e0a9844da116cdac7ba502f1a24b4a81fce236d2bae5c5dd905f2cdfdcc276e3e2f8a79e1e18e53a80a3810c684054274dc140c713699c131085bfcf24ed67366c7a13ca20ef736a6b6e81c3e01198d7a62cfe1a3301701e68cd2916ac3f0992c71a67d123e90da45b3e46c2dfba24ef2d20ac03f739d27a102905c78523139e9420908d041255c03f0fd62bfcb5bfa0373cb7b8d4b83b20ee721f9c299c4bc2aaab248f2ba0c03838c9c01645b9eb24deb906e16deb9f29ff4aae14012f473dafa7c6f067bb7dda25aa8ec375270d6b3942e254655df3de4e924bc03bb6195015aa2647bd94ae885bcd6c5db820f8ab1688f6957dbc2be06ca28fd54f1caa566233f4c90db5b34ef865bf6c0d8ced9c4d9cf4c7a275580586b8d93f56255051fff05c1cc4537240bab98cec70c879f4703a95dc269348e7142a2fd7d33a705e5b38113d5ae7f089de10ec88f62de0a1c8243acd0424c9c2cfeacecbbd19b34ce3a35270ab3536d6be36ed17a1b1f5219181decfc266f301e71775e0fff5a4e3ae8b3326f495ade1c1cc77eb30c9fe8ddeb65ab5fd02c5fcf749c76672d48fc75a41ff510ac17a79bf536761b6534f8c86b3af005d3dab70c62b13826bcd06af0fbd09afd05978b3882be006f8e7ded0b7af37c54f93552390655b6d24f1df1938201baefa2492ba2ca9885d9475dc6f1cdebca90ea78b56ae945bf89af3067624a1038cf7b51c0008ec7654346c50ede20cab0af90c93c53a3c83d10fc227fa89528c8bd244630f7389e7c6705de3494604d87e9884bea2809cd48d9a2e151e6865f6ee2891dbd9257b47ea6e96b4ca0f800f2cc1c7dfb9423e6e106b8bd14c1e846da036163c22e2a8f94966d790cbfc81caea81c59d78e1c64b8dac60bd22e9ff6c772fb801b9ebfff2f03ec2d9303e752a30c8256f9be65b04213d5d948025f5099da506ea202f94b2d6722a7d52612933b0d97978534930e2876a9f4ce21cdfb15f1d53d879cf23014f0972e1f13b5545b955da450d39895d95283b98befcc8fb3e4f344cfd18dcf6b1480c282e91eaabc81a5eff80952df44045e2578fcf465412176714c5380f744baf5a797d422c837363f620bec51d2983c476398eef3be3fde3497431f3f2baf9ea0cc05abdaf8527816097e6f6b34324674fd5240ed293da43b561687b83d2b4c1b020509ac978a8ee23bdc2210a7b7066edcd79459adeb3bb88edc016d504b06e7e16eb64b7edb443922bfff0fc0a8afcacd0b9fe37aab251f78bcc119c92b2d5b8ca3d2fd7e676389d65c66719d59cf4946f9d6826042a1dd603d6222f30a6d4140a1a1d7854b0e99f48db73cb980dbe2324a25bf4b2963adf37b2b1a643a794c5e256337f6df9517c205aa380720808cc7941121dbda09d26746e6f0335f9727f2673d849a87dd8b15ed24cf9bbacdb934aabe991a6b26629c3a16243fb5cfa6bbb883672975947ac90e5fcbca684c460b1d84ab98e34e789ea6349da807c027f78a9c4846e0301b0497ad11f9ea087bd3e16096420c7b662af11a4ef16682f32b473ca87127f263550690e89e2b4435116945fc50acf8215239a5ffe902cce7ca78ffa35a0eddf0c32ebbae8ae46864c179410698b4474fc0556db384870c7c5557f5670f7ff0be583faeb9d78a990cc62dcbfc98ad933f671369f180afefd794651cddb20f951b4fd6d4ca8bd8ab9193ce30a50dc4af87d04c4ca5d0d85b35db92c22122bef14e3105e347cb882404da9754bb30b61ce3240c60c97c080ec9befcd4a94cfe4a585409e415406d0a83c702480aeba1c5efef64de1eef32b285e812acbcd13f2a6880812c37f8f7a082f9dc130eb332450acd9b4a56c5f64e65166ee94291a78734754506943ee6b872040ce76718c25bcb07e0bf9daca73fa42886fb0067773dda68dce7b33e45bdd13fd68f3704b3105e79dd9f7d8a3761707f59309aaf78642091c9a3bcc3ace81b1ead9baa5915c95f9c2f6dd79079a065a6de158004b13a23775997b6c9278c25975bf5799943be53b81ff49cc060a7e0b53e4b6e89e137e086ca8bf8afe4a3b6b1c1e2658b42638d7e8746da4697e749c3fe1ae3770fc5fa6f2b5a747ede6a5ca8dead6b65dc4c44198f827446029592e80c8e895c2ad72e2792b21dce1cec77838af238d2f1e7c413dc2c916e7dd431af3cbd666afa2a0a1ee08c7421f69e6188dfb3d358fd34c49d37f56d8a1786bcdb104b3fd22be6615013f034145c8ae39c8707388414340d5770ac70452eb3a99f264b2cf6d926a6641677b7fe41a42cb3c9f260646775fcd653ab2c3c651e217a71179f379ae9f2181b66fb72e0dcd4ca5b75bbfdebe497ae66f69f9ab09e80b3282b893ed057909460d1c073d9e885352feb51d367e71ab7eb237a3dc05063fc5da78276b27d32a22b6b0c858637ff0b8436d56bebb511590f810aa9b6dbd5047c67714c12736c24a98f7e9550988feee669c39bd7ff95097a8e938ebaeeed34890b995af165eb230204378b5cddd5dcdf71b44557180909feaf902162c38608ab0bcc4cbcde3fc343b44c2caea11586a7179000000000000000000000000000609121f252a", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + } + ] + }, + { + "type": "MlDsaVerify", + "publicKey": "2c3c585610631e4701ae30f2fa3df0da7b607281a51396d7165aae1d3310295e5c3a745556801d72105de3bc8fd78b2795ef9fda94aec21ac6c4aafbfbdc15c3a7457042abb83c07ef25231dd043b2b2142702430810483a0a7bbbb5566b88f56b00c50595ab6d514b052982c48fc1d26c50ab7d2e1fb1f97eaced92bdecf5f3104bf8925d2ac61921c8d8302e0cc09511fde2573d2611ca46b2d99363d7cdbf619668a52e39ed1e24cfbfb1a3e96072d2793af668e5bbb515ee30edf9fa09ca1846818e08d46388c34bbda5a74260829391bb6b400fc8135dabd794c915540c8ce60a7dfe9009e74e719c0a56d37be47eac1cfa521b9e29373ee8b97120d83e055cb56b4363849c0269252ffcf0ae6a639b67341224713e4268fde76536e8d03174cf6aa01ac2dfe02365e5a06869a7a8cde00a3393d8b52cbf9ae8344cb2a434b05c2b9cabf874ebc99e78ee3ced0eb91ec8f6f16917b02bad75f0d39a1f410f8aa00f5c7bc82d8bd05bdb30bb7996bee309ea49586764d0cc22948b2ce40e930c6b778ff7bc539c6a6cbc2535920872c231f4bcc6a7a89ca587dac882985936bcf262f395b9ae50efafffc58e4075949c534911240dfae3e9c260f653db490924b14c4ab8f9b7b43e08f5397dfaaf9e9ca3c8f93ec33c0ab48327d973069f6442aec0de4fbe1dd6b2edd7404a2734124e0ce48c9b98cd5b9b8b65fc160e759837d16faee738c1966fdf4a2350234ab1c26d0e338650d9d70d7c0f940f0d38aa1477e432c6fb06f4324d1e694ab5e4469942cf70106fad04a15542991e690aa71ec35aa94349bde683863bfcce90a2de87f0cbd8d4c2423b4ed21a2682f389d384e729c7e6c25e1b37f30f73bb3e4d81f830de65c3ffa80c08d1f6bcb192f2cddb521e81da4d25d2b11a0f918cafb08536835c8d805cef2793c5cd2c9bcef094d73f23449e887ff694a752a27e3a63a3f48364ff2ec968c34fb9e626e2a7cb96532786fb433540a5bd86accf115a16bb49775aca8146bca7e91ace59846e470134728327649753795b0f245ea687c7b7a0c561c8b22af988009bbdaf1fdc5b751a6b12b2135b48e496d25f039522bee1c05cec64ebffbaee9b8f416f205b3396bf6dc7f4406b2871a0214b5343cf6391a2263c1b35c8ca938e82f28a1321c855aa31f49fa28338526f6a346b55f7b727fb4bccbde8bd26b57255e17681a947dac526bab6e01ef754ba3a90b1c33ce0c0fd644c12b8a1fdbd8c783e44144ee775075aae7cc90bb894e235b28d4f8c5b205cba876f4ff4259afe8b9ad70c28d8ff817198fc0f9b763cabf4bd0e6363897f8a77a169295cb38db8eae174f739a14cbf40c9aa8f91abc576df06105520020dff81a980c291618f8e4279f377c48d9fdd5a2c4fb609daf4625c3dc9d522251a291f7a147a830603000f9ac0af61c4af065eeb9af571de45d39ad72ca3c6eaccf69435ca33f01780109517cf0e6f36a42ab41fbac539330aee57fc58205483938425863e738c8e39471d6f63b619eb083040e35aeee426806c80682eeb0a2e017a95b8da8dccf50434e3cf87c61db77ff30d2444e8e60113d1a6172e07497a58644d9fe7bfa6091360e2fe8a51b8d464a83819be5989af00fe70ae032c583ba182ec244fefbdb34777cf7b5085083781d3a4a8ca15f440576780789cc0d5b353720cad97efd66efecba3b5c454d4fbb16fca383c89f777a89bfd379d4b0d35fd1f8ce33383151c1c477121e5d8cff5b3a7c22d4c80c5d331f839d614b384b58d9158b4dea9ecba84972a174773f5a8a25ad84dfa4ce892544dfd0052cee2cffc344cc5da1f45d741feee54c5741526d8d0c0bfd7af01293eb5770f259ebaf36c8deb36835bd320271679c3823fde3c9dfaae23bff17e6b64413373cca7b8e97b31f7d065d308504c8d4982c3c68e74dff7130391cd85aee63f586aa4f2fcaeb1387cd6b1fee4be075ed5c6342b5d03efe4454f11c635b54eaf4766f35ae247582a0d05e08cec8a6c0026d467301dfe8d51a26241fdb456ed065395b3507fc552f3c8cb9666588a8b50660d13fcfa3b18958cc4dc5bb1ad40a720d9845210dba309ba2d6fc2dc4f053f9720c667ba37dee5951b9bf5fd752ccb1a34ef78e0a84dd1533d159d702a03a81aac02ea300f78e577fc8503a18eb5dfad141679398a65ee78420442ffc13df015d2632333c3c8318d92646dbc3c8fda23972284211a112ee4cc1a182bdc37fb4e783f5b425e108fb5f2bb54203dc91a2473e7c3bcb2706697f4daf9733efa48c23faac6c65cc15b777a1dd8a7a0b8a8cab0aa68c66de36fcf738b048549b2c580e0c959165eb747e2e4a25d510c1472de6dfaf21d74cbbecc8b0987a03a3ffd94fa369bd79f3f87501e632078d0ca0e1fe0b86ce095bb6029d100db99d3cad88c9d7966cd99986910ad28592c3908ddb31ac8c199aba896cd394f3914a757d4c4c83d20de7be96591878af60285b59709c8d89af2900c6d1a47e794d4a15082520cdeaf899879ef20dce75ce7c1ec60b472d51cb514f08284c1ad8c41d007745a1cea2a458391094ce1416fd232041b0124198687d7c544a055bebef3b8b6ddc8c5218f80108332315b493e42566dbb2055468468c2f2f6b5833ff8572c5967be4eab1d49259c3fc54938d36363639732546fa9e93236a31d2d6af6307ed0a3d2ab1c64d172c855f3c081b61d8a4f0843bcbb4c44999519f5d6a2191e589da54f328b4629eb", + "tests": [ + { + "tcId": 79, + "comment": "power_2_round returns a remainder of 4096", + "msg": "48656c6c6f20776f726c64", + "sig": "3252c634b9ee85c05fb1916f7c3685a1c663a34c1a64dafeb3b97b21f069fdf838f9851f17cb09ad664b4dbfe549430b0fb07d22f1d2fe8129de85c2e29004a4bbaf382966eef89122fa342cf7677fa2c2672726e3329154f9291bbe472e5a49a8f3dda70764a1ac81ec6bfeb2799ebfe86b0973adafa63e5875ca368e8f654f636798c68814606a9b19051666ea9824cc60fd6ed13ff68c5b93b805826643409ba223eb0f932bc6ff5c75bc25099fbd1c6e12b512e97af21ea0c610d9c00c090d5b1160b1ffabbf02cfeae290274e95bb75e6a7f8cc73d6a3e511786652142085bbf0665e3dc4ac940e3a0d49febdeac7f6a35d6bfd93551669ebef0eae26a212ba8050daeb06c47a96e22ea48993a702efcb3fb292d5a2f2b20b5b2b2b6167f5bb7645ca1d8af8747b207319f48d42a54d3d267396844272ace71e6431d013c6a308b900c5cfdacf40da532865df57bc8626b15285a1911c75c6b7f44621a4a40ef5b4f79c3c9b5d7c26ab76e5eae17754766819b7d9630c4d973ab85cb721ea7cf88cfc5157d025626ad2a3d58579466fb68d585a048cd311cd87cbecb83079cb71bff87e38ea69bbaa6883be0cd47730643e52ea3e21ee8518935d6d79d764b7ee2ae3f68e3334efe45a3306014a22cd88a660d83980939a1aff7cb49073ee2073f95ab783669d849219f5b7f2d862efcaf43b45af00aeab14ed06c96fae0232e4573acd74751bdb207a23c5fa4a55ad3c28a1914f839e47202e499af7d443d760b8a08344bbd92080a9218aa7d24b534c71bb6699d3ffb1c61b64e5012778517d4ebe01b6b089d51e702f1ee0ce02d22faf14ec630e5db698c0f366bfa8649badf678bb01ab7073ea50a9dd62f1432ef809760801c6cd8145036526da0da5b817b2b066565ecca455251c0f56b2bcdfd09de20915524f12d3e0e7e1c532f39baaa7544221264d9766c49b6f99c597a0773c7c37fb91aafbd6c261c7ef3a26923254996314da7133c704c446a8023928300fbcd8bfa1d8c5718b4ab4cd5c3f7a0aeb1ca5f955825cf53d897eb1c4a8eaede421a38a79adb5bf5251f452f9eccd1c1185bd9eb45f0bda34ee948b6e060935fd677c7252d64b60dc1b167cb1fb8a1d1c4f31d5947d73e67d436f4653717e330d37a72727b9178b0976a0f8ba25c21ce6b33352fedbaf605c10c68bdafd38c7aab7b8af606a7c16770b2a3e8b21d56ca2862178e4faa98f0fd341fa99afa2039fe69ae1e1a6d5a0f2bbb262136cecd7ce36926ee09faf17a36f08388a922dc7a565f2e049bab08d05e9841734578efac0d0a8ec8072b30a3ce18a7f6f9e57fd3a857cfd94a5155706714926ea98ff97402322ff1a436ae7e5c5933cdbe1616b2b229bf338f8fa500ee02f584f3762e35362b7c2b5ff101ebbbf4388609604ab32255d3e66ff29413bf9561afa6b3ccc87ff1133a4d1f678a708c8090140f55b9d25bca9f5a12f0b5d027fa53d97107e2835f1879b0c9823839ee51643346bcccaf31ddd7b2d21e7c1dd1aa7b2f2a23d31db5b20647f908f27e85041e5f442437b18e70e1cca8fdd6b6b305df8efe9ba83d7bc19309bf699808391d0c2fa7e89a9c88f72667118bca4413483f1951d6c2eac994a0ed825b23a501dfddde2c449063940a48ac25cd36cc1e9b8324b8a42af3df49c64e9daf2eadde511ca44e8fcf3dc710f85d060d9eef51a52cfa0f080383d77b3a3b5879f0ad387243b78b434ec5244a7185febbb60a981187c54cc479f7ace7d61e1069776e4eb85ba8e2b42b6b64d74298eb63362e542929df6a8fb4468d68dca27892b6280b8231b5098b01546e375571295e86cd5a16753fc8394d22895c12afdf891e11b867ffea49372baed8e820496a7cde8a1bc4ec545a01e56dd2c639b9efa3537d1c4fb79a7f03fe8aa44f708350a979b5195edc49c0e1a12c2aeab77302371c394a2435f54a3cd2011fdef514a6e037ae3807c7167161278ed46581c52360bfa14b88cd3a7d737d3eb00447cc8d0f46a2fcfe80fec05ad9464cc3b3c48975dca9764dd16067713f2ccc72e29a526f1ca33c1f54fb4caa2300b8614c229bbb632a905d75760aa8fade939e8a33857c57ffe5178c3bf1318d082931a18596f5a666866b956d7385737c8731c4cc26215398c6432f47a9ab9f48cdc827e5579354cf7ecd7f2ed6533c1d771febd34d25bc0e71dd30483fb9425cec7f8acc23cccb8d08fa543125c8dff14c6097e06add4709d7892921b1f69905661f9020f35267aca4d99dfbcb3be28810d4ea53b8283deced4b221de1046096aeb85179aed35bcadfd342f993dba2393fa13ac2fbed9f361d5bf54874552c68fcd3d96650d28f6f07f427876c434a71d72b245d37d4ba7ea7db2c69cc6198df0edf7330f805c10bb70f17d22bb0f456ebbfdfb126fb172a0522d0553b9c85e1bfe41c8083d03dce5f4095ae837a3af5f1921af474544f68aa628f74b203b744a36f0cafa5b99747ec09bca01f8134b7062e6b8d2a949cfd21013afc82093ea42ae917f2843dde2adc1140cc4a981bbfb8cd690ef3e9b5ad79dfcb48b441bcf8aea715ebc3b42bc90fa98ec08cb7a4c9054350e915734e31a768be190cfa7216f4ca36c3d387bcc30f6544540289d4749164ea19d152f5ca77d5b303baac1476060b97681b0e35a1e9fa4ad3b230c8226666a24d4a54cd97b4528a0df6c4070d7ca1b43f9ad213e94a8523812f663d7ea802837cc757bade7d35619314f97e232f029cad77c4b8a53b9770bed9bc7b87a0d0d53b3e3b7170653ac832e73021082fbf15ca74dd1069f0ec08bb50bc0faee60ad220119433e80d4ad0e962b548dd7691cbfa5ce76fe47da08a5d0d3197d7bb4e133ac0bb74c59f3e167fc65beb5fdaf07939991d48c596eefc78b1a52f69a39e11bdebbe056b10c5fcf2e86af6ffb87708cb8c0315dbe641d7f295bea6a9dc83a8c8b704832c383c9bb70847f3c1227ea907b12b9afd0dc6f4d2326c25f238c1728e69878847f6cb590beb592f24ade9120230ceecf9e1c05d474cab335a3fe04c6b30792b91f8daab5651e58fcbb5f79ad69411c27468b63a0398e26d0913cd8f5edda187ee2077b3201215d96d7f628b207e2da29557f0b81f21ee66e331eb06bfa6b5c78c19b0fc8f6fc2cff999ab25c18bfd7d63e3918aaa4c3dc16203f706ebd63281ca69b7f2964a24e7dd946bb213c1408cb14f9de7b4d74c3bef3a3e571bb4b5f59c7c7d2ac404a45be0ee191dd45fac05402fe4d238385ef6cfa3f19d9f48b990356e8c5a4491fe339ddd120b2804c8b51af093cfd66917c2d1f56cac546da1b195261e9c54f988878ac76b64d4e13259a61c1d45b6f8a7943c40a57ca2c4e3a48b3056f9bf8bb30b9aaa3493e4c73150d14a0ddb97449c77259ca370cc889a82f4e74ab04579a5d515fe2bed5689a56dbccd3eec1304e554e7ac13f6f95a88716b27a1c8a9f4fe148db5bc4c3f74c9148803b0aef6002cd0f4d6740fe7c2394eeb888aa33bb03ce580417d55f7c6d7405685cae1ab111adbe13572ba9dc5a4bcf618435e61e13b056ee47d601d39ff2ed9094c5aa558cf4805e90593e16138025590ccca86e57c1f983807d391af9f3a5b7f3d2dc25726a0f39e5df5aa8d0a763359ad4827aa2fd511d3409008665347610954734e367193eef3baa492d0928686d944ef2158b6966c39a131b06d091781f4a2242b8becd7e1dd4ebc30f06a773954154d6104d68970ccebec727d4d157eaf456ca7f1afca87fa14dd07b4dc510e800898ecd5e250151bc82b97c821cf3aaa98d677faf56de996d042fdf0cd8e8eb44a10cac17b3789f32be8846f2d034d435390e921618166c995b917734b9f096987bba505aa1aaa722cd8d217a5d23050ccf786fb3a7744b555b243547018b3c162ac81a996689aaee7a1ac6cdfca62c906dddae7f162bdc125e4b920607c0e43c80c5b59c23ff9f762a265463b87967c027d43faa65584a592acef698188b019ff2dbeb552028fb1d67404ecf940827e5c4ab63f4dc0b3b49b23f50ca74e08f204f218ef490df434ca51b57a5f0127343fbc393dfb66aa0d83f4bbb929a3c98ddee8ff0299fdcab059d4ed9382e098df497457d9b25784a53e779c4c73d7ecb2ed3639522cd8bfa958811740e8d7695d084ab0e597a2dea8085c536094623a395e1dbd25a246ddc73eab1c759417530731bbdfd4dd94367dccb9ac3fa758c35b7b30c62e7620db96e2fcea2a91144a6876bdd0471044271b9c625097eaa4c4268547e7d66d1a1b4f998f23763890cd4a01ba45e99cd6174756af676f27da6fe6b1f0ff648845714f46c02a917716e150b3812b2cdc64fd59e11c3fe2bdc2327e8b34dca44bd19a65b74b2ac65b7d1a16844b8cdd87d6a2c4972cbb8115e05fc71b68ecb7feac54ce4af5a8b40ceb26dd97c066e7004cc1d7549d6e1200ce2dd133a25ab175857bf7359bf84494392a9ba4c1c9923f7884aef54512d5f4c9d5e07f0d9fb564611df44a2988950e8d3fd999462892a66d63578fca06dd06a8f1955cff3ada5ef22417fecf4523d6616d27842e23d94a2e31f81a9abe9ff072e507a95be04618ab3c3ce1a41498ce72b3b4f7c96c3d2e70000000000000000000000000000000000000000040a10161b23", + "result": "valid", + "flags": [ + "ValidSignature", + "BoundaryCondition" + ] + }, + { + "tcId": 80, + "comment": "power_2_round returns a remainder of -4095", + "msg": "48656c6c6f20776f726c64", + "sig": "3252c634b9ee85c05fb1916f7c3685a1c663a34c1a64dafeb3b97b21f069fdf838f9851f17cb09ad664b4dbfe549430b0fb07d22f1d2fe8129de85c2e29004a4bbaf382966eef89122fa342cf7677fa2c2672726e3329154f9291bbe472e5a49a8f3dda70764a1ac81ec6bfeb2799ebfe86b0973adafa63e5875ca368e8f654f636798c68814606a9b19051666ea9824cc60fd6ed13ff68c5b93b805826643409ba223eb0f932bc6ff5c75bc25099fbd1c6e12b512e97af21ea0c610d9c00c090d5b1160b1ffabbf02cfeae290274e95bb75e6a7f8cc73d6a3e511786652142085bbf0665e3dc4ac940e3a0d49febdeac7f6a35d6bfd93551669ebef0eae26a212ba8050daeb06c47a96e22ea48993a702efcb3fb292d5a2f2b20b5b2b2b6167f5bb7645ca1d8af8747b207319f48d42a54d3d267396844272ace71e6431d013c6a308b900c5cfdacf40da532865df57bc8626b15285a1911c75c6b7f44621a4a40ef5b4f79c3c9b5d7c26ab76e5eae17754766819b7d9630c4d973ab85cb721ea7cf88cfc5157d025626ad2a3d58579466fb68d585a048cd311cd87cbecb83079cb71bff87e38ea69bbaa6883be0cd47730643e52ea3e21ee8518935d6d79d764b7ee2ae3f68e3334efe45a3306014a22cd88a660d83980939a1aff7cb49073ee2073f95ab783669d849219f5b7f2d862efcaf43b45af00aeab14ed06c96fae0232e4573acd74751bdb207a23c5fa4a55ad3c28a1914f839e47202e499af7d443d760b8a08344bbd92080a9218aa7d24b534c71bb6699d3ffb1c61b64e5012778517d4ebe01b6b089d51e702f1ee0ce02d22faf14ec630e5db698c0f366bfa8649badf678bb01ab7073ea50a9dd62f1432ef809760801c6cd8145036526da0da5b817b2b066565ecca455251c0f56b2bcdfd09de20915524f12d3e0e7e1c532f39baaa7544221264d9766c49b6f99c597a0773c7c37fb91aafbd6c261c7ef3a26923254996314da7133c704c446a8023928300fbcd8bfa1d8c5718b4ab4cd5c3f7a0aeb1ca5f955825cf53d897eb1c4a8eaede421a38a79adb5bf5251f452f9eccd1c1185bd9eb45f0bda34ee948b6e060935fd677c7252d64b60dc1b167cb1fb8a1d1c4f31d5947d73e67d436f4653717e330d37a72727b9178b0976a0f8ba25c21ce6b33352fedbaf605c10c68bdafd38c7aab7b8af606a7c16770b2a3e8b21d56ca2862178e4faa98f0fd341fa99afa2039fe69ae1e1a6d5a0f2bbb262136cecd7ce36926ee09faf17a36f08388a922dc7a565f2e049bab08d05e9841734578efac0d0a8ec8072b30a3ce18a7f6f9e57fd3a857cfd94a5155706714926ea98ff97402322ff1a436ae7e5c5933cdbe1616b2b229bf338f8fa500ee02f584f3762e35362b7c2b5ff101ebbbf4388609604ab32255d3e66ff29413bf9561afa6b3ccc87ff1133a4d1f678a708c8090140f55b9d25bca9f5a12f0b5d027fa53d97107e2835f1879b0c9823839ee51643346bcccaf31ddd7b2d21e7c1dd1aa7b2f2a23d31db5b20647f908f27e85041e5f442437b18e70e1cca8fdd6b6b305df8efe9ba83d7bc19309bf699808391d0c2fa7e89a9c88f72667118bca4413483f1951d6c2eac994a0ed825b23a501dfddde2c449063940a48ac25cd36cc1e9b8324b8a42af3df49c64e9daf2eadde511ca44e8fcf3dc710f85d060d9eef51a52cfa0f080383d77b3a3b5879f0ad387243b78b434ec5244a7185febbb60a981187c54cc479f7ace7d61e1069776e4eb85ba8e2b42b6b64d74298eb63362e542929df6a8fb4468d68dca27892b6280b8231b5098b01546e375571295e86cd5a16753fc8394d22895c12afdf891e11b867ffea49372baed8e820496a7cde8a1bc4ec545a01e56dd2c639b9efa3537d1c4fb79a7f03fe8aa44f708350a979b5195edc49c0e1a12c2aeab77302371c394a2435f54a3cd2011fdef514a6e037ae3807c7167161278ed46581c52360bfa14b88cd3a7d737d3eb00447cc8d0f46a2fcfe80fec05ad9464cc3b3c48975dca9764dd16067713f2ccc72e29a526f1ca33c1f54fb4caa2300b8614c229bbb632a905d75760aa8fade939e8a33857c57ffe5178c3bf1318d082931a18596f5a666866b956d7385737c8731c4cc26215398c6432f47a9ab9f48cdc827e5579354cf7ecd7f2ed6533c1d771febd34d25bc0e71dd30483fb9425cec7f8acc23cccb8d08fa543125c8dff14c6097e06add4709d7892921b1f69905661f9020f35267aca4d99dfbcb3be28810d4ea53b8283deced4b221de1046096aeb85179aed35bcadfd342f993dba2393fa13ac2fbed9f361d5bf54874552c68fcd3d96650d28f6f07f427876c434a71d72b245d37d4ba7ea7db2c69cc6198df0edf7330f805c10bb70f17d22bb0f456ebbfdfb126fb172a0522d0553b9c85e1bfe41c8083d03dce5f4095ae837a3af5f1921af474544f68aa628f74b203b744a36f0cafa5b99747ec09bca01f8134b7062e6b8d2a949cfd21013afc82093ea42ae917f2843dde2adc1140cc4a981bbfb8cd690ef3e9b5ad79dfcb48b441bcf8aea715ebc3b42bc90fa98ec08cb7a4c9054350e915734e31a768be190cfa7216f4ca36c3d387bcc30f6544540289d4749164ea19d152f5ca77d5b303baac1476060b97681b0e35a1e9fa4ad3b230c8226666a24d4a54cd97b4528a0df6c4070d7ca1b43f9ad213e94a8523812f663d7ea802837cc757bade7d35619314f97e232f029cad77c4b8a53b9770bed9bc7b87a0d0d53b3e3b7170653ac832e73021082fbf15ca74dd1069f0ec08bb50bc0faee60ad220119433e80d4ad0e962b548dd7691cbfa5ce76fe47da08a5d0d3197d7bb4e133ac0bb74c59f3e167fc65beb5fdaf07939991d48c596eefc78b1a52f69a39e11bdebbe056b10c5fcf2e86af6ffb87708cb8c0315dbe641d7f295bea6a9dc83a8c8b704832c383c9bb70847f3c1227ea907b12b9afd0dc6f4d2326c25f238c1728e69878847f6cb590beb592f24ade9120230ceecf9e1c05d474cab335a3fe04c6b30792b91f8daab5651e58fcbb5f79ad69411c27468b63a0398e26d0913cd8f5edda187ee2077b3201215d96d7f628b207e2da29557f0b81f21ee66e331eb06bfa6b5c78c19b0fc8f6fc2cff999ab25c18bfd7d63e3918aaa4c3dc16203f706ebd63281ca69b7f2964a24e7dd946bb213c1408cb14f9de7b4d74c3bef3a3e571bb4b5f59c7c7d2ac404a45be0ee191dd45fac05402fe4d238385ef6cfa3f19d9f48b990356e8c5a4491fe339ddd120b2804c8b51af093cfd66917c2d1f56cac546da1b195261e9c54f988878ac76b64d4e13259a61c1d45b6f8a7943c40a57ca2c4e3a48b3056f9bf8bb30b9aaa3493e4c73150d14a0ddb97449c77259ca370cc889a82f4e74ab04579a5d515fe2bed5689a56dbccd3eec1304e554e7ac13f6f95a88716b27a1c8a9f4fe148db5bc4c3f74c9148803b0aef6002cd0f4d6740fe7c2394eeb888aa33bb03ce580417d55f7c6d7405685cae1ab111adbe13572ba9dc5a4bcf618435e61e13b056ee47d601d39ff2ed9094c5aa558cf4805e90593e16138025590ccca86e57c1f983807d391af9f3a5b7f3d2dc25726a0f39e5df5aa8d0a763359ad4827aa2fd511d3409008665347610954734e367193eef3baa492d0928686d944ef2158b6966c39a131b06d091781f4a2242b8becd7e1dd4ebc30f06a773954154d6104d68970ccebec727d4d157eaf456ca7f1afca87fa14dd07b4dc510e800898ecd5e250151bc82b97c821cf3aaa98d677faf56de996d042fdf0cd8e8eb44a10cac17b3789f32be8846f2d034d435390e921618166c995b917734b9f096987bba505aa1aaa722cd8d217a5d23050ccf786fb3a7744b555b243547018b3c162ac81a996689aaee7a1ac6cdfca62c906dddae7f162bdc125e4b920607c0e43c80c5b59c23ff9f762a265463b87967c027d43faa65584a592acef698188b019ff2dbeb552028fb1d67404ecf940827e5c4ab63f4dc0b3b49b23f50ca74e08f204f218ef490df434ca51b57a5f0127343fbc393dfb66aa0d83f4bbb929a3c98ddee8ff0299fdcab059d4ed9382e098df497457d9b25784a53e779c4c73d7ecb2ed3639522cd8bfa958811740e8d7695d084ab0e597a2dea8085c536094623a395e1dbd25a246ddc73eab1c759417530731bbdfd4dd94367dccb9ac3fa758c35b7b30c62e7620db96e2fcea2a91144a6876bdd0471044271b9c625097eaa4c4268547e7d66d1a1b4f998f23763890cd4a01ba45e99cd6174756af676f27da6fe6b1f0ff648845714f46c02a917716e150b3812b2cdc64fd59e11c3fe2bdc2327e8b34dca44bd19a65b74b2ac65b7d1a16844b8cdd87d6a2c4972cbb8115e05fc71b68ecb7feac54ce4af5a8b40ceb26dd97c066e7004cc1d7549d6e1200ce2dd133a25ab175857bf7359bf84494392a9ba4c1c9923f7884aef54512d5f4c9d5e07f0d9fb564611df44a2988950e8d3fd999462892a66d63578fca06dd06a8f1955cff3ada5ef22417fecf4523d6616d27842e23d94a2e31f81a9abe9ff072e507a95be04618ab3c3ce1a41498ce72b3b4f7c96c3d2e70000000000000000000000000000000000000000040a10161b23", + "result": "valid", + "flags": [ + "ValidSignature", + "BoundaryCondition" + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/libcrux-ml-dsa/tests/wycheproof/mldsa_87_draft_sign_test.json b/libcrux-ml-dsa/tests/wycheproof/mldsa_87_draft_sign_test.json new file mode 100644 index 000000000..693303872 --- /dev/null +++ b/libcrux-ml-dsa/tests/wycheproof/mldsa_87_draft_sign_test.json @@ -0,0 +1,683 @@ +{ + "algorithm": "ML-DSA", + "generatorVersion": "1", + "header": [ + "Test vectors of type MlDsaSign are meant for the generation of ML-DSA signatures" + ], + "notes": { + "BoundaryCondition": { + "bugType": "EDGE_CASE", + "description": "This case exercises a boundary condition (e.g. in the signing rejection loop)." + }, + "IncorrectPrivateKeyLength": { + "bugType": "BASIC", + "description": "The private key has an incorrect length." + }, + "InvalidPrivateKey": { + "bugType": "BASIC", + "description": "The private key contains out-of-range value(s)." + }, + "ManySteps": { + "bugType": "EDGE_CASE", + "description": "This case requires many steps (e.g. many hashes in the matrix expansion, many iterations in the signing rejection loop)." + }, + "ValidSignature": { + "bugType": "BASIC", + "description": "The test vector contains a valid signature." + } + }, + "numberOfTests": 53, + "schema": "mldsa_sign_schema.json", + "testGroups": [ + { + "type": "MlDsaSign", + "privateKey": "5a04d37a8c83d373ba07da5cf96806002e3635ad8add42ce6ee9902dfc9a1f271d69371fb6d0d47fff2c2a3e14efdd968b5f906525510164dc0922789de9a3647517845451f926b37fc8b3a81dc221969fd2bf807006510609c17478d1e1d3e3941272493e3a1a95db2d1480ca06e5403de4bbc2afd62d2975524813ca3ea202c0c84851042548024540024963940118802d9136891c238104a301801020a1128c600882a4c68584008950344dc00631e0208cd228416284642342661095281aa72d04038d90908400b749182121cb842c41202801826c4298008c144e1a9004ccc26142460501298200308299a890a2982063268c58028e24c8649318480b440000c4314cc80151460683268d1bb27051228a9a82290832085b128c542681c0306c5c168289001090a605a2a62d41422a09848060168a00236a94c870e4264ae10040e48451d280416232641c23050b254088a4645180901c000e42440e099865c310425a9489882246109645a12869c0c820141551dc424c8b8220e426000b4589848429e3900889008942c28c1142320a244c60048cc1c041cb306a9a806051480c02c885c9a240628288d4469099964544c68502873092a66c9800510bb88803945161046a14332a8b462288280213c24ce2464dd0289250084284b4611ba28550246c91420921422061142999908193344141228edbb4504340881b02242106626314015212645316620430645ca8918aa44810242ed2102083460581002910092259846410035022082a44345049042513a9081a392012b48122024d0b48828ba23022b4210b1029119965db0082c42662d91080cc844843808092462149a605c9466a4b0061c48025dba26814150d419831e2907199a8316098896042821a178a52042008a340d1a66cc3960ccb2002cc246e08004408220498047084044a08a730e2c68d4096498918126346482406640b29418ba6500387450495118396701b440618294143108c202071cb022603a391a3042c23a610c80691184064c0106289162e0941905338100908106144110b3748c0a86c440470022568583688121784049380cbc84154023098022420044de3140a499808498669838645c22824200480cab00509c4680036628a30906148101233480c0320db482501412594b04de1c4400a24651281455a32815c88480926854c940514380212058203a981122708199970c8c44d09366441380259b220c1b6050b0172e3027119150c41c00122800800032d04324c54320e9a129149b00c0b243003a6910c98401b220a90366601452582867023428dd19264cb884cdb128c092431d8106a133561a33810048861802624244264000201994410e3222d58984418136159321124c52c491026190909d34868a4886442420a00c121c9a6485cb08094902d19876122a26da24672839025a1826d13a8400a16241a09441b154c12c76d00998064b48822846023358d5ab2111b202d40321064a881212944e442621c4086191340dc3481082320d29404d1048513122dd0102cd23031d8c69190061109066424a28180a20c5c8445d98400e43852c3228aca1009db02484c204d14b84194a48d5b08864cc80900067084224dd9c0514b106110c9805b0224dca26d184026e3b470c3b0444ba20510b5111a294484a68ca3841091b46504090613202a9cb660db2649c9888c49c271434011048731c9420dd140850048815214850a190c03b08512278808c74d1b860518b18ca4189060168013a02904c60c21494519461000b1486324690c012de40231241708611004a21462c4a6091007100285249ab26859346004132ada944821b33154166251c84c0a257200c5051cc9509292851ba96c8ab22142026d80100e0188500a299220200a18200c1cb6649ba690d920621a18309c444d20188418b5481a18212147015822445ac841dca62c11a3518c3801042086d3285223b38901022192382994342441126c62c231c0c44c0c2265d096518c224060a200c0360e1ac85114228863882cd4986101882403388e880066c1824412262acb062509b0881b410210c99108a24cda022a14140640983000348810b740634080a0a26dd00085da92249b3606da900d54b6404a000cc13689d4826520956988220601391013450113362523144524120e81409199426ee1086a608664d9124c180488b7e18bb453876156a499e09dfcfe41bbde2d135344d86f9aa6544a72c1e60fd53a844571666b6e225de0134ab18e92fe091bbed09d33d42834ec74d4bebefa987b277afa068216d9c6fc563bf9fe9762d0b67ced4d75c32472a8a0b2f5849e5cd2573eb191ea9371cfdb80946a514d4118fa596883295abcf1b2a01b3bcbda76b3181b583540901d62d0a18cb0e577fa026ca20a3a40da302c637cdd8fe7af69f054ef0134fbb67a66529d261e6a9811016820a52ec749db97e9b0a13e9ea1059bc9f3cc738f488ced79114b968d04922963abf253971cad3d517f0d69658211769db72b3a9df0f82f03ff8f8dc1d16cc3377970df63646dc038894832c31bdbe9896d590de3679b6f08401495d884e5332d9d6d405145e0449b655cc88872ea77d0234d64a5c0cd64c1011760b20ced8531e23d1f501a863a50e953c990304ee01d6b73948b49dcefc3bac15381199e1f21215f3ef194d959799d34f43f20d8b67f4252f4e939f1b6202265723e711bece62bbbc85174afdf88e3233c9fd993ea95244d6ba795f79f545ab2c0f0253684e8d8c864892edcd383ab042214b66f79e03b4d1d34dd4c3e02c07ab5805fc72844e47500ee8c7e7d0e79e652aa3ba690c6d26f4aad96efe7c4b7b9720ab2d9c58193a72a240bd12721c61f096fcf8974b2e9193ce458be0bcbba942b467757155bf6f19540d2d9f6856a67e08b65017df320121bdd2d95eaa4340d633b2ddbf5b60426f8a8c283dc41f56612543a5c6de44a3d3b8d49ec69d3d4aba41d804b372fe9f83538095163dd229b76b95eb3e5fb6bd41ddc939bb6bd3087a6db8cbf02ba9ba1c1b7889c2280b851e94221a4f1991e189949f08b4c0b1b7072eea96fc7f9994b36727471bedbf90d64856943c750f95f7f4b286a098a711ec2af5e430aa738eef9332e8c54e286dfdf490f3116c7a1a3732e3e951211a1a72925e0932c276a213a2b423c5c57b102d27b837db1c7b53b3cab493212b3e64f6ddd1deee5a2d98fab982c2092a9a78f9aa8d3fe9ece80c331cc04afb6be473c33b20a9be91463b722ce6addd79c3accacf03c685098bb33a15f1e9faddc442c1ea3d9229b49cef2c849ffde786fc7f9caab8f96d3df32cfcf0dffbd8bffa6ad2611688c4d9b870c80f3d6df1e75973fcf7dd5a3c4c214548acb4626b77eefe18f83632e4704705771aa68092fb60c1178c1f9f735e1134a6813df7333b460eab3136657cb943ff58851c4fb943cd7320cedb50b87003435835b1549c6ab36c4c7d81e1afe5e276d388dffee259cef01f9fc287e0ee6f04fb511365c4b336bd5dee1bc79698c13eef940c3c9de7c67ed2af62dd9a6f196d5276385f8287c1949d8c64f9113168c4b734bc36787b59440f81663e32c80b628991cf7838f5961a53f3af538070c4167006a5090d7c998cb02a792fcab9f55d6209045cba5f3a98e5e23928b1371095ac2fe942b6345cc4927c19a33e63211bd398bcd5dba8769b83da8f854fbb9cf64a780d3a1efe998ff7481a586cc3282cfe0c7a8a81ad3292bad137c404aea52d4ad1ce3b7f8316fd5d8a0ba11703cd82e8ed947b5379b7215cfc0d18f494a3d87143c894c79a211ed0f4c4a7748493c59f6bf84ec1b374c71a0ca50a7955c4787f264eb12629e489671b390b46926f63b2c09204346f42f81810507db64cf73169e5ebd57191ec2ee61ac627cf051d89001745f5196d2301aba99531374ccb4d4a58a847c7f53603fb2f9e0b89728007a64bba1133fb4cba0e40a2fc2c60db8f4bcb646956d77447e2f5c9eb2d30cd06590418ee3fc9b2b8342470bc785b4134355a7ba381e0990e3d1016d770e4456e2f4c5550de2ea2647811e6b3b0b9e53789073019f02f1922ed04d87c740b39bfe6a4d7581b3f37317c5010d3cc7adbdaee72617299711c3e4ae1640b51fbe7dc8985370c168ee8415c6e829e0a96d5887e1a5c99874feba30534720f6a4b56634c5f6e5ec981dde500f579e240ba8eaceb34195856bf612f6aad7b7ce9c08129cbfff4324ec079d251d3dae1aab8bada698f01fd127f838f3f9c0ccf1b6a5f8ecf78d994948f56603aa9e9d0e1e4766c5938ebcd5c0bb97f03bf0713d997d17a13dce76728c003dfd2c7ab2bfcd16d595e883702b5ec94f9de3b0272d385a6adb6a5fe064a274083f274d999f02ca245756f33f0a9ff413fe384d70b66ef0b1f8b885c8784b2bc012d1ddbb87f7f730d5666dffe5c07df7a0ea2a29046604df24ceab120118c8162631383563b67375e47b660083cb4822905f2d622540209d8b24ae0fbf94564d4f5286ae2b883b830253d742d0e29ee7f484447e4b782e9f9da620b6fa971834ce99695d6c4d986b1e047a2075a9d3364b97a3ce45dc614348f5c0749fa34da51c3c939914d991ea266832049b55f28377146c586269c6060695ee12f726a6e28cac06672546e59b9add490de18c556353ac9a6060ef5b58be04cdcf2fa1ce8c0dfe47fad796a02dcd376d6b778e3f5fae6bf75ca71cf7c7ca9892d832c793adaedf0cc62454237c44e791e3e5db78b41ef322da7ae3c65d702e37d876b566c1b7c4c8d3e7985b293963c5e371ce7cd6d7e21afc5b9459513af7ad743cddc16ade25052b38ce810856f0f6296a2844f5c5ac7f3a768fe089a75c7688961ecc272fbaa8e2a851f83a3d1a467a4631cea888a3f8ef28c80608c4d8a448d937a2fd996a1312c0baccaadb78c086536d4e2889d74155e03d6099b56f46e53f584f79e0e9d4e027014af8adf2cc4750b8a99bab19950585e6d1600d8b65c50ebb4624e518fa90c8e583030af0e4aec35579960397807df75ec3c5951c03970fd03dbe301676675ec83a89eb2194cccc86e8efcdd8be106b569d840d074eb25994ebbffe5cd7e522f191c0d0700b2a4b110170d406d7b1a8ac2b7fffd3b85b64e7ec71cee9a656d58593135d05794eea5a878710d714b570eeac935133d8a9b0990c66302e5d2ef5332676103330dccf0f33f544921195daaa7931f26edc4c8879d7ba360ad2699f5ae3b439c663a862f7a95c4593f046bd669aa277fce34bd1f5e156e67e6f2a37802f358bbecf0b7b7d302b2a0e2e11f32b67d89c9a464932802c85ac578aaff5ebb168f9e25a917b8c86318abed0c0855a31cc902af7a0cf3afbc120fe220183e9c7aafe33d25c6d96200dcb46edaea75a20652c12f185989788357118389ca28e1b013af261b3a3add7e05c96776d4e329022a53eb149f2d5c903930a337982230e259ff01439fbae3156fd1dd839de4638890fb3b3d9249fd847e1b21a046cd9e63822a210c67f14a02b4f4bb16296e871e65b563cc3d43d2162029cfeee65b651b3aad7e136d392cb10f82bf41901ca66e0ddebb9d7dcd69e111e54a1ddc9d288ffc10ebfbe837c013950ed5ef72eb09464455bada47d49cc1d0adee6906933054b365a052fa6608426676087ab8bb32b1e8bf0f8da6095fd72a81d9eb6fc986516f16dcb3837cf0ea80511dc6a5667a777f2d6bcbda38dd2ad07720794c20b933bbdef8a95b856e40b000d81eabf8973e7249c3b7cf356e49eef890c9a3d1c321e666bf22587f5e0e5b442bedaef19c0f5efa62485b2e49c7d3be662fc920016ec5168020be223f03024db280cb998d53bd85012a77f06a1a03f6c760fe8abb43704da4ec35d5dff6ecd084b8768530247e3335f8908fb41b390642a36d9095387c63a9d568f27936057739f114139e5aac48559f1a9cd796af7d2afee4913ff2e18551380fc0d12ec4a496ecce04f99cc9981d1e6cb8d818c14a53c77470c24b6957dc84d934f8f485aae1bff7f2db101936305952a153a2a838e49d2ed950156a6f8878fad515e5c2f34e18360f52198c2f1a1b1f0125c45d9612e3dd35fab46aad632c699fc27b5c5d549d6c41c4b57dbaf034a07fbcb0483bee34147df2c0fca6d2975a3e05aec99b17270b790e064295752b1aa624a2d4f787e70a4225b3c25fe2fcfbcd132e5f5f8f9291c63e855e1fb7daa50705cc6aeedee8bac23855fb2fecd4731bc3d16c9895bde4af6b62be6065b8d7e154432d582b35e750ad9652ecc3589fbb7e155d98f0b2f2c99e82581e9fa9a4c269fe2a5407afdc068df84db77ff377c368446e999ead9290cbe7a4b1ba717ead9f4938d66f0a6f9695bba7c6170e645a7891fa6c8f4a498972be40c93b0ed3883b11e444d185e66a69f972445813f8bf4224e5368df74793274a2caeb55e463b1477d62e67becd1abe7d36524f3cc2818e553b6cf52d25a7865074aff589f4799663efe751a8dc664c60bdfb4ca3540e833388e76112ada1a569b4e7b8ae7ccf93fafacd0b82201e7b5b5ab09298dcd89e28aa159f627babc7390b4c0429bddcc0a5b3109987c70f8a8d7bcf746d6ecef5fc71de6f1e6210ba0b31836d408e7bff55e4c4da2c3cd35802d93cb76b9a1ce7d38dc473a394df7bfb2b6a57819a4495ebf653eee72e1b7922b2517e3d90c63cebcde9241738e013bf95eab5394d43825d4e6511bf022c7e76771a4da6d636881fd51754ef055ba40a4caf9badadab910f296bd8e13af96c7bb136e5c20b5581037feb3a5035b98cc3495dec311917743d649ac0d6e8d86a8bd948715bf7b134afcab4525e60f0af9d41f30aa426c0d77b3aea4a1e262b635f5e387bd3d0565927955c5", + "tests": [ + { + "tcId": 1, + "comment": "baseline", + "msg": "48656c6c6f20776f726c64", + "sig": "1a13408d3274fb5f79a3039f0b7d693c5a9851fb97e67181dafbda100cf889ebdd724d8da7e22bf30c26e6f9511a69da84637dd2c751b8e26c0baf009a0163e96f7ee0f33174a57ed5c86a0399b8fdafc34e71859a2cd7f6a316d2dae35a13bea9e178a542196d0b17e3e5a3b182f2de5f255d7202f0a4c85c9ff6b0d4d821e2f6894243939e06f01a72d90f3bbad170aed2dd7dd2fc21ef44728dbe05adecbaf1f392ab69909c4194ff215e8c04ec5cd12b99d7b28112e9ddb5dbc91154e4a6daad7cf54581acb79c0424e2ffb9d8b70e1e46b6f47b6cddef5adcf84e9a53cdb69e45549c90e6df73706ac20a303d0c4f6630fc35c2b832c6205b6219913ef7718505c7c5b33d9ded3a8ff6bcf5cbc80b3155b9cda3abcd2d5e0cb055a28c771cf8dc9f6e0f157ac153a53da7ed50bac0e84750550a6fc8fb6696673c20ceac88b60e8a9142b4d3821872331876085427e163e4dcfbdad888e9c862e1293383dbd81af7910c87132dca1f5365f271e671fc2d245fbeedfdb861ebe5a8ce86d37164c66f3f3ae11d39216026e8a6d4fda4c7bfc6513d36fc042dd71fa0960405c122c918eb2b92e046801162d3d3c54c18ed6ff67248c9fcadabc0aa1286986cd748fec67b8f2c7ff0c2801925adb3a0d910506147bac34877d329996a6f0a7b0eec7a0cf352eb6fd09023d30db2b9e371eed224828bc10550fef7c5ff1747ec0ca7b61d1fd4594cc169dcaf14474cbb10b4518dfa848f056be3ff2d71829e261c87a786bdb0289b595c2ebee471af05e06f83ae00f70d9bf8a24d4a02e38e6c3ff7a2020c48801d2d2a28cc14d621bca6a92bbf6b36f011f7f4df81549e160d836c2b6959f848d9d265add11c4c6ee0f51d2f58df64f41152bb7c32886649f8f6e075e57cc5b947cb96038a91ebb5423bd5ec2432155ce2d0f1d81ca969c47c017c2a5472c0a53681e14dceb26b37e894a1a938c033cc2480247e958314d1c251b988ff9a4ed7f67366600ab031601e4684ca5d72a17339e124c5ebb573811b6a584b3d0f1bd040f816cf300aa66eb42d4c5039dd1e0b79decfb5199005d2bbdf9fcebf05a0088983ac6185ce87c95722febcb5b242af1c22973314b44499e8f59127cfb5e58a602d3ee565865bae0729c3b9f31c4aef3dcedf78d6bb520c16d7e1ba5a088ca5cc2217420d99c0613a01f3b75cecd5517636cb864b35a08a6639038bee0250767b9c7bb7d857b8fbe66281f607ed65561d7084e5b31324ae1d7c5fdea534ce4b6fcc7a69add96e99825f86aa6715ff2cb78a0c9281412c7c9c55dfbc16354b564382ed425aa1c8d2604c784fdc5f729c9cd5637eb77172367bd2a8ec0828d9bc03019e5a147d5de676cbaa0f1930603c942feb859f7ec5d70eb148c8afe84b30b3d778f0affcbad6302036291c6518f62e6577794157c985193d858fd602011145c49987a138a8d4e49060600d1b7a76fcee46bbb3241589dcc1320a6bfbcf587d325ba6aebbbe56ec5ce0111a80eafbe430a41a1ebd939583e3adec10f4f1114973fd0b1b0aa75476ec85da51592ec120437ecff50e9afe7401c96ef29297c667ef4da78ac7e1c8486d19faaad35d5904c07e164874f6ef634d5d8a64b076c3f9a37b3d44f61a63b4bb38a3a970d5091e68138bb9301d84db083de275e48fa7553c3e0f1874d0568d594857bf5f52933c5bc4957eeebd2fc7d3c0b90e4b49daf5e447e7d36c4dbdb4c118595f28d3a48b5665a7f995d3e179c96d975d47de5f48cd21c7a1b6a6c673c67669e67e23c3defe0672e8e1289636ec2145a14b6ed50c0b95ebe1b1ba1bd6b8a34a796ad858ab9ce8e678df7355f702ce2959e2c0a1831bb2d203e72cad74d0f9607a34bda435a521c850deee9b6afe6ae182598b74934d0a5d244bde7973cbe89e55a987cdc6cd54fb57b033015294642267b25d2b1016be3f2e842fff9ef1cd2885c99c0d504785ab1fa0f0a7a4828237ddace3c79e0c02dc9d3687c79e01a97cb634fd03dfad85abbeb9567309a21f114817a801cf5bfbd8cf136ddf535469053c43d89feeab902195cb7e2d3c08700bd99d663e65456067b64be4ff2a1572cb696881b3ca64c1566ba7b29cf0ff1cf1a9a24814631ccba5c83874445ed3690db166ec73edf7c2aeecccec9d1ab94187e88dda60936f2e97861acb5f791a67930fcd966eedb4109051edd15f3de10c99b1cef51e9448965a4a4ac8ed10649c5f54f1dbb961d001008b23bb942d49427e61ebb07a02d8c2b32e408f64a69b451cdfca5e0fd8665b800bbb9afb6a0e79bedb9499b14aafd89db80586fbe0166b5d4edc3f5c36e04557897699f32a760a93591eaac14202ca0f193c7c360c83e6dae397c89c2fc5a37883c95a36abbb71dbce6431972297c8e16ca468913b6ffa24d52eaa8d5858cc7cbf1c6d702fe3b236d2b12a63659ded31a5db3500ed37b1f0175af1117456704149506d0d4ae49a5911afbf7ddb6aa9f16cd23721f2ea6920da7bca939910d88237fdb791a90d7c5c7824241e1e62409ad398c64a8470b56fe235b90d85efe648ea33cc0a83ccb941f1cceff086b567c901a5e22e1d8b20af5d75f33aa2e44daef7cfe41d09639da5027e42e646c356367d8943f90d2a80927b140579078eda13a0007f1d3b90ed7d52a34c0cbf632f2177444ef2b47d9ffef295cc49033fb84ca058cdc07696385f0187544f708659ec24c7071c1fe553c20c64cf98ad01b1396bb1699043669b40e8f1b67d42127a2da8ee813ceed2beea7a5a972f55a4239b8013165cc11ac88e2f28b5f7333be23d088acc2fee88233752cebb5c30b6097353056e900e1079e38e389cdb19c81b3c412b9de2f4946b5676862f8473c3f001f7aa0ddec5ec5406afb1fba7c8aaa690aa1618c8244cfcfedc13a8a40f0297d475d43b83e6692c54c1991f3d43cbdb9acd47ed1b0162f83d1ba5a09d753c4d154df38f0042554cbfc98adf3e66928592aa26f330574a8b676d526e84dccc9408bc80d6fded421a66515c0a783600b9aec4304e4d00370e24ed26d1b432e50518f2a132edc1c9fb029c7f8bfb4d8eecf436ed795f31c622efdbb918afe47423d39147a595394cf3af726c70028fce9ec01c465f2fdb0790c372e22a4b826c339ede5cb9a453f228f21946ff3ab02e8d7e844e72b9441d681d73d7417fd5bf5c6099be70830e9d30c99b2b16486208462c6f8d85ee5bb323359d9a3bcf9fae11327f8e06c31c79d66d1ae8b5b5ccbd9bb6ba35bec9ce8c060a0226945543c89f40e7bcced95093c21688c90bb25078d287a66cd18fad9f9a117f4e5afc7ab24689aa797d1623a95e50f4abe45f2fc4d1826f34d54777ba2f6b2acd7427e29b67902a9de8e55e6db362e4fe55a6c24413d2dd6f806f73ed95ed8073bf907382e71ad277a3a20e39a21b8b72e04c7c8511407bc92d4a7fa09a248d96d4e0c8e98ca4d9a821d579ddbcc2c545b3e1cfde9dfa3e812e92c8f75a413a87d61f42f4e7d2062463d5509f3e55ebecc7f615a13c626c265fe8b58c8be96caa72d7a48f87e248923c3ae769f37c5a692d2ce17777a2063ab732e7dfe247f8435930c81d73ad29dbc7579d79534a43d67195d77423ebf396b458084b1140e9fa722eaff25a6519e4ee3a0fac3d239e1cd6edb45f7113fbbc3487bb57ae278caa7a275e344b870691b9119bdbd80c36042de9d69dba4947170cc060b9299a15796f459af7e3cf82d7063dd071fccfc9d7a8852fd61aa9ffd28986504c6e04a67a493e8a76dc7bdf110b9491b290992584ccae69c6dc6eaad78592dcf9b2439144ba4b9872f7c3b1772a01cb7d0a88192c74019b5ee79991541cad2e00c6e5edd4a14abd8c7b57cbaa6c017e703de5c4f6d551baca90f5f0036fef0f7699f992c9921fe3150baf6dfaffbd7db48ca54edc5293306cbc3df9c7fb9ea5467ff8a94f827d532310201e2f7adb89f418df5415d75b54d1f361fddee5d425e0057f320f4afb154f71275fdf0f328300a4d9482f852440b989efa676a420a5c0b0785fb26f7a518534358a8b991c987036744bbf50e32bb8593da4a6add0a5a055df68bf4bffcc23d17ce44b4e565b2224159c86830d87a0e0af467426da1c5c9e43f951405da0f447c957f1ee81b5a4e427b41680af43d546a8ee4057dce454bcb56014095d88a8f37342234588e526f4f8bf8b38dd461403744cc7bf50d702465657614169441a41953f5c535cc1da9ce9dac6c6cb1d15224c10588ce29fd78a53a25b96471e53796ee9aec16837876ebdeb663186b0ae07160e779fc71c8682c1fb4a236dd7438c30b4416d7d1e1ea99ad14e196134ee95a35b7ea46fa7f95db365572677bc86d44fac60ba053137ad91ecdc6e5494354fac09f0cc983973a773d23e78b660c85558a550971a34bf2c42cb8f1fa062b667246952e13012c3a5c72f099aef765d72c042283c07c019536ede021117866b83b71b7265d1731d1f2ebd9fb5b49229f67e3f9a80d4b66f4f8495e6fe8889bcec085a32c6ccc004e003b31ed5e2db2e576825111483049da840dc1cdac7a01d6d9ddd7b0a30c5dce8a74728ecb3cc6d76503a6655c6c6fe1b875cd62f53214fb85ad7c70e526907b8aecd5ce5e85eb6c8eb7a69331caeade3b4a82b94c576b2cfc5dc982edb92a0b526cc861384c1bde479b0346af9dc6517acf97f9045b696df80db3667d49faf349df78f178ef5a1f35d97f8fa30384c9d391eac4b56bb0020505ae93b076c8b9aade70086779fe3b2cf5625fe8c2094856fd6fa79ed960eb9e7ca74472c2f45fbf2af4575e6d7bbc748e197fcc95ebb5015e755c02b4b4ca5d118678c3bb280cede40ae6efb6bd19e8e016b49dfc91cd18c3a71c435b223fbd2ff1f4638a8b4249480c019121d1ffbfb23907e88fbc480d6785cb11d92307b668f4f2876a1e362b57edf21c58b992e88a360e62c0ec008c591d22769ea0f41d13441b3339c23702e3af631896c64d3d46dd2bb6345e0dd8085ec5fbbab57ec3f1507370efb63050e3129155f80c5733c63c70bd27a5d2af502676e96105212151a8f4af97ffb35e52b341e3983a254ec7dc936c8de7d752cd65daa271e58d2eafec02c120694dcd54e4b85e9d3b526f492e87c058db1831e5ead3617f0c08bd095ff2d397623bd8c3dccc8f7dfa213fa6ddeac0de78cf498b0240706205b7e162e1703fd46ea4f02ba2c0624cf095be6908ed16059a3d0ebcddd0bd476b75c8687c9229f3b1a9096a899010950678badc06eb72ed0c532445b83f53ff48e07d91c3bf8b841c55e8c58ef28e9efa4e272dda05d4a84fbc3d2a4a48bdacf7e11dba085865f81fc70417c84532a702c5932066e904407803d5f0dd37c33f0727a8c8b4d3702c36ae9d38e7bc01a758dbc5c269b06661a7c58aec7bec4619296c838a5a41627e394092464f79ffbf1a1c1785b6b74035eba2f5d72881fafac30490e29ccd82f1319f43c72b1d83c6c3f9694ca0a81b352e84dcdee64a571999c627f34897d8b24b9f78381e4706a46d231fa19480517f9eafe763f3290c2f41e8b2c406a97af83175c422b8c0d1a624bdd2982c16c0b6ee84cd37c78ee0e5d3b6c6b8fff292bd7aba7904677a37c73e399fe2846aea5efc199dd16666785717f057769460a830e336278985ee89e3a70673b342d11d90625fa5e3ce5854650bb18145f4162cbeb737402594b7e28f58cc5d70ea9ae629c39f9c13f0cc54111e182f53877ae3af7dc7eba68ac5d80d7658ae4bfd3b9d4232a3a3f071b568141cc87580b3bda9efeb59055feefaccdcbb21fdfd04cb16ce1739e26d0278008ca50ea03a286b689d44ef26ba5670d38f16450ac6d0ea6b9f683173ef991b66c16b6eb6bf63db7feb5001655b70531a2825689ccac3775110ee34b771ca6ae11dbc1adceeacce40a38594ab376e6d19579ad3977c7e4ba00d26065af0848cddd8a58a8ba842a9f4a0612cf6fb6eb9ec359f8c7e4e17286949bf11f281c6d51f3cfa8decadf07a8da911b7f60b61d8dfcab26530de61e6e0cdc028b2a3d70e02ecf084c6f2842a768f0f5f6f0f3691d67bd683690e83b3a02515055d56ec540051f16b71f4bbecc66e61583a9b52e63745d999597fb30b566293344ee60c479c8acb035e075df1cba2103894c71acebaa1818750d58a0d664fa751f3408ff06f54f98874eb5b9f452552a834a28f602f35c5b343822d905d90f7de02e8adc46492b465b6cead37314ba4d5e51e44a2f6b3183ecb6ad677c8cbb0df5ab2e420b046624593fafc04f7a36f15532c3e77b87e3b9a39cc39a5adba74df028189b14edbed70f623a0a1d8962a377d0d27b04f5e22f22feffd074fb6f20517446f46e68d1d24cdd11b6f0718c21cc7e2eec90370212437bf6992b44172287d0131c27556b7aa4b5e801556c6f8c96a4c9dbe95965757b81c0c6d0072c7b9299bed3e70b3fc20512357283868caab6b7bbdff811358dc30000000000000000000000000000000000030c161e2629363a", + "result": "valid", + "flags": [ + "ValidSignature" + ] + }, + { + "tcId": 2, + "comment": "signature that takes 1 iteration(s)", + "msg": "0500000000000000000000000000000000000000000000000000000000000000", + "sig": "c32c3d32a33f673b68caf903bac371f99da7e65a45476248a10c4202b22cb40a44a9903b611aa49cd5c56cec60ebed68b61761f12b1b2ee7512f874a5be2c32cee2d97b43ddf4b65a1135dbba9d285245067ce5f0164eada3eab257647d7cda88a215e2e50c9069fbb11df03c2022d0f3ae7b90659d0a3997c9d657699ff42357eda9899147b1bbf0c4d876fd737f564a33abca1781b0801e68e61d2235e6983c15a1a0fdf3944024bd54e927ebe680e1199c3056baad89ab5b3bcf754ea13926b9237ddb2013e8441489a73600e9ee05efdd8c83ab321f8f31863afad20d3ec3e87bc37eb4a69fab8ab584c369857c3b3ac51bc70fd0a1a58757326bfb28193abd6aa93601fd0460f1eddcb958e00296d30e4d525d922ade1d97ba414a58586aa00a5637a0062975ba4ffbf90a6fe0d1d55cdbbba677316b40dd0e730a3fc8afd6254fbd9ca01345f9ed72acfb79f9c424f47bd56474bf43fb38222c494bb2940d07b3de6c6a91bcfec1e524698b6443e4300f1018fd22ef3c3638462c5252d4dd8486198106654135700ac448ba751951557ec18437d05caea34d561c3055e2ec68f3998b46de1f62b874098111b97210e34e63e75965d511491a171b3e33acacbd88a2854c906f2ffd5717bce69640350d853360cc9ee2c796dcd536081dc351dc33fcf67adfcbecf56773c983c55d7c3f69f1dace2cd33620b9c28f1923529b551623b5c6da25a21e7da8d9916f1a338d7c875334142201622384dc8bc056335d0ff842cb5a6582eeb204a552ffa4bad43c015b9ddff6094f7ac356eced9fad0f4304788c81a14b2b31076b819e8ad584aab04a20bfa06d72ffdc9042d6e34634870cc25672de5d0d1d23e197663692d2e82d75c64c592b5a88813aa7406f78a2567fd07144153a2cd19d55b8543a35b4341a32ff60c914ddad5821c9f54ad892aa1da2b818076960630a976dc03f59154951474254519ed1d8f48de6a5e6ca13614aba7bfca3e1ec5be4966f7abf3b0ef1bd1e84b01ad956b44ad58554f9f225e32ed06ca912112a6491af51b9744c77f267bbdd91ba97c3877303b02fa10b488d9182ed1583c7aa9960294a378c65b3d342a3130cefc2dec690854e37a98e353a3b5b847cd85e6cdb15b2a35fbb270a9fb0d5b103b90e1c3c003eb4c59f34f30fa07a9608340a8438df5f864d30bc1c1b928684f6db18b3c7ac5449f0b34c6a044b7fbc868e344eebcd378ca0cc47d316ca3eb282b57ab8cf9433725340105f38fa90b1f998ee9c3729eda8e7d7dc424f21672e9f39743709aba135261d875a46d4564dd9a739fb5f874b886f022ce3e8f068b6404a7171f0f2f4e281788834ff6da6f89ad19c5dcb3ecb39d1cefa1e7c5760f9df76fb54d4e71a9fc7aa8995f95592bdf46755ae808f4705bd0ba95dd39fa359af941afd91affbd811ee9bfb4e15790f133f0508c1a2cace83630d2545dd5cbaa5adc84253896c4054ee199b5ef51a9304761c6d89c561c320b071881e1c53dfc97b12c4813dcd6a232fd1fda1c5f6d1827b4364152929e035d56d501285a2e9b7b5581e2599f0c085910493085df9e668b9311251fea65bbfa6f629b0c013928fff5ccf18a2f0d7fb2a551be113cce0b4ee46563d6a468b4abaf59df7236ccce15bae3cdb4d4686eb372bf4dff51654c98e84d1c1caa6f314f1a14c27ea5c690340c7828c413ba85982fb36fb65e2aeb287726c617a6a2c4dafc7a91767bc2d0e5946052cb760b486cab5cbd3d5ad6c7b601d98f62515c560f910a23fddb18bf232ac695739a8a5e48547a567edb539e2ec5c95fbe0f8dce034d7493cd9f821dbee858f8e528321e564231d4cabce64dc6030130eead6882ae3c2f401fb4680025e44e92a0b73c28d1f4e53110761d9afaf4b52f8a5ea6c2ff528add4ae7d45b7df29891d74cc3a8c7647344a0081f2174f87ab00ec19ee3678b970c237c6ad7b0e12d3f73948a3a03d60da49f54c024b1f6a6a9e6afce0493981f83f0cb8b2ab7067b2f35c00c2c48fc5b1d4debf4a5018528bcb6dfb76cb69842d258cf4221f2421269c4df2ddad3cfa66047bcdda97ee7d899a6ed95b526caa728c8747f654cf45b52326788634005a49156d2aea607d98f025820c82dfbffeeea6fcab281579a66a645aaba611a92c8b150e18df35aa13ecf83ae76a2f879afe422ea786cef76ef2d5ad4428c78aac41772fee7e005305ca2fadaf3c32f401d8edff8e78d37057be3b223d3d6d1dea2cc066ae1e71afbf42d62cf5790603ce981a4827cde8a5c1dc336cc2fa63420a7c79661f24dc8a163e20f6eb4695fa9a391ccca90a1a689a29ac6bfd253e9dfed0fad0bff9d98679a2fdd63d0f1ef7bcb9b25506b780867c7cf48b94ed3de6b3b00a7a478fcf1167bf2df55802975df21e6c36b161c153870d8b3f1b9868b9cffa4785d1071e17a5dec9d1c2e634b6b896be34c6b995643183562c050fca385acde68902980580c8396c568d9fdbe44b6525aeeb4c65f60c66f23bef73ad5a3857ad7bea448283730cb1bb8b02b47aa92c8dfdc95daab7b43307427eee5021c76950fb6589156bebb89a62cba2e9a989ab7ed2f5b31adeb80dc006c712c88ee8a8ceb804c64e765ac2f4cc5d8a824f52556c00fc72dd3703afae084d368170af52851027fab1c62ba2d0a7a1449b3cf538f039659c2beeb4cfab638a7a9de789ceadeab8ed525cf4a4ad17eb661e77ff055aca38f3939195e6b16f05943cf1101fc99bdea7537376fa78509d553f08bd8739eb1d4c6396e2859ff5b90c7597a3dca218811b5c7722b39ce07cbc7fd4ba36f08b031417035ac6e1513e8e6d35b0324a6b997b32e8e55cd52618d22ff5290dff6a77d627fc60a6ee3b02fff54985d83b4aee9541b799eee9c44579c4e75f7accbe7662345ef40dcc2bbb2d5d39cacde7926e33af2a21892b5e476b262a470d626f08cb2ab68255fc600dfd6b53138d97732ca2042cbd959722f72a500cded2b27311c8ee093a061ab0485d6a5a366012e287bbeb6dfa28059a2ddf288d73f0b46ef60aaa550a35fae7dc376bf01e127021950433d34980821af69192c12771a661d22883baa275bd5d4beb7967599a64369766b713dac55336dec70fcf72a9f6bf86566adb37e3b99ee98dc2d2a509158f861038dbfb7ff4de93b6b9f01919c8d6af2f43f9ac1ceca933c1b7406332978624a30e7fe2782ca75e055c7dfa331a2e4646902aa3296124781bcb690b6bfa81f2ff8cd2293811dcc8d98be12ee4e359a10b4fa9d973cdaa660f540b31d77839e03f4a721ee3c16a5b70b91bd4f99557562027396d8fda1535400ded22091b6c64c3cd43912116cca30db6c111ffa19f45aafa5369095501eab83effad84e78a155c8de370e9e70f1d1fc259889ddbde384a36e75103e5b34322bd5d74f2dee849f26699675be99198684a0fb413421ecea6861c51f7657481cfd4577807f3258752745c4f56ccc2d66877420248ca3eada3d990a3288c78f9f27ed0eb0cd90f4133f02dc40ccad9bccff2e63a7804ce6c8716bcfd62f4dfc1dd3c0bb527061dc006e6abe16f23562f9cf309231782195aedc586b548c6584ef5fa86e99cf5f295117baeb28411babac4807bf3e258fe6c18e5088d1dd14cc4c1526059f0b1d4a0a2bbab08c0b4ff887fe56b7c2fd927bc398367757b2e9853ae80f1d7760c3e50d34ed8ba5678b52633a0931f3f8cd8076af042cc66c2916b35a70569b19eebb0a5eed1fe354c105f4a151474bbd68846919800877834d6896a267ecc826410127da4bb1f38ccb0549f35a910ff61d33c35643f8032c7347e6bc76982d6c4cfef7ddc503ddd07bc35b9f0a46e5965a4a475d7dbd6726f0df40951e72fa12ba49848697416f9efed5bf3b4bb1043320012c9267781d7608146c18e04cf2f0ff56f7711767122afb5430fa909a51279196a8bd74b8010bb0778e5f510456dc2d6dcb18b4d4ac97dc7c8c6eda9b13c3297051ca4722464dbb8b61d8d932b60107e5c7d66b59402bd463a27769bba76e280831836673683923311e173856dff5c6cbbaadb33bedd5ec8422abd761d0e7bc7ffa65a358ba05b09e27fc780c1a9ce34b954557cbf2a24a8260dbf96254f7db48cec34df3ef2205f6941eafb1df2bff4bff6775f0f38d394c98a897690dcbfe8fdcc56e781886a83a35dc03bc24151d89a2c783f64ca286b3e2d0f475cad76b8d97da3a25acebd7adab16feaeceeec50969545171744362990af44df7221c68ad60e7b6b097569bce055952ec98669847bcb898aa7a2bb5367a871c9292c0003cb6125ff780a4217aba9f86aa65ebd4723dbbbdd23f29d310b37e6c7f4c6f8ea023abf75b56d36571eb7da495d39c887e9873e031345367dff000aa818c5b08eef8ed4e938a73346da6ca9badb37dde1563c5ccfdad7c94880a442ebd6fd9a30a873e22a045059c24f9b8cca43d0e91a162273e72c3bd403fab3b7b7f005f370a8222099ad68c482ef6040646e6ef8db3dc5afe52b262655f4000f974865fc07166c7b255fd71a1b2511b26996de7854ea303ceabcb1ae86415c614bddf4947c56b4ab81cd0e2f71fcaea5c85c03f43ebe3110e239d18007584a4abf26c0a3de7bc9809b472c2f2d8d30bce7d960a02384ddaea16d056df6d4c412e237e7038e7851e9ff580f0d4fd560db52a74650ecb6233b90ac32e3c237eb8ae2ac63b6761057615a3a27c46f0c5b735c62f10433f1329222b2bd6af2c819d181fac0683ff0709702599b4cf6b8dc40cc1cc1d8a7ac3c8def7870ff922cf3807fee1cdcc1e43971bfeafcd735b8a3a7bd892a9a93adcf72f62a64e0375af74e9e4a7d0ea2a31b1fbc26d08b39577406e8a850966e239c789e340fa4657df2d8f1a5a2cf6f6b2ee906e38f06ec7305fa96b6aada149a255086954f8bc1c28672b14b7725c3e5aa14674a6ec7c36bed4dfcd3dc9b08e6e3fe7f2eb21e747da0546d86078107699d342ca7159c3a74b7cf36ba481e870f36831b9a8c6ac5bcd63651ab2397b0c9c0eb55a5c2adfa183e6d91336615ed584026b3e3b7022e99ec049fecac217c06877e6f06bea61e705f2ad24c09fda4a5d0288a8b647a0b1a0a8786a1b325859481c031f0551cf468f978a01cb77bee268d55fbd43062ef25bb61a0cb277d70d8a176b0f610d7e062528894c80c53cefbb26b93756b01d1547f650c2247c6f097279857af18675201af10183aff9ddbdfd0249b94aa0470568fcf4a97540b37944fb9a8663e6452c8b4b482c4c55df83925e383651a8bb4d751bef5d6ee5c7381681e4a87349caed2e22a02cb9209f33f3c82c6400a11541ed01eeb73e64c4d0e45720111844382ef5ef1326a9826f979adc6165a646717a368a67bc789f0384acc91980f7efba4ad952793070ae4552bb5fb2a70cb841c5db44f112920d7aa86e812d808260c6d620cd13f44954cbda4f26947eba4f92703695b64416da271d949b7cdb2cad5ce7212c39d1bfebda39a105368cce499dc13c98db707161a0e518e80ee29759dd012ffd2ded37514105bef7cbfdc8a0bde3fa87ff8ab37735e56177f29cc92d6416c667f99762377b2cd23016d561699c3f897c1a466404215c37e938fa3b8fd5a0b7e05a998478313d315132399b8a84b8324841c98148ea928341eebb96bd92d563eff0b7757fdae99bff357cb02cd13e5f218b5d8dfbbd80cc10a88c3183fbf8fbcf9f495317d799e5ce2899248292b17546de2239b013fd5a259277fc245e92b6a172a52831dc8b041d1b9a945ad0a4af04990aa92ae7d67e96d20b1ba26e9f698f09b7443b831cdfb0f8c15bfe48e8f181c7b0aa75370519e05ab21a7e30c99cb5460c337e943e7cc2920a1e39406433cc0f64b1b94ee7f93b19c230e91c27c1d87dfa4d67ce0cd55ce286fa08125ffd386b325a1f2493f5d88252be88f09282107e5b6adf0af967a4e13c42578f21506a4b489c86d49394462e67733a796475ec8ce2c3df2d58430308198b24350acebc228052a480636977a3cce86b5c49b604fb20976cc9bf5c0fef149e23e799a2dd485cabb3dc40c9e4f8e2e1ff1f2f893bca295d19f40b2a85f58f1ad8f70ca1e01436db51b4828a5611e5a946e2ad79a49a977e55fba6c3349c88efc02070f4f51e18bd33af93a2e3c3dad9dce84b5fde53dc80d49f485fa7a4848745724805c00afb1d5795e7cced890dcc7b32ae4e6a9b63f056292475c4c11e9aa57a615eb63ff40f9563fad5849d7dfb6601c74a453a3a20a36d2fcaf84d703b20923b9f44eb14d0ccac02a228dc5ea8e2a2c4b5c0316083314c2fff7068d41ee942ec68f2eee79eedffcd728b8c04def965d689f8ed768e8425a5750189019be547bfce9fc9e95b50db2ff8cc8f3e763afe505d02c0171c212b535f686ebed1e227495a9598bcf639bbceebf218243a56bbc5d1d6f8f9fb2663b921253b5478a9e2edff48627bed5152aa000000000000000000000000000000000000000000000b121722252e3235", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 3, + "comment": "signature that takes 2 iteration(s)", + "msg": "0300000000000000000000000000000000000000000000000000000000000000", + "sig": "2bb289fa7f1c410ed06a988983531d643f908fd9b61c097c0da41d125cb6bd9256fb2de6897c80ad9ddcdc2fb42cddce7700a4b2980a7e676ee8f7428d3f8c7d53ec2d75bec00cf1510e8d279e99b350538331386598e7b60ad31f5a9b0e4fc8dc655eb7ccf492403f3b28f8d12bacbe921801dab92cdf9d4748f8c96e72070ca37e0bcf86720e12f810dab82aee715c4b868d05edea7a0989ac28c03bca07f41c0f5054459559d4b6ce91f064a3fae7cbc6f98551bb773209a5ada2b01aa09f0df3ce3805bc77e42f31ff766a62a56222d82a4bc60b48eaac7cae6fff61592b9b9f51cd2638fcd20cfd39d6a6ad46f7eb9a4bcf610c84c4b64e9a96828210943d1b51cd9f494bd4fd0af766d018b27521bbb60980175cea80dc1661dd2e991582135c394f4291f49f15d962e4b56e3ce930423ac1f696fc0346ee34ccab949b213216472c2cc1cb9c3b886c9e3e0ca4fd17de21d04835a879d11cf013f6b4e7375e1a741adeca9d46186b0001ceee7532d9ed34fd4b3fd3affa2a3fcd84a9c14d3e5c4165740f01f39ba3a6870dfc86b571b1bfd167d79a540e4570a12701c43f4a36883278fa749f2f3a2100eee0f2a1c663c4ac246e30b03f6a32c6619f318ba2a081a564fb8c757e0d99567dd9c8a40c82ebdbc31729a654922b67f874b8eb488f9f0e773817a6f76b2030b0415938870ea473ed6ae8cb76d7c0e8490aa1f1c383149ea115ecfcef7eb5ab3b982a33d082bc5e35b11bb1e12a0384e54081dd4cbc5abdf7efd871b441950e3e8221312c55d2d969a06d44a145a06fdaf64d11680f5b380248edc6c0686add8540d616c57d48fe74d277000757d3482387fc441e89af0e49fe71860ab49cb9f8a94e4ac5ed8afdbb5a4aa2a46f53cfa4c5a52141c61af1491ae5af89db603a570e881793c4796d2d282002609a303b42b92310018dba228ebdfcea5e139c5065ad8a3be515566dd926d7be0098af9828f20423bf920855f8ac79fd3f94b828ded4c9c0f7f16bb6892e5dede6d1a5f7bf7ab06ce0db91923e04fcd5ef3e4253f687c69a929af901686b5ea7790249b95985b28ca35e9dce64ed8c921a770461ce53b911371e2ff367f3b096deae16a42093c7bd48a0a232b7783b68cedfaf31a6796fe34697899d69900d90876e7f40e79837deb951e97acd7b387f029985b6850fc5ebf26988a4a2c9dfde7c64aa84a70ce7ee13274d0a8641c415ab86e3adb2c3bc5876abd4cdf7d51222d98e04e8eceef5f1e7e0774ab8fffa69ea1e98941ab5457073d9f18cf05a3ff898537ba2f2efc6469189c36a7f8d9b044a3c0581629058dd1521aaa6748a57fcf313c586a3514b2b8d13965ce43d6513d2eaa2dd602b18e672d1c71c80fd5e0b8f83cc090dba09cd3a623f4c360538160f14f2e13c96b10782dd553c555df9fe8a1ce2627d71f705e555302626a8e966fdfb64d0fb52dc697d98a71191e88098de8d8e4611498a8f62f0b4022b084cac2c6ca01a15a5b9e5ad00831f5028b8319d190e19573c6f36c6786b9481851e0899e98839367df8aafd898ee1d5fbe384f050ea486f84e32f944575d7b56ff3825032806737647163d1d92a3499b89c5049b6da8b907801cb14bb0f258838dca1422bd7ecac4e37a926747f7d77afbd6285091a164a3266be55a0f323978e2daa5b7d8cf68fe2638bfefab9595f2b6daa0ef20fc29993cfb3ecd6808a66bb60cb64272f12953ec201aae2e6a0a50da25d03bfb151007c49d7fc4e234c2e0145f4e3a67583e3dd4e6d17173490ebd3d5acfe9761b048dcdfe60e70a7da7a1a0d38b5604d70d290c6ef58dcaeb6922c2022ede6666bf12a3a18725e85b65d49cbd240064672e9af58ad6171dfd09ac6b516bbf39b57bb3ac15cdc27269ac080bd8ec5a8712e16cb4c84e07a9a7425906864a6a377b840209744dfdeee65645aae6f7712a908d4cd6ad35cb41d6c1be208a37392f9cdfd889a3f1c82e4da1599b44ebd474d4297d601f91acfed04b05b7ea1a4c647c1d9a4f2a304808dd4a6534725c9d8fee8c42ceac91a37c33795bd152379b25eeecd44723ff610ebf56071287d6de16d20d04d085f65d924a318943d188e6329159397cbce2981d0c9b9ba934897633c36a83c9ed649864d6135f02e9c7032edcc7e398daa69bbc66930739ec0d374d9f3e855cab0c1457a5c98d60e2a8ec92bed7c6358527eb529be4aa4398fb0d5a7055230aed249af160460048b20f20b7a150879d31d58ed3a5519a0a682640841cc3af93c37772a4feb656b537f68747eb01ab6a771d74fa0df661f0447b7fba1a75fa33e6657a242f241be0c3d63d61b821ff52c9ff803aed0e650a38ce8654e55e9e31ca2f0f030cf0e415148ce476dfcdc0f7422d6beb150c9d3853b27642e860dc7f72f34326c9000675524901b7875e349572524373a201c909a03068630200b5f6579940f59b8a5f363f6f6129853fcb2208d62e25670bfbc1e31d02929b19044ce178999e414b353a49ad12285725fe9e78280a9e35aca22434b32ba79d724439fae9fc11e5158437071626beefcc0b324c0afad8d18ad5c9b81a77268a34429a8453f0c62c1f4acdc5a1e625eb32a5aba04be98b11c5ec3e238d5e4e0aba3d0bed00f3505f12f040beec5339be950750af1f398730063a19ab8809e8e02347bce9a8bda9ca25a93ae4d3ecdc5e719e49dc0fb949e431ba34679de328a4080408530f2090163059cc3f0202e9a47d3556c64ef9cd7b6327708e74781604fd5d05eeb67e2c77d6841c5417fbae7e629a479e20712fddf82f86aa91136e94dcb615fdb3855b2679cc236602e30758e4396cf4282db5dd03767342c9342c5811adc82c9a703d52a4a118e19edbfc352ff2de94dcfdb0fda4fe4b697ed93d11fa1700e6c4321ecf9b2191cf43b967a80e4529da17c9b1a4fc7294bdf512fb7923a4be2e0f0f149c08d9d74ea4060e4da609af063e48cc96bdd3ff06f63a616f88d0d150436356881a92a9645d206dd7a85618ab47cabc96c1529370b14df054974da1ad4f62fe5617f5e84bbda14c898dd6cd693bb4b7d197d6687f258ad946e273b33546739349d17df36c84f08ffa9a0652a854de47541e65d91a2d40164e48f937cb46c7ce844fe8ae7abb53ba8d8f08a4b78167d804bfae05f3484e8d79eecc72200bf08763db38d2109388a7575a29fbc732c849ce7397404045320a53f44494daaefe370fd31aaaa3d99a7b53ae09bac7186b6de1ed5bc196ccb0aaf51909a85032d513ba3397ea6fbed57f0162c02ab8f9995afeb7af5d7301a795aaa38764fd578f42cfa463d644685746511fe16df7aa762e2b4990f5baaa16578cef09d024c12a629230459b263884ecbd89ab1eb7f9d58b60d562afd659f00491c7af5bbac6ba8c62738da32f0900b4cfae16d85af4107f3c06636e74db76f92b0927f502ccc81590b3de2ec180103d76ed952148daa0334a7d75350d9053243e17afe41dc1c213272f77a9396a66590305ec3c4ddae7684968decc18a8751f327ca9eedce06569b5b30153c07b517a4dfb9879bc537bfeaab6d8149b770e96a5430a619b43de6d6556d199ad6275325a15810870608f5c5df7c9be058fd698a1c267379718b74de264a750a059aa3ebadd7e06f56e00c95822ad08669622d9085d397b0067b706f547aac800391da0296fa049c8ec68bbcc9f2f6813e7ef5efb759dd699bfa350ecf7a9d97fb3c5f4556889864fefea8e47894915d3cdea0df35801fc84404d8d726c04c2504f206fcc858d3f6a1c7674879254344c30957f64952e9ba7cc4058f470ac6618e07ae066ac22ac053a8bddfc296ca5231071125b2914cc843cd898a9b9ecfcef603599b13dc6503eea6dfcc1202d5b5a237a229029cb43b6fc92db3f8a4ef19b3b12a900e8c5d05115791dcc077be1bed11b45d6e273852bce2bc89663c341aa808091f066714fb6c1b8d5889a4efb09b910da82351ff7401e04c7a530ec578e0d58970d21c3813da2041e70b15d299ca8aeecf14e64dc6ff4c4af1f407f5ba6a0c7bac85f5ed21bf31ed15dc7dbd74035a97bee0c252969e05c66bd7d374de1d71f8614ded9855c31781dbf4678588243315404dd4fa0ff6e13cf05e4fcc78085dd85a74fb38a67363ab9fa5d8338d5a7583051c561864642ddf17760038c85d32284cf4093a8cf417a74e08ffe0afb423b82b2a08d0bf6b31e318d2e4b194605d0e88c6c66a629fd82e9ebe3adbb8cee385cb5793fa6fd133a78fea11e37b970bc73147942855edfc01146c85723d39012d0ceb37e282f028dc839983bd9e41f0717f23b798f41049a1e515983af0888816a79b64e3873c245e972b3482ab07910536f811c6bbf92ba61ffcbf97592feb0623b3129f72cd76ce239cd6c7b8ba5b5be02420d3cde3ccc19081fa097cd8d9644fdb7ca7ed9817335d4846950b763e9c6810f7045876acbe70cb82630a087023dc58d74449632e892144b9f804e77170d25e0583d1c98a6b5b1c3c3d78ed3569e99703f5bc0a781eadb901ee0943e7264be8846c17cbde3c59a9f89ec97d99a2f358049b7adaa4222ab11d5695a93ed47e800b5e94aef85a709f8b8c025fa67fbbe17b353479510dbeb95d39ab0d1efa6d8ab6e6bf92d8dcd6f6f03e6f2b99dbff8fe3b265666ed7bc58e83b5d9b3322f1669e47ec338541be3083c7841b880e2f2826cb5695ec54c5817bf2761f534019d3423b1e16609847733de5f1879eb650552623ea78d2681fd8b0169b434d5d8bddf9be40df41b789e6c863c5cc2c26e4fb2648f259a2d9bc769f396d9301f89e3856beda667598475675d58551225dcc9da666617ad162e2dddcd873cb975d3eb4b5f8e60264150b257e2082fcfb2c0052506f56e32a9556ac7d39e43560b5ddad48d04ef694b1fecb94e08845c5c7913c3815caa1c9491455375bee8c43b1b02a6f268083d563d68f59ba3d38df0a9f689be4d8a2bc925619028d200f302a9d4c31705f941ad8823b3ff6f24c122c42d821d08bb07628d3ecfaa978a09de0a8eb844cc221663765361cb5d6c00fe4d13a20cd01d0830ff1353eee1c752ea3588da94323128c59fc73fbe9c0a856b49c38fae9fc386f86e36a09dda9cec7d1a940ed22bc06980428b555d7613539ed0ffcec8154a00fa8685b085257d38d3ed858f7417fe717a9de78d28fb706e3baa8346b44e911533adc2dfb7e95b2a421f32b6a31f5f2938dc07eb33aa142fbb6635d0affbcebde7e019b93c975cafcacd12c9a43f84f11d4964f849ec0dfbc414b1504c6ac02648f5874275ddbc72f143fa662841792e391f2693d58aa2658c81a2440644aa3925a4c0c4f5644d3108ceb1ee7875900aaa2b934d3bf42b3bf669f6d414110f0fadb9e98734f6f22cbebcdea06700dbc213cba96933f663fab6cda93ecb26d1039f1de8a5c880723a00c157f9853e2b6aa6da885894360b192dccba643b73137ada7e1368b9862a200d25d8e4982a0661698946c19ba489064e9e4f8948a671b83e7e953f4aa14ac799e9047531056d42eff40dab7e97756a8312db426833467b135d469c17e8d6b2071ba26d9bb32057f371baf7d497e3d5f1ea05834f6a2aeac6ee83bdc6aaa2d4636ab297bd4f9e36af3b2ff987535823a4c01466faca4c71a4f48a234a389c244ceea22684934e376790c5e7f6e25f8e44af6f7f2e70d3974ad54e8549b9f7bb84e0ed16a1fbe1272acf3b7355c23a3cfa01f8b861bfe2f27c19725d382a59caa19f26e77b74c14de6b2dfcf3dd7bd406055b911a59c8fdc6d4c78e9c03d3a8532630f81d552a75e8464ec22360ed83377c3652eb0d43cd44a572d56f64aa0ed9d27c1a502e8cad59b924c99f6796b0b0d00b43b2bedf7e0c96af066742a2bed9ab70a6446ba2b3be1b7ca380593af1b9e39c7a525da8e10b7833f67e976e932c6119383e1133eed0dff8db45ecedb2c05c33da31154f2271e8bb4c9a45000f1b1c639e3ca673414c7eb748f0150513d7d60eb216355b0c05ad58b4e839f904ef926066df8fa120c811b5fb394ebc520b27169fd87f012ff55f0e4ec27c049b838021f07adb572fd8558a9942ccd82e7cab145c6248cf6992ded49ccc28ce16ba4df9aa1ad780642f9bd00e1e1de72e2ef8ec599066bd8ae839929ebb41b6d1442259ce193d59e01ac94647f2ee7d57e2f3a5b291b2151d3cc9f0b206b12c096ee9ae9d2bea3c19221f3ee49b1b5709ab37d072168f80e1fad9ae698e42a2b5f37ffd3cf099ea34838f61175533a3bcae4f2c335c5e2e2233b2878a216832bfcf3d70f600888275bdcbd336871ac52fec7909fa8001529d28c2307f7844b9dbeac21d0f9d504ef81b945367405887a50a9f88c3f4b11a3fae9cbdbade52f9c8a17f1ffbd95d2512509198abfb162c313d6ddddfee589396a4a7f0fb6b94b9bad8e1b0badc5e8c9ea9e6050a0c4d6274761824405674adc9d800000000000000000000000000000000000000000000000000060e151b1e232a32", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 4, + "comment": "signature that takes 3 iteration(s)", + "msg": "0400000000000000000000000000000000000000000000000000000000000000", + "sig": "2ba9d46524d1e13500b15c244dba170c1069f0b3bfa545a03fa690570afc5f46d5cd484858cdd632bdab9c25abf3024d962643e765b646ea3e33275a98dfdaa72c092057ea57989eae2a4c604cb938c89d9a8d14e8884d5efc643dcb173a29e70d0b67221eed1489d17937d924f980436ec0e43ca5fd32a8c195ed3d7f8dad688a887311e1f6ba2e07757782aa45fbf38b510241f4d332c8795adba697120e83d87a769e1356a16e925acb0c2600c3fc7ab794b2e7d9581e89a85f43276250834a8ff1e946a58d7f2b216f436a902f0326030f415471dedd0f5a449955d86dfb98a93c57d01d4a17a8268c9dcd96d911d8f0365c1cff931ee8ef69e2703cd945ca732128969695591d8e0b62c54e82bcb7c35b57f5f30b6ff1802504288f19f4fb651dd85204db635a47cd70258679a9e6c4c64e539ed54b136a7d523f6ab93ce5cfcd976f79f4d85cb8c1bfcdcdd1a9bad97f1c85596feeca0232cf4d6a28850c2dd076dbf50f4b568eb3d18dd7ab8c6261a1975ba71d17a90dd6d6dd4c1d7b383e36263124e450ec917c9e6ab65f48c7c6e1dbfa1fc188b05cdc0e5fc0c0a3f97f54b16585a3d9737fac4ffd022315ce2dd4187ab93b8049d364c177780f8d3a356ee941f491ca021e72ae5b6ba47ed42f2b7f3179e819baf231a9f1e84ab2784a2aed03045283e5f61d80371726fd3269fa75bf4389ed8513783c1219e0ab4c269edd1a533cc6cc627cc3a70c8b15c26350d47ccdde55bcc3b22bf4628bb68196f4fd22dafbb46329922527ebb2b3b7071e46d2cd232b4e09521ef0c92350240cbcc9d98428e65293e790e49fc910f072c59a2a064af7e777186859b804608a275e93aa7a1d10cca741f9719fcb9ddb22b364d31d0c34013cb49b80c480addf6ad88b0c27b9a11b3a7494072116c95628fb4ca67ba2654140a323c1ece44527b25c1df928acfd2ac4f54af20125ecd1cbd7b6cc4006db93ff4301431208bbe5d3b216d2e398097855eb2939fef5c50da7a691f75401fe3b5b524161d244cfa3fc2d62404559cd58da3f8d2e4ef15215fd45e3567ae9076f54bf2422bdf9916607785554b3c078197563603923bf0a76fd123e06afd483ed106ac51b3250ea903bbfb4ffde16062e7c769ff56455953cbf80f4bae6a111a1f7c16ac2a192209b53a8adec5b581c2a4beeef3f3a21b2d13477541c1b6bfa4cc81731d6612f2c3f01e906593221d98513500e8920b1e985f272d223b8b8cad8c209e62036afd5ecaf906111f07d317b4d8daa64ea6f4e29b472f998049ab63ca1625a3f3c55f0247dbb39ae4bf1c2d67f50b0611390bf4cd554490171bc408a6ba939dc5768307cc8d50488db80e27dcdf60ed8aaa027cecd1131584d05037d0ae1f22771f4361af7554d09d9c6d4b6af7d1f7e6927a3e3eaffed859c53d1de8080ff9a1136fbb7cbd716d28dbfd66b56c7eef03392c7ff97afb6018fbff83298574869c0faa3e931b845968c2d4030a7422bfd351343e247e5236f1c3937dbb1b7858fc21a1aab2eff9c1d551c3b16f3f6c464113dce2fcdbb434710d6b725cc7196c8becea7252a787a430533ea03a6f3da0598380acffd412b2175652eb5f6510115cdbe37a007fa04fd604703594a3ed1fd4a50f6f9af136295c0660bde88bcc44e2ff860385729855aea7fffed7fc307b9b2d65316bfe86bf7162140faade169ce6ed61937d1067e50db66dbc6c6e958629613fbd60744e282c297fb94c9e04dfe62e8b55cdc771abc8eacd964f443d235200a4cbb4897d73b95309745f0e72b585a7358a8fd69186f9a5418f217da4045cccf2e8efce26c2691fb82097e4463fe0efcd4d43d08dc7ef9a5b6e5b0cd05f045af37450ba791733bcae500baebb47383c696140272c3ecd6233f91823881b5ee9547c49f4fcd03e484c11b2bf966462852d3bec08d6e8332dbfce472cf947638d781e18d5009cd1cf31b75c02676ac3e336697a1dc09234e347673d40c42bb3576e32cc801fa97ce97c7fc29d34174ba5dd6498d2d9b8d36947c4204e694d0c80a535518e7f7d5740b59fc8727be4febe673257c3950a8bdea76ecbaa76c9c7d5be388cd9a3ecffd682995b3cd51e61e5d9a620f3ecc7d9ba7ef4f24cc617a09baabd85f1bec7a6ddbcaa7130f07a757686256ed4de15be471aeba7b10351672b7008a08a54d019c12a90757e1594156157fed468823ad6fceedfe0a3bc1e138b75d50757106bbfa6bb3e7f55fb1450a0e417560ff09008813034ac57e7cfdc87758c82d352dc7fd737213bfe1c1edc60d5385873371930e677b63e6efb53607d1f1a1d5e1c2b4092cc334a26fb5cbcd37750f2a01b7c05813c2dcde1ad4d9d58aca85e44498be75268bbb5857d14e9d68eb08f9d7f24f5719731b4f67359b298391fecebf11b2bc0ae7aed43eba2571e6dcb7889253d6240095b766d2c4ddef8ee25dd5d15d3b9c3a64c6cdbdcdff35933e72ad2065b4a4b50406e7cf72e36a5054bcf16210b88aa4226ab3ed85b842a8e8bdb4675205d377f960e21696cb77cbaaa910e9af767f8df432c022faeab7c3f9ea4f902d8645735e89e1e1dfec33c01f6e1ddbdc8e67fb4638d46f5f3a8efeeafdd9a53d755aed09947c178edfe92f7359cba7aca8bfd1301cdef357652d31748149f61b5ca73f41adcc62807596e0c0ba55221beda61ad4de2ee180fa6eb906bde4906d3b4bbc1a1a5bca6d277e8fbf5695a7ead9d7192c7fc688275045abcff66a0ea5c25e1eff1ea906370c1c688065bdd881c789dfdbf386a81cd9e9da6221e8c3d575cac2e71354ef3f6fe208278aa303ab03fe9c641ad3adcf688f23a04cab3309b498aae1c2a7552db738087b83647e4b2e13d691a7cd0430861b651a3fc5146759970be2c346e22277042a20b303d927e1b9ef3adb94c7860d3ecf5ef49bc62672de0338c25cfbaf29b901e32f9caf6358f85184abc035de6105336a40a4e2139b2d818af15c86144556b8cf24d6655ce74b4b6033a15c10bb06c81566850bc1cfaa62c064b9aa69e487ed2600c6aad22508c8ff671fa3275758a360eb836665f99e1ab4a4670fe8cf93ac9350d2e546a9e3a426ac5edfe18203e76bc1a301b8bff4c7b2e55bf4df217b35565a20de39612b1a171b36536829dba2388e1321f4d1a47c002f17483f0c104d79c93683ebd33cddf5cf2754c2f593da106caec2be4bbc4612a84caa50d0729b3c1e6ac3ff1c62be9bc70c4fd0808f220bed3444db475e4d05da6b9a73055ab3b1b3576d80f6ce57357901661bdb471704f8a8861751c525fae82d0393c6f55fce98d6042af6e7f119f3ba5d30dd050dd4244a3992fcdfe6bb02931bbf63e8d307b0bbf55f5a99018135d4e442e809241cb5aebcb207d164aef18daa99d5d8982b5315d6500b2fdb65e0219a717cdf38422313b02a1184334e6913b23e903d9ec9bda15fbd86f7f03c9da2f0a62adbaaaab7826b4b758dcfbb3f3f45375f7a2e1eb8e633fc41d33922e2608bf04b76159283911f71f1ea942bfbf5c9383624bddfce54377d39e525fb6ee25154c394e3a8336b432934793d26467fc0ce1abdb610e19b58991a4a8f1a4612550cd6c4f8017297de8203161ca4c60a5efc745dc661ac35a78a51f5c1bde5fc16b509535729ef3144cc229007e5bb220dc3af619ebbfb110c8201334c697defc43a47545e2503dd131cad5ad9390f1f61aeeeb0ebe1a5cc160db912d562b145b1a6d568ffcaaad353a53646e352c2926a917a1220a2e3c81e70c3f557cc319e8647703631529a29680c20d234a8674ea904f3b9d6b47753759adc28bdcf2d7f5a9ba3bfd4fb7a15b846642c0327e3ca35fa1c4f95c70fb0be9f70e87699c7cb6889b4a463cd3cad7ebc504856756f4073d110953be0ec08db4257e89e024b57aa1388deab873b9e7ce08684e80588cdaa6f0c189fb756ba03e7189dd609c3febe34b5cbe402f337a04cf118bf5dad80412a4ef70b44d52e8fc408dea9807277cef589a4c7342f877bd5675c012444e81736e95c0206535c8d8afb4083e40999f45bf8816f20eb6cd799c19ded67c1e7b7b74209295d1246788155e64d21cc2dfb214f4fd1a775d34be0c6e0b49422df80dca6fe281371860b8ab897f0828d52bf1857556bf9cb25934e423b78e07f2170d79c1b284b721b2c94d4b86bca1edf31559518b4dba10987b78037896c34cb52bbedd241845100ee07832ec288ecdea87edcff53d8edb3eeab98d71fc4286a5f46c1767825fb712f0b7926c880b9a82ec137b1dd96b3c6adab0f016a8bffd8bd9440939f08785f58e3f55061956745e5d03e92a0bd527e9fb3f6074def806288bd02930e294fb7ff19f0a1a187eb656c61161a98d93638cfc7d9e1c0ee8cb143211d111ca3ff824aa394391db34bbf80852cddda2270a266d8605d0714a661d664fd1f3b92f187b4e13367766740bc755383d466e9a48fed6372460a3e168e589f130b54043c32fbdb646b93a6a4a9fabd66928808df00bae9aed5e668ff6829a28bedaefd598cdf977d84b5ae03ce4dba3143b6e2ec606a6dbe22c26c3f61d770100db3afc412072ac7ef5cd74a96de2cd44948c52be72981d8f23267db2462693ddeffafeabed1f0c16345d641ed7d3d134399e45dca2fa0854221a85b2a5a7df3ded2b2b0fe40a81ad11160c2c52ea4be3444e9e4d96658d45565f1f935fa2389bd96bacf1aae6f29072b7af5df954907f302988fd91e6396b324c8b8b1fbee422b5c5fa01a78862b6012ae26693c08456740549c5d77d24599ef886cdb26b22cd0c86bf09b6b9128fe786f86ebbb4718f96de30ee608f80f2f3f2b3128235f34f282a87274f6461543cc868995df08a49d55895732e55546385f86f5e4d181ab4a8908a4f4558ab69cc136b9e98d2c8cee3d15ec7c7df13aa6d4806c435bc597b51fbdde8808e5defda493ee0b7e8ed5f55181b9d0187a872023b0b205f0686b38a20b0408da7df4390bb8ff3bc4f86db57414de6df8a286eacef5500329b515e3436e0a9939f956c0a81a106d570d4e698af6cd82ecdeab738d3890099a510eb34f3ea957f0c2cc41c588df70d237654c9604f169d2a3602de25e2e3648a0e92352c234367aeb4343fe23356fde6d433c7ca8aaa4dc843fd1ed730de867e03e6f902034b9a1b7244ec1deebc73be32c5cf902c1e76071832812f49d159f8d3de29c4ae8a07042956a2a7dc08d498041f2128dd5e79d9d7de5a1f777f4f25e6dd784345b84e502507235b8f486528be1423421a8fcf6b4f14e6fddd7a26a4300d2d78ce74bc21acbcd047e289478bbe14b39725ce1835c9a68f2ad8e44ec0b2fdf36921bb3e4af5e4c7398eb9b9b04818ebe8eb4d366af15cf16c6d51ab522eff004794bd815cd84f3d94a44203f1f00d95b22df8a9e1d80b2c4eff82a888fe35f7a9ed2db0c4b14a20d27a96743bee71850765f3b8bba92a575b758d2c355f1e78e8cf4674da2acfc5f5a3f90c1fe59215c4888e362b62756830d47397e266ff3f2da7b9ffff772455572e8d010f035a98325d43867dc71f26c013cda16439707428ecd568e7623f4d678f648819fbb222c76e66e78562a977e1ce58c6995a579b4a27b3d68a37127ad9dccdebf0a267caf675171696e4a58369d57b30cd9b0b9a47855e0fc4cf9873fd9064f0f4dc8612eefe4734db97e1df8cf848c5b35d0a7355166821a6f98bb746ef66e44202e11073d86ff59333f87a5d1b0ca1dfb50f7911763f5381e91015f14885ff8949262a029b2e2d9afd097244344483c0c7126b920ea1fdace13e59d7c142acee913a10e912abd42478b54cdb2e32be51a6fb52a78bb729772af6ed169aeee454981b29f63bb3f126f998e00238f76559b5b4cfc1c6de66450ce0a2e40d03ed9017e362571114ce6c6221a892c0f0d9f37b3b88714c6162ae96e89fdf02c67d9fa85bad6138cb5e85f3f2495b33a280f289f7656c185c3332469121ad271d92b7b380f2a90c392422953ce47aca7c59a1aadabdc1ba52259446c8dfc2f0ff9e3230c7406802ae9909cdfa989d4005a5efdc4ebf89c0aebbc6400a140a905809c7bac0e271cc84ceadab906876860a9be1c4f3006a54d5b800c2f950265a7606f778efb355421f46743f4e3741a92b6fd1815dbeeba51b821415a17fc9e4cbf18edf1cccc27a84b53cf3863b44a70a886d98b5e6ac07570a4e9ed56242acfed7fd4756f23005839b290d2fca5831eebddb0707b3fddcb82a9d99fc6d3e7ab62d1033a23028d2a33d3c2a25366d20636c33e4791470dc594351877d8d970e58b9e654a3e5e9898e594c3b2fed168350f9d6f17321185792e2527e0e02854be11f4842d9404fef6a5f1b4104aba41599cd1972d2ca1e60b2294519aa28999d79c48b0dcb8f6f40b101c2f404a509c031c23353d8c94a0abb7d0e808090a5255686d7e9fa5abadd34c707c7d8e9bbff307273855dee3f21a20216c76e2e6fd1e414599dee8fc0d46a0b7f6000000000000000814212930383f44", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 5, + "comment": "signature that takes 4 iteration(s)", + "msg": "0600000000000000000000000000000000000000000000000000000000000000", + "sig": "719eaa634ced83925e13a432452a91c2788847a840bb6bec03d60c0d1cb98a18bc3ff900491b5d623ad97e607918b23c99c1d7a8084afec2d823f6ed429ed4e8fa3c571b9f73bf73c33f755067013b66a78a977ee2df8a6100b11bf3a4b58a7bc45e3a89937ea9ff43177d71a62514883dc9b57e001907b6bab391a77f1d86884e33c55192b93667fb56dfac246260894d73d0162741f61dc16062bd5ae014b4d38e9a7daaee0968646b79000cfbae02c4505f80a97e1531dfe091104fc5f0e08c0c882e452b046b9a8c002a02fe12aebb76d890c611d988acf4e3d97fb778879ebfe42d384df2e24b27b25ecb13582a9a59824daf984a30a97171f9e0e7a5ea69d97e5ddcffdbdac4164ab0cfb3bd3d14c1db94101039bb8025916ed5ac93f8cb5b2368f649cad1eaa6ec20c8a71be7ff3cd32ee71ef00e28fe2d28360a6b7d42807bab1b62c6875fe314ccd3c9a63d2275b8b3e7269fd2a0f1d7c1d26891bcf1c10301a8316b55151f7cf9e86ef039c4a2777601d482d76ec4d465c54681dbe77c212ae97346d3a5e20dc4a49580d551b0615b707c165092af187811360146861d50cea06f53c159150e974c97801d9de21c192755e7f8ea7bd2e9799d1987e05766ffb1e3ed3d37dff7248bcff86622019aa1e00c7026bf887856878a2305974d15be4b24bde3a993ad1f27da71bf8d9b3ce6dbfefc68f3c4ba0289345a25daf9a07e76d0d6a2f1e6b3f8a11254ef08657e34ded8facdf7fd9184fa5cca4e71a82340d0d9c5ae5f7263a4e99f2c62fa268d6db037c21d36633817d0a93d52928907380eee505b79acbe9144c6dbe50531a4c917d0a92d2672511fa89e1b5f7462dd1029a5221667b32d43dc2a2f8061be978b705fc6a59db44b4ea270f3befbc6690c71bf5683311df39d66b051ad979cfbb2e1f9a4a55e8e431659c93da051273b90ed24ed5edaff9f0ecd6dc37a9f55bdb7da3867ecd4303efef8df5286fede800abbd84bfcee540dd462cb453e39a81f02968ca333a9cb62ef607027814b4181be8cfb781fb83ad5626d49ef146622b990faa9ef5c02f4664e288786e2b6c8cfd4ef090ad56ec0afb3bddb83208a0eaff970a9cce72636869771fe5ebc4b9bc3408cef1014ddf6846468ae742d0e398e6ef1bc3710002811cc41095f083a450637229d52a400adba59428531ec60af71d35866c8f9a684a7bafc162afb662dcac87644e9ea3a52afb5d90fec081a67e171077d403be135660337df633b2e1b6ddbf33dfde228fbddfb160302b7620bc3329a36a947292c4c5c8f1d7fbd6f0ce9a7f865958b7abf99ff38d18f213adde9f4c2210c5b6e5f1d70db1876343ad60b84840b21c09f7bd2c30508bb79a58542b165e5b68bc1e12198418b3b5aac7e407b68a4a8678dcf9bd95030d7b1063f4bd339969739c2f98c29fac5f89c7c8ddc79ddc175d17b9e916a1ba8af4b18630d9462b69d0d3bc9a30e76fe5dd1b21af78589a89226ba342769023d2efeb5c514f813520497b1c8f0b53f05b70c3292ba808cd85d84077bb35c0f9981b65be6035943e760ef9fe137481a2dba07bff700acb3083148bdcb01021c34465c2f060e1fbe987c103a122936c3205e7718dd4b9b122c6df2f336b75561054f9cef414bafa707ba0cde1454f3538bd078ad1d423890d003637eb10c14c1ae9e2d86ac9ca1516efb22344aef2d3fe98ea30cc120652e15e85117ea9cc313b98770918fc33f304fa7eea039ac7dc378d12f7e7a8cce0e84ef8c064e0eb2eacc03603491c59ba642b37e0afe024522dc1876563a467f5d850f69f2b0307f2a2e46f157267f4bd647f24fe56171e92b4950f1cac96d32705dbc598cf27ec56bea526f161aa4647e25735ca60d949f0ed90165372f486b1757250a090f7a52908d7cfe17bfe18aa4df1b409d282e9541a0e791a496a61b13b31bf9d234de9fa64a64fa7e28d85351c2f1cf41eab871f93e7d08a69739e8fe6f4b810a12be4af6e136909ccbfc0743783ce3bccedf7545ff421dbf9b49098b6b0136458c51bb013493a7e6536bb1bfaf7e497b21fe6be548500cae4ea16bc8c616abef4618cbf06849d8a89b310319374418bcc5120980d2bc479028062b90fa78eb0d5b5ba70df0253a68ee91740cae77914cbede7c61b7ff6d9e3c03aa60da6879a4e8f9d60173be4546ce69deebd743204400429e8afc4e296b5e131a35d485f02476985ca53d1c4dd48684cb9bfd40711e5492c09d9c6acfbdd8f571c75812902f61aaad6b8d70a1538433485f91042d2c79e09fb57a6fc7fe142b37645ad241b7abfaedbd6a0abe1016a7e55093988cced117b843ec2ef4894d38bc52c8e3cd7c28c5837c05c83c5b63bf831ac6bc56fe8c56b8bfd956b3b3704f0e1291f37353898d89faebd16c6a9c0e86060486d2e9f1e6338cefe9d5f9c1c679aed017cd036d248f5ced09e37c87a5466382aef6bcf3bbb4c740e715cb9d222f99a34745b47e0cffa175d1a62ccc9df449fa99a0681108f83e60efc04d7baaa9673dcc036d763d6199c5919dc48427f84bd93e08c236424776342e7639f1da211af2526fd81b6e5ab7db6e4ee4bfcc40be8c004fe0918d0ae7843231bba5661fffc017a209f944e3b9590887a8ff14adefae92de3982aaab7fd996b8f353445691691d877d2e0b8adb1afa30a8ae804f777785aea8637eb62821d9b3936c3440cb99975c48cc42eaf7322c3ee15e3f316b41c09d5df78dd02d847b033d59fd16646952b72d441711be015c0d58f16431503aeb066e751ff6224e411f414feca4de6e3c3e0dfe95a17f69e709798175abb54a663e35d8da7dedd1008dbc229f8d8bf99d7cc44bfb4ba026194ce3b656f6efbe29f2554b5e00f1113b4516401d5c9af4613792bda432f8c2b792f0c6ce1ad1d66e168a403f6bd186e908f41b627d0dc9df65cfac619d7fa5388a60edc4ccd124ba266cd526ab8a1ab560c229404c5f8360bd77c22ff5f8bdd93260d3c85343b032e6ddc387996f454271f68ef87e447cf8d4a904d9ec8042a289b80a1c20c4c7ce7b1bece1215060d719af1afd7b98fc1511b403306318b3081c0471b7fc1d5aacb6bb54d3f54b217daeeef2a1d4bb190ba29df72c60d72b1a769dd64bbeee22cdbed5a5fc35776ef32552bb052f1b3cea366ee1578d2f7be90b602665d091edb2a932bc1153e849fe08e9c42a03c08e46b460671ceb63c0ef9a9b4904dee1ef6f8d006f2bf1056e4208f46455fe39b97addf8e4a667163241246f513d5bfa8ce9136bde6a401a2e2b4c60f5ab69f5ddf38be3f40bc2ca77027ab9d106e45a21d3f848e709b29ff3fda9cfab11370280a0129634c8906c91d073a804542258a9b6305c5936eb03c0a78485bcf2987a2f5eb432228363c9b4702ad70f86de5191fc0598279a5b361852ddfbca1a496c4bbc161da6a22f6068e6ead796878362153c5ebadc4876b16757f6f16f68ebf98c658659c627fc4ded8404523f52c29db0083bdc2608293c2d9b1f726af926204ec78845b650077244c3623d307de9b9f499692742b1a2939006c97ae0f70dcc81940b737e8da625e062cd002fd25e807399d627247ecb5c73080faa2f75a7d14e255656740b61041795fc793d76caadb6044aa4ecea9b623657c34a74582ee43f10888ebc94b2cb6c4ce7c357645ee8b85fc468807dc4996fb7539ffd33576066b2df6c1c9ea41723ca81cc91e291ebe8e0ddaaf3ec022ea943939e7239d58008b7d9db0b18939488f5879af0ed6412960a3bacf11687e96031b5cebae4c9993bf91c0213e55f03969a3cd570d7a95c08d8dbf64fadf4c8b2e3c165d8abf5c08b3d0a2b20e0ccbc47c0e6ee1c2d67ac50f6468729b47ed9178e87f2e28d266e1af29bedb958452df77b939c17dcd3cca73614d28898a1f62e389a1dfefd900a7207c27b8f6fc10d7b99175289e2fcb995a88469ee58ab849cbe2c21e34d28ef7cb73502259a858de9bab6fbef7ccfe56ef960544e0749d4b83e77a6ac7f6a78ee96738becff2f8237cd2549c0c1e6edcd13f77f1e221743f5e37ae666b5bea150868162d0969e7359fdf2ecccb3b80940420ad76f4c6802bad4816ef38eb22d05f780adf61faa1825d3d1b8acc9c29a4fedbce310cc494657263d1dfcded2f666afefc55016cbc5945c7e3bbcabb1e6c1be45b0a1bb129e73f0e3f098b15b5f0ac2b83624b1d91e25d51acde753bf8be38228a2511c930878b31724b2ab44dbb695b54d4ec6f9d04a2d160b8653afa542ebb060bdd1413fd157e54a1cc7ac76b4fd0a8ed43971389cd221d41c6c255aa83dc9c4a830535b51d68db24ad58362349fb70be98255a158717d4b4d98229c4b8173396e19d371f9f8b314b7804b3458d5a0c341628217fe431fd1c70e2e04c0cd67a110c4b24393e12f531775f885bb34bc7a290321aa81981f3d4b747ba4c6ddadce0ed90e44a155e9a666d39c91a61772e1c4b5282038771adaa6bfe5e8b1df319a1e6951adae2e8d4ca8963c3f06a1fee6f667f006caf543e17f02c61bff0c9db94b3739b87044d9c511670d8133322754c0deda50697327812bacaec7ac14f6aecc130668442622fd3b65812a2dafb61fb034347670d1ff08e1c31e5d7a7da91f53783bdf8aaec24f0081e0ca4d8e70afe3d2a246b8025b8f2696f2836497a430de2cbfce3f5a433b0501cb10c6ce070a0d5d109e18032913091399b72ac63766fe7b2536c63cba3fc3c05d1a516b8275595871bf1cebed5719e8fb18b94f9c672885885a850db927e8bcc4f51bcfcd9d8d86d2bc86f9bc4bca4fedcde1b15afc32098d3c233800d80fa2f9c2f6c090499b4fcc51c0b66ad43634e91a1898fcd0b30d5df1cbdb344073730d62e8db1d1b4c74dacca8aedd7cc5aeedeb582ffe95b90ad9c3180db1aa0d8bd2d74a835af0f0895dd664a1ad2ea1baf3d2ac7da05710f2f332daec8d4143be05e3aab81219540a09322e877e4e329f9a0e3db924ca1d526dd5e49e3b42a4d393aa4f56c4cfb597d9ff1833602f7281c9e5ca210823619078025948a3ac43f25d68593b9d11e59a8566a64404b3b0a9b1d86cd3223cfa8cecb13f73066e87fabc2068bedbe6dc70884c8e94406cd8a58f77513700a38414c0b81f121fc33fb85a9b6363ad5076613363dd40e1a5cf97830d11c663b9b821bbdb6b15ffc00cc55b93ba430611311f048d01c2a5358ef026c0f800cfed3097c20fcfe05ab81e754fa5850a071d7c91a0271e5ef915e0d308f87349a9737174b1b27d388a0102f41385880c191659a61adf6c6c21f029ce4b9f3a66e6d22f582cbf1a6e21ad05013af502b80ddba97af8be06be8f1214bc721fd547f44d80c32d11f6ee2e1e73277848273306cc389571c92ada653503aa84cfcca1e5ecc53b71dd85ec659cbc1ee35c74ff34ec195ba9187b9a9c6782dbf8b54bfc1c01c3f70434da868f9ec909b928ee4e87e431844c2fb642d44b556801fab692a08bfca49fea17ae90446ffb3fc791b0ad9903334a64321e366ca7080d242c7f939061a259d59862e0b0c341f6e28ef66b9f5b7e8a1946efa9591449a758d20b100ee3927488a7dea573b87c31a1743359e95f79f302231af5e4e49c5203e92617ba43dfe7378ac32adc61584a30c6cdafeaed1cab6a5050b1af87d32f09ed0126bb63b080f8f67a3abf4cb02886c9b69d307770a82035d243b92c667004988dd5d0f4327c9eda184b18a888e2d628f53b9c518eb59bb282422fc82b6cdb102cb54e50f22c8bcdf34153314f5420ae3ce3d82cf8d53e868e37462a73755605bf267f913ec44f3b501a191b2d3268328c4c227c9a9ef46238caf46eca4b5da2fad427f07ec2b31dd596c0fb2a20aa92da3bf4e6e061b6e98ad8d7e4651b8665851165d9d6eadaa0f81d04f9d1fbea76c09cf7ced9c3facac89ca6a02ef512189d402652edbc7891911158d5abdb1f27f4156d5a94a3acc39787abf6d32c44d30f2944e78be21e7988cc35531b1d57156f18cc829f08d087942fb7b515a354e5b174b946c49de170e7436fe67fc5a0ced160215f540242dc66d362966f0bb6548ed7a2efa282e1ba94593dae75bf5898fb8ef6873bd5425d5c56523eefbf1ece78697e7a0ae128028a0ad663e884b36ad6e0a7164e100a13aeef57ccdac31f9b04072257c805aa5e3fca96ea457526c3b18711e73caeb63035eaa965c000fc99be5e461066736d92e9f5d80219ea4ea20d462b6ec621d20ab3ca2c5a6585cd90d997681eaa678e3bf73b99ff9e1270059e6775c9e75e2a18e42f0c35ca43ad63d3b4dff07b76071f14eddc5a10ab210ca5598a3aa99b6357bb29a6bedd3774a110a7c12461a03af93bf9c342781e7c328a341ff5662e05219a9c4b131c284514e65e43a4fa58bcd96c1f1c257acae734557c8889949ad6ed3157e9f00a1532e5021037566b82a3e7f300174b52535c9ebcc7e3fe56666973000e4749a2cbccdd000000000000000000000000000000000000000000050e12161f2a2e36", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 6, + "comment": "signature that takes 5 iteration(s)", + "msg": "2000000000000000000000000000000000000000000000000000000000000000", + "sig": "63fa32be2f0ba4960e24703a2b39c7bfbeab989e4aaadb4cdf4a409c61d0a08d5f33d353f06e5a5357158e78b9e2ddae097943160a15840ead058057a2b7b0a2f404ad646f5bb748ca4e20638ac6d5bcbe74ea0eac0b4caa7f9328f0fb7c00bde370b3d4034991f58be387f604806ab736a66b662b640a503f445e85302b179b7e54cc65d5f666af8b9aa63cfd1cab101870d8c900ce53ab8a300b5d1859239f822bf951c93cdd1323ae7b6a33b861dd6be5222e1ef2dfc1cda540d794dc08d2199b5457f4f3f7a0955217ad416f80cd27fe616363e5aa2b29a8db3256e381d1318172d05912fc55983050e49783cd7c64613a01791987587e621246b114f4ac38663e40cf6493732030439242455a54625f20d90198e552f13bad72612040d02944663b191131eddf41d2440457eec05341544f992ab333f363fe9636efbdf24e20326157ff58c38ed15ff1403e569d4dedf86f47225756d228b504824e554482051257fcdc5a520aadd2c38400d99262727340f46d4d453ba1f4baef116a5e6678cf995f639a4f03f0bd4835dd38e1ec2e00d7fbb28b869594df07286ba4d75a99da4429ea090ca8007eaf65f844fabb6f8b407c62ec176521ed4c2293f8d25879db8521eeba52c48f2ef957b4d538aa547eddbfbfe14d281ca8b0870ed53388229f26718686800582681fe71c1dad65c37ddd052e1f2689a59db909587d7c59f397e3487896c39b0714581ef493506c100c8c9395c3af2e661376ebc90c583a667e9e54b915523ce5f4d6390b01183ce1945fe84ae4911449ebb357ddba21a10931d3529d81927a110f102453755f33ef225d4bb945e4a737fbee86c39cdfc621ad17e33ba3f70b5acb178973052115518d99bb477e8344b23407934bf1762a6e51d9b8cd9db44650c657e8605fd2e0c1679d355721bb86be0060519703f0392d2b4383da19cea2a00d9e13947a021e5d52f4c664a5f46a1c3713e385595d895fe4ae4dc5f046ace89aa49caeb0bd732e32ea7a6eb9b4bee11d3888d2c01fa25272278d26e715e0c0cf4c386c64e92d1f84a929ea98480d370421413636f822e095a77b67f654ed5d1b945ff0c602a4ac5a886043fb44cbac39d6b464c4675ca37c503a57f2600444ede2b8fa075e817b2bac76089f2fd66d485eb56f23538e6321e1128cc5995ca7b344b8852fe2961659335c3b0e2ab9a307ccaf5387ba2c923ce427ca55aa2200bf13672aec57f2d05aee6bd62ab1c3041eda0c02189a7cfded238dc0656779ad438ac7cacfc56cf412808349a7008643cf044da150d4818712001d69ca8c1856a1118e1818b0b49626d8dcf1429b4fd2152781d3237a309b5bf9644cbb9f6a9bae8035cf4984ef9fcb935289ca694fd1629f081e61375930d64f980fdae55a56276778477357f0712729766a553033764c4aa8001385f13413f53e47e50d3fff1a008ba23d8d4d50fe1c3d5b673dc0df2752f5c97a09f90ec20ba68ac2ef84d760d982fa1c68a6116f75424d6c100d380481c5d1946b757899e93d4a2931a1db8ed2a5a69783c0ac8591145b920859bade5ac30f65754e04004e4f9b05c299aca36c80dee470685dca4d342645a03ad9e6b3437108ced2d37aa5b79bb4b71141cb4b3351a384594595fe14afdfae616707df92f9397876b89389d67ad44f0c54308b314974db7b69831392fd4542decda7949d4030dbca2946371ce2590c7da772a1b8831dfd579b996db6535a204e758349ea871c664e669e15926aa12116ef020de796e98238eb01dc901802f847049ea3c31eb76d6c0b884c97b33a677d333ef671d167babbc2406dd7fc31841dcc7523e43256287b7f27e756aa91254819dadadc9ca88d04dc5d8a05440d4df16a446dc6a14a0e6a0b74723a2d75f5e34b0ca52e7abedc7e5a88fb54fe87a6e240a1fe27bb7c533603224173acef3aea1eaed602592168c9f543ea5fa8a5b315059d1bc9e2fdd6131cb1d4394c6f61c4875acd58b2bd0e829153abf88c1b58e35f2051cbe0ddf5a872163b884fb6cb72777df19aadec701ce9d7b203b27937ca5bb2a795ec75742d4eae1b7b6140d6637962c2f5e51ef117c86ecec64d7b0fed5faa20f0b99cc074b6df78ab511ebd3ebc03b56a6a07de9560e91dc3f90cf14197183fbe81a5c379d03cb453b9a09dff6caffd50067b05a92ef155f19f6a70ef6311332522becd923e80fc4ac4fda1864e437992aaa59e577b567b4cc9fb5d71f965513588b6f79845b24bdacabd623264601276bc434334e64b9a3682b468cac32a8144937769bd11374d06fdd8f3f0abb6fa3a25c7bb6f07a003d1b8a3195c2c041c92de1336d41818ee55d9923f015de60187996ffad9143ba38213576a2ef72b87906dbb21abd5b675b5b6bf284e7bc68b7ee39d1223e358b85b5193cbcef2fc90a880acb3444d6b7cbc1c9e12758f92d5970b1282566949383b29582b0f2cc703f1d3b21820bc6901ffb113f2022a7559d4f061a047397af1f41758d8de72614ae12a0cc75ace48899e030c27f862db0e5c10bf1e1f5c9b37819618cabce66471fb63b021ecb4f5e51a0f884c26f67991604d9c55a41ba8ef5abe1826a27958b7e647355b78f38063156372bf3096c5a7792007a3c926ec499d32e5a9c389d0a460841732788567175741deb4c4958baf09820df77f03e385b5ecfdd0d31794f475b1a0b37b159b81b19e009979644eff99e5b44295cbe9d99eabc7b1244313c4d797cd8d855d1433d460a6deeceeb23f5cca77907a3282dc2f4e558ca476ffe7f3f2b37fc0f7ef2bc4227479c7419c352808de67bac05e58d507fd3fdb4d93deb19e38218fbc0dc9069e0d38a3b2cd4ef182a74280d3b0b079758482f869a27f37885606f6054b972383c26c97f2e747411c0cc37f25356ea69ca21f0b8d13092d1a3b06955ac692b2afaa5fb140ec55d90c67881cfa0ca3759762c4705960867f9f990e5bb56a388aaed5c05e7a4b0488d91c4882e19b4acbaa6d900f59e0bd85f33fc4fe56eaa79eff92581b105af403dccd97899cbfada53e607db64110f580f28ad056e5fd83323e5dc564c150e034cffcfcd70397a25bf83ad73aba8230291189e0f7a71c2410687678c2f5d7ade25d4bc49f712485d84501c60c9b50f36cfa6b033c07cda9a7a6ff226ed51051d869c335ac357fa48c3a6b32573a1acce7bf5870e426f238e922137c108c819c0635bd6d970022275a9f498fe1ec2967a444db13e165623b80cb04264297186cf8b29ec95ffb7754f7b527ddb59eac004b3da66b07cfd16af5e1d60985332d6771d0d527805d2dd2ef5a9c5d1ef62d6b5018601a4e1aadf0a8332b6d98be2ec75226858906df7844f9f9591d4e03ad5d2acb9b51b24ddc26a37c7d0c2cd9b8a3f5b2b1e6b9ec0bac1f67f2fe962c8ee5fec11a9b0b822149c569a64b48eef392f58ba825eb49d2a9dbfe05ae96da9a6b6e6e9443e8840565d3983a345d06255b83b8d5ed07b1f787f1e5b352d200ab4388362277cbf21d5f4b3851b4452672443bb05fa77223a59a064e7bb8297caa1412bc180ce095f31fbcc0a6b2bd718c67eaef7de7d616f042ae0c10909f05b3b660862019457bd333a99de27a255370efb5139108a29ea1c340351be9c08ad7f81f003bf078ed37738bf5900e36c3bcbeed9a9993eab9c9ecb7ba801a5781fa93b80f364a8df0a9a3d00e4b2758ea9ccc2771d02e2e5737047f2094c5c9fcd7146f1474d3f83a04a231f6a6f50e0583822a8b7f0a048ce8adeea84bd7901dd09b310f839590bffe2b99a2b2f7295e389b69fe36d97e30c24ecf293f1c3d56d6d445d5ba2ba57ef7b7643bb2248352d64829cc915a7fe3f588de9425b3a64e05c113c84f4d7ca4e4f71ce62297b590d70682ae042b8adc9bbf79f0b67acb0f98547f5192773d97b711eaedb75022bf69cda7480e9ab2b783409230c57f49fc02e68de6f0ab0d520be792adbfaddf05fa7429ed5f53f4269c589a2e3d154f32a4d25e8163969e734aa9c37530197dc8de8eedfbff858f24ff7a5059216c0e25bac252f46a19884eb87a37f8221d0dca6b0b1d746caef7c50c79749b5351a8484de38ff5a8bef669bbfd405ba46da89c00ecd0d3a25b663cbd64ebc35fe776161291ff4052bf71d08d4b7936227f8f6c2174d4ae50b4c2cf0840a3007bc2cc6be804018bf4b6b2e6b653f0d30fd4152aa2981a2d23e79a259106ff94d2b43e600270c86cedfa493fcee8ee953867e1e6aa0f0daf88b71a6548be0c34775a4d837029d3a17d95c6b7867c6f86606daa7c8cd27ecba56100c0b7e87600954c7274cb8668fd42438eafb96914bc76d4b9bc413ab5c81c48a7180b41d2f6f7d54e59f31c4f1958067c2a44bbb69f4c60da156e31906a7a54d50fd5256f6cfea00e6812726f588e4dfd5d1789543a716a796a3f465ea30ce0c64d2c3b7db21cd92ff4ea4159a1f9417d6efa3dee3f385844d3868ff3ac5ed84234d157518cbf8058803a06b9f3c71340324e5c0ff3ff5d40dce837c335b96edef9353e2052bd6254de1ceb86d9ced82bba6ff60397d0a1f763caea593c92c2bf481238e57d0a80542dac477b06ece3aae213cb8bd630b3e80cee1d5c1c029fc73071a023253ef0cc7d92cc32f1671f09b4e09902932171f0dd2c7d6c759960902ffb3ecddd878f7a3c3cd6f46b89296a059a0142088a1fb59973b68d52c26a18f2dcac9d682a20f4af42f2971ed3f85d5c838049b3694fe49f58ac16f05912fd83c7d3577d673f22caba5d7a02e7b47db1b0750b96620268936139153162184c5662de4cfc54e6cd363c0cafc619c65398d19133ffeff806deb5a9ff52b4e40f44fd3baac36dfdca43282dd13e46c66a69b8773b465a954423980e34f35b53e6da4a1925aeb030f7e3e122118fb259381ca7e20d74290454f423d01077bdfbd61388f40f7f8c49e76516927c345a5215a35604c289f305aabefaa6b8636cbdbcacc868f7bb1a285bfb37c44b1d3b5be99a12115541c04c0f1694ba0c1dc72fe0e7b00524183067dafc287a389bc0c77ec4ea84ecd5634117bdd5fe1f3e3160a3a82a805c8459d96cb03fdb039a62c176d92af632179c29198cec57a5cba03e8129768e46ae6bc33e70e38f1b81e0179b04ccbc4c76c8591694ba4f89ea0d616d6e3e57330d289f2a215ef9e5ea42dfb5f215f6bd4b9bf7e32f83d65c86e123d18d3042cd023b7e351250e08e7b1f420543020e351f67e0e61c28d5494e3cd870866c4ee5aa8656faddd60b54e11f079e08b701b3e6cc769fb54a5bb612d7355ed8f655da33242f52f0052f34460cbd837ea9323839ca867a8b0763e1a37bb5b292fc639c640ce56b2b6a6384c219963e5fd343f2c988a049d2f9baad6ad6327886389a64e65b60556ad3eab3705ab8d9247ea3e6ae1d47ce840753ba2d86044b94a14a68afefa25a44357b11b33e2747ce00334c6be5bf07c620298219c9bd6eee24b9d477035c674c0bb5894c75fa292cb711b453045b38d91ed5baa3dd50c694f86e9f2d90a15320c74448cca6bf5f13ccf97d6c32ab5f0e9b12d306a5eabe1dea0d3a58147946f6032c60edf2c0b0105c7dbb7866f59fa7cdca6122b64d3796428df30ce216dfc09e79a35d9b83e96c452022bca04170e04a6c0e55f8eb48d53096a1c68bbb2efac964f20c6da41d4d9a45b67a7a2a4f55698ecb7873f5a444b07c7949996b122926522e89e756453214eb55a7769d5fcfc73f6591f5271c0ddb5c873f67d8b78bc7f4072611798d88800234119ae6c919556daf40b9c237ed367eb8e4000c494d2748231a244820f751534cf84c6cb69a37aa97dd3c3e7a950af57c07797059b523ab103bbf4d540dbf81a7d268a670b194280a637522cf641a1ba30c3e46c180d7511bc4ee77138d04c1eedca7b0961480535bd3b9fd1513903d32566f586c00430af7627b6649b4051672f9a1329ec33e0e61490354443fa3c263c2cad5c3b067f4d9152c751ab96770d10a855528dd48ae7bb2aebcd71b8211b78445bec9969e4a2a8fd3775d49b31a723555a6d8ab37a2858406a25312fc90b3f9ae1ea280f81aa5c691c9a87a83a48064155958475ea0413fcfb6ae9ccb91e5a8857985dc339d4ecb559c0d233e67390bc5af757936ef686c309233eda20e9c23a072c9e20fded912a765d4fb871cd5d117e7bdae9122e974dc64a3a8e7e4d324807a5c178e2597782843dad5b92c9c09060f5652dbb937cfae1769e1ac151aad56ba230dd7e9b11800fbb6f6a93a9da16f4d70b495da129c02f46d6a2f1a8e158ac1b5ffd0e84ab186aaf6e3c09ed86a0a0f4b372ccc60b9dd9100daab376ce77c798e1e7f67b3c8d82b71013da6b0f6fbdb8900bfdaa1efb66411c91ae73f76fade6aebf5f5527ebdb8437a7b97113031379da1a2acc1da444a5b90afb4d9e00e4d888aa3bcc0c10d1aacc4f70b83ed2c34373d7f91949b9fadd50000000000000000000000000000000000000000000000000000040e161e1f232631", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 7, + "comment": "signature that takes 6 iteration(s)", + "msg": "1200000000000000000000000000000000000000000000000000000000000000", + "sig": "0bf7fd8be5be503a6856ba6ca605825fd3138df25b40bb7eee990b639f8cf5eca1216ead82bcc6187e30919729be5282e9e6f3e322c7541026bf44e650e49fe60e7e9906237dcd3e935accd536d7e972d1a4e6c87ed00c11023fbc358ab4fac4b603f9d7a6b590932d5fb53579b929ee27a80b11009848e0126679503f949653afa7b72d74951a06dc6895c4cb445a6a85cd0430680b3d6ba7a73ea96aabee4667ce03e046864ed74037a72a17875bcaa7ff0aa1d1e3a197208ae8279899d285c4a3d8485bae2ea272b74e83faf19ab0746c0537f3ded211e92b2aa32c2fc6eed6e43a9767fde49326081b937cb78ce7d36bfc0dde9e4e913e6beebce8dfe92c4ad535aa1e7e1ecfdc41968b3532cefabf505f9a5d4e899331c4a5675a0a4828e8337b09633201d5e799542ac49a4c84b47cad6310bccb204c1ed464232fd4bbb38fa507b94a130e7bfe0661c92cd6a7926f9d49787103f7104b9965e2056fe1bdd6c7592afe2fa4901e583a8b64c953dfe3fd2d05b5ae68ab47b0df8c917d45495880850dd7e498ab969af0694a76f16e668689615677038eb7fc2aaabbf05e7cab5a61946cea22567b57582cab64cfa1325c11a9e0cfbdc01f513c05a6b4c75778fc747d05c6a2b9bb09615bc091457e4041a7dd342f6146ffe4dabaf611b2c61388e3b9369047e05a898dd3ddf8e486a72e8722b83a8cc9e53cbb94340a7dc5b6b3a0f5414a5a599e6449dc6409a06f02e80607b7f07c35423eceb992d13762722ad58d600e02e73b70da2f37776cbb073cf6cebe9799762b5b6bc2e6724afe83f34911db18f18006fb10c20d65f16de6aef152e7ab607c526823576f58b8727d095213f1b2b2e791bed65f5df6c5c5b6cbc8929689880443a920ba174c9e4e4398a682ce46c79f1ba891e241d7513d703d6836745eb4fe91731bb28d9a82dd7d85284e766784a16dd515f890d13c9773eb44e0ac5f1de8c6c6711f8fb1c834f20417844b17ff164c8f60ebbfc0012645daadc41c6a646d0742eb48572553e7c2466fdf47387c823023d10b2cd716ad50ac566d5710fd5c61db295b206c7e4f68f46a1d0e2bf5472cc42754b7d4a394562edd9c17474b557e9d5e5bfa718ce34a7bb51209e98c091c0628311ca3649f03255c06211231e90bb88e0fedada0e953e9aee2543a1991d19fa26a92da6d551b132e1065303e09ee92dd94c22b307a302b1c29e2a5e12023db7cd30bb7c5998468746c9b0ba2abdd726ef7f3a341ec01b5bb8f23719f33756993108e4386f18a87c7ca52725ddedf6e6463a11730ccb5f662ae282227ecfd31f7dd818ddde58250eef093ced0d7871d67027e1911a0c7f8707baea1bf0d992c024b66717a6442d4a59db1e203c03e21bf23d9d79ccc1c26df1be54cbac39b348bcca1729f328146468448683370f2b1e9889043ff35085a9655ebb6d90b3fea11e793f0606c6e2f382129be539bfae610e9cdd3b5eb7d1ad3e0f6f264d5767c943ca2b3df2d8449014a890f673a3fe3121c4fddd9df493becf9303fcd389458d7d557c05e2620eba6ee201ca3a38ecd0cc1a66fff2e68824d58a37054a3bea6ff7be8f33cf4f83890997173970c9584669a95e7a7f844dfef4dede202cf1ad56bc2512a27254618e0934e2d75b3c562d178e44bc254b98e17d37ec4bb965b6787323e2a0a6e689c51317d4cbb55502294c2a4aabf25ab2c394df8ce0ad1d08cd090e410f2cf89b8321656abfbc29821ea9c60cac4427de61ba3d6a2f46287e392f2698a983842124eba376c3fe0ac1d146ce43b2973d7c9d42bcfc487958d6c750aebc10ac4288a878705091c96465a938b3d3592180251f7cbb9f1b8139bddb9da433b5427994a64cf8a14084e18d1590f7297727f4a4c4d3c408680fee50d30d8381a42113800471408eaae93caba708464dbeb3e5974156fdf3ff688fd630e6c568e0cb10ae0348ca2a28d7ea5d599f9296dcd6c3df61423d5ff637c115f0eedfc3e813661fca208e51191c2d3d3c5c19e363a4e25a06597a687aae3dd8332c6bc2354cfc03881ff78d1cdb8ef738e3825e63e5bcd4ae9d193bf7ba6cbe92d9355f6042da1bcedd8038088ec4cdc8606638b21a81762eb2f1ed2907becce2d2eb7ad8290e09cd26e150071c5bec78bececebf88abfdaebc6aab5397a276de259134577920761e90ed1c0333e0cce80ceff3827e5667349160210f25d0a535f9f5d4667de549d14c2332afdbc99bb1e1df7bfe7b818e2e6c71304a2fca7988a16d991a4cf5adb9a9f8e3f9ed9db643b720268b97d12e9ec9de5829ade4f977252b08e53d6eda9f29ffa073f0359f1a6789d6e1afec31bdfebc6f8f34abc7822ac3b46e25ca20906b16f0c76f076ecfea5c6a668c9111420ebe572784b4a99f93cec015617a47aa48f055b4b68a8f11372ed468355bdcb0a45484d143b8c76fe8263c5c0ae226c64c08fdd7776bfca1031bcb314684e5fbe5ea9a053a65dbb58acd15d3e78ef1306334d7b93a47e4f507d46ad967c50f714670ba15fa7e2efc6d70901afb9264eb807b520c94bf3dea3b272f3f89667e944a31dd9b0f631952368d1171d494a83db86bbfa14ac46e95e03a3d5146d91edcb15a375bf8a35bfe6fd800ee5a19c42bd42b880884a7b1c9702f5064b9104e12ebbd0451d1ff6274f55c10559a95ae45ecfd8205bde23ab6d01ad0be8c973fb07ff0080b4ceb70f22edaf7e6dc85a19758d62a070cfd4695ca9266cd73d84db21f10c32f08f7ad3378db87cb64b43f8ec979802ed7402956fd9888f4612ee270abf3195c6942ca15cef6b6f526dff8622088c42afd850ea2eec20837b27e069c2dd284abc9325176385a3d3f873aeb80732b29b81f22c3aab67eb0d2fcb8f1fea267231e9dd231edb0bf6f75371ff969ad8d5d767aef93f9f36e4f81001fadc377c418383d766359626eacdf37269e22734bd46a3256be13ce50d5f02831ef7ec78298c372fc0deb63f1c89c831ff067b16a9e29c3293bb06ffcc9f2acc41b6972e091fe5941ea22b070f9a3d2acb1eac5d7cf2e1a135af4238558eed35f52fa22bbc09b51a3a1130e5e0b1842de9a49987bbec00f8e954a9d013b64701ca68d375f7ea38158e940617beb99d25a38693e57498797948e603a1e221015442deeb50ac7370651dbd9112deb74514bcc7dd34be66f32b100dd867e206b96899d90fc56788a71a5c73f484fe51fb06b438384b135cd85f1ba917ff28cdf2468f81b3a08d9018441b2c0e4c200d14581db4338fcef9c2f11e2ba00f3c1b835d371445c87b2ed2caf57ad46d9a97a338b2292b85486cb1f6850375c8e71274c5d2b6ede23cb2df3cfc62b75eb02c7801163e0d0927b1acab6a3572dd35e797c19e79fc65170ef3f74e688a76fb562e774fa48f12491148c8528f5bd97117e7d469261d40fecf7a44d88aa40f8b9129c84e9974b26fe7f804d4537ddac5db63229daa2e32563aec060cfa72c53d553ee7b5da53cfb079acb249f7033e4c16b332c2fbae387a9f08c98a39f463df59a35b05e7ce4266dcc06e84f94c678f4e4a7f29a22f7d069157a2bdee43de405897d190930f2ec306076514f74f0833235e997597e3982f55875f2b4a242d0a11286ffed6e349f5133c596f7e530aa17b5348d60ad1296bd91cbd9d3da6bf1a53a8c05013b7ffb693e9af557a981ff4851e4c25d5f455f89973b9a73c5586f37f21f996db33f193189826da3a3435764da70956149a7d94aea5bbbab412b298cf9ad4929fe8026b697967a264c09648d2033f411d3a84edbb5ec45fe766c5bd14736afe1fb62467ab276084c73eb3c9471fc3aa2d20e892fb74f1c49d301a79e83c8e4b3eb6f10e5ea39599943e73c9769a37ee1493a04a0e3c81a63e665a3b2351ed532793d64f0e024a6a4d8970ac458be6232b86adbbf21ac04410b60551b3f38e3c5651e7073dadeb8cb55cf93eb823647c4b9d53606911465a841e9dda2061c6b276da7ab7d8ff50b978849bdfce8a2cddf45e7ef0516aeb54be432bdd0765fdb7bf675ed5c7fae4625eb479c4b1a53c201adbf8b5968c663d9e11d32f5011a0535886981b1d03650fc7de6f5b69432be1f7fd39b170d8a56db67279ca7cf9e840555bdb74dbfb26273aec2e8b71e33364192eb90babeaec3d8354e5630e11527a2285281d016ee4e0a215dc8691cd86f1f77d0307704432b66409d2e1a26f911d91feda65a3976a55cc2fdf7745bf6f92d5bb67d79437d5a6bf2d19403d716a75ad5f6f697b46276acc9113a520757481713e2d76eb2e1f173f3c92eb57eeb771b6d3d2af39a8de2bf97f077b510bd6c5d145c562a34c470e19564e1402026bc17d72d86c992630adf9151129a4e5b1fd8440219e5037aadf5d8c91b8904dfa9d5a6e31e807b1c0805b4dfb494fd286ccc59cee57d7e3ab676cd55a15cef1eb04906b19be4ec9aaa97f0d608ef6a35d6b5f0277faa403ea3c1e44961cfd355122a2e04c45f5002029089eee60c1051a3ec672bbc0f2a36eba6b584211d425df6d2a9f7288c74eebed59c3b3ab1b4da2b965314ec13a9c1df1ed751ab8899ebecc1c3fd38de0bfe751cae1f2e3a44fd45bb00dd5c66bd630446aedbfc56aa84974c32b1ea1616be17f788031131e21fcd04b8b6fd3b4f67cee6ac24de23aebf9533e50365d8676ab8fa44efb2b29466ea404ec6a0864341321f44bf745d4398abfb57a528266189831e0811c1e8d9b11528044dfa34bf2fda457c80a3bd5ef3cc6cb15d177688b17fc5d8f77aff221d8c37a3a0d0865c79ee56362ab9762c9ee81646c1a4164dff00a781676547f63682f727229804aa078a36dea790507ed7d893e44f123a99109843436272626a61ede72d406f3d1f90259b87ad86fc4d599c00c80480f08b7d904b1567ad18112bc4468577a92567445fba115a67353c602d81c94ff5b4b269fe452ec38abbd2b53569f42f61e497d348264c9cb9da8ce89be2218c0c3a5a224fc473ed1a84216a9bd3f70ca69eb35c6bbff64c7daf3a875f42e96a77b00aef6b4b0cf012ab19e01826bd12bb3d057fcb1e3b7fbe9262e9c8b74f97b859d786d40c88d81c0d027cb8cc6a98b8be1e34ead4382bbbe59ba3e234a9dc4ec506437cd106f7ce80023f290ce9855ea2e3c34d88abe037cb3978d6957240b66dbad174a6cb7b5370ceeddd7de384bd32759442c7d052a13aec785beb637445c93937e494ec22a3cac35a462e98572e9096ca2f1f3720613f4957a7747e609a4352867dc7d6e94e7828fece7f455a70a7d8ccc693707e7df562d42ee397b5eca42cb75a0071169643b2e06334aee30fe2dfadf12d0243d51dc354085db984477065eca92d2083175ca62ece267ff2d8d97a7686467d1956a3b3758e6ef05dbc679240744394a12bc27def17123f50d963b4ae0337bfe37d7968b77e32d44b8115f64a4f625dced35e027ae9731040d33f181acaa5b2c3783eccb3dc46db011640577201b907921c0e18620248d5b48703fe75722b37092cf69320818a5471442db831b454b5cd6a8f2bbe2e3dad5459eba119cdea60c4e2923041f83d9a877cfb39608abc6eb07847819009e9b29ca0485786264212397c59656e8baf02d70bc8a937a7e66bffcd4de81814227709b95e62b18e3ac188062c08bba10755b414dc27b5399ca8e972057a7b6b8f9d5e43982822cd6b47c8501f496c2614fa5bb04410449d9097592870a976e5234ea38fd643f2a76f36eb8c1ca8ed467bb0d02d8a304bcadb8ada55a13a1127e2efee426d107b277216208542d6a83eef8c550f3c67678909a35a0beba3e6d598f4e46b0f8502ca941f01446429b1d114ca78c2c7ba245c4ccf1b03f814fff19204812297eddebb44a518b7bfb118ced12dbb2d3729a4891a79e7fc022880fe076f0a6bd2ddbf8414331e6dca384751c9d28f3b79cb6ba7a6517ed3c28bcf0a673c15b9ba18481271ffe40a7f621d6586e5591a9d7ecd55a77cf996c82e446da13b12f1999dd68dbeddee73006e160ad0f05b650cc5be2931061e3eaba093b0e19f32a0ae53e48873ef5427be4a3b62cb92889fdbebc31d02059edc2758011b034932648157146e61170213d459166f35d898388af51dd3a467ac2e31e9881056c9a664c376ce1995598de3ceeca38488bfecbc6483c4316b5b073b3ba2b2ed4a141ed5f544a9871e5c211ac3f6c239ac42b6add9d54729a89908e9331489e9132f73dc9c5cd613ae6cd9599536e6ce32303f5c7d0d2436ddb54e7a163ef022780f874087b6bbf04801393da024d0dec3fb6fe4d7159de69632cf1a4be51380c4ae0fc17991ded5267805ba1e74e528304a117b385d822bb0f8e0c721ca5a7086d803318748f64eb099e7246e8fbef55d46ae62a4671d1c6365c9abfafbc0c2c6b81a3edef1b508eb9c4d9df4f5285a0bdbef4fc9697c1c3f40f477da067868bc3fd05095f666f75cbd930729bb8c4d0de000000000000000000000000000000000000000000000000070e161b1f242c33", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 8, + "comment": "signature that takes 7 iteration(s)", + "msg": "0800000000000000000000000000000000000000000000000000000000000000", + "sig": "24a329acc10d80fecbf204d66a44f020fc0a0a1bb634ea0d313fd1e54cc68bf0efaadbff5b6c16340358b9bd0e6dbccae7f86204bbf66bd846f179075dc84498a897b86760dbfded7c8a43918567ff78d6c078312c2424e870a01c1e98549ee5fb27e738841283b93c6a3b55b04d927689127700caf279c3f4fc369e649b9885f477915f21c0f612b2a720673bdd2a5853cee18eebb12f3abd6e13b6016b19fa7ad49ecd91eae29ab4d57d8aa759aa6b7fd9501eac16dd3192dd78e61864e5ba0b9c8f566def3901013f29c6904b9a31d5d4a8b18bf181e527aebe6c4a37ed2c3f218873864ea3da24f3a5b158ed78378e2ba2bb7bd8abcacfe08bbab6c4cdf88f3ba52c09685948e9798ead693ab67da48a28bad260b63326133049a43514c58a53330218ebae6369aeff4db728073052d3b907493f6cc0e1ea0c2d1e9880a58522efde4aec6a295561094f467f4ab8dcf69a24fc214bb436cd990130b3225a20843ab4ffb7db44f9e07471b34b4d78de01d242d7355ddfec76300eb59a60c346cd3c3ca0852a011b057474785b4c5558ca87474f0eaea41f14ff99fa22ef5dfec16b39a12a4d2c2a294fd0d628a668bbfa8cf07f2e019c8ef87c3a1c47676e310384b880d7996e18d7beb08fad60c41421da0cbfff6e2a2421b333d41dae60f9305381fbeb05c199fa2b7228f21281f0f652792df63bef3aef851f062a6aba25c81dd87d516f4fc00fc24f6ae3ba325e00edbcb319966d22830ed7732685e57de3879bdb22c99ede1c7e9a49e61d583494e60a13e66a7e2b007c1835402d7df40d0bb9ab48920a64c2208a04a699993ede5a38ef9cd17920505ac42bb56138c048666788cd4c34ea401bd299dc29165b68ce2527a235e031cdc391be8532ad9861e122a5513f3011eef81b1cc488b67880f278cce3f6a65a7654156e8d63412af8863fcfdf383aafd85d23e3ae4b19590e019124b1d1cc5f7f99228322dba0fba35d1c168f90f4cb56818ab453d66684ddb2c55ca6ea4859f0919e20f81549eff2b13e3c5b674058bf93b82ca9baca6de111b9cd431a428ac9628e27042dc9c57527284f6af813701c339c936959297141e50115cb15bc5bf590327e5b50b07e9731b816abace26d4cce822be17c4f6bef6588fc4d365fba242cd4fc5d1fd45644f7d8c7fce913043e6a601e2ee2044c85e178a04e660902c0e805fa7e98ee1edcec2dff021b258e7d73c43318713b58ead1fdb1861313e735974a16c051e0a16b5c07048bd0213189a36bbd6f28909a006f2c8f29d93968ebd78d020a8894f8110f4367638bcfc8556f11ee571336880e8430b7ca0f25bc3fd4099e88a3cbeaaf23126b7fc8bc4f359fbceeafa13766690bfd32eefefd63123663fd1edb9ac65ac0a7c37de678fc7657d14d965c954643fc7b99a32abac422581208c0efc112858d2fbaab8907f27f6c8ad892e67c378de3f7019feb1b6563425f43fd00e8430329e0eba7c8ff90ed486938eca754cbf4f5e8a960e5e6efc279782fa61bd15aa201de658a2f65dd4e9a1920c6044df618e8d1018fdcc4b761bac8006f8eb196dd890cbb575f979587a13251edd487f9e597075e08bab93df96217337765537b219165d18fa4c9c8a8c7661467fac417620f1d036c98c2f6f194ab90fae9ca0df38d6dabcbed0bc43276d54b5e4a6136dc7472f64b9c6f1b269cf4378af54aac794dc51cdd10c2c1f3c56c6d14da014da083d1d0f528b1795cd622c66dc05437a9a27c5b91259e3766d4bd995917e9f40dcecf9392709b0231b2c696d921dde9911b3d531fca2feb543cd1e0e592b0ce086f0826c4b1e2c47ef6eeab53fb052d25cb2205c12be9eec8887820aa34aebf291dbfb019ee9047301870cd574f78fb3315e6ff021c9bc88b134f89e3b65251dc97322870d7c1a7cfb2ea6f4f925a1533b186ffacb7cf5ded54457692eb7ffdac4049abe329b7e63d668b83892454eefd91712bdfddb86548d10945b475b888aa5e6eeb3d8877e10400a4f55ad85f2fa391b0470908545599c79dd04095ea96f251e3eb1669f4ad8b26ca94ec88dd05b9f45fb01d5bc3811aec5d1e3e2727513188a23ab2fafec1708d598f4eff33d30c4f227ca30c72660943d806b29463c4d793f684b73a8e1b5cc5e97fae27057bef12119e5ea4f26f1bc7ae538d637f30d63dc2f07cbc4e6d6f909be889fc846bcee9a8f3b0ece772fccaea18dcc4592fbe83ee94203851c2418920b4bee5026e299421fbcc5023873c81c42c9ff3a5626bcc213a233eaef74b807ee21df905dc4e4e0c18f2ef39b9daa076602edc3ea3e8f411fb459d577402bf5ed43c3173dd789b4acf2f65346699cf0ef15514be451cd92efd21ed9b2ada3d6bf8c9627422d49aed43f61fe6da7e10205a0886ff43ca0e2f1a37788c6db7a7b397fc8c16bc7cc658f7a6231f658ff7e48c18e00f5f8f8ce11ba52e0414bed10b5e7f80f256d4c85cdee8d127437c3b7d5f50f5d2922fa328435f7fb2d66b6cb3d4fae624ccb2fdf652bd95506be4cb64807d17786c7b6221c2ae6ea23464aed55ed0767f25b2e6606f21311e294970ab52b640cfff1d1d201143b834ec2d86d630c4ac9d4792fd5038975b642ebbf14b0b5443bf5504a31a46fac29476557110a17d9d4974aae3e6cb17c2c3fbd5567fb1b5ceaf896b55cbf59fecdbe768a367081c3371b212a0cb3f70963674483c21728f23dc2a093123105da37b7631a9d89c96e69a7fd6815f21244750426c3c706fb21efa0ba7d6802bdae50eda634e2a2bdfc48f6b96c0a06d41440369b10d133590c7c3c641bffc033898a16f1fa671beac76e1cfbf12399fa9bb2e49a456602c6a200c3ffa2af159cc2b9bb43b4785dbe02c0d04636630fecc10f2a7004bcc4beebf0ed47ab6a90d7c500fc7d43dd9a2a5f1111aa83811179e04be5f14085d0f5c2b83007aa1f9aa79978e784a403f7fda6da7a6dad2b3579441f9f69f51ea419a845e76930a4c3306a099196be1851f8bf4b42229d8565a1231b47476c21cb24a16628882478d1361cddad84d9983c1d06be554f0b0ba55595af4b2c3b777497cc14137bcae997946de990450300cdc40ce8b855c3c1382cac47db0d91ade07663611a3fe7c4638c7bf441f7717c923da6e4236a8ef293cbb846603a140099ac30196338af74c06b6b85ccf323dad3f3ffac176929da61d4e1cd31fbdbbf3d7040819ccce9f5e534c0475738487a96cbad05c487dc53b811912d8376004b4f8850485d15b5caa651448f228832c4920cdf3c6fc4e23776b2c4a107c0ed2fc79992004ae6fbc276d23422d97b34443a5fdf8c90e71371aa506e6428526b4274f818438cd7c42c5c5fc8bb298f93cde4b79fe368015dccb5ae4d5040f55fe970dfa054a858298e959b54d3f81478e72dfcd9ccf54094c9203efc3fcb200d4745cfaded42498fb8caab6980e959560b11effa1b2ac7f403eaa3f4eef4cc37bec3823cd126faa25b4e7ced335237a77c695be80aab4836edeb664b56a46f33ceedb18971b32b4b5f24dd3d6000faefa6c9470cb0bf9c6c17c7032a6a11d6e605efb0a949bb9671aadef1a89f9b4800388d453a8dddd7821b8c40456b511cef8497722647788bb8c3892041e886cc4c6802f9a21315245aa8515874f08f53a9d501b951de9ae9e11be5299037e6208453f93d47723bf63a67e6c750ff73a7b42b6ea7726f212c198f8396f8819c1b42724b3516c2b76b8b3f1544f76b2cd9fe04b4124ed6e7c3ca813ceeb57660c9e2f451854a94b72445284d1f136fe5834709de1f74bed82a6c1f4c586241830857f9c3ba8e5b8bd7aa95a7b99fa0c602dca4437286da90214da54c4f463809ba6be3db336ec69fd29811166111d8928dc0606d083efe38923618df56ae36878f6195aaffadfc7b4b6fe7e6a8230b8a775ae41b05035895ed6b6b9cab464fa9fbf69fd8be066c904445ca7882ebe85b1c5513199f922d1c63383c2343aa2664f6fcadfdff9ec7ce3f72a96fa5036f00f3fb7b79026b48d298cefd87f11ac21435d12089b45755db5e5c6221609f8fe3e6b8ddda408f9e8a10deeac535d2c242f3810c71a36ff40f4c698c98644cc53e303ff569b19d020971958e0427e584d6f2d427e296a3dc708d1427613a7a5828b5f266b3b2e754b90dbff94d336dde518d7f1f03a01817b917ba89ac85227c79b5c9707bb9c7001a035218188f1f498bd8400bc0938aca40c010dce01cf7ae5a25cfe81701aacb1999087aa4ef092cc8df64b08f4804ac8f9fd53b7f718be3b06593f4a50dc843dbcb63f2bfe6183594540aa07a72fe6714aceca7bc06d0d5625eb863742df5487fb039c54e1bbca398028b5ec72079f0695c6534b797a875119aeebbf858fe64520b514a7002dda5f6310ffcf349f603576e6dba2fd625b5b14b7a1f72286611cf06dabaad68b3fe0958e5abea5d3568e61c8bc5159c91e5e60216d922e3e5353fae6da90653be858512358e549ec55893d83d0c7f732ec8d66fde3ff0de23769e2e600e6fb9887c68985eae6c057a86ff6e2c1d9cd6dcf93677c0a1a7434843d3cb568b2358142ea5ae488d850f976b13272d121c82fdb2b2bb7d49683c3428bb9f9f37124c01b6c8935604eb533f2ec8d9da60133ddf8d62769b63ac53a3de9589f12c4672f4f667fdf7cd09ca1b85d64e5f6dc19adc2fd36c4c3a5cd27ffddcd0207e2bbf632d1577d293d2ac0f42144161d97f01ba787ef9b58cba049ad94334c924a689cbd5a5785507715fe8f09afd95cbf791e7cc186e5059aea1cb7b6e84464e4d6479950f957214201bf802b707f52e74e4679124ed51ee0ad7ba38dc315130e0e1147155097885955437ff3b78f3d313578e801698199a4ee3e4b1995e85c67560156f29cc882426fd77613cee4b0736188c9cde2a53a4f3a97192c4469b6b51aba31d3dd40e05484e86fe34daa36f3d07a3bf591f5e08986d7ec3bba93018655171a4c56b80d8760a7a86c9cf8fddc831d71b89d0fd0812cace67b57fe571d2cfb4d5f10f5b9e1d5d6a656768112772f43333b7c792766f60fb84fa4ccff44a5f64512925a86b05f9c692f18be3202b8913970c7e2a79919d27498668d86adb9a97b018796c000c8e72a30f6d0a65750b127465e0a2137b5af004e6fcfc7fb646e9bc3405326b2d3dc824634fca2628c67ff5c951aca3becff12996cc99e25c1ac43425886cdcdb54b057e3d10794fa04541e26969efc60359a84829cb1f5d8232149849be40fca0e815c9b356da00561f2f6cdf8c99511246e9ba97cfe81720589d8a9271ef1c7ebe2d88ec7fc6bd3854958097ced9595317036effbe0b7f6b42ffaa52364a1b3bd8d2dd9cecf57cd06ee346cb853c6bf15fdbbf60d9f0236477e3fbbdc76286ffe43fa5a8413424ce980520e7c7c8bba67beae90a12e8e7fde68ee7385e880fc4f618c5ecddd65af7c47238f90d950bb4c57099e16867f5f19d792a8c0457d5633fe0ddcbfd6d4cd17a5a1f5bed86cfae6f8464fae96e9f5ba1622fff6bf149dc3a013531727377afe3ab00a350f97e18aaee77135ee8547e0752dc8e8bdb4db6e20f4ae3c7c4c89a45576d76db613f6bdf12b38e7d0388bb4182b322c72e524988e24b021a364a8e2b5c0ee6a8bf32da349f190f6753da7840025051946a4f13ea2e13db81801a15d8ea826d6da80364e5938b49b1c10325bf7f2ade32a12139ebb43ce167aa3f518ef01bd1685e432f08a281f916b8a1319a109572a0f10167d01d3fffaf5ae38ec2dfdfdf82d7755146e03a49b65f02441593fbd9f179cb4fc900e138b2ddf629100f2a79066636729abdc1d841fc4ac891237e2383eabeeff34e95cfac766c6b20e3b8509e2896f8163b79c7da9281bc66439a24fda518301875bc6bb8fe25410cc747edb0a9d10b9aaa13b3c32d20303643cd9174aba131327299ef06caa1c6ff6a2e0237c4525b01717132834eb88de3b8e3b0c4f575391d04ebbe8e990db8be9dec2797830ab260acc6292e9ca2a8bc66ad7845ca67528b2bb3e9fdb132a696e76935227e9e64f46126f6bb8c518b81f65401c59ecafdcdd6194ba5d89d83f995ad9add29e4013571184ed4ff77e248ea30080cae7b0f4871160b7806d6a1ea795fbf9c6769dd8a891795603aa0d376400164c6072b64d4d8dec3298dd2d1a6fddc7935e758303eb443547125ff50408d55d575aa311620d6ff872ebe4ce4801818dc9873d242e33764eba13c267da562976641dc558771c41c28f04085002faedd1c516328132634e23f541594f799d1ba3f64355067a1cd5acc8fe1f03f4cbe2a5830b97a191826efddb85e5b5df377809638566d6ab6c13086a1e0f46cddb6b13a7839402756e09d5d3ce2fecb099809fe20beea5f5541370a17343c4f5aa2b1fd0b35ab092627428caef31464696f7ac2c5e72a3639536f81849ca3b2c1e6f5001a5b79818599fe1c2c586326494c95d1f10000000000000000000000000000000000090c131b2830343a", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 9, + "comment": "signature that takes 8 iteration(s)", + "msg": "0200000000000000000000000000000000000000000000000000000000000000", + "sig": "ba211fd12032864fd1d4d0401f70287f05023eabaf101be50ee8b3744b51c6b2d104de5b7c16e623e3ebbbc9ee794321b2e06cd4d88e1c67901899c40d26a26243110230692c4ae6da6813091a79beea357eccb52b8f816d7008861cefdfa534dfeb843e159f2573bf37edf8d69aa061e5543a28100b2a85d0ef55ef9af571de35d230f9e649bf2d39cfb64ed1abf6d594e3f5abbd0a304d7d6b6c8b4cbfcfbd2945d951744222b6b8d8d5620d207d711a2982f9f21dcc8e78f370edda6e938531818025b2d4e0ffa4d55c9f4ceb9c6dd9742af41e03e091ead04fb27c724715cf4e0f908581e9cc321398e1adac54cfc95bd10fab7862648fb3f11eb4145e8cc45851844cbb555850e4c00d2509fc82f2c76b3eb432584c2d0e16059e2ff70fdd782c0fd61d032bbced189a8a9271745f9abc93f82074ba57954ff4c5af76c3e9638a89f42992b1a2ae3056b4f1946457a6916f67c0764f938c40182400cb90e2df3030ad4fbaf2ee74836d0036198292ab124224c3f36dd660d8af545f75d139351d3488d884fe71cbe2424a160e267af698192cbdcd76243c7b8eb7c64a5fa13c318549c67f5592a61263fd39b574af5c61ec80b6fb82bf274e83707f2bd4fac3c7ebf95545f99e9bed988a7e5158e9128f1ffcb6b4ef4bfeddaf35076bbaba6a9cd16ba595eebefe15616b418321be1dd7dba97f74d462c99c416a26fa5be81a70cffd259ca12157768e04740aa3327b2ccf0da1f2e9905ccb22c3a93e5035c5023f4ca16b70b82437d3355d1a97cb37d309d3c75c4ab6a37b385b9c7e3fcc6f246a1f6c49cde1fc590ade422c0ae425342e2bf7ab3d24145773758bcc789326fc05eda6749d672c64249b71968ce11b32b5db783e17d330fd07770aa48157c32148163f0824f0136231482a32e0624da91b491a51efcaa3061be049b6e1b89aa31a0f8707c97ef3dd307358734f7789ebfb24cd851c0d96e0c18afd628e35ba11f38439ebc3a68918eda71741c3a5e193e713b30e8fb4f156162cdf1ce9c877ee532a67e9e2f139eafe7511de247bfcc02b357e2f0c2214db2b65cf3d3e7b539cf9d752d2bb97f48fb2219212aabbfe7c4416fdc30597ea6654e53bbf753638aa03f219f1aceea3df7cc656340af23541722344800b89083b2a46b2c3dfc97525b2deffd981451d36d93902a009b8492115bb958bc02cb85fe6838d8cc155cc9ab2f4ec01f970b4eeeb5afe6ba371e8dd5229050ae9c0ebe4fd3b140b08fd1badb684bb4d7811f271d61493a7a34719a9e489f92d1ce4009e0bdfb844150bc94edae747c19c6d3a61530027991eff67730369641b2d3da960ab5380f71970d04fe5e10f556207bbdd18f4e571bbb67621d16d63999c8c16c6f70f0e2953219d59f3d9a113d0bf31fb258cdeece79c1198c1b64720eb00425fc86880895c667ff58ad3fc7939ba6c2eeef4e198993161fa0f9a5b3d0d90010af2cc26370ee3aee09fe9c51ed228a8ae31825895f426d958ebdb723721ea7f9d1fb92a79f08fda38a671ff2c91ba8f95789ec9b125efec355a1bce91eb68ecb202b05e5cd4b704a1ecb2363af33015a44c9ffe45dfeb51b1e41cca1e2a35fb65233436656a816b9f00ec121e61571b7794fa84fbfccb7dbc2940eb355bdc7827313544c069304dcc528fd65d25b6a39cb89d793b123585292ebe584f1b2e125539521520705efe50797a59e054e71efdac098938ad147a07be847653de3553a47beb23a7eb99270ae478ae5c439b468e78c954419489edc4fcd81d81bf55af23cae64163c73cae8024a0c8d26d9676fe9b42886085e14eb79de37d237192063516f8c3812ceed889199c9d78d30f0f359bed9d35d5936f5e2f9aa80a91b96c5bfc14664c4da0b0f0e6123e36a4d7242cffe41d40b7fd784c8cffb3f2b56c8f557e348a1b7792e3be570f44efa81b1cd98e85460475cbf0bb8afd8db51c9ed6fc66f68efdfa13119611a36c978ea2997ac1463bf1eeb266e800f4bb37fefbf682f916b1c0c8dc6c60353d0d7e6fa0630804cdfa76dabaae880a43232c74f97462f30003f46144606bcdc16f49f76a5120cdcd484e76f4d466f7afaea7983b347d79b11d2ba1ae68064b17ceb64f96a271ba56f3dfef6c83c1d4f6925cc64b327d8a7721c9cd4a72ca57bd95f2e9b8d4087e9e23dfae08bbb068e4bd1d4c320a55df67886237308eefbce291e5edd6a59aa30a72c7f1ebcd9ab514140d7b2ea30a9ae91991c140c321fdd528780a617c6c94970cebc9cf5e44fb4b4ec22e419092d563b8c4d7fd87155c8d070be50dc2b3ca762179c9d94fd09909c5118777dec3676d59dc524566c930b1d0ac97f8fda5f676597ccbc33fd856e2e691eff51bbbc4e151a03577e1a33b44b4c775739ff638150e78c71d5c71306a080bf42e3b315ada345767fa87d7444cefa9c42324c997a5e6777b51a735040adc235c93ada3857c5d5af869c001a3ff6f6fc234c1d355f32566c899a29f7b2b381101590bbafcb7cbd8b3577615d881123ed902777a807f651991861b7ac44e55d47caa9dc6aa9e7c5a65850ee8975d662d9ec471f6811d380db72db554cdb5608f428155741a987f2979a83885983de008ec5600768e84e5d23fe27d4aed15374e30d393ce915ac78752e3e4156f2a8203f9a8c35b3b0a1d028e11cd315c21d4070fb00aa95330f68d9b3a78268d2ad66d623a74c338a277145571e987977955440fa176b306f6fa93cfd4d16e0c5aec7a30be7ec83c5b8c1bf234b0be088f4ac77ec5fafbe2c753fc3ecc672487b9df2481afbe3b8acfb07482690f6fd30cf3d493f759e91d81a8b10ef3e1e4fbfc8b76ea49339a977d4668b9f220ef90f40b0708a7e1dcc0548130f1e6f7b4b2bba3a6a5bed84f129e0c1fdbe41f1f590fbca4b618f2f824b0d505afe593976532a6f1076c697d8fa3aa4a971e7fdfb8eb6b9860c3f40ebcd0e4344919157534f1e253924639fa5bead5c428462960d1eb4ee5cf812b99023a2b4f41055e4400330a71400ab2edf6badf67d21c8a7a3850ac945fee27a656e18d0e8dcfb64c9b2ae1b5c628de991e2431606c8b1ee518733098f1e635d47a8fde131f44190d574561cc49da5c44773480a922dff23d6858f201ec085c886a72bb85cc9a0856a118b637cf81957e72c90cedf0ea9003517e20d8b87d947ca94e4078a5fd162b51ab92bb5db431c61a8fd27889b62ec4f535af61d80f992507f63c66d2237cb5231c4b31f4733c61a106b81953f7f7f08eccdb2414d6ecbdb10069f6ee282ea02a004b02a524ebd780e66131018a7d226cb776b99affd8ce9890e05ac6af20edc6c20fc3efc5d8b7fadb5c01e6f9e8a7f8b86809212c1b0a2316a3eb3718e7828c0323ba31853a5acfba867cb1f35100d51b294938dacccc7ba60b456daf2ea6646afe2374c2e0a37ba48521e4c1b4026b9a07d8809df8f5e1b260081c422844097ca3d3ac89ce75c9ff9cd7c81558e08259f63c20f5fab5fb42bd41d39252fa49b1db148b7b9b2ea1996d12bd2da19d469991ffb4debf86120c0b62e55517b0b8faa69d73d1eee88adaa7d7ee5b1537cfc9a7a6df4682c7a3135beda5597aa23d8286f3a132d996b8b1ca8660e972aaf0da7d26b8bf6a9180901636e2082175a6a37d5500d2725d48754232c72537d0e8aa876aee157edb7cbf5ba540bbeef4f4d86aaf8f93fcd4d4ab9db728475f0d5043786706d8caa9b4ca6052f9f237d301d672f36e50dc61bc089ec67a4c4774f0d91c6adbcb28ed3042736eed2aef3aadde8bb0589a8cfd4f956271b485a1aba0e269270b0ad0fe5bfff3faf11cb43c9476f509a53f1ae726cd3f0741908fe1a27eade489ed2b5e6ec9af27cc9d3205b854b07fb55b8e22febbd8b8665ab3b5c35e349af35107f4d317aa8b7fb1b2479c54037dba20b60e0ccfd5e493949b7c295dca5a78a4f5460b1ac955257d229b3403fc1cf1144331babf1290d0298cd2e00187c8c768dc540e5dc46168717fb66cf29ef190437a27130e7f8056a27b422bf41eebbbf5a345083722be5068de18f7b1a83c272e47d46144381ffe04f1e34187fd10e980149881d1d09f655dacd3c0b812962f3535c7d8fbdc897428c184220ceec2c56c10bdf2c1c86a2471b6d37d779d6188d568f214fc0e676e6dec45aea4944db4035ffdc1ea4479aabbd754c71e66c578c6222ef5869f706b07a020a6c1de359238b3be378cbaabe035028197281ff6ef75fa1d596a6cd2dacebefb4396ef813ff383c211d3cbcc59aed47b5ccac83effabd6cefbe47208bfa6041d6a91170cc838d8275053ca8418e905b2ce04779219828eaaf7bcc1afa5e76a6246b461c4f4962cc4930c1e079eac4671764658d5f68f1fa0984607f0c6b3f5fd4a3876bc70132d65ebd925ad08a82ad653a8f6b7edac8d0674363f18eda61a291927bcb4b611183c5949a0ba58559907200a616e00de6d46bec05adc4122dd67afeceb3fc689f9d911a2479a1afe888336ba5960c3fddc4375e7c59a3d1d52b095c85a74b7c1a0f5642020849f9382f52aa4075e11575255225ac8207aafa5515e12de173004db5a8425f4fa51a1f8134754708ca9eee191855ac4d8e980e14bd54c1e81d8057663774d996fe12a294c914c63db7742a245f74fdab86d998aaeefb17b1b38bc96110278ac82323667f233cef1ae92fe2347b5c13381e606168785cc67d7022b02132c98b69531a51540ff26c400a04eb572ccef79d6127f995ceb93a8cd41e5fd7d3641a606a3703d64cf8c19cdc7a5eb1b3872747ad56781580a82bc86757ece1496a9a3ac247cc6188cc5e60eccbc130f264967ac60d21c62664e85d5cbc91ba30452fd3de24e595c91add8c92c89a7ff84e2fcc86852b2db17de7cd9bac7872cb1349e06a36cd36390b9b3be7b265991b663b55fd94c7bd8908c92b5ec6038fe8f0d7ca389cbd809074d7c01682f9c06c2a9bb6807e88866eff48cbf7263800118444002a5236c9266d0018a8480335378e9b4313b4f7c85813b4c51b997818592c36b6feaa628b7011351f870854b6454c2a42a66c1c93e085a1ad4b30d75b78de7d9949675684de5b03f57ce66493625bbd17a7a10a66480c2a3764b26d8721d8d4afa73c871f30f727555dbd42549062390fc189c129c1a04ffd801fe6e8b3c06670c7335f19c8b4a710dcb5547e0ce79719099c4e606a9944d6f409a8a6efbc378d1b81237031d1f04ebe506f02d62b71a74be657e2698873c6f4b476474fd47ee896bc26e17602ccc089c387394f5a80dd146420dbde5fe824b3afe072b682925a3e527c24caaf05b2f4432a589b76673fb64beb4924ac7c8afa52699ff255eb9cecb19ac00e5da8e4338ff7b974ec65c8fceda1a6172ef346f5493a908115825ba2cf44907318df819600b93cecffc0e7692303c201650627415c9c6636c01b20cbb747d324201aa982ae9ba6fcbb9eaeb951463bb12e0eb4f58cb7561500b4eacc0b58e757881ac72b309fa7222e1cae73b57698bacec165aa0d9bb3c660afcd7f0387171057e3d1590b03e8216e78746629a1bf129556846f4eb3144353c9cb716fbfb771e1086df71042b16ca84279e7ec60969cf2e1a5c95c963d8281f4b223f5f0537e237f999cc25d047eea80d504908d830346cecf1013e44e0d2c88887344f7e4f4b05ef54f19e6e72bf2bf51161fb7ab619aa977dca3c38d587365b7147af22167426840811081e2da0dc2d9f783f908a56e6487750ec8f69efa5097e0730af555722b83eb1f75ea49d1148d8fe5c893cb1315023dcb82deafe752f95395e24b61e811ff4b57304fedc27abdaeb880601a407fc27075c7938e6e0394bfd4faf7a3a969a29fded9c97c767381eb3184ebfb89178e695648bba10759bc6ff079b3b107aa4c07f400bbfafc24611ac4081a450cb8495adfd2068ee05bff5a6d3b50f03c14dfc82b10e6ef11a7d08640dfe5cc486c9de3c66209fd086a41aa5691b9d9428538bb0cde13eb57538e4c031a7a698eef356e3f4eb99526d6aa8f6fcdbb759b7b78df61316ba3ef4d11a70fdceefa9b209dc580628d97b5773bc0423b648e930d7d7df197f4b89c56be11707b2450c893488de8f50c1dd9cd7b9cd9de9f4b84955fca56b465aaac908967fb2eeec38a369a03ab69d30e48502e091ecda8970dbcd5715c18f006a8cad5c451fc979ef8038013baafee4054da5fe26d53faf00a91a56113e91fb7023ca216ec7897e9cf0319e4212af95f6a16c754e97f382eb66898e3113e4484af50389f2b6a8192a77e3cff27d0ef7e024ee6f7f334a3e86619e5f00d710f5007d0057d75cd8ac0d148590943604f58376eaf075c0ae3f25c205d5133829064c4a0832bcf87f74d92ebae55293ecb8f8eeeb7ada5579aae6e7091629708f96c6ebf3030a1822386a6b9db9d32e49d8ec1f69c9cacccfff26323f808ba9ceff43606477e2152a2d46888a90bbbf000000000000000000000000000000000000050e181c232b3039", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 10, + "comment": "signature that takes 9 iteration(s)", + "msg": "2500000000000000000000000000000000000000000000000000000000000000", + "sig": "0c3732db2471777d0b23a111159b597d02557bb55b608f4ad3a4663431d21dc2164ea9a45919475fec64dc53ddee3e4c66b7aaaa8ab39bc70566972baab53e72ba3a8c792ed448183f3c8023b04c21a97fdedc33d036b8ac192109114f4cc5a64299181883cce966389c771ed86c678ded19197e02106e427588dd1795aeb112137d0ec91024ab795b32df6c723722cffcc0d2b86ec5adb05e793b57f791b71901a12ff7804149cc02523999d5cd87bfa9978b98fd7140db3ba3353e91a7792a4e9eb266f66fba057ef0a64b34630b46aae7d16fbdd9d3a29b803cdfb7880d0b738802418414f6affbb2a22d30d46602f33034fdcab1e0b5c94f88b22f4e97cb778edd36e52a134a57279f95fd39a2e992ebc817530c2b7dde037031fd51757fbb47ecfd9cb3e38daf57761a9b45df548f2eb69ee04306cf759d4ae6743f81d1e5ef69e632fd9580a7deb593662add5402539f13ff11880867d9724b641e03b063ddfe9036845cf3965d8c67c0d7ca2b786f777c6816d0f74dc2c8ba782257bb7a74f61fde20fedb1dbdc8d6a5c97cac204e5d67348915f4cf5c84f127752dca3765171791c040d7c6fdc36618a2c8333b80b2d11f05b39b6c586c0699b0978ae3d081df3ff517ed590dc473fbcf31c1d884f704b62f34265718db8523d689e5a092e38f5b3ed377b56522d4907c065b7e4c14e49abd88de062d1b499c90e0bc9cf972fbc718b1911c7a6619ee44ec4544090edd3b4a25ec9aeb4108bf2486a233af3dc0753608f09cd1294513c5139713145ae3cd4e4d7219c917a713adea64a4ed6304ceefb4fd58d99e2ea2ead822cba41739f2251ca60b42ccc8411f447e90590b3cd33dc803f97347acad63851f26140289584634137e5e15dbb89fe7f2be3f3e3a7c23beab419ee3a2f0c91aaebd88c8feaf96afa1754ea2efc529a773511105e53cffa197598545cc64325a70ac76065624a4d640a034e97f4c5c4da854a401fb72d9897dc74949fc94596b45b9cb54a64ad4625e21a42a30cb6dbe0ff2a826e367fc8e1a24db105ba985b4e2c138b0961baef51ad5cce4fa91fcb2aa8bf1471687b3921756a628d4e817a1a2a11c62b3f29bbc026e5c324fa0f090088bade3dd491c604e7b53cb1bcfe4633ebcfb4880d9e6d4182b2c97bce44fe7fd5b280b465e9f00b29b133239d1c30f0ebf59187ece173b9cdfecbb65e776aee499ac289e5b70385faeab9ff868d777c76b0e7c112d7345581d3391ee47d5c7193d76fd5d8208d4bdf6c02f1eb97de93decd810eaa3be3665a70c30dc755874f58b2962f26e8fa4e15d4042341b3a64f222c971832f0e98c194de79b384ad97e07171b814e9e6ec35a3ad3daba4983cc3562d557f9ac5da3ed92c3fd598971b71231f605d969e7b4e3ffd79b99236d5b8720bf446cb0b2c419041c8a0e0f1513aefec2ba5f25dc7ea1d2b2822afc5c3bd20f01a5c43d8c792b59e8fd0b0b52f8b25c0ee99a6684d8b40c0e81e4dda79ca157a24217eef85ac79a1917f9bb789160297da0d2046141ef61843479a447857758b004f42f590628a7a45d8b09461fb7a996fd2000c3b2e774934d595bf8a710012bbeac9fc4f7b66f607ce8de46430ad0dd5265b0e0f7df05d0a65c413f42ded9dffc04d1a02f284b3e6731695b54476aad0f3b7e587649187e767f20f10d90f7db5dae6302b69d540527f01a5983411c093f76fe1b8cd6150111c5130e00ce3b534e29420c06d29c0a13db9044d773f1924f7dd5fb624a6452b78b45263facb74d63113da47ff6032ee154fd9f1c097f85a56567bda5c3c717a8621a79deaedd18603e0884363cc6ac98dde9bb058f9f68925e6596d71d7536dd77a3602fe20a43dc2fdd4772583ac2057c6be349b3abdf49e276e508677788e9092eed47e886751b6bbba794808b89078c54f979395ce89c3dcbc7cea27241ce43e8b40a9aa12b4778e6b8bdf2766e1de5130805dadfd78f561d9eefa0ad0b943299b58e405d5d4a8b558bd2986ad36d6098456b90611216454775f65d9854829bf299ede7a7d7dab89e47718c50d7192e22241fdc34dbd79112ecce9086bc423d1436c97a75ba63f67e6474b607d35b78345a068dc4121be2b581f12228a64bbbf908f5838abdb690f00b5ee08590490f3b1835b51e16a339de246c9ac3088fdc7b2089f8a4a35f544c62f1341b83cd3f16d2e576b5abdc86052cf050c18c4b7421474a262a081944160f3637f0840ccb2034c0745bc722f65aefde675e777bde3ef15eb8a4e1a5befa79e0d34c3cbbb8649475039c1ec8b35fb90f830e0d0a9b3a5a23abaaecd7d9314bd70932a105fa85bcc8c241eceb057f03d429cf2a5e10cbb2db63560988cb947b51c0452baa1ede35dbbf4726332ca33cbf5e01125556c5a3b8dec49c8e1b6ffe6bb040dc03c78885724da446395acbcde4cd9754b4ae2f61474ed5785e95af9fdbd3b3c24f9e059ed0dfd75566cfc43686230cc576e837d2ce2002ac8ebd0185b0d7273f4019cba43cc704a7683e18db1f118bcceff8412ac05f14883542978f0b553d4310a092589d68e020881bd799748e63902667c3f348ba7fa37120ecd2eabba485c6c27d8f2d7362a8769d893779fb276da6145a5b16f8b6f6d55562107e40820e4d7e172286cccf7d3ff866a6dc4921eb6e965a02b8fc3fc0d41e3b5e104f6f02416c9bc09cd8d475835ac4ad97fd0f09b3e33c77b79fd86df0efc1757a418226b6d468611468e4fec98936f18b5f675e059af4d36dd3224b375273198dd97bac686f3dcd9718775c6488b0525bb1e1acf6bb12fcc39d9ef4d62b6488c3ab7ed1188dc75b2ff31acd84edb3e0ddefb4e00159463733484ed59edd65869dc045cbb81d08dec168c5dee590cb37aba3ff1306e32e3c84116009ef2243b02241267c8b2ea5e0dc9ecf6b1e33dbe1f11356d861bb61dbe5c76991878e87939f215bbdcb29753a8f00ea6951c5f97e37ccc08eab03f4fafb1bc1c2c9e829268452cea44d0f2d71ba64f6fb45236056708be1abc3d1b8556f108bc7f9ecc4fddb68949b8b976734904c13f9af4b347c1e6da48380385bb5a6289aa8d38e2fec3349cc84009b260355505672a818fdb20e1981da1acf7716e87eb2c79e597452243eb398c23bf7aac3573590e8e240d98d6aed18929a5eecc7f7e64f951dbdcd4cd0eecf2ddb6abca4a11fa1950c3d0884d9abcf729fb28040adc26b8a4b273c649982c53134ddad63b1b18bc4d7598e596b6e1b2bfce5539168f15cab41917292c00436504f39963713d53e60bab8df150c134a6aa90df8742b69b0a4fb487d39469223a572876c43d543a72d5817adfb9bd6f866275c1bf0f825391ddf0af0cd87eef2e2ed227d6b06f1c606495566e0584b5a3592086097f74d4ce7356d3d990432cea9d1847441b2a19be75073380f5205da53af55a1787a4ef0607837b28b082cc5d2b6c9b0fd8e719230656f495badb4db4d8c4fb02ea77acdb1051773e9086d659e680ee4d2e463ceb1fdd5fd8e6c290e446d5bb89a87f16c38a3f1e684a38c7d6393437018fcb76e1f451e2931aea60d9a0cbd70cfdb20621ae78d96a39bd9eb77b850e8855b954b09d720b27446b9507edd2b76e50d61a736b813437ced414a2da6b96e5b8ecb0ff15325b26995925971ed566776227c08ff9bcfe79d7a54705c21b6dea6df03c91e3a9ad1dc109a37e2371d0af1188e9b1556c8300710e022916e2648405236ce150ea81d5b6be123dde3671eef035eace5aff2cb7594deccd4ddbf9201389126f0d9bff517e56d630dd144024bbb70c20a511c5b1d76cdc6ffa350e917094d5d72e3b945c30c9c937920c6acfb6777564bb0819d65a631493aa2b4b3099f0e53aadfc0e85751674d6bd8416cb542d665609744dd38a920ac4dda6b29150985a9f95c9f3a061aa2bb18ab8aa1f34e15c99b3260c282a2a5fafd1bc52c4576f388ef5be35f4ba56e89b069a7ab4d2acd36f3fe68e868621cbdb9ffce7210205164a3c6377aba3bde311670a348d6fbb11d156f2c6f8ff0a591cf345028eac623f52ccb1248f03bdf4ad0b02fffd67672f25538205efb7f0e1c9d0ba7c77070819105d392a98b2d19e3701287201b370a9f7aa11a239a3b0d01df57eb3f8156e129719adeedc3da5397283c990f507e1b58dfce524df333784e375aa8d82e3a7628e07c3cbad39ae787ad137fc2fd7d52a5ac69d3af62e2005f70e3b94455cd7af7ebf7701f49257e3246e4b2b7f17858f4795960c967e354c0b98112144ce3cd8886d83a86c14b7df75dfb86cf351c96bcfa5457d6144b7a6e89fe91a23b6b662613ab71d7258723b38bc212b55ce6a306eb6c9c5a0f5301fb177db53739eb2ff25faaa01bc2c5cdfc8e9f226002f9f1faf383db66b207b97aeaf8d856b96d0164a14bea14f12bf95eb8a0783c869a40a325f57b116f6dcd5ee23f51cb2a8a18f16de773bb88e3ab39b69e8be09f52c703332df20325aabb66870190909b97570b014a23f3ff64c11965ecea7bb83fbb1d7dfdfb6cc593d9519be03246e9ee76333f81ee4e3e9a4a27957bea6691507ccd89b1f19a3bc3cc7a42216bb327576f041dff549722cf3af93185ae38111e0229a9f301389e77a254951eb6bf3558d811139d4f3f71fe03bd3eddef24c52b641e1d65010475210ee257e38044db7678c3f7d9a7f9cdeae56cdc5ac82c455ee16ff513dcc5873bb7722f237717ea3d9950a6bad018b556adf8324a71ee9a0348ebb05d89dfd09a24ec29328dd522b3c4493edb00390cb093e9d14de7ea715f4423703828394a4cd7c2402df79189473fea4491eed9b78d108174481d68751738599dfeed81bd21fcb534652d9b789e7faa5bb96bf7928e68c8a441b9a0a953a4f280bfb864dbe8fb498846888fdc834208f08585445fb7c717b880460ac6d71eb9604803da3e029ed1896049024a28ead09c52b6c5e310809563394fe22071a0c572a05968914c926a35abe3751392932fb8ec2892f2d826e48fbadf8a90c32e2e447250578e2b40fea06b7cecfcdeb09a1cc66f626fcb5497f82a74a5510776ec1c47840d3eb81993046907135b01195df914a95be6f24d3a4485799a231c010ea4c00f43abb80a505954e6a15128d9aefa087a1a275f375d520c0d726df53fc251f199a75654309979bbd82205e1c7b5d41540b45a04fce1b8ddaa20f34305fe1ea4db90db267b7839841f97ed8d0514b102e6d3208f6c5a4f8abafe065961f6879275c9091106f558dc90276fb575a4a9584a9973971d97afb6773d44dc4bfdf72322feb33c9eab3bdb80a8891948cdab6bc30d2986733c503ebe320a383113d2003a609a7d7e2c2d86bfd740d6c40b9a645539bfc2ee9abcf4ce9c530b5a806e731cc0d38c16ec19e433cbd38bdf199a976c3a692148e5364837fa3419cb3be0c6206ebc96f9628b9f48fea8ded891f5dc2509e9c9541c14a8ae0002f34dae95316f8b827290f36e17e5153fbebbd74c246a3afa2ac396ffa9fe267a827fdb5dc6ffd10ef5cc5f9be41f5afc361c823ea66b3e8edacfab7fdb4a5f58a93189e87e64192b0751c1c026d0af27c27c0067c19159c4d04f0257170c9e6b4cc62c3f4d570e5dd763a172e611186e1011d0154a9866e65f4b5e4f20042cfd65810ae2b76461b814660f55d78acac87649c9ff365b57210f373988d34380dff0d56cadaa912a21e4084d7dbd8ec85a8ee9982075de83372834677dbd262d079bf9fee7efe7e0bef7cde4d601f52aedd98f8ad71f0a5b94965d4b0663825be9647810abdfde8a5d198411beaa4f084de6ef78b8b829275523ba3523757ff6b1674fdc2fa653dfc067263b8eaf6b1ee07d88034ba2fc0f0563b0ea5e1e84048c39b585982bd756d90b08308567bb79ab20e173f3c882f076fc23e418b04baa4dbd8ff62a60e02969390ca457f6c65e43f19260c5dce07576956fb52f2a377b5f30c5a4c32776f6c32cc3a844b5141b6a5c3cc7c633861640ce39572937c23ed86c5e4742e9b697285c6f564ed95d4322f23c53b62bf13d615cfaa7ad9ea243b939c21ea05732b508c6f93d32cab463269e2a2ce91663ae93df14f1f3c0fb849bfe28a2bdac6cc26111dbc5526e2ceff794a93ec73d23c1a1f981090be31c0c5dc9d67b7cdda3ae4ebee97d806be53acb0ba3641840ec88ce4d3e6bff8bf206e80c221d0e9be876d022d5620c1459fb5022f63b523cb25cdd97b1873595a1cd65ddce3eb807b160ef90d904b93c3a4becc45c8c74573368a063f76a64a306ed803630b2719cada1e6e80480b451cf354f588b7a0a4b739914f287d6698ed6355d5ef104c3d9f84531679464dd3e5c41330039d8f1190c68fce2d14c505838908578de905341218fb6300e07c1a3499591a181b4f818597d210232b404f53769198f3fa001d24575c6342545f7d909ac5dbe82a6b7cc1fc3696a8d178b1c911204f5a5d63798f9ab3beed00000000000000000000000000000000000007121821262a2d39", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 11, + "comment": "signature that takes 10 iteration(s)", + "msg": "8900000000000000000000000000000000000000000000000000000000000000", + "sig": "1828fc2907e551bc3c6582c1acd994576e3109d81be59f8037d5d9e8dd2dc950d2b8ce7fa02983b024a75149338c8ed23e698895dfd451e946b7bb54c6a342a585099d255243ff4383712f1c7d926b12e64d6746f753b19ba64bf9fa9392eb8cc893110df903b9f5ec60a2dbada8eb2f1b53db6ab0735cae06e9cc0afd89904fdff66d6a2fd7468a058de8bf05a1468457944590118a8812a9a2cfce79f3c770ecc878eee44302de8dc0550fe32f3ed7603920a661d83141fc221dd0116f83c3bd53646f9380f12cc5c3a8a070a0577f4bdeabc2f692ac68bb10c936b11b2d4766696945bec68b721859513efd275078c51df6b8bd8e56bce8e574b9112972283e30202e98b7266f02b01d92cf9dfc1f59ab22683bcc46721669140018f41aed4753bbc545a6a4e91b656ca58db266ded78151c0a8d686e4489dc869e7c0cd71eaa30af096e4da56f33287b7057639497d69a096bef15e72e651dae77ffbffe10083d9fd9be93786506ba9408f3f911d5649c005969ba4e2539d6cc2ba9b9a712193e5f55f6d3a94c997e6f8c4efddbd72d6eedc12e4485ea16acd3de4f78a2a18877a7f3b12110ea30a880583e0f84c7febb606f627b250fbac130057b327e984e6def4a88e0815f095cb6b1c488fd592753119ba431ef0c434d1bfd7998ab490e7eb5cb78b97ffd19c5c79c2257f275a9f11db817a5b7266aaca6aa4ee7e6fe3e3eafa53ad9102d5d0f0858d3be4defa3af58135a785f521f77652406ec00d393507458c29ecc7a9e476c67f79bf57b4c1a439024462ab9a402970e95a4737a9b742fc0aeed671e6a097f3eb001cd443669fd84b75b9b9117b1766bf680e5ae99940de26ba0ce1ba3396321dcc160c2478ec8e95bfb6c1b6ceec950027b11f8baa80a9108f165bb4f97c4ae4a03caff0fdd00127576990e1c6d40bc1641233f73a26f0d50cdc8006797bc2911795c2c193aa9c6fe084ea9e755d653ae79446e13e798944e8df71addf8984e1ac4cc64c9b53b752812f7d866d52199a847887324d60f4ee4c98b9fe9c217683b3698e0d1820b2b1bd9a5773c57a2462ff468235ebb2a2ae33b0b6eaf50e44b87004d0f422ec0c447cf5929730ff3bb271b61a28b8e38df72202e153b81c9322dd1cd00be80dad0b04e5d0edeb9f6c1b2f25b3b5c343bb744badbf7fe72ef634fd75ac7fc6d340b77dc06d6201aedb8572b8b7af5645eeb6a7b794057bb79ab62c63fcf2f376edf6cf5ad6d879600bffe554fcc270b6c6edd957036a2206d80f5085a9e4b028ac53f588f43f812bca3c6ae48993229b810d2210c6c490d0d2ceeb024c2e98ab8b70a8bed9e5468af527035e45329af91c4d53cd78d7e35e8df53326749ed5e553df6d65ef2f2d127794c37feccbf6e88344989de881ff6ec63604a8fe3354f904c3a79cfdaa8e35ad7badab1a06b42273893de675d0778eab3d9d39e2fcd22590ed8e3c09a133450d34e7b3094f8820b5a152e634a744e31ca615950c37b308a0b4a243eabf907812c795d3f7f4dd0ecb29696384831f66fe69cbd125660de29e02529124de77562243d6a4a13c00e8c888d3a958dccc214029aa731543181a634d83df76d1e035599432caf0aede0c9240d1a8d2a260c7ded5232fe27da707a20e692deab9818c11b1b2e80e4de955a9ae5a6202b765e1600150e72064c5ba863acda491bf3a205eca1159b59117dd52970b981cf5f92b09556448f5e6fb96195f707e5c750e7c00d220987462a256307eb7d27f21bcfadb129f9b449035a867aac316717ab9129c2a803b9a9345928cd0a5c50ec67a5027f5fe3fbd039e3c02acfa0f6a643d54b0a97ea538683dcd44aae01402ab49d335c166788d9645d6feebcdb1e403abe0cbac79057c36ef7cfb355bbddc969511d13cdc1e5a397e121557cc83335ce076e21171b00990d00b29169a13f9c88bcc23323b1c2ace54d578c1203d59b6bb33230fa7e7a182e6009f7fcb89234dc9c38698c49d5b111b0d4ff418525fd746a1d25cdcca728ea372481d4b5b13e2510df24bc77edd35c5c040bab23e166ffdc80f20a567f563c2672c6e75fb00da410c78b344cc2f24a67621c33716aa325aead190ed5745b40aa4e02e778a253755a9acf003b309aa3e9e237eabe25b9c2aedf1f284cff57de7e405cb59137a3aaeb874481af94f3321c8a16d40edf6705b604ca16446f2d98a385dc79d5e5a709e0e60ca0351d6e09bef237b9eba48cbd26d669bbfc32bc58b3d8a3f26c3b24cd9a1b4a6509644341a25ca40cefcc1433b9d698cb0083a83acd158d1e7237b145bc9c742834eca5c29073868723165215ef8b26ade9b2675a5318df994d45358c8299d2aa45babc837c5a4d529e02b85c03dde5b928af10c8b1b2275a2a7b9f75df5d1516093716fd4ec7b4f5c0b5c334714286816c3d46b5f40b97d94cda5d9cc6803b35925efa255c3d542209dd5a71a20c445f28c78e35db9760de36a0320718fa00184f4d0bc8869257f2ddd71fb59c54034e22585dd193a025085ecaa2d3694c878a483c85e0744fec24d0aeba59df00f15558a71089b6924e61796f550c30c066ea5ee442dfae1300da830c834b0253eb770e3892a6b6d8ec456f964ba117fe400a3a22c39daa32f58f4a6bdfee5547e9a99da3d1a7ac0647591932a579b267188c5322de44463cd8637ea087ba28410c560cb3fb0e6ae10edf275ecb911120e53325ce01e26a5cc824ed4e26aca55858db04a9fc077e0cf749a4eb38e99e2bd4f1deb9e24924ea79b80f832f7c3b553e4bfc7e37c3939f896f17edb639cda775711004dbf6f7f1f78d5ed630614cf17b0844ddca39af96385c6206281a05e74743fb2edc4bb2a47835762cd28dd976c82f265a12dc1b15c45c6b0c8c8343f630c8eb320232abc541c83d5df633405ffb6a724ede39501e67821f7f9d2ee3da81290e86b280fb6269b291147dc6140c9028588507c03355bc03112e0601e3369df1d964ecddfdd4b4fc15336af296dbda30537a2c8efdfebda36e98f7a8aa053996fc250e3c69c4f911cb937b17b9aae302ea134830661d2de000d7e76b5b09b41eb415a5a5a7513a6eb7c1012e4a8727aa2d6913da847e675a2d09ad40eb88ae2e15fdef9915a5bace1d11979661078ff9f161fb7d0321b59a3777107b1e7d5afa5a5686f1bed0a535310094c3017aaf1e485e379502b470c28ece0caa0b145bf927972636b49a5658f10e104a08c10d8b83bf783ebc0c6ae97f207cadbc11a50db850dfe512005ba92bed656d13eb34b7e0047e1ebab3f45623d1876a60bc62be95e0a6ad23629901411b31adac5e92a9c0f6200f6c774a7b31f3c3049e0128369177cd95d8320e18d532ee6ccc9ae70c5ca7c3c405d75de035c066130943ea1623d59a2bec86c38bd898dd812338afd20bb48d6c6923337c7a3af30025c0d13cc77e2b7775c1ab851fd4908bf930c722b6dadeb2de06344f6f829ac1d1ae47db0356459ae0212031b08bbe3d11689a63ead4994545c3a6d440708732fe2b3859195eac54ac32fd6989f1ccd013f2cbce0c9a59dcc607d7da9c33e5a9c133d5312860953184433d56aa0548b519131e65987e97ffcf4329663922da38405223505b7d0c78e32acbc3f3d792fe43edd76b65350a78bab363bc9d7cda8d9ead492058c7a786aaa0fb34d97bad699fcebc01c475bfd6e36659ee154d59d697b69020249b8da2d4e0badc40aa3baa95fb106247f18ff78cfb37f414261eb6247461cd9b0629beb7d3329c7295f4b2da73edeb8dea48382416ee952c5529f8200e755633ef8cbd2c69649a0f3bbcaa7a4e3726d8ee344b6989d81c1720e716af596757619e34b12f250e95f2851424cdad1d78c0456dee2aad97865f11d434632a78d94834b6f4b8b38eb6000476570c581f846c59f8798fe28d6d21a624c0ae75c7fad80c33e9a39792d4dad92125cb0f8e7e1dceb474dc6261df2cc972d058be16a6998c7f415d8e50405b2a24d3588dd9b80c5ed137c5cde1996304b74cb5e67666d1a01f51085458375db30d194f886cc75af4be6192249c7ab1cebfa5a2550603b657d3c5649f17eb2168fdc8f75109b07e01a3d68c61a1859821f1be962749f0b6fe07ad5f3f4b58c6059fde6e77dde6d93d5abf27e7396a03a5d650d610ac7433d18c4933a8cbee7d520f8747558fc87626e13e8398d60673abc2def99d9a50124d172d149aa3abfb444633ab88570c6d9e4970342ef856816b892b27b90c1b2a58839d994be185840bc68cbf7ce8360cf9920a3cf08f84e4207a8de21d1891b30d5eb46e18e413647f9405e29283f8007c1dbeeec2c389d0c0a80c31fa6a2a60a26e6cffed40a85bdd2918fa4ebb93bfcda6bfa2711a093dc9007bd60483a4f20042cda5c590e558cef1cccee68ee0b697aaee1ede43e35056f20b065e765de5c22f63bda7c54c6d13fdc9b8347bd56df1ea4daa2a7d039ee415cb3251ed2a19957b97fed34df712faea0873498dc8d50429294e02d3075f8f6641bbd83a929d968504c5cad2967c24044609e834e4c3695d84507413f26dd2eedd3105c353dd6215ccd7538a11fafe0160e40c7e502b3e474c4e5b685de2d822c83e37fcee39557dd81ac06aef59a4c7998cf585f0dd215b0cf6c598a66b01299018ca7964d1ebf5d115995f55bc16703b41170af2817abcb06dc16a5d176451f507094335d0814dadb018d887d6947abfbe8f648ac6cb1b58326d84f098121845c170193979299533fdc84f6af869996f4e43bbf81cc97064fa72cd0f087121082b97374d7ccb190ad3840671423a6024b8ee3f08c56a0313e4ede8dbf4b4dfa9b09c4194e7c44afca8f87d8ac28cee93c6307580a8ec3a7fede18e744ff0197cd72a577bad8b0b448ac55cb71c9cc55e38bd59795eacb89be62fe3e0d20d91553a9ff63fa4277c6ff4d86f6e166f8553af21145a60354f8cc4dc3a57c546ab0d0c11cb74d8b3b1d0812ac2a1b57c0c651c0c518e1063982e495bdd498819aa826a927d26e40d259ea524ea65694d642f84b940b437f86d9274bef1a3437ce931f7c81a65a5069493509bd2915486c364918dbf66a787f9b477e905557d8bc204522003237558e3feb92e3d8dabce452cba3ede50e4da046b4856635313066ea6f7c84dcdf0888e5bf17539d5951f06b9b60bfaf24b642016746bf376a301e3f0f94cc727348b44152964c7876e12b60496883a50aade5b2ebde4f874d99cdb945984105d145506a6c8bc560f6e82147edb0b744d5342ab6803b2763eedd019e7e437d1119cc9b386ad51b18034c867d4a7095243c8d4a24c27b7bdfaeec64b26d6e30a888cf64ce0f2096c6c7fc17d4deec39499a9188ce63746344f75e8047c9796a921e4e70713ce68c796710906870d419d18f279fcef9bc9599a83d2e264cd571e0ba21e12d0885dff7e157beac2c6935c62a7ad2436bd145986427035d3f29446f73d13284274974449fa06c2d1022525b8a30f4a6b2d993a0b0641018d31dd7f3e77d9e738686cf922e2b35260f3d53f77f076c222fc2d0d81142814bc23acf10446b1fcbffb4f45454e1faadd7282cb52bcacaaa7d4756091a6052a510f632b09c1c4239df2925170ba4ca0123c3857c9c5522a4288b2061f50570337556c525afa22dfe3032ea8230c2e13cd859d739b77dc85aacb863ce49c2b498738da96de1d0dd40a66369bc469ba2e8ded4f61d153674387bfa56700fa1192017e481b096fe3aded521615100e450828cb49758cea0174feddf9201e4b8eef09925a35834e30465d7bd63244d8c79a3aa8f5341d2f038f09d7498e2acadb295669db20504605726d9ae881c1618e9f79d6fce717b06f2aeb4ccf241e2a23cf71f8ae4185ccece4f08ab12ce2b1e11b7b4270b2fc500c15d3c7ba6436547b7096096e6a823f71d7409c9dcc81fcc85055934aa52fc0a36b00ba39643d86840ec763f559f6c94b985b52690bddcf7526109721241a05e8afdaa482271ae9e7fc82d90f0faf1f47d4ad514899a52342dc3e3de7b179b51622a88be1c4ce309f18fe4528b3a2720dd50946dd69dcb5e0d20b6d920a7e8708e243c17576cc2d7a6502cfc881279fd4e1830d4263d836c79aa16233fbd8b77f6d9009f71d5466611773fe439a72353a90b7fecef8b9194fd7a69e4d1ec643c19b91e288ca966156d209745f85dc87e45ba026ed84e1e0ef54345130b3320aff6236b2341f0a8e5a011465e5f211100a59e9d2d5ec15c28f560ab5f8f806b7cb870b35b95a77104adf2e04ea2ccf4ea84c0ef1c0c461d0e3a8a36619401443fec846b6b84c38ef9c9a91e60fece21056bd7d6d33b69381354271e459f90b96ee016f42ce3d68e9ab9907a5d043fd808dab4493197c0fea4070ebe7a07065cbbff0a3a77575b628086cefa242e5b68798f98f70f11b5daec0a1c28335da8c5dc0863848990a5adcd0106102330b1b3c2c515415a85a900000000000000000000000000000000000000000000030a12171f273035", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 12, + "comment": "signature that takes 11 iteration(s)", + "msg": "0100000000000000000000000000000000000000000000000000000000000000", + "sig": "6cc73c863de62231718954780a08787cd0d3f874b0986a5ea5de3a9795107dcdf38bb8a5c46c01b584dd4736ae55250bc609bcb1db6db819ee714a74e5405d8cddf51c016cc1403936937c5d6a34a8b2613b450e285cc28c0bc7a9fc6db1cc109aa6187de298c9847fdfd7df400d87562c38a081e33d5a5966971c6a6a9a0e17edbf34b605d0d54097993953028851c7d6e792e6a9674185b9e97c9a0db89fddbf0d64c7926775b915525b39adcc867ca57f0e8eb13f231729cc466c03ec5e39c37470cb51efe47c20adc47c0669ec27cf63cc2628eb98fd578ac5341022d181c7dba84adec992277b57bacfe427449d48e43dda5b6f65d06757008602f72bb32bf8a9bbf9547326e67e77bcfea408f73c577f412723f3b7f384fa1c8b12bd0b8ff0bb48c02bfecddd8c05b985e67da63501d2b76ab07af7407c05099b2f4237e17d0713bf0844da76e556749ff99d2a46e002d0c3d95f50d655667b2536dace5ad4bbfac84255df8dd1a0ac011269dfc437c5979f6c35baee1404bfe9cced6a3706ea82b64e2dad0761db85c2c6879131a9aec09cefa4f0f46a630710908a4564ae62ebf40272633d4f86f869153b7bf91785e8c2f11e5d855814927a0223b2b36e00a3f97f3f895e2b8f6eec022e133b4c6a54964aa8b35633462681e53147e70df5cdd8483a9d80783a742bdd79c2273c144b82516ac2048d1f2054fbb9a33ec039810e658d290e22ac0da33b5aa3636df826341dd5970557b17338eac7089c1d8ecab3bea5560da6875a7874aef7b78511fa4cf54eeda94960ebcec2f59f51798f5eb3fc16019d18cce3f41ee3fa068129304315a5e58ee0c59cb16d3a1ffb572e5e4bc85e4f049703aa2c5a8264977cdfbe52602f05acd803422836bffca8674d158cfcd0196a498fab074446334996b75679c6d3563fc3cb5ca2686a1ff07d8a61e23feeffa580c612667251f29698fd276f3fd865afa9a72d9f29a948b42342078f38ef421dac5f331cabef9fb9cd4eee4354b53184eed83ffc6ff5cde874e349bff798e6f5a3fdc3fcecc159c3812c1c98f3c76c5e26737b15c1d1ada28f391ccecfb6367bca0ccc2bf76f155746a439fc6377df03161fcdb80d5939907ccf41e524a83af791c5683f7b0823d05738417b597fee6b0e02beb1a5a4b9b5086da4e2fb75cdc5c76ca9665a8ed56fb7345707cf2d10a10287ec269a0645ea4d772aa3a01655f7b6f8334da14f865d4b673786da894f23fca8790f4574799a30e1f4f66821bbeec8c3913495ec0346c0f53fad068fe6bc9027ab4cfbd6211f2603a9eff25f977a3b4fe7e0e46401416cfb2d776718b587bf37c7604fd7d0446488d3847978c33ed94e9dd8571577c9e14226b90cfb1955ed6c6047c7ea02819e8d733800dd4297fb69f8a69d43f03e06d0e5cfcf0a71f65963c04ab2dfba6fc1905ccbb8e33203ddf61218aabbc9e9538df311505cf7cc7dc570a44a96952eac73c3b02019836a11f254eb55c63c8eda9eff87975099d8515f241641a6b13456dd3cfbc4e7c4e3717ad911e3b6cca87c613c373b3c16b67ca2110f1dd86e422fd05f0409ce553e269ecd0c7f528d270d0782c6105ed83dadb2966e7fe5ee77dc38606ab3011ebe4a5b606b2595ef967feca05c26d30ef8bac68c09aaa5e3f87752b83cb78d330ec16a5ebb1138ecde16c76bcffd894211f8fd6b7aa09efbd1bf4a8324367244d06fd017c90b793da27bfc19727a195eb7312fb9b3ac19c66f8785f448a7ab1c18d814ae988c2dc63a3dc6d5fc1fb3ecc9ab5d10363800a766c733c7a6c2edc7b0c86a817a0892b657920f78176691188bc9e82cc4e6629fc5cab248303608ce0fe69724a17eac2222b3bced0aac4c2059a923ba98717921499685a76c53cd5a960d55bce9a6f164b616d06551c65c27576602e5b1d6215a8feeff02d4427bd860630e6aa5b36e6dd53cda37776e1700a63a3222528246fd7f23a1e95ed2e3887ba71064f3e7f7f07a8c3a045c1f13aa2091ed378f855587f5d9f0b449f1ad5b5059d28ed3be95a2a8c466b2a3cc26a8ec716f805d149d13f56462c29585b3b9db663c795cb0d1866865eb9794bd80501e2a1e0cfe8b314bfb9f961c4da31dc6e25831620dd720043c4efe4e19b6261c479b029323c630f1c8345dae9235126f6e1c7e98143b976dbb2a6a09b8a4e01d082d6f1b05a18f818b8777940ad413be6064d6287bd93a7633cc64675c7adce7aed302eba9dff92e04f8d6d224a2896a2dfd27f79dd83dcb4ea136d16d50e7254f2ec0ec55f54edad4b41d78d8d8e07051f63afb6ec37c5cab932baa9df09eeba24b1d3ad9a923e163ddacfef990df40ecac3c55d771cc8f1bf1bb98452d14c93652b25541105f4d20271b250ad2a2a2ebbbdfaa7411a895825ed901412e195dce9d7068e25d34d83e24252ab18b186bee8714ea9ce17501c9543460c2c201b5bd01361736fdbc5bb92938cb2a72c60de2e5360c5a2abec236a1c92a05de478997a247cedf0c9d92d56f4eefce7610b0756119928733ed878230487e6c01b34662bfdb550641d2fb2d41751c66c9eead25caf3e7cbc4dbf0b2bb2a1f9a407fdc9e37bb2268aed94c9163109a8014485e74dec6159f87030f656a6a7266fc30f61cc39a600fed90a4fb8f1837ff9d3d4625e335d87a01a46929c6ef243aa86d1317759200a19f4ac2c24099ce615404fa0b816564313b41a3d2b79a812202afb78ba17ae65a8eaba5139440a4d31b73e9ae16514c082f6907a7ec07da44192cc6325d8dedaa3f0f28bfc92a7653ef5738b9bba85ab593a65e17af07913d321be4057594e16043ca609e308efca3c276840b49fcaf34fa7c38c43fa898800081f2d6a1746db7a950b5cac48d27a420ac20624387dc78194bc29299767e1211f0c7b137abb6c3321b69b546e2782f6c2c29bb2ac652aacac2ce664d95d7610156dd4bbe8685d0e0af25176baa5d8b04b32de81ba8341b4f2afcfa13ff7c6a61c3da03fd2cfe38a0302dbf1882b0e8dc10851aed0205f5ba1d6ffb584f450b110ce1b89ec3f909d0ff3f93932b524ad0f098d7b2ab7037bfdd4ebba64c34f5cf9c5ed1412f4ca280c73fd220580089fc91bac1c1defb0afcbd9dd6e629a1c4f57b4261133cb05830029429f4b4f381a3fc67e67b57f6086e1f49dc13c52d87f28e27eab312ab9e83858dd459de672de08ba5a7cf1b3d073512f910339e56d9e3731e6bba4b24d9592e856c7e68fb0fffb73950e7860deb0eb32299076380825edf4cc0fdf7cfc81dbb5aef9a2905a2e07fba19741846a4ba3f81e2516e8d511b895b5d6d2e3900062bb0968e096eb0f104dc03826ffe59c54bcb3980b30680f643bd78b671e2f8220f09cf8b0016c98ca44f4f75f493bfce3a078052931a7318aa36513903d226161d74c7c29ad9729fadb33caa4109f2c5c976af1d7e779255042d383044981e2071ca6dbde7a327445e7a0091c04de78d22863ad849552af5bbd164c64315bc592bd498ae7261a0149511d030b2eb8d562479d0402085e60e10be98373ab74359e5b0d0eafe2768b3342210f9a0cd05339d08ee63fc380d143f05e87774e073d8442a548e3b7ee568fd80f09094447efc4d5ccef0143fdf5bfcb7346bd7a2798d312cc8ae98922e0f0f7756ca44647dbc62f93188c60196ab73724337e7c64ddc9f71ba8a81c1c15d11422e5b58f68f817726e2838cf365207789d6864c4566c3ee723e4c5b339f3af37176cfe9197359c489c3cce9c913e810d96af017484ac24d744e688a80461eb921d4f8e527c9c4f9fcaebe8747132b6bd9ea86c783f64b53e876834c4f08bfd3aeeef689fb86f94ad8a44ede78d3f0b1219a6b5afd56d1bb61610bb7bd925232a287ab5e67ac277097d955cd1b9fb53050a3e3252af91c9169e4027a7d1c289940b860f5fe90d6e1f809c6e142cef0c78c07235cb2e5e9a5c3bbac836c0a714c0bcba74104119ccdd0b42699ab19e37cc8822574554acf9c2c70712194626221ea08d489922655d7996ee9b2fcfda76939e77b390f5680958dc3fb41825c4850550ca350255aea6f27e720867ffcf38998d02c2b4ebff3a7bbec330ca2b2cb83db2880f0e130b7a573b71b76d87d191c436ade5aca2aa91518f86182d7b7695815d813ca0836f028c6393a6becda2710f94c91c9cf4bfcaabaeca174b6f84cdedb9482398efe900b4cb03ad85b1e86c2d548f706ce6ce7abbe994979a400d28cabf7fca42f3973d3a0e40abd365f3d82ff0524444cfc7bb0957f8ae1f2af5fc0dac136946e1e70a71b13234c5163658bcd76b9a7986edf3a525335eb750c7e9f888a35ce81528a89a982c85685648f43802222096b3ad88f4c64f9323bb10835f64d856fec57398af894e29cf2c1402c9188f7876e455bdf7254efe7e28a47e72ea7c557fb6dc77329c5c5e47ad783d0cffbe60c66e5a20a562364ebab88c0f698c1caec92fd4b39f8814f4a05e952b978c89c3b63daac3d63dcc6f273677f7770798913452d1f2026caa444baa224d3b4b6fa71d3a1311a26433a7d7084b915e918da3b202878233d707770ee6e0337db6bb8e3118d1ed6a20849764275e0207c30aad6e9dfbc629543cda5a611de0fcea2bec753446ea2375d6d3a592d7f8eeb817ac218df8dfe5d87164ad914b92c596eb3ba5bf707d0c8f9cdad958f224a01608fb2c3c4445385890ef33c6cb9eef2e2e3d2fe16a03137e5e42f47301ecd5208608e13569becc719609c823ab4a52fe47d4c61cac464ef24718fb0a4475d80e3ae2605bb96cfc8311e62d85a48f267ed88af3f9455d87b8712ef1c79f3b4093db7ea8fe4c63f038065ac5e5b84ab672bcbadd82331e3c8e4fd7bdab926c7bccac1f306f7a5d95e75674b64e7ab203bf79e04f48627960f7179a29c70325eb58d1a9080a40d3642b712d8d1f216f0653eecb6abf8a2f40e07a03bacc772a2c537d267dde8bbe481b7fa80132ce0fac96c1aaf6df3d427b592ae99358337b019bbba999ebe16947e61e27327d18ca78f78287ae57efbfd1f19bedc86f39e264106e70169e8eeda2a93f713857a588098dd4d8dd7159261556bc72c811a191d4cba0831468a862701593c56105c2d0306620f37e5e2a255555ae374b5c95c1a4dd1a3bfd0e7ff501a08505c0cbd8de2d26a53d9e90fcb24f926c052fcaf65917d74b13d7798c90997b55a41e60ee5375deba064ec3434d83e8cee5875a96d87c1754986baac33126f419a0c7084e64c0d69bd411a6a609ef629684b6677f916889edd267b28146bd2254c5fbd1d9d5de379be832c49270464de9b8be95dd883aa1e7f9e227fc18b77886c2445accfba514c2a870d9160d4b5613b02dca799266494cfa4abf6014b97c19755dbbdb89a148f70f9e09a65a295f0322da6332b75c8fff7a4c51f22b192df20389875e54278701689616f953b865532c697def1fc5114c9af57fc43b0be42f46c7249a8a860fceaeb0c82426da42e6fef52473f50c1917247b2c648bdd9f1558db0e61853de09b394234d423e17db6d8367a570ab62bcdb82f36cebc749e01dcee7a0cf4d2a27d7f1fcb68285699f8830cc494f82fcf3e973fd21ffff1e58633badedac5d2ed43f9b26cd61fb7537436b1cf8fcb894175b43c819abbe46b09a43542fd5440c77591ec498c43ab38b88ad2e5b1ff6470400d5eafe0154269ad4ffeb8cfccea92ef6e49b44760d6f7839927395246ba6f7d15aec0a4ed6a5908ec7f6f310abf06195b0fe78918d930d1945750bb0ac73dcd4f5c1b2dffdee3d4e03f4df7da42c211be9b46fc6f31a6ee8370c87babf32e9f66423fa7646ae6d87ea53204558bb61a3ffe91a5d7b6c6bc2c56838ba7c2d43cd93e5fbc9b0e454bf9b25c533b107110758b50d8c70a54453acb3eb5173e4332b8dd23b117b2fb5ac0abecb3b1cbaafaddddd2f06d349bcd773e676bfd0c2daeb21c04ef3d2a978314895a401dbb7169ba8e9c8c960f2cc67f2104468c7cc69206ababcc516c8a96b008640c04ef162863f01da3e1a0a0d912cd87171fbaec3f52c9fcb2fb7b306aea1b7c647e88c7fe72864dd3aa4797f5f9410e62c5270a9b624fea1efc5b00173d761407b0f71d20dd20af75e452803f9223642bfe6ea1a3d4488255ae2df3578cb6bf48fa5cd9ea1bcfb7bd16ece11f297782f59ef1db5c8299f1857a1070dd0e971658eddcfba0ed6642ba4b8a67683595b30cd934eaa367f271bd8231b2cdf8c6f348179cfe83609ccf32426d021f1cfe4ad1cd17d7310a01b253b2288b4af00d1d0d73db1d8b7f90988c0e09f9a6949b96d432e9e4998b6cf9d46df6d1673e13f3f6c899b6372cc724587afc61e5d44d7a2fc64dc239efb48501c03eb31f3d53ee79cc433fa447880c74194d420a5b5040f23265bcaeb0c1c303e5d929496d4f1fd164548548cbcc11b34474d4f64658386a3cee1eaf72a32334e576b6f8690d7e22243485f87a9b4de012338479dc2c3ccef0000000000030a151c2a353d46", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 13, + "comment": "signature that takes 12 iteration(s)", + "msg": "8500000000000000000000000000000000000000000000000000000000000000", + "sig": "145241a6a9bd04f5d13d63a78f4440aec65d18d04f2ec73c57c637dd0e0fff6fcb495a0568bd8079dea59461312fde31f7c3a5b7acecd8fc90995628aa3c6c30f1467e7c8dff94a5023bf214ac3f4018f29d7afe41c3aa840bba738602ec5c828dda17c5e282a1d053f2f73202a3ec6668f66eef2fad15d1bb692750cdff9320a153fbde8c497a9e153c4f87189d76bf8f0dda4c5f6d7c6ee37eae3e89298362e81acad80a98df52ca1d9448f10aad5415b24892c58a3730bd8e1298d46d51d400e47269df7420d7f4db8eaabe6ba4d9389796fbc6ac09e6897513c72a9bf3767359c9e374329fcc500fe081c683b519f7afffa675e66a0c350882d748fd61544db7681b2cf74911092f3245e3cab531d02c8624c1d6dc28a51aa17060b5f076c6f8ea7a1411917c1940ede4788a3c67df02ae8ec617f28ee7d54f08f43ff2c55f1e2cff2d5d1f2f7f5a6a4700b07d4ad7d89432ddaa036526405def08e38c38c719871e7842f5d1aa448ca839bcd4da76cf27035b65d2108279abff8390a6be23bb423cd1a4b3089a7d9221a2a1d49efd4294db3872f6e41df0c3af78942124834eec55a428d73ecb1a2ea85034a409c680ba67111f855fe5e62fd8c9a06894647acf720ffeb6918a4a34f668dac4bf6f215284445a7a9470172cbe8e3370dcd3c19a3fb35dccdcd8ffa6eed831c5e1bdef5b9ba12fb8274002ac0292f1887e9b67c40d7e0a6b543f6216492431eb55480493b7f9d842d5ea7bf64e6483497788a778a90eb3884d435b06282871f69c513e9395af247d067f43fdeaa92bc64ab819a2b65abfd5025c37abb006d85d8d4ee3442672256ee5f25c6514d0cb3aaf58484a1ce844fea9036d63256e01f95b0a897c186bdba14edafe445c65f1ad56ff8e5faf9ec8b5110b256e637188a41a5e9c72af63731e26bdd6207555dbd4b0880b87ea40ddc7fca39471a2de2643a365ad4f6384efbf8647fea304fe158a419837ff1c783214397a7b3599ee45c5865f7550882603ca92eede4d596b3921c0c7eed67349649e6095d960d46bc442b9d7bb0561e639814fb6bf751b4b0bd1a4ecfde97751aefa715a705b432df0c9228b21327f46aaf3b2bcb1fe3f716725f84bf1d752dc871d53a145e6c254beaafc246c0d7337ebbaa55d9946af090211b3cb2f1a84e81d75233fbea931a8d0e0f7cea651229c3c88751df7e52a0841272ba13203e6f4bf23d79c001ea120a1fd92265df1c644f84471b2d9c4b52d9aa5ed5b9f7f72f88a1d56db9a1f75d13656b4a46b01379ec989088d25ba021f886a21d21b1c15103f9f90983d9d7b1c7aa347a832d8e11256c428622cf4fa4098796c68e6cbea18f2399bf1d27de7a1268d68232211c4917c9c290ddc27e2957f4b59ff43f4a81aebc9fa5743a3de7eff63a9842c8b0f1363544576609909d77d9150ddf9675f495252fa44d5f60791cb68947a95dbbd7a6c48b062b6efd1e74d6e1c2b5fa3c8ae3154da1475b3893519558e36c7a5b488ed96d9ea4e4b0881d5aed1c616cf00971541b2a5f677d545176597d11e53846441191988b5a6a42c0becb3624d5317e88b41715df4193dc5254ab12bd6d9c30625dc9512adb60955fe2f8a618bfb38fb88757f73703b7bb06d7b1145aa6927779c756387b88263f838e9afd53c2a0213e99466958a612364cbb518318961e2763f54c9e8be276a1e61686e0f0c9b3336a0f46f996400669c89cedd15349b37fae919e1e40e753493109cef84abe16c1cd924e6216554fa7aaa2768218559ee0adb53d2d51ea7c7e190549a7fac9e8bea9fc5bf13728fd0ef738f444aac0cff2ef4f4de66da13cc28456e4947557146ebe5ba9d954aa7f610c8826413afafc06e525eac169355f0a16aa61a1bc4637db6e317d42e9ddc3bc87a20893569f562836f4b4413357e60d438e31baa7dc1809302556ebd802c896e73e1a5f1e71ff9030a8b8f838b3f92555580138f48c4b347497e3e639b9ec2dae57fb4fc1755e3480ba819eb4d3c027a354c8f2eae8b0f5e7c23509018956d8d3daf58dad49a3343a35983df5a0c22b15ed3ad30632cc09d93fa40f17211ec785ef5990f0e1463ee53060fd37c8c6940d8b189559865709bc6c948c6f923d1593d94f6aaf2c10745e8c29ae5141108a2bd60e8993c666f676bfdd5f28dc9da85786825aa74d4bc90a4ac3eee17c7eb1a4f9bfed0e64a12d28f94eef613855635e87a4565ab458af3546d541372070c1b3c8a91ff8c58ed229744f99976aecae912d67e9b72b686f7980f46f8edfd156848563e1fb91489b2c225d6021a0a4a09385849bcb404d3e81c98d39364f0ebcb7872eba11d02678a65d30471c8198f9f525c68b5fd8188e7484c12bc9f292b3b705f10ed85d1988682123ff468d6d93fdf1736a7451a80e474fa8ee2bb5349b55c6e13b16a0e328c1246ba044b405ebee5e52298fb6bb946576ef88524fb11468c06381d370075de4369a936c286ad97077ab39a966b711af83368bfa9047e372b0aec2f5255e942da48d63d1b59f66532726921bb166bbcb058203eaf86aad31b3dfb321cb78f9db3410aef297d33891831a6c50a9ed26c4fe28a4eb0516c8531b051a2535c64017e1e7478af157c68c69bca014f8ee5aceafa5ca8e3080d5099198262d221648bce65cc3180ee53959fed0f32115a91678f89d1e9b52cbeee59a8640986f002af2bf31b772d6036979564d654e2d75f53ba8e89f9ef12f70d1d9f542724527a9742077051ec3e2d6f7350d819f4efd77e7b73ca4e45676e669d9657f4d373edbe0cb6fbea861c543dbf820583c80c4fa8fc13ee28880361572e6e0c00e64168eb724e29896ecc304a4de3202f514dde4ff12fd436c9cf27da482fee80e76c0a94d58635f96394a2a5cfb0855a132ca1eb1fb061232912069d62f63bfde2c7976083ed00da605990952e952187f0f124d5aa635a4f7b66c91b9efa632cc4f32227ec314f6f249970860ac4a35b0606837b4c16c4368f7c3cec85dcc1e2f39f88ba907d1c4a52c049835e7a2c9c2c343e1b3370b00612923ee16e4c64de2b2cac29e40405a7ababa425fb6a3ca092dacdf64c69d361ef66068934aadcdc2afd937cbfee1c6ee25232231b177387dd9ea418485cb069a5e1288de1d31430d9402ce29c6ba97c4733cc27994e311e802e8c5ee4de7015bb2b666e6f7f347fbf2712ef3229da467b6b7bf9ae082542ed9ab4e210c91b1d1b50dc2aa76650c00dc644d185dc4cfdd537058f2330f9d67131fc2b69e588462282f8bbd6f99700096712a6d925471d20904072ce91813cbcb58591d1aa41c74771c49cb590f28576eaf2db0dd3c83692008f8453328e8984737918c3a200a5dc1f715823449e7f53892a4949f1e949d7444d6f6f01fd2a87d703b92cb559f926647d4d15b3169fbf92b9483dce54c30faa79389bfe3b06546853ce83371a87eb8ba06f09201b9d49edf788e0aa7e423b98ba996573d0420a525835186ef44d4349025e5a022702770d4e873dcfa344c50624d4c6cc5922e0ac94948e28cca54f9f30605c84b07fb125999086f4911892e0cb325a02c27c7b4633b6dcfed1141db39e440cd5134fa8bbf243300c5455fc7c4e4337401f48a07af59a9b73c22c51d6dbac07cb9fee16a3d06002bac7f154362b28b2a096639d420723d640adc92ec72de87630edfaef4c0a4e1b405574d593c8019475dcd401b5bff6d53f5a81406c0ad75dd868088af53b3a7a45a530de76f3314bfee725b43fecf15ad59cee4593796552a846b2765cbd98a7287b8f306ba2cfeae39081ae6a5dec0fe6a0bdb8fe09efe3900cc94daa3dc0819960da0b51385a7737dafd6b601e87d3dd9bc45b738394b1e6b4be7be540f0ad1a7683c98d80f0e6663486ff6abedbaed5360a95aae63f00baa64692c5d0fab21693fba0a4b8f517c04bf27846327cb3456a0629dba59bfafbea25ed4487793af7c1ba841b103137526cd72b5e5e652fee87561277859109d9759b88a0984d34e203aa8ac351eb2ab7b354a8299f02ef161ae3080461eea4faddad3310bb3d3dd47a49535d53c50cba97dc79dafdd5a6b76656f55fa830d1c34b96ddae2bf41e12b858556af3038aa658926f0b33a058d9be7395c582956c2a0e44a9dfa99deb73e0a91ea8ab17191d7fb8f71b549a7b9999f76a3acc7c6f355541dbda04e551a61b55c59e0e3c20b3d15c87ca6c9f46801b3846fa98347fb053ebbcf3b0f704cb5ff4dfdc12cd0eebb560631759a8d6cba983a05a722dc23bed5a3d3069a415e859a0460e14f1b0b8843c068c5d199bfb2d96d6856668293c2affd7ca8e788e8f5f2e68faf0613e4038168262e10e4f33793a8f6cda34bf3461606a5473ff82ecbfa0b2024fd8f5113ab5ee2903c6f41a5bb5f37f34877bc5a3946f952ffa290269ffc8842b6e2f31f532a059f7515fec5693669c620f93d1d330caed8c0a72910df916142397bde9faf898ccc7166fce484c14a77b48a6f725d35da861375023d705f8ccc3afe271b93a3be06df0c901faf45b0f48d60aee04331e9f39b233566e505490ec01566253bd0b46b6a63eeb2171872a4d0a0e2c15e4ecc00e6510f6d6e3704e374cb5827790825f5bdc97801592a4a4c464924a5f0eb665166d7cc36a28ad92d310b876b9f05b8d1edbee25067bc312bdba35c7d235cec7f284c4d4c2954c1f8d8e07391dd4b3ef2c0c49a21753a0078ef057e83dd7c24283bc2b9ca61538adbc6cdffc64bbde1c5dd71bd1f001b1ba6c5a9b5b94f6122ceeee750c07e542148247d8bf65bf87a2c4013e79a25fee159a7fa0b7e0c76c475e8caaf5b04e9b8a118a9af4e6e0d0faddc77e5d903dee1a8233924329436fd47abedb9d413591d043a52cb9ef4e9c51a8a55c7b0e260f1002cf742c3ec599ce35be666a27fdbd0b809b9a14056a77cfad19b02bfb50cd8f586107065b656768460acfb486510e605745bcbe0f4c643c729e05a33706fcd2b479aef4071bb7a0870c51d13ce40a737e98990dbe72fc2bec79aac5e546e8f703fcdf567f834bb55a00a09ca2605098bf86d4eb1ca997c7476e3a0136622e000f6e99c0c792cd54777d247051d7e30f3b4bff39df7852bf86b9a004b3754b9cc3633ca6b1808e4c5535a0a5f073e9023d8e1db88a8412f9e7ef6ea4fcda6af46cb812197ac268ca32c1e2d3bd07a94192c5c7d8a0ac965db845f710a15787f9faceaf86900a8a5c3435305a94fa529d27d0676f0e59a22aca20c90d705d5dc9d2322938b0fd10bf864f2d4ed1ed28f5936e0108c596f76ef684236a9a0044b736199675c8a4a18dbffa8011cc5732e4f02a3ebf7630ccf84de23ee36937d62d071b29aa40dfd29e86ad9173e1ff85735684c98e395727d31bb12b23e662abaef57621166ae60cf83f05a4b8140395673ec4de2ce38c683f6552f94d2fbad73496dcbd528df400f4cfee6cf53bda27ded3de381edd507b958a1e69fd435061d4b3caa3096be21db01b15de12aa248f216703acd6cfb903e550b74d3468c5a68509e3ce1f4d37c012bf96a8ba56b8438424724f6f3a966c8928bcc39209fe234e8650700f43e1e8acd37aeb3755ddf2bc611dbd2111d7fcf72dfadecd057336d5f3f52b57aa39e9ad3123845b0f225687ea5d16d399af38a80ee074115425ad8e250b1da113bcc1e1a09058733afa0340ed43aacdd5b6ea9cb9b374e88eb68a3def332af81cca8f70a50bd405db10950f8b94d6ec90850af18e182ededbbec692f1892a830c59e98b06495afc0eaaa81cb50a455fa584aa8bee1a3c3ccd1db61c901d8b0f5776bb62f92cbc3f29773192cd87b3c88d4abf3f7948b81f7a21efd4d40a1eb62cac0eb25d9b9626f0a358e5dfe22ec31c6806bf17a1541f97fc41deabff214bf39f3ad8151dd9b344e2c50dbc88c9184acb4a9d8b75bf09bb75e870c5279e44a8c9256e11ce7ace672ee755688f042026b8a7f748ef99e422d93951b4a694fd0553d6f6948cb490136a296fc96ac0f8e3e718a59efed7ecb4978e409c9d09c4470600076756241b955c14eb7af6a045056feb884131b2fa7f6be218be3eea87c7fbac3c2b748ddf875cf09009fb7fd58e8cd05052a0f7eb7a95462e107721e56049c8968cb3b79cf1446f564099ce4b8adf5368d055edc785f72ea9c36925e319812940a25a1b784ce40e42bc07fa163f9e0567b5a8ac98625922bd05c6346e1f7d9c8999cf4bc1669c26c6d8f13d2b251eb62cdc2b8194825dda2ffe2e4fd0a0ec6e7ac48f93680771ebe47482956e01f2a99308d7f416c64cecc65cb9ee25fe17fbbb4b2f1959dc1bf7b3a49f3d2bac865a3d87b35088f0fa773450f16c916e29ed3d17e6a21bb71b4842cec8629c481e122439bd6ad7510e0d9e6a4a92b2fd4763a1b7ebfb09555b69727b808bbdf9456d98bae0e5e73c47a9b8b9e0f730319fb6d53c428384a2fd2d314e5d656a72f698d0ff00000000000000000000000000000000000000000000000610171e23293134", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 14, + "comment": "signature that takes 13 iteration(s)", + "msg": "5b01000000000000000000000000000000000000000000000000000000000000", + "sig": "b1250149564c01b3335c876bd7f0c6cdb6bd12778e5f975cee83de4d41d7aa9ff30c9c5fc2d281d0ad0c7f3b2b8fa4ff2349e87490f55713ca6ea175df613a023dcfcafdcbd1f1c25479b4783fd987a9ddaded872a813b5b4b8b9b4d8a2fe222e14be11fef3cc225f901cceabbecd1434bd5599875ceda49cc220916759cf53f5878d45ccbf22a3d6607d30e5148266eeb2f85d7da3dc01536d020ee268ceaedc26693220eccef3436a0da43d40581da80441f021f6af3432090bc2a65cfe0696e06bfa11a4c2d0e02ad178214a62027520879710343635821a433b97e137bbe4b67b26db8d6cab96fe0223fd24f6c03cbfc84a4eb6907f0f86f941b095c7674eded93ea340789dd3e1240852898dbb4cf2a2fc51db57a544601871a6eaeabb4505da32274a3c585e19afb2ce4f529947d1479e7cf38875d8f77b790ee494c4de8a7287108a3f78857885d7ca8909f3d77296c0534e3b3c8796771698fabc08bf0f9dc9a6bd37b1a044310264851c3e1c4b57b8fe2f1b4dbebe4909c617c2adf0087013249cbc9dc2466e4b8ef46c08f51e8689c9a5df1cb8f8c57efe21aeb8968354055e565b8b026da62a8ab558c8549feefa9ba29342893adf3d26aaf3afc126117bf52bd4e7b47f06c05698a0e99e91814e5657edf7f3466c6644d2abe9d17484ea5cd8c3638bfc1f908cd7663da44c2883bb8326b0ce6bd2a62d106795a22470fb640df14ff9bff443f46b22b6e7db4be53eb6bf6d61c81712489d620cf0709eeb9aedf5827b54e8280794de95f4e0cefd060594a415c6dd13d341d8dfc54d509ae6af7b0edfb7fa076d64afeaad62ca950e65a95fd9892111aa1951a024799afa5f99499a7ac232f5dcc10b33a3f8624d3a73399999183204f9344d397f87e90aab691578aa42573c921673c8b230516e5b20c4f860d3fa0e6748ca4431648d593bf8a40721fae33636a6372bb677c6716c3189f47243c25f1b35314eceb01fb445da0c8f9f89ecddf33d9341c609900df82febebc0720586c3c7641f886b37382cde6bb26a64d529acef818f34159923c84c231b823df4a147604a9f2eeb14e00a0d90877171eff7904a23900605d0ab848740a0fc90055333a583ad583272c3a425cc23679771ae962194a3c864bef514f22f805bd75bfef7cc694542d4c9c4a8338847945ac86fccf0bc48216c19ca69b985d7fcac1ace41a875d1cc719ece6e53c4f2fff5fc91db18b0c0f3263886564124dc8bd026925a46e16baa04a686cdc793966ea452623f8840de7364655ee12c3202f5015c4ea3c41b8ac691037cea5c55a6389b1fd501ac2bdafc9bb7613036c6e280817111d18a777f03c9b3e6dbaa71574774ebce2647fc20d1698a0dd533518bc2b505a043f65730ea413f0fae4b24c6b0da749b9179a1f2a8525e059b5686eb6af61fe8d30db6bf709365281ec003214e2ce7fbbfc3180ac8e681b33c83f30afe66bf5ae5ca739b047d86dc4195a5f5384acc65d68ddb6ebb9e5be90fdf6f0a39ce6d6808b44a851b34adad1dc1002c0c52246a351479e082fa10372491ba27d6112d85ae32e430685dae3b950056a1a6f119d7cc0de938dcf5d0b21748622aece0c1598ec8e75f51fabffe5bf6720300ef95070e7bb7754db2de5f852a64708fae128d96daf8fc3f481788309eb8096fbc781ceb6ccb949944c151ae183ca3ea7c6fece4357fba1d60e89382d7e9f32a15bbb976091ac1bd4075f0dbf95582ba91b0e501d084f152044ba9934601575662913c9557297da204dc3bcc8928a35d2a39a6022ed91bde6d57a07ad16a545766670e34decb2ba8ed6e4d13436ff7953f2b1649735666293c2b7f36c6f54380c88aa5e185b1642b3a6d7e68c6b949ceef576093c53c37882285f881545ee430135a086ef063ccd81a7211fb1e2628696ea5b19280e3b6bb1a70f818181a3c93f46926a8fdc37fe4b8de869cbbc1c7826f33294014a55a72fcc7f6dc6691382e4d632801d1fd74f78e5cfeac115e82dc71817fa2a0d8c64c70d7140f1f77f094e3efbfcfcf0713c4a2d526565edcf2ff19f1d5ec46af9c7d4122904a6004433c191145e440766655722b7fa8951115e8c998da716bdc6db974e19ce4542599bf8a03517b9c83b803915be31822ad162b6133cd376bb0d7979006d1902082d7ecf62b3c565ed6ec8d4dee792d9411d321a8a2bf1a463f064f93910255c28f7b42de072066963dbee0b59f8dad30fe4c6c48ff6185edeaed176188c09f896d1bfc0138447891830a70ec7b859f7c60b086e193b06ecb0ed38a44e75f1a841964be641825c60a860b315dc6a21b2284c9a0a4017d48a9baf4627a5712c5cd5a7007f3d2fd2befeaef353ef586b3438ea579e188a5dacaad1090727dbf3675a2d19f9d6c0996ffaaf04e4c889fb12365f0bb6578089366a61cce2d3b521b6f50470d0b2d2c2a44863e4d52f67488bb3222aaa9f3f1e4f80c3ceb632ca8bd68a3b42adfb1fe671713383c616dc8a2f10d8c821d903c8977d4093e77786a4a0bdff2fd372e3d23447680f2482e081d6e81902968bb80edecaface2a12ad75b3a2b20ae29d6768b7d71bab1efd212269e3e5b03bb55e136a98ac8e645f69387cf986c2dca3a54be2d23a66e529267cc809a9cae7ab0ec4bc83d609622961df3e9cb343917a971eac426b3eee09e73f473937ae4f36dcd78b4c6049173f9cd4aa8ce0aa15861e63d7f807c67ded16eed68687a2377a45cfabd351960dfde2508a010b4c5b028a90749386afd72c056e7e4ac3fb07c9efc1807614fc0e5f370bb196925877455149752871ae6ea761d5bc66e278a02d3a77d5877ae659842a9b2b7350511ebbf0e3ee1e8216c90bbdeed734334925ca449faf9447c88ad1e35a31fd303a3ad490016b801e3f5110d663ac4aebf6a5603f7e71af0c84ffc73c3735ef4485f14583ebaa21ec8a6832a1a5546128c42c90ab1c42b2999811f1d80397c06b894277d56a2e3c5035e80e135aac1056d2531b3622a99321ce97f5addb865810bad51aceed2720b9d9f73bf9c6d5ae91bec5e675ac47d33e640817ed953d9866a6ddefd92270f6217f97c87a33ad4ed2970caa9666ead0af1643a0912e3b37ad04a0c48138c17dc1514220b2874a01981921e4176f932f55a7946f8dfffd5e07db35264ae41f58a8588a2a6e6fd411de8706a24aa1e327991975eabfabe54b7c2710d1c85efd22cc50a978f323fb4337a873222862a1f7a7b4c6480f374eb174faa93d902bfa836039f0112db5836720104c20d056ca185f6f598a7749412a544619f02a0fdade6c3dcba51b133c9b73e08b4d2eab4909001fca8ad9645deb2ba840e24ec2a7ebae9d782431ff5988dcda5d6a177ccbd460d10ec98642f7a82a3561db0f4a123f9db810213106f2055d60fbbea0b71cbf8250b7be0a140ebc2f4fa32f0338efba919562b4a83aa9dd0c2446a2facdbcef6e95d2a08f9fca56cdbcceede0a8f866ccd73a763a9d0ac907d24bb904552b8d3fcf62ad3aeab5fdb9114697468569a7d001308744fc4934e0af7d83beb10e2b9f1b0ab317c91f95eaeeedc92c5f9f57076673eb577ea787de9ad0365b46f999c253faa7f35aeb939629e26bc054d06b90271d5986efcef8037ca5d09913f456186a0455c26e4a65fe26e20bf28ce857e395162b852f4a122586f48cff4cf58bfb78bdcbd4c5fb9533118767d3bc9c1e64be24cd20d3f7e500926885bfc41a40b74ac02b843aa751e51796d03f3726bbca4972686e23b3d148c04abcbde98f1c9ed1e83b6c51a8c20ed44e3540e4d63bc87eb0c0b265e1c418e2f105848b4c5529aeff04705bb41bc82f3bcd2b6ef366c4cea52c0300eb80300a67c935ff2cdff49fdb19cbb11629dbc410a91b832b57691117218a07d5cf8864b3671d9e48032fd7b8576f1ac90f1eeb6f52a059134266d8102d8c774a370923de6419aa23eef1fa945594cd9dd6683053b539ce3e725bbaeb83478cf6d8126a22523867befdcb5407eb415a6d7896157ead19a5af5494294250788cf2ab6e8f48b2fcb6174629756c0f0fd061162eaf7b37233d04e8a5ff6c28f8564cf2f30e6b2dc4ab43b24f011f0a4e4fd6cc5181eb47ad07e44c2dfccb5ca82ba24bcf162dab2752be817f429ff0077abe4797f80b044d955db5d7194db2ed3c15963a654ed6ed20ac5b4b57e48671184a91327cdc9bfc4c808f8a038b31f4ac312ebd308a25f397d2d251d1e48164b9a584584555f5d089e3f4c25311e15b011e4e86982ad994d63ea1d7cb3761494391d41f7dee7f7d35862e47e351ba880d81c424783000abc9c12146c5c1a0d38abab402d279e3a62326a45291e069115ab619645f33488039923e493ef5e42d689d5cb7827400f3a47c726d2dc69aaa88cafa8ba7d63f20d077eba419bddd35e787ec8896effe0705e7ee618778669d6352f19cf2b211292c4c9a98809eb788381905821d540f95604ea8453b10adf9c64418c30e5d57b6e280e1ea64065eed32cce5286b3aa68d7c58c464884ab2564fc3484c509bb24dcca8e7d162457245369ad4c90ce36e31d914d4da3de6dba1557da38a09fd11483675ab143427300200f0281f3e09dc88fa192ebb7f59e13a7d768d0d21a954f40077e3630122f0a2d7aeeead2a369b165fe8367622889fe48694a07ad07550ca28a3da250b17c6513534b41731b0631beaa7ce1d89a60326ee9966df9613af28b04809886d22f750d4a3ac07ece29509ad6a0b34608e5c46bd738c9197d377e396bd1bbc5358bf11bdad2cd47472138ec458ce9112923e59c86714f6dcbe31fcca6b4bc1b6d8e1ea96a3704cc1f2e70246af3a556230ac82dde5a4d6345d4117cd17f3e8dd30b89e62f1db4c52a148348fdf6d2e8e7c6eb12d8b4456ac3e27460564680b4c00dd8c7b211e2dec5e6ffd5b353ea6884dfa9004a3af0b29ccc6e24218e6ad86e9da184ca78b7da41add82dc8042b9e25a447d43de4e2cbc7f749b0527e5bc2af8caa49e4454f81c4cec4b0ab1ded0965e1ab96ce0d2c0b691624478a0be49a2f02d6cb32f4331433931fc03aa283809299e7e5dbf805b303a161b34485305f23ee379f7d7c0d23d6796192ca7bdca23c11bf8343b802bc5224804b52128bf420640f7c2c7a8c75338c6f66a8e242e6167348ff8ae33cc12e7ea05ec55e19c3507ef3260819b523013ecfa7fcfcc83f91be672dabfbf052f2ca35fe01d08fd99fed756f5f1773b10a3dc07538aae5d522ff6384f2ede17b8add7eaa0e4328885d6a87c287e15508fa27cf4716a3fd7eab7a71ca6319811d5ff1bf952e0ed0c5efd6c9bef2c15de5295bebae17d17218c05bc028d61c9443db21c360bf5dd5685b42326847b9c70fd04eafa34adc520995b76ef2dff7f7311d0e8ec5e59cc3f5c67e84587832da77f28ae96facc0e1234d5e49f47e5c01251512301481a597b5c56ca26201501c9621b49fe9ef198d30668bbe615ea51f5e2d74eca130ed7c8f2127d52ae1b54b2a588c02302fd0e1ca8b7bc25332c56b9b03d5369ec6a7de34b0f8d19041179d539bd300235df51d48ddad51f0df0d30c24f261ebc373aec7e93b710de815d088523c44698011d136cddd1f19db07afa2baccedfd07b8d08f1270b462b554bb9fa4fd787cc972fa03325b37fe3857ae65c25d348c2efa5d9592a53efa3f334d4ba24ffe28a720944e8e47e82fabf16a3ae28ddde729f5595a19965baf6b40c3801c78344911a92070bcd44a8ca039e6935173e3c85bcd5cf8c5b14339d5eb059469f00921ae2004138a9981fed196895689ba579df7b4c610a58aac91af9e2b65f736dc545bd9db937e77a809ac8266e52e03ee360122d83df6337b02f522ff4c0d6b3c7c035ffe59108f48a6bb737a586aed7fa67ad63ddf71aff3a626162f6487d1cc3eb7e14ad4b7d2a1a72bb56fee068ed629bc0f848da4f69f8436c05289234f1032cc3c28f821c986a781af4be773b6edc2e006e0d362ca7ccde81579ec30bd506db6bc4b03f61a1429f7f3a97df2b7a52d88781baaf2fbbbd13339b3204f90ac9c7133bd2a819e09009ae169d7ac5ec1d4c5b7f5857d4bebf693efba26cda2c599510851f708ce7c5ef1cb68a3434ff9c8dc0ea18f9b4b9a87b98730d76e47eafde1ab986f5038cfb1632995f3f92845d04d4c079d4bce44b2dcae53820d1689b852ceaf6f349b50beb2a60b0fe669cf1de1f945102498b2f5a38bb751986015ed5d077ae7d62626ac93ac31e1e7c98e59ff828d81b705613d34dce0903698ef0b118e50d42419a8c293604b6218a2d6556a7cbf36ce4f3c711120fbaa5b5673cbb8d5bc1e34a8a446a660c5ec83972450b2026391ceaa3855319a91eda9b131f5b597dbe116bbdaa00cbb2f4591930ec5497ad6865d172e3b62b8ea2b2c3743bedfe2517d7fbadbdcfc1840444e95a2c5d4fe434dc30c28384db3bec89cae1c2a30339397b1bcff00000000000000000000000000000000000000000000000000060d141d20272932", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 15, + "comment": "signature that takes 14 iteration(s)", + "msg": "6f00000000000000000000000000000000000000000000000000000000000000", + "sig": "3de2fc243ed802d048d5954ac6a0362758badee4d0f6d9cc0c15c624893e1fbdab852f34a291bb16ee2d9317d2574fb2c6fbef2e010273d2cf370462338e7b24cb81d11dd9d48bdc09cbf42205f32dba5310337d57b894d15adcfd9db237cb731a0ca2884a69c54965f55de7eb0fbc6eb364f933edbae447e06ffeb6b214d3867b43492e6e85499f1ebc0e1ab7f7128adea222a04418b0ab8cbbbebf5ade5e3ba6dd7dcb828be198dc4619d3534ab10f193d6478d8ae1ee7787a2d37aa6d99914c063df5ff0eed1a28bea79ab9f51df67ed1061f92cdc1aa57c59597381e9871c9d4a3e9e7dafe7774743f3232f75ea9767136674cc23d30e9a79405c9b6aec1fa185d37f3bc903ff6dec8eb5196beaea869ecb947b7bd0c5f1b1e59c5eb6f58abe71e66b299c6b1f9b991289ab5f34998d802ec99859d9e2fdc14457cc9fbb200942a76d88b26d5c2c3ea2ffa28ef4a078128018ac3365e4ad15ccc9b49bd4443b2c10a833811ae402e10122c72401a716ddc1e2cd8d527426fbd1ff566aeda06afbc5541a4e0e1111fae22da8a887708e0abfff7fa0d0ffc90012b1137cf88dad3ef3525967fa1b03ba5a233700db66fcae45d1e1fa59d992afff5455625b6740079e8facda055177663718a8b81ed2939e3f1df7d348fedcbcfd82d7648eac5640aa2aa1b0abd5d08825abf48d703dbd76d258cc27b06e34585df3bb8cd55c37666e8dfbef745bcdbbd49f25a6ee571389614a0e5ce5fbe3b7faaef1a33be36a75570d2d0a2d6964ade8ccd7eca67705d47144bc5584e716b57d433b012c91bec0eaed1b1a524e36b3de4f4f304692a930f766f8f55117bf547850e6cb0d3b95631f3900af40874f5dbbe2551b60c9cba5a559fbc3b20423dabf1367a7a47f50dde5e50bfe88a3e31a25c36ae5ffb39fbb8de2f2edfe046ccb6e36449ad48c80fffd29764262ec5aef6301a3743d623b31b223db45d56e5e139b0fa29f803de0ff64e01adaec3f1a315ae037b846ffa0f117d506d1a7d0421d0923e3eef91658fe2dfa46f55df58b6d2c1ba51b1c8c04daa364541085fdb9f2ac4cecdbe7a37d105f05068de32f1786f6c5475ca84b5f72141e8dba485d52e6cb3956ce576e87c4b6a0fcb4508916dbcdf8179d5767ff4cf0c3ff9626be89f97393570505d6d3a09ec3dff69d21fb8cdd8ee8429f6c3811b283ce7ebc1f03a24a8eeb462c174c86bba36b11cbc5ec8207825196a3fa5e9c86dc2dab73632806a163ab33d2700e81b690f64b7c48212aab56598495cdfb2b5f47caec5026bbc4c3eede184bc6a1f76d1e5d09fb7e2725c55ba099bc776231b0af5dedad076dae6eabc4e3c327fd87c745b180357b1b094ebcfa1b199a19caf4be287199be1433bcd2893e9ec29ffe71ce2cb9c72c4130e2ed421b6fbaba50d17be7f8d9643ffc0f4d8f906626a7d45ad7f755445ef0c1ce8123d5a40aa6d5b17e772ba4b25a2e70821e1edd4d8d08590648917eae311898aab32c970eb4b93e5303cd64c97c20d43ca812654e5187bd3cc1076b47a3cceb7c4f27a98c42daa1cf7bd19688911a57c3178d8d3fba48a70a4f2c1316a0924d2674f38ba578076f00ebdcbe8fdc4a53b130c2d6631ce125bbf7d087e55241bcd3e6479294da8d65ab87867f5606aa8f6c968d7b655cd2fe9c6b7d2bc13bfbfad83a75ab010833b43fbe1b3f9242cf3864965646b543f759dd466c753a34ffde04cfe099b149eb24cbe71119e9f876dda895cca667eccd3277f38c212d606424bfe7b6c8ac97c534e2bf63b27f55b7fdb2d595ef5c2ad67f46cf2e7737999472fda43ee33bbed2f8e30d608e962f515b25af4dc99615f8aeb30b7411d2df6eafc02876abf16f8b955dc8566a04e986915a3247eabfa4c25597f54f3a3a25d18d3be4488c6cc5f146351372a6bd1e3cc44f68d502254abb71b7eba1d942c3080463fadd517e78cd86f74c79fbc921364a0688c8bb03bd32adcaafbc9bfbd4482f5d072a6166b98910a66730216b43d79cd498703e99eadddd435a0a09061af031ca814b592df738126090dcf9870a9841f44180418a7c46963840a6ae537b98f894a623f537da3f35dc2d91ef2c3d4e09e2996b332d8d3bc77d00b1487dafc6858feb14c02dce5aef7c2eb3e877c63316bd93204f72810a800f0d8d813968add36346c38e2105ff4652541b27327a64bfdfedfc5968dd61f5c18dbadcdefddfe155e6e9ef68bdbd2a6a8d004fae4cc2b0f8479e553792510eda9d496e520bacc3253a3b91d70814b844180b9f036bb15c0564eef50ea9bb3762c5f379fe979a581eb9ab9dc9a69205bbcd3cba72157a0f11a0e822fb90073d13ebda8c41a55b143710898e41558f1b9b83dcea13db79301af6a4121e21004a8bc50372d587ff57f76e30ec5da0b314cdd5ed8393ff6f0d0056cdbed2d194391c0f949df46976d0001ccca3e379777edd133a790f5d61bf4ceba68556152bf35e0393d6da2fc1918081d0a11b501967eb32785d10b960825a17af934258af9af98cb568964e27592e525975d011043cbf89de6fd8eccc6c1a91c2406838a1a84dba4b1a7f4ba07c8e486691ed9427fb0f3a7b1841a8c40d291e3c02aa91bec397af5caab47e41cbd0ad97d4b1d82dc5e1625fafaaf7e178d5fc42f7f21521e8f08bb2ba6124a7c55e70384dfec249fe7272a46d87899f98695b526726d258803b4ef0ca08ddcd5047bea6be1435278af3350da75af9da9b35a4e679d1d9b33c52d8e86e6724790dbb0f1fa1cdfc5e1bf66dd37549853e0d81269db5dd408db15f88c1d7d99be6627337a2d5a9620c68c1606d5f8a717a503446cd6ee6d335c6ffe47b03b1d5d3a9d099a1788aefc875ff674ee3acdfd95d832a3b25ab5ba613dc59437cdbf1dab25cd5201ea8512e65b406bfa0bd04c200d06fdb00a4adb6e1bc38e4fcab5a6ab7058b351d4250ed653f9ba962a268a67b9cfabb312ab8224120c0807f8b5479b183a0666842586d3d98ed017b27c31c9147e56dec5a8dfa826ee8c5ff8d8267c82bbd137734938932c3249334fad803a53ab40642ae634732c23f70ba279d814b69ea14b2cb703d75f638f29a376f1f039962a16f20f5568b83ce99792b22b642690721ff9e972c590730700dccba2105c8abcb5af45164e04374584f6ca3ff5ad1e8d494757da0a1a4eafca336460c988420aa846534dd77522e12538e366aff4a558290b3dfbb3ad8a04426af66c594696955bbd8817c4bd17c127a273b98a231997873ab23b407ecc12c3ef51de02c6bbbbd8b7bb83259f1d138dc3825b805d48ae416a7d5c5c21357bd37ab2366ee99017ced9394b1d45f23ff30f28e896e4f21cb960c6d20100460d29ead1aef020d1016c99ab135e162298b56e4329b6fc52dc64173c527c9d75b74f1bb994c38fc6c6cfc748303bf1aa4aa6f79045d08719e17244e0daa71f4940f187e33f7f50dc2c143437122c5bddf48534a2ecd8da62a6d12128ccb62f5c5a322441fa560eccb4fef062e8c2c01aa7f616dbfaf2161c8447976e475ecbac2fa023418465a86411573c3b5ef51619129f7f7cb2dc056185ae20763eb9a74c4650fe76f10b916ca4728b42d036bd0e938350503db289e85f2296c106aee79e6eb6d428b950bf973b94795092306224c0b8fc9aba7b0aa6eada69c3a08f923553dbab083112e6dc24854d5d73daf31c087d6120414ce32f8f286d4422ef854f62ebefef5c940d303fb667aa755cf2b3eda2c6ba52e7b13198d9bd5ededf663fa145f9a9f436f5ee0dfe855fc3b0a843242696ef2ebbbc620a86bc8f116384f9034b2388cf23aba6aa8209e698c2140e87a9e6d535c58f6c65cc30169bc80e1062ab5eee4ede6c4e8af06eca35593d7e9a25f1dcdad23edcbb7fecd5fa9cf5c517ecf90ace0296b1027f38fb10ce3dde03a09c1ae4471944e45d8cc4d55a81fa7bcc334f5e93f550337f454d26270f6c1f3a02aa697fdd13a94e5d034cd55661fe5cf48fe22829339bbf0c3459e0e436859d13bc7c61293c0f3b77f05cea5877efeecc06b94e2e41f14036ce50209a29fa8e32d5350e44bd3bf0063fa1915b3d0a91218fd570b3e4bd1fb05ba8bce25079c3a7b17eeba9f0ad35c4a4c6031fd59dff0faf26ece7523294825794bbb66a3f351d805bc9385d97cbb50aee99e3350d3cf33680f5cf17bdf1aa3a041e237bd8c4e9a2c87d429575e21089d11413744a14491f7a46ba5949cceea7e554571a06e1e08c13f198183638ad43217c9809be0e3c50af14b2c91b6e1914e8c7bbf2c9c477e0781f8d151b0b01d81b673603b091a4769ddec410e5d259b028c62bcc3b777b75833f29304787ccd462b96693df54dad652f3f8ae38b998d3f175a2ea9d1a04220c4743ad77dd729ad8e8560239e36f2e6e1337935e3336313d43f3c86445a8ceef98981f6540d3bf87eb76da4e9fbed9a5a075ea219b4ce83b85879f403940e4ee039f0cf2599c564f8fa2ae5a6c3306f484ba53cb659c955953035fff19fbaeb74ee7852702d87e23235ce0f4eba33d1d3dc52a874cdaedc18244a2fb03ef959d3f77495a4d7f6b39c253aa6b84ffd859e24bf78414a95447b5becbfab8ff6c5521e785c1eac15a9d0f0ed91d789dc21055759ad2b76ee71dafb12743b8af3594ca9d85a6a277dac27eb5adc44d4de7f4c4fc8763da3dccc8b92051e94e8a51a888b351b55c034ba3bfa2beee0f3d3e0b67c17e5242fe6691fbfcc6c151f55fec2a84d59a11339ccf532b68340e760a75b80765f03fb28b80752776f7108522cffe01b362713cd181d89eb19105740091ff6154993c280d1ef96ebcec1aaf8a422cc7d7183edfed103e867411d2ae726501519d1680e714512a8b9663d3a3b5a784cde322c597ca2118fe00f5e36c2c3da791f514d95e7df5e6e598ff3cd0ae4fb4c86f27686a1b1aee2efcfcfe0ded1f0356e214b9da78c4b3b2a9e674a6c2936f03c254f520aff5ea858da508de544322199bc4c083416ebbf9fa4f97ef64ca5efe7418e794b450e58c0a7238a7c772accea48b90b4380d407f9d543d575ae16549a526dfb8efbb0e3e24861b74fbaeb0fd88106117f5e892cf2eeecbd2b72e5d816acff28a608e0b2728aae44652965de04781e087c422135510175def544c3e81ded4aefabe876ae10c20315ab9a6d628bdcda75497db1d1ac8c489350af05a89615928293241b56f9c5e53a5e7c07be52ff2d91c5a1f6d604a4bc71d1a1327abf7c4005a0e0f2f0750302da01c69f69b2b77f14bd75d68de98ad5ec7ef134f3eb985715d98c1444147cccad64b9ad2f8f98b490f146c34954d655cff39e5f0c26085f9c26b8d8bcae58a488f6bb6fc67c3ef0be95031aa70aad912dfe8a03c79de746d3b473aa6ff8dda3ae93d4a4169e7eb4de2cba02d9a4e1d46bb9518668dd7825847bd1c3339e1c73b02349e717937270fd8178088a8772bb89608fa0b08209562bbe495e2a4750125a0aa24e8feda16f6d17a704eb660e06d919acd909fb823b229a19675a9a91ad26db5afe69be70d775caf11ae679529f772894492654fafc1039bffa1bbd2050bee394f1d8c325d0c783f618d17100064c377f688195786d7da290265c6ba80d83bc9737eb96dcbec84605909f3f8b6b6d5d85dc7a6b7f1d2a7f6f9ba5098df591a04c1b63b045c5bf8123c062985335c3b414f9c4f98963294c446dc2dd3580e5ca23d5d643378f04df6a8158a756a0e8c76efa74c88a97f16bb747e2a4af74eeac0c34547661af6971c4e84fedcd5fd7a1819ebeb031b123f54c202eb580c9a9bf644c3ba5a395b4074af9b88449f44278ba20f0717144ddfec228130c61fc77c3bccb11a4aaf969d5716ef6a13bf37f170c8f81d3d2b14e62347463ee3bcf3884e319e0dd8b24c2b4b1fbcd16033dfbdde38460e3a417b566a5e3c7346045a320e5826a793adc46a7b828cbd6da080ec4876df435d28d519ff089fd9201eb8367c604e3da4a6cfb6f9b009bae9ea27d0559aa5b1c3be39f94c51f16ed1b64fc5b49c0d8241283b771c5406d4df626c7bbdcfa128e22e602023665259ad6684dbd6f2ff2f1de0b927795cae0a4d30f5d569dff223769e51429444899925d34c3c7e211bf44ad2131b2b1590704bccd64380b28ddf5171ffb408435f3fcd7f4071550f6028e5071986d375cd636f94b0f2b3a2ef14d0708663484a0c818eedb5353b8952a790168aa5d3be089e07cd38b22591e7299abf64c3132ab2557edd6d689564751ef090fc9f4d75b02194a79af58eb127deca1e9359ea076b5afcb55d293b57303352e0196b8c1f3d78ab42e9b86228443e151085a19d3c454d20d8fca52b1f4a482a86a3a581e28e96cf909d41e89ae042c75670bc4b1e2475f1cca88fedfc8d1a10de7d7f5a838be0e1fd11666b75b5bbef679ca2b3b9d8ed020d2b3b5664719a9ca8c1ec24295776d6dee21381a0e86e92bbccd5dd010a37454d777c84b0d9f8000000000000000000000000000000060d1420272b313c", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 16, + "comment": "signature that takes 15 iteration(s)", + "msg": "3e00000000000000000000000000000000000000000000000000000000000000", + "sig": "0db805f0519e707d5936faa395e987589da136f0edb1c74f887dae7b58af1689916b13197fabe469fc6c9cda1b856d76dac62f0ceaec869cda640d4aee2ece9402d8089dd85dd3c91d2b8054bef2bbd10cab5dc2a83fb82c7f3199e63907517b34e4d16bf86d4f8d4b8d231182287a329500ae7b0add3f82f643fc101c6dd0fe30a401ba08e16c2e898a393b89c610807cb5509bfea1c0bd2db3ba5c6a9d55c644040cb2b1d6d7615512b36f32ed1cf5cde7d6b01bf321a43d6261a4b81a574050d4efc9334a7cbb9f9cd7475affb4d2f8e1783c69a3159ef8356df4d88873a5302bd44697e3eb7a28ce60dbfa92d72489f55451483a479cc691a924dd98e05f02cc1e3576e28462c2fd7dbe45c0e5bce67bff42290b62bff2d595fba893a1a2644ad68e3f4d1633905bc6af34873ab1a63760a44c7cc8eaf7894f013a5f6e3a9b95e4657ebcc90fac9e0a7e3de97e99d35f4d796aa1eb0928c27deee26e10196333c469805137c378ef2af6e8dc8955ed0f0472a395309ec982ce287bfc2aa1fcf4b75c8e42fd5ad518fdb277c99d6e02adeddb289ece5f33481b9150692f0f8cf2398c4cf8ce2ebd2224f832cb2083e1823d7b452792c85d13923c1bec04bc4a10dc01a7cb42e86850a5d8ffbc76919ccd0d2b942beac349097aa79db06c114c00545ebc5437fb2e009da094d5f413253c5ecdce7ef352cec5fd13faa92388c13725e8a1a310b8e584d02285871f435d834faee091998d97eeb0a42e47821383899d8f1d672fb900c279e5923a5de84fe83d555f27a5658debd59898f62de8d4a5822f8772961933ba603d8d32e4965e8485ceaf6c1a3d7234b3025d25cd2580c731e95209bf94762105b0ee1204573f484d1a119cf41ab5389acb073d9023ec7029f13552a461820d84c6a3f47f8b678f89f4560ef0c9ef5e6ee9c884a2ca7d04e5bcafb1dcac579388d5118f016e243fdd52092504d1913b935d0caf440e86e42aa831f0cc5b84891c177d1b9988e0f6baac1dd5162cfeb9e60eb7196a784fc94cfbd53ef471004edc28b63b7d051fbc6b21fc854e0336d2cb9cb264492cfd66713863308184f1344c27b0fee163852fe3c7349e22bf1eabf74cd2a2fae7ca9752b884db119b5714406b4f9db9cd1249e3feed71d3e9cbd4231dbcbfbcf4ea0b68e4947fd91bc2458b5a8bc8b3ba23bfef3883fd311f64281d170a821a95a6adbe8a7cd8751fe44e1c95416df0ec9caf23b55b5276d2447a4f4d8796b3a13f9198bfef2cc1e27b069f9018411dc105cc61563a55a7f4463c121381df30a95d279a09a2f34174d9cb23d141c3f466d138d25569c18f5277fb7a9247a8afb74ce5485288a62c5e8930f9d3d80740d0f3cb207c16d76514d4270d70d2d5923a037c2bd8fd3eae4307992be35fd0c0222fa9a2a8c978488602e3bb16d64e22dbb02a54560f8ccd94a69d1913ebbda117dca4482ca702c6da0b8c88d441aa1e51807f3019fc4862b86fee530c5c2f940e9099467f91a819a3f4587458bd4fbbe27cfadce4f483932388107f53db80296b1b20178bb9ee1f3401a4a31dcc0b3c70ddcc89ea94c3bb76a5967ac4486c2f019c2d6f8ef91aa42c0bc8fe2a158044bf13d73070f772b0ad3f8cb65bf08f639fa04139937cad2ce9c4aff50aeee5edcdbe0e5572a8806f73bf7ddf1b05da477677db0db32303f96e52b4399f008db5cd8e9d163ce10a7d00ca469545e18fec26bdbe47ada471e7b69213560ba12b117eaaac8eed687c18020a7cd624ed11502a22a2e43a458b6dbb7b30d8d35d462919bce3f4ab8673184b80cea52b13cc1ef8b194783b40785549c7036382ed72844d3f9eb2667e173cb92d7811e6e1c9714205721aa8f69e5e3235a86cfde5c41cf3fa63b9bc4fd30fdb7feb4122eb9922b2232407dfa82b8a1d5d6796dd0b97a8c2279bcc0d3ea03d945079e59839b50c960793e83b098c6281f4723ea5ea2dd138ffba2199826c716273aba904993ca2b473de69c6ef9536f1e7d6039c8312e095cbfb46f6ab0eaaae1ec25af258e3c3fbfc828e38a0e15dab34fa98306098b01b4552ae534d37688fe4bbfc3242ae31e197f6cb73e6c630388f246e4bb33b6bedec730cdf992554ed82f869bec8b7435ca4490669e27ecb968e6ba0985bcf0f20223e894ee3c99089e5589c98f0f47e088ff28ed0aa2cc31e2debd6d661d4e2c22493ec64db75e3082522006eaa1c6414da31954a87b08e4c2510dee1a2ed315012f0988548a1b3c54a43b758c26a18898b08c6bb38687f9687a64ab95e77f6d9dd7b07d0593ed299548eac23024f140c53c479c518e42e49da86b1983c53c9ad7d41f6f4a14f649b07b9ca336e747b233197f4318f1066cdfcd65fae2ac165c3355fdefef9cc6d614c9988bf031c7c19300b7dc1ea9d1cd6a418086b7505efd59ed5fd21bdadadf38c1c71079ac15c476de111cf670c15e5b5f3329fc980b2465ffefb5aa024b85a0b2d2f1a5997acceb3e1ffea8505412948ce5666267b200b6653daba874a39ab7e3fcccb10d6ef7b36e7a452e03372ddd2800305007cde826e6700e33e9cd19615d0da09882329ff9f83bf6c2b2600f486667898afe37e6b58abfc9deb3c3583635d2219786529cbb11b34f3de6deee3ded351fa941572ba180ed6a37527460b00b8fdf9a50d4cb711fc515c5a13622554f27e4c5035b91f2a0acb6cc6bc83fc844161c891e7a6c791ecc52e935963482336dd0b6bbdbb8c90c84380b3f9656561c6cc6c46407ef3de72ea03172bca8f0f9606421018d753ebb40b113bb43533e75d54d858a191ca6db2a69bed92a253f3bba7611c24c8a6e2ad597a59c40285b6b7a94e7117b355c7710c0151cb87ced2c54f96ca82e5021c9fdfee715bb8e76e01527b640f37b931c86c94ced21384766d8cf02b41ed9d61bcd97790dcbfa7b8fb0c44e2763bdfdd4873d6013ba1ee7177403d6af2701e3b3b93f515331e61f4d03fdd2e513079f3e9d7cf18b3626037f9831ff05f403950f6569147d27cbc58a5e562e1717d99a1f34bbaacfbc799b33daceb497d9bd7a46c8d0cd21a074fddfe2ee4980f79dd64bdda25bba3bd5ec534bb5f036ba1b6a715498b95351f85a12cfa0ab22e28ab31a90e11010d0844f8b4e142de9c18b79beb54fb2ffd30c895316f8c3f7b266438a480e15d6662f6253a2fc1cf515e9c56efa41401a4919e01169b5929a68c1d0a207c538d58e275075594cb265047c6e8e0bcbb746a7f6589ef67d4a84fb555c7a833ef6f2a48442d88df02d98a4dc8fc7f95d9d07744c44d5003138f80f4421c812f4787dbc0295f2b5cc37dc4244f2862aa0ee4dcbf15deff3283cc3e43aee8fdcda154e92f10e55bad012a8720fedbe4182cc37468a63ade93cd80c3aedcf79fb5ceb80c9de7e383a9f088698784670f82821dfd86263d35add59c365a55325f686894c85c42fa634bacf5a7a6d3b16039b0888e63ff49d048f6cdb02b10eb906ff3a722120d02b4bd9eb56f00c13e91d4a80351aa26e7bd53ceea10297c3445ad9e7c0e663a6ae0e13d79f7290adbdfe13b386fb14c545f8a290480cf3b2bd94c70909ef2f0a36bd6b590acafeb5dee0fafa6b918ee7c19e091784038b64a2242e34f57a070c96425140ac058febbc8f18b274a188fb57342a67f5242184abd45b2d49c7bb65d4543a132b6f995a5e4ba519369d48e09693e24df8a57ae3c568c5cc3ec20e03a3362ff37ff327c80edb4a6946c20bf491a92f780b71b500a9c029c3ae153428839cf13f0444043d0a8ebeb33eea621aa3b26a2b570a444884545b689015f43ae0673958ffaf5c7527d800b86a42580060e05a9e0564d25e80a5228eed2ac06432c1210c5bfea1556de901a43b4fc2c4953caaeae303cabbc5fa68fa35638757b2256712ee07ea085f275e7b4b460140efba6101eb90cbc08c2162996a7a58b86f2b6e25fd7b40e74702166be3a81fab64a0b5697bd20eea4dc07aff7337733d17c272b2015292f5073c2a8ce95544a4b1097c2fe103d32500b8a85f57744cfea241d9da9e17570af639c3ead05c0bbe43a1b872b93dd6fd027aa6c6c1dbf63e416b8d4f3f30b81bb35a759baa590361a679c51357d1e2d7586fbcf1fb7ff4da7ced69f8244e5cfa0f66053767f1743daa0798c431fb31f47aff52833aeade4a6ed68e4a73c126a2e7bbfa24b79dc8e74a63736d1ea99e4fe83e6455f5454662c9d291df00067501771aff021d4c7b2cc0025e21692f1b83dfbf832f5091e998e5c228345389e16a1befc387e9e995c32ba0d3f51f57bb81621b2573008e03b614bdb6d2355dcbabe4a6872d5ad6514915bdebeb6938991859030722b4d3dda3b786726e0923e1e3fe6b0e4478137f95fb7fe205111a0cb952f80af9ce1ed39183d5984425fbf03402bef28be12471f8fe1f57467debc25b4fe3fec8d6eefa5bf4b5b66b94f55b66380b3b9ea49c309fbfd1cbc9ac9e178f97b1ca077b54099392f2758efd813a3c6b324b19c9395eb19e41c340b654f781c3fbcdb257ca3aeb7da9b121132b24da050e6528771f217532c1731aa8aced6111696093cd17eaa453c0ac1b2da03a6e86b5b717774ffc3f5dcdb5a64dec645f1c240634d55d382dc8d17864b3148e51bc7a2642763e55253cd53392b7d0336e023e9295b01f41380c416f969117cec5ecb13c7df6a21fa6d4ead45ba1bab18db63fdba2d6670b740ba0393b49f866da13980f73ecb9c6bd36133a92514a1e0cb8112998696e6c8ba84cbb8fa36cb7ad657caa9d0e99cfbc9ac93529b6f0cd53520476d209ef0aa13eeace9ccf44507ca72a106f3bb8c20ccf082053745addde093bd184f036fa5f7966e4073c9b8eb242fb6fe69d8399f86d814d31bc94ccf0e6cb7302ab1c9bbddc4a21acb4b68aebd4978d099bf42e631e7d023e241fa4ecc1d4b45d64036bff9c3cbe030314bbe28de33ab0136405667c1b2039b505a233cf92d59270749f72423315640983a7360ed6a12be2a010e9cb930694cf2570de5dd4043f29edbfa249bfb64856b69e6868cac886fabfd46737e9089d197440352bc358189c2c877b703a6f523672174f7d3ace7bbc191a602d6f9d5b39ebaf3d36f19c5e81471fe76fd821065436421aa29354040f206453a729953d249a5dc865ba66f0d275a0ea2bbab48c43e22e5054db52309cdbdb896863938c9dcdc0bc9ba7c4843c5ed70f81bc1c71aaf2f83e9993dec0f57ee17d45350f049a4ade9c08fa73e3bf9c3835c7694bf20d1ff83ac0259068e5abe01c501c6bf6e9277f21418021c041a32cf191fc387eacdb8478f76d253f556d12921978a074c1d52433645680e5761d85bcd7345cc4e33124de465680566a37bab7bc6f4b4ee229ab9327ca2511bfac7b1a16766da8ed9c4f71b8dec2fceffb37ef8f801430e2d99b328cb417c656d27fc63f41951c5c9d2b01443d3dd14f9eb355e014e50bc5076094bd864fa6f7e61b0f145514da06e7a0e0d1bd10e7d2abea5857ba2d9bdec9d1f1fbbd56a6d521271ae3fe53b82c91c2abe9777d2f437c344f8871fc6cc81555b9675e7ebb25ab60427a411b0ee60dbb39107ce81855410a8fb7e5a5c4aa272b8f061689762bd9fe8d1bd4619ca983e0c0034cb2fc299e8ec2f5fd04ee803e7600d57bfb8c1513c1bc6e03c33e083d66feef969bb051c7f9aa0732add065d32d98adf0cde70bda0cc935424a0aa7dcd50e428a7dee7fde28d1c30534e33d835b5eabf979de8fa37d52edac75d01e68178a30ef0ec089b4e6cdcd5d08068d7a956188795b4d2e77986483f65f58949bbdd09649f438249666b57defcda88aa307c2e74abfdad3d380c4f2a659a6f0537aa04cb09ad287ecb1531c8c97a1598ac05916a3cd7bb109ebbc5c0313e4c9c21a8ddb7da2fa95fbde033de794f4b578c44a2f7d370c9f4fde44a4b574dd830df50205eec538e4a8e06664f3e62b4934adb6d56c979a6fa35093dc912f162c87ff30132aa4f2af83afae0404400cbedf2d910911890dd031272ae1f3d5e46f557abe791ec52a136ed044d3e1ca56b435ecb51c9901a0de3323d3db01561ea9b11f6499ffeb7bee9f9dae85c7b575ffd2987c9bddda79b33cdf30477c66c499467a14e2e8df6c57d6bbd732555290c6a7bf3d2cc5769448a5205dc138a5e5ae26e6ebd4388c078f6141fa948ff62cabb5151dc6448836058e64aff01dbbf4333d9ca3f8f7196f2503de9d6b6245624a0d2c64c36f9c66f8cd5e29739b9e73d875b5a22db3e4f40bca6580887d7e7dc5bcb03d75ce8955c4414012a2f3c0cc5590069de790198e642888e4d4f681ffdbd93f85f7fbef494904c598141f6c0a0032d6e198d28b1eb3224f74552f5f5312a6d68dad782bf2adcda0115c2913b70704424081051565a6b71989fa0bfd9071d1eaaafbcdfedf5fb02156283b4f23b3e5575d6fb32649a9fb8bcdd174b667990f80b1eacb2b4d6e6ecf2fc032d3087d7000000000000000000000000000c161c22292f393e", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 17, + "comment": "signature that takes 16 iteration(s)", + "msg": "5e00000000000000000000000000000000000000000000000000000000000000", + "sig": "fdf36e7f184e32df6e47aa2dcfae714a2a74e06e67b4653c8c1dfa4d68c10054acbd2c1ba9a1b22a6a302488349193087297bfd111bdca1f076e2805af8266c724c99da1767cead94c91e33e0047d218cc5d26618ff3301f61ce6d310869f94540a1302102df2495323b6c5e8009782eac08c048d4149159803a1170bdac004a3cd96d1563122c27b98092e86d85f0ecdd96b2e6e5e69039e247b2e80a190c7e3d75b3fcd79ac1dafeb8f55f680fa0367cbfd3dac89e1b82c341291392963f24b7d8e7dc16916da84e90bd2eff992c83a70a430b205a70cf64fc1cd965f5a9ed918753ad7ca00f3666f39b6caa6d9689e5f77109b2d96aaff629ffbfdfc0599ec3fef0557f6091d727f745a1d9d2e18145b52c7855d345ac63f05abed9eec5e87bd7843ec106fa1698ff57896f4467e753fd6bf5db8ff126244bc36cdfba3b754b0a7fc1c8cf46ab15c16ccc34c993c0ae56d9d8a3fede0a2da8ef814ca4a4fa27af4c64af065b11806122d36b747f06208b5b16633401edf92d486f9c2e7bc5f6249f8cdd34e72d8c41d160d334e2780450d692dfdd62cd084d15cd2427e31a7e51d37000d1479deafc100a7085ee72b64febce7f5e0d547a9985c6f4ede6ecbec5eaad40268133756d0e698fe857610a148e33464ba35a42527e9a7647603737482cf9b29f75d7f1f99a51e854be1698d90dbfbc0e00ec90e1e8e4aa01a58a0b1ca91a6d40d0d9cf5409a4ce649b497d792b01e3b7134fbd70563f67207bee6f943ad12c13942dc377fc37e6174d04d04e1f3ffc38217b1c2387902c22d5d7a455d141869a63b8141eb25cb983f248eb88b2836b879cc7585af93907b01e6e8688027726269159e87c8c70ab7cee3c25977eecbd226ccd01c6c3d5682ef51ad3affa8b2099d5acb591ba397a80ac96ba8f84acb62a3f452dfaf69e2e8a98ceb54178192ea3123e31e47c191099c717dfe170577419a6ffc3bb68c75cdacdea67bccf3e95a82091ffb596c65cb07b0dc2a8e7cfc2f172eda684aeae97520cbbc284e4a3ce531461740c077da7c92255e5687333678759754df361605e751b67a1055014200242919e2c13ddb0c24225ad59c84b1d54ee1a1c3a53a703a2897d29087b24b7a8d067820892c1afdbe5b184e67e23e3247de697e54d4ef2dc077b878f16018f3cdea630d3e1941db14851f8e4940c2e1314863b5bdb169b6890e02c9a181d2d162bb6753d97d901943a34c55be3b580c44b17cde28f0f0e086d8a96ce3b4eba2b40356aee495fb3ecd1b194cc3ee39b0714ae25a431bb85c098e6d2f06d83bcb4d70a83373f08db4644861ce41983ddf7a7d2431ab9802da6587848c8e3425f341b6ba8d7b26be336bc19631aa8e3a2931301a9cb9549a2f9ba2840fb3f04210bfc5d1d249898aec8f4695a005b01c8047a207ed5cd88e0b0eee1907eb1da46f1982c0c189cbaa5298e4cf61ae017dbffc8d07b7bdac93915e6fcedc9e4b437b8a1f7b9e984b9f4d52fd597421240b6a50122aceec4bb7c9140e496d606ed67ce96fafce40ffd1594ab327d2c49629fd7fa897793a42d272306e42d3a3209d0f54ba50039638677317f6ecddeca54a4d64a3eb9d22a5fb07d228923b0a76f94906133283a634634ce9fce9ff2b2f2d0ce7ff53f8064d8e5f44da6b6b760cb650b0e6119771d392611c0957f70fcb046cc1f607c7d6648716e4b58b492e4c702627b001dec69a8590f900622deaf382480266d16f9f2c0f16158a6c1b7c9434a125d464d762aeeba00bea3f5a0e7dab308da7d5bab845053258bad0f06b60739f6bb41e83b815d120fd1ed1ca267972f6f6c79ce76e9c8f8f4c85635292c2b21222f5403f89ae7cf8085ae32ad516a6481698d10d603469e668ea8cdc7f3b7f4261abb71ce845ca2e0377a5474fb51238df34dc45a576e4df095e847dec66ed1da68820ea8a8d14672f96039d8b90db3df9456c3ab37397804d400510bfac610f3feb17a6ecc4bff0d916308e6a934e37fb410e6ef1deb1a6858c59286d64d44dd0294d3bd70e2ff953e99829897e8af899a1afcb7c05c375e71a08f950628de0966c9f0401af0c6dc7f4e82076cb36ead49e1017dbae6803c44b025986a48031e12bca6b799e56a3e529873a36d5383394ffc804d59c649985d94827197d5ab4f90e4fa8034588ed5859c04f3456defed4d2ac77064f39c65e73d2d5f49b1f929f99cced317cce35b806bf8e536ec13295576e9d48de67f72d4d5e861a9d770d0b21dd70102424370f7b65d2af8249c6ac9829214bce9500e89ff1dbe7be04293ed70e576402304ef536c51ec55f3eaa1161434f15a4f0761904f7c7e79ab48cfa7eb190fdd71a95deb72b7bd514661c38d5389ef496bf9d43fcf50802aead7b72f85fe79a0feec21ac7cb043db1bab3745dfc9b372830acb6f0a30f2f232e261f51bec73e92b36ff5480355095681061e97f808cb48f3974512b2944594d956b83a783e8e665d5a9d6d523ca2cd61e52a9bce94acc00a1993bde73104923962a40bbccde01874b6d89eb913e301700ebf2872c6f61be83dd5dc58f686c9340f8a1e78b68c3d031ca73d0154810139595f3c596b91da0aafc510c767c4044d49efc7d0dacbd4f022fc01cbe4dcda55164f6ea06ff36faef717c09c5ceef281827a9972353eeaf193a3ddc855684d2f6ff0794eab81bff361d58a1c3fe8c4ea686c05d360dba65aa07be273b9969ad6475b52684bbf3865e937b1e3818c45df0707b2ae8f661b829dd405087f795df205d92c4ec163d04c964a173a7216d3d98d96d06d1dd665190f31fc7ba3f941b3df64f78611e20fb1e337fb7b9856591c6ef943800fb927a535f336df1f21f179d72f752967e436465d9fb4a04ed9a61e3f2f92d61ec4fa5ac0a7262a4bdf7da1cf7865d3bd61b2036fe50e6541c2ec760938cb29f9a1ab13aa2be082e8e003cf2c27539d6ff46f5cf6b12c02ed6a89130b44717a392b137f346fe2b02944067fe35e77038262dabb950f766785df0fd30901e258b7f4d783e0e68f0203743c68ae5297229ffa98fb63e45a96a4261bf0054da09b8fa165727161e074e563b8b07c2c8eefc754e820c1723cdec68e867c070fbfaef039182fc6f45044386e49b51862ce84b63537be8f62833aa2e0e886e21635f0a36a76a2af6add8163e6261d0e03e41c415254c7683456bb6b64541164cfde5924466f3eded0db95259a505ad1171ff71ecb9de0324bca48e4fb938ebdd8c6365fdf34b016b4d20640e10f932bba224e5ab62128cc889277e63cbc049e295a0185e7825a21475009dfba013d75c921a5742ddc0c252672f2aa15aa31112a343b27a13870ad1a2551a5d1856c7fad6074fc21cd62d77231be5173c8aeffd6cd6d7eaeb236fca78d0227e13eafb9489e1967282019e8d8fa0add0cfddc60e99758dcdb33bbc3a00b8da1aee3f89705965901c4725b1c0b1b3773fae9fad7d1147cfb1cd770c6dae7307a4ff6fccd474e976c34e5b4b5e79c6d0c8bea023c8deefbc72aaee9c270e3003e4601a1e4dace7d8ff563b77f607d855352869b2a15daa6ec756cb09a13156599092f3a8756b76dd51fb87a0455f008230eb40086f52436d1313e4cac80982e7d93a14c38df9a0cc6e68ab9283fe1749331c900251fccf2c70efca523eb819536c80063225a227a7a3021b26c7c561bec2e7772a729effca736cc3837e52889673746b9dc0f0a9171d3a46e7364f5ea9ef4617695b0a27dc263d38a359b07dbd9f2833f5ff7fac9a94cb2c37d2b0ab5270aaf32c85cb34c8028c9c6b90afad57588bccc260896ba911e850d7fb28487e83c19fbb5bfcbc7ff81ea59f2c5513d4796eaf436e03b3da672bafc00e1b2c672f150bac9cc5b61863c8c1d55436aa497e3d90f777fdd98546ab83248b07d462e3dc74d96899b861df81ce144eaebdf76c58e83dd7057200382d19c6508dcebfa4a6a534d79509d0db98ecd544bbcc7d50db8a211cc1a48ee8abc98bd7a584c7bc8ead5d193b1dc801bdc6cdcd83d54b2d66d9fd2a55c13aa1a88b8533fc4e55843e24aecd3b0ffc1fb4ffaf71051a79bfcc8f3ba32c130c73daccd3733c2fe83d5b0bdc28cb3c5b91a2c34d94732058923d0f2c228997a214daf930d1a0c9c464156bb1c0a112eb0a635e4e7fd29ae74ff9bf4d48ed2101de36c765afdce34476e138231e9e13d47df2ff7d43cb61e1edfdbf6d8aa339899f444d57fd31aadb69efa4e59e42f026d4f97a069c111ecacf5b5d607d051d199cf22597b4ecd1a8d3cdfb956b3f643abca359af16a9933d3c81f42109ebb90d12288fc015da94ff27ccf2e58236dc70f8947d596403ac238855e570b0d0fa4c1eb629cf95a952c4c674be7f48478db1135da78869611a3c878eac0cfa9998ab11a1c9e576510211f25edf1a3795581bb396b04de8009d3ded78444b64c89e63b8763f67583ce78ef802ac010f50f6d233f23e08153548f53ffe75094a87f3c55ac18e46112e02442deb6c9a33f5d6393e7a5e64e41f0f744fd418dabddcfe1523a8db7a3f6775f545704e262026f507e946c589165220e4a023eb6b54075e150528b1fe97ca0bd6533142a7be5b34feb60c501602f155c07c6f485ad07d36ca9906dbdd4a5d2ca45ed82d352821ecb43ec2ded6713c60dfdf108ab8c550740de15ca32905c8069ac8705be4ce0b185a79f0d5169432235837ef10724373e3467ce84caf5e34b12e21fb6b793fb71658c3e30c420147666b9159bc766fc40ae086205782344bb61633764a56db44c3bd08e79eedee5eef1721ce25a311112545053dd8d5ccd4e8d2c54e5bd50ceb888ab056767e44850232f289035a90151a328ec623412b4443dc00b8e83f4411e0a592962bf96de8a0cb68524b96495d35fb5bfcd2b46be405c13143205708099b4fccb8955880c02249ca5c76611e44af1a807757e6fae8a2730bd5f6b1cba945e764d163b7de2e97860bff8b13bcbcad25e3054093c4967146b16cc209cdd444c6b66faeaa82524a5da276d7f81a9fd37d7490fb58da052602b881873b256d1bbdb46ceec354907ada9b6d9e249751a9baca7b7846e20a62007e737a47e22c8a415a66341b347bdf39fb4a64da392669d3d1cee7d3e2a5116434cf4e6b7790775c1590b99174dee32e3a7e9690b72314ed379ab8c6c092b3cd22f7dac834406ecf4086412b83bfa2141e26faa473d1a6c6dc0d9c72bfea62a954da0f895baac25a948e579b98530e965996e7e9405a3e6fc8fba4b40168a2b847fd82002c7904109b623dbb8e6d2c178c040e46c60ea89be06758903595b946b11ef4dbbf0aec49b50a15b9b1f2b95382fe8cb25e58281e5ea4527f5d4f4bc33348f073d8cfce6c91b7a98ce0612861be9c892dddd6ea5271adf380ae01a471b9f4a2cc7d635c16c53730282e11c204a7366560c9d6cea8a8dce2e0ccc716979d45e69c897f9c7544003ece79dafcb799069abf0c9263ab18578ad70131310686b639c4d5e11d3e137b4cf6f64b3987149fc63f58c9c9ea2d006b2a73efc7650036940fbe5982ac715d890b51460e19b345473bf30ff245aa87d890e6705b1765428fd7bb2a8f59af92c5912ce3547e9a985587606c8ed0c14852d78722d6b576c22ff0c1e4b38919a747d0360cefd6885c613a86fc302139ee5778e5a679123a3ed2cc689ef9d81ff1c4f8d0fa4577a0b8b23ba5d787ba0eff1736be3bb02f65b4ea4901f685afbb18b144849617c04902ebe041812568573148e5474bdb738e06eb2bd0c589768c8171828a1e6de561650e60748257041f52914a1f29fec27927ead261562ba1bc349b2a2fa874bc0d057969382341b2d0e0e580cf8580d6bdc7609cbbabeec7ba73a9ff72a3312fd1f8ee3dfce04b369597d4d65dcae62e62821696a2fbf5210ce560393cef448e3d911e08ce0e015d9137a93a5f1f8ddf2ac7ffbe5c6fa18faaa23b2413a06236236e2713df1da406531f1038aa497d67406946e43079ff953a449b9f5f614844f0d7b9722fb387b5358f40aa4a53054e8663984962346e1ad85bdf3cfb1f7070daa96e1d9a63b804b905bcd322d55ebbe66d87386dba6977596113506c5e35f713b642e1b9e1122c1113cfcd2a1c8397182700756e6a091449bbaf1c8012ee6d32a0e6367b001309fc17217437c70dee9499ca26aaecb2f9becfac5e1dd8136269f03df3a5d19e6d8495343dd29717489f5b84f7c896c635d447cb2b68dbbfe15ae6fd56c790d490e47600419fb6299a6547f4a733fb38119e859b4304207409af9e68278ad802bc905c1e001848af72756a92594f849c835c295e4bd4ded0d8a65714efec2a8d0541bfd0fea5e6b1de6059fcfe616781567fcc76b6a17d2782af7787db00b158cba8af13bf084ea4151e318ca0bd193340606b8e999c9df83250859195f5212952bcbdf0214d55616bdc0f14253049515766677c8bda00238082add0e2f7092b3a5d6faaeaf3000000000000000000000000000610161c222e363e", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 18, + "comment": "signature that takes 17 iteration(s)", + "msg": "1700000000000000000000000000000000000000000000000000000000000000", + "sig": "6afe73d36aecaa2ad4688160baf037a0e56fac2173dadd84614eb8223a35ed79f83b97373aa37f04147309b5e6900f6cc68c0aa7179a82604634a62cb66eac1ada62444e03030e0585f00175c498870d886171f16c825bc17d2d81f57dd8135ab4430cf144fe649d5b434f746cd41f0122d76aa5e6d9c474a187359d9cec2288ceac723a72c041a01b6f6d80e29023514d2d5347700b6a4e5e4df09891f7ee645586d47dab67328537d7ecda0aa3dc358d1d52b24caf88f4398436c804f0acac457959d33559938c9d859d4c0bb8800740f624653376168a70f9be80087c263679dc1e15e22afa05d06c48245cfb7cebd8e23ebda16a372577e3672622fb7e94678739caad7d52f18975029cbdc30bcfa65a49628582653407275f8a617eecc29d006b666f2d310df7a153d1f0a3683a01cb39edb0c8432197e2b5a12ab9cdcd241e8625325e165ad273aeb6747baf059b70dd9d86cfcbdae023b4c39ad86f21725ba8ab8262ccc9526268d1052779b0cc294195a82411977e5f8f41187a1482b0d16526b34c86e41697768a2a916e68496d41ed7dd03a4de9e75d7aa5a3b21a99c5927a6f1f9cd6f8e67f459262703e207091c1b1c4a49298898c9f3d483cedff39a6287c1a1e2e440f1100797f88b655d9c6a2791ff7427364145a95af90f71d5f69388aa38ece566b0a56f5d7aee9a0045cb9f7f984ae06b6cff142c39c51873a8166dc3c055773d3f58b92b0216d065d59103826220c30005ed48968c5a0cb5c427d145b35712c820f271e665ffac12cdbc59e221fce0d31363dfdbd3afc8f8c65e321565806214aeb37016be63ee32d33bc9638926d875fe9fe0e9b4cc6a8c9bbc02f1f5596163b724066b37f69302371bb1aca8d5e5535d883e12cb211a7ef64aa270a9eaf18cb682b54369c644c7a30b5f9fcd0ac1a637a9987360901ab63af9a1188eb81525ca23794b30e51ff29dfd69a79d95d819cd0c583be8e42a8b92d26da6a9883a9411ce5366778753b2f13306d8f6d58588c4dd495f986a1d50db1e058dc05ecd75e566f951d8c9306f828d0c29e198c44cfc11758ef23bacb44e3602c2be0a06bf51d11ea38be78239a94cd4b6ddc7676889aa640c4ec2400035d95ca3f2f03732123fab7c19bab26655bb4a1adc78e27a5d29a590d884a24a118335655b0cc420fd58da2ca6d3cc7dc2dadb14096eaa5ebd262ec4d13fe25d2aea89088998bd7d212b2ff54b6600a65633ef43e3220acdd4045a7b54543ca602ee31271c8abddbceffb4db0db2276c5465445744384de5931d2ecf7ba623574bef009319b0b63978286481cf7a8bffaac077f19f359158cb597cf24582b304c72849584353c97d6c6bbf0f7aaaf2b6885418b08c9a8c440688a1d5a469cea93153ac846cbe13ae070f85390940dd84976330651b55214112a815808ce97e3da29dd7f638262ec8dccbd8fe9f8806868f96d9d68a318830dd2ada8dd1885b4811892060ee0bbf8df72a86c3d2d63321567c65eb2f4c90f42a9c602cdcb0f190f556ab9505a8de85e24f2712b714988e9514803f068a4610bd5f03b6994316c37712905eba9e950cb6c293cee3867f7731a6fc4b5838db3cf03ea0b875c4af9752db8e850615d6f4f1770ceadc74abac2bc23f39f9c6e054d2cca9047586c4a0d20311aecae57e649fef1466267edb901e9eb3b535dd56f116a133aa40dd286f06c14f1565e88c3323df9b902d86c2e8b2d20afb65a751811a181caf605ce0d48edbbb4dd6b080cb9727566ea3415053d096f8493e6186ab2b7342aa14c574212aed4b304bfa1a6086e47d0c46d1e8fea663fa256ff74a7d5206876b751af34c8f736fd10a82f232208e8f0ecc19d622e32607f93d15be348e2fcb461508a0e3ff622db8aef1193b3e383e36494580ac411b2761abfd2d412bc1ac573867e1ee2306e056ae332d2fc37b9bf0a223314d005cab83de31623f3515571609c18dfd86ffafc6135b8606b67dbbc93ee3467f6008ff3af06c62128aac3dce1166292f316735bf99caef120edfbc75c64bfc8bf1b81c8d3a4f81bd6cb95e46883a16feb682c098ad32e8a23d0c024b9653da6be42009997b26d1dcfa0cb7d08c47f269a7633547b2566d685905037bd32761306ae1b336339cfbd6c3863f8122a185497787c1527e3ccfd54fe876ba7316c1d24c4dbe0bbadd149884a7558d897e753f6371f8c0e56a2dc036010e9a4b86226cfba2a5616a08890d7fc0d5e6703431dc4e8b1085f72995181a05f35a9b1b621979be1057567d0bd6406caf244008eb72269a15a788507b71de629469dbe5653b02c6a47f4034699ef7889cd7ec9e8f5516f292f2dca6a69565ad16f93ee251c91324fff608882be6639b35a9b4a2b0bce923c56bb605a74ca1851c594705d5d57ef718d5f16f5018478f54ee701789c43784e702d0cbee948bae849fdfa9e2d4bc303d9d11abbc000b8561e68eb51a0596053e30b2fce8d90a6728455edf19461e02137b8f5e362d68df93244956cebdfc8e67cc67e2aa95ebd4cdec1a36413473317d45b028da034a1ec0408ff0156ac274622f966dce0714ba8d9cb4791abf3c07239b7eaf96a0727314345f49953e64bd77dfd64f463bf36f3ce65f18fe6ae9e9c7e737c0ac3b48ed4aa2bc53a0367a5fcab60b6c115dd7982f8ca9e00f25f6be58b7b8515b266ffdfb884112bb46db66672c7b23066dc0cc061d34e373e4f125baf1b625336d6d6796064a1fd2ca95823b8b1b5512fac9521a691dccdfb44b10ec5c47f1ac6a8afad1e155ee14e3495272ef3953d65488c7f53867905f5671cdc5605a31f4630489ae90f4dcc7a074c5824296c2f491738cab3c8eac1a99147531f5dd652027f1bf7b450ddb88c42033cc03965ca43eb7b0990aaf0b470432dfee216b0fd856ea357f62015fa74ba2147eb6ea3ed948f182571f45c04f8729cfbed4f5dce8f4201f907be23337dc3d89073d6965d21871bb30209c6724d14336501a22ab83ab1090a372e7bca192aadd0e161939274ab6541807562f9a8fc8617bc688b93f9c635ec08244f4ccd5e19f4e0caaec108f5d6d935cbd2e9953d1c6cb84909b3b4f9d2bab9dde01d885949515322ce9fce4e3288096dc11c9c3124e44c7c25766ef0daf0c8bcdeed8fb3c1dae83c44072c242630f7836f46ab8cbf44e6f0b85df96376fbb40d000bde32f2b5c8f0323e925dc3ad920d660fea568ee8c6800fc45df65f217a5d3b5ffe5233f984989762aafd3d844a56d6e68b15bdd989bc63e256aadff6ca0179a872cac3d2db3eeffa3e78d79b05dc8cf78419cab1ce5f61152c091e8c13685f16d168a3f0c8713fbbffd5314f669b149ae1bf6813de3dc81c65d15593d8f51abb2247967fcc1adcc2973588f5458637b53ae8d6a43f1071c7c3a8dbacffdb5897f1c9bb90b22bf3fce87cdbb538607408c2db891263d683cbceb3fe772fe7742b1fc280792c74d197f80710ba38219e8743639aaeac6a29feb0e3592b7e57f53a9e88beebe23ce5e0791d6d50649c938e1307aba55f487183347bd2b78135e2988262d40434d2600e4c2b0609dde365f369f9d4bd5b18ae8ce07ee8cbdbdabed5f24251bf10cbbb257471ed9c4ce68e97d9b52f974b014b67d37dc9af0e5d6b568cc071afffdbd9dccd8748fd2a4cecbd15f19f7033e26ee7b5314f8f6ee319057a0e38a873bbdb96e0c849a014ef8c676379cab2ce0ebd3ae1e9c048ed2f16c600508b40d78bca5559ca978df5a8763b01cd606c6c94f392bfab90f3da115338a3de0ca43f7401f25bbed0bc67862e7e98782387fe552628f479466e60d332e2b3e850d60742487fd7841ea792e8318eb70d3969d6fe532e2e1c75e1da025a372e286a5a7259a0420ab74e14ee598e8b1b318fc21cdbdb16854e8ba387c3cd969477a7bd11f405e36fb7fd5c89e6c466c367d200d00ae824023ba2a91f112985e34143586a3e47a8d473e1aadd4fda6eea327d43c8be5abdec3394fc7544e6f3c7098541be8ff2e49a8e5b99d60294cbabac9dee43512f3c935a3a2ac27358c37c64e4bd67da82813b195e8a716b70fbfd45086568cde63ff37602489da9f685966359e728002dba275e8bcc7426d05c4949d65a1e8933229c734005c0e76f45c8a0e1634b4871a2c47fa8e28b36a444586be8e1a08a2e0350f9805481835f50ccee9c2b94b6b7f3787da78071c2c6ad4e7d4029c06ba838b90bdc6a58ccbbab20979560020d06089b9067e225eca8db229e9999fa2bf165487761890c9ee469bafd3925fc2cc61dbae281b45e7a3c92b81c3734e9821422a1cef9f04ede4250b9a6c77899934ea87ca1689cad0266959a54720c47d1df1ce38ac738a1a2ec77fe4cb60a8495c521ab437f815043a909527ced52c0dd493676ee9ac49ffcd67e3ba15a21b4d7e9ca7a0eb4417f40a3923e5640faf1834074ac4820b122d7b3eb78e30b9dee1e754b35a22baf1c35438d8f0bef4bbe6ec83b24b8efab7e6ef115a0cf158db10840964c58fe308af4c78de7811dd54a7bf7c912ec40386ed77c9e325574c13cd6beed6a0ea1999d3b6a7c2a84c293f1de29ac3d1619944ea0c6418a8172a235a329a7a1e324338468c28e35b1b5c4ee2b777c0b7faa99f3a69c67f8a52e6e48a29faf3d2f66754aa74fa09eedb87d94fd4e9acb0fd89af0d67d483b6d2b66ad61600e418332fe5da3bec3298923bb30ac7e33137f4a7a749ef9b127be11a5e5dfd7bd568b8ba58b132380c59063c337148acef096b63d576483dfcea96c8144e8f892f8d597099c185e518fea0eee7fa98c25ba0cfd14e401659c508f26ca99c80b3785f7381466a868cbc36cef3a2ac2316318a331a52a06b2dad78b6527ba12c888c54d2bd0255516c0c097580a5d545a25d58e57e9979abee3427e222aa956797df35c77feabb5cc78a6edeb9c3c49f5640faf8b599cfffa2329c95c65d7ddb9db72a9b281cd8d3fba3c16fd8a36aff82d7dd401d61bc498d2c8216f5f2c2d7a5071f95cdeebe78b097a0270d49afd4bef91730b7af93463b0bec029869773e77c083b00a4eaafbf917c7b10d0f689e863d9d920bb19796505c84208e4ef0310e475f57d6df863838fb0e43b7d7f06583fec059b0c7c04f54b0523a7e641ec654c7f6cd6ffeff9bf92901c6e71506b40c8b09ca6929e9d3b2751737fb246a4f630a21039f6f872de303d1d9be6248fd54f31a7fc057567ee9d2c6d634970ca48e3e8c78c2b894ca4ff647409ae3bc9d85056bb81807ee5b6e66a182db6b6d0d4c646342668fbf0dce135f8c41a5a51f1dd57aece7947c35ec92f45213abde698531bb98d408171f62773d972cc5c364e9da3bba7b75fa64b7843f0c0c7a358d90ca42425764fdaf364db2574f7d102cdccf58614ae031f3dff02f6e7060b06da5ae9276aa467a8baf90a3f95197784deaf1a212575e7e004df504024c7a33b39b0c986246f3e961485579cd4ebb1819ee1a3a1d34c31ed5e7513f10cc338b6c450940e55ba943649314d9b16c2f5d816f114bf68c3890a2ead2296fb67601a10f25e9d9e6d1e91538c46ff8d63f646049c1c29ba9e6db4c2bb4cee1af6fa2990a9590adb420311f6a7647bf207fc3a306ed5d02c1e808955a62bc4e7d2deae6fcf356e4fb6bc5f6f3e0631d4da82f78de35d6f28f2584895ad2385f741a8bd49de5ccbaed013a9c2cecbe15ad513ea47f972b4ee2a0f03e0953c35c7aafb5c0976242f0a0e25f94c889f4ca02a7db0460af48081fe8a5552b061f3cb2200d1e9d7ee2ff1721fe50c2b2d89403c0aa39d3a06651dee7769b204036d6a246f4ec840b88d626dd2e3a71f6e21e21123d7115d29a1c85ce68436d15b0ec24f8e9a1e0acc466e16e8ea21605b7448985a56a187c816ac4e376c9619a745ac652a7d1925c729b37168ad01a621b05a556b001ceffb6461a8745261f223af10c53c3fa3d437ca75a5f799e37ebfc532e1a427512104ccb51f97f31839ba8868c0451a3be7217a87b5780d291f93aba9e7d19d928fc9b597fce8c445d3f93a22442ba75d2c30060ffa563e2a85d3251ee1d396847025d7af10228bd00bfb3453e9598d0b2da3815e5c8e35d180c60c0ed53090c698eb098c5ed372cdf6a47112d621abe95553615bd1a11a059d13896cb2ad1f3707dd117ee97428c30ef8dce10b61a71b769cab02c9424f183a79b3b6609bbed000ae9bb9abc6c079ae66f59a6fa4f948afa74a643d90172ef5fe7ae29c7d229c4c5c23fea8f8932ff578ed10bc40c486959e2df5b9a09d5514f72f82da6cd1f86414567bcf1122104750259401c77b508383f334df04b25ab339711f8b477d21324feb43b125eaea5a579a9fe32c4aad854a45066567cee3162ae635caebd951d0742df87e9d536d8c1e227e88c8fe05316c7a969ad1ff1b696c7b86a4b4d4f119a4daf100070a6f77848da1b3b4f8fd1449a2acb5b64168b1ec02124a57596681ade00000000000000000000000000000000000060e171b272d313a", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 19, + "comment": "signature that takes 18 iteration(s)", + "msg": "6500000000000000000000000000000000000000000000000000000000000000", + "sig": "535286d7323240363071e587302bf6e2dbb28401997d5fc58c9e2671021ece7c0dc6ed38727f03af46e97a18e415b9fdd6dadf07af070d8a0ea7b1b815f9c22cbb9b66bd34bb15767a58d756f8c45e9e44e0a7dfd00ba5b0c445140ed26d0f56ceaa33082f120636ce2d5e417d9a1ff1d4cf2c1d6f452748af68b70c7e34d74d22e1728d34e39e42c0a2286cfb12961bbfb6723767e8dd6d6525b192beecfe418fcfbac6d66161f463da3ec523c2a9e1d2a187e31f23d56dbcbac30f28d95b705dbde7b16d97f91c50976750ca35269426a9c4430dd20d542a60d12792c2c553a05db0276aa94a5fdc14ba88a1f21ba6e18997e8afbef9228d91c5911a76967ff0cc617d055aabd390a6e6474eaa18b7f5721c7291f6ced5528a0a70a793340b75a1af069db55c30ea204d5ee8a3272ffdd178dd2cb3d72e04b1f8a6a2b0f15d7a9099c362477291e4c4ce2d5cbe41bb2d1ca3ea81053670c7325e4da89a62e7a1dd475952227f3e8be306f07494a017025fb4fb340211d84504939c69305957939be9abfb15d1bfdff5ff9621fe9d451661f5790b730595e976750e29311186d0dbd58ed912132c83c1dab9a12ddd82140925eccc25db709e61425bdbd7ebc2161c1f72fbc30e35c45410bf9239464253558f8bd7292f4a23f535d147f2db9ca4759e471cd6cceb55e5880b6ac5264c4d1e0f85d5606ecacb4d6b0805396c87a4f2b2ce0f6e98556b77baf437665fc79d8e6c9f009f8c69c8b4d8562f979b0c7095b7663a231340b2bc3d9c62589baef6635715260b2b157c0ae1783936e728a6b52eddf2983fd4a21e913cdb436639aa44d62e5cedca417d172f4e22f6ea3f0489b02dbdc4d7be9b89ea0efdf2184efe3db8363713f781c44aade4926a963e56997eb970da36f32a2b6725120fb519b47a9028e18e83679b85c97d0025bd36b96ac34402477581f87ef70273233ff2e5b13182278f408e95da9c2efb3978ef8e5e06928c771838c08a5645cae4c8f3a940caf71908eb0ab8e963cbed810c571bf8625ea6b132101381203c24bc9917f7734d7635e158aab68fd1e4499345143b52a2d5fd2d17aa9df026b002bf468944f6f52475ec3d7d5c427f57edf55f739f7b507072ea268f812a2d155e23c147a08d8594564ebc5b6a41cf9198814b9deef9218b148555ff22a9f0b4a8f7aef1b51562a09683086e09e6bf446d60538dda0861b494aa2e0f51482e617e1dd19ccb8a4166bfe4ab9582f88107b05bbb2f7d330b8fec0a573eed8754758436151e1b3e9c28e01ec82b2c7154244b71e12eff4c5026af8eb58a8cd810c63735a716af83bd0ad9b9cf8acbd9f727532e78445323914be43b2f78d6a518215fdf2cf5e8de05051f304e172f2e0858e708bdaf0041bc4aed6808951070c221219d304f64067d8f1bb74120a3f08357a59d06ac0afc2b7137a75117d6f3c0b6a869512c6838476f1c18f21344a28b3ab53273a82acf1fbde0273bffdab1b1889b850c7f87d9403bcc1fe08bb04846c21b640de8a492a66efbaaff58833b7b46461eefaba2c246c760588e2cff125dc08c7a3de11b446399ccf8a82b0b78074eb4fe3fdd8eede242571e96aa064933076c4589c3a1e12c495c82221ff55785fc144b644aabfec429d81861365446dfea8c366aec31a1145f37036db531b1c5f761be8fc716e824406db2800281a6eeb8d6295a8ab5b6fef666e0b6a5c1d032119e0d893c2634afa25f7512fb951f6149e6c5359db9e689945bf80a9582c5890f0905e4b917041c6d96db885e180e041d27a58b0742edee17b8d3cf28f77cb1a22d6e5109cd5c515c9b6044cd434b58a28a931fc73fdb234893e1fd0441619d380e0b8c7f376c7a7508eaef29393bbd53460c7db0000110ad75a18b711e666c447e08d836a074eda27c6e2d27b5708f894fb44197b581020047ba37e3757bf3339eb8102695591f06ebda1d94c978ef321754e298df3babfe935c59cbf28da110e3e62a715ca071825dbf02133fa44f78a48eb7b23deab3e3b2f026f39a8ac344beb312796df31457ae23948646792998c22b83d2806a1f74b12d09894d3b4719102f07aa214b2c8e256bb7664d11c2c41ff93bae59c7ca9c2899148213b77ac3918c8f7861365691bffa93645f2f86f881a2c5ce29769f42a81dba4990457b10c157e9c22ee50ff52c29239734ebb5bc6bcc1a5d40bf95b4b6296810150b8da0ad314f1e8e1b6f01d116215eba20a767e54523f6309a54d8c6bfa37fb2290a1b68e348fa383fdb41ac9b3ba20569b8968de5d65b7108e8ef3643682eef54ac550ab0418c179a48f18e4cdec83c6a8fb491dc8f9a9f6bd9d7682b48d9b1acc9f9a396b00abc5e7c1cf7519c37420cc0daf6c7751df7bd585e906e36645f51706acd2949e907b0cb8e0a9e916afa477ee777bad47655f03af5a1ea8c7078368167946b5db0401c9306800cd3d74844ccdf4f307a5e662a0e9f486779513713e2ee441ac35376762bad1a3ed1ed855c905440b231851d3ed7777dd4745d8f08c47113fabebc0342f4cf4d8eb568cc23b902461b53a90467f48fcddc3439795b76f0afc51ea3acc93c1d1252557fc04018ec087beaa9bc86a10719f8bdff233b6e8c2777836be638211afe36d7affe5ffd29adfe4d17ee9c5fa9ef29c549f27ace7d116e21e0bd88883e978652c39eb6ae16bb2c589c22cf00dc2ecdd4a11630e544099acb5490a445231fb174b5cf0bc2fba80ece34fa5549ebd8d5de4d5ff5797812a7c57bc1fcf79cf050dcab6299c08bb74846dd70b11a82c5b14188dea66dfc61ce45a74669b3f5a78bcc3d7c9f8d821a30beda96a6a7f17641e0b07b0fe48b30f7773513708bee625ba4060f0a7d4acdc472d70b6e42e2814123c637f4a7ab33c8c5872f79da8e6fe97e2c3ec9581ad163c7be117883731930bd4599cbc4ae7c6b2c4fb40bd6b14a53bd58965ba645c42d0a1211636551b0c3494775a3abe77d94fcb9a5454167dacbf26ec39e3f1a7df7ccf7531067a05fca1c4c138e53f276539a50cca98bbd84b23f6da511024d8c96af284c5b9a0636159d6d99e151898510706541aba4081c70206bb6408b685747abb30b85df0266cafef982a138c205713a49cf0a4e3d12dda1947c63a3c1f902866e42e1557bf80ce1879c1ab0df912542426c8cb7563b8e270354813bff1a143cd3b8effea65f0b14b09f29a8440d2cd50ae42d227d5d4295b1bfba8c6e34ad78047d59e5c7ce83a9367bc6be3ddc84fadec55777c186b5760d22e54ef41a6416d720d1242c805ec36a031fb5b410183cfe54b18ad5eea722178ee4267ba67d1260d48242b00e24756b0bc7b58b4771fbf1995189ed80ae7e67db0be8ecbbbc1ac03de553b0502873227e93f0b5ad653442ed4a357076453e15be3c994488e77af688461d40ee24d2a31ce3870e8e2894770b793656abf8e637005931e663cf355fd2e949fea5975f0643b8fa54e647635a90a7e58b0c3c20e2cb06413f48ff80a483614286739552e1d483e3e9f6080e36d452c39ab125ec8ab0d64540a8b8cf46c18c905be11b06318fd16fd93615bb48ba1bdc56a514e113285f197fae0fd02807de5f23834ade7f5053696ffbd7a11d743ae84b3dd329784da7be47bdfec53c90eb4a8776240c635b5ee37c3d3af852e3c402896d8aa3dd83be9fffa3ed61ac1f8b33f7598ec9a142a30e8482489dc937fab66d71145b92da0a74e46ab59f5d073b0c10ed8900a3f25aa3c3e4fd1d027a8bb31f2a446c57edb40a1e75f14dc35b925a4beafe78d9c784a8b6aa3ac550535d117d25fbfc3072b404e3b84bb486c2380fd42c61157ab0496530a36ac4541b8e8182acb6a5a8c46852f3560333ad7d7854bead67337f1566e94acdc4f75ad62352abd7dcf3a914942624cfe8bb20613840794670a26ef9bd9c15f893384b7a349076a09fa0084634d17bbc0b759cded83a7dfad84e73dcf5e29abe751e1c87369b28fd6a87f2f9fffd698888fe5aa9520b58f3e38439c102242cac89c5b62a4b4725e8e3e44c3e5c4016251b978ee9d1b3002b6fb5c842bba7b429a76e3b75a318dfcfd0f55d01e826e7ea971c13e96cbc5d9ace145b745b8b0c3396f43425c41b54b1865fe368d785e8b328aa44212c95d74861c68d884fea1ce1802c8bc0a24472604b1100fc93b83c490dd93972a80c1fb8b6fa617ba19cac6a93da315fb9be7dc40792797e1f1dc22a65c7d9e590818c978ad89887abfb808bd6d57ce256ae1a7148ec766a0e4837d721f4387aa5b5033939fb8af067f745bef128f8d36e2531be75ea50b0cd35ef2bdd3894804b25dd3ce702bc67b1ebcaf3ce18309cb6d7b114c9b64680bac9d1c83d3eea22ca9b62ed1c86d882c40b904ce634232c2cf0074a77028519234ca65477a8ffe83a02b8a08d1d4ceef27bf8dae8a913a3bad3d3b8de762b70007e289614d7e64c52e1a000ac2e7c08b4b319c83322e43df054ae2484435d795afa0a85fa34d7e6056878af426f2200487db1266d505e3db893dee9d45f2c163d644c8d8f3be0840e232976c1d52cb9de4cd80801aeefc8145b78dfe2bcd6c689967dfa708f7b5edce5ed8bba0e74236c4aeaec10cf9b43d6030d49bc25bd0b3af8b82fcfb71ffca09b6ed174e76c1aa525c6044ce8e050f5070a9b19702dfb7e0a4787c62825087711b8174614cafb743e5047c141fe8364d4d51935bf99b67d06801b938fef7b7f1bf0b59aacfc4978779725fda293fd98524e0141a8e59ad299cb181fd5bb975e5c80e76b1cf0920979b85fe182221c97d41164b8f0f48349367b52e1f693f7fdec569349109fdab8a96f049deafc0664826c2966b5c47b83a468dd2546c7265ebfdf273dacfe8ea5de7c2bd42d5afd97d68a4926a61c5e14673b1c725fc55e686bc1f281cee74315af39714cb235d109c34a0cf64850f2e51736076566717b87e441d45bace802d7e7ddcf3732d7249066742fb554cad3ea8524bef4d9839fa53db300b9744da4bc6f1d70a3061f3fe91ae7f5f4361b2d194186cd0d9c2be21d8c42146f7cc0b5bf412e9956891e52aaf528bb136305c0cca6cecaaa6849dcac67d4e0ce3af7d78cca83c3ae5e91dd203973d032733b1e0d4fa9508f39f8b7f13d46dac22c48a39c59353279b70edd6fbe7ef6ff0b577e9d2c84f1662a947be8bbd3f1340ed5d87e6ebad9a2983a6f3a73cf1f6dc8b460c28f6e95b988e0aaddf6b8ce037f9013cbf98720d2856d9e7832c8703460318a91c78dbb29b973d89f5965298d7cc2bfeb0dd1d9423136c7a8c5bd8cda2bc89b111120925734b1f02f98b61859fd094b9d6bb2f87601f15e451ec6c0c4b290ceb6785e8573b7c892611511dcceb4050d687fc9d3dd8e13838cce96e9c44be296fdb4fd8f2c0cbd6db0a3f2d637c931a6bfafe9751c490001c7017fe2642f469d3db250e5d2908c5e05950a394529442d75346c3937e4448039d3e0926399cbf4866829c83b0b2fe53707e6214aec13fd4eb3a87e057c5cc691a1a1b2d4857ec5f67897e5ce063b5cedb1893e93ae17edf9a20d5eb556746f15c3cc66a213d545743e044eff165cc9051123ec62d6a54e2e5e2e6db8fd08feb8a837edf7665edcfe89e156b2a06e3d23981056f2c96274b154a8efa49f46733e8e309d11bcc8b6794ab25a1200dbaf0ddb48011e393833d353875075857fb125cbbb6054951cced39533dd09e35ca1512805399c616390bf2e41c6888b7a5db931cb92af941573586a56affa9e361bf12fcf70caf4f006802bbbd00697ae61cb711098cd613f2fb99aaba927e8ab88215e2b1177cf8e7e34f22e1559b27168aaa5818ea449857212330e982c3d2a6f88781ab5c6f75906c3552aaaa14b05b71f9fb7132a5101a2b325325b4a58222c56b75ad64b2bb5cb96df823cfa6039cb48cdb6218aace7fbb972bbc9b26cc3e22c09f6f9f3e57b05ab75a36d6337a74f690c144e4a6849e643f5878d67a67a47290203536222bf467987de916c69896cd7293c3b7474dd6c8103a1bdd4dab3f4737d8027c7f36a593a8906a9bd79b25c7cf64f7f77f97e0474479093c6b5a6b4decb3caa1d76dad77a46adc47124deea5661ffe7b9b38bdc9754929650c2126dd62b4379b9c6032abb5dbe52536999c0c965142ba1dae235d1048e5805d8b49cb5889cae556f35b4e4d743003078453fb0dc804124d0a3d512c1652b5ea23d8caf1e36b881830384c61ce0d5e90ef83053746ba761bf654586f86e3cc6c8128e242c7fee79aeced0a13f1a3ce6df480045d59e1477a51d4546d5a61671d746e5cfb5edfee9ed5e8f7c0857de1bc5c791751238690920599ae68f583d43947e2b39c5e9b2024772235d17177415258030afa3c0d91d8478d2757a8ae7f1dab94d4f5567767c8194c2ea0f265f6893b1c0cad2e408282c323872db25525499c2d5d7e0f3f4f90a0c1f217682acf3294387d1e92c31aedc2d4a8ec6ce0000000000000000000000000000000a141b262e33373c", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 20, + "comment": "signature that takes 19 iteration(s)", + "msg": "5d03000000000000000000000000000000000000000000000000000000000000", + "sig": "c130926eadd11584c98dd7a2f92b52d2642ac9da510b624f9ae0a4b26df2524e5ce4e2d3ad32dc10b1179bc63f765aefbc8d39e4bf5f8edd389d11cf20102169a9d10e325ee11c559ce18398f6a959530c14004ce98c9de506d7b6562813b3b4f36907fa71f74e391fa244627ad5cc11c66985474c5677e826809f2f0bfb3f56ba501c605a1625d49678ca37159394fb7aa21e1ec876d0f9889e0a5c689f013e61958fac9c386216d75a3522537fa7c2db049c0b4a5fad03acaa2ffcf07488d636057ae7cddf6eda75ec6b7a7ce4efdffa5b3d125d55bea2cbde52c34e42ce594d72e75f39119253ff74c321ffa465385872bcae1ff657348286d4b478abfbf49fe318ed7d9151a8e0c441080fb53253aa506846016edc4a9f71a0a7f4bef08196875a66bcde161c3a5cf5156121a08f3f225b4de3cf6f066f9f27df9d77c1c25759cc43dad71db3a301606b374da661ab3053c347025a8b3cb4b90808afbb4abd44918b2d9b0cb12675daae22e003c926b9161cea8b0fd791d1c6832e147c3441bd871b64f58391c901119c0bdd557ac9c2a805ab14d8df7267b97883533b5deea80c4966ee4c2b662e3268e7fe8943cfc48b3c3304ada65b0b6b7309a09d18f3406ee61207b7aac8a6f4dc265dd945c43244130e7294f82a4f6cffee215836d88cfbb0bcdf9b011048791a99843032075072b7eaafa85b1ade4468b85e7df9b8f032b2a4638f883618c560f7caf87a0f7f5b26b075a40abbb906b0274509f1570a6cc7b79535e895bf11e0aacc4437e49f8576652c8b50313ce52c9de2ec2a0e22035318116718ba04eeb301b5211f2c3011cb53283e8a4e9bb0e39418fdb28fbb3bcfa58ec47e7ef904b69990e38b53daa29b55815e29cd05fd886387fdb8eab7c1c5b435e5c025e70cce82168ecc01c3efe423113f1155d45ec55f15d786c77b4ef822b1844a8d298103f55c5cef371f617fdb22a72105d8701df10292b0f397a59f0ddadb3b6efc88e7e5745146d36b948562c8a154452f53c8d0d366afddf384e9882ecc24e672d7dbbe31c01cc584052acc9b9529415b1961363241e90728ce6290ff2c01ca4e69a8ccbd2825bd5299bc2cda35caff8f7cff7d56d0d2c399e26ab0fc37c06d485517f754c41d32221ed7d11cb19df2c0fae5097ff80bfa74574c229f58fc44d6ce1d340dd0d8cad782f2534fddda01e4bd014e844d076a016fde3fc973aaa77ee5c839fe46c742c586ff29b8f7002aa27a3ce4f74e6a5779dc2224433d98e08f8617d1c7b2510b94b7ce51d371fae3c383783278b4447843ef459d496be257a342ffec8717ec1a2aa97f4956db50b81987e977011e8b84ba08608c9ac8c0d4402477e53e606fee271125034f06c176031f9d9f298b7031f285e81d830b589cf5e89e18e1a4827723f6fe438a40229b682301a7cae33ed86644b362c3e97173fbe562ca4c8b59ecd554f1320ea7a66fef25c89685bc8596b183b528ce75ecd0897e59885408d96fee1f12f4321775378ae7d49cffadf373df697891fbab3ac79986a1c2c0ea7d0a5e441b64c278c61cbac573923188fdb7aed70b0ca9025db576bf1ae0c9e69accfeaa7917295fc36f8c67f2e367b2300a06d90be8d5e3896fba1a00ca9c8206cdf33b9df1f6aa93eaf1db0898fd220cda5ed623b6e6e31323706e043b49fa6570fbbd605f14ef9fbbf5261999c00955fc20b812f42ab2878e8d194336ed84598c1dac1d3c57f18e121079034bb70bf8d9c97b4328f033d415ea4938ea2db7a9dfb9480c9d680c58240ab3b79ae3749291aba86c38512f65aebcbb39a500266ea56ec2fcef54ee202bbd8870ba0b50df4a0303ea54ce0ca9262e59a532330c59576ac1e41ecc4109da1c77af587eb88134f794182cc1e2d97411ef2811ce0d947dcf76a54b4dd37bf64b95f4e30f0532f851228a58e1c1db2c2886b66466642fbe378e55f2241714dfa2a868174edb2040ba526537ff0e06b12b702fce1f7b24d9aea37b37a7edd05a4e85b433ba29fbab155dd3160ab3ac94021a8fdc74d08f33c6ceca51334a33645fc73444832454dc12de89b61f5f7ce96f51ac2271c7ce26afefa93ed18c6a2ea103fb6063649619d11fa74bbc7d0a14144eb43f47494ae3a05676d86cc57f4abadcfa59e03d8d36f1146256ef5b567f788d89a1f3246238ea7aa685aa59481b2e3cc6f5c3f1dd1754623a9556eb84770352de38eb9f378694e8709b70020f9093ad00083644575cb9b4b8f663ea08d6696edb8854b98ebcec1880dc22f6662403580d1bc8209d84276e42dc1d2f7c909be326cb585739f875312c9d38882becb323acb67f6ce1e97cfc86779ff20b3687ba20c83cb465e6caf2a19cdffbb883479169878f8bc36857ca50097fdf91e9b7da00dd67eeeeef0df2c70b701590bd32c183c1850e0cca88783a526c3fc9d5c7fcf38c31fa5b12f9e943b991a35ed8f0ebd7cb530ed1c66110271b1082b9fd163e70ad1385c2cb4c7df1a6d6245395c399a1f5b6a5163aeaab2c877e93240653104ca4f51e09c5f15cbccc969c67932d55aabfc339de0e788e13a2ca863dc73380d09f769fd2aab595463c2629058ad4458863fd8472771315832fa2fb91cc7d816d9eea7d6ccb781224aa71a1ff07a0132e86b6bae5255ecd69aa22e21e076d5124abcb030d0aeb333860a3af69568b0adc201485a8ec48ce5b357790ac98d24e63e471bfe6ee74f6cce0d4cfb68556689a3b51e725437850cf7294a9cc6f832b161983afe0f86632ae5d141ce73854bba2941ffe2754c382c647103444558e689732f432e8d09943af3fc2dec1de6e5398f4b2e9e431a6d9ada7c2caf6b09421740586c6f0459c9f4eff8f8cb25dc76858d54d125a7dbc88f66c8d55a967bec33ae7ca5b75def25d657ac2f35516f43cd5cd4c5625c77b281d60bc0e39fe3bd90cd03c8519d22eef794549485056552e98cbe0d49c192a52e88f1af693654ab94ebaf33e91f3765b38dfd9ae8935452c9158725c00ce87e940011ab9e5b37b721e18d2ef1fa51ea1204dff367760595e7b47126f102dda548381b53762d5d1bbc18a8a99ba6d5b0f35687d1ba4627acd76d30e6bba6bf635fb7c1e9ee2eee7b9334c586685c365d9a9ff8de99cc557cffced33d355c53774e414c2f691dbbb59889a3fbb5952f9c003371910c4690c8b4843060ca4cfc048c954008289a116b2b5cee47a9a69200aa5dcb6374c8d16cfe35dd3e3244a35c5a5dcde4cf551a142ec70482b00005d2f8fe339d06cacbb7a82e65eef04484ed750b941334249d8cf729af7abb64ad8f44e38f38c40ffdc860b7bd688fc16b1495a32210a8f6774a2c57653ae867f7fd8944d0418d763279da955e5542f35e9a3e13bbbf89ca9cabaaa6815435cdf80b8fabd7f6c0c8d4da9504c17f87f8edd4481f31f247ab47a8e5a3ddc6cd073a86f83f8a241ff175c1ca51021903a7f30f4c2c13816fb1bb83b3860c4d81624168c55d006d7c3fd602bbf124b97356d544e90b3facaa3bf088686c4472c6d82794eecc8537e479b45b30be8f7a413f003f9c9582c26a45cf02bd6fdedf8956177bbb08201dc4fc239fd0a94d948200a6ed9bb9794a6844d2f4a2513395b009cdc2144b0f61dedcd2ac565e3471c422b3c36a368220cf5bf60641dbef7d1258175f64bc18a35529a46f31b4c01d078656581437e710d0f7d5495a0f9821cc8659712cada7e00e8ec09f03b9fc5915fa947ad45b6dcba3f3e559ce57f042185cbe74c3951c8cdc0bb4b415d2b2681e1e24b80f25ad9749831559b4b0013d17232fbf1850cf1eaf455f46c05e7414552ada3960c4b7a1e0d0d71af20733612826d9e550f349053e69f3000448e628edf71faa3436d0880d504f3fcc8a21535f55110d4008e39314a79913cb4126e80b33858df931af64fd86ae1cf76b5dd5791d8202fd1cb15ea159b90e762dfe3aa92f10eb212a4ebf273b1a0b8c64ddc49d15291659af3211a6fd27b83ad061d38071ee6937f0fd43d3000c27ce2a103e79a726403767b5ddc9e4492c4edf5c82569acf180de89083b103b9445af526c03555ca7bc957de93d76a00d66a552e8b24b26f184d85a770eab000ac6c637ee0ab28fa850ec209ad339186aed2d1eb546d749e4a4d07466d3c49eb7d9add517ba5bac766e59bcfe31e32fd4714fdbd97de96085459e131efac1f6735d3ef058cfaff517b98c2be8afa47cf61cf050394f13a97581ef182feb06ba53ae373dc1eb4238be748764424e20a34ae19a744311e3b29cc826f7809b073a3105356c19e362a3ba0edf812a0ea7620414e4f2320a0778c4b390d83ebf17e4996dd311943f84411af7263a5af555e20ff0aec2faa3edb8d17fa361370adab53e658cbc5913e8f5cde04ef5db3fd99cc75a80df4eedc179ee7797cc06d1d2a349cdbb1a5837e63be574dc2de6a0bd94a9dc261b9dd63f99f25378b27b767a98f6cb531623a931d423be302dd91841b8ba8a5cf9e7b88cfb9ccf479f9066441b247e086be22aa562c431214e90f70e540706942b21a061610590bcdc14dbb5160d0616255c448bd35d27e33227bf3f0ce2bfea5d4e8ee2bca605a76c04ae43d92b31e89e3f56e147fda9cedbd12fd3328bb6841d5b5b9f7a9ce7b63f07ef5325362d04aec692ffbeee1cce5645495822e45c8ae637dbe95c700c19d938c2648ccc324a8291b2a4b262a1218ecfdc44a7422c6ad0940e60e49c491c42a4ed1691c0b19033c0068a1b9964946dd09a770984af81b78ae7a6358e40f12e026c43dde7cd4166588305a27865297aa434d5f150ead75a333917e070bcf9ccbe2e099290d64e462bb6a9aa181af53894c785af6f35773c92c188aa86ae17411c7093ae7b138a2785bae6529d4fcd71b2f832229b192aa025ab212f51cfd0579a7757138c26572cabf73e229efe815c450629710372c6096dd35a846b4b4f3e4217906172de30849e53846dce268a1da3690002ee89458b4c06838b6ee0f2a8d92aa0c395aaeb37223fcc83d5e795249d200938da66fb657c315601005b5dab993dd0e0ece59a80b5b0c18396dae163d6301fb7dcb4551efc4fef9f0ba3c57fc7a4cdf06fb3797ef41c76d52fd74f18af03a265e37837abb21063f081b31586563674059a61e9b2d9704ada2c410d90bae634080a9066211c8ce9f6d90e31911883f8bd3d291a293d2998cb7b188d8f222170fc6706d08fbb3360c2f223a04971f08c1d7eadda1733c8a89ec343b7a979ecee483e3eadf5f6ad8ef9100ac0a1fc2097d425efece68d26b3a0f7b37c0981a7c8a7ef78691f5195b724018ba05346e74c35e1341e23664571855a2e9bc0b3dce0ac6e5102edad825a518466fdbe4341b45a150b436af6f326b0645cdfa5a1dc357385cc286568bb29b4f78ab926baee5b1fbf599934068040b1f144b0329ddc06ce39bf63697dd0d8378edd4438257e7f2441438f480dd350f2f28f5f77f20a7d2d01ccd6674efaa17a4637e320327fcd40d1265e9b924ff30155790e5e25fb1cac05f8ed9bb36c166ab7ace529233d666322ad2240cf0cb7e1ffa1259697b2f047eabf09ac1329ce71a273acbbb85ebe1e4aff3f8d29a7ded9baae87c5be1e40880bf73a5638e981351ea381b79fe7ec04429c853ad862061a6c93585013f9d0642105a4e66cff2c7d0960af0097829c5d5b704b5564310ed92d38db5a6f64f7ffa7dbf88fc372ad91a59ee7cf8e3a5ae80eb6982fb085c5294705f5f6af02ecfa8a09321cc5e28ac91efa71ca69ddcac44ad0839f3cf40831c1d30f455c5f931aa4f183d76ee73a2f4deeffe8e3ee0650861d6d5b3a3d07a0a7dc87eeb5846e120884f2826c57fa1d0e686ec04aa10d1ccf53870acbcfc65f2b4b1bfbcb079dfc973e110850e5f92a118e00ebd796a31e1d3d145bc1857a975bbda0eebf4c839d39fbcd3e032c1b9d2bde2c5161a6476ded0b6fe09f7ae6c8e3bc939335a6a6853a704d542a66afb981f05e68762d4a3fe36b1bff6f672cf19f99fb1b9ae4eda4270bf6d653b71c5f1ccc7642477e620e27e35665d18e47bd1e2c17f4a0d114d064bee0012a11caf1bc13b589d8c8d669616355735741d7c00409b9cef4245502a0d2b0368c76b16f5c54c7a36fdd75bf7ab02c69d21d9bbb1f0ef76366057ac2950af45a1ba46af1daa0b870d4288256c4548aef232c88905fb23ba81b9374266a7b7c0f594b8c686221e4dfdcf154265c4baf65ef99b1fb7caa28b9d5c9652d0d18513733b525598a5bc24da445a280a1664694fdbe0b070ee54e1eb345bfa8f690f8194a0e0196d6fa8e8184cae9519b07d1e41c698fda64522bdf6bf1204d42086041c8b2e53b7256135309250c9b481a0613950d729bbe797c6d6426f40a2eec28914db654318390b7397896d514637d7fabc8fdfe2e515759739ba0a9b3fbfc2e3744577374f4f5fa5ae8013e47737712343d454f787f8dabda000000000000000000000000000000000000000000000408101b24262b35", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 21, + "comment": "signature that takes 20 iteration(s)", + "msg": "5102000000000000000000000000000000000000000000000000000000000000", + "sig": "0c83671ab0972110fee5262155d5098a3d5c48d7144fdad596cd8c329d44d9404dbef78331f105f7cddad4483f70b63608b62fa98dd8a676341af24d7a9bc3ab2531c0115197949236e52219b492086000f703a637d76e31ea0b74481df30bd99a6ba5c6746e216b331efe23c268feedbd73e239d971132edd3f8ce7c3b78380bc2a8987ffa1e6210e27efabbc3858d5b8500ea3df8b35c2d6a61b5673adc318621150a32c456cbc3c3f321186ad579c04a0b7c35730a09c24a9b45e7ef85a2d7b1fff2805156dc6e89aa1b3b181101fd5b7e580e0aa862e81984337cbbb6b3952cbe4e62b9fe28253f3db8ddea82a82a6c4c148702ed1f18ca667a09e3b947b52d720bdca9089b3f2aa3282b62527f28756fa97b2bcea6fab349d0232ae7160049b012a0993ec249e4c6c6dc31926529d04dd2812ef86071aae8550a9bf102f5587a29cbc1d7df8c302b690c596837b6fa5f98b48ed991a7a74080c3b8ccad14047961ed75af232d3eb0ddc8dd016909b19ce8ca188523c68265d797cd5dcd6beee5180dc6bb6f5464347d8d8b347ef78177e33a8d0e99abe788acd3d7b7b386f2622fcfdaebe5387ca6620a7cf1973b43c1f0e4f638d2b63626362286bb922daac55e9b2ddb46cfebe940954f8c433525e1a19aa0fd01472f7433c8e02bbb8c4300af39feafbcca6405c42ba210fc82e83adeddf8a90108d5f6fc068aae1f4517032fe3d0985fdf61c75aef71299d8ff0b109f6daa0444c8c27875cdc815093fe40403c2c97adf9b23da9d53794539af6b73aa9cd5d222e1483978474205333043bf5d695173e4c3d08cb870b30aa7482d22d5b0a04b3e86d5055de6530b9d08cda51e948eeea09dae5b0df0fceb91a0a4b1eee817257df7703d22e298f91c0e151dc26b7fa06a9d530a75a136241b86c34c981d3d37e6e3581283e2991b1f7316e13dec5d5518fdb6cae7883db693186a0ee92f21081d3e7679f6f2862fff1168920be558e2ad265f7149dc7a3710cf072c41dd72f31e950a4b97963bae18e3104dc9f5d5d153d88e9c987fdd994d94559a17d104d239658452fb4bf42a5f193fa808d7a0d68336c0b981c4774c77af7d1998b605267d72aba30ced70419635f9e668e372244d8ab045c84054aa99e2c0acb61e7dd1b6f26ea5f69c9aab2d8f632eaa26a298a004d8b262af6547aba67509000420a9f3ad3ef4e4d78851c1e601c933a180bb205c316a24283c269972ff6ae9c360e3c72139e639bc83a059ec8e83ecae88d9f411c9c228fcea1cf3a0c369a4deb37668c8b445a63b65bf0b33d752cc1b890e5e3443c23da58f967f08613e89b2bc22cf8724a79a1f09b98eb7bfb6bd71fd5d49f6d5b36af13c353c9dc3ea2b6aebe9f4d43231af132b5788a1d31fec2bff130b2a53f66d37c9591245b18d25051706067b246c18c790bba746432c79074ca3160d6b914779193b4affa92cc2d27d9b3b9cca1f49f7cd90535a1a1c38e64c4fad11030dcf7632231b5279dd0bab0fc8e869f899dc8e8697de812477371c7f25477d096ce8957d51d7b62d828bafd66d32618560432484e6aea7dadba9d289c59369237c4f84026b47a15f52fff356308827019a60256c185fe55f61991f70d987d7b73e197e94aa0eb14a16a274c0abfe4c45e9e0543b77d9bd4f2c57e8877358f7bea08d57e16736c5b89da83ee546ba073f037608e81578dd18139a46859167b19ee120e700de2ff3c86433e5e4a4dcb09460626e865635cf167eeb9a7c2341bad9cf1e48d6bfeab1de1404b25e00641217087161672371ed9a55ad3eb071c723e32c1347489abf485447ad11ac89e854cab028625d21baab1ebabeb5ac987869e709e34fa909d8aecaf57a6079b2d8b01e778f0faae64fcd02dc78b4141b64a4d06e5f96cc8230addd887e94a81488826ef21baf3429eb8e5a5007f9da71d79bb6b4c9b734eede745963805a75a75c8a4a5640eb82d42c635ab49708d731b70ed361a9c6bb02998ee48a51c2f06827849d30610423df09cdf5f3423252e27d4a02d129a62c921ab6d98950b443a11119fb0a6a2abe135465e2e9d233ce04c5b22dd34e8188652582f0e6cafc2d3865ce2d2a9b2f8d7d98c284750ecbb9166d5c3ea8def1edcef503cb6856da24d0272f0d03ee2260d78471ddc2338581b8e4b29cadf1409b5a49eba1c7dfc4fec38ee6763c75ab4f73deb7e8eaaa1d9cf90107889b23c2ac7ca33fb648d61f5e8b598ae29ae9f92dd36d685cea1872d989c3ac0fefb8ef71fe6de7ff6e5274af55b2edb70bf0ee737a7e6c06639ccebcd3eed9fd1ef6645dbb935ff6cd5a7e6b2be085ec8d7fd7e01150751db3f147d9c6c961526d16ceb57fae21111d3290be66ba92e3f79a35e5ebdb6eba5521811654c069c97ccf316b5a3901ab873b70b02e8e015fcf11da0681b76408eba0ed91b6d0697fe608e4851947af81c1fa644ae410011a6b2522da4d4e621fbef29733d964308aba7c044c91635cf840d0bce0795058c183cd0a4ed14d13b8fbf369b740375781e60e0a72fc10c964e36b579f0498033409a0b7be05a49fa30f3a8e830253f6fd3e5877724d498c0c49c871904c52a927dd782de003d8fa5d834e90ff14c093c37f8ad520037f37ff46ce0d4ee41a7bc100b9869042c22e59e4dcac467fbd5f12005228fc8f325ab7fe6b49fc02ff15d9b0e3b4feb7ad91eda13bff0629fe4ad3247fb5618f621666589f36ccaf65d91e81deabf8f39746fac9d29a43356b1e180476a5970cb01fcd75d000c0a31c31538c13e43418c0ffd55bdb8effaebfa35ba556e3bc9ba26f85b15aea9db2aae69eb54088ea637bde3f45c7116f79968fdee83383078c5dd5072deb5d9532d075dcc7181257f60f0dc54d90272a416e822b0fe7682877edb5a48ecfc1d7598fd018a133c2a5879732bd8dc4462bed379d7c723457cf1d1f4634d4bfec61bf8d90941e03049be89230bfe0c5fe1a1964417e790f582241cb07ad0dd5ee1bd99990e7987ca33b491844e817cb4b190fd82144a2460170873aee2a33c3bf444cfc65cce166c78476ef69dda10dd551da4746885290f37b486b7d7bb2d149e213123d1ee0668728f74f3621129f563ba79e61422a22e5cd600f11fb327c34153fc583f8abc4a52c75180b64df7fe77f3a392751c91cebf657a061f15ac68dc21fbbce30d174945d1a29c3693433a34b423cc3fe5caface74b8fc800a1ed302dd60f642c0205971216c911d9747ea0a44a96efa6cc72f9012d19b1edf5480c0780950d0600be11be307fa5654ae52493cd09e685916240ac4a0f562d6054513f7cc2c764fbaac70b4e943f8a5b90e3bf4e7e2514b7d0c08a8aa9d0ccaad5b68626c7037cb65edca218a876b3814ff5427ef89085903afba0315380b2e72bb7835c4b10d7e96646309aebfec23547ae5cf4422ebed998b5b7582043c9dc4502cda905581cbf5fbc4a917c0438c1b827b4949f1b7f6265d097fa95a27f17bb56ac6ff0d8a52fe20d6f536052c8fb36abbafab7f18b8c89a16080f317e8e75225404910533fd7b7626711a50c5a5d0afe59168cd92c6f8c6eb95001f529d1bd1605409cc7efb25117c462e4c2088c4f6ec30bcc536a370619cc8b5860df9f89d463de402017a2bb33bf78a434cc2911bbb5d860060009c09b38a92411e89a7101f9e8a391bda09df4d31bfe9a75fa6a565a60f706417cc2956b9221fc01b609c02237b0edd02160b89ea7daafea06df0b927fcd5d5035597cffe836f3bc3c5b6ad61dffd586221429b83aa9b63ab24360553bc35b1c1060085d5b019f83cb57537351057b978c434b0fa8d33d1a17eeebe75846b7b5415a9d78678a90103500a3cfd098de137590e0d57a5a1a2d71535a9c539f2cdfb2fd41cacd4878bde9996bf2ce2c5642ae6559a17d954bc731894e2bb0d82ce1b49e858fca26c22e8f67bd1610cb10a7fc4b9429f6dafa0fa218469c399a3d529f9dfc95088eaed0331af5b36bccbd0175ec24f90b3fb68c2e5ffad8dd06e82a07443dc052ef6c2d92ee47fdc54200ee382d3a697081832ef6742a08a8a1d831c604bb8d5f95735c060a0eead76995e25d21a3266911d669b75ad3346107e0123a46578ba8c9c7cabfde20b1d99edfd7d610d77019362b8306023f037ee99043cf5fa4a44547170f9593fc7c8b54ce5642e1f7daeca846efeb3b5fdec8468e35880e5b6f3d68a88068940989bb849acdfbd00f892817ae46a6f11a179d4a56183d979cf5b6b3d3e8090080d02107a9de5dd68dacd97dfe7d50ec54b395cf77d3910affaf2a2702113668e784b0379ce52bb6cfdc967188c275fac3afe39cf6a66d22a340a60ab9ed9454e6227da0c1ef877cb9ebd661868ec182cb3246984cc19c4b33a63c0b6e2cc916eb0e2b3d673fe11229c484527ef4af6a2e971eb70a7620790618152cddfef45a632dbbe3dabc831deae540c7d06daf95f849ea18efc67e1cb48bb7a542962559b03ef4f2a56062e433675da5becdfc5680eca20d8fe23333adc97869c8e729283409e4fb479624790ae98c28fab04094c80692a1b811879814d117d894a732828e773b4aa63d924c2da064f48bc9df0b255a26cee4727018af9a5285c0d708b476c9549ca4f53dff3ca44cf847720973a1a3428b003c996ebed2c1093f4e2a13a28e1a7c0b4071a4f7dc3f98dd89219b46c661d01a0f52910b2c47ae39f90b5e7ecdbe093de9f159e9f560d7f4cda16affaf5354413b679272f98e6bafe039173a78d4b914d653e0cee20a1210889d568f9769eacf3389b13e6084b0aeb9f6855022cf176ca240fe45172c04afba02486dceda0e64872efa1f1c3f95205047e318fa805aa4a0f8e2b278d4a282a1f6c8e0ac6fd14a0c2fb39443598e5b7921fd60bcadd271999a9620a0c03bb4c287e838e181a26b3980c8b8052e14f1f9c9c35dfa8205e19782acbb091bf10163235ff0a5e659413bb5f0c903e6200d5ba94fc1bcef80681464c86f3ba4dcd18ac1a39a789f08a27d6cf2bf45abc94563e7d4a93c41b581e15a1afc0a6b5f6bf5d0866dbd27f71c943c9825585fac48cce7fe315e55e5f8b0230ab91f1e0570f47b667386a9cba02a980a63126b9f701d1a443beb159207ac6e49e90860c3d597f3888f8893f0ce5cc1ce0a06bfbb9c63f3bb71aeb0977e9a1f83d67e81da3019e8a57e186c0d4e5a8f0ffd71e8192c6ea70a4f515a31410148879382c6bc9108d75c6a2c2a5fcf709929c87b7f6dd236259e778d1a2790ed16fe72d68156398d18b2a3fc65853bcef1511e934e9bd793de693d2515e5d482b16d5fbc0276e2c6167e93c0c06fd143922f3775f73c4a68bd580189083c52357a0c24edb50644f40254fc43cf86ab32697ff46c0885fdaaff643541986bd681b92a89627fa33cfc285e30d5c2370169aba62f01d1085e7de405831cbaebc998b78635b31a691225c0b68cde8e9cb2b8e55b631a8526e6ff0489e103cccd3b8629c8307c66027b6af4ce50e55f46d390ad4b49fa80ff95e2b4de9762c4dd7e541f7c6fec3510f5f3af153b60a54f47af360bee2649f8a971be8324b2ea523b851571c837dcfa3152b04240bb1ec955abe67acc99c8210f38ea2dd70039b5733ee9a7bdad1a5b4afae1b234a951844fe9e8bdfb6e97ec1f5e3778ceb68a6e0ff4513cf841ef6c3836bd0ec89349ee09282b4ed9e3f64cdc130994e047cdf7eeb3ca41b09edfdf5318be678c9a199731a0f49889a7b64d6dd672e4c17f8564c01a86bb0737696a43043bd4fe08448344a95013e367f41b77687b94efd8fea46f61edd1cd0f0a713ca17a8b8593335dc527c901d6fa3b2996db1680783c2c8b9863342ef7577f24b23d8b42fbfd2ac55d848a4f995ff130009d5a33bef1cf60b29b5d857aefd5e548c3a91a3629933ebb45554ff69d3fd36adb149a1be8f33b3ef6f910455923f0443fd43e12e3a761cea682bf8a672f0ac80c25a18538ba93999b330d514186b53f76221dece425fe6cf760ff7dbfd28915cd62231b9627dae87b2380589ad02cc856e816da536c52d9573842e78fcdc51218664e3705d8f8f4a6126054126a928a709db3db463d4c4e51cec61dbcf8b8e4567a9be5dffb8907b74a560b06cc417e039034ce26d3e9607df482c73e3182ad865b1da348363ffd0ae59df159200142b98b7a5e0bd3bd9175c86605048610156e6255c6ef89a10f9535085a040857963d84b9f7c5b4eb8bbfa54d187b73bc2c56bddc631a1a72144d5a326613a0b33490c9932da24ed1dc0be98131997d8788741e5c6c344471269da43837da787af532d378ffa4ba5343dc0cf05ed84dcfc3eb54df1f3e8d4380a9344ff96ea5b832803028a0eaa7d81fe2d1be9c8b2736c4f7f2b30c84ec34297e94e8672fe6ff153dfe33404451749ccee84654555b748abddf0f303e7c97a7c9f25361a3a5afd1e2082166687072a01b3651677476a6bdceee1b2d3097e9f8000000000000000000000000000000000000030b131b22293339", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 22, + "comment": "signature that takes 21 iteration(s)", + "msg": "5f01000000000000000000000000000000000000000000000000000000000000", + "sig": "2c51e73a3674dc7be233f7cba17446bdeb9865e2fdf15ef055ad51c4c408c573b07c42a862fca4d2869ba8f3c4e56dc69151c8c247589c4d992bc178b446e3da86e69dafd54bb1489585b38141e2c3b1c6b594a3d67d02c626f1296b7c1d0cbc7fe9ecc117637621c803336731240b2ec51d70b355ddf1b042b56fe128a61b9a020f144cac1989c96dadef7d4dc3329d5850475ba6dbc564f478c01b76a3b59f37fff81ea9ce4fe7577e959475b4d19ed016191103c15d6928b180ed4eb27a451d468ff0b75d7f62baaf3a3521daeb5edb341837fcb0ed282d40a1d2cb2b4ca9058708b584a699b69528b0a78c2779e820db7ad49b9d31e766836ac5c05a2086d5d510b9ca074558f1741fb347ba3b648713a0da18818be59e264636cbac1526ee181dd9d2d4d79406a6b6e84c73fd048d47f49b95ee43ef32732779fb4446a8fe206e5f8cd29b424359f961fc1f1d12e1ff89f0f6c4d13aed01073939ae3290360b3da87a8be0ce7dc62898a833c1b2776872c6e801dc55e3573123fd356283d6fa6bfe53049998b9699cc2b04c9cadda580647ea0cce195fed59ea766f00fb6b6542577fb0943dbfead8e2b6c9e9368f9025f5aaa05ac81b710f5d876bcb91c70161169106c86e7f7002a88da4bff51e7df942c186c19143158b38c6fb81593c4ece15ab850dfe859291697e713f57f2899e1d4c0855c00daf11e11b3bc053b54671a9eb9842e0029daba2dd284a4b06c49a9601a50a3ded4448276cabb0dbc9d01acc0a08f9d952f1040deee2b677df9e04eef6880da4de7a979c36ab433e5229296f78f1e1b22952b7bd8eac3ad030ead4f9997d385e7f0c51f0b4dd7226a29f8e537f01b227f4ae97c302d2eefa4052e0852f9830c0eaed2d44d2bd5274eb144deeefe39e3f5531862836f9ed5d4070dc3f02607e7a338272380ab930c24c9b5b2e78b8f0574b012ee2e5108e6e88b47cf1016dec44f58746d38d9006bbb76eeb77887896c1d5a3b580bf8bb49755442ddac8d5813a7be1b60797b365549844bd31a7c63b8b45083c3160c6fc334c1d4aaaf89298ac9bcb4df55b380d7e5ecff903cfd060557391343903c06a4ea30c4f9dcf5af7f86ef3e115784a68a1e6197facb2e91ae537cafca7729d4507126116561d850e1a49ec60b5fe022bb81fe0254ceae590c97764f67560e20ff49303f776690327fec28d91d42123a1eb7797e80c2d654d5eae7625205e0cc9561cc428bfe6e55ebafab2ca8edcda563520c57119de0049e1b0df13eda6069c59d86f502d5ae59fd867aab6f2b83956359d15aa4b9944cea7c4174f3ee98b745a5cea84dd96079511b51ce1cb177e2efc4cc1e1554a5b4d0b3c65e2f9b931b5cae93e3d6f4485f66b379f3d97f12a9baacbb29bcf5d08ebaff45b9785575a83717a8ffa3af7b83617aa932f2300f84631d1590dfa1bee678d9086c586246741262ccbf248c0447c7f2a7252bbcc814f75d7519eb11749e6b7bc407f47e156ff1a29b59cd9761c45cdd4e9cea2d7a742cdc4ffccfd65ae9da145c0887cd1a6463bd0ac2c46afdae72092a4fa19a53ed0c516e1473234dda097c4f5699bf8ad80294412b7938a727aa256009e6e8fd3b8d81a7b8efb707ad2bdd8f95b966187065e45b11e4390ab3846e32890a13ef8f7f4d85f5ad054e9f45dd98591b06d49f10e7d96fb7c28419db949207852c18bb9ae0ddd629964ec98c4d4ed3ff7a192c69e60646acdc0603786f775bfe6e999dc1b2da2ada72a58fee0da22efca56c0841f1c106039709af03e442bb2e21465d769933b8a7aa1785bbddb96b1c42aeeecb993845b5b20d87db2304ba9ecfbe7e876d76a6510604637cc9e06c8447ef22dc04f66a7e53eac1e62dbbc5aaf705ce60e48a761a58a5a6d3b409fb9c8c006db6a4e5ffb868ef56aa44242487196bdc9b63335d4e99193f5f7a6d5aeb7027586b7ca55dad2100d0bd8031483831b2ed7ec4d0a532d04589c8228952a8a670e0a776c11ca6c8a97c14e5e2d8001de105085acff8996a2358788f4ff31e18c16e6441de97bb919ae784a13d7f20c20d8116a9097dbbe26308dfc2a93b028acb989356670d0f37ec3b0f26dedf06d236fbad4b08c228c970c5435a383901c86be3baa5545737ff3ae66baae6789cd3cefe1a0649f9d24bedc3cbda8ded3abd4e0bbab32253697674550c377e6faa984309d6e9285cc494566105a1d6530c87406b59eb6569971863950d61d0171f160ead71b1a0143b7360d6cf2bdd9eec5ab8e7941022a4bbef381631d169c8900b760e4ee071ef5d1c870b8c145bfdc4920e72c2039b4f53f385421463fd64f474afb77c6c79040dd6dd5b8dc9eb6b613edc409645fa7577dafb9a9438bd61686b52b1df6f7db80cfff5258570d6530d16b8bfb39276b67188e6e6189f67603821b5e44b0e6df8e06a247777a5b13631e3eb22bb802d7406498650b80112422cbbaf08dbabac69c4da1c5ffe310e84d03ea92c9a9590d08574ba8568c3e2576b5e01f30059131f34ddda3d4735184fa4e47ca22dc0f08bd0189aadcc5a78f66d858039d316adeef756561d34754fc5b0473b730aa900c868a523fa6e36360b192a9594b1c80e83bfc72625d871a28c81ed0e6bd8ce4b098540abdafede169e24c036ef234f1def30f881c998a63d592c433cafe134b22a2d5d69d03e4ef339d685afaaae398214f4883b000a6cb2d23bf8006ff785581bfbf816b98d3acef62e04eb632847231d56536dc9bafa16734e658a8a602f94f3eb084062bf79eac3391f942cb685d3fd17ac5bb1be5b208e46e7fbaf7c821acb6f2a6eb8d561a921bdc5961e470f65f0b4b64a997abe6ce8a69d21e56006469134d230bd0b1073d6d4a61941da33974e880f90b9d424a1e0aa62bae433c0c54ab29a17765ea67a76fa0d345a085e7631d331c3d53360842ac7cb392bef9d3cd44fd8f3e11b172e4697cdd9e66be36f7bbada38b720ad0fb060d141df65a61bf4db2c5028c9418f2d62e94006fc8b3540464b8011a13a98f9d897c190de11a6518a1368ff40dcf82f124f8f958601448d9e39a48fba139dd9a9eb97113a43cc1eb2847130562db3dd95b882b1cfde99822b55881e5a7f230b76d5a0766bc226fdbecd0734917959d0d8e94136055f84a82a7f54bda24d342e7f138a20dbbdd26ba8c266751d29c15550d601b1b9825f7a28dbd9b35f31b5bbad2408145e085968143df42eae020ca8517892e68b94ff55e55f1c382f5f25c8e708d2136c205a8d33430d31aac33f9a2de475d720c040a9beae40881cdd4aa7c4a5bd3414777db59c412e002313f8f02e6585cb0b94c08f6a86a9674c433bf68e70d59d976e01949311d1248c8c068bb31859dd9ba71579527ed433094a676faac29142ef9c80754eb23cdc2cc6c900e036d15fcaa37fb7e851501e3342aa00e90b05e14fe2ff5a92c2982bb8cdcf5b1f2403ae8af0c290a83c92776fd24baf1a38a2cad87d427c5a72ff5845bbbd9e45287ba1d3c59e26da34b4aec09cab200cc0e008dbf80de3789edad51e101a1f846733c8f908440df67fae30503a351bbd23e95852b818642eb8c654626316500a03d5bfda13a3796aba3ff816f74ffe10a22da2db6f4a4c6b0e4a42f252c187f49f6cf4ab0452ed37e6f54bf635326aa13f02cfa95cfbe6c905f50aa96f876ce4fe28d5d30db536d8b21974674e629578a3a850536c59dce3a8aa045e208413b7444428256feb1c8020b13998d2b3ab0440189a84c5589e09995330b7fdd2d568a4589e628d9a3e80fe25bfe43f03a37cbd76693400e16fa1250161d38e7f55af754f24869b3e66e96c9a4ababf23f59dcd76b13c5e18c162a250cd466993fcbb13fa7a0ae3cb1c5a544dce8c6536be1239c7ab62740af765a07d98aebe3cd539236e245f3cb2aa5b5cc014d1d4acd42235a64b34004534d8f20692305f708fb3302751fd199dbf57a18ce01b1cad0da297209a37d51047c82f8dcad37107889ae3fc6ce8664fe27a94ac6078feb4cfbcd77868143bdad245ece8f8b27db0e89d3499ab9dd42f2d331081364e2ca08f511226823b95d90104e11f15a2522b2bac946d32d6b56442c7d630931d01a19b0f280ec889dadb2a7f271414b4251dc951ca8b2eeec42ccdd65342d934d1f4bd25e8d81dcbab5b6ad30b0998161f884bdaa7ecdbd9aba3e00561189a20b43f255352cffa183755680e2476e05b128e3d5458f4471e51cdaaf155eebba2605b5cc668ea546c6c160c034fb9440852b1cfcc5fa0df5dccd5af3fdf23c5a46d2fec67bd0c34a45c5a1cbb34010af813d656decd4f60e8658f8dac85ed7a8a6f24043bdef41595fba5635abbc2883f3938f0feace8f759e60fa40df68efa9c7054e5c39716e314cc9bdf2f30d315be7579a2c1212957014071e78bdd2cd18d56d6d0f456ee818f8ec317d999858ec3f65ac624dc81a0ff9cafb797b0593bc749fa1eabc547961731c83e5688443d9d4f5d03fd88ba9d83b709cb544e44bf646c64faa5461cc31ff94d40693ba3586141a14eebf98861da6483d1236ad8233b359f2022f29f10cee7f87cc01e6bf36a3011e42a762473258fe0906f614f2a9d6e40a937d096705839edf34c6af9b2dc608f3c540c3850800a4951e528eb8492baee80b0e5f002ff0dccbe02a66f7fddc482954dbde3bc514c3e508c6c7d2a2dfc4873ff1d0b1580ba723ad66384b93cbbacc69d88b45684c701688bd73a7fe315919276349a5fad8e0492011b268e6696199104b61c28f4541fbd4afc7ff8cc320a15dafef2fc445ac5101e36ead799423bd22972353ba4fa6600c72ae952c90f4f36ced607e8aff38662c41237930959231ae1d0d35472f7058ad19e6c22765275e0ba77ea81b95e42b9d1ff846b8352869d7f646a597252544694bd0717628c41bdf3297d0669e62157c1a088a701053b0847d312402181c5c67dcb2da7efdfeffc9b538fa9931a6e0df9e7abb70e72665cf6791ec8f1c271b4398886bfdba79aa82e82d91816527e53f606d62187c5d97b7ef689abf7176ac357e22aa43c63dbe8e41f6a1c14c43e1ea206b0eb328a8f0dcc00681498dcfeadae59c9937988ddcc29a695bcba607ee1af80bd150ccb354eefb7347d1c60b2579b17255f38ef0c47d60d01dfb973f4690a80de32a21162e9030b67eaf78379adca9c96b19af518b93df1f1031a14c56cd919583e79070c4f7663f1f78f0faf824257c6df1b50f097b654a510322bde08b36aba0a82c0bb3d789091e50031ffd291645e7038d8412e2e6393618167d7cc95eab5e56ca79b13067bfdbcbc49c6b01a63140a6e6e7e26e07eec288ba87adefa865bf100c5014a9b03fa7c1ae4e8a305538463842bbaeebc11b1b88f40fd09c6e6ad09ffeafc6b09547583ac023dd8bcb70c9d834dfb0c9a9a475e3cfee42a7cc5c449b0f46dbac132ec44cd27c85db421c5885ce3b670b650b8455d44c0dfd9a7dd9f054cb78ddbee3791b1bdff439ff48bbc5f70059c4cf5552e34c552151009c6f6c39494dc6a29d68b2d4caf0a898059a1fbffe58761635303f4cb376ded948b555babca3b0873efd6808816943d070443ea96554574202d82f93f1665e896a72ee857329fdc658fd8c310bfa331d0f7c93dcd7b44de45ee0efe41de635c805b902b606f5bc4762892ad18ef496f12bf0ad73d671cc55b3ef2d62e82a0be9b732bc0967f4a8a513c0e343774141d439d1d3fa5469b2a5b4e29df2bb207c7aa5ad3a7c76f98c13d217da7c9d23bf72b4ba9e313a6f811d727216159c78253458caccccf7f276d9f48e0c348812198e396c5f8700a4121a28ec70e5bfbb2124df5a6c4d359157a14004aad1175099f2cde3dc5cbd585fa8c8d7859a71eb916b5df62358ce1d81c4d2d87a9677a742b04c4651e50330a7ea2d957e7dff65b778c1eb358278652ea1f8a8834e3809a54d41c20055c2d86bcf8eec5e769bda52c2e62692e1667e4ca77a0fd4ce4570e464d418c2b1767dff0bd2ff5ea77e6ecac4abba732e2d8dba772510146f664bd01a9c571c7a580125d46d17bf32b40c22f060387b95ff7901650e20d47dc3454f10ceda4f7df9a82ff06bebdc3cfb388280e4f98024414a9305689302a07185bb87ee5034c3e865735cd69826163540d52950243e83505ce50f60d28986f0f3fee938808138ceea133751a3bb002e15c52ce073556959b0a2d7c4da1a098b6d45b07e6eea10cce543fdaf5f62515a2b2c17ed2283e5672f5b4b98c3e03268f06c624fb2920c5071493a179677d126e126aeffad0657b995cb188d951fbfe19cc47a7da29737afd5289646df754afa58c8878e83569acd553adc7b48fd6cb2c35ed32799bc53cf3bbd2423117a535de0056c35cfc3ba146dd3c7ad6e152d5bc7dc1e66b8ebf93548536885a0af8e979eaeea2d33539da3d8dce4fa456086e8263064898ba1bae2153f4247517a86b3b5cedbdfe8fc000000000000000000000000000000000000000003080f141d212937", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 23, + "comment": "signature that takes 22 iteration(s)", + "msg": "e300000000000000000000000000000000000000000000000000000000000000", + "sig": "8070015c38f44102993cad3f7982b786ecf7862dadae3d2346076258b1660d001d44ec826743517f780730504bf489e440aec1bdb6eb43801db7a061ba4471270ee9e02c2ac9af3364e0c971d90929f0dfea9a551a908d3087b72f31eee9f9916ca9d384a149696ae3091151a2228a8320aa622ed383a173cfd430fcbce33b4261cc32f537a1dfecd006e5b63187275a5f2f4da0e0bd49427fe4dee49931aa058c526ea547639d79d722c5c467fcd9c5e95e684f128638ae4906d3f6d871f1bde77175928b5f8db54a3c00ef4cf42cfbaa4cced37beb63e7155e56d0b453ce3db7d21d44c4fb03a4833675080f197f49970e77e2982913fc82f28305cd8087426c46fed5e5d9115198638f93cbd5faab61b923973238d710288d502a9764f0d7d88db2c2bb089989fc5d0f1ae018e1a1a9db4b56c8e51beeb07481aa0a5ac1c509e4126ba5f48a104ace331f307a21b8575f6d673b8d1f031aab29db9b362aa277750637bea7e7ee03ac48362ca419b53b728ca3b77bc37067ad7eec81825da40bddfa601cb3beef4dd3de2964f604cbf6793470f358c8f45d4d6dc635eaf829df60a91ffa7c4985cfe7be5607e707920eda7d6c308cc8c540c9b980a50dd21f6f26a9a990ab6e8cd9d82121890e0599775d0ce25ec6756049b20e1504d5ff879f44cbf16890db99969c6d13d794c94750ef7d981990d944cc6cdf5e44b9e7f400eb87877b37fd9350a9670bf84c90d28e895bc420491e458f6669e484b5947864ef4f2513c3e7bc24341e7684fc023432dab70bd7b97ef8d5220c08c65a323a063a816940232f0a5ee592a1305481d27cf441d9e86de7cf719e3fe902180955a880fe0be6211be278a643a1c55eaad31e3715403f5212bacbb53d00591b75c62ffaf1052d6cc1f40f8e23d74fd2926826a8abab24af7b6b3a0002d8f1f4e80c24487aee23f7dee51a6282da038cee06fbe1dc2bf98316def6f4d8e4ccab9768099cca5adad5e4f1813d32d45105d867d007cef2ec7ac6c42757481ff646c9678f3354a20e1d53cecddec88b906f5799ea375be5ddfb8cdbaf922a35da0d2df787f37dbdc540fb2d49a3a050a183faf7a73e0bd9477e4e072227225284722c088379c0052a4e531e40b6968bd0928cbb7ce6991e04270659bb923a65b2c5286ad3f2de0e69d83c133665ef8aa978c9430cbc25d5ca01051ce26045a19f1bc2b5ff39003b2db88f8846a6961a254d5f770a226a2ca521f2b46e38624042ea3f76a02191dfafe527470325eaac60e22acb2c55890997f050cd5d055c2e3dbed55dbff9cbc72cb4118539f0e4384a537f200d6e9ebc2ff3060c05918568320210ed8ab1ab90e1bcb4de4a6e8892cad0282eecbc2aa8de770d16a7bac54d4f86e5594e782b2265409ff4790f8910b9c287963431ae58dda60e0d10b4a515e9befa4feefe978d9d2aed2711a6e4d1220d90138cdb1e72c50cb3ebe1b6ebc72e0b4eff7d2e368bed4ee5609ccf7f5702582277cb250432d44e51f9fe6900fc3dcdbc749944ac5625406ea622170ef7a71d0720d40b0587e416b3ebeaf349ebb7e04d19c69bdffa4dfb0584637313f956cba00896fadae4e854eb60a9489b62aa81ae55f11911d431796be07b9b76a243c274be357c57b08ac1c62c90d2ce701e05db14a760f5dce28daf28ae82b1fa77e80275715b0d662d0828b81aed5b7023c1e9263b5b9f70e498841a4aec33a1b774bcd55576d6b2c76799db5b77f8dad1ddd708cd1525df3e9b52c3d819071133482a720b8a869ce13b452af4c5f51290f249f420a6e366fc12de68414a740d0937ffa2659c0ae82643d84aa7ca23b07148877bbb2113384bc3346b8c42cf433321cccbd51bd35bae0018aeb9283594a3c4817842bb8477d6faf9f8f4a9d1ba179bba4e19bfc7a06d603f94b6b862b3fd92e7f5dd56a5ba6195ae768e10c56944c443ac10c091e9c79ec9da0b3ba01162aecea069d8554b4eb70b650e04e3edeb26d507dd1f2b9c41368cd1d5c71a772cf6f045d625425fb386a049d9134604163a264b1bc526c3528fafc9166c0f2aeff663e95fc1af1301e3b687cdd25a3fd415fb8f9a53eaa2ba5f038b4f71ffef5558e8a430219f06a96f184185264472e513e62b61814fc2cf928a35693bb3f608bfd61fbfa1b81a65f2d695dcd97d0d15a27d9a4ae05acb11aaaf078055e9214bff6b6a4c8d9c4364b6e4904be91cf123dcfbe5f4db93c7c57e56bd7bd18da44d8e16e04d5c3b7d79dc73c2ae344354ced4bb60f42e9a4a0e1f3e480b4db64a77c7c188ef0506e73c648abe8c01c09fd56c4910a6257fd089a1b4a16adfbb32d7066b91820088d9ac05776fbbd7e27f8275a718ec7d034513640e8e52329405c5bcad10c1db0861a9455f6b14f87d170c68362f948627ad3834fcadf70f4b7a271a5a46d3f97659a5b779f7127e80ddda3af9e5d724a532641afdd3f7b8656b5e01b33a5e05d637d5bc33f911cf6bfe34b6b41cf101caa078b289e7819a5b198eceb6fda9b482c50295f3a532d4599d1b0b756a14c90b6070de7287b0a01ac2125d7d82b75caaaa5697197b8005fef00b6c1326df188cf5f23102979109d28839406a30055404f731dd31007d321ffa2c4043d7c400eb6798c2607487fd97d71dfb60e9d95188f887bd5064450839abdb64d1ed342948e5f4e9f3922c9332162707763639fe3639e941a197f43bddb71269b28d3636f5b5b13b2d1d072623b0acbc862d51184bead5d14a03801324c63fb72ed5db40754a8860f8cbc8afe57b538b3d7fcd1f5b3f87aa7d3e441d4f8c49826602ba52a83142177694cd0412ac01f8b9669707b0758c3ba1fad854f772204cae0fee98a94ca0e43f80ca97ed22f30eaf540cf68690ac8ccd854d9b19b3e73a265f6e944694309bc8cf8809b69dbf77164d441f12429446b65f0cbd64a89cb3cfa88984c7a17e2e5e4909c6fec7ff053ddaa6dedf80e102f4b5df63c55808cdca5d51c4f86fb3214441f4b65f5a68e8574c3b485faeafb8509260b15f74851d9526ab45ba2da5bf6472ee33324c2ba581b2c5bb793a6ce41fd38216e8b6d2998a5a65933792a456ffd543f90b9396604066c9d73fcf6773af4e21f7efac7f28ebb1d7b066d332575e9429fa473ffed351a043bc7904799eb371d0fd86aeae89c631ca3fac79470bd20b7984c047a79812865ef5819b53067aefd2107627238e8761b533bfaed0824c0eb9342768f61459f08b6bda4affee76202695d689facac9199462a5e2febd14f08963b09e98b69263595aa10d016e4385394bed82356474efd87f1a3154b97509a909ef9b6cad432f94acd9e2fa8830489cfdca11e4bf2d39114869eb6dbff4381078cd2aae7e858fb68e02b677045fae2a6f79934e02a7e980feb2f1735e72a3e2f9b2ba639b68f5b261faf9de5d62092246381de708da0aa09f4f49114ce84bf7528a38032a4f3cee41f6db15b5a94f8a3c67ac13c18d1b8fdfdbd261e1e2a5cc72a36282bb3b85790976fc6ab1be1267ad5a4a337176abeac415915c1bb851f5124e37164f2823ebfa5808025a4caf75e00a4b62ef0d52f84ef5f29e09aed83aaaf03a227f44953ba79ae0ab45994a9d2ec130e80c78e928fb53aca5eac134c77a737093586897ac08a00b23f5287250d14448d149f1faaeb9cb5f22662ce981919eb0b93e15bb75e8822280100af9f461a45ee7d453fa209602bad8410fa32915ddbe9d820c967866ec18b2de61a1d861ce648ccea533040e74a31aaf85cc915d8276f04d9448e16c5a260ed90e19bee61157516b5ebadbdeea8a2fb14880c32eddebe3ad009459e7afdaf3d1a7c2f06061af04eb411b6b13398056ea6e3a3268cc0b2d0c3a84cb0a422bdce632d310449bf78cb758a9342b9267a58f28cd059b41f98632e4a9ed7eaf2ceda44b747d313900b576a2d6b3826c52862ee46faf15486a284072111fadb8f529ff4c9b1bfb0fc9057d5deff6e181463fbe6da16548c7dcc1c99cdfac5bacd8d665d107d9586679228e367ba39347c2af06673f98e444fc8e9b914d3906a54f9cf20259fbc816d67ba7f94e55dc82391dd2efa0c7da3893865bfab45a55731f421217e0b930533882cacde8507cf77f6fe72c939e3f71216cf415c454394eabfe7de53b328d14d0a3529179066d86ead4d320848d54d372e4519f86ce221cd03aa4a0b7db32cba8b6e0bd966609bb8639b4dbfcb967a132c657093aca8ad1e8a8b00ee4fb1747e09c9864d1f3e850b798ccd89b90977816bdbc96d17f0f05f6aac3c06f4f76f68e447dc5a5c3e6cfd0f93508756cd8a0aa957722fe6e16011fcd308c7cfbbdb1be959b4b9ae4117c76fc466420766bf96e64dc36cd95f81bd652201c426b3aa0494e7c6692a53929721d59341eeb8715162be6931c80d254c2e927d57cb42c527a4a15439220d013a346ed968ec86df71b43c73289b6be73124bb11f2fff471ac2c723e513ee24868926144435c40a67e055fd716e49ab0d4b8665822f3649a6bd532f55b5fc75f612a7f80875364399eae99fece9c8d67e4a04db2466e03732644e50e3dd3f5be38c4c060be65d0ea5082b982365bcfdd261b4b0f3b3e91efe124f03fe5f0d2b83ccffa5622b9a288eed2c557c43d875d6dbca3acdac66f503bc6e2b3987ee8471de0d05c889c788d07a58797e5edb34999dae7801f8abef95d2a1d8d26e534576daa08b0e7933f3adf2133742a82e42150999788e4e892397709a4d0c4d3de3fd261c758e0f23b5669e1292acbabbb3dff938873b27fa288ac57c3b7caad5902b32bc4d9d7cf49758b8ad22ae33a027340adb60686d951e0114ca7a0d824ac6a732be24c48588672ff4f6e2d902e7a2f487240f4c4d1d5e8d93f9a04ee7d7df218c500cbf2e3f27075387ba349dd5c016306b8e915222e9b85303775475fe9134aed7b2fcbb7cbce0dea0851c94b19e386132b4ae1ecc2616170de2d9c7621486952da441b5716477fe86d62d543b8c5a5eca5748bd28b4ae4dab31a39058ce8977ddd72ba32e62a2f1cd097fa545c117f13a758b356d6ff85fbaa13e83e0d40b91029a04b6743b31d8042b5f5605730e8e01a1c3a85d86747a87b217e124900110b0593137d14f96ac19cf47de740f9af9a77a7e7cc72d8c554cdcdc2f18af23cb8cc1aabe0b60ff3b0003810bc04fdb2f03199264dde87f1f4bff98a9b32788f7a1265d9f29fbce06a49fc01e3fa50284f9e1054333e5bd1bbaac1bb8d964cfe40d32162150e1901130db3ef60c932895a9c63f45a9829a6a6b44cf8909936475b3e20deafbd1aafe322327efa81d7a4e3d6795096cd96ff2f32f829ec0d326614f719dbaf00218b9a1ef23dfbc7f4cc28eb08d93247b70a8478529fdfcf198a98d777da4d22038aa1e8b3f13bcb27146871f274b5b4c675702a25269bd618f7742009498428d95689561433aa3c3a7c59542aab8c69fa90a0505a125f77543817c0155a567fe71f9edc0ae9191fb7d10c417f3a000db5ccf63c205c695f4c0250ddc6c4c94c4ca4eff6a5e59571eba1de5870352c0bf387b344bafba1a5b6c148c70d7cae4c29d738683aa8e29ba2265c5970e55d6f295b71d7098605fc321bb576608d455a170c2fec2201f9f3694d757ac869773ecd9f1de631553e3b32c4bd7969d798b2cb26fde24f62d72842248a62e61956c7fa21dba5b1930100ab67f52dc62172693b363cfca559ad0c70e1a2504b9d69894918830f865f6ab3e400ad830d299a1b70474b7fa80666b61ba2d6db41ff838c255efb1ccd520dfd5196639094aa59b00c3510294929d75435089730ca66b26472ba77c4ea6a6ec255e1ddc1ffbfc21864e61bf04f5f2f33b11ef4eb9e20166e6f7d35896de62985c2032d6188ef4a64064dec6c750b2dd18821b66cab5ab1d33492320405ef390c13047e401e5c2b34e36337fb68448ab34e5a41c6b114baf92fa37c3ff45e3e9a164031a7d94f47c1ddf3ad5f94b3edbd88ac9581521d82df8b274787aa93f1d2c808d9cc949bea1879984dc329d5d637bf0423b43ac098fb6e503af2aa09de8813271d834b9131841e5d6d1645c148ae8a5b89609ffd6db1770620ad477137ba0b0e3ac930804ec4a5955b62c5bc1aecb439c23c73ee6224c7d7cb565b96c10b81a0c7fcf0484e9397437612d817c16adee0c7c5397e01c470c8d8d7b42d90744ad3d38e37c9b0648a4f207b5f7949afa07a4bc80270d0e5c5014039f6371d78fbed2f0e76717f8fec006fde92d1688117a64119469405c35638e4d7734f5793542f8ef36fa2bb11577b10df5c485d0f642ed3d64f30b6d7c3dd77222ee90a3f3dc85bf0afcf88532d79411cb080f25cad0dc4a4894354e4a0928bc29eb1e6958919195407a6278d97a5ed3608712283a45585a5b7187d3dcebfe186e6f889afdff3d830e2b4a52617184aac61a2c72a7a92c7ea2afcdfa328893de0f135e709c9fb1b2c50000000000000000000000000000000000000000000c13151e23292d36", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 24, + "comment": "signature that takes 23 iteration(s)", + "msg": "0d02000000000000000000000000000000000000000000000000000000000000", + "sig": "72b76c31d65cacfd8dd99d1ac61b0050c4c592ecef9e83185cfeb5f409750d79794944349abda5e28827405228f071448be773a96777269275b31602cd3660ff7c0b93685fb20ce6ef6908b3a6cfc45482e01bf1b0b1d1ddc6713df9e631695601e3bb4e1c0fad10e1500cfa53579f5a18e1b6c6b9d506fcacf3c429d87bd58a71951b3cbef2b69169fcb1415fc4bb5af1adc71aa73817cf640ffff39f2e4c85c3eafcb03321dc54c2473400df68ccb541d3cd6a89d7656e750e08678dbb05163fa1027b8c522dd3b4f417b2935eb72f3635499f3425561ddac91edd8eb3fa6dc6779e01bb3c7586494f4f50c750857bf9befe5a52108118bedc23690608272c9253a035a612c22c24662395418aebf06333d7cd56500dcca46dbcfe4407922280af7cfb9fbca8bbb09036a9a78d14b5dbcf4b23ce999c2ce544f9023eda617707c026441ecbd763a1a5cb8e0577f953b7e81b4a49011410e3e9887e067ce1f88f1dccefa8a80a0cf4385257e4e488aa93b256d545578a2850b7e0aaec7381ce3ea26a106f298dfec6339cf2aec5baed43212497bd65e3b1dc3d936a53f4f1afff627624c0e672b1248bd338aaee56fa34546d2477c82e05526056161093eeec9a839554dea344548be3451c452342ed0444e371e3b4e88b8213560bc1004206ee3bf494c50f8cebefb9f91fff81dffa83c9b72a47319f20867a9572ff111302138b9472d28b2cc1e73bc00f235d44e5ff57180b38fa9a1c1a02dfcfe798a4bb4f2df23f0f335af0e9fb1c62b1a75dc4f22d78a72f1a119e8003f402c68d6736436400bba75392d7e85ae81ce5df539d691d09a609b063a27a41a75a50ab805d525119706812e705a15f04ef1b616b213fd37ff4d8a96b3ea1c14a46fe805c5850b573e711e2fc6f939d93d7b805d5461444227a903f2b33ca4cc4a87c92e2b256411f4e0c0579dd5a7de0feaa23bf37ff53243a2516e4e064c807a4f2c42069e75515469c5a317da5ed54059e8991a81ea6f9fa5cc012d3544a1350ee28aab3196c2f00fcf6d9feb3330b904dc38ab6af03e131fc1718e8ba0bcee86bb92b301ad8796cd86323da892f3529d51c56c63929315db67cef9761aec28191b86f89c3fc3addc4e4d2fd85dbc832ee6e5191f95fc08bdbbf0c8f4d72d0755fc17e7ded1b32cce7c14f5bc824e545e6ec90a03c8a890cd57641b4bd66b85dc38b5cbdf0c0147733557c0d249701d61754fb1c2f719d283ee0a1e18c7759ad0014c8ebf73e0da6d8dd5b0e82b8ac2a2ad87bf16d4e311b898dc4c1d27063873edd38228dfb314e606e674b6b8ad8ab4fa35e1e16b798080877bcd7acd22b5ef13eff14cdd2d10bd710f59309d219ce0e7805a762d35d63863d0330ce71437518d406ecb4f0c76df512b8e37f0b54e02910ecabc69b0039af01e1b1f25c72d5659c1885e049343a78dc05fb0aaacf57bfeb2c18a4f7514812658770e9731d32aa922e0e41e257ef1da6736e78dd9763d20f3532ebe3b3b7790d46870e919735698d5c934cfcc09e32b21a4c0a261479f179a6684d70c9548a14d3db77c5556cd1ed7069ce295fee977aa83fa98e6c43b55f72e6e2ed18f63697f60bdb2ab15f45b291485c66288780ba66e6dec0e2f000cb65be48f9b2a8511ab6346cee42da6f1d5a0e306aeb20c80ee427411c6154a539eb66d1e1dd7e17f3b735556390e0f656073cf6ac8bbe6e28a1d60adce6fd61cdaedf104d3c72bfb6e8638ab144455d5b955dbce710e08ef047246317c9fa393f8edfa0de9e6eaaba2958567b3dc3c90972e755f9d01cd6e93cac2c5c843306a9da75fd0be875b2ddd24225648d13bb6314ab720ac204e8c67aa0069f3d23a21eba8d6faf112b80d49fe539aa3d15760a530c4d367ad181f6e57a08b7ebd33bc1309f647ae0bb5057f7aaac44da7b5292f21eea28700f5c44b8aa6a540c37f371a1fda8e86af44032be4420cacc0cf023c1f6ac2c92b8ea304c90c687e3eb9f3127f5e1a106bde74f9b585a9c03f3b4bc869ca9e0dc8f75917e52f9a67cfe7242cf5f2f00fc0371cd84e06cabc1135a3d7c0a9d949043e2637f36e0706c5d15cbcff73241ec3bbd36f434c57d26eba1e4964ba342378e02973545e8e5628a1c74de29e572cc6ef92539a1f060452cd56d76cb4010662e0e7b37293c709df7f679f43ca670d05d38fe38c1fa3f7b89e1a9ffce05ff700dc66da6d471a362230f94ecf9c82838186d7e47bcd0077dbbbff8cd5f35e454d60eeef7ea7206c798f87a05bff694ee1d794c88e4c3d05e1b1fc6b2498b9f28603ac850be0060128870f98485469fb74cecded7e8f171939a64af9d39474bf0534a2dee8c40a489a76a170d0020649f6d0084920f6a74af578b0408bce3cb74f4524cef2e68549ca921d1679aad5e01a57db637ce8eb63670c82013704a4f7d5c5a3f2ed8cbb9dc5f47897aa123e21aa6f38ef512327fa604d888f8b3018abd42efe7ffbf8991284545f9a4ebc4c06abf09d3b91007e25b1fa1097a2f879ee1c8685095470efad77ceddc5ab064197fe9f9d604c3d472b34f5147c2b8982bc3ac624b91e16842d3fa4eb3f1d4aebd3be7cbcf167993045e764c24c63ba55a97732174d1fa967700e31d33718e5d52ee59037b742acea6edaf4233cf7576c6de1c0b0006ec0cd59d78e66375e5cf2df629a909eeb3277198991114d4979e205ef703933c516c02fa6b97fc9d5e8a2b3871193002b776a2bad0e76ad44626c980dae0c3d3750c98dd0e156494066fea3708910d5a3781c1a114f5ad0f608e9123723b2232c14b8152687d22b88f0385615a3ce190119c8f79278e873b025106a54ddf3cac6fb3b72c923d8d3316c2d813ec47fb06af5dd19e1bbd3e2c8a0aa67f68ee60bc31a41ee30b65279475345211cf60be335f153e1800ac16e3eff69f66c2905e9b622cb3b9d5ef5964d4412d12dc1308b9e514f069c7b334ec7a81b93adf5b375a83e3f238b909d31930e0bd8c9fdb631b8a390034991036e7c7b54b75c987df3f96d55abfc5189b00a9147c8cae23a944e8846c4819d9bc76b14448bf6f6e180a9194c0831ad47f704db078f246d8a674c0eab4b589709ea779080f20a0ec6c98646437511bba2887cbf52adaac5bf056d71370d37cae002fd7a4394c869a1c455a02f250fcec868990318cc50394e4b1a5de1d69e419319141b5e426412ad9388f45a861ff3fac365288c09d39eac360ed3903a1caeae9909f747d8f4e1224e355187c2c8d9f977669b007d573a413688fec6dc0f40e3a28732cc5459e0f5d8274c6fc8094b1b87b327f20c8955f66b4b0300ffb1713aab6dc1733e4b342f0b16ce35742ce038f65f2a9ffb251d4d39da79966ebca259be04632954f45644db896cc64512128f93b0365604ff5a373b7889e7173d8c08e200649ce64ca2f7b34c1a4a72fbec6a1e1c8e0b1e90130b40490a770f311679bd394ea116b7284a1e479dd028942b9aefca178fc0e237d307f003aaa4e7949ae92f43c3cf9e747bd53433d73917df43b6aa9da99e214c553d0270a98daabf98a18a73f74f5572f430e048f5c35399f4c4db93b11f81e7ee631de906917fffe477475a73011a3baa41f04e9cc8e17269d4fcd0f9ff41c059347358136f2cfc0ed6d9f70418bc7b39796ed23f663376fc9b7c787c0f8d76fafe678ee3bc4076e99feface6e6fd3c285545f5df719e9b6e446d45f256532fc71a28c2b1fccdf972becbb7e6d01f92dd280bcac8c9338670d9d8dcbeabd3029916739c1354651ff66982b18b4b1eb19bdf544258afc7d5947a754a7f390253a031f112a8ed203bafcde14c111b2556570fec114860e64eb869ddc7a221dcf9a36494d3a8f22a18675ca8f8157fe09ec28b778e6b1caf13752c709d7c07440ffb3874dc029dda4c7ffb0b15a8cb8281d61a10ddb747233f94d07cca4c559b781904e3e1ad3c96548ab59bcbca5cc9ca88ccbb13e91766d155b409b45937c6f004e7e60622726063b99bae68239899a1188115194559e105bff8d194787370a435404d76b9404414c1ceb30daa6c879367d4287890ee1398fa997ea8aa2ba51db88fe0e1119c6c857f608f44abb67f731ccf57ae735e81135f5800a9aa69823104e8203f1e3a81525b65617b2508f6a1f0f4727b923f4f6acc00793b0285d95ce8f543fc204fb8374ab90d01ca1417826dfeacfafee7b6ff162f831e92ca7d6ae81e0d40de79ac30027a52395fbc97308440655bd07a6e0cf863ba7c9b55efb5e2c1cb4b8f57ff89e14e612cf64abda446f75e356244242a9a21bde2d035490ff656a499f7e81834f8aaba6cdcdc6488abacdfa4e2ee352d44addb9bfad2b0336b8aaf49a3608d6dd10292fdb3ac461ed67311ea352c13ed7091d9b86d387b3846a330f4eb97247a78bed8583cde756ce3525d3e808f8e1c77253f23223d4ea6512faf65bec966982e7f199ef3a299661496bc3fe5aba5e1d7126e57c2d22dfaf377a0bf62e7dbfff63b7f5a8f0948c988176a65dcf38f80ad536f8a30bd8cdcaf353fb4b6267cbb69d6d14f185a714b6579afb474544e793fd416e48032d348485786a20761bf7e5d3f12e2a69156a151d3e7108fb0ad18d093ebdf0b11200a5b9142369b1029d4eb4f68ead2839419a28a4cda1254adeac1d70864ffcaeed6c65261c85243dceef57d9c524336477c0b305e63a7077096beb2d2c28c1785512615624a60c76572494760438cb1c0842638a9b619291e869693a471b17304021ead4ced4a92055a2b62320bac89bef0f45ca369f24a9d53fc85f3c004433323bb0e15aeeda809472134db0e5ac2f19739f9adbcbd1cddffc62c777635db14b9967d3d50321071b5666fe2bb00a0cea072954300318d03d68343becb56cc9dc15facc35f24e2a5f7c44ec63bff34018bd41a8893750155d571f0572951059bd1cb378bd8238be3ec9f4017fbae4c6a5a164ae13df0c2e742058240b4b3053f9ceca9e11c71d84dd04d366a19dae8e9e00c7c4dc3985fd24e561ddcd2216fcc5c92d91d8de3d41b7ced889af0c55b1f86f71d9f87c83b5b27600ea100f7813b4e4053a67ead684f21e0be2a729eaed77eed7c9fca4b847ead78162d9bf42bc4971360439fb86346051ff7479668184e06a9c14bf2156ea88337d63fc8650562986c6371168d2f1534d7a269ff190b070b13b4335c2c7a0b195ad1468a482ff67c1cb4e9817e30e2d4513fae9957b0941718073b378cb10707b96177237b565bedccdadf94a426206f9e9f1324b9326126341f768bf25dc0865342472fd54842456012f40a3722d1e6b60b0e09b0a76392f147e51d0b14bfb6db41c27dd71cc8ee27fe5f1e55a124eb7d6db4b35da52cf4848cbab6adcacae77f68e3ba7ee2740c341d3f7be713a599611ebb1ac9f4365439ab350fd7c12ad32fdba9b9494338b6ffebc4075e7f9e316e18a0bcaf9a37b2be20cbc04a01db7c4cbcc3a9953af5dc2b9828caf5734ce44ff3836b6d57a178dd2503c10c1a42d278ad15627f6eec2836604096f80e50339106bb55183a876c3465721fac27380d3575721ca425064f53616c8fae8cd2bcc54e869b59f131a986da7caed333634ab44cfe6005cc4e74dec38ceff1e4a5c9003a94c34bdf15ef13b7fe7834c1f59cee48dd5c6170ae50199d8ac01160a9e6d933133b0af485849ee6fc9b8fbba21dd3ddfdbdd20e9854e9847151037aa31eb8be279a9ebd612d8b87531048883c9f178daeb8b9e05ffef2235c482517ff5283a278c947452ecd8e01363718bab9a66a95d861295269157cbbe7d3566b1b21042f433f0bc36ee70be2a748a78f115aee0bbaa696e90d0d38ef71b979e8ce2181b31038873f0e0a10ed714193d67368842051b28be8dc167b8d0ccb009ee3acc1adac7159b66d8f0343023128589e20f50e6be8992a39c2cc219c46be8b5629b390c157810f20112d9d95a6176aabe436e13e34aed175a3b18daeb4c5e8431c7840313f13d3d6f0bce5e538eb866202c759a57421738a4ec018d4e47369554d8b49380657893d2b04c3675463dcd392c3de4b08c4e6c6189d9c058fd7395be318e95b5a8db02cda9df52196e1840383cbe94f9766433028baf849029b9f04a04b268d89d2e6550365c6553aae70c58269a14a7cc7b5884134bc6275d11a748741b16c6cc9b7c86faa2e194f2e569fe49029e24001a30c5f245d8d93fa0ab87181757156d103a55775f2a38cbf21eeee3190c49adb3e9b78d2c091af4edd8f1f117af5ed4a33eafffb616982592b8a6cd0b503412dd463db69fb835def38546d88316e9eee71628bc0892b344263be16579b3d34a65a0359324bef5bb5dc15a100645c8b2dd30cf6dfe7f341b5a386423cef10d20bab82b285a75a2164e9e309563c79e142ec9e2f61592c7eb9497a0c84042507a8fb4cafa031b264f757f808aa6a8b1e5ed11173543667e7f9f00273c5a60c4c5cbea0e6facc4f20000000000000000000000000000000000000005090d15222a3338", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 25, + "comment": "signature that takes 25 iteration(s)", + "msg": "7c07000000000000000000000000000000000000000000000000000000000000", + "sig": "a200c19d069e4b57e62801fcb814288af4303535480160c116aec8588a823700d9172e6743af2f901e8fcb8244df83b373c14e50f114b07aad0b99109ccdb200b9973832438c20356888ce22cdd282701e276f8882cb1615930f91e943f50d0a7d3af8f6326a161be3dc4deff1733c026e771b4a12eb04789622628d19674add76ae179477a516e690d5a22fc2c7c8ac60014bab98f731ce480e8bf041674aef0de0ad88f4b76193b6c57814dc792b820d87101533f2e64e4145b5b63976dd2bca582f69a8636bacf094b6012e90d62a1059adab7dfdde650bddfeb2290596bc6a207f0dd0dd1c6fe586026b254b9dfd063d5578a78dca96fd42ebcbb4de35fb711da64c7273d9c2f858effab233bdf864ec2be21b59517edfa24f6c68a17893817116a623a32825f7ad252e531910570cdbe906e6d43252086009dafdcbdf916409e8b6763975df20ffa7a91890657292470c3a6b851d933e7f82c9d324e5ff1d9aff3909a87a389524b7a00edd418b441f827e040d4a9baa341f6c47e586c7da6f7f05809fc757a7fe95aae1e877eb28bcd9ac3ab67578ec280142749c4536f5cd99d8ebec350d76b2c1783ef9177a9d7455902361ead9fd3bcca29383771c979b345339890f9319f2c576edb7ae6fff156a69ea19e3599dda149dadf15c340744c7019d7764930883c4201e489473cfca42a7195127397f6ef6922aab0721576df386065accfe0631dec593811b2f285722e160c9deeee8eb3de7a85b4560d636cd96673bb7bf67a4c196374a808b083102a2fee7fe886ab2fc40d2eeaff7ddb193b9ef71fe625eb3a3cc027a0368b5489ec4cee58ae026e8ebc5e61c3289c9fb9cee13c7704f16f70b7032de2cad8882739538b2edad8fe91249e04a766fae5e3b3a99ee14e2b2c441f34939221dff84eeabd33d014180e131d10eea1e2e68d101712f0a18227ccc20ce35fd40af0994d2231314d5716349acc52a3f98a772b0348a5e8dd08762f6e5f68fd424704492349a5d2b039b1cddbf5d018f3f7484d7e9e5a46441f04b6ba09e505248391c1450118045fb9408c6c04acf0a1dc55188291fe3ff8e3d1ad159dac72f8310b0c37d847b85ce7bacc9bfe3e7ee1ea8718c3a3f71517e116cfe3e2ba96c06eadbac9581241a109eedb645a05f220074af1deabbdc4f89bf779ca7ee2afccc229c92dd3efdac33a9dec97f4e0a92f6bcef4d7484d26820bcc3453b6eb5f72f3a955fa3ccc280dd0c95c8eddf029e0d7ef4601bc26d21a6ff8aa04fd20fe524932e692e32b0f8353a43ac0fbf47626f8460019c778c94a640f2f6d34ac1cb512ac2ce9b0928e580a0900bb306970f136980bac5dd09828b42c5ccb626874a3cdd34b099b69e63f06339f95299a17ec2b463a85928b2e6216532852fe3f2632dc0649c4090e4e13e1c876a3c6561f8edc492f2db32670e0ffd9614ab0468f6cd172bb92eb70ce1806cb67ee22211420a9a2cdc495f376d7eab60d8f88664a8176626baa02d88263b34588d662ba92fb03aefe9707b976fea30fe19bbcfaabefabb7a1c43c52f693486f8e1f645d6c08c0579898e4542a5d5ea760a1d76e8bb9bafca36d771fbe1c99446fa639629aa1ade26a9c6dfa57589469ceb580b0696cb2c333f1721d960537db83a4edf651d34b7ca50e4d52604134e366bfee53df6d422ff916ca87298b1ba9b787f87710cc1b3dff28e1eb00cfc09839328fe7d5d534b7bd5f6f05d087b2726f8756929f3c0c93f1270f6ed00dd7629defaf3653fb8bb961412c830f6eda86c406445d2303d831820f077e4eefdc7b98ee8300b19013a339c648920e6f42a62bb9c763444fed9886488fc39de2f76c3d2e1719c21f863179620076544a2af7c25322e887e791668fad830695ce3c71f06155d899673eada8b2b00f74dd0b855255b822e3499754fb8a51204e110b94128e2c0bb7efd36db53d9ef6d5ea54c997496cc61e0f8113f2155abab98c8d7237f5996e1a0b471aa3ac66eb51f4c5a13393d4b666e9e02faa447ddf211e09396f36cb6ea47b1fb750ccbf8f43a4d478e5958cb7d0e3a1813583bb6d42d6684868c022579bcc1b1e84240ab26c55caf09c18d4199f33bdf628e4cbad99cc85f9424592f0a71e5e31c72a7b601a37e907cdc47ca9d9a8c9991ad51ed996409ef753b2714a02f3476fb8315d73a7db33f06f28133ab0987351a4da92f6df0294945855394a612fe9393011c95622ca033ed399fe1eb9e85b89cf5ccc4dacdf930a4cf798b86d41091abe9f1a64bc9a954aa032712a76f1efe2b348e0d5313e286a0821d5377e8517175689cda9402eb244a913bbd76d09f5d0a2037e3b647307fc3964e87f946419cb8e8c2c2c9dc169672aff8a533992dfc5f2b89cc8b008aca34bea03e2fe1c76723a0c99b3844f1d1db56da8045bf3139d7a64bad7d013835296ee448872a004c50516ce3b94ca91a5dfb9a34c17f10b27435ef4693728a3e9298d30d5eaae83a2c0ce6bb25e10a1eccc33fa2529913e7e00f75d713e8a1eb902c6d2f4fbcf3fc3bddd5c579e53ea43d9c7e1c92dc902a2018f6105ed9b013ea358bc35225db77b51b24f3ab74958024490b4527410e0dbdb7ce4edd25b3b8fc7ec3d3985c2b2ba618c626b649db40577ca14b4c070e9340c6dfc919059c20b327d9f79fe54b7166b0a6da4c01296a57c7f4db5957109ac7f983486180777b7b7ab73dc6adea33183ce064581d8f73916460be38567c2a6aa33bddaac4dacda9e797cd0224a1243601b6cc8d49b828c00fdc40cf187119c5ae89928b3d50f7b802e57f644cbe891d536cdb877a141c162fdf3a2ab11f82d0e78ca758e79d869cbf84a91eab14de7e39525325b93d779c1bec1284c1a92c5e4f00eacc572f1c24f6dda62bc5063d7bd52e47a70a8a5610aeafe09a3824365bc427044b75fee59593270f436e1ed6853e13a7be2e1b2fa1783449a1cc89ce04274e3f5f5a27094e4c44d7d7b9981ac9abe6ae412d4770c0f98620889841ec2a67397ef9fde78e05232857f87ce37cd91f1cbe27cfc243f1561236535907fe0ca8319bfe10b6e5835e53dfdfc3a249fd715cf361cdef71828aafc6ea85abd30c8e612f959d95eb1b6e3b66125fbb42fa7f42d19cd4b3d4ba0b49092d4d065cdc408c645189ed1ef8bfdb5e19615ca40b7009484e68d8f601261774e5fa384af052d2936dd7c6856b7f4c73aef06c15ae06d8aaa0ad5717ad8746baa7d88832ae072c1a11c9ef8dc5d1f03f71b8c8cfc92ed184095161eecad879a5375c376a76fb28aff7e456fd593307d0d7ebdac2ecd9d6549e53582d3b4f19bc2c0c90c7bcb6a672e22d41c4f93b467878489d3368f9d7f2816dbf5b25dde74624c2dc2464eff4612d9cbbea406fdd5abfbb63f60654c248b806d97e4006c7969cb01fe6dab8f99e2d5a0264b41d17ccf05487063a348df65fa8c388678e0baa27f71f999bc42f730fbbc93b16a95b3be2bf32b4c4b39189b2d988428657d592e268c707afc659abcc32f8a8a618413d430074096d5a570957025c6236cb31910130679ab9456ee46720428ffbc2264f01047c933eac48e61f54db8b4ec63bde95636205a863f8f52e8911a7518ef86582de1fc1046f2cc80b40fa9772fd371daa2276ccde6bceef5e6f85f59c7a6b14d3bfdbd1df62ab747256d848c122c611912620e9bf9d1cc82cac1d8f39cb4b85e096c5e92017c8ae78ab930481749f5cd69bd0a1b150498cc732377f2621d1ebb37e16875fad53a9cdda83eee73da03a3c2b8f8cea1e144ca41aad469dd7b0d2818c7a57d24981213dd141d3d617527d6ddca4dba5740f0b1733222b7a6ffcb7333aa096f1b394460f91639104a3692cae8764600eeb918bb8d0c5972d41bd2ea9014f65abc96349a1158f49616ba1e92311fbad6b23810639109f3a69600a6c3c12f6ea5921db8881c019604ceffb9e4df4c4eb23b7a943eac706b75b0c18ad28f602584be31b52a338ad1746e268c248ca188fb576133b6040332e5015147d02f7afcce156e204e3aaf98ee8f8c16e6ba6794afd0e36a9184fe41b88ea13b39ebad994a24143a5373d598df90e1bbc27f946c2582c5095804dc49a5e4f8cdf228a7142d10a60bca6252c4029b1d9332b995c901a59b3dd079b94c199ae62eadccdebeeada6a17b314d04efa501396b65e040d94a6c11a849b198b22703fd5eeb82d17b892313369e91b6ad73ced5b46634a14d5ca12c0b0e6591bbd559e6ba1aba195560eb809ff584139b8d7c9ad37e399f9764da3a2219d7fe4abbdfecc2571c2a4cecdc55eb0f12ce5ad59c973b91f5841f96ee7731a242e4197e02554299fd70c7367ef09ab76dbf9db4c267b6458880c76f0b18daccb6dde67987d50339682c53793a0ffc66740eb4e8e6c078a42ab17321baaa5dee4da6b031338f2e0b652c4a2b2163589da35e02f339c48f733345359d6f1a5c5c721cb7dcc2fec3317777bc6fe246592d3e705b3a03c8eb59aab47f8fc6d89a842971934ac4c85a33379396d7d84a66d8003e8b7e556ef177daf8aeb22518124195df047fd10a73779890f9d5dc1a9ab289470f70418c4ca92059480f7d5847bd61a032ee842f9e6061c85571faad628c9775bb032157232a47b04846a6bc076e6552cf576c325d952e4fd6a15fd3f0dafc1734c5af8ca24d1e7ae1ea3c8db85b4625a6d7ee5b88158dd3aa7f7703f396ad92fd539d2f75e0f086d579db4281c11b46068ded8cdd05644df02e18a09446087a676f2b220dba633c6e1307fa61a5da964f8f2fa7ae02e5279905d768016614de9a86b04454fc2961cd0ae33b7427d65c37ba090a90a976ed8586f0754be301c2720f7fe0200dc2858fc93720719ef38a67a84e6436250917f882f06120e2eda29455b5129fda8b158a8094d8df3bbbb63f458085087639b3bc10d46e69a994adbf6471d532a25a7eba40921667f13bbb1bef800283af0e3eb9e0f7d56a348726d216cba973733b112e567525f00eda7fe0131b31fd81282f04c255581d340a199dc1e2901e1fe3d18afecbaaf209da29c2a8aa3e0e90b3733e28ca118d10c8e87db39c6f46c61b850be15f7f906b26d6ffaaf022fe3d4b64333f08c93947dcc34aada40eff199c45c35853a46def5cfb363252d9d67a62644111510fedd4d2c4f42330775761471bc7a69db3a49164f3a9a47d79ae858de2478b88e298b2fc6debcc5b3a8763ff0e613642085f49f956fddfa25eed25bfa01b1993e8ffe9f1b833f180c7d3797a04dad3f54aea1488a31b77ff31c0cc494150d1e5023a0d2228a1e89dd734e5d636a645c9e45f16a32c3c8fe22b9e3d2689f5a12162abdfea485b2ed95c6c6bec1159b169c6904007d3507440c5e79f36e0f3de90779e70e9d19d0205b93a2a90daf7e1493fe4c3155de82885d0cf4fb53d01e18e80e7c1430e17dc3cc74409cf0a1cfcf7e7819a28fbb864e86272df387bf014bbc123e02e4cccb3305e8cb743cc836a1863480a195841d7a8a56560488b367ee3cb0434ff72662e7d899a85d8a4b32a5c70c5472743cc109c1782715088d8d0d24667f764a926ca9cfd9c22651beeb2e6d511f5b7d5094170bec1bd69e561513b263531b51cb5c2f943f700afae797582eb5bdf542e943d34af2cc6cdf541b8bac11e1a13bf0da6ec7bf513cd44176d06bf4ad4645a68fc1732ab531f1227c08013e8a0db9af2417104a198dea6cd12cd4850d8f5d7d4072eec518a8865c7fd4d0091a47156284d27c068e9c78db2df674932a595607738bddb8e8b2ccf36bf6eb30fc1f62bac7f7290774b7380b50f96b6f493facf1544122c89991b05d0543daaf85fa4dc7e10d26e53ac41785e1f1f9f2a51edfc2af0d420e36280da9dca5038117a94240128e160d77ba838bde753064aa0d23af7ad9000920adc0f70b29fefe75139c014d4d273de62774924983bff19f7b48dfec86d2d2872ace867e59f2bb0ac6b1d996ccfcf0ebb82161d02d47774cdf8602adbc6a026a272dd418290f72a43c7de4f31af59b943ee83ba95682163c35d8d2caa3334a2c831afaca58a9b9dfe74c1eceb1cf9419d5ff5c267a963b20df7a108bc404f648eb4002fc839a86726e69f360b67ab819ee14d6a634b4a10b98dcf140a49b73aae7dc760d15ad9b818cef75d5e188420da266ffe2b9faf79a5a23243dabb6cd5712d9692723c7b4a392081dffdf1c52a95a8e966ec7cfaafbf3e006416619359bc7059fa669f6c41820ade7a98642a7cb647737f6b3eeb31cf02e164943f4de5d10edf8d9bc9b6b1f63959c2135e187e6640cfc632c3d56530f859f091d37347d359ff1f9f458a4fcdb327496555e585f6631134313791550e3fe194c123b4da474196607db461c2fbd37796ba8817d2603388da0d8ab0d40619616fd3ec246b93a1a5c8ccd51b72a7adcccfed013e4a69bfc0104da7abb2bdc9db3b474d5f616981e8051e54566da7dc000000000000000000000000000000000000000000040a12191f272f36", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 26, + "comment": "signature that takes 27 iteration(s)", + "msg": "370e000000000000000000000000000000000000000000000000000000000000", + "sig": "1494167014da7e901905f120fa806166752e373459599bed3e89784aaa2725753f2f93edc1725182f2397b1229dd6e3452d66ee48a782207a2fc371de95fa7c20e8450740f94cd400821c222383aa391e4f6e34de20eb175455a5eed36b9f82c6ab441c9d9a5d84a328c1f6f73a2e7fee29c9e3e01d46b685a0a2d799d0b8aa95d09a141e01cd44f08d5677121bbd10e389d067d47231ea3cb05120324eb06fbd6433fdcd115c2fccde0fecc78dc357b3cae1d200edb197d1f064e422890164d835f36f7b6464a2795eeccdef6b42c2431c19f4dd06bebfb6563465754ad473f550d6f3830ddf82359738939d1fc5681c91255c96ec883bd174fc2d61bf0ae8d3b3fa6e0956ef3d936057b087eaa64d933430e400e0e2d6c824f9742f1212257cf84782087ee5bfb1589c729a38f73a3e3d21bf99ba3972eb724b9f57dc365a04fce74bae2c5d14ab403c98f25353f12e187b27cc2f09f39d4c8007a7d6dd554c2d8c1fcce075b4d8b0683dfb9e417aa87a5688a7528e781ad6b2d6171771193919eb1749b751cecc050af19cf4d40eda182e8f76907233ac60578496dad0703801578aadb2532f9071255a7f459e2be5066f1f84d7529fb1170e1b807f63b001abb4671b60537cfad4d59e452593b3696e1038ff4efe6460a3bbeae53eeb1ab44e02a0e8e9a5e951fbc26eeee29ed4e8a059eea986875efab5b8a48e0fa8ddb926dd8766ffb46d34c03700100aeca47050c5832d27052a93ca58acd0166dc847197f5cacd99c3f7f016c8fea7c8236fc28a77a02bc9ede3d447e9016102c9af1f549dccffbe274b5c5d83cde085f206905ca2b2766a5dd963de2f0cffc9f22fb40e8dc9912f571f44b71778cdd733cd45aee6b5bce07077af3bb9107ae40768a939d8591f81af47e61e997c9ac5ccdb3f173889a2e1caa024500fa28d81989f0e919f398060443c6ff97bcf5f71662d9bf4d1bae72469bf65105357302058a669d903558afba634922ba7149526a0d5679b48da8144f6918031868946599e57dab7a028e7296ede2e9e0959677f3599f7e0cdcdcb63713ea4a56a9cf209e28546170dee1402caa6e6bc15a78aea4d9ad81e6a35a00bb52a8570641d5ce5b5ccbbc8536bcf29e9ada68703ef714b24b1d386774c05fdcce2daac216b05d99183357180440e43f6f3957c3da16906abfa82ebf25d09ca26d3bfd6691337b9f421ec25c0232f901bd96d2dae7d8b7af0ffbf5f0e38decf9053bb4f24778451bdc204ef56cf6961791bb016c338b382a11cc21933eb2cdf7eda25b01e33782acab0370ba0134b58efba7f9784dc628dedf7b0ccceec0ea4214e529b8f10bfc7e1246ba0d176ebc47fc1cc8fa67997acd5f67256dcb98f7bd7e7fae71613108edb83797c81c6a46cb0ba2b80cac820a1b4f32f5ca84824d67940575e268e0fa0c9b35e088b69bcabd81870fccbd199f783ee5ee05d623442ada2d22fde04a1b19720649de57c5318f1725256a51e0d9ceb89b820cdd2c4cf2656b41656279108dec8394c7f514cbb31ac2597d63092cd3e8f603461000d155b0520e2fa44a4ea221e6976e8ff8b8223766bf5c6b7d192a594080edd05112041b680271e9948b3c7eac0ed4521cbbf459742d40bba6ee85ce6c5859bf4d39796379ab5df1b4787ab7c505bd81ab0e745ce194552687e6277d592ccb1153c2890afd79dbe89557a826f74bf2a7a451760ce7e049f085a1c03e768827e47f552ffd8503e59c2f47043eb61cd5600e48ee09a874620f13aa3996468c3329f919a5c44978942049b2cfc05e4b5641e062f67b5523d2979cc9db93beebe9a22cbee4a16348cd8809c4bdecc086d546e3a7913e1ca68b34cba99f84147a7e09959f6632a4b2b51178c75d053a724d7d093a54dd5f9544a3413b846ceb82b8862aba62723f48a4661fedf003b4a13a8cf7538f88ca94e703cd2974be34f60c1ae6ec7130a8f768c09c23665f44113d10dc362fe63ebcdb78284f146849c703ca38516e3f334a7bc0549980ca213712f2e5fdb1da1f02758e37ab5119005b8f81895abf4beb128c0aa839857c1ea2e34981835eafcc16fedae7ae0bd4608c3764216b5e015b7a7bac08e2dcb30fffec14ba15ec18e77ddfd769d3c5a2579d289b2e40964e9bc3f8635ef078e165281d0ee44e1d560b9634efd3ab54a3ae3477a8f361e5385e50cbb8e4d33b0146cc6a5865e101ce49c94b67fdd79a33f735843e7164fefec9151a417c66ff3503718a8dce8f431ab172068f8f4de6bc245e6d83674bcf918c48fce33e1dd9043297732474929a788f000a58839dafc40918fa3902fca5ca2f12265c2d56891ace91a7462f8487fde8785bd367a64ba033afcebcc08609e81c63b45d1491ae0ae20c5554e78053c7f7184106b587c6423c4a8d9d4fcd223cae69721dd441fc34a62064581700988450a754f3dea9ed602168ffff3c0cb1177ca94e47de2349d0098e98d487f1c46b44791bcb4283f4e29bf37562e455d96aab5252615d672e49c60b048e40c7973ec382259743be5a2536df6a219207a59c17870c9062d3b8ed272bcca963769740948b9cc301ff43bdac4c305b4af639dfb62d1ae64e300fe88077d856e9b9bbb797e43d95e957d9267796d8ff4cf05ba4df256c779dee57db6174e6c4f70742b85e45e36a3fb803d70cabd2f08969d248b931ef310ee5e754f5bb96e812854639381cfd9cbe1d5511a7f6130b50ed181779263631ebd29b0781dd1de10d0b04a2a8b20f1086e210596eb3b9ec976c9c0ccfa64259bb07a80d47404318bbb8eee9690dd3c378836b0341856da39cd6946b1e76444c4eb7bcb8fa7554a0211f62755b64c207b46c281a1eb2f7d5b1ab10d4e15454723333887d783d9a1c9aac840509a66f6d349acd2cc6254e1f6c56e7ff447590ba0e535d16eee45d3f86170591eb3789a1b4aa39c283e4fc3e50ff37da29ab0734bdc9ed2a592c75f2bf4fc120072605cb4b6924c5ea5ea783b0a44cb4c2f4c14db3786b2c89b520f4c03cc8b1aa2999b1ef6bcb10db289a4f44796933ec01a49c6ba873ed4bfe4bdd66f38cbe3d064c9a11639ae013722ec9d1e7306891505242b40a6007d0ea3b179f8ab83874c09e0c764d018c74ab944be3ab5e2378653c409d29115fc74a94f99fab19d79c28266cf9918e2b74b6e6cf8d47f53e3ce0b0b1e5411bcda6dba7049d97b28ae3b566e763aac6d9929ba4a01e7b4a7cadacf8109d9f59e122f12993b0f3c9da550c5b95a04cc0cce8818631f88f3076519e9a14bd6f902cfc87e5ee86e560c230f89fdc0ff59ed1e5ea22509bd5c9caf03be2bcd19100f658e5540ee18ef0b6eba9315e65b341b7f93a0964beb1549050b252e62c7fe22af7e60af4241a830480324ee185c906e54d20dd9134f78a4296a68cc09000cfa233f26c87c61412c588400b5c95663bba4392c390e92777eb76863705c7e7757fbe25ad4a3c46657339fe07ebbf17ab4406ebb70424b644500505ed3d73ef1de9d6d56ebc9471a93e6be65ae878cddb27cf6f62cd8b89881bc44ccdb1360ebe33392ab5e4846e7dc5ae4dfed08c208a1bb4a35fba7487a65be9d10ed2759dcbfbaad17008a92e77d8fd7cc9753b902c8f2c93bf7f4780b230c4f11c45f077bab546a26ae35b4148ccbc06aa64b5607b67a8aa2158a413e21a66aa7b587ace7e8a095138ecad5460474163f0b3a75f03ae0d130e1f2e98e0ed7ca049e43e9fbe9b5d0daabe26f297de8d539255dcbe7666ea8af242397102dd046bcf7258624680940aa22bf3e2ff3c643a6db9d6ba45979d0dba17746eec92f627a9caab972c068c26f74f88fdeaa0e090bcf1d5feb1d8b9bf74964d6a2d1fc8d0ce11f77d7f9e0e425dfa606cf9cf3174324b8495e3d2241646df198f095cadb44451567166e9bc6ea104ff46da0129163dca1b61e5c203f42155483343e504a51826174420d52eb23f7180cb74d6de3ca5aa5051f5faf953ea1273bd0453762c349cf3da2ae621eb0fc47dca28353152b08e732f887f9df7fdb7633af78d5a7f5b34817513fce8dda5397b2fc6b34918805490fe0dc1dcfaa950c2b021332979ff3dc98e6a0ce0c316ddd580b6a8280519c04391a637f6085faa6373f735f0c93bd5e8ca69ca3f4123dbc40481de865e699545acc1dc13d3547b5a8fcec546d839f5bb9441df05c6da15d5ca1dd298bd3496b1bdf0d3ba217d879a5b40424255f60ef6fac07a0a8fc9bd976aa36cd53450cbfbb7537c4aaa3897f5138580be8afa076ef9b88987c67f76397b2eea879e60dca71eb27336dd91f0e1b00835cd790584c2b8d52f6b30b183b87b014d259a4af347ce7d112df366abe39bb161da896daf190e9a6b1c10fbff814f0b79be9d2b814d8a0bbfd2fde9743ef0e8f44289cc69092d9e107d8bd734a5978ca1012612bc6a14fa9e482081aedb12cf45aa494a4bf5717c2417014af3808a84efde18a1115b279a6d8b18187b8e3319581b0f8b2e6cc3b5b8ed1d8af923406cb115a5040a86545e492d922df04fa458ba90845e9529ea9a9e27e9cb11d144e05b0fc7d3ee69c3b4e9a7cb2e81402931becb4beb088206cf8d9059864c2fdcae82c88eec397a5ecec572693a96240886cc0eb78867ee902a0c43c1bc13d9c3ac4450b685596c109afe92729f605cea003ce19ddf7d088e0f09b83ff70f01a2664cc23a30cbcee27cf59130c56f236871d4f047a18daec5f250b0b60122c16625bfc0bee56275655b052effb19be4b2e676435bc0696c5b1794556cde2493691a23f99c5536dd0130d96838ede8536fc17b4f26b4781c784c1bd75f023df0f6e1719d6e1d9aa58f7d637762b3971ab025e7535b44d3241df74e917fd734d1abf370c5458fb3e872255a7c6b10ffd5d6fd85149905b487f3b30c66513af590c8938555b7e5c86c212ccb7dc3121f9d4020d64528cd6928bc9be2ab4d412fb624535158e5fa4c551104dca2019f310acc9a3e23e4b6d1502ac6faea71199f5d7b12f9d569af38417c1155a105cc968c3343f3ea41515205257faf742c968e82c84689a7a3df6128d6e128278bad9df5c472845bcf8e71ed61a92b268234b4892da907573ba5f935ec744286fa956bdad1b31ed2b7757b0466e16bb7f402ee8ddb310d855adc7310f4bfee3463a49ed4fa3a019dca877bfc8d71d178ddbe2d58a51ab0d1b24c8c7562e6b2d89afa5c7e43165a9a51ecb21e7aeb7be0eb957c950dc5d844bad5166e93fd153d69001f019521214ee0e7a404f3affe6d4f9b2f466ea55753b7743c1ad0d89ead86ad14e784ce309f06fa7f643fd3d9f748442e8e09ad1a546ac0780c72226bc8511961e18dd178e2c6bd5f67e72f346f24bec671c2a67d63a85d1958de861406ae3244b07da6c7bfb210abaec60b46d7bc6eb5bb52ee548c5ad6536e89ff92b4fa5a40a8970f7c39decf8e070b5037abf187454f56c5c14b957d93d6a91a572528870419b40a4ddd77a3c67da5c0fd55e7fdbc254599277e3dd68db787dcff2c82f01a4984780fed52ac0886e3a3a70c9c96ddafc0792fad0ebafab3f87a3ea9329d324c170643d2005851a52ad9f13d82729d817af50c9235dd599e8205a1b197e7358bfd4e5ce345c926cf2dff150d5fe7f353951760f426ef880cf546b69c319bba1e8f645d77e5e68bb8b805c4320e198f3a9b9c3e34c6999a96c51e918caed58f1055f1132f84013e2e8af2875d5b3430f92d2f6170e1468fb1ba4cf141fdb0a799968c78e428c3677f635916baa421ed8bf84ac55215743cb7e2d601defed25e674809f4fc5ede43aa1b0fba97e53b0558fd17573ecf885cf1b775d494d59a7487fda352702d45a9df1e50ed5057ee134bb9ca16bd8b7f1defadda60c53279f9af79b1cae776776d2a72731293b81287c5edad00be2c5aa75eb81f0e748600d294bc3ff7dbfb65e2cd149229582aec8ecb5470c586c17c7edca37741e726eae17100ab0e8b54f3620fb6558768081a5bf4ad230aabf230895aa544f4851d821b3164245970a88a8f7495578ad1480a7c216a74cfc6cbadccb2095f985b8c74a2bf986020dfa9895d7f2c38e88f88ccca72e08be21532c1e40a96538032b33b843eeaaa13f92745c51131ebb1c134894e5285332a83d79be39b191612071deda787342a0b6f618fae101c01066ff15061270d478ab60eda74bc0e00e804e6155879f1df1392cb150d26b9f40cf89fc44d28cfd4dec6ac4c3ae08f9fc115f65f9921d0db32fc73a4fcdab9859b23966557665c11057cb0863662a521c07d6d559cbfdd7f8fcbdfa4569fefa8beab5f22b11067a718684a87c763544c7964f428ca5ada4bd47e75c7995c1208a9ae0ab97e179deff1d20d19b061874049813d69a6b9eece41fc0bc631c2960aa554a70d9e0e2292c556a9ead2d65777a7db2d4112d7698bdbeca060a1b23315a63707bdcf1fd0e181f233a75a4cfea1c3e80a8adde236e7fa7bfd4dcebee0000000000000000000000000000050b1219252e343d", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 27, + "comment": "signature that takes 30 iteration(s)", + "msg": "e502000000000000000000000000000000000000000000000000000000000000", + "sig": "f69df809b4d242354f84c4de29cddbf60ecf849d7202b19926b773152a55670364007ca856c145d10157a8832df1a753c98698916184267536a8d4833facb3811d4fcbb443767f4debfcfb6bce10840d5e8c5986b1355d2196667aced69e641093b527edea6fa9fb56990dd99380879a48f6838dbcb974e44087203a54bd5cf07f7b412e463beecf7cdb46b1b5e804970b48c0401f390acc58ea8ebf13492751b877a844168b09b20d17e963e95bea8a0691ddf91acc6554a0124c71e98d8f3336ec4a00225ab0598597fe1593aa0cb717a8364b04d1b32a54317a82d382399396eeeac12a93a2a2f3aeac750958098ee2c2c728c22594a9afda0370bed83f9ec709309be1cf7a32ae92f1ed7b1b70e8389868b0c50a15a70486dabb745b020e6e760fbe5db7f25f17cca9986b7d1b92b9336cfe1a180f056e2b4d0ac47d0d9dbb2d0cc32280e03cc5cb5b8ed81a5d6d8eb07cef63f0ef681c26432d221589bad2977dae976ef0d3f9422f62efc5fe3d6a1bc3ed974f9d6ec5711035f7778cc725973d4018c8993f198db801d1a3d74e4302dc925174dc9367eaeec632a06b44b821c2b81d48ad4c48441369eba7e99809d49f03a040c6054dc099049b1bbc7cf60fe335cf5efb514ea3d2fad09752bb3bb20f22bab96f274e443d3fdb97d38ac6427a756681d63ae1204b32a166b10624ce3166051c013eee29402463394419dfe44c9fc07c1ef0164f279fd1e082623f75abb69a19e00be12ac209e48d868691ee21adde52c4dbd89250e18c90cf24d2c26b650b09c52aba801933b2a41c0b266462e52988eed66d09d065aa8d71315f60cfe6b0380aa43e8c48566e8f678bc98881454601cf05a62fdacbd14f7af274fbcbbd78a0cdfaea3b596b85124a2a893d50cb91abfec75c32292675ca10ee5a423afc45b5ec6eeadad84fcd57eeb66432a909219093497fc774bd0131ef5f994faf8727e34a60e787cc4c6bef7fdc4b13e5127ae852b015d7213b45f886cceae3d8e0a531295adf298c808245b383f8493ec822c3ea49cb21b2b8249dfaefe8f4406db41eb0e2a69ad5c87993f47be31adfc4d84486486bf4dbf2e127c366cecd8f376fab4e917a27b22712d4fb8405478a00d5170f2114d562524ad899cadc6df511c7f839188fd31fe98245bf01281c96690b84b16c4e2dca34ea07f086d479feb349681ba31e5ceb78d67ee5340519de2b736796d9a4f18d931cc2ed5e4a8ba41351a3dcc2a61407b2c90eefafe05c061e4e9c93a4fa1ee52cda6ed8eecdf531e0dcff81ea65e88101f5171f875b268e285c0418068e39fc66cae9710c35b0236f8a20bc6ae4a53eafb33a8123376659944fb4b98161fec7a0aedf55f63722229f26504ecf930c58ca72af5c77d75bf9077c502015b9de47a5f71531bebacef7ab5109e13beb17282b349d7a04a4fda0cf58d286d258c749043a991c25d5fe2b55fa2661ce5cdf190558233f99913ff259c9976933302368ae5af8270f83b7b552c07817a6eb38cbf11219a57987f04708461e3e979ee4856a2a1f9f5434ec78d9baa56ed8052ae09149aea873646a40a50581c7fe5fdf028aa5106e1ea79fd394f824c8f9a417ab2218d9136efe9c16738352b18d47c76f2e745ea129f1907e67760a525a190e3ec29087e4dd72ad2d2d106243f85d8d11dff5d9264d6b599939a301d471230a13c921777c7b1e2e1e3dc5161220afadc1538deacc1c55df997bd95ac7dbc9d7e27c02b30ddc9e4d472976552f8ad843c5f40faa7b02390c0d107bad8666b9328863851815e9cc1b2cb01ffec08defc4e0643eb539515541bf51897919db862d1c612f5ba61f187ee679d5493815ffe5627c806b8ca697f5f562f9a1e904d0d513ccacff4f1193af95165929bc34f31416f46193a8b9eaa5f1b07f26efaa47546292a153eb0e6e46029249bae00e6d8e653f0f921ec305c9f3ddc74133c6527bbcce24ed0995c233b31f0a63c800098793bd8c36b53f732a599bde97481f9a7b18c82050d34fd309958b010113a6084f3a1ff13d5d8e076808fe34047e001be3bb1b41734c94b637bb9b58e873e0c73e74a32915540cd311ab00bdcb8c91cf011075a92fb839a16cb6e39898cd2644b868355cba96788f6e4ab5aae8eb2ec2c58fa8de673502b6798c4a0493d372f7ebc9e8d8f2a50a0b26926bb2db3536153a3599d20c4cb1a17c86ffa8c4d0c2499164709e7585c9e5a30ec55004acf47d6ea0c1f991f1e3072c3e86db80a069738f38c8c5aa38f83c088e6b0cd35e081209c1de1355b801b3c30c99f06864cd5b12c1fe553d3dab73144336a289a4a5b3a7114deb075e0c3fdd8265c8bad8b351f52b0418843a3819ccfd62c93c7ef2f5f70872e17c72cba033c6262264fe8909912646802c8238a6e837268727b12b275ff8993ffabd516f8b1ccd337d4584d62c6d1d935441dbca9061c4a0a467aca6dc137b74eaa85c6eb85e3533032e4c95a65a9aa9bf9a9ccb7975ed30e23f9600693239068d138e508845e94e1b94591bf4ca3192f2eeacc7a0506cf68337a8af55d32583c0a6c23ca4fe7043e40cb617fbc78de9ea34ee68d1ae00acef9271a8f6c391e628c09de9c80028386f9dfb8d8b6d68ffbb0d8af328e9240137891baac185f915f4139fcc9686a8bf4a1e8ae74eaaf8c8632cceaeceb3550ef2044f65a633d435e277a69094ce6616c25eada011d45cbe7bae2b3756a98a5087a73958e991cf3ab20a7cd99da47103793bff78c0d7839f9177b6a4d1008bac97ebfa565186f2cce9cdbf541d98cea5c8e3044159b6b9db5c157852b9712cc88e5c970a95a5545cccff78b844134b1c12963c4ea50f67d1218f2a9a1b93f53af941111ddbd2c5889a5750c18846b4e84553a0b0e0d6817a9e97ff60369f16b7d62dad842ef96867ee7b1a3312390f50c4eaa6c36bede6189b6741da75b646e6ada9f451e2fd48353ff1cbaaeb3711491caee01e0ccc1b3dadca80516a4bb3195da959ad111ef35c1d704e6a38633709c38cc6a1e666ad693ee35ae18960915b7b22fae9f825cb642b1e1ae691ea20838b78bd18bcd017958e5b9d91367a9982df2bb3e772c005f133dab0aaef4679608a9e6e42f1e1c6f000ee257ef4636775dcc7fc40587e2601895ff6c232ff89d646e019bb983b33b278929813c7dcc96a74108e8ea927b16ecbedd76772f3324ac921204fe13e26b5db1714dff2a9b7c4d1b58bce41ea481bf6050403112721717f551272702b534a0d2dede40a77e005e7ce7c14c11415ba4432b1900db5fa7a52dba0d4092ad6041e86d2ca6f3db36db51e81386eb93f98dfb053e601377fdb253b807140cca5de8124279be643b99e105a76bd0fc3d0c907825772591eb4d80e1f0f8fa68b4aa7dff467e5ed7d992f8abf83d3e5be129496ecf4a3007ce946e69d584d6c0518c248368d5ea5d8d44d2714bd33f4dd57cccdcf9e77e65836c0745581f620bbdc80d59c83553677b4c512f1665cfbcfe4e731f20097cb3e1f58e7c4b8d2dfc7b4f3321b1f34036a00b6b08b38fba15e846dff6823f54d06b947dd1829f3fb6a4671b16be42af54047f8d6ae3a0ad9771de67c186d6a767b104cde49617a934407048a02260a3c40877fdac030029b6024d4d970ed4da95cd0397e5378cc439343bf29f4a520eb4a51a712f06e54f50dda717db98f1542df1b5a5417283ac547c6d5e65843b098954c4f50ef2d9ee7d314ba362da41493015b54a4ceb21f36907e22d5301948ea4484abececeb927ec6bd61e1663735e8c0fca7a82adc4e13ce06a7ed8b72b1e3e195c4bc32487f82ac6e82e5bc2ce47e261f4a26c4f531714b7375f1fae4115980f0841b73ea735c446dda43a351223d607d34d97c463550830319d3f424731c36cf238b7c8e039a06e683f3fda4372ee0ea97e0c1b0405ea6b019ab7c552059a0bcdd70f3447a5b2c5b7696140f753a9069de1661f70beecfe8a733af8017279105abcd98713dfa3d662c84b52fd7ac344a19435444df047353d10ce158ad4be5560f98ec6d06aecfecb09f55472356c0ac1edd19729ce96b51e00c66af2260228f2c63c79f6761856739747e0c4546d08d31f0cec59e1316c6917054b9ace529676b023bffbef73ba97cd024e1a0df20cbc18420b99a894d80b711d762ea8ae7e66944147e38557993cc4ddb5351bc14df482f704e0cf381cfa133282baaadd5155eb3539e6fd59e72211d677dda89741e557850da08fc17090ec13ea1eb66139ba16fed2cb88bf33e23fb28d4474228a26bf16563f98990e73386726d9b0c078ba9d08b07ff5aabfd9f594a4b20cf0378f3061dc12cfc253a70bfaeb83bcdc5bcecbbf093b53940b68e2b7fe3c3ae6e9a45642e439cfb1aa22536d91327a4a9ae04763ae9ab691f521cb85bf0796c4a75ac07681ccc50688b215bbdc160d87e7e4047630f8ff9388f0c81b9f224f5cefbd59e2b7a45dc105eb1124a67a5f0b86563cf781be1b800ed686c8ff85f9e55f63c9946b6e864d28d0d3a6889d9d53adc55971592675cd7fabc4fb6c52edad3e26433f01f2d44eb045f46c4bb82e0f52d9c191a499b834a6d492eb6b37a0ed9a2324f7489a7531216cb1341cf37c9985110d487456b060fc9c44db25006b299ce442d6743fab22ec5180f86f14ec89b49f45ed7eeff7ca50d534f10e996d27f7dbc84f4e7a0459ef9b2650cddfa7cd6f8321673e2e222f9723487e35973d0d809956031b696e8fa5044eedb87a2e3ef895ad6008fa24151e0d5ef2369e74096ab44e10588ba4bb7495145896842b081e453ff5508640d47dce9e98fe2cbfc573e547f94eeafe145a79f5b50f319825d7391de4e4d51aa08e92560fcc8dfcb36f26f968c6c66dff2b7271c017b2bd206f80347b3218fab3822eab87b5842b8b449d672441a75c7af253d3f78404b2743e155e5526bdd47b23cb8b90da856cff813b9170c30336f8d5b4e7f8b15752b51b01bbd397204bd272beaebaae5df6abdef7fb1ad2e59b12c5e762dd9f74d6c4330b42496c2808e15b4d4f6bc36f1a38f610ea4c5b614b24e3869d21e88c33c9460b006c60b3e65d387a3c0855fe9dcc2ed6d2da9f926b7a72fedbbe070c699785e61e7decaa6ab5779d46e78b9c97f931de5e426bdc395e63387f753e8cdf9239f3d70d8d06cb308031fca6c2a66a832b7fda017814632a5d345962b6af22a3d3433aa28dfd4e00b2675fd333818d4a99f20b291f5ea4b24d79f0935fe94c96124c8bcb33186ad9c1012a95515a5c499b8f4c1bf9f5046b54a57bd9c91968f18ac3b0f0dbb0107f04531678ef65171eb2966b8cfcb969a6dd0753a5596e4a3b953d2aa6445f8faa5ee3ed27a3dfeacaab3f90b960679dfb89ca6842a44204750e21e8709cc4bd52f7bfdbb9b1c75fd34bcd56d4ab7832c36734f5f615536886cf5477cd61312d9182e67f70f238a794118b7e02f44ffb7faf2c34c57904d9e0e1d11e7a88ba298a2da2c8463eba99f94a6a7545b66695ee6a850fc957fe9d37e089251cdd8c9ead8e6fe4ca3b45298f771ac378e69cab39f18678a0941574b9a436817ecbc9a987d3cdd451bbae84e5b6d30dba3a6c090952f0d2ce8fc5f26966db4fc0475ac64c53c1f4fdf45f4629b5e3316b9bf7e8f67db5b6b6a13f4c56e6185fbf6a0d77d53518bacdf9bbbe54e7646587f07ab558e3849ec64c545ebc2bcf2ecd00f57f56ee5852352c8ec1b64bc4f3345e0cb6ee1c7ff9800d4145ef61cc80a5921ff28f1604d121085fd47961a2533bcdeab595364c0d558e1792a72838775ebfa712b906f74c62f542af0f386642e1ef27732fe7c19b41efd0c9ea9e10e42713fff431fa21a80057b0b117ec4dd3d0a8da210fd043251f550005f4ebe07c239f94ac08a72ed6555571ea2a333c7c9d41b935dd1226c924f53b30c4830e3cae11774ab02071554fc3509cafa1971e116558eafde8ed1566126d9725b334bc38a8e7083f2fb9fb566ab3536b72e7fb4c0bc2da0c7ab5d078e8c567557ad0d1a4e2d67316619e432561e184ab8aa8fa9e9cb478f53a3531bbeba2ffb601d5b0a3441a7128c78361ce9a217d95b78b0902287e9b7914361403f0f3fd3f68d0685fafaa9c5c8e00a461609be5119413e2e47539938749ae0a05789a8074af70dfb0f225e883199a974d9f97402c573de9c2ea5539d19bca6e02d81552b9cdc926f84ba3f383ab355e589212794e41b6995f5b6b36d1c205baaaef7a354fb8cef18d705039211f56448a3dde427b634cedb7781f8919ec6fa9e635d2d41afe742e51003beb51488386155ea826eb861b2d9181f896cb9a3d0a89a62de80c4c422d145932c67d38357984cfd562f570a6d6a078e39f3c24e94b4fffd09b3d243efbc2c8b1e95789c9d948a460b5b90cef72a41acb9dde61b2026749ab3c2d0d6fc0c1d28e2ee233d5197a0b1bc182c507476848694aab4d1fa02b8cbd0d9eef83039ea0000000000000000000000000000000000000000050b151a212d3437", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 28, + "comment": "signature that takes 31 iteration(s)", + "msg": "3422000000000000000000000000000000000000000000000000000000000000", + "sig": "21c10410bb4deefd6420b99d8fe5cc93954b7b82ea88c09c768adcfc657793a76c973afe3561f329d4c608f860d413dd080f9043f38c5afa0c640810c5d54f889910dacd215470820530fe4bc8ca43d808e2f7120ddf2131bb33c104ed5a64217e31263d5b48cb3089e9b448a0ca47f77a7fbeb0b77f8e760527386cea8e35cc6c638bf5cd8fb4d27e12819885fd6c50fb33023084a9b2ec2908efe81079738e81adf8d99a07f4952cfc4787efc2b7bb3a1621ec4cba8adeac6bc0406392e94e643d265f9e6446df566121c1b50de95728e61e90d917d4c2e2c6ae72f8d8c3e381fecbc8bf112ef327e81ee75e12df64260e3877cea0bb88afd2b77201698aefee8291cefe352b35e6f79d1d8793154dd62547ba3680c7ecf02e41ec78282312e66645267078353f8f40b40a8eedf2ad9c6b20959ac7a75717737a4e8be5ea41c3a5595e505caba8f5141cd805292a5dac369b3aae856c14b642c8fdc9f34845d333a06e1d3d09be794675dc8a3b4637f39e7d22436369fed10b4a13df69b17951acfb8226adca5e87c852370cd9229a10984f418a71c1e45bbd1f9d6c49311eaf1e5b7dfc8a17898e7517031c3e7779b8c34ef0ee0b7c2478fbf5d0bee9bfc150e45e5232ee29ac454325d23286b36fcbd32a9099d183c8f81d7119e4c39b266f21ba266f4d61783658e542a724bba3e551e87978a5f56de02b336ffd919228461e6a410a0f6e323b2f480bc7002def2132fedd0acb619209f9373a9b6d7737667c5d9145adfa15c2fd7f551781ea9244c3d0e7c0a0c61858c09443a4b623478ff801bdd82c1538cd0145dea0cf7d0263ce1a2fad8933d3db828f8913a6a6ca455135b1e29609123459b8c59e7de31584c6a2f7d721e79419686b1b62d2e5bd05a873de0dac1749fa2ed16c720458dbe23c52c8ff5c20c95b1bad1b244fa92970a859d78a812eeba8135b9ade6f89b416be2122c78593057146a4bce9870e10acd80844a2fa869cfc0abcd529ea5a194d0f62a473110fa2838800cd9085c139ba3cb2b1f340fea6ab552188d27cf8f10957f9b684a65b4b659f918f7c09910382b9991189d7453bf79159f835d49525388866cf8e757ce5effd3283274858d437150887bbbfc5481b5100cc79d0d58d50f632a8e91c59297e58f79325ec5c1133354a9de61a30ea6d0352e64b123227854c99f18f013efa76dfe88b080d5c387201dbeb9a9988762865d0f2ce0e90291299e79bdb4276c7f1c8a6a35e6b205c86306c8e78291edf3004751a61d293ad2e23c86fa19338d0464792a45d9ba06ebf85b995b5615afa6f659d796f6cee66be495c451920d842e5a32ffa8d49c93dde676b7033392a948259810fe45f94c37469cd557fd0028707b53b963b1ec3bbad8f92d0e3464d5aaa457cc2665fdfe4825aea6979858bb816f23e7f6ed081ce9957359941fee2835a802032936f11c62eae5ea796aaf1fbd72ca28e2c7ceb2350461b7f484ecdda795b8ccb44500509c28a443ad8547f306e3bb2bd22a6a86fa4635d286e5eb0054e346f3e193d97d334b23b768adaa391ab041b04b924fcecf5f176eba319b60410b71ad7e999a5c5932fa7c86475156ad052822036ccf51e97ac4d920bdc7eb784f6ab8b387b9cbccb67dbd68344621c57d462d811151f48cfb42129a1eb5ed7e74612e61521cb115e2e0a97b1780ac63b3f23eee0cb1c98dba3fd3362b700abe46d6d68847a6353f5f5c6c6fce6fba25ee2ca87feff77db87fc7268f614cdd372fbefb5d864e3b9b951851cef434c88bea74d15cc78364270139cea37702877097890ebf8c99f2d2e9c233649e16d08770ff1efa2f48078de25bb0d4e1cf9cfb16b5c7d9d2e5283c5ebbeed58364e13825c3e9ea11ee34194bc279de75f7b89648f439fdf5fc9b1908234b912c6481a38b2e87c91775f26b828f65a0e8f4fac7fa6e0b68072e129a7afb1f467da51e5fecc2d5e14bb14316daa6d477367e878f1bd2ded1575f233d8d4579abf406fab700cd73dba7d3380f94f32e310ad953d3d76ef97e2eebe26fb0fcae1aaf69ec6aaa70210b69909d5d6752eb0cdb848b97e348f65acdb56ca5e305238655c1e2602f314097623fdd1f5009f66fef7ff7719e05b1a23cf53aaf356c221886c3ad9533a14c2ff9a9d648e058c4536f3fc794bf73441c023881c86f14af793dd9a843be3be12a43743380e8e8a0cf606a597faf76767cd28e272cd15951764b5027f23aa7682364388669537a19502d307c9ce38533759fdbbb84b37336cab43a32d65e2a8619b65ee88afc99a21d028a7d1fdd5156417b644ff4f0428dce4f22ce09e82220d8ebb756e0da00892c12e6f23add62034d816d22d86a8aa4489cb95be023244027fa934c8b58e93092c22e47ec72b238ac19db22fdae25569b38a4086f2c6377ce877fb1b484f3d1257cfb072eb79ff0a862ce4b6534817204f52b3c57bc8896e64eb95a121ff86224e143d4b666c3f06514404e7571597cc6d8732c30319e196043198422c33e9ad7aed67fcdaf8810d2aecbd463183f493b11deaa70eeed0cab03c2402a12cb228384c39443ed66055fdf78b742145e7e12942a8909e9a2db3ba619ccb004c27dd3285a39681ca396eed685a2476d6669591b6851130f5de75e4235971ee6050203b07e61eaf23f210682a3bedebd41b3b6387cb36c619a182bbedff5a4895009e826105d13a95289a25496fce74616f6bda522e4060d40bfe9b47da0d8b110f4338cf7dd2c728b5778eac75ac8b3e143716c8448ec9d96ed346182aa104b5e25bd920d7420bcec5074294da97bbf36d14bcb2d4716c8eeff5023081279dcb986ffd1b344783dd4408ff06198127eb6b0e66455da34bbb1e4887bb2ee2d2d36df94990478ef47cbacd41ebcdc9b44412c6776c34d524bac4ec4222791ffb1e3242bf25cacf55802584191bd4d5b10b1d0a94452c6d8dc4afbbc9715b1c08866a8b8c7933844adbb77e03b5ccae307bdbe104a0ccf627572fb6725cfc2ca386214c0f94b6f24f28cf7600f327afbec4827567653be19b18c3308b55cecf4f1c475c5114bb4b1f25455ca20fe1964ffe6e0f363bd9784685ddd6777086506d402e6f462168948d467f02eafc2ecbbbf17306c276b4169848cd5820b69dad964ac85ce7e86655b9030b287a11588015c0552cdf8cae7b20133c29d0c3f85cd5d31b4b17b5c13ddda6f8be0cad67e210806bcf2cfe3dc8de6f2dad4beeab87c01851a57c2b8c3584eae8c66a16252527b2c1dfe7147c02e67560e451b2924db04814c3b67a1df250a1be828957943e81ad7d15067a900d1540f23aa223da8611bbf814e501b76e332d9867ebdcf58ececfc8e9665bdc9444a754518bfc88b74c9daca3416ec0c3c7aaba8d17e2ca9097776f5822efb99fbac6967a93f3c7e9a66db28588fcf83299081101e823656e93a502712c50024cb8135fe54ad53fa33ccea2d88cca79a9f8dc1bc82bbf86d2999491b5fbb980dec9d381c3f3b5a5d0706114b2826772d4dc6736ae34a53e3f2a33d8d84c56c313318688d5f7769ff9ef72752e42506b962b6859217198b2c95b89962f7e75528825c9725cba956910ec2f99cd240927a74aac3d68c28f2fee1531965beaf2e7de50d9cd3ecaed5eee6ffe925054634712943c4ac5f6f626aa4e880eaa372f731722b4194323c41f1b4a27448fcd1ea5988271334477d933f204ecdca1e09444f3e9c234f221d1e547417a5fbab37d4ff65bc60ebd67019c242639bf1791ce97e1f165dfb3f6f6bd684ce37a2fecdc1843f03dc5317e6e950f9b8ff489349999a595a2bddf4699c8f25a83baf63e45baa625a5f6afdbcee53eea366b532c44a6f5bb4d3b4edd2fb24a4ae4ab22a32c78b9b2b6d4a01c5e01458ffe907d5dec2caace873af0972669ded4c7ae1945a245bcd103a034719a76d6aef96caac8974bd8e5f093a6cc57e9b82793c9fa8e6d562de0f103bf2dc61af4b37f377ab78850219d6cc3fd2fc5a7579021596b7b784ad91db9b1a797813236bdcf65539ba1e2f9bcd4a578ac06b13b7d058da8a93a8b7b037e7ffb981c5b403a49e419206cc76c664bb3bcd64c526f59c92882c1135f812e53086fe2999137d45ee7db4467f4f55b77acabbc6f98cc84eedc5f7e4cb4c391c908ae48e0daff962a6e6f83828edba2493d95a4e16d8f76c64b6a54f235cb2a05211fcbb0b6eb99fdc293dd0bb3879010b43b51210859243d4dd51b3b1440b5a900a620addf14296167d394d4ed33bf2d1ef3d242af15155065940f2c2251a1a9cfa8f4c7e89f53d95c5e31fbc89c9c371ada32322b31dc157445206f1a8f4e7b67d66b9dd3534b2d31ca551f610291221cfe606eafa008d07d7728051b17a1dfbc1c522e4e484c2b5d83dcd20fb0bd4e416a796da91d023860245a68b1bbf3f7fe93e5dbb22dd834a095db05960f2ac5b513f63b3afd22162caaa1f82cfd1b6240eabecae2854b3a8f124cea75600fef0b66b3022663bb141d451f65159157e146ba016a5dc86eb3054dc11880b344d30f08d8d9d30e4c873dafa0fc8e19c5642bc6c13dabc9f5ee87ecd5230e32df71022dd425dd72067b15a0e09bdb2f40cc9cd45e7f41389bcfb02575cace04848a110a9e0623f85df097185a7f321fa56c80057f60225c5ca30fccffce5f3b6582318769f26a60a07ff3d478e3707b6783bc4b7524265bdb82c223162121b852c50858134fce70f88bd17a1be83ccbbb1bd9e459490d5c5e7fb5897ea9c31467f2302b1ebd6b3569378c2c671507db4e954422e5db28b4e9541d0b1e8f48a312eac0ee7de73bc5e34e4b588a2aab38c7fa8befb1baae5b137648f36c89f96fb53f82e582dd5741784db293ef3ee8d4ee3d1ffa8d8eaac7ef6201c54772eb644f88f0b6772742a471d9860d375d211a7efb1c2c512dfffa5e042cb8093ab3ae7839079072f5490788ca6f6f3e95e2294a388efc3f721212f28e39c370aa828e5b963889aa718078f1d12a295ab762a48260c4ca7c2f2a8d4c9d3a85e619064dc0a5c0053f7d929513f54e4372b446ea45248ea20f71970daaf9f4cb36c7b4dce175bcc168abc0724252017ad079dceceb9f5fd568298b5ff7560422c7d28757ff2ad67d19581cb8935804783fff5e13ebd8fb40441c8090ba97541ea46ca44e9e74fa59b787a1585d4b1463457e9ffaab7278117876882a8d621c7b216d5b957d848bec013b9835d11ad49014637ff47e45aefc9ac4b29cb0e24de18a2b91ab0b8000dd914ffb015ec8f84bebc703f54395abf6e7f6b0e156f02b69ddc12f826627e72afa5c76b963c5bfa98889ba71e0e20cdc390124989548f4e01832beb897260e7f128ff98a83f64ebc99ee3aac35e8079a24f705752cb6638a8c04944c84d61b99a8ff959eb15e1f29d4aa7b53a386d3402b8e1074af95ebae157b895bb4caf4b8ac27d55f08f27fc08c7693a305f58daf6c755df7fd20673f3e08e468b5c9803a5f94c91e6cfe9099438ecfabb18ada07f643a79416cb50f58e37b77aa363b0c9ff9cf7c3b9171a18cc3460bfe24a8b1e1b6534c9c357f41d12b864ceedfcbfaa703530e2361ffaf049def514dd3366d1643de567933ba5d2b5d55644e586c639602f9fea74cebadbf277223d6f87c958b4c03046f369351db3e3f3fca09a9995423ac02406129a751ba54ae5d059215a982f0fd36109ad0551d90695bb7f8d82ae0ca2cfab851e9832190b3fd347506d9e6e8b9c27c7bd69a9248c457e72a7acae4d451b249ce0d29cd068cfa3febe73e13535eebb6b8220ebf6bd166a2bcf5debeda5981cf1e26ada0566f7732f5f16afe90dd4b4857f5068b12fbaada4cb50352fda09c7ae3d17230cbf3f83ce210934c656c54cd0fdd0572c1ebec7ae8936d53d7c4b10b041cc61adeff11dc76f341b3f3582c8613f0ddbdb9a193e8611ea55bfe8df45d0401e2e0d6150dbe83c7a5473f3c40482c1e9cad365e45e83919ba887c1b9441a51d13b09479f133b73710e99c18990fffc9872c13e2b55b2f44b2d1ac40bf17bbd3f7cc05c5c5004673d68308e2984b7a63ef9093938f1e215406916bd6a1bda452ee16fe1ac42c2ab9cf5c80be75daf684b67ab40faaeef51f9af5b24f1ae5b749bbe80b59c9830d0ee9a3fbcc4941b9da6246fb4cfde1d9a157d8fdc2c9753af6cfd751be02aa67ee752d12e87204cd473c9cc61ba22be5aaf54473a890e5ccf843a111df0feee8cfe1766d57e2fbd4a7675f376fdbb3ae62277d3f51aecc69feeb633eea65c4a20ce8c3769901bdb9b29cf4cc2bce2b9a04aa246c504c28612f620000f5294cd36d91d34219dea83f7a9637352e5d88d83fa62b02eb1cf7c60b4600a69cd8ad2010765540a0053ff4e0dac1d2499ea82b86465da95357c83ae29373f53595ea9115895a1a3c52d818fa1ce0d408ea1bbd708243dc7f808183b899acb1f3469738a9dc2d7e700000000000000000000000000000000000000000000000000000000030a10151b20262f", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 29, + "comment": "signature that takes 39 iteration(s)", + "msg": "4018000000000000000000000000000000000000000000000000000000000000", + "sig": "c3f428b712f27682a2cb4505e9559867839439408104abe2aba1ab3f161e0c6b1faaa929d3c7e55093be063271248c7b9b08d40900badeedae6d922470273057e04c3f04b149146a6c81eb84252705b1b3a910bd83794b9992d60501f00e08b15ec86002b8a985fffbbaf2292b18fdee3a2f22704014f14dad62998f95b0d79035045dbeddfd68baa308d1006a0b09df59ac8afdfaff5be8dd9e70730a0231fc7e3670501efc528a5c19408435aca6f0e03f7627f8e89d5f7281195d47f4b19aee377daf9f92f36a0282f67983421777c4f317d5db55de0754223f8ca86a1e2318425711c2f9475e341d971d408980645d07061b7263758ab75cded6166bdaadeb461e64880eb5609b26a0e68bd335b72980f16f5a236aa0cd84ed85fcf14707ac6364881994c4cba867799c1200f1d877a4e642306d5762931d52d9e122d763540e810be27bbca2c966cf04167d1b5da1adede0a55efa95f238c7e05dfab433f838c7503e03307214641da331beb401bdf26f029576c17bf6d132f7cd6bd0c33246a14b477ccc5c1c426a8b6d4396e998a1d9d3b424e721807c06b42d8c7a450bd82259e1df879dc7e21ffe4978bfaf3fee7275f86eb6a68ad9564bcc6ac81154a83c4fd504499195d10caa9a9ebc175b77defca4ec476dc7661cc383509dd2d87ca89292edcbf7c41031765c791bae5d03b93803960973df6b5d03a2a8ee7023f66396c06651563308aacc8fd4400e690509393ebe589f64ebffe7fe505826854cb55a6650bb109e386403df007e4b1ce8565b507e0f2cd2843acaec55ca9f191380c5d9d856cde12edf5cdf41ccffa154b7246b9eb9c6ea2863046d2cc7a6c1cb808bbcc4a65975c4041a547050ac6aab064610451bc4fb6c9a0b1bd44504e0edfea570959d2b79dd7900315f870c36c60c5e5d2bba80debcb2473dbf6c6d0fc68e8b32c0a3b100407f24d4aaba3c6ef738d842726910cda73f0fbf019091f4e8ec6f5103329b9ca7b3bdcd96821d6185e8dc6fd26c7875c5c0ff2285019f7483274c9a9eb15180a7b6e862ac912c7246f415b0a0e2bca0065a029b8950fcc93495cc9c86afc672e6132b6c238f8bd6f83a0d2288b8920ae3e3af4868d8ca2d3006bc0c0b2630d623572628bdbec3afd3e6789ac9905c5e1895c6d112c882613f1de1b6b8f217f1a5a064e159c267de2085a5655547aa3c220f0f88d1c6f85fafa4f4d77fa0fc0f551af384fca6cfa33954aa025e7388f898d3c33bed8a54b39d0b543921922e60e49c96c14f185b724f1bb1371c60fb09cf33c9cd02876f2f89c7e0f3a6151d5d47af929fb01af284def5b49fd21bd91d6b45f4b044073f2b325aed80767dfd2354940e0843c556bd719367a324b7ccce5ad61bc76023a2995f32574ae688cd72223c894bf239ea53ff6293b9dacf433da3774e0a967af5a00e9d8c1a37c569dca20baa164bdbc08b82d47406e02d942e2d860ac846e5ec67340e32014ca41e6b973ad9136c3cac1b65b2f27241d1fbf953d2c3bb20339ea77c257e30f74f52c16f2cffb6bc11af17436f51b5c3bb2f91fb7159c939fc12f0ff1878ffdb9d5d94a646f4eb84857b05a6f38e6dae9a3537c5a25f1c06ee13d41df3a0ffd9e49519e51c4e121a3676f858caf52ef346a130e6fe0a042044e58429352e0830032ba3ef54daec48b8a250cffca906468db9cbe55922775624b0f5bc30b83d81ed0735b2b5545a6947a18454b408ed5aa045b7caa04f602958dbb17d233812df52848d9954e12fddb62c138614276fce62babde47ab3fbe9871e1ce70cd4898d61f0701a8b526e1df8942db3f41b2b14e1a61914d0af7698c85d08be3c602f3d4045638a565f5fde49672245c4f4c4eb59cab0a473650de82ed1c227c762826dab12d71d44e8d875b3ee8efad2c9893b1a4d3c7d1ee0a1a82009e57847a74a4d683988d283eb64bbb4b26943047e63450d820f5b3b81c67618af3d3ddbf9833abf0465061cda97f2dc8e7e3c4847f706c359a60e909c1728050ced610696863572c27bc1894d597f19fd7904fc839ec8e358b6c50df574a35ca84339deb590b20de25a2588cd0db3c85b70910336a08ae8612da84343f2c7e73bcfb5ef39d774300adbc57047044503713178c611f474694386b23e6654c348d9dfd385ca07969d2e7f0a142734e781c151345ece5a4d4d775c58e017ce44150d8859f7f173f8cda33eda4b7242916228f7f2cfa37f5321ae4971084d4add5b9baebe1cde16de0f897e0a7d5412550a8eb702f3778d434ba77f6de3b38b24dd772f1041d64187eb1e9ade693d5da24f05f97d10a4699569cec8f794c0c82bb2634662f965a230ffd9dd28f0c880e48e72ce98db5a66a9689665b473cd84f33f75dd80be4b5bdb3d3133ff6bb0cc7e901ccdd96cc877eefe4eb804015f66f2b028428794bf8b5c33c4d3a4beecdab56e9b4f59922481cfc2d34d7a2a65e053d10ecd297dc10a4b9db84e69765b6adb7b210a520acaebb2a0d4154f2993d71b4c937b1db17622afae463fe9e73e5ad3f2960f94233e5bb59a07c0aa366962fa53c557a94a834df889b88861ad1187bf7e652a124b15ff3b326f049aadadf74a56572bcb811b5e0a833103bfe5f413c43cd374aa8bafe2d0955616a556d96498c884c7019821a7ba9e75e8be662591232e8ac5394cd1da20447cafe234b7ee8fdc96f24c78a26abd5e4bd22a9bb71d28bfdca92e73cc5173a33696b76ccca429ce0b404eeaba14d79848da3b5f9c5dd97be39a2679fc5964523799b1c97fe13df18a209698090fb509b7e65a907b1c7e2f3079d323dd068af60c8a6f2f1d9b49dbd8f6b6cb7bb3fcd5b7a8c948f3f2051dcdd7cf94c71c2dcf7085a440ef1b51d6e256ac39620ddb9bd130e36e33f0f21be99d874a7300b8ac2ecb17f94089947bcfba70a559da132c105895321e3b1188764c3b8d40b8492c80bc9487eb21376b24a3aa3c9938d8acc9ab592be1f7a4f5cb08eba90952261ac87e02f7b2f072280a2f0989e802a3bec12a992b306fb6d6c7c81c24ef6640aae7334dec7d556f37d5d907b14971fc3c85634825b229812617fed92b789962aecfbf33561b2713163203c4b3894615ce4dcfe931ba0dfda5941a696750093ab7377f01d70483eee6312952b16155ca58a949b0b87a778f4480bdfa580671e7cac50a9d220632b28fb351d10bf343debaa97e07ca33af7bbc8c12b972021f089fec8cd51ef37ad552d9251d4ce0fbc02752b19985592c5c0c3b2dc47799cfafa542498806f773f49eaf338bc63ff2a3c3386c2d4ef013ecdd75d92095f3941360f52c0296f61e29cd3613816bbd152614c5084fe58abe653521c9a387b673029c0d84388ce4d633fcb2806326cab1ee453369b83c63cf65fd9790349e5a830db3054d2f068c30c3b415e85cad3cf35e4eca4962c87379e3bf9c6aec95974690095cb1183bc221bde5fd3ab3ac358b37b9393d95524f6b24989d154d750d073c28be7fff722851d616d83c35ef344cf11430045e5cba72d27ad4297872e4f282ceac6f18a82c03806e21d50b3c47a8f8d790ec2fcb69d329e266f1cd24986ed636b0ef6e3cb777acfee701425da8618e56857ed7cb694d6dd23a375e51d607a1d2b1acfd8911eea7c73f03fe0249ef857a37cc1e709fa727427d2a88b2735687d40dd2b7c00ce697975e67a6a91e35c288bdb01e6e7d9d8f23049fd91548860de0a873efe39aa173f985d3ee7b379c82881dc92022849e4dca2fa76712578ef3f4782c4915de121f702b52124b6ad04a27ec8a278b793c7bed65045cda934f731b18b586e4c1d957119acdfb3ef559dc19d2a022136b61a33b972ec17c46a96c29c999b810643006a47e87af13ea50d88f579da8d11293c232aea35d6bac399c3b337dc433fc8f430ce88be99e403c62c18ced432acc073c4fa8115e3cca8cd57507206947c42fdfb4c7df22601cc6908e9fba29e75e187d1afb0931ec90d252525305d0dcb974e3faa7bb3903bfb6d100fa484d13265e8563e121d1e8c36602399241e192657f2a0933bf4fced70b35b9d1213859b328d73cc6b8552fd8bfaeec947c069da5b3883ee91615d8380fee0c587c346f615a32a16c86ec06ee0b47d0b7897c784e49f11ba21a0e97a5b31e8e30544251d35f6f4afb9adbd5b568985d7f7417aeae405a17bf7929a76a77417744614862392f68bea861042bc5db99ffbe8db18772e1b6e2e44c8397167154ac54713a36fa8bd1f2472d0a0fac92fc062db91896755bab32f778b4c6587f626146b06dcee3ac3bfc30febe8a39c2d33c011121d3f589743d4e01beb3eaf8a9e9fbece013107eca1a5d3d0c94a1b76d9dac968f4547e8a6fa03a15d3477357cafe8e526648032d7d5098e1e50fd44ef91fef761f5603a2fd7ceaac3fbae340c66c2625aa122cc1b5c2e1717cdde5c99e1d749bc838f1f0c01ff01a86b2984cf9fd7b7f3222e452bf6aa654965f2a7f11ac8baec4829e9bddc008b48049617728420805bdad9b1ef6110e3b6edd93015bf05df4d2b08c483f59c338e37fe7744c310d6d58ed56762459ecead9a7de17bcdd4f74d3706cd9fd97fbafbfaa489a937f6266a9330388e862e9fa2a7fc536350bcc84d73f1488581dfad2172a68304438812f5c2345a825358bf9e90dba7df8d1fb31510ab9f4e9af66b5f10f68eb382d68c0c61aa286888d24f82c5d50efa690c96cc2c30e0449f96c001c63224a182679bf83959b2a14bf3b2d347f7c57153c5df7959ebcdea50c516e76d8dc335f71fb1db1d03904b87a77fef395b6f7da67b537d26e65bf5ed1194a9dc0d9ada8d50a0718e991a55079437fe6839d3bd42276bd4aa1dbc9e9fe4fe56bcca1fd7f6581cf1c9a39dc780ce0f41020661a3a21601fb8e1b0f95148a06c4ea6ee9435439f516c28ad660f46ba54d0279fa810b8ab84fbdae0868c2a7004b6c25c59d2adc81fbf7ea2d42d4f7a87cddd3b52178d94ed496a98641b07cf944aa7af47ff836fd04b95840dea4212700802131d31818243426d65871e6d349784275bf55e38a2078366ece241185b07aec9caa8841ea14144c0756dee2aa3b4d421a85c93bb03c1443a8411a93a7320895503e3325663364f1062f629100352eaed9452495eebb57dd52ec98c0e1c5cc09f3029e915c2006b4e40cfb0be3b6fb7eb1b914e41d7d800e25151ec82745cf8b816b6ea9f72956a4eb0263d9b5d45ab6db4a69b4a2aa23457c72300d8aaefe683a51636b1c748d328edbc1600c72b17317a75c0b7449540d939b3c1ba0f3aaf3775335ee4c550d6adb3c8a49516e9822e80b6bf0f78b12c966a40fc9312f124d9948a9cfcff17b3a2a93848d704ec9423ed3db9dddbeebeb30368caf97332ae2eb5e14f4a598cbd77b6fa7b743dd6d17a117d9ffb24c001fd5b4f50adb1310c932656bc21ccb3969473e75c74afd188196856c70844c6cbd117687202afc38eb568dc68d7e6ea789fc21ecb23e25eeef282ebf301051bb58383c3744750178f1268309e2f9bf2f61dd1727bf6ee324f7fd32533700b9ed625f97a9e8716836156919f9e629419d9c4ef776c5e4f32d20fac11cfa8fc0a5bbdb2827c1520ea806be9430a102c1636a9f26d189525d01c07fdd6d6d6bac76e11ea8a9c0924e08e1d526568e09bcff3d1fd7a99f617ab378d48986267a6813c82f5e2ddce291ae12ad277ab24abb2b2e087a0abf545bc7c285ed8d5f7fa58fdd2105689dfa375dc542ccd7e234451afaf1895efed054bd2b55b5208990c9feaf74eafc07b967f492b948a1679fd3c90ac5576779e63115cd159131bf4f31849dc538ccd7133dd2055439a2114794f77942010b486a8d11e66eccf2049ad2d356a04ea84694cddacdea78452c60771b2342381effd2123dda827785e724359c0da6eddf586964e9eae8f33abade2ed52172e80922891ef94cd84f456d9db46fc17ca439c65c127ef00a6b4558755967bcc2b095487cc4b840d50208efe66f59fbb60f365d2ad13e0d5fac1b0cdfad26b461356068cb80a73977f8be4f11380aa6a7120939ffdf23c664ecb82ac1c2cdbc75e02de04213dd4a5222765eee88a2e89c8d4db2c95ba93b006a0d981cfaa2caa5512673a290b6c96303968b5b8a8a0a09c71c3fa93687fccb3cbe1517175e8d956e1f80a6ea4239fe36ecd510831e727a3cfdc7290ce5116cdae679a2bd83ebdc0e51304a7ff5af8759eb60418e42b5cfdf2e57954418875c559dfab181130d6b654a1391b2e3358aa7cc51a48722a1346cbef97dce4bf5487b575a9426af234759aa90887a17d78b8492fd2121e447ca755683269561c8055ccd276e7bb970983869851f84c4d4077bc3f1cb5680e2bb9e067efa1ad7f03414400188b36bb8ff9fe7e609284c6b85af23445462a5b6203263657990d00228434b8892a8ee383a9211627c81426db2bfc1d2fdfe1a558fa0b0c300000000000000000000000000000000000000000000000000000000050b121a1d21292f", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 30, + "comment": "sample_in_ball requires 1 SHAKE blocks", + "msg": "0100000000000000000000000000000000000000000000000000000000000000", + "sig": "6cc73c863de62231718954780a08787cd0d3f874b0986a5ea5de3a9795107dcdf38bb8a5c46c01b584dd4736ae55250bc609bcb1db6db819ee714a74e5405d8cddf51c016cc1403936937c5d6a34a8b2613b450e285cc28c0bc7a9fc6db1cc109aa6187de298c9847fdfd7df400d87562c38a081e33d5a5966971c6a6a9a0e17edbf34b605d0d54097993953028851c7d6e792e6a9674185b9e97c9a0db89fddbf0d64c7926775b915525b39adcc867ca57f0e8eb13f231729cc466c03ec5e39c37470cb51efe47c20adc47c0669ec27cf63cc2628eb98fd578ac5341022d181c7dba84adec992277b57bacfe427449d48e43dda5b6f65d06757008602f72bb32bf8a9bbf9547326e67e77bcfea408f73c577f412723f3b7f384fa1c8b12bd0b8ff0bb48c02bfecddd8c05b985e67da63501d2b76ab07af7407c05099b2f4237e17d0713bf0844da76e556749ff99d2a46e002d0c3d95f50d655667b2536dace5ad4bbfac84255df8dd1a0ac011269dfc437c5979f6c35baee1404bfe9cced6a3706ea82b64e2dad0761db85c2c6879131a9aec09cefa4f0f46a630710908a4564ae62ebf40272633d4f86f869153b7bf91785e8c2f11e5d855814927a0223b2b36e00a3f97f3f895e2b8f6eec022e133b4c6a54964aa8b35633462681e53147e70df5cdd8483a9d80783a742bdd79c2273c144b82516ac2048d1f2054fbb9a33ec039810e658d290e22ac0da33b5aa3636df826341dd5970557b17338eac7089c1d8ecab3bea5560da6875a7874aef7b78511fa4cf54eeda94960ebcec2f59f51798f5eb3fc16019d18cce3f41ee3fa068129304315a5e58ee0c59cb16d3a1ffb572e5e4bc85e4f049703aa2c5a8264977cdfbe52602f05acd803422836bffca8674d158cfcd0196a498fab074446334996b75679c6d3563fc3cb5ca2686a1ff07d8a61e23feeffa580c612667251f29698fd276f3fd865afa9a72d9f29a948b42342078f38ef421dac5f331cabef9fb9cd4eee4354b53184eed83ffc6ff5cde874e349bff798e6f5a3fdc3fcecc159c3812c1c98f3c76c5e26737b15c1d1ada28f391ccecfb6367bca0ccc2bf76f155746a439fc6377df03161fcdb80d5939907ccf41e524a83af791c5683f7b0823d05738417b597fee6b0e02beb1a5a4b9b5086da4e2fb75cdc5c76ca9665a8ed56fb7345707cf2d10a10287ec269a0645ea4d772aa3a01655f7b6f8334da14f865d4b673786da894f23fca8790f4574799a30e1f4f66821bbeec8c3913495ec0346c0f53fad068fe6bc9027ab4cfbd6211f2603a9eff25f977a3b4fe7e0e46401416cfb2d776718b587bf37c7604fd7d0446488d3847978c33ed94e9dd8571577c9e14226b90cfb1955ed6c6047c7ea02819e8d733800dd4297fb69f8a69d43f03e06d0e5cfcf0a71f65963c04ab2dfba6fc1905ccbb8e33203ddf61218aabbc9e9538df311505cf7cc7dc570a44a96952eac73c3b02019836a11f254eb55c63c8eda9eff87975099d8515f241641a6b13456dd3cfbc4e7c4e3717ad911e3b6cca87c613c373b3c16b67ca2110f1dd86e422fd05f0409ce553e269ecd0c7f528d270d0782c6105ed83dadb2966e7fe5ee77dc38606ab3011ebe4a5b606b2595ef967feca05c26d30ef8bac68c09aaa5e3f87752b83cb78d330ec16a5ebb1138ecde16c76bcffd894211f8fd6b7aa09efbd1bf4a8324367244d06fd017c90b793da27bfc19727a195eb7312fb9b3ac19c66f8785f448a7ab1c18d814ae988c2dc63a3dc6d5fc1fb3ecc9ab5d10363800a766c733c7a6c2edc7b0c86a817a0892b657920f78176691188bc9e82cc4e6629fc5cab248303608ce0fe69724a17eac2222b3bced0aac4c2059a923ba98717921499685a76c53cd5a960d55bce9a6f164b616d06551c65c27576602e5b1d6215a8feeff02d4427bd860630e6aa5b36e6dd53cda37776e1700a63a3222528246fd7f23a1e95ed2e3887ba71064f3e7f7f07a8c3a045c1f13aa2091ed378f855587f5d9f0b449f1ad5b5059d28ed3be95a2a8c466b2a3cc26a8ec716f805d149d13f56462c29585b3b9db663c795cb0d1866865eb9794bd80501e2a1e0cfe8b314bfb9f961c4da31dc6e25831620dd720043c4efe4e19b6261c479b029323c630f1c8345dae9235126f6e1c7e98143b976dbb2a6a09b8a4e01d082d6f1b05a18f818b8777940ad413be6064d6287bd93a7633cc64675c7adce7aed302eba9dff92e04f8d6d224a2896a2dfd27f79dd83dcb4ea136d16d50e7254f2ec0ec55f54edad4b41d78d8d8e07051f63afb6ec37c5cab932baa9df09eeba24b1d3ad9a923e163ddacfef990df40ecac3c55d771cc8f1bf1bb98452d14c93652b25541105f4d20271b250ad2a2a2ebbbdfaa7411a895825ed901412e195dce9d7068e25d34d83e24252ab18b186bee8714ea9ce17501c9543460c2c201b5bd01361736fdbc5bb92938cb2a72c60de2e5360c5a2abec236a1c92a05de478997a247cedf0c9d92d56f4eefce7610b0756119928733ed878230487e6c01b34662bfdb550641d2fb2d41751c66c9eead25caf3e7cbc4dbf0b2bb2a1f9a407fdc9e37bb2268aed94c9163109a8014485e74dec6159f87030f656a6a7266fc30f61cc39a600fed90a4fb8f1837ff9d3d4625e335d87a01a46929c6ef243aa86d1317759200a19f4ac2c24099ce615404fa0b816564313b41a3d2b79a812202afb78ba17ae65a8eaba5139440a4d31b73e9ae16514c082f6907a7ec07da44192cc6325d8dedaa3f0f28bfc92a7653ef5738b9bba85ab593a65e17af07913d321be4057594e16043ca609e308efca3c276840b49fcaf34fa7c38c43fa898800081f2d6a1746db7a950b5cac48d27a420ac20624387dc78194bc29299767e1211f0c7b137abb6c3321b69b546e2782f6c2c29bb2ac652aacac2ce664d95d7610156dd4bbe8685d0e0af25176baa5d8b04b32de81ba8341b4f2afcfa13ff7c6a61c3da03fd2cfe38a0302dbf1882b0e8dc10851aed0205f5ba1d6ffb584f450b110ce1b89ec3f909d0ff3f93932b524ad0f098d7b2ab7037bfdd4ebba64c34f5cf9c5ed1412f4ca280c73fd220580089fc91bac1c1defb0afcbd9dd6e629a1c4f57b4261133cb05830029429f4b4f381a3fc67e67b57f6086e1f49dc13c52d87f28e27eab312ab9e83858dd459de672de08ba5a7cf1b3d073512f910339e56d9e3731e6bba4b24d9592e856c7e68fb0fffb73950e7860deb0eb32299076380825edf4cc0fdf7cfc81dbb5aef9a2905a2e07fba19741846a4ba3f81e2516e8d511b895b5d6d2e3900062bb0968e096eb0f104dc03826ffe59c54bcb3980b30680f643bd78b671e2f8220f09cf8b0016c98ca44f4f75f493bfce3a078052931a7318aa36513903d226161d74c7c29ad9729fadb33caa4109f2c5c976af1d7e779255042d383044981e2071ca6dbde7a327445e7a0091c04de78d22863ad849552af5bbd164c64315bc592bd498ae7261a0149511d030b2eb8d562479d0402085e60e10be98373ab74359e5b0d0eafe2768b3342210f9a0cd05339d08ee63fc380d143f05e87774e073d8442a548e3b7ee568fd80f09094447efc4d5ccef0143fdf5bfcb7346bd7a2798d312cc8ae98922e0f0f7756ca44647dbc62f93188c60196ab73724337e7c64ddc9f71ba8a81c1c15d11422e5b58f68f817726e2838cf365207789d6864c4566c3ee723e4c5b339f3af37176cfe9197359c489c3cce9c913e810d96af017484ac24d744e688a80461eb921d4f8e527c9c4f9fcaebe8747132b6bd9ea86c783f64b53e876834c4f08bfd3aeeef689fb86f94ad8a44ede78d3f0b1219a6b5afd56d1bb61610bb7bd925232a287ab5e67ac277097d955cd1b9fb53050a3e3252af91c9169e4027a7d1c289940b860f5fe90d6e1f809c6e142cef0c78c07235cb2e5e9a5c3bbac836c0a714c0bcba74104119ccdd0b42699ab19e37cc8822574554acf9c2c70712194626221ea08d489922655d7996ee9b2fcfda76939e77b390f5680958dc3fb41825c4850550ca350255aea6f27e720867ffcf38998d02c2b4ebff3a7bbec330ca2b2cb83db2880f0e130b7a573b71b76d87d191c436ade5aca2aa91518f86182d7b7695815d813ca0836f028c6393a6becda2710f94c91c9cf4bfcaabaeca174b6f84cdedb9482398efe900b4cb03ad85b1e86c2d548f706ce6ce7abbe994979a400d28cabf7fca42f3973d3a0e40abd365f3d82ff0524444cfc7bb0957f8ae1f2af5fc0dac136946e1e70a71b13234c5163658bcd76b9a7986edf3a525335eb750c7e9f888a35ce81528a89a982c85685648f43802222096b3ad88f4c64f9323bb10835f64d856fec57398af894e29cf2c1402c9188f7876e455bdf7254efe7e28a47e72ea7c557fb6dc77329c5c5e47ad783d0cffbe60c66e5a20a562364ebab88c0f698c1caec92fd4b39f8814f4a05e952b978c89c3b63daac3d63dcc6f273677f7770798913452d1f2026caa444baa224d3b4b6fa71d3a1311a26433a7d7084b915e918da3b202878233d707770ee6e0337db6bb8e3118d1ed6a20849764275e0207c30aad6e9dfbc629543cda5a611de0fcea2bec753446ea2375d6d3a592d7f8eeb817ac218df8dfe5d87164ad914b92c596eb3ba5bf707d0c8f9cdad958f224a01608fb2c3c4445385890ef33c6cb9eef2e2e3d2fe16a03137e5e42f47301ecd5208608e13569becc719609c823ab4a52fe47d4c61cac464ef24718fb0a4475d80e3ae2605bb96cfc8311e62d85a48f267ed88af3f9455d87b8712ef1c79f3b4093db7ea8fe4c63f038065ac5e5b84ab672bcbadd82331e3c8e4fd7bdab926c7bccac1f306f7a5d95e75674b64e7ab203bf79e04f48627960f7179a29c70325eb58d1a9080a40d3642b712d8d1f216f0653eecb6abf8a2f40e07a03bacc772a2c537d267dde8bbe481b7fa80132ce0fac96c1aaf6df3d427b592ae99358337b019bbba999ebe16947e61e27327d18ca78f78287ae57efbfd1f19bedc86f39e264106e70169e8eeda2a93f713857a588098dd4d8dd7159261556bc72c811a191d4cba0831468a862701593c56105c2d0306620f37e5e2a255555ae374b5c95c1a4dd1a3bfd0e7ff501a08505c0cbd8de2d26a53d9e90fcb24f926c052fcaf65917d74b13d7798c90997b55a41e60ee5375deba064ec3434d83e8cee5875a96d87c1754986baac33126f419a0c7084e64c0d69bd411a6a609ef629684b6677f916889edd267b28146bd2254c5fbd1d9d5de379be832c49270464de9b8be95dd883aa1e7f9e227fc18b77886c2445accfba514c2a870d9160d4b5613b02dca799266494cfa4abf6014b97c19755dbbdb89a148f70f9e09a65a295f0322da6332b75c8fff7a4c51f22b192df20389875e54278701689616f953b865532c697def1fc5114c9af57fc43b0be42f46c7249a8a860fceaeb0c82426da42e6fef52473f50c1917247b2c648bdd9f1558db0e61853de09b394234d423e17db6d8367a570ab62bcdb82f36cebc749e01dcee7a0cf4d2a27d7f1fcb68285699f8830cc494f82fcf3e973fd21ffff1e58633badedac5d2ed43f9b26cd61fb7537436b1cf8fcb894175b43c819abbe46b09a43542fd5440c77591ec498c43ab38b88ad2e5b1ff6470400d5eafe0154269ad4ffeb8cfccea92ef6e49b44760d6f7839927395246ba6f7d15aec0a4ed6a5908ec7f6f310abf06195b0fe78918d930d1945750bb0ac73dcd4f5c1b2dffdee3d4e03f4df7da42c211be9b46fc6f31a6ee8370c87babf32e9f66423fa7646ae6d87ea53204558bb61a3ffe91a5d7b6c6bc2c56838ba7c2d43cd93e5fbc9b0e454bf9b25c533b107110758b50d8c70a54453acb3eb5173e4332b8dd23b117b2fb5ac0abecb3b1cbaafaddddd2f06d349bcd773e676bfd0c2daeb21c04ef3d2a978314895a401dbb7169ba8e9c8c960f2cc67f2104468c7cc69206ababcc516c8a96b008640c04ef162863f01da3e1a0a0d912cd87171fbaec3f52c9fcb2fb7b306aea1b7c647e88c7fe72864dd3aa4797f5f9410e62c5270a9b624fea1efc5b00173d761407b0f71d20dd20af75e452803f9223642bfe6ea1a3d4488255ae2df3578cb6bf48fa5cd9ea1bcfb7bd16ece11f297782f59ef1db5c8299f1857a1070dd0e971658eddcfba0ed6642ba4b8a67683595b30cd934eaa367f271bd8231b2cdf8c6f348179cfe83609ccf32426d021f1cfe4ad1cd17d7310a01b253b2288b4af00d1d0d73db1d8b7f90988c0e09f9a6949b96d432e9e4998b6cf9d46df6d1673e13f3f6c899b6372cc724587afc61e5d44d7a2fc64dc239efb48501c03eb31f3d53ee79cc433fa447880c74194d420a5b5040f23265bcaeb0c1c303e5d929496d4f1fd164548548cbcc11b34474d4f64658386a3cee1eaf72a32334e576b6f8690d7e22243485f87a9b4de012338479dc2c3ccef0000000000030a151c2a353d46", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 31, + "comment": "sample_in_ball requires 93 SHAKE bytes", + "msg": "e720000000000000000000000000000000000000000000000000000000000000", + "sig": "c0f71eb7979d049b9c20e1213f1fbbc1074b376a2f98a535b99f9e0abb03c9071e2d4ba3dc658543df275f2606fba8cb68f748939c51913426378cc1003a292693680abe4b8de6c1c13d306d29a7bdd9d1222910ac1ee164ce7817800d244b00eb70257bbda15e140d7d1477cd4b5578455cf234524441ea4280c4828f97461fede02def3a07a74db054c6aebe168d42512816a4619e050a9bb54d187ff697a0af8510ee411f479f1e267ca1543caeefd525e2b75e30d5f7a96b2c6e648f69af91c8b88d7bb76523a0c847b38b20a18f76a180708c1c8be711c150b1a5dfc22a7329df9c38a7db25c99e5961e7b05490c1f492e8d984b6ab9d6113d6e21047833951d92b34e13a81b8ab2b0951aa4015d2f6e83b2aa1c49452fed7404aef42fb54d0ea6f0481e670d309a6520da64e5cc66203c5994ae9d6e1fac5ebfb09deab8631188aa6a3e5e9e0a9893ef03385fd4aab12fbf49d6bb2337b32ccd55728806ce764210b3c0a168bb3b42eb420a04e06c946bccb1b37bc12a3a0d0f1ae4c84225dd7020c085acb676b20372dfa73d6328b3a92013ab0f3d95dc8e617104981cccf7a588cb0ab0f90a330aff6e1a5411bcda67469bdf7b2128161250348a7c0c4c2fcc0fdf8c5194216d5e78e446234c419be0d3a13ea8cbad99125ed3ec28e197a8de56028d0edd1f877ccdb0819bd15609658f4b2f590464c413e30032a09431b1a7a6b6fe1436cc3d409183de697c59400943a60b4b9e5f88d2af703150378cec00788309baea0d89e639a005499beaac44b3db4d277daeff3e2dcd85075af54fca5a07fc4b9551e45b0ef68d33b6c70f9716550d276eb5989bf1ee7038fccc7940756eb83631c8811110544d50783035aa2c534d25e677e022d6cf61bce2de5465d06fc5b6139b165e94103ea5cb307772ad2ec966e7c67e7c7efc98d7213f8ad436eccfbad33e0aca8840561fc521e21fde98cb23d492247de67be90e301d8d0433dc66845fd6aea72811137987fbba9070f39a0f9529197f68af94d99fff1100f7987f34bd46dbccd3309b4f5a6cbce24311c046c9106e6e0a73b277861b13daceee43d81c236b3d982032b49c34024dfd3ef621d257e821f47cd8cab62eb585c89abc6ddb39a99a31a1d6902d0e22a9f47e61f109935e9e2b097e089905fea78a2425c49f376dc5fd8d56dd650442bad36394b5c7cf9ae74dcc323c4080682e3249dd8c1fc0638c7b21771a482711dcc74e847bb80402ab971fe01d602ab404cd7d807e8e563237ea4be9dd31966f86e9b3e6d2a7fedaaa452c056612e7ee374bc8d45692212a153abf003bcbb6ef153eb0aa3b9fe673e243818b15b744b2460f3599874622a257b5d9432798ecd859d01cdd29c7113206694a23cdac81d35213bc9a8c21781ddbd9335a750db1cecd1bb2973fcf39b5fe738383109b23936ca50332106dbc77e94579e75844a4d21836ff897b2368b52eb81ac42a2aeec77133527083c1100875f4f8b5384e446acbcacfbf8fec112d66870fe1c74528a1d8052def932555bc41fea29732828cb08e5e05fdbc0962ecfe82cd1c718715d7dd76d11bac0a64be8010b5973e07c8230da0ba1b9b0e3f40f58b6d96da07eb87544429d44d7c94853f6ab39ad4bfdc3b951a565a289fd7e9ce1fd43af1f55aa066f3b8d95aa31990e3bd0d4727d9c65ab852a3c4963e12305dfc094b342929b0e71d18811399547674e92a94eae173006bf6e4cab106aad6fdf51993136a6b72ef3c118b329ec349c15914a65850f5fd79268655e6bccd407ce0f511efa992308e6d2f06478465522a6765199d897afbeffaa5549a2745fc87ed1ed8d33a025d0147965aec52f6d49e8ffe2bd0ec3b9a95ee1b0dcc21cd20c92484a3cf31e6b5faa5c3644613e1cdd68663c100aa89be93d23ff39090ccfe9d2aa5e2adc7a7d0a0c924d0589449fdb8e2c769cc727fcc6ac0be1a7aef534830913dc6e271b992b4229dce84f09ce6db58d23f54d80cd94a303422ace65ccb54a75f861c509e2a6ad37ea98e4a3f38ba3bece8f14343054bca2a8680a53fcf8d6465d25c13478be40a2725a9344d47ad16adf4dca957bc1a6e9d084e43fb0e22fe1411ba4bb9c0499e06b8d080caed7370c82c2cecdc7a333c2e9c907fd88b0c9b2368b93ff8bb974ca471b8cad7bd2a632a15a4a5af95989ba1ad2fd8a46b73c70624211a431baf66ecc775cca1cb02e45b856ee3674be76ab6dcc3769911e039db614a18b0ac109d0f51c4eab092b1a5918b43055da3b7757be9a95a47f20a8133d56ec8734d4460bf89853addb66f18fd70ffacf2c993dabc3efebb7583efe8f1ff40f8eefd2d4913f38fa9c93d8aa18a554d4f6f0a759e605c3be3756da8d0625d86863677261aa2e57fd4fd8a79b247325348b1c4aae903e10e3e85c335a86e4742975e94122a855be251ec443d99cb6db963a30eadf96bb77d3b7126fce0b502b896e996697265fec71cae9845dd5cbae1918e9b513579edafca5c77a6e7d7236dbec5ec6c6c23d2740b74174a6031faef0840ce2b5da41d4b662ae9684f8b7679be00cd0e1821594130b751f90066427be44aa2ea6f46abf2b480078d02ba360b246c3019f16d513277ec23c23b9f78a5b6a98842543abd73b582197a6add6dbc724e7c99d25458c505ddba97e8d0ad6dd85f239903fab88c9f1931ed33306258d41586998b70d437d81be8c3ea5bbd8e6393e3b449f14168641cf6b661b756b448b297e2fd1889499d8f9ef5a9bd8dfa2b5b7d1e81ec56d2ac954e505b849d49466d673fcb6ef34c2d8dacc54c85edaec31446488b7032386d5360f3e40559413bbc54e8ff61a3206e73b5bebe9ee5a3bc7b8451336d171d95628d6cfd9d7221592e7d3a6f4436949424e7ea1a687e57f59ab77244d43237b6a7539bb1e912dbb9779534c40ed4a7048805492b080181a8b65366242131e9f450143d7a502fa718a43a6ca1f177071c57e47d7127c115e1b95312b8087035bcb4045a5bc62d7cb58df6e9edaefafd8ddafce5e8e645b40ebced821bb6731cc4bda60f197f9fd0e02fe370e2c3fd42c5d04316b9855ec078638cadc5186831c24cf7f023583ac6278b633761ddf4efa616a9a76e74d72b71283f1de9f924d58d761199f26e47951f56317780cd4663321db872037981663ba1f647eba143aecf711b9e6fdc36189454a29d9a8e111d21a3dfe183390a93feff8fc9d2c79676a82b6a1acf575a675076e57c09349fe43a7036252b0eb070d53d9ab2db9f58eb3229211a0c02624e41e7d22991f0a1f9fa8079b64b6e99a48f241fe7ed10360b4bb8aa38c123e6b19ed752003517df439cbaaf77f1b41d34999480ace6758287b9a5bd6d49176409d4568c51218a128ea3e9459de51ef24fdc789e07f609571cb166894c49ce015e45b308a95434fa0a11a433fb588b3cb6fd3d2d8a6701a2d073aaae8fc020275122baba7dabeff9753e8b89095c39d76296c2c40ae3f93b0ea06fa9c93c2ab88ff8314a826c171f4f589633132bbc3211c9e33e94a29074bd91a606dd1f40201313f1a2750ab089c794027720f315dd0ac3385341a144646aa5103e575ad837d427d881af4f0e520aff2773ea2668c934c455a21883c7cd9d29c2df52cb1ba39a14f0b5e98314d027d48fcc82261768f18397d005efa76c0cf6537f4e7cecf4adea08274155e9ffe698e646d9dd216cd1948c6880364f9e09cbee207bf3de67649e9c4ad16dde00c139cc31401ee0057e61a495ff2092461e10491d161b0481670794d4e75514140a6ddbe15d33d2cd9b6dc11344b8c83c2033435db9474d8a0006692428b64bc6993e6e0bb4273f67d01368d5cd07f01e0ccbb84830366fde9c74d8457e602558373a8584c8fe082fae5c9d9a8675c0640d54bcc217454baba894ace6fce42147e8c2a885cad56c6586cb922eb00b5e95c8139fea645b8870d331e054d5c80842ac5fc5638f21e19be8249e9906bdfa8ee12ff54f40b8aef27adbd646027b67632c8f39bc7e016b4801fdc39aa249febaf1603586407cbbc464e02d815414cdb5201a33bdadcda4034f235dfca1371b5662280b2fa7146c2638e09f9f3728a70e36a96491579da664abec62babf47653b8ebce637de968762abc655ff0c69f5ca65260ba03c8f8d24b5d45ece71721723c3a94519291190553f38cb69a8b8e461b48d0aa169273f2139bd3d5ee7fe7b746808d9191193e2b4837704c6e3617b767b74c4c31fcf243529de700b334c5a5975aac85fabd82f074f93f39113fb89c7b21d6a7cc37fb04ee39c1f4d7f99a76072b5f1e30ff613e0721da192c9ac5f7d767718d01e92a1fcc57c68aef0a74bbd28b27e6e6c20b397b9e97c4c24140a6c239c6341c75c16255ac299849895771dab1c7165e05977438b102ec53bd947579df2fec48fa4d2d546cf666fb02108c73723a281cd4db867fe85b2acb451eb02fe2a88637fe7222b2ed3b0d9e77e74f9fed241337954ceeadba39002f09ed520387078d93ba7a9c9a214039ad311694c2028aee52cf2928eea14b51fddb2a39e16f12dff6efa2e6f70a0d2bc3e0890d4fb8f4a44fd840faf1b2da2596cc737d497b58f007c5cead29f1a55d34c79563c9c3db36a002f5fd476889f0b2b22b36e4c32b753926935c51246f3dba0f836d3505711664782ba7c509fb6fb9e249d278545fc0a07cf1029a0740296cb683d3e074a38c329c43914d0ed196b67c6e8ce655c88d37dc957da4dc9290136fbb04adb4e834dfbf4b02800f1c1a94b6fba64ad7650479397649b9b650423d3f21b53ecbde066564ed9b593b981f2efe916d9062d1eed62e725f09cc44c13f632cf338303a5cadc740a27e7c72f4b9d0be3dea4b903648cd780ee54cca4f121e837d8483f8ffc6b0791e83729d84ade3154dab6eb40dba2626ef4f9fdc263e68d415f6c202fcab211b1a8a75e1e15ef129a89332c706c5278ae53ab4bd083e827966bcc623925188a31c82b070378f393565fd42ef6a156f1794b056b9f130de70ff1c626d6140f01dc62588296d7a0d7814847aa9c38fd1f691ced73dd13a8968462981ad40ca58c36f512c1bdc8845d76bc3554b50c24248b9de5f18a983f19297c1e9c0e51c7ee99fc055b62325215483bbd8294c5369aab29dad24ca33f232e724dd422e0713e3972062227903a237ee1b9fc6d42e8b27f2056c4b8295777a01dc87171fa469d0f40ce74513dee2d1a17b8c9ba500ed9ae2c89f69d9169dcda661395d64d413d996fb7c8af2e1c62188b7c6f4b84ad54b30a835044793293bf119a5737d474859153c93875e8ca44d42193c7166391103cf811dce421113059535266f802c0396dbdd71a53615e4ce662decdcb102a9cb08afa48dfad560ba1d7733d6e9c580945c78e5f425ee4495e52ee1af04db02b8c4489fd8a633aa57235f5d41b17c465fd4fd677e991baf72a52fb987e94ef4c42249c08deae9c7ac46c3e76a35fb2061bc2e38e1ab0d7443dd8ab391b222754a0704e942beee143e87e10ccecd0bffcddd80b423fe7fbccbc0d84f80621362f97bf6c94f1aa5cb1c2815f04df1c8e4083724ea02207ecd9e00bcb2a5b2ed09595acd3a43f8237378ba68007f63418e1a623b1029ff3806f3505bbdad3dcdb047205b6f06f3a8f90b2b1636c036fa7f297ef22df63b571c1eb72c942972f951dc8d58be93d8e87a56fd865db42eed971f00b7ce98797dbd870aeef85d2842d23580e1a6d35149e6d1897b7d4e1b23314fe02ae45cbdbccf3a1443c3246354ff1e25a8361753771fc45e761ec2527476ca1b9e960084ef771886917458707d77984b84ecef14834811fb20b0f1a395e67f8183fc62d2c1d8435c3a5651698825f4ebcf948847818e2bbbe40407ccde1c135423fe3097652cb6b61b068260e930d4dedbbc01496c0d43c4bd4dbcbd02ad18b5e7da9e80b568595d54da7997437536474d4269a223d7158182ed2abdc92eb787e2fd308c71830c90dee596ab50661d730b4bf557030e3c0e8864bca6f35603f46e5cd54fc063d23ec0874934067d13e32c66f432a9aa4cdd28a130721ed4581c05b070777feb46db305c1e07ab258067868663f523aeb9151ee2efe8c43d03356fcce4fe876323a593b3446ac5ad0ee7716f38dcf7d86449ca431d95c7fed541d6855350e5b359e6f35ed141cd27214641b57c3683df0279799dc3753ed8c079cae192dead07db752c024f33307c06ce124136d44fcddcdbd8a74510968724ef2d4d06c55f8ac0250e09d38b85a772294ed702288bd2ba44f6974544396079e726e0263f7a4ad80dfa0187de81f6abd0bac63f0187ad15279ff97df4b5a675c92a938206dff1849c32e14cd142c0bf037c6fe7838ed8164a461634a302f0a3bc62d3284a51787b8ca4b1becc2b74868a98494b5a5e6e7baeb4b7ed2f33457beb060f18919e0f6c92b0ec77878cccfa7177d60000000000000000000000000000000000000000000000000000000a0f191e23282d30", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 32, + "comment": "z_max below the limit", + "msg": "eb02000000000000000000000000000000000000000000000000000000000000", + "sig": "849041a0d4698c7c8c81ce78f780880eb0ec91091b8582d104f0f26673546504078e5817e757b9610253a3e0dd67bc672ed9566bc55c32b991d7f70c9a1d93828160a8bcdeb8df4c082bad2166a1ae6915c54289d7e7fee32b8fb9d963f02670b3cbf4e78d91ae4752ede6e63821b21e590a8ed8529b409b27f7e3e5cbaa340a9d5d9aa44d52f711864908db29862aea67e553f7b293696eb3c08deaa1c00fa5e2be590a08e3611d774e4eb0027c0a2c77835abfb8e79249d004365d190b5be4a37197f717c44257d2c3c59222dceb227868af447bab8367334ef5314b646009c7fa844e5cdd66a997291101b1924a666606fd27ac3b4cb82710703e3d3dcc9ea22efa777b0967051e9696c53025d3e1d75e560fa12e90c710b562a67bf473438d4ed64601a6cea52aa04dd82cead831c2143c689b353c51f79be2afd0b6f060fb2b3a3388b4da041e08158dcf556cf7a602011727b13848d07b2dce0589afe4eba9fe4b7e37aa0d98f935940878469fbd0c9c2e40067a2da2b418748335e582b3984219ad398751542a902534e1198383e0f569a3cb8473c8756781f7e6c6b538a9584a54be16645752daf67ce0efbd1ded9c67087049caa20cc2833096149820b16c510e0cb885098608d4933a5f6cea15be6d486a1a6150bd8d3441aac9195a21215527133ccfb21b4ecd7574515afda04274f7ee52b0ce74a2c9dfadd3245df783486d2a82155e9f32a0960a3ef1bd135641fa5ad38f3612eab7ab10d1ac52fedadd0fd5e3e869e7ab675ebd5a8e3d529a099780b90a6f470c3a158ccffa0ee33d5909e1ca575816708fbca683e8d6566c9b7ee8d221af9ad4f28d17e55276655ab49c8126ddc6880f3a165913e93ba6fdb42fc001949e2ff317e3fd61274b66e4041471d04227619d6006ca87ada08b52052a86d749ed716dd5eeaaa0801ba91e0dd5b2ccb2622eded78c1fb07fd9cf23814afa51b65e77e56b3fd01fa488315eda1566fbcf9e0c064b48ddfac54b974e6dbf2fc8f3abdf249c3b343fa7812ff9594f8859821c0df2cb26d4b9192075ccb88403459d4c6bf6fad1c96198ecdff4d774ee11771459f2313b999e1b120ea84d4e8612a4d82dacd68a4c73d9083b7776cbd44db994407693e7274ed7fb937003c8c085c0bae934205583493bb682455f0a77f2e72ac12256a2e191a9bbe459547887efb4830b9884235ff91036f6201e7be24beac999d517c10c2615fa0c50f01a2435b8231e47f8af796cc47aecbf8c1a8c670d4b88b07a062749b5ef29667bff3e164bafd2f270233119aa7efc37bfc408c39d634e7eee43d0885e48d8027b04d5ff5df49737be0feef7db4b58d48a8f068918851cb21bb011a530dab69060e3f25945f16397e28b3339b49440cf9556efb491c65e875e5a5dca0df8ee63588a03f2b85c23f3a3335ef496f918bcb79ad28b4a7fec638e80358595858789f9bd28cf8f2e5569bcd6790bd4f2b056eb17dbf2d7cce624517fd16578ca0f1a478de71369f00642937cb7a555c31c4ec7f2dd51d62ce1f5fdf543ec2086925270b0772fdc48f0f254c567e867bbd92b6f770cbde767e40927c20ce7ad1b2295fb2527292a7e29001c2fc3f443f29811cd15c71574bc547d5a07d1d90d244b29a85d40fde523454bff8ceeaf21a95eac743f339cf075bff0b16cadc5a263d0f1412461322dd4197b9ac666ea468a1850191e6f3080991c12bf781be064d5b105175cf33af1b351b9dbd0151f2aaad71c099e1f12afd3b3f6dc3c231b81ad3b5722a10b48a94608851a95f9bc69648c7cb8ba24b236cb70b0841b2bd813eb7f3c9a064cab7296ce5e0a5a2ec388364002404eaab66fcc4bf1c118d12c8b0f94f265d948beb77ca9d44b2f290b877991d5662d1bcf869b5ec1dabc86be0cb7f2fed26bfa6bc45c36bbb6af3474efd75fb29da2f6baa8bef99cb407705cbc28c180b5ab1236baa52e80699ace06f3484c50484c5b1f8bb1872211a55129d3451975dab6f1be38e2f651ca242ac03ebd48ebbe735168474ce93116c6aff564a31fca9593d73f5a1f6a3989ef4010dfc19437b7c7897d7c171ee61be204effeb6ca687a3cec2a77f935d68372cea1834b9ef743c7d59cf2d390dabffe45cc8d5d5f1ad94026d82e586f4198aa70b5c1c44900e1d7e8b7864b9a0995d3d553f5aac8cf4f66df44163ce35befd25e205cf2f290fe7ad91c2d54a68b4218b8a1850e3c83fbcbc2c23d1d5134af307f2073d76bbddd604cd5598468d5533b9ac679fab6851c9e462912bb8f982bbf10cfc288b3bc22df38842036e478ea552e0fcb67f29ca1ffc97d946c119e8ad87474f5bec42288b83fae1c56c90bd5a9e652f2ce02bd76238eba01a6051c702d9fdab2dde4a3fd620aa705ac2d64d75af54ff66cb834c7f315873e7231c67974ee7c32b515f10277761c2645f417771de01fece259a026aa4a58cce0a10857fea8ff13a342098daea8d454b31021e60e38732b912e53dcf0480eebb208bb29cff52023a23f64c8b1674ae763c09b4fd2b483e5a808837825f1a01cae2ff3f3c8706c8fdac1ae6a7807ae7c88e37334d2491d2f5910f280ee472fd1cb59ce3370f8ae8dcf1da08c137680faa3017baa4c7023ebf0bdc0453343f58ac104523b4e50daa9750580ac05371fc98ffa57befe37c96bf9005d03369b1273d81db3eb902db455d5d073802e3c49df289dd59262988654b80004fdfe22051376c82d65caa6a7a6896fc89e27dc6f0795d7eeb6f56306aa6f7310cd2ca2a3c7a331176a83bb3cfe97bc0a7ba4cdee7f94f5171f56c2689ebd13296cedabb09f1a4a809dfb97ba5b8b36924e66c4f876ba222af5457c4553e8135bd4297f7e76030e46708c3fb2a049e91571b51a5d95f4235beff35ded7754a50d0fe4eb2b91720038a4d3890c68f61a790f79192796c0781cbc83defc965f46bf745c4ce77b054e88b838c8a437062af886b31dcb8fd4b80729edf74f4cbd46e56bf5c53d04c7cf16f6ccc881aec89ce1aa2a7ccf25fc1a8b16f21a2460b2200b64a9408c2ce00befc9e19fdc503b128af8818b7fd460c7684bcb241b52d6ee76bd7ccc0f2303fcdd7bd50fb7f9f2d4d8fccdf51864e496b9da09bb0157ce1cd88e0e1b9b5d6e76d0c6bef0fe60c4b312c9ca15cbfe3e5c9a8d45870b637018ca072982d32a1959ec5bf4b20ddfba5b77cda6dd26eb71f9a60ab9fc2c208c58e07c804c92a3e8b41e0a0082b36bb12ec1410c5a68c6c666b3d7234f74c2294090bd66ee29904b070966ff2d6f58d5f9e5f4939fa2d0ca4b6e0b6f3ca7e94cdc0807bb4e45baae3007db7a08a7efa5f133f8ce01b94ec9baf5e9a4e4e68a86846f3c8edda0f63ed528ca223f2a62c2f9450899154bd399ba5318b52a7fe1dc41028c070471c3edf1e1cbe44cf8290359517c3b20ffa50f114edfeb437543231a8571b66213e0ae91b3fca405adcfabb5b68a09715ab7f24b02f07ce7db3a1d8f5360f6a07a8c5fe5bc0ec222de2c0056f3e638dfd182b1a009e532c66a125df09ab7874d4f3f9ec0fa68606c81cebdb75577c0a376d72d1b64102666a1acec91783689656edeeff0f85c9dc99be48b1740c28f94912bebe1d7c197a88d17a0a36d0d1c2b1a39828ba0bf7671eed095276025a6d5897e03ab96e9ddf4fbec96f3e42464d1ce17866243d32f1e7c6980d2cfa86751b774bcde14f7fe142fd60d4c7f2cd2b662ec9dc8278c5bd15f3fad1a82301a6c93073584b82df09660effa8c79cff79b8234250f9ea9476c654a7f0128ad6f3ae6eb6c899403ba3b58c9431e5e7b3e7e073ff6a259f9e551a5ab453ccc6c892f7731f0fb2c7fd157496210267bcdf483c1eb5c094429803439590f1e74fd6c8fefd57df4bf2e94c9f5c6ccb8db88804d6b3023492625cf7db8470c4be75a7ee5655e40c365aed055772a97101da82440d6782566b855b76e50ea2189951e062fa01be8f082362f446f1390972111489350ae3bb58095c072692df5b921a591047e7ca6edb3fc0679e224a9e69545aff1f3b7681c120a2724b61381312e912a404ea49c37cc65bb08e52e80084fbae1ed95a71113a570649d147cfe9174df4e65288f60960dd75cec654c41e5d8ed0c44d0f82a736aee4636e96403845a451e113597834887f5b037d7cc8e6bb60d94bdc41921b362ab6f1d54eab1e61a398ffc7f0e1345bf5d6d5cf2112670d653a05cd93235b5566226e196e98c99627ff73c1e915ec2409fe5eefeb30e8f336830c15b04a6145b34c5f75aaef730aeb7e470b4ee1a68162ad9bc7d3f13a86e1fe06fb281d4f752a2a6b217cfcf38bb50e1357333c9d571ac7f3a5d61dbb34bb8b3ef631232ecf70e1dacc59fd61c07eea93cde167bf4ec35cd245c169d10c5da4e4b94211e34433c101b773862aa88df4b9ded5762ef25fc45b8f327debe3fa7ec15c7188f37f348a50643baa7d3a4a3cfd1e7017822e70c5ea02f28a68a0f60165ba0c4a4057dd9591e440fc534cc83eb407350b3cf6c10b6ecb50a4b5f37fdcdf86f862004755492b8ab0fb8861624b84c0a6325f0ba31707c98dfe3e39f63dc962246d3984360e110cbd26da581b130da06200e64bf49a629798cd0a3b139c67bc72cc1477c9cfc57d5d55776fe7fc49352579a0a03193e7a6343055b6dab023e2b8e3591cee4aa6b0755fb4de8387cbd1d71d03cbaa37861d261d8b9bf849faded038e06a8e3c8204621b2d13d72d641050f0b87618ca281652beb09bf57c63dbf7cd6b3fe99dcf5d74f0361881cf3be275bd2742eda710f19ed53b58c2b127e2778cf4f9fcd402276578e058eb94d7647318e892dcf879b89a365ac8ee031fd11fc88eea64ecd73aaecec7419e46731dd4802ea1cb7fc6a95cd72c8472bfa3240b564777467db94a896f62f80d30ab0d8fb8ee91d8b81ce7f8b5fbe6c1dcccc65d381d3e607ce9cd002addddaf37793d0def6f5cd94c7ade954e33554148e79e986712eeef1a8ad6f0ea56bc8d0b842b69eeea794bf9457f37a3f8e396daec4b66c638c151b2a2db17936a667ce3610a63ac196941944f25158af85054133aae90e3ef3a63f831aa8149fc2030da5bedc8c8ed48d74de20c5b8440cf0ec20f8dcb051af6e592b968b1a724dd1bf69df8fae2c6f9f64b0ad78108d3cc84a409afdea028ee4ee696d7e2977d50180404ab6504615ff633c4a974728b2e3bfa160f218125ad849c59ed57fa033c88f7de7d2514a78db5c970e20d5c61a614995f4957cd92a92879fc016288b9394bcc61a75f07a0a7614d157e746178b9390422a6e73cf4eb04e5efdcdc3931f17f343b08189b77d7d6ce44e718c5b0f565711db846f8feada17a12c3a1a4f352b19ab9a68fce71a408f77e067e468b06386e023b699de5c63f6562016133c9bab861e0ec56f220ae7aa37594b94c50ae3913579429c624c61cc2ef2aeff19a2cbc3be7d7b5395998db7c0b5e099ab1c3bdd931be3f27636ba4871a11893472a9435ee41b6992d8f9da10037fa86bb447234b9f0d6f8c037cd2526125897f887e53107c46949fc213baa52069ac6de72439d52e1206b0dcc31b1a545546be4a4ce08871a7d73c537bf87a9f5110d64febd60fcd48d7846436ce2c99af235ed16a7b3dfc9811cfdb0fbd4321508611f15c34560a6ceff2bf4540a4b72925c11aff29deab16b35d7b96d9edf8c9a265103540f67518b29f0408adc54fee85fd8ac67ea0fc60e2d2ef391c790a222ce07f1b984ff4ba1835a95f1eb025ff7a77d97c2486102526561045a4bd42f5958729da94f5d7a482119c103999ff2816811d03504d544f3a0bd6c455466c3ac8f58172d2efe0b1b93d61131610e67a81f4b77c5089cd0045882ae80237f08e117e908c20ed5bdec62d3314826da5fcab705d35e8c71fe2e5959025c8ee016788f125a693ed2e5ac6d2038e580b66e4d5f2ef8e42d7c1d6d1ad1d1538d5ec05e7edc2a6dd47bae536f396f0ab5461603118072d4a5ab8dd6a6fd2f065e68a1f1e452951d13d9b4a46b389dfa15ed3846b1448a19578f87ad41b8c6e1f1f718bb3e11abd2ebf9efeacc47401d3d39bb312a2d2d80683b8b3cf4a0a3e5970700472a4dbc7f133d4956d8b565b016a40765e8f4249c3d98582e6a9c85bfb73877e9da3fe46ddb5ed647db7d98c785ec8329339448cebce8087a193e1fc1e27d0b1b6e63304fb4b467f8a7ddb6d1d73b9bb9270a51b94988d292e750beb073e98123b330df60e875a76227ff04e53d2cd97e4ba16dc13a4aa3d693e6356a5484a055551710dc8ba5c6a697d73b8f03e4989401ce86e627e9f17b4a86d7b02adb729729fcc460afdf6644e35fcf02574c04cd50fd7d5604a32e0c3b02e559bc7c3d26c36859b4164da9634dcb9e69a05209dda403060d71788b8fa1acd9476b7074d4ebf83c3d4391adaed0d4dc6ac5c6fb404264676e767887a1b9e937070c2c303953b6041b394095a1a6b0beeef10000000000000000000000000000000a111a1e292a313c", + "result": "valid", + "flags": [ + "ValidSignature", + "BoundaryCondition" + ] + }, + { + "tcId": 33, + "comment": "z_max above the limit", + "msg": "c502000000000000000000000000000000000000000000000000000000000000", + "sig": "c3d39d0b8a5f1677456a67443fe2229978559b1095759264fbd37b0aa3cc2d1ac6c9a35aab463b6495ed5f568f3f55ebb1c14ffee8691911bf31b3644c99f97652eb1ba0309347488bf93ed82674a41d46ebaccb841e17e0e19cbfe5f4e362751513d0de0b18a9e568101b666e3f336eeaadb05885afeee2497e733d1fb166977c76d8257fddd9ee81580ed3b9b9c21f73855f57580c9d627e211eaaaf950a114568b43d60ea6dd0df22c2b702b936605d398006cffeb5c2555618d15ed315dc57f975d4ce898bacb7902a1736d3faa721dc58ded807780a44c5d1e6f8258041cbb2e57f471360f634124f83c7040eb59b138b3ed867faa64944e66d9b068261dabb7b093b7bb26f88c91c4fb9e5c04c7829657b62ba78f9d5a88bf758bff3d9b625e18a94a82f63d94f89a6f66c470ca0509d6d31dc78e683e809d113a79d33f151b430dee8b2e66399fb5599a3cff1c77652adc3dbbc456e9ec1e4bf3ddc2cf9d5c236893bc3e2fa5ef1cb9e90d528bbb87b754091e75129556c42a7baf6b28aaf79a94ad7fb323aee0ea81394a8cdb5375401575dc8d027a803474f996dcd655fe9904a17cb81fa41716e2cbc460c472e27f6025221f898a836a841c51e73c0445d474f8f760023c489c6c79de1f77bc583a94dfcb806be3e8bc449f4dd743e06cb40d280e7baeae7ce5cd1d742be0aa65134da1c800d466beffbd08b2d092b1929a631b7493b0e39fad6f6cc0656f57f3cfaceebf42deb256df6ebfba627d78b03157306f7b2251c4a11d4cd66e251b459581af58373b26a8ff97a4ca1848cd57fee4c391f0294c54d661a824b496e289dbb6c61db22a6e920510dcbde1a3e72315a80f15a4645d5cadf495cde2cf5e051ebf37f68d5b9d448e888c73679d94ef41ae6a63a54eee9ace3d6aa43212d6001aada6e32c9ec2480cbb3f568cf0d40b65d80349036350c0baecc7a2ef6e993aa5e99de8e7a896526d17b46f6c1ad1d1478717636d5caa4c95ee86083a58e63a60d0f4489a7ce8e1b90bb1b10d352c27469b5cdcd67c6fc474551c20e1343a68dbe27289450762ab7c7a62ce47805fce78265169d6e6511b1dbac09fe5e0afc51560fccfcf0c56cd6f1772a6ee5a4143606518d4fe9125d96db9280a27a94fbeab9a04aea1172a3ed18ed223a4af4073baf576179eabe812d0c854ca42646a091df42226890fd604765cc546f5381259b59ff3a9045b092c78dc81c0d6dc1e3e653f1f675cbb4a09656caa51f72535c272e3908cf1e8c433eee301c965c35eacd9dfc8e04b02e5a44a212725379b3f09e6e4f9decd01bd7e49a747a17adfcb4614f86fd9838c0b839d27280b63a2b5bf11d0ac122fd25f2130cf4f7f30a58421b571a7fcb9057551054203dd57774d27991de8ac7b51e79de7713bb0292bbb5b93f0be5e9a6a959007419e2e57fce084f457ba6c4dd2571e2e859e0483162562b6c792af375e892bf34b6cee63d521df340a0d6f07cc639409baf2933e0d5f6333e5559e166b2cf42cdcd19a3d4d08753c15feb106918a1794dd50843342368da89c1875893f744d710ba3743c14655bc95f693d1b85e08f18737fa78fa80748adb064d40cd883736c1d23975d13833cc27fe2abd34a6a91ed36a43693cb6f85ea65e8c2e935e45fad9ba2ca1423b4a45d61a046c5d7a8e4379cb42c7362ea9f971197fff224dd71435a3e94d934958c8aa5ab6834aaa2b602f2d428a8a729758cdd67fe3d2891bc94b4a0552a0871c1b48e6309639e7ed165d7a80425e78ecac7f066f79cc376889da25a10038adce33625a18fb7e68c2760428a953ab379cd51e2cb04db08e466aa190017c60347451eeda7955a1a04efb59c697ca4a5123ab8e94f6e51810dac7baf7205949975fd2627d291d956cbc82f5501cc6d9dd0cdf57caee02241c53638d87b98f5c035fa9bfc34276438f2aa003facd671e85629a6cd28f26c4cfc9f9ed5514e347a44bff33d46f997f54ed5482f2fbb9041e860663aa3f8b602aa53addd03bb2b1eecc430a57995fc4248bfb52faec3fba5541a7abd6eb192f1b6b0645b1ac374d813ebb6c74714451f5a58c66466ac9949dde8b4f0870e3c6e480562d54df5216cb25a2574d69af9d30a60596928ae66c15433aa3b4cb0bf02055392e136ceb65defa5d5cdd038442788cc3fceded465823a76ba0db59f48177ef7ff1fb7faea5611f78a27243edc19f68472d8a1ca79fc1ec57225d0b92f23d8adcd8e2abf86ccd65502435184d33e0920f3a3beb65bc23f594b39cac498a3b9e8e2e4a0171b8ddd9598dee334d0b6ff69ee0dfa17dc3632657a5ea21eb40a84d6247e69c0858a71f7bd4f44beaad9e7295a66a2ed5776c29438a45b7804d40a38111ecabe92278d7a5c8935eb98fb2c3b57b7f39cff7484145f5c7b995666dd2e68f0f368d534e98538ff93076c30b1efc8c3118d38ab37e317c5c651d9a85b34652a7b908436e6115931edb026f0bde9827d32553d084f7ccff203f619128f6ccb273266aafbcec4c996b005b3bd4dc254c58f50d672121501d361b56baeb3389be0d9f94b1bb22d763b1b72b1bb5137ad5e53205252017cb1d2f888368b1fee212c0ff1d3e70907f65cccedae832f106e18b36faee6c201d1e5fdd50d8d7340a2ea070b69c6be6de3bbc44dc8812124fc51653a85708875cfcf695131f0d4d4e1a59b2dd0d6a803cbf331faba609022a22c81ad632cb912e5b81a8d4767602a0aea88e736c27dc93e7ed26fb19d3c6ed612b8ff6486d1090ad33b59a62d8ee1bb5aa1d43d0933a97015302004f4b519aa34467546dfc0078e7366aaf5e48b16e29c594b53194afe9eb490f97bc3d65f31c64d7bfe5ec00eb17bf7dbbe4f66775abe0710b5c20656c6f0bed6e44bc0a14000a3f6483a1b691325a6d03e7587f77563c41399cdded270acde5184567a85af041b42b149c3bd5ff639b0472d914498a35e66205771ba1ea9442ada78a25012063bae06c5471191e287611ab7aa120c0df0469e8e41775e548dcc4ec69ab3a979cce88dac5d9d55fd8f6f50a8d18cc37a7d8ac98427ffa1df97061e23fe3d425a3b3e7e0cfb67834f5b5b5afeb7a4b0c93ab919c1a00bac0aaf7b9b91be754d92659b798f766f2f63bdf30e8e78f3c383f6a0ab1b5ae02990a2a9865d973e11fdd7aa9c5f49941ffc6a4618f36b19757ceb6a61c3b1ba1a727890b5871aae6ca7ad30615a23a46dd65a9229ee87c32535b3f25b8aa2b58e85e32e5655d4dc58a435721e997968f4257e79ee637276db3f8e28be45d6c4acfc7dde65d589c6d6559be03b96a2f48ad727eed96b7be0914dffc170d5336836d5110a8ba6d30614061ba27c0ee08da3be959cdbc034e72026171c7bb7ce24900ebf95b99bd079a0f1751e6cb802d0ff657d13de0e430f595b8df419afbd10193a1b8453f12c32c413fd1c519500d486a88aec78bb6f272c627ed68cb4b337c45d08ed5f5e836b42a3d50de4382faf0887500af4a297f132edbb5f1c6914c772606251343d0ebd7e36aa61dae447c7cd38a46429b66ba9ebfd8a89b1df4486054b2152385174115376732c1f10ebb8de26c23db7fc69592558bf2412ae943258f75f398ef93e4973e4599cf2f4f2a66fd1220f0e29563ce5b05bf291db96cbc028c30b27cc85ecda0be618d71e4511e937cb5c75c8295aee4e6e4b887123fa6ac5311ec642e2a1faea76b473f06c1ec0d47d823a1086b96c6aa154d99cb002a8f9fea10ae93c911650c1b100911ff616d28fcd757d96d30c2c0feed606bbff620eaaca772d336876eab9764e9a2a7d1fd2fe2cd63fbfde27e251b35a866a9e37e3314d596cf5ec6304042dbf97e1740c00a04d9cd60584d0df8f487ced6379eff01a28587d7fe9a9861b12c875f1866058b71018333107b8d1f8f0094364fef747981105b9386d15ee5c4065b7bd8ff0ef742e891383d0749b311ebe20da6ec84b3bac596ab8927ed6aa49bac5e74878ccfc9a2e6008ed7a52c110b94524a34c0fd37eeab3ab845ab33232122645d53d13cc3432b1c03a6f4f33820ae350d462702647f8e09b816f507b372e52536546364d74446b3b4cfe2f87b6297ee7b82576b78dedc06bfea1b7ccf0af738b6beab53ba8b0baf1cc0614f743d23cf9712fa33131fcf10ad344b75e9578bc628e2dbcb0e0a92107a6af74b4c52e5c1181214fb760ad353309048a8e94cc0b65296ad1543a8ae7407704cd5dcf4f76d325eff2fd71d48c620d64db431ea07bc4e9153cac5ef7e4553ca01ac5d331b0014d2fb5cdf7c17b15e68d16607a7086b8b6fc27c2520c0fba988b4175b99c6d38fb93770a55d16e50ef6e13c8d5fa0651ada102d9f3a99aff30f154600e255b36efdd619cf3b1b6ce3ce36e44d9890589730bc19e6adaa6f1322b6c64b3215d5f364d856023364259f199607c82dc0ebb641f6263277341253da5aa3eccccb9cd8c7e65f8a42343c213407866bbe11703d3c3d9478d2738ea71a379c7ddb831711ca8cd456ff5906327585c0877b0c21520143d3a625192e5c665b8d622786779801bd061ae83d65bc86c51f792e0177db1489a8a311ac0f1e5c6b5048ce30028e0a2a8e25869a8fd1d83a4969eabb1bbca090a17e0f4e6ac9df2dc71c236462af57ed024d164b72bf638a3ec76973f62668ecf43d4439a7d8c6a62447807e7cfd2b5546f513a605a28b7e0d6562b4fc998464b0f5397b0c27191cbca490abc0162e6b5d8f95166cc4d9bae7d3491e33dd0c6032be45b7aeb294ad486d0592595f994f5b4ce331493a088db481052f0f0727225b100b8328c57f933225b5ca938ae1521bf1a2c58cc25feac9aadd32853d5b22fad8a03e1d729b25d1586270d22676d76eb8fac454b3830fe482ddb64a15e5628de85c0f1c8d623d67a8104f23fc9cda7b84af407b4b2915b08a56140733cdc2fc7f6db628a7196d3981517b8cec8753c5df917782f630eda93cf86d10a28609ca063dbc19690c321d0e82987e454b3321979a48fc9a7f6b3106dd8e153f260056cd714969542fae41af4e05897608484b621aa48bed9f453aa9593f58745de903e5c51519143340daf487109b7643558a47b74e978740050baaec4e3659a311fd9bbfd579a9b183572cbba34ad359d4e442e2931bfdaa8d10b61780ab290988ec4c3a2f590ed73669772d3b5fe2006b9640876363bd00c3905b7494cc3dc4e250a66890ddf8ceb493cea245bbcd996bdc9b358ad509e98b44bf37fc01e60e24a04479cbb595afe3c34e922da3f759aa057202277d589980c50e5028a3d0e725722b91d181a41ae2ac8f2688e948fc145d55c93ed774c73efb8dbf0f787a3ef1d3c36520c1a418f74f0ca869253f79b03639247702826a6a3ddce79410430505262f954293d23212de999f6b1e7779a08519a8fdf61eca511e6b38ef9860cf303eedbe60e10c57762a7fdf19b247ad0f5c4ee10229996689d46214bfce3b8056e890355ae543f22e8139f9eb213c0fa384dd3fa763d617b64b4ebeb7bf75c4732257c5e80e35f54965231f373ee801585f5dfa360b0199f2517e88e58c1b88c99fba99aebe2f5f15b4d1945117ab91c776b6223dc273429eecd85f5bf3f2e952e1ecd8fe7295d877539575c72a5b49cc6261a023deb417fe25b2cee60360937f2e62ba9a2b9e74522ba7b0c778e743f3bc7f0b1fd4aebd63452fc5180bd0afced77603ad7a350680b70c0888542d83612f1de47056070ab796580ac19fd62f49cf6a0ffe0ca6176dd9dd835a7ff8d34dbe928e9f05de95202d0ac62f1efd10d24105baaae92f1e5d13dfd83d2f794902e54ddb2dd3152355c3942b673e8417f225123f7996169cbb99fd60a45d0937b8444eac6c81ccbfc3cf42575e9d735ece53b212572949f591639bcea0201b286ea6cb9a97915a674eb04b04149b0a39a77fa421455c323479712108910f5cb63a9a381f255d735cb21c40a2fa730e120435b451bd6bcc2d1e610ed5618c36bde844066ba6b8946b7ba27e7f39fdc3decb0d44a8c1c4e20b6a934b81b56e1abe9c7e4ac2b1bace13096a0615fcdbe8defab8e2483937b178aeea62747e6f410b43477248d847e380f9b35404a8062c3186424dbb463893f9af64f3ac196ff3e786bda381045b4974356c5252b70f5ba47f0ec9dfe1a680ea057114380a17b24ffece60acb13e3bb75fa77907ac3280f27dc322ff6ce883ddc8352d6d81385e65b9d7e4d6d6f74f041c7f30b6a58ab4b928f9d310f6c8acf9f12e1d9ee925846f69b31d3d30ed7b5716b82765a61a164c765ce0c7a5cf5dc44192096029b4921f365bbdbe45cccabcd7e1a25629b510860401b7cb4e89318f043176771b31c5cd5b9040efa72f6029a8d196dbe8801580fe12301ea9a47397638f1eed3a3eafcc47889aafc0c6e67398b2c43d4047a8a9b8c3192054556c6d999ed9da03305e74b5eff80e192c578394a5acb3c9e32152595d73deee00000000000000000000000000000000000000030a0e151f263138", + "result": "valid", + "flags": [ + "ValidSignature", + "BoundaryCondition" + ] + }, + { + "tcId": 34, + "comment": "r0_max below the limit", + "msg": "2c00000000000000000000000000000000000000000000000000000000000000", + "sig": "ec75c0ddd01262e0c82cb7b8b886369ca545cf63f7c811fe77019280150f2e817d6dfbe8b6ab57ee253a172ed929a557532fd69441317229a76702cb993aa701fcb0986dae72b395f3ece57c0f7e17566e3c8c91f3f09a36d48a129bc45ee25302ff59530aef8efb4b20dc3a23d1513e402da07f15fcd3889d3c7b6dd8849d74e4751e3d96241165763933905b5a3bdb9717549a45dc35a63cfc696a35d8bd333a678ff9d71d46152a4f54f84cba9c450e5c4aeb6e8489ec71e8982cb9bee63af15ba25cbc5e6ff18d3a4563b0cc8ea6de54a4e3ceba4de9233447bbb0ffbf01b9090f5c168c1600ff2bb72bca2ed707027a75f7bc062e8a0541fe595b288af96ca29332f68a4ded5ae1c8961e8eb996936cdda154581245751879f6f2201ea52c28cb2c455abcc7cbb98be0324220330857a65dee023ecc78a290fd01073110128fe4071023e51d8574848d0919dbff732a9a56d0632fc7da4a4924debd0c87d6d039c5b56878d1671bd7709b89e14b0490f6aa5361db5915aa1b2226e22d0adf6ff81509d04233a5e310ceec885ee042caa4bdbb8ffa7ae6f7fcdcf1b038c05ba5208329b68ab7bab9e183efa6cc3ae5ba291042dc765fb279dac55d5b2fecd0729f525f085759518b6c194ac05b369fb5f8a70f2375fd031f4cc9c2c9c7e0038c6f7af4fedad52a70b3218b9d23bfa028578d4912c66a5e9cc8ff7b72892c08ac4259673a5510779a69cee439038a053f3b253216cb8c43626d2f1d9572390a92fc20bbac51b2d782c7e8e56b4a64ada8b88313d263014ba1e3cfa75e500895b20ebe83de520ce890be35d8add45b1d586b58e93331731742529a7f0f8eb77b78e41338a04d89b6e3d09d1987e6fcde3db7f6838d8fc3858fd48a93ac993460db804b6495d9b3e9b8fd13a84cb44cb92addc08be82adf84ebc101fdd2aca326813801b2aedd3b7f50f46ea15cf0f635326701fb69eb09adb0b8eae93563573627c9400ee90b2ea51b1bb1787d43244786d0bf30356148e36a913d2eb8d70432680e4b33392766e90116ab2b483cf303f77347600aaf7d0300c0a5d8b3b5924e30af3fa0f639067650525e8e63c66a18af26a9833dccfc1c9eef467bbafe6e9a1bcbb135b8af9568ed2608e5944c2afa18be3adccb26c86bf94fc4a392d9e1007a754f6fc9e8ebaa823e177c918442d1156178fddd8e4d7eb0d528ae19c00bee3698cff0c31f0a029356ca71ad54c7cd28b47f15c9bfdb517d9407bec73a74fa55fd3d5c53282cb8988b2ade141bce71e4d90d39355ae8b3a0e13460c7009a2a359c4ef1ed928049969743d8649493194ef252560ac60690963f6a8249ccd5a4c9d775f15dfa2142dfa0d756ccdeb9c38ed175a57f3037b34e8e1c1dff7fc6b6e2f8f05e4e4bce67f2b5d92ce6f4ed6bd01527ceda9bde6ff12983b7c6283c3b73eafc8de554b682173c2b4e0bab95e104527d1189da94738a21e96c2574428fa3f55cebef1034ce082599a17ff862de7c716d610c7e39d77a3deac696fc0ce31b7437efec717dac7de5b7141120a3dc2b2e8fd21c15d21b3e970c41a7978a89c31fee0cc553f652f2f95e6256036f4813865d3f28854e2fb5ddf7556e9ba7723d7912ad7f64cad9538eebea4b46dcf7035b2372cfe0b0c98623415a02b2e4891010db3a82bebe87b33312274e39b91bb8a8732f999b2c0806cce756bdca759f9ca575bb59ada57af6fac77207f8563d283f30ef101ff0078790cfa054d9def5d04af72966f90f2eda40c9ee9b56293a022de540c024f83fdab98f9a30c31c698c5a00cb7f488523876b7fecd40f81732110b698c8b2f50859e48dd789b51cd0a5d6eae920b9c4bf89c9cccd11d9f76df87881b7275d0a02081e2bda33968556f298fe2f11c2e90aea2d401a9d69a16b5c072b20e44d3bb5b044c9171f89ae4958f2b771eafd0c5899e9a37e8686a6dc2b5b8daaa14bfa1b8b797687191277645734940d9712d86a8c55684ae66bd7e53351163aed9184d38e2f763a7f8c3de46737220fed1e21aa609c8c0ae66ed45271f66b768ac891a3e6dd04453819b2d8029b988f58c861f285ba25547077d449bc375004a2dffd2a13fcf19f16ae382a950bd7e26ce04eb6c2f551af82ec2b9c52bded4b8f948d1d0e420ae66afa60a322263ca410723a5ea47d7629fa05e30c624dc0c794d7e1ee6e597d32dc28860338041744f4bfce1b06cc1e47a797f88fbbf4593c8fd9acf298088796c20b28fb6af94b5461b113e88672fa90d4bb0f6688c135785da9bb54d4ed3524cba91c25286b2dc8df7e55ee1833a8a73605151daf1e9139ffafa7eb7ea8c3a7f6a002e8f9a5e0461b0b8bebd39a001ee0d29743dcefe28b38d2d0d8da77b060f94d2bf658c6941022061d3ec123db62b0204e3c3d5bedc79263d19cef4f10f4a9a74f7f1da4c608dbcf57e80eac08fa90470c88fb2130606402bcdbf70eaf0d79e6248d4e6d0b6a7418ea452db8381bd21f1b36143f3017b15a260a8079bd17bb1c0a710113e75c6674b9f034b901344c8542bfc763d458f29252752d2f91ebdb03e942973a43aef4b5b6e82a14def53739159c49720c973dcd1c1b3d5d981dd4834c68412728878666c1642e65486df401c0932cba9b9aa05a2e165b5852cc38756ff2dde48ea09ee3eaec3b5d29c1f75072d0a30ad159888265398f5792f97bf559c871e2151282993d8dbdd2232e7953417e833096b7f1389b11f8585c0ba24dc0c4f4cc5695764c3b751ea55594175f3b4428288fec9d0065f7593dabcdb8dbe87c78e1d9b9b0cce6964309905ce9eace87e0cd10c5c83c446a08bc9898e8e634532a947c12c724e0bc20ee43264d3896de79bdba911cfa4b6e1bdac0d5e3c18fc90383e9981b964a30b0126f9c09e99eb1c932861caf169fd32d3f6325e155f2ac69e7ca16ef8bc47b45bab98948d6418d4ffe49237dd4394e0c53b24b1814cc4704c250d9d17e3513edb15af3f92da6ea8484461c9fd184535e750cac16085113edbd848629120b7600200d66d0b0c5a611b41d96cee69147193d528cd2b54c84753afef9385b774cc6a1982cb3f112b8c60a527d04d86fe74ab8369ef15f2695de6ca3f96747c5977f1793feec0da3add56577837420e41c400040853d1a4023b74e746c32beac1b6a25639a730c9b50fdb44c2009d35ccd16ebd24e6d4ccd8455838831b6521b764748921ca49c810b7e4d98de2f5466f4134048abe8b258f0b07b27be009778dd0be657a181a9287d213b7d7e3f84d8bf7e4569ebadef347bda0bfac9b03124b0958261e58e07355009e86c577abef67385499031d66d813403d38279b25d5021d4eac1f230438d8a5d4fc0d067962b623ddec7348f4601e9e9f0b96575312c528258afa2c705e0299eacfea3aa2f44da8ec4c2a347b0a1e96791a2c256cef60ca21002af44307ff8e145cce4d0c272d74018b9834536d6a057db82e8b7ca3ff986291283ea9b1a2f85b9149f6734a2f43a40a874e66f14c37a07b7262b754ae1ec36a5a7ae8a0ffa2269e8a55ee074182360a70ac0bb7ebde44e91dcdb60c56e384e0da07b688555e83ede5113f40dd326fa2731b8d4f80d44c0b5781e2757e4b1bbb7c6ab35968df42141a6c8aa9561862f8a5747b80ccb530510160c2f5423a9dd636c57c6bbeca426c07dbe313296be10b107a50a0207e472123a8d6fd209dadc3bd38c0e1a0c1bd08b2637f633300993c766a056aba5a78f0ce9d9b6c1124435bf179f5ac33a890e49cb406a136c502addc0bd30d95f7d8e219507ade86d1572a3b39ee03f7cc80f4ddfc4fd11bd2cd656e889925527bc86650ff5af35be9cc1754cd601cee9d4ac937914499c8c98011440673f455a32cdb3f260301242bae320b9d31a056959832098258fdd4d1c3c52114920afa7f343f9eadb26941979b0eb4246444fd32d5c0e7154693616f307403be9419dc65816beeee74391c2a2cfe36647393ce28bb7a7f322c4a067104b77f058decc5f948aeefd5f3dc0650eb60025705340dc017161c893665f27dc62a14853ba8bdc244621b7f78872b84e29148eb2d31127d307ed90a9fd33eab3d88b9ae2a0cb1fbdfe2ee7a34e8b01b3a7d8e837d2a8d78219b7a41932fa3f4ca536ee6eb0815ed537fe8729445b5fc24008664afb4e6f2342fbbdc9fa5253d3414b0d68f36cbbcd3bb098a19a01832b23957081842a2c8118d64fbd0793ab9bca7b12d3535f441be1d966b08c0cb64333fed67ac579d488feb21319fe6d07b1d789eb25b730b9ccdaca3b3bc05569f26dd94404e5667a52762d78659baab6a88fd7158c5308f6eadce5e490b845ba701000729e05c224921d303f1def8642de50d5a1e713dbb7e74d80eec6ca25addaef8afe122e61cbb68b0230692eec938ab1291482d27184ae5431a5a052f3be9983668a2515307f1b275765bf5804aaccd244daba416f74bb7698790664b15b7b5f34f6330521406c0f9fa28bbfece87ab0638a32427da054cdaff842ee008fb1da31b89c9f06c581c0a785f53ee532c24b228d8f8f2bea5bfe8f002c99b22b9d3bfe648f5396b60d4601d0ee3593fdcde7af84b5605c44179789ed88f770d04f9bf6989caec995bcb01ab3a5f157299caa680ee2d775b7fa4c9e390ed4b6e0b3ac1cc755f3db0409d38b01eeb0e4fd42a96b4634c7a5e24e7e3f31505b5c3fc4719f9cd31076cca32e2c4a41407ab8eb94e5cc8acea6ebcf15e0b325892aaf2dd97a61fb9152b7b3eddc946875abb98300165ce2c372aea110e2d833d72e84b75af8538f5f5eced1f475b98efa62d8fc3ce2743b20d4901f45cb80f293c674d472a72edd79c32789ca5b70748df9d9686a0d732a2eae874320c8c42d9d2e8707e949a7a87d4bf8fbabedaa34ba8df6a5afce0ca6dc748f15c0aed972e39b74fbeedfd4ae558b49bcddd24a3fe25d05450c219933193d03e57eae0a30890c2957f1f222e6b80dfaf741ace5806b5a9fbf25c2994410578100a85dd1406062f8fa924e5252ec95c7b535f39d325a79b152483716798ee2ad1d8eed48221de0fb3e2b90a80551a27785b4cbe1ae440ff7e07c674367c5793043cccad7ce6f94ec592cdbf2145ffd6e3432b8e147d9924b057f447f974515866bc22650a9c1207c380cc4be22a5a453ebf599e37ca2e3207cd8db02b801882e9724d987bddc3036fc1dc5cc663cfae7c0a005c5d152946345174f5c8097d1e197fdbda8ef469fe81f3780ee3218bb47f5c55589d1ba16e02bf146ef6c750611d5a541634594831f583aa0d79da11bdb9f5bafedf200b0d1b5f8ec95fb02a3f0486c4bcad4f6aa1e29f1b170a05a019a839f4de0053170634e42f5ce552edee9dd6d905c8d76c3e36a0467eceda5327a6c168ccbad8888fde7327b9f66c2352f704a5beb875e78fe2ebc3ac1b94cac8a2ca074f8752f237f0e12ce5b8c13ce0ccdfb574e5f1e365d9f3b6ef685f862157d828d84b94b9b12ab5320cab51371504f1dba4d4c0a0e341f57eb04afe8702347c266dd3bb2301f5a0e2e0680982a4e6228d8c78de61938ad7133cdb0a1674c8fa7aecba500fad1eebcc9eb2f1a663d2f69d620629e97bd2e38eb42a25b3c8cd92298f07b620c53cc5869cd7e96cef27fbbd181d0e13d4638bc751a1795a0babd1e6f1dc5473925fadb64d0806f164f223c84dd5038ad2a12ad4649638c5fc168aec6a97f0182d58bb848f1ff92be8514bf2a743414fc99bbaafebac7f2f084128b8bd8fbda27db5ef59c6e261e7f429ab0595fcff5e445d8708e8c5c983c91882448b5204fc5a04d33c12d5a089047c00c602b5a0f5f56400a3f41d584c24e0d171a4c87faaaa5d1df85d6ed6778e88ae88092a50bdaac13f3282905773cfdfaa02506ed8c77b11da924cabc0d74ad1237f9ebd32be02c8fc2cedd0977e529d702be8bffaf02b11ccfb4974e97dc59e857db3a4f25b381572f5f6ec80ba3f12baf37c8b58e7edcf5bdfd6bfb3cfbd647c0aec22e46c4e84b98a3f4ce174d0da914779cee2928e4e7ce717259fcb7541efae83056d639e9fc5d1ae49b1369a0b2ef4d7a57909b6a3730e0790df6a8e88844f8533d73a9c89fa7c965759b30fbd9455cd05e13fe523e2aa3542493059433db573efa41043bc565b624f509afc185b67d379783976a3fbe4d8e212fbc9bf5b9ddb31b64d50fa6a50bf8c77c605bcb8eda8a2bfe90c6d55b953ad3394c2e2081a619400c69987da2c63fa44552fbfa66bd3bc3206eb6a9e1411a951de0046b239d09050a70d9b0ae702cc5e01ce0e43b7a124ce50254bcec7643dd1099194f046beba496fe0ff6a4d8df1f037a40f45dded97975269a62124953281427c807b12a5edb6b4fd088453315903164f6122931b75280ba8c4acd67062e5ac9161747609ea31733628d92b8b9e9f2193741c6d7e1293e5b7b8da0c9de00617f80b7cbdbdcf0087fafbbc0d5212f365357727eced603212f45545f74c5d0d2dee9f0000000000000000000060f151d262c3542", + "result": "valid", + "flags": [ + "ValidSignature", + "BoundaryCondition" + ] + }, + { + "tcId": 35, + "comment": "r0_max above the limit", + "msg": "3400000000000000000000000000000000000000000000000000000000000000", + "sig": "10c9624f738c627b6097580e20b1369e0258b40df36675b7ac71ba5d4f17179d90de36132f5caa104fbf7012f876d90f78cb54f916ea2ddfb34573fd72f03d4ca4e7378d8f2a63c566cad7a98219129e2e93849b146c3684930d10009508e703a5592c8c8d139b1b87feb18aa04b3536f67893f256d2d186c3e68bde0d9bf6e96cc08f5ae0a215c9ab39be37283a876678c987b6a5b59187bb5b8d61a86760a277ebf73c612ee9b53bcab878cc53ed08e60b47905cb076ac78fa07993c7897659c822f7df60120111b6df9bc5490827e76a03ab834bb33458baab1e789d0321b0c2c68a1be14a8a2516870487daf6da76b230c3c25544cd3160a06a152d59b3b1cd5883a7abe6abf340676024cdc8baf2722caa48fd74867b610849faab35266d0af2005a7cdd49a5012cd7106a9944e0217111e536734bc21a4f859107d58adfbf70dedcd424ffc3b5c065ef3f5cd32ba73ff2c1914e14e54de9c5322c3daac2b24d53eb91c9ffe97fbab780055a7961ad7f71416014af7f41d21b681f9a32fd022dcdc06ff8e68a8245d7be094a6bb285e2c17a0bfff49163468ce5894424845ab5fec6007a04f06eca8530e06a5691e00f7e9cb35abd74c7beb696ff5032fdb43106ea15c40dd6f52096187de5539f252fe5e1ceea49ccadac545733e0e429b70bc4daeae2e64e29e863079c54bfa56e1ac030e4cfcec1beb4178d2711f50421f088f99e993baa65021b849ca95a19792aee1d9435218941d72010b22992dd42d5c2668ecf0199bc8f4058717289e7329516fc1343d53a2298d8fde8603e1a93e7867aa10490bb37131701a3ace8f563dc074e33913b3381586eab674c462188c9dd62ef70ddbbe7671912d3111a87d799b4ef83de5341666dc9e3029026364641bf53d1ce300d81c41b05c951bf6d84ef66a2ecbbd07a7eb771166228ff8644e11f3505e5171c3058ccae7da5d2662978d18acb2f335c60ab9c9f3e833b49a55af08452b77669cb8e512f1bcca140b0d8cbeb11becd2c66ad5c2f41c498e487af484a5cba01c47f1406fbff87663a6d323b5d3766671090913e88b41e0f4b214c72d46b7fbfa630bd3bc158d2beeb0d4a5298e6dd7752d8e618b9cbcf2c0f20cf2c160f46fcbfae91411d194ce706f31e0f4bd61292b07e53de007b9e02b57e99d30a95d3cbccfbda9b4f99888783bee785a9ba3f1b8c285017e19959bc4c6d83fd26f2afe9c432038af01c49215076d04b2677a084675e344e0b2877c70f7a8526ddcd09bd98c1dcabb0fc361cbb523b4e47d8a6189b7ebe701ad6b6522ecb0795b95e4906fa9ac112d8cf932a1120c3e73495fefbcc925acdfc7f6c98170fd64a0fdfae6cee4fdd44977079f8f7b1c623cbcc369842854a7acd626b730e0ff965bf4315f0f261cbeaecdc143773cfcc8ff0e3b9cdfff387398ac048ad620cb50de192b49e2db63b0c576f20e29c8c116ab79ed16c6632faa49f765ab5c6afbc37d6e8d7c7f7d341df99c9116bb4ece2d7857a097a5f4d77d28fe03a01068a45bce2b7062563880c635b28cc8e4be48ef1533a0f6bb1c61a16db512e288e5eda63004b1a874f853ab4b457753d418b272675ee3c441ce2e67a3e80ec450d6a56bb25b35d728e4b04b50334ac0c017ff894ac10d0859f0ba28145e67f713b0a6dd8661123040c863663ade1e735728d725df2c1e503f7719733a5e2fe04fce81278e7d99ea7361cc55684787e513cf544c015706df66e64dc64ac04c644b50b69bf36da55acb06a3615cd9c6c64ac7ff1def6724791abbf4b30fa1658fc84ae807dc72b297241a8070727c1464a310c6853336990212927e9471d4969e48b5fed86d3db1758181c2de5b2dce01570fd3f78cb89d272593e61132471d43c05a376bc45bd8de61c6592d02b81b84b45de7435a9723f312e99f7e15ac114953466c1f819f9af5b6f2d60c6e9fdb347d47104b27129591b9cdf4cba34f26567efe4e47e696a130a744f5ed10f564f770890dc6306eab31c5a5cc28f8e3ed7fe7957d89adf050388c9fef6168226d13869b830120d4e2a585f9dd2b24153b04359c448600191f292cba4164fc922463f18a99f456efd590d163eedfc1a2dd57d9302bc3845828d66331c1e70ce9ab7c3bf9686205906ad4403802ad7745a70525c9662fc66a6462c005374d4cbe0b08162662e0274b9ee6a1403923a6012056f64d714e736826c0160b9f5f0b7a06c772cd5356fa9d8bf597b7cfe7681b7d5816c8f889a4e663ee8c00e431f019945eb5e492efb3cfc8a368d2e7f9c2e9ea88eaafa6e323e9c70a5478492504a77a14b34eb4de6b0c65190d0ef201ac0b83483a51bf23c3e10338ed7ad3f7731b85d7d32eddb21a8ab08b7f077640478807af39060cd406ccc4214344af68ddb713f6df476a67883cf5cff014db1d76c5642f73173072a459be5d3131947f5876892d150a1800aad96d524dc78e679617081bdd4fe21bc4637c8fd9ed40058ce423b202e54f26fbb3d64e54f8beba5d4b07ce576ce96dc2b0fdf4f7d65f953a77a645578dd5adfdf7fc7461934ad2b9c25c367c99499f2922fbf72f5d8b274c00ae34d9449c3c7741e7e056252252cfc530d969eef559e99f3be31b956613022654d55e2de16f6b0eae5f96fb174e54c710b3d88f4178673095f5519e750f2326e098a39c23865d97bfb38ec782f8820e4b1883320c47d2fdefeaa5f6070d5882218dded13222bd97341e2327100f8b215442bb141a445b26af6491311d993a0d4585dead2bcdb8628b8ce449852222d273bd3619ab4006fc5001afe3ee013ae5d1d73597d24221efcf24dda9d321a8c170c9e1dfaafb2718fa05814ccd6ed5765a0dbb2cdf6e6ce968e570366a3f680d9549cafbefcaa2f8a229093ffeb618ba95f5962412a4d6357f215d8787461a183adb94f31a36dfbf70bdd2cf3dd98b939cb48b3e7763fe5e7b69e5aaa6acce380a0daa77f709c6bd54d7841c9c0ea286134e36df08892b555f93ec134e2d43356be6f83c33b77285c2c0d05a54cea912c03b2101816fbed80369a2a29696e5d93807ab76517fc7ba5590b2074d7554e985031f0c7aa29931fbcb2b871d89f7c9a73e9b0a1386acad3cfe6e0d4018cbf5c5c16e59483558f7a249c228432dff0258dd2ee8e4d57c6b3d52050b6e8732ac0e07d6ee214cee7c8e9062c769f808029729c136920dbe8fa187b96c3c1a62dee9a6b397a915f067a1d856d4cf451b7f7285cdff2fbb1614c8c2848e9d9f33a6aea35728839915e040fec49603b9a7f2eb07cc2f99017080ea4ad11f212ff17707aa29034e7dc34abce64217453473a733f8fe11444b88796a17551efec7d6cc3898c781dec9f121ae27c52aed7928174d8a71f3e93d8ed1bd480c1bef3ba65b49e2d49c9c5c1073944ea5b54cec24f41d868bd53aaadbee0dd2577d0d5af14cfd653cd1618062e099350626498fcd731ae88f8f972c1cf5bc06aa6431181766019d50838b7ced29e95abf61062f59b2de6582090aa835a5fdb7a1ccb4b5d8b5f9974cb7d0132911368b74368e8fbc580a29077634049a8cb701af31f1d81c4f3009f0953899c47b9bf0707a93b704c40b06d404c7443f985ed0d9ee9608360a2e84d303d4f3921b5d27a74487bde39cd7532abf27bbe31118644a4f87b1bebf31cdc59aab4f97664ccd3966d401ce96f5a354cb3a2424713d65ad87048098d63be85582f7b92bfbf3e3e26909271c3c6bee323ae369df9a4225c1f0a2e5826357eaf828f6b2525e29a576d05eb1aeed91a324f9e5c5e81ba4c46149757de5df5efbad60c69982e649422804de73837acedf5ab90c8307cd2a70e10e3de547b39f7853c2f7c8b47597bce5d68cf2651e0e1017a433cc3d44364d7711f36ce34661bc522e4e3150679fb3882b57e6ce4c905bc4665f7ef4ed94627b04379ae421b575a166763be2881780d09bec415136a9c7e4394ce8106e1e1dae08388d221756ee9a271bd50204ff4123dca62829c2a4372929e0da5bc4560a8c578602ac9c9b47b7be64b1de43c013aa7a47f32ee552e39fe7ba6fbc4aeee0ad2ed467cc46ad729fe792305adca737fa39dfe4f7b5398f0f13b7d9ddc664bc616230c100b5488a6b30cf10bb53098704529d007ff244baf7223d1ccfa8f78ec45ae61f10eb8c9b34663fca81e7d4d72ca39d0ff5223ac96e7cbe543b7a67bb01d4f81b385d31f9c01fe2b6edf2d2467d890dbf84756c386c6a35950c7760b04efd566224dddfa951909d67c994309ecfd4bf3a6be9852f33bdcc458f5730e1d45e6718cba682d8027fc8a31aa826af34080868117f45dc10d88f7e8283224bafefd10a0aced08aaf5609485ff2f6a66fcf2a9a11b06f0b6866830ba318b68668da54500e1a5645fd5e50d9fc802c9c0324908413a9f7f3e64d1258eafdcf0a9cdefb29b6db8a31dcd9d76685a36bd22b9017e313fd4e5e70709e96aee3b265c4636ae053ef9d40efa4fae4aaa5c394bd55b4b3a106632f48f6758c212d7bfcfff0157e542317f11b48169c8e4242a901997da98e95d69186686bcf82c54d025789aaa4cd864494de8c2fa7c64a200ae0ddb1317cc0fdc3118394703ec096161247d96f2c41181a2df4dca237ab7b4803c2e488d75984c50fc3f4f1df2d1e30b30cdef836c5b28255240c3624bf8d545e78a9eb4620a6572390f6d640516e67cc8f3d5eca0955b54cb82bd4f0858dbbde97f92c3419831c8fa7cb347ebe67c1b7889c1e8783d149f51bcad23a44b4a1ea8fd52dde98a8b35ed04f9d6b4d7e98e883d7835f9966840c5392e6358862aaf6d3073392c3d4094b48cd1911f1a11100dd8c32b44e0ffeb0908e9d0c549765b115615b255187b0f48c5c04241780ce37c4427788062c2dec3c577528bf5f2fda87227f0d3c5f890978a2ac88eb9f4e2ef59acb3143f57bd206b430da5391593683fe358ab7c375171097ba07c9918fb5a1fb9c0c283afec31fa587af7f0ec208b38cf7d992c6fbdafc962ad40850fc01452a4b4ae7a13efc2cc8bbce7eef83e6fb7d5b3be8de0bc3bfd0cf7b4625847672eff50a3c87714f60e1f70e4eaf513afaf1310428e7bf8195ad97b582ccceb2417e07e0164d1092f9cd3f2b7f4113be5dabd0efe6c8883ee0655be08d924bcdb9e33587b068b0f29ee171826ad7620cf40b7371e3d1db6725548358f7aabdf091d8c39235e124dd04e7a4019fba786b70217f9eadf5ed24bf64f3371097734b9ab1dba2b4bea5460b038af21cec127f47a585f941bde513b46faa9830397e34117a0df56bc6ea0b2c749891ec365394817d2ec1900e9753864a33701d829fa4dd3aba249e6d9568162974dad7ed3b568bbd181cc41bc99a47cf48cab921a4485383d8953e34e363b45efc71821e7a1b2ca9317e811596dc6dacb839e99970b3e2502eb1fbaabcd6d70507190728cf993149b804ae36c5a4642134bfdb0211a807a0af940b8ddb28d6c35afe6466d9fe2643d11ed8249808174fc1ba1ba013790b986a385bd061d388945980a76f45deab05d161d4c9a036654c9de545f462a44582ee1f08864f736606bce2341ec3aabe6ad6faf290c8cfe67e991a173c93894731c4ff229e68a5eeed8c33d2de90b76cd0a2f97a29b563127be472ac68facb4a9163b226c1549389a95a34af9301d60e9448bb4c31eabcea52a6f06f2c91c893029c6a5d2fcbf2e4d72f5256d425934c68f926749c76bb3c1ddb28c4b43845d05780f74f0e6636068b25138324ac21a57c2444056c581616bab052a4b84439f118796e2eb07b6548c474eff1cbce9f4ed8d9c10fe5c50b281ad8defcefec617ca6b2437bf9e5f620afa9516cfc07d8f0723a527efc85a41435167b26148258f783ceb2ece785fe3b2df831ae84606e25f67521810c675cfe9fe30a4f50a73d4fcc67f7aa97bf92ab38ae2d5e0a393602ecd12f893a6e24b259a99faf0c7c281879146b22b3a174f9d62861aa875143d980d4cedf220c403db9162707e850825333602c085e3da009e12aa3bf86b89aa8e9073357ff3cdea5de52baca469af0959057c6ca2f7603b21b0eeb0fe6f1be7d9a847934650d74deba8aa95477fddcb8d46310d23fd76a4dea453c9736e97657f1101daf36a905831e0b99ed1d6eb5c214a80c91a0d204f416a2eddd644176a10712fe056d4ee418285ed6da44c669a9c83c2eb5f2242256711ab6f640014908efe14199a5c3387a329a72c4567d87298dbb31db7e024b0ac649f9692d86bade8f2be4893325c6aacc20b1731dcb7b585b8c943c847d2a1b81fd3def7b35216c537ec99b9c5dc11fafa85bfed190499fed063f745722238fc94d92fecd99d24e86d1033dc9a451a29d071b4d7dcd982cb469a2710f9c6195e8dcb65657fdbf1b85d136c183cd58145b859f2e5662979cb2d6f5fa0618212b7c9ad0d345686b7b8bc3172d55737a878aa2ccdfec071b446c71aa1f275187b0f8131f3f4f54729eb0c9cfeb0000000000000000000000000000040d151b262c323d", + "result": "valid", + "flags": [ + "ValidSignature", + "BoundaryCondition" + ] + }, + { + "tcId": 36, + "comment": "h_ones below the limit", + "msg": "8100000000000000000000000000000000000000000000000000000000000000", + "sig": "7e2643db8fe3d42ff7915f1a99f6550e097c608e36eeabd590a29156c0b223834da867e86b513a14cd42f6037591a5b61ae708cfa0050a4f05668935d1a98930c4d1fad1f27cf637a7c180cdf1a686cd38a0b2acedb64dfa5dec6c31bb4071c35f332793c9711c1634d2f5b690c84fc1f06d4ea6e154c3e9259bb99d907d5f8dcf9e6e16f82934fb9fbe9e58cb11549454ce0ea23c75816c0d6144e704bccee594609369e3c5778465e20f67f1f8256a092bec4974752d26859bace25cad2bca7aea52a4da4e35d61d2dc30502df4fe61b03f9c0b69e02fa33551f6516690b1246b6d73a0bdb8e6f556859b9934302dcc12d01b5fb7a4cdd17dbe9d8f4e2f60a889746a8c5c945d772276f49e0b4c533fe56e496e528aaf209066cfb6ef541a5f46e5949a1d92f977855c6743bc1e39f5e5a45bd7106f5793a80950ab708504ecdb1e6eff6ec7073a004ca8981ae539258c82f8998ef0ddfae4f9bc635368ffcada8a94358b39adcc7dd8858ba760ba70337f4aa8fe6210faf0c050684623fb964572694323485f69338139accab6aac00adcf4523c6ccfdafee9247540dc05f6807d377583852235e92dab00d504c1187f3c4ab4bfe68335fd5a244294ec7444841a0aec51cefe96dcd47c41847bb7d3f91ea59350e8f0e2f389ab2adec347c232deb710d1f4931abf6da8b48627b06e25deaebfba191e018bf1411b4f8a9d520a39d092017cd2b2abc030ee3b0e5c329a00e5c7260ffbd05e5465372697d3ce6fbdddb12ef12dc130214828263aa8a8cce877cdcc4929515d709a36b481a8540e44737d684b8aa2b489232e60a0717bf521ff19d64e094e6759ba5af4faa7cde80418e7239c96181ea3d77d5a60fb50d9c23141a8220fa73ed2db97b4f6e0b7fc2ae8d0c926930c5f7739ca1e0c5c79ae16bedb36287f298a92545cad30ea9e808f9d16d4232d2000a3fc0b9012342df3482d7db267c25a8cc5b3a32b5c1955811ac0ab2aad4ee82b713e1992a864f8b9c8ada846dc59ebad7636ca78ee0236931a1324090dca30d348554279ca2ce4d0489a75bfc70bcff87e059628430d9821d90304c7e2db63b34aa262cc67723d3cd004e1cb52c54a77e4a2b127556af3bd7c27b90c71b44e1fc3def1c5f6c874af3b97f9ae36a84585c462d6e0b241f6abeb849499ab5a34e765b00b60bcb14a9db9bcb763cd151166c9e2e1d25254398987dcaeee2a77fae944e1e9b6e22a1eaca5d2dfbdc78e0213309f524044b4f59da05e9066ec0d23be68db47d2f40e7b295e94fcc80de94a60db3a8d9d472e78e5ca29c720fb92b519b098ee0e4b753dc608b71f16eac9bacc8551508a0420b54c80e9a6d9b30b4561aaba79f66efc4aa839f8ba16c72b54bc5ac9b9310ab521600a7a868c7807fee6c51f98d01fae274b38e1b15ceb21e8602939d5d7e25bb6464a1e1232314b28a8cb1a2911ad59e3018feda56dc796f2855b33ec11c012859def1475fef94f2495101c72d17b984d145fda7722a0a39ca92761fc17d0dcee2851c379235a67a39287586e11a368d2d4a7186543490dd30304aed49dac63d7e3a1ffd08a1aa774ec94f518f5b6ba00d84dc5c2e021f7c294018af225cf09015f1f409ee9405fb5ee5a359265e6b7210435d6526a002ff0f7076296ccc0a8fee28f865c7ee7dc16dd0517dca77c365db733f7fce76689731154e2cc3c4d807b06bf621f9056cbbbded580812db967acd3cbc4fc4a4714909a2b8d1b28ff2eee199662f1ec327d091374c1c09e45b39a9bd43891ceb9abe1dc31dd5612df16278b732e2bfdbdc170727f8b503e52b766ea8b614a61b5e6b5ab4c8f46dbaf7cf1ddc0999f7690156235fd2f87e3290ed57f79f03df73e8059aa33cee0d6fba87530beca6be88d67ecd94b532c4f91fd0a53dbb02565193683893c65c489180ff84e879b2c1bbf35297241acf7174714ed0904b4bdd44f5ef25af0bd5ca74872715f879af421e4c3412559702b48c32859d7e60423ca6c6800f63c31fd5b464295f63274f9a8e82843a2cf09d786dc50bf1a14b30b4e1c5bd786d22974bdb1a0adad3b4f071290679d7155f9bf86a6c7dd4d838a4eaf1586622cc73f5b997061cf4732e9e95f6c33cb966347562c81d162223c3e273e939a11e87753b97872abd74cdc3874cbccf847b9f9c7ff9c1ae3116a230bb5b2a4913532c90798b1191153cc1967ba23e2f2f50c918d6b9591874afa50db0a356e810633ef30d791b8c2ddd1e273602241eb2ffd0aa235f9eb1c94be30e2df32e48fb2b8bfe02c3d2fbce248ca46b842de71509d60d4dc207b8fa73801924322f8d1b1b128a00d6a41b95e6237bdf7b7f5ba64e983813227c764f898b9cb7a35c3805eb6c663f461dd2286efd7b4988f9f21a864893bdfb4e990d3c0d4343038a4dd879a498fac1f11777591488b0b0ea33a1f1708ad710fa8d3acb8f9c0c04b13b2c63559e84e52af4f598fb80a2985d6c62bf6ef883f6622f54950203535bd997ca3214319423906cff73ce6793bc73d22f2ee2ce08e0373ed55a8706900599214795dab0bcd2615834df5dd650bb7308f0bc0d7b2dddc2516cc35e681592112b95410f8657ad6748800f7210af03128edf274aee83baa86609a62e8aed4d2e596c85a9d26fe4e4554bc65a8b4a79da5344f36bf3028a43640365ae45f819dd136398724b42ce29a93824f92ebb5931c8ddd57b6f9b6fdc3f0f653398228792277ff57746103dfb75da89a48b2686184e5c907c50ef5d3f80d12889cc4ce96d783de3bb4354dc8319e62e7caa0aac25c13f3e43dab4e7b6b0073bd05a05d7a2179a262d22bf2eb0ff00cc0a50ddb85d711fcee3d739344a9322c5fe10558ba120b06667ef7772f034e24aa7f50a946c65072c4d1570d88a3f103946e9d45c44146bd5ed1301ce5f8a858b90e9acfc1346ce78f6a0029521f44403a63ce50e37cd0533e24274f2621b26c8e1e4608e7f4c42369fe4bdc2e30611c9129729020c8a0647c8fb6977fcb5a08dbc1fa203e49e85fcc6ff8ac01140bc15b6d451cb1ed72651f5a6378a0f4b122c561b37cdee294819e9cab719e2628dd84105f7ab3829b18eeb97217fcde463be9ad4d9733319e80f666977ef8efa6e3d5ca4758a57c0accc8eca2ef70e66e7d568be8945b10f6e8c40684813fe34c4fc45a0b701034ac997a6ceb9dcc68c6984463d26c029e584741d4510d0ab73814238821744dbfb1caa00096a1d82cb9779c019c821a7c84c03c7245d3222622057c15c356cd91a3ec8aecbd42b4a49ba27eef91edbf148e62fb8550664f04f8262f7696bc18435b9ca1918684a9b7257c7185930fd71b4963c298b36874cc7c740201e4de9eccc17263fcd1c4fa9e47f1abcb3a49cb1ad2d6e12e036111a71a2adcb26db4a9bfd627a07d2fee541ac1cf6fd447557c9acbdb74ab08a1122f1f80d725256b2c4f5d92fe49888acd332f19908ecfdc6fc8b0a6c8ebb8082815d5ba7d124d0800f5b32f43ff17402e2de95b5993306046f896ca085a2e421b9f0e376a9fb1548f9b5b4023329eb2466f116da7e07fced772909f27bb37ff9bb7a27ed084627dac5ecfd6f5d0b7a2c207153a3fcc96e8463261651e82c8a7f45889e2ccd42be425ccb0ab771c466b6e6234d01064492aac0e35d6096cee82eaa6c23556a365114b3d6a915c101fd920f48947bea1f15f888474e876ca801e2a8701b685d0a79796b0f3aef3d60772b7c911fb4267fcd1e5c9a23a6cbd1ffd6463f8dac9f386d1f76276731834901dbee23c07fb81cb364e62af1a94d2cc6cd18b964a1d41a99f57675308fb23364180772537492338c04ee4e27cc72df2cbd6e883697e8384cb2742da50e70a0656028a8eafd27f919a58543a4a5432043c292fd64309d079623c3f2c32314f1772821b75b663d9ea10917d8616b4fcc0f7599ab9b49d2ccc2f444972324f9c1b9d67ee52d5aa565e17210fcdad84c19c617e999338dadcfdd9d44d84e6fa987de793acc25a4ca7cdf31ad33723710ec0264cb604aca57a39c468ee67e81315fccd4acee2c9075cf42cc65dc8964b5721a46797164d2c83dd3be93d0d73145647e2c9a0445b8e27f229225eb34dc54e8e6da60d8a3ce75fb7e3ff5383cee5f58bdcab1ca20f74fef3f0c64df20c7d2d0a8bbac8944e478cb29d46027c8542223352b93ee687b7046ac450b8205e6402f8686530d6442863ffa1392f3f7e10092d29d676f25b6e98fa0296f1196f5c37775ab5688cd90dcc514dfd6e2d58554f4f5cf7befc56da445fc25446b5d7c0c7769139ff2ff6c48b569a307f51171cbf2cfa57f55f42c564dcdd6b2a4a8d3430fbebb9ccb6f7ee870fbb1b0d5bb26448516a12e19ed88107e482b73ee566923296d49f6a0748f098b7173c6a506cdd431a541c146ee12c6f816f70795747448b9b62fa6088f0206b62f11532b9942decf02e6163c3a2a59053051d300dd514563a334d0cade3c5ef715813bca9d662f1f886db1b7ab967cd7e0e4a831c189ff91a7e22d1a98e29fdb3a62a91d9eee60cbd792ca5b7f1a6f26f4345202e23ae071ae01ba21db2e074c7c5d45195dc5c72eadc15b4007bb29e7c7c1a278d9cc6a48c79fb6d6c8eb63cb796a9ddcdace9b40fde4fbf5718286243e0d59740b26ae98980ca534f36665e805d62c56e7ae3006492ba3111a6c849a538f7669df1bbde3bda68b42df4ee433e194da1824e539de96c51238436860fe32fa4384b3855159c29d9c832d59bb618940a765976a2143eb92ae46f30e6820f14b7457015eb4d53d753a2d1a1c8a4331cf673a4f73bbd8a742177d05daec19d082968b776168b774aa06394f3cad67dc5ddf0463b52d2d35664f7146e99872161e48c75c7c853bd74f9e72b549c1be9b1d508d36564e5eb77b6210d9a37ee96d60bf58ce6bdabaf61608bb742146d847378918b86069f3505f25696bd1d5530053b4ccc6e2d3875b7fcba7f09e7ffd54078100f96b0b93a1d10f984177f2a79f287a60fe307a502cbb24e8a2e60c7cf68e32738264b25bdd5dd8e8048e6837b12f3b9fb4aeb9335c304d69e21e2e477f9f1c4d24fa605fbdbe165436cc2ef6a6451d9bf6034a20323ba396ac62ede733fa9125860ee1fc272053799758536a7b135a99dd034a90caaba29a49222ceb0a2e7effa594b278bfce7337d9dc115f2973922641b9ee36f3e51e83cd2c40dfe99af01669f6fa726f362c9207b2e35a4f7ad3d9a5dde18a93b3eb2e9b86d98cc3fccf899824685f3eed703bd9ca5812479206da26ecaa561f2dec3de7d150d4fd4107a6f4564587b5d2da2a876d7a8069c90b7ea319df6ca502783017839d5abcb1bbe0a4599868e5485e5b8bed8b4ecf2fbd9b8c7d5cc7ab0da090ef77d86efff4d2e56dd4781017f26a03340792a77a7c20a6bde7097eec41d502cd9bf696625935816f733d14f277bfe10ebb33a958699f2a13549efd1b946086ae16cc80e118c87b7468e2a74c567b8871bc9190d645e9bbd22b3542f4effc9c2e1d4417e38287de99dbbeb62498c65788d1345172bce1091a1e61bbe937341711ddc9e1bed90facd61cea357499f19e8efbfb3352096cdfaec25c3a05cc37196401f7725d31e7d0d5be30772f4b5cdd0fbeed84c00ac2b0a7ea4db5cb8ab20e378c5f720f13e6f22a5eada1e983ac03e3a3567ddf47a2b86a89423f01110115742a539ea8a3381a0a50d6fc1459f50169f25bad7bee4e83544d6f306f28a4c1d9da451673e5ee6633af4080419f4295e760087908d5976e4c62d7d81826afad8269445aa3d20bd073a4ff5d20db71d45c39b73473b20b4c4196b440f668200605f689274990a1b37d4a6f48ac7dc54ae95609b6fc37ed207e6a41d6d911f472f5cb12faff6809745cbea78928fe12df7d1b5d48c167f0dc92af056896c5b051da90782d484462025d3ebdadc2ce9906e0cb26664a71c6dc7cc3dec01a8d9dcdc44fa4afcb8e3560fa099f0fc7c2d3d64f59f50ad38b0d3870403b551924bb573f35e76fa863b22a2f087a9da935e14e433093d33c325e28d16153da0f201fe80a1512ee33d0bdc1b8325387ba0514f3f6f12ede4718a3d81e95f1e4563f1a9c46dda200d14ec9c57d2ac8d8360063f660ad654e74f0a8abe40df0824062923deabe80d1de5e6d00a6c2f27a0903bbba98e8c54c13412d72d09547eaff716394c52c6b2dee50b6e73b9b70fde07f7508295b52270e9c2bcf64baf174da5d233517aed91df8af011ff653f2181e9dfcf6e913bfea310883a5930cb49f299d7d8a1112d859f89ec0382e288c797b68ea2bd18560ade8188522c5f829b30b2f069f086af11bb32f50daab4975bad0feadf9cb53c034f5e20952f06d7e2082ac698e7e0e14f7512e4a90833722ee530aef9ba41b20999ca9c1c3d911393d4f50778e92abacbbbee61f203a52585e7690ab0254697390a1aabec2e3f2f63c4578849115496d79afbbfa00060a0d26427795969ca6afca2b333b3c3f5ab9f808151e2a2f36434b", + "result": "valid", + "flags": [ + "ValidSignature", + "BoundaryCondition" + ] + }, + { + "tcId": 37, + "comment": "h_ones above the limit", + "msg": "7701000000000000000000000000000000000000000000000000000000000000", + "sig": "947f5e4f2ea32b8ace2e80df3c54448dacb064fb312416d97ea24cc56ffc6bad76255c641bdd8e69e750af120f11806741324be720b6e5a287c47819c9fa3838c80ce8ca3c6a2150ca1a72e482c54a70a083e8df66f44856623f2f92312e183912dd370c18390ba12352935a3e0ba02886a4f96136e2a868be4d6db602eefc9dd6e14d62eeab29f21b1d50756ccabc31f53d4b2dd834ab08503c4a094998cb072a7840f9ba135cf67522b39701c07416100f224b5f2df7be74010e316ca9f0b2bf62d749a8e47e6741f918dc6031e3a7713dd8c6b524721a7b15e2a51eae28b3ee0612939654c60c96fa93696903eb784eb1bb9a6760c46ba1b1feca94bfc8f64fbbbf458cbc119bdd6865fdf9200cdfb3630cd15ec2d45e11c7bfa915ea0601a3256027cd0c296fb6018a33734d52281495209e66db4b18438a3cd5b55977d327a891f2bcd85fed1080df7b19d5fa99fc9f13da5fec4542578c9b256410b0370089f36954471fe295a495e9e3833082bfc5f66bdca54705afee1fc31436703364aa3ab8b8fb4f9a470373ecfc9dd6d6a4d301ec0e50645d13fcd1a434fdeca3a23773fec9fb5d793b0439b10cf1ebb29b22caa4715c000d0ad096b861f185db53e4bd2d5895ab14ef73bd36aff2e4d6a5a954e9bade8ac86bcad42372425c3af9a678c9cc63146c3e444a903055d5fea57862e89f09e60a11d23cff2c5ff6f54eee003c92fa3846e06eed43937fc7e0b88c5aaf3236c52896bcedd8f80f543c94e7aa5058187dde017141222531a68d40a08f690a1b4a83c8a2d2333fc81f1022670bf72bfa5a6c3aaa8876913428a15f371ec59457c77ed02da70ccab5b9535792bf49b589f4fbe6eaf05fe6d5dbdc06c2a06a3a2ca396137fac0fc98b688b93bc8d3c92dec72676435017298eb211c24b509dcd7dad78e01556c5eb516c77f37ad19c5a922fadcfc6ca8f0894cf07f1db5d2a8198bbc6a06ce907ee3502f225aad5908c97315a0fa896e596eb0a872b87dff5f96a5fb8491e080b73b978d9a0674f3fb0bb796da42698737af7dd96d31db68c856fd6b2b6d31c85ff8860247061bff1a7f0061875ff5eddfadd7e35bbbe650774417a3936a41e87a0557aacc3e3ffb01d170d88dbfa3a4e4e4e0a7070bb153437b6145a3d3e368faa3e70445001c16122e90131711c95879b78c9f09ec0481d1c3b871661cdfdcd7a8a29f384b8c79ae357667c7c1ff14cec3b200fdd319ba84697fb62ad016482840499db66e5ec3ec644132ef2592da8676a09bd12b3a7abe2c17f5bdc1e735ae32269607124898d050bf33007b6eb9368bf4aea07a91600562c23311a025742281d9db8600759842080f23d1df4fc2dc25f408a2d062a72217109ce31a90d137e78125657c529d48d6123b448125f48144131f4d7ac203045cb1510d5673fee4629aa15a27eec85f25fa7b84a10414936933d9ba8f0613f67d6b4ea85469204bf8988926210d32f59832104120702e686a3f7beacbae7e7c0ce37ba705d2fe3550d7a54ee1827cd8e8c2d5bc22d691785714f8281ed141ec0089023feee21182d09a29a4908f38396a19e54dc35077b2cfbce64348d71db76cd9042a6c399d9826cf4719f717a96684b03be4f1b5483ec398bc672115728390bbbe4099098f6395bb26b17072c65c1af749797ce362c1f42f57566c5a22973a048b78fc1be0a6df23d41a9d351b9c5dfc2403936614c72b5cc7b298dd992e2276419fe736e5c4f8e8ed6d09a70cb3a6a95aa7a8fd355cf38aa0342d61b63fce1e57093b410550317507a1ca9153e3a34fb666658a935bfb32b7db075a77a9d2e287eff6747aecb96c884281b8270296192b4851f666bfb6a4a6db5f29ef42b5213f0d956b119857166342af12dc83bb5057723168058b6802f2126a5e470207e1aabb6879adf93ce4a4e3533fddf96a23e94759d0a0f6f8cf47ca339d54a1e0efe91172903ea029a5dee53a8112d581569f99e583d91385cdf01b239226aea06270be018c1b632bc5dce85547dca9871fb6177a74783e9ed79bdbf79e53f462fa933a2c27380a214d23c84f608d3bb4aac55850dcd6fa29554f0f10e06143d1ed338a9aaf9b187b7fef97792bde143e6ff190a08c72e07c7568e02b4776fe7ef18228dc5fdfdddb81b27d9a51a1b0ebe60714114a96b5c9ef09295843088bba31ecd8d92b5333abcb9971b6c81e145f524fb924c3aaa0750c209fb067584e7145d98fe041b8d45cf356c83c9c9cd437c5ff436e6dffadd8d0c0c9cc079d95e8a745d3a2558c3c2ba5d5bd68ee6cc83f3e23c28675307b86e3d4beeb0a4d46447bd5adf4fe6cfda20281f950eeba9b8417e871bbdfff5052b1bcf6f815b829f68f7661cc1ea92ad87222d8f0db8745f20d97b45226d9e969f47217c1bf79c00169204f5188575c13f8de69601a6ecb381987ad30cc0bc20dbd9d1dc9dcce525bbf5e86d6d9a1a7c3cdb26c5c6801658fbcd5bc4983a221f3e80230a49bb76544ef564e1b5b2661371e77cef32b82ac2eb7376103d16685499ccdc375324588117e9429495513324e29f29c1769f7da0b0759d7ecdfb26eff8b5a5100329df652f016f72e7ecdf5b21c0773334ad984824b39f6bfada5a19b89eae136c2e2d7d21d64cc96e0b47fcbe4c4af91b815cdeb7b32d2aa8243081f8ad5f8ca74250667bd8e4b2f77485b860af5132341811f6d777c0b6d1e0cb078fee980c3ab1fea5082a7a144e877ec1c76155d668de5995002c6df58d726528f2780772ade636b7056ae54a58cf402d8519d50c2eb9480cbf76d5ae103d928c099b888401306f56e518479f15d7a39e3f9d819bf48aa00149fd57e1db2648a27c60fa8e172749846bb337cc60dd877ebd34cf9d36c3f5388a3c014f3268877efee116be73624d3a8161c568d733e3139759ea0aed36791220d4845839fd9ee1248dc5b1df90964f055e6e9fc8deab5b7e9ed1913c2e2aff07385b01273408da7caef597221ec8bda1c804392e054d163b647c5d85df6ae897b011c117e83bee8d93bcc22e89390fea1c7fad03d9984be9c94b98f389d32078d7be9f921dcada3285cf066739fb20e83c341dbbbfb8dd7857e5f157e5566485d4581dd228ab5726f92a354027f318a80bff5d174bd687392c1135d3c4a94b365db2e65c0ee9720c841425a43b2774a87eeb51f5fdc96926c91e8f256f89d5c011c541a4bfbe83d520828fc77b88e9bf78fff35188eeb3f3ecd8308fd3feeeffa0e3e578b729b7cc8dcd1cfc689ea599983e29ae00603371c3da65601a6228840141dce068e0dea36d79bebe2520686d03818d47d6b9dafcfc0477f2cf34844fb216e059f688be1a63ad3411ad227561da5d9eda80f65c9b4d2bf680ef7ecdc86e047178c2544d469ffcfd90f8abec52fd74bd8f1289ef6f91b57b77298cdc93416e366a471467b41b70f9f7890c90c0a9c0d97cb91d93eaa4c1445dcf20fefe35724a380b4260b2090c46fece639dea85f5bf6d793fda08cf3a44fbe429b21b50445e8422ea8e2333f888ed676d85e0d61e79a4ac68aeedfbe2d8ee47bf9cc654f902d748627fbee73916b2455a37cca6f5ef092d888c6c11d2b76f6a977bf5eb5c859f82ce0d1ecdf383747556588578be206b8bc43303bfe59b14b3aa339213759099323ee62f9146886027709fe978bf92ebea3ac18534f745dcfbd79a1b42c8197dd12757728db7555627a9ecef10e4c678ec4b313c421e4e0efad6e888ab2a9c66247285606330cc4f4d30019bb0bcff9d913eb82d012c6adfec4dc8612cf021cf69973b57497e9affe89e621ca626d423b7a7e39c99d32d6d9fad77e4b0e23d83640265bb70b9bf22639d0f7f62b7f1c7dc469dcb96dd301804d589faf5f6bc4d8494e484cb1573d572104d54a694943994cfc0acaaf4842bfb04074f36ad0f2b2ea47704c37c6d481c6bd786f27b71bc8f0277084de547c27a261e442278d335b2ef8d7a88e3570cb5cb70e5bd54f10f3cd015f96ad842508770db02e27bb322bc59139b156c91dbaf47735f83d23f91895c3df7335cac57d5ac4e95414514a1769980f3b05e99e6d9b484e1118a7e3a85688775778bf15885dc97e8a941f1d54a9f4a758a83575708eaff6aadbe7a21de5ae1c8f034ada6f495592e32fa4ed44b5c8b6d2d07fe89202e5f1433eb275c4f80dcc6c2a40c6eee82b9011d54ddcabc334cac2ac86023a0763320c38fb385777b3a67380c2ba49c8a4abcf189aefd1ec78dab419d95b6e54fe4a6b6051f9b3f0b1006da66c1af0e032285cabca9ff9bdb53e9711ee82a476372cabde4d7be4e22d4e6b136f3190786fa432f55361555a622d63d7bfc5556f10a9adcb1b0d0a18c555ba3985bc4f03834bd813168706e3900186df8f9cdc2f91ce0c44813528e604e008215a681758b2435beb32a189b65ab39680ac06e56f9867cab92454e56ea576cd55633d62eb90fbadcb47dfd1b492015c8efe0a66f877e78c2fd9718e32040fcf478939c888e0097eb4f330b0b1978e840c82abeefe430e3e8ca7516694e8026ca89023cfbf872cb3f90b97c9e39a50aeb878eb0b19bc986d8929de5726ab6fba638e8c5f4f66685960d0630516a384249cf0f90e86db20ab3ef1e70ff81667995cf364018a7cc0c7da753464c3d154a73c583bd1396eb1d478b5d3124a68b148d8023e7fb7e8bb298b60f1961476d97ec945b1b01f39edc0c75c19e480c82faa904ab900c469fed8f4573d83830d4168f3f44a6f295f90bfeb8dceb7b836ffc0486c7b4d6892b3e43efe67f9d5ca2b3eca575f71fee9ddde5355daa1be5d0a0b23ae32080e894173f1d7a6e2cfc0011cb26412fa157b0ae3d1f5da8a36e2e0d2a0f639994a2acf36f7300e9e141ef570a338f1f23508a328ef4e47012ad7bb1922e057fc5c04e19b9e0820d5b5638cb15cb7c5b9bbb447cad35dccf5931dbdc3c823746081fdd7c876c0a50edefc8f7f5dd8e0983b8ddd790ddcf61a083e0cebb8a4059d8521b5a8a27fd36b42dc5fc13bbfa2d92f39877fe7a8ad7bba2ac6a6fcbdb9c96064955261031d6584d9f635a687ba19c48747c187ddcf41d869ae1704bcfd58680de0f044eefeda15277757b84e1b0affff80376221a02fc02f532fda980a81e899ba2be0f110af64421611240c59b3056ca9a858d498b441156d1ba47a8765a4097c81d35d4feeaf7b9ac6aedce9a276d47c5b11700355d22ad26cd5b1ec6bef6bf31fe57e9b6047cfc9985823e58239d3ba62e4c48efa4a72317f862f48d09691925d9b0dd5797cb1bc1ca2775219bd3538c30bb0f6b748ac8f2e68b01af1a4d62a27cf11bdec5fd8c41b11ab0beae668eb314696bbd22b161e56d9c7feab10162cd3906eff268a071d8b630df79ef1913f0edc7bfa7cb43ed434df4c0b8449f5d4c3f2e029bf54d4e7530ee2c367a90292eb11ab4cc5a8761c54d1ba809410f7aff0d3ac110657b4dd4ed48a8d5e7ee02a07109fc6ce783a078083acb521c1ff270083260305b14f14bcc6bcf9da0436eb8165b4c29cd7b9ed275e831c71df1f49ea5fb9c42224a8175bac81ca759b0e3eb752cee9c9e7c1035c98de96ed8266c5ddc9688eab8f5c0dfe4fa7d1d553b121776e6ac82c2fdbb3fe28fef714cd9b3dcb5a7d7a4a7408e0ba5ead3c4bcbb6638a693091a65e1db82689426fa0b0a514b38d7917f132d5a8d934af178423a085f22334a2b7fb58b5b34dff76b700d9900a5839f1ed07d1692ba525e03fa061805b354b5a1892928a1e62fb14fde68220c58a431ce9ffa3cfe9479e776047d6b37bd5f18d9f1e63f8cdf49b306882ba49d10c460cb8956ea03c2d1b2898cc1b98c31d5b48ffc9991fdb95d5db741d48b8d05a48231dda69dfe685e133b96f480d119bf33c145898e6f931f182c5f808b9284998867b95d7002bf2f9deca119ecea9615f3097979a0c2170b5f48b3e4454bce09648f23b22c34d0b512c4ec50b00ef16aeba0f695426ea208b6af5d2dbc97114bff2a66d18be4b96f18c05526e2b4e720c442e72f7d7797d9f1ddc82fd9f78b04adbb76a9c299d63d29458eb033441bc268d44485e5681e6ff7665a3f57567c42772822e0ac2528fd3ffe4333a329923c31c14846a7d87c55433cd17e8f5c6ee28e4b813905334e11c81b1c0a564422e841b97443b37ba1ff68ca23b023d9f6caeace9e1acc440634d0219fe3e748a17ca449064fe28d3f2aa7a92c8362801b03b13911136513843af7db919b585157600b7c0b362cfc072db52ef8e8b75d61042eaa5888a0ffaaf215ffef4d480dbfe84e9b6657cda7801efe827170d898dbb0b331ee86c1d4e57cb65494abfadc2e9169f152c5ffff19c33b4168cc54f21a6ea1e53e3d39cb1eab73481ec1f49e5b53f1e9edfc5288c7710e1c3073c7d0f6fb13164c7aa7d2f1313d9bb1d4d6d8f5207396c5c6e3e84f6d142b5758727d03050f134b8a9fafc2ca3b4a5a7c859baed900000000000000000000000000000000000000080f171e20263038", + "result": "valid", + "flags": [ + "ValidSignature", + "BoundaryCondition" + ] + }, + { + "tcId": 38, + "comment": "high_bits called on the edge case", + "msg": "2901000000000000000000000000000000000000000000000000000000000000", + "sig": "fdd5a8ff7fe50a8d42004037f14d993ba2eaa278f6f3790d4e5c18b932f9881112c654b8d8b624e5102c90951cfcc3670adb9296b751940fcfbf19139b69d4d795668f1b6a5f8707865aba56c79f0be45ed38b36639a48a3ceab07ecff0e9f034efad4fcf6b1568e662d5dd9bb0e70354389039664ef59c90ddb5856206e2b0fd44a2c0bbd519e9a1b17b3d172a7b92861e42052178a628ece89d628a8eff30a2ef9f88aa6bfe051a3b8430f60fb8d6148c698328c94467274abebc9e7669ae1a439bd92622ab14de0ae3f9194087258ed68bbbbad4089abdcf46f77c96fe1e0664aa2b2e373f36fd58cbc38fc4d51c88bd280a7f8a90f538cf478662743637e2c3ff7dcc94a5803885919d3fe0958d0ee8287ae06f6cec83e74c92b10d9acb263859936794afc6b5a05a6d8bacc92bc28a54cedbad8bc73f842e30cdedaa3a82c26cd290ccff268d7205742cc49a14a915b70ed048429952b4ac41f5296140d203189a69548b08789fd40de753dbb6282f5339299aff93c70bad2037da8b56e03ca126a6b2d261268054ead154bd96887bb8d798aa37995cc79ca8ae1d82afb5e118259fb4410da1fb4e8b06e62f5d7271d7ed189777c87e73a4f1430763f28b7071632983ec50b06a59202aa4c183a4ea0058ba7410d55efe3e4814c610ec5b3338e31bd902fdac40475372ac87b916ee298a371dc3ff4c552f9cee2d80a91eaaea191ba7a58d262b0c592a7f421be6afc75d57df95b2591d6a5d7bae6b5f0f18c0a4de9bb5f7069a21b5b3cd54144788602deb081a75341a8e4d816bedfe1b39fd770dd045cfa24dbb9fecf808adfc89afe1b3151f3880fdb8e32fb688cfd3ac33c52dc48daf32b0a59ad240974bfbf898491fadf471b8760ca9d98787de06f6d7325793b00703285d52bd802dd0338696ac6324bed84eb6ec33260a0dbdacfe9211e7e1c1e350cbee4992fa67dd60181f0707ed24cda0e3951aa4badc2e21cd64b77e2150c30360808712cad404cfe3c789e7e6c36ad2521289ac3a14124128936ca5e4061e99889be6e0fb261973878c501cadd5bf878f1bd3066ff459ab543178347a32d2e1267b75c781517316d9cd6c48b9fe042027e0ee56a468a704198b6c3732b190cc80587fd447d0eae50bbe34444d5b3ddf56a9476b9f8f10c64c443e15b2e19371267b3f1874d778f1da104928977070804665a001950855d56d4332651c9367f35843962f291e0e490b5ea06c286e0023217d5a8844b9399a2e02b3409cbdef849874f27273039431484ce5bf0b6865347d99ae99632222c4306551d754a6d799a2d8bdcf3736488c001ca7faddb49a32821bd849633aaa949590257da4a698f62d0911fc97300d56e6ee250cbe0e34931a3181d7214b9e83fbdb3b0123d1994c062da5dfb00cb7df0c1ac982145b017ad1ba1c5a85f7604d3312c3e7a8be8fcd29c2ec70bfe3a4e4877b1deaad26287337174d173f99eca1e6b143724fabd24eda124b3b7e1caf8b36693035447f751f0e5f5e294b89cac264575ae740f77fb222d56db2fb348da975fbc7cfa4e5aaa9bd35f5488202f67db55e13be9412de0e54d228de9e8ce0bc9367470bbf972e1d2e49d6900a5fb67cd242eea58a0912b394064e7a0fcba58b30cd4d57861b939c8f940478d3105ee30ee4a896b6e5c5b50f2d2942ff6343a4cf188717882da935535cd6d5162efa08cfcfe76f21f6fb481732d4dfa5a93897771a654f7f64922b3fd599678d72a063d38723daf31ca14f12005f7bd07a61703cd7884e79f19a11bef69f4796ca9f69e795591a6336b4b38bb1db7e293484ba7345c6447422d68aa24a8fb16698a013cb9600b080dcb724f559bc16f7d77990ea68ed6a58a1dc8ae735aa007fc20a066fa7c478fab76c4eb417bf036f637e2d267024fef5eff40aad3165c6c80b45a71cf309cb96abb1e3879b8ad1a10c8f070008975b049c9d95aa5b0eae6618a4b9ae7ec63f1cc6cd23acd9ec4ad8031b28245741b8563617084c25acd6b1ec11e963b4d43ef9290b662918b965c0559b7c4c4e733ebe391e723ee02bbb26817e67511949ea5ee5103076e489f917f8b5c8909cce4fd2ef84a0a17518f20bb67af4d3d3262b51765906a98e8a6d240f4a000b56950636a9e9b6576331a0211678886f5623e40d43750f1110b4b63b6991749ed15634140429b490cf2a4dec16005be074a5a1d1b99152be4e9b095f7fd551449639002fe4f1ce5b63a4c660f12e97098acb225b61ff86d1f08d15f780d584c80af0ad0b30d06261a279df7093f1f27eb44c8815a77b8300c540161de9ee8e64855b7e3042bd7bb7feeccbd63bffad4db59498662db6f5afbc2b606bab67036954fefad59bad0e4cf36f2fd838724f251304bad10c571180fc7239ddcc19029286aecfe09584f1ee3ddebba3a9e802c8895642aa38b467785f1d0d751da1c3b91379afc2c37c1b593cc26da508cad376ce18b8f284093df9bda8c8227cf90229ec716e2e83908f8018ad0a510e0bd5f910ba75f2a3d9c51b454e4a0101dd5f0ab9a8f44f0181311f604f7bfd8ce54de29b6c54aeaf1b05cb3e69fbd541bf7935a3552548a72634543fe105f758a05f68d2690124d49dfcb5cd966b9eaab52d5f4869b7a93e3fe6a9e7dfc3eca69fe9ff87cb66aaf598fbfe3562d6cf643a2d415e721118cd6412dd748268f786ff0e5df58b57213ee0f101404bcbad68d1ed50d1c9fcd0ad10df799b6a3ec8adc350d5c021065a46ca65000ea44233ed78ba12d0f7c72e143ce7399365166fd49556c0c4ce465368376d450c0f99aef3c70a433830e4317b94f65282fad8de07dd1d0bfc22921c3b80d896c649a08149a3b50c77be23e489e239c7f2b997ffefbc3100a47962ad888f1678ea2b583838f6a40717efe7ebd7f9860c1311b77e2a6e5e9fa522bc2477c66ec9b46597e73aed356a36477ad653a1c30f6b0689bd45c34f9bd5a22a1c811ddb783619894699091c2d1f06cb3c2005377e3604bd864a35b3dadce1ba79a78989659dd97e316becfbab74772d80f361a2f7e69e7628a5b11aae6a30aefd8b42cfadbdaa90768b6f5f35c518665a2844d55dd020a70a1fde324dbbf02df2fab1a20c76bf4c40648179104e0af2fb62435b37c16a09141d5f8ce48021f3fc386b0071c461202af60dbec29b6e1fcb19ed34970f3983d610c29d99fa27eb737d82bd52b001202622b6cc86830ccc54faa22709f53fa0d5e04b4ff10675c19f381d7cd4bffddde78a31bf9eb9396b7e109b608c0c700610a94bf52a55223ce19ee69cc3f6d5618a29bac0e4766cf50ef53469ee9f096c92ebd678b6001672326a3774b03b6fc2fb07b6829992076ff08afc531abaaedeec5f2c493110d730504b1534a036842ec93fa97ce880dbcca72c77a4a8d0403d9d818bbc60db112eef67543e6158b4dcde305960f4725594ba5500ea6135473bb160703c1b1cb9df934c5e32605f3ffa9a5b1c116ea7f9fa2c2cb2d22c40d4204881a804c3ebb19e2d72a1e7bd03721cb903bf60f590873055ff3064acffe7eb94ef717a394719434fbfa79686cd3e35db9147452c0259967531ad29d99bad4d7c96b67850e4b0d63d0ffc97fb07ddd9c7b83b16722de5dd5de2b3bc6850ac4e20032fd1d89b15342461395b5a3ecd2c5e9f3fde027b76d62aecad0af950d145463d2869371fa145de557e4d31cf7b6fcbff95c24bc13c8de4a2a1710a6ed6d93b0fc37ddda2e24e03a84e31529223e5344f6e078733b2e1c181f0267801c9c77f5b1cb96c396d90741059c0c47d5dee1d8880b9ad93ff1c9eb4f46a6f74ae9672b98d230c1d1813a3d9b12869c950644fe4492ec2edd3309c63772d7a2d479751415323a3b67a13b8fe38fcfa2115be82a6a4a9184bd12a0741084d1d8873c4cd09e7438583a45cab86808a9d72efcbdc63b0580c0124b322216291928a377e111c24d1a2fe2dbbf3fc7fe2fa5dda4694f511a38c04d24487a7c34a36364305bdcc3da45532c75a5ce56999e961186303940bd5208eaa3d5b4efaf8a0e62cf958f397f125e3a60eac4f7bd264c9ff5eec4f0748025b5434b91e5ac8e7b39791e5dd8dfd4fc2cdc4c8ea0d69f95b33b873228a642b2675ab4c4b2a16f9faf3f581804d2e3638d2df1be52d47dbcf3049fc5b9122cb06f6b931eafd77da312fba593ad666125713aa7a8454acfeeb0c0a00c798caf58e09a4868cd6cd1a2792a570b5c3185fd04798411efb75fd36602449ed3a79a42cc774cdd67eb8483ae585872f426806c9756a9b7292f50133a9e3eef4c49f21441c5ccdf33be4f12af57d9bda52921eadba00118d9144ad1db4e2a8ef3a5c33bb289cb3040f59de6ce5289ba61804c4467c619dafd0dd8764102326536006ac81b34891c0f7e90c4cdcc2e981c62aa3cbcbd4c4b9492b87e551b9dfe0e11f8a1bcd6d1b4855ec06ee15e1728852f1e843b1c8ef7cf5c1247717a85ba661151d2755f5d97bae1a50f56c1211d3f233da989cc3de85bff12c4f55291505f615896556febb5624cef6728b4edfc3df5bbfaa2bdd29f0d46ec228ddfad3ccdc684a8904d1ed4ac25ffe3488744748628aa2a4e1cea3038fef614c715c6bdf0c538f8505df8aab46588aba8d5418a962fd53f4e86d2513980a4ee3d106f8d27a69e4ba650a466e92619d0760f9509b6893630c55a5bce05d495137bcd5f67a1f3f12dcb01ac7c58af6bac123163d2d6eaae38ebfe8be689c58ef5f2385db4e89f55aaa17c582964bb7460dd9cc9d7ea67f43cf30e6a43dcded02ca75b276a4286b588d100e06c18f6858c364ccbcb9f76bfb13cd8a9901eed98d9c4da4c006ecd44e5af04f3dcc533b5b3a7fd18f03046f5269b860fa74c80e7efdd5e583d7fa3e94ad9291394b5f77fdd42cdc5fdfd325ab0bce94ac7957f22749d4985f981c9b3c605d1ca01e88130af8ce16ef0edeb43e2c36d53680383fef9697f95e49f62ec86fdd1ae46fcf00aff8f97816feb2b5446217dc1e53aba214e5c9e32b0b52690dca1ed257e1a7ecc00cc095b8216aaecd9a5b762aaa2beedc5125fafa529f2b88686b3c8d150cd0ea069e1132ac29aba89636a2fc3b5db7a688f8ca1538ac7bdd66f7c277436b5a4def3064954f982aa6ce5dff3448d1214e296d0cbc6a018c9243f3a9865912ff11cdb5e02cf6c3cd462b49abec92dde6dad120d887bbf211b50b7b1be6e03c250013ee5cd1855bdc450df92fe1f538f112588632cc3f72fdb66c5284b72d6e8d27bec278bdeabdab39746e523c02f616d5b0137e862d86f7b8c1242ff2196c8f44789adc83b97a4c267898f8ed98b4a79ab307afe5ef72983a5c891bf4e0f1d65254f1ec31936415592391ab0759249a61ed8f33ea26ea49558706c396fc9cc8ff49729d4a670236de32d5d6e08569898d558ec445ea89ab652cc335c7dbc6b8e3f57cd8f9af081c9349843cd2a0ac25c285fd1dc618193f23e50cd05f0a047314bf0920a3a7ae96fe0b6a15428badeee4bc0a4ebfd844c58f79129de2fcaa187c1eda281b4f491675eb7fe061dff3251a0daef0f5e3af9801627a35e42c0dd8a08b05589d54fa06b0f158801530cf34bf33d3e81133c236b9c785df084f23b1dcebc07dcc4c768217dc47790b125c9de2c305fa0f5663f1b0018ca3837b4c6e1d406eea5944df0d3bd91ac0f2de12c5d8678424272b1ae433ded61c44207068934ebe0ea5b66da55a000155d77152ab16827041870a48d12fb40297a86831fe004d36270433c78759f978713b2b7caa8be3f54f68ccb4ca64bd3bb6f2f0e42746db3f61990e7d62acc282511621b1f71f1b7e32233666722d5b0ed027eb9d3f565b46ac25e1f138cee019c9492b5decfb6e104c56a5457ee623b05a86d3439a195ebbf62fa9ccbf88ea1841f8deeada6e8a9b80c1a640e892507dfe087d5db54abe62ba1de6f8d4bbbb074fecff5702529f97bd9c608f3aa9247db164aa2d98cfe0a60cd363de49f243cc04c8ddac24c130cedaa6d5a28fb96fdb395e3f807ef4594945fe66a8b0cdc7cbb4634823f6d94235537de1639645f17ebbdd68aa237dd61e0a4109db92b643cd4ca472561830c81f763f833f1c5e5ce3b07534182c932c6b7185974c907d5cb295006d852f65459b162aa7c9832dde3f42bd6b9769b55733cf143850ff6cb4af94ed0e0af8b526579d6ab302d07206950a68b5a7e13441f67b172f2f08648127276257811d8ff50788e65d87db156d30e426c9f40680b002516fed82645ff9a5d32d847ac72a29f1cbd2752b27cae3278a25a5d8404faa5e4e5b864e495468e242205cc3ac9d26097ca14b69e70ca658d90351c01ccf84420e503206c6a3f020fd979a9ec0b00195e114c2d08b4d7465ab9ab37dc9e7afa040b2f592715282e4d5198aa0c4751a0abaeb9c1e5e8f4fb053943536888a0d0083c6f83870e1009111e2b2f3743464b5de9f4074994b91843d1d600000000000000000000000000000000000000000007131b20222e3236", + "result": "valid", + "flags": [ + "ValidSignature", + "BoundaryCondition" + ] + }, + { + "tcId": 39, + "comment": "low_bits called on the edge case", + "msg": "9a03000000000000000000000000000000000000000000000000000000000000", + "sig": "91a557eb6083cf71a39d7ad4ed0e9e743f0e219244be4277c85060d9df9000d494cdb244dfddb74d3dbb6c313de18ca41bf822587beb340b8640e384e96b6850e874d958ebd32b6aa1beacfdfb50ab98bd40b09365e4c4a4c25f2bba303dd71717d51f90dfec4517eb16ceb8474ae35f8f684a4392a6347ec3ad8040970c06b69caf37470e7289b201b3152cc20f0025abb67382fb8ab8b4824777e091fe983b5550740b06f067b98590187073aa8f6baf9512565c9070e4cc3577a260bf4a472d3d5be99eebe1f40e1126fda1a67020e0c58c889a6e0318dfb098c6447c1ea36249989491f909f8879727e647edbcfdf3e4e862b91245d670f94974ec7ad0bc80d6eaa5938dac463eb8a7ad553430ccbb996ffe37775601a9b425c58d3260d319c6f156f4551d35256815a36c33f7ac902b7a4ad6cf7b0e89581f3b818b150c8e0f92836881efb22cd0c8573fee8448d9e6a99f4679b811a8b7937fd9b3a53977b76a93e13427e4cdf3fe37eacf54a025092f3cdf308828112d9563c919c2b02cf3e42a9e49e5a6740fb8882e8b0410936b22b3634e5b81e3fcd90236ed0ca9c4a614f5ac90b18d094824ac5536269d61f309630fa1a756409b7dab77750957c4e719e07ee45d6a5aaada56e078000cc69d153faacd7f4b7afbdd3e6f49a1d56a6005a0b6315e67323aee42ce3eeec54d901a56eabcd1a2074eb169bf9e0b853154d7e006b8704ea43425fc283a48d35786f8df54877ad6df29df87b29cdedaefa54bc7df5c936d92664ed28a3ede8d4fda34c01395e10e0323a0accdef62210da6acf717ea21210ec96a84944c9d04e2dac7696eb81ffba0b182fc6f84f46de5be7359f4a1d0671c499de60c338120c4807e3380d149d216410d2686bf54c56916edbae91b587f6d2d1d1d2654631f8e9944a2bcc1c3ef62a6e2fa3456ead1a74eea8f27aae5551a5083c3cc013fbd4921d22ff014ad76d45792e120d43a04bd4c87248b4953e80469948eeacf5d5d670f8422506ddeb1377d9591c74cd0c1681ab47998ed03880fdc5b0e41635d5483c4b824cd2fbb79d5e2c141fe4eba3cd19c6303e7c60825ee8cbb9851613d90e63e248e3fb66d74e019cfd56f9d23df255b9731af22bca929b2e8c9f7ddbe84cfeb149a2a0b44619633cb37121277ca932ec3a85cf59a147c25995b1023d956a537f157b004e4d189169d2dceb7f5ead3997c5dc9c63f05ad3b2a62e5c2bbe0374c3fc5f9df060a38fb6a9104cad7896c70b53cd03c071f2c1799ad60065ffec0db82e119c51062c6818b5ca3afe084f55d24a78a30665892766d06e5a17c35e0b2414b55ea6fa24a1ce4154fd3ee383dcfc3ce5f095a414cd12f40b6035f79d582d9a96e6a4a7111d5ee7a6485e255f1757872bdef4e9a194d45dff5a152540d9be0807315059c942e555a5dc8e226b1183719ba1f877e287e98f37708c6d2a81471514dbd79afeba90a90e3d75c2309e4748a1fd2c8b65c25bdae548f24854be10c4cda04ccd62c9377308ffe3f65e988248d2303f76d0ddc6dfe40f11a5d77c3913709eb58bd32c89788b976b46908d2857945b6dfc0208bf1e04fa77c8cb3a3054d8917fa5682896d41ff6e27d5f7fa0e5b241ef3b936bac924fc40d4ce3533ed829ecd2e91d3e57424cf58c02dd01c40d65944aaad81e51a5136d4616fe7c34dee12f0117bed3ac21e5806c939046942932aaf46e25b08c01fbda729a6c90c752aeda876eb75287556b2d24febaa0838b25b441b4402508e8db01d50eafa6f7671c16a5fedc21e68c9df967f0ecc0808675e6667a38ce6bcc47f8b9abd176fa0a9698dd069db8fe899b1a44df729721112ed395b796f86bccf112c3a8d420a9457db9b01ae38968fce52b1df2cf380220007745ff771d7419f21b5d318efb7f6053afc8840e66686574c3ce1e9197fda8e8b124a0e044022cd00287c0e1ac3e97e9c9572522b44a884a476a997e669d5476607dc53fdbb20f59d3ee03c7273c626e20071bb18b735135df0506a1f77317cb9de8a8556c99baf3168e4aee2151a4eac8cc591ba73586b9e42cadf94a8f78206d30434820a40e3fd8bbff5f897119f0c908486df5c4c7b91691fdce5c8659fdc6153aa5fe6a9a5b1fe822f5e58f11257ee8ef956d4bd43c60fad82960b4d20116ad8f7ab345dbf69654beef3edafecbb1ffa9d90f6803e3eff4e2f6c8cd14c8afc54373925b41955780c769e5c2b6e20d7e1a91de57cc584d5937d5e1f06ef580d24aadecf95b43e131dd03c8f116b6e1ad120991f43ee9548bff5f1ecb29c796efb86758c4071aed167d2c0d67e9f56990c8a72983c717101635f7d73f5efb0e58ac2caae3c90cf4a381dfc78eccd3f5894d847a8bd0cdd1dc504adfcc09a29d12a5a2b9c2917c2fb1f377961ff0bce683a94d1f2047d0a0554011085cd3b00873e6a520ddd82b1f2038f5ea0a1f035e941e2782a7ab2d793c3151126301306d6f80bd90b7666457a154282375d00432c976ac50209eca908eb7af065449f8c735a5321b7ffae8154fb36479b6b5efc2187250f873fa31415b39b3a9dbb64a67e2e7a7783067f081bd9a537968acd7d551756e745ec55d04bf26b128fe327963f522b18fcf9bccc2063cc1e2891b78b0fe528035d41b36bb9219bd23ea786d48219f51b215ca1825d15c4d490b75c8e8fdd4a7671ed9cbbed1137067912bc206cd53e2ebc92d47c1db93e34ba929da7099d64ae5aaccf4c03aea45ccf3f0ed80b8cd9f039e38021d85cf61fb265d3ed348159c40e49c27ae6559ea41717c10b8c075f75af538281e017458a3245c76c6607fc91a82dcf8e4615d430c12482e64123f53ddbb7ed7016b2e6c7c41bef5552bf641c694eda940226e228f1635358de2f91176bbf49c0d05d523b5424ac97b3b40e4b7119afe532d65827f33d6a8abbcbc40149a874a985a66092c409f1c54e2c0cd4772d893f510206a216b6c533031f9667935a1c6def65825c63b938f22244e08675402c2911f7b9300e91dd3e20927e631b3251d54234bd4341650023ce15b6bc232adc0206686c7c2afb703797578d7a462ead5d8501748834ecc162bd3e9beea5003b96469b522ab918230010619db46f83ec76fda03e80db78cb48572f96c373ab0a1f07bf35374bfaac3a50b828cd514d20be10578cca1a219988855e98d96e249643b18a1c63cc6ff80d23aba3813f9baf783adfea88e695ea516331637a831f19732fcfa3676f4b7cd00afabfc2f1d5f3914fa31cf0b68de5891f2e89ab32b3816fa073e1ffef283f04152c65b8f2f2e650dba3247628ab5e126e7275e25a41eb2f42cf5902b1992b68b942622be7b590ea3d400ede069af9cd15e08aa13e61d811bf6a6d7be381ea375947793aa92b1c419a6ea0baa5e714baeb2c28899d180269b97185d4d55e37c8fb72b1b99850fb86d8efad66fb1789edc03708afe49f1306db2355a2dfc8ad5b4245ad70a38ef62a0015ffea64a1c11859bdc0f989c56410eaae8dd803609f9c16361092cb0f4263d0d6958e4f8e642c9f467dddd624fcc833cfe8972d5cabe59e6e44406476b7ff20b43d4708ffcefd8b05fb1b863e57cbf6db42920d5150e0fd43984e75689b0cd63bf32d25b9b9d5b687ed371f55febde4cb7eeb488c34af61afc7dcd1045c05a9934efcb4fce59266191eff1debffda0ddbc4000fd36a32b3b3f827499685bfeee1cb58f610d8ea7b0f901104861b21fd2783974b4fdfbae6d60dff50eedf3be0da81c9244718e42697603d446407c539dc1155206c4f53257d428a13aa271e6dee4af4e6b2ade5d5ef28ab7361819bf1d1de51d639797f929bb0c6e7949335a60948c889db04596d275a29d8e8b42268bd91bb5a4032f6e4936dd595dcb5049801e89fba3689609bb9adc9239e0e788b96ead8733d6a75ecadffe39198e5fc35346ef7cd26a78518af9bdef852317cc976599f6ef7c14af3bb64b791778098b8cc7cd45a762d903cb735ae5616589256b30ca83f948237f4098cd00af679d707f7beed1e3467b8cddd54e1e903a087a10d13d9361b9143fc5a1bfbb181c6c2e18fd53f6990fe21e96b3c3692a286a8cf10b67ed0e7369370572e71983d474d72ce8605b3dfb2f338ef9d1351ce968f9c6eeeb7d50d5db20ca98612f142a7f93e9c12dc56d4d0467978c2df0b32be3258786c8e8484fefe8b0e93ea9a2405bda6a89e5dc8c6871d8d98c8013c42e41fd98d74a2759eab0b45fd6ebfda1503b0c17f43e441842076e0022f57256efe4e20ea46147c79931db7275202ab73f67662200a224e36354f5ed7f9d7a9d32f300a4c656e7c712a36cb86c5af35c8c582e68c80ef164d86f5670c13f2e9383aa8d73045db6a72052a911a583fec647ba411714cb0099db0b2281f4a5549a2492d56c41d22cf517624971a0dac5bb1d87db8cfe97a06926f27dfce961fbf63c3a348d3f1ab4adf50e265da502f37c5a41f1400bdcf6f22dd0b12a8add02a31f397c50a6879f2c0d0e1e8ca0507826dcb36210772decd0b1d9dd2e15532b44ef5b0c7645061e07e54a6c91d9f457cdf3dc73d625b35f1412638b774d497dd044d4236e17d36146e5538513de67a1df48c7a936594b8e913f218fc0e7288a363a93ef407958a712a37e99a156a9f83ca0fba4d0d89b3443dc1b838e7ad2b3fbf8d7101d0c218a0a755dc3f728d7e5171cd36c757dd29109ee6387d8767d85a2a65c0ff0659e824faf3e6b66884e1e6bde42a28dc4cf240e1d7a80b8db58e16d00e017e0560832995f17575eac239077728b716b2901be00c03c6deef37b79bc61c2d6c9445b579a5ce44efb5db61a91532371fb44ab120c322788bd128fa9ab37f52184a49bdb497fbcb29f215930a5512b4640f30afaa4c96549cbe2b6b56efea6d938dcb7b9b98edf3e222a18093432d5bdeedb273207de70c031ce6b7a8f773c8740ea688202af516a98bfe8527601aeb34d4f2fa9abe259623f0a3eec0195a69b18e7e49864b29aa6daa4ac79a54154a223783c468e05695dd095351a5e07cbe44e52716517091cda3b00e0fdae7eb5455f3d6f94b718c5fe5fe9bd1fa8f9b2d42a386124e0cb5e759993fe7832b12cee90ef1e01f0278af72171f9fd5ffc797ebc2ed9c7d2db1e3b602b6dab60941009ea3b6b1e153142f8518be09b5ff3e760ebdb730e47f29d630ad227d4cceeb1abd88abac17361b7a63d91e36fb0ae34ec70c5c9f56d2f100aced1c408fe20a9ea29dba7d6b89964e41d76e8166ae44d7343cdb4b5994faf72ff86785304592f71703e01bc3f42d4beec075f1f8ea58ac90c9bb096b55c4de5a3a05deb22f7a55e40a950b5edd536df1f8c45771d4e1b22e6e30151342b6223fbb0354fb0831c7b264f6b0e78dd3af4c6e31a9610feb39d494bd1ca60b8490f18e742e94d046849b91a60c06f399fa947be268cd9016e82cdce2aa70bb5b32203d78934e300c8fd4b7a63e6bb9e4d241450f52c547d093d062973aa72e2573bcdda4ddc39048a10085c45bd1aa6e8e019bc632b6f3df53db564edef3604874df4a148cad7bdecbef28d7fee86bba0c78a50685a7eb7910bd7b727392a01d3e38efe7d991cafbb153f32f199402a1d72b9fe2957f8a9021e541b5d79f86751e3f335ff2b3b86245535efc8be3e189c0445ed6db77fdf288e6106effbc909800bbb35a9f19eb81a1162865b8ab1883412897ed92aff7506800786cd485687435cface6164bc89a7e9829bd5ed484b164c99293840fb782cff9de46a528471bfcd02940ba54c259d2de3a3b604e7eb8d328f62de40912672d8d2b639f8e508bd9ee7d8e44e13604fb111768c6848a3c896948cb159cd225a24f536f1e02bdfb17b1c0ae126abe1a347db65101a42118858cc44066034469524f9c9c6a34add8006f6a970782b5800498c43314a3384bd7ee3572bbcf23fd197efa6cc55094a94a72e4c646b91e146daf40d33c7b92cccff48f434c89f033cee29800506ed2114bafa8ab0a941a2b33d87ef7698e56ca82ee83ac472672581cf4df46f406ab945cd447ef67edc1c424966563295611a60d11893e2d0dbad88af4272197197828885d58c4b1de0f30dff90ca0e1be35be1b26f13e4307c53b016ab5b911ff769051e71ab8083c99c88aaaf804695139f95d118ebab56e115728bbbbf7e492e8136e2ab583abc266250cb58f563c9bf1bc61e39a0c6fbcf65f07e9c1bbc7441f532194be2ca43501f6551c2bbed52c4bb14edb77df66c0a9590729e2a1823c5025ef95ae84b497668fdb4c264ca076fdeb401868c55ac8017f86a4cff3dcfa91129eaf87aa50045f5752a1f61fc5a8bc864c737cdb564264811d46b5349ee10f7f6d621204f81a90b2dd8fd5bc4b2a14b222cc67b1af443ad2028804fc171b5f6f76b81c1d279ed313276ca4e50f3e474a899ccaf2353a66e2ec3a4a5990a8c4e716224e57dfe40a3a838cb0b8fd0000000000000000000000000000000000000000000000000000060b10181d242a31", + "result": "valid", + "flags": [ + "ValidSignature", + "BoundaryCondition" + ] + } + ] + }, + { + "type": "MlDsaSign", + "privateKey": "5a04d37a8c83d373ba07da5cf96806002e3635ad8add42ce6ee9902dfc9a1f271d69371fb6d0d47fff2c2a3e14efdd968b5f906525510164dc0922789de9a3647517845451f926b37fc8b3a81dc221969fd2bf807006510609c17478d1e1d3e3941272493e3a1a95db2d1480ca06e5403de4bbc2afd62d2975524813ca3ea202c0c84851042548024540024963940118802d9136891c238104a301801020a1128c600882a4c68584008950344dc00631e0208cd228416284642342661095281aa72d04038d90908400b749182121cb842c41202801826c4298008c144e1a9004ccc26142460501298200308299a890a2982063268c58028e24c8649318480b440000c4314cc80151460683268d1bb27051228a9a82290832085b128c542681c0306c5c168289001090a605a2a62d41422a09848060168a00236a94c870e4264ae10040e48451d280416232641c23050b254088a4645180901c000e42440e099865c310425a9489882246109645a12869c0c820141551dc424c8b8220e426000b4589848429e3900889008942c28c1142320a244c60048cc1c041cb306a9a806051480c02c885c9a240628288d4469099964544c68502873092a66c9800510bb88803945161046a14332a8b462288280213c24ce2464dd0289250084284b4611ba28550246c91420921422061142999908193344141228edbb4504340881b02242106626314015212645316620430645ca8918aa44810242ed2102083460581002910092259846410035022082a44345049042513a9081a392012b48122024d0b48828ba23022b4210b1029119965db0082c42662d91080cc844843808092462149a605c9466a4b0061c48025dba26814150d419831e2907199a8316098896042821a178a52042008a340d1a66cc3960ccb2002cc246e08004408220498047084044a08a730e2c68d4096498918126346482406640b29418ba6500387450495118396701b440618294143108c202071cb022603a391a3042c23a610c80691184064c0106289162e0941905338100908106144110b3748c0a86c440470022568583688121784049380cbc84154023098022420044de3140a499808498669838645c22824200480cab00509c4680036628a30906148101233480c0320db482501412594b04de1c4400a24651281455a32815c88480926854c940514380212058203a981122708199970c8c44d09366441380259b220c1b6050b0172e3027119150c41c00122800800032d04324c54320e9a129149b00c0b243003a6910c98401b220a90366601452582867023428dd19264cb884cdb128c092431d8106a133561a33810048861802624244264000201994410e3222d58984418136159321124c52c491026190909d34868a4886442420a00c121c9a6485cb08094902d19876122a26da24672839025a1826d13a8400a16241a09441b154c12c76d00998064b48822846023358d5ab2111b202d40321064a881212944e442621c4086191340dc3481082320d29404d1048513122dd0102cd23031d8c69190061109066424a28180a20c5c8445d98400e43852c3228aca1009db02484c204d14b84194a48d5b08864cc80900067084224dd9c0514b106110c9805b0224dca26d184026e3b470c3b0444ba20510b5111a294484a68ca3841091b46504090613202a9cb660db2649c9888c49c271434011048731c9420dd140850048815214850a190c03b08512278808c74d1b860518b18ca4189060168013a02904c60c21494519461000b1486324690c012de40231241708611004a21462c4a6091007100285249ab26859346004132ada944821b33154166251c84c0a257200c5051cc9509292851ba96c8ab22142026d80100e0188500a299220200a18200c1cb6649ba690d920621a18309c444d20188418b5481a18212147015822445ac841dca62c11a3518c3801042086d3285223b38901022192382994342441126c62c231c0c44c0c2265d096518c224060a200c0360e1ac85114228863882cd4986101882403388e880066c1824412262acb062509b0881b410210c99108a24cda022a14140640983000348810b740634080a0a26dd00085da92249b3606da900d54b6404a000cc13689d4826520956988220601391013450113362523144524120e81409199426ee1086a608664d9124c180488b7e18bb453876156a499e09dfcfe41bbde2d135344d86f9aa6544a72c1e60fd53a844571666b6e225de0134ab18e92fe091bbed09d33d42834ec74d4bebefa987b277afa068216d9c6fc563bf9fe9762d0b67ced4d75c32472a8a0b2f5849e5cd2573eb191ea9371cfdb80946a514d4118fa596883295abcf1b2a01b3bcbda76b3181b583540901d62d0a18cb0e577fa026ca20a3a40da302c637cdd8fe7af69f054ef0134fbb67a66529d261e6a9811016820a52ec749db97e9b0a13e9ea1059bc9f3cc738f488ced79114b968d04922963abf253971cad3d517f0d69658211769db72b3a9df0f82f03ff8f8dc1d16cc3377970df63646dc038894832c31bdbe9896d590de3679b6f08401495d884e5332d9d6d405145e0449b655cc88872ea77d0234d64a5c0cd64c1011760b20ced8531e23d1f501a863a50e953c990304ee01d6b73948b49dcefc3bac15381199e1f21215f3ef194d959799d34f43f20d8b67f4252f4e939f1b6202265723e711bece62bbbc85174afdf88e3233c9fd993ea95244d6ba795f79f545ab2c0f0253684e8d8c864892edcd383ab042214b66f79e03b4d1d34dd4c3e02c07ab5805fc72844e47500ee8c7e7d0e79e652aa3ba690c6d26f4aad96efe7c4b7b9720ab2d9c58193a72a240bd12721c61f096fcf8974b2e9193ce458be0bcbba942b467757155bf6f19540d2d9f6856a67e08b65017df320121bdd2d95eaa4340d633b2ddbf5b60426f8a8c283dc41f56612543a5c6de44a3d3b8d49ec69d3d4aba41d804b372fe9f83538095163dd229b76b95eb3e5fb6bd41ddc939bb6bd3087a6db8cbf02ba9ba1c1b7889c2280b851e94221a4f1991e189949f08b4c0b1b7072eea96fc7f9994b36727471bedbf90d64856943c750f95f7f4b286a098a711ec2af5e430aa738eef9332e8c54e286dfdf490f3116c7a1a3732e3e951211a1a72925e0932c276a213a2b423c5c57b102d27b837db1c7b53b3cab493212b3e64f6ddd1deee5a2d98fab982c2092a9a78f9aa8d3fe9ece80c331cc04afb6be473c33b20a9be91463b722ce6addd79c3accacf03c685098bb33a15f1e9faddc442c1ea3d9229b49cef2c849ffde786fc7f9caab8f96d3df32cfcf0dffbd8bffa6ad2611688c4d9b870c80f3d6df1e75973fcf7dd5a3c4c214548acb4626b77eefe18f83632e4704705771aa68092fb60c1178c1f9f735e1134a6813df7333b460eab3136657cb943ff58851c4fb943cd7320cedb50b87003435835b1549c6ab36c4c7d81e1afe5e276d388dffee259cef01f9fc287e0ee6f04fb511365c4b336bd5dee1bc79698c13eef940c3c9de7c67ed2af62dd9a6f196d5276385f8287c1949d8c64f9113168c4b734bc36787b59440f81663e32c80b628991cf7838f5961a53f3af538070c4167006a5090d7c998cb02a792fcab9f55d6209045cba5f3a98e5e23928b1371095ac2fe942b6345cc4927c19a33e63211bd398bcd5dba8769b83da8f854fbb9cf64a780d3a1efe998ff7481a586cc3282cfe0c7a8a81ad3292bad137c404aea52d4ad1ce3b7f8316fd5d8a0ba11703cd82e8ed947b5379b7215cfc0d18f494a3d87143c894c79a211ed0f4c4a7748493c59f6bf84ec1b374c71a0ca50a7955c4787f264eb12629e489671b390b46926f63b2c09204346f42f81810507db64cf73169e5ebd57191ec2ee61ac627cf051d89001745f5196d2301aba99531374ccb4d4a58a847c7f53603fb2f9e0b89728007a64bba1133fb4cba0e40a2fc2c60db8f4bcb646956d77447e2f5c9eb2d30cd06590418ee3fc9b2b8342470bc785b4134355a7ba381e0990e3d1016d770e4456e2f4c5550de2ea2647811e6b3b0b9e53789073019f02f1922ed04d87c740b39bfe6a4d7581b3f37317c5010d3cc7adbdaee72617299711c3e4ae1640b51fbe7dc8985370c168ee8415c6e829e0a96d5887e1a5c99874feba30534720f6a4b56634c5f6e5ec981dde500f579e240ba8eaceb34195856bf612f6aad7b7ce9c08129cbfff4324ec079d251d3dae1aab8bada698f01fd127f838f3f9c0ccf1b6a5f8ecf78d994948f56603aa9e9d0e1e4766c5938ebcd5c0bb97f03bf0713d997d17a13dce76728c003dfd2c7ab2bfcd16d595e883702b5ec94f9de3b0272d385a6adb6a5fe064a274083f274d999f02ca245756f33f0a9ff413fe384d70b66ef0b1f8b885c8784b2bc012d1ddbb87f7f730d5666dffe5c07df7a0ea2a29046604df24ceab120118c8162631383563b67375e47b660083cb4822905f2d622540209d8b24ae0fbf94564d4f5286ae2b883b830253d742d0e29ee7f484447e4b782e9f9da620b6fa971834ce99695d6c4d986b1e047a2075a9d3364b97a3ce45dc614348f5c0749fa34da51c3c939914d991ea266832049b55f28377146c586269c6060695ee12f726a6e28cac06672546e59b9add490de18c556353ac9a6060ef5b58be04cdcf2fa1ce8c0dfe47fad796a02dcd376d6b778e3f5fae6bf75ca71cf7c7ca9892d832c793adaedf0cc62454237c44e791e3e5db78b41ef322da7ae3c65d702e37d876b566c1b7c4c8d3e7985b293963c5e371ce7cd6d7e21afc5b9459513af7ad743cddc16ade25052b38ce810856f0f6296a2844f5c5ac7f3a768fe089a75c7688961ecc272fbaa8e2a851f83a3d1a467a4631cea888a3f8ef28c80608c4d8a448d937a2fd996a1312c0baccaadb78c086536d4e2889d74155e03d6099b56f46e53f584f79e0e9d4e027014af8adf2cc4750b8a99bab19950585e6d1600d8b65c50ebb4624e518fa90c8e583030af0e4aec35579960397807df75ec3c5951c03970fd03dbe301676675ec83a89eb2194cccc86e8efcdd8be106b569d840d074eb25994ebbffe5cd7e522f191c0d0700b2a4b110170d406d7b1a8ac2b7fffd3b85b64e7ec71cee9a656d58593135d05794eea5a878710d714b570eeac935133d8a9b0990c66302e5d2ef5332676103330dccf0f33f544921195daaa7931f26edc4c8879d7ba360ad2699f5ae3b439c663a862f7a95c4593f046bd669aa277fce34bd1f5e156e67e6f2a37802f358bbecf0b7b7d302b2a0e2e11f32b67d89c9a464932802c85ac578aaff5ebb168f9e25a917b8c86318abed0c0855a31cc902af7a0cf3afbc120fe220183e9c7aafe33d25c6d96200dcb46edaea75a20652c12f185989788357118389ca28e1b013af261b3a3add7e05c96776d4e329022a53eb149f2d5c903930a337982230e259ff01439fbae3156fd1dd839de4638890fb3b3d9249fd847e1b21a046cd9e63822a210c67f14a02b4f4bb16296e871e65b563cc3d43d2162029cfeee65b651b3aad7e136d392cb10f82bf41901ca66e0ddebb9d7dcd69e111e54a1ddc9d288ffc10ebfbe837c013950ed5ef72eb09464455bada47d49cc1d0adee6906933054b365a052fa6608426676087ab8bb32b1e8bf0f8da6095fd72a81d9eb6fc986516f16dcb3837cf0ea80511dc6a5667a777f2d6bcbda38dd2ad07720794c20b933bbdef8a95b856e40b000d81eabf8973e7249c3b7cf356e49eef890c9a3d1c321e666bf22587f5e0e5b442bedaef19c0f5efa62485b2e49c7d3be662fc920016ec5168020be223f03024db280cb998d53bd85012a77f06a1a03f6c760fe8abb43704da4ec35d5dff6ecd084b8768530247e3335f8908fb41b390642a36d9095387c63a9d568f27936057739f114139e5aac48559f1a9cd796af7d2afee4913ff2e18551380fc0d12ec4a496ecce04f99cc9981d1e6cb8d818c14a53c77470c24b6957dc84d934f8f485aae1bff7f2db101936305952a153a2a838e49d2ed950156a6f8878fad515e5c2f34e18360f52198c2f1a1b1f0125c45d9612e3dd35fab46aad632c699fc27b5c5d549d6c41c4b57dbaf034a07fbcb0483bee34147df2c0fca6d2975a3e05aec99b17270b790e064295752b1aa624a2d4f787e70a4225b3c25fe2fcfbcd132e5f5f8f9291c63e855e1fb7daa50705cc6aeedee8bac23855fb2fecd4731bc3d16c9895bde4af6b62be6065b8d7e154432d582b35e750ad9652ecc3589fbb7e155d98f0b2f2c99e82581e9fa9a4c269fe2a5407afdc068df84db77ff377c368446e999ead9290cbe7a4b1ba717ead9f4938d66f0a6f9695bba7c6170e645a7891fa6c8f4a498972be40c93b0ed3883b11e444d185e66a69f972445813f8bf4224e5368df74793274a2caeb55e463b1477d62e67becd1abe7d36524f3cc2818e553b6cf52d25a7865074aff589f4799663efe751a8dc664c60bdfb4ca3540e833388e76112ada1a569b4e7b8ae7ccf93fafacd0b82201e7b5b5ab09298dcd89e28aa159f627babc7390b4c0429bddcc0a5b3109987c70f8a8d7bcf746d6ecef5fc71de6f1e6210ba0b31836d408e7bff55e4c4da2c3cd35802d93cb76b9a1ce7d38dc473a394df7bfb2b6a57819a4495ebf653eee72e1b7922b2517e3d90c63cebcde9241738e013bf95eab5394d43825d4e6511bf022c7e76771a4da6d636881fd51754ef055ba40a4caf9badadab910f296bd8e13af96c7bb136e5c20b5581037feb3a5035b98cc3495dec311917743d649ac0d6e8d86a8bd948715bf7b134afcab4525e60f0af9d41f30aa426c0d77b3aea4a1e262b635f5e387bd3d0565927955", + "tests": [ + { + "tcId": 40, + "comment": "short private key", + "msg": "48656c6c6f20776f726c64", + "sig": "", + "result": "invalid", + "flags": [ + "IncorrectPrivateKeyLength" + ] + } + ] + }, + { + "type": "MlDsaSign", + "privateKey": "5a04d37a8c83d373ba07da5cf96806002e3635ad8add42ce6ee9902dfc9a1f271d69371fb6d0d47fff2c2a3e14efdd968b5f906525510164dc0922789de9a3647517845451f926b37fc8b3a81dc221969fd2bf807006510609c17478d1e1d3e3941272493e3a1a95db2d1480ca06e5403de4bbc2afd62d2975524813ca3ea202c0c84851042548024540024963940118802d9136891c238104a301801020a1128c600882a4c68584008950344dc00631e0208cd228416284642342661095281aa72d04038d90908400b749182121cb842c41202801826c4298008c144e1a9004ccc26142460501298200308299a890a2982063268c58028e24c8649318480b440000c4314cc80151460683268d1bb27051228a9a82290832085b128c542681c0306c5c168289001090a605a2a62d41422a09848060168a00236a94c870e4264ae10040e48451d280416232641c23050b254088a4645180901c000e42440e099865c310425a9489882246109645a12869c0c820141551dc424c8b8220e426000b4589848429e3900889008942c28c1142320a244c60048cc1c041cb306a9a806051480c02c885c9a240628288d4469099964544c68502873092a66c9800510bb88803945161046a14332a8b462288280213c24ce2464dd0289250084284b4611ba28550246c91420921422061142999908193344141228edbb4504340881b02242106626314015212645316620430645ca8918aa44810242ed2102083460581002910092259846410035022082a44345049042513a9081a392012b48122024d0b48828ba23022b4210b1029119965db0082c42662d91080cc844843808092462149a605c9466a4b0061c48025dba26814150d419831e2907199a8316098896042821a178a52042008a340d1a66cc3960ccb2002cc246e08004408220498047084044a08a730e2c68d4096498918126346482406640b29418ba6500387450495118396701b440618294143108c202071cb022603a391a3042c23a610c80691184064c0106289162e0941905338100908106144110b3748c0a86c440470022568583688121784049380cbc84154023098022420044de3140a499808498669838645c22824200480cab00509c4680036628a30906148101233480c0320db482501412594b04de1c4400a24651281455a32815c88480926854c940514380212058203a981122708199970c8c44d09366441380259b220c1b6050b0172e3027119150c41c00122800800032d04324c54320e9a129149b00c0b243003a6910c98401b220a90366601452582867023428dd19264cb884cdb128c092431d8106a133561a33810048861802624244264000201994410e3222d58984418136159321124c52c491026190909d34868a4886442420a00c121c9a6485cb08094902d19876122a26da24672839025a1826d13a8400a16241a09441b154c12c76d00998064b48822846023358d5ab2111b202d40321064a881212944e442621c4086191340dc3481082320d29404d1048513122dd0102cd23031d8c69190061109066424a28180a20c5c8445d98400e43852c3228aca1009db02484c204d14b84194a48d5b08864cc80900067084224dd9c0514b106110c9805b0224dca26d184026e3b470c3b0444ba20510b5111a294484a68ca3841091b46504090613202a9cb660db2649c9888c49c271434011048731c9420dd140850048815214850a190c03b08512278808c74d1b860518b18ca4189060168013a02904c60c21494519461000b1486324690c012de40231241708611004a21462c4a6091007100285249ab26859346004132ada944821b33154166251c84c0a257200c5051cc9509292851ba96c8ab22142026d80100e0188500a299220200a18200c1cb6649ba690d920621a18309c444d20188418b5481a18212147015822445ac841dca62c11a3518c3801042086d3285223b38901022192382994342441126c62c231c0c44c0c2265d096518c224060a200c0360e1ac85114228863882cd4986101882403388e880066c1824412262acb062509b0881b410210c99108a24cda022a14140640983000348810b740634080a0a26dd00085da92249b3606da900d54b6404a000cc13689d4826520956988220601391013450113362523144524120e81409199426ee1086a608664d9124c180488b7e18bb453876156a499e09dfcfe41bbde2d135344d86f9aa6544a72c1e60fd53a844571666b6e225de0134ab18e92fe091bbed09d33d42834ec74d4bebefa987b277afa068216d9c6fc563bf9fe9762d0b67ced4d75c32472a8a0b2f5849e5cd2573eb191ea9371cfdb80946a514d4118fa596883295abcf1b2a01b3bcbda76b3181b583540901d62d0a18cb0e577fa026ca20a3a40da302c637cdd8fe7af69f054ef0134fbb67a66529d261e6a9811016820a52ec749db97e9b0a13e9ea1059bc9f3cc738f488ced79114b968d04922963abf253971cad3d517f0d69658211769db72b3a9df0f82f03ff8f8dc1d16cc3377970df63646dc038894832c31bdbe9896d590de3679b6f08401495d884e5332d9d6d405145e0449b655cc88872ea77d0234d64a5c0cd64c1011760b20ced8531e23d1f501a863a50e953c990304ee01d6b73948b49dcefc3bac15381199e1f21215f3ef194d959799d34f43f20d8b67f4252f4e939f1b6202265723e711bece62bbbc85174afdf88e3233c9fd993ea95244d6ba795f79f545ab2c0f0253684e8d8c864892edcd383ab042214b66f79e03b4d1d34dd4c3e02c07ab5805fc72844e47500ee8c7e7d0e79e652aa3ba690c6d26f4aad96efe7c4b7b9720ab2d9c58193a72a240bd12721c61f096fcf8974b2e9193ce458be0bcbba942b467757155bf6f19540d2d9f6856a67e08b65017df320121bdd2d95eaa4340d633b2ddbf5b60426f8a8c283dc41f56612543a5c6de44a3d3b8d49ec69d3d4aba41d804b372fe9f83538095163dd229b76b95eb3e5fb6bd41ddc939bb6bd3087a6db8cbf02ba9ba1c1b7889c2280b851e94221a4f1991e189949f08b4c0b1b7072eea96fc7f9994b36727471bedbf90d64856943c750f95f7f4b286a098a711ec2af5e430aa738eef9332e8c54e286dfdf490f3116c7a1a3732e3e951211a1a72925e0932c276a213a2b423c5c57b102d27b837db1c7b53b3cab493212b3e64f6ddd1deee5a2d98fab982c2092a9a78f9aa8d3fe9ece80c331cc04afb6be473c33b20a9be91463b722ce6addd79c3accacf03c685098bb33a15f1e9faddc442c1ea3d9229b49cef2c849ffde786fc7f9caab8f96d3df32cfcf0dffbd8bffa6ad2611688c4d9b870c80f3d6df1e75973fcf7dd5a3c4c214548acb4626b77eefe18f83632e4704705771aa68092fb60c1178c1f9f735e1134a6813df7333b460eab3136657cb943ff58851c4fb943cd7320cedb50b87003435835b1549c6ab36c4c7d81e1afe5e276d388dffee259cef01f9fc287e0ee6f04fb511365c4b336bd5dee1bc79698c13eef940c3c9de7c67ed2af62dd9a6f196d5276385f8287c1949d8c64f9113168c4b734bc36787b59440f81663e32c80b628991cf7838f5961a53f3af538070c4167006a5090d7c998cb02a792fcab9f55d6209045cba5f3a98e5e23928b1371095ac2fe942b6345cc4927c19a33e63211bd398bcd5dba8769b83da8f854fbb9cf64a780d3a1efe998ff7481a586cc3282cfe0c7a8a81ad3292bad137c404aea52d4ad1ce3b7f8316fd5d8a0ba11703cd82e8ed947b5379b7215cfc0d18f494a3d87143c894c79a211ed0f4c4a7748493c59f6bf84ec1b374c71a0ca50a7955c4787f264eb12629e489671b390b46926f63b2c09204346f42f81810507db64cf73169e5ebd57191ec2ee61ac627cf051d89001745f5196d2301aba99531374ccb4d4a58a847c7f53603fb2f9e0b89728007a64bba1133fb4cba0e40a2fc2c60db8f4bcb646956d77447e2f5c9eb2d30cd06590418ee3fc9b2b8342470bc785b4134355a7ba381e0990e3d1016d770e4456e2f4c5550de2ea2647811e6b3b0b9e53789073019f02f1922ed04d87c740b39bfe6a4d7581b3f37317c5010d3cc7adbdaee72617299711c3e4ae1640b51fbe7dc8985370c168ee8415c6e829e0a96d5887e1a5c99874feba30534720f6a4b56634c5f6e5ec981dde500f579e240ba8eaceb34195856bf612f6aad7b7ce9c08129cbfff4324ec079d251d3dae1aab8bada698f01fd127f838f3f9c0ccf1b6a5f8ecf78d994948f56603aa9e9d0e1e4766c5938ebcd5c0bb97f03bf0713d997d17a13dce76728c003dfd2c7ab2bfcd16d595e883702b5ec94f9de3b0272d385a6adb6a5fe064a274083f274d999f02ca245756f33f0a9ff413fe384d70b66ef0b1f8b885c8784b2bc012d1ddbb87f7f730d5666dffe5c07df7a0ea2a29046604df24ceab120118c8162631383563b67375e47b660083cb4822905f2d622540209d8b24ae0fbf94564d4f5286ae2b883b830253d742d0e29ee7f484447e4b782e9f9da620b6fa971834ce99695d6c4d986b1e047a2075a9d3364b97a3ce45dc614348f5c0749fa34da51c3c939914d991ea266832049b55f28377146c586269c6060695ee12f726a6e28cac06672546e59b9add490de18c556353ac9a6060ef5b58be04cdcf2fa1ce8c0dfe47fad796a02dcd376d6b778e3f5fae6bf75ca71cf7c7ca9892d832c793adaedf0cc62454237c44e791e3e5db78b41ef322da7ae3c65d702e37d876b566c1b7c4c8d3e7985b293963c5e371ce7cd6d7e21afc5b9459513af7ad743cddc16ade25052b38ce810856f0f6296a2844f5c5ac7f3a768fe089a75c7688961ecc272fbaa8e2a851f83a3d1a467a4631cea888a3f8ef28c80608c4d8a448d937a2fd996a1312c0baccaadb78c086536d4e2889d74155e03d6099b56f46e53f584f79e0e9d4e027014af8adf2cc4750b8a99bab19950585e6d1600d8b65c50ebb4624e518fa90c8e583030af0e4aec35579960397807df75ec3c5951c03970fd03dbe301676675ec83a89eb2194cccc86e8efcdd8be106b569d840d074eb25994ebbffe5cd7e522f191c0d0700b2a4b110170d406d7b1a8ac2b7fffd3b85b64e7ec71cee9a656d58593135d05794eea5a878710d714b570eeac935133d8a9b0990c66302e5d2ef5332676103330dccf0f33f544921195daaa7931f26edc4c8879d7ba360ad2699f5ae3b439c663a862f7a95c4593f046bd669aa277fce34bd1f5e156e67e6f2a37802f358bbecf0b7b7d302b2a0e2e11f32b67d89c9a464932802c85ac578aaff5ebb168f9e25a917b8c86318abed0c0855a31cc902af7a0cf3afbc120fe220183e9c7aafe33d25c6d96200dcb46edaea75a20652c12f185989788357118389ca28e1b013af261b3a3add7e05c96776d4e329022a53eb149f2d5c903930a337982230e259ff01439fbae3156fd1dd839de4638890fb3b3d9249fd847e1b21a046cd9e63822a210c67f14a02b4f4bb16296e871e65b563cc3d43d2162029cfeee65b651b3aad7e136d392cb10f82bf41901ca66e0ddebb9d7dcd69e111e54a1ddc9d288ffc10ebfbe837c013950ed5ef72eb09464455bada47d49cc1d0adee6906933054b365a052fa6608426676087ab8bb32b1e8bf0f8da6095fd72a81d9eb6fc986516f16dcb3837cf0ea80511dc6a5667a777f2d6bcbda38dd2ad07720794c20b933bbdef8a95b856e40b000d81eabf8973e7249c3b7cf356e49eef890c9a3d1c321e666bf22587f5e0e5b442bedaef19c0f5efa62485b2e49c7d3be662fc920016ec5168020be223f03024db280cb998d53bd85012a77f06a1a03f6c760fe8abb43704da4ec35d5dff6ecd084b8768530247e3335f8908fb41b390642a36d9095387c63a9d568f27936057739f114139e5aac48559f1a9cd796af7d2afee4913ff2e18551380fc0d12ec4a496ecce04f99cc9981d1e6cb8d818c14a53c77470c24b6957dc84d934f8f485aae1bff7f2db101936305952a153a2a838e49d2ed950156a6f8878fad515e5c2f34e18360f52198c2f1a1b1f0125c45d9612e3dd35fab46aad632c699fc27b5c5d549d6c41c4b57dbaf034a07fbcb0483bee34147df2c0fca6d2975a3e05aec99b17270b790e064295752b1aa624a2d4f787e70a4225b3c25fe2fcfbcd132e5f5f8f9291c63e855e1fb7daa50705cc6aeedee8bac23855fb2fecd4731bc3d16c9895bde4af6b62be6065b8d7e154432d582b35e750ad9652ecc3589fbb7e155d98f0b2f2c99e82581e9fa9a4c269fe2a5407afdc068df84db77ff377c368446e999ead9290cbe7a4b1ba717ead9f4938d66f0a6f9695bba7c6170e645a7891fa6c8f4a498972be40c93b0ed3883b11e444d185e66a69f972445813f8bf4224e5368df74793274a2caeb55e463b1477d62e67becd1abe7d36524f3cc2818e553b6cf52d25a7865074aff589f4799663efe751a8dc664c60bdfb4ca3540e833388e76112ada1a569b4e7b8ae7ccf93fafacd0b82201e7b5b5ab09298dcd89e28aa159f627babc7390b4c0429bddcc0a5b3109987c70f8a8d7bcf746d6ecef5fc71de6f1e6210ba0b31836d408e7bff55e4c4da2c3cd35802d93cb76b9a1ce7d38dc473a394df7bfb2b6a57819a4495ebf653eee72e1b7922b2517e3d90c63cebcde9241738e013bf95eab5394d43825d4e6511bf022c7e76771a4da6d636881fd51754ef055ba40a4caf9badadab910f296bd8e13af96c7bb136e5c20b5581037feb3a5035b98cc3495dec311917743d649ac0d6e8d86a8bd948715bf7b134afcab4525e60f0af9d41f30aa426c0d77b3aea4a1e262b635f5e387bd3d0565927955c500", + "tests": [ + { + "tcId": 41, + "comment": "long private key", + "msg": "48656c6c6f20776f726c64", + "sig": "", + "result": "invalid", + "flags": [ + "IncorrectPrivateKeyLength" + ] + } + ] + }, + { + "type": "MlDsaSign", + "privateKey": "5a04d37a8c83d373ba07da5cf96806002e3635ad8add42ce6ee9902dfc9a1f271d69371fb6d0d47fff2c2a3e14efdd968b5f906525510164dc0922789de9a3644609a5fafbe6945cb9f9d102ec25bc7a749c6ad3c13085603539ef40a71a2118aef822295d2bfc39f7e54cb7576448818954db8dc33c55c7d5f883c583605065c7c84851042548024540024963940118802d9136891c238104a301801020a1128c600882a4c68584008950344dc00631e0208cd228416284642342661095281aa72d04038d90908400b749182121cb842c41202801826c4298008c144e1a9004ccc26142460501298200308299a890a2982063268c58028e24c8649318480b440000c4314cc80151460683268d1bb27051228a9a82290832085b128c542681c0306c5c168289001090a605a2a62d41422a09848060168a00236a94c870e4264ae10040e48451d280416232641c23050b254088a4645180901c000e42440e099865c310425a9489882246109645a12869c0c820141551dc424c8b8220e426000b4589848429e3900889008942c28c1142320a244c60048cc1c041cb306a9a806051480c02c885c9a240628288d4469099964544c68502873092a66c9800510bb88803945161046a14332a8b462288280213c24ce2464dd0289250084284b4611ba28550246c91420921422061142999908193344141228edbb4504340881b02242106626314015212645316620430645ca8918aa44810242ed2102083460581002910092259846410035022082a44345049042513a9081a392012b48122024d0b48828ba23022b4210b1029119965db0082c42662d91080cc844843808092462149a605c9466a4b0061c48025dba26814150d419831e2907199a8316098896042821a178a52042008a340d1a66cc3960ccb2002cc246e08004408220498047084044a08a730e2c68d4096498918126346482406640b29418ba6500387450495118396701b440618294143108c202071cb022603a391a3042c23a610c80691184064c0106289162e0941905338100908106144110b3748c0a86c440470022568583688121784049380cbc84154023098022420044de3140a499808498669838645c22824200480cab00509c4680036628a30906148101233480c0320db482501412594b04de1c4400a24651281455a32815c88480926854c940514380212058203a981122708199970c8c44d09366441380259b220c1b6050b0172e3027119150c41c00122800800032d04324c54320e9a129149b00c0b243003a6910c98401b220a90366601452582867023428dd19264cb884cdb128c092431d8106a133561a33810048861802624244264000201994410e3222d58984418136159321124c52c491026190909d34868a4886442420a00c121c9a6485cb08094902d19876122a26da24672839025a1826d13a8400a16241a09441b154c12c76d00998064b48822846023358d5ab2111b202d40321064a881212944e442621c4086191340dc3481082320d29404d1048513122dd0102cd23031d8c69190061109066424a28180a20c5c8445d98400e43852c3228aca1009db02484c204d14b84194a48d5b08864cc80900067084224dd9c0514b106110c9805b0224dca26d184026e3b470c3b0444ba20510b5111a294484a68ca3841091b46504090613202a9cb660db2649c9888c49c271434011048731c9420dd140850048815214850a190c03b08512278808c74d1b860518b18ca4189060168013a02904c60c21494519461000b1486324690c012de40231241708611004a21462c4a6091007100285249ab26859346004132ada944821b33154166251c84c0a257200c5051cc9509292851ba96c8ab22142026d80100e0188500a299220200a18200c1cb6649ba690d920621a18309c444d20188418b5481a18212147015822445ac841dca62c11a3518c3801042086d3285223b38901022192382994342441126c62c231c0c44c0c2265d096518c224060a200c0360e1ac85114228863882cd4986101882403388e880066c1824412262acb062509b0881b410210c99108a24cda022a14140640983000348810b740634080a0a26dd00085da92249b3606da900d54b6404a000cc13689d4826520956988220601391013450113362523144524120e81409199426ee1086a608664d9124cd120977661866400518c744f0a2a9ddd85263ba720435d5503d6f0c5e4cf65bc7f5aeb9a95b35d8d808808652c5c60b8c73408bfb46bee380238390ddc0a2e15432e7cb1d829a8a2eea7b38de877f7cb2ccc074b1dfe97932a8bb4b266e71da2d9e365345398a58dd9ba209bc242630f1006c64f8e796586e8f0ec5944ef9aff3fbceb4f341e7994ec6aaf68a5330f7a0b0abc883fef4ec8fcd5ee7395f924436e8960ff17f02ba7b471e59e39e563f96ee14d8232a46b7261e83f7bcf1797e65ce3f2b1c1e28ff20bade0899f0f7609549365da9944883d302068b6402de5dd4528edc545a2e6f06a7f97d87337a0906b3f98a73a1e95a6a1261ee8dffdfb9c944e07cdbf1f1f4d59245f06a2716eba1031897de32254e5378fbe1754da91716effc7a998b0682b619d769b6b078d7f98675bc333af158bc1ed717f73dd6c1ae95ca5d7477e85540bab989b67614db9950d674c56758e6b0cea78980dbb2c206c3edd1021ca3e10f510e31b56e267d88e70460f6be5399c25cb77fb38d5a71e5709a3432905219fc331c2de4f0d28f9f081e93ef062a162ab5563ed30e71e9fef212b297ed6333b25cf4e079e9124bfb9f0ce4c2386ab2c9d4a06a890a47a59d64d4fcf9bd8f35e9140901469f3b3fdf0a3c2b5bd933905d28b354e2ef3de64efe0d704626e83f3dc97ea9a6aa057e0cf3f24a1f1073daab409cfa942b4bfdd6026fcf8639edef46f14883433744387da1f2eeb6d9525eff05ea4472f1ea96c5a919209cf483466c6b4fb70965d908c87447ced4c7a9823bdb44df7cc2531e589e30ab5c7832893a4ced23be4adab7ee05ae05ddcaf21684ab230de39b716dc3532b5775abbe8c82ea2ab4e64a791c441381f870ffc1d8eec93c9e62925a8ff05ba7143b4dd3c048db25fec83976dcdb9ac0af33c76ee65c36336ba159c05e7f67e9326ed788cc2b8d74ee7877f3bf92332f0018fc70423defb79853d5c40aad6c7bc3e9eef94fda5d352823b59f9a42525993711abf823b66d1a84cb321ba351996177556d5e99ea55a6d6a4d1f03f3c8713b28ddc879fe821a7e2eb7daab409c87b0afa974dab9d8a43cc1d9758cf797f5b54644e8201de1b724b42072182cd3dece9894e736ae1ca747680cfb3d94b5ef9d30ba195c1989b757d80bbf6755905c69ed24cfe39a0851fdb6bf00b2e61363fb98f1cab0b62fcfbfe0a6463571c332d4b3e90134ef1f0eddb584327621b20b3356872b6af0b6fcca49c2f4ab5f35e425919e5c78687130902eff74f0853e32e10fefff3f45f9706d939f6024979702375d5c4f86f96e8c45c96dcce877318abc9ee58bc4303b185f6957218876327ad5eb939c01c3fc8258a5fea1cfb85f145e8343152c5dc11ce5d1c609fcb9fb006d6fc33d85999c157c8494ca190cef4a03c225a329e75a87a2dbedc6b9c0ccd106e0753d34dd36c2f01773f7c6bd3e4885bef36ce4b45c12a21ddc3fd2692356806d2db950b5f68063df13c38bb2a185ee59f01832f14c7746d7cf2a6c89faa43f752c2e0509bb8bb9785b60c8b99e48a623da5c223cbe626f1aaacd4d2cb6946b999cb058c32fba21a4843d7e6620f0b25f1dfc38c93de22f9ebcd864c79f6805391a946daa4dff7fb4590482978239694e8dde11a4433e98683ad0fc327173895531c5ed552cfea31f0a88cfb6f04179fcff1329e2cdad0803783ac22716c84a5247abf666c3851d9c679a809e71ad271214aacf65709fd57fa3bba63ae699486985c90b384c075ea19d7799611d83b5964327636f4711a2938142f128bad851069b7b46bf27d36f7cdb16c81f8a1866f7593015ebd9af11a9352f590fb038d5e9155c588abd78a7621a02645f3d7830f7215c2eb7ac2e1e7a7fe8feed075443fd41c0c2bb87fa8dc5a1273d07cb94cc8f9ce2f1534cf6c80f501a50367c61313bfe13bf8a45afe52af4a4d38b8f8df5ee0f79d21d7deb6e962f972cde6a361bda017094e127e34455f47d91633e25c56860782ecdc0cbb1f295cb2eee1893538a22ef46d7ebe2e10e85e60208776965c9b0e6167248b751bb8bc799a3e5adc60708c0f8ab857344d4bf0b1b7d14949076e2141e366e763f5f5a0ca5f5331bfc27e4f35a4d7fa6672d9c53369f4c787ab98c2651a78ee40a9084b10b5277b28a41b7d5047042fcd1abda82acc3321079016979bcbf9d57a5a6cdecf0ff6e4713de72a4ba14466935734c205e19c0f8abd242967b0c77b6f13d286c4e74a8d427c5e7f6a7a1ae3949ee0549e17ccb5886d263fd91bbbcc9835c341483274c92d27b8072fa2dd4b695af439c831d7fc3207a0cc688f0c787c888ec82985bc8a213e12e9ce8c840f171b4a915fd30235c4a8543162a259c94e70c63092cd52cbe70542c7a3f716a39de2c9a2a9528693df32d0073f80cdc6d6d40d4c875eb9be703cd2dc256c9921e0ead6e4cb51721acae0c66350bd533987aec8e881e35e9533e3629398d2e30f703678d48287091fbd5189bdcad78c8dfa5f8e9ff0594c8889c2e2d05d51b0d111ebbb391ba58b3d6d8219cd83558d6c6ebaaca681c9bb26c3a02349d685b3a5ee1245cb515cd46ab4e329a7265c7af47738a8aa259d139fe0cd9fe877f71c8cdc27cf9c37e5c7e86bea0e518a73c13cfa6ff8e50cacc5cf5aa4d37d992cbbc0d3835eec235428d48826b720a5ea267c8225bdbac52d7c9d6cde3a725aa6119eeac1fb4883aa21b42c200e354d3b4c90ab257dc1fe1bcc0b52c974d3c0edee09a72660596a25e0cc07bf4c88ba244cf6c0d885e9edc6a364f10a7b76e859fe6fc4bfebea362d2a266d2295552bca05811efd86077729cb97eaaf454fa39d9eef4e5cb5a2c1d7337e90b8dd08ace71507dfaa2040b67b651716591e5d4a675f55b5b906b5859f62fb1191fa59b6d0cfb482337ed25e6caa26456bac490cf0628d34ee4b4dd5f4cdb064bddfa1eac2a9e002a7dd24a4c1c9091a79b0e7b707af50845f9503cb090e69e7da2931bc9f9fb7c77cef51d70967611d0a6cdb833e7f77bf9ee3c33cebf385af87c77696e9effe98638e2e4372aca38e26a0314218921650a7d1b48daeadae77c98c33b750438f1044beb9b84d905c621f6e045c4e322e346bc3b930cfd5d8d9577406cf934ca26ca86f50d331517c313ce0e44a7cdb4cc0865848eea96f31361579063a3a04de6ff66c94db977228b6663b2bcc54a90a2c277aa1aa322b14c86b0b860be3c3019463da840035f6e2af128af222e877f8dc55516a05db29f1a7d13947d59380c2d594a7c3f96fe2fdecd4dda0ed3c5b661bcebfb3b8aa8a478950b03611a6a64962b86afb0c931e31e0873b36063ab69d17420ccd51e9e8b7ae4bcd2797e93c25b916d06d86bb86c4a86f7150cf7aec0f1e10b50746b52b151466634cd7719242461e6533605c195a9ce9c79edc559ec318958a5e11747482e5af202b4c75ffe5b7a53eb12ce8b4e1528d026fc18d9128f1ea972213693fa0c2f2e23515b3a28c582289ed9532c223b287e414d2c874cc10da64f815e88bebaeede581fd488e18de7795e7055cb9b91a66b081254c4ba3a20fbf7f1db4968ce415d4b240c09f6ca45ef6f84d1691f171ed716b7ebbabc93d90e57faa7f74f96290a618887614c426b585ac0051b994e4c7e49a5dbbdf675e9040da2da6b2b97232d4829674d7defd47ab5b4d51c9286c42ee5086477002d735a38748bec184a50464a9742de8777e96e062054877fea9fcdfa9425767c0205d52f6599918c18cd4d34927fca65b1f86b1d96fe9c6988c4e7f2b38e7ec8187f9393535075254936b2cbfd6cc1d179a1d34ae24a0d75b513bf09ad6bb3b2d13c423b923984657bdb7fb46ac89dc118d4e2f7c209c0fd175130e97e8bd71bcafb24f7bc008cbb75424e228e5c09e2fa36d8b430983e08d6632d73d98087f6618b61f6b07c3f6ae9300b75a549df0fd3380a3118f61f4837901c58d819a6a846d8610e73c5513741309bd163c14caad38e0a5c74726ba7505750e39d1b04c4b6119ddc44313f1bb75b847865fb261fcd8747634c26c0aa53560f7ca2fef57428d3bd997b9e813624c478758564d65463e1a56e05027749d05d9eb6e20118d1a6a72925a84d68f4e965567147e258546e2430cd04977fe80b5ef260e49791e32a09e27e21e7530ef35e0439e5fa83a233e0158540b4a1db0b0e4da798ea38c042eddc8770f60ba6476780a4762d5ad81d6255254af52393618ec46e0ee5602127d564e095a38a6a73237e26e56e6ac788def66dee72471702068562c6f2c835625988f2eff9e09adf759cc0dff5b565044341b153ad396fdae597825bac8e17814fdd16955fb890324732ebd0e22d06d27253746186a87e4355736473d78ffb6ad9da827e92ece46d3791fbda45407b574fca6cdd5931068176b4f77db526858640d9f2601d66f4919f671f43ae81ff7a1161837ab3d5354a748f8a1d6c7313da1ab412479bff5f4a8426c922b4a111bd4071ffa73f2789e5fbc318236f07efe551c2673dc72083fb61822b2dec3899960e1f45fd145e741a1c7b99c11139bfb2e58c3633fd818ca3ecc70331e86d5ff56596daf4dc1f08c4cd2296fdf803f1230c223370487804e125f442f9a60f85086baf5f8d58565c35096f9611b34470736129ec6c36ff78651985386f2dbdde8d84121b4affd", + "tests": [ + { + "tcId": 42, + "comment": "private key with s1 vector out of range", + "msg": "48656c6c6f20776f726c64", + "sig": "", + "result": "invalid", + "flags": [ + "InvalidPrivateKey" + ] + } + ] + }, + { + "type": "MlDsaSign", + "privateKey": "5a04d37a8c83d373ba07da5cf96806002e3635ad8add42ce6ee9902dfc9a1f271d69371fb6d0d47fff2c2a3e14efdd968b5f906525510164dc0922789de9a3647517845451f926b37fc8b3a81dc221969fd2bf807006510609c17478d1e1d3e3941272493e3a1a95db2d1480ca06e5403de4bbc2afd62d2975524813ca3ea202c0c84851042548024540024963940118802d9136891c238104a301801020a1128c600882a4c68584008950344dc00631e0208cd228416284642342661095281aa72d04038d90908400b749182121cb842c41202801826c4298008c144e1a9004ccc26142460501298200308299a890a2982063268c58028e24c8649318480b440000c4314cc80151460683268d1bb27051228a9a82290832085b128c542681c0306c5c168289001090a605a2a62d41422a09848060168a00236a94c870e4264ae10040e48451d280416232641c23050b254088a4645180901c000e42440e099865c310425a9489882246109645a12869c0c820141551dc424c8b8220e426000b4589848429e3900889008942c28c1142320a244c60048cc1c041cb306a9a806051480c02c885c9a240628288d4469099964544c68502873092a66c9800510bb88803945161046a14332a8b462288280213c24ce2464dd0289250084284b4611ba28550246c91420921422061142999908193344141228edbb4504340881b02242106626314015212645316620430645ca8918aa44810242ed2102083460581002910092259846410035022082a44345049042513a9081a392012b48122024d0b48828ba23022b4210b1029119965db0082c42662d91080cc844843808092462149a605c9466a4b0061c48025dba26814150d419831e2907199a8316098896042821a178a52042008a340d1a66cc3960ccb2002cc246e08004408220498047084044a08a730e2c68d4096498918126346482406640b29418ba6500387450495118396701b440618294143108c202071cb022603a391a3042c23a610c80691184064c0106289162e0941905338100908106144110b3748c0a86c440470022568583688121784049380cbc84154023098022420044de3140a499808498669838645c72824200480cab00509c4680036628a30906148101233480c0320db482501412594b04de1c4400a24651281455a32815c88480926854c940514380212058203a981122708199970c8c44d09366441380259b220c1b6050b0172e3027119150c41c00122800800032d04324c54320e9a129149b00c0b243003a6910c98401b220a90366601452582867023428dd19264cb884cdb128c092431d8106a133561a33810048861802624244264000201994410e3222d58984418136159321124c52c491026190909d34868a4886442420a00c121c9a6485cb08094902d19876122a26da24672839025a1826d13a8400a16241a09441b154c12c76d00998064b48822846023358d5ab2111b202d40321064a881212944e442621c4086191340dc3481082320d29404d1048513122dd0102cd23031d8c69190061109066424a28180a20c5c8445d98400e43852c3228aca1009db02484c204d14b84194a48d5b08864cc80900067084224dd9c0514b106110c9805b0224dca26d184026e3b470c3b0444ba20510b5111a294484a68ca3841091b46504090613202a9cb660db2649c9888c49c271434011048731c9420dd140850048815214850a190c03b08512278808c74d1b860518b18ca4189060168013a02904c60c21494519461000b1486324690c012de40231241708611004a21462c4a6091007100285249ab26859346004132ada944821b33154166251c84c0a257200c5051cc9509292851ba96c8ab22142026d80100e0188500a299220200a18200c1cb6649ba690d920621a18309c444d20188418b5481a18212147015822445ac841dca62c11a3518c3801042086d3285223b38901022192382994342441126c62c231c0c44c0c2265d096518c224060a200c0360e1ac85114228863882cd4986101882403388e880066c1824412262acb062509b0881b410210c99108a24cda022a14140640983000348810b740634080a0a26dd00085da92249b3606da900d54b6404a000cc13689d4826520956988220601391013450113362523144524120e81409199426ee1086a608664d9124c1d0488b7e18bb453876156a499e09dfcfe41bbde2d135344d86f9aa6544a72c1e60fd53a844571666b6e225de0134ab18e92fe091bbed09d33d42834ec74d4bebefa987b277afa068216d9c6fc563bf9fe9762d0b67ced4d75c32472a8a0b2f5849e5cd2573eb191ea9371cfdb80946a514d4118fa596883295abcf1b2a01b3bcbda76b3181b583540901d62d0a18cb0e577fa026ca20a3a40da302c637cdd8fe7af69f054ef0134fbb67a66529d261e6a9811016820a52ec749db97e9b0a13e9ea1059bc9f3cc738f488ced79114b968d04922963abf253971cad3d517f0d69658211769db72b3a9df0f82f03ff8f8dc1d16cc3377970df63646dc038894832c31bdbe9896d590de3679b6f08401495d884e5332d9d6d405145e0449b655cc88872ea77d0234d64a5c0cd64c1011760b20ced8531e23d1f501a863a50e953c990304ee01d6b73948b49dcefc3bac15381199e1f21215f3ef194d959799d34f43f20d8b67f4252f4e939f1b6202265723e711bece62bbbc85174afdf88e3233c9fd993ea95244d6ba795f79f545ab2c0f0253684e8d8c864892edcd383ab042214b66f79e03b4d1d34dd4c3e02c07ab5805fc72844e47500ee8c7e7d0e79e652aa3ba690c6d26f4aad96efe7c4b7b9720ab2d9c58193a72a240bd12721c61f096fcf8974b2e9193ce458be0bcbba942b467757155bf6f19540d2d9f6856a67e08b65017df320121bdd2d95eaa4340d633b2ddbf5b60426f8a8c283dc41f56612543a5c6de44a3d3b8d49ec69d3d4aba41d804b372fe9f83538095163dd229b76b95eb3e5fb6bd41ddc939bb6bd3087a6db8cbf02ba9ba1c1b7889c2280b851e94221a4f1991e189949f08b4c0b1b7072eea96fc7f9994b36727471bedbf90d64856943c750f95f7f4b286a098a711ec2af5e430aa738eef9332e8c54e286dfdf490f3116c7a1a3732e3e951211a1a72925e0932c276a213a2b423c5c57b102d27b837db1c7b53b3cab493212b3e64f6ddd1deee5a2d98fab982c2092a9a78f9aa8d3fe9ece80c331cc04afb6be473c33b20a9be91463b722ce6addd79c3accacf03c685098bb33a15f1e9faddc442c1ea3d9229b49cef2c849ffde786fc7f9caab8f96d3df32cfcf0dffbd8bffa6ad2611688c4d9b870c80f3d6df1e75973fcf7dd5a3c4c214548acb4626b77eefe18f83632e4704705771aa68092fb60c1178c1f9f735e1134a6813df7333b460eab3136657cb943ff58851c4fb943cd7320cedb50b87003435835b1549c6ab36c4c7d81e1afe5e276d388dffee259cef01f9fc287e0ee6f04fb511365c4b336bd5dee1bc79698c13eef940c3c9de7c67ed2af62dd9a6f196d5276385f8287c1949d8c64f9113168c4b734bc36787b59440f81663e32c80b628991cf7838f5961a53f3af538070c4167006a5090d7c998cb02a792fcab9f55d6209045cba5f3a98e5e23928b1371095ac2fe942b6345cc4927c19a33e63211bd398bcd5dba8769b83da8f854fbb9cf64a780d3a1efe998ff7481a586cc3282cfe0c7a8a81ad3292bad137c404aea52d4ad1ce3b7f8316fd5d8a0ba11703cd82e8ed947b5379b7215cfc0d18f494a3d87143c894c79a211ed0f4c4a7748493c59f6bf84ec1b374c71a0ca50a7955c4787f264eb12629e489671b390b46926f63b2c09204346f42f81810507db64cf73169e5ebd57191ec2ee61ac627cf051d89001745f5196d2301aba99531374ccb4d4a58a847c7f53603fb2f9e0b89728007a64bba1133fb4cba0e40a2fc2c60db8f4bcb646956d77447e2f5c9eb2d30cd06590418ee3fc9b2b8342470bc785b4134355a7ba381e0990e3d1016d770e4456e2f4c5550de2ea2647811e6b3b0b9e53789073019f02f1922ed04d87c740b39bfe6a4d7581b3f37317c5010d3cc7adbdaee72617299711c3e4ae1640b51fbe7dc8985370c168ee8415c6e829e0a96d5887e1a5c99874feba30534720f6a4b56634c5f6e5ec981dde500f579e240ba8eaceb34195856bf612f6aad7b7ce9c08129cbfff4324ec079d251d3dae1aab8bada698f01fd127f838f3f9c0ccf1b6a5f8ecf78d994948f56603aa9e9d0e1e4766c5938ebcd5c0bb97f03bf0713d997d17a13dce76728c003dfd2c7ab2bfcd16d595e883702b5ec94f9de3b0272d385a6adb6a5fe064a274083f274d999f02ca245756f33f0a9ff413fe384d70b66ef0b1f8b885c8784b2bc012d1ddbb87f7f730d5666dffe5c07df7a0ea2a29046604df24ceab120118c8162631383563b67375e47b660083cb4822905f2d622540209d8b24ae0fbf94564d4f5286ae2b883b830253d742d0e29ee7f484447e4b782e9f9da620b6fa971834ce99695d6c4d986b1e047a2075a9d3364b97a3ce45dc614348f5c0749fa34da51c3c939914d991ea266832049b55f28377146c586269c6060695ee12f726a6e28cac06672546e59b9add490de18c556353ac9a6060ef5b58be04cdcf2fa1ce8c0dfe47fad796a02dcd376d6b778e3f5fae6bf75ca71cf7c7ca9892d832c793adaedf0cc62454237c44e791e3e5db78b41ef322da7ae3c65d702e37d876b566c1b7c4c8d3e7985b293963c5e371ce7cd6d7e21afc5b9459513af7ad743cddc16ade25052b38ce810856f0f6296a2844f5c5ac7f3a768fe089a75c7688961ecc272fbaa8e2a851f83a3d1a467a4631cea888a3f8ef28c80608c4d8a448d937a2fd996a1312c0baccaadb78c086536d4e2889d74155e03d6099b56f46e53f584f79e0e9d4e027014af8adf2cc4750b8a99bab19950585e6d1600d8b65c50ebb4624e518fa90c8e583030af0e4aec35579960397807df75ec3c5951c03970fd03dbe301676675ec83a89eb2194cccc86e8efcdd8be106b569d840d074eb25994ebbffe5cd7e522f191c0d0700b2a4b110170d406d7b1a8ac2b7fffd3b85b64e7ec71cee9a656d58593135d05794eea5a878710d714b570eeac935133d8a9b0990c66302e5d2ef5332676103330dccf0f33f544921195daaa7931f26edc4c8879d7ba360ad2699f5ae3b439c663a862f7a95c4593f046bd669aa277fce34bd1f5e156e67e6f2a37802f358bbecf0b7b7d302b2a0e2e11f32b67d89c9a464932802c85ac578aaff5ebb168f9e25a917b8c86318abed0c0855a31cc902af7a0cf3afbc120fe220183e9c7aafe33d25c6d96200dcb46edaea75a20652c12f185989788357118389ca28e1b013af261b3a3add7e05c96776d4e329022a53eb149f2d5c903930a337982230e259ff01439fbae3156fd1dd839de4638890fb3b3d9249fd847e1b21a046cd9e63822a210c67f14a02b4f4bb16296e871e65b563cc3d43d2162029cfeee65b651b3aad7e136d392cb10f82bf41901ca66e0ddebb9d7dcd69e111e54a1ddc9d288ffc10ebfbe837c013950ed5ef72eb09464455bada47d49cc1d0adee6906933054b365a052fa6608426676087ab8bb32b1e8bf0f8da6095fd72a81d9eb6fc986516f16dcb3837cf0ea80511dc6a5667a777f2d6bcbda38dd2ad07720794c20b933bbdef8a95b856e40b000d81eabf8973e7249c3b7cf356e49eef890c9a3d1c321e666bf22587f5e0e5b442bedaef19c0f5efa62485b2e49c7d3be662fc920016ec5168020be223f03024db280cb998d53bd85012a77f06a1a03f6c760fe8abb43704da4ec35d5dff6ecd084b8768530247e3335f8908fb41b390642a36d9095387c63a9d568f27936057739f114139e5aac48559f1a9cd796af7d2afee4913ff2e18551380fc0d12ec4a496ecce04f99cc9981d1e6cb8d818c14a53c77470c24b6957dc84d934f8f485aae1bff7f2db101936305952a153a2a838e49d2ed950156a6f8878fad515e5c2f34e18360f52198c2f1a1b1f0125c45d9612e3dd35fab46aad632c699fc27b5c5d549d6c41c4b57dbaf034a07fbcb0483bee34147df2c0fca6d2975a3e05aec99b17270b790e064295752b1aa624a2d4f787e70a4225b3c25fe2fcfbcd132e5f5f8f9291c63e855e1fb7daa50705cc6aeedee8bac23855fb2fecd4731bc3d16c9895bde4af6b62be6065b8d7e154432d582b35e750ad9652ecc3589fbb7e155d98f0b2f2c99e82581e9fa9a4c269fe2a5407afdc068df84db77ff377c368446e999ead9290cbe7a4b1ba717ead9f4938d66f0a6f9695bba7c6170e645a7891fa6c8f4a498972be40c93b0ed3883b11e444d185e66a69f972445813f8bf4224e5368df74793274a2caeb55e463b1477d62e67becd1abe7d36524f3cc2818e553b6cf52d25a7865074aff589f4799663efe751a8dc664c60bdfb4ca3540e833388e76112ada1a569b4e7b8ae7ccf93fafacd0b82201e7b5b5ab09298dcd89e28aa159f627babc7390b4c0429bddcc0a5b3109987c70f8a8d7bcf746d6ecef5fc71de6f1e6210ba0b31836d408e7bff55e4c4da2c3cd35802d93cb76b9a1ce7d38dc473a394df7bfb2b6a57819a4495ebf653eee72e1b7922b2517e3d90c63cebcde9241738e013bf95eab5394d43825d4e6511bf022c7e76771a4da6d636881fd51754ef055ba40a4caf9badadab910f296bd8e13af96c7bb136e5c20b5581037feb3a5035b98cc3495dec311917743d649ac0d6e8d86a8bd948715bf7b134afcab4525e60f0af9d41f30aa426c0d77b3aea4a1e262b635f5e387bd3d0565927955c5", + "tests": [ + { + "tcId": 43, + "comment": "private key with s2 vector out of range", + "msg": "48656c6c6f20776f726c64", + "sig": "", + "result": "invalid", + "flags": [ + "InvalidPrivateKey" + ] + } + ] + }, + { + "type": "MlDsaSign", + "privateKey": "d83f3fe5bfd9895f3fca5d0b6ac999618c311772d3a9dd13d5f1dceae0f8dfc7d86c63ca8cf54c480edd1537e2482258fdacb27328f58bd2cd8055ea13be3bad99134ad07af4bff451b0e705cff9d3f241ae9f4dc2301cfe3a5d8013e5461f5287c9bb43294d6f52da2bbe6e18517f8f1706aa4d921b3b1250a580226d67f28308c42ce2360d80c48450444e21810ce2882d0441718146319ac871c2c240a34261823424884664d2a23093a6518008308818240c426a10b90009a6450a298da23671ca404d9116112303311c25464ba86dc9120e5b1465c3b885dc922904c780dbc2208c420d19256e9812864a46499092909bb42d23088e01c2050a14480b18854106890c2221d4902409146613a331ca328e1a158ce008221c0771c8980cdba62dd3206602a63090284e64848854024850a88c20b48812194824137280123191320d248248d200105a9084120226d042818c30821cb2308ca084049890223766c91866a2b244524480d132220200658c3088880284ca228cc2085004036824a16d093851c2b02ca4160e902870c3244d48868cd9a20c5186901b1288ca268ada4005d4386c64b2055c948921434209102ddcb488a0802040186c5a46682416010b2222d8104a180785a10244e0a0415bb0918ab22813b14d209631490602239421d9c2250a208d44b488dba21148b081591480002128139510c9c66d4ac63153888453366249309193c28104826c2401600c4272133928613000928489cc047122396511b84522a385d328229a242c9a344614b31080b82948260cd98691a1c209e214305804718c1002d2c24c0a844c44306589225210156d21444d0bc4251986314b96304992005330880ac691d2827089386c20916562247023092491224021b54c14280013361204372d02b28c5a044ec0b448e2360502958cd346301a9445a338525936802009885318888b2448db242c213430c1c86c091308d0047112c92483426004308588c22490282943086524252650342c9b40114040250c0210c402094cb06c20162544088d99c485131386824804104869d3400c592872d3946dcbc66508944908c2301122225b245261108080304299c80cc4308a80c808a208000c3060c8802cd4b4058808680b434522279108164249380e0bb771cc823013a6014bb46d0224058c02119c340a8b148a00c10980a45020499188960c0cb3501b17098a0640c0984019b92d08484d0083118c42888c900cca041058388ed2348510b10c9aa40c0a994d24b7010a0631a3109101204514200523052613312c883011ca884c09b64811b36409b5300821491b29221b255041804d50102c5324495a202ad0103118318c0ca18c03c45011c729c9c42460324e2415241b14064398001b268e038060030566d3c481d9000d82046260b8859a4891d4162dd3b06593360100a54d629005c43281da14055c224de4268408202202196623b8909b4411dc886d12c60144928d1b986998364ac4002e0aa1111cc58c1a31499b800944b64c5b862984864982b68c09b1255c186063800ca32862821811cc3046a3123064a2250823488a18801ac984a1484c09984413356d63a630e13642d90829e0186408b21120b24dd928120488249aa69160308a23396c42b48d44164218390e92c40000b7200a476dd804850b440e50b0690c204ae0c244c9c21021452d42184504b66d1ac864d3c49120928dda060d1a220253884d62b8441a408d149000812826cb28021c0729203989cb3885143080031748d4a080da182ad30629802070e3a450e23070ccb6610b0860a18080d3a265cb38650239668cc48563a42102286603b98960446c1916124a469213c50d893802e3122aca308ddbc289208431a04690cb28050c331118a14820467013444424c04903a64519b1411ab520123910209571182120008189a09208c9168461b67082244518840814178cc8162454284a48364022950980448dcca4882208918ab641d4c8440c104103457224830521062643c81002b810c338211c398821b1848002205b4632e1842002464912a0311aa540a488311b42501b48100a898024823100420552484184c4050b29129b000143344a9a487120378054a04d609025a0c4704312054b0601133732ca406dd3a024c8060d1125301ac36cd3242424464209196dcb40454ac48c99924409126cd3a8b18ed24248c25c1bdf9c6f6c24dc107e97ca5314164d8b4f620be1ec5fd794bf0449903e1dc810679afbe4063cd7a9aa23b81b52083f2fd5d3e5e382a71a406b8902921d2db2a7648eaa9781a504aea8bcc8768c7afe9d54f15be8aa6ee301cc5f2e6887d6d6be0e83f32b112b10272d0a21dad1b2dac39fe73f756f8cf5675ca20da9c22c7b8b13d2af89c16b3509005ab21fd188df8589e3ad6cc7de1ee1ea303deaafdb229952b2d307f43aae2928b1e8e6d2b10ea2e944be0d33f5bf19942f59348bf3b9241027aee14b9824d9cc387195bbeb140a759fb8e8e6a7dff5877abdf4b4076df42951259d207bbb27b023fbe1362dccc69074adf45aba66137dc07fa3b0ff02b10904a9529b77cb89548dbd0dad5b942e1d8b0e8ce9ffbb21b7d63789266a898670a0a2940e9af950a4627f4f3a06a9b83305be21b357b3761d6cc4b0a520c8eaf812d4dde242d9eb64a8147fc96ff58a5165997a030b47f814e69ce899ade86ece1a383446c3bc0c2a569bf3e652413be76e8b8a02e2e3ea305d268b0db413ee7f3cc4006519f731bc45967cddfe861850accacb7a3856b94854767e1d3ea543bbe9762ab13ffc54ba8c4991ffc1d4ff485aab0af186442da60b6def1c33f107e5d0a0bfbd86a3189a1cfeeae3648c2d7b318a8068dc817ec634618cbed2f445e968d0de74ed2dd1b6ff0c3c2b265be0fe6e6dd1de05c8e7e64b3fac3627116d59ec90a300455c8cbeb6d0e3bf43cc6c2f2ee1147d403250315831e66a5fbb0e197a3a9ee81ad3beddf6108f1d7ff94079479f7109fc5605b982834ec183c5c870213ebd58ffd3cda29156a692d80e5afc10bedfc7b3af48ee25842e3b6a2bc6581171205de3c76b3136cef537f5c4e04966ff2a30fae0c68c6a6b72bb49afc781bcb67fc52f943676563caea089333373ddd0e0a940aa10c0749a7eecefce1614b5479e1045cfa053a5b4f028311357b86f6e405c6ce19dc89b19005a5e3078d222065fec07d2af6aa09e97c17e2213fc601f97dfac8e013f110f44d7a29f2bbd9466d4eb42b0f81118bedf8c5fa5f402f84250cfc1e4a493328fe1efa87c8fe03c251851c145f7454d3ec19a3fb3ea833dc3d932453707bbf17378e329472d1da898291abad16e95422b49ae8eb51c1800aea2352b33c556142749f698fdc790f5f58d5c108680f5630d560b7f999e9441a5cc05f053b9734a4cdd73c14751e41466c27244ad547ff6e3e3da9ab68eb5f793769c91308b3d3aa0595aab8723b7f7c6e4d43c4e53fbb336b9ad4595aeabe94c2b23eabef10f67973c4135f341d91252241c534bbaf55f12faef493629b6d2fd855a04b25975007562f1bea3f7049cd4e8903ebc914e218ef1402adeaa16f8b000591c8113cdc492cf9127228c93495475ec2981a0f403c4aad785e1603882820467e4fab1100c037b79dcbeb98161c3f4f986b439ac70b1e7a3acb82ca6d45755ebb01392d864bdd18fc2670583a5c15a75a042f0b7200698e98f48440ae0747259a0c3b1314f88cc557a5b1922f17424bb9fbe611722a4a946af4ed897f3ba491f3927e5b95a0a9188b09bb8d8a5c08346cf049256e1a329f538c7413c3a2d5e16231b2f6a36ca0ec36b8b1887bb19bfbf7e8ee521113855528cd1b4d33de284923ea15b3985b8e8e09a7e843814adc0150a5d758e59bae7bb19eb51b8c4bec069a6bf217ddf78aae121d96835b6ced07de26c093d328758dca22c970529b9fc1453c448180c0bf7a49beb915d20d4d5d5a30221daf333ea4b01da59d1d1b32a2d4c3289452181c4d43b1523aff131dcf5a9550235b9e13491e5d8aa499046a3a9cd1826f5a280c8a07c9113948bd911ae8910fd57af9257774befdaffe85cf6c758a9bb34448de56c37f433d39d487e9db2fd4225652226e07d4ce7cc6fd55115ff22edb48b308c53ebd101b0de1985f6186c2f914a9bf28de22a89098b999473c6205a1a7781d028e9454e98cc898952286995b502ca2319dbaf9753497f82e4db77b50c6ddbf0b3be1f82e1ad3ed77140adc610133727e2a589eb25498d2ff411c08632163f39a735f907002847e2f02076881b66381774074bc5f4ead09b80a54a24e4f68623ca9bd99a0a08d7824d947fd519dccd2ca8c14a50b719afd4e43de5bdf13991bde2e224bc9357aea4a7d31692e4836597eb4b70118b8106247417f4aaf4561fa2050b1f6af0e0e1415fccab943788f090dac8101d5b7647013f5b294e6bc0ecb25a3f69f10943e9b5e5c4947c0b17aad3162786df1056da3b45776086d171641a24cece46c26a47595070191eb5df4991f4ea7bc724da26fd789cbfd5d49b527556cd3f08f6c173787b26280065ef503e31aaff3a0bbfd529b51d4e35c71758cb306e069d34114d3a554abcb55d155a2990b87f3fd84f323c3cbf3d5185aaf77cb9590c983fb3b71d2e86a243991c2e63a607048e7d2ff292c1e778cfd4df122e7bf43387d5266552a3dccb7c77afbf637eafde2e4620200193127badab0c6298cfb41d421ba1c464505370ffd03f1a92c47742ccf20b331e548ee87e10ec327c43189e2a0ecd8115fe885ddb1f617e63f6bc0c7149d1faf77779aa8233640950f94306142e89c127240e86245a90d8d0a48321a1eb579296f9b86240a0f95b1fb729ab0dffccc6f5408ca073760aa179e4e98a1fcd9d7c79e3695c352557a510ec192696186216147ac202c838aaf48f9cbdf165db454cec13d1b85a7430e226294335256bf2446d33b8ec00199751b2cd8117a81db45603e5c3882e920da2906a2f9a795fb096d0d46ddb4c848706f29065b88deb64f0bd3e367ffef46fbf52d9f9c7d4a49e6076a8c8f28de48ade607a2e1dced83ba222f9fbc472674bef5eb443a571e7b6fecba565a6ca237bb0752ddcdc1dd9be6f98045bfb3b671d1f100670e7807e06b07d8b78a88c60f216ffe3cb06fd4611ff60fe125bb512e786383aee33e3e09e9a469e5688b21b76d1a688fdb3106a5f4efa68a4669f7e8f8a83c9fa52c428288a470870934cd57224459e1ab8e8a03cd073302d2aab30bbe3509f6f95bde9d25b958ff1069f502e81915673efac8f28d3d9ec9b73654102664b093e879aaa2c4ba1b5788a397579e47d3dfc859a1184d9a3c78512accf99789a6b7a0d21f4cdb64fc8b6c55145ecfff644f33d5b1b56a5e414bd1894d0bb457153c0b6fdb8aa0880b7264eaa9daa215521e66fae65aa5960f54953a456fc3d584dea79ec7a5711d111c396083be4c043a6490688426d5eaec24f03d9be73d31347af5e5a5e5247cd3c72e4d24680138720f8f87456f7f5b17c418c86b20f6689b6965fa6583a3009e2c261813cb0910b364728dbc7228a0d6876e816d430c8e7237d48413162bc4dd195e41abf34f2b9495208c2dad2230f4aa68b79a860bdacfba2dc5ba1b27a41d6e9ada7b32df2acff2c5dc29b32cbd3815980a9824a71ed86ca669fb56de428c68dc3ce1fd2f202e0703c5767f5afbcb7cc66d7e3a3e95f7b44f1c737d20d419e96382ac57a25f37e2c4b44d3e88dfa5185b5af40236d9ef5879fa760362d3533141ba45ea2ab93296b6facc354a4a81d33fc3f2faf4cf2c5f2f5516268a37b2f87b0a71d68281314495dc6a0e213bbfacf61940ce28bd9534d159ea1c7d79bb4f4270561ed259c44ed1241a0b918df5be61f73d3ea07c2f7d98f06250f91a0ea0aee8273d13226269a29c3c962927aa3a56e28ca24891581bef7d44f64651a6bdd8dc3613266b5c01a05ed137f4936c9559eb0245004e26086ba4a2eea832fc9786ddcb15c42e5eef51c55923ed9356b505aabf74832ab6a3aa9edfda5ada957d26a38552e54a513ee860442822ebf5da66bea7eeebab53171ff7989325f1690163ab535bda6fa062b41fcfccb7e6367028d837e1bd03bcfeae1c321a6c14a90886eb6e48bbd5d4be04d4ae177f1b11e492b1b7fd99008399e00f8cf13de47b8909a651388f53d0ffaccf54efccb64f685367a0d23feb7db3a3f36285f6b9c9375f93c2e5796ec2777fd59538d777e452239463f1158231a1c767366d4fd1e067368e286ffb936b2bd52bd5e4d476a0a271829f09642dda5b6deedb978c8fa1af0fd60aab42e4f1981a5c493a87991ae662293033289cbf6c9f3b42649c1a993c52abdf0a8b86d94ef039b14f14f4ae246989982834cf261990186c9285c23ba55977ddbf7edf57a4e5d779b904d7e50622bd9647044c8aa9d1f69163abd60ca05efae693b27b00bbe07ffc4b6d239bdf00bf34352e5966d0f333031acd48823327e0383a1a8f7910f8dd512faeff4ed249119d6cbe6e0be0f3c41e8ff4209a1d40ba07df65b2d1f57676b9dd041372c63bf90192f4d6c59375c8a536a5c90cc704276804c178f80b214a5e5f4e7e72d9c3b36384566a3016f2e0485761175c70d9f103a41c32a904569f1565c06160b7bd707cd05109675a76deaa7d60ca521fca28764ce4a51d1edda12a1773e39ab4416a0718effe478f1a86b80c91e32422e43c2beb80251d07b881ce3371048fa8529e6979ecd3bc75e331ca09bc9d19e1ec4d96b0efca03a1b95124b053afaea29c155b42b9044c17b0e9f3ad916fa8747d1c4ae28827bd79168c4a852443a31d491480a15628a1355ec1827a8a34c6b3729d2d4381cfa6a9bc5f4f41b1eb915b11f", + "tests": [ + { + "tcId": 44, + "comment": "rej_ntt_poly (sample_uniform) requires 5 SHAKE blocks", + "msg": "48656c6c6f20776f726c64", + "sig": "bdbd590a2244f0f2185e9155e694d8fc835f58c8e115693819fd64c358d3ba0d05b083019bf1e180f4d0b50e2e6a682d1fd041a3170774db4fde836c891cbadba412accdbe13c5d17564e84bb9ce76346f2b53f6b239cb63ed2d3eb2c8e45fcf5ca87ace938157de96f562460718fe21c2af8d1ad8e7c83413b197ac0e89b8db3e1fe6aeae126119d8ea4795ede08bad86e8334baf970e4eca2af4b580c31251ae6eefbd045abe57c782053aff152d4272650edd6984d601f3b81f7cc63d7c712908b9051dda45b672905c4135a20c92b871d987ddca21e571e6b92778afbac2666f1d057d68e4fe3aea479383b61c798705f20c37c3abe218b9d6a6d8571c92eaf5f65322d19fb90747cb65562c65d0428d1161a2fafa4d933ae6b8948a031be22f103d3227efc7d5b19e5aa541d43207d2a2dc952435d85739556fe2894d0232284262c751f54adfaae7cf250f7d9d98e351c7c398a2eb5010199ba391296fbdfe7965d9970936f5dffb641cc646aa795b159232f78d2adc0e5ddb1bf7d755c48ca5e204a34e14c770188ef7c9826a0541b75602da6adc28bf3c7882e6dc061b726e2a4885278d7a9d4fa37be88abfc31fb66768222eca3be3f68a5dfeaf22d677c5f29ac952e0bd0b72d8255b60a7d491be1255106b7424ea02b46751f75d84d3ae036771b69a31fd937d6c0fef449dc4b1e3cea5366cae3839f5029fa89579cd122980a56f0a2e4c35e973bb67f9c02504926d50ff2ac874c9c6830e734135a79a51481a877d8ff58d0c8a1477d799e3ab3e2757765746b9922dee80b8a99a25c0522ab3a86ebb1fb0023a41dd4f1876b2ba572b5ad057e07cdbfa6db5e93509b123be540f2ab09aa1371d3efd2f9841efc4c747ebe991c4a7a3af4609988436a0b75ea02519abff82e3d82f410698e2105af01e7e29c5ea87f556b60b7a9edf2a8cbe76e094f299fcf3b31a86c89284b7376f670e1b45a23724fe2b1f8e7f07e0bb8e12b6e326db394921d811011e7b05c019e28adcae8b96a3fba22b702f1791ab9822f0786ac8cc39b7a98a6b0882add1e0919fe0fc381da0e9d9acc113e47e7fb4d5f3c7e7ae28ae60793d5429404925f33f621b3808c5bd0b2d01a8f1bb01642ebe8c00366d48f1cf56a775e5d8e3e0d344ca04ff2e3aa06d350728539c71803337d142f4890fc95c9d960e8dbb3ad37aaf8eb1280eb4c616395cfaac01587b672d52b5f5be6f274ea161204780f3ebcb6fc2cf3c5ff82b95c288b1fd8ee184c5a723399e8591f7f393e95486995347f738a13a378fd7250dd7d9dce3bbc5ab7e157b93710df20dc44405053bf030fa6ba0fcdabf48cf2ad364bae3b50b2b6b615c04cbcc9f61aa18189041022f03a3a9e63334c22a4208d66a575896395599e69ec20ebb4f251f9ff4230a5ec11f63504a1261b4a2fec8a3fdff30dff61dce37a4e4db7523391d4bf37e1993ada256b0e464015fb8187a2f2a099ac14fffb99b32b110aa885f6b98a4c94ddbf7c012e14848ce6d8ca05f2ae6b948e3aeb0a04a769a4c5d5b51d210ec189d9ecf250583c268d92336d21c0e15e4e43e9ac49d29a77d907c2bb48b2109465686b6c3d541a9a80968017a420c7f1d9a87be01e82efa679a00c90f9ce308365c6531595c30dfcbc3e6f2730c859feb49763a5bfd444afd11af0c3bb8a01900da2a4bfd3c7a884af250e4c544dae3ef1539c3e190c1c49de95478e95be8c377a9dd525bfcad8fee65ad82903fe4e22f0ac4c01ba7ea7bc69d6af64cd945b169a5bf8a9e567f82918c562d282066d15e24f523a5a860f8bbd713991a1a873b3c461a1714771ed72504b42da8ff0aac938219c30dc5c247d546ae68d7e2edcdb945bd0a41b3187f87b4efee08f4d361c5726eb85f39fdb320e554e85eceff374489e55f2697d81818d8f4018a2ffc9e4519e81985160da676d1d9a8d9aa4b92ebfbb9e8d2f62e142374ef1597461c04be6f371b4912356f31563213379b73934196fafafc890568d36c9cd0d8821e400d70042d90fb3048a22352d003f09cfbd815f8d7359e29e3c836b768c95c9a55e510d9806d1ef4761229ada799c35112a8bd8ec9ba7bf89680979d689946dae81f06835760d6fbce453981f25631d320db5eb44728bdd2013b0d1796de60b2fab291391d884eb532661deaad35b6380b3be36d0cd03b58049721dd77459ecdaaa9b40f5abaec62fbdfb4ec9e9e470eec1fc5a61f306066948e3fa31d1e069a7f28befcc74c12083bfb0c632afe2a2882bd9e6a37dac21120d3bb4f9ea053854bdde843a4da28a270ead7025a6a12d21c608ebf34ee8328a2c89d3bda3c02ab3befea760c614e6de734a2f921e38266d281bf38c7d668ebbf97aca7532160f4921bcc3e3daefb0729ad5e86ad90403f32fd60096a00f07bcf76577451bf9753e203df556c68fc3dd71c046dee2d55f5d587e7b71bf3e8619ac324a75431abda708e94f7239fe0b0fa75ff7a11985dc26b480b2326b0a80db18fb1b287a1d2219a054805319050f244c65cfa82e58099b1a92cca7cf1a64943ee58fec374511b3e84b8e066adbe65fa87ee0afcc966877fc68946647bdbb698ad4d5dbf6ba17b476ee33b4b73fde3519eb369239018665cbb280614003b9fefc418f59ebf0001263eef391310d0c9cd70d11e59f87cdd7c8ecede3b71a06c3a977efff29577c63f3b04332dff52d30ebde22a2cd5b3d91cc1fd6eebb6a2ee1e953492b5bf8b0a6eade75cd9bb8a8f276ac4228b735e1b56823026367fbde09afe5bd02efc4b00a4489a3d2ba5c74cd56979a3f5ec63570155d68dba2834264ae70954f34956ef004208cf88b603b409c91e109e73b48cf50af1c5a8a4a1280b6db7098b29fdb510abc966f31e516a9e59cee647710de7fea32659a12db2d385a0baad1d68220302ca8794406afd395046297f6f6e303e9689b40cbf0f6cfb8ec6fc88a02b72012b94798e6fcb4e0681dd5c9bc9d44f1bfb816d623e434d7b397d978328d99f9c9bec990e856e27de6bc48c172593f8e81708d29a636807509e97326c17d28c368e52b0af7c6d56566fe42002a07d81c42a87d0d541cf623db9cbecfde2944f6bdc11c1f486919357699118d9c666fc357bfc11734b5ba6be6033473e7ebb5300b83d3870f4fa51eb601e4ca11eb66c66f0cbd44ad1da4f7e744afe415bff7897ce80817b3975b5be66324973770018bfdb30cd08cb6831c7d3c60f8bafcc168fde1f86f110c4b071783102879943b40c4a31c06101c8d52c800c28926b9007334296d000776ec7b489eeac2dceac250fbc4cd2c8e4c54bbda7d9820116244e2cd0e85ff718c4345b2a812c6adf12a0870e8dd27a0040e78a1a685b229ce75f00c79f66c5da40590b8a2afeb7a96a1bd5ee17d27a6212fb367ac9b82ab689b5aa8afb90a0496f942667fe42d572e4749e36e9ba456810ca133196e9f75f00e2897f6b0888f0a9af29951b5be3a2f63a9f8d9d225e83937f15c349faee24f2f5c16a48b460a9e4a6c4c80cb496523986bf27edac76aa733e68ed238c17d85b8dd49eb05424e5889fd3d4e183ff1ed1f348d7e0889faf167dedbd59ee874cb3070069d854184c7d9305b7af2cf1adc09533273f3be154f272baded0e03d836465e655cb35ce5f666588d682f95ae789d10c13fedf883359b0fa45a27894f4eeb63ed2a86f5c98e93f9c5a43ca104d70cd8c0ed8a4da7804c6c8091b6369bc3988dd201cadb636b4fbb90b0511ae1e4d508e4b7ab551c4f130d0f72906f61bd9270c36e7b474d411eaca5c93fc70533ba76c2dc0a59145a6f3d7397480955758cc36362be14d987dad5633bbfa208a7c8c36140ac8f4ae4538fad3a33eb6438a1f2466fc523de92bd1698345d7f2fd114b78adfee9d00fa9b4a9538b45a27d66ac3f92aed2ae9ec74be8fbd8c647d45911c79b2f945e71bc96b06d5b5f3cfb2317fb1161a84f4bd0c8b2999e606de7f8910e28a2a25c29eed13656d1590b0e2f46c03afb5529fb8d4fd11f8c77a5c38fa5963ce8a1c0d029d75c3236f16caeed92340d55a20d453374dac3fa17817a66b2e29f23485af8316367896b2952233035522e19a52980655ff9fe08b236f89543cb2232673f7009c3810006af4b213e5e20e07479f0b3a85da9e88e6ec2d70abc24f10b0883d10bff855d423f598e17566b3355bde2167169c3d6dc094d505599c88dd7702d69edc9a856e1e89bab79385a6c102d277bdf50c877d1b5715d141c688779a67d388e436ac8ed784b806c7372bcc4cdd83400219a36473550e301be47bdfe7104dcca2d79931937479d4922b969dbdf4c9ed7c8bd7d1fd3f458365eab0a8a8a5e3808265760ee9d40d2fe15cabab961b668f026f04c1567094b44febd20b6354f5d863c50aca5e0e6cede70a67d5678f78fdff39c71a701abfb56a12697c8800c7016cbe0c987749f311b39ae257c07e38aa75f8bb34f829f94a9a821fbeabae69d02d21fd90a56a0518bd6fa8d7e0a6998f53e6f9a0584c1c6d030ff39f362bf9cffe702c30c6b161c0b559f5a794ce895c57b36c710135065dc7a030628ec64b466692b7df7889dc9d4420e46133afe91eaf6cdba79af006b03b281298caf4e3cd900173e1104a808a5d8d8c14e952aecf9c63d59c719318d0d9fbc77f64608f33996477537daedc49af37498f783543de0f60f0fab3a2db35aa7f61a595c18a0591da2c9a57939161d614e18542b889f5404397e2478393816a4bf8c6bd501873f9737ef296bf171897f42fca2605ad334fec42dc5df79a4a22a2c5d502af1f5773ba671ee83324e174047c07eee7031874254d71c248f558515442215136cd058df6a2d4f529979a6b05455d19eb368760d453377c1fd4f4292758028f26306006304312234756310454cea238fdd1255487c1430390eceb987c86610b7a0fae2936756202247968af6099fa9e92379548d2ab36328834dfe88a412f5bd662fc3dbfad225f3c2060fec9c1511c168c1a43b7967624d4ca5e43b9842160f5e7ff3851fa951be4d9020f9582dc814c9498adafcd5248ccae5d479218d903b296ec384151ec8699c56e22ca95a9b613c1f1fd3b4f735045badd75587411fdd45686374ca6938b35af2d93ff61d628236b1fe631672839720014dfff54387cb537872c19fa380d2c7ef837c6d9765b52cd2064a771d50d6d61702d04a6ccaf8b92905571c82b658c0c5e2191631f236f0acd0f956fe67af42bfe017471e98bb61fec2113585708b6f4a90f6a15c1eec02ae1358e214a4a83ce630f5a7759ddf58d7d3acf65d083104454f6e7c13bd0f7e65bcc739bd3c4f8188abacadaed2bd9c24dfbe42b7d14c7d5919b948471af43bfd8531ea1d0d3719beb82d47f0eefe248361785e36610dfc4a8530501c9b3ad2e32aa21e6829a0ae0b77834ff3ff3e3f3cb35c4ca785680e420a4fbc3c3a872f273a02fb30f58cc2d6f9865b594f67c616d0010c422dbb10d021daed4046ebd70ec5eda0a11f40e7f089477d31a513bf3b0deaa5b4474f6f8a548053f0f736231648094ddb73de02bb3d1ae496d7c3c92da8c0fdd8124f1715da8e38e8829b1c136fff74bcf3bd0cba93a405c9d17bf6f077b8f2fd00e88b6bd383192a725e6305d36c3e850e76034b442693c69eebadb25d37954084dcdb3dfc91240482d77b3c35e90e1d33c543486693831f3aa5ca1be5737e81a32dcff31c7b71b62bdaf03600d7c23d39e8529532a908358a1a1b04eba9d8e2b9cec7da2f29b882568e9fbd91ca0324b76eba26095343b25d5a72d84a806c74805d4656a1f1b57fc48deafef1f7129aa481023bc56adaf31fee173c05f8e856607f3179a3865c9eb14ab778bd6bb2793acda7ddde54bfd7a914047f42ea61e20825b3d6a10c7ef6b65c576956c286bd2d9b07c8d523c81bc868b5c128e2b0702844190763f09f313d52a8fa62d9764868234c2946756963519326c6ad79f08ec1c97fb9019e4952078078937ce4770eb3c92e3330fa59b91e9af0a330f187673bd10715db563fc23b17c676868aa0e5e1b51eecdbd6b59e095d8e3aa3827eebafb4efca6b20a317093c844b099374651651d72f871aa80c01cbc8f2ef1266aab157248b23689fe6352b82057fbad8c852877a4cb7c0f4d97d6d3e1cba99f241aef08d6eb5bc0a5e64268803a8ef71cc8731ada4b41c97bd56bbf5bfd4e0a9379491190557ecdf488d47de11e49c074f91e85ddf0e429b4c8391a2bc07d88cae0a86b402f7a834862b31fdc68189336389f8799f18f83e0437bdf6d4389b89858a81fb81eda423a8cf0a84a291ad0312f6c76198325bdfef457821059144f5ae70a87f750d93efdef7f39a00a7db08213c69c6a77f9b76bdb58401a76bfc283eed3ddc79f74983ff4a5712406f8fa2c6ea3a4ec3c4c5ce1b45545ba8e6f2fd16274f6f774c9ab8bd303a48acdeeb68569bd6d700000000000000000000000000000000000000000000000000000000000000000000070d151a1e242529", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 45, + "comment": "expand_a requires 280 SHAKE blocks", + "msg": "48656c6c6f20776f726c64", + "sig": "bdbd590a2244f0f2185e9155e694d8fc835f58c8e115693819fd64c358d3ba0d05b083019bf1e180f4d0b50e2e6a682d1fd041a3170774db4fde836c891cbadba412accdbe13c5d17564e84bb9ce76346f2b53f6b239cb63ed2d3eb2c8e45fcf5ca87ace938157de96f562460718fe21c2af8d1ad8e7c83413b197ac0e89b8db3e1fe6aeae126119d8ea4795ede08bad86e8334baf970e4eca2af4b580c31251ae6eefbd045abe57c782053aff152d4272650edd6984d601f3b81f7cc63d7c712908b9051dda45b672905c4135a20c92b871d987ddca21e571e6b92778afbac2666f1d057d68e4fe3aea479383b61c798705f20c37c3abe218b9d6a6d8571c92eaf5f65322d19fb90747cb65562c65d0428d1161a2fafa4d933ae6b8948a031be22f103d3227efc7d5b19e5aa541d43207d2a2dc952435d85739556fe2894d0232284262c751f54adfaae7cf250f7d9d98e351c7c398a2eb5010199ba391296fbdfe7965d9970936f5dffb641cc646aa795b159232f78d2adc0e5ddb1bf7d755c48ca5e204a34e14c770188ef7c9826a0541b75602da6adc28bf3c7882e6dc061b726e2a4885278d7a9d4fa37be88abfc31fb66768222eca3be3f68a5dfeaf22d677c5f29ac952e0bd0b72d8255b60a7d491be1255106b7424ea02b46751f75d84d3ae036771b69a31fd937d6c0fef449dc4b1e3cea5366cae3839f5029fa89579cd122980a56f0a2e4c35e973bb67f9c02504926d50ff2ac874c9c6830e734135a79a51481a877d8ff58d0c8a1477d799e3ab3e2757765746b9922dee80b8a99a25c0522ab3a86ebb1fb0023a41dd4f1876b2ba572b5ad057e07cdbfa6db5e93509b123be540f2ab09aa1371d3efd2f9841efc4c747ebe991c4a7a3af4609988436a0b75ea02519abff82e3d82f410698e2105af01e7e29c5ea87f556b60b7a9edf2a8cbe76e094f299fcf3b31a86c89284b7376f670e1b45a23724fe2b1f8e7f07e0bb8e12b6e326db394921d811011e7b05c019e28adcae8b96a3fba22b702f1791ab9822f0786ac8cc39b7a98a6b0882add1e0919fe0fc381da0e9d9acc113e47e7fb4d5f3c7e7ae28ae60793d5429404925f33f621b3808c5bd0b2d01a8f1bb01642ebe8c00366d48f1cf56a775e5d8e3e0d344ca04ff2e3aa06d350728539c71803337d142f4890fc95c9d960e8dbb3ad37aaf8eb1280eb4c616395cfaac01587b672d52b5f5be6f274ea161204780f3ebcb6fc2cf3c5ff82b95c288b1fd8ee184c5a723399e8591f7f393e95486995347f738a13a378fd7250dd7d9dce3bbc5ab7e157b93710df20dc44405053bf030fa6ba0fcdabf48cf2ad364bae3b50b2b6b615c04cbcc9f61aa18189041022f03a3a9e63334c22a4208d66a575896395599e69ec20ebb4f251f9ff4230a5ec11f63504a1261b4a2fec8a3fdff30dff61dce37a4e4db7523391d4bf37e1993ada256b0e464015fb8187a2f2a099ac14fffb99b32b110aa885f6b98a4c94ddbf7c012e14848ce6d8ca05f2ae6b948e3aeb0a04a769a4c5d5b51d210ec189d9ecf250583c268d92336d21c0e15e4e43e9ac49d29a77d907c2bb48b2109465686b6c3d541a9a80968017a420c7f1d9a87be01e82efa679a00c90f9ce308365c6531595c30dfcbc3e6f2730c859feb49763a5bfd444afd11af0c3bb8a01900da2a4bfd3c7a884af250e4c544dae3ef1539c3e190c1c49de95478e95be8c377a9dd525bfcad8fee65ad82903fe4e22f0ac4c01ba7ea7bc69d6af64cd945b169a5bf8a9e567f82918c562d282066d15e24f523a5a860f8bbd713991a1a873b3c461a1714771ed72504b42da8ff0aac938219c30dc5c247d546ae68d7e2edcdb945bd0a41b3187f87b4efee08f4d361c5726eb85f39fdb320e554e85eceff374489e55f2697d81818d8f4018a2ffc9e4519e81985160da676d1d9a8d9aa4b92ebfbb9e8d2f62e142374ef1597461c04be6f371b4912356f31563213379b73934196fafafc890568d36c9cd0d8821e400d70042d90fb3048a22352d003f09cfbd815f8d7359e29e3c836b768c95c9a55e510d9806d1ef4761229ada799c35112a8bd8ec9ba7bf89680979d689946dae81f06835760d6fbce453981f25631d320db5eb44728bdd2013b0d1796de60b2fab291391d884eb532661deaad35b6380b3be36d0cd03b58049721dd77459ecdaaa9b40f5abaec62fbdfb4ec9e9e470eec1fc5a61f306066948e3fa31d1e069a7f28befcc74c12083bfb0c632afe2a2882bd9e6a37dac21120d3bb4f9ea053854bdde843a4da28a270ead7025a6a12d21c608ebf34ee8328a2c89d3bda3c02ab3befea760c614e6de734a2f921e38266d281bf38c7d668ebbf97aca7532160f4921bcc3e3daefb0729ad5e86ad90403f32fd60096a00f07bcf76577451bf9753e203df556c68fc3dd71c046dee2d55f5d587e7b71bf3e8619ac324a75431abda708e94f7239fe0b0fa75ff7a11985dc26b480b2326b0a80db18fb1b287a1d2219a054805319050f244c65cfa82e58099b1a92cca7cf1a64943ee58fec374511b3e84b8e066adbe65fa87ee0afcc966877fc68946647bdbb698ad4d5dbf6ba17b476ee33b4b73fde3519eb369239018665cbb280614003b9fefc418f59ebf0001263eef391310d0c9cd70d11e59f87cdd7c8ecede3b71a06c3a977efff29577c63f3b04332dff52d30ebde22a2cd5b3d91cc1fd6eebb6a2ee1e953492b5bf8b0a6eade75cd9bb8a8f276ac4228b735e1b56823026367fbde09afe5bd02efc4b00a4489a3d2ba5c74cd56979a3f5ec63570155d68dba2834264ae70954f34956ef004208cf88b603b409c91e109e73b48cf50af1c5a8a4a1280b6db7098b29fdb510abc966f31e516a9e59cee647710de7fea32659a12db2d385a0baad1d68220302ca8794406afd395046297f6f6e303e9689b40cbf0f6cfb8ec6fc88a02b72012b94798e6fcb4e0681dd5c9bc9d44f1bfb816d623e434d7b397d978328d99f9c9bec990e856e27de6bc48c172593f8e81708d29a636807509e97326c17d28c368e52b0af7c6d56566fe42002a07d81c42a87d0d541cf623db9cbecfde2944f6bdc11c1f486919357699118d9c666fc357bfc11734b5ba6be6033473e7ebb5300b83d3870f4fa51eb601e4ca11eb66c66f0cbd44ad1da4f7e744afe415bff7897ce80817b3975b5be66324973770018bfdb30cd08cb6831c7d3c60f8bafcc168fde1f86f110c4b071783102879943b40c4a31c06101c8d52c800c28926b9007334296d000776ec7b489eeac2dceac250fbc4cd2c8e4c54bbda7d9820116244e2cd0e85ff718c4345b2a812c6adf12a0870e8dd27a0040e78a1a685b229ce75f00c79f66c5da40590b8a2afeb7a96a1bd5ee17d27a6212fb367ac9b82ab689b5aa8afb90a0496f942667fe42d572e4749e36e9ba456810ca133196e9f75f00e2897f6b0888f0a9af29951b5be3a2f63a9f8d9d225e83937f15c349faee24f2f5c16a48b460a9e4a6c4c80cb496523986bf27edac76aa733e68ed238c17d85b8dd49eb05424e5889fd3d4e183ff1ed1f348d7e0889faf167dedbd59ee874cb3070069d854184c7d9305b7af2cf1adc09533273f3be154f272baded0e03d836465e655cb35ce5f666588d682f95ae789d10c13fedf883359b0fa45a27894f4eeb63ed2a86f5c98e93f9c5a43ca104d70cd8c0ed8a4da7804c6c8091b6369bc3988dd201cadb636b4fbb90b0511ae1e4d508e4b7ab551c4f130d0f72906f61bd9270c36e7b474d411eaca5c93fc70533ba76c2dc0a59145a6f3d7397480955758cc36362be14d987dad5633bbfa208a7c8c36140ac8f4ae4538fad3a33eb6438a1f2466fc523de92bd1698345d7f2fd114b78adfee9d00fa9b4a9538b45a27d66ac3f92aed2ae9ec74be8fbd8c647d45911c79b2f945e71bc96b06d5b5f3cfb2317fb1161a84f4bd0c8b2999e606de7f8910e28a2a25c29eed13656d1590b0e2f46c03afb5529fb8d4fd11f8c77a5c38fa5963ce8a1c0d029d75c3236f16caeed92340d55a20d453374dac3fa17817a66b2e29f23485af8316367896b2952233035522e19a52980655ff9fe08b236f89543cb2232673f7009c3810006af4b213e5e20e07479f0b3a85da9e88e6ec2d70abc24f10b0883d10bff855d423f598e17566b3355bde2167169c3d6dc094d505599c88dd7702d69edc9a856e1e89bab79385a6c102d277bdf50c877d1b5715d141c688779a67d388e436ac8ed784b806c7372bcc4cdd83400219a36473550e301be47bdfe7104dcca2d79931937479d4922b969dbdf4c9ed7c8bd7d1fd3f458365eab0a8a8a5e3808265760ee9d40d2fe15cabab961b668f026f04c1567094b44febd20b6354f5d863c50aca5e0e6cede70a67d5678f78fdff39c71a701abfb56a12697c8800c7016cbe0c987749f311b39ae257c07e38aa75f8bb34f829f94a9a821fbeabae69d02d21fd90a56a0518bd6fa8d7e0a6998f53e6f9a0584c1c6d030ff39f362bf9cffe702c30c6b161c0b559f5a794ce895c57b36c710135065dc7a030628ec64b466692b7df7889dc9d4420e46133afe91eaf6cdba79af006b03b281298caf4e3cd900173e1104a808a5d8d8c14e952aecf9c63d59c719318d0d9fbc77f64608f33996477537daedc49af37498f783543de0f60f0fab3a2db35aa7f61a595c18a0591da2c9a57939161d614e18542b889f5404397e2478393816a4bf8c6bd501873f9737ef296bf171897f42fca2605ad334fec42dc5df79a4a22a2c5d502af1f5773ba671ee83324e174047c07eee7031874254d71c248f558515442215136cd058df6a2d4f529979a6b05455d19eb368760d453377c1fd4f4292758028f26306006304312234756310454cea238fdd1255487c1430390eceb987c86610b7a0fae2936756202247968af6099fa9e92379548d2ab36328834dfe88a412f5bd662fc3dbfad225f3c2060fec9c1511c168c1a43b7967624d4ca5e43b9842160f5e7ff3851fa951be4d9020f9582dc814c9498adafcd5248ccae5d479218d903b296ec384151ec8699c56e22ca95a9b613c1f1fd3b4f735045badd75587411fdd45686374ca6938b35af2d93ff61d628236b1fe631672839720014dfff54387cb537872c19fa380d2c7ef837c6d9765b52cd2064a771d50d6d61702d04a6ccaf8b92905571c82b658c0c5e2191631f236f0acd0f956fe67af42bfe017471e98bb61fec2113585708b6f4a90f6a15c1eec02ae1358e214a4a83ce630f5a7759ddf58d7d3acf65d083104454f6e7c13bd0f7e65bcc739bd3c4f8188abacadaed2bd9c24dfbe42b7d14c7d5919b948471af43bfd8531ea1d0d3719beb82d47f0eefe248361785e36610dfc4a8530501c9b3ad2e32aa21e6829a0ae0b77834ff3ff3e3f3cb35c4ca785680e420a4fbc3c3a872f273a02fb30f58cc2d6f9865b594f67c616d0010c422dbb10d021daed4046ebd70ec5eda0a11f40e7f089477d31a513bf3b0deaa5b4474f6f8a548053f0f736231648094ddb73de02bb3d1ae496d7c3c92da8c0fdd8124f1715da8e38e8829b1c136fff74bcf3bd0cba93a405c9d17bf6f077b8f2fd00e88b6bd383192a725e6305d36c3e850e76034b442693c69eebadb25d37954084dcdb3dfc91240482d77b3c35e90e1d33c543486693831f3aa5ca1be5737e81a32dcff31c7b71b62bdaf03600d7c23d39e8529532a908358a1a1b04eba9d8e2b9cec7da2f29b882568e9fbd91ca0324b76eba26095343b25d5a72d84a806c74805d4656a1f1b57fc48deafef1f7129aa481023bc56adaf31fee173c05f8e856607f3179a3865c9eb14ab778bd6bb2793acda7ddde54bfd7a914047f42ea61e20825b3d6a10c7ef6b65c576956c286bd2d9b07c8d523c81bc868b5c128e2b0702844190763f09f313d52a8fa62d9764868234c2946756963519326c6ad79f08ec1c97fb9019e4952078078937ce4770eb3c92e3330fa59b91e9af0a330f187673bd10715db563fc23b17c676868aa0e5e1b51eecdbd6b59e095d8e3aa3827eebafb4efca6b20a317093c844b099374651651d72f871aa80c01cbc8f2ef1266aab157248b23689fe6352b82057fbad8c852877a4cb7c0f4d97d6d3e1cba99f241aef08d6eb5bc0a5e64268803a8ef71cc8731ada4b41c97bd56bbf5bfd4e0a9379491190557ecdf488d47de11e49c074f91e85ddf0e429b4c8391a2bc07d88cae0a86b402f7a834862b31fdc68189336389f8799f18f83e0437bdf6d4389b89858a81fb81eda423a8cf0a84a291ad0312f6c76198325bdfef457821059144f5ae70a87f750d93efdef7f39a00a7db08213c69c6a77f9b76bdb58401a76bfc283eed3ddc79f74983ff4a5712406f8fa2c6ea3a4ec3c4c5ce1b45545ba8e6f2fd16274f6f774c9ab8bd303a48acdeeb68569bd6d700000000000000000000000000000000000000000000000000000000000000000000070d151a1e242529", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 46, + "comment": "rej_bounded_poly (sample_uniform_eta) requires 2 SHAKE blocks", + "msg": "48656c6c6f20776f726c64", + "sig": "bdbd590a2244f0f2185e9155e694d8fc835f58c8e115693819fd64c358d3ba0d05b083019bf1e180f4d0b50e2e6a682d1fd041a3170774db4fde836c891cbadba412accdbe13c5d17564e84bb9ce76346f2b53f6b239cb63ed2d3eb2c8e45fcf5ca87ace938157de96f562460718fe21c2af8d1ad8e7c83413b197ac0e89b8db3e1fe6aeae126119d8ea4795ede08bad86e8334baf970e4eca2af4b580c31251ae6eefbd045abe57c782053aff152d4272650edd6984d601f3b81f7cc63d7c712908b9051dda45b672905c4135a20c92b871d987ddca21e571e6b92778afbac2666f1d057d68e4fe3aea479383b61c798705f20c37c3abe218b9d6a6d8571c92eaf5f65322d19fb90747cb65562c65d0428d1161a2fafa4d933ae6b8948a031be22f103d3227efc7d5b19e5aa541d43207d2a2dc952435d85739556fe2894d0232284262c751f54adfaae7cf250f7d9d98e351c7c398a2eb5010199ba391296fbdfe7965d9970936f5dffb641cc646aa795b159232f78d2adc0e5ddb1bf7d755c48ca5e204a34e14c770188ef7c9826a0541b75602da6adc28bf3c7882e6dc061b726e2a4885278d7a9d4fa37be88abfc31fb66768222eca3be3f68a5dfeaf22d677c5f29ac952e0bd0b72d8255b60a7d491be1255106b7424ea02b46751f75d84d3ae036771b69a31fd937d6c0fef449dc4b1e3cea5366cae3839f5029fa89579cd122980a56f0a2e4c35e973bb67f9c02504926d50ff2ac874c9c6830e734135a79a51481a877d8ff58d0c8a1477d799e3ab3e2757765746b9922dee80b8a99a25c0522ab3a86ebb1fb0023a41dd4f1876b2ba572b5ad057e07cdbfa6db5e93509b123be540f2ab09aa1371d3efd2f9841efc4c747ebe991c4a7a3af4609988436a0b75ea02519abff82e3d82f410698e2105af01e7e29c5ea87f556b60b7a9edf2a8cbe76e094f299fcf3b31a86c89284b7376f670e1b45a23724fe2b1f8e7f07e0bb8e12b6e326db394921d811011e7b05c019e28adcae8b96a3fba22b702f1791ab9822f0786ac8cc39b7a98a6b0882add1e0919fe0fc381da0e9d9acc113e47e7fb4d5f3c7e7ae28ae60793d5429404925f33f621b3808c5bd0b2d01a8f1bb01642ebe8c00366d48f1cf56a775e5d8e3e0d344ca04ff2e3aa06d350728539c71803337d142f4890fc95c9d960e8dbb3ad37aaf8eb1280eb4c616395cfaac01587b672d52b5f5be6f274ea161204780f3ebcb6fc2cf3c5ff82b95c288b1fd8ee184c5a723399e8591f7f393e95486995347f738a13a378fd7250dd7d9dce3bbc5ab7e157b93710df20dc44405053bf030fa6ba0fcdabf48cf2ad364bae3b50b2b6b615c04cbcc9f61aa18189041022f03a3a9e63334c22a4208d66a575896395599e69ec20ebb4f251f9ff4230a5ec11f63504a1261b4a2fec8a3fdff30dff61dce37a4e4db7523391d4bf37e1993ada256b0e464015fb8187a2f2a099ac14fffb99b32b110aa885f6b98a4c94ddbf7c012e14848ce6d8ca05f2ae6b948e3aeb0a04a769a4c5d5b51d210ec189d9ecf250583c268d92336d21c0e15e4e43e9ac49d29a77d907c2bb48b2109465686b6c3d541a9a80968017a420c7f1d9a87be01e82efa679a00c90f9ce308365c6531595c30dfcbc3e6f2730c859feb49763a5bfd444afd11af0c3bb8a01900da2a4bfd3c7a884af250e4c544dae3ef1539c3e190c1c49de95478e95be8c377a9dd525bfcad8fee65ad82903fe4e22f0ac4c01ba7ea7bc69d6af64cd945b169a5bf8a9e567f82918c562d282066d15e24f523a5a860f8bbd713991a1a873b3c461a1714771ed72504b42da8ff0aac938219c30dc5c247d546ae68d7e2edcdb945bd0a41b3187f87b4efee08f4d361c5726eb85f39fdb320e554e85eceff374489e55f2697d81818d8f4018a2ffc9e4519e81985160da676d1d9a8d9aa4b92ebfbb9e8d2f62e142374ef1597461c04be6f371b4912356f31563213379b73934196fafafc890568d36c9cd0d8821e400d70042d90fb3048a22352d003f09cfbd815f8d7359e29e3c836b768c95c9a55e510d9806d1ef4761229ada799c35112a8bd8ec9ba7bf89680979d689946dae81f06835760d6fbce453981f25631d320db5eb44728bdd2013b0d1796de60b2fab291391d884eb532661deaad35b6380b3be36d0cd03b58049721dd77459ecdaaa9b40f5abaec62fbdfb4ec9e9e470eec1fc5a61f306066948e3fa31d1e069a7f28befcc74c12083bfb0c632afe2a2882bd9e6a37dac21120d3bb4f9ea053854bdde843a4da28a270ead7025a6a12d21c608ebf34ee8328a2c89d3bda3c02ab3befea760c614e6de734a2f921e38266d281bf38c7d668ebbf97aca7532160f4921bcc3e3daefb0729ad5e86ad90403f32fd60096a00f07bcf76577451bf9753e203df556c68fc3dd71c046dee2d55f5d587e7b71bf3e8619ac324a75431abda708e94f7239fe0b0fa75ff7a11985dc26b480b2326b0a80db18fb1b287a1d2219a054805319050f244c65cfa82e58099b1a92cca7cf1a64943ee58fec374511b3e84b8e066adbe65fa87ee0afcc966877fc68946647bdbb698ad4d5dbf6ba17b476ee33b4b73fde3519eb369239018665cbb280614003b9fefc418f59ebf0001263eef391310d0c9cd70d11e59f87cdd7c8ecede3b71a06c3a977efff29577c63f3b04332dff52d30ebde22a2cd5b3d91cc1fd6eebb6a2ee1e953492b5bf8b0a6eade75cd9bb8a8f276ac4228b735e1b56823026367fbde09afe5bd02efc4b00a4489a3d2ba5c74cd56979a3f5ec63570155d68dba2834264ae70954f34956ef004208cf88b603b409c91e109e73b48cf50af1c5a8a4a1280b6db7098b29fdb510abc966f31e516a9e59cee647710de7fea32659a12db2d385a0baad1d68220302ca8794406afd395046297f6f6e303e9689b40cbf0f6cfb8ec6fc88a02b72012b94798e6fcb4e0681dd5c9bc9d44f1bfb816d623e434d7b397d978328d99f9c9bec990e856e27de6bc48c172593f8e81708d29a636807509e97326c17d28c368e52b0af7c6d56566fe42002a07d81c42a87d0d541cf623db9cbecfde2944f6bdc11c1f486919357699118d9c666fc357bfc11734b5ba6be6033473e7ebb5300b83d3870f4fa51eb601e4ca11eb66c66f0cbd44ad1da4f7e744afe415bff7897ce80817b3975b5be66324973770018bfdb30cd08cb6831c7d3c60f8bafcc168fde1f86f110c4b071783102879943b40c4a31c06101c8d52c800c28926b9007334296d000776ec7b489eeac2dceac250fbc4cd2c8e4c54bbda7d9820116244e2cd0e85ff718c4345b2a812c6adf12a0870e8dd27a0040e78a1a685b229ce75f00c79f66c5da40590b8a2afeb7a96a1bd5ee17d27a6212fb367ac9b82ab689b5aa8afb90a0496f942667fe42d572e4749e36e9ba456810ca133196e9f75f00e2897f6b0888f0a9af29951b5be3a2f63a9f8d9d225e83937f15c349faee24f2f5c16a48b460a9e4a6c4c80cb496523986bf27edac76aa733e68ed238c17d85b8dd49eb05424e5889fd3d4e183ff1ed1f348d7e0889faf167dedbd59ee874cb3070069d854184c7d9305b7af2cf1adc09533273f3be154f272baded0e03d836465e655cb35ce5f666588d682f95ae789d10c13fedf883359b0fa45a27894f4eeb63ed2a86f5c98e93f9c5a43ca104d70cd8c0ed8a4da7804c6c8091b6369bc3988dd201cadb636b4fbb90b0511ae1e4d508e4b7ab551c4f130d0f72906f61bd9270c36e7b474d411eaca5c93fc70533ba76c2dc0a59145a6f3d7397480955758cc36362be14d987dad5633bbfa208a7c8c36140ac8f4ae4538fad3a33eb6438a1f2466fc523de92bd1698345d7f2fd114b78adfee9d00fa9b4a9538b45a27d66ac3f92aed2ae9ec74be8fbd8c647d45911c79b2f945e71bc96b06d5b5f3cfb2317fb1161a84f4bd0c8b2999e606de7f8910e28a2a25c29eed13656d1590b0e2f46c03afb5529fb8d4fd11f8c77a5c38fa5963ce8a1c0d029d75c3236f16caeed92340d55a20d453374dac3fa17817a66b2e29f23485af8316367896b2952233035522e19a52980655ff9fe08b236f89543cb2232673f7009c3810006af4b213e5e20e07479f0b3a85da9e88e6ec2d70abc24f10b0883d10bff855d423f598e17566b3355bde2167169c3d6dc094d505599c88dd7702d69edc9a856e1e89bab79385a6c102d277bdf50c877d1b5715d141c688779a67d388e436ac8ed784b806c7372bcc4cdd83400219a36473550e301be47bdfe7104dcca2d79931937479d4922b969dbdf4c9ed7c8bd7d1fd3f458365eab0a8a8a5e3808265760ee9d40d2fe15cabab961b668f026f04c1567094b44febd20b6354f5d863c50aca5e0e6cede70a67d5678f78fdff39c71a701abfb56a12697c8800c7016cbe0c987749f311b39ae257c07e38aa75f8bb34f829f94a9a821fbeabae69d02d21fd90a56a0518bd6fa8d7e0a6998f53e6f9a0584c1c6d030ff39f362bf9cffe702c30c6b161c0b559f5a794ce895c57b36c710135065dc7a030628ec64b466692b7df7889dc9d4420e46133afe91eaf6cdba79af006b03b281298caf4e3cd900173e1104a808a5d8d8c14e952aecf9c63d59c719318d0d9fbc77f64608f33996477537daedc49af37498f783543de0f60f0fab3a2db35aa7f61a595c18a0591da2c9a57939161d614e18542b889f5404397e2478393816a4bf8c6bd501873f9737ef296bf171897f42fca2605ad334fec42dc5df79a4a22a2c5d502af1f5773ba671ee83324e174047c07eee7031874254d71c248f558515442215136cd058df6a2d4f529979a6b05455d19eb368760d453377c1fd4f4292758028f26306006304312234756310454cea238fdd1255487c1430390eceb987c86610b7a0fae2936756202247968af6099fa9e92379548d2ab36328834dfe88a412f5bd662fc3dbfad225f3c2060fec9c1511c168c1a43b7967624d4ca5e43b9842160f5e7ff3851fa951be4d9020f9582dc814c9498adafcd5248ccae5d479218d903b296ec384151ec8699c56e22ca95a9b613c1f1fd3b4f735045badd75587411fdd45686374ca6938b35af2d93ff61d628236b1fe631672839720014dfff54387cb537872c19fa380d2c7ef837c6d9765b52cd2064a771d50d6d61702d04a6ccaf8b92905571c82b658c0c5e2191631f236f0acd0f956fe67af42bfe017471e98bb61fec2113585708b6f4a90f6a15c1eec02ae1358e214a4a83ce630f5a7759ddf58d7d3acf65d083104454f6e7c13bd0f7e65bcc739bd3c4f8188abacadaed2bd9c24dfbe42b7d14c7d5919b948471af43bfd8531ea1d0d3719beb82d47f0eefe248361785e36610dfc4a8530501c9b3ad2e32aa21e6829a0ae0b77834ff3ff3e3f3cb35c4ca785680e420a4fbc3c3a872f273a02fb30f58cc2d6f9865b594f67c616d0010c422dbb10d021daed4046ebd70ec5eda0a11f40e7f089477d31a513bf3b0deaa5b4474f6f8a548053f0f736231648094ddb73de02bb3d1ae496d7c3c92da8c0fdd8124f1715da8e38e8829b1c136fff74bcf3bd0cba93a405c9d17bf6f077b8f2fd00e88b6bd383192a725e6305d36c3e850e76034b442693c69eebadb25d37954084dcdb3dfc91240482d77b3c35e90e1d33c543486693831f3aa5ca1be5737e81a32dcff31c7b71b62bdaf03600d7c23d39e8529532a908358a1a1b04eba9d8e2b9cec7da2f29b882568e9fbd91ca0324b76eba26095343b25d5a72d84a806c74805d4656a1f1b57fc48deafef1f7129aa481023bc56adaf31fee173c05f8e856607f3179a3865c9eb14ab778bd6bb2793acda7ddde54bfd7a914047f42ea61e20825b3d6a10c7ef6b65c576956c286bd2d9b07c8d523c81bc868b5c128e2b0702844190763f09f313d52a8fa62d9764868234c2946756963519326c6ad79f08ec1c97fb9019e4952078078937ce4770eb3c92e3330fa59b91e9af0a330f187673bd10715db563fc23b17c676868aa0e5e1b51eecdbd6b59e095d8e3aa3827eebafb4efca6b20a317093c844b099374651651d72f871aa80c01cbc8f2ef1266aab157248b23689fe6352b82057fbad8c852877a4cb7c0f4d97d6d3e1cba99f241aef08d6eb5bc0a5e64268803a8ef71cc8731ada4b41c97bd56bbf5bfd4e0a9379491190557ecdf488d47de11e49c074f91e85ddf0e429b4c8391a2bc07d88cae0a86b402f7a834862b31fdc68189336389f8799f18f83e0437bdf6d4389b89858a81fb81eda423a8cf0a84a291ad0312f6c76198325bdfef457821059144f5ae70a87f750d93efdef7f39a00a7db08213c69c6a77f9b76bdb58401a76bfc283eed3ddc79f74983ff4a5712406f8fa2c6ea3a4ec3c4c5ce1b45545ba8e6f2fd16274f6f774c9ab8bd303a48acdeeb68569bd6d700000000000000000000000000000000000000000000000000000000000000000000070d151a1e242529", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 47, + "comment": "power_2_round returns a remainder of 4096", + "msg": "48656c6c6f20776f726c64", + "sig": "bdbd590a2244f0f2185e9155e694d8fc835f58c8e115693819fd64c358d3ba0d05b083019bf1e180f4d0b50e2e6a682d1fd041a3170774db4fde836c891cbadba412accdbe13c5d17564e84bb9ce76346f2b53f6b239cb63ed2d3eb2c8e45fcf5ca87ace938157de96f562460718fe21c2af8d1ad8e7c83413b197ac0e89b8db3e1fe6aeae126119d8ea4795ede08bad86e8334baf970e4eca2af4b580c31251ae6eefbd045abe57c782053aff152d4272650edd6984d601f3b81f7cc63d7c712908b9051dda45b672905c4135a20c92b871d987ddca21e571e6b92778afbac2666f1d057d68e4fe3aea479383b61c798705f20c37c3abe218b9d6a6d8571c92eaf5f65322d19fb90747cb65562c65d0428d1161a2fafa4d933ae6b8948a031be22f103d3227efc7d5b19e5aa541d43207d2a2dc952435d85739556fe2894d0232284262c751f54adfaae7cf250f7d9d98e351c7c398a2eb5010199ba391296fbdfe7965d9970936f5dffb641cc646aa795b159232f78d2adc0e5ddb1bf7d755c48ca5e204a34e14c770188ef7c9826a0541b75602da6adc28bf3c7882e6dc061b726e2a4885278d7a9d4fa37be88abfc31fb66768222eca3be3f68a5dfeaf22d677c5f29ac952e0bd0b72d8255b60a7d491be1255106b7424ea02b46751f75d84d3ae036771b69a31fd937d6c0fef449dc4b1e3cea5366cae3839f5029fa89579cd122980a56f0a2e4c35e973bb67f9c02504926d50ff2ac874c9c6830e734135a79a51481a877d8ff58d0c8a1477d799e3ab3e2757765746b9922dee80b8a99a25c0522ab3a86ebb1fb0023a41dd4f1876b2ba572b5ad057e07cdbfa6db5e93509b123be540f2ab09aa1371d3efd2f9841efc4c747ebe991c4a7a3af4609988436a0b75ea02519abff82e3d82f410698e2105af01e7e29c5ea87f556b60b7a9edf2a8cbe76e094f299fcf3b31a86c89284b7376f670e1b45a23724fe2b1f8e7f07e0bb8e12b6e326db394921d811011e7b05c019e28adcae8b96a3fba22b702f1791ab9822f0786ac8cc39b7a98a6b0882add1e0919fe0fc381da0e9d9acc113e47e7fb4d5f3c7e7ae28ae60793d5429404925f33f621b3808c5bd0b2d01a8f1bb01642ebe8c00366d48f1cf56a775e5d8e3e0d344ca04ff2e3aa06d350728539c71803337d142f4890fc95c9d960e8dbb3ad37aaf8eb1280eb4c616395cfaac01587b672d52b5f5be6f274ea161204780f3ebcb6fc2cf3c5ff82b95c288b1fd8ee184c5a723399e8591f7f393e95486995347f738a13a378fd7250dd7d9dce3bbc5ab7e157b93710df20dc44405053bf030fa6ba0fcdabf48cf2ad364bae3b50b2b6b615c04cbcc9f61aa18189041022f03a3a9e63334c22a4208d66a575896395599e69ec20ebb4f251f9ff4230a5ec11f63504a1261b4a2fec8a3fdff30dff61dce37a4e4db7523391d4bf37e1993ada256b0e464015fb8187a2f2a099ac14fffb99b32b110aa885f6b98a4c94ddbf7c012e14848ce6d8ca05f2ae6b948e3aeb0a04a769a4c5d5b51d210ec189d9ecf250583c268d92336d21c0e15e4e43e9ac49d29a77d907c2bb48b2109465686b6c3d541a9a80968017a420c7f1d9a87be01e82efa679a00c90f9ce308365c6531595c30dfcbc3e6f2730c859feb49763a5bfd444afd11af0c3bb8a01900da2a4bfd3c7a884af250e4c544dae3ef1539c3e190c1c49de95478e95be8c377a9dd525bfcad8fee65ad82903fe4e22f0ac4c01ba7ea7bc69d6af64cd945b169a5bf8a9e567f82918c562d282066d15e24f523a5a860f8bbd713991a1a873b3c461a1714771ed72504b42da8ff0aac938219c30dc5c247d546ae68d7e2edcdb945bd0a41b3187f87b4efee08f4d361c5726eb85f39fdb320e554e85eceff374489e55f2697d81818d8f4018a2ffc9e4519e81985160da676d1d9a8d9aa4b92ebfbb9e8d2f62e142374ef1597461c04be6f371b4912356f31563213379b73934196fafafc890568d36c9cd0d8821e400d70042d90fb3048a22352d003f09cfbd815f8d7359e29e3c836b768c95c9a55e510d9806d1ef4761229ada799c35112a8bd8ec9ba7bf89680979d689946dae81f06835760d6fbce453981f25631d320db5eb44728bdd2013b0d1796de60b2fab291391d884eb532661deaad35b6380b3be36d0cd03b58049721dd77459ecdaaa9b40f5abaec62fbdfb4ec9e9e470eec1fc5a61f306066948e3fa31d1e069a7f28befcc74c12083bfb0c632afe2a2882bd9e6a37dac21120d3bb4f9ea053854bdde843a4da28a270ead7025a6a12d21c608ebf34ee8328a2c89d3bda3c02ab3befea760c614e6de734a2f921e38266d281bf38c7d668ebbf97aca7532160f4921bcc3e3daefb0729ad5e86ad90403f32fd60096a00f07bcf76577451bf9753e203df556c68fc3dd71c046dee2d55f5d587e7b71bf3e8619ac324a75431abda708e94f7239fe0b0fa75ff7a11985dc26b480b2326b0a80db18fb1b287a1d2219a054805319050f244c65cfa82e58099b1a92cca7cf1a64943ee58fec374511b3e84b8e066adbe65fa87ee0afcc966877fc68946647bdbb698ad4d5dbf6ba17b476ee33b4b73fde3519eb369239018665cbb280614003b9fefc418f59ebf0001263eef391310d0c9cd70d11e59f87cdd7c8ecede3b71a06c3a977efff29577c63f3b04332dff52d30ebde22a2cd5b3d91cc1fd6eebb6a2ee1e953492b5bf8b0a6eade75cd9bb8a8f276ac4228b735e1b56823026367fbde09afe5bd02efc4b00a4489a3d2ba5c74cd56979a3f5ec63570155d68dba2834264ae70954f34956ef004208cf88b603b409c91e109e73b48cf50af1c5a8a4a1280b6db7098b29fdb510abc966f31e516a9e59cee647710de7fea32659a12db2d385a0baad1d68220302ca8794406afd395046297f6f6e303e9689b40cbf0f6cfb8ec6fc88a02b72012b94798e6fcb4e0681dd5c9bc9d44f1bfb816d623e434d7b397d978328d99f9c9bec990e856e27de6bc48c172593f8e81708d29a636807509e97326c17d28c368e52b0af7c6d56566fe42002a07d81c42a87d0d541cf623db9cbecfde2944f6bdc11c1f486919357699118d9c666fc357bfc11734b5ba6be6033473e7ebb5300b83d3870f4fa51eb601e4ca11eb66c66f0cbd44ad1da4f7e744afe415bff7897ce80817b3975b5be66324973770018bfdb30cd08cb6831c7d3c60f8bafcc168fde1f86f110c4b071783102879943b40c4a31c06101c8d52c800c28926b9007334296d000776ec7b489eeac2dceac250fbc4cd2c8e4c54bbda7d9820116244e2cd0e85ff718c4345b2a812c6adf12a0870e8dd27a0040e78a1a685b229ce75f00c79f66c5da40590b8a2afeb7a96a1bd5ee17d27a6212fb367ac9b82ab689b5aa8afb90a0496f942667fe42d572e4749e36e9ba456810ca133196e9f75f00e2897f6b0888f0a9af29951b5be3a2f63a9f8d9d225e83937f15c349faee24f2f5c16a48b460a9e4a6c4c80cb496523986bf27edac76aa733e68ed238c17d85b8dd49eb05424e5889fd3d4e183ff1ed1f348d7e0889faf167dedbd59ee874cb3070069d854184c7d9305b7af2cf1adc09533273f3be154f272baded0e03d836465e655cb35ce5f666588d682f95ae789d10c13fedf883359b0fa45a27894f4eeb63ed2a86f5c98e93f9c5a43ca104d70cd8c0ed8a4da7804c6c8091b6369bc3988dd201cadb636b4fbb90b0511ae1e4d508e4b7ab551c4f130d0f72906f61bd9270c36e7b474d411eaca5c93fc70533ba76c2dc0a59145a6f3d7397480955758cc36362be14d987dad5633bbfa208a7c8c36140ac8f4ae4538fad3a33eb6438a1f2466fc523de92bd1698345d7f2fd114b78adfee9d00fa9b4a9538b45a27d66ac3f92aed2ae9ec74be8fbd8c647d45911c79b2f945e71bc96b06d5b5f3cfb2317fb1161a84f4bd0c8b2999e606de7f8910e28a2a25c29eed13656d1590b0e2f46c03afb5529fb8d4fd11f8c77a5c38fa5963ce8a1c0d029d75c3236f16caeed92340d55a20d453374dac3fa17817a66b2e29f23485af8316367896b2952233035522e19a52980655ff9fe08b236f89543cb2232673f7009c3810006af4b213e5e20e07479f0b3a85da9e88e6ec2d70abc24f10b0883d10bff855d423f598e17566b3355bde2167169c3d6dc094d505599c88dd7702d69edc9a856e1e89bab79385a6c102d277bdf50c877d1b5715d141c688779a67d388e436ac8ed784b806c7372bcc4cdd83400219a36473550e301be47bdfe7104dcca2d79931937479d4922b969dbdf4c9ed7c8bd7d1fd3f458365eab0a8a8a5e3808265760ee9d40d2fe15cabab961b668f026f04c1567094b44febd20b6354f5d863c50aca5e0e6cede70a67d5678f78fdff39c71a701abfb56a12697c8800c7016cbe0c987749f311b39ae257c07e38aa75f8bb34f829f94a9a821fbeabae69d02d21fd90a56a0518bd6fa8d7e0a6998f53e6f9a0584c1c6d030ff39f362bf9cffe702c30c6b161c0b559f5a794ce895c57b36c710135065dc7a030628ec64b466692b7df7889dc9d4420e46133afe91eaf6cdba79af006b03b281298caf4e3cd900173e1104a808a5d8d8c14e952aecf9c63d59c719318d0d9fbc77f64608f33996477537daedc49af37498f783543de0f60f0fab3a2db35aa7f61a595c18a0591da2c9a57939161d614e18542b889f5404397e2478393816a4bf8c6bd501873f9737ef296bf171897f42fca2605ad334fec42dc5df79a4a22a2c5d502af1f5773ba671ee83324e174047c07eee7031874254d71c248f558515442215136cd058df6a2d4f529979a6b05455d19eb368760d453377c1fd4f4292758028f26306006304312234756310454cea238fdd1255487c1430390eceb987c86610b7a0fae2936756202247968af6099fa9e92379548d2ab36328834dfe88a412f5bd662fc3dbfad225f3c2060fec9c1511c168c1a43b7967624d4ca5e43b9842160f5e7ff3851fa951be4d9020f9582dc814c9498adafcd5248ccae5d479218d903b296ec384151ec8699c56e22ca95a9b613c1f1fd3b4f735045badd75587411fdd45686374ca6938b35af2d93ff61d628236b1fe631672839720014dfff54387cb537872c19fa380d2c7ef837c6d9765b52cd2064a771d50d6d61702d04a6ccaf8b92905571c82b658c0c5e2191631f236f0acd0f956fe67af42bfe017471e98bb61fec2113585708b6f4a90f6a15c1eec02ae1358e214a4a83ce630f5a7759ddf58d7d3acf65d083104454f6e7c13bd0f7e65bcc739bd3c4f8188abacadaed2bd9c24dfbe42b7d14c7d5919b948471af43bfd8531ea1d0d3719beb82d47f0eefe248361785e36610dfc4a8530501c9b3ad2e32aa21e6829a0ae0b77834ff3ff3e3f3cb35c4ca785680e420a4fbc3c3a872f273a02fb30f58cc2d6f9865b594f67c616d0010c422dbb10d021daed4046ebd70ec5eda0a11f40e7f089477d31a513bf3b0deaa5b4474f6f8a548053f0f736231648094ddb73de02bb3d1ae496d7c3c92da8c0fdd8124f1715da8e38e8829b1c136fff74bcf3bd0cba93a405c9d17bf6f077b8f2fd00e88b6bd383192a725e6305d36c3e850e76034b442693c69eebadb25d37954084dcdb3dfc91240482d77b3c35e90e1d33c543486693831f3aa5ca1be5737e81a32dcff31c7b71b62bdaf03600d7c23d39e8529532a908358a1a1b04eba9d8e2b9cec7da2f29b882568e9fbd91ca0324b76eba26095343b25d5a72d84a806c74805d4656a1f1b57fc48deafef1f7129aa481023bc56adaf31fee173c05f8e856607f3179a3865c9eb14ab778bd6bb2793acda7ddde54bfd7a914047f42ea61e20825b3d6a10c7ef6b65c576956c286bd2d9b07c8d523c81bc868b5c128e2b0702844190763f09f313d52a8fa62d9764868234c2946756963519326c6ad79f08ec1c97fb9019e4952078078937ce4770eb3c92e3330fa59b91e9af0a330f187673bd10715db563fc23b17c676868aa0e5e1b51eecdbd6b59e095d8e3aa3827eebafb4efca6b20a317093c844b099374651651d72f871aa80c01cbc8f2ef1266aab157248b23689fe6352b82057fbad8c852877a4cb7c0f4d97d6d3e1cba99f241aef08d6eb5bc0a5e64268803a8ef71cc8731ada4b41c97bd56bbf5bfd4e0a9379491190557ecdf488d47de11e49c074f91e85ddf0e429b4c8391a2bc07d88cae0a86b402f7a834862b31fdc68189336389f8799f18f83e0437bdf6d4389b89858a81fb81eda423a8cf0a84a291ad0312f6c76198325bdfef457821059144f5ae70a87f750d93efdef7f39a00a7db08213c69c6a77f9b76bdb58401a76bfc283eed3ddc79f74983ff4a5712406f8fa2c6ea3a4ec3c4c5ce1b45545ba8e6f2fd16274f6f774c9ab8bd303a48acdeeb68569bd6d700000000000000000000000000000000000000000000000000000000000000000000070d151a1e242529", + "result": "valid", + "flags": [ + "ValidSignature", + "BoundaryCondition" + ] + } + ] + }, + { + "type": "MlDsaSign", + "privateKey": "da2593ac1dddc220922b9b1972a2549aaca212f972786a5a5d7c2e00abc407a14c3bdfec8156039e1da4334d82b03e6f05a91a5d07e6781cb8e5f864f700ed75d96564cf3dcaca9aa504318e03a71b7dd5c641175f94472aa66775e7e6642a5e81267f36eedca4fa05939c2f1672e6b78239377b8c56609a1adf8a719354c0611a470982244aa0124112c684da203123a92dc104120ca841611089213041223845c0a2240bb95164842441c84012a34c1a112912170110c169d986888142729c1472db483054a0650b88251388499130110824525cb20d9a121184a0811c05609b1466241405c3320ed8b46919096601304e1b07292218410a9165a4828ce02686438481c832218c4010c3869154364492b05161326018c305d8042ad93881141512a4066084a87000b300ca382a034740914069e034290b414c2240410912691ca070083502c8b24440242691023223168c893289e32804cba400109465d2400d18b68d24a74ca0009244b26d630051581001cc486593080e40946500c20ca3826cc2242853a28904278e9a026c93a20803234543022449124c0c0849000492142891c1980c0922404c3811244471ca0804a3b0819bc62818980da1b8009a968048b6910412080c121101a430cb02241cc50541b6298040282286840a40015ba0001a0104034746c83600d8442ed4063002117100334213814110278159363019431201198de39665c1a09084028918934899966d18364ed1c04cd3a841491869128384cc808092c8880385480b17088414521c020103904da4c04423104802086d482608003590c44832993425983066e42026a2964d8b146902262149322d92b6684c321282c0654104499ca80c84046e00109120c86459c061d918224422515a8291412686d1302a8a12458c024510a22900472961446cdcc6701ab62c14400101252820073144c249844200a2a64509180009156023072218420d19179152846091400d1813220ac59104a5289c10414096490188051415225228812390518208215280412013895c3842e0a205d4820942468d08454892088ac42450c9024ec1380951420113b185c02881ca146ec81286018365a304840219500b49601404861a268413384ad93621d142298c308081162203024919837098a8310c9771c33648814812234060519411ca320c53824489022a120648a2004d10b4690ba529933224833009e1328284c2210133711248494918101a93298a220d51286e180948633890101245e1b811e0b628932071e0324143308954146952a420e034401948852015264a18308a180c63443194183148c6690b072d931690a122908048900311004340059ca821e424409c384ae4c68863988c0a064104276acc1441d3a809ca4261a18600d39221d348711b326c4000805b9445c200840b302911180513852948301159c46044164ce1c805e0448690b22d08912143881164165010247210b704a0b62c93886553a4690a2928d446688a2202da0030042609182426d2044c234566a3963100c7615226711383301c212adc025111996cc8160e9228410a03010c978050b489d0402e22a61103067023334402868013367012295062245248462e0b44621c452891325108000021428e03284149328684202c4c46420982812093249a444510b629c93281c49440ca3681414848a3485221356e6210400929505b908152120104b43003240c48a6449a827021263100392609958514122298424213b0848b22685ac0682103910b933080042289c26148420c1a364189c06191b6805b148612178592482c09a84512453121340a23850c0bc96108888d84466d19386ae1b405512892a1c20810446c51c0284c448d0321800a218d04c96123894d20211081380e94a42c80181199323203076c4c4449944045e4926c0cc54423009049988852100c48966d1b898199b24c0ab7291b8484cb1680c1a80c9c881118a21111438c098465c43646649204249851a028522385411bc2118bc644a4a28899a24949a40004302a209890a342900bb62d93a6910ba70d0b488ce3806820814d1b258e24c70108146d1111221a328050a46110994012a470cc444a144361d13684c9240824428c02914d08178093260410b77054906d94304aa02608901449231882e3b660e1469052482c1a850054400a1c4626cc1665441201144b5a9215af5bc1108486db4464745ec26d7c91a2e04827a35cd248ca2f253799177ffb4d56c820ba4a85341de48e050cac8116e659b540c7e9212b7e12997ce2dc2c83851336b591a1dc6c3d72c768e5de75b117f7cb9419132c0e58b2c8fe99109a1dc56c29e601ae87f388e89c552b56d4b40b9b6baab51a495b38e5015cd5bddf9d21cc24c0f0f846266e0aad423b17a4518028797d55913720c5c114dc85d2381b2b469df5ba3c6c9959e4929a48152f4dc13afec20ed50fafe72739d7469ab0cc5cbb2923d054de3db92ab5b4f555c518312d1bd414d7a28ef0f606f7837ebdc3a4fb17245f07095495dc93ed34805db8ca53897f57bd276bc3d01f644e5fed39af540f766e671d83101ec29976c62495557fe18a8f38f1c20d18083598d533539c409ecc712eb8197854a7632b73a0de4311293905a9113f07cea4aa07a61fc72a1d43281633d4023bd47137d5c5562cfe7dcc7ef5478e9699e8029c28ad0293bc8c4c906e7c29444ef32747f6ca137dd2a29f45061c24c0fbfaff2301de1a4e467aecd0e76874dd6c2a15308948e6ad47ee144b248387c837a4bfc94e0889d9e68db8a0b0f3028d30c278152441784d3cad1bce17bb029713cbfb44abd1351314e93250f112a1051b334d5579efe464fae124ab16910c5d8481bf827191fe5c61fb0d3f66ba368451ec810d9121a84f3baa2396dae9235d24760787223d7f43b3ccf8161016d6eb94fd14c8250c149f4ef83b39e2bdde347731974f0675a1dfbfeda12822a0928bb6b34dfcadc4770533d0222dda261373ed350d27eb2acc2d4b862bb4109867d4450904ae8ed4191d24b213feeae471d6a2bba0cad1a4f5f91400a79c714119255c90e7559637666be4ec91bdbe6f87e7f9956e50784e57de9d9499115a19a05cc31aa9054d71e2c9c80f8e8184ac9741ff106b51e5bf33f1a77f387330a93c25a9eddcadaf050f89d3263460ee0121c83e4bd2f6f5ec318ad9e65a0ac15f9ecb0ff22cfc9d87285e501449e69a1b9dc939bf150f23f412d9f1be079b6cb326c4815ba258a816994d22c9d4cfd2f6ea10425992eb9cd999ee88fbcc16c6c8666e48622e3bd2037c51008afa2c232c4d41e7f2d2816a8848b198af84de74b04ac40e4f9e196274d458552c2297911fd031fa512048bd1eca303fb95a3d61dd91b90803b5bd261af457f72765f539bd6e98e2e193faf51657061d67914ccb86b5e751b30e7e5722e6e1823699a8834cbf9f00bf719fc3538786a0bdb584956c885bcc15206c19e2b923bfe968aa012d2463d24d6a6fee2db863f9e0c8885b5e7d75aed65eba7642656e31e7157e4efacaf5a1fb104d5b6c5acf10d1b9e993f36da93be9a37742cc167ce388296e14ebe18b320768b1ca00532c1efc07ac42eaf91f5dd929e30fac038f25ba372d470777b5f0d4dca46baa3b52f03a76ad197ac05ae7e7a708ff77911cb8a9d45f8d880f5ce53b2eee22f38dc983bac69f1058ce8dd3675d3b955761c995cfc9d9b58bc315808f8cd382c4a4454d22f0df245d58473fdc75755e39e5bcb61653034e50b3584adbd6a864e4f08f1018c27685fd49c2a3486a0fb9259af8942f5f7b99201391cf74e44318304cd906015fd93d40ea47bbdfdf4a1865b9f8b327fa83d82815ae2899b48a2f08ddd3783e0580fea3152d2efaea2f951acdb6968434d94c4fae853de26b0e8066ddbc7d76f5e4f2c59ea135c83b0d8581e4a8065739addf290b368157318c50ef90f6e0139261f3b93f8418c203336d9a0a8c4a33a2d00914092c36ee9742777bb9eceb77407efd2d3d9db7441283ddb1a954ec977301ae42b78124741516264858f2fa4b024a6f5228c369104a5b723e7dd7e09982c451d83cde8b4d41dea4651072815c9ea71c369e1ba0da00d4aad5a142e1a5d7e88f839dece726f8041b548c33995ab80e270c00da3bc446574d819df6e910eb7fdde40f783a71e1bc2183d26c81377fd10342a487f0cbe6259f219b270a6636c505ddcdb1e3a7530c055b80caff5160aca6c0624c9aabfd6d8be2f01ea28a651012cdb90dc60bb0efdf130aa3cf00ad7a6069db37195d6db0a479f914d952be94819a308adff69d86a3576ab5e0f28d77fdd0711160077a18e46bd4d82391a1120bc90280e2e6d193e72f49a512bd2dab468f5ebccf06382cd83d9e4c3657aa5db082526494f43db083e12d5c5f190cdaae8afd740d91b26e53dda4ae0bfc6fc44ef747f71111d9d4379aed75bf1fdc46731aac3a711f719297c328c94b603042c91e487c927277345277324b0f517d58b7d31ddc32ac685b83032b88c3e2d64f7779aaf7beb44aa48f5e3c1f89e6061e657f465a0a65dad5c69155b34fe4bb597ade010c7ad0e8b27d252326e42dd9ffa568364e53a2a1bb781ff979af2d94339478c6cae9b0154a93b5814c6dada2e0e07574c075a6eb85aa51e2aa588cf70aa3bb0423b4a05b1c52dd729d6c96ea27c66c977a9f323899b6943f29d7d87cd7154178d94598263f76791115ff430ebed0c88adc5876169b5590edf9f253b66fff93cf73b589c16de339009f3fa9a1884a100ba2674b810323f57931427ec7623a435c930f41e819866d98cdf65f798f6222c3194f8cae637e2331b4106a52c9e454cdff299eb63cb5f993e1f8648f00e680a3c63fcad579b05901b7b41830de284ac9a23a48fca950b8820be0f37c7b2b389058be578ae163ff55b75619d23ae1f9dc02ff9fb7a0b5a35158b66b9b93d59708f1b7df6430a2885fdac1f8071ff7a84b0c1770c7b902ed7442c034f5b67ff739398fa0117fc03b813efd2c0cada0303a5ab5d9b8e89c00e26362079e3fac56537d591b098f5b2dfd92fb1d25dbd3c0638b44f9f45548e38b5072f4201c356d9fe313b47389c8e95edb22305969093c2c6f471e3bbda026cd7da7becd3c5a5aadfc0dceda2365cc65c1b2d9108a0785a27250daea6e16985953f9b5950ce1cb6c9db7cc1eb0e12aa7d0cda191702742b053f41986b7ea646821fb759a5e61e4b5612d7563d2cac300a05b4ef7822cfdb16cfe72be1b117179be536d528ce5c615f5fff90d75526e5f52ee707fd358f28191fa18591ccb3c57f388df99d53f80239bfe72ce029414cfd71b33ea4aeaf9baf83707ca0f3914633cf4a50b8f2f037c1f86acdacfa74c5b5b5c891f425b1fb2c57d9a11e797e3f49b04d5d5a4c07edc4dab5571f7fa9ca415b8260e88428b90f8ae3b696b21b973389b545c89f939a02aead83597b6cbb2bdbe1d7be29712493b3186422e650ad2a87cd65f3acdf32c63a00d0eb8f1ea6617b27262521d414fc0d440661edb3e5f9b49380b61f764f351bf5083982ce117a88f0d9040480910b057f2ac355148305dbb23e54dd734092d5a7f0332c0c59990cfe4a58cb115c99416a3d7d5552997828da759c46b7834dcb5b869c8bee297ed687633abd5a932b45e57b1b47421ffcf21a9403ce6cf7ef04f2ea26d123cf7d5ba782874b2d3cf90e30bc863e676277d55f086a6560f6066f0846856ace8b1f63185703f5b97ee8e5a46d02a5c242789818484a1da6602c4d4ec9b8248b43d1cee91dec34a76afa37dacc8fc98df7970b94b1244b36f822399508ca07138ef0c656b9e923bfe50ec543a30886c7f6a88ee948e4331798ef5c431f5820f00f36b281f604d281ddf769b80b38e88c1f1208bab8a49474b1cf45bc2d60775991b4f23ba4fe6c664f63fd91693782681730c733ab0bcd5235fb385ea33a2ef6bb25367c326676d008dc623611c0bbc1d671df8f254b505ce6881911ddfdcf57a7ef2ae53c7f1837d9777ea8e9d5d567112eb929c1806f8edf8d8f0701829304430c29c9dca8fe2b7f8e181519c830c3c150ead38beb256d625911c99a11f17fcbbfa2f1857a893d31097e12b13a9530d15e54ad6d1a270ac11584635830c15ead70eafeb9844ee17db15db887109aa1b34ab1d084473502035d0a40667e8226d560ec512c754ac824c64badce664a3a0b3ea5b46d672b4d46ca77b45802dfc4eac9debfd5b9d655d7f9202564d79b3dbcdee61d883494699f15ec3164a63ef401bfb280c03d1dc8a8357d1420291c8cca9ee9eb100d76c4f41b6886c27c520664f7404ae43a38966c2a626c9dfe7cd6730e7835cddf118cb8cea117192dad688db4943088bf97950277923ab454ac26a7631407c2d43afde4ea770f42886768e7b02abb530a7f21b0b8d04fa304234e4d71a5cae57860229374209c03b9478eebf151f39afaca8624b36a70180290977d6e7a6409d17225553e4ad2ca0b1e6cbdc495ae0eef042d6cb3257cc8958b75aa31bde8fccaa703ed91b85c7f0fc69dc8d91bc62150063e9d777ab5a54fbb163152039474668dbd7348f27d7419d69e5ea87223e2cc2114b01250803d208ae8e85646a8555a29c06614694aab17b7e81ed60ca2ec712bfe214648023a4fc036cac1214b281990f785feddb2a735d718213f6ceb988a834ffac5246ca598add7015491ccf6dfec9df10672f12cb29fdf2444c00cb2bfc2cff9513914ad8455ad7ca9d2ad663d9ad66550d45742b0ba671c8b5323056dbe9e80a15766e0a5874fec6e3eeddda65048dfba5f824d4ad262a67b864dbdc94760a14ad838cb558e3c6bd0fe6e59f3fe5dea8cd8d234c5057eaf29ac66a6f74a8a14ffa0c98152c", + "tests": [ + { + "tcId": 48, + "comment": "rej_ntt_poly (sample_uniform) requires 783 SHAKE bytes", + "msg": "48656c6c6f20776f726c64", + "sig": "453abe3b7306bfc3685cc05f254fa627aa77566d18826c252e030d5530c25eea07c1743349c9edb16359c5fee9d02f9294250741048ce6c4f0bde967b3e2f40dd9d8f17b4635436c9a11669a197d7e1217a1daf861c74b41562181ede15729bc1777600295f0524271d8cb7a54be90817ea9e42b631884b967f6d4914257d8b761525245963b94b73a67c4c96ed728ba92fb5d76a6e21a04489a447c013fa8ec5f4fb435fdcd682eb203c2be3f43b54d8f43ff10cc75ccdece2f54bb3e79538b0103076295f5488d2b7fe8bdb251d23d6425822bfd07641254326b5d06426a9a037f6430a6bf740632fc3da4cfc323f7ceb979dee7431351ac1b28bc3ecf2b1c553e55b111dd3a2b290be1732a19e0cad7dc919eaa1e231d5e3f2b375039f07944f175f90b313546706814299593bacece5d3fe219ddf3c663f9e31c947c6297feec219e5342062881a17aaa09a162f17252d9c2174b337a578f77ea9b61e9ad73e5ad590f62da4994bdf24d3c65341f1a1f3c321a4e0f19e3b0c185cd8d0f2e0d6484f36ed62c698cdbe301019b5eea519ef58a2d36660f60c68466615970921ab991bf2734c76bd47853c2912dd50e2c5e5974aa2d3be161d8abf9e320ca1998547304b4e59728453e95d883bceceba7cd99f0bfb868fd5d92da20a492e03b17fa259ca3341f5f9d7f0e9bb19d5b96ea57380c380af4ac4abb4c8db62a11ebe44f296648be8ab8379b8afb5b6629704147574842f56176fc4f78af7b927559c309c771118c82e18cf14243af9e6c0c4214c1fadfb7776897f61d10ec800b4997756a67e124c7a26c7203d36599d4f98f47a182daac1f9d062cee7520977d827a375d41c7c1ad35bbe5720b83c0689431856fecdd961e0d2212cde66e2abdf96df0b60923641add102a62de9caf0421ce1e1abbeb845cc72d15edc245b096b4aa599b4b2dcc6cb0e060c232b101b095afb2c9ccec5ec97325576d694c1bfd1f2c63f37141593f851ea60ad8b897e8e8285b40a9457ebf692b8868ae8524b1efe6ce8cc163cf8f9cd7b444e60ce727c70ed0932bf7601ac13b690ce3c1866e1b87ce82a440de753228a974dac3d6c676c77578544804793357430918ab9ed8aee28d7e907120b3b5aa960d3624074a9a0f52b02e75d62a20a765ac88e889646754e9b73b3da221b13064c18f94ee5e4b25fd621ca0e67c92e1c732520656e3a378d9c1a469714d0b5f4121823383c828ee7753d34a2ec407c7e6b3b5abb802aef5e1131af859cf142bd90cdd7f147280685b094116f7358e2cd9120f09aa90e8957db75fa6a4bf47c796a57ebf18d81e1480c5dc014bcfe82dcbc8b842a0114d8e68243aedddda35a9c9d6023aec9e4e6d986627ef32a7332509440690c5e3113010bd8b0ce7fdd6663b999971e1f605a0cea7fb1bb9bb16d83a8776d28250935d58764d7671d1fc76e810cc1583baac21a40010446b805aff24e7628949139597490438fbb3683a2dfd878723ae6882ac46ce440edca24c45b4c775d4b0057370641fcc303ae68576d809df0f46eae9a7fdcc993f5b9aff5760fdc0506c3ab0772c730110e4c59ac5181fcb5a74db18a9c8e1de5343bc33590bd83a41ecad8ad7eea9e972b2ba6d2a67990e78ed2a10417566146691af6ce752982c8fc17b54d3c291b7cbee7c0c7b37772db5d0d808dc27e16e12ef103d90a6dc373725c00d16d9fe2296e78ef9702ad32e1e95ceda2012e4c026a0e6bed7f594e64109fc4fa30cf1311f7b55dc26aa3f1c5fd2a691b19cc1626b78dc933f2cdb90cd4fe94330905401496c757337240ae934c3f3e2754602689f65fbb266bef423ac328cc3f6b21aad3923512e50c4c9c352a7b9fadb1476bf8de51bae00485cef0e8449eb34ad216ffe98de30208b42200e86dd4dd116ab0f7018963382235198bf72577a4f7e24b91c4d72b608d07846c7f19c751f248583a01f18de9e1f3c8c77065dbae16558b82ffc1f25312397139388e6c5dada753ecc057ffe5e93b3ae3fe33fa7da5139e6cbb8b9f81343c4618d992206e46a641483f852d5a8f962c3a0eda7d6b9da3e8b20233bba0a4452df7587350fb7a692dbaf1b231f15b1c9aa61003d45c90b5a12022073ee3083257a399e1eb420e3c29a2924b3be17f6a2465769a2e311a80aec2a472a5fb06dafdb5f0511240a204c0db80ecd807ac8ffd71de3499bfba55c0eb7986a1950d1149111a7a95bf34f60d611d7010db7e612ce85f1924c3e4ca8f26ddc61ffda8b10ea283f3ed17f37999c62d369e72b90b065e27ddb540bbd8a8feae866f1f439a27aa33fe3ee865088981812b582d12c940ad1aa8da72498cd4909994786edcd43659c56644403740024c04523330b717d45a6263934d7432f0d5f197ff70e04d089631cf910545891a9158f809bb859b57b93a38b48211e8165162fc90cd1559117a6ad8e7ede6ccf48ba6311b3f2443450275f1dc5c84133dd4d7fd2a1f4a02d1c68ef50210f0b673e258080c4c998dbe943d52223b37affe48a5a10b7fdcbaf5793da45106378725b6ec6242bcc91cb6239f90eded2709cdba059e52550e505110120f12658e60676c5a42a84279c52c9c9220efe33f2a2343deb8b3fcebb1a89db762c7d00de3aa0aab3bc88dbddf9ca019e63e8a378dff99c14239885f3a044c2205007d43ab597571bd9ede95f50925beb14a52248a23c20d9693d550206ef39fd2769cd3f2e1bfea346670f4754ce167c140b19d5d9e6f1ad0a67aea8f585d87ea3f6100d8463ac39579fefe7858efb64b68ea4a69fd4314ff77191708813dbf55974f73482f1f25e628e3918b6e7640f0ae15ccfc3b8e57dcb7583b6c2f3ca64607e413d65925453e9abf1fe41fe39bd511ff387fa16edb224042a02ac693d353bb2976cf3e1431ce8442985ddc5243f445111c42d1a937ff855c11fcd195445228621317a3a96f578eb41bc1438d3d5332c1de364ec3e287d8e68da4cf475cdee82ba8d5e16c8c2ed942be2f267b8066a468479d02487d7c6b267b7214a201efcd47cb1288835e056c17583340f26e3a8ab581a535cdafdd8000237c64840d610e907ac18b901ad9a7ee12c85c441c7d7a0eb3266db393f7affe4e83e23c1968622ae0d31804568b241d95ef1b4749e292e23412ad6314ea08dd12be2cf015c92cb4ddfab25cb95b6edbe9989ed73912b37c7b1f3680ff6f39804efe04142e2617b05abe21e45e191f4dd84cb5972ac01934656c566d82aa3c0d7db2877a7f39cb782abed0878461e410f1305d7d5c2dc2f066d330f15711ff91f7a8624503792826b8f64f7d021f764ee8a9a3f140d0b2cb33b667ea86ac9fa246ccf56df5566a0429cad04db2ecb363b5b61557409dac2c249c246470478ca88433f6bd8826bb06b0f07a264c802012aec80fcaa8c34ed01f3d36ac7410eba730ae42aa76f79bcd0af5e1c5fbbec18e8bc06cecc2ce36e098679b1bc626f7032f1b55fc53d4ee05540d19ecc0330a0aedeaee06f61a0142df5e847fba6d9e576215e73ffbf90d0336f394ccd6802fb314f1ccf26cf37fcef23bfd61f14c5851727bd1e1f660dd7b158e02a7469387dcf4dead208405c005f2b1c4642c55770764b18a6e41fe37584709865585a868eea76c3746d3348025bd373be904e5ed9136345bcd6685b64f188b3846b0c3ed2d4c22c3356406eaf84f299bb41c2e893966ec05f761e434579d49687c4237ef59f4e5bf11ae4cfeff61b9472ba9669816e742593b74616bc41a75c874b28b7cca7a12bc9b170a65b60e132ccc351f4efa3d6f9751c3b7564d2363fe223b101620656d017d8d9fb9b22aaaeaca231ea9dc3fdab593e0398f0e74398dc52c3bedf539194d855a4ed0dfa5c23df698c24636e0f15819766aafd00958b72f238bc9e14410942f17f4744bbd72621718d7589688975322093f5bdcb9ebae921b14e0eeed4b1ec1d1c633c230082dfd20dcf41450dc1fc75a56f28fa250f09acc1436cecbea4c8dbaa784bb08224a11a750369910c369379d474d1dcc18bac19a26eb1580bf314344bfde0601fcd0cf933aaa7d9d1e9a967a2a4dcd46fa82b193e26903e3aaf1fffdc35936e41e02bbedef3e5785118ea75e7f795c6b40c6ce0006e3e56ee72ee31114c6238524c8a137fbcd78dcea412f4ceb699bc5c0e10a139cd4be91e4e2a2126208660675a0d287cedc434d65760c1abddf76ab142514f948c4f4c9e30542a3d77e680efcd2d5f2ef3cf4c507f4fd32544c61970f1e277563c6928bc310d34755f341650ed931be20a28be5d6ddec568beb57b72f3edbd3bfe1504c886d0d85ad6531413902e8eddb8bd68866f48a567d258ac764aacbb6c67c335e3e332e05807447fec4ac35e1cc0db3200e1703237c9f8cdaa8913961da8ddf3cfab3749bf0182c1833827fa827dcb4e5b9abc8c0e6b58330d6e79772ce4d682711654fd40802b33f1b9266f40aa2255f39b5079367b832796854916226e0d3c5a179d0d5adbbf120e762f5d293963f6ce655ee859a0572f4a4a87241ba671c408f77f6da9bfd448f10ba03a7f946f53e9f70f84c9e71daaedbfb008d48ee7767dd024c38287bacfd728f7a512ab6c0b2d2cb2493f5626fa6680061f65c7e7f9dd704fe810727d24ad3f943695fb464d82123c53553e4ddd3923b438f8d120cd205766bac7acc3445f0427a21e04d0c205b8136eb1422cc34fcd02086864fd3e19d4fe1564494e45ea2ab00dde2563892e6d01097a5c543202d4d65e405f29a526945e8039c021c0ab8cad1c595878a627d93f65d37744cdcab0638b0436fb1528db39a7dab997ede37a4760ef198f8c85bb34a6a2cdadc975cba57f1ebaff0ee04dab616cad651822ea8240c93022093a81f602b4e4c10630db2379fd587ec1d7b071875ab1da50d145e235b266bc3adf81b3e07f42ebc97a200ed65591b218b8af1a72ff3f30e17411f7fcd52aa7d6d1069d54ef0e9dd4caef0a03fb37f6279ee8639911b930ffdafc4c598de0106a40ee30b820b4677146a3a0f5be403a337606f681c0cd1e23157b3d4bc739750facf96fdb7f59605359e0f23ecaf19893378c1ba21e7ce513b5e8f585f379619c9ee2c3882150eee6346c09c4a4f21bb797acf9f79a64f50193a25bb8e518d7528c854468b66046070e3daaa7c0713479b5e732c5be42a0d92ce85438778406302b70500a65d85e53db216e803aea4843bc408aed1ae3b9c0285cc4e87d7fdcdfcb7dc861c70aad88e98fd9f8c289fddec009e5e95cb9b25066bb8d533c6abbb3c18b27052f3add717e922dfeea7862a6c6b51467d1daaf0d16b33f746473a125427e84827449cedbf28c286b9d6aeb0f2534a85a6a55b5d86de8a5919e7f0d1f242d94a0986ab807c2b4d73da94282d4dc070563d5a550ab5a93fb3cb0423f555552fc63807d3d2d89171b2bdccf75bccacb82931575cc2c0ac6469e1cbfdc05c726c8b96913a1c33f6f176fedc13271b4f4779f21e4fab09684aec588de40ee4c9b0954ee6308acaca752d77ee08e47a019cace10033fa178b5c208d81b67a5e3e26908e7baa9632689aaee6d3c6ddfc93a5538aa8ae7d48c7d8c3eec9d718a023fe70f4b32a1828bcca465f230e3f031e24d7b5a28e70614e39a03f5d835545539567abbc48254e2896bce7bc27f8645fc5281b8b7a4e65d494ab89a9211cf93242a043ee2bdca743f91a1e3a637d1f9b4e4d857b003a899c82a6c971e41238eea039d8513ebb23ebcc225c8f1d5cde0d51e956ef9315f416a8801460c7bbc11776835a36a03a5bd2fa39eb948ca87da2af82b8370962012b93496f73b623577d5c7d4da887f24e33f0a22e57ae981a6e43a9d89f37d1754dc8c153996e6aec33444dcae1a7e47137fa0099f2058c6124b86d81e4e5bdd88b1c383acd1acb3adec017f77c4b045cf78ce63c869b6194f8a97fa3d9bce358aea3225ed4f1aaecc2ff093162d6a7b89b830b8b5d310a35ef79111950cfd71c5c518007c5dd41ce57cfd41d5fbc460c6318748771c9c1ac79ebd14f57f7517aed91b8b6d3efc2a4901d6448471acdfaa22a19ca3dbb559819426ec1084749e10c824bd74ce183783e910bb18ce4159a0ed5f701a84fc817ecbd7cb1d6f792efe34dc59393db775e36df733127667814441bc62a394b6af13d3ab05778eedd1471cf01e387a0085d6f39eef4053e2652c1476dcaedfc172ad9bbf52ba47f9c3f6d6c7698c0a3b7bd35b84be480e0e3544833ed491aabed002a72ef88fd50a822e586c4eca9d62a02fe24e5770c50d36052a98b540b5d1229ed891691244ba7ab1e01b1e851f29beac052432413c4edf117d24a2583c18d332b1ba5f680f26a73a0261a5df128562b9ca25cdc924faab67fca1c9562fd188c283ce0b78fc0d376ca42067b1d0d473cde6eb3747f8fd257d8df4266287a8afc9d9f4fe4850d5ea5fe9fa00000000000000000000000000000000000000000000000000000000000000000000000000000003080c10141d2124", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + } + ] + }, + { + "type": "MlDsaSign", + "privateKey": "85831a0f2227e81311e33de072fc6ef98be3b76726a2a153a1adff3757a22f03f374ba45b64675712b4f21d7e491f3f6f003769a95687dfd33b2ce1b6111e4be2f264b31f6c968fd4fdb74226649ceb8322f6bdf750cbe8901b1ee3f0853ddc46b2a3d5de3799b3c3cb6556fc08e5fa9f0189dc45b4e34d7387eeadf4ffaed5ca034825a248510914043c6294a96008b242c21a888103380a24606a2046a00402c19295293386d5902691c364584222de1a42ccc0804590884d3184e1c21669032022000458088244cb00c02870d91444800856419279062286d08b0495a966141b825144709c4a4708416261c05314c96400a241252a08c12282548c8699c20660ca3844ba280e34450e4345121c52c49266294322a01b485182810d84668910661a3121192c4511b268841248e84028591866c02a781cc8640909220d3b0281035249826841b03001a3652828628c3087203b629dba241a1b60d9228849ab86ca0902c1a090d04320e08832902c09122c48824380111050620208d10098a433445d802490c998419b78914c249c0048413912141268e43062d94a49002b464a20625ca8028831024a13228e3304d48a001910210218801d1b465044372c19688c94470c1248d84c205c88488cb407060344dc8c28123b085042785483801838021d2c48904853043245220290201308d021451030889533088d9162e8ab48c89480adca64da09231d1b68960300e09c8490236521990901387292124660ab90519a02184b60160b8650ba624db086dd494210a4391a3a46523a02111004843b42108a045210792134609a1b640da0040992864d8c07114b58923970810912448066a1321500c498e43146040c22d20974543a410d2c485d4002e00336c24224082a8654ac03143c06423360e8a480564049009073080441249c86c0c49098c8288d31246d3b864003469e2b4018b306590842123313151424959328450444823a66508124001390a9b9864c4126d10348602c30dccb81021c46850485080346d6414219cc0250382880942311a4465882040da46218214814bc05048980408c83124364a52366a81186a01064c01b1105112040831310c150862042d01b285a3c48ca0348250400083a4209c2286e24064a3046180a2686088700b8191d8380da2c265d1b665d0920498b07193c090d8024401406964022a01c364231385d9b210dc368ac818111b332c23416900b460082948d3048504866424382c8820321c10115ba04091308982106e2341441c836540204002249158a220c8444ac4b245e4840811252024a04c13156d404072c9388693988ca0426d64285180c668da920d1b340a4394119104440009685444460b380e58c221e0228a0b446c5c28441241251b20098c48644ac85141248d2330719b04669a328614166001b34143149003350cc1b42d4288294a264e5096409906922008850429061ca5650c0444ccc048a31604a4326654908d0bb58413974c1b382924a54d4b2665929810c328325348869a18021012121335698b202d90985104a1318cc88561368462a0402136090c40298bb09198266a84965008b9440b132258083288926cc4181164325218424e51966012a711980606e490241ba77109b36c08160c1ac611dc8625e4800923194c62880023c8200c16451024715b28420202051ca690222308a140840ac271e41021d1143010c22cd3086c604809821280a01891982811043791614209200232004069dcb23193404dd24680580651c42862cc123184a80d88a0214a32525202801c453222a060539850618841143471143431009101e1c885901690d23070c80045a2b625d0102401354cc4848ce29204d4084012272dd1c44c04b645d0309018c9452136881bc7612313459cb464cc8471898029a100241a141189164893862121823018c0051b465242406a80a22084140c883445109565d44646cbb8645bc62442a88ce43012d000655a106e8c166548b40cd4468003242423c62c61226923360802b92004066e919805d0126513382d22364e5bc6841406114c982ce284858c4202e0423024320c084360d0148111972588366e0826280c2669da402540428cc4b2255aa24502a48983460158a64460468c84042413082ec3460d0b13891045841c030ca1c4009a822198a64524258dc1c428d8b26140c261ca1080570d163355cc6ba73d340f98088c15493c6f7ae75e68263269effbbe35c30b7c23b60567d8a94120dc412ba6dd747d38575b242fb3d85d5920b2f0959c5579228d0e968ad2beb73700ae4d1c06118a29043a60b2fe56039b4a7e8e95a340b085e13b22c64fbf0384a3f3c3e58024a19c97761b069bee4ec8d8b09a412357402f5651a1816801989df80dcc767e754d9ba8326783d6819aec3404b8b81c3f369030a53e82bdc5037ece3a309c068bd1e5383aed81eb52d903a296309a829c285bf507854e9f1f5c70b9352ad354b5c2e61d99d6fc1c15f1c6c5f5ae920a70826d1e578c9f391d504e92127afcebd9a1ffe1a3a16419efa02638e5973faa6cf3867354f06be0847608ee2b1f894708e7b8f04efb0735ae1cd0cfcfee5e32e5c1246a5560088da2b6dac16344259a800318ed6edbe9b823f8f32497bcce055ea7dea50cd85247fafb9d3d05277c6af183de555846e102689d2e658bd33938ca2709f35c8660047fc1b6c471a5eaccd4a7af54408c4edb4fdfaf4ef58edc0084d6cbddc7ae0ba267dfdb00105274b35990a00d0b0af46be8fdd0e459735da778593bce069f028d2e6e5df7896f28f1ad4346456a3ca7d529376f118aebdd1c75677aad0c3e2631cd97fcc30f83f34e1175f540df4b1caa23ffecd53e741bcdf9514b68842d97e4c77f943a6a962a5966987b70877c89a56dd9b597cb6f9abe52d7722baaa0306ca00e5f933f7260473f428f1ef616b2d6ce9cfb9748dd7eb46e5e54de851faebd5b860de99e25b21e036e779795ce0d5c629718a883a5f6a7e956af297c5d974d1f0543488e006f2975f7c0989d6d33104ab240579ad151adbf33d54dc3119ee52f3e58f738e3abb91dbfba7d1e0aa0975285f1776535e78c8697c06f602a000669b99a4147b1f5e5f415fedfd84b6b2c23ea5aabf8c4e292c6c5e5fb885a8bca830a2f3f2c193d641a479605b5a573cba88bd8db18e5d047a8ed466609b9b232deaf42dd67e6814f151201a868cfc3045fc1b3e470833d99248e1290af8de66e0e254282794c7e22a50e1cf3eaaa991b645d25ea01947888fe1d184d0e6323e08a9bf40d163791d01103f27dc36c4d8746f4eb4fa20ffae6264aa3fa47b206fd6ee4a6964a6aa3d25b1738847d9cbbc70bf39cf3f10242c4e3b59396f6439ee37149a9c846bcb447933e4f52f3ad62131b861aebea0030c86b6617889d7c958203bcd084492c673c1d6d4047c954fa9c35aba7c097eb964b97725f5c42e70db1de50c6aa1b99af661f54e598f727d2943f1db06e6722b14568e09da94d4aed5b1930a3236d9ebe7ef60585c7bbef36718484976b9eb09ac91da91d2edb6dd402ffc52d7a66c597de0c18d51dd4a679cbd227ad17db6be4292b013e5ab0fd8aaf11645a2fb904e10ce234fa685c6fbb78c9eac3b42c836654bbf00dbcb7e80da5bc6f1e5f03e257d6705434ec47e5ed46e102a0c91238445b44708087854d8d6bce2c5fd34211621ab16e926e604fd5ad22cf76d8a5e4f68d46c77803ded8ce66252614b54c82ed5ff04b558c51e5a4a13ef8675916d7d062054d885a0dd0f22591e0299d144dad5cc25455b0e3f694bcb9701b0f77b1a7b387e01bc9b05a4de6f395c5fbdac4920d94e64c5416506232b360a4d8a33130272f16e0f51726fe6e36b265489a294fd6c02bf6f144c1739a5003ec658039447dcee0d159eecde462a16ea7bbc8d76a5612d12ae181bcea4e1d531bf9586f5bee39cd63433699054655022749edf4fb86777580d2c713c7854ed18ed313744872b7665f3da69a9f15256395b0c65f746921f4cd32284e14d0aacf490b923ece83a0fe9a6a7869ed396029502d0865367893ed921c8d1bdb1262adcd13dc8627570c293ecf7d3aaccf16b38ecd1d82386d206e09b354e7577d032db7893dde9cd0f7e4f9e0d5538e6a7c8f0eb4223ed1da48a6fd40582aa4a1e2737c0b559f84ebcfef3272ff38c7fabc2574c4d070eb0db20352d411662c274021a22c46866290ffa82a4a5ef554cd998ad77ebed2c77e245cc8f464f04234536b66d41264b975bd517019fe6bca1918f52852ecb70544e4210fcaa5be5b5fc4bcb2c59e698cc421499c2218eb91e4a33048d0a5bb25ea66443cd9ba6b2750ecd4a30915e2646bf7d93eed193d94d7400d9a50ae47c4e5e96e225ef604aa6a7750c0424663c66585407a91cac7b8cdcde566b82100d7b0b173c7a6ca53fe5ad7df6c9227139a71fde16348f209edf34f05aa63ed14a5aa9317f1b8fd4f600f5724ba7e3db2cba2480350f60351458c7e16924fc572dbafe5221e4f368bea1093bfb8ef184185896cb357c7d8f7e2ad0bdd65cb46c2253ddfd08f78fac28e5cc1b573abeef8b329cfb37d8cee534e90fcc852a93d30143b653a25b1d9e7a42ee149b47de4d7ea4def36fa8939c7fa7a0263ba2915d209f05a3382663fbd108487b5e7745098ad266d838e8503bab14d8a46314f74213fa0168271f6f242819868f0c74282ba461987e43f98b2c4cfd3a95613e281f68a42618e6fdec22a5068537a5e15ff230be2fb36f1816282f9ad3a9abd87cf1632a5b9facd858926610e780fb01609cfb5cb20047b52c0da1fb24ce1b5887bdf2bda41b863cf6170fd2228aedcf13e3420218b9aed2ab172d1c9a7190e3252bc94c290a700864c97182796ddf1f9cec33add8e464b4879b2cac16c59ae1544e3f2ad39ceece88353396b9f5edccac716efc7cdfc6641c85341fa7ed562753ae500d45a9b2e0530775a17a7f5d783b967bb8d0ee4887f718426277c69e8251c5af01ce4fbcfb6695935e21e3b6019edd6655d4c0c55aa78a78760dc3df23b0d843ecdb9cd2b42f63dc7d475243eb3b2a38b2a685854438b95b093fd1af13fe6a658d61837381b6a6ccbcd553c49d8fa2d9f8a3c05392632f6c214526f06aa8996ec4637d64fbf311e36d3cae7c1460c30c4e63dede92228cf292dbf72d13d8e760d96a35ed0e81f7f9f902886f74402cf4b445f6edbf94f70f224ad4999e7fa139fe3dd65ff119019ce30aa8fe5ca4360d01d664ff6afc25d4527df9eef9f1f2e9e4ec8acd1dc2889d7de816c9185976c6671f55b2b0d15f0749018bc91f2165c30970ffffde9c1d216d83fcef821a4740805f3d55b602c5142a5405e8ccd0bc90841966806ae0258880ea1c6601560cf3d60fbd0b160b48e1dda0fa0959a8d07314e4cd7698eca3bd1c44b953541dba2835a1fde07708f2884685ccc883e070e34bc5f297b9405dfa1c4fc4a0dbbe55f54a7b32ece7806ba4725f23536b001ea86cdeba1b7b0269e6a1fbc50fa270dd7933481dcf84022819ac38f34d3ead34ffc59daae6dfb1de80921c4be83cb475d7e62a38442ec6c204b54c2c2dadfeb4c3711630b06bae6d3b016a49e638b77398cf828e0aacd52561da11218336973767c5ac685b4eb2cacbe414f928d88c9423a9f12961afe7fecf692dd1ca50527709640144ce06369d6fd66de113bf0f34ac93485de7ad923114238c1a8fa4897e4c2f43f3492abad7234aae8b715e857c4cb099f1697efb2da9d5f9985348551fd474ef18bdcd97bb1b5b771ad065ddc5f65aa893091cc4b20aacdae3d5fff86b11905a972276374064b802318b57d03cf1d257a1c7e6cdfd366a044e935ec0df6e20b43e471f307d0d8132e7a98d72d3c0cffee561ef6b6065f41af774a13d108691b7adcaabeda388df8a5d95454ba4372821ed268f4e670165d53e168755998d5bd811e9cc5945b6d1c2c6609736a0d1a0eb64359032b1356caa9a7a7e972f42615c9139b04dfa349a05a1618e907fd9fcf70441948e275df9316c19c6cb582ffa12a274c1ba94b6bc7ac155104e9797f2e54d5c3e8934af6ab71bac3dc83e5b6e1cc82abe195f706fe08a96d9e0eba70572dea81917f79dbc785efcf5148e121b937fc00814b633f66d25e5b23c6f62092053f2af4515b6fcea7201590a295c9f51343e2447572c60538f1aae3d588cb0dda053220ab91e06c1d1e147f146edd50241c129242786ddb9be59f11f63756d0cb10ed59cde851ce14d39a3e666a485999ae2cbfad15e66832b743c049e3720974e1b5bba2180950a35bdfa3c8b13c107e1fbfdd395d5a72c7fa6cbd7e14966b15c465ffdbfd9fa3c524cb36cc34ec1629bb199f5f0b738f4844719cd6413d77bda4cf4acaf65eccb5968fcc3ff796b1b51eb8f7437c73c07181b1cd0353b7db863da3da0e3794c32a09ec5c152cfa4708b1ac6e0ed17d90f0b6f2763b75654ef6a58ccb9b86ff94e39cdb4c61947744080b1dcdece5c36b5c8c746e40f9b0548148790e0b783c024b74f6fbbf89a147cd1b4fe67dbbfd2cb1fb26787665c82ada3fecc8cd290953e5c7ebfd7c2a40f014cb9a6d4b6adf655dee734e1bb93d45fa02c2e8fa1483e0556697efef13ca3531b3709c776efab37fbed7d4f4942e879d5e27220d5aaa69779592633d873180e793c1a27597ebed198f6149c11b01a3dad3b7f0cd50b0ec4b7bb9826ef88ba9149b65856aba553cacb116428fe5a2b814fba5347bc04fb7f848708f8806f6e2924af78f9edd7b9a8df8e2960c7885eccadd27c6f348b8ce3285fa5ee3526911c3d59f8a957c7c636adcb34150460f6f31986142eb774fb1e0798edbc85e9a91d71b99731b33d85848bd5326fbce4220968770", + "tests": [ + { + "tcId": 49, + "comment": "expand_a requires 43101 SHAKE bytes", + "msg": "48656c6c6f20776f726c64", + "sig": "23070a1f4deb7622b5c00154e2d556abae7254f6adb8f7ccf349d546cdc3b05489f47f55fde26439c16da6b43cc6d7911cd3ac5804f3d32f74b57cbac37b0aaafc153e019797103d613e27af8ce0c474854f33e943ed82035c5448da83c0a45ec8de03202b11c5d674947ba4f2c56def139953af84eac63b27781ced39c5e3d82a7e95b018f485d99bc9e659fcd484ba01bdb8ebc10b485cc320745ad0dd2ca693f0d74c4dfac3d176afc5ed4f3af516dcde7281e9884450b49caf0f0ce22cd1172090e532012c23119ae0b2f185de90641d4edfb947f18621435b9f971be66c37585b33d723074072ae8e118fe6ca8c182caf06276744a805e72830287eb3397f77043711050c334499d86c83a04272fbcd4a997417aad884029d26b7132997727fe8dc73767bd87fb29b283ee70cfb758b6e57d89ad53eae858a7b53c67ff189b406ade5db4413ee31002d48af7834e713e5b76206de84ab1de5253d7cbde00095ece4d1f7a10ede3adcfce9ca72f573fadae0ac69660570cc9dd4535306f5a2222add89af08f89ff39d45bfb74fc070d85fb3c54650c0e95da1f0b692484bcd135ac1bf99647fb62547f7d4303cd5ee28a8875bfce669452876eff5497424fad71d771b1172892ef06c03bd9bff08f352173337ddd0313983fc676a47cf4108e596ce1ebd18e5317fe340dc2e68606c31b82a685f974896e0dde6a9d3b6de545e13446a9bc33d16040b87ad91da7f06d1bb076a109db51e345e612741fb28fd7e1fe8e827505edc8fa7a645df1d6c4d8184791656224b99a7dbba513325fd6f18d9c885e10af93da5bd7ec2a3019d8fc2e6f4b908a66dc1519a95f1ad047d8676c5c1cc472e462309cc035a9231524d42754c2053286decc78df706680b65d9fe7f2caefc957b934f57662ce9c0a5522455c38a994cb9cba4aca3ef2822a9693089e1fc9d12e7383a21ff14157b812ec33f9f1c94863884e7798e3552c74f1a98d01fb3adf93bb098ee99c42e2c4ffbe08cfcec5245dc38165b8906622059593888ed983b77b95ae3bc08259b92490a0a89b3002240f16ddad6e3bbc27dc34710a3b56d8a23ac97642baa9c4314f1ad6537af2fe7ab95ce72eee790d272aeef712d31d64d30d2ed9838601e6428d9e9de303e1cc363995cb2e46f6a7e5190207666ba0e3ad8919790d4d5ffff4018f3bbaf79153f705ba9bcc62de813ec479bb2d3adc6917bc9209216fa42c84174e33cea7c9c4ab3e87a08b5ff0f8ad524d2b637660bb618522f90e49f52e664907418d6a3ab0c742c10dc772a2cae8ae8ba7f096b22a6892fd20f312fd2b01ddfc1ba8611ff3fe430c677051fe7b9b80c7e9f9c9429cd677a4ee532cfcba4e26d3a5eccbcd1e34482d1d4c42c95a0ef7aaf158d27067a3720c3989660781f9180618fc780bec103c58c9fab0e66960322ce986450bde2db052000680e5c06024e25c2f91705bf03a30d54697d9197bdb546c113344837fc0bd18add13d42f8de7f493f716d6f4e81788697e7017ecc66b4e032dec0b089180deb018362d0a67c9f4512ba1412dcde3838e674f31ae478caf86cdf6f55f0a49b92ce97f23fb960d0d04334795860eb11c59c14d3c6ea60f9f11c4d4b5f6546905221fdb47cad31e28d855bb8cdd05ab90431963555e073b67f9860e53a69b844c18c03fd584ee8aa8ea59b99307eeaa4a35f1444f19b4fbe825c6d3738708077b71c8e401e90e9166b185a647e9a73bc6f459674933b4c0a875d86c2ff27f7771fe77dfef9000db2539eecf6b0b9025d679b9cda44112714aa510bc291bfa239f5d17f865844744930e2f70ed059a9a90b73d553fce2ae5bfbdd852ea8a4b0b721b48f4835f2a51efea535eeb479e80ba7fbfcf9198ae4fa90648c55865700a2a4db4e3ed22b916d332b81fa1099773f2e6b2bb97e6b10eb5ebad7470f47ed4af2e8fea58c4ca26b028270aa3d25072bafabef7087747c0a8a2aed969bf74f0c9fe9f7b518d127f305690d2000d43310704af9b934e6d4bc0cbd42aae048dbb679c2eaf775b5203abc3fe34cd6bd0286fcf036a6fe4c03e30152a81a25fdfd0f9656e5a202810c2ae0456ba0686a39e6bb4fbadc73033368faf089edfc68c3b0cfa111254f6085373974381122a5b3695c4b29a41415adb44d71eafb02084e25dcffd7d62359969dddce3a0f3b61e4c31817ec6f404cd7a383a7320fcbddfa4fbc08529e89b6ff2b3b96c465fd7a49dcea56e6d519c5281e74edc21aef1a48bcf8f90ce54257d1ae89c2e322e3bc215c8b710d638dcb1e0a238a67bcc74e13bde37855ea4263c8b7e2467c798c790fa5fa7536fe0b8dabc291df9f315ee2106f50741eee35ba2c082203e8d5eecc74c50d34f0758e1b71b28df29e9a2e74b88d5821901eea26ad212b68857bbb7eb77c258ae1ff17fd6cac23bf468ebf2289e9aa142e8639cf6d7d07adf454030fcb0204d7972b39579eb887be9a50ca78e7edb982bf8449ff3a9aab0a2b6f497e46e8d616a3556595888171ca9286e02015a19524babe5a5b67c508ec896b8e6e084ce1e1fb2db27765e09a5725424884d2f4dd9672b68c8a6bec3fddd075fba96faa41eaabcb90abedf6d953d31a594d6098e5932b2c357c237cd0f682c1921c6d724fa3cc09027a53044ae5941fadd9b4dab6fdd4482c3ae51966b8e34e34047e6e07fc441d01ddae6da756a742f25a6067c7b9bd0b23d6d3d25e0c5b73e2c9c7791e295ed84cc3a3eb174dc87dfe450c67e5c2573be6f7d7fa757cd2008cd4721209d385c116820d91adf5ff484a1ca43b1ebe92ae868bfb4703e4233c795ea30a3f3cd54888379a460424caacbc35a4ae12475cfd5998f93a28390730078a0e6342959d9bbf43aeafed90202ddf5639e50629ab4c966328e6bd005e0310f133ed4ad19307393f90593c7957973dbfb584c575175350fa70d4fcc63f4596938a058812ea64f5a0976c075e2e32b1657885612a63469506c90ed42b0760f50799cc69e36eae5355fad44ac16898687d5a108c1eddc73e09a6a0f629d0695cc729ed1eb835612ea60efc177548217d2edc0c3a535132e0c02e001d5e1b793585bdb68f79c291bea085b94200f3951ac219c4a1d55b4f8823ae2c1e628a4822cbbe43b60b9b567bc8dfdd2772f68d60a536f776766e13e0a977b630cde3d0cc26b2990c0b9d1d848c3c812a0853f1c5a7fe940e95c886197941e5c4be1075e3a8464aa1dd426ba71948d76c123019980b0198e8fa8f6edac3fd90b674f46fae063c8e5097f2859f351ba4cceeb615d4eeca9c9a624376bfa7252cc29654aa71fdb4f76ada7688679647eb56fcc80141cbbdd4fb545dc644d87bdde00a2bb19bdef4d8e2c6395517f483f8c932eb4d56454520fdbf9715f7085ee642e441220919c47724f597ab2ae92974c7b6ea50808d8c0439a6aca9d5013674e7a6337ae4184fad1b587cadde5efa265aad57542979b3080e9e0e488f6aab1d768df3414e5ab512f49bf85e50f4a07ce79f15e463a571b1960eb38f2391a93206c18a870da22799a40169c356f9a950e0d6d43268a1f29072833cca0ae9f2a6015261ac803e22095505c5fd1c7a788d5f5839f63755dc516134cbfea09ba9b798d43809dd9112e94df540332ed6f1a303a42ea1dcde326810c21fab033706406452ca7b908470b15cc0e1ececf6bcead95658344fcc370997483fe751ce4679a7af03fecb5e67cf3eb7354ddaf5e7797023863b2f90921acc98844dff52b974531d6913939f1741a921c37687abc5acab286ff067a998a907898131aa7f134d95c6c1acc9eb93356f99246710d0ee17b7f413518739ff688a3e63cf3f5181fc91c083396e3a231d58dcff949bc8af2d4f1a183834094f0023c413cb9838dcdeff756d3c314f755ba4c3c2513d20b1b66df79ee67d214c1eec0b3fb0ff77de975ccdb6d40a9c3b61529ff1aafbb62e2413ab015e62252fd4a6a1486aba00dacc22c5a075b3673d73739b130c3fa389ed8c1aae1102c0616e6efe3d013b0b0815cab217e8cb42ce218da74a44e4d75d19ae33d66c231ae3c61fceadc871a40267652f8d6eb846678136459375bc61836d101d4b71b480128d37ec591ac8aa3b70b12ed90f782c15c5dc9ca9d2c0060483df0f6e69687260b80ca8205cbdb89aef1cb4e3a40eb33f36533d1440b70bfe28580991b32d333f511c749d32c5a9f374455fc11fb533905371a5a3822f3a654cbb4285ea7516da578e1f4fc9db08e9b3d911014aa880383ea82c2266f0bb40bcc7914e1129e53c9a586b3092b9a712bac5a8e863d79c7d9ea0bcda891b5216cbb59adaf908d3e821a5563972a46dbfdcad0bb639c401966a21e1378a01fc44e0ba8717e118b6fc1b140a94a9f13ade6ffb9802fb063c865ef62bf5a14d2ab83027019f46c567bdb7b0fc69f53640f233e6bd13d50d62c4de01739607f8638292c4f2de4c5f27156d69d01472cdb585ad56511f3c66328e7a6d79f077255e254e3355b8d2517a92e23a8aa36ec51718c7fdb9592911c7f4128cc867d497578467d6a1db80e999e7bce80105bd760faf3f494bdc35c49d41fe4b7d043221763c4d8819b1b2ad7e1285ee4633af5c4392f2cc38ac8e00d5675c4ef793c6b4268a771320e0d391aa2ff75c29c034761cf8e96a91a3214383e8a8a54c8e04a94b299fcf345feccab6e2b52eb63f61d1c395ae745c886235f0919349488ab602f39e4c90701aa6af417ec109e74c10f4261fcbd0cf92711fd543039aa60b9d843e5686dec6106e36149c526cf5243d2163933dda8ef4e801ac822e73e1ab205015bd2d4ea029001044e9961084f1ea73c6bb44c954731eb0747a98255713283e4c2543ba0545fb2d1b132254e202b64f8bf3dc1606d7ad6e759bed35d1230a1552a1d36da80d43a18717160d79cb91da608da0f0687a0d5a9c3b677972dfb971b08918db34840a6bcff5885d7962ba3f2b96f60d28326e474e7e06a7be76412fba3774b205031418b0273855bc4e70628bc09df380231f74ef898165002cb7fcdaf1ace74bd5afaaf3905945c570f9a0ca3ed5a86cba92db3f256504b483c95a95da2b45ce974c01fdf8f9e59b02441bff677ed66c0d1a44dd0d491f075562322664c07180bae1db28d262b76c9bc2c836badfb1add1d55fba3b922b3854ff7022c77256671c962c7191973b4cc30b93fbd4ab9f1a20ada10a0533d541b1063ecb58a3be59575fd99b7ee71de66c2183185b747538084d151b9d9a1252a50d3bb08180bd9ff9749be5813e00b04178a72c3529871afa00642ca82809a066dc87252e4684ceb86c83c0bd119ff71e804f0f80432f75d2c05e4124ff39e8da1b6b9cd237ba2326e5dda4c25e89d58e79ee7aa77f166a3a4d4f44bb7e35e946ac2c323d77def0ed083b5e2c5954b3a3b1cc05d3a07866074cca0e8cf3bb3effcd4f12f3b6fb5381138d516b153a0d1c052f21abee2b5ec5e3382b5716b00d195661214309c67e0bc7cce5e8146beb5ae6e083553a3c1e4c4f0556848589ba9a26250b95585a57fcb8c4eaed5af340858d7231fc4be6642e08cf5fac31bfa429c44c36db01a2e6c2f41dae74917bba79b214d15ddb74def90814b1e01f88ae43a3a911eedc4a1da4b543e500a948b6ce44691061ec721408a71d071e5a2d57c8bd5891647290f8dce6330f595c2e7623a109653a888fa652fc034799bbdad36c80049c86690ac195deb262b519c49039a62cab2fdd5b124cda40e84ea9130bcf3a6b91a45f7b0932f6ea56c098f693d6dfd5acf9baa8bc119929f7fd6ddc354a2cecca6785c6d3d61987aa67a189fbccea3a495a3e4219e580378dcd62ce31a1526df06f3ce84b99b21baa9eb0332c4dfaadcf05c7f1ab7f3dc3a989bdfecf50a43e6c8756bf15a12ede0d628212acf5c6fac2f3d94fe0a55ad8990617d405656f2a73af1bbc05ffd2d845a7442dfbdce70dc25563f7af1fec7de4905d1777b19d22828ef0ec07c7ff2ad4b2a5ba1631b57316a6e0f9f4395387281b471e9c779dca400159b88e33b40278d0dd6b43909d1c510c144bddfeb5753e812f512aea7dd5bd02df2f05c75e3bf4a0e6b7fc1fc31527b3faad9da49e02b505989ba55a3fc84f6298efc62504677c010b28bff41a73e8ee7a4516dace5c261d2a426ba89d58c861a66d1b69050d93194167079c53a9275d058f7b3e4cf98320329194dab877c6a8b5c2d6fa4b89ee9106a1deecac03886f3b5578b72153e7f50547a49ed2c35ceb0a3df45703bbdd020dc2588e60fee89cea114d7fbdafb88819cbfa22c287794ac6f0bb0bae531e8829cf1a43626114e92fd0f940e1fc9ed2709d5a2702562626eed02105aa3f6f4f16bc0869ba071bf4ad4d4e5402b5af7ad9b1166ced123c466162b7991aef628404c5b647e8a91b2bb08192a2e3e5d80c0292f567e939ab2bfd00b0e4f8087aeb3d0e1f4fe051c11283a4c74a0b0d4e1f912427f89e1f800000000000000000000000000061018212c2e383e", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + } + ] + }, + { + "type": "MlDsaSign", + "privateKey": "33e12abcb664496b409ae94eb9c45e8f4671be79c33ba8edbf118bd9fcd6ff7784462fdda1349abfe13d390d4bca5696e2507bcc529be5e63f9c1b2a9ca1740d4e599e996f67f334ee44889a96d720ffe001604f354b559d28d7150b521dab2574400dd0312d9ecd634af1aef7b800b4bc8682f148a4f1cb9655c37fbd59d210c00849221226140272830641041312e24464d03690232811131321a30472d4461112232d18380c9a12861404719c46410105418448708944904bc83181468212c140c0288e44a864033529644824d3926dc0460111112d2494811ac20901986d4b163183347112c070c00020cc442cc8b60ce0066a03b76443926dd9203104116e10a851843662e330405c268598a64103074d22142d0ca211c490250c104903820860400592404adb166e82388163289223a991d31482010932a31202c1380a92020e4c9230539029621424412281d42651a1b0411aa56049346e6382000c2480a4822999b80d00b66149c404d438298a228693a49064882011090a40829000938142c01192c825a3146640262c612605cba6890b9549111388802212ccb44c81c6311807908c246449c689204561e30652a0380e0149900a3042d9804dc4328500194223025060185204a02ce1108d90c224e48469221450e2028a41b82d5a900c449490a4441264108d081440c4320109b70dc4c248448670c42029d3c84500a68110a26d5c16504ca430631431a1344250c84149946843088c9118068c26001880448ab809c23871d0c6249420908b442e020230514441e3a62d220350e1206e9928119ab6910c0411a1c40c9ca20c0c3282983810220808000166d9341120976111b36c1b10441a1492202182e2a0241c2026844025ca0062a08428a108665b464492109211b1601bb431d4284d42b051c1a07051263100288a41884c14a8059830054b18640c464a92168424176c24b4880a097119288ea03485a1b488008431a3c44011b0708c062903a17023910501492904184c11068190182251886d22977092c481dbb44d5a2230402846423852d28220133968da3022104625d0284a013450c4446a19044d20122942a489499620e1402699120419888d03960821b7100bc80d90100ae38424d2128e12a888a0262821c4301839261332704a02015188881a402598306402342488b86914340e52402dd0042a5332724c248ed0a02054b04c0c051123328622b1098b3661a3c82c0a2420c0a24101166c22140120242e1824894ac06191128a63428e59826c633210cb0844e1066dd9c84961962114276412a00440a86c18804d0a466a588201dac4200ca209d83841dba06c1380658a80800199681c9111c4486e82122564a890e4806ce120061ac709a2366e604000c33242820831db02862081511c116ac8288103b130a3b26941b28008236c4a128501378e4180309b10499b866009284a43a869d2284214258a19080503214ec44231e3904dd9981121826819b044e31405c03049db0684c4c60802350a5c1489db963008230011134da0c289c2048180b0311c070989326c203264c99831198024824421a4b029031970a0b22124340e84c4641212521a478522484522862019994c93a80412092210c52883b6611a411250206488002c11896019376acba84d09a96d40b24820272e99a08d24a38c9c24411c4202e392841ac60dda406dc9464ed302455c2488242629e4400258406e0cc804134144a2b2710411454b08660243829aa4450b87641c448600184100b85002a58cdc962983048d01002014106e42a2280c186980000818402a24098903b270084404031491cb28706448128c420d01432091840d58306d0a97084496254ab820028241a3262952c649a1c41122b6284114808390205a406d22004ac930521bc34cc412694a9289049511dcb0881ba380a326300c98016384840c8250d2c2909b98009208821380609030449b9605194468a2c04101b021a40442210582630220c1188c20c49160388620122218444202488ddb2869d9301049b82402c529d8822de410305002280388800a26885124649a02891c03868bb664da86080991715c146d210171c8a2881b860c092889433846494670c1162a809424c94809c4228c08887003885048082dcc344811812c93464a40440ac0080a58128a23c20809202d000202122360da2811315ce07337c50c06e2715f4b8c6ad7de547bb3afe38fd64b6f4e368ef7430751c85a3f74c0750142b48c75ccd9fdcb052078d0eecb313ef1fbc145a16739797f3b715c2d5292f47eadc7d2d5802ddf34ea2816cbe11f7fcb8eda3168a5e7d6ca326d20c81af69c5ba5c0f519771b1aa53bae224423efcf6ea620626d5d70b6a2c69f86a2ec931e6d314b84ae9146ab70f5b22600c27527a71adb0989887a718c999b4103d20d03932143a0b6104ea60a74ca52fd16d3244bd728a23467fd18139fbbb6febc3a754270733981478f9f7486a28ef8e421a62d3f900cdcd6624bb903f1bff81277f51318595a00c5b4c6fdd91b3758a65d65992c9b00473da94062425bcfad0f29c56013b52b89dbc81b86631297739b832982ca9d23eee6c72d38f0afa1c7ddc311663d74cce0c15e9d9994b896455b314b38cc1842e72be5fb16b35e9d431cd934ee5c1ad9913f802620e23928b19af67ac18f20fd443eaaca743accfb5e443984e1a0b75bfa7094a17243040466b22239b8731b55f375495cd87a0915d58e84be99acc0db8cc25411c287e8f7a63e996ee4b85416b4fb1b35f77bc452913329c4aa818b2a30b534407d6c905f3eaa5af390066ff49bc64ac3ca3654c02d3dcc95f524bf15bd9f9f533fdb9b91a3876651ee5deeb2338f599a29130823c446b1c295ee33e761d6efcb6e0d293a61cc3ecbba7633ae2fba2d6fff13afadb4421e91fc46300511290f8d290c8a09954a110406f47ff3b24801054fca9ecd3bc07cbd17c6745c3b31e42fdbc8df4817f4f9a9043c79308089dac56e312025f8bc7b7e4796855658c2462f1cb05b235222f6ebfdd7d509bc6f298f0650d99bad3ada32f45a505ceeab4a1fa81f322cc866e84c9ddd78339d111b6506c35f91864306194c10cd333040f4f1a92cd85537235e89e1d9c259bc129a8050eb639ec3606c358d08aa82dcf22c9c3abd6154bcd1d478470b563161830ebe1352894769a40c20a67411b699b910667d4a32bcabd3d4962818287aeec1bd5d3dc0cd3d49cc2bf6c6aa8b3c6c794528be3c088e80f245091e9406cdc4d402e365c03f627e92ed77eeb51b5973e21fef491ee54a73a3392f9595984c764d7fcb6221be0e8063b5345a6c214884e686e85870c37868da203175564d35259cc37fdd78663d0a7022dd88a86959a1c23af2c8bd6218c60a4af0ae22e661889954503d23aff3349f41fbd55edc8bb170b0198e20de05e73234ed7f22052119f249071228644e17b5d83f842ab7cf92c0364cd99aa6871a9e43f89dad6d91764a769c3e589aebf49c35d2cc90aafdff5ab0b82cfdfdebedb4c4bcdeafe89b364aabed2c16d6c347d038d2bd0c9801b0defcbb1b09fe85e7f639ebf96d88d30accf517309051d61f6165fdfd9a0139e0db06893bd7a9e28b394ad8d85df7a790e3d58462a020b7f9db143456154a5b437ee9c58accc34b3111914c7a045e5fea2f9503e5a69f731cc2fe6491577190a9fefbc5f6fbb46a94077ecba6993afd4dda88374d1ca82ba4d89f847d9d0c9076012a6a1965dfe86e7e8f448db67143f4b91581a5d57d1d6f5978e52e6deda5ce3779a44ce293918781fe541df3af5c17022410d4a57b166c1ac2274dc2dbc44879ad11dc34b5a554fb6b4610391aa30a743e45eb78c2a4ef70903fb5a790da13bcea81821e3f12713ef24cebf32b40ffbdb7ed8ffd83e3766bf57a474d45c9005019653e12497bd627327a9157360f8c1431ea6a63871edd52d252d46329d9a11f033b19360604fc6114be0d0e3bb0cc5d857b98584ab60b944f3b40c44963d4d797b4ed87718d5a32932db7aa2aaec1c499f3f0cfe949d33b916eaf392568a77f3a6b2ca618213e90a543dfa0049d745259a6cf09a235331bf15dea703f141bce427c60a8cb6c87359c4a0187407264fbdb874e0ea1524cee459781a20ba741d40a238397ed6a68ea045a8fa0d84744bf8487ace9c6289c4a249d182fd1852f13320e529a5dd6940ac50de8cbeaa494ee787f549b99d21002cfc2cd02dc612f5d7dd430858a8da8119ed2e2684d2fa8c52e13b7a4876503edf0493b24119c71f82f259b087835d09cb973dc7c197b249ce584390f00a2d5a62338ca1b076b4982ca02639ef523b9120c5caaf01d92b7017acab994fe52e0c67606a798167e56cdc1d7dec6b66893265b99ac3686d50d2abfc224e05c7236ee60cf6a1f50c9664392e3dbca55736928afa022ad3042d4cf644e0d4b538fd43a7740e46a1a561f727af8700acbb6b963ed788ba785a05f38822a061095a2e4071996ca8ae5b10f703f33936d17a386ab478d9d16ffde10d1b6125368954a088f7d8773dffdd9d0ee6576f3871a4effe11de317f9f9d35b3373d32142637abc9b75edc2e484b1882d45cce2275632e66efd7349554db57b056d500d30c5b73aa3db3662ab02c7571d93398a4a3f99fdaaa75585ff4f696debf42b0dd0c69bceb947fba54c9fbb7d0961ea168af569ef7cb1d8a3bff42a17faf43b2635de293aee7ba2e52d9981db60a1344fc4d586099c5c50ab6c08c5da5c8a030d3c767a6fab1991d7b77176fbf8563740c662a5442e5ef1c216e30c6f2e5cd132a20167fb974ad51db8374eac7949a102bf84a29c2bf8fa95350615bc153bb4b7c0ed2039bbdd882d8372619b166ebb5a2c3fdc998f4b834acdd986d50e725ed05e1cb9595d97068f2c8b13bd516cf6d2d5e8aa62eed6aecfebf69e4a83996e266fb4290651bfc55549752f05462301cdc9fbc5dd323c88edff2b5eddb3a1f49cbd4616579a255472e84bbd6e89d4696bc4e51ab13cea34cab3c467d50ef17128325dfc257c7ffaa891adf19c5b7609827a25c7329ba36ad1eb4faa2831815ecbd7e1db3ca5d326ef58fa6ed98c76d1974e7139e1f46286d1f35814b30fb4d2ffa612618da4bb97ac33d3f0b09dd2e10ca2da14c1bb64ad7c2475d81d95c9fe9ef16364caa67e0589f6c7b7dfa6e167edad5033f4af2a16e0341abb97185d0858134014a6f9bff6ecc48c7646a27b7c52e9d645f4b411a8baf5999cd2f8e6158b9a6a7dbda5bf94cc05e2abd624458f77984b70df3699d2a7b9d7de866eab582dcbca58bbf6d161c3508e905b843c3b2ca961bf3f303233ae2e3e2eadb2ccd80cff4ebafe97be540a2e25055f0104650ea775152fcb086125488c31a4f3c527b3878ba26d3aeaa8ac7e7d3160601630b7342d363ca240f13fa8710c6b8770c4be2b2f317146dfc25af2e489f11e97c524e68a2b94738897a47abeb156d91a9446b942a4abdb3aa4d9eeb44da89d55ebe28117e898686f8fddc6b7e9b994b9042cda2b6e75b3391fcd8709549b268a107d305d762300cdd3c6c90ae54a07051b68da5819765ff80753f01c4c8e68e3ed0fb2137634190f51dbd527874911ac92ca4a8f35289c84bbba3c238579645252f7a6e54c5b277a9522d75f35434c6415d1885c59c6ca6f56334f5d846d0a3c24c4fecbb9998087bdc7256f4eab5a40b1d75ba708ac0a745db368a16d2248b57980f303ebec46e091ca01393f808ad7b73720efb77eb208e109cce56714808c8c1dca496d55de744b6ea05c33f1f94e980fa36c7de71be7c859a51a2a5949a6dd2c419cce8623261fc6b777f1166cfed96595e4ffe980eefd01a3c6b3c4c4eb5030f68789165f55ec985b94e999de76a5eb03d4307715e5efeb2c03977a415c90a768e436afc7652afde1f16b6b255ab3c78e5f1c277d0a9b0d71a34c667347e8ece63db8dae41ae7af96290b96ad9d864a781379bfbb4c4caae9ecdbafa89fc34baff0f43c9da7f11264480cd9503272981d89f363da1a29c6e43d63dd5da5d7b0d938ff767a71a76bf3ca22d6f1454bf7ca1cac83df557d25dca74517cd88ef44e37394413ff9ca69089625b35710cdfb45fb3e114eb96e647823fce43278c29faf81ae2228b9b9ee952d4a95ee3ab067ac089ef4e4e858ebbc670d7ceac99ed939dab0471619e030e350bc99649a36d812b4193c66d54941cf7522902d32094bfef632a162483b2c408786030d0a91eaf502a9f67a8c3bd6d68873f70745aca61d8d41c35d4f0bce071f7ab75d21a506f596dfff5ca9d4eb61d7a899710d0b3d04e98ba4b3d1ca8134499c69461455c11cc6762b50c23376dc3261c4d6daad9c93c39f235d3762931d2a6a3c40b646cd69351590f1d03648097711d07428d369d0b7d1e39d25449765af23da06e70b7e538991045eda05f9e96319b0594c6f81193464e1a9279251da324d4d374af60f777acc924aa4beba66c8b8f6a331de764214dc3a14208d6d0c862d83272c30446e00d70113ce4490af8f42f2c8cf03c4010433378a05f8b91bd1514f8079b6c69f21463c6f9d209ac72a63dd07015b0b04cf88f03ca0bdf85b039cfdf1568ffa1ef420f385939d4a958c120904548709bc8a01b1722920815b5bc59154275722c4e3e8130884ba5712a6fe53137f8a87dba414d47846440f65979ef34cf9affd68196b148ef3f0f1881b09bf3212fd7a9549ef5373f85ab362f70675ded2169b7659fafa4fe72e216b83a1ff9af317454a1c17b3a6615154900dfcd27843cde6de879e682b9af4a0dc0d4f85d5742debbf301c6419dab1fa7298d8ff4460b9f1b5b49aa9efe2a48f5ba16ab4cc6148550e74655b1f49c598f3d5d79b119c84bd", + "tests": [ + { + "tcId": 50, + "comment": "expand_s requires 30 SHAKE blocks", + "msg": "48656c6c6f20776f726c64", + "sig": "4fb72cc8fc11d9ad3dad46af45308bfaf0e1ff6c633b14ae1290ba8a65cecccf42cde181aa0f8865835d9f65ae1eeaf51d813037732bde8e0969e35df2f670457d74bde94ee4eaf433bf53af624ca772004335182892db2c03f78e4bfc10e3c4a103daf44eee5fe0a0c877a3e32cd45dddcf05f6685c6d3e0b0f6efdf678f7c43b408da43b640da61566d168b57a683154da154272995ca952e6cfd52a3c5a684ce80819a112906c42a6dcd17bf176aa7b718e52ffc47c9c7554ebea8131e211c681801787031d24893dd55d66745fe19bea5aa3e144fa3e562708e12877f3fa5fe5e9d6b777695e7f2c50078dd490bfa42b6aeffc2dbdc72c70ddf657fabc3ca19e0da8ba97cd541bcbe5e23b86f63a9503c3e5af5e6f20eff171804b7b225365feceab6a6536d13e0ab38f613c204a80374fcbbd282dba876df0853fcf218477c6f16405981bfd231e8a3f974585bd1f0ea8c2e1a6298294bb384dbba3b9c6467dace4df2c0e7ecf7f2367d3de79d2b241c0bf11c03f02676c8c28364a9cccfe0513ddf4f80547538a966252aec57e49b898cca885d5833191b4794b7e4f4ac3d4d1e4a796a45da564ea627906b6efc049734ec08121d084b32d3e08e8862f12fd65b91056e98b3780e3b3d20091e24ee067ad3f76aedbed71e39602a6bb985b72502caa7e121b7b2f63edf613ebc0e8f972d75198e2e0670ff4f43b6c494e8052f83fac70afbb2b2502be9c02b6a0a9d9df6e0dbae5d17d482da4531677bdc48918eb3f5d7f594061390a56b89385826941e7ff5a2372d7f8d0de5eccd938d3aa6433735aa04c0f04be974154be34ba919444322190b21e1f68a1f0af2e44779bbefa33297dbad110e0d66e531df1b4c4d57f13cfb852c740f46e3af7e1220d198e11dfe9714424ca8a9c8ce42ffa58b686b73c6f85923f083e58eec7347c707cef9b92d73b40fd72e764145c65acc57f9eea7e6f3f529be8d89e6f10ac0cfab892c3913d926b60069b9e3edd81913ae1e071b6d1896d8c1d789c414e5a1795a587d38449af9ec87a813ec75d3e8fa426953041dc6053498df986e622b6c9e8a5c6a8a91d7c7174261af3d574da9da6f22f6a5f2615a6ea4b6c25c0f696658ee80e22dcd68998c28c02026a3282283d7e51c16232d88a283486dbd1e3c1b5c6cb6a101d1cf1783e456cf822fe00b7e2696b2dbc06cd430c493c75bdcb7c8d035c77ea025bf7b1190660c39ab026b9e91df8ff99fa725023f42f187255401acd329640c1356b6bda544b6aa4303faba473c870b37478a83f8b2efabe83a1bba00ebfe3227d4a50f063ee1f2e600eee169c9a63e3baa75498bc28849c062dc68a36446ca41526f4e947b9d1da36bd83a48c7e17067def7e5cd6e2b212a70d54a260cec327ce0d2dd7aa4b7c025856ec107821692ede69f3e485e4c8e69f8b03e8f6e84346873d8260023055dbe13dad44815efb7fe9546bc0c42dcf2e57dc635d1de6c82e3afe6bd5c5daf35d4f37e9d0315ff1bc4c38a78a54bc70f8de71d9f7d4341c1ed7f3376649b8bd5c5025e63305d3242344ea9fdb237d45b0ab3b0654f1c751de05ad8e67f990e28f1acf85f22cd1c448386f597a57f20cf312a636676c341581d74c3441b5c373ec52fecac29bbcac35207a4cf704ec192cd4d9fad63dc1fffee0a98c1d84d9fbf7c61a629f64df624166aa29d5ba969fbf45257f57c05fb9ccc5d9277a3f8d5ce19633bbf2ba41073f5f1dff3cd0477d7f842f60818bc771276ed4f82a7a5013827b83173ebf6986fa86950bfd8cafae3443beb790914f6f70851e4c6c472cac837f04230b97401ad1f5a7b332264d170cedda45d37e27776c874a768d00a0b7c3e03ac25cec31f5c858ca4992a91d219db5df2ad17fca2fb6f6c5c24085f6f2607116397ade5483cc3fb06591904e1ada480ae242b37b15e42f31057a0a5adc52cd83d6cd0d6f068e7a4c6e33a5afab34415979e1ec752e2f709b20d8afa09390b30ea48651cb34a55cd2ef7c0f3453a2180c3921fd25a83071b9a2bac353c188cd70221a5379e28b2d651b33feba831e9dd5b2acef4cbe8cdfc8cc254e931c25d1e76120fe9976bb7d6bc7b90e5f92d5b9f1422a5120f9714ba4a6bc0a317b7924fb1f4bb56551a960454127c38e718580d0edf0055f4f28f9cca5c0032fb38c754064e63d826c2f732c7d9ffa897d83c579f5527ef3c057ff2b324d3298ad6732f7dab41084593f53151a73e10c331ff63cd9091ffedf331c5bcaae106138d7dad3dbfadc57a429809a6d20d3422f9678d11bc68ddc252ac6e7801c80a8dab3f948ff05fe382e2c933cb757b8494f3b10ca32ffaa7d79e274f2c5b32d1a5a68e4ae78a26354e2172a691c6a3a1d0ee474d7aa5f96132cb302e935156c3279a3736895bb60f3f54fd86baef61853bfec8a05f3cbb9e626e3fa2db4845341fa13dc07610ba7ff72dbd78ab00c15d5f50c0ec7ef447a076de2e8e82db3328ca1a10f88a0ba45e73d302192635325b687707891c7fedf9c4f2af09a3d530713a15636db5c29e78453c91bf955b488f3cb86eacb8069d1d95ed44abea205114ff51a46fd1a1193e552bd2febb93c13471d6d01273be5e2cc80e746e2aff0c00476faabc6e25cccce79cd5011aaf5730e8dd692aaffee2278fd918019fdf54595728499a24f25de4561dfef6ecd81d80d7779e1b79372f9113f13cae5bfe7e3efa6ba6e89697b2774563dee96fefb16983e77daa81e3da067afe0d5a9a27be79e9d831ba95c0fb8d694b05de5e5c6f277a9a09e982ce6cddbd0025e6e0c9f193b5c4aac3139d6e2968ee2369ec160545c0d9a3e70c1eed750f807a1d8ef6c6d6e43f7e09d58a2a583c05b255214777a07ca0ceb05ff6be070e0ffddedc223aa1517aee3b385b23b8856a65426b7ef9f0b7f06e55ae71ba14105a16c98832230cd52e81190d6768bbb906242f2a4e30240678ff918a1814a5d36190aa7cfa6942d1001f9d2ab2fa8a4b767608212b071cc6d86c907455a0191a73c0319c95e0fecd5df077d24280a52176e04b03fd55d878b062ae61a9506dfbee3d74eebd6f3bf11a791022a0611764b5c608254da15c3eaa9e96305e762bd4466cbc5fc1daed6d50c1fd369f3d6dd4baa1479557ca027702878bf672182c76be4cade0c4a860addd5e7756dc5c01b2a08fbdf9a98f9a14b96196cfcab7bdd500632aeabda8bace5b90d2aa67613e87e8d566316b924a28c6aef47ce2a9fb4776e39796ddf13b0b9f3e073e3f5abb4cd070909591fd319121356da2d8ab4c9190f08ddfe404be16907a15424610ce61350e6830f106ca03b6175bf856336c564a946af716b356dee8711d7122c57009965bb55fdd8a83f304ac557cbc878e7dcebf86cbf4e394eac44bc360e066c20a3d533d11c5c81a68ea6295c5c84606fbd90db691138f15ece19f8247fcd2ba870a0a3a1082445bce406ba0207945c0e1772a06d070e12e531c7c1710360d0461a6ee21aaa35c40822c5db6cee17c5f59e294ebca1d9a52208112ec04adea73160fe6360157761f3269dc2195160a41f7f4658a3de275dfecb320585a8873f087f404e19f8859e3a67f5af152f8d39939b4d1d30be94f2c7a5d9f741eafee95fd952d040540d041517120289f7bd5fb6ed4ce2b481115ad9ed2c252143f7712c125685433024756f7c6d9d4a68b357a1e2dea53b2e5cff2d533daf7ff7ee3de7c26ca219993f6cb21ae5f230d7cbed728cc81d8193500fe57456717d848c54cb5982dd75a9c791d50e0d56dff930a8d00c8ef62e749ed698dba631d02db3ea5e8b1e6cf7fb7c15854fa239d5ebcb00948927e9ccf48398da74b1f15aeea6eb03585fa18e6971e1ab58302242cda945bbdcb501ff0fa7d542415aaa9a0b2cfa72291318a83686f6c26ddb00441c4bea59e896481cf80007eb65efb2a6b628d99b4dd8e725b78df28939b59bf896e2fed4da646f141e0199c0fc576ac590968ce6a9ee018a8243f8c0a01fb8b6934796cd39dc142bd0b71909abf2d439b984348fbf611a7add47b3485420abc764af3a854faee5fff8f475726917b741d68e3c5524a32372301fcbce2afd1b505b01073b335d5f4ed2dc561ada3cfd8b8daa8d53875d4aa9bcf02e276324d46efcbad5a889adcedfe6fea80ad0484dd9d0be89335dce6f289bb88c8f7db45ff4856d842ba73af06885e7c701d426e61b6067714dbd5080bca8bd0915e013c27f21ab5da98fbc67f0b23208bb8dcdd061816d37438ed96e1974bf03399cc50f44cc36b08e4aa27bee730ff34290cee65cc5ffa06b7883ba9b32da164108ee9477c78d6efdda968ab2de603aec42be8e7a54b2444853ce97754c29464dd09219d15d0b20b4777ab7ce405e1ce3206b966d7e1cbf7d3b96c950181ebda024ef3c77fe6939ea7b63a7c424933f3116bd0ccabfb60951b904f185ccd96ab46d75f8cab4a80cc8185a94d884ba872a29eb7a2a6891328144dec2855e35eba00a27fb70d17820f7a8c6e05cfdb53320c5a78fb90d54c9dc8ad6e59beac900c01c030f99c80a0d37430a46f90ebb26746ef6ea456e47d1cf7922d36c04152ffa33cb7780a81b77cd519c71ee34d74b5ae82e2580e22a21b0a01f25c3463a58bfec0e10131a780f64c664f12891b99d186b3e86790f6d02d9f505fe94114312b40f606aabad4f754073f6524c2e56eddbf194a7125e8edccfd78c1bf329336979cbb2bae65f6393f84a2a87d23692b1f55be560ebf8c7b9c6f41a881dd6a9fb13f474ab34bf46e9876254e2b7554273a94c53bb9b23e958efa40448855f6d6af6329f7dac44a427190da47783e57055da3060408ff5eed2b8ad81a4f04e00ee64a82d6eb41afbb4b5a8e8e4d7de345ee45427a9dac32c64d9e9d4d08e9f3c097afc59fb5eb35576dd33f37e5dfa83504389083ef90f0cc5ca93846ee1fa13040af02232ca12f28e08edd5270710f30e0edfb4c130925ead912c1b3f4a3f00ec9adf02577c8ffe6def321b1b10e0bec451d822f7449455462d58fe4c32a8d69338b6e2ef7c408227813e11381f6b390a99779a68405663618b42aa2091ebb5bf61450fe58b7af0270d31060e99c4a8301dec4fe19c8f9e526ac0d2f94b7eac44ed37636c1fc401c6ab166c0b87866f0a86f5be2e0074497d3467e32d91e26ae97cd659fc0ff2294bb16134d1c6d412f28f9356c6c7b2765d2ef63b158e9853d300224eddc3b28079431f8c71fa77963e0eb11ece3e36840f649bf5214a6cd1ba5c0357cfe63613c66e91918a239309b4db78651a7fa98f1954531c240f50c08bb6a4de2a150a683e3895ac1ea7d374792f92f6b118cd81f19f4f67fa84b5d16dfa5bf1899981f6aba1cd90a5017576d2c07ce254e791e36b3002caab47ad3c608f59a5a6499f22621d3e8fdd6585b4bd2f2d8751d47da43e54637e3a4611238d84a6039ca82c231786b83e8c6c07d62a29b14a22f18880855c57de1c5314a20d41d25517e6bd7f4101cdd75cb460cc8c22adcfb3fe42f9ad7845123ea4d1e13e47be9893bbd2e0ce07b3cef2502c3fa10b43ce3d1c8131034826db5febbede9981e6b6ae8ac07ae89aaa48fd5aa0f1cb9f900f0be3d90c98a9b7cac46e44ba30b88a4e608a7cbb1697ce407b2e6f54221ea4bd7994101acfec91355c5f2ffc590cd768b301291ca61761377b9722275336ff294a49b0cd116484a3e829eb9bd38498a03d9db0d4f2c24515b3f72eef5d3a8cdf6d681fe1c55f46c67ad306dc3ba434cf29dc87821944f7613aa75301172668587a26c9deb298087b35b73e729ea1eac73d86fdc37dc9ca50712e608b0c58388c7c11c7e5bd442f1add88963cacd9c5f0dc4ed1a79736a9f90b2becd584624fad14375ce5dab5314cde609a1c6ad1a4391123daaf4dda3d5c2a8ea1912b768278c914d2267657da02c32f953a8c3eda74c835837700bde95b840233ed75d99f82eabf291641fb300a1ae605e8568f2211a16c104b993f23edd4f1808f5182c4e898183e1af55b34a4267d319c89ed8093559900734c378755806444ea566ee16f6fc3b9c92cd5361f80409b815b1a75e9e64bad3643ddfa06690971e333a0d2c54834fcfe2f960fb23dba7aa7513f55f843de8053e662c9c9872543a6f1cae280ba6b90d52b662c700c37058c632554b5c8307cca58b0ad197cc3268a49cb8236b5f56b77803f2dd8f568dbf38eb0ac63d1d8d1383b99ba13d3540c2f4971f35ddb0724be07a10c76dfe0a9029ba440037bb9c32d3d0f6f2bf5e86138995e0c46b9b93c2baa02a2be1fc87e3961ecbd6d82978f411fb7f92e6f94b00a3b32eaf305cc575a2c62e785f67368691ef4195fcd2b378613dac0b9404f5d022c41cb222d24b8819c1c4d3d602f0e680a15b5bc6f5c9b19373a48496a8294658c949cb0f4fe357989b0bfc4c6e21e518cb2d5d71f245171819ec0cbced5f528327a7b83aecadce3325b7b8a8dabf06e7a8a9bcfd7f8000000000000000000000000080f171d2831383f", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + } + ] + }, + { + "type": "MlDsaSign", + "privateKey": "d5bc7d3c2fcbb66365428b385a2a2c83a8402084179f41c4baaa9c74137dd62ff19d1a80b8791c2c43e662db1b3953a04c1ff53cda0a3e0dbbd647b05b8ecb37ea5fdaa110fc17a0189f776a962d22e73f3fb80858a28bf625403a5dc50bc715d852de489ef691ed7a54d1e24b937d8d0036d0643531db10da74300d92a7e1e313868191180c149108c23064131541123971e2a48898a42540408160c28060a03099424022460a2235644a184e02862484486e24a2441005459b366e23a38d53066dda24464c86281ab60024b32c824262d24610cc98108bc6081ba50404a22d92a04948b24c5a82718c400cd2868403b584e3100a0b048593a690d486889b16860a28040916012240865c143011981022054a64b23114341198368ed1204d0a316890462a92220513a2081b944459b86514c4482106328c2868090689c110020c03444344719a148e1147115848304a480e8b880c0b062d10026eca382093886140068898242a2127121b274508196a82a24dc132724ab64c18b72454c8401a418a0cb7818bc20884a460c0842452482443c29100130819856010c58121a54c21310609b168140261d9a050583422593689e30289510605ca386922228a1c042190326822317101866420227200012a244206ccb0850333859b48722393112003265b428821b54d4a000a8b244c11496d1ca76514296c50282d19286dcc342941065101c869c41470124268a2b24d43288d8a386140048a9a042a0ba16962200c52225200c6080c1889a2148590162c0a309212164cda06325b26508c800d23a47009a32dca92410b16522049710b374c49107109179250446ac2060542162c8b32450083500a9580d1162d2398291a058a0c220c8b249100358ad8b470a302689b4489d2421051082664b26821a32464302c0cb189249225a336404908061c0051cb089211a81121151152b2211ab02109986d5144229ca644092180dc98216318094cb02852002c04a8441489098296711181440b02620095081123928400505b220d13944d63466e13b751d0266ec3b4045ab6694a8071dbc22823c929d020045c066a1430524408665b322a1305480835258a20011cb6290b938990c4201a086c89204a8b2864143344cb3428d988010220318b108dd8b665e44625a3184aa1344d59968ce49624400225218841dc306c1bc00d9a466e138789c30282221062840470a446622225712104060093684c240613034aca282a110632a42470801068e2c86458066122c885c9b66c40386e84240c0bb42520037219918c9bc60d083029141924a4b8910b870121c82d19308254160aa3b8289c24605bc28000842d9ca84091a604d94630dc46908b865121a12cd112820106698c144284484e53048213050504934908840481000212a7884ac4418926001c456541b64848466e449841d08881111928140744d0b884c292501c312d9b404d64b084c8888c09a61002412241448524148122b170141390131381a0b2308a106a42184cd8b08902182e61c2894c188dcac40903072e9a126c09b92d033751101424a4340411084812b2689334620a148698a8801a915024a080194501e2122011957163186c50406aa2189160146491080148002e9ba0485cc010cb128cdb006d51140da3b0691a948511b729909650c4128908492840124c1a32851a2464621031a0803181c210d3c889d91865482241d03651d2043090b689142689d280892080712347068b1692d14861a2c6809100655942014ca860c8803091389248c000d1b490022485a322114246050a3492a48021214331e1984012b98cd8c69001421019066193b0280c88095bb644142162548644e08428514660583064d210029022010c91491c194e6130050c192244908d083189c8a68589260a12464c11068d89b81090047113426801116a09198d1bb765d3005050364e1a306e14474953100410b711808890cc248e231560802610022849093351e38688c18211c1186404312114a94409c36c9c48410046310b1764090625d232481aa6851232405422328ac864192590002586a0428dda280ac13210d836518a046d804231a4a62cd4a231113970010280014750913288d4228cc2846d89306513b69021c10d8808425218480ab064a29690621025d8125064c4508c2646038844243908da406a80c8844ca24c9a100511a67a060e213340f76914ab005be3cac0691f270ac3ef21365c4b54850b003877f3086489528ba21502643f614194af0331762e7d8feee22defa86ca83bd13ecec666ce7d7290520877d146bd0ca9e46f211f07124fe6c5870108156acc85fe8dd5ded5ee47a5ebbce8ab3d0f2c426382c17994fdc4c86066b02e80c2645288485a1b05b4c083b7c603bc61caf3ec3e26e7eb22b0637eedce1331462ebaedf3824f8bfd32a4818663233f6eea204e4c989a7dbd64b38aba28c1ec6ee051deaaacbcb04ad1bf9af26a139cc6b9007f964b2978ab06f93dbf7747a676175fd56473e5443a4ce578f23e7a7700e65a851eea2ecef68f3f9461d4636e04e1be9a3ffc49389dec35622a08393e3bfa84fbdfe43769b5f24ac4875f2d8869869d39d42fb4991e615b8ef02514611c7da5d4d7b7cadb06b8dbad0fc92eec830f65a119ed73ec3573674c0a5c37d15bf838712a9430d1214aae8bd760e8b75a8d89d0a8b6302b566d30e024516d62b70a80f716b9383f72a69eff29a9bdbb843d81d2a2203adefa59c41daeca4c997620ea2629c76c92085d6c4bebc642fba7184cec3a5873e487759243ae10b72f6e729703effcd3a6052769c9e2349f04030625dc76fc2e3141307c61b095a0156317ac9c4fd877810deb2830f18a44124c8b631e2b8a250a7a32c2e105b1a8387e41523187f0fc24b00aebc0b4fef4eb822b77ccae758204fda510012626066846afda067aff13663237225a9b44d7d2e682536ced72d4a5587a0fdb1179a8ef38e0e644f0e6e77239de7ad5ebebfa88e197dc45794f354ffba9cae2f4ad70b0f10f8d7e81b859870d9386692e6cb1a6e2608fa782f0325bd3b70e70ba4785c284bc1447d4049ad7dc3d9f0180a55ee20585dba791244fa5c57d0ab7f429ddecf554ddb32b3ddf622dce4e8cd97483e7fcb036125618b3dbdc8365e66d57d3d9090a7733f424fc6ad858d2a666fc7d5c767a9fa66e902ecebe9af3b4df800d63187246c18a7bb96b2a4b9e147816c39357a779e85cf2691c696bc0b7a80c79c227f4d88a611e9c59ada3e4a42b72688d3afbee16a63c29c9ea6fd1629905d93657bcdfb4cb33709e0850f2b3b897aab18aa710c786abd5864bb244314c1a677b95f7b4ad5b6b5992e61e952c9a13687c4b43c70262becebaa99f41628ca093c3fe10ca8c63efe90d8f55de6585f402f0e62251ab3064ef396d5c4db713b1a65c45524ada164b6397dd9114a8c8c6cd1932d1b978411793fee0b3961654ed3873b5976103a1d52ee40ea5a52b569f64d2d7e3ad563a3a3a80a2081ebfb2e53ac06f2852447b92c8b708a9edfb1d671c9e4b0f93c73e8176f81fe049f5a2112f9f7825ad76e4a48da22670c37b3f6d2fc5498abba591aaa6d1dd13f1b5dcd55283a62838880301e70ec4a766a8515faeb84cbc876f6e001f87c414f4799d24dbde608e241b2d4f6c03edb6b013fe9bd45dbdfe43a052a468e6dead337f9204f9429517c132d3ade07891527019e0b1af31725799b2bfc63896c9cc74bcd2f276c3941e4032333ae2e9f4c018c715d16e332e3fd8223205adb42784964b72d409f2c11a6bfcf31a3ba5942a8c4bb0a712d9fb56f5b343754570fa84caf1b7dc834bd1b012b995a74ff9738c5ef1769813112b447d5ecfd989b688c8a6cfede8d3c6a32f2ff051844adafb6a508128c1dbc356e400358ff7968064c6b64129f3ee7f104231d6120dea99ae237490213f8bf7b2bdb4f237df32aa7ab31c25a34dc733ec8d94ec03c06a6c3c83436ead2cffb6b73d95927a8cb12cc8e61f7fc421ab1bdd0bb0327c94f1e56be4fa1792eef34f5b4383aa1324da69f81aa7b39471a4539a3b9e6d7e159144db4f489b8d4ac05103dfabcdd0d256b6614cb679ba862e03fecc04afea8a27ccadfbd1a9e5e761a8ca086cfb35b1e9ec6387dcc4b03ca8438e629315b9ecb1eb36a5ef0341489fd112be04f262dd3ac6e349a2bdfe6183deed5e33ea72766b1dea209101ac2a971da0df290685e256bff8bda8a5f9a3a17027a14ef1d3d952f05a489080f7ffe5449e56d4d8624e3fd2ead662e9e192e5782d8f81a659d712903220665e0cd3dda65f2e7182c9288ba8f69187d1a5d19c8476777a6f12ba3569ea3c08122047a2efacc7135d6c38b715a85a35c72a698b4e2a54161206ee2c08a345b601d18907aec45b1fe247fc65f9cf89a661031cc7b854ab8e75c1212d45f1ac92d02d2e4d1601d30b65630e0ccceab64797066851ff0fe1c8ea1617d76449b297a0cd5927f9c74092adcc24d6b5901e8c19e99c681fab626e5ff090e63e6e4dee74197038dcdd60266e122c723daf66bab8a2a14a45f3da678c242ccd5860a0a25e4d2e5130ba1e6711073a43ee0bb9e5e0d6dd61e9f9deae76c1092aac9c1b73a9b09dca499e167a38bf2808ed94b044c034d692d99038def7beae291fa66ef7243ace3b5b70e1cc427befa1047281dc31b31033c713e528cf770d6d8f30add08036c1230e07f1a3924ffedc1eb3894507e903a50f8aaf2101a30ddb773dc0de3c1e884ad04eeb18023262154115c321be967634cb1d50e7607cbd4043176a2c2207487dc1a34216efa1243689776b2ba665007d7ddb9979d4bb533f6714977c1a76b9185ff99468057fa69a872fac7fd6ae89215ab70e6b8e9241ba3c728da72458849554707fa2815acc1971d519e7a086b9804f97a17fd5970ef386bca7b9a570a0260aebccc192464bffa4038c649c43a1055e66e0bd3f75063a7955bdffa4fb1c0c3dc817b434f0a5467a1e63b0bbabc13c6b1980f2373b6306f747ec092b3ad99b724cd021fefeccfb6ceba857ea9a8aad0534584495441d7a816deddb71da9c24b3329f6c80d71a5902f2b56557175e366f57ae566adc844ff41eaebc0bd2e24a62716d018f21568f55c4037eb36356b6e49ad52de1296aea68484b440cd83de37bb8c10cbd012ecc4761382666f6b23e92e344994c851be9b76a87897cb7b0227ddeb972ec9bbcce7273178cb829f488eb115e32aed3a8878057e86bd3fd9efb3dd1877d7fd9d03781d5b933d7546526177e7556da08fe3c2d0a30edee3685a6304c93cb9bbf754c48e21e74d93593d8ce28a4ca8db9ce7f4137d5671e207039b9d897c30f27856461ede6c6fefb517137f6327cd6a185d29923bb3ff391be9373021fcfa3d50f11552b442ee94d17813ed7eea59c7ba155277ab0c721cbc35ed4d8fe60e23f8f45186dbab48186054d105c625c9016366e2855b945c05ba80dd7e32a5416fbb8150542c3c070518faea4ecaa07acfb74e8b737f38bab7a6b4ab6df5bfebbff874d0991a07dba0c7bee021ccca5df759e0a15ddcf2650cdc5237e4b7634dbdb872296d3ea3760291e2bd8813862c1275c05a2d993cd8a080393207401e8c6431a4b0c584e6367776ee8a05d2bec1568b618a179644a2ef5059405356765cf12d92a4d9adec358981fbc0354ac4370b38e843353455641558ac562d48f25ecf9a254a38d471269caef581c19daae90399530986639db649139d993db0d67589fef6cf45acdf3a83bfdec800ad2527231790b7cabc78e39d30b19b786e9d1c22b5a80402faafac230e168ffa904fdf557baaf3858e5db9adf8f1392275b6794cda182b9385e1b6f63aa12aba3f9dc90e297f86ff989b3af5472bb9a0941052035b0163fea79d6c08fdb2c7bcfebf26217cdcdb705466ede5b1829cf5f8feda75aa03557475870f91fb5d9b74844e19a514988e32b50ffcff3c434b0ec0282bd0830279779dd9444bc42dc872bbab1382925a6cddc5c34fa9f1496b195afcf8033c4d09fe71fa97414ea93c5f44e37f5373583ed6dd6a156df105cd276b1a6c8328492702ba236b8caaa46ee71a2ba400903673337e35aab1487e0da422a58684c9169baead1f7b9280d0b3b21d083e25c9dc6c7f1feeab9411c88645279df77ebe427c838fc1f2198e7c9fa939e6991c94357aad3d8ebabb5046d7cfcbd115551518c1cfce306e3da45528794e63e2d33a4d39e134ca13eae36a58b85f903ac8f83563d8565ee81931bc64cd75efb366d8e454ac84ca1675bc4b18ae3378bfc6a709587b1c642e67c2ac07a68ad71bfb4da30022b98666451d7fe46fb9fb2c9dd874b5e4a80fe144ca20144aa4abfe602c056546dd316be0bc8797610bf396497b513ba77fd48c3a419819c80227386e568dda2963baf5e92d98ba098b3f2ea8451a41236ce45aeda5772476897e39e389bfd6926b9356261af9a69b3219ba2a29488415f90a38b2bc386e2a470388bf1fbbf28512663acef8fa43b7dd393f58ddc7e8bd4374929941344109f3195fea7683ee68337de714a65503afd749b7f4831328f7d4e4e31aa13d34991473590b68352e5d4f1fb75e5d06857ac089adb87882ba820e7a762faf1dabfb83c80bb8875cfc4c920d0b0362c6b39b14d1c604334ce40b785c386b4b80cd64edc32c55a23a6c9987e4f875a9bd0d88d5a7c27cda10dd7046bf1d0ed270112e63730aae5dbcce9ca019570371f4fdef5ef07d1123e41828d6efc4eef6db24e2b1ae1a3a45df204fd47662a01df79e694fec097ce05f599e0c4936678dc77f5f4f7d51b471049b8e63926db5bbe9c32b729fc0e6599e2ec7037dd755a06c7b9ee5d6edf94fa6f6e46e27be99f4923aa89da3eb823", + "tests": [ + { + "tcId": 51, + "comment": "rej_bounded_poly (sample_uniform_eta) requires 149 SHAKE bytes", + "msg": "48656c6c6f20776f726c64", + "sig": "ba65cdd2404f93b6caa0428b7da3105c1e74191135d5815a06ee539783c8bb2f77c5e7e72aaad0839cac406e86010050ff93f34bfe9684db7da13b84e1165b896f1253b2c5bb6b85df3cefae9fb4e7316bb419e01a3b23c2804519494753e6953b051e85fdb5c8fce5c0239f745080f1de8a32f06b6bef8fe43f3075556c83fc91c28da3e229644ca40226cb3241c0a0ff5fbcfabc43d58118661e78081cefc8252c46d2c086f6f2b65175e3c98854acd22cf6d668b07d279cc6477f4d6fc80301ad191944aed2b4a30c4252ae4935db5e972afec2743572fa0ad841414a65efcf8a771cf9e6f51617709db4342c74e1b629da5c2d6c579867e9229783f9a565959ec6a85cb6acd887ee68027f4033550c255f246760e0974e04dee0798265abd13bf0e15e48d6af7a911a2fae3db750e6ca64e7d13df076728b026ced3c9fd08b30db8f1fc7ea6619f494cfe6a6d0489fd3dcb518966bb04692e650f5a22a013cf140f38b97d38e0b1a025e912ad1e37bf54885b7f2cd7348c11854fa6dfbba3ac3eb92f56790b68c9da19272c1d54395462d2f0a2863782f4d0f72b5b79304727d7e48ae4d4866a2e92f26eb95e374e2538a1118d24cda1a3d236a997e98a5984c84ae2f14724591b4f0c793d51e5b51fe230d5e065e8baa1987586f9faf6b3e5a78ebd2bb28b4653cf556dfbfcffa479df96d71d22d3a6f748b669b7896188423c504ecf9c3e203938f59c7ac49102eee2002a20f193e49f2c6d2f81bfa83305b1caba6a6e787de984f7014174b06f86edde9e4618141c0cb6465a4d83b3efecda9c043264b5707f04307674c7b5da832a64a69674ed4e08c3cd70896cd1ad95875f7b039a689a6c3f9c94be9db7a71dcf6da176e0e827b588a57da86df83ff0720ec637fd6620115fef5779f8a413f323f82afdc3b6e36aadeb37689caf75e5989a60e9e8809b0fb42068e825d7a58db4eaf32891c4ce83f32ca7f5533f12dc7613052889777d1bf644826fd8fd250c4c951ef927731d3f276b6d472b284f2a797e71c085fa9e7ee7080337c79af29248587b3838f1d1bc6c0ac7867eba4e234b30b354e68b905506fc650f8fbe41305033ee8bdc548d2b0efec4a6ef09abf0b122814e421221dd672567e61398a0c0d8f014e63d7e5761007b3e6d31a5ba3d5b982d91a4509791f60ddafa8c8cce75fa791fc864ca7b250c98b4268a1532540689e0b6e447c26c8af488f7881b66c81c9a746ff1eb9d0b38e3e845dd1576b3adf29a3bb778308b16bbe47da42e9597a59d79db5b7af3b02b7025f9903dce3b5eae17ba4c5b32512bc05ea0e25a7e57801f758557b503aa9b8c9070cb3e2a9b6e0637eea4172859ac42fafd11221efdfad1c15db8141473b85464ed9d765b670c2d9872b607600ea6d15960324e665bc417ae0ba3e5cff6f5a0eff4011d0ca5648d1523bedc194f3f2694aaab6e1e7ecb96c996c6731dfbdb3ac8e3ea095c0c175631e1f88db7db730c891f78732eeb1cf86b0b85c2cb619ce6cdfe9412510f5335fc57b2e13e1b9fde4c6b84f444bf7854e47490d50a421dccb39088b538536f7a44365a86fd7e971d8b58c673c81ed9495d16306ba4e5ed0abd3647609d3f0e99fed3fdc5543e55ec4e343cf62f2b8febfe27994455c3a55fe0771ef1fe68d1bb0005885f384767ada8b40c6cba691b60073f12137b9737612f65dad542787659cc9fc7f039b624f46bf914a2c9469ccc52ec59e4d0a61774df833e3045bffeb92424b4f671dd586459fb9b1c512f989bbff6da43b1c1bc25966c764291703641373a602bd9533b59685df91ee6841fab5fd3a0ce1506750f35ab818cd346ed7778256a7dfcf5ff878afa79e991251cce0ed3e0815f1e75042b3f5525739bbf50b93d3942b4931ad46d3a31298580ad1e3745c08a4e889b18b4ca53bdf4d6107fea549658693182c5daeffc027ad448672088620d45c4a63c96aac26f7d3eca81159118b54e4c806b9e89580cd98d75097553532f2af35d40bb8f4cf4590be084665520a421034ab67628d862973156e5734d752790cabc080ff5eb4e62b11a64d96c9c04ad214326131e643c36d16d60ea12451b9a889081e8bedda4b24a7ed9b6ef328201df0c03087cf614e125dce42645c5bc558c780adda009a97fd72f585978baa5d93514c5c0b5c62eb7714d5e31da9a75e29bc86ae2221ea21102f306ca9710083066211becbd824e0f7b884ed19e4a56a48faa434c7ebb116e3642c7d8f7562ad3297830980eaae8f3d79cddc563dd3cf38e4b9636f4a8dbc4fe85c8f55a333fd4abdc693ceddba6317f107052012fa714a9eecb492558e535ae07eca334557e44068e9a4cf2e8eb6b3678c6c88bdd68911a8bdc816ae866ab7a5f37e2a092cd0fa640b080387512af501bafa907552e6e7aab93c500a0b602ef966bbeb3d19bdf23866d0610acd4a9b37120b4b4b23eb879e0fdc0c8ede4fa2cb1143309c556833c4d858a825d22e5fd4ded0b0e7c5daf90ee75eb671df0b4f8fd579e5681722ddf7059bf4c6f81985075072ebfb8f5abb88605d3c1915e7e10cc1bd0336bbe8719195c139b4d0f018b5603fe78098ec2e02db1ecc58c7617307d97848bfdab9fd29bce68fb9ef182e021e8291c2bd030a4ed7b7813203874d85395438b62968751cae346a4d234693e70ca8eca212f1e683b805a88414b6dcd312aa90484aae9d5f5e2fb7d9c25aa50f49b419b2f45fc97ce49c8fb71126318e5428e7598e1dcf08eb852a9e3217dce2adbc0b2fda97d716d52d01c2645d81845465f40fffa54ad7afc1e82451065bc9695924ea8251b9f10774726235240d9d405ca27f070194705169f2f736eaa846bedbc4deb90eb25ceadd4c4c665cff16aa566ab151eb916c5cbdbbccaf5125977ccfd8c04dc019f414fb8a1eddec216b8b5240fcf2f99ddc04c1ac5d25881d27fa89a6ab0568cbfe944af00040b4af48d613fbf408590d5fe00b6c77a8df4d62c8bb659685592d2288a9e74e32aa7ad32cb1763adfeacdedd54075509ce81c5d7855bdd1399629fffd5b1937d72e89947587716b5d16e560818378055080e34ef92d7a285ec7c5b9696fa0ca578a3179a4d6ebee05fc998d4931cd0049c3b043832fb3438f8d5b959d4eb9cd1320f5d42a8fedc6ee8f8195af6c60fbac73748412cd80bf2b09b7e7631ae5944580e8014e6db9cd26a2a4c8ffb64a14e553c243877b4d700acb30c125848afc94c95f67489aa8bcc41b373dbd5cd61eb0ecc7700c5162af8a6760cb8c5a42f1369c8319d25cc531e2e6693285d41ed59434953ada73e0fe1f293935e49fcc8232ad2ad7d6a809bbc8362925f0981183a6317527686ba63384e99ed5813318d074db1ce5e9387ce6897c3fc764d021fabd5ddf45e80244bdbd03519fcf44a806d6d2fe38a9685a165b18fe8fd86335de9ac7f3555eb32d0d675902787b152aa332826737e16cbcbeb4cde070676553edbb034087c2674f2a0131162b0536599b9b93c36681332146b4a2428a0d1f7d6253d764ce8a853b13df8091ed3fd3e72967512281bb0e54557a301e0b557be72196f9b1bd1cd2e13668c2895dfae6e22929e17e6a7797c2b509ef69f86ee88d3d3728c89a67ad6e143ac70aca78a4d57b1be00b790db0c978ab8e27fa9aaf138e519e0676160b0fad462b600e9e1f72b79812e957df0e1d53d27603cb14fc798ff4ff59e9f9e554750efbcabbe079fdb4ce544fe4df00db39efebfe6094aaa60b3774acb4636fbf45c41c247de599bd7153ca1818fd6f754843c017a6a4afa83d1a45f25215995a41e5c72fe9ef854d64e72ba7fddee1ce3c2c7d25c503118068a2078cf60d08d683ac044e51b5374984cb237bc33b1c52f7227e87bc1ff349ab590134fbb92af864a64f923dfc6c45bd0b912d804301f2c962da5ee627c403fd365e5ede88adce5b8c294e2e18ab5ed1fb3b68122d9517a7163b2d3408cfc52893cf62aca12e0fe1f11e36a6fab64e13537c48c02cd38811750d3ccc8389d631eaccfeb64d4b361459f68e120aee331d50b7ee10943b4cdd73a6ba79f6f089ea67967522ef1ac4b43fae117721adf13da0d16dcb84e0a2f1932db9fbad885ac3bc7bde959f82639bedde7a3925653b5c4af3db38c8518acbfb444e17567d42b03f18a05cd0f2fe6039dfae5acf725f05e5eb7cf9efb63405d860807433119d46ae09f6a906701c20b5e7b716c93a2b267fd1d7cba7252f4ad4a988b5408ab9031138e28f01739d94764389de786bc5c80000c41410b9f46b462be92c946631db5c4a30aea8b73e13e6c62dfc6698574b11b64fcdd7b9812a887c9558ad3279446f074cb598d595f9fa06277a1d3fa5ff58ff0d2f07e15bdde69ce5c3988d347296f9465eb66c78ed78912ba7b09b089288b0050ec0b26638e1fb6cfc8b4a246b9fc0e7801e81bc63c91ad3335bb474a21858b1ab89bfad465bc6f5f53ce10cb38cf34aac70df35145f2967d7ad5952c83fc74eb3398c97760564eb2f00183730a4d9bcb26f9b38f63dabcc9c42e0b00dd8d2dd7efc9bbcc23ac4beac47a4e1c43340cd5c87f91ac88f92d80a4cc03fb9808def0c74399d84b9f6bc03729f2040a297ae9ccd4b5140df7b64ad66eaa9fdf7c37ec8460c11a79d30d92a376f7a9330c2e1110626999d8439266a34b45ae8b7df687919b00df6df8e5a70807893ed730afc18be325d058f58638e5af96acf0174b637b3f378c537ebe6711b9cc7c8d5d448d6180b58db4554f4c639b9c98e0a7ccbb217d07984e227d13746bad57b5b46f78c08e63d889c968a8d698f24fe5225b29d9a12a332e95cdf6f623fe531978ea8cedba283b44a0d465cc92b41d313f58d840c4617f33d93eb9057d3f1bfad7df90c61bd1e151412a9d355f925c5a9b91c1e856216d2a9bad492e1915c23e2575a39190a1355bf263029bb10808bf8feb4537bb6c14c9d3fe9ac5a6e8d27ea16a29cc3d7370b82522b092ae2e4601cbb1001ad3d2c49cf676d8d8e8904d64dd71b3fc080c3924e206fe2670af36dfd9d0526cb005dfc9a73caed416526d5cce988baf74beb97454a72eea10160ac3d129697df6a7fb3ae7d3b8a5733eb0347c0916ddcad184dfb62fb921c1a07b8710491e5bcf1a42473b1b8a7b316df623b2a902de537710f269d30bdaa9151fc7cdae04cd337123ee2cecdc0d08f20d9684dacd77f874e985d7e7aa66d47ea9bc4ec264c9e53f8cbf0d1c94bb003bf40cf090b4d651bdf163e1d363da7cdc3a70aa81087f504639cac7330ef4d741b5cbb42d25a2ce0f9b7b3eb7b1b1ec60a37745e14ca4bb57cc9c9fb36cf3b1514d6ee91ce1cff40b198572c5d3080268a1f5060b783a8c20f1a896fd76cf50c1fe7aa5039d07d971d03289346a09e1ca2a4f56499d4a797f28fa185e5c75008409dd17c1cd4fb4a40ddb0ae61a9ff1d8b39a211cacdcc3e24b3707acaf2900496a62e0659b1037c6064387cf8f68eac4f65c8d918077d1fb956a085ac278ed018ad204849775fa6130400976008bc7b10c64a0529e2e95da67d4eed64e6fd6ad4991597aa12a39753f88cf7ae7edde2fb4fc60c5703e20d37c078b1943cb348b6a0e3c8f7b2ce9951a2c2d488a26b7cdeea903b52cd0ff798daf7e04c6934552623b72215c5d0deae4ca19dcdbaa2011a3a25c1c524236c12b6fad8f2b099008b2e62a49b111d4848b6799b003df8b436b58a025aafdeac5a947832612706e98080f0aa5ada7f0163250af9905f24f18b0d2c4c8d9a2b9b2ce78b2c65ba78fa1d87d2d9d5ac7fbf97729f5106adbb771ab6d0f53bbe3bd922b285a6daa9c13f2f22902212301ddb308b68963bb70def70e2cb9b69a76b0898f1c28898993bf9dcf75f703fed0bec8c53e4f4cfc611323ca2b5c9a138baa0c9548c97a6c5271f637e2b042e6eda2c6b95d684029c3d9fb14a2b39f38c4dd8e8a0b02dcfbb50829c6643aa07ece20aabe02446ab2409c8556fa32a9a160fe35b54ef008e6f5a9730931b1a646422c344084e80a277d2a19f623242759c776625bb996a424083d92f66aeb56284a459dd3647a114efe01bf71e99c060c540fdd4d9168be4059c4c861e3972d9b3f67222070e0fbf1a546a77b601ee8cbbc0ce1bc55967490da7e24c670a82f74acec86eef97578684e660d4ac712173c7f67930f176c2a9a73cb83ca579ac5414a56ac76c7cc946b7e5ab9173735ac0039fee6b09216bfd2e8893b85b513f46497f827971b50173de6bd6443117fcb254ff7b8a538f9c12e3330af27a0e60d4f8eb3d9d052a36ab628af43e4dc9a8d822a9cb49ca7ae4b04c2d69c19f923fd0c978e93e75cbff7e0efa928e48eacd2dfa5f2e3e77c153d8d9c33d56eb305fbdb3480ad40baf600034224cfee7f7db1f505a5cabafe0030e3d6392adc5d0f7555fafb7cbd4e2fe20484e76c8d106666e88bdeafcff556589adaed6dee7ebeef1f2fe042a666995aec70a748d90ae0000000000000000000000000710181e26333a3f", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + } + ] + }, + { + "type": "MlDsaSign", + "privateKey": "acdb973dbf7f7c8dfb1126089e811ec909a77815bcbf1c2a1fd114b39a6c14c811896b54218ae6688d401ed1b341d64fc51f43177ec00bb244a4b6d35eee72d299f8874caa59284b10b96597c6da2f00d7565bade04fa495a6e743c8a92dae93528e073dfc4a6c8382c4c2901ac53c84c49c1dc3d4754d705068302cb23cab9ad8086ecca2851a062113234220c14ce44042c3a24de40065193565c8424aca88614b128912a4048c38258b844501a205a3124e89b88483204e5a208e1c000419224658340e1b225023008902856414a64024206842b62921b58d093570a184845b82505028840b00115006864cb40503186812c101c9a64111048e4aa22c89046ad13686cc4448d8445143022619c12598c86ca3068199002200268d01b365c29004d32012da00818c364c2139250330858bb28804232a9910708444681b470c423486180820e2069204142e0a131059428612c50422042293c4891ac25052160d48200d84a4301b8128208729c0226e5c0002d440429bc8280a084922c070104988910230cb484c41084008080de20870c3186cc2b488c8b688a0326e9188504c9401828028d0044123b74d2346129b94211ab04d50182c520221a0c83012092a134446413086239651a402285aa46811c285631805131741da2821a0421181865151106d01180811399291c00521050d0281441b3861921249a48605213611c82844212908491440229120c40820e224021844609c381013c78504374d91869183404041b80062b241848600cb080881c804dc040018b16d11269013012943c671c20632c8800c5a320d11126e8c3809e1244094024420060a52c60503040210b00d63142cd9c82d88164ac12486603892cca600184128a1944dd9a46580228921126d52c231a3066d1cb69190340063c48dd1860c0987840ac3451bc0290a3791602040981605d23248a0c6218c4868e0000551c66c5314000c823003c78c1130659a28008a2805c19644a1328a99285108468920c368cb960921c665008700e0486401103103062982b091e2186593b41183a43158c01093060cc34466888250a4380d22885043002d241432e286840935714c4212112165ca2262d1b2001110692012661112115a2048114112e10228c288888b868501458109083018160cc84221e186241c478e1ba75123056a00c04ddcc84008b98103b43012c7209a0201cb206e64b68519499214c53101002ed29270e3107009a64564c66414040e943425d0304142b48513484d1cb881dcb8281b034c8ba80dca084903a9506220250cb229cc0480e236805ac42d1a139093c0615cc8314036419c4091931685224304633670102242a246668136089a124c9ca061d886041095100a128d109811e21461c0220e039200cc326849028009b125c0204e4c364c08107203b08d248281d344712339210b09668a340d1011524cb0091b288118338244229248024a23c06423188ae3020a0b876c0025061c08920ab50524a00c4084482408721804698c00858bc25000036554b46900b86d021725c188855a422ca01440c9304dd41049a0c831640062a0b291c9b66519200e4b82651ba18d59140d5328891a21884882209bc68002414259187142a4085912324b0880da348510396250a6510b8230221132228100619228e3b4246338801a945148242d0843269a424d1b92048a46844b141184b28d18a36d43b41043844522472091b4519802511a9540592440220425c2060d84204419323083448104c0888b024e1a8091801212c34468d014910132660b14700a478448a825dc864548c28dd8862c98c688d0082449942512b340e3486811c2818b0884819020143781d0202542322692268a9a16602320284c001020804c1ac1004ca488891862a3c84de4380543b0500135311cc45063083261b670da189022922d098930d8244262141193924cc2482e0a174c98a00409325121466104b229c31002043482db306c09c41054a648184661d3c4244ab82d009401211066d3260122b488dcb24d4136640bc201d984641b028d0448445324221b378a129741c08480023660e3366881c031d40446c3086010168d0ba22d13936950325109114903a12de186088992101105110b318501c54524442d244060190824e442261b278d6498495a026a58086e98164dc13066e20491c1964cc29889d9d129a81ea07efd048a4a37abfa1f0c75e45a933584370b786f310761f5ba6ed2c53ba6afa8a3d71009386a48143dd0b418675d64489bb1ea784f01f5e9886b98b0a870467b8a0e6cdd0b047851b8f8b8a11162c8c4a075756bbd0b457e13358931b11e2abb4ce1881b706be1f709034855ad9ad7776f330856a65cbe241c7bc5d040d1373b1be79f859a44f78a98182a3c352a7f0016abfcc067c948f6e321a738566010123ff5e3d162660e577e06a14d07a9fdd8dfc820b632437c97755b986ab6fb4c778fdd1255dd1689cb394dc613cbd0040210f8c18e5828253a890559b7152b85a318305e25cd97e5c1309689b5c77ce0a06f1a8592357b7991e9a09e8d08c14068442d275032848a771dc83e312ef408637a8512522f66ddd91dbb40667e598838be3b5b5db3e8bea667af3aac62698d990a44a34ae41dc48454d36a72dacc303215a59a7c5ffcc7e9ce62dbd3f12a134591af18981f39a0a19f88f91fd3f5cca8d30188e81733b441773a4b3db143e77dcc97f6890b6679387b318616e12593472e889dd83a6d4851553f2f65bb65119de52275452b82b0861cdfc9e818b4cca59c41c888b6878c96e20241eb34ed1a1dee4a3c8d4d80db81a5995b6f11126b85c6cc20518cc4736292ac967069bfc0d597bc38aa740821ddfd8af9a73f104c927a7d957ca07c2a5933caea4620ff088b76d8d1744df499054f37c66d27b1f3bb8f7976b73aaeab74f335c0426b1c3952d6dfe562536680ee43e5ea19560a2e07e6783aabfd4f155b3cde39dcf01499078eb774b96011ece053cb1b7f9246ef10d4cd40151794ff3c3aea69e02e9d77c9a0c1142f59f0b45c295243f67ae631eb8f71d34cadd75ad1ebb5d516ca3e866baeabaa359ad2198be8df2198304889d8b8d1372364d66504ebae161f79acae999f5608d2e1ff0d8a33379f9280410b282991bdbea4b64047d798d5fecfc3d5604895483bab32a820f8dc79790b50735afddfd76b406b4b8b9463e56346669a6ee1bddeeb1d9f503847f5b3139ca4f32b426cdece4a3a86327c54eefe9c80cb64570d1847a486d23413d2394b002f8dcf5fcad78f2062af8e201747f38bbf8fd004fda14033f7827ccff58b60e40937fe80238ed4d0a7706e24deefd4ac11cc26dafaaa33cb16d30018a75313598189c3e09b0cb250b0c244fac31e1143b9de211175a7a2455c4aef2c8de185544cc7f9e7c50ed1f140ba8323a5d81157695fadff8112639ca8e9aaf3116bbc3a8467686bc6c2a6527732213665a4c7a1235e352ff7bfb371c84e100da2c7069cb0a7b9f7514dcc749e46720feddf0295d2062ae41fb2a6cd71149f1123623e9008ffce7fb98f7a26f5d6715e3ea4a759c53b689ca44eac23de1c784d9be02f9166184cce33a7e1e86b29cde09de9d0dd2b54ca4995f8bb5bace2c0d04d1f36ab169acb8f09c2013cccb3fbef78f9a6e18470753f5d0fe845cbd83cbeb1b2e4ac8675f6bcee3b20506427a56a278da85dd5dde511ff4ae9f466098e5dfce2629e1a9e3b9a27212324ba6c47c43e0bcea84ca2a0db920001f0cef602926ebca69ebc3b78685bea6e01fe358df779546daf0b2111c26f3b115297ddcae52e93017966c00c42f880d1b621a7e9142b0a091e7b664492da573b32e2ea85607d65bc46256462b52d7173831b4d1753aaee097f1a1f6fac0778c8e7f66bf785e6656fc22b926885b5242634c7f205411cd878e3b97ddd7364d974c359fc97e64871414e8473f63179020d59401e92b24e420c7122121097d7dff3d22e921d8a15645e825cd0801c02603e25dec5c5fdc425445c1e842824d15ec9523fd0bf4f699328fa6f8835396493229c0380b2722b0a58c5245c81eba19f3cf020bd2daa099176f73f015378bd6109cbdbf97323979bee5f5415846d54d95028127ba6a678e43c37795095a578573e1515bfb018ed6577e0c41703f074107d1b21741a5cc62e3dc07bab8dcfd196c53c560c8d77fc7b2b51fceb45f03c50e1ea68a97da7940ad61c908e48b423c8d315a319d295e8b23726d316ad8b44627de152478ba5b087d9b5c81e055dfc4c67773c1bf907e8d8364812afcdfc1bdcd1bdd9f4edf448c9a7f5e497c087291f4c8c56854d3039bb5c6c7f5534dc0731b3a743eb1abebc54ed6e26c6345e67641599b0e062d6a162966378c774ff5dc3a19c45af2cc12039d8f32aa47e8531af3d5478315217bd36baa8b068fe89a9f2c0752b258d472baa9bd0e4bafcce3c7c1dfed0d9862f4444f43b7c0694642a959e4ac889a1030b72fdebb773854a1659b20e02aa0385b3cffecf38763e842a645aa48fade6e80edbcc2875c21c367a4b898e4e9cdab1db395fa19d1bc3770f097a7814db53ae760acbb05b3a72ed49f593283059213b5ae21840b44f0ab05e6e03f31350b3f0081528a8f01f3c58e9e2582de3bfeb7322403f7b957c55696a92523403ea8b6431122d2107cc6265e904bfc2d0353f334b5095296ea4d0737560400162996bb9fd2f97fb3a94e2c56bac1782df6fe04f20dee97380800990993ea5e7146c28dd5f9dcf5f407339e59eb86e4491e2d83e8319a8685326b012da243a20d1f353288012e34c12d438a0519de0ac985ee3476c07bcfb829b6c24b87312eb90d7b3ec6906659d640407b8d28b86bf5e0eccfe50e8f843a4b440ce1488ba504a1b50e9dbaac1c4e98b036e93ecf4b00a0ce42ad687a023fff9bc50483b928f487c09948ad964e7ab980993034849224bf4c96afd90ec3fe75c47865f3d5649c43c324b15a169680c023abb4181b3388be289e98b840f02eac93c0bf17131c0514aac8a252e5096734a0deb7456aa0f8eb2855c3d97c5a39b2e4ffef560d5517679e8ed41564495bc1f7faa078a1250609232e758965090f269d9630c56add7a309c32aea91939f7b54f86719f7e196d194724cc1cd26ca8d0cf5ea24a62f2513f159473cbc49e2541f2bc54c274d12a145c390ce84d75730aafc17c712afcd3dc42a60b8debc3691ba91bdce520fcb3861ac7ee1f3ffc7c8fde4798e0e133508270bcd270c7fd0a3795dd83e794a7051624b133c0010e6861c794829b6bd27caec253d14ccc79ac45f4ab983db74fb97a90d36b60e9f18c7e7fd7148fddc57d354b102d7679c2ca705cf5927ceb0f048543ebcc722d0baef8fa6f3fe589a6e0c3dff0c06d5dae2ddce1eb5b6f9db88b6326ed1163ced6d789573335079632bdf371dbb7696f17453651eeaa125dca5b9e8b5e582ce17a280ba586bd3e582d64555dc44ce33a5ebd353b058f0c78fee75f870875d8286f219b1b9e25616c380f9bc2cf427e73b6f7f96b3b84379cf1c885ae8a06f9df90a4b8dc6f36f7be96f20e5ee86be7b49522b76473a7d6f2703ae2da7454778d298a02e59a5aa84494089d51e020cc332ea70eabfd318c096cd21109d53f485a744e659eef68e0aa588749c21485e36b5386f950d2ea22d8e82b590a2f55d39b065d6d5dcb0cc7bfabd3da697b41c58cf08addc1d8bfb616fe0aa073d0f18bca944968d79db352ec721d90c2e3af44132a12c0ba5cddc6ed32aff458342c864404560f9b28b5c682160825aadb6b3814d3bc441d43d54e2a607f3074a133023c9843b04e57a63029ce1e4317bf90ed57fcf5baa7c26489c2b880f1ef8bab8bdf876854a0b39916fdc6b1b8f94bd023a2c1784e4e33812bbfc69106cf090d2297b7a80fd47caadcc0b379ae5809b908a224f68a20838baff2cc99903282d5fc66bdc828f884fc7ea5d56abbe70d4cea4d05d027024ac73d24d957b5339eb3de97a1d409ee2b69d0df8aab41d2035c74c1fa6d7d55033dbb6e1703758e081710daed9ebcd7a5e9612e6076a32b84cf7832a0d3cdb48fe187a03352b08a3542b908cc9bfbc85ef1ef0d31c0770e1544ce65f76ffc133605ca79eec607a5c998d52928ef9ce8b4628dbe35c2f0785c30ce9eaf2ee30391792677ece14bd7b736164b7af9f6b21b0ac23f6f292813034bc047c4fc6a418dd5240351f91a649c44e7ce9362fb3a6f57a6ac02aafc6e79990f395c527451ade09d8ecfccaea47eb272e56ea709174bcb6ffa177215a1339c56be47d8525189030bb0516b18996b5cf029694ef8fca94f5e46fac1904da27eebd5103eb90975ade0148e15fa9c1bfbcfc6b9d96b41502e6741f51224589fe73d4c8a3e432213bc82bbffabec427d899e9067427d866d6278f5dbf6f6eb787f17ce5ba20d2b219ad55deacda4486f1ad90e9287796186235ca856ae6f0769435aa5cc80aa86ca3c36cb1bd6b27232cd5250c3ab50d59a8f2102f9dfa09a538884dc84c722886488aadec71e21b43d422c9c30d60e1cc6bc9aab5add12a7ee4d9b6dc8b034962475a8b44ef78b8acdce8c0cfec996ebef234ee42dbfc330a99feaf0c043fbf73e5a06ea943a92816d3b1a5ed48684d521f67089121cbf0586ede0049728a54d09a85e6d702c4807c99af1674e5aa59298b7ebc171e0cd48140c2f392ad1da1f21c3d7bc211c560a696e75fde1d61c75eab24e25e8c1e23b2d0e85378bcdd8e330feb4e85f3a59e73dd6d01e022a728d2196e6d1355c1be8edd53313059f8d32aa7b372389528f630828bc3ba1ae98d7276657d5bdd14bf58889a8343f15d318ca0ba60a884c556fc636ce5cc43078dbfbe585569d54f0addd866", + "tests": [ + { + "tcId": 52, + "comment": "expand_s requires 2093 SHAKE bytes", + "msg": "48656c6c6f20776f726c64", + "sig": "40d1e4c39cb59aa9c511ac6116c4cb07fe96494f0572230f8c17b55c9bf25d4f32c4eb3a60fb77f11242971529ffefba5ab6ed51418b94e5893475f0ed13b328d176715056be746bae09d9345ea4e861120e179d4511967b02bb8688e768d214c4cd429a5d2f032a7a81201dc522fb9fb8a0d1d211aab0f259233886df233865165ce4521bb4c0920e97ac14c28af98588f51f9f76c01de380e88e74b62c4c7664667b47c8cae2684f523c997764b26ab03b402a4ab420b6ca1c806131b42008247fdc137dc9fa06e01a897a3346cf820771519f740a13a8b64ee4b87e688764764be002efaa53125c30f8774195ac9b05d2a8385e91913aec6ce38d908982059e95d7cf3ee27b850e76c2bf1b4fb262e57ba421d74c2d14652b890f7174c0e56d5a6281ee0f8c7fcb8f2f2334850fe12664c212e6b9a1b3b69d31aa9fd28edd232befe40e15e0401fadb99fc1468f39574ecf9fe5b0a0828b9adeb11dd24fafd27f1144980b4dafc769ed77022ee02032f28e0da3709a71e074a99a11fa35c10c270bae94c88c55ee01db80f25c37ce4f82e1b5655a219de47c599bf342f1f80867dc736474c9b1ea05961f02d04b8f9da9ef4155598289e3af53fff81977e025cc887beac1127efbc32e93607b108a3883866b2c472c508559b0b05e7d75dee8eef222053225ca492c2fdf3b888ae7bb87c81cdcbca0627c27e20a838011c64bb821f16e4298b67448da37a0d1a445135b65a3f4dde1a08c6e930a38d7715f034437ae1ddf6668cff9ba3068539f3815d257826c75a1922876b1c94f711c4428f4ee2c1a776a8198ab1050379ab6f9a7ec0a04d530b5429f28fda45ffdc5cab4609d02d7b74e2c2ed98d8366164e26e43ca362d66baca0bc57efaf68e2a4517552154b810232ceb6646d8fdeca43f2b93e9a012368ea21a2b3ffceb81642c99d1d79e08404275317c5a80262639cd9650a5a0eca6750887b51bae9972dbe9c99a242cf8a7ed2895021b84e81ce488859699a5884e9c5ddeab6deaec6a73bd54a3f28244a3b8b7f00389161b0727e5419cf490fc8d99238f4149652e8f6a5c4b9a2b52da7fa93234fc48856de6a8e587c78bd3e26ab469e075a353952802e311d04dfb12f914ac366ca464b336eb551fd4f93b61f460a2e66d8ca599018a93c26d4f0887aafb60cccc1facc8908941982458a10aa9a0589edde064e24995ae5b63525ed496e5302e38c9f8ecae9e29c3243242e3d8ebfb10e34e686d68dcb46c7b67120af6b4fc17d2ff728c70bc20d27aa439999d5b3e2478de19370d25e558adece78459286b8ce3796b2747dc0e1e6752fbd7f1efa585b305f66324a1902272afe05237836f67b45c7abc89393cff49b5217e981afb70e89243a61cb72c2222b91f709ead02fc51c064aae1936e7be7addd25be93d3062179540733dbed1905a8ad17e389a25391e84f51f8b25c8af2799868f0098c7bd9a11277fb094c6887921cf5fd9a2829f8d49b42d76e4a1653947d3ddc1abddd06f8069704c8b7d411c8128c420ecef16fb5ae9c0a3557a0d8e78ee75ab6d6e299b36f9a13c06668cb6f3fe8abe80f7a0de3e249668e7086a7d0becc99a17e9b75e74802c8d3c7bf599979c7da77d446446f3854ef1a9cc08f6eb154de77ffe9271f22be6c69964b940a7fa76902f8d2c1890cf73fbe7edc8465896afe47210445944dfa1d03bf7c581591e72e33e2c53a9c75609a192f556be257a570d9dea40afffec929445770491d4578c86028ac94617c5cca3530931f61d24b5e508ca7c43ce1b4aaf0c05a89397635ea93ff8202282efb2f413913f63176043c8323f69b95af44e37bd1c8d50f0b8534884504640752adf29d9c1e6cfb769336f670c92e11cd28c39b5977d405e501aff26cf6fb3ee55355bd7f5c1d42c3dbfb3740830f239f879d6881dc139103845de4b5d8c44dd12196a8efcb1da903710822079459350ba8672f5995e6502e36b3940f0532d648faa4584788cce4e70a58c4f02d8eebf75ed9a265531575de64c9b9e2810e71254e06dd644b6c889f56c77d12593bd98bbb6c3ee6c59651c3d71e9e26872a91b70c1e39fa6d1e6bd1596e748201935e0948c253bdaf9d78e4cb6f988257a778f6e0c7712e86b89142fd1a7ac2a4e9b01e2bc6df878daf35a345489a223df455391df964cffd03f4c098a20295cf5e3ecb2c90c23fc9cb6956ca5888e891e8a054f011a69270a1cbbc5651602ddcfe0a6236e37a066184936d79ef8a3a49d64d494b5347f28d5548c7aedca0eed455f101a5f07b69047538c326081d784a3bd59f0e8c71cc03aceadaa93838ef3a97f0729b169b9b6a8e88191ef47bfea65782646ce2900bb6c2a9636ed76b28e838f0f11cd4388de5d23c446e5c6c0fc12a068dd400a7bf7446ea172655c4092456f497c1ac0040484d8d263c401f67896ebec44d09c60f85f534bdd9af2c3222ab22767eb938e261205be627b98aad8d74d8878f997dd8e758adcafb24230fbaec25b9ee0ce3cb5bd73daf59af350851d47c7b72fe8813194a45490a432fb330787ceca5dc37f9b70f377ad8ff1b6e6e6d3f7c640e6f1cc32f59b77d7c9ae50a79fd06775ac2fcc5747e509a06671d9b63b2319a46c37aed97bc22c546079f0733fe1cddc3a97329163852be91bffe0cfedaf6eff1f2826e881dca07f5cf581861b57bbb483a300334fa3d7e64ffed2f533f7c41e9761c87c4e5a589fd914085b7fcadac5e7a2db8758a0d24873870fe65499d0769c0e80c9cfa02cd5b4f4cffd713ca801d8ffea0b6d616db1a0bacad75fcd1d5845470f730830554df35d06c83a62d6c444a5ae7488d6441812ac304744ac103aea3c3a555bc4bd78ee42b532e8a90b7fba84a5b8bedd4829c8cce37e8f84d7e97d7ba25dd1f6b7605eaad3502ecfb579ef28391279a21243af8c52c701a82c7f797fdce690f0dcb1d196353214786cc34be1180c5277ac6580751994a4334d64562328edd0aeb09bf64ac56be87c8fb92804ba400881ef9e3ce61781b3888e70758270f5c383c6b1ff306c103cc3f6a482b227d7782f9ba57f357a61770a74850163555bfe37687e4c0a1b27f1b95bc8df5c9cc52fb5498361f6df9726278c7b1a419a171b9ffccbf330a19f09d954426ec09afd17bd14e5798a7a20748fc3e26f730ee9afdc25ce346f23d9a525ad8f21e46092ce8584caf31c8118b2be013db4455d9c37645cfdc30c31465c20658e35ec2b923a91413e54593044cc8ba5a318a47f4e8102cd6f6e8b6ea1bb1acdea683962992e7146555cc14eb0b48a85c9deb586f7e4c2cff311bfe2781ee86e2e7b4f2609a3d1abe3fb498286264ca6511113163dd6b8d3b656f8cc04427f8a1cc5da38a82b285fd9b7b1183363260c6f9c86c6a8d34c077dca7e7e1cc98cd7e8004a7db3b68f419eb0911d790879943b64ce4ef8317c316eeef6cd2261246cc1c558230d951536868a7c72e823614dc73c853021ffb743fbcbd065578b68ae52973216597f9f302e7da97362c105062966b0ce880bfca0f221246d5dafe4af5d1e678e04dae1a9cf11cd1f85aeaee76ecde18f61efbc96fad36d6f7b910263746ec9ec6cb751d96b5c1d51364506eee2dec16d63f5b265375de27148499c353fda4629d5469e9582421ed5816572a7c45e9dcf211176ca1a7020e7fdba36817b84d53e4e48a6d939f499940ede477a1b4d31df513d6c56fb64d767398e498f4c5734119ace0ebc81d9690f14aa32edc63d692a5d71fe8d2af01aa12de43dd35d6247c4a9be4451aa872b8ae6d921798a74b75c3ecce342f73d6fa13346281628f10cb40ca1ed405416dcad86e7db77b94350dddf52f22c48a134c989a5a401aaac3b26a4b9a6c0ff471ae1b84789e7cf5edea2843a8f6b4f2cfe287ab591392f06e45160a5f71d06f13d9356db8515c1684a56e225ec200f8213062beaeda219b679836daa7cfe856e7c00a5b4f49f50afca3e42173c30d8d7f70b854929a35b411d734db07a1a278886fea7594eff978f0948061c04e5a21529d8e5e16796aadbef9efdab1e2f92363c0539f986d3c1458d92f8ae2188979b9ddbb33377711adcb09499fd1f5557a739b1626d91327206221ff76c999d9ce1e18644ad08f3c629552761b6641637cf813f1a3277200a9493b959060c8f180593d287adc1d76af2e730ac6ad410d32f248d7842538f6e1be3048b8937d3db368e35d8448302f604d3a1f39eb9bb8a14dc42d312ca6de41ca89dccae099b74c8b4a1fb344dfe9aa33a24fc1e4a2d989645681ba710a77c89755ccc04907ac7259ec0c0f12b5ab3a449cafa905028097b372a39133093a6014e159dd6ae0d7397017e00b4f2dd7d1970f28f57fba54aa46214cd74df7ecc6061972fc2b849dbe7315fd9d105638e3841d29bef3d5a89e2155e6da4d23018bccc6f1f2b0390f0dc4dbb5bf23c012ad715417e2b8104ecbdace377fd68312ccc4a8e9d1950c5b7029832ad2f81dfeb15519001df072b4ae5224ce42148b3a835792956c2dee63a2fab776cbfca6630993f901abef3ec6b7d8aef6ef36a1deddd8070ca724c50341c9eec87aa3a5b4d5570cff0ef3343a2de09e05845cad481f12b6399cfafeb030f980a3109d12bb5963c3b5b924f39348356364298d93062ff5fac395823a68dc994cb826245d8dc1f97eac125e430a8b9cffb008ac5b63aa95392c8c677d48353cf49830c326d3970dfc930776159ce2c630998295b7a0bbced1d8e640ad4b5558f467fbb4405dfaf5435f8dbabaf2b69af8206c4c424bc13251b04097b05ec9d362e2ba51e6eee3098164251551745f12dad99b2439b65b432b611c4633ce930e125693ea36cd2d61976b01fec2de8b6249d6eb73cc58471d02731ea269880d015eb71e59ccae5c96f960a1f2c45de24b3490a99bacc6d9380b85f9abebe4c475b40da90489ea8682809b3a7afd44c7f4a4c93a8203c124c4ed494797f416889ecf98261b0e9e1fcdb094666538e857f3b17f3b2530d03385dc695d7aa1f62d2cc267e2a9d0f0fe63983e16f08f7a1ad8bb00b1db1cd4e5b165d8e8ed65df7a992bca2951692f3ff2dd16d739ef929b1e6f86a88457800ea9e7bf3b04d01c74ee2c26c8d981c2c63fde1df61eed6e61beb41754c9a8ad28a9b61f9b866ef700d0c26accacfceb3e48d884c756edb7691fe0a56938a061eedd73c5da3fc5a41bb08d7453021ad14d31c3f431ffa251d76f6bbd9a3376ce6d2ca944b81a1ea98ffda5559bf4b215afe808846e0a330de906b201d6ae048dcf851ff60c620b95759d9b38fd7767fcfd965bae2f703aab6fd7983232607d5806406db15a44af88639daef0a32749a476a673b36fcfeb68437d945b2ca12128abbf3b2c828b851cd92d71bca34d3c40a8e941d7aed2f150a6abda3b50eadee6fd9f830acda277a3695e41168992d7bfbf1af4865db8c6b05dfab344a7d7ee6f6e5b0a38561cc9df34d502b6b6abe01854c66b85ac0f73bdd1a8a1bac29483257ad121c7453cb018d05ebfe43f74402c542a434f8ca69118a55fc277864c81dbffc20d671b39793cfc3c51d21906045120638e8221705da070300b9666987854048ce1b8e411fc25b20ac36e87a0edd9a057cd016e9d2fa6edf457ee87580c77e04f2ec51304131930315f4c082db96cd73a017c92e146f0c15d0c7c0e285e9b5b0551551bbbe673ed29f8b5e11075ea0dcb64b00238a7dabb3e573a73f2748277956ba23b1f35537a7f840f7e608337087851087e505ded5c4dbc575b8b76a70d8b5622ae85889831b85fd3504a8af8371d96411668520b16b054077bda8bd9f2d06faa7046c629948707e3e3b8a22490dfe6ea0a99eae385922f9bb8792f68bc322eccf33704e0b95fcfdf522349b2a5bd1bff17e882b17fc6cce8b52cb6699e47624a9d3b67c759c0c72ce93193df3fd665a48571947d832cddde21d14c154d5326207a8577e14973d6ff7cd36c39697a043c3b8e2b14023e122bb12813b31676fbda0d104f1d1202fb4e904d473ca37155087a14c45d86f138d83038eaf1c69c005c664cf456b53a0d698e90a638dc437fac811692c5cffa003e1afbad17579e4a5e22d92125847fbfa05676b0e3410447881947b13890f773b9cf2a1357e9f9137c0210ccc321ec497b5f42ded42c03b0fb5c7a5eb641e4cf0b329cade947912c0e36e13353d75ccf4cdaa0e0538bd3b40f4008d326d4f462dc4e02ed58d3eb7f678e2d10e6943366cf5c1fbd65291ce6fb65e0d0360641aec1efa24fe204218b5b1c1734af295d94acc4f4b7a3b8e7b2c820dfb6e703e2edf1ebbeda5b928508e9cf5555ce663700af42ec7e85e6a41bd01355bd7c69103032396b0d1c80787868101c8fb04cb992d53cc30627ce100090b51616869989fa8d0d6f50217a1ee6d6f7d889fa4ab25284d608f9b9fcddfe6ebef0533434f708ec1f52d6177eaf10b2d4b4fc3f543659bb1d100000000000000000000000000000000000b0f16222a2f353a", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + } + ] + }, + { + "type": "MlDsaSign", + "privateKey": "2c3c585610631e4701ae30f2fa3df0da7b607281a51396d7165aae1d3310295e1c8746f0f3a769952a7d563630b10a5c6305b86afe0ba7561a00ff86ce5d25e56c390a7a6c3f68315f27b772903c94ee23ef6261a7a7a47dc3910fd92a11b7c7cc1fe6e0cd04a942db88e096bb01f261a0e899da6b43c4b1d6512703ded070444b084a912490083410a14208881801c3246522170ea4860441188a01944998263008b00da0905001864504a931001812141425014909099850c992908b4611504665d22445e1822990284008876419100d101869049001222601198385513802db340dc13266191932184186d4b025d4142582c280c2366da0c0890c140d1ab16824308c19c228830665e0206950440949124aca2844201600a22046820212a2a844daa2116482048b1420e0986ca1402e08855012a540cc162e234266ca920da4b22949366ae2888de1248e9ba401c0348a40028463146e0388100302925c20261a016c031068c4988001176150148cd230099a106a243840c09451e3b280208889d8000e91162601a66942144c1b900014a9415b3651e028118b286d141042e2364289322244b26009b329133750a118714b904c0ab46008078963224524808982927093305244266c9896684c802c01491004340dccb26121058d02b48458028a03a288a3223118b96d8a066c1148285bc890100822c0b68c1c400288229209c14449386098b88ca114515cc871142229119641c0088a23c80d102868e1444820060019b7652400460ca06c52846d14c7051341801228810c446ada487201080e9a848d1c422e9a244cc110851980905a00210aa42d01b2440a20424bb428989201e3b8291c220c9b464651b04de3c64d94004551268e08136d0b2621c822641887411cc0219028904a300242964d044569d4425008080054b6612488105b049118124959862d124880c4326958244911910402236d83384500b164d22286c9108ee22608a30230439030c4169194c04c09a74081b201e3b04d02b590cc262e91b28d0a895048186c22c991c8122cd2a68061881143b2240c15450c10851bc26020448a10008802940050284649143243981061064e53844cc4460580262c1145729a200c62403024345124425002302d1b286ae1c2410c1420a4b825894225823281034308090026a4224a12b7640aa190a1c229c9808d208108e2a46c4c242e23022204a740a2106461422d23a76522a221902610a1c41041c8215890810c936494948593426d93a8401b2084e1387003334de0c8200c828420170a13134d43a07011b5251c952560206ca2184018282c230645102326132642514282190071a2262c209631601231a1b680d32240daa801c0908490a2505a36212481440a956898340ca0b00908999008092a22986d62a2404c424048120dc8481192826d5388844bc08554423194c64dc2a6459b224a9c1892020530c3b02980c228621805dca641088124999870241464a4385040828004052dcc328160a63162342018132d1c37121011460c114d22292e54826514b8600b8301d2444e8804100c326e8918408392040a423123979160c0615c3021e418699322480b320e4828098ba2845a4005033360ca220823174908b389a04821c180911235269a0071d3423203a88819078a1bc54c4ab044e4008e2345000a8304034569e1166811068d5c066d801685104020e21291c1888cc330509348261898502214082394451b0704d1c445d1244c922452540088149450d9b289232610d00272e03006601005a4408d8942715926808c4425093832c9206112898158923152a4504006611b244593b48cdaa804e08245211880d29008e1b041cc446a41146c4206720b110953122d5820042218420c04040902504ac2654b82094a084e0080452449421cc5655800864b226088068911a164dc186124a56c131984094646039985e3082d1449252448222284811006000b080211464a11832014886de2028884a48013460a4c302493b44841802d22b3408ca428234812da82694410051c3400919828108930d410024c026a804285db886463b08d8b4085c0c609e0424de4a0894c809011c22c01b64819802118274e5ab09021a32d02926d1b96010a356aa1927149167022118898986101452c1c07401242680b4245208124d3322909a981cb0262e3c688224565acf0d59529a090baeb7e35e50fd345d4c8d8c6ce8ae0c80d9e8799209443b076d0d3c56fb1a2baa1200a261ae00d346495b13b6a9725d3448790e52c17d014de8d94497135a868a040ac57cdea66c31c8b4e8b606dd0b8c45e04fa7037095e2e2e6ccbefbb76e249c809647b52ba32570476c25df077a9a0e2d691263b7b416aed1ceef1779b3b12c8e20d2b25f0e6429d865dbad2f461493b24d34a7d914641449e29da49bc1a8a62c251dda1ea4d83a4a1990b6a1f87cae0cab4984b111076510da1e1a80b67f6f8373559a397d60d972e4d46ce0aaeaf374cd7b7478d54007cbd84f59cee89cc60c11a03bf8a080ab531d518fbd79915b43d835fb41de1b9ee20d1de6e51b8c271e04e6af6651c4396245d36b0edc07d612b51999587fb61b25e7d9cf627e0ae4a4d745a6143f2633f2e4e9b65dcf936333f329ef08a2c165235cfa0f2519443d3c2200ce1cc970da30a4be2a07b77b4f409644ad9a6cc1c290bd020e54799c8627c8471c5c275e08d6436c9a8607272cf564d1ce4baffa96e7c6256d258334e96129b5a3af9d471ed18ae5625f6f240557d19b1673d8c434a48d26185f8924b14248040dfe6f2b79ff3b32777b6ad044c651fb7b502cc71dbe517036aa0d3bebaf3ac1d8889cc2709a93ddbd1394f0eddfc4e6d9a5d2f8d745c62526ec64f436dcea7f4e721383553773993b2eea170067b3a155185f327135b7ecee3291e77145b2e21fcc57f4e3ac60af4ba63a010c3da1ea913e678ec1c35c1b2431b6ad9988442bfeea5b1f4e07a25f6b60625946afee6916793f7facee80b618eda2976775de25326524e3165240d6d1f5e836042fb113e2c6014327c45da9ee9b8d1d59cf6f960858afc23998471f2518b93c5926c1efee30fa757f928a2bb393ccb08dee1e6f7c4fcc02a4678d2e7490d6881c2a38bd15e7476b9f40aa990f0663a6032ed0e0098139e5b7d20d6547f437adab66acac85834778fbb3fcdc38cacd85bf73933c78651461bf6fde14a5e862ffda09ebbb04e041574433fa2dfc3943113c87eceb9231b4b68f7a94efc5ef9faa61499a37192149b9b1e8f29883126fd8ab378745a23a537b9d0f3f699feb99742c614397a1490f0ef8740f85d04a5e6f75839666663675ecfebc00c8dff749c81d737e472bd389081f5bfa76649701a06389bc914207af4bc3d65d3119d8b19703ef88121f3b4ebc3a488c02a14a7313a663bfb6e0a8e0b9ed61db79f7ec17886eb1de56e7afb99788487d9c9e9c819649de6ed5062daaba3a6f3123767c848dfe442c4d5d399a2d97f37d72c8d3073817e5eae8aefef0af461acd42508492b672c6bebe448f5302152586b1d392f54a51fd0b79c4ce48361cefa232cf3a056d30a8d74daaff594638f128e6939c09a8b4a0b796abadb178a8b84f96dc3ea439a4548f555911371ba08765a712cb55e647a4c0aa84d6b0050a6794124d3ad6ff3318dd03721d77d72d34b92b55560ec422f58ad23d4f0aaa0021312c82bd3f6373c836b382d4d431073b4576ecb50ab70fd81f313febf05846504f804691b11b160c1f88fb7150bfa924face6d4378d20304911cdc521a6578e2b2479e226471b4813afd5d8f048b084fdd7497d95f0e909f8b04dc13c69f30f3266db3759684dc58685d0c179b7f0d5900b2befad07010b739ec1e11a67b68e8e6cd4c8b7b094d6e6ea822be200f1a82a99f7ac1b4d13e26674c8bf806d240bfc4bf08170f5078c6e507e83b13d8c56746d0e6a1aa67d8846cce6d3d63f73306bf365e5e521ede5dd695cbdbfa7e8ffa1a35ec01c13af3a1b4c06fb24f8be7553410ef07e4e31b6098b98fc86fd44031a070371215d95ed21ac23d5ef00c35a57f4fd4b8dc56e743388ad5ccbce1db625f1691f1143d81a0ac21c68b7490ce96ee888129c2dc0be37f6f141eff52d13da4e9fb1994ae2ee5e7d0fc2d34a49ca300707812ca47c1b06228195d5ff11892339725d0a71f69daf06c4dee0f2786a53c5b4d66eed7ae2561f2524fb94c75e071fcb899f52b78428d7a1fe217944a7ba3b44219b7a27ea29771f9666157b68355a81e48b697ed93cc745b496acaef59d7636ead9b4994ccb66d73d7da4cf5761eae27c2e03b3ee864fd9b0cb40b927c8e45dabcb30e716b930edfeb56a3d1080807acb4b454a1d570890256de3aef5d9e5e10fa9addd1693013e674dadaae493fb6459c8cbc68103a58ee12b7d7f677cc9e54856f0e1a730fa4909b811f05b798d46213dc5312b9571d0bc7a64e181050585eb6adadc01826322cac54e632ef170bc9dfa269bdde19a7036f5468bfaa01842454d5407562b4d080b869d3447fe46313f9774ba585ee808d699be31d0446b84f419d03f8b2e5de6dcc53f8f46e641c033d6d492fce90f623716f0d49bcff2744873bab8f37e21e53056dde0e87f857cef1de9f57586ace4df64080ad2ca13b4a9f7c419f9497b040391bb086ab7f8e511d106abea60d469de1542759cc7fcb757f07d6e9872b3f480b34b65230b5d4114b569ca6b0d5be49ba4152091b3902cf179d6ee59241b42bc09fc4055094d062f38e96f8cf1497e85b40325785d8f93aea6ea33f63aace2f1e531d0701a96e9e3a064ce07afcb5bf81f6254d5a229737b5a6938bffc02aead89f2f6f0bbdabbd4163286ff1368c971a3d3bf8bf1791d73567b0dfc73a91837aa1dc3ce0819142f0983f6c1ff3ea9262fb85299b411692990cf9f9145450e31cab16639003a30e6c72f72e0b497c656912b1ebfcb138be9186ee38739af0011de5f18457e3eaa0adcbaf60a52216a6580642161335c79d8eec7c3341d6a5695d2c1e6a5a97b23734a83916d15a9dbf1a8076fa3763fd323f60425e865e38c5828109a10bbe2616823fb6bb2f645d400bed65b412e004a04967bb29af9f596a2fc33c60b67287598d299b874d3ce12ce66491a32562e4f3a4e1bf8f22ea56221475f8769b053d674e20475646b496b0d9c42424227c0ee7fdbb674cbadf399cd1c92181b2a2e1e83d7e396b1882b49515679d10ecf7a84d2479572cd3d9fcecdd32ed0c2dc165c2916514c5bc3d55ad73b4aeda82c5de4df3bbef6671fc710d76dcb315dd3d861d4d6440676ed65640e841828918a578f2ee3d56f82a6f4f74308f3045d4b3253a148c2d2a28d1e586e2085548692ff2b24d1124d95e02425943c2e04cfab959df24aad47f76600ed2396c2da87d156baa09bcd5e2e72403e749c92d1daa0193cb1c73884f5b65ab6778b7f57c20a28dc7a43be8e0384cfa171749ac4480261a79dfc9003ac4c596fee2d281a0be7d21a11351ce4c4594b960f27ecf3daebfcf9a722ec64889b165ce51249cb77c24f7db3ec2a71a74c70f5a1433514bab18fe189134fbc4c3f7b729f24e3cb00666008e5573c5f0d5c09c8dcb2e1881b6ebd88e9ee7c3cf61249ee4f5349d5f703d4585b4e2caa6a19ef636e19296e404edee92538342eeec74eeb2d843162ed9211be42e5d40ae0c32da00e3d728fae3ef7489a9479889d4e37864c8fe7206d1b1dc1b42115de415a19ec553a86c1ebd2b191187100cd4d8465476e1a2b6379a95c8591370488664b062275c3c0ee507c89c840d65e78f43c13b8e691c93e286b97e2f4997b85cfda579a678d89c7eb719ab512310979b043ec745ddc8a5995b6652c0bcf3af6062a799bfc36b0a2b65fe54392d0261d9ca122944940f4956886dd2cab5d091891b57bbe87cd457207c41bdb08a5eb6d7da8bf7ca3f008b2207de9b0dc00cb3a4a04a043f05400ee32067bf598759a114458aec9b6d51d4af219e9fcf1cd0fd23cc0108d9fb61f12784a21c9892320d7d1b9879cb25d4f92950fd870cbfb05a54d9f2fec35d98bc0ed3967741a7a9f79e1ea79bde9f33380a7e680a0a8ec077385b9324d48912ceb7bc19f0528a1443f400723fd8c14ffb5751e983451b4b91eaf61c43dbe791a0581595e55a8b1913e6bd8e9b1c3f9c9a62916faba027d5c4819b2a6230ecbcb077d0074bce39359acd695d889308199b7db29e9565df0c14c2e9e57f51d72bbd1cf6b660c3cc6f8e6756429b26c5494ceeae041d902458b8870e07c1080b412b1168aca2d4d07adad04b961fa61ca97f0938d4ac0596c6639657aae7f6cd8eef43804e9c2fd3dc1c78f3445ad4f5bd9a2eee0319e28e6003d186155aea1337b54e31ef56bf2c007fa7fe73a4d9761dd2867205e874f384044344bc361aadcb066e14804e2b633c4c75f9bd6a1e47eea5c289911e8a1855db7e43df67b0c9ad21111cd4fb065bdf96ee40b1cf05fed7a14ee9e662cb1e7b0e69113b2a5f850025724f8e99c8f71f9d432f9e088eeb210d1c141b446f7736a8f238dc20bf008631ba24000362969ae365c9b4d2fc190ff7ee563f9337ea9407721948ef07227d4faac6a4156bbd5cd14d06b38b3d86bc922fb716db6dd6e88907a373437139e54ec6df65b8260a8980e3fd6833797dee156d09f08b3b0c930754682f0a529798a8f7c9e55a7f0aec50f828b65167fe104e7acf45cd31f84166115c7bcff4f2e9a781c5c243d4164a1e7a80f668f28f7c43d9ce955fa38f7b6b4c2f4668ab4ee31ba7a2b25813eaad33abf77a08f095e7b4ebe08d17f1690beb56078e362c44864d59d599296ee429de0e88ca16864ffb6f0a025cd55bf237f1a2264a7cf67a29cf4", + "tests": [ + { + "tcId": 53, + "comment": "power_2_round returns a remainder of -4095", + "msg": "48656c6c6f20776f726c64", + "sig": "464e7a5320132ea24884301a40e0256fc33c0fb161cf326527f1af1a0a46882adb4b06a1fc5c98413f54e7e9e7d1ac32b064f091e277ac360bc1d9cbf7fb6e5ef67802239cdd9f08e95ab575aadf75f5b4b88d49c69fd6d0936573cfc3e7878598d9c4a901e65c1e6d3793a87f9516ca263d6eb8b0e39c57d98bd2517a06a162290b036fc24837ff0a7b4c95855f6c6f8c2671f7ee58bbc3e5d0470bf514ae5907d2e8d7adb5b2b8c8135c4375e852163dc190dea3286eb02699957cf426f70d33a17e33717594b9af461d9c9d29471d95bbd1e726f26098af07566df75b6d5fedc0e1cdd96a33421e2d4d9efd7a9b374f38305d402b633190a673cbef44de8cdbe71ce6aa9df6c2639c5878730d9be5aff7f44f1b03211d8078707fc75ff77b0466b95062c23c428dc3380441841b7f75757b4293ad58075938047224e391bb3395255bf046719d8b5e5cd1230b65cf788356db072ae488f71122f65fe8f7ac6370d2cd95712feb7a6aa2ffc7c8a24afb8d95f6bdcc7822d4a9778382c1aa15e2106c528fca1b31befe69f0524f52cd41f6e41b5da7b91ab24a99e7e3ac7fe7572fd3d4661c8297588eb508d67e47495a06628088b90e1cfde19f92fe324c5c70146e1199480bb31a69ce577fc1b9470ff909d7c6ce69e6e2c6d317741d74567d92db2a9c1996bdc2baa728df5ae41b8d970913c57429212646c96c9cdb21c97443cb928a3c06f8dcb7f59a933ed59d28f60a1e8bd9c700d1919c7c7ae344df61797372413e46caf6b532162d5e7cebca6cb3dd23c88067073adfb07a09bd2e5128327f7990a9ef3901ee0a4278488d97f0ac5789550e20af56351cf699a45dfe5263ba7b40eecf21a661aa7ae0c3d5cf42f1138f5c1df2d70521c614586a61ddd0d16033d066e525c0a68aaaa4419b4152166d355ae8cf38037f3fa4004ba8a423ecbd4b81e450389735867fbf21f56a266a6cd17d145577582548f2e63315f167f0907243a482e97b702f3ddea23be2206f3f5c7a93c08b0ab751970c31b1f9efb26714f766ce1c3b2a0dc8b10f2f9219e40ecd925cd01d3d4771991eb7edb79de8ec0cba5f8bb33d5d0c74d909996bc82ff9730efc8c22a0aea80a751e98ed34c6680ec199073e24b165b8eceddd5b9428ce859e7a0447bd89e3a089c24c79734a61ea509b755291ec08944b230f480e8bea4aa9b21bf54803722a0a2f8f92e29731ad36ce4a3e9c775e287f53ca236db902777aca7377daa6e587268d94a6c934039d8471a01a59686ec99a79fe41af6ec026ff697a2aba6b232ba97b40203b1dafa694e5daaa6f491000a8efd2245eece944d82876148a6ed4fb2cd04d4ef4205531e3e77b5c57241f208c8bf225a7d44aca0e49830d1cd6fa59f72d2bbdf9b44846aaec44c6aa053df94f3a44e65d8934e2141d766170afc43bdc2b6faba24ebed9285c9755309a68899f47686248152ec59bbd48440f1a1491724057e26f9371766e834e377560bee17d0f12c2415a3ba05bf93b46e4997e22f2e78d6dfcce53ca1f59c7291b32521769a8df444b8b4c4007c77dabd6696ead56e02cb1952f35ce5cd4f2e44c473ee30528f75a31a14607514fb824598caa963880d8f15c15fad61929f244a3bd9c95b00fe034e9659d99c7fcee940c03031a3f7db4ba337acb0c21bd9219da68141a520606b62403e00e5bc912e5f748e4a3a8ee0251bac5a90a76d46224655d1178790a4530108161e99d8a08b5ea2005cde784e5d5b91e1a89a1dbaabb91fa1f9af88b818f556f06df5429c7ebc5fd88d6a31f91068ea4fb2d040e9822cd823c351bade4fe673a8a2a6a6d0a0f6eda7040e9be3d63f6c4d10d9edf937793dce9402f5ddc0d8b582819ebf361fc194eaee37e63fe018be039efdb066aaaf4031efce5efa3c1957e45edb81774d8c3b20e4c889bf62868e06202f783d075d1131671766b456961909fdc3afd2aa746a2e789e0abe21f53dba71e66720f594302d8155cef32520be216c5236f8a865912de12ce816f1b54acae09fc2b1e627694f675bc410e39ea245b87c23ad94f4694d06138c743e232be8e0ce1c867465cecdb96816c5c4865914f8b05ca4b7924164e42c74c821b96522bb9009fec723b9dbdbba5af9ab95959e511ead97635b71425dfc8f789ee76290e8d3e98623da52a7853f6881139a14c42fa9f291a14bfb46eea60c3bbd2da4063a675f0dcd7610f945ff481f0b9e3597e22593fb10adc61c92441d2ede376519250d17d0be8d4ab5b9ad8e7fa70fa841fc2bda65a1e868ea95344cf3a47df7386518365c9b9a8ba994e573ad37a20df8f69ee78a5179568f48b57d181479d030f6a887a5a9e47bad88579062a1ae22cfb74787665dccb3c03236f078fb01684559f2351b9a3bd4da6f8f4c00e29e505ceb9158a7324b6b4c7683faf52dbf331e675ba5f41819ceaa46dbab5775467d24e9b9ce90a5163050cf9e55004c275bdb80c0d08227c28bc6865b6ecb5b13d29e41c2bcc0541f62b5889a22ad62febb5eae535a5b366c02385981d7788792b1d53bd1eb1aaad5ab81515c4c6135c38db778f9e63a640f72c9828391efedb8f5492ab68da66144f8cb888b8692b9e139e087bb9b9b4307deee102a7d2a24978a4b01ef66f3c59e4c031585c2c03c7c2cf00d710142113865ba54f56c50156b66e3f73faf200d16d535d208819bd2c67392196e3b5727dbfcefffb17372f303b1acc396d59b55425f922809221ea0eaebabd74cc39fc1992ae11f3e369c9fa26027f0ee50db14708a69bbdc462b05eca6c318463dfe38747308f366ddb40483a8d0b4c2a756c0275284a16d2ac5397a2ba52681b3d9099131c556c130c36945727dbfa008f1022fa93bb57fb62a339f4ae346d330f7c39da1123435cca61c99aee927fbd04d4a6dd50e3525211a6521b68016b04d5dccc4e72b92d09860657628f6e9a8c508dd509b775dcb5658dd3815d1a6581d7878142fc142fa773849559f6ba447eb6534df87abf0e0cfaaf5636d9cbb3a7c994199fccc76a544f5d007c730b17681769086f833d02226fa9b7f02be2d3d09250cf22894b6f6e321980d0980d6664c7b7bd8093354cfa2707bbd8c919188851b7b5bed277f8becc976bf44f496a375827a8abbdc090598d4ee7f9cf5129dbebea74435239dab7e41487bc82cfa8622542bdcb4ac567323bfe0fd84b3b58833c30272466458b7840ac0a0f6333ef1b33f6a67fb325d9db289bd8b6682aff506d4f120cb65b5acbd703852e224b0a6a093110b3a0e4efb26e74c01a50bdfa2998d4640af5e8ee3fba7fc0a06b628b9e2cc83a95a6f6f8486ab20c4154509e75b7861c7c13bf2e532305e94b139157a529f56bf025a299e1d6f5fd8fb590bf1e7831376f1991e6aed5a0c852a802341a0b835b90077f0c7f58043df6a0b939aa20d3ab61177886ec51b17c369bc3e37be9174cd9eb374e9d8e13c18a729a5023d8f37ef73ffc83b89fa16548a35674414fc31b3056079a32c04da1f45b757e556acf46dd3b6b8abbb114d96aa8ad97aeee03a18c1a2124fe247487d764d79d7abf5f7bb98bcb356a2318548521bb24272c61398d647ad8818c68632968c743dc000ec39d7d378f01295708cedee836cee0e5c30deb7e8337cb5200e362d6fbc78f3d01274c8d7d0fed6e44f1ee2389e26dc25af091495dd62595be71c0cafa1464d74e3c31bd2248159eb51691217500dc841b2af9f4fb910ffea9acc83c6bfd21d514b9d30fce89800df1fda381dec4104e53a6126234fb098eb481aa3d76292df0aff10106d7cb3ba4957df94977d171ce6786242103ece403973706bde10bb739869b78cfdb56d7a00879a3e1df5c3dbf3697d8d4e5f164a65ddaa5c9a1c8d3829804aad24df3ae7ae72ac30089afde1a24f2baefefb192e5699b911d0cd6a04bbf1a567c7b1051eaf99dc83ade01430d81c33ee7f29fe9e1729ba9a5af489e6c02ad9788814b3442dddbf17acbf923a89a0279441e86ae88f0505f785be9bd0665437be47357910d82c84dd39f63f78a08c9eb153943168a8d693137c5e3a3e396f58d5a88ca232b43cc835b18845e938a1822a39dbb058268782f357fbe40ba11943868fc3477e9375dbc22ef0021aed028394807098f95d5ff2dc60dba661f24019d69850f29ddbfc2f27f7b309311e57b7a01a1dc70c7b56f12255723f2987de340ea5da986edc3918ce4992e1fc0d04fe5d51e74dc80695da18a389f2cdd941dfff1a22a4ffe6a2b8e2f6d9ccc91cd3df9d9b8c79f5c80e35d9cc95935b49fe0e9d92063782673327ca2c63e1b69baa727dcca26bf0f7f427d4191f97f2aff9d3a46a61f979f145c51d48384f94a07e23f1bd0803ab873daf2f416b0d6fae2297533ae0ab27256c4dcccffc0d47c0a9869bd5ad455a7af546c888a0a88e799190d4d6e0c8a5e4c3db0b5e0fa9ee5119a2ecff2a113a9c06eec69413a524e77813740a21357550fd617cc4d31ed9d73439cb0925749dbe32206c4e43fb257204a5e638112297bf8eea6ae24041a2e8b20222ae94b1b841b92119e826d17eedb604ed89e419ad3550ba1b3c056f10495971c97e31b334c37f57c29bc2702a3601708c4ef7f5925fb66caac4e4aceb1485f5172c85ae0c5fccfee7012b86b348e75be43534e97b74f6a737488b30aa41ba183d6e14f793a64c284a8abad9c8d4657f16f546223a18bfb445a10912f37233d6c52cfca14e45c5c7ecf9ea15ccf0e8a5762b722f97bca4cec7a7a0a886e99b6aa3d3ea2293f48c94a73c792183cdda12584f75d6aeda3728f9cc8597e55bd6b7b56afb420d75f1f9ed918c24a8bf6bc6fc7055e86618612c22acaca1d21bca5d636bbdf3994c3b40d15a9aed5f9b6d9d76706071f03a29b3292ccc3dd0089c02a1dd929f5517c0273bce6e0d1f296125a2253e46921f79cbe146c9db8364402f13c04b6919a3ac0d645f0e4230c484eb30534829eb9b583f8efc31022b8c4c7bf573f87964f5869c07e1264d132138b9c64303fcbba0a79c710cf89dca5da8397482ee71e54abd86ebef7fe5c354df160cc9ee719136507dd6ca0b0e669303a02781ec3acf33541d5bd41057be2060e5bf88ad1138ccb14317d27a2ed2d59f9f89742af4b6c15056ba9093d485fb888f57e17df586b4eb3257ce74be0232c7565271fb3a9a55a2be79601f66f89156a036cb4933670ccb64f8ab15cd4837f0bd04ab3178eaf2fd99c8ff01d9ac03636c8b219985d207c8ab8240cb7a92bb4964d22191d14edb8c9b98a6f35bc6d9e598a84f2a484c5dacdac7809acc10f1b2071aa8a2ea42635306f95f005603a7f3943b12d4a9787c7d9a531901f39c2bce3b70b6b003e18a39a085284088d3570237bafbe1eb6633ba13d5590d4072855ded0ef47c76003a3a85dad2e2f1eba53cd4b455f98bca7a22df5a4df093730f629c27c0a4143734285caddf636475d021712b360280e0acb905f0d7321edd4c7670a8e782d2bc5aa68319d1047a88d64f745b1906e4d68a1cc72a3dd4b4175f9ecf4ed1533ec1233907794205797a7ee43d8ab225d925b6dc37ec5d3862d6f14dcafe55558e37b2f93e4f574bc754bb86312fa491cd9da58b6201b537e68edd313dfaa24b3e226c4da6022a0317b9ddb4a7d05ae02629582c87667e3d2f5b23602cbb640a253a01bd4223beb272a3cdb290652505e102e91992593c77274db30f8c1e063808855649af07c5eb272eba50bba967b3f929c239faa20e9579714c71b301c593f76a5fad42ef79929f51190e4efe011ba1bafb24b73c09644744516ec903f5a0e2e14090e8ca484083d160f7e9c8755359d990a3a5dba299f0b6b629fe20a34a4f123dd21c5540fa5a6c466a5683d942e6b1fc55f03f984512c1d2c1a90fe7ca7318bedd48307824cd04851873e0fc9610aed4b5865828bd621d73cdd3b10fc42586c74b9770d5ae9fc591f8a7cae5d8d7b3c53983443079ae1e3fe0543ab9d90289ea15d1bc5644c13cc3be24d00f40b9ba02492ad906fd25dcfccaf6d76da8a737e4b92c32f645ad57a467838f9f48c10daa094675b813316032981f2d7949165f3fae9d95d9836035009989a27aaafe1c8af0f25c3e5d849de6e1f9f0923582593a88fa17706fecea8276f18173fd82dc64d62bdc58657a805b29ea8e5c1c78d27b5b576652a7cde684e3b20fbec3b08de1330784d9aaa480b7d41c46e4d0afb11f473ccf9d379ebe9a3fbeeac3ecefc700d805993bef9e6a3b960d626bb7ce5c81889fb24bf583548caf82d9ade8e09bcd38dcec4e82f2d5428e71acd405c2bb6f3f7ce179298abe46b1dda4f539a4c9c8f7d2be2f97b22905b87a5cc7deb5a755d9834fa3dd5d08cd48197badeda3acc270a1e55ef4935099f2915fb8432d0dc02115da3f0f5fe43454b4f547882f62d778fa1d41893b5e1edf600223d53cee0fa205a6e72749da2a8d6dc0134666a7993f4167b82a6cbf800000000000000000000000000000000000000070f141a212b3238", + "result": "valid", + "flags": [ + "ValidSignature", + "BoundaryCondition" + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/libcrux-ml-dsa/tests/wycheproof/mldsa_87_draft_verify_test.json b/libcrux-ml-dsa/tests/wycheproof/mldsa_87_draft_verify_test.json new file mode 100644 index 000000000..8a7bd27ed --- /dev/null +++ b/libcrux-ml-dsa/tests/wycheproof/mldsa_87_draft_verify_test.json @@ -0,0 +1,882 @@ +{ + "algorithm": "ML-DSA", + "generatorVersion": "1", + "header": [ + "Test vectors of type MlDsaVerify are meant for the verification of ML-DSA signatures" + ], + "notes": { + "BoundaryCondition": { + "bugType": "EDGE_CASE", + "description": "This case exercises a boundary condition (e.g. in the signing rejection loop). The verification algorithm may not notice." + }, + "IncorrectPublicKeyLength": { + "bugType": "BASIC", + "description": "The public key has an incorrect length." + }, + "IncorrectSignatureLength": { + "bugType": "BASIC", + "description": "The signature has an incorrect length." + }, + "InvalidHintsEncoding": { + "bugType": "BASIC", + "description": "The encoding of hints in the signature is invalid (e.g. non-canonical order)." + }, + "InvalidPrivateKey": { + "bugType": "BASIC", + "description": "The private key is invalid, but the verifier does not know that." + }, + "ManySteps": { + "bugType": "EDGE_CASE", + "description": "This case requires many steps (e.g. many hashes in the matrix expansion, many iterations in the signing rejection loop). The verification algorithm may not notice." + }, + "ModifiedSignature": { + "bugType": "BASIC", + "description": "The test vector contains an invalid signature, generated by modifying a valid signature (e.g. flipping a bit)." + }, + "ValidSignature": { + "bugType": "BASIC", + "description": "The test vector contains a valid signature." + }, + "ZeroPublicKey": { + "bugType": "EDGE_CASE", + "description": "The public key contains a zero vector. This makes it trivial to forge signatures, but that's none of the verification algorithm's business." + } + }, + "numberOfTests": 71, + "schema": "mldsa_verify_schema.json", + "testGroups": [ + { + "type": "MlDsaVerify", + "publicKey": "5a04d37a8c83d373ba07da5cf96806002e3635ad8add42ce6ee9902dfc9a1f27ca9cc3712e5d8d372f72b5e2484a1566d683a94858b68bfcecd2ec128e27353bc69ede96138b633b836b3ad60aa053731d95caedd09a2ddcc7342602d0579abbbd57c9d50abca96a029852a2520ac258eadeb3420685734fbbfc38b1fe19bbb18b5a4bee715834c22f6fa89f589010949d5dd66163e995e23a48ecb28fc54756dd54fc22a940902bc4252bb5d217cb6babaf196faf4d340d5c181331320a4f641731db14111ecd8b321d22bd136353ea74016cf60acbdd4800968edc1f4fa6497e87766161c61edeb812b7d09fcfd7cfd019b447d91452907e9c3e4d8f611b218d25796c091b7ac57f0644fd0f108ff27a9c68a3a733e9ab00236c8c39c463beac5dd031719b708bb677194afb38f05d0d5aa51ee25de9a2159297555cb435b3138889a5628febdbb0d795666173a4b4f140c3e97b8f496c876e5437d14cabb9a6e9350e3b2091d600c77e2f9100a296e0884e12e8a39a9c64368136e7e7778d8ded66d1ee3bdce1e009ca29498228e9a2b4af6320a0debf1e3471e6d4778d1827c551a68a25a756505004b448304aa338843eee2463a18fc83c2ee972a140dbd5080ffe09b79860b0c0702d033e67f3111476bf58e0dd052af2cf522a0190c220270c8d0b8e765cbfffebb1fc3a03181a9a0b7f1a422b760a4e43efb9778542b011ed74abcc918ddd576eb31cc7da4d4b61115682f5e66a430a90665232152571849c3154a9b627639eb85ab5bd3ee7f01365ef1e74af28b89ab240ee20b43d388bdde1a7cb2d5bdfaa80301744f5a4c7cb2a4da23290ff1de44ceafe73028c4e504143f043955946e3b58da5f66c2e9a8367efa2905b57f0e6c02c9c918c6aa1a0f83ae38c8113f342f35a8ad2430f8fbb2858f77c20da47abdd772286655b5039834f5e7b61f1f4d59c1add1bf93f0859b7e4eaf6e39b5978ce322f0b20ffbffc87361f8f23632a5532258d7e4113a0a1e311bb7a4c6b8ef5e3b9bedf0da5fe08b2a49b255e09ac5c9e9884e0f706199214be18011cc93d845e181de208f071ce46ba663fd2e13a8bf7366054d97c6c8c2c9cc03f299927dfb127f5845a44a1e13a0c95c9287a698d5f7a10fc2c91f454ab0e58d7d7ca6790063ba3061cd324df4fdffb87e735686017357dd3535068015d8460b650680cbebfbd165bc3dffc45f441b004e71dd8e8d42e3aec09357e9a3548241423f93d775dbdbbb5eb29a29e144d2c1b3f90785e5d9f44def8fd65f1e731746d47e88914fdbe758a8a8ba731ba004141f8de1a4b4c3b757fc0697cfcfcb7e48236fea7ae12a3e279c85accf746d363b6735d6726a32f8db0ea04368917b2decb75b17332a5e3dd3e339450f83377698ec9599cb2be39d0dfb7cae50f6d58f3b8a6e4a02e4413c0c1788855e5461423c0b22febd0e5103a526a045bd051c9374d606d3738130e97fe3b91eada3c19496e44a6506f5661aba7ea1f97b52f99d7c3f08b7b250c417267ff3997f38d7d0a02bc0d7ac673213fa9e6515aa582c6808f4819a47c8f9ac02ff7ac3be61fc792b004fccff7dd2f508a2a154401d2573c3f79ca4318435d8f0bcc46e4fec20106e58d3af25642a2b8010aea39d92841fb6e9db0c2c6756c610914c9db72eded61e18a07504020b75fc469850c02c2550831918268fa0e427c389edd1a0393bdfa8233fad01528fc9edd91a10a4ab955d3ac44dfae1329b0170a5ea977623b68e46d707c71e5535ae45688e8dc44751e5e52d7c2f3d0c7216a14d3d45f1fe6e28b7191856b816ee2204092e2ac814974aa86c09f09451fe064ada03807e8306fb64912ab34b5f2f915410fc80e666bcd40ff0dce2acd1a5201c9d8ca14524edac734580b11f7054affbbda55e9dc9171c26196c88935722f780b5bd235172adc09dfc49f5fbe2427381665cdff92c2b1513c21d85c30fc6f4392e6a8f6f48f2cc474e2405569989f47cb9227db393989c88f7324b2504b9a868ad8c04eea390e4180b7b5eaf8ad028e3cc0ca6fd958f6a388cce507416f952bd05361b72329a97504855708725ecaed1c8288b1fb22a2b7aed6e2233c7c9f3e6e0d50b0f3b13f7a541c4c608c76073476ea18a3a46816b8ce867770e88fcc186a612026513b2b2d6a129758c8ba402ac85e0e21ecfcdfed34acb6444c962fb6fbb029c8a51422f4a31a200010cc1053f85d5f7833e12a8f19f497102d47325686a8c2b126a4308199879b1ef86d0ff97099fbd06377a700348a9109bc0a0dcb5cb02f728ffd996545b448d0f4ce3d1668017fd35cfcd011622f276d0f30061a62328c4f444b08d3b9b2ab3ece85881687049a39696a087196a0b6ddc483da62829d9e148f2fda9bf5651954af874b6e0121e52c2095a524c6f0804b997bec4a2b7b74f46d82742f78e327fd2c375e272e86402f3409a814c55389047df0e23742b612d545b3beebfece6c94495e3e651d74c7cc6b775e100bc9f10d68c930a72d480623be635cf47523339ad7c7efd0f234d06a5fb3bfc3e034b4eda42eba174d1f823c7390efa6b1abdc10acae3c1bd44fc20e07bb24ade438603c93ae099460d3443826cfc12d2a084999a886b2a3e76e637a8fc47c85f72bafc1718eeba5fb5a829f177d92377bc7d353ca3bb010830b5abd7cd95f5d2257b1b81befd81e8d3bb17ec9e6726b2f1b0f3b0a3c800f64a92a976efbd158085e30f7173d351a9bbfe3e0de4d9be32bfdf48ba6aacc3037aa07eaed14f2aec561d41ad680617cd61b14144c82a5aa14e0e32453c389e4237d95309a795e081300215c3813ef719b5786d06b5a3738a74e7048e7c42809f5d24764860f28da28fdb012788857804a9afa465abb237cb36e80ed11bb2f33f2ab31d461a934011f5c3fa3d8d0b9bb9950ad13d1d4fb3fdf2ce85c18e9b7689fa53e5c328dd74bde56a2a3aadc1762dd52cf0864fadbaa267ac0980c0df6c342461262e21749b395a2069eefb4d8a6be1eb72ebc16a2c7a80e56daa50c66f3efc134d1f7db426a1fa30a5aa8e0d9565ae4a4f157b21312322fe97196e3ed0164add38ad8c9818d30bb36a2857598a3224e159471aa1eab5bc00dde39cd3def50a275f90b2876435d02fb3b042c9b4fc451c4931a913158e75e2cf2f4a09cf7997dcb6888108db31500f9e3cb226382366598bff7e3bbf9b39b4f3a48c62e97e6d5ec899ada74843948a40a28f8dd11b2dccd46eb1068b84631fa2374faea3e04e65c59d387048b353d2aa9eca5fc03c1f1d615c158e2d14046bbfe6a6154a9697ad6c3c624fe580a73ba58d70e135075c4e230509af53493d9e7dda468fbafb0c1d4d9ef073d0681288cd434787f994faa6305798805471d1f29f4813fcf1cb4b8f3ccb9cfadc17c6e3fa72b678083960882c73c3ca815bb655b9c9cbc8a17f7f9895a487e46f883f8da26b9fd1749efcc8b801e85e74e010661a5ea38414a1c74f758d5c368d49426780f3821b937ead96deeecca4ebec92cc15973f82016a86736009df0fd484840217fae26d87c94b0133c4bf51b7306571c23934ed4401b54fc2bdbe1bdac4a8e208c40e6881192bb81c315750c867076bf0dcab552975f0fa133b80cb1fc0ff26ad7cd80875e0c2d61", + "tests": [ + { + "tcId": 1, + "comment": "baseline", + "msg": "48656c6c6f20776f726c64", + "sig": "1a13408d3274fb5f79a3039f0b7d693c5a9851fb97e67181dafbda100cf889ebdd724d8da7e22bf30c26e6f9511a69da84637dd2c751b8e26c0baf009a0163e96f7ee0f33174a57ed5c86a0399b8fdafc34e71859a2cd7f6a316d2dae35a13bea9e178a542196d0b17e3e5a3b182f2de5f255d7202f0a4c85c9ff6b0d4d821e2f6894243939e06f01a72d90f3bbad170aed2dd7dd2fc21ef44728dbe05adecbaf1f392ab69909c4194ff215e8c04ec5cd12b99d7b28112e9ddb5dbc91154e4a6daad7cf54581acb79c0424e2ffb9d8b70e1e46b6f47b6cddef5adcf84e9a53cdb69e45549c90e6df73706ac20a303d0c4f6630fc35c2b832c6205b6219913ef7718505c7c5b33d9ded3a8ff6bcf5cbc80b3155b9cda3abcd2d5e0cb055a28c771cf8dc9f6e0f157ac153a53da7ed50bac0e84750550a6fc8fb6696673c20ceac88b60e8a9142b4d3821872331876085427e163e4dcfbdad888e9c862e1293383dbd81af7910c87132dca1f5365f271e671fc2d245fbeedfdb861ebe5a8ce86d37164c66f3f3ae11d39216026e8a6d4fda4c7bfc6513d36fc042dd71fa0960405c122c918eb2b92e046801162d3d3c54c18ed6ff67248c9fcadabc0aa1286986cd748fec67b8f2c7ff0c2801925adb3a0d910506147bac34877d329996a6f0a7b0eec7a0cf352eb6fd09023d30db2b9e371eed224828bc10550fef7c5ff1747ec0ca7b61d1fd4594cc169dcaf14474cbb10b4518dfa848f056be3ff2d71829e261c87a786bdb0289b595c2ebee471af05e06f83ae00f70d9bf8a24d4a02e38e6c3ff7a2020c48801d2d2a28cc14d621bca6a92bbf6b36f011f7f4df81549e160d836c2b6959f848d9d265add11c4c6ee0f51d2f58df64f41152bb7c32886649f8f6e075e57cc5b947cb96038a91ebb5423bd5ec2432155ce2d0f1d81ca969c47c017c2a5472c0a53681e14dceb26b37e894a1a938c033cc2480247e958314d1c251b988ff9a4ed7f67366600ab031601e4684ca5d72a17339e124c5ebb573811b6a584b3d0f1bd040f816cf300aa66eb42d4c5039dd1e0b79decfb5199005d2bbdf9fcebf05a0088983ac6185ce87c95722febcb5b242af1c22973314b44499e8f59127cfb5e58a602d3ee565865bae0729c3b9f31c4aef3dcedf78d6bb520c16d7e1ba5a088ca5cc2217420d99c0613a01f3b75cecd5517636cb864b35a08a6639038bee0250767b9c7bb7d857b8fbe66281f607ed65561d7084e5b31324ae1d7c5fdea534ce4b6fcc7a69add96e99825f86aa6715ff2cb78a0c9281412c7c9c55dfbc16354b564382ed425aa1c8d2604c784fdc5f729c9cd5637eb77172367bd2a8ec0828d9bc03019e5a147d5de676cbaa0f1930603c942feb859f7ec5d70eb148c8afe84b30b3d778f0affcbad6302036291c6518f62e6577794157c985193d858fd602011145c49987a138a8d4e49060600d1b7a76fcee46bbb3241589dcc1320a6bfbcf587d325ba6aebbbe56ec5ce0111a80eafbe430a41a1ebd939583e3adec10f4f1114973fd0b1b0aa75476ec85da51592ec120437ecff50e9afe7401c96ef29297c667ef4da78ac7e1c8486d19faaad35d5904c07e164874f6ef634d5d8a64b076c3f9a37b3d44f61a63b4bb38a3a970d5091e68138bb9301d84db083de275e48fa7553c3e0f1874d0568d594857bf5f52933c5bc4957eeebd2fc7d3c0b90e4b49daf5e447e7d36c4dbdb4c118595f28d3a48b5665a7f995d3e179c96d975d47de5f48cd21c7a1b6a6c673c67669e67e23c3defe0672e8e1289636ec2145a14b6ed50c0b95ebe1b1ba1bd6b8a34a796ad858ab9ce8e678df7355f702ce2959e2c0a1831bb2d203e72cad74d0f9607a34bda435a521c850deee9b6afe6ae182598b74934d0a5d244bde7973cbe89e55a987cdc6cd54fb57b033015294642267b25d2b1016be3f2e842fff9ef1cd2885c99c0d504785ab1fa0f0a7a4828237ddace3c79e0c02dc9d3687c79e01a97cb634fd03dfad85abbeb9567309a21f114817a801cf5bfbd8cf136ddf535469053c43d89feeab902195cb7e2d3c08700bd99d663e65456067b64be4ff2a1572cb696881b3ca64c1566ba7b29cf0ff1cf1a9a24814631ccba5c83874445ed3690db166ec73edf7c2aeecccec9d1ab94187e88dda60936f2e97861acb5f791a67930fcd966eedb4109051edd15f3de10c99b1cef51e9448965a4a4ac8ed10649c5f54f1dbb961d001008b23bb942d49427e61ebb07a02d8c2b32e408f64a69b451cdfca5e0fd8665b800bbb9afb6a0e79bedb9499b14aafd89db80586fbe0166b5d4edc3f5c36e04557897699f32a760a93591eaac14202ca0f193c7c360c83e6dae397c89c2fc5a37883c95a36abbb71dbce6431972297c8e16ca468913b6ffa24d52eaa8d5858cc7cbf1c6d702fe3b236d2b12a63659ded31a5db3500ed37b1f0175af1117456704149506d0d4ae49a5911afbf7ddb6aa9f16cd23721f2ea6920da7bca939910d88237fdb791a90d7c5c7824241e1e62409ad398c64a8470b56fe235b90d85efe648ea33cc0a83ccb941f1cceff086b567c901a5e22e1d8b20af5d75f33aa2e44daef7cfe41d09639da5027e42e646c356367d8943f90d2a80927b140579078eda13a0007f1d3b90ed7d52a34c0cbf632f2177444ef2b47d9ffef295cc49033fb84ca058cdc07696385f0187544f708659ec24c7071c1fe553c20c64cf98ad01b1396bb1699043669b40e8f1b67d42127a2da8ee813ceed2beea7a5a972f55a4239b8013165cc11ac88e2f28b5f7333be23d088acc2fee88233752cebb5c30b6097353056e900e1079e38e389cdb19c81b3c412b9de2f4946b5676862f8473c3f001f7aa0ddec5ec5406afb1fba7c8aaa690aa1618c8244cfcfedc13a8a40f0297d475d43b83e6692c54c1991f3d43cbdb9acd47ed1b0162f83d1ba5a09d753c4d154df38f0042554cbfc98adf3e66928592aa26f330574a8b676d526e84dccc9408bc80d6fded421a66515c0a783600b9aec4304e4d00370e24ed26d1b432e50518f2a132edc1c9fb029c7f8bfb4d8eecf436ed795f31c622efdbb918afe47423d39147a595394cf3af726c70028fce9ec01c465f2fdb0790c372e22a4b826c339ede5cb9a453f228f21946ff3ab02e8d7e844e72b9441d681d73d7417fd5bf5c6099be70830e9d30c99b2b16486208462c6f8d85ee5bb323359d9a3bcf9fae11327f8e06c31c79d66d1ae8b5b5ccbd9bb6ba35bec9ce8c060a0226945543c89f40e7bcced95093c21688c90bb25078d287a66cd18fad9f9a117f4e5afc7ab24689aa797d1623a95e50f4abe45f2fc4d1826f34d54777ba2f6b2acd7427e29b67902a9de8e55e6db362e4fe55a6c24413d2dd6f806f73ed95ed8073bf907382e71ad277a3a20e39a21b8b72e04c7c8511407bc92d4a7fa09a248d96d4e0c8e98ca4d9a821d579ddbcc2c545b3e1cfde9dfa3e812e92c8f75a413a87d61f42f4e7d2062463d5509f3e55ebecc7f615a13c626c265fe8b58c8be96caa72d7a48f87e248923c3ae769f37c5a692d2ce17777a2063ab732e7dfe247f8435930c81d73ad29dbc7579d79534a43d67195d77423ebf396b458084b1140e9fa722eaff25a6519e4ee3a0fac3d239e1cd6edb45f7113fbbc3487bb57ae278caa7a275e344b870691b9119bdbd80c36042de9d69dba4947170cc060b9299a15796f459af7e3cf82d7063dd071fccfc9d7a8852fd61aa9ffd28986504c6e04a67a493e8a76dc7bdf110b9491b290992584ccae69c6dc6eaad78592dcf9b2439144ba4b9872f7c3b1772a01cb7d0a88192c74019b5ee79991541cad2e00c6e5edd4a14abd8c7b57cbaa6c017e703de5c4f6d551baca90f5f0036fef0f7699f992c9921fe3150baf6dfaffbd7db48ca54edc5293306cbc3df9c7fb9ea5467ff8a94f827d532310201e2f7adb89f418df5415d75b54d1f361fddee5d425e0057f320f4afb154f71275fdf0f328300a4d9482f852440b989efa676a420a5c0b0785fb26f7a518534358a8b991c987036744bbf50e32bb8593da4a6add0a5a055df68bf4bffcc23d17ce44b4e565b2224159c86830d87a0e0af467426da1c5c9e43f951405da0f447c957f1ee81b5a4e427b41680af43d546a8ee4057dce454bcb56014095d88a8f37342234588e526f4f8bf8b38dd461403744cc7bf50d702465657614169441a41953f5c535cc1da9ce9dac6c6cb1d15224c10588ce29fd78a53a25b96471e53796ee9aec16837876ebdeb663186b0ae07160e779fc71c8682c1fb4a236dd7438c30b4416d7d1e1ea99ad14e196134ee95a35b7ea46fa7f95db365572677bc86d44fac60ba053137ad91ecdc6e5494354fac09f0cc983973a773d23e78b660c85558a550971a34bf2c42cb8f1fa062b667246952e13012c3a5c72f099aef765d72c042283c07c019536ede021117866b83b71b7265d1731d1f2ebd9fb5b49229f67e3f9a80d4b66f4f8495e6fe8889bcec085a32c6ccc004e003b31ed5e2db2e576825111483049da840dc1cdac7a01d6d9ddd7b0a30c5dce8a74728ecb3cc6d76503a6655c6c6fe1b875cd62f53214fb85ad7c70e526907b8aecd5ce5e85eb6c8eb7a69331caeade3b4a82b94c576b2cfc5dc982edb92a0b526cc861384c1bde479b0346af9dc6517acf97f9045b696df80db3667d49faf349df78f178ef5a1f35d97f8fa30384c9d391eac4b56bb0020505ae93b076c8b9aade70086779fe3b2cf5625fe8c2094856fd6fa79ed960eb9e7ca74472c2f45fbf2af4575e6d7bbc748e197fcc95ebb5015e755c02b4b4ca5d118678c3bb280cede40ae6efb6bd19e8e016b49dfc91cd18c3a71c435b223fbd2ff1f4638a8b4249480c019121d1ffbfb23907e88fbc480d6785cb11d92307b668f4f2876a1e362b57edf21c58b992e88a360e62c0ec008c591d22769ea0f41d13441b3339c23702e3af631896c64d3d46dd2bb6345e0dd8085ec5fbbab57ec3f1507370efb63050e3129155f80c5733c63c70bd27a5d2af502676e96105212151a8f4af97ffb35e52b341e3983a254ec7dc936c8de7d752cd65daa271e58d2eafec02c120694dcd54e4b85e9d3b526f492e87c058db1831e5ead3617f0c08bd095ff2d397623bd8c3dccc8f7dfa213fa6ddeac0de78cf498b0240706205b7e162e1703fd46ea4f02ba2c0624cf095be6908ed16059a3d0ebcddd0bd476b75c8687c9229f3b1a9096a899010950678badc06eb72ed0c532445b83f53ff48e07d91c3bf8b841c55e8c58ef28e9efa4e272dda05d4a84fbc3d2a4a48bdacf7e11dba085865f81fc70417c84532a702c5932066e904407803d5f0dd37c33f0727a8c8b4d3702c36ae9d38e7bc01a758dbc5c269b06661a7c58aec7bec4619296c838a5a41627e394092464f79ffbf1a1c1785b6b74035eba2f5d72881fafac30490e29ccd82f1319f43c72b1d83c6c3f9694ca0a81b352e84dcdee64a571999c627f34897d8b24b9f78381e4706a46d231fa19480517f9eafe763f3290c2f41e8b2c406a97af83175c422b8c0d1a624bdd2982c16c0b6ee84cd37c78ee0e5d3b6c6b8fff292bd7aba7904677a37c73e399fe2846aea5efc199dd16666785717f057769460a830e336278985ee89e3a70673b342d11d90625fa5e3ce5854650bb18145f4162cbeb737402594b7e28f58cc5d70ea9ae629c39f9c13f0cc54111e182f53877ae3af7dc7eba68ac5d80d7658ae4bfd3b9d4232a3a3f071b568141cc87580b3bda9efeb59055feefaccdcbb21fdfd04cb16ce1739e26d0278008ca50ea03a286b689d44ef26ba5670d38f16450ac6d0ea6b9f683173ef991b66c16b6eb6bf63db7feb5001655b70531a2825689ccac3775110ee34b771ca6ae11dbc1adceeacce40a38594ab376e6d19579ad3977c7e4ba00d26065af0848cddd8a58a8ba842a9f4a0612cf6fb6eb9ec359f8c7e4e17286949bf11f281c6d51f3cfa8decadf07a8da911b7f60b61d8dfcab26530de61e6e0cdc028b2a3d70e02ecf084c6f2842a768f0f5f6f0f3691d67bd683690e83b3a02515055d56ec540051f16b71f4bbecc66e61583a9b52e63745d999597fb30b566293344ee60c479c8acb035e075df1cba2103894c71acebaa1818750d58a0d664fa751f3408ff06f54f98874eb5b9f452552a834a28f602f35c5b343822d905d90f7de02e8adc46492b465b6cead37314ba4d5e51e44a2f6b3183ecb6ad677c8cbb0df5ab2e420b046624593fafc04f7a36f15532c3e77b87e3b9a39cc39a5adba74df028189b14edbed70f623a0a1d8962a377d0d27b04f5e22f22feffd074fb6f20517446f46e68d1d24cdd11b6f0718c21cc7e2eec90370212437bf6992b44172287d0131c27556b7aa4b5e801556c6f8c96a4c9dbe95965757b81c0c6d0072c7b9299bed3e70b3fc20512357283868caab6b7bbdff811358dc30000000000000000000000000000000000030c161e2629363a", + "result": "valid", + "flags": [ + "ValidSignature" + ] + }, + { + "tcId": 2, + "comment": "short signature", + "msg": "48656c6c6f20776f726c64", + "sig": "1a13408d3274fb5f79a3039f0b7d693c5a9851fb97e67181dafbda100cf889ebdd724d8da7e22bf30c26e6f9511a69da84637dd2c751b8e26c0baf009a0163e96f7ee0f33174a57ed5c86a0399b8fdafc34e71859a2cd7f6a316d2dae35a13bea9e178a542196d0b17e3e5a3b182f2de5f255d7202f0a4c85c9ff6b0d4d821e2f6894243939e06f01a72d90f3bbad170aed2dd7dd2fc21ef44728dbe05adecbaf1f392ab69909c4194ff215e8c04ec5cd12b99d7b28112e9ddb5dbc91154e4a6daad7cf54581acb79c0424e2ffb9d8b70e1e46b6f47b6cddef5adcf84e9a53cdb69e45549c90e6df73706ac20a303d0c4f6630fc35c2b832c6205b6219913ef7718505c7c5b33d9ded3a8ff6bcf5cbc80b3155b9cda3abcd2d5e0cb055a28c771cf8dc9f6e0f157ac153a53da7ed50bac0e84750550a6fc8fb6696673c20ceac88b60e8a9142b4d3821872331876085427e163e4dcfbdad888e9c862e1293383dbd81af7910c87132dca1f5365f271e671fc2d245fbeedfdb861ebe5a8ce86d37164c66f3f3ae11d39216026e8a6d4fda4c7bfc6513d36fc042dd71fa0960405c122c918eb2b92e046801162d3d3c54c18ed6ff67248c9fcadabc0aa1286986cd748fec67b8f2c7ff0c2801925adb3a0d910506147bac34877d329996a6f0a7b0eec7a0cf352eb6fd09023d30db2b9e371eed224828bc10550fef7c5ff1747ec0ca7b61d1fd4594cc169dcaf14474cbb10b4518dfa848f056be3ff2d71829e261c87a786bdb0289b595c2ebee471af05e06f83ae00f70d9bf8a24d4a02e38e6c3ff7a2020c48801d2d2a28cc14d621bca6a92bbf6b36f011f7f4df81549e160d836c2b6959f848d9d265add11c4c6ee0f51d2f58df64f41152bb7c32886649f8f6e075e57cc5b947cb96038a91ebb5423bd5ec2432155ce2d0f1d81ca969c47c017c2a5472c0a53681e14dceb26b37e894a1a938c033cc2480247e958314d1c251b988ff9a4ed7f67366600ab031601e4684ca5d72a17339e124c5ebb573811b6a584b3d0f1bd040f816cf300aa66eb42d4c5039dd1e0b79decfb5199005d2bbdf9fcebf05a0088983ac6185ce87c95722febcb5b242af1c22973314b44499e8f59127cfb5e58a602d3ee565865bae0729c3b9f31c4aef3dcedf78d6bb520c16d7e1ba5a088ca5cc2217420d99c0613a01f3b75cecd5517636cb864b35a08a6639038bee0250767b9c7bb7d857b8fbe66281f607ed65561d7084e5b31324ae1d7c5fdea534ce4b6fcc7a69add96e99825f86aa6715ff2cb78a0c9281412c7c9c55dfbc16354b564382ed425aa1c8d2604c784fdc5f729c9cd5637eb77172367bd2a8ec0828d9bc03019e5a147d5de676cbaa0f1930603c942feb859f7ec5d70eb148c8afe84b30b3d778f0affcbad6302036291c6518f62e6577794157c985193d858fd602011145c49987a138a8d4e49060600d1b7a76fcee46bbb3241589dcc1320a6bfbcf587d325ba6aebbbe56ec5ce0111a80eafbe430a41a1ebd939583e3adec10f4f1114973fd0b1b0aa75476ec85da51592ec120437ecff50e9afe7401c96ef29297c667ef4da78ac7e1c8486d19faaad35d5904c07e164874f6ef634d5d8a64b076c3f9a37b3d44f61a63b4bb38a3a970d5091e68138bb9301d84db083de275e48fa7553c3e0f1874d0568d594857bf5f52933c5bc4957eeebd2fc7d3c0b90e4b49daf5e447e7d36c4dbdb4c118595f28d3a48b5665a7f995d3e179c96d975d47de5f48cd21c7a1b6a6c673c67669e67e23c3defe0672e8e1289636ec2145a14b6ed50c0b95ebe1b1ba1bd6b8a34a796ad858ab9ce8e678df7355f702ce2959e2c0a1831bb2d203e72cad74d0f9607a34bda435a521c850deee9b6afe6ae182598b74934d0a5d244bde7973cbe89e55a987cdc6cd54fb57b033015294642267b25d2b1016be3f2e842fff9ef1cd2885c99c0d504785ab1fa0f0a7a4828237ddace3c79e0c02dc9d3687c79e01a97cb634fd03dfad85abbeb9567309a21f114817a801cf5bfbd8cf136ddf535469053c43d89feeab902195cb7e2d3c08700bd99d663e65456067b64be4ff2a1572cb696881b3ca64c1566ba7b29cf0ff1cf1a9a24814631ccba5c83874445ed3690db166ec73edf7c2aeecccec9d1ab94187e88dda60936f2e97861acb5f791a67930fcd966eedb4109051edd15f3de10c99b1cef51e9448965a4a4ac8ed10649c5f54f1dbb961d001008b23bb942d49427e61ebb07a02d8c2b32e408f64a69b451cdfca5e0fd8665b800bbb9afb6a0e79bedb9499b14aafd89db80586fbe0166b5d4edc3f5c36e04557897699f32a760a93591eaac14202ca0f193c7c360c83e6dae397c89c2fc5a37883c95a36abbb71dbce6431972297c8e16ca468913b6ffa24d52eaa8d5858cc7cbf1c6d702fe3b236d2b12a63659ded31a5db3500ed37b1f0175af1117456704149506d0d4ae49a5911afbf7ddb6aa9f16cd23721f2ea6920da7bca939910d88237fdb791a90d7c5c7824241e1e62409ad398c64a8470b56fe235b90d85efe648ea33cc0a83ccb941f1cceff086b567c901a5e22e1d8b20af5d75f33aa2e44daef7cfe41d09639da5027e42e646c356367d8943f90d2a80927b140579078eda13a0007f1d3b90ed7d52a34c0cbf632f2177444ef2b47d9ffef295cc49033fb84ca058cdc07696385f0187544f708659ec24c7071c1fe553c20c64cf98ad01b1396bb1699043669b40e8f1b67d42127a2da8ee813ceed2beea7a5a972f55a4239b8013165cc11ac88e2f28b5f7333be23d088acc2fee88233752cebb5c30b6097353056e900e1079e38e389cdb19c81b3c412b9de2f4946b5676862f8473c3f001f7aa0ddec5ec5406afb1fba7c8aaa690aa1618c8244cfcfedc13a8a40f0297d475d43b83e6692c54c1991f3d43cbdb9acd47ed1b0162f83d1ba5a09d753c4d154df38f0042554cbfc98adf3e66928592aa26f330574a8b676d526e84dccc9408bc80d6fded421a66515c0a783600b9aec4304e4d00370e24ed26d1b432e50518f2a132edc1c9fb029c7f8bfb4d8eecf436ed795f31c622efdbb918afe47423d39147a595394cf3af726c70028fce9ec01c465f2fdb0790c372e22a4b826c339ede5cb9a453f228f21946ff3ab02e8d7e844e72b9441d681d73d7417fd5bf5c6099be70830e9d30c99b2b16486208462c6f8d85ee5bb323359d9a3bcf9fae11327f8e06c31c79d66d1ae8b5b5ccbd9bb6ba35bec9ce8c060a0226945543c89f40e7bcced95093c21688c90bb25078d287a66cd18fad9f9a117f4e5afc7ab24689aa797d1623a95e50f4abe45f2fc4d1826f34d54777ba2f6b2acd7427e29b67902a9de8e55e6db362e4fe55a6c24413d2dd6f806f73ed95ed8073bf907382e71ad277a3a20e39a21b8b72e04c7c8511407bc92d4a7fa09a248d96d4e0c8e98ca4d9a821d579ddbcc2c545b3e1cfde9dfa3e812e92c8f75a413a87d61f42f4e7d2062463d5509f3e55ebecc7f615a13c626c265fe8b58c8be96caa72d7a48f87e248923c3ae769f37c5a692d2ce17777a2063ab732e7dfe247f8435930c81d73ad29dbc7579d79534a43d67195d77423ebf396b458084b1140e9fa722eaff25a6519e4ee3a0fac3d239e1cd6edb45f7113fbbc3487bb57ae278caa7a275e344b870691b9119bdbd80c36042de9d69dba4947170cc060b9299a15796f459af7e3cf82d7063dd071fccfc9d7a8852fd61aa9ffd28986504c6e04a67a493e8a76dc7bdf110b9491b290992584ccae69c6dc6eaad78592dcf9b2439144ba4b9872f7c3b1772a01cb7d0a88192c74019b5ee79991541cad2e00c6e5edd4a14abd8c7b57cbaa6c017e703de5c4f6d551baca90f5f0036fef0f7699f992c9921fe3150baf6dfaffbd7db48ca54edc5293306cbc3df9c7fb9ea5467ff8a94f827d532310201e2f7adb89f418df5415d75b54d1f361fddee5d425e0057f320f4afb154f71275fdf0f328300a4d9482f852440b989efa676a420a5c0b0785fb26f7a518534358a8b991c987036744bbf50e32bb8593da4a6add0a5a055df68bf4bffcc23d17ce44b4e565b2224159c86830d87a0e0af467426da1c5c9e43f951405da0f447c957f1ee81b5a4e427b41680af43d546a8ee4057dce454bcb56014095d88a8f37342234588e526f4f8bf8b38dd461403744cc7bf50d702465657614169441a41953f5c535cc1da9ce9dac6c6cb1d15224c10588ce29fd78a53a25b96471e53796ee9aec16837876ebdeb663186b0ae07160e779fc71c8682c1fb4a236dd7438c30b4416d7d1e1ea99ad14e196134ee95a35b7ea46fa7f95db365572677bc86d44fac60ba053137ad91ecdc6e5494354fac09f0cc983973a773d23e78b660c85558a550971a34bf2c42cb8f1fa062b667246952e13012c3a5c72f099aef765d72c042283c07c019536ede021117866b83b71b7265d1731d1f2ebd9fb5b49229f67e3f9a80d4b66f4f8495e6fe8889bcec085a32c6ccc004e003b31ed5e2db2e576825111483049da840dc1cdac7a01d6d9ddd7b0a30c5dce8a74728ecb3cc6d76503a6655c6c6fe1b875cd62f53214fb85ad7c70e526907b8aecd5ce5e85eb6c8eb7a69331caeade3b4a82b94c576b2cfc5dc982edb92a0b526cc861384c1bde479b0346af9dc6517acf97f9045b696df80db3667d49faf349df78f178ef5a1f35d97f8fa30384c9d391eac4b56bb0020505ae93b076c8b9aade70086779fe3b2cf5625fe8c2094856fd6fa79ed960eb9e7ca74472c2f45fbf2af4575e6d7bbc748e197fcc95ebb5015e755c02b4b4ca5d118678c3bb280cede40ae6efb6bd19e8e016b49dfc91cd18c3a71c435b223fbd2ff1f4638a8b4249480c019121d1ffbfb23907e88fbc480d6785cb11d92307b668f4f2876a1e362b57edf21c58b992e88a360e62c0ec008c591d22769ea0f41d13441b3339c23702e3af631896c64d3d46dd2bb6345e0dd8085ec5fbbab57ec3f1507370efb63050e3129155f80c5733c63c70bd27a5d2af502676e96105212151a8f4af97ffb35e52b341e3983a254ec7dc936c8de7d752cd65daa271e58d2eafec02c120694dcd54e4b85e9d3b526f492e87c058db1831e5ead3617f0c08bd095ff2d397623bd8c3dccc8f7dfa213fa6ddeac0de78cf498b0240706205b7e162e1703fd46ea4f02ba2c0624cf095be6908ed16059a3d0ebcddd0bd476b75c8687c9229f3b1a9096a899010950678badc06eb72ed0c532445b83f53ff48e07d91c3bf8b841c55e8c58ef28e9efa4e272dda05d4a84fbc3d2a4a48bdacf7e11dba085865f81fc70417c84532a702c5932066e904407803d5f0dd37c33f0727a8c8b4d3702c36ae9d38e7bc01a758dbc5c269b06661a7c58aec7bec4619296c838a5a41627e394092464f79ffbf1a1c1785b6b74035eba2f5d72881fafac30490e29ccd82f1319f43c72b1d83c6c3f9694ca0a81b352e84dcdee64a571999c627f34897d8b24b9f78381e4706a46d231fa19480517f9eafe763f3290c2f41e8b2c406a97af83175c422b8c0d1a624bdd2982c16c0b6ee84cd37c78ee0e5d3b6c6b8fff292bd7aba7904677a37c73e399fe2846aea5efc199dd16666785717f057769460a830e336278985ee89e3a70673b342d11d90625fa5e3ce5854650bb18145f4162cbeb737402594b7e28f58cc5d70ea9ae629c39f9c13f0cc54111e182f53877ae3af7dc7eba68ac5d80d7658ae4bfd3b9d4232a3a3f071b568141cc87580b3bda9efeb59055feefaccdcbb21fdfd04cb16ce1739e26d0278008ca50ea03a286b689d44ef26ba5670d38f16450ac6d0ea6b9f683173ef991b66c16b6eb6bf63db7feb5001655b70531a2825689ccac3775110ee34b771ca6ae11dbc1adceeacce40a38594ab376e6d19579ad3977c7e4ba00d26065af0848cddd8a58a8ba842a9f4a0612cf6fb6eb9ec359f8c7e4e17286949bf11f281c6d51f3cfa8decadf07a8da911b7f60b61d8dfcab26530de61e6e0cdc028b2a3d70e02ecf084c6f2842a768f0f5f6f0f3691d67bd683690e83b3a02515055d56ec540051f16b71f4bbecc66e61583a9b52e63745d999597fb30b566293344ee60c479c8acb035e075df1cba2103894c71acebaa1818750d58a0d664fa751f3408ff06f54f98874eb5b9f452552a834a28f602f35c5b343822d905d90f7de02e8adc46492b465b6cead37314ba4d5e51e44a2f6b3183ecb6ad677c8cbb0df5ab2e420b046624593fafc04f7a36f15532c3e77b87e3b9a39cc39a5adba74df028189b14edbed70f623a0a1d8962a377d0d27b04f5e22f22feffd074fb6f20517446f46e68d1d24cdd11b6f0718c21cc7e2eec90370212437bf6992b44172287d0131c27556b7aa4b5e801556c6f8c96a4c9dbe95965757b81c0c6d0072c7b9299bed3e70b3fc20512357283868caab6b7bbdff811358dc30000000000000000000000000000000000030c161e262936", + "result": "invalid", + "flags": [ + "IncorrectSignatureLength" + ] + }, + { + "tcId": 3, + "comment": "long signature", + "msg": "48656c6c6f20776f726c64", + "sig": "1a13408d3274fb5f79a3039f0b7d693c5a9851fb97e67181dafbda100cf889ebdd724d8da7e22bf30c26e6f9511a69da84637dd2c751b8e26c0baf009a0163e96f7ee0f33174a57ed5c86a0399b8fdafc34e71859a2cd7f6a316d2dae35a13bea9e178a542196d0b17e3e5a3b182f2de5f255d7202f0a4c85c9ff6b0d4d821e2f6894243939e06f01a72d90f3bbad170aed2dd7dd2fc21ef44728dbe05adecbaf1f392ab69909c4194ff215e8c04ec5cd12b99d7b28112e9ddb5dbc91154e4a6daad7cf54581acb79c0424e2ffb9d8b70e1e46b6f47b6cddef5adcf84e9a53cdb69e45549c90e6df73706ac20a303d0c4f6630fc35c2b832c6205b6219913ef7718505c7c5b33d9ded3a8ff6bcf5cbc80b3155b9cda3abcd2d5e0cb055a28c771cf8dc9f6e0f157ac153a53da7ed50bac0e84750550a6fc8fb6696673c20ceac88b60e8a9142b4d3821872331876085427e163e4dcfbdad888e9c862e1293383dbd81af7910c87132dca1f5365f271e671fc2d245fbeedfdb861ebe5a8ce86d37164c66f3f3ae11d39216026e8a6d4fda4c7bfc6513d36fc042dd71fa0960405c122c918eb2b92e046801162d3d3c54c18ed6ff67248c9fcadabc0aa1286986cd748fec67b8f2c7ff0c2801925adb3a0d910506147bac34877d329996a6f0a7b0eec7a0cf352eb6fd09023d30db2b9e371eed224828bc10550fef7c5ff1747ec0ca7b61d1fd4594cc169dcaf14474cbb10b4518dfa848f056be3ff2d71829e261c87a786bdb0289b595c2ebee471af05e06f83ae00f70d9bf8a24d4a02e38e6c3ff7a2020c48801d2d2a28cc14d621bca6a92bbf6b36f011f7f4df81549e160d836c2b6959f848d9d265add11c4c6ee0f51d2f58df64f41152bb7c32886649f8f6e075e57cc5b947cb96038a91ebb5423bd5ec2432155ce2d0f1d81ca969c47c017c2a5472c0a53681e14dceb26b37e894a1a938c033cc2480247e958314d1c251b988ff9a4ed7f67366600ab031601e4684ca5d72a17339e124c5ebb573811b6a584b3d0f1bd040f816cf300aa66eb42d4c5039dd1e0b79decfb5199005d2bbdf9fcebf05a0088983ac6185ce87c95722febcb5b242af1c22973314b44499e8f59127cfb5e58a602d3ee565865bae0729c3b9f31c4aef3dcedf78d6bb520c16d7e1ba5a088ca5cc2217420d99c0613a01f3b75cecd5517636cb864b35a08a6639038bee0250767b9c7bb7d857b8fbe66281f607ed65561d7084e5b31324ae1d7c5fdea534ce4b6fcc7a69add96e99825f86aa6715ff2cb78a0c9281412c7c9c55dfbc16354b564382ed425aa1c8d2604c784fdc5f729c9cd5637eb77172367bd2a8ec0828d9bc03019e5a147d5de676cbaa0f1930603c942feb859f7ec5d70eb148c8afe84b30b3d778f0affcbad6302036291c6518f62e6577794157c985193d858fd602011145c49987a138a8d4e49060600d1b7a76fcee46bbb3241589dcc1320a6bfbcf587d325ba6aebbbe56ec5ce0111a80eafbe430a41a1ebd939583e3adec10f4f1114973fd0b1b0aa75476ec85da51592ec120437ecff50e9afe7401c96ef29297c667ef4da78ac7e1c8486d19faaad35d5904c07e164874f6ef634d5d8a64b076c3f9a37b3d44f61a63b4bb38a3a970d5091e68138bb9301d84db083de275e48fa7553c3e0f1874d0568d594857bf5f52933c5bc4957eeebd2fc7d3c0b90e4b49daf5e447e7d36c4dbdb4c118595f28d3a48b5665a7f995d3e179c96d975d47de5f48cd21c7a1b6a6c673c67669e67e23c3defe0672e8e1289636ec2145a14b6ed50c0b95ebe1b1ba1bd6b8a34a796ad858ab9ce8e678df7355f702ce2959e2c0a1831bb2d203e72cad74d0f9607a34bda435a521c850deee9b6afe6ae182598b74934d0a5d244bde7973cbe89e55a987cdc6cd54fb57b033015294642267b25d2b1016be3f2e842fff9ef1cd2885c99c0d504785ab1fa0f0a7a4828237ddace3c79e0c02dc9d3687c79e01a97cb634fd03dfad85abbeb9567309a21f114817a801cf5bfbd8cf136ddf535469053c43d89feeab902195cb7e2d3c08700bd99d663e65456067b64be4ff2a1572cb696881b3ca64c1566ba7b29cf0ff1cf1a9a24814631ccba5c83874445ed3690db166ec73edf7c2aeecccec9d1ab94187e88dda60936f2e97861acb5f791a67930fcd966eedb4109051edd15f3de10c99b1cef51e9448965a4a4ac8ed10649c5f54f1dbb961d001008b23bb942d49427e61ebb07a02d8c2b32e408f64a69b451cdfca5e0fd8665b800bbb9afb6a0e79bedb9499b14aafd89db80586fbe0166b5d4edc3f5c36e04557897699f32a760a93591eaac14202ca0f193c7c360c83e6dae397c89c2fc5a37883c95a36abbb71dbce6431972297c8e16ca468913b6ffa24d52eaa8d5858cc7cbf1c6d702fe3b236d2b12a63659ded31a5db3500ed37b1f0175af1117456704149506d0d4ae49a5911afbf7ddb6aa9f16cd23721f2ea6920da7bca939910d88237fdb791a90d7c5c7824241e1e62409ad398c64a8470b56fe235b90d85efe648ea33cc0a83ccb941f1cceff086b567c901a5e22e1d8b20af5d75f33aa2e44daef7cfe41d09639da5027e42e646c356367d8943f90d2a80927b140579078eda13a0007f1d3b90ed7d52a34c0cbf632f2177444ef2b47d9ffef295cc49033fb84ca058cdc07696385f0187544f708659ec24c7071c1fe553c20c64cf98ad01b1396bb1699043669b40e8f1b67d42127a2da8ee813ceed2beea7a5a972f55a4239b8013165cc11ac88e2f28b5f7333be23d088acc2fee88233752cebb5c30b6097353056e900e1079e38e389cdb19c81b3c412b9de2f4946b5676862f8473c3f001f7aa0ddec5ec5406afb1fba7c8aaa690aa1618c8244cfcfedc13a8a40f0297d475d43b83e6692c54c1991f3d43cbdb9acd47ed1b0162f83d1ba5a09d753c4d154df38f0042554cbfc98adf3e66928592aa26f330574a8b676d526e84dccc9408bc80d6fded421a66515c0a783600b9aec4304e4d00370e24ed26d1b432e50518f2a132edc1c9fb029c7f8bfb4d8eecf436ed795f31c622efdbb918afe47423d39147a595394cf3af726c70028fce9ec01c465f2fdb0790c372e22a4b826c339ede5cb9a453f228f21946ff3ab02e8d7e844e72b9441d681d73d7417fd5bf5c6099be70830e9d30c99b2b16486208462c6f8d85ee5bb323359d9a3bcf9fae11327f8e06c31c79d66d1ae8b5b5ccbd9bb6ba35bec9ce8c060a0226945543c89f40e7bcced95093c21688c90bb25078d287a66cd18fad9f9a117f4e5afc7ab24689aa797d1623a95e50f4abe45f2fc4d1826f34d54777ba2f6b2acd7427e29b67902a9de8e55e6db362e4fe55a6c24413d2dd6f806f73ed95ed8073bf907382e71ad277a3a20e39a21b8b72e04c7c8511407bc92d4a7fa09a248d96d4e0c8e98ca4d9a821d579ddbcc2c545b3e1cfde9dfa3e812e92c8f75a413a87d61f42f4e7d2062463d5509f3e55ebecc7f615a13c626c265fe8b58c8be96caa72d7a48f87e248923c3ae769f37c5a692d2ce17777a2063ab732e7dfe247f8435930c81d73ad29dbc7579d79534a43d67195d77423ebf396b458084b1140e9fa722eaff25a6519e4ee3a0fac3d239e1cd6edb45f7113fbbc3487bb57ae278caa7a275e344b870691b9119bdbd80c36042de9d69dba4947170cc060b9299a15796f459af7e3cf82d7063dd071fccfc9d7a8852fd61aa9ffd28986504c6e04a67a493e8a76dc7bdf110b9491b290992584ccae69c6dc6eaad78592dcf9b2439144ba4b9872f7c3b1772a01cb7d0a88192c74019b5ee79991541cad2e00c6e5edd4a14abd8c7b57cbaa6c017e703de5c4f6d551baca90f5f0036fef0f7699f992c9921fe3150baf6dfaffbd7db48ca54edc5293306cbc3df9c7fb9ea5467ff8a94f827d532310201e2f7adb89f418df5415d75b54d1f361fddee5d425e0057f320f4afb154f71275fdf0f328300a4d9482f852440b989efa676a420a5c0b0785fb26f7a518534358a8b991c987036744bbf50e32bb8593da4a6add0a5a055df68bf4bffcc23d17ce44b4e565b2224159c86830d87a0e0af467426da1c5c9e43f951405da0f447c957f1ee81b5a4e427b41680af43d546a8ee4057dce454bcb56014095d88a8f37342234588e526f4f8bf8b38dd461403744cc7bf50d702465657614169441a41953f5c535cc1da9ce9dac6c6cb1d15224c10588ce29fd78a53a25b96471e53796ee9aec16837876ebdeb663186b0ae07160e779fc71c8682c1fb4a236dd7438c30b4416d7d1e1ea99ad14e196134ee95a35b7ea46fa7f95db365572677bc86d44fac60ba053137ad91ecdc6e5494354fac09f0cc983973a773d23e78b660c85558a550971a34bf2c42cb8f1fa062b667246952e13012c3a5c72f099aef765d72c042283c07c019536ede021117866b83b71b7265d1731d1f2ebd9fb5b49229f67e3f9a80d4b66f4f8495e6fe8889bcec085a32c6ccc004e003b31ed5e2db2e576825111483049da840dc1cdac7a01d6d9ddd7b0a30c5dce8a74728ecb3cc6d76503a6655c6c6fe1b875cd62f53214fb85ad7c70e526907b8aecd5ce5e85eb6c8eb7a69331caeade3b4a82b94c576b2cfc5dc982edb92a0b526cc861384c1bde479b0346af9dc6517acf97f9045b696df80db3667d49faf349df78f178ef5a1f35d97f8fa30384c9d391eac4b56bb0020505ae93b076c8b9aade70086779fe3b2cf5625fe8c2094856fd6fa79ed960eb9e7ca74472c2f45fbf2af4575e6d7bbc748e197fcc95ebb5015e755c02b4b4ca5d118678c3bb280cede40ae6efb6bd19e8e016b49dfc91cd18c3a71c435b223fbd2ff1f4638a8b4249480c019121d1ffbfb23907e88fbc480d6785cb11d92307b668f4f2876a1e362b57edf21c58b992e88a360e62c0ec008c591d22769ea0f41d13441b3339c23702e3af631896c64d3d46dd2bb6345e0dd8085ec5fbbab57ec3f1507370efb63050e3129155f80c5733c63c70bd27a5d2af502676e96105212151a8f4af97ffb35e52b341e3983a254ec7dc936c8de7d752cd65daa271e58d2eafec02c120694dcd54e4b85e9d3b526f492e87c058db1831e5ead3617f0c08bd095ff2d397623bd8c3dccc8f7dfa213fa6ddeac0de78cf498b0240706205b7e162e1703fd46ea4f02ba2c0624cf095be6908ed16059a3d0ebcddd0bd476b75c8687c9229f3b1a9096a899010950678badc06eb72ed0c532445b83f53ff48e07d91c3bf8b841c55e8c58ef28e9efa4e272dda05d4a84fbc3d2a4a48bdacf7e11dba085865f81fc70417c84532a702c5932066e904407803d5f0dd37c33f0727a8c8b4d3702c36ae9d38e7bc01a758dbc5c269b06661a7c58aec7bec4619296c838a5a41627e394092464f79ffbf1a1c1785b6b74035eba2f5d72881fafac30490e29ccd82f1319f43c72b1d83c6c3f9694ca0a81b352e84dcdee64a571999c627f34897d8b24b9f78381e4706a46d231fa19480517f9eafe763f3290c2f41e8b2c406a97af83175c422b8c0d1a624bdd2982c16c0b6ee84cd37c78ee0e5d3b6c6b8fff292bd7aba7904677a37c73e399fe2846aea5efc199dd16666785717f057769460a830e336278985ee89e3a70673b342d11d90625fa5e3ce5854650bb18145f4162cbeb737402594b7e28f58cc5d70ea9ae629c39f9c13f0cc54111e182f53877ae3af7dc7eba68ac5d80d7658ae4bfd3b9d4232a3a3f071b568141cc87580b3bda9efeb59055feefaccdcbb21fdfd04cb16ce1739e26d0278008ca50ea03a286b689d44ef26ba5670d38f16450ac6d0ea6b9f683173ef991b66c16b6eb6bf63db7feb5001655b70531a2825689ccac3775110ee34b771ca6ae11dbc1adceeacce40a38594ab376e6d19579ad3977c7e4ba00d26065af0848cddd8a58a8ba842a9f4a0612cf6fb6eb9ec359f8c7e4e17286949bf11f281c6d51f3cfa8decadf07a8da911b7f60b61d8dfcab26530de61e6e0cdc028b2a3d70e02ecf084c6f2842a768f0f5f6f0f3691d67bd683690e83b3a02515055d56ec540051f16b71f4bbecc66e61583a9b52e63745d999597fb30b566293344ee60c479c8acb035e075df1cba2103894c71acebaa1818750d58a0d664fa751f3408ff06f54f98874eb5b9f452552a834a28f602f35c5b343822d905d90f7de02e8adc46492b465b6cead37314ba4d5e51e44a2f6b3183ecb6ad677c8cbb0df5ab2e420b046624593fafc04f7a36f15532c3e77b87e3b9a39cc39a5adba74df028189b14edbed70f623a0a1d8962a377d0d27b04f5e22f22feffd074fb6f20517446f46e68d1d24cdd11b6f0718c21cc7e2eec90370212437bf6992b44172287d0131c27556b7aa4b5e801556c6f8c96a4c9dbe95965757b81c0c6d0072c7b9299bed3e70b3fc20512357283868caab6b7bbdff811358dc30000000000000000000000000000000000030c161e2629363a00", + "result": "invalid", + "flags": [ + "IncorrectSignatureLength" + ] + }, + { + "tcId": 4, + "comment": "signature with a bit flip in c_tilde", + "msg": "48656c6c6f20776f726c64", + "sig": "1b13408d3274fb5f79a3039f0b7d693c5a9851fb97e67181dafbda100cf889ebdd724d8da7e22bf30c26e6f9511a69da84637dd2c751b8e26c0baf009a0163e96f7ee0f33174a57ed5c86a0399b8fdafc34e71859a2cd7f6a316d2dae35a13bea9e178a542196d0b17e3e5a3b182f2de5f255d7202f0a4c85c9ff6b0d4d821e2f6894243939e06f01a72d90f3bbad170aed2dd7dd2fc21ef44728dbe05adecbaf1f392ab69909c4194ff215e8c04ec5cd12b99d7b28112e9ddb5dbc91154e4a6daad7cf54581acb79c0424e2ffb9d8b70e1e46b6f47b6cddef5adcf84e9a53cdb69e45549c90e6df73706ac20a303d0c4f6630fc35c2b832c6205b6219913ef7718505c7c5b33d9ded3a8ff6bcf5cbc80b3155b9cda3abcd2d5e0cb055a28c771cf8dc9f6e0f157ac153a53da7ed50bac0e84750550a6fc8fb6696673c20ceac88b60e8a9142b4d3821872331876085427e163e4dcfbdad888e9c862e1293383dbd81af7910c87132dca1f5365f271e671fc2d245fbeedfdb861ebe5a8ce86d37164c66f3f3ae11d39216026e8a6d4fda4c7bfc6513d36fc042dd71fa0960405c122c918eb2b92e046801162d3d3c54c18ed6ff67248c9fcadabc0aa1286986cd748fec67b8f2c7ff0c2801925adb3a0d910506147bac34877d329996a6f0a7b0eec7a0cf352eb6fd09023d30db2b9e371eed224828bc10550fef7c5ff1747ec0ca7b61d1fd4594cc169dcaf14474cbb10b4518dfa848f056be3ff2d71829e261c87a786bdb0289b595c2ebee471af05e06f83ae00f70d9bf8a24d4a02e38e6c3ff7a2020c48801d2d2a28cc14d621bca6a92bbf6b36f011f7f4df81549e160d836c2b6959f848d9d265add11c4c6ee0f51d2f58df64f41152bb7c32886649f8f6e075e57cc5b947cb96038a91ebb5423bd5ec2432155ce2d0f1d81ca969c47c017c2a5472c0a53681e14dceb26b37e894a1a938c033cc2480247e958314d1c251b988ff9a4ed7f67366600ab031601e4684ca5d72a17339e124c5ebb573811b6a584b3d0f1bd040f816cf300aa66eb42d4c5039dd1e0b79decfb5199005d2bbdf9fcebf05a0088983ac6185ce87c95722febcb5b242af1c22973314b44499e8f59127cfb5e58a602d3ee565865bae0729c3b9f31c4aef3dcedf78d6bb520c16d7e1ba5a088ca5cc2217420d99c0613a01f3b75cecd5517636cb864b35a08a6639038bee0250767b9c7bb7d857b8fbe66281f607ed65561d7084e5b31324ae1d7c5fdea534ce4b6fcc7a69add96e99825f86aa6715ff2cb78a0c9281412c7c9c55dfbc16354b564382ed425aa1c8d2604c784fdc5f729c9cd5637eb77172367bd2a8ec0828d9bc03019e5a147d5de676cbaa0f1930603c942feb859f7ec5d70eb148c8afe84b30b3d778f0affcbad6302036291c6518f62e6577794157c985193d858fd602011145c49987a138a8d4e49060600d1b7a76fcee46bbb3241589dcc1320a6bfbcf587d325ba6aebbbe56ec5ce0111a80eafbe430a41a1ebd939583e3adec10f4f1114973fd0b1b0aa75476ec85da51592ec120437ecff50e9afe7401c96ef29297c667ef4da78ac7e1c8486d19faaad35d5904c07e164874f6ef634d5d8a64b076c3f9a37b3d44f61a63b4bb38a3a970d5091e68138bb9301d84db083de275e48fa7553c3e0f1874d0568d594857bf5f52933c5bc4957eeebd2fc7d3c0b90e4b49daf5e447e7d36c4dbdb4c118595f28d3a48b5665a7f995d3e179c96d975d47de5f48cd21c7a1b6a6c673c67669e67e23c3defe0672e8e1289636ec2145a14b6ed50c0b95ebe1b1ba1bd6b8a34a796ad858ab9ce8e678df7355f702ce2959e2c0a1831bb2d203e72cad74d0f9607a34bda435a521c850deee9b6afe6ae182598b74934d0a5d244bde7973cbe89e55a987cdc6cd54fb57b033015294642267b25d2b1016be3f2e842fff9ef1cd2885c99c0d504785ab1fa0f0a7a4828237ddace3c79e0c02dc9d3687c79e01a97cb634fd03dfad85abbeb9567309a21f114817a801cf5bfbd8cf136ddf535469053c43d89feeab902195cb7e2d3c08700bd99d663e65456067b64be4ff2a1572cb696881b3ca64c1566ba7b29cf0ff1cf1a9a24814631ccba5c83874445ed3690db166ec73edf7c2aeecccec9d1ab94187e88dda60936f2e97861acb5f791a67930fcd966eedb4109051edd15f3de10c99b1cef51e9448965a4a4ac8ed10649c5f54f1dbb961d001008b23bb942d49427e61ebb07a02d8c2b32e408f64a69b451cdfca5e0fd8665b800bbb9afb6a0e79bedb9499b14aafd89db80586fbe0166b5d4edc3f5c36e04557897699f32a760a93591eaac14202ca0f193c7c360c83e6dae397c89c2fc5a37883c95a36abbb71dbce6431972297c8e16ca468913b6ffa24d52eaa8d5858cc7cbf1c6d702fe3b236d2b12a63659ded31a5db3500ed37b1f0175af1117456704149506d0d4ae49a5911afbf7ddb6aa9f16cd23721f2ea6920da7bca939910d88237fdb791a90d7c5c7824241e1e62409ad398c64a8470b56fe235b90d85efe648ea33cc0a83ccb941f1cceff086b567c901a5e22e1d8b20af5d75f33aa2e44daef7cfe41d09639da5027e42e646c356367d8943f90d2a80927b140579078eda13a0007f1d3b90ed7d52a34c0cbf632f2177444ef2b47d9ffef295cc49033fb84ca058cdc07696385f0187544f708659ec24c7071c1fe553c20c64cf98ad01b1396bb1699043669b40e8f1b67d42127a2da8ee813ceed2beea7a5a972f55a4239b8013165cc11ac88e2f28b5f7333be23d088acc2fee88233752cebb5c30b6097353056e900e1079e38e389cdb19c81b3c412b9de2f4946b5676862f8473c3f001f7aa0ddec5ec5406afb1fba7c8aaa690aa1618c8244cfcfedc13a8a40f0297d475d43b83e6692c54c1991f3d43cbdb9acd47ed1b0162f83d1ba5a09d753c4d154df38f0042554cbfc98adf3e66928592aa26f330574a8b676d526e84dccc9408bc80d6fded421a66515c0a783600b9aec4304e4d00370e24ed26d1b432e50518f2a132edc1c9fb029c7f8bfb4d8eecf436ed795f31c622efdbb918afe47423d39147a595394cf3af726c70028fce9ec01c465f2fdb0790c372e22a4b826c339ede5cb9a453f228f21946ff3ab02e8d7e844e72b9441d681d73d7417fd5bf5c6099be70830e9d30c99b2b16486208462c6f8d85ee5bb323359d9a3bcf9fae11327f8e06c31c79d66d1ae8b5b5ccbd9bb6ba35bec9ce8c060a0226945543c89f40e7bcced95093c21688c90bb25078d287a66cd18fad9f9a117f4e5afc7ab24689aa797d1623a95e50f4abe45f2fc4d1826f34d54777ba2f6b2acd7427e29b67902a9de8e55e6db362e4fe55a6c24413d2dd6f806f73ed95ed8073bf907382e71ad277a3a20e39a21b8b72e04c7c8511407bc92d4a7fa09a248d96d4e0c8e98ca4d9a821d579ddbcc2c545b3e1cfde9dfa3e812e92c8f75a413a87d61f42f4e7d2062463d5509f3e55ebecc7f615a13c626c265fe8b58c8be96caa72d7a48f87e248923c3ae769f37c5a692d2ce17777a2063ab732e7dfe247f8435930c81d73ad29dbc7579d79534a43d67195d77423ebf396b458084b1140e9fa722eaff25a6519e4ee3a0fac3d239e1cd6edb45f7113fbbc3487bb57ae278caa7a275e344b870691b9119bdbd80c36042de9d69dba4947170cc060b9299a15796f459af7e3cf82d7063dd071fccfc9d7a8852fd61aa9ffd28986504c6e04a67a493e8a76dc7bdf110b9491b290992584ccae69c6dc6eaad78592dcf9b2439144ba4b9872f7c3b1772a01cb7d0a88192c74019b5ee79991541cad2e00c6e5edd4a14abd8c7b57cbaa6c017e703de5c4f6d551baca90f5f0036fef0f7699f992c9921fe3150baf6dfaffbd7db48ca54edc5293306cbc3df9c7fb9ea5467ff8a94f827d532310201e2f7adb89f418df5415d75b54d1f361fddee5d425e0057f320f4afb154f71275fdf0f328300a4d9482f852440b989efa676a420a5c0b0785fb26f7a518534358a8b991c987036744bbf50e32bb8593da4a6add0a5a055df68bf4bffcc23d17ce44b4e565b2224159c86830d87a0e0af467426da1c5c9e43f951405da0f447c957f1ee81b5a4e427b41680af43d546a8ee4057dce454bcb56014095d88a8f37342234588e526f4f8bf8b38dd461403744cc7bf50d702465657614169441a41953f5c535cc1da9ce9dac6c6cb1d15224c10588ce29fd78a53a25b96471e53796ee9aec16837876ebdeb663186b0ae07160e779fc71c8682c1fb4a236dd7438c30b4416d7d1e1ea99ad14e196134ee95a35b7ea46fa7f95db365572677bc86d44fac60ba053137ad91ecdc6e5494354fac09f0cc983973a773d23e78b660c85558a550971a34bf2c42cb8f1fa062b667246952e13012c3a5c72f099aef765d72c042283c07c019536ede021117866b83b71b7265d1731d1f2ebd9fb5b49229f67e3f9a80d4b66f4f8495e6fe8889bcec085a32c6ccc004e003b31ed5e2db2e576825111483049da840dc1cdac7a01d6d9ddd7b0a30c5dce8a74728ecb3cc6d76503a6655c6c6fe1b875cd62f53214fb85ad7c70e526907b8aecd5ce5e85eb6c8eb7a69331caeade3b4a82b94c576b2cfc5dc982edb92a0b526cc861384c1bde479b0346af9dc6517acf97f9045b696df80db3667d49faf349df78f178ef5a1f35d97f8fa30384c9d391eac4b56bb0020505ae93b076c8b9aade70086779fe3b2cf5625fe8c2094856fd6fa79ed960eb9e7ca74472c2f45fbf2af4575e6d7bbc748e197fcc95ebb5015e755c02b4b4ca5d118678c3bb280cede40ae6efb6bd19e8e016b49dfc91cd18c3a71c435b223fbd2ff1f4638a8b4249480c019121d1ffbfb23907e88fbc480d6785cb11d92307b668f4f2876a1e362b57edf21c58b992e88a360e62c0ec008c591d22769ea0f41d13441b3339c23702e3af631896c64d3d46dd2bb6345e0dd8085ec5fbbab57ec3f1507370efb63050e3129155f80c5733c63c70bd27a5d2af502676e96105212151a8f4af97ffb35e52b341e3983a254ec7dc936c8de7d752cd65daa271e58d2eafec02c120694dcd54e4b85e9d3b526f492e87c058db1831e5ead3617f0c08bd095ff2d397623bd8c3dccc8f7dfa213fa6ddeac0de78cf498b0240706205b7e162e1703fd46ea4f02ba2c0624cf095be6908ed16059a3d0ebcddd0bd476b75c8687c9229f3b1a9096a899010950678badc06eb72ed0c532445b83f53ff48e07d91c3bf8b841c55e8c58ef28e9efa4e272dda05d4a84fbc3d2a4a48bdacf7e11dba085865f81fc70417c84532a702c5932066e904407803d5f0dd37c33f0727a8c8b4d3702c36ae9d38e7bc01a758dbc5c269b06661a7c58aec7bec4619296c838a5a41627e394092464f79ffbf1a1c1785b6b74035eba2f5d72881fafac30490e29ccd82f1319f43c72b1d83c6c3f9694ca0a81b352e84dcdee64a571999c627f34897d8b24b9f78381e4706a46d231fa19480517f9eafe763f3290c2f41e8b2c406a97af83175c422b8c0d1a624bdd2982c16c0b6ee84cd37c78ee0e5d3b6c6b8fff292bd7aba7904677a37c73e399fe2846aea5efc199dd16666785717f057769460a830e336278985ee89e3a70673b342d11d90625fa5e3ce5854650bb18145f4162cbeb737402594b7e28f58cc5d70ea9ae629c39f9c13f0cc54111e182f53877ae3af7dc7eba68ac5d80d7658ae4bfd3b9d4232a3a3f071b568141cc87580b3bda9efeb59055feefaccdcbb21fdfd04cb16ce1739e26d0278008ca50ea03a286b689d44ef26ba5670d38f16450ac6d0ea6b9f683173ef991b66c16b6eb6bf63db7feb5001655b70531a2825689ccac3775110ee34b771ca6ae11dbc1adceeacce40a38594ab376e6d19579ad3977c7e4ba00d26065af0848cddd8a58a8ba842a9f4a0612cf6fb6eb9ec359f8c7e4e17286949bf11f281c6d51f3cfa8decadf07a8da911b7f60b61d8dfcab26530de61e6e0cdc028b2a3d70e02ecf084c6f2842a768f0f5f6f0f3691d67bd683690e83b3a02515055d56ec540051f16b71f4bbecc66e61583a9b52e63745d999597fb30b566293344ee60c479c8acb035e075df1cba2103894c71acebaa1818750d58a0d664fa751f3408ff06f54f98874eb5b9f452552a834a28f602f35c5b343822d905d90f7de02e8adc46492b465b6cead37314ba4d5e51e44a2f6b3183ecb6ad677c8cbb0df5ab2e420b046624593fafc04f7a36f15532c3e77b87e3b9a39cc39a5adba74df028189b14edbed70f623a0a1d8962a377d0d27b04f5e22f22feffd074fb6f20517446f46e68d1d24cdd11b6f0718c21cc7e2eec90370212437bf6992b44172287d0131c27556b7aa4b5e801556c6f8c96a4c9dbe95965757b81c0c6d0072c7b9299bed3e70b3fc20512357283868caab6b7bbdff811358dc30000000000000000000000000000000000030c161e2629363a", + "result": "invalid", + "flags": [ + "ModifiedSignature" + ] + }, + { + "tcId": 5, + "comment": "signature with a bit flip in z[0]", + "msg": "48656c6c6f20776f726c64", + "sig": "1a13408d3274fb5f79a3039f0b7d693c5a9851fb97e67181dafbda100cf889ebdd724d8da7e22bf30c26e6f9511a69da84637dd2c751b8e26c0baf009a0163e96e7ee0f33174a57ed5c86a0399b8fdafc34e71859a2cd7f6a316d2dae35a13bea9e178a542196d0b17e3e5a3b182f2de5f255d7202f0a4c85c9ff6b0d4d821e2f6894243939e06f01a72d90f3bbad170aed2dd7dd2fc21ef44728dbe05adecbaf1f392ab69909c4194ff215e8c04ec5cd12b99d7b28112e9ddb5dbc91154e4a6daad7cf54581acb79c0424e2ffb9d8b70e1e46b6f47b6cddef5adcf84e9a53cdb69e45549c90e6df73706ac20a303d0c4f6630fc35c2b832c6205b6219913ef7718505c7c5b33d9ded3a8ff6bcf5cbc80b3155b9cda3abcd2d5e0cb055a28c771cf8dc9f6e0f157ac153a53da7ed50bac0e84750550a6fc8fb6696673c20ceac88b60e8a9142b4d3821872331876085427e163e4dcfbdad888e9c862e1293383dbd81af7910c87132dca1f5365f271e671fc2d245fbeedfdb861ebe5a8ce86d37164c66f3f3ae11d39216026e8a6d4fda4c7bfc6513d36fc042dd71fa0960405c122c918eb2b92e046801162d3d3c54c18ed6ff67248c9fcadabc0aa1286986cd748fec67b8f2c7ff0c2801925adb3a0d910506147bac34877d329996a6f0a7b0eec7a0cf352eb6fd09023d30db2b9e371eed224828bc10550fef7c5ff1747ec0ca7b61d1fd4594cc169dcaf14474cbb10b4518dfa848f056be3ff2d71829e261c87a786bdb0289b595c2ebee471af05e06f83ae00f70d9bf8a24d4a02e38e6c3ff7a2020c48801d2d2a28cc14d621bca6a92bbf6b36f011f7f4df81549e160d836c2b6959f848d9d265add11c4c6ee0f51d2f58df64f41152bb7c32886649f8f6e075e57cc5b947cb96038a91ebb5423bd5ec2432155ce2d0f1d81ca969c47c017c2a5472c0a53681e14dceb26b37e894a1a938c033cc2480247e958314d1c251b988ff9a4ed7f67366600ab031601e4684ca5d72a17339e124c5ebb573811b6a584b3d0f1bd040f816cf300aa66eb42d4c5039dd1e0b79decfb5199005d2bbdf9fcebf05a0088983ac6185ce87c95722febcb5b242af1c22973314b44499e8f59127cfb5e58a602d3ee565865bae0729c3b9f31c4aef3dcedf78d6bb520c16d7e1ba5a088ca5cc2217420d99c0613a01f3b75cecd5517636cb864b35a08a6639038bee0250767b9c7bb7d857b8fbe66281f607ed65561d7084e5b31324ae1d7c5fdea534ce4b6fcc7a69add96e99825f86aa6715ff2cb78a0c9281412c7c9c55dfbc16354b564382ed425aa1c8d2604c784fdc5f729c9cd5637eb77172367bd2a8ec0828d9bc03019e5a147d5de676cbaa0f1930603c942feb859f7ec5d70eb148c8afe84b30b3d778f0affcbad6302036291c6518f62e6577794157c985193d858fd602011145c49987a138a8d4e49060600d1b7a76fcee46bbb3241589dcc1320a6bfbcf587d325ba6aebbbe56ec5ce0111a80eafbe430a41a1ebd939583e3adec10f4f1114973fd0b1b0aa75476ec85da51592ec120437ecff50e9afe7401c96ef29297c667ef4da78ac7e1c8486d19faaad35d5904c07e164874f6ef634d5d8a64b076c3f9a37b3d44f61a63b4bb38a3a970d5091e68138bb9301d84db083de275e48fa7553c3e0f1874d0568d594857bf5f52933c5bc4957eeebd2fc7d3c0b90e4b49daf5e447e7d36c4dbdb4c118595f28d3a48b5665a7f995d3e179c96d975d47de5f48cd21c7a1b6a6c673c67669e67e23c3defe0672e8e1289636ec2145a14b6ed50c0b95ebe1b1ba1bd6b8a34a796ad858ab9ce8e678df7355f702ce2959e2c0a1831bb2d203e72cad74d0f9607a34bda435a521c850deee9b6afe6ae182598b74934d0a5d244bde7973cbe89e55a987cdc6cd54fb57b033015294642267b25d2b1016be3f2e842fff9ef1cd2885c99c0d504785ab1fa0f0a7a4828237ddace3c79e0c02dc9d3687c79e01a97cb634fd03dfad85abbeb9567309a21f114817a801cf5bfbd8cf136ddf535469053c43d89feeab902195cb7e2d3c08700bd99d663e65456067b64be4ff2a1572cb696881b3ca64c1566ba7b29cf0ff1cf1a9a24814631ccba5c83874445ed3690db166ec73edf7c2aeecccec9d1ab94187e88dda60936f2e97861acb5f791a67930fcd966eedb4109051edd15f3de10c99b1cef51e9448965a4a4ac8ed10649c5f54f1dbb961d001008b23bb942d49427e61ebb07a02d8c2b32e408f64a69b451cdfca5e0fd8665b800bbb9afb6a0e79bedb9499b14aafd89db80586fbe0166b5d4edc3f5c36e04557897699f32a760a93591eaac14202ca0f193c7c360c83e6dae397c89c2fc5a37883c95a36abbb71dbce6431972297c8e16ca468913b6ffa24d52eaa8d5858cc7cbf1c6d702fe3b236d2b12a63659ded31a5db3500ed37b1f0175af1117456704149506d0d4ae49a5911afbf7ddb6aa9f16cd23721f2ea6920da7bca939910d88237fdb791a90d7c5c7824241e1e62409ad398c64a8470b56fe235b90d85efe648ea33cc0a83ccb941f1cceff086b567c901a5e22e1d8b20af5d75f33aa2e44daef7cfe41d09639da5027e42e646c356367d8943f90d2a80927b140579078eda13a0007f1d3b90ed7d52a34c0cbf632f2177444ef2b47d9ffef295cc49033fb84ca058cdc07696385f0187544f708659ec24c7071c1fe553c20c64cf98ad01b1396bb1699043669b40e8f1b67d42127a2da8ee813ceed2beea7a5a972f55a4239b8013165cc11ac88e2f28b5f7333be23d088acc2fee88233752cebb5c30b6097353056e900e1079e38e389cdb19c81b3c412b9de2f4946b5676862f8473c3f001f7aa0ddec5ec5406afb1fba7c8aaa690aa1618c8244cfcfedc13a8a40f0297d475d43b83e6692c54c1991f3d43cbdb9acd47ed1b0162f83d1ba5a09d753c4d154df38f0042554cbfc98adf3e66928592aa26f330574a8b676d526e84dccc9408bc80d6fded421a66515c0a783600b9aec4304e4d00370e24ed26d1b432e50518f2a132edc1c9fb029c7f8bfb4d8eecf436ed795f31c622efdbb918afe47423d39147a595394cf3af726c70028fce9ec01c465f2fdb0790c372e22a4b826c339ede5cb9a453f228f21946ff3ab02e8d7e844e72b9441d681d73d7417fd5bf5c6099be70830e9d30c99b2b16486208462c6f8d85ee5bb323359d9a3bcf9fae11327f8e06c31c79d66d1ae8b5b5ccbd9bb6ba35bec9ce8c060a0226945543c89f40e7bcced95093c21688c90bb25078d287a66cd18fad9f9a117f4e5afc7ab24689aa797d1623a95e50f4abe45f2fc4d1826f34d54777ba2f6b2acd7427e29b67902a9de8e55e6db362e4fe55a6c24413d2dd6f806f73ed95ed8073bf907382e71ad277a3a20e39a21b8b72e04c7c8511407bc92d4a7fa09a248d96d4e0c8e98ca4d9a821d579ddbcc2c545b3e1cfde9dfa3e812e92c8f75a413a87d61f42f4e7d2062463d5509f3e55ebecc7f615a13c626c265fe8b58c8be96caa72d7a48f87e248923c3ae769f37c5a692d2ce17777a2063ab732e7dfe247f8435930c81d73ad29dbc7579d79534a43d67195d77423ebf396b458084b1140e9fa722eaff25a6519e4ee3a0fac3d239e1cd6edb45f7113fbbc3487bb57ae278caa7a275e344b870691b9119bdbd80c36042de9d69dba4947170cc060b9299a15796f459af7e3cf82d7063dd071fccfc9d7a8852fd61aa9ffd28986504c6e04a67a493e8a76dc7bdf110b9491b290992584ccae69c6dc6eaad78592dcf9b2439144ba4b9872f7c3b1772a01cb7d0a88192c74019b5ee79991541cad2e00c6e5edd4a14abd8c7b57cbaa6c017e703de5c4f6d551baca90f5f0036fef0f7699f992c9921fe3150baf6dfaffbd7db48ca54edc5293306cbc3df9c7fb9ea5467ff8a94f827d532310201e2f7adb89f418df5415d75b54d1f361fddee5d425e0057f320f4afb154f71275fdf0f328300a4d9482f852440b989efa676a420a5c0b0785fb26f7a518534358a8b991c987036744bbf50e32bb8593da4a6add0a5a055df68bf4bffcc23d17ce44b4e565b2224159c86830d87a0e0af467426da1c5c9e43f951405da0f447c957f1ee81b5a4e427b41680af43d546a8ee4057dce454bcb56014095d88a8f37342234588e526f4f8bf8b38dd461403744cc7bf50d702465657614169441a41953f5c535cc1da9ce9dac6c6cb1d15224c10588ce29fd78a53a25b96471e53796ee9aec16837876ebdeb663186b0ae07160e779fc71c8682c1fb4a236dd7438c30b4416d7d1e1ea99ad14e196134ee95a35b7ea46fa7f95db365572677bc86d44fac60ba053137ad91ecdc6e5494354fac09f0cc983973a773d23e78b660c85558a550971a34bf2c42cb8f1fa062b667246952e13012c3a5c72f099aef765d72c042283c07c019536ede021117866b83b71b7265d1731d1f2ebd9fb5b49229f67e3f9a80d4b66f4f8495e6fe8889bcec085a32c6ccc004e003b31ed5e2db2e576825111483049da840dc1cdac7a01d6d9ddd7b0a30c5dce8a74728ecb3cc6d76503a6655c6c6fe1b875cd62f53214fb85ad7c70e526907b8aecd5ce5e85eb6c8eb7a69331caeade3b4a82b94c576b2cfc5dc982edb92a0b526cc861384c1bde479b0346af9dc6517acf97f9045b696df80db3667d49faf349df78f178ef5a1f35d97f8fa30384c9d391eac4b56bb0020505ae93b076c8b9aade70086779fe3b2cf5625fe8c2094856fd6fa79ed960eb9e7ca74472c2f45fbf2af4575e6d7bbc748e197fcc95ebb5015e755c02b4b4ca5d118678c3bb280cede40ae6efb6bd19e8e016b49dfc91cd18c3a71c435b223fbd2ff1f4638a8b4249480c019121d1ffbfb23907e88fbc480d6785cb11d92307b668f4f2876a1e362b57edf21c58b992e88a360e62c0ec008c591d22769ea0f41d13441b3339c23702e3af631896c64d3d46dd2bb6345e0dd8085ec5fbbab57ec3f1507370efb63050e3129155f80c5733c63c70bd27a5d2af502676e96105212151a8f4af97ffb35e52b341e3983a254ec7dc936c8de7d752cd65daa271e58d2eafec02c120694dcd54e4b85e9d3b526f492e87c058db1831e5ead3617f0c08bd095ff2d397623bd8c3dccc8f7dfa213fa6ddeac0de78cf498b0240706205b7e162e1703fd46ea4f02ba2c0624cf095be6908ed16059a3d0ebcddd0bd476b75c8687c9229f3b1a9096a899010950678badc06eb72ed0c532445b83f53ff48e07d91c3bf8b841c55e8c58ef28e9efa4e272dda05d4a84fbc3d2a4a48bdacf7e11dba085865f81fc70417c84532a702c5932066e904407803d5f0dd37c33f0727a8c8b4d3702c36ae9d38e7bc01a758dbc5c269b06661a7c58aec7bec4619296c838a5a41627e394092464f79ffbf1a1c1785b6b74035eba2f5d72881fafac30490e29ccd82f1319f43c72b1d83c6c3f9694ca0a81b352e84dcdee64a571999c627f34897d8b24b9f78381e4706a46d231fa19480517f9eafe763f3290c2f41e8b2c406a97af83175c422b8c0d1a624bdd2982c16c0b6ee84cd37c78ee0e5d3b6c6b8fff292bd7aba7904677a37c73e399fe2846aea5efc199dd16666785717f057769460a830e336278985ee89e3a70673b342d11d90625fa5e3ce5854650bb18145f4162cbeb737402594b7e28f58cc5d70ea9ae629c39f9c13f0cc54111e182f53877ae3af7dc7eba68ac5d80d7658ae4bfd3b9d4232a3a3f071b568141cc87580b3bda9efeb59055feefaccdcbb21fdfd04cb16ce1739e26d0278008ca50ea03a286b689d44ef26ba5670d38f16450ac6d0ea6b9f683173ef991b66c16b6eb6bf63db7feb5001655b70531a2825689ccac3775110ee34b771ca6ae11dbc1adceeacce40a38594ab376e6d19579ad3977c7e4ba00d26065af0848cddd8a58a8ba842a9f4a0612cf6fb6eb9ec359f8c7e4e17286949bf11f281c6d51f3cfa8decadf07a8da911b7f60b61d8dfcab26530de61e6e0cdc028b2a3d70e02ecf084c6f2842a768f0f5f6f0f3691d67bd683690e83b3a02515055d56ec540051f16b71f4bbecc66e61583a9b52e63745d999597fb30b566293344ee60c479c8acb035e075df1cba2103894c71acebaa1818750d58a0d664fa751f3408ff06f54f98874eb5b9f452552a834a28f602f35c5b343822d905d90f7de02e8adc46492b465b6cead37314ba4d5e51e44a2f6b3183ecb6ad677c8cbb0df5ab2e420b046624593fafc04f7a36f15532c3e77b87e3b9a39cc39a5adba74df028189b14edbed70f623a0a1d8962a377d0d27b04f5e22f22feffd074fb6f20517446f46e68d1d24cdd11b6f0718c21cc7e2eec90370212437bf6992b44172287d0131c27556b7aa4b5e801556c6f8c96a4c9dbe95965757b81c0c6d0072c7b9299bed3e70b3fc20512357283868caab6b7bbdff811358dc30000000000000000000000000000000000030c161e2629363a", + "result": "invalid", + "flags": [ + "ModifiedSignature" + ] + }, + { + "tcId": 6, + "comment": "signature with a bit flip in z[1]", + "msg": "48656c6c6f20776f726c64", + "sig": "1a13408d3274fb5f79a3039f0b7d693c5a9851fb97e67181dafbda100cf889ebdd724d8da7e22bf30c26e6f9511a69da84637dd2c751b8e26c0baf009a0163e96f7ee0f33174a57ed5c86a0399b8fdafc34e71859a2cd7f6a316d2dae35a13bea9e178a542196d0b17e3e5a3b182f2de5f255d7202f0a4c85c9ff6b0d4d821e2f6894243939e06f01a72d90f3bbad170aed2dd7dd2fc21ef44728dbe05adecbaf1f392ab69909c4194ff215e8c04ec5cd12b99d7b28112e9ddb5dbc91154e4a6daad7cf54581acb79c0424e2ffb9d8b70e1e46b6f47b6cddef5adcf84e9a53cdb69e45549c90e6df73706ac20a303d0c4f6630fc35c2b832c6205b6219913ef7718505c7c5b33d9ded3a8ff6bcf5cbc80b3155b9cda3abcd2d5e0cb055a28c771cf8dc9f6e0f157ac153a53da7ed50bac0e84750550a6fc8fb6696673c20ceac88b60e8a9142b4d3821872331876085427e163e4dcfbdad888e9c862e1293383dbd81af7910c87132dca1f5365f271e671fc2d245fbeedfdb861ebe5a8ce86d37164c66f3f3ae11d39216026e8a6d4fda4c7bfc6513d36fc042dd71fa0960405c122c918eb2b92e046801162d3d3c54c18ed6ff67248c9fcadabc0aa1286986cd748fec67b8f2c7ff0c2801925adb3a0d910506147bac34877d329996a6f0a7b0eec7a0cf352eb6fd09023d30db2b9e371eed224828bc10550fef7c5ff1747ec0ca7b61d1fd4594cc169dcaf14474cbb10b4518dfa848f056be3ff2d71829e261c87a786bdb0289b595c2ebee471af05e06f83ae00f70d9bf8a24d4a02e38e6c3ff7a2020c48801d2d2a28cc14d621bca6a92bbf6b36f011f7f4df81549e160d836c2b6959f848d9d265add11c4c6ee0f51d2f58df64f41152bb7c32886649f8f6e075e57cc5b947cb96038a91ebb5423bd5ec2432155ce2d0f1d81ca969c47c017c2a5472c0a53681e14dceb26b37e894a1a938c033cc2480247e958314d1c250b988ff9a4ed7f67366600ab031601e4684ca5d72a17339e124c5ebb573811b6a584b3d0f1bd040f816cf300aa66eb42d4c5039dd1e0b79decfb5199005d2bbdf9fcebf05a0088983ac6185ce87c95722febcb5b242af1c22973314b44499e8f59127cfb5e58a602d3ee565865bae0729c3b9f31c4aef3dcedf78d6bb520c16d7e1ba5a088ca5cc2217420d99c0613a01f3b75cecd5517636cb864b35a08a6639038bee0250767b9c7bb7d857b8fbe66281f607ed65561d7084e5b31324ae1d7c5fdea534ce4b6fcc7a69add96e99825f86aa6715ff2cb78a0c9281412c7c9c55dfbc16354b564382ed425aa1c8d2604c784fdc5f729c9cd5637eb77172367bd2a8ec0828d9bc03019e5a147d5de676cbaa0f1930603c942feb859f7ec5d70eb148c8afe84b30b3d778f0affcbad6302036291c6518f62e6577794157c985193d858fd602011145c49987a138a8d4e49060600d1b7a76fcee46bbb3241589dcc1320a6bfbcf587d325ba6aebbbe56ec5ce0111a80eafbe430a41a1ebd939583e3adec10f4f1114973fd0b1b0aa75476ec85da51592ec120437ecff50e9afe7401c96ef29297c667ef4da78ac7e1c8486d19faaad35d5904c07e164874f6ef634d5d8a64b076c3f9a37b3d44f61a63b4bb38a3a970d5091e68138bb9301d84db083de275e48fa7553c3e0f1874d0568d594857bf5f52933c5bc4957eeebd2fc7d3c0b90e4b49daf5e447e7d36c4dbdb4c118595f28d3a48b5665a7f995d3e179c96d975d47de5f48cd21c7a1b6a6c673c67669e67e23c3defe0672e8e1289636ec2145a14b6ed50c0b95ebe1b1ba1bd6b8a34a796ad858ab9ce8e678df7355f702ce2959e2c0a1831bb2d203e72cad74d0f9607a34bda435a521c850deee9b6afe6ae182598b74934d0a5d244bde7973cbe89e55a987cdc6cd54fb57b033015294642267b25d2b1016be3f2e842fff9ef1cd2885c99c0d504785ab1fa0f0a7a4828237ddace3c79e0c02dc9d3687c79e01a97cb634fd03dfad85abbeb9567309a21f114817a801cf5bfbd8cf136ddf535469053c43d89feeab902195cb7e2d3c08700bd99d663e65456067b64be4ff2a1572cb696881b3ca64c1566ba7b29cf0ff1cf1a9a24814631ccba5c83874445ed3690db166ec73edf7c2aeecccec9d1ab94187e88dda60936f2e97861acb5f791a67930fcd966eedb4109051edd15f3de10c99b1cef51e9448965a4a4ac8ed10649c5f54f1dbb961d001008b23bb942d49427e61ebb07a02d8c2b32e408f64a69b451cdfca5e0fd8665b800bbb9afb6a0e79bedb9499b14aafd89db80586fbe0166b5d4edc3f5c36e04557897699f32a760a93591eaac14202ca0f193c7c360c83e6dae397c89c2fc5a37883c95a36abbb71dbce6431972297c8e16ca468913b6ffa24d52eaa8d5858cc7cbf1c6d702fe3b236d2b12a63659ded31a5db3500ed37b1f0175af1117456704149506d0d4ae49a5911afbf7ddb6aa9f16cd23721f2ea6920da7bca939910d88237fdb791a90d7c5c7824241e1e62409ad398c64a8470b56fe235b90d85efe648ea33cc0a83ccb941f1cceff086b567c901a5e22e1d8b20af5d75f33aa2e44daef7cfe41d09639da5027e42e646c356367d8943f90d2a80927b140579078eda13a0007f1d3b90ed7d52a34c0cbf632f2177444ef2b47d9ffef295cc49033fb84ca058cdc07696385f0187544f708659ec24c7071c1fe553c20c64cf98ad01b1396bb1699043669b40e8f1b67d42127a2da8ee813ceed2beea7a5a972f55a4239b8013165cc11ac88e2f28b5f7333be23d088acc2fee88233752cebb5c30b6097353056e900e1079e38e389cdb19c81b3c412b9de2f4946b5676862f8473c3f001f7aa0ddec5ec5406afb1fba7c8aaa690aa1618c8244cfcfedc13a8a40f0297d475d43b83e6692c54c1991f3d43cbdb9acd47ed1b0162f83d1ba5a09d753c4d154df38f0042554cbfc98adf3e66928592aa26f330574a8b676d526e84dccc9408bc80d6fded421a66515c0a783600b9aec4304e4d00370e24ed26d1b432e50518f2a132edc1c9fb029c7f8bfb4d8eecf436ed795f31c622efdbb918afe47423d39147a595394cf3af726c70028fce9ec01c465f2fdb0790c372e22a4b826c339ede5cb9a453f228f21946ff3ab02e8d7e844e72b9441d681d73d7417fd5bf5c6099be70830e9d30c99b2b16486208462c6f8d85ee5bb323359d9a3bcf9fae11327f8e06c31c79d66d1ae8b5b5ccbd9bb6ba35bec9ce8c060a0226945543c89f40e7bcced95093c21688c90bb25078d287a66cd18fad9f9a117f4e5afc7ab24689aa797d1623a95e50f4abe45f2fc4d1826f34d54777ba2f6b2acd7427e29b67902a9de8e55e6db362e4fe55a6c24413d2dd6f806f73ed95ed8073bf907382e71ad277a3a20e39a21b8b72e04c7c8511407bc92d4a7fa09a248d96d4e0c8e98ca4d9a821d579ddbcc2c545b3e1cfde9dfa3e812e92c8f75a413a87d61f42f4e7d2062463d5509f3e55ebecc7f615a13c626c265fe8b58c8be96caa72d7a48f87e248923c3ae769f37c5a692d2ce17777a2063ab732e7dfe247f8435930c81d73ad29dbc7579d79534a43d67195d77423ebf396b458084b1140e9fa722eaff25a6519e4ee3a0fac3d239e1cd6edb45f7113fbbc3487bb57ae278caa7a275e344b870691b9119bdbd80c36042de9d69dba4947170cc060b9299a15796f459af7e3cf82d7063dd071fccfc9d7a8852fd61aa9ffd28986504c6e04a67a493e8a76dc7bdf110b9491b290992584ccae69c6dc6eaad78592dcf9b2439144ba4b9872f7c3b1772a01cb7d0a88192c74019b5ee79991541cad2e00c6e5edd4a14abd8c7b57cbaa6c017e703de5c4f6d551baca90f5f0036fef0f7699f992c9921fe3150baf6dfaffbd7db48ca54edc5293306cbc3df9c7fb9ea5467ff8a94f827d532310201e2f7adb89f418df5415d75b54d1f361fddee5d425e0057f320f4afb154f71275fdf0f328300a4d9482f852440b989efa676a420a5c0b0785fb26f7a518534358a8b991c987036744bbf50e32bb8593da4a6add0a5a055df68bf4bffcc23d17ce44b4e565b2224159c86830d87a0e0af467426da1c5c9e43f951405da0f447c957f1ee81b5a4e427b41680af43d546a8ee4057dce454bcb56014095d88a8f37342234588e526f4f8bf8b38dd461403744cc7bf50d702465657614169441a41953f5c535cc1da9ce9dac6c6cb1d15224c10588ce29fd78a53a25b96471e53796ee9aec16837876ebdeb663186b0ae07160e779fc71c8682c1fb4a236dd7438c30b4416d7d1e1ea99ad14e196134ee95a35b7ea46fa7f95db365572677bc86d44fac60ba053137ad91ecdc6e5494354fac09f0cc983973a773d23e78b660c85558a550971a34bf2c42cb8f1fa062b667246952e13012c3a5c72f099aef765d72c042283c07c019536ede021117866b83b71b7265d1731d1f2ebd9fb5b49229f67e3f9a80d4b66f4f8495e6fe8889bcec085a32c6ccc004e003b31ed5e2db2e576825111483049da840dc1cdac7a01d6d9ddd7b0a30c5dce8a74728ecb3cc6d76503a6655c6c6fe1b875cd62f53214fb85ad7c70e526907b8aecd5ce5e85eb6c8eb7a69331caeade3b4a82b94c576b2cfc5dc982edb92a0b526cc861384c1bde479b0346af9dc6517acf97f9045b696df80db3667d49faf349df78f178ef5a1f35d97f8fa30384c9d391eac4b56bb0020505ae93b076c8b9aade70086779fe3b2cf5625fe8c2094856fd6fa79ed960eb9e7ca74472c2f45fbf2af4575e6d7bbc748e197fcc95ebb5015e755c02b4b4ca5d118678c3bb280cede40ae6efb6bd19e8e016b49dfc91cd18c3a71c435b223fbd2ff1f4638a8b4249480c019121d1ffbfb23907e88fbc480d6785cb11d92307b668f4f2876a1e362b57edf21c58b992e88a360e62c0ec008c591d22769ea0f41d13441b3339c23702e3af631896c64d3d46dd2bb6345e0dd8085ec5fbbab57ec3f1507370efb63050e3129155f80c5733c63c70bd27a5d2af502676e96105212151a8f4af97ffb35e52b341e3983a254ec7dc936c8de7d752cd65daa271e58d2eafec02c120694dcd54e4b85e9d3b526f492e87c058db1831e5ead3617f0c08bd095ff2d397623bd8c3dccc8f7dfa213fa6ddeac0de78cf498b0240706205b7e162e1703fd46ea4f02ba2c0624cf095be6908ed16059a3d0ebcddd0bd476b75c8687c9229f3b1a9096a899010950678badc06eb72ed0c532445b83f53ff48e07d91c3bf8b841c55e8c58ef28e9efa4e272dda05d4a84fbc3d2a4a48bdacf7e11dba085865f81fc70417c84532a702c5932066e904407803d5f0dd37c33f0727a8c8b4d3702c36ae9d38e7bc01a758dbc5c269b06661a7c58aec7bec4619296c838a5a41627e394092464f79ffbf1a1c1785b6b74035eba2f5d72881fafac30490e29ccd82f1319f43c72b1d83c6c3f9694ca0a81b352e84dcdee64a571999c627f34897d8b24b9f78381e4706a46d231fa19480517f9eafe763f3290c2f41e8b2c406a97af83175c422b8c0d1a624bdd2982c16c0b6ee84cd37c78ee0e5d3b6c6b8fff292bd7aba7904677a37c73e399fe2846aea5efc199dd16666785717f057769460a830e336278985ee89e3a70673b342d11d90625fa5e3ce5854650bb18145f4162cbeb737402594b7e28f58cc5d70ea9ae629c39f9c13f0cc54111e182f53877ae3af7dc7eba68ac5d80d7658ae4bfd3b9d4232a3a3f071b568141cc87580b3bda9efeb59055feefaccdcbb21fdfd04cb16ce1739e26d0278008ca50ea03a286b689d44ef26ba5670d38f16450ac6d0ea6b9f683173ef991b66c16b6eb6bf63db7feb5001655b70531a2825689ccac3775110ee34b771ca6ae11dbc1adceeacce40a38594ab376e6d19579ad3977c7e4ba00d26065af0848cddd8a58a8ba842a9f4a0612cf6fb6eb9ec359f8c7e4e17286949bf11f281c6d51f3cfa8decadf07a8da911b7f60b61d8dfcab26530de61e6e0cdc028b2a3d70e02ecf084c6f2842a768f0f5f6f0f3691d67bd683690e83b3a02515055d56ec540051f16b71f4bbecc66e61583a9b52e63745d999597fb30b566293344ee60c479c8acb035e075df1cba2103894c71acebaa1818750d58a0d664fa751f3408ff06f54f98874eb5b9f452552a834a28f602f35c5b343822d905d90f7de02e8adc46492b465b6cead37314ba4d5e51e44a2f6b3183ecb6ad677c8cbb0df5ab2e420b046624593fafc04f7a36f15532c3e77b87e3b9a39cc39a5adba74df028189b14edbed70f623a0a1d8962a377d0d27b04f5e22f22feffd074fb6f20517446f46e68d1d24cdd11b6f0718c21cc7e2eec90370212437bf6992b44172287d0131c27556b7aa4b5e801556c6f8c96a4c9dbe95965757b81c0c6d0072c7b9299bed3e70b3fc20512357283868caab6b7bbdff811358dc30000000000000000000000000000000000030c161e2629363a", + "result": "invalid", + "flags": [ + "ModifiedSignature" + ] + }, + { + "tcId": 7, + "comment": "signature with a bit flip in z[2]", + "msg": "48656c6c6f20776f726c64", + "sig": "1a13408d3274fb5f79a3039f0b7d693c5a9851fb97e67181dafbda100cf889ebdd724d8da7e22bf30c26e6f9511a69da84637dd2c751b8e26c0baf009a0163e96f7ee0f33174a57ed5c86a0399b8fdafc34e71859a2cd7f6a316d2dae35a13bea9e178a542196d0b17e3e5a3b182f2de5f255d7202f0a4c85c9ff6b0d4d821e2f6894243939e06f01a72d90f3bbad170aed2dd7dd2fc21ef44728dbe05adecbaf1f392ab69909c4194ff215e8c04ec5cd12b99d7b28112e9ddb5dbc91154e4a6daad7cf54581acb79c0424e2ffb9d8b70e1e46b6f47b6cddef5adcf84e9a53cdb69e45549c90e6df73706ac20a303d0c4f6630fc35c2b832c6205b6219913ef7718505c7c5b33d9ded3a8ff6bcf5cbc80b3155b9cda3abcd2d5e0cb055a28c771cf8dc9f6e0f157ac153a53da7ed50bac0e84750550a6fc8fb6696673c20ceac88b60e8a9142b4d3821872331876085427e163e4dcfbdad888e9c862e1293383dbd81af7910c87132dca1f5365f271e671fc2d245fbeedfdb861ebe5a8ce86d37164c66f3f3ae11d39216026e8a6d4fda4c7bfc6513d36fc042dd71fa0960405c122c918eb2b92e046801162d3d3c54c18ed6ff67248c9fcadabc0aa1286986cd748fec67b8f2c7ff0c2801925adb3a0d910506147bac34877d329996a6f0a7b0eec7a0cf352eb6fd09023d30db2b9e371eed224828bc10550fef7c5ff1747ec0ca7b61d1fd4594cc169dcaf14474cbb10b4518dfa848f056be3ff2d71829e261c87a786bdb0289b595c2ebee471af05e06f83ae00f70d9bf8a24d4a02e38e6c3ff7a2020c48801d2d2a28cc14d621bca6a92bbf6b36f011f7f4df81549e160d836c2b6959f848d9d265add11c4c6ee0f51d2f58df64f41152bb7c32886649f8f6e075e57cc5b947cb96038a91ebb5423bd5ec2432155ce2d0f1d81ca969c47c017c2a5472c0a53681e14dceb26b37e894a1a938c033cc2480247e958314d1c251b988ff9a4ed7f67366600ab031601e4684ca5d72a17339e124c5ebb573811b6a584b3d0f1bd040f816cf300aa66eb42d4c5039dd1e0b79decfb5199005d2bbdf9fcebf05a0088983ac6185ce87c95722febcb5b242af1c22973314b44499e8f59127cfb5e58a602d3ee565865bae0729c3b9f31c4aef3dcedf78d6bb520c16d7e1ba5a088ca5cc2217420d99c0613a01f3b75cecd5517636cb864b35a08a6639038bee0250767b9c7bb7d857b8fbe66281f607ed65561d7084e5b31324ae1d7c5fdea534ce4b6fcc7a69add96e99825f86aa6715ff2cb78a0c9281412c7c9c55dfbc16354b564382ed425aa1c8d2604c784fdc5f729c9cd5637eb77172367bd2a8ec0828d9bc03019e5a147d5de676cbaa0f1930603c942feb859f7ec5d70eb148c8afe84b30b3d778f0affcbad6302036291c6518f62e6577794157c985193d858fd602011145c49987a138a8d4e49060600d1b7a76fcee46bbb3241589dcc1320a6bfbcf587d325ba6aebbbe56ec5ce0111a80eafbe430a41a1ebd939583e3adec10f4f1114973fd0b1b0aa75476ec85da51592ec120437ecff50e9afe7401c96ef29297c667ef4da78ac7e1c8486d19faaad35d5904c07e164874f6ef634d5d8a64b076c3f9a37b3d44f61a63b4bb38a3a970d5091e68138bb9301d84db083de275e48fa7553c3e0f1874d0568d594857bf5f52933c5bc4957eeebd2fc7d3c0b90e4b49daf5e447e7d36c4dbdb4c118595f28d3a48b5665a7f995d3e179c96d975d47de5f48cd21c7a1b6a6c673c67669e67e23c3defe0672e8e1289636ec2145a14b6ed50c0b95ebe1b1ba1bd6b8a34a796ad858ab9ce8e678df7355f702ce2959e2c0a1831bb2d203e72cad74d0f9607a34bda435a521c850deee9b6aff6ae182598b74934d0a5d244bde7973cbe89e55a987cdc6cd54fb57b033015294642267b25d2b1016be3f2e842fff9ef1cd2885c99c0d504785ab1fa0f0a7a4828237ddace3c79e0c02dc9d3687c79e01a97cb634fd03dfad85abbeb9567309a21f114817a801cf5bfbd8cf136ddf535469053c43d89feeab902195cb7e2d3c08700bd99d663e65456067b64be4ff2a1572cb696881b3ca64c1566ba7b29cf0ff1cf1a9a24814631ccba5c83874445ed3690db166ec73edf7c2aeecccec9d1ab94187e88dda60936f2e97861acb5f791a67930fcd966eedb4109051edd15f3de10c99b1cef51e9448965a4a4ac8ed10649c5f54f1dbb961d001008b23bb942d49427e61ebb07a02d8c2b32e408f64a69b451cdfca5e0fd8665b800bbb9afb6a0e79bedb9499b14aafd89db80586fbe0166b5d4edc3f5c36e04557897699f32a760a93591eaac14202ca0f193c7c360c83e6dae397c89c2fc5a37883c95a36abbb71dbce6431972297c8e16ca468913b6ffa24d52eaa8d5858cc7cbf1c6d702fe3b236d2b12a63659ded31a5db3500ed37b1f0175af1117456704149506d0d4ae49a5911afbf7ddb6aa9f16cd23721f2ea6920da7bca939910d88237fdb791a90d7c5c7824241e1e62409ad398c64a8470b56fe235b90d85efe648ea33cc0a83ccb941f1cceff086b567c901a5e22e1d8b20af5d75f33aa2e44daef7cfe41d09639da5027e42e646c356367d8943f90d2a80927b140579078eda13a0007f1d3b90ed7d52a34c0cbf632f2177444ef2b47d9ffef295cc49033fb84ca058cdc07696385f0187544f708659ec24c7071c1fe553c20c64cf98ad01b1396bb1699043669b40e8f1b67d42127a2da8ee813ceed2beea7a5a972f55a4239b8013165cc11ac88e2f28b5f7333be23d088acc2fee88233752cebb5c30b6097353056e900e1079e38e389cdb19c81b3c412b9de2f4946b5676862f8473c3f001f7aa0ddec5ec5406afb1fba7c8aaa690aa1618c8244cfcfedc13a8a40f0297d475d43b83e6692c54c1991f3d43cbdb9acd47ed1b0162f83d1ba5a09d753c4d154df38f0042554cbfc98adf3e66928592aa26f330574a8b676d526e84dccc9408bc80d6fded421a66515c0a783600b9aec4304e4d00370e24ed26d1b432e50518f2a132edc1c9fb029c7f8bfb4d8eecf436ed795f31c622efdbb918afe47423d39147a595394cf3af726c70028fce9ec01c465f2fdb0790c372e22a4b826c339ede5cb9a453f228f21946ff3ab02e8d7e844e72b9441d681d73d7417fd5bf5c6099be70830e9d30c99b2b16486208462c6f8d85ee5bb323359d9a3bcf9fae11327f8e06c31c79d66d1ae8b5b5ccbd9bb6ba35bec9ce8c060a0226945543c89f40e7bcced95093c21688c90bb25078d287a66cd18fad9f9a117f4e5afc7ab24689aa797d1623a95e50f4abe45f2fc4d1826f34d54777ba2f6b2acd7427e29b67902a9de8e55e6db362e4fe55a6c24413d2dd6f806f73ed95ed8073bf907382e71ad277a3a20e39a21b8b72e04c7c8511407bc92d4a7fa09a248d96d4e0c8e98ca4d9a821d579ddbcc2c545b3e1cfde9dfa3e812e92c8f75a413a87d61f42f4e7d2062463d5509f3e55ebecc7f615a13c626c265fe8b58c8be96caa72d7a48f87e248923c3ae769f37c5a692d2ce17777a2063ab732e7dfe247f8435930c81d73ad29dbc7579d79534a43d67195d77423ebf396b458084b1140e9fa722eaff25a6519e4ee3a0fac3d239e1cd6edb45f7113fbbc3487bb57ae278caa7a275e344b870691b9119bdbd80c36042de9d69dba4947170cc060b9299a15796f459af7e3cf82d7063dd071fccfc9d7a8852fd61aa9ffd28986504c6e04a67a493e8a76dc7bdf110b9491b290992584ccae69c6dc6eaad78592dcf9b2439144ba4b9872f7c3b1772a01cb7d0a88192c74019b5ee79991541cad2e00c6e5edd4a14abd8c7b57cbaa6c017e703de5c4f6d551baca90f5f0036fef0f7699f992c9921fe3150baf6dfaffbd7db48ca54edc5293306cbc3df9c7fb9ea5467ff8a94f827d532310201e2f7adb89f418df5415d75b54d1f361fddee5d425e0057f320f4afb154f71275fdf0f328300a4d9482f852440b989efa676a420a5c0b0785fb26f7a518534358a8b991c987036744bbf50e32bb8593da4a6add0a5a055df68bf4bffcc23d17ce44b4e565b2224159c86830d87a0e0af467426da1c5c9e43f951405da0f447c957f1ee81b5a4e427b41680af43d546a8ee4057dce454bcb56014095d88a8f37342234588e526f4f8bf8b38dd461403744cc7bf50d702465657614169441a41953f5c535cc1da9ce9dac6c6cb1d15224c10588ce29fd78a53a25b96471e53796ee9aec16837876ebdeb663186b0ae07160e779fc71c8682c1fb4a236dd7438c30b4416d7d1e1ea99ad14e196134ee95a35b7ea46fa7f95db365572677bc86d44fac60ba053137ad91ecdc6e5494354fac09f0cc983973a773d23e78b660c85558a550971a34bf2c42cb8f1fa062b667246952e13012c3a5c72f099aef765d72c042283c07c019536ede021117866b83b71b7265d1731d1f2ebd9fb5b49229f67e3f9a80d4b66f4f8495e6fe8889bcec085a32c6ccc004e003b31ed5e2db2e576825111483049da840dc1cdac7a01d6d9ddd7b0a30c5dce8a74728ecb3cc6d76503a6655c6c6fe1b875cd62f53214fb85ad7c70e526907b8aecd5ce5e85eb6c8eb7a69331caeade3b4a82b94c576b2cfc5dc982edb92a0b526cc861384c1bde479b0346af9dc6517acf97f9045b696df80db3667d49faf349df78f178ef5a1f35d97f8fa30384c9d391eac4b56bb0020505ae93b076c8b9aade70086779fe3b2cf5625fe8c2094856fd6fa79ed960eb9e7ca74472c2f45fbf2af4575e6d7bbc748e197fcc95ebb5015e755c02b4b4ca5d118678c3bb280cede40ae6efb6bd19e8e016b49dfc91cd18c3a71c435b223fbd2ff1f4638a8b4249480c019121d1ffbfb23907e88fbc480d6785cb11d92307b668f4f2876a1e362b57edf21c58b992e88a360e62c0ec008c591d22769ea0f41d13441b3339c23702e3af631896c64d3d46dd2bb6345e0dd8085ec5fbbab57ec3f1507370efb63050e3129155f80c5733c63c70bd27a5d2af502676e96105212151a8f4af97ffb35e52b341e3983a254ec7dc936c8de7d752cd65daa271e58d2eafec02c120694dcd54e4b85e9d3b526f492e87c058db1831e5ead3617f0c08bd095ff2d397623bd8c3dccc8f7dfa213fa6ddeac0de78cf498b0240706205b7e162e1703fd46ea4f02ba2c0624cf095be6908ed16059a3d0ebcddd0bd476b75c8687c9229f3b1a9096a899010950678badc06eb72ed0c532445b83f53ff48e07d91c3bf8b841c55e8c58ef28e9efa4e272dda05d4a84fbc3d2a4a48bdacf7e11dba085865f81fc70417c84532a702c5932066e904407803d5f0dd37c33f0727a8c8b4d3702c36ae9d38e7bc01a758dbc5c269b06661a7c58aec7bec4619296c838a5a41627e394092464f79ffbf1a1c1785b6b74035eba2f5d72881fafac30490e29ccd82f1319f43c72b1d83c6c3f9694ca0a81b352e84dcdee64a571999c627f34897d8b24b9f78381e4706a46d231fa19480517f9eafe763f3290c2f41e8b2c406a97af83175c422b8c0d1a624bdd2982c16c0b6ee84cd37c78ee0e5d3b6c6b8fff292bd7aba7904677a37c73e399fe2846aea5efc199dd16666785717f057769460a830e336278985ee89e3a70673b342d11d90625fa5e3ce5854650bb18145f4162cbeb737402594b7e28f58cc5d70ea9ae629c39f9c13f0cc54111e182f53877ae3af7dc7eba68ac5d80d7658ae4bfd3b9d4232a3a3f071b568141cc87580b3bda9efeb59055feefaccdcbb21fdfd04cb16ce1739e26d0278008ca50ea03a286b689d44ef26ba5670d38f16450ac6d0ea6b9f683173ef991b66c16b6eb6bf63db7feb5001655b70531a2825689ccac3775110ee34b771ca6ae11dbc1adceeacce40a38594ab376e6d19579ad3977c7e4ba00d26065af0848cddd8a58a8ba842a9f4a0612cf6fb6eb9ec359f8c7e4e17286949bf11f281c6d51f3cfa8decadf07a8da911b7f60b61d8dfcab26530de61e6e0cdc028b2a3d70e02ecf084c6f2842a768f0f5f6f0f3691d67bd683690e83b3a02515055d56ec540051f16b71f4bbecc66e61583a9b52e63745d999597fb30b566293344ee60c479c8acb035e075df1cba2103894c71acebaa1818750d58a0d664fa751f3408ff06f54f98874eb5b9f452552a834a28f602f35c5b343822d905d90f7de02e8adc46492b465b6cead37314ba4d5e51e44a2f6b3183ecb6ad677c8cbb0df5ab2e420b046624593fafc04f7a36f15532c3e77b87e3b9a39cc39a5adba74df028189b14edbed70f623a0a1d8962a377d0d27b04f5e22f22feffd074fb6f20517446f46e68d1d24cdd11b6f0718c21cc7e2eec90370212437bf6992b44172287d0131c27556b7aa4b5e801556c6f8c96a4c9dbe95965757b81c0c6d0072c7b9299bed3e70b3fc20512357283868caab6b7bbdff811358dc30000000000000000000000000000000000030c161e2629363a", + "result": "invalid", + "flags": [ + "ModifiedSignature" + ] + }, + { + "tcId": 8, + "comment": "signature with a bit flip in z[3]", + "msg": "48656c6c6f20776f726c64", + "sig": "1a13408d3274fb5f79a3039f0b7d693c5a9851fb97e67181dafbda100cf889ebdd724d8da7e22bf30c26e6f9511a69da84637dd2c751b8e26c0baf009a0163e96f7ee0f33174a57ed5c86a0399b8fdafc34e71859a2cd7f6a316d2dae35a13bea9e178a542196d0b17e3e5a3b182f2de5f255d7202f0a4c85c9ff6b0d4d821e2f6894243939e06f01a72d90f3bbad170aed2dd7dd2fc21ef44728dbe05adecbaf1f392ab69909c4194ff215e8c04ec5cd12b99d7b28112e9ddb5dbc91154e4a6daad7cf54581acb79c0424e2ffb9d8b70e1e46b6f47b6cddef5adcf84e9a53cdb69e45549c90e6df73706ac20a303d0c4f6630fc35c2b832c6205b6219913ef7718505c7c5b33d9ded3a8ff6bcf5cbc80b3155b9cda3abcd2d5e0cb055a28c771cf8dc9f6e0f157ac153a53da7ed50bac0e84750550a6fc8fb6696673c20ceac88b60e8a9142b4d3821872331876085427e163e4dcfbdad888e9c862e1293383dbd81af7910c87132dca1f5365f271e671fc2d245fbeedfdb861ebe5a8ce86d37164c66f3f3ae11d39216026e8a6d4fda4c7bfc6513d36fc042dd71fa0960405c122c918eb2b92e046801162d3d3c54c18ed6ff67248c9fcadabc0aa1286986cd748fec67b8f2c7ff0c2801925adb3a0d910506147bac34877d329996a6f0a7b0eec7a0cf352eb6fd09023d30db2b9e371eed224828bc10550fef7c5ff1747ec0ca7b61d1fd4594cc169dcaf14474cbb10b4518dfa848f056be3ff2d71829e261c87a786bdb0289b595c2ebee471af05e06f83ae00f70d9bf8a24d4a02e38e6c3ff7a2020c48801d2d2a28cc14d621bca6a92bbf6b36f011f7f4df81549e160d836c2b6959f848d9d265add11c4c6ee0f51d2f58df64f41152bb7c32886649f8f6e075e57cc5b947cb96038a91ebb5423bd5ec2432155ce2d0f1d81ca969c47c017c2a5472c0a53681e14dceb26b37e894a1a938c033cc2480247e958314d1c251b988ff9a4ed7f67366600ab031601e4684ca5d72a17339e124c5ebb573811b6a584b3d0f1bd040f816cf300aa66eb42d4c5039dd1e0b79decfb5199005d2bbdf9fcebf05a0088983ac6185ce87c95722febcb5b242af1c22973314b44499e8f59127cfb5e58a602d3ee565865bae0729c3b9f31c4aef3dcedf78d6bb520c16d7e1ba5a088ca5cc2217420d99c0613a01f3b75cecd5517636cb864b35a08a6639038bee0250767b9c7bb7d857b8fbe66281f607ed65561d7084e5b31324ae1d7c5fdea534ce4b6fcc7a69add96e99825f86aa6715ff2cb78a0c9281412c7c9c55dfbc16354b564382ed425aa1c8d2604c784fdc5f729c9cd5637eb77172367bd2a8ec0828d9bc03019e5a147d5de676cbaa0f1930603c942feb859f7ec5d70eb148c8afe84b30b3d778f0affcbad6302036291c6518f62e6577794157c985193d858fd602011145c49987a138a8d4e49060600d1b7a76fcee46bbb3241589dcc1320a6bfbcf587d325ba6aebbbe56ec5ce0111a80eafbe430a41a1ebd939583e3adec10f4f1114973fd0b1b0aa75476ec85da51592ec120437ecff50e9afe7401c96ef29297c667ef4da78ac7e1c8486d19faaad35d5904c07e164874f6ef634d5d8a64b076c3f9a37b3d44f61a63b4bb38a3a970d5091e68138bb9301d84db083de275e48fa7553c3e0f1874d0568d594857bf5f52933c5bc4957eeebd2fc7d3c0b90e4b49daf5e447e7d36c4dbdb4c118595f28d3a48b5665a7f995d3e179c96d975d47de5f48cd21c7a1b6a6c673c67669e67e23c3defe0672e8e1289636ec2145a14b6ed50c0b95ebe1b1ba1bd6b8a34a796ad858ab9ce8e678df7355f702ce2959e2c0a1831bb2d203e72cad74d0f9607a34bda435a521c850deee9b6afe6ae182598b74934d0a5d244bde7973cbe89e55a987cdc6cd54fb57b033015294642267b25d2b1016be3f2e842fff9ef1cd2885c99c0d504785ab1fa0f0a7a4828237ddace3c79e0c02dc9d3687c79e01a97cb634fd03dfad85abbeb9567309a21f114817a801cf5bfbd8cf136ddf535469053c43d89feeab902195cb7e2d3c08700bd99d663e65456067b64be4ff2a1572cb696881b3ca64c1566ba7b29cf0ff1cf1a9a24814631ccba5c83874445ed3690db166ec73edf7c2aeecccec9d1ab94187e88dda60936f2e97861acb5f791a67930fcd966eedb4109051edd15f3de10c99b1cef51e9448965a4a4ac8ed10649c5f54f1dbb961d001008b23bb942d49427e61ebb07a02d8c2b32e408f64a69b451cdfca5e0fd8665b800bbb9afb6a0e79bedb9499b14aafd89db80586fbe0166b5d4edc3f5c36e04557897699f32a760a93591eaac14202ca0f193c7c360c83e6dae397c89c2fc5a37883c95a36abbb71dbce6431972297c8e16ca468913b6ffa24d52eaa8d5858cc7cbf1c6d702fe3b236d2b12a63659ded31a5db3500ed37b1f0175af1117456704149506d0d4ae49a5911afbf7ddb6aa9f16cd23721f2ea6920da7bca939910d88237fdb791a90d7c5c7824241e1e62409ad398c64a8470b56fe235b90d85efe648ea33cc0a83ccb941f1cceff086b567c901a5e22e1d8b20af5d75f33aa2e44daef7cfe41d09639da5027e42e646c356367d8943f90d2a80927b140579078eda13a0007f1d3b90ed7d52a34c0cbf632f2177444ef2b47d9ffef295cc49033fb84ca058cdc07696385f0187544f708659ec24c7071c1fe553c20c64cf98ad01b1396bb1699043669b40e8f1b67d42127a2da8ee813ceed2beea7a5a972f55a4239b8013165cc11bc88e2f28b5f7333be23d088acc2fee88233752cebb5c30b6097353056e900e1079e38e389cdb19c81b3c412b9de2f4946b5676862f8473c3f001f7aa0ddec5ec5406afb1fba7c8aaa690aa1618c8244cfcfedc13a8a40f0297d475d43b83e6692c54c1991f3d43cbdb9acd47ed1b0162f83d1ba5a09d753c4d154df38f0042554cbfc98adf3e66928592aa26f330574a8b676d526e84dccc9408bc80d6fded421a66515c0a783600b9aec4304e4d00370e24ed26d1b432e50518f2a132edc1c9fb029c7f8bfb4d8eecf436ed795f31c622efdbb918afe47423d39147a595394cf3af726c70028fce9ec01c465f2fdb0790c372e22a4b826c339ede5cb9a453f228f21946ff3ab02e8d7e844e72b9441d681d73d7417fd5bf5c6099be70830e9d30c99b2b16486208462c6f8d85ee5bb323359d9a3bcf9fae11327f8e06c31c79d66d1ae8b5b5ccbd9bb6ba35bec9ce8c060a0226945543c89f40e7bcced95093c21688c90bb25078d287a66cd18fad9f9a117f4e5afc7ab24689aa797d1623a95e50f4abe45f2fc4d1826f34d54777ba2f6b2acd7427e29b67902a9de8e55e6db362e4fe55a6c24413d2dd6f806f73ed95ed8073bf907382e71ad277a3a20e39a21b8b72e04c7c8511407bc92d4a7fa09a248d96d4e0c8e98ca4d9a821d579ddbcc2c545b3e1cfde9dfa3e812e92c8f75a413a87d61f42f4e7d2062463d5509f3e55ebecc7f615a13c626c265fe8b58c8be96caa72d7a48f87e248923c3ae769f37c5a692d2ce17777a2063ab732e7dfe247f8435930c81d73ad29dbc7579d79534a43d67195d77423ebf396b458084b1140e9fa722eaff25a6519e4ee3a0fac3d239e1cd6edb45f7113fbbc3487bb57ae278caa7a275e344b870691b9119bdbd80c36042de9d69dba4947170cc060b9299a15796f459af7e3cf82d7063dd071fccfc9d7a8852fd61aa9ffd28986504c6e04a67a493e8a76dc7bdf110b9491b290992584ccae69c6dc6eaad78592dcf9b2439144ba4b9872f7c3b1772a01cb7d0a88192c74019b5ee79991541cad2e00c6e5edd4a14abd8c7b57cbaa6c017e703de5c4f6d551baca90f5f0036fef0f7699f992c9921fe3150baf6dfaffbd7db48ca54edc5293306cbc3df9c7fb9ea5467ff8a94f827d532310201e2f7adb89f418df5415d75b54d1f361fddee5d425e0057f320f4afb154f71275fdf0f328300a4d9482f852440b989efa676a420a5c0b0785fb26f7a518534358a8b991c987036744bbf50e32bb8593da4a6add0a5a055df68bf4bffcc23d17ce44b4e565b2224159c86830d87a0e0af467426da1c5c9e43f951405da0f447c957f1ee81b5a4e427b41680af43d546a8ee4057dce454bcb56014095d88a8f37342234588e526f4f8bf8b38dd461403744cc7bf50d702465657614169441a41953f5c535cc1da9ce9dac6c6cb1d15224c10588ce29fd78a53a25b96471e53796ee9aec16837876ebdeb663186b0ae07160e779fc71c8682c1fb4a236dd7438c30b4416d7d1e1ea99ad14e196134ee95a35b7ea46fa7f95db365572677bc86d44fac60ba053137ad91ecdc6e5494354fac09f0cc983973a773d23e78b660c85558a550971a34bf2c42cb8f1fa062b667246952e13012c3a5c72f099aef765d72c042283c07c019536ede021117866b83b71b7265d1731d1f2ebd9fb5b49229f67e3f9a80d4b66f4f8495e6fe8889bcec085a32c6ccc004e003b31ed5e2db2e576825111483049da840dc1cdac7a01d6d9ddd7b0a30c5dce8a74728ecb3cc6d76503a6655c6c6fe1b875cd62f53214fb85ad7c70e526907b8aecd5ce5e85eb6c8eb7a69331caeade3b4a82b94c576b2cfc5dc982edb92a0b526cc861384c1bde479b0346af9dc6517acf97f9045b696df80db3667d49faf349df78f178ef5a1f35d97f8fa30384c9d391eac4b56bb0020505ae93b076c8b9aade70086779fe3b2cf5625fe8c2094856fd6fa79ed960eb9e7ca74472c2f45fbf2af4575e6d7bbc748e197fcc95ebb5015e755c02b4b4ca5d118678c3bb280cede40ae6efb6bd19e8e016b49dfc91cd18c3a71c435b223fbd2ff1f4638a8b4249480c019121d1ffbfb23907e88fbc480d6785cb11d92307b668f4f2876a1e362b57edf21c58b992e88a360e62c0ec008c591d22769ea0f41d13441b3339c23702e3af631896c64d3d46dd2bb6345e0dd8085ec5fbbab57ec3f1507370efb63050e3129155f80c5733c63c70bd27a5d2af502676e96105212151a8f4af97ffb35e52b341e3983a254ec7dc936c8de7d752cd65daa271e58d2eafec02c120694dcd54e4b85e9d3b526f492e87c058db1831e5ead3617f0c08bd095ff2d397623bd8c3dccc8f7dfa213fa6ddeac0de78cf498b0240706205b7e162e1703fd46ea4f02ba2c0624cf095be6908ed16059a3d0ebcddd0bd476b75c8687c9229f3b1a9096a899010950678badc06eb72ed0c532445b83f53ff48e07d91c3bf8b841c55e8c58ef28e9efa4e272dda05d4a84fbc3d2a4a48bdacf7e11dba085865f81fc70417c84532a702c5932066e904407803d5f0dd37c33f0727a8c8b4d3702c36ae9d38e7bc01a758dbc5c269b06661a7c58aec7bec4619296c838a5a41627e394092464f79ffbf1a1c1785b6b74035eba2f5d72881fafac30490e29ccd82f1319f43c72b1d83c6c3f9694ca0a81b352e84dcdee64a571999c627f34897d8b24b9f78381e4706a46d231fa19480517f9eafe763f3290c2f41e8b2c406a97af83175c422b8c0d1a624bdd2982c16c0b6ee84cd37c78ee0e5d3b6c6b8fff292bd7aba7904677a37c73e399fe2846aea5efc199dd16666785717f057769460a830e336278985ee89e3a70673b342d11d90625fa5e3ce5854650bb18145f4162cbeb737402594b7e28f58cc5d70ea9ae629c39f9c13f0cc54111e182f53877ae3af7dc7eba68ac5d80d7658ae4bfd3b9d4232a3a3f071b568141cc87580b3bda9efeb59055feefaccdcbb21fdfd04cb16ce1739e26d0278008ca50ea03a286b689d44ef26ba5670d38f16450ac6d0ea6b9f683173ef991b66c16b6eb6bf63db7feb5001655b70531a2825689ccac3775110ee34b771ca6ae11dbc1adceeacce40a38594ab376e6d19579ad3977c7e4ba00d26065af0848cddd8a58a8ba842a9f4a0612cf6fb6eb9ec359f8c7e4e17286949bf11f281c6d51f3cfa8decadf07a8da911b7f60b61d8dfcab26530de61e6e0cdc028b2a3d70e02ecf084c6f2842a768f0f5f6f0f3691d67bd683690e83b3a02515055d56ec540051f16b71f4bbecc66e61583a9b52e63745d999597fb30b566293344ee60c479c8acb035e075df1cba2103894c71acebaa1818750d58a0d664fa751f3408ff06f54f98874eb5b9f452552a834a28f602f35c5b343822d905d90f7de02e8adc46492b465b6cead37314ba4d5e51e44a2f6b3183ecb6ad677c8cbb0df5ab2e420b046624593fafc04f7a36f15532c3e77b87e3b9a39cc39a5adba74df028189b14edbed70f623a0a1d8962a377d0d27b04f5e22f22feffd074fb6f20517446f46e68d1d24cdd11b6f0718c21cc7e2eec90370212437bf6992b44172287d0131c27556b7aa4b5e801556c6f8c96a4c9dbe95965757b81c0c6d0072c7b9299bed3e70b3fc20512357283868caab6b7bbdff811358dc30000000000000000000000000000000000030c161e2629363a", + "result": "invalid", + "flags": [ + "ModifiedSignature" + ] + }, + { + "tcId": 9, + "comment": "signature with a bit flip in z[4]", + "msg": "48656c6c6f20776f726c64", + "sig": "1a13408d3274fb5f79a3039f0b7d693c5a9851fb97e67181dafbda100cf889ebdd724d8da7e22bf30c26e6f9511a69da84637dd2c751b8e26c0baf009a0163e96f7ee0f33174a57ed5c86a0399b8fdafc34e71859a2cd7f6a316d2dae35a13bea9e178a542196d0b17e3e5a3b182f2de5f255d7202f0a4c85c9ff6b0d4d821e2f6894243939e06f01a72d90f3bbad170aed2dd7dd2fc21ef44728dbe05adecbaf1f392ab69909c4194ff215e8c04ec5cd12b99d7b28112e9ddb5dbc91154e4a6daad7cf54581acb79c0424e2ffb9d8b70e1e46b6f47b6cddef5adcf84e9a53cdb69e45549c90e6df73706ac20a303d0c4f6630fc35c2b832c6205b6219913ef7718505c7c5b33d9ded3a8ff6bcf5cbc80b3155b9cda3abcd2d5e0cb055a28c771cf8dc9f6e0f157ac153a53da7ed50bac0e84750550a6fc8fb6696673c20ceac88b60e8a9142b4d3821872331876085427e163e4dcfbdad888e9c862e1293383dbd81af7910c87132dca1f5365f271e671fc2d245fbeedfdb861ebe5a8ce86d37164c66f3f3ae11d39216026e8a6d4fda4c7bfc6513d36fc042dd71fa0960405c122c918eb2b92e046801162d3d3c54c18ed6ff67248c9fcadabc0aa1286986cd748fec67b8f2c7ff0c2801925adb3a0d910506147bac34877d329996a6f0a7b0eec7a0cf352eb6fd09023d30db2b9e371eed224828bc10550fef7c5ff1747ec0ca7b61d1fd4594cc169dcaf14474cbb10b4518dfa848f056be3ff2d71829e261c87a786bdb0289b595c2ebee471af05e06f83ae00f70d9bf8a24d4a02e38e6c3ff7a2020c48801d2d2a28cc14d621bca6a92bbf6b36f011f7f4df81549e160d836c2b6959f848d9d265add11c4c6ee0f51d2f58df64f41152bb7c32886649f8f6e075e57cc5b947cb96038a91ebb5423bd5ec2432155ce2d0f1d81ca969c47c017c2a5472c0a53681e14dceb26b37e894a1a938c033cc2480247e958314d1c251b988ff9a4ed7f67366600ab031601e4684ca5d72a17339e124c5ebb573811b6a584b3d0f1bd040f816cf300aa66eb42d4c5039dd1e0b79decfb5199005d2bbdf9fcebf05a0088983ac6185ce87c95722febcb5b242af1c22973314b44499e8f59127cfb5e58a602d3ee565865bae0729c3b9f31c4aef3dcedf78d6bb520c16d7e1ba5a088ca5cc2217420d99c0613a01f3b75cecd5517636cb864b35a08a6639038bee0250767b9c7bb7d857b8fbe66281f607ed65561d7084e5b31324ae1d7c5fdea534ce4b6fcc7a69add96e99825f86aa6715ff2cb78a0c9281412c7c9c55dfbc16354b564382ed425aa1c8d2604c784fdc5f729c9cd5637eb77172367bd2a8ec0828d9bc03019e5a147d5de676cbaa0f1930603c942feb859f7ec5d70eb148c8afe84b30b3d778f0affcbad6302036291c6518f62e6577794157c985193d858fd602011145c49987a138a8d4e49060600d1b7a76fcee46bbb3241589dcc1320a6bfbcf587d325ba6aebbbe56ec5ce0111a80eafbe430a41a1ebd939583e3adec10f4f1114973fd0b1b0aa75476ec85da51592ec120437ecff50e9afe7401c96ef29297c667ef4da78ac7e1c8486d19faaad35d5904c07e164874f6ef634d5d8a64b076c3f9a37b3d44f61a63b4bb38a3a970d5091e68138bb9301d84db083de275e48fa7553c3e0f1874d0568d594857bf5f52933c5bc4957eeebd2fc7d3c0b90e4b49daf5e447e7d36c4dbdb4c118595f28d3a48b5665a7f995d3e179c96d975d47de5f48cd21c7a1b6a6c673c67669e67e23c3defe0672e8e1289636ec2145a14b6ed50c0b95ebe1b1ba1bd6b8a34a796ad858ab9ce8e678df7355f702ce2959e2c0a1831bb2d203e72cad74d0f9607a34bda435a521c850deee9b6afe6ae182598b74934d0a5d244bde7973cbe89e55a987cdc6cd54fb57b033015294642267b25d2b1016be3f2e842fff9ef1cd2885c99c0d504785ab1fa0f0a7a4828237ddace3c79e0c02dc9d3687c79e01a97cb634fd03dfad85abbeb9567309a21f114817a801cf5bfbd8cf136ddf535469053c43d89feeab902195cb7e2d3c08700bd99d663e65456067b64be4ff2a1572cb696881b3ca64c1566ba7b29cf0ff1cf1a9a24814631ccba5c83874445ed3690db166ec73edf7c2aeecccec9d1ab94187e88dda60936f2e97861acb5f791a67930fcd966eedb4109051edd15f3de10c99b1cef51e9448965a4a4ac8ed10649c5f54f1dbb961d001008b23bb942d49427e61ebb07a02d8c2b32e408f64a69b451cdfca5e0fd8665b800bbb9afb6a0e79bedb9499b14aafd89db80586fbe0166b5d4edc3f5c36e04557897699f32a760a93591eaac14202ca0f193c7c360c83e6dae397c89c2fc5a37883c95a36abbb71dbce6431972297c8e16ca468913b6ffa24d52eaa8d5858cc7cbf1c6d702fe3b236d2b12a63659ded31a5db3500ed37b1f0175af1117456704149506d0d4ae49a5911afbf7ddb6aa9f16cd23721f2ea6920da7bca939910d88237fdb791a90d7c5c7824241e1e62409ad398c64a8470b56fe235b90d85efe648ea33cc0a83ccb941f1cceff086b567c901a5e22e1d8b20af5d75f33aa2e44daef7cfe41d09639da5027e42e646c356367d8943f90d2a80927b140579078eda13a0007f1d3b90ed7d52a34c0cbf632f2177444ef2b47d9ffef295cc49033fb84ca058cdc07696385f0187544f708659ec24c7071c1fe553c20c64cf98ad01b1396bb1699043669b40e8f1b67d42127a2da8ee813ceed2beea7a5a972f55a4239b8013165cc11ac88e2f28b5f7333be23d088acc2fee88233752cebb5c30b6097353056e900e1079e38e389cdb19c81b3c412b9de2f4946b5676862f8473c3f001f7aa0ddec5ec5406afb1fba7c8aaa690aa1618c8244cfcfedc13a8a40f0297d475d43b83e6692c54c1991f3d43cbdb9acd47ed1b0162f83d1ba5a09d753c4d154df38f0042554cbfc98adf3e66928592aa26f330574a8b676d526e84dccc9408bc80d6fded421a66515c0a783600b9aec4304e4d00370e24ed26d1b432e50518f2a132edc1c9fb029c7f8bfb4d8eecf436ed795f31c622efdbb918afe47423d39147a595394cf3af726c70028fce9ec01c465f2fdb0790c372e22a4b826c339ede5cb9a453f228f21946ff3ab02e8d7e844e72b9441d681d73d7417fd5bf5c6099be70830e9d30c99b2b16486208462c6f8d85ee5bb323359d9a3bcf9fae11327f8e06c31c79d66d1ae8b5b5ccbd9bb6ba35bec9ce8c060a0226945543c89f40e7bcced95093c21688c90bb25078d287a66cd18fad9f9a117f4e5afc7ab24689aa797d1623a95e50f4abe45f2fc4d1826f34d54777ba2f6b2acd7427e29b67902a9de8e55e6db362e4fe55a6c24413d2dd6f806f73ed95ed8073bf907382e71ad277a3a20e39a21b8b72e04c7c8511407bc92d4a7fa09a248d96d4e0c8e98ca4d9a821d579ddbcc2c545b3e1cfde9dfa3e812e92c8f75a413a87d61f42f4e7d2062463d5509f3e55ebecc7f615a13c626c265fe8b58c8be96caa72d7a48f87e248923c3ae769f37c5a692d2ce17777a2063ab732e7dfe247f8435930c81d73ad29dbc7579d79534a43d67195d77423ebf396b458084b1140e9fa722eaff25a6519e4ee3a0fac3d239e1cd6edb45f7113fbbc3487bb57ae278caa7a275e344b870691b9119bdad80c36042de9d69dba4947170cc060b9299a15796f459af7e3cf82d7063dd071fccfc9d7a8852fd61aa9ffd28986504c6e04a67a493e8a76dc7bdf110b9491b290992584ccae69c6dc6eaad78592dcf9b2439144ba4b9872f7c3b1772a01cb7d0a88192c74019b5ee79991541cad2e00c6e5edd4a14abd8c7b57cbaa6c017e703de5c4f6d551baca90f5f0036fef0f7699f992c9921fe3150baf6dfaffbd7db48ca54edc5293306cbc3df9c7fb9ea5467ff8a94f827d532310201e2f7adb89f418df5415d75b54d1f361fddee5d425e0057f320f4afb154f71275fdf0f328300a4d9482f852440b989efa676a420a5c0b0785fb26f7a518534358a8b991c987036744bbf50e32bb8593da4a6add0a5a055df68bf4bffcc23d17ce44b4e565b2224159c86830d87a0e0af467426da1c5c9e43f951405da0f447c957f1ee81b5a4e427b41680af43d546a8ee4057dce454bcb56014095d88a8f37342234588e526f4f8bf8b38dd461403744cc7bf50d702465657614169441a41953f5c535cc1da9ce9dac6c6cb1d15224c10588ce29fd78a53a25b96471e53796ee9aec16837876ebdeb663186b0ae07160e779fc71c8682c1fb4a236dd7438c30b4416d7d1e1ea99ad14e196134ee95a35b7ea46fa7f95db365572677bc86d44fac60ba053137ad91ecdc6e5494354fac09f0cc983973a773d23e78b660c85558a550971a34bf2c42cb8f1fa062b667246952e13012c3a5c72f099aef765d72c042283c07c019536ede021117866b83b71b7265d1731d1f2ebd9fb5b49229f67e3f9a80d4b66f4f8495e6fe8889bcec085a32c6ccc004e003b31ed5e2db2e576825111483049da840dc1cdac7a01d6d9ddd7b0a30c5dce8a74728ecb3cc6d76503a6655c6c6fe1b875cd62f53214fb85ad7c70e526907b8aecd5ce5e85eb6c8eb7a69331caeade3b4a82b94c576b2cfc5dc982edb92a0b526cc861384c1bde479b0346af9dc6517acf97f9045b696df80db3667d49faf349df78f178ef5a1f35d97f8fa30384c9d391eac4b56bb0020505ae93b076c8b9aade70086779fe3b2cf5625fe8c2094856fd6fa79ed960eb9e7ca74472c2f45fbf2af4575e6d7bbc748e197fcc95ebb5015e755c02b4b4ca5d118678c3bb280cede40ae6efb6bd19e8e016b49dfc91cd18c3a71c435b223fbd2ff1f4638a8b4249480c019121d1ffbfb23907e88fbc480d6785cb11d92307b668f4f2876a1e362b57edf21c58b992e88a360e62c0ec008c591d22769ea0f41d13441b3339c23702e3af631896c64d3d46dd2bb6345e0dd8085ec5fbbab57ec3f1507370efb63050e3129155f80c5733c63c70bd27a5d2af502676e96105212151a8f4af97ffb35e52b341e3983a254ec7dc936c8de7d752cd65daa271e58d2eafec02c120694dcd54e4b85e9d3b526f492e87c058db1831e5ead3617f0c08bd095ff2d397623bd8c3dccc8f7dfa213fa6ddeac0de78cf498b0240706205b7e162e1703fd46ea4f02ba2c0624cf095be6908ed16059a3d0ebcddd0bd476b75c8687c9229f3b1a9096a899010950678badc06eb72ed0c532445b83f53ff48e07d91c3bf8b841c55e8c58ef28e9efa4e272dda05d4a84fbc3d2a4a48bdacf7e11dba085865f81fc70417c84532a702c5932066e904407803d5f0dd37c33f0727a8c8b4d3702c36ae9d38e7bc01a758dbc5c269b06661a7c58aec7bec4619296c838a5a41627e394092464f79ffbf1a1c1785b6b74035eba2f5d72881fafac30490e29ccd82f1319f43c72b1d83c6c3f9694ca0a81b352e84dcdee64a571999c627f34897d8b24b9f78381e4706a46d231fa19480517f9eafe763f3290c2f41e8b2c406a97af83175c422b8c0d1a624bdd2982c16c0b6ee84cd37c78ee0e5d3b6c6b8fff292bd7aba7904677a37c73e399fe2846aea5efc199dd16666785717f057769460a830e336278985ee89e3a70673b342d11d90625fa5e3ce5854650bb18145f4162cbeb737402594b7e28f58cc5d70ea9ae629c39f9c13f0cc54111e182f53877ae3af7dc7eba68ac5d80d7658ae4bfd3b9d4232a3a3f071b568141cc87580b3bda9efeb59055feefaccdcbb21fdfd04cb16ce1739e26d0278008ca50ea03a286b689d44ef26ba5670d38f16450ac6d0ea6b9f683173ef991b66c16b6eb6bf63db7feb5001655b70531a2825689ccac3775110ee34b771ca6ae11dbc1adceeacce40a38594ab376e6d19579ad3977c7e4ba00d26065af0848cddd8a58a8ba842a9f4a0612cf6fb6eb9ec359f8c7e4e17286949bf11f281c6d51f3cfa8decadf07a8da911b7f60b61d8dfcab26530de61e6e0cdc028b2a3d70e02ecf084c6f2842a768f0f5f6f0f3691d67bd683690e83b3a02515055d56ec540051f16b71f4bbecc66e61583a9b52e63745d999597fb30b566293344ee60c479c8acb035e075df1cba2103894c71acebaa1818750d58a0d664fa751f3408ff06f54f98874eb5b9f452552a834a28f602f35c5b343822d905d90f7de02e8adc46492b465b6cead37314ba4d5e51e44a2f6b3183ecb6ad677c8cbb0df5ab2e420b046624593fafc04f7a36f15532c3e77b87e3b9a39cc39a5adba74df028189b14edbed70f623a0a1d8962a377d0d27b04f5e22f22feffd074fb6f20517446f46e68d1d24cdd11b6f0718c21cc7e2eec90370212437bf6992b44172287d0131c27556b7aa4b5e801556c6f8c96a4c9dbe95965757b81c0c6d0072c7b9299bed3e70b3fc20512357283868caab6b7bbdff811358dc30000000000000000000000000000000000030c161e2629363a", + "result": "invalid", + "flags": [ + "ModifiedSignature" + ] + }, + { + "tcId": 10, + "comment": "signature with a bit flip in z[5]", + "msg": "48656c6c6f20776f726c64", + "sig": "1a13408d3274fb5f79a3039f0b7d693c5a9851fb97e67181dafbda100cf889ebdd724d8da7e22bf30c26e6f9511a69da84637dd2c751b8e26c0baf009a0163e96f7ee0f33174a57ed5c86a0399b8fdafc34e71859a2cd7f6a316d2dae35a13bea9e178a542196d0b17e3e5a3b182f2de5f255d7202f0a4c85c9ff6b0d4d821e2f6894243939e06f01a72d90f3bbad170aed2dd7dd2fc21ef44728dbe05adecbaf1f392ab69909c4194ff215e8c04ec5cd12b99d7b28112e9ddb5dbc91154e4a6daad7cf54581acb79c0424e2ffb9d8b70e1e46b6f47b6cddef5adcf84e9a53cdb69e45549c90e6df73706ac20a303d0c4f6630fc35c2b832c6205b6219913ef7718505c7c5b33d9ded3a8ff6bcf5cbc80b3155b9cda3abcd2d5e0cb055a28c771cf8dc9f6e0f157ac153a53da7ed50bac0e84750550a6fc8fb6696673c20ceac88b60e8a9142b4d3821872331876085427e163e4dcfbdad888e9c862e1293383dbd81af7910c87132dca1f5365f271e671fc2d245fbeedfdb861ebe5a8ce86d37164c66f3f3ae11d39216026e8a6d4fda4c7bfc6513d36fc042dd71fa0960405c122c918eb2b92e046801162d3d3c54c18ed6ff67248c9fcadabc0aa1286986cd748fec67b8f2c7ff0c2801925adb3a0d910506147bac34877d329996a6f0a7b0eec7a0cf352eb6fd09023d30db2b9e371eed224828bc10550fef7c5ff1747ec0ca7b61d1fd4594cc169dcaf14474cbb10b4518dfa848f056be3ff2d71829e261c87a786bdb0289b595c2ebee471af05e06f83ae00f70d9bf8a24d4a02e38e6c3ff7a2020c48801d2d2a28cc14d621bca6a92bbf6b36f011f7f4df81549e160d836c2b6959f848d9d265add11c4c6ee0f51d2f58df64f41152bb7c32886649f8f6e075e57cc5b947cb96038a91ebb5423bd5ec2432155ce2d0f1d81ca969c47c017c2a5472c0a53681e14dceb26b37e894a1a938c033cc2480247e958314d1c251b988ff9a4ed7f67366600ab031601e4684ca5d72a17339e124c5ebb573811b6a584b3d0f1bd040f816cf300aa66eb42d4c5039dd1e0b79decfb5199005d2bbdf9fcebf05a0088983ac6185ce87c95722febcb5b242af1c22973314b44499e8f59127cfb5e58a602d3ee565865bae0729c3b9f31c4aef3dcedf78d6bb520c16d7e1ba5a088ca5cc2217420d99c0613a01f3b75cecd5517636cb864b35a08a6639038bee0250767b9c7bb7d857b8fbe66281f607ed65561d7084e5b31324ae1d7c5fdea534ce4b6fcc7a69add96e99825f86aa6715ff2cb78a0c9281412c7c9c55dfbc16354b564382ed425aa1c8d2604c784fdc5f729c9cd5637eb77172367bd2a8ec0828d9bc03019e5a147d5de676cbaa0f1930603c942feb859f7ec5d70eb148c8afe84b30b3d778f0affcbad6302036291c6518f62e6577794157c985193d858fd602011145c49987a138a8d4e49060600d1b7a76fcee46bbb3241589dcc1320a6bfbcf587d325ba6aebbbe56ec5ce0111a80eafbe430a41a1ebd939583e3adec10f4f1114973fd0b1b0aa75476ec85da51592ec120437ecff50e9afe7401c96ef29297c667ef4da78ac7e1c8486d19faaad35d5904c07e164874f6ef634d5d8a64b076c3f9a37b3d44f61a63b4bb38a3a970d5091e68138bb9301d84db083de275e48fa7553c3e0f1874d0568d594857bf5f52933c5bc4957eeebd2fc7d3c0b90e4b49daf5e447e7d36c4dbdb4c118595f28d3a48b5665a7f995d3e179c96d975d47de5f48cd21c7a1b6a6c673c67669e67e23c3defe0672e8e1289636ec2145a14b6ed50c0b95ebe1b1ba1bd6b8a34a796ad858ab9ce8e678df7355f702ce2959e2c0a1831bb2d203e72cad74d0f9607a34bda435a521c850deee9b6afe6ae182598b74934d0a5d244bde7973cbe89e55a987cdc6cd54fb57b033015294642267b25d2b1016be3f2e842fff9ef1cd2885c99c0d504785ab1fa0f0a7a4828237ddace3c79e0c02dc9d3687c79e01a97cb634fd03dfad85abbeb9567309a21f114817a801cf5bfbd8cf136ddf535469053c43d89feeab902195cb7e2d3c08700bd99d663e65456067b64be4ff2a1572cb696881b3ca64c1566ba7b29cf0ff1cf1a9a24814631ccba5c83874445ed3690db166ec73edf7c2aeecccec9d1ab94187e88dda60936f2e97861acb5f791a67930fcd966eedb4109051edd15f3de10c99b1cef51e9448965a4a4ac8ed10649c5f54f1dbb961d001008b23bb942d49427e61ebb07a02d8c2b32e408f64a69b451cdfca5e0fd8665b800bbb9afb6a0e79bedb9499b14aafd89db80586fbe0166b5d4edc3f5c36e04557897699f32a760a93591eaac14202ca0f193c7c360c83e6dae397c89c2fc5a37883c95a36abbb71dbce6431972297c8e16ca468913b6ffa24d52eaa8d5858cc7cbf1c6d702fe3b236d2b12a63659ded31a5db3500ed37b1f0175af1117456704149506d0d4ae49a5911afbf7ddb6aa9f16cd23721f2ea6920da7bca939910d88237fdb791a90d7c5c7824241e1e62409ad398c64a8470b56fe235b90d85efe648ea33cc0a83ccb941f1cceff086b567c901a5e22e1d8b20af5d75f33aa2e44daef7cfe41d09639da5027e42e646c356367d8943f90d2a80927b140579078eda13a0007f1d3b90ed7d52a34c0cbf632f2177444ef2b47d9ffef295cc49033fb84ca058cdc07696385f0187544f708659ec24c7071c1fe553c20c64cf98ad01b1396bb1699043669b40e8f1b67d42127a2da8ee813ceed2beea7a5a972f55a4239b8013165cc11ac88e2f28b5f7333be23d088acc2fee88233752cebb5c30b6097353056e900e1079e38e389cdb19c81b3c412b9de2f4946b5676862f8473c3f001f7aa0ddec5ec5406afb1fba7c8aaa690aa1618c8244cfcfedc13a8a40f0297d475d43b83e6692c54c1991f3d43cbdb9acd47ed1b0162f83d1ba5a09d753c4d154df38f0042554cbfc98adf3e66928592aa26f330574a8b676d526e84dccc9408bc80d6fded421a66515c0a783600b9aec4304e4d00370e24ed26d1b432e50518f2a132edc1c9fb029c7f8bfb4d8eecf436ed795f31c622efdbb918afe47423d39147a595394cf3af726c70028fce9ec01c465f2fdb0790c372e22a4b826c339ede5cb9a453f228f21946ff3ab02e8d7e844e72b9441d681d73d7417fd5bf5c6099be70830e9d30c99b2b16486208462c6f8d85ee5bb323359d9a3bcf9fae11327f8e06c31c79d66d1ae8b5b5ccbd9bb6ba35bec9ce8c060a0226945543c89f40e7bcced95093c21688c90bb25078d287a66cd18fad9f9a117f4e5afc7ab24689aa797d1623a95e50f4abe45f2fc4d1826f34d54777ba2f6b2acd7427e29b67902a9de8e55e6db362e4fe55a6c24413d2dd6f806f73ed95ed8073bf907382e71ad277a3a20e39a21b8b72e04c7c8511407bc92d4a7fa09a248d96d4e0c8e98ca4d9a821d579ddbcc2c545b3e1cfde9dfa3e812e92c8f75a413a87d61f42f4e7d2062463d5509f3e55ebecc7f615a13c626c265fe8b58c8be96caa72d7a48f87e248923c3ae769f37c5a692d2ce17777a2063ab732e7dfe247f8435930c81d73ad29dbc7579d79534a43d67195d77423ebf396b458084b1140e9fa722eaff25a6519e4ee3a0fac3d239e1cd6edb45f7113fbbc3487bb57ae278caa7a275e344b870691b9119bdbd80c36042de9d69dba4947170cc060b9299a15796f459af7e3cf82d7063dd071fccfc9d7a8852fd61aa9ffd28986504c6e04a67a493e8a76dc7bdf110b9491b290992584ccae69c6dc6eaad78592dcf9b2439144ba4b9872f7c3b1772a01cb7d0a88192c74019b5ee79991541cad2e00c6e5edd4a14abd8c7b57cbaa6c017e703de5c4f6d551baca90f5f0036fef0f7699f992c9921fe3150baf6dfaffbd7db48ca54edc5293306cbc3df9c7fb9ea5467ff8a94f827d532310201e2f7adb89f418df5415d75b54d1f361fddee5d425e0057f320f4afb154f71275fdf0f328300a4d9482f852440b989efa676a420a5c0b0785fb26f7a518534358a8b991c987036744bbf50e32bb8593da4a6add0a5a055df68bf4bffcc23d17ce44b4e565b2224159c86830d87a0e0af467426da1c5c9e43f951405da0f447c957f1ee81b5a4e427b41680af43d546a8ee4057dce454bcb56014095d88a8f37342234588e526f4f8bf8b38dd461403744cc7bf50d702465657614169441a41953f5c535cc1da9ce9dac6c6cb1d15224c10588ce29fd78a53a25b96471e53796ee9aec16837876ebdeb663186b0ae07160e779fc71c8682c1fb4a236dd7438c30b4416d7d1e1ea99ad14e196134ee95a35b7ea46fa7f95db365572677bc86d44fac60ba053137ad91ecdc6e5494354fac09f0cc983973a773d23e78b660c85558a550971a34bf2c42cb8f1fa062b667246952e13012c3a5c72f099aef765d72c042283c07c019536ede021117866b83b71b7265d1731d1f2ebd9fb5b49229f67e3f9a80d4b66f4f8495e6fe8889bcec085a32c6ccc004e003b31ed5e2db2e576825111483049da840dc1cdac7a01d6d9ddd7b0a30c5dce8a74728ecb3cc6d76503a6655c6c6ff1b875cd62f53214fb85ad7c70e526907b8aecd5ce5e85eb6c8eb7a69331caeade3b4a82b94c576b2cfc5dc982edb92a0b526cc861384c1bde479b0346af9dc6517acf97f9045b696df80db3667d49faf349df78f178ef5a1f35d97f8fa30384c9d391eac4b56bb0020505ae93b076c8b9aade70086779fe3b2cf5625fe8c2094856fd6fa79ed960eb9e7ca74472c2f45fbf2af4575e6d7bbc748e197fcc95ebb5015e755c02b4b4ca5d118678c3bb280cede40ae6efb6bd19e8e016b49dfc91cd18c3a71c435b223fbd2ff1f4638a8b4249480c019121d1ffbfb23907e88fbc480d6785cb11d92307b668f4f2876a1e362b57edf21c58b992e88a360e62c0ec008c591d22769ea0f41d13441b3339c23702e3af631896c64d3d46dd2bb6345e0dd8085ec5fbbab57ec3f1507370efb63050e3129155f80c5733c63c70bd27a5d2af502676e96105212151a8f4af97ffb35e52b341e3983a254ec7dc936c8de7d752cd65daa271e58d2eafec02c120694dcd54e4b85e9d3b526f492e87c058db1831e5ead3617f0c08bd095ff2d397623bd8c3dccc8f7dfa213fa6ddeac0de78cf498b0240706205b7e162e1703fd46ea4f02ba2c0624cf095be6908ed16059a3d0ebcddd0bd476b75c8687c9229f3b1a9096a899010950678badc06eb72ed0c532445b83f53ff48e07d91c3bf8b841c55e8c58ef28e9efa4e272dda05d4a84fbc3d2a4a48bdacf7e11dba085865f81fc70417c84532a702c5932066e904407803d5f0dd37c33f0727a8c8b4d3702c36ae9d38e7bc01a758dbc5c269b06661a7c58aec7bec4619296c838a5a41627e394092464f79ffbf1a1c1785b6b74035eba2f5d72881fafac30490e29ccd82f1319f43c72b1d83c6c3f9694ca0a81b352e84dcdee64a571999c627f34897d8b24b9f78381e4706a46d231fa19480517f9eafe763f3290c2f41e8b2c406a97af83175c422b8c0d1a624bdd2982c16c0b6ee84cd37c78ee0e5d3b6c6b8fff292bd7aba7904677a37c73e399fe2846aea5efc199dd16666785717f057769460a830e336278985ee89e3a70673b342d11d90625fa5e3ce5854650bb18145f4162cbeb737402594b7e28f58cc5d70ea9ae629c39f9c13f0cc54111e182f53877ae3af7dc7eba68ac5d80d7658ae4bfd3b9d4232a3a3f071b568141cc87580b3bda9efeb59055feefaccdcbb21fdfd04cb16ce1739e26d0278008ca50ea03a286b689d44ef26ba5670d38f16450ac6d0ea6b9f683173ef991b66c16b6eb6bf63db7feb5001655b70531a2825689ccac3775110ee34b771ca6ae11dbc1adceeacce40a38594ab376e6d19579ad3977c7e4ba00d26065af0848cddd8a58a8ba842a9f4a0612cf6fb6eb9ec359f8c7e4e17286949bf11f281c6d51f3cfa8decadf07a8da911b7f60b61d8dfcab26530de61e6e0cdc028b2a3d70e02ecf084c6f2842a768f0f5f6f0f3691d67bd683690e83b3a02515055d56ec540051f16b71f4bbecc66e61583a9b52e63745d999597fb30b566293344ee60c479c8acb035e075df1cba2103894c71acebaa1818750d58a0d664fa751f3408ff06f54f98874eb5b9f452552a834a28f602f35c5b343822d905d90f7de02e8adc46492b465b6cead37314ba4d5e51e44a2f6b3183ecb6ad677c8cbb0df5ab2e420b046624593fafc04f7a36f15532c3e77b87e3b9a39cc39a5adba74df028189b14edbed70f623a0a1d8962a377d0d27b04f5e22f22feffd074fb6f20517446f46e68d1d24cdd11b6f0718c21cc7e2eec90370212437bf6992b44172287d0131c27556b7aa4b5e801556c6f8c96a4c9dbe95965757b81c0c6d0072c7b9299bed3e70b3fc20512357283868caab6b7bbdff811358dc30000000000000000000000000000000000030c161e2629363a", + "result": "invalid", + "flags": [ + "ModifiedSignature" + ] + }, + { + "tcId": 11, + "comment": "signature with a bit flip in z[6]", + "msg": "48656c6c6f20776f726c64", + "sig": "1a13408d3274fb5f79a3039f0b7d693c5a9851fb97e67181dafbda100cf889ebdd724d8da7e22bf30c26e6f9511a69da84637dd2c751b8e26c0baf009a0163e96f7ee0f33174a57ed5c86a0399b8fdafc34e71859a2cd7f6a316d2dae35a13bea9e178a542196d0b17e3e5a3b182f2de5f255d7202f0a4c85c9ff6b0d4d821e2f6894243939e06f01a72d90f3bbad170aed2dd7dd2fc21ef44728dbe05adecbaf1f392ab69909c4194ff215e8c04ec5cd12b99d7b28112e9ddb5dbc91154e4a6daad7cf54581acb79c0424e2ffb9d8b70e1e46b6f47b6cddef5adcf84e9a53cdb69e45549c90e6df73706ac20a303d0c4f6630fc35c2b832c6205b6219913ef7718505c7c5b33d9ded3a8ff6bcf5cbc80b3155b9cda3abcd2d5e0cb055a28c771cf8dc9f6e0f157ac153a53da7ed50bac0e84750550a6fc8fb6696673c20ceac88b60e8a9142b4d3821872331876085427e163e4dcfbdad888e9c862e1293383dbd81af7910c87132dca1f5365f271e671fc2d245fbeedfdb861ebe5a8ce86d37164c66f3f3ae11d39216026e8a6d4fda4c7bfc6513d36fc042dd71fa0960405c122c918eb2b92e046801162d3d3c54c18ed6ff67248c9fcadabc0aa1286986cd748fec67b8f2c7ff0c2801925adb3a0d910506147bac34877d329996a6f0a7b0eec7a0cf352eb6fd09023d30db2b9e371eed224828bc10550fef7c5ff1747ec0ca7b61d1fd4594cc169dcaf14474cbb10b4518dfa848f056be3ff2d71829e261c87a786bdb0289b595c2ebee471af05e06f83ae00f70d9bf8a24d4a02e38e6c3ff7a2020c48801d2d2a28cc14d621bca6a92bbf6b36f011f7f4df81549e160d836c2b6959f848d9d265add11c4c6ee0f51d2f58df64f41152bb7c32886649f8f6e075e57cc5b947cb96038a91ebb5423bd5ec2432155ce2d0f1d81ca969c47c017c2a5472c0a53681e14dceb26b37e894a1a938c033cc2480247e958314d1c251b988ff9a4ed7f67366600ab031601e4684ca5d72a17339e124c5ebb573811b6a584b3d0f1bd040f816cf300aa66eb42d4c5039dd1e0b79decfb5199005d2bbdf9fcebf05a0088983ac6185ce87c95722febcb5b242af1c22973314b44499e8f59127cfb5e58a602d3ee565865bae0729c3b9f31c4aef3dcedf78d6bb520c16d7e1ba5a088ca5cc2217420d99c0613a01f3b75cecd5517636cb864b35a08a6639038bee0250767b9c7bb7d857b8fbe66281f607ed65561d7084e5b31324ae1d7c5fdea534ce4b6fcc7a69add96e99825f86aa6715ff2cb78a0c9281412c7c9c55dfbc16354b564382ed425aa1c8d2604c784fdc5f729c9cd5637eb77172367bd2a8ec0828d9bc03019e5a147d5de676cbaa0f1930603c942feb859f7ec5d70eb148c8afe84b30b3d778f0affcbad6302036291c6518f62e6577794157c985193d858fd602011145c49987a138a8d4e49060600d1b7a76fcee46bbb3241589dcc1320a6bfbcf587d325ba6aebbbe56ec5ce0111a80eafbe430a41a1ebd939583e3adec10f4f1114973fd0b1b0aa75476ec85da51592ec120437ecff50e9afe7401c96ef29297c667ef4da78ac7e1c8486d19faaad35d5904c07e164874f6ef634d5d8a64b076c3f9a37b3d44f61a63b4bb38a3a970d5091e68138bb9301d84db083de275e48fa7553c3e0f1874d0568d594857bf5f52933c5bc4957eeebd2fc7d3c0b90e4b49daf5e447e7d36c4dbdb4c118595f28d3a48b5665a7f995d3e179c96d975d47de5f48cd21c7a1b6a6c673c67669e67e23c3defe0672e8e1289636ec2145a14b6ed50c0b95ebe1b1ba1bd6b8a34a796ad858ab9ce8e678df7355f702ce2959e2c0a1831bb2d203e72cad74d0f9607a34bda435a521c850deee9b6afe6ae182598b74934d0a5d244bde7973cbe89e55a987cdc6cd54fb57b033015294642267b25d2b1016be3f2e842fff9ef1cd2885c99c0d504785ab1fa0f0a7a4828237ddace3c79e0c02dc9d3687c79e01a97cb634fd03dfad85abbeb9567309a21f114817a801cf5bfbd8cf136ddf535469053c43d89feeab902195cb7e2d3c08700bd99d663e65456067b64be4ff2a1572cb696881b3ca64c1566ba7b29cf0ff1cf1a9a24814631ccba5c83874445ed3690db166ec73edf7c2aeecccec9d1ab94187e88dda60936f2e97861acb5f791a67930fcd966eedb4109051edd15f3de10c99b1cef51e9448965a4a4ac8ed10649c5f54f1dbb961d001008b23bb942d49427e61ebb07a02d8c2b32e408f64a69b451cdfca5e0fd8665b800bbb9afb6a0e79bedb9499b14aafd89db80586fbe0166b5d4edc3f5c36e04557897699f32a760a93591eaac14202ca0f193c7c360c83e6dae397c89c2fc5a37883c95a36abbb71dbce6431972297c8e16ca468913b6ffa24d52eaa8d5858cc7cbf1c6d702fe3b236d2b12a63659ded31a5db3500ed37b1f0175af1117456704149506d0d4ae49a5911afbf7ddb6aa9f16cd23721f2ea6920da7bca939910d88237fdb791a90d7c5c7824241e1e62409ad398c64a8470b56fe235b90d85efe648ea33cc0a83ccb941f1cceff086b567c901a5e22e1d8b20af5d75f33aa2e44daef7cfe41d09639da5027e42e646c356367d8943f90d2a80927b140579078eda13a0007f1d3b90ed7d52a34c0cbf632f2177444ef2b47d9ffef295cc49033fb84ca058cdc07696385f0187544f708659ec24c7071c1fe553c20c64cf98ad01b1396bb1699043669b40e8f1b67d42127a2da8ee813ceed2beea7a5a972f55a4239b8013165cc11ac88e2f28b5f7333be23d088acc2fee88233752cebb5c30b6097353056e900e1079e38e389cdb19c81b3c412b9de2f4946b5676862f8473c3f001f7aa0ddec5ec5406afb1fba7c8aaa690aa1618c8244cfcfedc13a8a40f0297d475d43b83e6692c54c1991f3d43cbdb9acd47ed1b0162f83d1ba5a09d753c4d154df38f0042554cbfc98adf3e66928592aa26f330574a8b676d526e84dccc9408bc80d6fded421a66515c0a783600b9aec4304e4d00370e24ed26d1b432e50518f2a132edc1c9fb029c7f8bfb4d8eecf436ed795f31c622efdbb918afe47423d39147a595394cf3af726c70028fce9ec01c465f2fdb0790c372e22a4b826c339ede5cb9a453f228f21946ff3ab02e8d7e844e72b9441d681d73d7417fd5bf5c6099be70830e9d30c99b2b16486208462c6f8d85ee5bb323359d9a3bcf9fae11327f8e06c31c79d66d1ae8b5b5ccbd9bb6ba35bec9ce8c060a0226945543c89f40e7bcced95093c21688c90bb25078d287a66cd18fad9f9a117f4e5afc7ab24689aa797d1623a95e50f4abe45f2fc4d1826f34d54777ba2f6b2acd7427e29b67902a9de8e55e6db362e4fe55a6c24413d2dd6f806f73ed95ed8073bf907382e71ad277a3a20e39a21b8b72e04c7c8511407bc92d4a7fa09a248d96d4e0c8e98ca4d9a821d579ddbcc2c545b3e1cfde9dfa3e812e92c8f75a413a87d61f42f4e7d2062463d5509f3e55ebecc7f615a13c626c265fe8b58c8be96caa72d7a48f87e248923c3ae769f37c5a692d2ce17777a2063ab732e7dfe247f8435930c81d73ad29dbc7579d79534a43d67195d77423ebf396b458084b1140e9fa722eaff25a6519e4ee3a0fac3d239e1cd6edb45f7113fbbc3487bb57ae278caa7a275e344b870691b9119bdbd80c36042de9d69dba4947170cc060b9299a15796f459af7e3cf82d7063dd071fccfc9d7a8852fd61aa9ffd28986504c6e04a67a493e8a76dc7bdf110b9491b290992584ccae69c6dc6eaad78592dcf9b2439144ba4b9872f7c3b1772a01cb7d0a88192c74019b5ee79991541cad2e00c6e5edd4a14abd8c7b57cbaa6c017e703de5c4f6d551baca90f5f0036fef0f7699f992c9921fe3150baf6dfaffbd7db48ca54edc5293306cbc3df9c7fb9ea5467ff8a94f827d532310201e2f7adb89f418df5415d75b54d1f361fddee5d425e0057f320f4afb154f71275fdf0f328300a4d9482f852440b989efa676a420a5c0b0785fb26f7a518534358a8b991c987036744bbf50e32bb8593da4a6add0a5a055df68bf4bffcc23d17ce44b4e565b2224159c86830d87a0e0af467426da1c5c9e43f951405da0f447c957f1ee81b5a4e427b41680af43d546a8ee4057dce454bcb56014095d88a8f37342234588e526f4f8bf8b38dd461403744cc7bf50d702465657614169441a41953f5c535cc1da9ce9dac6c6cb1d15224c10588ce29fd78a53a25b96471e53796ee9aec16837876ebdeb663186b0ae07160e779fc71c8682c1fb4a236dd7438c30b4416d7d1e1ea99ad14e196134ee95a35b7ea46fa7f95db365572677bc86d44fac60ba053137ad91ecdc6e5494354fac09f0cc983973a773d23e78b660c85558a550971a34bf2c42cb8f1fa062b667246952e13012c3a5c72f099aef765d72c042283c07c019536ede021117866b83b71b7265d1731d1f2ebd9fb5b49229f67e3f9a80d4b66f4f8495e6fe8889bcec085a32c6ccc004e003b31ed5e2db2e576825111483049da840dc1cdac7a01d6d9ddd7b0a30c5dce8a74728ecb3cc6d76503a6655c6c6fe1b875cd62f53214fb85ad7c70e526907b8aecd5ce5e85eb6c8eb7a69331caeade3b4a82b94c576b2cfc5dc982edb92a0b526cc861384c1bde479b0346af9dc6517acf97f9045b696df80db3667d49faf349df78f178ef5a1f35d97f8fa30384c9d391eac4b56bb0020505ae93b076c8b9aade70086779fe3b2cf5625fe8c2094856fd6fa79ed960eb9e7ca74472c2f45fbf2af4575e6d7bbc748e197fcc95ebb5015e755c02b4b4ca5d118678c3bb280cede40ae6efb6bd19e8e016b49dfc91cd18c3a71c435b223fbd2ff1f4638a8b4249480c019121d1ffbfb23907e88fbc480d6785cb11d92307b668f4f2876a1e362b57edf21c58b992e88a360e62c0ec008c591d22769ea0f41d13441b3339c23702e3af631896c64d3d46dd2bb6345e0dd8085ec5fbbab57ec3f1507370efb63050e3129155f80c5733c63c70bd27a5d2af502676e96105212151a8f4af97ffb35e52b341e3983a254ec7dc936c8de7d752cd65daa271e58d2eafec02c120694dcd54e4b85e9d3b526f492e87c058db1831e5ead3617f0c08bd095ff2d397623bd8c3dccc8f7dfa213fa6ddeac0de78cf498b0240706205b7e162e1703fd46ea4f02ba2c0624cf095be6908ed16059a3d0ebcddd0bd476b75c8687c9229f3b1a9096a899010950678badc06eb72ed0c532445b83f53ff48e07d91c3bf8b841c55e8c58ef28e9efa4e272dda05d4a84fbc3d2a4a48bdacf7e11dba085865f81fc70417c84532a702c5932066e904407803d5f0dd37c33f0727a8c8b4d3702c36ae9d38e7bc01a758dbc5c269b06661a7c58aec7bec4619296c838a5a41627e394092464f79ffbf1a1c1785b6b74035eba2f5d72881fafac30490e29ccd82f1319f43c72b1d83c6c3f9694ca0a81b352e94dcdee64a571999c627f34897d8b24b9f78381e4706a46d231fa19480517f9eafe763f3290c2f41e8b2c406a97af83175c422b8c0d1a624bdd2982c16c0b6ee84cd37c78ee0e5d3b6c6b8fff292bd7aba7904677a37c73e399fe2846aea5efc199dd16666785717f057769460a830e336278985ee89e3a70673b342d11d90625fa5e3ce5854650bb18145f4162cbeb737402594b7e28f58cc5d70ea9ae629c39f9c13f0cc54111e182f53877ae3af7dc7eba68ac5d80d7658ae4bfd3b9d4232a3a3f071b568141cc87580b3bda9efeb59055feefaccdcbb21fdfd04cb16ce1739e26d0278008ca50ea03a286b689d44ef26ba5670d38f16450ac6d0ea6b9f683173ef991b66c16b6eb6bf63db7feb5001655b70531a2825689ccac3775110ee34b771ca6ae11dbc1adceeacce40a38594ab376e6d19579ad3977c7e4ba00d26065af0848cddd8a58a8ba842a9f4a0612cf6fb6eb9ec359f8c7e4e17286949bf11f281c6d51f3cfa8decadf07a8da911b7f60b61d8dfcab26530de61e6e0cdc028b2a3d70e02ecf084c6f2842a768f0f5f6f0f3691d67bd683690e83b3a02515055d56ec540051f16b71f4bbecc66e61583a9b52e63745d999597fb30b566293344ee60c479c8acb035e075df1cba2103894c71acebaa1818750d58a0d664fa751f3408ff06f54f98874eb5b9f452552a834a28f602f35c5b343822d905d90f7de02e8adc46492b465b6cead37314ba4d5e51e44a2f6b3183ecb6ad677c8cbb0df5ab2e420b046624593fafc04f7a36f15532c3e77b87e3b9a39cc39a5adba74df028189b14edbed70f623a0a1d8962a377d0d27b04f5e22f22feffd074fb6f20517446f46e68d1d24cdd11b6f0718c21cc7e2eec90370212437bf6992b44172287d0131c27556b7aa4b5e801556c6f8c96a4c9dbe95965757b81c0c6d0072c7b9299bed3e70b3fc20512357283868caab6b7bbdff811358dc30000000000000000000000000000000000030c161e2629363a", + "result": "invalid", + "flags": [ + "ModifiedSignature" + ] + }, + { + "tcId": 12, + "comment": "signature with a bit flip in hints", + "msg": "48656c6c6f20776f726c64", + "sig": "1a13408d3274fb5f79a3039f0b7d693c5a9851fb97e67181dafbda100cf889ebdd724d8da7e22bf30c26e6f9511a69da84637dd2c751b8e26c0baf009a0163e96f7ee0f33174a57ed5c86a0399b8fdafc34e71859a2cd7f6a316d2dae35a13bea9e178a542196d0b17e3e5a3b182f2de5f255d7202f0a4c85c9ff6b0d4d821e2f6894243939e06f01a72d90f3bbad170aed2dd7dd2fc21ef44728dbe05adecbaf1f392ab69909c4194ff215e8c04ec5cd12b99d7b28112e9ddb5dbc91154e4a6daad7cf54581acb79c0424e2ffb9d8b70e1e46b6f47b6cddef5adcf84e9a53cdb69e45549c90e6df73706ac20a303d0c4f6630fc35c2b832c6205b6219913ef7718505c7c5b33d9ded3a8ff6bcf5cbc80b3155b9cda3abcd2d5e0cb055a28c771cf8dc9f6e0f157ac153a53da7ed50bac0e84750550a6fc8fb6696673c20ceac88b60e8a9142b4d3821872331876085427e163e4dcfbdad888e9c862e1293383dbd81af7910c87132dca1f5365f271e671fc2d245fbeedfdb861ebe5a8ce86d37164c66f3f3ae11d39216026e8a6d4fda4c7bfc6513d36fc042dd71fa0960405c122c918eb2b92e046801162d3d3c54c18ed6ff67248c9fcadabc0aa1286986cd748fec67b8f2c7ff0c2801925adb3a0d910506147bac34877d329996a6f0a7b0eec7a0cf352eb6fd09023d30db2b9e371eed224828bc10550fef7c5ff1747ec0ca7b61d1fd4594cc169dcaf14474cbb10b4518dfa848f056be3ff2d71829e261c87a786bdb0289b595c2ebee471af05e06f83ae00f70d9bf8a24d4a02e38e6c3ff7a2020c48801d2d2a28cc14d621bca6a92bbf6b36f011f7f4df81549e160d836c2b6959f848d9d265add11c4c6ee0f51d2f58df64f41152bb7c32886649f8f6e075e57cc5b947cb96038a91ebb5423bd5ec2432155ce2d0f1d81ca969c47c017c2a5472c0a53681e14dceb26b37e894a1a938c033cc2480247e958314d1c251b988ff9a4ed7f67366600ab031601e4684ca5d72a17339e124c5ebb573811b6a584b3d0f1bd040f816cf300aa66eb42d4c5039dd1e0b79decfb5199005d2bbdf9fcebf05a0088983ac6185ce87c95722febcb5b242af1c22973314b44499e8f59127cfb5e58a602d3ee565865bae0729c3b9f31c4aef3dcedf78d6bb520c16d7e1ba5a088ca5cc2217420d99c0613a01f3b75cecd5517636cb864b35a08a6639038bee0250767b9c7bb7d857b8fbe66281f607ed65561d7084e5b31324ae1d7c5fdea534ce4b6fcc7a69add96e99825f86aa6715ff2cb78a0c9281412c7c9c55dfbc16354b564382ed425aa1c8d2604c784fdc5f729c9cd5637eb77172367bd2a8ec0828d9bc03019e5a147d5de676cbaa0f1930603c942feb859f7ec5d70eb148c8afe84b30b3d778f0affcbad6302036291c6518f62e6577794157c985193d858fd602011145c49987a138a8d4e49060600d1b7a76fcee46bbb3241589dcc1320a6bfbcf587d325ba6aebbbe56ec5ce0111a80eafbe430a41a1ebd939583e3adec10f4f1114973fd0b1b0aa75476ec85da51592ec120437ecff50e9afe7401c96ef29297c667ef4da78ac7e1c8486d19faaad35d5904c07e164874f6ef634d5d8a64b076c3f9a37b3d44f61a63b4bb38a3a970d5091e68138bb9301d84db083de275e48fa7553c3e0f1874d0568d594857bf5f52933c5bc4957eeebd2fc7d3c0b90e4b49daf5e447e7d36c4dbdb4c118595f28d3a48b5665a7f995d3e179c96d975d47de5f48cd21c7a1b6a6c673c67669e67e23c3defe0672e8e1289636ec2145a14b6ed50c0b95ebe1b1ba1bd6b8a34a796ad858ab9ce8e678df7355f702ce2959e2c0a1831bb2d203e72cad74d0f9607a34bda435a521c850deee9b6afe6ae182598b74934d0a5d244bde7973cbe89e55a987cdc6cd54fb57b033015294642267b25d2b1016be3f2e842fff9ef1cd2885c99c0d504785ab1fa0f0a7a4828237ddace3c79e0c02dc9d3687c79e01a97cb634fd03dfad85abbeb9567309a21f114817a801cf5bfbd8cf136ddf535469053c43d89feeab902195cb7e2d3c08700bd99d663e65456067b64be4ff2a1572cb696881b3ca64c1566ba7b29cf0ff1cf1a9a24814631ccba5c83874445ed3690db166ec73edf7c2aeecccec9d1ab94187e88dda60936f2e97861acb5f791a67930fcd966eedb4109051edd15f3de10c99b1cef51e9448965a4a4ac8ed10649c5f54f1dbb961d001008b23bb942d49427e61ebb07a02d8c2b32e408f64a69b451cdfca5e0fd8665b800bbb9afb6a0e79bedb9499b14aafd89db80586fbe0166b5d4edc3f5c36e04557897699f32a760a93591eaac14202ca0f193c7c360c83e6dae397c89c2fc5a37883c95a36abbb71dbce6431972297c8e16ca468913b6ffa24d52eaa8d5858cc7cbf1c6d702fe3b236d2b12a63659ded31a5db3500ed37b1f0175af1117456704149506d0d4ae49a5911afbf7ddb6aa9f16cd23721f2ea6920da7bca939910d88237fdb791a90d7c5c7824241e1e62409ad398c64a8470b56fe235b90d85efe648ea33cc0a83ccb941f1cceff086b567c901a5e22e1d8b20af5d75f33aa2e44daef7cfe41d09639da5027e42e646c356367d8943f90d2a80927b140579078eda13a0007f1d3b90ed7d52a34c0cbf632f2177444ef2b47d9ffef295cc49033fb84ca058cdc07696385f0187544f708659ec24c7071c1fe553c20c64cf98ad01b1396bb1699043669b40e8f1b67d42127a2da8ee813ceed2beea7a5a972f55a4239b8013165cc11ac88e2f28b5f7333be23d088acc2fee88233752cebb5c30b6097353056e900e1079e38e389cdb19c81b3c412b9de2f4946b5676862f8473c3f001f7aa0ddec5ec5406afb1fba7c8aaa690aa1618c8244cfcfedc13a8a40f0297d475d43b83e6692c54c1991f3d43cbdb9acd47ed1b0162f83d1ba5a09d753c4d154df38f0042554cbfc98adf3e66928592aa26f330574a8b676d526e84dccc9408bc80d6fded421a66515c0a783600b9aec4304e4d00370e24ed26d1b432e50518f2a132edc1c9fb029c7f8bfb4d8eecf436ed795f31c622efdbb918afe47423d39147a595394cf3af726c70028fce9ec01c465f2fdb0790c372e22a4b826c339ede5cb9a453f228f21946ff3ab02e8d7e844e72b9441d681d73d7417fd5bf5c6099be70830e9d30c99b2b16486208462c6f8d85ee5bb323359d9a3bcf9fae11327f8e06c31c79d66d1ae8b5b5ccbd9bb6ba35bec9ce8c060a0226945543c89f40e7bcced95093c21688c90bb25078d287a66cd18fad9f9a117f4e5afc7ab24689aa797d1623a95e50f4abe45f2fc4d1826f34d54777ba2f6b2acd7427e29b67902a9de8e55e6db362e4fe55a6c24413d2dd6f806f73ed95ed8073bf907382e71ad277a3a20e39a21b8b72e04c7c8511407bc92d4a7fa09a248d96d4e0c8e98ca4d9a821d579ddbcc2c545b3e1cfde9dfa3e812e92c8f75a413a87d61f42f4e7d2062463d5509f3e55ebecc7f615a13c626c265fe8b58c8be96caa72d7a48f87e248923c3ae769f37c5a692d2ce17777a2063ab732e7dfe247f8435930c81d73ad29dbc7579d79534a43d67195d77423ebf396b458084b1140e9fa722eaff25a6519e4ee3a0fac3d239e1cd6edb45f7113fbbc3487bb57ae278caa7a275e344b870691b9119bdbd80c36042de9d69dba4947170cc060b9299a15796f459af7e3cf82d7063dd071fccfc9d7a8852fd61aa9ffd28986504c6e04a67a493e8a76dc7bdf110b9491b290992584ccae69c6dc6eaad78592dcf9b2439144ba4b9872f7c3b1772a01cb7d0a88192c74019b5ee79991541cad2e00c6e5edd4a14abd8c7b57cbaa6c017e703de5c4f6d551baca90f5f0036fef0f7699f992c9921fe3150baf6dfaffbd7db48ca54edc5293306cbc3df9c7fb9ea5467ff8a94f827d532310201e2f7adb89f418df5415d75b54d1f361fddee5d425e0057f320f4afb154f71275fdf0f328300a4d9482f852440b989efa676a420a5c0b0785fb26f7a518534358a8b991c987036744bbf50e32bb8593da4a6add0a5a055df68bf4bffcc23d17ce44b4e565b2224159c86830d87a0e0af467426da1c5c9e43f951405da0f447c957f1ee81b5a4e427b41680af43d546a8ee4057dce454bcb56014095d88a8f37342234588e526f4f8bf8b38dd461403744cc7bf50d702465657614169441a41953f5c535cc1da9ce9dac6c6cb1d15224c10588ce29fd78a53a25b96471e53796ee9aec16837876ebdeb663186b0ae07160e779fc71c8682c1fb4a236dd7438c30b4416d7d1e1ea99ad14e196134ee95a35b7ea46fa7f95db365572677bc86d44fac60ba053137ad91ecdc6e5494354fac09f0cc983973a773d23e78b660c85558a550971a34bf2c42cb8f1fa062b667246952e13012c3a5c72f099aef765d72c042283c07c019536ede021117866b83b71b7265d1731d1f2ebd9fb5b49229f67e3f9a80d4b66f4f8495e6fe8889bcec085a32c6ccc004e003b31ed5e2db2e576825111483049da840dc1cdac7a01d6d9ddd7b0a30c5dce8a74728ecb3cc6d76503a6655c6c6fe1b875cd62f53214fb85ad7c70e526907b8aecd5ce5e85eb6c8eb7a69331caeade3b4a82b94c576b2cfc5dc982edb92a0b526cc861384c1bde479b0346af9dc6517acf97f9045b696df80db3667d49faf349df78f178ef5a1f35d97f8fa30384c9d391eac4b56bb0020505ae93b076c8b9aade70086779fe3b2cf5625fe8c2094856fd6fa79ed960eb9e7ca74472c2f45fbf2af4575e6d7bbc748e197fcc95ebb5015e755c02b4b4ca5d118678c3bb280cede40ae6efb6bd19e8e016b49dfc91cd18c3a71c435b223fbd2ff1f4638a8b4249480c019121d1ffbfb23907e88fbc480d6785cb11d92307b668f4f2876a1e362b57edf21c58b992e88a360e62c0ec008c591d22769ea0f41d13441b3339c23702e3af631896c64d3d46dd2bb6345e0dd8085ec5fbbab57ec3f1507370efb63050e3129155f80c5733c63c70bd27a5d2af502676e96105212151a8f4af97ffb35e52b341e3983a254ec7dc936c8de7d752cd65daa271e58d2eafec02c120694dcd54e4b85e9d3b526f492e87c058db1831e5ead3617f0c08bd095ff2d397623bd8c3dccc8f7dfa213fa6ddeac0de78cf498b0240706205b7e162e1703fd46ea4f02ba2c0624cf095be6908ed16059a3d0ebcddd0bd476b75c8687c9229f3b1a9096a899010950678badc06eb72ed0c532445b83f53ff48e07d91c3bf8b841c55e8c58ef28e9efa4e272dda05d4a84fbc3d2a4a48bdacf7e11dba085865f81fc70417c84532a702c5932066e904407803d5f0dd37c33f0727a8c8b4d3702c36ae9d38e7bc01a758dbc5c269b06661a7c58aec7bec4619296c838a5a41627e394092464f79ffbf1a1c1785b6b74035eba2f5d72881fafac30490e29ccd82f1319f43c72b1d83c6c3f9694ca0a81b352e84dcdee64a571999c627f34897d8b24b9f78381e4706a46d231fa19480517f9eafe763f3290c2f41e8b2c406a97af83175c422b8c0d1a624bdd2982c16c0b6ee84cd37c78ee0e5d3b6c6b8fff292bd7aba7904677a37c73e399fe2846aea5efc199dd16666785717f057769460a830e336278985ee89e3a70673b342d11d90625fa5e3ce5854650bb18145f4162cbeb737402594b7e28f58cc5d70ea9ae629c39f9c13f0cc54111e182f53877ae3af7dc7eba68ac5d80d7658ae4bfd3b9d4232a3a3f071b568141cc87580b3bda9efeb59055feefaccdcbb21fdfd04cb16ce1739e26d0278008ca50ea03a286b689d44ef26ba5670d38f16450ac6d0ea6b9f683173ef991b66c16b6eb6bf63db7feb5001655b70531a2825689ccac3775110ee34b771ca6ae11dbc1adceeacce40a38594ab376e6d19579ad3977c7e4ba00d26065af0848cddd8a58a8ba842a9f4a0612cf6fb6eb9ec359f8c7e4e17286949bf11f281c6d51f3cfa8decadf07a8da911b7f60b61d8dfcab26530de61e6e0cdc028b2a3d70e02ecf084c6f2842a768f0f5f6f0f3691d67bd683690e83b3a02515055d56ec540051f16b71f4bbecc66e61583a9b52e63745d999597fb30b566293344ee60c479c8acb035e075df1cba2103894c71acebaa1818750d58a0d664fa751f3408ff06f54f98874eb5b9f452552a834a28f602f35c5b343822d905d90f7de02e8adc46492b465b6cead37314ba4d5e51e44a2f6b3183ecb6ad677c8cbb0df5ab2e420b046624593fafc04f7a36f15532c3e77b87e3b9a39cc39a5adba74df028189b14edbed70f623a0a1d8962a377d0d27b04f5e22f22feffd074fb6f20517446f46e68d1d24cdd11b6f0718c21cc7e2eec90370212437bf6992b44172387d0131c27556b7aa4b5e801556c6f8c96a4c9dbe95965757b81c0c6d0072c7b9299bed3e70b3fc20512357283868caab6b7bbdff811358dc30000000000000000000000000000000000030c161e2629363a", + "result": "invalid", + "flags": [ + "ModifiedSignature" + ] + }, + { + "tcId": 13, + "comment": "signature with a bit flip in the last byte", + "msg": "48656c6c6f20776f726c64", + "sig": "1a13408d3274fb5f79a3039f0b7d693c5a9851fb97e67181dafbda100cf889ebdd724d8da7e22bf30c26e6f9511a69da84637dd2c751b8e26c0baf009a0163e96f7ee0f33174a57ed5c86a0399b8fdafc34e71859a2cd7f6a316d2dae35a13bea9e178a542196d0b17e3e5a3b182f2de5f255d7202f0a4c85c9ff6b0d4d821e2f6894243939e06f01a72d90f3bbad170aed2dd7dd2fc21ef44728dbe05adecbaf1f392ab69909c4194ff215e8c04ec5cd12b99d7b28112e9ddb5dbc91154e4a6daad7cf54581acb79c0424e2ffb9d8b70e1e46b6f47b6cddef5adcf84e9a53cdb69e45549c90e6df73706ac20a303d0c4f6630fc35c2b832c6205b6219913ef7718505c7c5b33d9ded3a8ff6bcf5cbc80b3155b9cda3abcd2d5e0cb055a28c771cf8dc9f6e0f157ac153a53da7ed50bac0e84750550a6fc8fb6696673c20ceac88b60e8a9142b4d3821872331876085427e163e4dcfbdad888e9c862e1293383dbd81af7910c87132dca1f5365f271e671fc2d245fbeedfdb861ebe5a8ce86d37164c66f3f3ae11d39216026e8a6d4fda4c7bfc6513d36fc042dd71fa0960405c122c918eb2b92e046801162d3d3c54c18ed6ff67248c9fcadabc0aa1286986cd748fec67b8f2c7ff0c2801925adb3a0d910506147bac34877d329996a6f0a7b0eec7a0cf352eb6fd09023d30db2b9e371eed224828bc10550fef7c5ff1747ec0ca7b61d1fd4594cc169dcaf14474cbb10b4518dfa848f056be3ff2d71829e261c87a786bdb0289b595c2ebee471af05e06f83ae00f70d9bf8a24d4a02e38e6c3ff7a2020c48801d2d2a28cc14d621bca6a92bbf6b36f011f7f4df81549e160d836c2b6959f848d9d265add11c4c6ee0f51d2f58df64f41152bb7c32886649f8f6e075e57cc5b947cb96038a91ebb5423bd5ec2432155ce2d0f1d81ca969c47c017c2a5472c0a53681e14dceb26b37e894a1a938c033cc2480247e958314d1c251b988ff9a4ed7f67366600ab031601e4684ca5d72a17339e124c5ebb573811b6a584b3d0f1bd040f816cf300aa66eb42d4c5039dd1e0b79decfb5199005d2bbdf9fcebf05a0088983ac6185ce87c95722febcb5b242af1c22973314b44499e8f59127cfb5e58a602d3ee565865bae0729c3b9f31c4aef3dcedf78d6bb520c16d7e1ba5a088ca5cc2217420d99c0613a01f3b75cecd5517636cb864b35a08a6639038bee0250767b9c7bb7d857b8fbe66281f607ed65561d7084e5b31324ae1d7c5fdea534ce4b6fcc7a69add96e99825f86aa6715ff2cb78a0c9281412c7c9c55dfbc16354b564382ed425aa1c8d2604c784fdc5f729c9cd5637eb77172367bd2a8ec0828d9bc03019e5a147d5de676cbaa0f1930603c942feb859f7ec5d70eb148c8afe84b30b3d778f0affcbad6302036291c6518f62e6577794157c985193d858fd602011145c49987a138a8d4e49060600d1b7a76fcee46bbb3241589dcc1320a6bfbcf587d325ba6aebbbe56ec5ce0111a80eafbe430a41a1ebd939583e3adec10f4f1114973fd0b1b0aa75476ec85da51592ec120437ecff50e9afe7401c96ef29297c667ef4da78ac7e1c8486d19faaad35d5904c07e164874f6ef634d5d8a64b076c3f9a37b3d44f61a63b4bb38a3a970d5091e68138bb9301d84db083de275e48fa7553c3e0f1874d0568d594857bf5f52933c5bc4957eeebd2fc7d3c0b90e4b49daf5e447e7d36c4dbdb4c118595f28d3a48b5665a7f995d3e179c96d975d47de5f48cd21c7a1b6a6c673c67669e67e23c3defe0672e8e1289636ec2145a14b6ed50c0b95ebe1b1ba1bd6b8a34a796ad858ab9ce8e678df7355f702ce2959e2c0a1831bb2d203e72cad74d0f9607a34bda435a521c850deee9b6afe6ae182598b74934d0a5d244bde7973cbe89e55a987cdc6cd54fb57b033015294642267b25d2b1016be3f2e842fff9ef1cd2885c99c0d504785ab1fa0f0a7a4828237ddace3c79e0c02dc9d3687c79e01a97cb634fd03dfad85abbeb9567309a21f114817a801cf5bfbd8cf136ddf535469053c43d89feeab902195cb7e2d3c08700bd99d663e65456067b64be4ff2a1572cb696881b3ca64c1566ba7b29cf0ff1cf1a9a24814631ccba5c83874445ed3690db166ec73edf7c2aeecccec9d1ab94187e88dda60936f2e97861acb5f791a67930fcd966eedb4109051edd15f3de10c99b1cef51e9448965a4a4ac8ed10649c5f54f1dbb961d001008b23bb942d49427e61ebb07a02d8c2b32e408f64a69b451cdfca5e0fd8665b800bbb9afb6a0e79bedb9499b14aafd89db80586fbe0166b5d4edc3f5c36e04557897699f32a760a93591eaac14202ca0f193c7c360c83e6dae397c89c2fc5a37883c95a36abbb71dbce6431972297c8e16ca468913b6ffa24d52eaa8d5858cc7cbf1c6d702fe3b236d2b12a63659ded31a5db3500ed37b1f0175af1117456704149506d0d4ae49a5911afbf7ddb6aa9f16cd23721f2ea6920da7bca939910d88237fdb791a90d7c5c7824241e1e62409ad398c64a8470b56fe235b90d85efe648ea33cc0a83ccb941f1cceff086b567c901a5e22e1d8b20af5d75f33aa2e44daef7cfe41d09639da5027e42e646c356367d8943f90d2a80927b140579078eda13a0007f1d3b90ed7d52a34c0cbf632f2177444ef2b47d9ffef295cc49033fb84ca058cdc07696385f0187544f708659ec24c7071c1fe553c20c64cf98ad01b1396bb1699043669b40e8f1b67d42127a2da8ee813ceed2beea7a5a972f55a4239b8013165cc11ac88e2f28b5f7333be23d088acc2fee88233752cebb5c30b6097353056e900e1079e38e389cdb19c81b3c412b9de2f4946b5676862f8473c3f001f7aa0ddec5ec5406afb1fba7c8aaa690aa1618c8244cfcfedc13a8a40f0297d475d43b83e6692c54c1991f3d43cbdb9acd47ed1b0162f83d1ba5a09d753c4d154df38f0042554cbfc98adf3e66928592aa26f330574a8b676d526e84dccc9408bc80d6fded421a66515c0a783600b9aec4304e4d00370e24ed26d1b432e50518f2a132edc1c9fb029c7f8bfb4d8eecf436ed795f31c622efdbb918afe47423d39147a595394cf3af726c70028fce9ec01c465f2fdb0790c372e22a4b826c339ede5cb9a453f228f21946ff3ab02e8d7e844e72b9441d681d73d7417fd5bf5c6099be70830e9d30c99b2b16486208462c6f8d85ee5bb323359d9a3bcf9fae11327f8e06c31c79d66d1ae8b5b5ccbd9bb6ba35bec9ce8c060a0226945543c89f40e7bcced95093c21688c90bb25078d287a66cd18fad9f9a117f4e5afc7ab24689aa797d1623a95e50f4abe45f2fc4d1826f34d54777ba2f6b2acd7427e29b67902a9de8e55e6db362e4fe55a6c24413d2dd6f806f73ed95ed8073bf907382e71ad277a3a20e39a21b8b72e04c7c8511407bc92d4a7fa09a248d96d4e0c8e98ca4d9a821d579ddbcc2c545b3e1cfde9dfa3e812e92c8f75a413a87d61f42f4e7d2062463d5509f3e55ebecc7f615a13c626c265fe8b58c8be96caa72d7a48f87e248923c3ae769f37c5a692d2ce17777a2063ab732e7dfe247f8435930c81d73ad29dbc7579d79534a43d67195d77423ebf396b458084b1140e9fa722eaff25a6519e4ee3a0fac3d239e1cd6edb45f7113fbbc3487bb57ae278caa7a275e344b870691b9119bdbd80c36042de9d69dba4947170cc060b9299a15796f459af7e3cf82d7063dd071fccfc9d7a8852fd61aa9ffd28986504c6e04a67a493e8a76dc7bdf110b9491b290992584ccae69c6dc6eaad78592dcf9b2439144ba4b9872f7c3b1772a01cb7d0a88192c74019b5ee79991541cad2e00c6e5edd4a14abd8c7b57cbaa6c017e703de5c4f6d551baca90f5f0036fef0f7699f992c9921fe3150baf6dfaffbd7db48ca54edc5293306cbc3df9c7fb9ea5467ff8a94f827d532310201e2f7adb89f418df5415d75b54d1f361fddee5d425e0057f320f4afb154f71275fdf0f328300a4d9482f852440b989efa676a420a5c0b0785fb26f7a518534358a8b991c987036744bbf50e32bb8593da4a6add0a5a055df68bf4bffcc23d17ce44b4e565b2224159c86830d87a0e0af467426da1c5c9e43f951405da0f447c957f1ee81b5a4e427b41680af43d546a8ee4057dce454bcb56014095d88a8f37342234588e526f4f8bf8b38dd461403744cc7bf50d702465657614169441a41953f5c535cc1da9ce9dac6c6cb1d15224c10588ce29fd78a53a25b96471e53796ee9aec16837876ebdeb663186b0ae07160e779fc71c8682c1fb4a236dd7438c30b4416d7d1e1ea99ad14e196134ee95a35b7ea46fa7f95db365572677bc86d44fac60ba053137ad91ecdc6e5494354fac09f0cc983973a773d23e78b660c85558a550971a34bf2c42cb8f1fa062b667246952e13012c3a5c72f099aef765d72c042283c07c019536ede021117866b83b71b7265d1731d1f2ebd9fb5b49229f67e3f9a80d4b66f4f8495e6fe8889bcec085a32c6ccc004e003b31ed5e2db2e576825111483049da840dc1cdac7a01d6d9ddd7b0a30c5dce8a74728ecb3cc6d76503a6655c6c6fe1b875cd62f53214fb85ad7c70e526907b8aecd5ce5e85eb6c8eb7a69331caeade3b4a82b94c576b2cfc5dc982edb92a0b526cc861384c1bde479b0346af9dc6517acf97f9045b696df80db3667d49faf349df78f178ef5a1f35d97f8fa30384c9d391eac4b56bb0020505ae93b076c8b9aade70086779fe3b2cf5625fe8c2094856fd6fa79ed960eb9e7ca74472c2f45fbf2af4575e6d7bbc748e197fcc95ebb5015e755c02b4b4ca5d118678c3bb280cede40ae6efb6bd19e8e016b49dfc91cd18c3a71c435b223fbd2ff1f4638a8b4249480c019121d1ffbfb23907e88fbc480d6785cb11d92307b668f4f2876a1e362b57edf21c58b992e88a360e62c0ec008c591d22769ea0f41d13441b3339c23702e3af631896c64d3d46dd2bb6345e0dd8085ec5fbbab57ec3f1507370efb63050e3129155f80c5733c63c70bd27a5d2af502676e96105212151a8f4af97ffb35e52b341e3983a254ec7dc936c8de7d752cd65daa271e58d2eafec02c120694dcd54e4b85e9d3b526f492e87c058db1831e5ead3617f0c08bd095ff2d397623bd8c3dccc8f7dfa213fa6ddeac0de78cf498b0240706205b7e162e1703fd46ea4f02ba2c0624cf095be6908ed16059a3d0ebcddd0bd476b75c8687c9229f3b1a9096a899010950678badc06eb72ed0c532445b83f53ff48e07d91c3bf8b841c55e8c58ef28e9efa4e272dda05d4a84fbc3d2a4a48bdacf7e11dba085865f81fc70417c84532a702c5932066e904407803d5f0dd37c33f0727a8c8b4d3702c36ae9d38e7bc01a758dbc5c269b06661a7c58aec7bec4619296c838a5a41627e394092464f79ffbf1a1c1785b6b74035eba2f5d72881fafac30490e29ccd82f1319f43c72b1d83c6c3f9694ca0a81b352e84dcdee64a571999c627f34897d8b24b9f78381e4706a46d231fa19480517f9eafe763f3290c2f41e8b2c406a97af83175c422b8c0d1a624bdd2982c16c0b6ee84cd37c78ee0e5d3b6c6b8fff292bd7aba7904677a37c73e399fe2846aea5efc199dd16666785717f057769460a830e336278985ee89e3a70673b342d11d90625fa5e3ce5854650bb18145f4162cbeb737402594b7e28f58cc5d70ea9ae629c39f9c13f0cc54111e182f53877ae3af7dc7eba68ac5d80d7658ae4bfd3b9d4232a3a3f071b568141cc87580b3bda9efeb59055feefaccdcbb21fdfd04cb16ce1739e26d0278008ca50ea03a286b689d44ef26ba5670d38f16450ac6d0ea6b9f683173ef991b66c16b6eb6bf63db7feb5001655b70531a2825689ccac3775110ee34b771ca6ae11dbc1adceeacce40a38594ab376e6d19579ad3977c7e4ba00d26065af0848cddd8a58a8ba842a9f4a0612cf6fb6eb9ec359f8c7e4e17286949bf11f281c6d51f3cfa8decadf07a8da911b7f60b61d8dfcab26530de61e6e0cdc028b2a3d70e02ecf084c6f2842a768f0f5f6f0f3691d67bd683690e83b3a02515055d56ec540051f16b71f4bbecc66e61583a9b52e63745d999597fb30b566293344ee60c479c8acb035e075df1cba2103894c71acebaa1818750d58a0d664fa751f3408ff06f54f98874eb5b9f452552a834a28f602f35c5b343822d905d90f7de02e8adc46492b465b6cead37314ba4d5e51e44a2f6b3183ecb6ad677c8cbb0df5ab2e420b046624593fafc04f7a36f15532c3e77b87e3b9a39cc39a5adba74df028189b14edbed70f623a0a1d8962a377d0d27b04f5e22f22feffd074fb6f20517446f46e68d1d24cdd11b6f0718c21cc7e2eec90370212437bf6992b44172287d0131c27556b7aa4b5e801556c6f8c96a4c9dbe95965757b81c0c6d0072c7b9299bed3e70b3fc20512357283868caab6b7bbdff811358dc30000000000000000000000000000000000030c161e2629363b", + "result": "invalid", + "flags": [ + "ModifiedSignature" + ] + }, + { + "tcId": 14, + "comment": "signature with hints in reverse order", + "msg": "0100000000000000000000000000000000000000000000000000000000000000", + "sig": "6cc73c863de62231718954780a08787cd0d3f874b0986a5ea5de3a9795107dcdf38bb8a5c46c01b584dd4736ae55250bc609bcb1db6db819ee714a74e5405d8cddf51c016cc1403936937c5d6a34a8b2613b450e285cc28c0bc7a9fc6db1cc109aa6187de298c9847fdfd7df400d87562c38a081e33d5a5966971c6a6a9a0e17edbf34b605d0d54097993953028851c7d6e792e6a9674185b9e97c9a0db89fddbf0d64c7926775b915525b39adcc867ca57f0e8eb13f231729cc466c03ec5e39c37470cb51efe47c20adc47c0669ec27cf63cc2628eb98fd578ac5341022d181c7dba84adec992277b57bacfe427449d48e43dda5b6f65d06757008602f72bb32bf8a9bbf9547326e67e77bcfea408f73c577f412723f3b7f384fa1c8b12bd0b8ff0bb48c02bfecddd8c05b985e67da63501d2b76ab07af7407c05099b2f4237e17d0713bf0844da76e556749ff99d2a46e002d0c3d95f50d655667b2536dace5ad4bbfac84255df8dd1a0ac011269dfc437c5979f6c35baee1404bfe9cced6a3706ea82b64e2dad0761db85c2c6879131a9aec09cefa4f0f46a630710908a4564ae62ebf40272633d4f86f869153b7bf91785e8c2f11e5d855814927a0223b2b36e00a3f97f3f895e2b8f6eec022e133b4c6a54964aa8b35633462681e53147e70df5cdd8483a9d80783a742bdd79c2273c144b82516ac2048d1f2054fbb9a33ec039810e658d290e22ac0da33b5aa3636df826341dd5970557b17338eac7089c1d8ecab3bea5560da6875a7874aef7b78511fa4cf54eeda94960ebcec2f59f51798f5eb3fc16019d18cce3f41ee3fa068129304315a5e58ee0c59cb16d3a1ffb572e5e4bc85e4f049703aa2c5a8264977cdfbe52602f05acd803422836bffca8674d158cfcd0196a498fab074446334996b75679c6d3563fc3cb5ca2686a1ff07d8a61e23feeffa580c612667251f29698fd276f3fd865afa9a72d9f29a948b42342078f38ef421dac5f331cabef9fb9cd4eee4354b53184eed83ffc6ff5cde874e349bff798e6f5a3fdc3fcecc159c3812c1c98f3c76c5e26737b15c1d1ada28f391ccecfb6367bca0ccc2bf76f155746a439fc6377df03161fcdb80d5939907ccf41e524a83af791c5683f7b0823d05738417b597fee6b0e02beb1a5a4b9b5086da4e2fb75cdc5c76ca9665a8ed56fb7345707cf2d10a10287ec269a0645ea4d772aa3a01655f7b6f8334da14f865d4b673786da894f23fca8790f4574799a30e1f4f66821bbeec8c3913495ec0346c0f53fad068fe6bc9027ab4cfbd6211f2603a9eff25f977a3b4fe7e0e46401416cfb2d776718b587bf37c7604fd7d0446488d3847978c33ed94e9dd8571577c9e14226b90cfb1955ed6c6047c7ea02819e8d733800dd4297fb69f8a69d43f03e06d0e5cfcf0a71f65963c04ab2dfba6fc1905ccbb8e33203ddf61218aabbc9e9538df311505cf7cc7dc570a44a96952eac73c3b02019836a11f254eb55c63c8eda9eff87975099d8515f241641a6b13456dd3cfbc4e7c4e3717ad911e3b6cca87c613c373b3c16b67ca2110f1dd86e422fd05f0409ce553e269ecd0c7f528d270d0782c6105ed83dadb2966e7fe5ee77dc38606ab3011ebe4a5b606b2595ef967feca05c26d30ef8bac68c09aaa5e3f87752b83cb78d330ec16a5ebb1138ecde16c76bcffd894211f8fd6b7aa09efbd1bf4a8324367244d06fd017c90b793da27bfc19727a195eb7312fb9b3ac19c66f8785f448a7ab1c18d814ae988c2dc63a3dc6d5fc1fb3ecc9ab5d10363800a766c733c7a6c2edc7b0c86a817a0892b657920f78176691188bc9e82cc4e6629fc5cab248303608ce0fe69724a17eac2222b3bced0aac4c2059a923ba98717921499685a76c53cd5a960d55bce9a6f164b616d06551c65c27576602e5b1d6215a8feeff02d4427bd860630e6aa5b36e6dd53cda37776e1700a63a3222528246fd7f23a1e95ed2e3887ba71064f3e7f7f07a8c3a045c1f13aa2091ed378f855587f5d9f0b449f1ad5b5059d28ed3be95a2a8c466b2a3cc26a8ec716f805d149d13f56462c29585b3b9db663c795cb0d1866865eb9794bd80501e2a1e0cfe8b314bfb9f961c4da31dc6e25831620dd720043c4efe4e19b6261c479b029323c630f1c8345dae9235126f6e1c7e98143b976dbb2a6a09b8a4e01d082d6f1b05a18f818b8777940ad413be6064d6287bd93a7633cc64675c7adce7aed302eba9dff92e04f8d6d224a2896a2dfd27f79dd83dcb4ea136d16d50e7254f2ec0ec55f54edad4b41d78d8d8e07051f63afb6ec37c5cab932baa9df09eeba24b1d3ad9a923e163ddacfef990df40ecac3c55d771cc8f1bf1bb98452d14c93652b25541105f4d20271b250ad2a2a2ebbbdfaa7411a895825ed901412e195dce9d7068e25d34d83e24252ab18b186bee8714ea9ce17501c9543460c2c201b5bd01361736fdbc5bb92938cb2a72c60de2e5360c5a2abec236a1c92a05de478997a247cedf0c9d92d56f4eefce7610b0756119928733ed878230487e6c01b34662bfdb550641d2fb2d41751c66c9eead25caf3e7cbc4dbf0b2bb2a1f9a407fdc9e37bb2268aed94c9163109a8014485e74dec6159f87030f656a6a7266fc30f61cc39a600fed90a4fb8f1837ff9d3d4625e335d87a01a46929c6ef243aa86d1317759200a19f4ac2c24099ce615404fa0b816564313b41a3d2b79a812202afb78ba17ae65a8eaba5139440a4d31b73e9ae16514c082f6907a7ec07da44192cc6325d8dedaa3f0f28bfc92a7653ef5738b9bba85ab593a65e17af07913d321be4057594e16043ca609e308efca3c276840b49fcaf34fa7c38c43fa898800081f2d6a1746db7a950b5cac48d27a420ac20624387dc78194bc29299767e1211f0c7b137abb6c3321b69b546e2782f6c2c29bb2ac652aacac2ce664d95d7610156dd4bbe8685d0e0af25176baa5d8b04b32de81ba8341b4f2afcfa13ff7c6a61c3da03fd2cfe38a0302dbf1882b0e8dc10851aed0205f5ba1d6ffb584f450b110ce1b89ec3f909d0ff3f93932b524ad0f098d7b2ab7037bfdd4ebba64c34f5cf9c5ed1412f4ca280c73fd220580089fc91bac1c1defb0afcbd9dd6e629a1c4f57b4261133cb05830029429f4b4f381a3fc67e67b57f6086e1f49dc13c52d87f28e27eab312ab9e83858dd459de672de08ba5a7cf1b3d073512f910339e56d9e3731e6bba4b24d9592e856c7e68fb0fffb73950e7860deb0eb32299076380825edf4cc0fdf7cfc81dbb5aef9a2905a2e07fba19741846a4ba3f81e2516e8d511b895b5d6d2e3900062bb0968e096eb0f104dc03826ffe59c54bcb3980b30680f643bd78b671e2f8220f09cf8b0016c98ca44f4f75f493bfce3a078052931a7318aa36513903d226161d74c7c29ad9729fadb33caa4109f2c5c976af1d7e779255042d383044981e2071ca6dbde7a327445e7a0091c04de78d22863ad849552af5bbd164c64315bc592bd498ae7261a0149511d030b2eb8d562479d0402085e60e10be98373ab74359e5b0d0eafe2768b3342210f9a0cd05339d08ee63fc380d143f05e87774e073d8442a548e3b7ee568fd80f09094447efc4d5ccef0143fdf5bfcb7346bd7a2798d312cc8ae98922e0f0f7756ca44647dbc62f93188c60196ab73724337e7c64ddc9f71ba8a81c1c15d11422e5b58f68f817726e2838cf365207789d6864c4566c3ee723e4c5b339f3af37176cfe9197359c489c3cce9c913e810d96af017484ac24d744e688a80461eb921d4f8e527c9c4f9fcaebe8747132b6bd9ea86c783f64b53e876834c4f08bfd3aeeef689fb86f94ad8a44ede78d3f0b1219a6b5afd56d1bb61610bb7bd925232a287ab5e67ac277097d955cd1b9fb53050a3e3252af91c9169e4027a7d1c289940b860f5fe90d6e1f809c6e142cef0c78c07235cb2e5e9a5c3bbac836c0a714c0bcba74104119ccdd0b42699ab19e37cc8822574554acf9c2c70712194626221ea08d489922655d7996ee9b2fcfda76939e77b390f5680958dc3fb41825c4850550ca350255aea6f27e720867ffcf38998d02c2b4ebff3a7bbec330ca2b2cb83db2880f0e130b7a573b71b76d87d191c436ade5aca2aa91518f86182d7b7695815d813ca0836f028c6393a6becda2710f94c91c9cf4bfcaabaeca174b6f84cdedb9482398efe900b4cb03ad85b1e86c2d548f706ce6ce7abbe994979a400d28cabf7fca42f3973d3a0e40abd365f3d82ff0524444cfc7bb0957f8ae1f2af5fc0dac136946e1e70a71b13234c5163658bcd76b9a7986edf3a525335eb750c7e9f888a35ce81528a89a982c85685648f43802222096b3ad88f4c64f9323bb10835f64d856fec57398af894e29cf2c1402c9188f7876e455bdf7254efe7e28a47e72ea7c557fb6dc77329c5c5e47ad783d0cffbe60c66e5a20a562364ebab88c0f698c1caec92fd4b39f8814f4a05e952b978c89c3b63daac3d63dcc6f273677f7770798913452d1f2026caa444baa224d3b4b6fa71d3a1311a26433a7d7084b915e918da3b202878233d707770ee6e0337db6bb8e3118d1ed6a20849764275e0207c30aad6e9dfbc629543cda5a611de0fcea2bec753446ea2375d6d3a592d7f8eeb817ac218df8dfe5d87164ad914b92c596eb3ba5bf707d0c8f9cdad958f224a01608fb2c3c4445385890ef33c6cb9eef2e2e3d2fe16a03137e5e42f47301ecd5208608e13569becc719609c823ab4a52fe47d4c61cac464ef24718fb0a4475d80e3ae2605bb96cfc8311e62d85a48f267ed88af3f9455d87b8712ef1c79f3b4093db7ea8fe4c63f038065ac5e5b84ab672bcbadd82331e3c8e4fd7bdab926c7bccac1f306f7a5d95e75674b64e7ab203bf79e04f48627960f7179a29c70325eb58d1a9080a40d3642b712d8d1f216f0653eecb6abf8a2f40e07a03bacc772a2c537d267dde8bbe481b7fa80132ce0fac96c1aaf6df3d427b592ae99358337b019bbba999ebe16947e61e27327d18ca78f78287ae57efbfd1f19bedc86f39e264106e70169e8eeda2a93f713857a588098dd4d8dd7159261556bc72c811a191d4cba0831468a862701593c56105c2d0306620f37e5e2a255555ae374b5c95c1a4dd1a3bfd0e7ff501a08505c0cbd8de2d26a53d9e90fcb24f926c052fcaf65917d74b13d7798c90997b55a41e60ee5375deba064ec3434d83e8cee5875a96d87c1754986baac33126f419a0c7084e64c0d69bd411a6a609ef629684b6677f916889edd267b28146bd2254c5fbd1d9d5de379be832c49270464de9b8be95dd883aa1e7f9e227fc18b77886c2445accfba514c2a870d9160d4b5613b02dca799266494cfa4abf6014b97c19755dbbdb89a148f70f9e09a65a295f0322da6332b75c8fff7a4c51f22b192df20389875e54278701689616f953b865532c697def1fc5114c9af57fc43b0be42f46c7249a8a860fceaeb0c82426da42e6fef52473f50c1917247b2c648bdd9f1558db0e61853de09b394234d423e17db6d8367a570ab62bcdb82f36cebc749e01dcee7a0cf4d2a27d7f1fcb68285699f8830cc494f82fcf3e973fd21ffff1e58633badedac5d2ed43f9b26cd61fb7537436b1cf8fcb894175b43c819abbe46b09a43542fd5440c77591ec498c43ab38b88ad2e5b1ff6470400d5eafe0154269ad4ffeb8cfccea92ef6e49b44760d6f7839927395246ba6f7d15aec0a4ed6a5908ec7f6f310abf06195b0fe78918d930d1945750bb0ac73dcd4f5c1b2dffdee3d4e03f4df7da42c211be9b46fc6f31a6ee8370c87babf32e9f66423fa7646ae6d87ea53204558bb61a3ffe91a5d7b6c6bc2c56838ba7c2d43cd93e5fbc9b0e454bf9b25c533b107110758b50d8c70a54453acb3eb5173e4332b8dd23b117b2fb5ac0abecb3b1cbaafaddddd2f06d349bcd773e676bfd0c2daeb21c04ef3d2a978314895a401dbb7169ba8e9c8c960f2cc67f2104468c7cc69206ababcc516c8a96b008640c04ef162863f01da3e1a0a0d912cd87171fbaec3f52c9fcb2fb7b306aea1b7c647e88c7fe72864dd3aa4797f5f9410e62c5270a9b624fea1efc5b00173d761407b0f71d20dd20af75e452803f9223642bfe6ea1a3d4488255ae2df3578cb6bf48fa5cd9ea1bcfb7bd16ece11f297782f59ef1db5c8299f1857a1070dd0e971658eddcfba0ed6642ba4b8a67683595b30cd934eaa367f271bd8231b2cdf8c6f348179cfe83609ccf32426d021f1cfe4ad1cd17d7310a01b253b2288b4af00d1d0d73db1d8b7f90988c0e09f9a6949b96d432e9e4998b6cf9d46df6d1673e13f3f6c899b6372cc724587afc61e5d44d7a2fc64dc239efb48501c03eb31f3d53ee79cc433fa447880c74194d4b5a520ebca5b26230f04fdf1d49694925d3e301c0cc1bc8c54484516f7eae1cea3868365644f4d47341be2d790866f6b574e33322adeb4a9875f484322efccc3c29d473823010000000000030a151c2a353d46", + "result": "invalid", + "flags": [ + "InvalidHintsEncoding" + ] + }, + { + "tcId": 15, + "comment": "signature with too many hints (causing a buffer overflow)", + "msg": "0100000000000000000000000000000000000000000000000000000000000000", + "sig": "6cc73c863de62231718954780a08787cd0d3f874b0986a5ea5de3a9795107dcdf38bb8a5c46c01b584dd4736ae55250bc609bcb1db6db819ee714a74e5405d8cddf51c016cc1403936937c5d6a34a8b2613b450e285cc28c0bc7a9fc6db1cc109aa6187de298c9847fdfd7df400d87562c38a081e33d5a5966971c6a6a9a0e17edbf34b605d0d54097993953028851c7d6e792e6a9674185b9e97c9a0db89fddbf0d64c7926775b915525b39adcc867ca57f0e8eb13f231729cc466c03ec5e39c37470cb51efe47c20adc47c0669ec27cf63cc2628eb98fd578ac5341022d181c7dba84adec992277b57bacfe427449d48e43dda5b6f65d06757008602f72bb32bf8a9bbf9547326e67e77bcfea408f73c577f412723f3b7f384fa1c8b12bd0b8ff0bb48c02bfecddd8c05b985e67da63501d2b76ab07af7407c05099b2f4237e17d0713bf0844da76e556749ff99d2a46e002d0c3d95f50d655667b2536dace5ad4bbfac84255df8dd1a0ac011269dfc437c5979f6c35baee1404bfe9cced6a3706ea82b64e2dad0761db85c2c6879131a9aec09cefa4f0f46a630710908a4564ae62ebf40272633d4f86f869153b7bf91785e8c2f11e5d855814927a0223b2b36e00a3f97f3f895e2b8f6eec022e133b4c6a54964aa8b35633462681e53147e70df5cdd8483a9d80783a742bdd79c2273c144b82516ac2048d1f2054fbb9a33ec039810e658d290e22ac0da33b5aa3636df826341dd5970557b17338eac7089c1d8ecab3bea5560da6875a7874aef7b78511fa4cf54eeda94960ebcec2f59f51798f5eb3fc16019d18cce3f41ee3fa068129304315a5e58ee0c59cb16d3a1ffb572e5e4bc85e4f049703aa2c5a8264977cdfbe52602f05acd803422836bffca8674d158cfcd0196a498fab074446334996b75679c6d3563fc3cb5ca2686a1ff07d8a61e23feeffa580c612667251f29698fd276f3fd865afa9a72d9f29a948b42342078f38ef421dac5f331cabef9fb9cd4eee4354b53184eed83ffc6ff5cde874e349bff798e6f5a3fdc3fcecc159c3812c1c98f3c76c5e26737b15c1d1ada28f391ccecfb6367bca0ccc2bf76f155746a439fc6377df03161fcdb80d5939907ccf41e524a83af791c5683f7b0823d05738417b597fee6b0e02beb1a5a4b9b5086da4e2fb75cdc5c76ca9665a8ed56fb7345707cf2d10a10287ec269a0645ea4d772aa3a01655f7b6f8334da14f865d4b673786da894f23fca8790f4574799a30e1f4f66821bbeec8c3913495ec0346c0f53fad068fe6bc9027ab4cfbd6211f2603a9eff25f977a3b4fe7e0e46401416cfb2d776718b587bf37c7604fd7d0446488d3847978c33ed94e9dd8571577c9e14226b90cfb1955ed6c6047c7ea02819e8d733800dd4297fb69f8a69d43f03e06d0e5cfcf0a71f65963c04ab2dfba6fc1905ccbb8e33203ddf61218aabbc9e9538df311505cf7cc7dc570a44a96952eac73c3b02019836a11f254eb55c63c8eda9eff87975099d8515f241641a6b13456dd3cfbc4e7c4e3717ad911e3b6cca87c613c373b3c16b67ca2110f1dd86e422fd05f0409ce553e269ecd0c7f528d270d0782c6105ed83dadb2966e7fe5ee77dc38606ab3011ebe4a5b606b2595ef967feca05c26d30ef8bac68c09aaa5e3f87752b83cb78d330ec16a5ebb1138ecde16c76bcffd894211f8fd6b7aa09efbd1bf4a8324367244d06fd017c90b793da27bfc19727a195eb7312fb9b3ac19c66f8785f448a7ab1c18d814ae988c2dc63a3dc6d5fc1fb3ecc9ab5d10363800a766c733c7a6c2edc7b0c86a817a0892b657920f78176691188bc9e82cc4e6629fc5cab248303608ce0fe69724a17eac2222b3bced0aac4c2059a923ba98717921499685a76c53cd5a960d55bce9a6f164b616d06551c65c27576602e5b1d6215a8feeff02d4427bd860630e6aa5b36e6dd53cda37776e1700a63a3222528246fd7f23a1e95ed2e3887ba71064f3e7f7f07a8c3a045c1f13aa2091ed378f855587f5d9f0b449f1ad5b5059d28ed3be95a2a8c466b2a3cc26a8ec716f805d149d13f56462c29585b3b9db663c795cb0d1866865eb9794bd80501e2a1e0cfe8b314bfb9f961c4da31dc6e25831620dd720043c4efe4e19b6261c479b029323c630f1c8345dae9235126f6e1c7e98143b976dbb2a6a09b8a4e01d082d6f1b05a18f818b8777940ad413be6064d6287bd93a7633cc64675c7adce7aed302eba9dff92e04f8d6d224a2896a2dfd27f79dd83dcb4ea136d16d50e7254f2ec0ec55f54edad4b41d78d8d8e07051f63afb6ec37c5cab932baa9df09eeba24b1d3ad9a923e163ddacfef990df40ecac3c55d771cc8f1bf1bb98452d14c93652b25541105f4d20271b250ad2a2a2ebbbdfaa7411a895825ed901412e195dce9d7068e25d34d83e24252ab18b186bee8714ea9ce17501c9543460c2c201b5bd01361736fdbc5bb92938cb2a72c60de2e5360c5a2abec236a1c92a05de478997a247cedf0c9d92d56f4eefce7610b0756119928733ed878230487e6c01b34662bfdb550641d2fb2d41751c66c9eead25caf3e7cbc4dbf0b2bb2a1f9a407fdc9e37bb2268aed94c9163109a8014485e74dec6159f87030f656a6a7266fc30f61cc39a600fed90a4fb8f1837ff9d3d4625e335d87a01a46929c6ef243aa86d1317759200a19f4ac2c24099ce615404fa0b816564313b41a3d2b79a812202afb78ba17ae65a8eaba5139440a4d31b73e9ae16514c082f6907a7ec07da44192cc6325d8dedaa3f0f28bfc92a7653ef5738b9bba85ab593a65e17af07913d321be4057594e16043ca609e308efca3c276840b49fcaf34fa7c38c43fa898800081f2d6a1746db7a950b5cac48d27a420ac20624387dc78194bc29299767e1211f0c7b137abb6c3321b69b546e2782f6c2c29bb2ac652aacac2ce664d95d7610156dd4bbe8685d0e0af25176baa5d8b04b32de81ba8341b4f2afcfa13ff7c6a61c3da03fd2cfe38a0302dbf1882b0e8dc10851aed0205f5ba1d6ffb584f450b110ce1b89ec3f909d0ff3f93932b524ad0f098d7b2ab7037bfdd4ebba64c34f5cf9c5ed1412f4ca280c73fd220580089fc91bac1c1defb0afcbd9dd6e629a1c4f57b4261133cb05830029429f4b4f381a3fc67e67b57f6086e1f49dc13c52d87f28e27eab312ab9e83858dd459de672de08ba5a7cf1b3d073512f910339e56d9e3731e6bba4b24d9592e856c7e68fb0fffb73950e7860deb0eb32299076380825edf4cc0fdf7cfc81dbb5aef9a2905a2e07fba19741846a4ba3f81e2516e8d511b895b5d6d2e3900062bb0968e096eb0f104dc03826ffe59c54bcb3980b30680f643bd78b671e2f8220f09cf8b0016c98ca44f4f75f493bfce3a078052931a7318aa36513903d226161d74c7c29ad9729fadb33caa4109f2c5c976af1d7e779255042d383044981e2071ca6dbde7a327445e7a0091c04de78d22863ad849552af5bbd164c64315bc592bd498ae7261a0149511d030b2eb8d562479d0402085e60e10be98373ab74359e5b0d0eafe2768b3342210f9a0cd05339d08ee63fc380d143f05e87774e073d8442a548e3b7ee568fd80f09094447efc4d5ccef0143fdf5bfcb7346bd7a2798d312cc8ae98922e0f0f7756ca44647dbc62f93188c60196ab73724337e7c64ddc9f71ba8a81c1c15d11422e5b58f68f817726e2838cf365207789d6864c4566c3ee723e4c5b339f3af37176cfe9197359c489c3cce9c913e810d96af017484ac24d744e688a80461eb921d4f8e527c9c4f9fcaebe8747132b6bd9ea86c783f64b53e876834c4f08bfd3aeeef689fb86f94ad8a44ede78d3f0b1219a6b5afd56d1bb61610bb7bd925232a287ab5e67ac277097d955cd1b9fb53050a3e3252af91c9169e4027a7d1c289940b860f5fe90d6e1f809c6e142cef0c78c07235cb2e5e9a5c3bbac836c0a714c0bcba74104119ccdd0b42699ab19e37cc8822574554acf9c2c70712194626221ea08d489922655d7996ee9b2fcfda76939e77b390f5680958dc3fb41825c4850550ca350255aea6f27e720867ffcf38998d02c2b4ebff3a7bbec330ca2b2cb83db2880f0e130b7a573b71b76d87d191c436ade5aca2aa91518f86182d7b7695815d813ca0836f028c6393a6becda2710f94c91c9cf4bfcaabaeca174b6f84cdedb9482398efe900b4cb03ad85b1e86c2d548f706ce6ce7abbe994979a400d28cabf7fca42f3973d3a0e40abd365f3d82ff0524444cfc7bb0957f8ae1f2af5fc0dac136946e1e70a71b13234c5163658bcd76b9a7986edf3a525335eb750c7e9f888a35ce81528a89a982c85685648f43802222096b3ad88f4c64f9323bb10835f64d856fec57398af894e29cf2c1402c9188f7876e455bdf7254efe7e28a47e72ea7c557fb6dc77329c5c5e47ad783d0cffbe60c66e5a20a562364ebab88c0f698c1caec92fd4b39f8814f4a05e952b978c89c3b63daac3d63dcc6f273677f7770798913452d1f2026caa444baa224d3b4b6fa71d3a1311a26433a7d7084b915e918da3b202878233d707770ee6e0337db6bb8e3118d1ed6a20849764275e0207c30aad6e9dfbc629543cda5a611de0fcea2bec753446ea2375d6d3a592d7f8eeb817ac218df8dfe5d87164ad914b92c596eb3ba5bf707d0c8f9cdad958f224a01608fb2c3c4445385890ef33c6cb9eef2e2e3d2fe16a03137e5e42f47301ecd5208608e13569becc719609c823ab4a52fe47d4c61cac464ef24718fb0a4475d80e3ae2605bb96cfc8311e62d85a48f267ed88af3f9455d87b8712ef1c79f3b4093db7ea8fe4c63f038065ac5e5b84ab672bcbadd82331e3c8e4fd7bdab926c7bccac1f306f7a5d95e75674b64e7ab203bf79e04f48627960f7179a29c70325eb58d1a9080a40d3642b712d8d1f216f0653eecb6abf8a2f40e07a03bacc772a2c537d267dde8bbe481b7fa80132ce0fac96c1aaf6df3d427b592ae99358337b019bbba999ebe16947e61e27327d18ca78f78287ae57efbfd1f19bedc86f39e264106e70169e8eeda2a93f713857a588098dd4d8dd7159261556bc72c811a191d4cba0831468a862701593c56105c2d0306620f37e5e2a255555ae374b5c95c1a4dd1a3bfd0e7ff501a08505c0cbd8de2d26a53d9e90fcb24f926c052fcaf65917d74b13d7798c90997b55a41e60ee5375deba064ec3434d83e8cee5875a96d87c1754986baac33126f419a0c7084e64c0d69bd411a6a609ef629684b6677f916889edd267b28146bd2254c5fbd1d9d5de379be832c49270464de9b8be95dd883aa1e7f9e227fc18b77886c2445accfba514c2a870d9160d4b5613b02dca799266494cfa4abf6014b97c19755dbbdb89a148f70f9e09a65a295f0322da6332b75c8fff7a4c51f22b192df20389875e54278701689616f953b865532c697def1fc5114c9af57fc43b0be42f46c7249a8a860fceaeb0c82426da42e6fef52473f50c1917247b2c648bdd9f1558db0e61853de09b394234d423e17db6d8367a570ab62bcdb82f36cebc749e01dcee7a0cf4d2a27d7f1fcb68285699f8830cc494f82fcf3e973fd21ffff1e58633badedac5d2ed43f9b26cd61fb7537436b1cf8fcb894175b43c819abbe46b09a43542fd5440c77591ec498c43ab38b88ad2e5b1ff6470400d5eafe0154269ad4ffeb8cfccea92ef6e49b44760d6f7839927395246ba6f7d15aec0a4ed6a5908ec7f6f310abf06195b0fe78918d930d1945750bb0ac73dcd4f5c1b2dffdee3d4e03f4df7da42c211be9b46fc6f31a6ee8370c87babf32e9f66423fa7646ae6d87ea53204558bb61a3ffe91a5d7b6c6bc2c56838ba7c2d43cd93e5fbc9b0e454bf9b25c533b107110758b50d8c70a54453acb3eb5173e4332b8dd23b117b2fb5ac0abecb3b1cbaafaddddd2f06d349bcd773e676bfd0c2daeb21c04ef3d2a978314895a401dbb7169ba8e9c8c960f2cc67f2104468c7cc69206ababcc516c8a96b008640c04ef162863f01da3e1a0a0d912cd87171fbaec3f52c9fcb2fb7b306aea1b7c647e88c7fe72864dd3aa4797f5f9410e62c5270a9b624fea1efc5b00173d761407b0f71d20dd20af75e452803f9223642bfe6ea1a3d4488255ae2df3578cb6bf48fa5cd9ea1bcfb7bd16ece11f297782f59ef1db5c8299f1857a1070dd0e971658eddcfba0ed6642ba4b8a67683595b30cd934eaa367f271bd8231b2cdf8c6f348179cfe83609ccf32426d021f1cfe4ad1cd17d7310a01b253b2288b4af00d1d0d73db1d8b7f90988c0e09f9a6949b96d432e9e4998b6cf9d46df6d1673e13f3f6c899b6372cc724587afc61e5d44d7a2fc64dc239efb48501c03eb31f3d53ee79cc433fa447880c74194d420a5b5040f23265bcaeb0c1c303e5d929496d4f1fd164548548cbcc11b34474d4f64658386a3cee1eaf72a32334e576b6f8690d7e22243485f87a9b4de012338479dc2c3ccef0000000000030a151c2a353dff", + "result": "invalid", + "flags": [ + "InvalidHintsEncoding" + ] + }, + { + "tcId": 16, + "comment": "signature with non-zero padding in hints", + "msg": "0100000000000000000000000000000000000000000000000000000000000000", + "sig": "6cc73c863de62231718954780a08787cd0d3f874b0986a5ea5de3a9795107dcdf38bb8a5c46c01b584dd4736ae55250bc609bcb1db6db819ee714a74e5405d8cddf51c016cc1403936937c5d6a34a8b2613b450e285cc28c0bc7a9fc6db1cc109aa6187de298c9847fdfd7df400d87562c38a081e33d5a5966971c6a6a9a0e17edbf34b605d0d54097993953028851c7d6e792e6a9674185b9e97c9a0db89fddbf0d64c7926775b915525b39adcc867ca57f0e8eb13f231729cc466c03ec5e39c37470cb51efe47c20adc47c0669ec27cf63cc2628eb98fd578ac5341022d181c7dba84adec992277b57bacfe427449d48e43dda5b6f65d06757008602f72bb32bf8a9bbf9547326e67e77bcfea408f73c577f412723f3b7f384fa1c8b12bd0b8ff0bb48c02bfecddd8c05b985e67da63501d2b76ab07af7407c05099b2f4237e17d0713bf0844da76e556749ff99d2a46e002d0c3d95f50d655667b2536dace5ad4bbfac84255df8dd1a0ac011269dfc437c5979f6c35baee1404bfe9cced6a3706ea82b64e2dad0761db85c2c6879131a9aec09cefa4f0f46a630710908a4564ae62ebf40272633d4f86f869153b7bf91785e8c2f11e5d855814927a0223b2b36e00a3f97f3f895e2b8f6eec022e133b4c6a54964aa8b35633462681e53147e70df5cdd8483a9d80783a742bdd79c2273c144b82516ac2048d1f2054fbb9a33ec039810e658d290e22ac0da33b5aa3636df826341dd5970557b17338eac7089c1d8ecab3bea5560da6875a7874aef7b78511fa4cf54eeda94960ebcec2f59f51798f5eb3fc16019d18cce3f41ee3fa068129304315a5e58ee0c59cb16d3a1ffb572e5e4bc85e4f049703aa2c5a8264977cdfbe52602f05acd803422836bffca8674d158cfcd0196a498fab074446334996b75679c6d3563fc3cb5ca2686a1ff07d8a61e23feeffa580c612667251f29698fd276f3fd865afa9a72d9f29a948b42342078f38ef421dac5f331cabef9fb9cd4eee4354b53184eed83ffc6ff5cde874e349bff798e6f5a3fdc3fcecc159c3812c1c98f3c76c5e26737b15c1d1ada28f391ccecfb6367bca0ccc2bf76f155746a439fc6377df03161fcdb80d5939907ccf41e524a83af791c5683f7b0823d05738417b597fee6b0e02beb1a5a4b9b5086da4e2fb75cdc5c76ca9665a8ed56fb7345707cf2d10a10287ec269a0645ea4d772aa3a01655f7b6f8334da14f865d4b673786da894f23fca8790f4574799a30e1f4f66821bbeec8c3913495ec0346c0f53fad068fe6bc9027ab4cfbd6211f2603a9eff25f977a3b4fe7e0e46401416cfb2d776718b587bf37c7604fd7d0446488d3847978c33ed94e9dd8571577c9e14226b90cfb1955ed6c6047c7ea02819e8d733800dd4297fb69f8a69d43f03e06d0e5cfcf0a71f65963c04ab2dfba6fc1905ccbb8e33203ddf61218aabbc9e9538df311505cf7cc7dc570a44a96952eac73c3b02019836a11f254eb55c63c8eda9eff87975099d8515f241641a6b13456dd3cfbc4e7c4e3717ad911e3b6cca87c613c373b3c16b67ca2110f1dd86e422fd05f0409ce553e269ecd0c7f528d270d0782c6105ed83dadb2966e7fe5ee77dc38606ab3011ebe4a5b606b2595ef967feca05c26d30ef8bac68c09aaa5e3f87752b83cb78d330ec16a5ebb1138ecde16c76bcffd894211f8fd6b7aa09efbd1bf4a8324367244d06fd017c90b793da27bfc19727a195eb7312fb9b3ac19c66f8785f448a7ab1c18d814ae988c2dc63a3dc6d5fc1fb3ecc9ab5d10363800a766c733c7a6c2edc7b0c86a817a0892b657920f78176691188bc9e82cc4e6629fc5cab248303608ce0fe69724a17eac2222b3bced0aac4c2059a923ba98717921499685a76c53cd5a960d55bce9a6f164b616d06551c65c27576602e5b1d6215a8feeff02d4427bd860630e6aa5b36e6dd53cda37776e1700a63a3222528246fd7f23a1e95ed2e3887ba71064f3e7f7f07a8c3a045c1f13aa2091ed378f855587f5d9f0b449f1ad5b5059d28ed3be95a2a8c466b2a3cc26a8ec716f805d149d13f56462c29585b3b9db663c795cb0d1866865eb9794bd80501e2a1e0cfe8b314bfb9f961c4da31dc6e25831620dd720043c4efe4e19b6261c479b029323c630f1c8345dae9235126f6e1c7e98143b976dbb2a6a09b8a4e01d082d6f1b05a18f818b8777940ad413be6064d6287bd93a7633cc64675c7adce7aed302eba9dff92e04f8d6d224a2896a2dfd27f79dd83dcb4ea136d16d50e7254f2ec0ec55f54edad4b41d78d8d8e07051f63afb6ec37c5cab932baa9df09eeba24b1d3ad9a923e163ddacfef990df40ecac3c55d771cc8f1bf1bb98452d14c93652b25541105f4d20271b250ad2a2a2ebbbdfaa7411a895825ed901412e195dce9d7068e25d34d83e24252ab18b186bee8714ea9ce17501c9543460c2c201b5bd01361736fdbc5bb92938cb2a72c60de2e5360c5a2abec236a1c92a05de478997a247cedf0c9d92d56f4eefce7610b0756119928733ed878230487e6c01b34662bfdb550641d2fb2d41751c66c9eead25caf3e7cbc4dbf0b2bb2a1f9a407fdc9e37bb2268aed94c9163109a8014485e74dec6159f87030f656a6a7266fc30f61cc39a600fed90a4fb8f1837ff9d3d4625e335d87a01a46929c6ef243aa86d1317759200a19f4ac2c24099ce615404fa0b816564313b41a3d2b79a812202afb78ba17ae65a8eaba5139440a4d31b73e9ae16514c082f6907a7ec07da44192cc6325d8dedaa3f0f28bfc92a7653ef5738b9bba85ab593a65e17af07913d321be4057594e16043ca609e308efca3c276840b49fcaf34fa7c38c43fa898800081f2d6a1746db7a950b5cac48d27a420ac20624387dc78194bc29299767e1211f0c7b137abb6c3321b69b546e2782f6c2c29bb2ac652aacac2ce664d95d7610156dd4bbe8685d0e0af25176baa5d8b04b32de81ba8341b4f2afcfa13ff7c6a61c3da03fd2cfe38a0302dbf1882b0e8dc10851aed0205f5ba1d6ffb584f450b110ce1b89ec3f909d0ff3f93932b524ad0f098d7b2ab7037bfdd4ebba64c34f5cf9c5ed1412f4ca280c73fd220580089fc91bac1c1defb0afcbd9dd6e629a1c4f57b4261133cb05830029429f4b4f381a3fc67e67b57f6086e1f49dc13c52d87f28e27eab312ab9e83858dd459de672de08ba5a7cf1b3d073512f910339e56d9e3731e6bba4b24d9592e856c7e68fb0fffb73950e7860deb0eb32299076380825edf4cc0fdf7cfc81dbb5aef9a2905a2e07fba19741846a4ba3f81e2516e8d511b895b5d6d2e3900062bb0968e096eb0f104dc03826ffe59c54bcb3980b30680f643bd78b671e2f8220f09cf8b0016c98ca44f4f75f493bfce3a078052931a7318aa36513903d226161d74c7c29ad9729fadb33caa4109f2c5c976af1d7e779255042d383044981e2071ca6dbde7a327445e7a0091c04de78d22863ad849552af5bbd164c64315bc592bd498ae7261a0149511d030b2eb8d562479d0402085e60e10be98373ab74359e5b0d0eafe2768b3342210f9a0cd05339d08ee63fc380d143f05e87774e073d8442a548e3b7ee568fd80f09094447efc4d5ccef0143fdf5bfcb7346bd7a2798d312cc8ae98922e0f0f7756ca44647dbc62f93188c60196ab73724337e7c64ddc9f71ba8a81c1c15d11422e5b58f68f817726e2838cf365207789d6864c4566c3ee723e4c5b339f3af37176cfe9197359c489c3cce9c913e810d96af017484ac24d744e688a80461eb921d4f8e527c9c4f9fcaebe8747132b6bd9ea86c783f64b53e876834c4f08bfd3aeeef689fb86f94ad8a44ede78d3f0b1219a6b5afd56d1bb61610bb7bd925232a287ab5e67ac277097d955cd1b9fb53050a3e3252af91c9169e4027a7d1c289940b860f5fe90d6e1f809c6e142cef0c78c07235cb2e5e9a5c3bbac836c0a714c0bcba74104119ccdd0b42699ab19e37cc8822574554acf9c2c70712194626221ea08d489922655d7996ee9b2fcfda76939e77b390f5680958dc3fb41825c4850550ca350255aea6f27e720867ffcf38998d02c2b4ebff3a7bbec330ca2b2cb83db2880f0e130b7a573b71b76d87d191c436ade5aca2aa91518f86182d7b7695815d813ca0836f028c6393a6becda2710f94c91c9cf4bfcaabaeca174b6f84cdedb9482398efe900b4cb03ad85b1e86c2d548f706ce6ce7abbe994979a400d28cabf7fca42f3973d3a0e40abd365f3d82ff0524444cfc7bb0957f8ae1f2af5fc0dac136946e1e70a71b13234c5163658bcd76b9a7986edf3a525335eb750c7e9f888a35ce81528a89a982c85685648f43802222096b3ad88f4c64f9323bb10835f64d856fec57398af894e29cf2c1402c9188f7876e455bdf7254efe7e28a47e72ea7c557fb6dc77329c5c5e47ad783d0cffbe60c66e5a20a562364ebab88c0f698c1caec92fd4b39f8814f4a05e952b978c89c3b63daac3d63dcc6f273677f7770798913452d1f2026caa444baa224d3b4b6fa71d3a1311a26433a7d7084b915e918da3b202878233d707770ee6e0337db6bb8e3118d1ed6a20849764275e0207c30aad6e9dfbc629543cda5a611de0fcea2bec753446ea2375d6d3a592d7f8eeb817ac218df8dfe5d87164ad914b92c596eb3ba5bf707d0c8f9cdad958f224a01608fb2c3c4445385890ef33c6cb9eef2e2e3d2fe16a03137e5e42f47301ecd5208608e13569becc719609c823ab4a52fe47d4c61cac464ef24718fb0a4475d80e3ae2605bb96cfc8311e62d85a48f267ed88af3f9455d87b8712ef1c79f3b4093db7ea8fe4c63f038065ac5e5b84ab672bcbadd82331e3c8e4fd7bdab926c7bccac1f306f7a5d95e75674b64e7ab203bf79e04f48627960f7179a29c70325eb58d1a9080a40d3642b712d8d1f216f0653eecb6abf8a2f40e07a03bacc772a2c537d267dde8bbe481b7fa80132ce0fac96c1aaf6df3d427b592ae99358337b019bbba999ebe16947e61e27327d18ca78f78287ae57efbfd1f19bedc86f39e264106e70169e8eeda2a93f713857a588098dd4d8dd7159261556bc72c811a191d4cba0831468a862701593c56105c2d0306620f37e5e2a255555ae374b5c95c1a4dd1a3bfd0e7ff501a08505c0cbd8de2d26a53d9e90fcb24f926c052fcaf65917d74b13d7798c90997b55a41e60ee5375deba064ec3434d83e8cee5875a96d87c1754986baac33126f419a0c7084e64c0d69bd411a6a609ef629684b6677f916889edd267b28146bd2254c5fbd1d9d5de379be832c49270464de9b8be95dd883aa1e7f9e227fc18b77886c2445accfba514c2a870d9160d4b5613b02dca799266494cfa4abf6014b97c19755dbbdb89a148f70f9e09a65a295f0322da6332b75c8fff7a4c51f22b192df20389875e54278701689616f953b865532c697def1fc5114c9af57fc43b0be42f46c7249a8a860fceaeb0c82426da42e6fef52473f50c1917247b2c648bdd9f1558db0e61853de09b394234d423e17db6d8367a570ab62bcdb82f36cebc749e01dcee7a0cf4d2a27d7f1fcb68285699f8830cc494f82fcf3e973fd21ffff1e58633badedac5d2ed43f9b26cd61fb7537436b1cf8fcb894175b43c819abbe46b09a43542fd5440c77591ec498c43ab38b88ad2e5b1ff6470400d5eafe0154269ad4ffeb8cfccea92ef6e49b44760d6f7839927395246ba6f7d15aec0a4ed6a5908ec7f6f310abf06195b0fe78918d930d1945750bb0ac73dcd4f5c1b2dffdee3d4e03f4df7da42c211be9b46fc6f31a6ee8370c87babf32e9f66423fa7646ae6d87ea53204558bb61a3ffe91a5d7b6c6bc2c56838ba7c2d43cd93e5fbc9b0e454bf9b25c533b107110758b50d8c70a54453acb3eb5173e4332b8dd23b117b2fb5ac0abecb3b1cbaafaddddd2f06d349bcd773e676bfd0c2daeb21c04ef3d2a978314895a401dbb7169ba8e9c8c960f2cc67f2104468c7cc69206ababcc516c8a96b008640c04ef162863f01da3e1a0a0d912cd87171fbaec3f52c9fcb2fb7b306aea1b7c647e88c7fe72864dd3aa4797f5f9410e62c5270a9b624fea1efc5b00173d761407b0f71d20dd20af75e452803f9223642bfe6ea1a3d4488255ae2df3578cb6bf48fa5cd9ea1bcfb7bd16ece11f297782f59ef1db5c8299f1857a1070dd0e971658eddcfba0ed6642ba4b8a67683595b30cd934eaa367f271bd8231b2cdf8c6f348179cfe83609ccf32426d021f1cfe4ad1cd17d7310a01b253b2288b4af00d1d0d73db1d8b7f90988c0e09f9a6949b96d432e9e4998b6cf9d46df6d1673e13f3f6c899b6372cc724587afc61e5d44d7a2fc64dc239efb48501c03eb31f3d53ee79cc433fa447880c74194d420a5b5040f23265bcaeb0c1c303e5d929496d4f1fd164548548cbcc11b34474d4f64658386a3cee1eaf72a32334e576b6f8690d7e22243485f87a9b4de012338479dc2c3ccef2a2a2a2a2a030a151c2a353d46", + "result": "invalid", + "flags": [ + "InvalidHintsEncoding" + ] + }, + { + "tcId": 17, + "comment": "signature with a repeated hint", + "msg": "0100000000000000000000000000000000000000000000000000000000000000", + "sig": "6cc73c863de62231718954780a08787cd0d3f874b0986a5ea5de3a9795107dcdf38bb8a5c46c01b584dd4736ae55250bc609bcb1db6db819ee714a74e5405d8cddf51c016cc1403936937c5d6a34a8b2613b450e285cc28c0bc7a9fc6db1cc109aa6187de298c9847fdfd7df400d87562c38a081e33d5a5966971c6a6a9a0e17edbf34b605d0d54097993953028851c7d6e792e6a9674185b9e97c9a0db89fddbf0d64c7926775b915525b39adcc867ca57f0e8eb13f231729cc466c03ec5e39c37470cb51efe47c20adc47c0669ec27cf63cc2628eb98fd578ac5341022d181c7dba84adec992277b57bacfe427449d48e43dda5b6f65d06757008602f72bb32bf8a9bbf9547326e67e77bcfea408f73c577f412723f3b7f384fa1c8b12bd0b8ff0bb48c02bfecddd8c05b985e67da63501d2b76ab07af7407c05099b2f4237e17d0713bf0844da76e556749ff99d2a46e002d0c3d95f50d655667b2536dace5ad4bbfac84255df8dd1a0ac011269dfc437c5979f6c35baee1404bfe9cced6a3706ea82b64e2dad0761db85c2c6879131a9aec09cefa4f0f46a630710908a4564ae62ebf40272633d4f86f869153b7bf91785e8c2f11e5d855814927a0223b2b36e00a3f97f3f895e2b8f6eec022e133b4c6a54964aa8b35633462681e53147e70df5cdd8483a9d80783a742bdd79c2273c144b82516ac2048d1f2054fbb9a33ec039810e658d290e22ac0da33b5aa3636df826341dd5970557b17338eac7089c1d8ecab3bea5560da6875a7874aef7b78511fa4cf54eeda94960ebcec2f59f51798f5eb3fc16019d18cce3f41ee3fa068129304315a5e58ee0c59cb16d3a1ffb572e5e4bc85e4f049703aa2c5a8264977cdfbe52602f05acd803422836bffca8674d158cfcd0196a498fab074446334996b75679c6d3563fc3cb5ca2686a1ff07d8a61e23feeffa580c612667251f29698fd276f3fd865afa9a72d9f29a948b42342078f38ef421dac5f331cabef9fb9cd4eee4354b53184eed83ffc6ff5cde874e349bff798e6f5a3fdc3fcecc159c3812c1c98f3c76c5e26737b15c1d1ada28f391ccecfb6367bca0ccc2bf76f155746a439fc6377df03161fcdb80d5939907ccf41e524a83af791c5683f7b0823d05738417b597fee6b0e02beb1a5a4b9b5086da4e2fb75cdc5c76ca9665a8ed56fb7345707cf2d10a10287ec269a0645ea4d772aa3a01655f7b6f8334da14f865d4b673786da894f23fca8790f4574799a30e1f4f66821bbeec8c3913495ec0346c0f53fad068fe6bc9027ab4cfbd6211f2603a9eff25f977a3b4fe7e0e46401416cfb2d776718b587bf37c7604fd7d0446488d3847978c33ed94e9dd8571577c9e14226b90cfb1955ed6c6047c7ea02819e8d733800dd4297fb69f8a69d43f03e06d0e5cfcf0a71f65963c04ab2dfba6fc1905ccbb8e33203ddf61218aabbc9e9538df311505cf7cc7dc570a44a96952eac73c3b02019836a11f254eb55c63c8eda9eff87975099d8515f241641a6b13456dd3cfbc4e7c4e3717ad911e3b6cca87c613c373b3c16b67ca2110f1dd86e422fd05f0409ce553e269ecd0c7f528d270d0782c6105ed83dadb2966e7fe5ee77dc38606ab3011ebe4a5b606b2595ef967feca05c26d30ef8bac68c09aaa5e3f87752b83cb78d330ec16a5ebb1138ecde16c76bcffd894211f8fd6b7aa09efbd1bf4a8324367244d06fd017c90b793da27bfc19727a195eb7312fb9b3ac19c66f8785f448a7ab1c18d814ae988c2dc63a3dc6d5fc1fb3ecc9ab5d10363800a766c733c7a6c2edc7b0c86a817a0892b657920f78176691188bc9e82cc4e6629fc5cab248303608ce0fe69724a17eac2222b3bced0aac4c2059a923ba98717921499685a76c53cd5a960d55bce9a6f164b616d06551c65c27576602e5b1d6215a8feeff02d4427bd860630e6aa5b36e6dd53cda37776e1700a63a3222528246fd7f23a1e95ed2e3887ba71064f3e7f7f07a8c3a045c1f13aa2091ed378f855587f5d9f0b449f1ad5b5059d28ed3be95a2a8c466b2a3cc26a8ec716f805d149d13f56462c29585b3b9db663c795cb0d1866865eb9794bd80501e2a1e0cfe8b314bfb9f961c4da31dc6e25831620dd720043c4efe4e19b6261c479b029323c630f1c8345dae9235126f6e1c7e98143b976dbb2a6a09b8a4e01d082d6f1b05a18f818b8777940ad413be6064d6287bd93a7633cc64675c7adce7aed302eba9dff92e04f8d6d224a2896a2dfd27f79dd83dcb4ea136d16d50e7254f2ec0ec55f54edad4b41d78d8d8e07051f63afb6ec37c5cab932baa9df09eeba24b1d3ad9a923e163ddacfef990df40ecac3c55d771cc8f1bf1bb98452d14c93652b25541105f4d20271b250ad2a2a2ebbbdfaa7411a895825ed901412e195dce9d7068e25d34d83e24252ab18b186bee8714ea9ce17501c9543460c2c201b5bd01361736fdbc5bb92938cb2a72c60de2e5360c5a2abec236a1c92a05de478997a247cedf0c9d92d56f4eefce7610b0756119928733ed878230487e6c01b34662bfdb550641d2fb2d41751c66c9eead25caf3e7cbc4dbf0b2bb2a1f9a407fdc9e37bb2268aed94c9163109a8014485e74dec6159f87030f656a6a7266fc30f61cc39a600fed90a4fb8f1837ff9d3d4625e335d87a01a46929c6ef243aa86d1317759200a19f4ac2c24099ce615404fa0b816564313b41a3d2b79a812202afb78ba17ae65a8eaba5139440a4d31b73e9ae16514c082f6907a7ec07da44192cc6325d8dedaa3f0f28bfc92a7653ef5738b9bba85ab593a65e17af07913d321be4057594e16043ca609e308efca3c276840b49fcaf34fa7c38c43fa898800081f2d6a1746db7a950b5cac48d27a420ac20624387dc78194bc29299767e1211f0c7b137abb6c3321b69b546e2782f6c2c29bb2ac652aacac2ce664d95d7610156dd4bbe8685d0e0af25176baa5d8b04b32de81ba8341b4f2afcfa13ff7c6a61c3da03fd2cfe38a0302dbf1882b0e8dc10851aed0205f5ba1d6ffb584f450b110ce1b89ec3f909d0ff3f93932b524ad0f098d7b2ab7037bfdd4ebba64c34f5cf9c5ed1412f4ca280c73fd220580089fc91bac1c1defb0afcbd9dd6e629a1c4f57b4261133cb05830029429f4b4f381a3fc67e67b57f6086e1f49dc13c52d87f28e27eab312ab9e83858dd459de672de08ba5a7cf1b3d073512f910339e56d9e3731e6bba4b24d9592e856c7e68fb0fffb73950e7860deb0eb32299076380825edf4cc0fdf7cfc81dbb5aef9a2905a2e07fba19741846a4ba3f81e2516e8d511b895b5d6d2e3900062bb0968e096eb0f104dc03826ffe59c54bcb3980b30680f643bd78b671e2f8220f09cf8b0016c98ca44f4f75f493bfce3a078052931a7318aa36513903d226161d74c7c29ad9729fadb33caa4109f2c5c976af1d7e779255042d383044981e2071ca6dbde7a327445e7a0091c04de78d22863ad849552af5bbd164c64315bc592bd498ae7261a0149511d030b2eb8d562479d0402085e60e10be98373ab74359e5b0d0eafe2768b3342210f9a0cd05339d08ee63fc380d143f05e87774e073d8442a548e3b7ee568fd80f09094447efc4d5ccef0143fdf5bfcb7346bd7a2798d312cc8ae98922e0f0f7756ca44647dbc62f93188c60196ab73724337e7c64ddc9f71ba8a81c1c15d11422e5b58f68f817726e2838cf365207789d6864c4566c3ee723e4c5b339f3af37176cfe9197359c489c3cce9c913e810d96af017484ac24d744e688a80461eb921d4f8e527c9c4f9fcaebe8747132b6bd9ea86c783f64b53e876834c4f08bfd3aeeef689fb86f94ad8a44ede78d3f0b1219a6b5afd56d1bb61610bb7bd925232a287ab5e67ac277097d955cd1b9fb53050a3e3252af91c9169e4027a7d1c289940b860f5fe90d6e1f809c6e142cef0c78c07235cb2e5e9a5c3bbac836c0a714c0bcba74104119ccdd0b42699ab19e37cc8822574554acf9c2c70712194626221ea08d489922655d7996ee9b2fcfda76939e77b390f5680958dc3fb41825c4850550ca350255aea6f27e720867ffcf38998d02c2b4ebff3a7bbec330ca2b2cb83db2880f0e130b7a573b71b76d87d191c436ade5aca2aa91518f86182d7b7695815d813ca0836f028c6393a6becda2710f94c91c9cf4bfcaabaeca174b6f84cdedb9482398efe900b4cb03ad85b1e86c2d548f706ce6ce7abbe994979a400d28cabf7fca42f3973d3a0e40abd365f3d82ff0524444cfc7bb0957f8ae1f2af5fc0dac136946e1e70a71b13234c5163658bcd76b9a7986edf3a525335eb750c7e9f888a35ce81528a89a982c85685648f43802222096b3ad88f4c64f9323bb10835f64d856fec57398af894e29cf2c1402c9188f7876e455bdf7254efe7e28a47e72ea7c557fb6dc77329c5c5e47ad783d0cffbe60c66e5a20a562364ebab88c0f698c1caec92fd4b39f8814f4a05e952b978c89c3b63daac3d63dcc6f273677f7770798913452d1f2026caa444baa224d3b4b6fa71d3a1311a26433a7d7084b915e918da3b202878233d707770ee6e0337db6bb8e3118d1ed6a20849764275e0207c30aad6e9dfbc629543cda5a611de0fcea2bec753446ea2375d6d3a592d7f8eeb817ac218df8dfe5d87164ad914b92c596eb3ba5bf707d0c8f9cdad958f224a01608fb2c3c4445385890ef33c6cb9eef2e2e3d2fe16a03137e5e42f47301ecd5208608e13569becc719609c823ab4a52fe47d4c61cac464ef24718fb0a4475d80e3ae2605bb96cfc8311e62d85a48f267ed88af3f9455d87b8712ef1c79f3b4093db7ea8fe4c63f038065ac5e5b84ab672bcbadd82331e3c8e4fd7bdab926c7bccac1f306f7a5d95e75674b64e7ab203bf79e04f48627960f7179a29c70325eb58d1a9080a40d3642b712d8d1f216f0653eecb6abf8a2f40e07a03bacc772a2c537d267dde8bbe481b7fa80132ce0fac96c1aaf6df3d427b592ae99358337b019bbba999ebe16947e61e27327d18ca78f78287ae57efbfd1f19bedc86f39e264106e70169e8eeda2a93f713857a588098dd4d8dd7159261556bc72c811a191d4cba0831468a862701593c56105c2d0306620f37e5e2a255555ae374b5c95c1a4dd1a3bfd0e7ff501a08505c0cbd8de2d26a53d9e90fcb24f926c052fcaf65917d74b13d7798c90997b55a41e60ee5375deba064ec3434d83e8cee5875a96d87c1754986baac33126f419a0c7084e64c0d69bd411a6a609ef629684b6677f916889edd267b28146bd2254c5fbd1d9d5de379be832c49270464de9b8be95dd883aa1e7f9e227fc18b77886c2445accfba514c2a870d9160d4b5613b02dca799266494cfa4abf6014b97c19755dbbdb89a148f70f9e09a65a295f0322da6332b75c8fff7a4c51f22b192df20389875e54278701689616f953b865532c697def1fc5114c9af57fc43b0be42f46c7249a8a860fceaeb0c82426da42e6fef52473f50c1917247b2c648bdd9f1558db0e61853de09b394234d423e17db6d8367a570ab62bcdb82f36cebc749e01dcee7a0cf4d2a27d7f1fcb68285699f8830cc494f82fcf3e973fd21ffff1e58633badedac5d2ed43f9b26cd61fb7537436b1cf8fcb894175b43c819abbe46b09a43542fd5440c77591ec498c43ab38b88ad2e5b1ff6470400d5eafe0154269ad4ffeb8cfccea92ef6e49b44760d6f7839927395246ba6f7d15aec0a4ed6a5908ec7f6f310abf06195b0fe78918d930d1945750bb0ac73dcd4f5c1b2dffdee3d4e03f4df7da42c211be9b46fc6f31a6ee8370c87babf32e9f66423fa7646ae6d87ea53204558bb61a3ffe91a5d7b6c6bc2c56838ba7c2d43cd93e5fbc9b0e454bf9b25c533b107110758b50d8c70a54453acb3eb5173e4332b8dd23b117b2fb5ac0abecb3b1cbaafaddddd2f06d349bcd773e676bfd0c2daeb21c04ef3d2a978314895a401dbb7169ba8e9c8c960f2cc67f2104468c7cc69206ababcc516c8a96b008640c04ef162863f01da3e1a0a0d912cd87171fbaec3f52c9fcb2fb7b306aea1b7c647e88c7fe72864dd3aa4797f5f9410e62c5270a9b624fea1efc5b00173d761407b0f71d20dd20af75e452803f9223642bfe6ea1a3d4488255ae2df3578cb6bf48fa5cd9ea1bcfb7bd16ece11f297782f59ef1db5c8299f1857a1070dd0e971658eddcfba0ed6642ba4b8a67683595b30cd934eaa367f271bd8231b2cdf8c6f348179cfe83609ccf32426d021f1cfe4ad1cd17d7310a01b253b2288b4af00d1d0d73db1d8b7f90988c0e09f9a6949b96d432e9e4998b6cf9d46df6d1673e13f3f6c899b6372cc724587afc61e5d44d7a2fc64dc239efb48501c03eb31f3d53ee79cc433fa447880c74194d42020a5b5040f23265bcaeb0c1c303e5d929496d4f1fd164548548cbcc11b34474d4f64658386a3cee1eaf72a32334e576b6f8690d7e22243485f87a9b4de012338479dc2c3ccef00000000040b161d2b363e47", + "result": "invalid", + "flags": [ + "InvalidHintsEncoding" + ] + }, + { + "tcId": 18, + "comment": "signature with omega+1 hints (causing a buffer overflow)", + "msg": "3d07000000000000000000000000000000000000000000000000000000000000", + "sig": "a20b480ca9b409acd6968726059722f9889fe5dccd657f9825350fea0419769ae95fd519945031e552a74a631b6f8913de8818b7ddca5691209bf731cdf5a5591b11482861b5f7dc6265458e25ec5cc8f74c7b86c49feb1e3eec2558fcded09009cd47d9dc22b37202fd52f895e5139f4a7fe8c3105482649e9cc35c8ec18b8badadee3eaab3ee36f57152652ffb8bcaf90e216ba37d8aa583c7338b85fd350e0dac07bf633d273ed54b7948e94ded864e9d1d1c039d2a9f040359858cb53d45506255487175f264e6ad921e67fc847a3298f021e0017caa232238eed99bcf77ddd552005b4640c5998b8cc357149a8f91546f68f2c0ba25537dffc9bffff00f0bf1e486d986075f9e31bce53add040331c65209468e14d7be8ff4821c625c83f3e4a3fde96ddbb3282fc57e82379f9b8c1eb060909964eaed33cbe60174f9cc7b6e1135cd109f84af30b37f312514122fd9a116bc498c7e83edcd5888974338d6c116c1a1c25d5c3c70091960da07c99e7bc714a289d4826b06bd56d9ab3f3cb58d31d75cb48ac9aad64deab114b836d6bf0c77977f0371e9a9c9d66393cd9738ac2dde90024fe502c772608081f9069ac676e379d74d31c21f26187be82a603dd9412c2322d5ce59410300681a464098a85057c0fb1d00986a252beb77d5d0007d0ed4fff553bfc8571ebc02f533a146c60ca67db3d2453176017b31f20fe2844d92aadda6dd14e449e35c71351d2950a22c6163948fde5d65e87257b44602d404bc89691c9558c8c899cfbff13c0af1dfa84bbde98eae45dbe1faf0945925f4463fd808d21ef1fdd1ba79141ab93bc89742dd2b2c47ae18caa28ca9971b38fa09bc1c92439e845329ede4f78b99a1611beae4c3f2525c4dee0c70d83f8eaca6d90907041d54d4967128d7ac789fe9b0348ae37df177643e73f9ac1f3db5a6a6b5ddc40ebb189bff3d8c22b8fc51eb6671ef39773c7058dd81342199425e361296e3c8a22eadefbc03e1411dabc05f3bc519f45c4571b9025985dee222988fda49c948e16dd0ca1ac9f47263ccecbc73c942b8bb0fa5df7d4497401f5d8a413ff44ec84de23a7e343b03acddbc375348d398b19ab35058299fff5db0da7876d1cf6a561fe5b1c35982d6a9846fdbff9b52e3dcbbfb6a6faae45c2445201c8f3b70d7b473a97e1a055562998f29410d3fc71e61aa8abd0647355d40b363ede6744cfa9d337e4d6add11b8e7de1e4385e13ba3ce24e81b874c8a64f2b38480b64c4ddbe5c2352befb9bbee110265ab401ea1bc1a814df6386a67ac659cbe0aad4721ac3e287bffe57d139f8108ad4c18aeff4c38ffcffeb7f1d0a4eb1f1fc46a2f13f1ef4813209653f280ffadd81c5da0c091ce6095a8b7fe732bb537360a0b46fbbc56bb99e39b5ca11ebc3f55b37fb34b6efd2d1b3bedafff690c74612faca7ecc84023e71383ab071ad867fb44e55cac4c46945fe14e0b7e8329a53135034f4c93a1a8add9e7bfd50813a89b0f1f8d3ab1ced3c4a9876ac5204bf0b28c7ede3b9caf7f19daaae75fe0b2359d7f1c4185b845d6bcf7172ee20845a23743ca37ad89f5c70626e825b8d79595d5080d782a3768cc88f3efe984adcaf596389229f6e39e3c060782a511f87026a880ea284e75584ab851b7f0c79386c87c462e7da9ba09a0b18a8fb4e550fdae84ab782e574135bf9876f2318aea4b49416a9fe61c809ad201a90a4c4026c47913f8a29592bc459e7282a711441450bcc890ba372df4fe4b8cd5f0793f4990afbfd5c1244df25622ab0b67813b15e003b8c96c507016422ebf5eb2abfa6dadacdb183d38032639987aad5f12309d9a1343122a409109158716858740080fdb9968f22fc2ba136aca5e2754561a17a38150f19a287b4827ce1ceee03bf1257786e917a10d4e4034c4bd3a0f9041e4d2b584c6265381ff526ca5eabab91f4082ed9d3c8f11a806841f74e4d828403db857aae10a44cbd9141d72be07fcefbab8750b5e7add031f9071dbfe6f681ea567a309073a0e3ab561557a0e8ae9ccf2ed3970a71e8f9594b1b8f78c2f82bc29ffc7d97075aab6d5169b6d89cb169c2e47f4a3e6dae3661ac8aa4d5fc38174b0c9f0d08bc187dedaeaebb5bf1765507af2ee7da09c009b5ffb39266fe2b8500ce969ab642ac16d412f4d1cd063d0df9e471de3bcd278debb62e17d7dde372293c834283e9a33c1594426b465a600faf907daffa02f81c2db77dbe1430a47935e68a6273690699349d9f3d1f6ff214c5aa8f3f9e0f9334966a90840592d901bccd36c69f31392ecad4b6f76932f01539993c3fb70ddb40abd1da545ed82314c5c363f0c8f780c3b8965d1a294b2a035fa4c2f19d6c45cad149d0020eef14d25a20d85f24d5d0c49a6a7b9dea9891ffad21dba32d16e4b5efcd30c289e0529801a36e68f4f67ae05ff2f3048ce216c5dce38e02b176c67186f3d9344c6b9b1569d27c19f39ac1c440434678e3f03dc9540d5a5bf5d975a51185f75f898b1067511d85dcd64b614f5bcd9936ac5e7d0902187671ecf5a0a2ecb4c303963514a5c350189fa1c82227cdde790223cf847a83c80abce7943cf814bca424cac83333c31c6e426cee41dd1e36762fd881e2104f706b4e9b7692ae485ab7b7bd24fa0801cbb19a3dc9527f2cae1395ecd8fe9d18d4cf0d11be9edf45de3e547137af091bddf28754a99a0a37527dbdd2c36974c1c6afb5ccb8c56875d12089b23bd860fbc86cf197ed0dee9cae9a5f2fb8cf8329ae1c2cfb2f7c995d9114569a40776cd03bed774addcde56aaac202720faabf0103226b718b79385a69abb761c0ec1015d4e59111b7cf49f0a7c919180e289798410db1782080f2943ac0a46f32bcccbd61d873cf2cd0bbcf559cd86f2aec4c898170fddce52b800944a9e404efe4c9a266170b74e7eb14afdf98bd217cbd1ff060b52593128a0411d7a2a5c5aed1c5eec8ceede54e96741954d5f7bc3cc6bbc37752eee84821dcc376c62fd0d48bf835d0a06fe68d47e866550bf07759b751b39ac5fa32f4eb59af382ac004f02b272fa016ab0e957098be3b45e15fe10a084c4838fa07cadb4b66ea883fa65850d4a792684e136ea9bcd8a47c763aea506b3702c2b7839dd91650cca4d2e35c3f2232b0231d910026479de641fb137ba111065d3a7243770b1961a55803996a313c3d1f0e25e4db98f0499eb4a47e689bd7b70c98bf92449f5b4e498db2b41b0f087c8255927dbe86e45423367af4d6dd16c4a0d2c0179ae5c202af2f8b493a53c162f5b719e88294ade3792510c1d4473eb752f7589ce211148b331500ed14d0f46c0bf5c07d77f66b2dae64e7ed43bb294e1558b79c7cd673aa1dbc98480fc728247504501ff74976e52d2f8a6d1a5d438bdedbdcb3dd79bef26ef2ba1521202042c3258460256b6d4430d55a83c7ede269b7159691ad71633ca9e4ca3f6a74ea827bcc0cd38d6d904a6b56dbb81bd86c11650fbce1aff1d7b956c90af68f85f3105bf2fa0ecdac67777cb39a547e491195b2c982ccb7ae19d243b1991b70a069f84caa5c01a79231bbc0e6f5a109a3f809a6553385f916036dd1b46a31b0a921f308a39cb72ab87a956b6be213e718d4bd219af9c51574e29ff3da51c5d7de6b205377ca7245c38b692b85490c5e6657b0ad21530f926ee72581e212c58d1b5eb0a5dcb05b55b2bae74672bf2d57d472cc431e4a05de688841355d84c4c51329f17c7c5fc79276340024c2b23fcd091e8b7320f4768cdf3cefe570060468d72bcd405db779b96dde62bd449044cd8171b6e4884ee5f1fe44a4df52f21570a4bc1de68ca3bf41e9fac87e77aa4d0ac41ec44229e16ed941726c32d13842f8e770967772175f5c02a96bc00baa1e2a6875117184dbd079bf8eff65e91e7db40da8212d1cf2034ee774c5028727a05de20495d1340ed7fea1a2ef3e1adc5938e8fe216aefc0611c6481862d524675167b52b1c3ff49226380f0b52a96f62d7bf2f3c40fb37be15283301ab00e51d1e9118e7b4ad389e0a3af66a9ce6ebfd00cc34c9a8d2df96eabf997b38dcb90b9871d3303632b2ac56a29de2a686f2a4d65ac941e6fa7970f7a8cdf99c005af8f3364ee411757585100e33dc3fe3c3b8370c91f6f4eb329551890c0933fe6dba654c67f13e38d42e01d4442bd1b519bd915e734d36de0e3b0069c681439d2174d35d553dd2380bd67abd32ffd3cbf58518937e2e0c531fa26ef5a926a8664daf033dab3ef19a5626bcb31503264ec86945e0418564b1add111c299940f525b394753090b6ce4f9ac8f84b8bd075e9d04b6c392926151bd07eaa809e831ea1e1c5712d48006f7ef368207f1ebf1201128c447971bbfc696d89b2061816f9c2c107e0a70482b3a599e91c7814935d4293ad9c80286f3766ad6195570680944ca403114c7029da5c6c279136d503486795d4bdb0f60cdbd0ce3e6b64fd62daa731795481fff5d466d02335d21915914dc15058eb5881594ad143c5e94c409516f61f07f54e506e43dc07fb8b31f980ac9d55f5f74810fe7928ad3ac2df3fedd0f822e6e6e22677c7b31a096579ba006abc671011f62d0dd565caeff41f5291122534a2e22cdb3fc0dda6d5bce938b439e379a23f254b64101e9de7d3f97fce53411de9018de576e4e0b44b1e1af0ed026fa56bdb286e324f67e0cf7333f26ba2b3203e57588ebf0894c65137dbd6b9f88e2dfb0408c195d211d41d47f0826432e1c8cfe361bd0231793e8418014cf9b1b9e2e823624c7a8d2d10a792e27489a909542c1811a3618558b1190239246223b2ed6817ebbcb3c6d25966f145addff0e32ded6dbc95f8d4b43a93f44dcfb2a714ea7156378cdf38780471f66b78b20848aedc5e503ee47f29a5a4dbfba6203da9e7118827d67b50efb55a4c7f07d9c6a5516156fb4c9da06363345564805f8d83e4337591b9df83f2b522c62bac1688cca4be6ce2a20b830dd3a3b6d0570b30caa863f49e71746ed996e5547657cb49c7a109cfae3db119ba6e52d551f57de6741427d871e742c06dba78e6a2687413b44306ab6911166fc8ac2f50795f42b0588e63533211d862c681ca0a9470f1596ab9637c00d811985e4c8b41552aa51e999ce9cbc1c957181526f0736db2ffefda9322db67cfea514880340e6d18a5292458c01f4cd9a10d901cff3afe90c4497cbfeb08de1d8eee21d36c4d53902858f46de37b095bc36e2f9db29cd2ce32b2dcda7333d474ca3aa36b6aecb248ab25685c65a74e6fec45005a43b2482e4385a214ff52d545d172646955b7eb11e3302bcee95f586d7a72dee51a92c00a1c680b26a6aaf7fda47882b7ec09a5f14f9dc89fa7fb3ae9d67ff6f8cac2200261610d90faa7a2fbc7dc3d55fb7b04d1c5e6ada6fa046c85fe237f32007c1d1204b0acad0d16ce289cf0bbf919010ba92dcd3f0772ffb65724807849afd36c3e5bdcc1ebb40c564eb58deb6cfaf3b18816ed507bcb598fdaf5f5326014c9db1f8435ca712daf71ebc48cbea6fa5129d4b30dde591338704c678774279c8cb869dfd2c2950a07b31bfd3d1a19e065dfa80dcf31fdaffbbcc75566f1d61852bf8be6bbc1e87aab0314c9a9f583ec91f82c269b954abaa316943e86deb8c39d3603198f90fd1dcb8a593eb8ebd554f64d5caf5a45cd26afed9c71ef240cf541767a692daa72305c57e4aa4fdc710fba84e80ebeb22bec2745266f7d468b9975048ce0f653829297ac6adbc8ac0a220ba1f69fb06f27f39fc5db2a36da37329dff2022be4305441c1029b4c80eb125aa7f8eaa671520fc0bb31044fc2b711298e12a443dba856cf628bde0e5816593ceb237757b04cbb3c8637be8715538192b028b0f9ca00d090f8cbed7c66d3c5797210a76d947458976d1d6e329985b5018758eb1f9f0a066fb723269d70f6e5d8cd1bea31dd74eb2b521e8c49cc6edfd40d4ea71153944d23951e27dcebfba44df27277490e4db33c181bcb3cd79672a1219fcc613464802a95c7af26f322fa96ea21160fbbd99aaa6e36db470d833b9d6170e107b15a9e174bbb4eecffca8c1bfab6bfa22ec9a46095d8e17bf28df05f74b71aaf87ea6ea54108bee7b98f46d5da9174692d2180c268e46167aae6859ac67c1ffd3ad723fa094c4ec030e1f5889788a11d457344ae1b5c8ecfb891a5d49372ea2349dc802da6237935eddd8fb603abf5bd6f94f5bf755a474eeaee907da3ab0b92ad0f74ee68c98423e86c8046e4fd94a4e6d1be988265830a7ccf8d89b5fc2f475a5c0317988fdcfaf11fa8c42cfbe225c66adfd243ab64d80d6371f5f7724f7250c146aec5ed6316b74bfc00bd242d01b4d0bf31f0e93b6e6180608ff4ea7df4346f55394d81c1e0668476365405151e09e9df33606d5e5b1eb191e2068db7bec2edf7fe0b617a8f99aecfd72d3978c5e0e4e5f80c134e5361828b9bc3cfe6edfe06102d86ec38576d7e899ba2dae4ebf0202e38648da5c0c7d1e5ea1821313641546ea3a4bddf081018252a35404b", + "result": "invalid", + "flags": [ + "InvalidHintsEncoding" + ] + }, + { + "tcId": 19, + "comment": "private key with s2 vector out of range", + "msg": "48656c6c6f20776f726c64", + "sig": "1a13408d3274fb5f79a3039f0b7d693c5a9851fb97e67181dafbda100cf889ebdd724d8da7e22bf30c26e6f9511a69da84637dd2c751b8e26c0baf009a0163e96f7ee0f33174a57ed5c86a0399b8fdafc34e71859a2cd7f6a316d2dae35a13bea9e178a542196d0b17e3e5a3b182f2de5f255d7202f0a4c85c9ff6b0d4d821e2f6894243939e06f01a72d90f3bbad170aed2dd7dd2fc21ef44728dbe05adecbaf1f392ab69909c4194ff215e8c04ec5cd12b99d7b28112e9ddb5dbc91154e4a6daad7cf54581acb79c0424e2ffb9d8b70e1e46b6f47b6cddef5adcf84e9a53cdb69e45549c90e6df73706ac20a303d0c4f6630fc35c2b832c6205b6219913ef7718505c7c5b33d9ded3a8ff6bcf5cbc80b3155b9cda3abcd2d5e0cb055a28c771cf8dc9f6e0f157ac153a53da7ed50bac0e84750550a6fc8fb6696673c20ceac88b60e8a9142b4d3821872331876085427e163e4dcfbdad888e9c862e1293383dbd81af7910c87132dca1f5365f271e671fc2d245fbeedfdb861ebe5a8ce86d37164c66f3f3ae11d39216026e8a6d4fda4c7bfc6513d36fc042dd71fa0960405c122c918eb2b92e046801162d3d3c54c18ed6ff67248c9fcadabc0aa1286986cd748fec67b8f2c7ff0c2801925adb3a0d910506147bac34877d329996a6f0a7b0eec7a0cf352eb6fd09023d30db2b9e371eed224828bc10550fef7c5ff1747ec0ca7b61d1fd4594cc169dcaf14474cbb10b4518dfa848f056be3ff2d71829e261c87a786bdb0289b595c2ebee471af05e06f83ae00f70d9bf8a24d4a02e38e6c3ff7a2020c48801d2d2a28cc14d621bca6a92bbf6b36f011f7f4df81549e160d836c2b6959f848d9d265add11c4c6ee0f51d2f58df64f41152bb7c32886649f8f6e075e57cc5b947cb96038a91ebb5423bd5ec2432155ce2d0f1d81ca969c47c017c2a5472c0a53681e14dceb26b37e894a1a938c033cc2480247e958314d1c251b988ff9a4ed7f67366600ab031601e4684ca5d72a17339e124c5ebb573811b6a584b3d0f1bd040f816cf300aa66eb42d4c5039dd1e0b79decfb5199005d2bbdf9fcebf05a0088983ac6185ce87c95722febcb5b242af1c22973314b44499e8f59127cfb5e58a602d3ee565865bae0729c3b9f31c4aef3dcedf78d6bb520c16d7e1ba5a088ca5cc2217420d99c0613a01f3b75cecd5517636cb864b35a08a6639038bee0250767b9c7bb7d857b8fbe66281f607ed65561d7084e5b31324ae1d7c5fdea534ce4b6fcc7a69add96e99825f86aa6715ff2cb78a0c9281412c7c9c55dfbc16354b564382ed425aa1c8d2604c784fdc5f729c9cd5637eb77172367bd2a8ec0828d9bc03019e5a147d5de676cbaa0f1930603c942feb859f7ec5d70eb148c8afe84b30b3d778f0affcbad6302036291c6518f62e6577794157c985193d858fd602011145c49987a138a8d4e49060600d1b7a76fcee46bbb3241589dcc1320a6bfbcf587d325ba6aebbbe56ec5ce0111a80eafbe430a41a1ebd939583e3adec10f4f1114973fd0b1b0aa75476ec85da51592ec120437ecff50e9afe7401c96ef29297c667ef4da78ac7e1c8486d19faaad35d5904c07e164874f6ef634d5d8a64b076c3f9a37b3d44f61a63b4bb38a3a970d5091e68138bb9301d84db083de275e48fa7553c3e0f1874d0568d594857bf5f52933c5bc4957eeebd2fc7d3c0b90e4b49daf5e447e7d36c4dbdb4c118595f28d3a48b5665a7f995d3e179c96d975d47de5f48cd21c7a1b6a6c673c67669e67e23c3defe0672e8e1289636ec2145a14b6ed50c0b95ebe1b1ba1bd6b8a34a796ad858ab9ce8e678df7355f702ce2959e2c0a1831bb2d203e72cad74d0f9607a34bda435a521c850deee9b6afe6ae182598b74934d0a5d244bde7973cbe89e55a987cdc6cd54fb57b033015294642267b25d2b1016be3f2e842fff9ef1cd2885c99c0d504785ab1fa0f0a7a4828237ddace3c79e0c02dc9d3687c79e01a97cb634fd03dfad85abbeb9567309a21f114817a801cf5bfbd8cf136ddf535469053c43d89feeab902195cb7e2d3c08700bd99d663e65456067b64be4ff2a1572cb696881b3ca64c1566ba7b29cf0ff1cf1a9a24814631ccba5c83874445ed3690db166ec73edf7c2aeecccec9d1ab94187e88dda60936f2e97861acb5f791a67930fcd966eedb4109051edd15f3de10c99b1cef51e9448965a4a4ac8ed10649c5f54f1dbb961d001008b23bb942d49427e61ebb07a02d8c2b32e408f64a69b451cdfca5e0fd8665b800bbb9afb6a0e79bedb9499b14aafd89db80586fbe0166b5d4edc3f5c36e04557897699f32a760a93591eaac14202ca0f193c7c360c83e6dae397c89c2fc5a37883c95a36abbb71dbce6431972297c8e16ca468913b6ffa24d52eaa8d5858cc7cbf1c6d702fe3b236d2b12a63659ded31a5db3500ed37b1f0175af1117456704149506d0d4ae49a5911afbf7ddb6aa9f16cd23721f2ea6920da7bca939910d88237fdb791a90d7c5c7824241e1e62409ad398c64a8470b56fe235b90d85efe648ea33cc0a83ccb941f1cceff086b567c901a5e22e1d8b20af5d75f33aa2e44daef7cfe41d09639da5027e42e646c356367d8943f90d2a80927b140579078eda13a0007f1d3b90ed7d52a34c0cbf632f2177444ef2b47d9ffef295cc49033fb84ca058cdc07696385f0187544f708659ec24c7071c1fe553c20c64cf98ad01b1396bb1699043669b40e8f1b67d42127a2da8ee813ceed2beea7a5a972f55a4239b8013165cc11ac88e2f28b5f7333be23d088acc2fee88233752cebb5c30b6097353056e900e1079e38e389cdb19c81b3c412b9de2f4946b5676862f8473c3f001f7aa0ddec5ec5406afb1fba7c8aaa690aa1618c8244cfcfedc13a8a40f0297d475d43b83e6692c54c1991f3d43cbdb9acd47ed1b0162f83d1ba5a09d753c4d154df38f0042554cbfc98adf3e66928592aa26f330574a8b676d526e84dccc9408bc80d6fded421a66515c0a783600b9aec4304e4d00370e24ed26d1b432e50518f2a132edc1c9fb029c7f8bfb4d8eecf436ed795f31c622efdbb918afe47423d39147a595394cf3af726c70028fce9ec01c465f2fdb0790c372e22a4b826c339ede5cb9a453f228f21946ff3ab02e8d7e844e72b9441d681d73d7417fd5bf5c6099be70830e9d30c99b2b16486208462c6f8d85ee5bb323359d9a3bcf9fae11327f8e06c31c79d66d1ae8b5b5ccbd9bb6ba35bec9ce8c060a0226945543c89f40e7bcced95093c21688c90bb25078d287a66cd18fad9f9a117f4e5afc7ab24689aa797d1623a95e50f4abe45f2fc4d1826f34d54777ba2f6b2acd7427e29b67902a9de8e55e6db362e4fe55a6c24413d2dd6f806f73ed95ed8073bf907382e71ad277a3a20e39a21b8b72e04c7c8511407bc92d4a7fa09a248d96d4e0c8e98ca4d9a821d579ddbcc2c545b3e1cfde9dfa3e812e92c8f75a413a87d61f42f4e7d2062463d5509f3e55ebecc7f615a13c626c265fe8b58c8be96caa72d7a48f87e248923c3ae769f37c5a692d2ce17777a2063ab732e7dfe247f8435930c81d73ad29dbc7579d79534a43d67195d77423ebf396b458084b1140e9fa722eaff25a6519e4ee3a0fac3d239e1cd6edb45f7113fbbc3487bb57ae278caa7a275e344b870691b9119bdbd80c36042de9d69dba4947170cc060b9299a15796f459af7e3cf82d7063dd071fccfc9d7a8852fd61aa9ffd28986504c6e04a67a493e8a76dc7bdf110b9491b290992584ccae69c6dc6eaad78592dcf9b2439144ba4b9872f7c3b1772a01cb7d0a88192c74019b5ee79991541cad2e00c6e5edd4a14abd8c7b57cbaa6c017e703de5c4f6d551baca90f5f0036fef0f7699f992c9921fe3150baf6dfaffbd7db48ca54edc5293306cbc3df9c7fb9ea5467ff8a94f827d532310201e2f7adb89f418df5415d75b54d1f361fddee5d425e0057f320f4afb154f71275fdf0f328300a4d9482f852440b989efa676a420a5c0b0785fb26f7a518534358a8b991c987036744bbf50e32bb8593da4a6add0a5a055df68bf4bffcc23d17ce44b4e565b2224159c86830d87a0e0af467426da1c5c9e43f951405da0f447c957f1ee81b5a4e427b41680af43d546a8ee4057dce454bcb56014095d88a8f37342234588e526f4f8bf8b38dd461403744cc7bf50d702465657614169441a41953f5c535cc1da9ce9dac6c6cb1d15224c10588ce29fd78a53a25b96471e53796ee9aec16837876ebdeb663186b0ae07160e779fc71c8682c1fb4a236dd7438c30b4416d7d1e1ea99ad14e196134ee95a35b7ea46fa7f95db365572677bc86d44fac60ba053137ad91ecdc6e5494354fac09f0cc983973a773d23e78b660c85558a550971a34bf2c42cb8f1fa062b667246952e13012c3a5c72f099aef765d72c042283c07c019536ede021117866b83b71b7265d1731d1f2ebd9fb5b49229f67e3f9a80d4b66f4f8495e6fe8889bcec085a32c6ccc004e003b31ed5e2db2e576825111483049da840dc1cdac7a01d6d9ddd7b0a30c5dce8a74728ecb3cc6d76503a6655c6c6fe1b875cd62f53214fb85ad7c70e526907b8aecd5ce5e85eb6c8eb7a69331caeade3b4a82b94c576b2cfc5dc982edb92a0b526cc861384c1bde479b0346af9dc6517acf97f9045b696df80db3667d49faf349df78f178ef5a1f35d97f8fa30384c9d391eac4b56bb0020505ae93b076c8b9aade70086779fe3b2cf5625fe8c2094856fd6fa79ed960eb9e7ca74472c2f45fbf2af4575e6d7bbc748e197fcc95ebb5015e755c02b4b4ca5d118678c3bb280cede40ae6efb6bd19e8e016b49dfc91cd18c3a71c435b223fbd2ff1f4638a8b4249480c019121d1ffbfb23907e88fbc480d6785cb11d92307b668f4f2876a1e362b57edf21c58b992e88a360e62c0ec008c591d22769ea0f41d13441b3339c23702e3af631896c64d3d46dd2bb6345e0dd8085ec5fbbab57ec3f1507370efb63050e3129155f80c5733c63c70bd27a5d2af502676e96105212151a8f4af97ffb35e52b341e3983a254ec7dc936c8de7d752cd65daa271e58d2eafec02c120694dcd54e4b85e9d3b526f492e87c058db1831e5ead3617f0c08bd095ff2d397623bd8c3dccc8f7dfa213fa6ddeac0de78cf498b0240706205b7e162e1703fd46ea4f02ba2c0624cf095be6908ed16059a3d0ebcddd0bd476b75c8687c9229f3b1a9096a899010950678badc06eb72ed0c532445b83f53ff48e07d91c3bf8b841c55e8c58ef28e9efa4e272dda05d4a84fbc3d2a4a48bdacf7e11dba085865f81fc70417c84532a702c5932066e904407803d5f0dd37c33f0727a8c8b4d3702c36ae9d38e7bc01a758dbc5c269b06661a7c58aec7bec4619296c838a5a41627e394092464f79ffbf1a1c1785b6b74035eba2f5d72881fafac30490e29ccd82f1319f43c72b1d83c6c3f9694ca0a81b352e84dcdee64a571999c627f34897d8b24b9f78381e4706a46d231fa19480517f9eafe763f3290c2f41e8b2c406a97af83175c422b8c0d1a624bdd2982c16c0b6ee84cd37c78ee0e5d3b6c6b8fff292bd7aba7904677a37c73e399fe2846aea5efc199dd16666785717f057769460a830e336278985ee89e3a70673b342d11d90625fa5e3ce5854650bb18145f4162cbeb737402594b7e28f58cc5d70ea9ae629c39f9c13f0cc54111e182f53877ae3af7dc7eba68ac5d80d7658ae4bfd3b9d4232a3a3f071b568141cc87580b3bda9efeb59055feefaccdcbb21fdfd04cb16ce1739e26d0278008ca50ea03a286b689d44ef26ba5670d38f16450ac6d0ea6b9f683173ef991b66c16b6eb6bf63db7feb5001655b70531a2825689ccac3775110ee34b771ca6ae11dbc1adceeacce40a38594ab376e6d19579ad3977c7e4ba00d26065af0848cddd8a58a8ba842a9f4a0612cf6fb6eb9ec359f8c7e4e17286949bf11f281c6d51f3cfa8decadf07a8da911b7f60b61d8dfcab26530de61e6e0cdc028b2a3d70e02ecf084c6f2842a768f0f5f6f0f3691d67bd683690e83b3a02515055d56ec540051f16b71f4bbecc66e61583a9b52e63745d999597fb30b566293344ee60c479c8acb035e075df1cba2103894c71acebaa1818750d58a0d664fa751f3408ff06f54f98874eb5b9f452552a834a28f602f35c5b343822d905d90f7de02e8adc46492b465b6cead37314ba4d5e51e44a2f6b3183ecb6ad677c8cbb0df5ab2e420b046624593fafc04f7a36f15532c3e77b87e3b9a39cc39a5adba74df028189b14edbed70f623a0a1d8962a377d0d27b04f5e22f22feffd074fb6f20517446f46e68d1d24cdd11b6f0718c21cc7e2eec90370212437bf6992b44172287d0131c27556b7aa4b5e801556c6f8c96a4c9dbe95965757b81c0c6d0072c7b9299bed3e70b3fc20512357283868caab6b7bbdff811358dc30000000000000000000000000000000000030c161e2629363a", + "result": "valid", + "flags": [ + "ValidSignature", + "InvalidPrivateKey" + ] + }, + { + "tcId": 20, + "comment": "signature that takes 1 iteration(s)", + "msg": "0500000000000000000000000000000000000000000000000000000000000000", + "sig": "c32c3d32a33f673b68caf903bac371f99da7e65a45476248a10c4202b22cb40a44a9903b611aa49cd5c56cec60ebed68b61761f12b1b2ee7512f874a5be2c32cee2d97b43ddf4b65a1135dbba9d285245067ce5f0164eada3eab257647d7cda88a215e2e50c9069fbb11df03c2022d0f3ae7b90659d0a3997c9d657699ff42357eda9899147b1bbf0c4d876fd737f564a33abca1781b0801e68e61d2235e6983c15a1a0fdf3944024bd54e927ebe680e1199c3056baad89ab5b3bcf754ea13926b9237ddb2013e8441489a73600e9ee05efdd8c83ab321f8f31863afad20d3ec3e87bc37eb4a69fab8ab584c369857c3b3ac51bc70fd0a1a58757326bfb28193abd6aa93601fd0460f1eddcb958e00296d30e4d525d922ade1d97ba414a58586aa00a5637a0062975ba4ffbf90a6fe0d1d55cdbbba677316b40dd0e730a3fc8afd6254fbd9ca01345f9ed72acfb79f9c424f47bd56474bf43fb38222c494bb2940d07b3de6c6a91bcfec1e524698b6443e4300f1018fd22ef3c3638462c5252d4dd8486198106654135700ac448ba751951557ec18437d05caea34d561c3055e2ec68f3998b46de1f62b874098111b97210e34e63e75965d511491a171b3e33acacbd88a2854c906f2ffd5717bce69640350d853360cc9ee2c796dcd536081dc351dc33fcf67adfcbecf56773c983c55d7c3f69f1dace2cd33620b9c28f1923529b551623b5c6da25a21e7da8d9916f1a338d7c875334142201622384dc8bc056335d0ff842cb5a6582eeb204a552ffa4bad43c015b9ddff6094f7ac356eced9fad0f4304788c81a14b2b31076b819e8ad584aab04a20bfa06d72ffdc9042d6e34634870cc25672de5d0d1d23e197663692d2e82d75c64c592b5a88813aa7406f78a2567fd07144153a2cd19d55b8543a35b4341a32ff60c914ddad5821c9f54ad892aa1da2b818076960630a976dc03f59154951474254519ed1d8f48de6a5e6ca13614aba7bfca3e1ec5be4966f7abf3b0ef1bd1e84b01ad956b44ad58554f9f225e32ed06ca912112a6491af51b9744c77f267bbdd91ba97c3877303b02fa10b488d9182ed1583c7aa9960294a378c65b3d342a3130cefc2dec690854e37a98e353a3b5b847cd85e6cdb15b2a35fbb270a9fb0d5b103b90e1c3c003eb4c59f34f30fa07a9608340a8438df5f864d30bc1c1b928684f6db18b3c7ac5449f0b34c6a044b7fbc868e344eebcd378ca0cc47d316ca3eb282b57ab8cf9433725340105f38fa90b1f998ee9c3729eda8e7d7dc424f21672e9f39743709aba135261d875a46d4564dd9a739fb5f874b886f022ce3e8f068b6404a7171f0f2f4e281788834ff6da6f89ad19c5dcb3ecb39d1cefa1e7c5760f9df76fb54d4e71a9fc7aa8995f95592bdf46755ae808f4705bd0ba95dd39fa359af941afd91affbd811ee9bfb4e15790f133f0508c1a2cace83630d2545dd5cbaa5adc84253896c4054ee199b5ef51a9304761c6d89c561c320b071881e1c53dfc97b12c4813dcd6a232fd1fda1c5f6d1827b4364152929e035d56d501285a2e9b7b5581e2599f0c085910493085df9e668b9311251fea65bbfa6f629b0c013928fff5ccf18a2f0d7fb2a551be113cce0b4ee46563d6a468b4abaf59df7236ccce15bae3cdb4d4686eb372bf4dff51654c98e84d1c1caa6f314f1a14c27ea5c690340c7828c413ba85982fb36fb65e2aeb287726c617a6a2c4dafc7a91767bc2d0e5946052cb760b486cab5cbd3d5ad6c7b601d98f62515c560f910a23fddb18bf232ac695739a8a5e48547a567edb539e2ec5c95fbe0f8dce034d7493cd9f821dbee858f8e528321e564231d4cabce64dc6030130eead6882ae3c2f401fb4680025e44e92a0b73c28d1f4e53110761d9afaf4b52f8a5ea6c2ff528add4ae7d45b7df29891d74cc3a8c7647344a0081f2174f87ab00ec19ee3678b970c237c6ad7b0e12d3f73948a3a03d60da49f54c024b1f6a6a9e6afce0493981f83f0cb8b2ab7067b2f35c00c2c48fc5b1d4debf4a5018528bcb6dfb76cb69842d258cf4221f2421269c4df2ddad3cfa66047bcdda97ee7d899a6ed95b526caa728c8747f654cf45b52326788634005a49156d2aea607d98f025820c82dfbffeeea6fcab281579a66a645aaba611a92c8b150e18df35aa13ecf83ae76a2f879afe422ea786cef76ef2d5ad4428c78aac41772fee7e005305ca2fadaf3c32f401d8edff8e78d37057be3b223d3d6d1dea2cc066ae1e71afbf42d62cf5790603ce981a4827cde8a5c1dc336cc2fa63420a7c79661f24dc8a163e20f6eb4695fa9a391ccca90a1a689a29ac6bfd253e9dfed0fad0bff9d98679a2fdd63d0f1ef7bcb9b25506b780867c7cf48b94ed3de6b3b00a7a478fcf1167bf2df55802975df21e6c36b161c153870d8b3f1b9868b9cffa4785d1071e17a5dec9d1c2e634b6b896be34c6b995643183562c050fca385acde68902980580c8396c568d9fdbe44b6525aeeb4c65f60c66f23bef73ad5a3857ad7bea448283730cb1bb8b02b47aa92c8dfdc95daab7b43307427eee5021c76950fb6589156bebb89a62cba2e9a989ab7ed2f5b31adeb80dc006c712c88ee8a8ceb804c64e765ac2f4cc5d8a824f52556c00fc72dd3703afae084d368170af52851027fab1c62ba2d0a7a1449b3cf538f039659c2beeb4cfab638a7a9de789ceadeab8ed525cf4a4ad17eb661e77ff055aca38f3939195e6b16f05943cf1101fc99bdea7537376fa78509d553f08bd8739eb1d4c6396e2859ff5b90c7597a3dca218811b5c7722b39ce07cbc7fd4ba36f08b031417035ac6e1513e8e6d35b0324a6b997b32e8e55cd52618d22ff5290dff6a77d627fc60a6ee3b02fff54985d83b4aee9541b799eee9c44579c4e75f7accbe7662345ef40dcc2bbb2d5d39cacde7926e33af2a21892b5e476b262a470d626f08cb2ab68255fc600dfd6b53138d97732ca2042cbd959722f72a500cded2b27311c8ee093a061ab0485d6a5a366012e287bbeb6dfa28059a2ddf288d73f0b46ef60aaa550a35fae7dc376bf01e127021950433d34980821af69192c12771a661d22883baa275bd5d4beb7967599a64369766b713dac55336dec70fcf72a9f6bf86566adb37e3b99ee98dc2d2a509158f861038dbfb7ff4de93b6b9f01919c8d6af2f43f9ac1ceca933c1b7406332978624a30e7fe2782ca75e055c7dfa331a2e4646902aa3296124781bcb690b6bfa81f2ff8cd2293811dcc8d98be12ee4e359a10b4fa9d973cdaa660f540b31d77839e03f4a721ee3c16a5b70b91bd4f99557562027396d8fda1535400ded22091b6c64c3cd43912116cca30db6c111ffa19f45aafa5369095501eab83effad84e78a155c8de370e9e70f1d1fc259889ddbde384a36e75103e5b34322bd5d74f2dee849f26699675be99198684a0fb413421ecea6861c51f7657481cfd4577807f3258752745c4f56ccc2d66877420248ca3eada3d990a3288c78f9f27ed0eb0cd90f4133f02dc40ccad9bccff2e63a7804ce6c8716bcfd62f4dfc1dd3c0bb527061dc006e6abe16f23562f9cf309231782195aedc586b548c6584ef5fa86e99cf5f295117baeb28411babac4807bf3e258fe6c18e5088d1dd14cc4c1526059f0b1d4a0a2bbab08c0b4ff887fe56b7c2fd927bc398367757b2e9853ae80f1d7760c3e50d34ed8ba5678b52633a0931f3f8cd8076af042cc66c2916b35a70569b19eebb0a5eed1fe354c105f4a151474bbd68846919800877834d6896a267ecc826410127da4bb1f38ccb0549f35a910ff61d33c35643f8032c7347e6bc76982d6c4cfef7ddc503ddd07bc35b9f0a46e5965a4a475d7dbd6726f0df40951e72fa12ba49848697416f9efed5bf3b4bb1043320012c9267781d7608146c18e04cf2f0ff56f7711767122afb5430fa909a51279196a8bd74b8010bb0778e5f510456dc2d6dcb18b4d4ac97dc7c8c6eda9b13c3297051ca4722464dbb8b61d8d932b60107e5c7d66b59402bd463a27769bba76e280831836673683923311e173856dff5c6cbbaadb33bedd5ec8422abd761d0e7bc7ffa65a358ba05b09e27fc780c1a9ce34b954557cbf2a24a8260dbf96254f7db48cec34df3ef2205f6941eafb1df2bff4bff6775f0f38d394c98a897690dcbfe8fdcc56e781886a83a35dc03bc24151d89a2c783f64ca286b3e2d0f475cad76b8d97da3a25acebd7adab16feaeceeec50969545171744362990af44df7221c68ad60e7b6b097569bce055952ec98669847bcb898aa7a2bb5367a871c9292c0003cb6125ff780a4217aba9f86aa65ebd4723dbbbdd23f29d310b37e6c7f4c6f8ea023abf75b56d36571eb7da495d39c887e9873e031345367dff000aa818c5b08eef8ed4e938a73346da6ca9badb37dde1563c5ccfdad7c94880a442ebd6fd9a30a873e22a045059c24f9b8cca43d0e91a162273e72c3bd403fab3b7b7f005f370a8222099ad68c482ef6040646e6ef8db3dc5afe52b262655f4000f974865fc07166c7b255fd71a1b2511b26996de7854ea303ceabcb1ae86415c614bddf4947c56b4ab81cd0e2f71fcaea5c85c03f43ebe3110e239d18007584a4abf26c0a3de7bc9809b472c2f2d8d30bce7d960a02384ddaea16d056df6d4c412e237e7038e7851e9ff580f0d4fd560db52a74650ecb6233b90ac32e3c237eb8ae2ac63b6761057615a3a27c46f0c5b735c62f10433f1329222b2bd6af2c819d181fac0683ff0709702599b4cf6b8dc40cc1cc1d8a7ac3c8def7870ff922cf3807fee1cdcc1e43971bfeafcd735b8a3a7bd892a9a93adcf72f62a64e0375af74e9e4a7d0ea2a31b1fbc26d08b39577406e8a850966e239c789e340fa4657df2d8f1a5a2cf6f6b2ee906e38f06ec7305fa96b6aada149a255086954f8bc1c28672b14b7725c3e5aa14674a6ec7c36bed4dfcd3dc9b08e6e3fe7f2eb21e747da0546d86078107699d342ca7159c3a74b7cf36ba481e870f36831b9a8c6ac5bcd63651ab2397b0c9c0eb55a5c2adfa183e6d91336615ed584026b3e3b7022e99ec049fecac217c06877e6f06bea61e705f2ad24c09fda4a5d0288a8b647a0b1a0a8786a1b325859481c031f0551cf468f978a01cb77bee268d55fbd43062ef25bb61a0cb277d70d8a176b0f610d7e062528894c80c53cefbb26b93756b01d1547f650c2247c6f097279857af18675201af10183aff9ddbdfd0249b94aa0470568fcf4a97540b37944fb9a8663e6452c8b4b482c4c55df83925e383651a8bb4d751bef5d6ee5c7381681e4a87349caed2e22a02cb9209f33f3c82c6400a11541ed01eeb73e64c4d0e45720111844382ef5ef1326a9826f979adc6165a646717a368a67bc789f0384acc91980f7efba4ad952793070ae4552bb5fb2a70cb841c5db44f112920d7aa86e812d808260c6d620cd13f44954cbda4f26947eba4f92703695b64416da271d949b7cdb2cad5ce7212c39d1bfebda39a105368cce499dc13c98db707161a0e518e80ee29759dd012ffd2ded37514105bef7cbfdc8a0bde3fa87ff8ab37735e56177f29cc92d6416c667f99762377b2cd23016d561699c3f897c1a466404215c37e938fa3b8fd5a0b7e05a998478313d315132399b8a84b8324841c98148ea928341eebb96bd92d563eff0b7757fdae99bff357cb02cd13e5f218b5d8dfbbd80cc10a88c3183fbf8fbcf9f495317d799e5ce2899248292b17546de2239b013fd5a259277fc245e92b6a172a52831dc8b041d1b9a945ad0a4af04990aa92ae7d67e96d20b1ba26e9f698f09b7443b831cdfb0f8c15bfe48e8f181c7b0aa75370519e05ab21a7e30c99cb5460c337e943e7cc2920a1e39406433cc0f64b1b94ee7f93b19c230e91c27c1d87dfa4d67ce0cd55ce286fa08125ffd386b325a1f2493f5d88252be88f09282107e5b6adf0af967a4e13c42578f21506a4b489c86d49394462e67733a796475ec8ce2c3df2d58430308198b24350acebc228052a480636977a3cce86b5c49b604fb20976cc9bf5c0fef149e23e799a2dd485cabb3dc40c9e4f8e2e1ff1f2f893bca295d19f40b2a85f58f1ad8f70ca1e01436db51b4828a5611e5a946e2ad79a49a977e55fba6c3349c88efc02070f4f51e18bd33af93a2e3c3dad9dce84b5fde53dc80d49f485fa7a4848745724805c00afb1d5795e7cced890dcc7b32ae4e6a9b63f056292475c4c11e9aa57a615eb63ff40f9563fad5849d7dfb6601c74a453a3a20a36d2fcaf84d703b20923b9f44eb14d0ccac02a228dc5ea8e2a2c4b5c0316083314c2fff7068d41ee942ec68f2eee79eedffcd728b8c04def965d689f8ed768e8425a5750189019be547bfce9fc9e95b50db2ff8cc8f3e763afe505d02c0171c212b535f686ebed1e227495a9598bcf639bbceebf218243a56bbc5d1d6f8f9fb2663b921253b5478a9e2edff48627bed5152aa000000000000000000000000000000000000000000000b121722252e3235", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 21, + "comment": "signature that takes 2 iteration(s)", + "msg": "0300000000000000000000000000000000000000000000000000000000000000", + "sig": "2bb289fa7f1c410ed06a988983531d643f908fd9b61c097c0da41d125cb6bd9256fb2de6897c80ad9ddcdc2fb42cddce7700a4b2980a7e676ee8f7428d3f8c7d53ec2d75bec00cf1510e8d279e99b350538331386598e7b60ad31f5a9b0e4fc8dc655eb7ccf492403f3b28f8d12bacbe921801dab92cdf9d4748f8c96e72070ca37e0bcf86720e12f810dab82aee715c4b868d05edea7a0989ac28c03bca07f41c0f5054459559d4b6ce91f064a3fae7cbc6f98551bb773209a5ada2b01aa09f0df3ce3805bc77e42f31ff766a62a56222d82a4bc60b48eaac7cae6fff61592b9b9f51cd2638fcd20cfd39d6a6ad46f7eb9a4bcf610c84c4b64e9a96828210943d1b51cd9f494bd4fd0af766d018b27521bbb60980175cea80dc1661dd2e991582135c394f4291f49f15d962e4b56e3ce930423ac1f696fc0346ee34ccab949b213216472c2cc1cb9c3b886c9e3e0ca4fd17de21d04835a879d11cf013f6b4e7375e1a741adeca9d46186b0001ceee7532d9ed34fd4b3fd3affa2a3fcd84a9c14d3e5c4165740f01f39ba3a6870dfc86b571b1bfd167d79a540e4570a12701c43f4a36883278fa749f2f3a2100eee0f2a1c663c4ac246e30b03f6a32c6619f318ba2a081a564fb8c757e0d99567dd9c8a40c82ebdbc31729a654922b67f874b8eb488f9f0e773817a6f76b2030b0415938870ea473ed6ae8cb76d7c0e8490aa1f1c383149ea115ecfcef7eb5ab3b982a33d082bc5e35b11bb1e12a0384e54081dd4cbc5abdf7efd871b441950e3e8221312c55d2d969a06d44a145a06fdaf64d11680f5b380248edc6c0686add8540d616c57d48fe74d277000757d3482387fc441e89af0e49fe71860ab49cb9f8a94e4ac5ed8afdbb5a4aa2a46f53cfa4c5a52141c61af1491ae5af89db603a570e881793c4796d2d282002609a303b42b92310018dba228ebdfcea5e139c5065ad8a3be515566dd926d7be0098af9828f20423bf920855f8ac79fd3f94b828ded4c9c0f7f16bb6892e5dede6d1a5f7bf7ab06ce0db91923e04fcd5ef3e4253f687c69a929af901686b5ea7790249b95985b28ca35e9dce64ed8c921a770461ce53b911371e2ff367f3b096deae16a42093c7bd48a0a232b7783b68cedfaf31a6796fe34697899d69900d90876e7f40e79837deb951e97acd7b387f029985b6850fc5ebf26988a4a2c9dfde7c64aa84a70ce7ee13274d0a8641c415ab86e3adb2c3bc5876abd4cdf7d51222d98e04e8eceef5f1e7e0774ab8fffa69ea1e98941ab5457073d9f18cf05a3ff898537ba2f2efc6469189c36a7f8d9b044a3c0581629058dd1521aaa6748a57fcf313c586a3514b2b8d13965ce43d6513d2eaa2dd602b18e672d1c71c80fd5e0b8f83cc090dba09cd3a623f4c360538160f14f2e13c96b10782dd553c555df9fe8a1ce2627d71f705e555302626a8e966fdfb64d0fb52dc697d98a71191e88098de8d8e4611498a8f62f0b4022b084cac2c6ca01a15a5b9e5ad00831f5028b8319d190e19573c6f36c6786b9481851e0899e98839367df8aafd898ee1d5fbe384f050ea486f84e32f944575d7b56ff3825032806737647163d1d92a3499b89c5049b6da8b907801cb14bb0f258838dca1422bd7ecac4e37a926747f7d77afbd6285091a164a3266be55a0f323978e2daa5b7d8cf68fe2638bfefab9595f2b6daa0ef20fc29993cfb3ecd6808a66bb60cb64272f12953ec201aae2e6a0a50da25d03bfb151007c49d7fc4e234c2e0145f4e3a67583e3dd4e6d17173490ebd3d5acfe9761b048dcdfe60e70a7da7a1a0d38b5604d70d290c6ef58dcaeb6922c2022ede6666bf12a3a18725e85b65d49cbd240064672e9af58ad6171dfd09ac6b516bbf39b57bb3ac15cdc27269ac080bd8ec5a8712e16cb4c84e07a9a7425906864a6a377b840209744dfdeee65645aae6f7712a908d4cd6ad35cb41d6c1be208a37392f9cdfd889a3f1c82e4da1599b44ebd474d4297d601f91acfed04b05b7ea1a4c647c1d9a4f2a304808dd4a6534725c9d8fee8c42ceac91a37c33795bd152379b25eeecd44723ff610ebf56071287d6de16d20d04d085f65d924a318943d188e6329159397cbce2981d0c9b9ba934897633c36a83c9ed649864d6135f02e9c7032edcc7e398daa69bbc66930739ec0d374d9f3e855cab0c1457a5c98d60e2a8ec92bed7c6358527eb529be4aa4398fb0d5a7055230aed249af160460048b20f20b7a150879d31d58ed3a5519a0a682640841cc3af93c37772a4feb656b537f68747eb01ab6a771d74fa0df661f0447b7fba1a75fa33e6657a242f241be0c3d63d61b821ff52c9ff803aed0e650a38ce8654e55e9e31ca2f0f030cf0e415148ce476dfcdc0f7422d6beb150c9d3853b27642e860dc7f72f34326c9000675524901b7875e349572524373a201c909a03068630200b5f6579940f59b8a5f363f6f6129853fcb2208d62e25670bfbc1e31d02929b19044ce178999e414b353a49ad12285725fe9e78280a9e35aca22434b32ba79d724439fae9fc11e5158437071626beefcc0b324c0afad8d18ad5c9b81a77268a34429a8453f0c62c1f4acdc5a1e625eb32a5aba04be98b11c5ec3e238d5e4e0aba3d0bed00f3505f12f040beec5339be950750af1f398730063a19ab8809e8e02347bce9a8bda9ca25a93ae4d3ecdc5e719e49dc0fb949e431ba34679de328a4080408530f2090163059cc3f0202e9a47d3556c64ef9cd7b6327708e74781604fd5d05eeb67e2c77d6841c5417fbae7e629a479e20712fddf82f86aa91136e94dcb615fdb3855b2679cc236602e30758e4396cf4282db5dd03767342c9342c5811adc82c9a703d52a4a118e19edbfc352ff2de94dcfdb0fda4fe4b697ed93d11fa1700e6c4321ecf9b2191cf43b967a80e4529da17c9b1a4fc7294bdf512fb7923a4be2e0f0f149c08d9d74ea4060e4da609af063e48cc96bdd3ff06f63a616f88d0d150436356881a92a9645d206dd7a85618ab47cabc96c1529370b14df054974da1ad4f62fe5617f5e84bbda14c898dd6cd693bb4b7d197d6687f258ad946e273b33546739349d17df36c84f08ffa9a0652a854de47541e65d91a2d40164e48f937cb46c7ce844fe8ae7abb53ba8d8f08a4b78167d804bfae05f3484e8d79eecc72200bf08763db38d2109388a7575a29fbc732c849ce7397404045320a53f44494daaefe370fd31aaaa3d99a7b53ae09bac7186b6de1ed5bc196ccb0aaf51909a85032d513ba3397ea6fbed57f0162c02ab8f9995afeb7af5d7301a795aaa38764fd578f42cfa463d644685746511fe16df7aa762e2b4990f5baaa16578cef09d024c12a629230459b263884ecbd89ab1eb7f9d58b60d562afd659f00491c7af5bbac6ba8c62738da32f0900b4cfae16d85af4107f3c06636e74db76f92b0927f502ccc81590b3de2ec180103d76ed952148daa0334a7d75350d9053243e17afe41dc1c213272f77a9396a66590305ec3c4ddae7684968decc18a8751f327ca9eedce06569b5b30153c07b517a4dfb9879bc537bfeaab6d8149b770e96a5430a619b43de6d6556d199ad6275325a15810870608f5c5df7c9be058fd698a1c267379718b74de264a750a059aa3ebadd7e06f56e00c95822ad08669622d9085d397b0067b706f547aac800391da0296fa049c8ec68bbcc9f2f6813e7ef5efb759dd699bfa350ecf7a9d97fb3c5f4556889864fefea8e47894915d3cdea0df35801fc84404d8d726c04c2504f206fcc858d3f6a1c7674879254344c30957f64952e9ba7cc4058f470ac6618e07ae066ac22ac053a8bddfc296ca5231071125b2914cc843cd898a9b9ecfcef603599b13dc6503eea6dfcc1202d5b5a237a229029cb43b6fc92db3f8a4ef19b3b12a900e8c5d05115791dcc077be1bed11b45d6e273852bce2bc89663c341aa808091f066714fb6c1b8d5889a4efb09b910da82351ff7401e04c7a530ec578e0d58970d21c3813da2041e70b15d299ca8aeecf14e64dc6ff4c4af1f407f5ba6a0c7bac85f5ed21bf31ed15dc7dbd74035a97bee0c252969e05c66bd7d374de1d71f8614ded9855c31781dbf4678588243315404dd4fa0ff6e13cf05e4fcc78085dd85a74fb38a67363ab9fa5d8338d5a7583051c561864642ddf17760038c85d32284cf4093a8cf417a74e08ffe0afb423b82b2a08d0bf6b31e318d2e4b194605d0e88c6c66a629fd82e9ebe3adbb8cee385cb5793fa6fd133a78fea11e37b970bc73147942855edfc01146c85723d39012d0ceb37e282f028dc839983bd9e41f0717f23b798f41049a1e515983af0888816a79b64e3873c245e972b3482ab07910536f811c6bbf92ba61ffcbf97592feb0623b3129f72cd76ce239cd6c7b8ba5b5be02420d3cde3ccc19081fa097cd8d9644fdb7ca7ed9817335d4846950b763e9c6810f7045876acbe70cb82630a087023dc58d74449632e892144b9f804e77170d25e0583d1c98a6b5b1c3c3d78ed3569e99703f5bc0a781eadb901ee0943e7264be8846c17cbde3c59a9f89ec97d99a2f358049b7adaa4222ab11d5695a93ed47e800b5e94aef85a709f8b8c025fa67fbbe17b353479510dbeb95d39ab0d1efa6d8ab6e6bf92d8dcd6f6f03e6f2b99dbff8fe3b265666ed7bc58e83b5d9b3322f1669e47ec338541be3083c7841b880e2f2826cb5695ec54c5817bf2761f534019d3423b1e16609847733de5f1879eb650552623ea78d2681fd8b0169b434d5d8bddf9be40df41b789e6c863c5cc2c26e4fb2648f259a2d9bc769f396d9301f89e3856beda667598475675d58551225dcc9da666617ad162e2dddcd873cb975d3eb4b5f8e60264150b257e2082fcfb2c0052506f56e32a9556ac7d39e43560b5ddad48d04ef694b1fecb94e08845c5c7913c3815caa1c9491455375bee8c43b1b02a6f268083d563d68f59ba3d38df0a9f689be4d8a2bc925619028d200f302a9d4c31705f941ad8823b3ff6f24c122c42d821d08bb07628d3ecfaa978a09de0a8eb844cc221663765361cb5d6c00fe4d13a20cd01d0830ff1353eee1c752ea3588da94323128c59fc73fbe9c0a856b49c38fae9fc386f86e36a09dda9cec7d1a940ed22bc06980428b555d7613539ed0ffcec8154a00fa8685b085257d38d3ed858f7417fe717a9de78d28fb706e3baa8346b44e911533adc2dfb7e95b2a421f32b6a31f5f2938dc07eb33aa142fbb6635d0affbcebde7e019b93c975cafcacd12c9a43f84f11d4964f849ec0dfbc414b1504c6ac02648f5874275ddbc72f143fa662841792e391f2693d58aa2658c81a2440644aa3925a4c0c4f5644d3108ceb1ee7875900aaa2b934d3bf42b3bf669f6d414110f0fadb9e98734f6f22cbebcdea06700dbc213cba96933f663fab6cda93ecb26d1039f1de8a5c880723a00c157f9853e2b6aa6da885894360b192dccba643b73137ada7e1368b9862a200d25d8e4982a0661698946c19ba489064e9e4f8948a671b83e7e953f4aa14ac799e9047531056d42eff40dab7e97756a8312db426833467b135d469c17e8d6b2071ba26d9bb32057f371baf7d497e3d5f1ea05834f6a2aeac6ee83bdc6aaa2d4636ab297bd4f9e36af3b2ff987535823a4c01466faca4c71a4f48a234a389c244ceea22684934e376790c5e7f6e25f8e44af6f7f2e70d3974ad54e8549b9f7bb84e0ed16a1fbe1272acf3b7355c23a3cfa01f8b861bfe2f27c19725d382a59caa19f26e77b74c14de6b2dfcf3dd7bd406055b911a59c8fdc6d4c78e9c03d3a8532630f81d552a75e8464ec22360ed83377c3652eb0d43cd44a572d56f64aa0ed9d27c1a502e8cad59b924c99f6796b0b0d00b43b2bedf7e0c96af066742a2bed9ab70a6446ba2b3be1b7ca380593af1b9e39c7a525da8e10b7833f67e976e932c6119383e1133eed0dff8db45ecedb2c05c33da31154f2271e8bb4c9a45000f1b1c639e3ca673414c7eb748f0150513d7d60eb216355b0c05ad58b4e839f904ef926066df8fa120c811b5fb394ebc520b27169fd87f012ff55f0e4ec27c049b838021f07adb572fd8558a9942ccd82e7cab145c6248cf6992ded49ccc28ce16ba4df9aa1ad780642f9bd00e1e1de72e2ef8ec599066bd8ae839929ebb41b6d1442259ce193d59e01ac94647f2ee7d57e2f3a5b291b2151d3cc9f0b206b12c096ee9ae9d2bea3c19221f3ee49b1b5709ab37d072168f80e1fad9ae698e42a2b5f37ffd3cf099ea34838f61175533a3bcae4f2c335c5e2e2233b2878a216832bfcf3d70f600888275bdcbd336871ac52fec7909fa8001529d28c2307f7844b9dbeac21d0f9d504ef81b945367405887a50a9f88c3f4b11a3fae9cbdbade52f9c8a17f1ffbd95d2512509198abfb162c313d6ddddfee589396a4a7f0fb6b94b9bad8e1b0badc5e8c9ea9e6050a0c4d6274761824405674adc9d800000000000000000000000000000000000000000000000000060e151b1e232a32", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 22, + "comment": "signature that takes 3 iteration(s)", + "msg": "0400000000000000000000000000000000000000000000000000000000000000", + "sig": "2ba9d46524d1e13500b15c244dba170c1069f0b3bfa545a03fa690570afc5f46d5cd484858cdd632bdab9c25abf3024d962643e765b646ea3e33275a98dfdaa72c092057ea57989eae2a4c604cb938c89d9a8d14e8884d5efc643dcb173a29e70d0b67221eed1489d17937d924f980436ec0e43ca5fd32a8c195ed3d7f8dad688a887311e1f6ba2e07757782aa45fbf38b510241f4d332c8795adba697120e83d87a769e1356a16e925acb0c2600c3fc7ab794b2e7d9581e89a85f43276250834a8ff1e946a58d7f2b216f436a902f0326030f415471dedd0f5a449955d86dfb98a93c57d01d4a17a8268c9dcd96d911d8f0365c1cff931ee8ef69e2703cd945ca732128969695591d8e0b62c54e82bcb7c35b57f5f30b6ff1802504288f19f4fb651dd85204db635a47cd70258679a9e6c4c64e539ed54b136a7d523f6ab93ce5cfcd976f79f4d85cb8c1bfcdcdd1a9bad97f1c85596feeca0232cf4d6a28850c2dd076dbf50f4b568eb3d18dd7ab8c6261a1975ba71d17a90dd6d6dd4c1d7b383e36263124e450ec917c9e6ab65f48c7c6e1dbfa1fc188b05cdc0e5fc0c0a3f97f54b16585a3d9737fac4ffd022315ce2dd4187ab93b8049d364c177780f8d3a356ee941f491ca021e72ae5b6ba47ed42f2b7f3179e819baf231a9f1e84ab2784a2aed03045283e5f61d80371726fd3269fa75bf4389ed8513783c1219e0ab4c269edd1a533cc6cc627cc3a70c8b15c26350d47ccdde55bcc3b22bf4628bb68196f4fd22dafbb46329922527ebb2b3b7071e46d2cd232b4e09521ef0c92350240cbcc9d98428e65293e790e49fc910f072c59a2a064af7e777186859b804608a275e93aa7a1d10cca741f9719fcb9ddb22b364d31d0c34013cb49b80c480addf6ad88b0c27b9a11b3a7494072116c95628fb4ca67ba2654140a323c1ece44527b25c1df928acfd2ac4f54af20125ecd1cbd7b6cc4006db93ff4301431208bbe5d3b216d2e398097855eb2939fef5c50da7a691f75401fe3b5b524161d244cfa3fc2d62404559cd58da3f8d2e4ef15215fd45e3567ae9076f54bf2422bdf9916607785554b3c078197563603923bf0a76fd123e06afd483ed106ac51b3250ea903bbfb4ffde16062e7c769ff56455953cbf80f4bae6a111a1f7c16ac2a192209b53a8adec5b581c2a4beeef3f3a21b2d13477541c1b6bfa4cc81731d6612f2c3f01e906593221d98513500e8920b1e985f272d223b8b8cad8c209e62036afd5ecaf906111f07d317b4d8daa64ea6f4e29b472f998049ab63ca1625a3f3c55f0247dbb39ae4bf1c2d67f50b0611390bf4cd554490171bc408a6ba939dc5768307cc8d50488db80e27dcdf60ed8aaa027cecd1131584d05037d0ae1f22771f4361af7554d09d9c6d4b6af7d1f7e6927a3e3eaffed859c53d1de8080ff9a1136fbb7cbd716d28dbfd66b56c7eef03392c7ff97afb6018fbff83298574869c0faa3e931b845968c2d4030a7422bfd351343e247e5236f1c3937dbb1b7858fc21a1aab2eff9c1d551c3b16f3f6c464113dce2fcdbb434710d6b725cc7196c8becea7252a787a430533ea03a6f3da0598380acffd412b2175652eb5f6510115cdbe37a007fa04fd604703594a3ed1fd4a50f6f9af136295c0660bde88bcc44e2ff860385729855aea7fffed7fc307b9b2d65316bfe86bf7162140faade169ce6ed61937d1067e50db66dbc6c6e958629613fbd60744e282c297fb94c9e04dfe62e8b55cdc771abc8eacd964f443d235200a4cbb4897d73b95309745f0e72b585a7358a8fd69186f9a5418f217da4045cccf2e8efce26c2691fb82097e4463fe0efcd4d43d08dc7ef9a5b6e5b0cd05f045af37450ba791733bcae500baebb47383c696140272c3ecd6233f91823881b5ee9547c49f4fcd03e484c11b2bf966462852d3bec08d6e8332dbfce472cf947638d781e18d5009cd1cf31b75c02676ac3e336697a1dc09234e347673d40c42bb3576e32cc801fa97ce97c7fc29d34174ba5dd6498d2d9b8d36947c4204e694d0c80a535518e7f7d5740b59fc8727be4febe673257c3950a8bdea76ecbaa76c9c7d5be388cd9a3ecffd682995b3cd51e61e5d9a620f3ecc7d9ba7ef4f24cc617a09baabd85f1bec7a6ddbcaa7130f07a757686256ed4de15be471aeba7b10351672b7008a08a54d019c12a90757e1594156157fed468823ad6fceedfe0a3bc1e138b75d50757106bbfa6bb3e7f55fb1450a0e417560ff09008813034ac57e7cfdc87758c82d352dc7fd737213bfe1c1edc60d5385873371930e677b63e6efb53607d1f1a1d5e1c2b4092cc334a26fb5cbcd37750f2a01b7c05813c2dcde1ad4d9d58aca85e44498be75268bbb5857d14e9d68eb08f9d7f24f5719731b4f67359b298391fecebf11b2bc0ae7aed43eba2571e6dcb7889253d6240095b766d2c4ddef8ee25dd5d15d3b9c3a64c6cdbdcdff35933e72ad2065b4a4b50406e7cf72e36a5054bcf16210b88aa4226ab3ed85b842a8e8bdb4675205d377f960e21696cb77cbaaa910e9af767f8df432c022faeab7c3f9ea4f902d8645735e89e1e1dfec33c01f6e1ddbdc8e67fb4638d46f5f3a8efeeafdd9a53d755aed09947c178edfe92f7359cba7aca8bfd1301cdef357652d31748149f61b5ca73f41adcc62807596e0c0ba55221beda61ad4de2ee180fa6eb906bde4906d3b4bbc1a1a5bca6d277e8fbf5695a7ead9d7192c7fc688275045abcff66a0ea5c25e1eff1ea906370c1c688065bdd881c789dfdbf386a81cd9e9da6221e8c3d575cac2e71354ef3f6fe208278aa303ab03fe9c641ad3adcf688f23a04cab3309b498aae1c2a7552db738087b83647e4b2e13d691a7cd0430861b651a3fc5146759970be2c346e22277042a20b303d927e1b9ef3adb94c7860d3ecf5ef49bc62672de0338c25cfbaf29b901e32f9caf6358f85184abc035de6105336a40a4e2139b2d818af15c86144556b8cf24d6655ce74b4b6033a15c10bb06c81566850bc1cfaa62c064b9aa69e487ed2600c6aad22508c8ff671fa3275758a360eb836665f99e1ab4a4670fe8cf93ac9350d2e546a9e3a426ac5edfe18203e76bc1a301b8bff4c7b2e55bf4df217b35565a20de39612b1a171b36536829dba2388e1321f4d1a47c002f17483f0c104d79c93683ebd33cddf5cf2754c2f593da106caec2be4bbc4612a84caa50d0729b3c1e6ac3ff1c62be9bc70c4fd0808f220bed3444db475e4d05da6b9a73055ab3b1b3576d80f6ce57357901661bdb471704f8a8861751c525fae82d0393c6f55fce98d6042af6e7f119f3ba5d30dd050dd4244a3992fcdfe6bb02931bbf63e8d307b0bbf55f5a99018135d4e442e809241cb5aebcb207d164aef18daa99d5d8982b5315d6500b2fdb65e0219a717cdf38422313b02a1184334e6913b23e903d9ec9bda15fbd86f7f03c9da2f0a62adbaaaab7826b4b758dcfbb3f3f45375f7a2e1eb8e633fc41d33922e2608bf04b76159283911f71f1ea942bfbf5c9383624bddfce54377d39e525fb6ee25154c394e3a8336b432934793d26467fc0ce1abdb610e19b58991a4a8f1a4612550cd6c4f8017297de8203161ca4c60a5efc745dc661ac35a78a51f5c1bde5fc16b509535729ef3144cc229007e5bb220dc3af619ebbfb110c8201334c697defc43a47545e2503dd131cad5ad9390f1f61aeeeb0ebe1a5cc160db912d562b145b1a6d568ffcaaad353a53646e352c2926a917a1220a2e3c81e70c3f557cc319e8647703631529a29680c20d234a8674ea904f3b9d6b47753759adc28bdcf2d7f5a9ba3bfd4fb7a15b846642c0327e3ca35fa1c4f95c70fb0be9f70e87699c7cb6889b4a463cd3cad7ebc504856756f4073d110953be0ec08db4257e89e024b57aa1388deab873b9e7ce08684e80588cdaa6f0c189fb756ba03e7189dd609c3febe34b5cbe402f337a04cf118bf5dad80412a4ef70b44d52e8fc408dea9807277cef589a4c7342f877bd5675c012444e81736e95c0206535c8d8afb4083e40999f45bf8816f20eb6cd799c19ded67c1e7b7b74209295d1246788155e64d21cc2dfb214f4fd1a775d34be0c6e0b49422df80dca6fe281371860b8ab897f0828d52bf1857556bf9cb25934e423b78e07f2170d79c1b284b721b2c94d4b86bca1edf31559518b4dba10987b78037896c34cb52bbedd241845100ee07832ec288ecdea87edcff53d8edb3eeab98d71fc4286a5f46c1767825fb712f0b7926c880b9a82ec137b1dd96b3c6adab0f016a8bffd8bd9440939f08785f58e3f55061956745e5d03e92a0bd527e9fb3f6074def806288bd02930e294fb7ff19f0a1a187eb656c61161a98d93638cfc7d9e1c0ee8cb143211d111ca3ff824aa394391db34bbf80852cddda2270a266d8605d0714a661d664fd1f3b92f187b4e13367766740bc755383d466e9a48fed6372460a3e168e589f130b54043c32fbdb646b93a6a4a9fabd66928808df00bae9aed5e668ff6829a28bedaefd598cdf977d84b5ae03ce4dba3143b6e2ec606a6dbe22c26c3f61d770100db3afc412072ac7ef5cd74a96de2cd44948c52be72981d8f23267db2462693ddeffafeabed1f0c16345d641ed7d3d134399e45dca2fa0854221a85b2a5a7df3ded2b2b0fe40a81ad11160c2c52ea4be3444e9e4d96658d45565f1f935fa2389bd96bacf1aae6f29072b7af5df954907f302988fd91e6396b324c8b8b1fbee422b5c5fa01a78862b6012ae26693c08456740549c5d77d24599ef886cdb26b22cd0c86bf09b6b9128fe786f86ebbb4718f96de30ee608f80f2f3f2b3128235f34f282a87274f6461543cc868995df08a49d55895732e55546385f86f5e4d181ab4a8908a4f4558ab69cc136b9e98d2c8cee3d15ec7c7df13aa6d4806c435bc597b51fbdde8808e5defda493ee0b7e8ed5f55181b9d0187a872023b0b205f0686b38a20b0408da7df4390bb8ff3bc4f86db57414de6df8a286eacef5500329b515e3436e0a9939f956c0a81a106d570d4e698af6cd82ecdeab738d3890099a510eb34f3ea957f0c2cc41c588df70d237654c9604f169d2a3602de25e2e3648a0e92352c234367aeb4343fe23356fde6d433c7ca8aaa4dc843fd1ed730de867e03e6f902034b9a1b7244ec1deebc73be32c5cf902c1e76071832812f49d159f8d3de29c4ae8a07042956a2a7dc08d498041f2128dd5e79d9d7de5a1f777f4f25e6dd784345b84e502507235b8f486528be1423421a8fcf6b4f14e6fddd7a26a4300d2d78ce74bc21acbcd047e289478bbe14b39725ce1835c9a68f2ad8e44ec0b2fdf36921bb3e4af5e4c7398eb9b9b04818ebe8eb4d366af15cf16c6d51ab522eff004794bd815cd84f3d94a44203f1f00d95b22df8a9e1d80b2c4eff82a888fe35f7a9ed2db0c4b14a20d27a96743bee71850765f3b8bba92a575b758d2c355f1e78e8cf4674da2acfc5f5a3f90c1fe59215c4888e362b62756830d47397e266ff3f2da7b9ffff772455572e8d010f035a98325d43867dc71f26c013cda16439707428ecd568e7623f4d678f648819fbb222c76e66e78562a977e1ce58c6995a579b4a27b3d68a37127ad9dccdebf0a267caf675171696e4a58369d57b30cd9b0b9a47855e0fc4cf9873fd9064f0f4dc8612eefe4734db97e1df8cf848c5b35d0a7355166821a6f98bb746ef66e44202e11073d86ff59333f87a5d1b0ca1dfb50f7911763f5381e91015f14885ff8949262a029b2e2d9afd097244344483c0c7126b920ea1fdace13e59d7c142acee913a10e912abd42478b54cdb2e32be51a6fb52a78bb729772af6ed169aeee454981b29f63bb3f126f998e00238f76559b5b4cfc1c6de66450ce0a2e40d03ed9017e362571114ce6c6221a892c0f0d9f37b3b88714c6162ae96e89fdf02c67d9fa85bad6138cb5e85f3f2495b33a280f289f7656c185c3332469121ad271d92b7b380f2a90c392422953ce47aca7c59a1aadabdc1ba52259446c8dfc2f0ff9e3230c7406802ae9909cdfa989d4005a5efdc4ebf89c0aebbc6400a140a905809c7bac0e271cc84ceadab906876860a9be1c4f3006a54d5b800c2f950265a7606f778efb355421f46743f4e3741a92b6fd1815dbeeba51b821415a17fc9e4cbf18edf1cccc27a84b53cf3863b44a70a886d98b5e6ac07570a4e9ed56242acfed7fd4756f23005839b290d2fca5831eebddb0707b3fddcb82a9d99fc6d3e7ab62d1033a23028d2a33d3c2a25366d20636c33e4791470dc594351877d8d970e58b9e654a3e5e9898e594c3b2fed168350f9d6f17321185792e2527e0e02854be11f4842d9404fef6a5f1b4104aba41599cd1972d2ca1e60b2294519aa28999d79c48b0dcb8f6f40b101c2f404a509c031c23353d8c94a0abb7d0e808090a5255686d7e9fa5abadd34c707c7d8e9bbff307273855dee3f21a20216c76e2e6fd1e414599dee8fc0d46a0b7f6000000000000000814212930383f44", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 23, + "comment": "signature that takes 4 iteration(s)", + "msg": "0600000000000000000000000000000000000000000000000000000000000000", + "sig": "719eaa634ced83925e13a432452a91c2788847a840bb6bec03d60c0d1cb98a18bc3ff900491b5d623ad97e607918b23c99c1d7a8084afec2d823f6ed429ed4e8fa3c571b9f73bf73c33f755067013b66a78a977ee2df8a6100b11bf3a4b58a7bc45e3a89937ea9ff43177d71a62514883dc9b57e001907b6bab391a77f1d86884e33c55192b93667fb56dfac246260894d73d0162741f61dc16062bd5ae014b4d38e9a7daaee0968646b79000cfbae02c4505f80a97e1531dfe091104fc5f0e08c0c882e452b046b9a8c002a02fe12aebb76d890c611d988acf4e3d97fb778879ebfe42d384df2e24b27b25ecb13582a9a59824daf984a30a97171f9e0e7a5ea69d97e5ddcffdbdac4164ab0cfb3bd3d14c1db94101039bb8025916ed5ac93f8cb5b2368f649cad1eaa6ec20c8a71be7ff3cd32ee71ef00e28fe2d28360a6b7d42807bab1b62c6875fe314ccd3c9a63d2275b8b3e7269fd2a0f1d7c1d26891bcf1c10301a8316b55151f7cf9e86ef039c4a2777601d482d76ec4d465c54681dbe77c212ae97346d3a5e20dc4a49580d551b0615b707c165092af187811360146861d50cea06f53c159150e974c97801d9de21c192755e7f8ea7bd2e9799d1987e05766ffb1e3ed3d37dff7248bcff86622019aa1e00c7026bf887856878a2305974d15be4b24bde3a993ad1f27da71bf8d9b3ce6dbfefc68f3c4ba0289345a25daf9a07e76d0d6a2f1e6b3f8a11254ef08657e34ded8facdf7fd9184fa5cca4e71a82340d0d9c5ae5f7263a4e99f2c62fa268d6db037c21d36633817d0a93d52928907380eee505b79acbe9144c6dbe50531a4c917d0a92d2672511fa89e1b5f7462dd1029a5221667b32d43dc2a2f8061be978b705fc6a59db44b4ea270f3befbc6690c71bf5683311df39d66b051ad979cfbb2e1f9a4a55e8e431659c93da051273b90ed24ed5edaff9f0ecd6dc37a9f55bdb7da3867ecd4303efef8df5286fede800abbd84bfcee540dd462cb453e39a81f02968ca333a9cb62ef607027814b4181be8cfb781fb83ad5626d49ef146622b990faa9ef5c02f4664e288786e2b6c8cfd4ef090ad56ec0afb3bddb83208a0eaff970a9cce72636869771fe5ebc4b9bc3408cef1014ddf6846468ae742d0e398e6ef1bc3710002811cc41095f083a450637229d52a400adba59428531ec60af71d35866c8f9a684a7bafc162afb662dcac87644e9ea3a52afb5d90fec081a67e171077d403be135660337df633b2e1b6ddbf33dfde228fbddfb160302b7620bc3329a36a947292c4c5c8f1d7fbd6f0ce9a7f865958b7abf99ff38d18f213adde9f4c2210c5b6e5f1d70db1876343ad60b84840b21c09f7bd2c30508bb79a58542b165e5b68bc1e12198418b3b5aac7e407b68a4a8678dcf9bd95030d7b1063f4bd339969739c2f98c29fac5f89c7c8ddc79ddc175d17b9e916a1ba8af4b18630d9462b69d0d3bc9a30e76fe5dd1b21af78589a89226ba342769023d2efeb5c514f813520497b1c8f0b53f05b70c3292ba808cd85d84077bb35c0f9981b65be6035943e760ef9fe137481a2dba07bff700acb3083148bdcb01021c34465c2f060e1fbe987c103a122936c3205e7718dd4b9b122c6df2f336b75561054f9cef414bafa707ba0cde1454f3538bd078ad1d423890d003637eb10c14c1ae9e2d86ac9ca1516efb22344aef2d3fe98ea30cc120652e15e85117ea9cc313b98770918fc33f304fa7eea039ac7dc378d12f7e7a8cce0e84ef8c064e0eb2eacc03603491c59ba642b37e0afe024522dc1876563a467f5d850f69f2b0307f2a2e46f157267f4bd647f24fe56171e92b4950f1cac96d32705dbc598cf27ec56bea526f161aa4647e25735ca60d949f0ed90165372f486b1757250a090f7a52908d7cfe17bfe18aa4df1b409d282e9541a0e791a496a61b13b31bf9d234de9fa64a64fa7e28d85351c2f1cf41eab871f93e7d08a69739e8fe6f4b810a12be4af6e136909ccbfc0743783ce3bccedf7545ff421dbf9b49098b6b0136458c51bb013493a7e6536bb1bfaf7e497b21fe6be548500cae4ea16bc8c616abef4618cbf06849d8a89b310319374418bcc5120980d2bc479028062b90fa78eb0d5b5ba70df0253a68ee91740cae77914cbede7c61b7ff6d9e3c03aa60da6879a4e8f9d60173be4546ce69deebd743204400429e8afc4e296b5e131a35d485f02476985ca53d1c4dd48684cb9bfd40711e5492c09d9c6acfbdd8f571c75812902f61aaad6b8d70a1538433485f91042d2c79e09fb57a6fc7fe142b37645ad241b7abfaedbd6a0abe1016a7e55093988cced117b843ec2ef4894d38bc52c8e3cd7c28c5837c05c83c5b63bf831ac6bc56fe8c56b8bfd956b3b3704f0e1291f37353898d89faebd16c6a9c0e86060486d2e9f1e6338cefe9d5f9c1c679aed017cd036d248f5ced09e37c87a5466382aef6bcf3bbb4c740e715cb9d222f99a34745b47e0cffa175d1a62ccc9df449fa99a0681108f83e60efc04d7baaa9673dcc036d763d6199c5919dc48427f84bd93e08c236424776342e7639f1da211af2526fd81b6e5ab7db6e4ee4bfcc40be8c004fe0918d0ae7843231bba5661fffc017a209f944e3b9590887a8ff14adefae92de3982aaab7fd996b8f353445691691d877d2e0b8adb1afa30a8ae804f777785aea8637eb62821d9b3936c3440cb99975c48cc42eaf7322c3ee15e3f316b41c09d5df78dd02d847b033d59fd16646952b72d441711be015c0d58f16431503aeb066e751ff6224e411f414feca4de6e3c3e0dfe95a17f69e709798175abb54a663e35d8da7dedd1008dbc229f8d8bf99d7cc44bfb4ba026194ce3b656f6efbe29f2554b5e00f1113b4516401d5c9af4613792bda432f8c2b792f0c6ce1ad1d66e168a403f6bd186e908f41b627d0dc9df65cfac619d7fa5388a60edc4ccd124ba266cd526ab8a1ab560c229404c5f8360bd77c22ff5f8bdd93260d3c85343b032e6ddc387996f454271f68ef87e447cf8d4a904d9ec8042a289b80a1c20c4c7ce7b1bece1215060d719af1afd7b98fc1511b403306318b3081c0471b7fc1d5aacb6bb54d3f54b217daeeef2a1d4bb190ba29df72c60d72b1a769dd64bbeee22cdbed5a5fc35776ef32552bb052f1b3cea366ee1578d2f7be90b602665d091edb2a932bc1153e849fe08e9c42a03c08e46b460671ceb63c0ef9a9b4904dee1ef6f8d006f2bf1056e4208f46455fe39b97addf8e4a667163241246f513d5bfa8ce9136bde6a401a2e2b4c60f5ab69f5ddf38be3f40bc2ca77027ab9d106e45a21d3f848e709b29ff3fda9cfab11370280a0129634c8906c91d073a804542258a9b6305c5936eb03c0a78485bcf2987a2f5eb432228363c9b4702ad70f86de5191fc0598279a5b361852ddfbca1a496c4bbc161da6a22f6068e6ead796878362153c5ebadc4876b16757f6f16f68ebf98c658659c627fc4ded8404523f52c29db0083bdc2608293c2d9b1f726af926204ec78845b650077244c3623d307de9b9f499692742b1a2939006c97ae0f70dcc81940b737e8da625e062cd002fd25e807399d627247ecb5c73080faa2f75a7d14e255656740b61041795fc793d76caadb6044aa4ecea9b623657c34a74582ee43f10888ebc94b2cb6c4ce7c357645ee8b85fc468807dc4996fb7539ffd33576066b2df6c1c9ea41723ca81cc91e291ebe8e0ddaaf3ec022ea943939e7239d58008b7d9db0b18939488f5879af0ed6412960a3bacf11687e96031b5cebae4c9993bf91c0213e55f03969a3cd570d7a95c08d8dbf64fadf4c8b2e3c165d8abf5c08b3d0a2b20e0ccbc47c0e6ee1c2d67ac50f6468729b47ed9178e87f2e28d266e1af29bedb958452df77b939c17dcd3cca73614d28898a1f62e389a1dfefd900a7207c27b8f6fc10d7b99175289e2fcb995a88469ee58ab849cbe2c21e34d28ef7cb73502259a858de9bab6fbef7ccfe56ef960544e0749d4b83e77a6ac7f6a78ee96738becff2f8237cd2549c0c1e6edcd13f77f1e221743f5e37ae666b5bea150868162d0969e7359fdf2ecccb3b80940420ad76f4c6802bad4816ef38eb22d05f780adf61faa1825d3d1b8acc9c29a4fedbce310cc494657263d1dfcded2f666afefc55016cbc5945c7e3bbcabb1e6c1be45b0a1bb129e73f0e3f098b15b5f0ac2b83624b1d91e25d51acde753bf8be38228a2511c930878b31724b2ab44dbb695b54d4ec6f9d04a2d160b8653afa542ebb060bdd1413fd157e54a1cc7ac76b4fd0a8ed43971389cd221d41c6c255aa83dc9c4a830535b51d68db24ad58362349fb70be98255a158717d4b4d98229c4b8173396e19d371f9f8b314b7804b3458d5a0c341628217fe431fd1c70e2e04c0cd67a110c4b24393e12f531775f885bb34bc7a290321aa81981f3d4b747ba4c6ddadce0ed90e44a155e9a666d39c91a61772e1c4b5282038771adaa6bfe5e8b1df319a1e6951adae2e8d4ca8963c3f06a1fee6f667f006caf543e17f02c61bff0c9db94b3739b87044d9c511670d8133322754c0deda50697327812bacaec7ac14f6aecc130668442622fd3b65812a2dafb61fb034347670d1ff08e1c31e5d7a7da91f53783bdf8aaec24f0081e0ca4d8e70afe3d2a246b8025b8f2696f2836497a430de2cbfce3f5a433b0501cb10c6ce070a0d5d109e18032913091399b72ac63766fe7b2536c63cba3fc3c05d1a516b8275595871bf1cebed5719e8fb18b94f9c672885885a850db927e8bcc4f51bcfcd9d8d86d2bc86f9bc4bca4fedcde1b15afc32098d3c233800d80fa2f9c2f6c090499b4fcc51c0b66ad43634e91a1898fcd0b30d5df1cbdb344073730d62e8db1d1b4c74dacca8aedd7cc5aeedeb582ffe95b90ad9c3180db1aa0d8bd2d74a835af0f0895dd664a1ad2ea1baf3d2ac7da05710f2f332daec8d4143be05e3aab81219540a09322e877e4e329f9a0e3db924ca1d526dd5e49e3b42a4d393aa4f56c4cfb597d9ff1833602f7281c9e5ca210823619078025948a3ac43f25d68593b9d11e59a8566a64404b3b0a9b1d86cd3223cfa8cecb13f73066e87fabc2068bedbe6dc70884c8e94406cd8a58f77513700a38414c0b81f121fc33fb85a9b6363ad5076613363dd40e1a5cf97830d11c663b9b821bbdb6b15ffc00cc55b93ba430611311f048d01c2a5358ef026c0f800cfed3097c20fcfe05ab81e754fa5850a071d7c91a0271e5ef915e0d308f87349a9737174b1b27d388a0102f41385880c191659a61adf6c6c21f029ce4b9f3a66e6d22f582cbf1a6e21ad05013af502b80ddba97af8be06be8f1214bc721fd547f44d80c32d11f6ee2e1e73277848273306cc389571c92ada653503aa84cfcca1e5ecc53b71dd85ec659cbc1ee35c74ff34ec195ba9187b9a9c6782dbf8b54bfc1c01c3f70434da868f9ec909b928ee4e87e431844c2fb642d44b556801fab692a08bfca49fea17ae90446ffb3fc791b0ad9903334a64321e366ca7080d242c7f939061a259d59862e0b0c341f6e28ef66b9f5b7e8a1946efa9591449a758d20b100ee3927488a7dea573b87c31a1743359e95f79f302231af5e4e49c5203e92617ba43dfe7378ac32adc61584a30c6cdafeaed1cab6a5050b1af87d32f09ed0126bb63b080f8f67a3abf4cb02886c9b69d307770a82035d243b92c667004988dd5d0f4327c9eda184b18a888e2d628f53b9c518eb59bb282422fc82b6cdb102cb54e50f22c8bcdf34153314f5420ae3ce3d82cf8d53e868e37462a73755605bf267f913ec44f3b501a191b2d3268328c4c227c9a9ef46238caf46eca4b5da2fad427f07ec2b31dd596c0fb2a20aa92da3bf4e6e061b6e98ad8d7e4651b8665851165d9d6eadaa0f81d04f9d1fbea76c09cf7ced9c3facac89ca6a02ef512189d402652edbc7891911158d5abdb1f27f4156d5a94a3acc39787abf6d32c44d30f2944e78be21e7988cc35531b1d57156f18cc829f08d087942fb7b515a354e5b174b946c49de170e7436fe67fc5a0ced160215f540242dc66d362966f0bb6548ed7a2efa282e1ba94593dae75bf5898fb8ef6873bd5425d5c56523eefbf1ece78697e7a0ae128028a0ad663e884b36ad6e0a7164e100a13aeef57ccdac31f9b04072257c805aa5e3fca96ea457526c3b18711e73caeb63035eaa965c000fc99be5e461066736d92e9f5d80219ea4ea20d462b6ec621d20ab3ca2c5a6585cd90d997681eaa678e3bf73b99ff9e1270059e6775c9e75e2a18e42f0c35ca43ad63d3b4dff07b76071f14eddc5a10ab210ca5598a3aa99b6357bb29a6bedd3774a110a7c12461a03af93bf9c342781e7c328a341ff5662e05219a9c4b131c284514e65e43a4fa58bcd96c1f1c257acae734557c8889949ad6ed3157e9f00a1532e5021037566b82a3e7f300174b52535c9ebcc7e3fe56666973000e4749a2cbccdd000000000000000000000000000000000000000000050e12161f2a2e36", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 24, + "comment": "signature that takes 5 iteration(s)", + "msg": "2000000000000000000000000000000000000000000000000000000000000000", + "sig": "63fa32be2f0ba4960e24703a2b39c7bfbeab989e4aaadb4cdf4a409c61d0a08d5f33d353f06e5a5357158e78b9e2ddae097943160a15840ead058057a2b7b0a2f404ad646f5bb748ca4e20638ac6d5bcbe74ea0eac0b4caa7f9328f0fb7c00bde370b3d4034991f58be387f604806ab736a66b662b640a503f445e85302b179b7e54cc65d5f666af8b9aa63cfd1cab101870d8c900ce53ab8a300b5d1859239f822bf951c93cdd1323ae7b6a33b861dd6be5222e1ef2dfc1cda540d794dc08d2199b5457f4f3f7a0955217ad416f80cd27fe616363e5aa2b29a8db3256e381d1318172d05912fc55983050e49783cd7c64613a01791987587e621246b114f4ac38663e40cf6493732030439242455a54625f20d90198e552f13bad72612040d02944663b191131eddf41d2440457eec05341544f992ab333f363fe9636efbdf24e20326157ff58c38ed15ff1403e569d4dedf86f47225756d228b504824e554482051257fcdc5a520aadd2c38400d99262727340f46d4d453ba1f4baef116a5e6678cf995f639a4f03f0bd4835dd38e1ec2e00d7fbb28b869594df07286ba4d75a99da4429ea090ca8007eaf65f844fabb6f8b407c62ec176521ed4c2293f8d25879db8521eeba52c48f2ef957b4d538aa547eddbfbfe14d281ca8b0870ed53388229f26718686800582681fe71c1dad65c37ddd052e1f2689a59db909587d7c59f397e3487896c39b0714581ef493506c100c8c9395c3af2e661376ebc90c583a667e9e54b915523ce5f4d6390b01183ce1945fe84ae4911449ebb357ddba21a10931d3529d81927a110f102453755f33ef225d4bb945e4a737fbee86c39cdfc621ad17e33ba3f70b5acb178973052115518d99bb477e8344b23407934bf1762a6e51d9b8cd9db44650c657e8605fd2e0c1679d355721bb86be0060519703f0392d2b4383da19cea2a00d9e13947a021e5d52f4c664a5f46a1c3713e385595d895fe4ae4dc5f046ace89aa49caeb0bd732e32ea7a6eb9b4bee11d3888d2c01fa25272278d26e715e0c0cf4c386c64e92d1f84a929ea98480d370421413636f822e095a77b67f654ed5d1b945ff0c602a4ac5a886043fb44cbac39d6b464c4675ca37c503a57f2600444ede2b8fa075e817b2bac76089f2fd66d485eb56f23538e6321e1128cc5995ca7b344b8852fe2961659335c3b0e2ab9a307ccaf5387ba2c923ce427ca55aa2200bf13672aec57f2d05aee6bd62ab1c3041eda0c02189a7cfded238dc0656779ad438ac7cacfc56cf412808349a7008643cf044da150d4818712001d69ca8c1856a1118e1818b0b49626d8dcf1429b4fd2152781d3237a309b5bf9644cbb9f6a9bae8035cf4984ef9fcb935289ca694fd1629f081e61375930d64f980fdae55a56276778477357f0712729766a553033764c4aa8001385f13413f53e47e50d3fff1a008ba23d8d4d50fe1c3d5b673dc0df2752f5c97a09f90ec20ba68ac2ef84d760d982fa1c68a6116f75424d6c100d380481c5d1946b757899e93d4a2931a1db8ed2a5a69783c0ac8591145b920859bade5ac30f65754e04004e4f9b05c299aca36c80dee470685dca4d342645a03ad9e6b3437108ced2d37aa5b79bb4b71141cb4b3351a384594595fe14afdfae616707df92f9397876b89389d67ad44f0c54308b314974db7b69831392fd4542decda7949d4030dbca2946371ce2590c7da772a1b8831dfd579b996db6535a204e758349ea871c664e669e15926aa12116ef020de796e98238eb01dc901802f847049ea3c31eb76d6c0b884c97b33a677d333ef671d167babbc2406dd7fc31841dcc7523e43256287b7f27e756aa91254819dadadc9ca88d04dc5d8a05440d4df16a446dc6a14a0e6a0b74723a2d75f5e34b0ca52e7abedc7e5a88fb54fe87a6e240a1fe27bb7c533603224173acef3aea1eaed602592168c9f543ea5fa8a5b315059d1bc9e2fdd6131cb1d4394c6f61c4875acd58b2bd0e829153abf88c1b58e35f2051cbe0ddf5a872163b884fb6cb72777df19aadec701ce9d7b203b27937ca5bb2a795ec75742d4eae1b7b6140d6637962c2f5e51ef117c86ecec64d7b0fed5faa20f0b99cc074b6df78ab511ebd3ebc03b56a6a07de9560e91dc3f90cf14197183fbe81a5c379d03cb453b9a09dff6caffd50067b05a92ef155f19f6a70ef6311332522becd923e80fc4ac4fda1864e437992aaa59e577b567b4cc9fb5d71f965513588b6f79845b24bdacabd623264601276bc434334e64b9a3682b468cac32a8144937769bd11374d06fdd8f3f0abb6fa3a25c7bb6f07a003d1b8a3195c2c041c92de1336d41818ee55d9923f015de60187996ffad9143ba38213576a2ef72b87906dbb21abd5b675b5b6bf284e7bc68b7ee39d1223e358b85b5193cbcef2fc90a880acb3444d6b7cbc1c9e12758f92d5970b1282566949383b29582b0f2cc703f1d3b21820bc6901ffb113f2022a7559d4f061a047397af1f41758d8de72614ae12a0cc75ace48899e030c27f862db0e5c10bf1e1f5c9b37819618cabce66471fb63b021ecb4f5e51a0f884c26f67991604d9c55a41ba8ef5abe1826a27958b7e647355b78f38063156372bf3096c5a7792007a3c926ec499d32e5a9c389d0a460841732788567175741deb4c4958baf09820df77f03e385b5ecfdd0d31794f475b1a0b37b159b81b19e009979644eff99e5b44295cbe9d99eabc7b1244313c4d797cd8d855d1433d460a6deeceeb23f5cca77907a3282dc2f4e558ca476ffe7f3f2b37fc0f7ef2bc4227479c7419c352808de67bac05e58d507fd3fdb4d93deb19e38218fbc0dc9069e0d38a3b2cd4ef182a74280d3b0b079758482f869a27f37885606f6054b972383c26c97f2e747411c0cc37f25356ea69ca21f0b8d13092d1a3b06955ac692b2afaa5fb140ec55d90c67881cfa0ca3759762c4705960867f9f990e5bb56a388aaed5c05e7a4b0488d91c4882e19b4acbaa6d900f59e0bd85f33fc4fe56eaa79eff92581b105af403dccd97899cbfada53e607db64110f580f28ad056e5fd83323e5dc564c150e034cffcfcd70397a25bf83ad73aba8230291189e0f7a71c2410687678c2f5d7ade25d4bc49f712485d84501c60c9b50f36cfa6b033c07cda9a7a6ff226ed51051d869c335ac357fa48c3a6b32573a1acce7bf5870e426f238e922137c108c819c0635bd6d970022275a9f498fe1ec2967a444db13e165623b80cb04264297186cf8b29ec95ffb7754f7b527ddb59eac004b3da66b07cfd16af5e1d60985332d6771d0d527805d2dd2ef5a9c5d1ef62d6b5018601a4e1aadf0a8332b6d98be2ec75226858906df7844f9f9591d4e03ad5d2acb9b51b24ddc26a37c7d0c2cd9b8a3f5b2b1e6b9ec0bac1f67f2fe962c8ee5fec11a9b0b822149c569a64b48eef392f58ba825eb49d2a9dbfe05ae96da9a6b6e6e9443e8840565d3983a345d06255b83b8d5ed07b1f787f1e5b352d200ab4388362277cbf21d5f4b3851b4452672443bb05fa77223a59a064e7bb8297caa1412bc180ce095f31fbcc0a6b2bd718c67eaef7de7d616f042ae0c10909f05b3b660862019457bd333a99de27a255370efb5139108a29ea1c340351be9c08ad7f81f003bf078ed37738bf5900e36c3bcbeed9a9993eab9c9ecb7ba801a5781fa93b80f364a8df0a9a3d00e4b2758ea9ccc2771d02e2e5737047f2094c5c9fcd7146f1474d3f83a04a231f6a6f50e0583822a8b7f0a048ce8adeea84bd7901dd09b310f839590bffe2b99a2b2f7295e389b69fe36d97e30c24ecf293f1c3d56d6d445d5ba2ba57ef7b7643bb2248352d64829cc915a7fe3f588de9425b3a64e05c113c84f4d7ca4e4f71ce62297b590d70682ae042b8adc9bbf79f0b67acb0f98547f5192773d97b711eaedb75022bf69cda7480e9ab2b783409230c57f49fc02e68de6f0ab0d520be792adbfaddf05fa7429ed5f53f4269c589a2e3d154f32a4d25e8163969e734aa9c37530197dc8de8eedfbff858f24ff7a5059216c0e25bac252f46a19884eb87a37f8221d0dca6b0b1d746caef7c50c79749b5351a8484de38ff5a8bef669bbfd405ba46da89c00ecd0d3a25b663cbd64ebc35fe776161291ff4052bf71d08d4b7936227f8f6c2174d4ae50b4c2cf0840a3007bc2cc6be804018bf4b6b2e6b653f0d30fd4152aa2981a2d23e79a259106ff94d2b43e600270c86cedfa493fcee8ee953867e1e6aa0f0daf88b71a6548be0c34775a4d837029d3a17d95c6b7867c6f86606daa7c8cd27ecba56100c0b7e87600954c7274cb8668fd42438eafb96914bc76d4b9bc413ab5c81c48a7180b41d2f6f7d54e59f31c4f1958067c2a44bbb69f4c60da156e31906a7a54d50fd5256f6cfea00e6812726f588e4dfd5d1789543a716a796a3f465ea30ce0c64d2c3b7db21cd92ff4ea4159a1f9417d6efa3dee3f385844d3868ff3ac5ed84234d157518cbf8058803a06b9f3c71340324e5c0ff3ff5d40dce837c335b96edef9353e2052bd6254de1ceb86d9ced82bba6ff60397d0a1f763caea593c92c2bf481238e57d0a80542dac477b06ece3aae213cb8bd630b3e80cee1d5c1c029fc73071a023253ef0cc7d92cc32f1671f09b4e09902932171f0dd2c7d6c759960902ffb3ecddd878f7a3c3cd6f46b89296a059a0142088a1fb59973b68d52c26a18f2dcac9d682a20f4af42f2971ed3f85d5c838049b3694fe49f58ac16f05912fd83c7d3577d673f22caba5d7a02e7b47db1b0750b96620268936139153162184c5662de4cfc54e6cd363c0cafc619c65398d19133ffeff806deb5a9ff52b4e40f44fd3baac36dfdca43282dd13e46c66a69b8773b465a954423980e34f35b53e6da4a1925aeb030f7e3e122118fb259381ca7e20d74290454f423d01077bdfbd61388f40f7f8c49e76516927c345a5215a35604c289f305aabefaa6b8636cbdbcacc868f7bb1a285bfb37c44b1d3b5be99a12115541c04c0f1694ba0c1dc72fe0e7b00524183067dafc287a389bc0c77ec4ea84ecd5634117bdd5fe1f3e3160a3a82a805c8459d96cb03fdb039a62c176d92af632179c29198cec57a5cba03e8129768e46ae6bc33e70e38f1b81e0179b04ccbc4c76c8591694ba4f89ea0d616d6e3e57330d289f2a215ef9e5ea42dfb5f215f6bd4b9bf7e32f83d65c86e123d18d3042cd023b7e351250e08e7b1f420543020e351f67e0e61c28d5494e3cd870866c4ee5aa8656faddd60b54e11f079e08b701b3e6cc769fb54a5bb612d7355ed8f655da33242f52f0052f34460cbd837ea9323839ca867a8b0763e1a37bb5b292fc639c640ce56b2b6a6384c219963e5fd343f2c988a049d2f9baad6ad6327886389a64e65b60556ad3eab3705ab8d9247ea3e6ae1d47ce840753ba2d86044b94a14a68afefa25a44357b11b33e2747ce00334c6be5bf07c620298219c9bd6eee24b9d477035c674c0bb5894c75fa292cb711b453045b38d91ed5baa3dd50c694f86e9f2d90a15320c74448cca6bf5f13ccf97d6c32ab5f0e9b12d306a5eabe1dea0d3a58147946f6032c60edf2c0b0105c7dbb7866f59fa7cdca6122b64d3796428df30ce216dfc09e79a35d9b83e96c452022bca04170e04a6c0e55f8eb48d53096a1c68bbb2efac964f20c6da41d4d9a45b67a7a2a4f55698ecb7873f5a444b07c7949996b122926522e89e756453214eb55a7769d5fcfc73f6591f5271c0ddb5c873f67d8b78bc7f4072611798d88800234119ae6c919556daf40b9c237ed367eb8e4000c494d2748231a244820f751534cf84c6cb69a37aa97dd3c3e7a950af57c07797059b523ab103bbf4d540dbf81a7d268a670b194280a637522cf641a1ba30c3e46c180d7511bc4ee77138d04c1eedca7b0961480535bd3b9fd1513903d32566f586c00430af7627b6649b4051672f9a1329ec33e0e61490354443fa3c263c2cad5c3b067f4d9152c751ab96770d10a855528dd48ae7bb2aebcd71b8211b78445bec9969e4a2a8fd3775d49b31a723555a6d8ab37a2858406a25312fc90b3f9ae1ea280f81aa5c691c9a87a83a48064155958475ea0413fcfb6ae9ccb91e5a8857985dc339d4ecb559c0d233e67390bc5af757936ef686c309233eda20e9c23a072c9e20fded912a765d4fb871cd5d117e7bdae9122e974dc64a3a8e7e4d324807a5c178e2597782843dad5b92c9c09060f5652dbb937cfae1769e1ac151aad56ba230dd7e9b11800fbb6f6a93a9da16f4d70b495da129c02f46d6a2f1a8e158ac1b5ffd0e84ab186aaf6e3c09ed86a0a0f4b372ccc60b9dd9100daab376ce77c798e1e7f67b3c8d82b71013da6b0f6fbdb8900bfdaa1efb66411c91ae73f76fade6aebf5f5527ebdb8437a7b97113031379da1a2acc1da444a5b90afb4d9e00e4d888aa3bcc0c10d1aacc4f70b83ed2c34373d7f91949b9fadd50000000000000000000000000000000000000000000000000000040e161e1f232631", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 25, + "comment": "signature that takes 6 iteration(s)", + "msg": "1200000000000000000000000000000000000000000000000000000000000000", + "sig": "0bf7fd8be5be503a6856ba6ca605825fd3138df25b40bb7eee990b639f8cf5eca1216ead82bcc6187e30919729be5282e9e6f3e322c7541026bf44e650e49fe60e7e9906237dcd3e935accd536d7e972d1a4e6c87ed00c11023fbc358ab4fac4b603f9d7a6b590932d5fb53579b929ee27a80b11009848e0126679503f949653afa7b72d74951a06dc6895c4cb445a6a85cd0430680b3d6ba7a73ea96aabee4667ce03e046864ed74037a72a17875bcaa7ff0aa1d1e3a197208ae8279899d285c4a3d8485bae2ea272b74e83faf19ab0746c0537f3ded211e92b2aa32c2fc6eed6e43a9767fde49326081b937cb78ce7d36bfc0dde9e4e913e6beebce8dfe92c4ad535aa1e7e1ecfdc41968b3532cefabf505f9a5d4e899331c4a5675a0a4828e8337b09633201d5e799542ac49a4c84b47cad6310bccb204c1ed464232fd4bbb38fa507b94a130e7bfe0661c92cd6a7926f9d49787103f7104b9965e2056fe1bdd6c7592afe2fa4901e583a8b64c953dfe3fd2d05b5ae68ab47b0df8c917d45495880850dd7e498ab969af0694a76f16e668689615677038eb7fc2aaabbf05e7cab5a61946cea22567b57582cab64cfa1325c11a9e0cfbdc01f513c05a6b4c75778fc747d05c6a2b9bb09615bc091457e4041a7dd342f6146ffe4dabaf611b2c61388e3b9369047e05a898dd3ddf8e486a72e8722b83a8cc9e53cbb94340a7dc5b6b3a0f5414a5a599e6449dc6409a06f02e80607b7f07c35423eceb992d13762722ad58d600e02e73b70da2f37776cbb073cf6cebe9799762b5b6bc2e6724afe83f34911db18f18006fb10c20d65f16de6aef152e7ab607c526823576f58b8727d095213f1b2b2e791bed65f5df6c5c5b6cbc8929689880443a920ba174c9e4e4398a682ce46c79f1ba891e241d7513d703d6836745eb4fe91731bb28d9a82dd7d85284e766784a16dd515f890d13c9773eb44e0ac5f1de8c6c6711f8fb1c834f20417844b17ff164c8f60ebbfc0012645daadc41c6a646d0742eb48572553e7c2466fdf47387c823023d10b2cd716ad50ac566d5710fd5c61db295b206c7e4f68f46a1d0e2bf5472cc42754b7d4a394562edd9c17474b557e9d5e5bfa718ce34a7bb51209e98c091c0628311ca3649f03255c06211231e90bb88e0fedada0e953e9aee2543a1991d19fa26a92da6d551b132e1065303e09ee92dd94c22b307a302b1c29e2a5e12023db7cd30bb7c5998468746c9b0ba2abdd726ef7f3a341ec01b5bb8f23719f33756993108e4386f18a87c7ca52725ddedf6e6463a11730ccb5f662ae282227ecfd31f7dd818ddde58250eef093ced0d7871d67027e1911a0c7f8707baea1bf0d992c024b66717a6442d4a59db1e203c03e21bf23d9d79ccc1c26df1be54cbac39b348bcca1729f328146468448683370f2b1e9889043ff35085a9655ebb6d90b3fea11e793f0606c6e2f382129be539bfae610e9cdd3b5eb7d1ad3e0f6f264d5767c943ca2b3df2d8449014a890f673a3fe3121c4fddd9df493becf9303fcd389458d7d557c05e2620eba6ee201ca3a38ecd0cc1a66fff2e68824d58a37054a3bea6ff7be8f33cf4f83890997173970c9584669a95e7a7f844dfef4dede202cf1ad56bc2512a27254618e0934e2d75b3c562d178e44bc254b98e17d37ec4bb965b6787323e2a0a6e689c51317d4cbb55502294c2a4aabf25ab2c394df8ce0ad1d08cd090e410f2cf89b8321656abfbc29821ea9c60cac4427de61ba3d6a2f46287e392f2698a983842124eba376c3fe0ac1d146ce43b2973d7c9d42bcfc487958d6c750aebc10ac4288a878705091c96465a938b3d3592180251f7cbb9f1b8139bddb9da433b5427994a64cf8a14084e18d1590f7297727f4a4c4d3c408680fee50d30d8381a42113800471408eaae93caba708464dbeb3e5974156fdf3ff688fd630e6c568e0cb10ae0348ca2a28d7ea5d599f9296dcd6c3df61423d5ff637c115f0eedfc3e813661fca208e51191c2d3d3c5c19e363a4e25a06597a687aae3dd8332c6bc2354cfc03881ff78d1cdb8ef738e3825e63e5bcd4ae9d193bf7ba6cbe92d9355f6042da1bcedd8038088ec4cdc8606638b21a81762eb2f1ed2907becce2d2eb7ad8290e09cd26e150071c5bec78bececebf88abfdaebc6aab5397a276de259134577920761e90ed1c0333e0cce80ceff3827e5667349160210f25d0a535f9f5d4667de549d14c2332afdbc99bb1e1df7bfe7b818e2e6c71304a2fca7988a16d991a4cf5adb9a9f8e3f9ed9db643b720268b97d12e9ec9de5829ade4f977252b08e53d6eda9f29ffa073f0359f1a6789d6e1afec31bdfebc6f8f34abc7822ac3b46e25ca20906b16f0c76f076ecfea5c6a668c9111420ebe572784b4a99f93cec015617a47aa48f055b4b68a8f11372ed468355bdcb0a45484d143b8c76fe8263c5c0ae226c64c08fdd7776bfca1031bcb314684e5fbe5ea9a053a65dbb58acd15d3e78ef1306334d7b93a47e4f507d46ad967c50f714670ba15fa7e2efc6d70901afb9264eb807b520c94bf3dea3b272f3f89667e944a31dd9b0f631952368d1171d494a83db86bbfa14ac46e95e03a3d5146d91edcb15a375bf8a35bfe6fd800ee5a19c42bd42b880884a7b1c9702f5064b9104e12ebbd0451d1ff6274f55c10559a95ae45ecfd8205bde23ab6d01ad0be8c973fb07ff0080b4ceb70f22edaf7e6dc85a19758d62a070cfd4695ca9266cd73d84db21f10c32f08f7ad3378db87cb64b43f8ec979802ed7402956fd9888f4612ee270abf3195c6942ca15cef6b6f526dff8622088c42afd850ea2eec20837b27e069c2dd284abc9325176385a3d3f873aeb80732b29b81f22c3aab67eb0d2fcb8f1fea267231e9dd231edb0bf6f75371ff969ad8d5d767aef93f9f36e4f81001fadc377c418383d766359626eacdf37269e22734bd46a3256be13ce50d5f02831ef7ec78298c372fc0deb63f1c89c831ff067b16a9e29c3293bb06ffcc9f2acc41b6972e091fe5941ea22b070f9a3d2acb1eac5d7cf2e1a135af4238558eed35f52fa22bbc09b51a3a1130e5e0b1842de9a49987bbec00f8e954a9d013b64701ca68d375f7ea38158e940617beb99d25a38693e57498797948e603a1e221015442deeb50ac7370651dbd9112deb74514bcc7dd34be66f32b100dd867e206b96899d90fc56788a71a5c73f484fe51fb06b438384b135cd85f1ba917ff28cdf2468f81b3a08d9018441b2c0e4c200d14581db4338fcef9c2f11e2ba00f3c1b835d371445c87b2ed2caf57ad46d9a97a338b2292b85486cb1f6850375c8e71274c5d2b6ede23cb2df3cfc62b75eb02c7801163e0d0927b1acab6a3572dd35e797c19e79fc65170ef3f74e688a76fb562e774fa48f12491148c8528f5bd97117e7d469261d40fecf7a44d88aa40f8b9129c84e9974b26fe7f804d4537ddac5db63229daa2e32563aec060cfa72c53d553ee7b5da53cfb079acb249f7033e4c16b332c2fbae387a9f08c98a39f463df59a35b05e7ce4266dcc06e84f94c678f4e4a7f29a22f7d069157a2bdee43de405897d190930f2ec306076514f74f0833235e997597e3982f55875f2b4a242d0a11286ffed6e349f5133c596f7e530aa17b5348d60ad1296bd91cbd9d3da6bf1a53a8c05013b7ffb693e9af557a981ff4851e4c25d5f455f89973b9a73c5586f37f21f996db33f193189826da3a3435764da70956149a7d94aea5bbbab412b298cf9ad4929fe8026b697967a264c09648d2033f411d3a84edbb5ec45fe766c5bd14736afe1fb62467ab276084c73eb3c9471fc3aa2d20e892fb74f1c49d301a79e83c8e4b3eb6f10e5ea39599943e73c9769a37ee1493a04a0e3c81a63e665a3b2351ed532793d64f0e024a6a4d8970ac458be6232b86adbbf21ac04410b60551b3f38e3c5651e7073dadeb8cb55cf93eb823647c4b9d53606911465a841e9dda2061c6b276da7ab7d8ff50b978849bdfce8a2cddf45e7ef0516aeb54be432bdd0765fdb7bf675ed5c7fae4625eb479c4b1a53c201adbf8b5968c663d9e11d32f5011a0535886981b1d03650fc7de6f5b69432be1f7fd39b170d8a56db67279ca7cf9e840555bdb74dbfb26273aec2e8b71e33364192eb90babeaec3d8354e5630e11527a2285281d016ee4e0a215dc8691cd86f1f77d0307704432b66409d2e1a26f911d91feda65a3976a55cc2fdf7745bf6f92d5bb67d79437d5a6bf2d19403d716a75ad5f6f697b46276acc9113a520757481713e2d76eb2e1f173f3c92eb57eeb771b6d3d2af39a8de2bf97f077b510bd6c5d145c562a34c470e19564e1402026bc17d72d86c992630adf9151129a4e5b1fd8440219e5037aadf5d8c91b8904dfa9d5a6e31e807b1c0805b4dfb494fd286ccc59cee57d7e3ab676cd55a15cef1eb04906b19be4ec9aaa97f0d608ef6a35d6b5f0277faa403ea3c1e44961cfd355122a2e04c45f5002029089eee60c1051a3ec672bbc0f2a36eba6b584211d425df6d2a9f7288c74eebed59c3b3ab1b4da2b965314ec13a9c1df1ed751ab8899ebecc1c3fd38de0bfe751cae1f2e3a44fd45bb00dd5c66bd630446aedbfc56aa84974c32b1ea1616be17f788031131e21fcd04b8b6fd3b4f67cee6ac24de23aebf9533e50365d8676ab8fa44efb2b29466ea404ec6a0864341321f44bf745d4398abfb57a528266189831e0811c1e8d9b11528044dfa34bf2fda457c80a3bd5ef3cc6cb15d177688b17fc5d8f77aff221d8c37a3a0d0865c79ee56362ab9762c9ee81646c1a4164dff00a781676547f63682f727229804aa078a36dea790507ed7d893e44f123a99109843436272626a61ede72d406f3d1f90259b87ad86fc4d599c00c80480f08b7d904b1567ad18112bc4468577a92567445fba115a67353c602d81c94ff5b4b269fe452ec38abbd2b53569f42f61e497d348264c9cb9da8ce89be2218c0c3a5a224fc473ed1a84216a9bd3f70ca69eb35c6bbff64c7daf3a875f42e96a77b00aef6b4b0cf012ab19e01826bd12bb3d057fcb1e3b7fbe9262e9c8b74f97b859d786d40c88d81c0d027cb8cc6a98b8be1e34ead4382bbbe59ba3e234a9dc4ec506437cd106f7ce80023f290ce9855ea2e3c34d88abe037cb3978d6957240b66dbad174a6cb7b5370ceeddd7de384bd32759442c7d052a13aec785beb637445c93937e494ec22a3cac35a462e98572e9096ca2f1f3720613f4957a7747e609a4352867dc7d6e94e7828fece7f455a70a7d8ccc693707e7df562d42ee397b5eca42cb75a0071169643b2e06334aee30fe2dfadf12d0243d51dc354085db984477065eca92d2083175ca62ece267ff2d8d97a7686467d1956a3b3758e6ef05dbc679240744394a12bc27def17123f50d963b4ae0337bfe37d7968b77e32d44b8115f64a4f625dced35e027ae9731040d33f181acaa5b2c3783eccb3dc46db011640577201b907921c0e18620248d5b48703fe75722b37092cf69320818a5471442db831b454b5cd6a8f2bbe2e3dad5459eba119cdea60c4e2923041f83d9a877cfb39608abc6eb07847819009e9b29ca0485786264212397c59656e8baf02d70bc8a937a7e66bffcd4de81814227709b95e62b18e3ac188062c08bba10755b414dc27b5399ca8e972057a7b6b8f9d5e43982822cd6b47c8501f496c2614fa5bb04410449d9097592870a976e5234ea38fd643f2a76f36eb8c1ca8ed467bb0d02d8a304bcadb8ada55a13a1127e2efee426d107b277216208542d6a83eef8c550f3c67678909a35a0beba3e6d598f4e46b0f8502ca941f01446429b1d114ca78c2c7ba245c4ccf1b03f814fff19204812297eddebb44a518b7bfb118ced12dbb2d3729a4891a79e7fc022880fe076f0a6bd2ddbf8414331e6dca384751c9d28f3b79cb6ba7a6517ed3c28bcf0a673c15b9ba18481271ffe40a7f621d6586e5591a9d7ecd55a77cf996c82e446da13b12f1999dd68dbeddee73006e160ad0f05b650cc5be2931061e3eaba093b0e19f32a0ae53e48873ef5427be4a3b62cb92889fdbebc31d02059edc2758011b034932648157146e61170213d459166f35d898388af51dd3a467ac2e31e9881056c9a664c376ce1995598de3ceeca38488bfecbc6483c4316b5b073b3ba2b2ed4a141ed5f544a9871e5c211ac3f6c239ac42b6add9d54729a89908e9331489e9132f73dc9c5cd613ae6cd9599536e6ce32303f5c7d0d2436ddb54e7a163ef022780f874087b6bbf04801393da024d0dec3fb6fe4d7159de69632cf1a4be51380c4ae0fc17991ded5267805ba1e74e528304a117b385d822bb0f8e0c721ca5a7086d803318748f64eb099e7246e8fbef55d46ae62a4671d1c6365c9abfafbc0c2c6b81a3edef1b508eb9c4d9df4f5285a0bdbef4fc9697c1c3f40f477da067868bc3fd05095f666f75cbd930729bb8c4d0de000000000000000000000000000000000000000000000000070e161b1f242c33", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 26, + "comment": "signature that takes 7 iteration(s)", + "msg": "0800000000000000000000000000000000000000000000000000000000000000", + "sig": "24a329acc10d80fecbf204d66a44f020fc0a0a1bb634ea0d313fd1e54cc68bf0efaadbff5b6c16340358b9bd0e6dbccae7f86204bbf66bd846f179075dc84498a897b86760dbfded7c8a43918567ff78d6c078312c2424e870a01c1e98549ee5fb27e738841283b93c6a3b55b04d927689127700caf279c3f4fc369e649b9885f477915f21c0f612b2a720673bdd2a5853cee18eebb12f3abd6e13b6016b19fa7ad49ecd91eae29ab4d57d8aa759aa6b7fd9501eac16dd3192dd78e61864e5ba0b9c8f566def3901013f29c6904b9a31d5d4a8b18bf181e527aebe6c4a37ed2c3f218873864ea3da24f3a5b158ed78378e2ba2bb7bd8abcacfe08bbab6c4cdf88f3ba52c09685948e9798ead693ab67da48a28bad260b63326133049a43514c58a53330218ebae6369aeff4db728073052d3b907493f6cc0e1ea0c2d1e9880a58522efde4aec6a295561094f467f4ab8dcf69a24fc214bb436cd990130b3225a20843ab4ffb7db44f9e07471b34b4d78de01d242d7355ddfec76300eb59a60c346cd3c3ca0852a011b057474785b4c5558ca87474f0eaea41f14ff99fa22ef5dfec16b39a12a4d2c2a294fd0d628a668bbfa8cf07f2e019c8ef87c3a1c47676e310384b880d7996e18d7beb08fad60c41421da0cbfff6e2a2421b333d41dae60f9305381fbeb05c199fa2b7228f21281f0f652792df63bef3aef851f062a6aba25c81dd87d516f4fc00fc24f6ae3ba325e00edbcb319966d22830ed7732685e57de3879bdb22c99ede1c7e9a49e61d583494e60a13e66a7e2b007c1835402d7df40d0bb9ab48920a64c2208a04a699993ede5a38ef9cd17920505ac42bb56138c048666788cd4c34ea401bd299dc29165b68ce2527a235e031cdc391be8532ad9861e122a5513f3011eef81b1cc488b67880f278cce3f6a65a7654156e8d63412af8863fcfdf383aafd85d23e3ae4b19590e019124b1d1cc5f7f99228322dba0fba35d1c168f90f4cb56818ab453d66684ddb2c55ca6ea4859f0919e20f81549eff2b13e3c5b674058bf93b82ca9baca6de111b9cd431a428ac9628e27042dc9c57527284f6af813701c339c936959297141e50115cb15bc5bf590327e5b50b07e9731b816abace26d4cce822be17c4f6bef6588fc4d365fba242cd4fc5d1fd45644f7d8c7fce913043e6a601e2ee2044c85e178a04e660902c0e805fa7e98ee1edcec2dff021b258e7d73c43318713b58ead1fdb1861313e735974a16c051e0a16b5c07048bd0213189a36bbd6f28909a006f2c8f29d93968ebd78d020a8894f8110f4367638bcfc8556f11ee571336880e8430b7ca0f25bc3fd4099e88a3cbeaaf23126b7fc8bc4f359fbceeafa13766690bfd32eefefd63123663fd1edb9ac65ac0a7c37de678fc7657d14d965c954643fc7b99a32abac422581208c0efc112858d2fbaab8907f27f6c8ad892e67c378de3f7019feb1b6563425f43fd00e8430329e0eba7c8ff90ed486938eca754cbf4f5e8a960e5e6efc279782fa61bd15aa201de658a2f65dd4e9a1920c6044df618e8d1018fdcc4b761bac8006f8eb196dd890cbb575f979587a13251edd487f9e597075e08bab93df96217337765537b219165d18fa4c9c8a8c7661467fac417620f1d036c98c2f6f194ab90fae9ca0df38d6dabcbed0bc43276d54b5e4a6136dc7472f64b9c6f1b269cf4378af54aac794dc51cdd10c2c1f3c56c6d14da014da083d1d0f528b1795cd622c66dc05437a9a27c5b91259e3766d4bd995917e9f40dcecf9392709b0231b2c696d921dde9911b3d531fca2feb543cd1e0e592b0ce086f0826c4b1e2c47ef6eeab53fb052d25cb2205c12be9eec8887820aa34aebf291dbfb019ee9047301870cd574f78fb3315e6ff021c9bc88b134f89e3b65251dc97322870d7c1a7cfb2ea6f4f925a1533b186ffacb7cf5ded54457692eb7ffdac4049abe329b7e63d668b83892454eefd91712bdfddb86548d10945b475b888aa5e6eeb3d8877e10400a4f55ad85f2fa391b0470908545599c79dd04095ea96f251e3eb1669f4ad8b26ca94ec88dd05b9f45fb01d5bc3811aec5d1e3e2727513188a23ab2fafec1708d598f4eff33d30c4f227ca30c72660943d806b29463c4d793f684b73a8e1b5cc5e97fae27057bef12119e5ea4f26f1bc7ae538d637f30d63dc2f07cbc4e6d6f909be889fc846bcee9a8f3b0ece772fccaea18dcc4592fbe83ee94203851c2418920b4bee5026e299421fbcc5023873c81c42c9ff3a5626bcc213a233eaef74b807ee21df905dc4e4e0c18f2ef39b9daa076602edc3ea3e8f411fb459d577402bf5ed43c3173dd789b4acf2f65346699cf0ef15514be451cd92efd21ed9b2ada3d6bf8c9627422d49aed43f61fe6da7e10205a0886ff43ca0e2f1a37788c6db7a7b397fc8c16bc7cc658f7a6231f658ff7e48c18e00f5f8f8ce11ba52e0414bed10b5e7f80f256d4c85cdee8d127437c3b7d5f50f5d2922fa328435f7fb2d66b6cb3d4fae624ccb2fdf652bd95506be4cb64807d17786c7b6221c2ae6ea23464aed55ed0767f25b2e6606f21311e294970ab52b640cfff1d1d201143b834ec2d86d630c4ac9d4792fd5038975b642ebbf14b0b5443bf5504a31a46fac29476557110a17d9d4974aae3e6cb17c2c3fbd5567fb1b5ceaf896b55cbf59fecdbe768a367081c3371b212a0cb3f70963674483c21728f23dc2a093123105da37b7631a9d89c96e69a7fd6815f21244750426c3c706fb21efa0ba7d6802bdae50eda634e2a2bdfc48f6b96c0a06d41440369b10d133590c7c3c641bffc033898a16f1fa671beac76e1cfbf12399fa9bb2e49a456602c6a200c3ffa2af159cc2b9bb43b4785dbe02c0d04636630fecc10f2a7004bcc4beebf0ed47ab6a90d7c500fc7d43dd9a2a5f1111aa83811179e04be5f14085d0f5c2b83007aa1f9aa79978e784a403f7fda6da7a6dad2b3579441f9f69f51ea419a845e76930a4c3306a099196be1851f8bf4b42229d8565a1231b47476c21cb24a16628882478d1361cddad84d9983c1d06be554f0b0ba55595af4b2c3b777497cc14137bcae997946de990450300cdc40ce8b855c3c1382cac47db0d91ade07663611a3fe7c4638c7bf441f7717c923da6e4236a8ef293cbb846603a140099ac30196338af74c06b6b85ccf323dad3f3ffac176929da61d4e1cd31fbdbbf3d7040819ccce9f5e534c0475738487a96cbad05c487dc53b811912d8376004b4f8850485d15b5caa651448f228832c4920cdf3c6fc4e23776b2c4a107c0ed2fc79992004ae6fbc276d23422d97b34443a5fdf8c90e71371aa506e6428526b4274f818438cd7c42c5c5fc8bb298f93cde4b79fe368015dccb5ae4d5040f55fe970dfa054a858298e959b54d3f81478e72dfcd9ccf54094c9203efc3fcb200d4745cfaded42498fb8caab6980e959560b11effa1b2ac7f403eaa3f4eef4cc37bec3823cd126faa25b4e7ced335237a77c695be80aab4836edeb664b56a46f33ceedb18971b32b4b5f24dd3d6000faefa6c9470cb0bf9c6c17c7032a6a11d6e605efb0a949bb9671aadef1a89f9b4800388d453a8dddd7821b8c40456b511cef8497722647788bb8c3892041e886cc4c6802f9a21315245aa8515874f08f53a9d501b951de9ae9e11be5299037e6208453f93d47723bf63a67e6c750ff73a7b42b6ea7726f212c198f8396f8819c1b42724b3516c2b76b8b3f1544f76b2cd9fe04b4124ed6e7c3ca813ceeb57660c9e2f451854a94b72445284d1f136fe5834709de1f74bed82a6c1f4c586241830857f9c3ba8e5b8bd7aa95a7b99fa0c602dca4437286da90214da54c4f463809ba6be3db336ec69fd29811166111d8928dc0606d083efe38923618df56ae36878f6195aaffadfc7b4b6fe7e6a8230b8a775ae41b05035895ed6b6b9cab464fa9fbf69fd8be066c904445ca7882ebe85b1c5513199f922d1c63383c2343aa2664f6fcadfdff9ec7ce3f72a96fa5036f00f3fb7b79026b48d298cefd87f11ac21435d12089b45755db5e5c6221609f8fe3e6b8ddda408f9e8a10deeac535d2c242f3810c71a36ff40f4c698c98644cc53e303ff569b19d020971958e0427e584d6f2d427e296a3dc708d1427613a7a5828b5f266b3b2e754b90dbff94d336dde518d7f1f03a01817b917ba89ac85227c79b5c9707bb9c7001a035218188f1f498bd8400bc0938aca40c010dce01cf7ae5a25cfe81701aacb1999087aa4ef092cc8df64b08f4804ac8f9fd53b7f718be3b06593f4a50dc843dbcb63f2bfe6183594540aa07a72fe6714aceca7bc06d0d5625eb863742df5487fb039c54e1bbca398028b5ec72079f0695c6534b797a875119aeebbf858fe64520b514a7002dda5f6310ffcf349f603576e6dba2fd625b5b14b7a1f72286611cf06dabaad68b3fe0958e5abea5d3568e61c8bc5159c91e5e60216d922e3e5353fae6da90653be858512358e549ec55893d83d0c7f732ec8d66fde3ff0de23769e2e600e6fb9887c68985eae6c057a86ff6e2c1d9cd6dcf93677c0a1a7434843d3cb568b2358142ea5ae488d850f976b13272d121c82fdb2b2bb7d49683c3428bb9f9f37124c01b6c8935604eb533f2ec8d9da60133ddf8d62769b63ac53a3de9589f12c4672f4f667fdf7cd09ca1b85d64e5f6dc19adc2fd36c4c3a5cd27ffddcd0207e2bbf632d1577d293d2ac0f42144161d97f01ba787ef9b58cba049ad94334c924a689cbd5a5785507715fe8f09afd95cbf791e7cc186e5059aea1cb7b6e84464e4d6479950f957214201bf802b707f52e74e4679124ed51ee0ad7ba38dc315130e0e1147155097885955437ff3b78f3d313578e801698199a4ee3e4b1995e85c67560156f29cc882426fd77613cee4b0736188c9cde2a53a4f3a97192c4469b6b51aba31d3dd40e05484e86fe34daa36f3d07a3bf591f5e08986d7ec3bba93018655171a4c56b80d8760a7a86c9cf8fddc831d71b89d0fd0812cace67b57fe571d2cfb4d5f10f5b9e1d5d6a656768112772f43333b7c792766f60fb84fa4ccff44a5f64512925a86b05f9c692f18be3202b8913970c7e2a79919d27498668d86adb9a97b018796c000c8e72a30f6d0a65750b127465e0a2137b5af004e6fcfc7fb646e9bc3405326b2d3dc824634fca2628c67ff5c951aca3becff12996cc99e25c1ac43425886cdcdb54b057e3d10794fa04541e26969efc60359a84829cb1f5d8232149849be40fca0e815c9b356da00561f2f6cdf8c99511246e9ba97cfe81720589d8a9271ef1c7ebe2d88ec7fc6bd3854958097ced9595317036effbe0b7f6b42ffaa52364a1b3bd8d2dd9cecf57cd06ee346cb853c6bf15fdbbf60d9f0236477e3fbbdc76286ffe43fa5a8413424ce980520e7c7c8bba67beae90a12e8e7fde68ee7385e880fc4f618c5ecddd65af7c47238f90d950bb4c57099e16867f5f19d792a8c0457d5633fe0ddcbfd6d4cd17a5a1f5bed86cfae6f8464fae96e9f5ba1622fff6bf149dc3a013531727377afe3ab00a350f97e18aaee77135ee8547e0752dc8e8bdb4db6e20f4ae3c7c4c89a45576d76db613f6bdf12b38e7d0388bb4182b322c72e524988e24b021a364a8e2b5c0ee6a8bf32da349f190f6753da7840025051946a4f13ea2e13db81801a15d8ea826d6da80364e5938b49b1c10325bf7f2ade32a12139ebb43ce167aa3f518ef01bd1685e432f08a281f916b8a1319a109572a0f10167d01d3fffaf5ae38ec2dfdfdf82d7755146e03a49b65f02441593fbd9f179cb4fc900e138b2ddf629100f2a79066636729abdc1d841fc4ac891237e2383eabeeff34e95cfac766c6b20e3b8509e2896f8163b79c7da9281bc66439a24fda518301875bc6bb8fe25410cc747edb0a9d10b9aaa13b3c32d20303643cd9174aba131327299ef06caa1c6ff6a2e0237c4525b01717132834eb88de3b8e3b0c4f575391d04ebbe8e990db8be9dec2797830ab260acc6292e9ca2a8bc66ad7845ca67528b2bb3e9fdb132a696e76935227e9e64f46126f6bb8c518b81f65401c59ecafdcdd6194ba5d89d83f995ad9add29e4013571184ed4ff77e248ea30080cae7b0f4871160b7806d6a1ea795fbf9c6769dd8a891795603aa0d376400164c6072b64d4d8dec3298dd2d1a6fddc7935e758303eb443547125ff50408d55d575aa311620d6ff872ebe4ce4801818dc9873d242e33764eba13c267da562976641dc558771c41c28f04085002faedd1c516328132634e23f541594f799d1ba3f64355067a1cd5acc8fe1f03f4cbe2a5830b97a191826efddb85e5b5df377809638566d6ab6c13086a1e0f46cddb6b13a7839402756e09d5d3ce2fecb099809fe20beea5f5541370a17343c4f5aa2b1fd0b35ab092627428caef31464696f7ac2c5e72a3639536f81849ca3b2c1e6f5001a5b79818599fe1c2c586326494c95d1f10000000000000000000000000000000000090c131b2830343a", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 27, + "comment": "signature that takes 8 iteration(s)", + "msg": "0200000000000000000000000000000000000000000000000000000000000000", + "sig": "ba211fd12032864fd1d4d0401f70287f05023eabaf101be50ee8b3744b51c6b2d104de5b7c16e623e3ebbbc9ee794321b2e06cd4d88e1c67901899c40d26a26243110230692c4ae6da6813091a79beea357eccb52b8f816d7008861cefdfa534dfeb843e159f2573bf37edf8d69aa061e5543a28100b2a85d0ef55ef9af571de35d230f9e649bf2d39cfb64ed1abf6d594e3f5abbd0a304d7d6b6c8b4cbfcfbd2945d951744222b6b8d8d5620d207d711a2982f9f21dcc8e78f370edda6e938531818025b2d4e0ffa4d55c9f4ceb9c6dd9742af41e03e091ead04fb27c724715cf4e0f908581e9cc321398e1adac54cfc95bd10fab7862648fb3f11eb4145e8cc45851844cbb555850e4c00d2509fc82f2c76b3eb432584c2d0e16059e2ff70fdd782c0fd61d032bbced189a8a9271745f9abc93f82074ba57954ff4c5af76c3e9638a89f42992b1a2ae3056b4f1946457a6916f67c0764f938c40182400cb90e2df3030ad4fbaf2ee74836d0036198292ab124224c3f36dd660d8af545f75d139351d3488d884fe71cbe2424a160e267af698192cbdcd76243c7b8eb7c64a5fa13c318549c67f5592a61263fd39b574af5c61ec80b6fb82bf274e83707f2bd4fac3c7ebf95545f99e9bed988a7e5158e9128f1ffcb6b4ef4bfeddaf35076bbaba6a9cd16ba595eebefe15616b418321be1dd7dba97f74d462c99c416a26fa5be81a70cffd259ca12157768e04740aa3327b2ccf0da1f2e9905ccb22c3a93e5035c5023f4ca16b70b82437d3355d1a97cb37d309d3c75c4ab6a37b385b9c7e3fcc6f246a1f6c49cde1fc590ade422c0ae425342e2bf7ab3d24145773758bcc789326fc05eda6749d672c64249b71968ce11b32b5db783e17d330fd07770aa48157c32148163f0824f0136231482a32e0624da91b491a51efcaa3061be049b6e1b89aa31a0f8707c97ef3dd307358734f7789ebfb24cd851c0d96e0c18afd628e35ba11f38439ebc3a68918eda71741c3a5e193e713b30e8fb4f156162cdf1ce9c877ee532a67e9e2f139eafe7511de247bfcc02b357e2f0c2214db2b65cf3d3e7b539cf9d752d2bb97f48fb2219212aabbfe7c4416fdc30597ea6654e53bbf753638aa03f219f1aceea3df7cc656340af23541722344800b89083b2a46b2c3dfc97525b2deffd981451d36d93902a009b8492115bb958bc02cb85fe6838d8cc155cc9ab2f4ec01f970b4eeeb5afe6ba371e8dd5229050ae9c0ebe4fd3b140b08fd1badb684bb4d7811f271d61493a7a34719a9e489f92d1ce4009e0bdfb844150bc94edae747c19c6d3a61530027991eff67730369641b2d3da960ab5380f71970d04fe5e10f556207bbdd18f4e571bbb67621d16d63999c8c16c6f70f0e2953219d59f3d9a113d0bf31fb258cdeece79c1198c1b64720eb00425fc86880895c667ff58ad3fc7939ba6c2eeef4e198993161fa0f9a5b3d0d90010af2cc26370ee3aee09fe9c51ed228a8ae31825895f426d958ebdb723721ea7f9d1fb92a79f08fda38a671ff2c91ba8f95789ec9b125efec355a1bce91eb68ecb202b05e5cd4b704a1ecb2363af33015a44c9ffe45dfeb51b1e41cca1e2a35fb65233436656a816b9f00ec121e61571b7794fa84fbfccb7dbc2940eb355bdc7827313544c069304dcc528fd65d25b6a39cb89d793b123585292ebe584f1b2e125539521520705efe50797a59e054e71efdac098938ad147a07be847653de3553a47beb23a7eb99270ae478ae5c439b468e78c954419489edc4fcd81d81bf55af23cae64163c73cae8024a0c8d26d9676fe9b42886085e14eb79de37d237192063516f8c3812ceed889199c9d78d30f0f359bed9d35d5936f5e2f9aa80a91b96c5bfc14664c4da0b0f0e6123e36a4d7242cffe41d40b7fd784c8cffb3f2b56c8f557e348a1b7792e3be570f44efa81b1cd98e85460475cbf0bb8afd8db51c9ed6fc66f68efdfa13119611a36c978ea2997ac1463bf1eeb266e800f4bb37fefbf682f916b1c0c8dc6c60353d0d7e6fa0630804cdfa76dabaae880a43232c74f97462f30003f46144606bcdc16f49f76a5120cdcd484e76f4d466f7afaea7983b347d79b11d2ba1ae68064b17ceb64f96a271ba56f3dfef6c83c1d4f6925cc64b327d8a7721c9cd4a72ca57bd95f2e9b8d4087e9e23dfae08bbb068e4bd1d4c320a55df67886237308eefbce291e5edd6a59aa30a72c7f1ebcd9ab514140d7b2ea30a9ae91991c140c321fdd528780a617c6c94970cebc9cf5e44fb4b4ec22e419092d563b8c4d7fd87155c8d070be50dc2b3ca762179c9d94fd09909c5118777dec3676d59dc524566c930b1d0ac97f8fda5f676597ccbc33fd856e2e691eff51bbbc4e151a03577e1a33b44b4c775739ff638150e78c71d5c71306a080bf42e3b315ada345767fa87d7444cefa9c42324c997a5e6777b51a735040adc235c93ada3857c5d5af869c001a3ff6f6fc234c1d355f32566c899a29f7b2b381101590bbafcb7cbd8b3577615d881123ed902777a807f651991861b7ac44e55d47caa9dc6aa9e7c5a65850ee8975d662d9ec471f6811d380db72db554cdb5608f428155741a987f2979a83885983de008ec5600768e84e5d23fe27d4aed15374e30d393ce915ac78752e3e4156f2a8203f9a8c35b3b0a1d028e11cd315c21d4070fb00aa95330f68d9b3a78268d2ad66d623a74c338a277145571e987977955440fa176b306f6fa93cfd4d16e0c5aec7a30be7ec83c5b8c1bf234b0be088f4ac77ec5fafbe2c753fc3ecc672487b9df2481afbe3b8acfb07482690f6fd30cf3d493f759e91d81a8b10ef3e1e4fbfc8b76ea49339a977d4668b9f220ef90f40b0708a7e1dcc0548130f1e6f7b4b2bba3a6a5bed84f129e0c1fdbe41f1f590fbca4b618f2f824b0d505afe593976532a6f1076c697d8fa3aa4a971e7fdfb8eb6b9860c3f40ebcd0e4344919157534f1e253924639fa5bead5c428462960d1eb4ee5cf812b99023a2b4f41055e4400330a71400ab2edf6badf67d21c8a7a3850ac945fee27a656e18d0e8dcfb64c9b2ae1b5c628de991e2431606c8b1ee518733098f1e635d47a8fde131f44190d574561cc49da5c44773480a922dff23d6858f201ec085c886a72bb85cc9a0856a118b637cf81957e72c90cedf0ea9003517e20d8b87d947ca94e4078a5fd162b51ab92bb5db431c61a8fd27889b62ec4f535af61d80f992507f63c66d2237cb5231c4b31f4733c61a106b81953f7f7f08eccdb2414d6ecbdb10069f6ee282ea02a004b02a524ebd780e66131018a7d226cb776b99affd8ce9890e05ac6af20edc6c20fc3efc5d8b7fadb5c01e6f9e8a7f8b86809212c1b0a2316a3eb3718e7828c0323ba31853a5acfba867cb1f35100d51b294938dacccc7ba60b456daf2ea6646afe2374c2e0a37ba48521e4c1b4026b9a07d8809df8f5e1b260081c422844097ca3d3ac89ce75c9ff9cd7c81558e08259f63c20f5fab5fb42bd41d39252fa49b1db148b7b9b2ea1996d12bd2da19d469991ffb4debf86120c0b62e55517b0b8faa69d73d1eee88adaa7d7ee5b1537cfc9a7a6df4682c7a3135beda5597aa23d8286f3a132d996b8b1ca8660e972aaf0da7d26b8bf6a9180901636e2082175a6a37d5500d2725d48754232c72537d0e8aa876aee157edb7cbf5ba540bbeef4f4d86aaf8f93fcd4d4ab9db728475f0d5043786706d8caa9b4ca6052f9f237d301d672f36e50dc61bc089ec67a4c4774f0d91c6adbcb28ed3042736eed2aef3aadde8bb0589a8cfd4f956271b485a1aba0e269270b0ad0fe5bfff3faf11cb43c9476f509a53f1ae726cd3f0741908fe1a27eade489ed2b5e6ec9af27cc9d3205b854b07fb55b8e22febbd8b8665ab3b5c35e349af35107f4d317aa8b7fb1b2479c54037dba20b60e0ccfd5e493949b7c295dca5a78a4f5460b1ac955257d229b3403fc1cf1144331babf1290d0298cd2e00187c8c768dc540e5dc46168717fb66cf29ef190437a27130e7f8056a27b422bf41eebbbf5a345083722be5068de18f7b1a83c272e47d46144381ffe04f1e34187fd10e980149881d1d09f655dacd3c0b812962f3535c7d8fbdc897428c184220ceec2c56c10bdf2c1c86a2471b6d37d779d6188d568f214fc0e676e6dec45aea4944db4035ffdc1ea4479aabbd754c71e66c578c6222ef5869f706b07a020a6c1de359238b3be378cbaabe035028197281ff6ef75fa1d596a6cd2dacebefb4396ef813ff383c211d3cbcc59aed47b5ccac83effabd6cefbe47208bfa6041d6a91170cc838d8275053ca8418e905b2ce04779219828eaaf7bcc1afa5e76a6246b461c4f4962cc4930c1e079eac4671764658d5f68f1fa0984607f0c6b3f5fd4a3876bc70132d65ebd925ad08a82ad653a8f6b7edac8d0674363f18eda61a291927bcb4b611183c5949a0ba58559907200a616e00de6d46bec05adc4122dd67afeceb3fc689f9d911a2479a1afe888336ba5960c3fddc4375e7c59a3d1d52b095c85a74b7c1a0f5642020849f9382f52aa4075e11575255225ac8207aafa5515e12de173004db5a8425f4fa51a1f8134754708ca9eee191855ac4d8e980e14bd54c1e81d8057663774d996fe12a294c914c63db7742a245f74fdab86d998aaeefb17b1b38bc96110278ac82323667f233cef1ae92fe2347b5c13381e606168785cc67d7022b02132c98b69531a51540ff26c400a04eb572ccef79d6127f995ceb93a8cd41e5fd7d3641a606a3703d64cf8c19cdc7a5eb1b3872747ad56781580a82bc86757ece1496a9a3ac247cc6188cc5e60eccbc130f264967ac60d21c62664e85d5cbc91ba30452fd3de24e595c91add8c92c89a7ff84e2fcc86852b2db17de7cd9bac7872cb1349e06a36cd36390b9b3be7b265991b663b55fd94c7bd8908c92b5ec6038fe8f0d7ca389cbd809074d7c01682f9c06c2a9bb6807e88866eff48cbf7263800118444002a5236c9266d0018a8480335378e9b4313b4f7c85813b4c51b997818592c36b6feaa628b7011351f870854b6454c2a42a66c1c93e085a1ad4b30d75b78de7d9949675684de5b03f57ce66493625bbd17a7a10a66480c2a3764b26d8721d8d4afa73c871f30f727555dbd42549062390fc189c129c1a04ffd801fe6e8b3c06670c7335f19c8b4a710dcb5547e0ce79719099c4e606a9944d6f409a8a6efbc378d1b81237031d1f04ebe506f02d62b71a74be657e2698873c6f4b476474fd47ee896bc26e17602ccc089c387394f5a80dd146420dbde5fe824b3afe072b682925a3e527c24caaf05b2f4432a589b76673fb64beb4924ac7c8afa52699ff255eb9cecb19ac00e5da8e4338ff7b974ec65c8fceda1a6172ef346f5493a908115825ba2cf44907318df819600b93cecffc0e7692303c201650627415c9c6636c01b20cbb747d324201aa982ae9ba6fcbb9eaeb951463bb12e0eb4f58cb7561500b4eacc0b58e757881ac72b309fa7222e1cae73b57698bacec165aa0d9bb3c660afcd7f0387171057e3d1590b03e8216e78746629a1bf129556846f4eb3144353c9cb716fbfb771e1086df71042b16ca84279e7ec60969cf2e1a5c95c963d8281f4b223f5f0537e237f999cc25d047eea80d504908d830346cecf1013e44e0d2c88887344f7e4f4b05ef54f19e6e72bf2bf51161fb7ab619aa977dca3c38d587365b7147af22167426840811081e2da0dc2d9f783f908a56e6487750ec8f69efa5097e0730af555722b83eb1f75ea49d1148d8fe5c893cb1315023dcb82deafe752f95395e24b61e811ff4b57304fedc27abdaeb880601a407fc27075c7938e6e0394bfd4faf7a3a969a29fded9c97c767381eb3184ebfb89178e695648bba10759bc6ff079b3b107aa4c07f400bbfafc24611ac4081a450cb8495adfd2068ee05bff5a6d3b50f03c14dfc82b10e6ef11a7d08640dfe5cc486c9de3c66209fd086a41aa5691b9d9428538bb0cde13eb57538e4c031a7a698eef356e3f4eb99526d6aa8f6fcdbb759b7b78df61316ba3ef4d11a70fdceefa9b209dc580628d97b5773bc0423b648e930d7d7df197f4b89c56be11707b2450c893488de8f50c1dd9cd7b9cd9de9f4b84955fca56b465aaac908967fb2eeec38a369a03ab69d30e48502e091ecda8970dbcd5715c18f006a8cad5c451fc979ef8038013baafee4054da5fe26d53faf00a91a56113e91fb7023ca216ec7897e9cf0319e4212af95f6a16c754e97f382eb66898e3113e4484af50389f2b6a8192a77e3cff27d0ef7e024ee6f7f334a3e86619e5f00d710f5007d0057d75cd8ac0d148590943604f58376eaf075c0ae3f25c205d5133829064c4a0832bcf87f74d92ebae55293ecb8f8eeeb7ada5579aae6e7091629708f96c6ebf3030a1822386a6b9db9d32e49d8ec1f69c9cacccfff26323f808ba9ceff43606477e2152a2d46888a90bbbf000000000000000000000000000000000000050e181c232b3039", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 28, + "comment": "signature that takes 9 iteration(s)", + "msg": "2500000000000000000000000000000000000000000000000000000000000000", + "sig": "0c3732db2471777d0b23a111159b597d02557bb55b608f4ad3a4663431d21dc2164ea9a45919475fec64dc53ddee3e4c66b7aaaa8ab39bc70566972baab53e72ba3a8c792ed448183f3c8023b04c21a97fdedc33d036b8ac192109114f4cc5a64299181883cce966389c771ed86c678ded19197e02106e427588dd1795aeb112137d0ec91024ab795b32df6c723722cffcc0d2b86ec5adb05e793b57f791b71901a12ff7804149cc02523999d5cd87bfa9978b98fd7140db3ba3353e91a7792a4e9eb266f66fba057ef0a64b34630b46aae7d16fbdd9d3a29b803cdfb7880d0b738802418414f6affbb2a22d30d46602f33034fdcab1e0b5c94f88b22f4e97cb778edd36e52a134a57279f95fd39a2e992ebc817530c2b7dde037031fd51757fbb47ecfd9cb3e38daf57761a9b45df548f2eb69ee04306cf759d4ae6743f81d1e5ef69e632fd9580a7deb593662add5402539f13ff11880867d9724b641e03b063ddfe9036845cf3965d8c67c0d7ca2b786f777c6816d0f74dc2c8ba782257bb7a74f61fde20fedb1dbdc8d6a5c97cac204e5d67348915f4cf5c84f127752dca3765171791c040d7c6fdc36618a2c8333b80b2d11f05b39b6c586c0699b0978ae3d081df3ff517ed590dc473fbcf31c1d884f704b62f34265718db8523d689e5a092e38f5b3ed377b56522d4907c065b7e4c14e49abd88de062d1b499c90e0bc9cf972fbc718b1911c7a6619ee44ec4544090edd3b4a25ec9aeb4108bf2486a233af3dc0753608f09cd1294513c5139713145ae3cd4e4d7219c917a713adea64a4ed6304ceefb4fd58d99e2ea2ead822cba41739f2251ca60b42ccc8411f447e90590b3cd33dc803f97347acad63851f26140289584634137e5e15dbb89fe7f2be3f3e3a7c23beab419ee3a2f0c91aaebd88c8feaf96afa1754ea2efc529a773511105e53cffa197598545cc64325a70ac76065624a4d640a034e97f4c5c4da854a401fb72d9897dc74949fc94596b45b9cb54a64ad4625e21a42a30cb6dbe0ff2a826e367fc8e1a24db105ba985b4e2c138b0961baef51ad5cce4fa91fcb2aa8bf1471687b3921756a628d4e817a1a2a11c62b3f29bbc026e5c324fa0f090088bade3dd491c604e7b53cb1bcfe4633ebcfb4880d9e6d4182b2c97bce44fe7fd5b280b465e9f00b29b133239d1c30f0ebf59187ece173b9cdfecbb65e776aee499ac289e5b70385faeab9ff868d777c76b0e7c112d7345581d3391ee47d5c7193d76fd5d8208d4bdf6c02f1eb97de93decd810eaa3be3665a70c30dc755874f58b2962f26e8fa4e15d4042341b3a64f222c971832f0e98c194de79b384ad97e07171b814e9e6ec35a3ad3daba4983cc3562d557f9ac5da3ed92c3fd598971b71231f605d969e7b4e3ffd79b99236d5b8720bf446cb0b2c419041c8a0e0f1513aefec2ba5f25dc7ea1d2b2822afc5c3bd20f01a5c43d8c792b59e8fd0b0b52f8b25c0ee99a6684d8b40c0e81e4dda79ca157a24217eef85ac79a1917f9bb789160297da0d2046141ef61843479a447857758b004f42f590628a7a45d8b09461fb7a996fd2000c3b2e774934d595bf8a710012bbeac9fc4f7b66f607ce8de46430ad0dd5265b0e0f7df05d0a65c413f42ded9dffc04d1a02f284b3e6731695b54476aad0f3b7e587649187e767f20f10d90f7db5dae6302b69d540527f01a5983411c093f76fe1b8cd6150111c5130e00ce3b534e29420c06d29c0a13db9044d773f1924f7dd5fb624a6452b78b45263facb74d63113da47ff6032ee154fd9f1c097f85a56567bda5c3c717a8621a79deaedd18603e0884363cc6ac98dde9bb058f9f68925e6596d71d7536dd77a3602fe20a43dc2fdd4772583ac2057c6be349b3abdf49e276e508677788e9092eed47e886751b6bbba794808b89078c54f979395ce89c3dcbc7cea27241ce43e8b40a9aa12b4778e6b8bdf2766e1de5130805dadfd78f561d9eefa0ad0b943299b58e405d5d4a8b558bd2986ad36d6098456b90611216454775f65d9854829bf299ede7a7d7dab89e47718c50d7192e22241fdc34dbd79112ecce9086bc423d1436c97a75ba63f67e6474b607d35b78345a068dc4121be2b581f12228a64bbbf908f5838abdb690f00b5ee08590490f3b1835b51e16a339de246c9ac3088fdc7b2089f8a4a35f544c62f1341b83cd3f16d2e576b5abdc86052cf050c18c4b7421474a262a081944160f3637f0840ccb2034c0745bc722f65aefde675e777bde3ef15eb8a4e1a5befa79e0d34c3cbbb8649475039c1ec8b35fb90f830e0d0a9b3a5a23abaaecd7d9314bd70932a105fa85bcc8c241eceb057f03d429cf2a5e10cbb2db63560988cb947b51c0452baa1ede35dbbf4726332ca33cbf5e01125556c5a3b8dec49c8e1b6ffe6bb040dc03c78885724da446395acbcde4cd9754b4ae2f61474ed5785e95af9fdbd3b3c24f9e059ed0dfd75566cfc43686230cc576e837d2ce2002ac8ebd0185b0d7273f4019cba43cc704a7683e18db1f118bcceff8412ac05f14883542978f0b553d4310a092589d68e020881bd799748e63902667c3f348ba7fa37120ecd2eabba485c6c27d8f2d7362a8769d893779fb276da6145a5b16f8b6f6d55562107e40820e4d7e172286cccf7d3ff866a6dc4921eb6e965a02b8fc3fc0d41e3b5e104f6f02416c9bc09cd8d475835ac4ad97fd0f09b3e33c77b79fd86df0efc1757a418226b6d468611468e4fec98936f18b5f675e059af4d36dd3224b375273198dd97bac686f3dcd9718775c6488b0525bb1e1acf6bb12fcc39d9ef4d62b6488c3ab7ed1188dc75b2ff31acd84edb3e0ddefb4e00159463733484ed59edd65869dc045cbb81d08dec168c5dee590cb37aba3ff1306e32e3c84116009ef2243b02241267c8b2ea5e0dc9ecf6b1e33dbe1f11356d861bb61dbe5c76991878e87939f215bbdcb29753a8f00ea6951c5f97e37ccc08eab03f4fafb1bc1c2c9e829268452cea44d0f2d71ba64f6fb45236056708be1abc3d1b8556f108bc7f9ecc4fddb68949b8b976734904c13f9af4b347c1e6da48380385bb5a6289aa8d38e2fec3349cc84009b260355505672a818fdb20e1981da1acf7716e87eb2c79e597452243eb398c23bf7aac3573590e8e240d98d6aed18929a5eecc7f7e64f951dbdcd4cd0eecf2ddb6abca4a11fa1950c3d0884d9abcf729fb28040adc26b8a4b273c649982c53134ddad63b1b18bc4d7598e596b6e1b2bfce5539168f15cab41917292c00436504f39963713d53e60bab8df150c134a6aa90df8742b69b0a4fb487d39469223a572876c43d543a72d5817adfb9bd6f866275c1bf0f825391ddf0af0cd87eef2e2ed227d6b06f1c606495566e0584b5a3592086097f74d4ce7356d3d990432cea9d1847441b2a19be75073380f5205da53af55a1787a4ef0607837b28b082cc5d2b6c9b0fd8e719230656f495badb4db4d8c4fb02ea77acdb1051773e9086d659e680ee4d2e463ceb1fdd5fd8e6c290e446d5bb89a87f16c38a3f1e684a38c7d6393437018fcb76e1f451e2931aea60d9a0cbd70cfdb20621ae78d96a39bd9eb77b850e8855b954b09d720b27446b9507edd2b76e50d61a736b813437ced414a2da6b96e5b8ecb0ff15325b26995925971ed566776227c08ff9bcfe79d7a54705c21b6dea6df03c91e3a9ad1dc109a37e2371d0af1188e9b1556c8300710e022916e2648405236ce150ea81d5b6be123dde3671eef035eace5aff2cb7594deccd4ddbf9201389126f0d9bff517e56d630dd144024bbb70c20a511c5b1d76cdc6ffa350e917094d5d72e3b945c30c9c937920c6acfb6777564bb0819d65a631493aa2b4b3099f0e53aadfc0e85751674d6bd8416cb542d665609744dd38a920ac4dda6b29150985a9f95c9f3a061aa2bb18ab8aa1f34e15c99b3260c282a2a5fafd1bc52c4576f388ef5be35f4ba56e89b069a7ab4d2acd36f3fe68e868621cbdb9ffce7210205164a3c6377aba3bde311670a348d6fbb11d156f2c6f8ff0a591cf345028eac623f52ccb1248f03bdf4ad0b02fffd67672f25538205efb7f0e1c9d0ba7c77070819105d392a98b2d19e3701287201b370a9f7aa11a239a3b0d01df57eb3f8156e129719adeedc3da5397283c990f507e1b58dfce524df333784e375aa8d82e3a7628e07c3cbad39ae787ad137fc2fd7d52a5ac69d3af62e2005f70e3b94455cd7af7ebf7701f49257e3246e4b2b7f17858f4795960c967e354c0b98112144ce3cd8886d83a86c14b7df75dfb86cf351c96bcfa5457d6144b7a6e89fe91a23b6b662613ab71d7258723b38bc212b55ce6a306eb6c9c5a0f5301fb177db53739eb2ff25faaa01bc2c5cdfc8e9f226002f9f1faf383db66b207b97aeaf8d856b96d0164a14bea14f12bf95eb8a0783c869a40a325f57b116f6dcd5ee23f51cb2a8a18f16de773bb88e3ab39b69e8be09f52c703332df20325aabb66870190909b97570b014a23f3ff64c11965ecea7bb83fbb1d7dfdfb6cc593d9519be03246e9ee76333f81ee4e3e9a4a27957bea6691507ccd89b1f19a3bc3cc7a42216bb327576f041dff549722cf3af93185ae38111e0229a9f301389e77a254951eb6bf3558d811139d4f3f71fe03bd3eddef24c52b641e1d65010475210ee257e38044db7678c3f7d9a7f9cdeae56cdc5ac82c455ee16ff513dcc5873bb7722f237717ea3d9950a6bad018b556adf8324a71ee9a0348ebb05d89dfd09a24ec29328dd522b3c4493edb00390cb093e9d14de7ea715f4423703828394a4cd7c2402df79189473fea4491eed9b78d108174481d68751738599dfeed81bd21fcb534652d9b789e7faa5bb96bf7928e68c8a441b9a0a953a4f280bfb864dbe8fb498846888fdc834208f08585445fb7c717b880460ac6d71eb9604803da3e029ed1896049024a28ead09c52b6c5e310809563394fe22071a0c572a05968914c926a35abe3751392932fb8ec2892f2d826e48fbadf8a90c32e2e447250578e2b40fea06b7cecfcdeb09a1cc66f626fcb5497f82a74a5510776ec1c47840d3eb81993046907135b01195df914a95be6f24d3a4485799a231c010ea4c00f43abb80a505954e6a15128d9aefa087a1a275f375d520c0d726df53fc251f199a75654309979bbd82205e1c7b5d41540b45a04fce1b8ddaa20f34305fe1ea4db90db267b7839841f97ed8d0514b102e6d3208f6c5a4f8abafe065961f6879275c9091106f558dc90276fb575a4a9584a9973971d97afb6773d44dc4bfdf72322feb33c9eab3bdb80a8891948cdab6bc30d2986733c503ebe320a383113d2003a609a7d7e2c2d86bfd740d6c40b9a645539bfc2ee9abcf4ce9c530b5a806e731cc0d38c16ec19e433cbd38bdf199a976c3a692148e5364837fa3419cb3be0c6206ebc96f9628b9f48fea8ded891f5dc2509e9c9541c14a8ae0002f34dae95316f8b827290f36e17e5153fbebbd74c246a3afa2ac396ffa9fe267a827fdb5dc6ffd10ef5cc5f9be41f5afc361c823ea66b3e8edacfab7fdb4a5f58a93189e87e64192b0751c1c026d0af27c27c0067c19159c4d04f0257170c9e6b4cc62c3f4d570e5dd763a172e611186e1011d0154a9866e65f4b5e4f20042cfd65810ae2b76461b814660f55d78acac87649c9ff365b57210f373988d34380dff0d56cadaa912a21e4084d7dbd8ec85a8ee9982075de83372834677dbd262d079bf9fee7efe7e0bef7cde4d601f52aedd98f8ad71f0a5b94965d4b0663825be9647810abdfde8a5d198411beaa4f084de6ef78b8b829275523ba3523757ff6b1674fdc2fa653dfc067263b8eaf6b1ee07d88034ba2fc0f0563b0ea5e1e84048c39b585982bd756d90b08308567bb79ab20e173f3c882f076fc23e418b04baa4dbd8ff62a60e02969390ca457f6c65e43f19260c5dce07576956fb52f2a377b5f30c5a4c32776f6c32cc3a844b5141b6a5c3cc7c633861640ce39572937c23ed86c5e4742e9b697285c6f564ed95d4322f23c53b62bf13d615cfaa7ad9ea243b939c21ea05732b508c6f93d32cab463269e2a2ce91663ae93df14f1f3c0fb849bfe28a2bdac6cc26111dbc5526e2ceff794a93ec73d23c1a1f981090be31c0c5dc9d67b7cdda3ae4ebee97d806be53acb0ba3641840ec88ce4d3e6bff8bf206e80c221d0e9be876d022d5620c1459fb5022f63b523cb25cdd97b1873595a1cd65ddce3eb807b160ef90d904b93c3a4becc45c8c74573368a063f76a64a306ed803630b2719cada1e6e80480b451cf354f588b7a0a4b739914f287d6698ed6355d5ef104c3d9f84531679464dd3e5c41330039d8f1190c68fce2d14c505838908578de905341218fb6300e07c1a3499591a181b4f818597d210232b404f53769198f3fa001d24575c6342545f7d909ac5dbe82a6b7cc1fc3696a8d178b1c911204f5a5d63798f9ab3beed00000000000000000000000000000000000007121821262a2d39", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 29, + "comment": "signature that takes 10 iteration(s)", + "msg": "8900000000000000000000000000000000000000000000000000000000000000", + "sig": "1828fc2907e551bc3c6582c1acd994576e3109d81be59f8037d5d9e8dd2dc950d2b8ce7fa02983b024a75149338c8ed23e698895dfd451e946b7bb54c6a342a585099d255243ff4383712f1c7d926b12e64d6746f753b19ba64bf9fa9392eb8cc893110df903b9f5ec60a2dbada8eb2f1b53db6ab0735cae06e9cc0afd89904fdff66d6a2fd7468a058de8bf05a1468457944590118a8812a9a2cfce79f3c770ecc878eee44302de8dc0550fe32f3ed7603920a661d83141fc221dd0116f83c3bd53646f9380f12cc5c3a8a070a0577f4bdeabc2f692ac68bb10c936b11b2d4766696945bec68b721859513efd275078c51df6b8bd8e56bce8e574b9112972283e30202e98b7266f02b01d92cf9dfc1f59ab22683bcc46721669140018f41aed4753bbc545a6a4e91b656ca58db266ded78151c0a8d686e4489dc869e7c0cd71eaa30af096e4da56f33287b7057639497d69a096bef15e72e651dae77ffbffe10083d9fd9be93786506ba9408f3f911d5649c005969ba4e2539d6cc2ba9b9a712193e5f55f6d3a94c997e6f8c4efddbd72d6eedc12e4485ea16acd3de4f78a2a18877a7f3b12110ea30a880583e0f84c7febb606f627b250fbac130057b327e984e6def4a88e0815f095cb6b1c488fd592753119ba431ef0c434d1bfd7998ab490e7eb5cb78b97ffd19c5c79c2257f275a9f11db817a5b7266aaca6aa4ee7e6fe3e3eafa53ad9102d5d0f0858d3be4defa3af58135a785f521f77652406ec00d393507458c29ecc7a9e476c67f79bf57b4c1a439024462ab9a402970e95a4737a9b742fc0aeed671e6a097f3eb001cd443669fd84b75b9b9117b1766bf680e5ae99940de26ba0ce1ba3396321dcc160c2478ec8e95bfb6c1b6ceec950027b11f8baa80a9108f165bb4f97c4ae4a03caff0fdd00127576990e1c6d40bc1641233f73a26f0d50cdc8006797bc2911795c2c193aa9c6fe084ea9e755d653ae79446e13e798944e8df71addf8984e1ac4cc64c9b53b752812f7d866d52199a847887324d60f4ee4c98b9fe9c217683b3698e0d1820b2b1bd9a5773c57a2462ff468235ebb2a2ae33b0b6eaf50e44b87004d0f422ec0c447cf5929730ff3bb271b61a28b8e38df72202e153b81c9322dd1cd00be80dad0b04e5d0edeb9f6c1b2f25b3b5c343bb744badbf7fe72ef634fd75ac7fc6d340b77dc06d6201aedb8572b8b7af5645eeb6a7b794057bb79ab62c63fcf2f376edf6cf5ad6d879600bffe554fcc270b6c6edd957036a2206d80f5085a9e4b028ac53f588f43f812bca3c6ae48993229b810d2210c6c490d0d2ceeb024c2e98ab8b70a8bed9e5468af527035e45329af91c4d53cd78d7e35e8df53326749ed5e553df6d65ef2f2d127794c37feccbf6e88344989de881ff6ec63604a8fe3354f904c3a79cfdaa8e35ad7badab1a06b42273893de675d0778eab3d9d39e2fcd22590ed8e3c09a133450d34e7b3094f8820b5a152e634a744e31ca615950c37b308a0b4a243eabf907812c795d3f7f4dd0ecb29696384831f66fe69cbd125660de29e02529124de77562243d6a4a13c00e8c888d3a958dccc214029aa731543181a634d83df76d1e035599432caf0aede0c9240d1a8d2a260c7ded5232fe27da707a20e692deab9818c11b1b2e80e4de955a9ae5a6202b765e1600150e72064c5ba863acda491bf3a205eca1159b59117dd52970b981cf5f92b09556448f5e6fb96195f707e5c750e7c00d220987462a256307eb7d27f21bcfadb129f9b449035a867aac316717ab9129c2a803b9a9345928cd0a5c50ec67a5027f5fe3fbd039e3c02acfa0f6a643d54b0a97ea538683dcd44aae01402ab49d335c166788d9645d6feebcdb1e403abe0cbac79057c36ef7cfb355bbddc969511d13cdc1e5a397e121557cc83335ce076e21171b00990d00b29169a13f9c88bcc23323b1c2ace54d578c1203d59b6bb33230fa7e7a182e6009f7fcb89234dc9c38698c49d5b111b0d4ff418525fd746a1d25cdcca728ea372481d4b5b13e2510df24bc77edd35c5c040bab23e166ffdc80f20a567f563c2672c6e75fb00da410c78b344cc2f24a67621c33716aa325aead190ed5745b40aa4e02e778a253755a9acf003b309aa3e9e237eabe25b9c2aedf1f284cff57de7e405cb59137a3aaeb874481af94f3321c8a16d40edf6705b604ca16446f2d98a385dc79d5e5a709e0e60ca0351d6e09bef237b9eba48cbd26d669bbfc32bc58b3d8a3f26c3b24cd9a1b4a6509644341a25ca40cefcc1433b9d698cb0083a83acd158d1e7237b145bc9c742834eca5c29073868723165215ef8b26ade9b2675a5318df994d45358c8299d2aa45babc837c5a4d529e02b85c03dde5b928af10c8b1b2275a2a7b9f75df5d1516093716fd4ec7b4f5c0b5c334714286816c3d46b5f40b97d94cda5d9cc6803b35925efa255c3d542209dd5a71a20c445f28c78e35db9760de36a0320718fa00184f4d0bc8869257f2ddd71fb59c54034e22585dd193a025085ecaa2d3694c878a483c85e0744fec24d0aeba59df00f15558a71089b6924e61796f550c30c066ea5ee442dfae1300da830c834b0253eb770e3892a6b6d8ec456f964ba117fe400a3a22c39daa32f58f4a6bdfee5547e9a99da3d1a7ac0647591932a579b267188c5322de44463cd8637ea087ba28410c560cb3fb0e6ae10edf275ecb911120e53325ce01e26a5cc824ed4e26aca55858db04a9fc077e0cf749a4eb38e99e2bd4f1deb9e24924ea79b80f832f7c3b553e4bfc7e37c3939f896f17edb639cda775711004dbf6f7f1f78d5ed630614cf17b0844ddca39af96385c6206281a05e74743fb2edc4bb2a47835762cd28dd976c82f265a12dc1b15c45c6b0c8c8343f630c8eb320232abc541c83d5df633405ffb6a724ede39501e67821f7f9d2ee3da81290e86b280fb6269b291147dc6140c9028588507c03355bc03112e0601e3369df1d964ecddfdd4b4fc15336af296dbda30537a2c8efdfebda36e98f7a8aa053996fc250e3c69c4f911cb937b17b9aae302ea134830661d2de000d7e76b5b09b41eb415a5a5a7513a6eb7c1012e4a8727aa2d6913da847e675a2d09ad40eb88ae2e15fdef9915a5bace1d11979661078ff9f161fb7d0321b59a3777107b1e7d5afa5a5686f1bed0a535310094c3017aaf1e485e379502b470c28ece0caa0b145bf927972636b49a5658f10e104a08c10d8b83bf783ebc0c6ae97f207cadbc11a50db850dfe512005ba92bed656d13eb34b7e0047e1ebab3f45623d1876a60bc62be95e0a6ad23629901411b31adac5e92a9c0f6200f6c774a7b31f3c3049e0128369177cd95d8320e18d532ee6ccc9ae70c5ca7c3c405d75de035c066130943ea1623d59a2bec86c38bd898dd812338afd20bb48d6c6923337c7a3af30025c0d13cc77e2b7775c1ab851fd4908bf930c722b6dadeb2de06344f6f829ac1d1ae47db0356459ae0212031b08bbe3d11689a63ead4994545c3a6d440708732fe2b3859195eac54ac32fd6989f1ccd013f2cbce0c9a59dcc607d7da9c33e5a9c133d5312860953184433d56aa0548b519131e65987e97ffcf4329663922da38405223505b7d0c78e32acbc3f3d792fe43edd76b65350a78bab363bc9d7cda8d9ead492058c7a786aaa0fb34d97bad699fcebc01c475bfd6e36659ee154d59d697b69020249b8da2d4e0badc40aa3baa95fb106247f18ff78cfb37f414261eb6247461cd9b0629beb7d3329c7295f4b2da73edeb8dea48382416ee952c5529f8200e755633ef8cbd2c69649a0f3bbcaa7a4e3726d8ee344b6989d81c1720e716af596757619e34b12f250e95f2851424cdad1d78c0456dee2aad97865f11d434632a78d94834b6f4b8b38eb6000476570c581f846c59f8798fe28d6d21a624c0ae75c7fad80c33e9a39792d4dad92125cb0f8e7e1dceb474dc6261df2cc972d058be16a6998c7f415d8e50405b2a24d3588dd9b80c5ed137c5cde1996304b74cb5e67666d1a01f51085458375db30d194f886cc75af4be6192249c7ab1cebfa5a2550603b657d3c5649f17eb2168fdc8f75109b07e01a3d68c61a1859821f1be962749f0b6fe07ad5f3f4b58c6059fde6e77dde6d93d5abf27e7396a03a5d650d610ac7433d18c4933a8cbee7d520f8747558fc87626e13e8398d60673abc2def99d9a50124d172d149aa3abfb444633ab88570c6d9e4970342ef856816b892b27b90c1b2a58839d994be185840bc68cbf7ce8360cf9920a3cf08f84e4207a8de21d1891b30d5eb46e18e413647f9405e29283f8007c1dbeeec2c389d0c0a80c31fa6a2a60a26e6cffed40a85bdd2918fa4ebb93bfcda6bfa2711a093dc9007bd60483a4f20042cda5c590e558cef1cccee68ee0b697aaee1ede43e35056f20b065e765de5c22f63bda7c54c6d13fdc9b8347bd56df1ea4daa2a7d039ee415cb3251ed2a19957b97fed34df712faea0873498dc8d50429294e02d3075f8f6641bbd83a929d968504c5cad2967c24044609e834e4c3695d84507413f26dd2eedd3105c353dd6215ccd7538a11fafe0160e40c7e502b3e474c4e5b685de2d822c83e37fcee39557dd81ac06aef59a4c7998cf585f0dd215b0cf6c598a66b01299018ca7964d1ebf5d115995f55bc16703b41170af2817abcb06dc16a5d176451f507094335d0814dadb018d887d6947abfbe8f648ac6cb1b58326d84f098121845c170193979299533fdc84f6af869996f4e43bbf81cc97064fa72cd0f087121082b97374d7ccb190ad3840671423a6024b8ee3f08c56a0313e4ede8dbf4b4dfa9b09c4194e7c44afca8f87d8ac28cee93c6307580a8ec3a7fede18e744ff0197cd72a577bad8b0b448ac55cb71c9cc55e38bd59795eacb89be62fe3e0d20d91553a9ff63fa4277c6ff4d86f6e166f8553af21145a60354f8cc4dc3a57c546ab0d0c11cb74d8b3b1d0812ac2a1b57c0c651c0c518e1063982e495bdd498819aa826a927d26e40d259ea524ea65694d642f84b940b437f86d9274bef1a3437ce931f7c81a65a5069493509bd2915486c364918dbf66a787f9b477e905557d8bc204522003237558e3feb92e3d8dabce452cba3ede50e4da046b4856635313066ea6f7c84dcdf0888e5bf17539d5951f06b9b60bfaf24b642016746bf376a301e3f0f94cc727348b44152964c7876e12b60496883a50aade5b2ebde4f874d99cdb945984105d145506a6c8bc560f6e82147edb0b744d5342ab6803b2763eedd019e7e437d1119cc9b386ad51b18034c867d4a7095243c8d4a24c27b7bdfaeec64b26d6e30a888cf64ce0f2096c6c7fc17d4deec39499a9188ce63746344f75e8047c9796a921e4e70713ce68c796710906870d419d18f279fcef9bc9599a83d2e264cd571e0ba21e12d0885dff7e157beac2c6935c62a7ad2436bd145986427035d3f29446f73d13284274974449fa06c2d1022525b8a30f4a6b2d993a0b0641018d31dd7f3e77d9e738686cf922e2b35260f3d53f77f076c222fc2d0d81142814bc23acf10446b1fcbffb4f45454e1faadd7282cb52bcacaaa7d4756091a6052a510f632b09c1c4239df2925170ba4ca0123c3857c9c5522a4288b2061f50570337556c525afa22dfe3032ea8230c2e13cd859d739b77dc85aacb863ce49c2b498738da96de1d0dd40a66369bc469ba2e8ded4f61d153674387bfa56700fa1192017e481b096fe3aded521615100e450828cb49758cea0174feddf9201e4b8eef09925a35834e30465d7bd63244d8c79a3aa8f5341d2f038f09d7498e2acadb295669db20504605726d9ae881c1618e9f79d6fce717b06f2aeb4ccf241e2a23cf71f8ae4185ccece4f08ab12ce2b1e11b7b4270b2fc500c15d3c7ba6436547b7096096e6a823f71d7409c9dcc81fcc85055934aa52fc0a36b00ba39643d86840ec763f559f6c94b985b52690bddcf7526109721241a05e8afdaa482271ae9e7fc82d90f0faf1f47d4ad514899a52342dc3e3de7b179b51622a88be1c4ce309f18fe4528b3a2720dd50946dd69dcb5e0d20b6d920a7e8708e243c17576cc2d7a6502cfc881279fd4e1830d4263d836c79aa16233fbd8b77f6d9009f71d5466611773fe439a72353a90b7fecef8b9194fd7a69e4d1ec643c19b91e288ca966156d209745f85dc87e45ba026ed84e1e0ef54345130b3320aff6236b2341f0a8e5a011465e5f211100a59e9d2d5ec15c28f560ab5f8f806b7cb870b35b95a77104adf2e04ea2ccf4ea84c0ef1c0c461d0e3a8a36619401443fec846b6b84c38ef9c9a91e60fece21056bd7d6d33b69381354271e459f90b96ee016f42ce3d68e9ab9907a5d043fd808dab4493197c0fea4070ebe7a07065cbbff0a3a77575b628086cefa242e5b68798f98f70f11b5daec0a1c28335da8c5dc0863848990a5adcd0106102330b1b3c2c515415a85a900000000000000000000000000000000000000000000030a12171f273035", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 30, + "comment": "signature that takes 11 iteration(s)", + "msg": "0100000000000000000000000000000000000000000000000000000000000000", + "sig": "6cc73c863de62231718954780a08787cd0d3f874b0986a5ea5de3a9795107dcdf38bb8a5c46c01b584dd4736ae55250bc609bcb1db6db819ee714a74e5405d8cddf51c016cc1403936937c5d6a34a8b2613b450e285cc28c0bc7a9fc6db1cc109aa6187de298c9847fdfd7df400d87562c38a081e33d5a5966971c6a6a9a0e17edbf34b605d0d54097993953028851c7d6e792e6a9674185b9e97c9a0db89fddbf0d64c7926775b915525b39adcc867ca57f0e8eb13f231729cc466c03ec5e39c37470cb51efe47c20adc47c0669ec27cf63cc2628eb98fd578ac5341022d181c7dba84adec992277b57bacfe427449d48e43dda5b6f65d06757008602f72bb32bf8a9bbf9547326e67e77bcfea408f73c577f412723f3b7f384fa1c8b12bd0b8ff0bb48c02bfecddd8c05b985e67da63501d2b76ab07af7407c05099b2f4237e17d0713bf0844da76e556749ff99d2a46e002d0c3d95f50d655667b2536dace5ad4bbfac84255df8dd1a0ac011269dfc437c5979f6c35baee1404bfe9cced6a3706ea82b64e2dad0761db85c2c6879131a9aec09cefa4f0f46a630710908a4564ae62ebf40272633d4f86f869153b7bf91785e8c2f11e5d855814927a0223b2b36e00a3f97f3f895e2b8f6eec022e133b4c6a54964aa8b35633462681e53147e70df5cdd8483a9d80783a742bdd79c2273c144b82516ac2048d1f2054fbb9a33ec039810e658d290e22ac0da33b5aa3636df826341dd5970557b17338eac7089c1d8ecab3bea5560da6875a7874aef7b78511fa4cf54eeda94960ebcec2f59f51798f5eb3fc16019d18cce3f41ee3fa068129304315a5e58ee0c59cb16d3a1ffb572e5e4bc85e4f049703aa2c5a8264977cdfbe52602f05acd803422836bffca8674d158cfcd0196a498fab074446334996b75679c6d3563fc3cb5ca2686a1ff07d8a61e23feeffa580c612667251f29698fd276f3fd865afa9a72d9f29a948b42342078f38ef421dac5f331cabef9fb9cd4eee4354b53184eed83ffc6ff5cde874e349bff798e6f5a3fdc3fcecc159c3812c1c98f3c76c5e26737b15c1d1ada28f391ccecfb6367bca0ccc2bf76f155746a439fc6377df03161fcdb80d5939907ccf41e524a83af791c5683f7b0823d05738417b597fee6b0e02beb1a5a4b9b5086da4e2fb75cdc5c76ca9665a8ed56fb7345707cf2d10a10287ec269a0645ea4d772aa3a01655f7b6f8334da14f865d4b673786da894f23fca8790f4574799a30e1f4f66821bbeec8c3913495ec0346c0f53fad068fe6bc9027ab4cfbd6211f2603a9eff25f977a3b4fe7e0e46401416cfb2d776718b587bf37c7604fd7d0446488d3847978c33ed94e9dd8571577c9e14226b90cfb1955ed6c6047c7ea02819e8d733800dd4297fb69f8a69d43f03e06d0e5cfcf0a71f65963c04ab2dfba6fc1905ccbb8e33203ddf61218aabbc9e9538df311505cf7cc7dc570a44a96952eac73c3b02019836a11f254eb55c63c8eda9eff87975099d8515f241641a6b13456dd3cfbc4e7c4e3717ad911e3b6cca87c613c373b3c16b67ca2110f1dd86e422fd05f0409ce553e269ecd0c7f528d270d0782c6105ed83dadb2966e7fe5ee77dc38606ab3011ebe4a5b606b2595ef967feca05c26d30ef8bac68c09aaa5e3f87752b83cb78d330ec16a5ebb1138ecde16c76bcffd894211f8fd6b7aa09efbd1bf4a8324367244d06fd017c90b793da27bfc19727a195eb7312fb9b3ac19c66f8785f448a7ab1c18d814ae988c2dc63a3dc6d5fc1fb3ecc9ab5d10363800a766c733c7a6c2edc7b0c86a817a0892b657920f78176691188bc9e82cc4e6629fc5cab248303608ce0fe69724a17eac2222b3bced0aac4c2059a923ba98717921499685a76c53cd5a960d55bce9a6f164b616d06551c65c27576602e5b1d6215a8feeff02d4427bd860630e6aa5b36e6dd53cda37776e1700a63a3222528246fd7f23a1e95ed2e3887ba71064f3e7f7f07a8c3a045c1f13aa2091ed378f855587f5d9f0b449f1ad5b5059d28ed3be95a2a8c466b2a3cc26a8ec716f805d149d13f56462c29585b3b9db663c795cb0d1866865eb9794bd80501e2a1e0cfe8b314bfb9f961c4da31dc6e25831620dd720043c4efe4e19b6261c479b029323c630f1c8345dae9235126f6e1c7e98143b976dbb2a6a09b8a4e01d082d6f1b05a18f818b8777940ad413be6064d6287bd93a7633cc64675c7adce7aed302eba9dff92e04f8d6d224a2896a2dfd27f79dd83dcb4ea136d16d50e7254f2ec0ec55f54edad4b41d78d8d8e07051f63afb6ec37c5cab932baa9df09eeba24b1d3ad9a923e163ddacfef990df40ecac3c55d771cc8f1bf1bb98452d14c93652b25541105f4d20271b250ad2a2a2ebbbdfaa7411a895825ed901412e195dce9d7068e25d34d83e24252ab18b186bee8714ea9ce17501c9543460c2c201b5bd01361736fdbc5bb92938cb2a72c60de2e5360c5a2abec236a1c92a05de478997a247cedf0c9d92d56f4eefce7610b0756119928733ed878230487e6c01b34662bfdb550641d2fb2d41751c66c9eead25caf3e7cbc4dbf0b2bb2a1f9a407fdc9e37bb2268aed94c9163109a8014485e74dec6159f87030f656a6a7266fc30f61cc39a600fed90a4fb8f1837ff9d3d4625e335d87a01a46929c6ef243aa86d1317759200a19f4ac2c24099ce615404fa0b816564313b41a3d2b79a812202afb78ba17ae65a8eaba5139440a4d31b73e9ae16514c082f6907a7ec07da44192cc6325d8dedaa3f0f28bfc92a7653ef5738b9bba85ab593a65e17af07913d321be4057594e16043ca609e308efca3c276840b49fcaf34fa7c38c43fa898800081f2d6a1746db7a950b5cac48d27a420ac20624387dc78194bc29299767e1211f0c7b137abb6c3321b69b546e2782f6c2c29bb2ac652aacac2ce664d95d7610156dd4bbe8685d0e0af25176baa5d8b04b32de81ba8341b4f2afcfa13ff7c6a61c3da03fd2cfe38a0302dbf1882b0e8dc10851aed0205f5ba1d6ffb584f450b110ce1b89ec3f909d0ff3f93932b524ad0f098d7b2ab7037bfdd4ebba64c34f5cf9c5ed1412f4ca280c73fd220580089fc91bac1c1defb0afcbd9dd6e629a1c4f57b4261133cb05830029429f4b4f381a3fc67e67b57f6086e1f49dc13c52d87f28e27eab312ab9e83858dd459de672de08ba5a7cf1b3d073512f910339e56d9e3731e6bba4b24d9592e856c7e68fb0fffb73950e7860deb0eb32299076380825edf4cc0fdf7cfc81dbb5aef9a2905a2e07fba19741846a4ba3f81e2516e8d511b895b5d6d2e3900062bb0968e096eb0f104dc03826ffe59c54bcb3980b30680f643bd78b671e2f8220f09cf8b0016c98ca44f4f75f493bfce3a078052931a7318aa36513903d226161d74c7c29ad9729fadb33caa4109f2c5c976af1d7e779255042d383044981e2071ca6dbde7a327445e7a0091c04de78d22863ad849552af5bbd164c64315bc592bd498ae7261a0149511d030b2eb8d562479d0402085e60e10be98373ab74359e5b0d0eafe2768b3342210f9a0cd05339d08ee63fc380d143f05e87774e073d8442a548e3b7ee568fd80f09094447efc4d5ccef0143fdf5bfcb7346bd7a2798d312cc8ae98922e0f0f7756ca44647dbc62f93188c60196ab73724337e7c64ddc9f71ba8a81c1c15d11422e5b58f68f817726e2838cf365207789d6864c4566c3ee723e4c5b339f3af37176cfe9197359c489c3cce9c913e810d96af017484ac24d744e688a80461eb921d4f8e527c9c4f9fcaebe8747132b6bd9ea86c783f64b53e876834c4f08bfd3aeeef689fb86f94ad8a44ede78d3f0b1219a6b5afd56d1bb61610bb7bd925232a287ab5e67ac277097d955cd1b9fb53050a3e3252af91c9169e4027a7d1c289940b860f5fe90d6e1f809c6e142cef0c78c07235cb2e5e9a5c3bbac836c0a714c0bcba74104119ccdd0b42699ab19e37cc8822574554acf9c2c70712194626221ea08d489922655d7996ee9b2fcfda76939e77b390f5680958dc3fb41825c4850550ca350255aea6f27e720867ffcf38998d02c2b4ebff3a7bbec330ca2b2cb83db2880f0e130b7a573b71b76d87d191c436ade5aca2aa91518f86182d7b7695815d813ca0836f028c6393a6becda2710f94c91c9cf4bfcaabaeca174b6f84cdedb9482398efe900b4cb03ad85b1e86c2d548f706ce6ce7abbe994979a400d28cabf7fca42f3973d3a0e40abd365f3d82ff0524444cfc7bb0957f8ae1f2af5fc0dac136946e1e70a71b13234c5163658bcd76b9a7986edf3a525335eb750c7e9f888a35ce81528a89a982c85685648f43802222096b3ad88f4c64f9323bb10835f64d856fec57398af894e29cf2c1402c9188f7876e455bdf7254efe7e28a47e72ea7c557fb6dc77329c5c5e47ad783d0cffbe60c66e5a20a562364ebab88c0f698c1caec92fd4b39f8814f4a05e952b978c89c3b63daac3d63dcc6f273677f7770798913452d1f2026caa444baa224d3b4b6fa71d3a1311a26433a7d7084b915e918da3b202878233d707770ee6e0337db6bb8e3118d1ed6a20849764275e0207c30aad6e9dfbc629543cda5a611de0fcea2bec753446ea2375d6d3a592d7f8eeb817ac218df8dfe5d87164ad914b92c596eb3ba5bf707d0c8f9cdad958f224a01608fb2c3c4445385890ef33c6cb9eef2e2e3d2fe16a03137e5e42f47301ecd5208608e13569becc719609c823ab4a52fe47d4c61cac464ef24718fb0a4475d80e3ae2605bb96cfc8311e62d85a48f267ed88af3f9455d87b8712ef1c79f3b4093db7ea8fe4c63f038065ac5e5b84ab672bcbadd82331e3c8e4fd7bdab926c7bccac1f306f7a5d95e75674b64e7ab203bf79e04f48627960f7179a29c70325eb58d1a9080a40d3642b712d8d1f216f0653eecb6abf8a2f40e07a03bacc772a2c537d267dde8bbe481b7fa80132ce0fac96c1aaf6df3d427b592ae99358337b019bbba999ebe16947e61e27327d18ca78f78287ae57efbfd1f19bedc86f39e264106e70169e8eeda2a93f713857a588098dd4d8dd7159261556bc72c811a191d4cba0831468a862701593c56105c2d0306620f37e5e2a255555ae374b5c95c1a4dd1a3bfd0e7ff501a08505c0cbd8de2d26a53d9e90fcb24f926c052fcaf65917d74b13d7798c90997b55a41e60ee5375deba064ec3434d83e8cee5875a96d87c1754986baac33126f419a0c7084e64c0d69bd411a6a609ef629684b6677f916889edd267b28146bd2254c5fbd1d9d5de379be832c49270464de9b8be95dd883aa1e7f9e227fc18b77886c2445accfba514c2a870d9160d4b5613b02dca799266494cfa4abf6014b97c19755dbbdb89a148f70f9e09a65a295f0322da6332b75c8fff7a4c51f22b192df20389875e54278701689616f953b865532c697def1fc5114c9af57fc43b0be42f46c7249a8a860fceaeb0c82426da42e6fef52473f50c1917247b2c648bdd9f1558db0e61853de09b394234d423e17db6d8367a570ab62bcdb82f36cebc749e01dcee7a0cf4d2a27d7f1fcb68285699f8830cc494f82fcf3e973fd21ffff1e58633badedac5d2ed43f9b26cd61fb7537436b1cf8fcb894175b43c819abbe46b09a43542fd5440c77591ec498c43ab38b88ad2e5b1ff6470400d5eafe0154269ad4ffeb8cfccea92ef6e49b44760d6f7839927395246ba6f7d15aec0a4ed6a5908ec7f6f310abf06195b0fe78918d930d1945750bb0ac73dcd4f5c1b2dffdee3d4e03f4df7da42c211be9b46fc6f31a6ee8370c87babf32e9f66423fa7646ae6d87ea53204558bb61a3ffe91a5d7b6c6bc2c56838ba7c2d43cd93e5fbc9b0e454bf9b25c533b107110758b50d8c70a54453acb3eb5173e4332b8dd23b117b2fb5ac0abecb3b1cbaafaddddd2f06d349bcd773e676bfd0c2daeb21c04ef3d2a978314895a401dbb7169ba8e9c8c960f2cc67f2104468c7cc69206ababcc516c8a96b008640c04ef162863f01da3e1a0a0d912cd87171fbaec3f52c9fcb2fb7b306aea1b7c647e88c7fe72864dd3aa4797f5f9410e62c5270a9b624fea1efc5b00173d761407b0f71d20dd20af75e452803f9223642bfe6ea1a3d4488255ae2df3578cb6bf48fa5cd9ea1bcfb7bd16ece11f297782f59ef1db5c8299f1857a1070dd0e971658eddcfba0ed6642ba4b8a67683595b30cd934eaa367f271bd8231b2cdf8c6f348179cfe83609ccf32426d021f1cfe4ad1cd17d7310a01b253b2288b4af00d1d0d73db1d8b7f90988c0e09f9a6949b96d432e9e4998b6cf9d46df6d1673e13f3f6c899b6372cc724587afc61e5d44d7a2fc64dc239efb48501c03eb31f3d53ee79cc433fa447880c74194d420a5b5040f23265bcaeb0c1c303e5d929496d4f1fd164548548cbcc11b34474d4f64658386a3cee1eaf72a32334e576b6f8690d7e22243485f87a9b4de012338479dc2c3ccef0000000000030a151c2a353d46", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 31, + "comment": "signature that takes 12 iteration(s)", + "msg": "8500000000000000000000000000000000000000000000000000000000000000", + "sig": "145241a6a9bd04f5d13d63a78f4440aec65d18d04f2ec73c57c637dd0e0fff6fcb495a0568bd8079dea59461312fde31f7c3a5b7acecd8fc90995628aa3c6c30f1467e7c8dff94a5023bf214ac3f4018f29d7afe41c3aa840bba738602ec5c828dda17c5e282a1d053f2f73202a3ec6668f66eef2fad15d1bb692750cdff9320a153fbde8c497a9e153c4f87189d76bf8f0dda4c5f6d7c6ee37eae3e89298362e81acad80a98df52ca1d9448f10aad5415b24892c58a3730bd8e1298d46d51d400e47269df7420d7f4db8eaabe6ba4d9389796fbc6ac09e6897513c72a9bf3767359c9e374329fcc500fe081c683b519f7afffa675e66a0c350882d748fd61544db7681b2cf74911092f3245e3cab531d02c8624c1d6dc28a51aa17060b5f076c6f8ea7a1411917c1940ede4788a3c67df02ae8ec617f28ee7d54f08f43ff2c55f1e2cff2d5d1f2f7f5a6a4700b07d4ad7d89432ddaa036526405def08e38c38c719871e7842f5d1aa448ca839bcd4da76cf27035b65d2108279abff8390a6be23bb423cd1a4b3089a7d9221a2a1d49efd4294db3872f6e41df0c3af78942124834eec55a428d73ecb1a2ea85034a409c680ba67111f855fe5e62fd8c9a06894647acf720ffeb6918a4a34f668dac4bf6f215284445a7a9470172cbe8e3370dcd3c19a3fb35dccdcd8ffa6eed831c5e1bdef5b9ba12fb8274002ac0292f1887e9b67c40d7e0a6b543f6216492431eb55480493b7f9d842d5ea7bf64e6483497788a778a90eb3884d435b06282871f69c513e9395af247d067f43fdeaa92bc64ab819a2b65abfd5025c37abb006d85d8d4ee3442672256ee5f25c6514d0cb3aaf58484a1ce844fea9036d63256e01f95b0a897c186bdba14edafe445c65f1ad56ff8e5faf9ec8b5110b256e637188a41a5e9c72af63731e26bdd6207555dbd4b0880b87ea40ddc7fca39471a2de2643a365ad4f6384efbf8647fea304fe158a419837ff1c783214397a7b3599ee45c5865f7550882603ca92eede4d596b3921c0c7eed67349649e6095d960d46bc442b9d7bb0561e639814fb6bf751b4b0bd1a4ecfde97751aefa715a705b432df0c9228b21327f46aaf3b2bcb1fe3f716725f84bf1d752dc871d53a145e6c254beaafc246c0d7337ebbaa55d9946af090211b3cb2f1a84e81d75233fbea931a8d0e0f7cea651229c3c88751df7e52a0841272ba13203e6f4bf23d79c001ea120a1fd92265df1c644f84471b2d9c4b52d9aa5ed5b9f7f72f88a1d56db9a1f75d13656b4a46b01379ec989088d25ba021f886a21d21b1c15103f9f90983d9d7b1c7aa347a832d8e11256c428622cf4fa4098796c68e6cbea18f2399bf1d27de7a1268d68232211c4917c9c290ddc27e2957f4b59ff43f4a81aebc9fa5743a3de7eff63a9842c8b0f1363544576609909d77d9150ddf9675f495252fa44d5f60791cb68947a95dbbd7a6c48b062b6efd1e74d6e1c2b5fa3c8ae3154da1475b3893519558e36c7a5b488ed96d9ea4e4b0881d5aed1c616cf00971541b2a5f677d545176597d11e53846441191988b5a6a42c0becb3624d5317e88b41715df4193dc5254ab12bd6d9c30625dc9512adb60955fe2f8a618bfb38fb88757f73703b7bb06d7b1145aa6927779c756387b88263f838e9afd53c2a0213e99466958a612364cbb518318961e2763f54c9e8be276a1e61686e0f0c9b3336a0f46f996400669c89cedd15349b37fae919e1e40e753493109cef84abe16c1cd924e6216554fa7aaa2768218559ee0adb53d2d51ea7c7e190549a7fac9e8bea9fc5bf13728fd0ef738f444aac0cff2ef4f4de66da13cc28456e4947557146ebe5ba9d954aa7f610c8826413afafc06e525eac169355f0a16aa61a1bc4637db6e317d42e9ddc3bc87a20893569f562836f4b4413357e60d438e31baa7dc1809302556ebd802c896e73e1a5f1e71ff9030a8b8f838b3f92555580138f48c4b347497e3e639b9ec2dae57fb4fc1755e3480ba819eb4d3c027a354c8f2eae8b0f5e7c23509018956d8d3daf58dad49a3343a35983df5a0c22b15ed3ad30632cc09d93fa40f17211ec785ef5990f0e1463ee53060fd37c8c6940d8b189559865709bc6c948c6f923d1593d94f6aaf2c10745e8c29ae5141108a2bd60e8993c666f676bfdd5f28dc9da85786825aa74d4bc90a4ac3eee17c7eb1a4f9bfed0e64a12d28f94eef613855635e87a4565ab458af3546d541372070c1b3c8a91ff8c58ed229744f99976aecae912d67e9b72b686f7980f46f8edfd156848563e1fb91489b2c225d6021a0a4a09385849bcb404d3e81c98d39364f0ebcb7872eba11d02678a65d30471c8198f9f525c68b5fd8188e7484c12bc9f292b3b705f10ed85d1988682123ff468d6d93fdf1736a7451a80e474fa8ee2bb5349b55c6e13b16a0e328c1246ba044b405ebee5e52298fb6bb946576ef88524fb11468c06381d370075de4369a936c286ad97077ab39a966b711af83368bfa9047e372b0aec2f5255e942da48d63d1b59f66532726921bb166bbcb058203eaf86aad31b3dfb321cb78f9db3410aef297d33891831a6c50a9ed26c4fe28a4eb0516c8531b051a2535c64017e1e7478af157c68c69bca014f8ee5aceafa5ca8e3080d5099198262d221648bce65cc3180ee53959fed0f32115a91678f89d1e9b52cbeee59a8640986f002af2bf31b772d6036979564d654e2d75f53ba8e89f9ef12f70d1d9f542724527a9742077051ec3e2d6f7350d819f4efd77e7b73ca4e45676e669d9657f4d373edbe0cb6fbea861c543dbf820583c80c4fa8fc13ee28880361572e6e0c00e64168eb724e29896ecc304a4de3202f514dde4ff12fd436c9cf27da482fee80e76c0a94d58635f96394a2a5cfb0855a132ca1eb1fb061232912069d62f63bfde2c7976083ed00da605990952e952187f0f124d5aa635a4f7b66c91b9efa632cc4f32227ec314f6f249970860ac4a35b0606837b4c16c4368f7c3cec85dcc1e2f39f88ba907d1c4a52c049835e7a2c9c2c343e1b3370b00612923ee16e4c64de2b2cac29e40405a7ababa425fb6a3ca092dacdf64c69d361ef66068934aadcdc2afd937cbfee1c6ee25232231b177387dd9ea418485cb069a5e1288de1d31430d9402ce29c6ba97c4733cc27994e311e802e8c5ee4de7015bb2b666e6f7f347fbf2712ef3229da467b6b7bf9ae082542ed9ab4e210c91b1d1b50dc2aa76650c00dc644d185dc4cfdd537058f2330f9d67131fc2b69e588462282f8bbd6f99700096712a6d925471d20904072ce91813cbcb58591d1aa41c74771c49cb590f28576eaf2db0dd3c83692008f8453328e8984737918c3a200a5dc1f715823449e7f53892a4949f1e949d7444d6f6f01fd2a87d703b92cb559f926647d4d15b3169fbf92b9483dce54c30faa79389bfe3b06546853ce83371a87eb8ba06f09201b9d49edf788e0aa7e423b98ba996573d0420a525835186ef44d4349025e5a022702770d4e873dcfa344c50624d4c6cc5922e0ac94948e28cca54f9f30605c84b07fb125999086f4911892e0cb325a02c27c7b4633b6dcfed1141db39e440cd5134fa8bbf243300c5455fc7c4e4337401f48a07af59a9b73c22c51d6dbac07cb9fee16a3d06002bac7f154362b28b2a096639d420723d640adc92ec72de87630edfaef4c0a4e1b405574d593c8019475dcd401b5bff6d53f5a81406c0ad75dd868088af53b3a7a45a530de76f3314bfee725b43fecf15ad59cee4593796552a846b2765cbd98a7287b8f306ba2cfeae39081ae6a5dec0fe6a0bdb8fe09efe3900cc94daa3dc0819960da0b51385a7737dafd6b601e87d3dd9bc45b738394b1e6b4be7be540f0ad1a7683c98d80f0e6663486ff6abedbaed5360a95aae63f00baa64692c5d0fab21693fba0a4b8f517c04bf27846327cb3456a0629dba59bfafbea25ed4487793af7c1ba841b103137526cd72b5e5e652fee87561277859109d9759b88a0984d34e203aa8ac351eb2ab7b354a8299f02ef161ae3080461eea4faddad3310bb3d3dd47a49535d53c50cba97dc79dafdd5a6b76656f55fa830d1c34b96ddae2bf41e12b858556af3038aa658926f0b33a058d9be7395c582956c2a0e44a9dfa99deb73e0a91ea8ab17191d7fb8f71b549a7b9999f76a3acc7c6f355541dbda04e551a61b55c59e0e3c20b3d15c87ca6c9f46801b3846fa98347fb053ebbcf3b0f704cb5ff4dfdc12cd0eebb560631759a8d6cba983a05a722dc23bed5a3d3069a415e859a0460e14f1b0b8843c068c5d199bfb2d96d6856668293c2affd7ca8e788e8f5f2e68faf0613e4038168262e10e4f33793a8f6cda34bf3461606a5473ff82ecbfa0b2024fd8f5113ab5ee2903c6f41a5bb5f37f34877bc5a3946f952ffa290269ffc8842b6e2f31f532a059f7515fec5693669c620f93d1d330caed8c0a72910df916142397bde9faf898ccc7166fce484c14a77b48a6f725d35da861375023d705f8ccc3afe271b93a3be06df0c901faf45b0f48d60aee04331e9f39b233566e505490ec01566253bd0b46b6a63eeb2171872a4d0a0e2c15e4ecc00e6510f6d6e3704e374cb5827790825f5bdc97801592a4a4c464924a5f0eb665166d7cc36a28ad92d310b876b9f05b8d1edbee25067bc312bdba35c7d235cec7f284c4d4c2954c1f8d8e07391dd4b3ef2c0c49a21753a0078ef057e83dd7c24283bc2b9ca61538adbc6cdffc64bbde1c5dd71bd1f001b1ba6c5a9b5b94f6122ceeee750c07e542148247d8bf65bf87a2c4013e79a25fee159a7fa0b7e0c76c475e8caaf5b04e9b8a118a9af4e6e0d0faddc77e5d903dee1a8233924329436fd47abedb9d413591d043a52cb9ef4e9c51a8a55c7b0e260f1002cf742c3ec599ce35be666a27fdbd0b809b9a14056a77cfad19b02bfb50cd8f586107065b656768460acfb486510e605745bcbe0f4c643c729e05a33706fcd2b479aef4071bb7a0870c51d13ce40a737e98990dbe72fc2bec79aac5e546e8f703fcdf567f834bb55a00a09ca2605098bf86d4eb1ca997c7476e3a0136622e000f6e99c0c792cd54777d247051d7e30f3b4bff39df7852bf86b9a004b3754b9cc3633ca6b1808e4c5535a0a5f073e9023d8e1db88a8412f9e7ef6ea4fcda6af46cb812197ac268ca32c1e2d3bd07a94192c5c7d8a0ac965db845f710a15787f9faceaf86900a8a5c3435305a94fa529d27d0676f0e59a22aca20c90d705d5dc9d2322938b0fd10bf864f2d4ed1ed28f5936e0108c596f76ef684236a9a0044b736199675c8a4a18dbffa8011cc5732e4f02a3ebf7630ccf84de23ee36937d62d071b29aa40dfd29e86ad9173e1ff85735684c98e395727d31bb12b23e662abaef57621166ae60cf83f05a4b8140395673ec4de2ce38c683f6552f94d2fbad73496dcbd528df400f4cfee6cf53bda27ded3de381edd507b958a1e69fd435061d4b3caa3096be21db01b15de12aa248f216703acd6cfb903e550b74d3468c5a68509e3ce1f4d37c012bf96a8ba56b8438424724f6f3a966c8928bcc39209fe234e8650700f43e1e8acd37aeb3755ddf2bc611dbd2111d7fcf72dfadecd057336d5f3f52b57aa39e9ad3123845b0f225687ea5d16d399af38a80ee074115425ad8e250b1da113bcc1e1a09058733afa0340ed43aacdd5b6ea9cb9b374e88eb68a3def332af81cca8f70a50bd405db10950f8b94d6ec90850af18e182ededbbec692f1892a830c59e98b06495afc0eaaa81cb50a455fa584aa8bee1a3c3ccd1db61c901d8b0f5776bb62f92cbc3f29773192cd87b3c88d4abf3f7948b81f7a21efd4d40a1eb62cac0eb25d9b9626f0a358e5dfe22ec31c6806bf17a1541f97fc41deabff214bf39f3ad8151dd9b344e2c50dbc88c9184acb4a9d8b75bf09bb75e870c5279e44a8c9256e11ce7ace672ee755688f042026b8a7f748ef99e422d93951b4a694fd0553d6f6948cb490136a296fc96ac0f8e3e718a59efed7ecb4978e409c9d09c4470600076756241b955c14eb7af6a045056feb884131b2fa7f6be218be3eea87c7fbac3c2b748ddf875cf09009fb7fd58e8cd05052a0f7eb7a95462e107721e56049c8968cb3b79cf1446f564099ce4b8adf5368d055edc785f72ea9c36925e319812940a25a1b784ce40e42bc07fa163f9e0567b5a8ac98625922bd05c6346e1f7d9c8999cf4bc1669c26c6d8f13d2b251eb62cdc2b8194825dda2ffe2e4fd0a0ec6e7ac48f93680771ebe47482956e01f2a99308d7f416c64cecc65cb9ee25fe17fbbb4b2f1959dc1bf7b3a49f3d2bac865a3d87b35088f0fa773450f16c916e29ed3d17e6a21bb71b4842cec8629c481e122439bd6ad7510e0d9e6a4a92b2fd4763a1b7ebfb09555b69727b808bbdf9456d98bae0e5e73c47a9b8b9e0f730319fb6d53c428384a2fd2d314e5d656a72f698d0ff00000000000000000000000000000000000000000000000610171e23293134", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 32, + "comment": "signature that takes 13 iteration(s)", + "msg": "5b01000000000000000000000000000000000000000000000000000000000000", + "sig": "b1250149564c01b3335c876bd7f0c6cdb6bd12778e5f975cee83de4d41d7aa9ff30c9c5fc2d281d0ad0c7f3b2b8fa4ff2349e87490f55713ca6ea175df613a023dcfcafdcbd1f1c25479b4783fd987a9ddaded872a813b5b4b8b9b4d8a2fe222e14be11fef3cc225f901cceabbecd1434bd5599875ceda49cc220916759cf53f5878d45ccbf22a3d6607d30e5148266eeb2f85d7da3dc01536d020ee268ceaedc26693220eccef3436a0da43d40581da80441f021f6af3432090bc2a65cfe0696e06bfa11a4c2d0e02ad178214a62027520879710343635821a433b97e137bbe4b67b26db8d6cab96fe0223fd24f6c03cbfc84a4eb6907f0f86f941b095c7674eded93ea340789dd3e1240852898dbb4cf2a2fc51db57a544601871a6eaeabb4505da32274a3c585e19afb2ce4f529947d1479e7cf38875d8f77b790ee494c4de8a7287108a3f78857885d7ca8909f3d77296c0534e3b3c8796771698fabc08bf0f9dc9a6bd37b1a044310264851c3e1c4b57b8fe2f1b4dbebe4909c617c2adf0087013249cbc9dc2466e4b8ef46c08f51e8689c9a5df1cb8f8c57efe21aeb8968354055e565b8b026da62a8ab558c8549feefa9ba29342893adf3d26aaf3afc126117bf52bd4e7b47f06c05698a0e99e91814e5657edf7f3466c6644d2abe9d17484ea5cd8c3638bfc1f908cd7663da44c2883bb8326b0ce6bd2a62d106795a22470fb640df14ff9bff443f46b22b6e7db4be53eb6bf6d61c81712489d620cf0709eeb9aedf5827b54e8280794de95f4e0cefd060594a415c6dd13d341d8dfc54d509ae6af7b0edfb7fa076d64afeaad62ca950e65a95fd9892111aa1951a024799afa5f99499a7ac232f5dcc10b33a3f8624d3a73399999183204f9344d397f87e90aab691578aa42573c921673c8b230516e5b20c4f860d3fa0e6748ca4431648d593bf8a40721fae33636a6372bb677c6716c3189f47243c25f1b35314eceb01fb445da0c8f9f89ecddf33d9341c609900df82febebc0720586c3c7641f886b37382cde6bb26a64d529acef818f34159923c84c231b823df4a147604a9f2eeb14e00a0d90877171eff7904a23900605d0ab848740a0fc90055333a583ad583272c3a425cc23679771ae962194a3c864bef514f22f805bd75bfef7cc694542d4c9c4a8338847945ac86fccf0bc48216c19ca69b985d7fcac1ace41a875d1cc719ece6e53c4f2fff5fc91db18b0c0f3263886564124dc8bd026925a46e16baa04a686cdc793966ea452623f8840de7364655ee12c3202f5015c4ea3c41b8ac691037cea5c55a6389b1fd501ac2bdafc9bb7613036c6e280817111d18a777f03c9b3e6dbaa71574774ebce2647fc20d1698a0dd533518bc2b505a043f65730ea413f0fae4b24c6b0da749b9179a1f2a8525e059b5686eb6af61fe8d30db6bf709365281ec003214e2ce7fbbfc3180ac8e681b33c83f30afe66bf5ae5ca739b047d86dc4195a5f5384acc65d68ddb6ebb9e5be90fdf6f0a39ce6d6808b44a851b34adad1dc1002c0c52246a351479e082fa10372491ba27d6112d85ae32e430685dae3b950056a1a6f119d7cc0de938dcf5d0b21748622aece0c1598ec8e75f51fabffe5bf6720300ef95070e7bb7754db2de5f852a64708fae128d96daf8fc3f481788309eb8096fbc781ceb6ccb949944c151ae183ca3ea7c6fece4357fba1d60e89382d7e9f32a15bbb976091ac1bd4075f0dbf95582ba91b0e501d084f152044ba9934601575662913c9557297da204dc3bcc8928a35d2a39a6022ed91bde6d57a07ad16a545766670e34decb2ba8ed6e4d13436ff7953f2b1649735666293c2b7f36c6f54380c88aa5e185b1642b3a6d7e68c6b949ceef576093c53c37882285f881545ee430135a086ef063ccd81a7211fb1e2628696ea5b19280e3b6bb1a70f818181a3c93f46926a8fdc37fe4b8de869cbbc1c7826f33294014a55a72fcc7f6dc6691382e4d632801d1fd74f78e5cfeac115e82dc71817fa2a0d8c64c70d7140f1f77f094e3efbfcfcf0713c4a2d526565edcf2ff19f1d5ec46af9c7d4122904a6004433c191145e440766655722b7fa8951115e8c998da716bdc6db974e19ce4542599bf8a03517b9c83b803915be31822ad162b6133cd376bb0d7979006d1902082d7ecf62b3c565ed6ec8d4dee792d9411d321a8a2bf1a463f064f93910255c28f7b42de072066963dbee0b59f8dad30fe4c6c48ff6185edeaed176188c09f896d1bfc0138447891830a70ec7b859f7c60b086e193b06ecb0ed38a44e75f1a841964be641825c60a860b315dc6a21b2284c9a0a4017d48a9baf4627a5712c5cd5a7007f3d2fd2befeaef353ef586b3438ea579e188a5dacaad1090727dbf3675a2d19f9d6c0996ffaaf04e4c889fb12365f0bb6578089366a61cce2d3b521b6f50470d0b2d2c2a44863e4d52f67488bb3222aaa9f3f1e4f80c3ceb632ca8bd68a3b42adfb1fe671713383c616dc8a2f10d8c821d903c8977d4093e77786a4a0bdff2fd372e3d23447680f2482e081d6e81902968bb80edecaface2a12ad75b3a2b20ae29d6768b7d71bab1efd212269e3e5b03bb55e136a98ac8e645f69387cf986c2dca3a54be2d23a66e529267cc809a9cae7ab0ec4bc83d609622961df3e9cb343917a971eac426b3eee09e73f473937ae4f36dcd78b4c6049173f9cd4aa8ce0aa15861e63d7f807c67ded16eed68687a2377a45cfabd351960dfde2508a010b4c5b028a90749386afd72c056e7e4ac3fb07c9efc1807614fc0e5f370bb196925877455149752871ae6ea761d5bc66e278a02d3a77d5877ae659842a9b2b7350511ebbf0e3ee1e8216c90bbdeed734334925ca449faf9447c88ad1e35a31fd303a3ad490016b801e3f5110d663ac4aebf6a5603f7e71af0c84ffc73c3735ef4485f14583ebaa21ec8a6832a1a5546128c42c90ab1c42b2999811f1d80397c06b894277d56a2e3c5035e80e135aac1056d2531b3622a99321ce97f5addb865810bad51aceed2720b9d9f73bf9c6d5ae91bec5e675ac47d33e640817ed953d9866a6ddefd92270f6217f97c87a33ad4ed2970caa9666ead0af1643a0912e3b37ad04a0c48138c17dc1514220b2874a01981921e4176f932f55a7946f8dfffd5e07db35264ae41f58a8588a2a6e6fd411de8706a24aa1e327991975eabfabe54b7c2710d1c85efd22cc50a978f323fb4337a873222862a1f7a7b4c6480f374eb174faa93d902bfa836039f0112db5836720104c20d056ca185f6f598a7749412a544619f02a0fdade6c3dcba51b133c9b73e08b4d2eab4909001fca8ad9645deb2ba840e24ec2a7ebae9d782431ff5988dcda5d6a177ccbd460d10ec98642f7a82a3561db0f4a123f9db810213106f2055d60fbbea0b71cbf8250b7be0a140ebc2f4fa32f0338efba919562b4a83aa9dd0c2446a2facdbcef6e95d2a08f9fca56cdbcceede0a8f866ccd73a763a9d0ac907d24bb904552b8d3fcf62ad3aeab5fdb9114697468569a7d001308744fc4934e0af7d83beb10e2b9f1b0ab317c91f95eaeeedc92c5f9f57076673eb577ea787de9ad0365b46f999c253faa7f35aeb939629e26bc054d06b90271d5986efcef8037ca5d09913f456186a0455c26e4a65fe26e20bf28ce857e395162b852f4a122586f48cff4cf58bfb78bdcbd4c5fb9533118767d3bc9c1e64be24cd20d3f7e500926885bfc41a40b74ac02b843aa751e51796d03f3726bbca4972686e23b3d148c04abcbde98f1c9ed1e83b6c51a8c20ed44e3540e4d63bc87eb0c0b265e1c418e2f105848b4c5529aeff04705bb41bc82f3bcd2b6ef366c4cea52c0300eb80300a67c935ff2cdff49fdb19cbb11629dbc410a91b832b57691117218a07d5cf8864b3671d9e48032fd7b8576f1ac90f1eeb6f52a059134266d8102d8c774a370923de6419aa23eef1fa945594cd9dd6683053b539ce3e725bbaeb83478cf6d8126a22523867befdcb5407eb415a6d7896157ead19a5af5494294250788cf2ab6e8f48b2fcb6174629756c0f0fd061162eaf7b37233d04e8a5ff6c28f8564cf2f30e6b2dc4ab43b24f011f0a4e4fd6cc5181eb47ad07e44c2dfccb5ca82ba24bcf162dab2752be817f429ff0077abe4797f80b044d955db5d7194db2ed3c15963a654ed6ed20ac5b4b57e48671184a91327cdc9bfc4c808f8a038b31f4ac312ebd308a25f397d2d251d1e48164b9a584584555f5d089e3f4c25311e15b011e4e86982ad994d63ea1d7cb3761494391d41f7dee7f7d35862e47e351ba880d81c424783000abc9c12146c5c1a0d38abab402d279e3a62326a45291e069115ab619645f33488039923e493ef5e42d689d5cb7827400f3a47c726d2dc69aaa88cafa8ba7d63f20d077eba419bddd35e787ec8896effe0705e7ee618778669d6352f19cf2b211292c4c9a98809eb788381905821d540f95604ea8453b10adf9c64418c30e5d57b6e280e1ea64065eed32cce5286b3aa68d7c58c464884ab2564fc3484c509bb24dcca8e7d162457245369ad4c90ce36e31d914d4da3de6dba1557da38a09fd11483675ab143427300200f0281f3e09dc88fa192ebb7f59e13a7d768d0d21a954f40077e3630122f0a2d7aeeead2a369b165fe8367622889fe48694a07ad07550ca28a3da250b17c6513534b41731b0631beaa7ce1d89a60326ee9966df9613af28b04809886d22f750d4a3ac07ece29509ad6a0b34608e5c46bd738c9197d377e396bd1bbc5358bf11bdad2cd47472138ec458ce9112923e59c86714f6dcbe31fcca6b4bc1b6d8e1ea96a3704cc1f2e70246af3a556230ac82dde5a4d6345d4117cd17f3e8dd30b89e62f1db4c52a148348fdf6d2e8e7c6eb12d8b4456ac3e27460564680b4c00dd8c7b211e2dec5e6ffd5b353ea6884dfa9004a3af0b29ccc6e24218e6ad86e9da184ca78b7da41add82dc8042b9e25a447d43de4e2cbc7f749b0527e5bc2af8caa49e4454f81c4cec4b0ab1ded0965e1ab96ce0d2c0b691624478a0be49a2f02d6cb32f4331433931fc03aa283809299e7e5dbf805b303a161b34485305f23ee379f7d7c0d23d6796192ca7bdca23c11bf8343b802bc5224804b52128bf420640f7c2c7a8c75338c6f66a8e242e6167348ff8ae33cc12e7ea05ec55e19c3507ef3260819b523013ecfa7fcfcc83f91be672dabfbf052f2ca35fe01d08fd99fed756f5f1773b10a3dc07538aae5d522ff6384f2ede17b8add7eaa0e4328885d6a87c287e15508fa27cf4716a3fd7eab7a71ca6319811d5ff1bf952e0ed0c5efd6c9bef2c15de5295bebae17d17218c05bc028d61c9443db21c360bf5dd5685b42326847b9c70fd04eafa34adc520995b76ef2dff7f7311d0e8ec5e59cc3f5c67e84587832da77f28ae96facc0e1234d5e49f47e5c01251512301481a597b5c56ca26201501c9621b49fe9ef198d30668bbe615ea51f5e2d74eca130ed7c8f2127d52ae1b54b2a588c02302fd0e1ca8b7bc25332c56b9b03d5369ec6a7de34b0f8d19041179d539bd300235df51d48ddad51f0df0d30c24f261ebc373aec7e93b710de815d088523c44698011d136cddd1f19db07afa2baccedfd07b8d08f1270b462b554bb9fa4fd787cc972fa03325b37fe3857ae65c25d348c2efa5d9592a53efa3f334d4ba24ffe28a720944e8e47e82fabf16a3ae28ddde729f5595a19965baf6b40c3801c78344911a92070bcd44a8ca039e6935173e3c85bcd5cf8c5b14339d5eb059469f00921ae2004138a9981fed196895689ba579df7b4c610a58aac91af9e2b65f736dc545bd9db937e77a809ac8266e52e03ee360122d83df6337b02f522ff4c0d6b3c7c035ffe59108f48a6bb737a586aed7fa67ad63ddf71aff3a626162f6487d1cc3eb7e14ad4b7d2a1a72bb56fee068ed629bc0f848da4f69f8436c05289234f1032cc3c28f821c986a781af4be773b6edc2e006e0d362ca7ccde81579ec30bd506db6bc4b03f61a1429f7f3a97df2b7a52d88781baaf2fbbbd13339b3204f90ac9c7133bd2a819e09009ae169d7ac5ec1d4c5b7f5857d4bebf693efba26cda2c599510851f708ce7c5ef1cb68a3434ff9c8dc0ea18f9b4b9a87b98730d76e47eafde1ab986f5038cfb1632995f3f92845d04d4c079d4bce44b2dcae53820d1689b852ceaf6f349b50beb2a60b0fe669cf1de1f945102498b2f5a38bb751986015ed5d077ae7d62626ac93ac31e1e7c98e59ff828d81b705613d34dce0903698ef0b118e50d42419a8c293604b6218a2d6556a7cbf36ce4f3c711120fbaa5b5673cbb8d5bc1e34a8a446a660c5ec83972450b2026391ceaa3855319a91eda9b131f5b597dbe116bbdaa00cbb2f4591930ec5497ad6865d172e3b62b8ea2b2c3743bedfe2517d7fbadbdcfc1840444e95a2c5d4fe434dc30c28384db3bec89cae1c2a30339397b1bcff00000000000000000000000000000000000000000000000000060d141d20272932", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 33, + "comment": "signature that takes 14 iteration(s)", + "msg": "6f00000000000000000000000000000000000000000000000000000000000000", + "sig": "3de2fc243ed802d048d5954ac6a0362758badee4d0f6d9cc0c15c624893e1fbdab852f34a291bb16ee2d9317d2574fb2c6fbef2e010273d2cf370462338e7b24cb81d11dd9d48bdc09cbf42205f32dba5310337d57b894d15adcfd9db237cb731a0ca2884a69c54965f55de7eb0fbc6eb364f933edbae447e06ffeb6b214d3867b43492e6e85499f1ebc0e1ab7f7128adea222a04418b0ab8cbbbebf5ade5e3ba6dd7dcb828be198dc4619d3534ab10f193d6478d8ae1ee7787a2d37aa6d99914c063df5ff0eed1a28bea79ab9f51df67ed1061f92cdc1aa57c59597381e9871c9d4a3e9e7dafe7774743f3232f75ea9767136674cc23d30e9a79405c9b6aec1fa185d37f3bc903ff6dec8eb5196beaea869ecb947b7bd0c5f1b1e59c5eb6f58abe71e66b299c6b1f9b991289ab5f34998d802ec99859d9e2fdc14457cc9fbb200942a76d88b26d5c2c3ea2ffa28ef4a078128018ac3365e4ad15ccc9b49bd4443b2c10a833811ae402e10122c72401a716ddc1e2cd8d527426fbd1ff566aeda06afbc5541a4e0e1111fae22da8a887708e0abfff7fa0d0ffc90012b1137cf88dad3ef3525967fa1b03ba5a233700db66fcae45d1e1fa59d992afff5455625b6740079e8facda055177663718a8b81ed2939e3f1df7d348fedcbcfd82d7648eac5640aa2aa1b0abd5d08825abf48d703dbd76d258cc27b06e34585df3bb8cd55c37666e8dfbef745bcdbbd49f25a6ee571389614a0e5ce5fbe3b7faaef1a33be36a75570d2d0a2d6964ade8ccd7eca67705d47144bc5584e716b57d433b012c91bec0eaed1b1a524e36b3de4f4f304692a930f766f8f55117bf547850e6cb0d3b95631f3900af40874f5dbbe2551b60c9cba5a559fbc3b20423dabf1367a7a47f50dde5e50bfe88a3e31a25c36ae5ffb39fbb8de2f2edfe046ccb6e36449ad48c80fffd29764262ec5aef6301a3743d623b31b223db45d56e5e139b0fa29f803de0ff64e01adaec3f1a315ae037b846ffa0f117d506d1a7d0421d0923e3eef91658fe2dfa46f55df58b6d2c1ba51b1c8c04daa364541085fdb9f2ac4cecdbe7a37d105f05068de32f1786f6c5475ca84b5f72141e8dba485d52e6cb3956ce576e87c4b6a0fcb4508916dbcdf8179d5767ff4cf0c3ff9626be89f97393570505d6d3a09ec3dff69d21fb8cdd8ee8429f6c3811b283ce7ebc1f03a24a8eeb462c174c86bba36b11cbc5ec8207825196a3fa5e9c86dc2dab73632806a163ab33d2700e81b690f64b7c48212aab56598495cdfb2b5f47caec5026bbc4c3eede184bc6a1f76d1e5d09fb7e2725c55ba099bc776231b0af5dedad076dae6eabc4e3c327fd87c745b180357b1b094ebcfa1b199a19caf4be287199be1433bcd2893e9ec29ffe71ce2cb9c72c4130e2ed421b6fbaba50d17be7f8d9643ffc0f4d8f906626a7d45ad7f755445ef0c1ce8123d5a40aa6d5b17e772ba4b25a2e70821e1edd4d8d08590648917eae311898aab32c970eb4b93e5303cd64c97c20d43ca812654e5187bd3cc1076b47a3cceb7c4f27a98c42daa1cf7bd19688911a57c3178d8d3fba48a70a4f2c1316a0924d2674f38ba578076f00ebdcbe8fdc4a53b130c2d6631ce125bbf7d087e55241bcd3e6479294da8d65ab87867f5606aa8f6c968d7b655cd2fe9c6b7d2bc13bfbfad83a75ab010833b43fbe1b3f9242cf3864965646b543f759dd466c753a34ffde04cfe099b149eb24cbe71119e9f876dda895cca667eccd3277f38c212d606424bfe7b6c8ac97c534e2bf63b27f55b7fdb2d595ef5c2ad67f46cf2e7737999472fda43ee33bbed2f8e30d608e962f515b25af4dc99615f8aeb30b7411d2df6eafc02876abf16f8b955dc8566a04e986915a3247eabfa4c25597f54f3a3a25d18d3be4488c6cc5f146351372a6bd1e3cc44f68d502254abb71b7eba1d942c3080463fadd517e78cd86f74c79fbc921364a0688c8bb03bd32adcaafbc9bfbd4482f5d072a6166b98910a66730216b43d79cd498703e99eadddd435a0a09061af031ca814b592df738126090dcf9870a9841f44180418a7c46963840a6ae537b98f894a623f537da3f35dc2d91ef2c3d4e09e2996b332d8d3bc77d00b1487dafc6858feb14c02dce5aef7c2eb3e877c63316bd93204f72810a800f0d8d813968add36346c38e2105ff4652541b27327a64bfdfedfc5968dd61f5c18dbadcdefddfe155e6e9ef68bdbd2a6a8d004fae4cc2b0f8479e553792510eda9d496e520bacc3253a3b91d70814b844180b9f036bb15c0564eef50ea9bb3762c5f379fe979a581eb9ab9dc9a69205bbcd3cba72157a0f11a0e822fb90073d13ebda8c41a55b143710898e41558f1b9b83dcea13db79301af6a4121e21004a8bc50372d587ff57f76e30ec5da0b314cdd5ed8393ff6f0d0056cdbed2d194391c0f949df46976d0001ccca3e379777edd133a790f5d61bf4ceba68556152bf35e0393d6da2fc1918081d0a11b501967eb32785d10b960825a17af934258af9af98cb568964e27592e525975d011043cbf89de6fd8eccc6c1a91c2406838a1a84dba4b1a7f4ba07c8e486691ed9427fb0f3a7b1841a8c40d291e3c02aa91bec397af5caab47e41cbd0ad97d4b1d82dc5e1625fafaaf7e178d5fc42f7f21521e8f08bb2ba6124a7c55e70384dfec249fe7272a46d87899f98695b526726d258803b4ef0ca08ddcd5047bea6be1435278af3350da75af9da9b35a4e679d1d9b33c52d8e86e6724790dbb0f1fa1cdfc5e1bf66dd37549853e0d81269db5dd408db15f88c1d7d99be6627337a2d5a9620c68c1606d5f8a717a503446cd6ee6d335c6ffe47b03b1d5d3a9d099a1788aefc875ff674ee3acdfd95d832a3b25ab5ba613dc59437cdbf1dab25cd5201ea8512e65b406bfa0bd04c200d06fdb00a4adb6e1bc38e4fcab5a6ab7058b351d4250ed653f9ba962a268a67b9cfabb312ab8224120c0807f8b5479b183a0666842586d3d98ed017b27c31c9147e56dec5a8dfa826ee8c5ff8d8267c82bbd137734938932c3249334fad803a53ab40642ae634732c23f70ba279d814b69ea14b2cb703d75f638f29a376f1f039962a16f20f5568b83ce99792b22b642690721ff9e972c590730700dccba2105c8abcb5af45164e04374584f6ca3ff5ad1e8d494757da0a1a4eafca336460c988420aa846534dd77522e12538e366aff4a558290b3dfbb3ad8a04426af66c594696955bbd8817c4bd17c127a273b98a231997873ab23b407ecc12c3ef51de02c6bbbbd8b7bb83259f1d138dc3825b805d48ae416a7d5c5c21357bd37ab2366ee99017ced9394b1d45f23ff30f28e896e4f21cb960c6d20100460d29ead1aef020d1016c99ab135e162298b56e4329b6fc52dc64173c527c9d75b74f1bb994c38fc6c6cfc748303bf1aa4aa6f79045d08719e17244e0daa71f4940f187e33f7f50dc2c143437122c5bddf48534a2ecd8da62a6d12128ccb62f5c5a322441fa560eccb4fef062e8c2c01aa7f616dbfaf2161c8447976e475ecbac2fa023418465a86411573c3b5ef51619129f7f7cb2dc056185ae20763eb9a74c4650fe76f10b916ca4728b42d036bd0e938350503db289e85f2296c106aee79e6eb6d428b950bf973b94795092306224c0b8fc9aba7b0aa6eada69c3a08f923553dbab083112e6dc24854d5d73daf31c087d6120414ce32f8f286d4422ef854f62ebefef5c940d303fb667aa755cf2b3eda2c6ba52e7b13198d9bd5ededf663fa145f9a9f436f5ee0dfe855fc3b0a843242696ef2ebbbc620a86bc8f116384f9034b2388cf23aba6aa8209e698c2140e87a9e6d535c58f6c65cc30169bc80e1062ab5eee4ede6c4e8af06eca35593d7e9a25f1dcdad23edcbb7fecd5fa9cf5c517ecf90ace0296b1027f38fb10ce3dde03a09c1ae4471944e45d8cc4d55a81fa7bcc334f5e93f550337f454d26270f6c1f3a02aa697fdd13a94e5d034cd55661fe5cf48fe22829339bbf0c3459e0e436859d13bc7c61293c0f3b77f05cea5877efeecc06b94e2e41f14036ce50209a29fa8e32d5350e44bd3bf0063fa1915b3d0a91218fd570b3e4bd1fb05ba8bce25079c3a7b17eeba9f0ad35c4a4c6031fd59dff0faf26ece7523294825794bbb66a3f351d805bc9385d97cbb50aee99e3350d3cf33680f5cf17bdf1aa3a041e237bd8c4e9a2c87d429575e21089d11413744a14491f7a46ba5949cceea7e554571a06e1e08c13f198183638ad43217c9809be0e3c50af14b2c91b6e1914e8c7bbf2c9c477e0781f8d151b0b01d81b673603b091a4769ddec410e5d259b028c62bcc3b777b75833f29304787ccd462b96693df54dad652f3f8ae38b998d3f175a2ea9d1a04220c4743ad77dd729ad8e8560239e36f2e6e1337935e3336313d43f3c86445a8ceef98981f6540d3bf87eb76da4e9fbed9a5a075ea219b4ce83b85879f403940e4ee039f0cf2599c564f8fa2ae5a6c3306f484ba53cb659c955953035fff19fbaeb74ee7852702d87e23235ce0f4eba33d1d3dc52a874cdaedc18244a2fb03ef959d3f77495a4d7f6b39c253aa6b84ffd859e24bf78414a95447b5becbfab8ff6c5521e785c1eac15a9d0f0ed91d789dc21055759ad2b76ee71dafb12743b8af3594ca9d85a6a277dac27eb5adc44d4de7f4c4fc8763da3dccc8b92051e94e8a51a888b351b55c034ba3bfa2beee0f3d3e0b67c17e5242fe6691fbfcc6c151f55fec2a84d59a11339ccf532b68340e760a75b80765f03fb28b80752776f7108522cffe01b362713cd181d89eb19105740091ff6154993c280d1ef96ebcec1aaf8a422cc7d7183edfed103e867411d2ae726501519d1680e714512a8b9663d3a3b5a784cde322c597ca2118fe00f5e36c2c3da791f514d95e7df5e6e598ff3cd0ae4fb4c86f27686a1b1aee2efcfcfe0ded1f0356e214b9da78c4b3b2a9e674a6c2936f03c254f520aff5ea858da508de544322199bc4c083416ebbf9fa4f97ef64ca5efe7418e794b450e58c0a7238a7c772accea48b90b4380d407f9d543d575ae16549a526dfb8efbb0e3e24861b74fbaeb0fd88106117f5e892cf2eeecbd2b72e5d816acff28a608e0b2728aae44652965de04781e087c422135510175def544c3e81ded4aefabe876ae10c20315ab9a6d628bdcda75497db1d1ac8c489350af05a89615928293241b56f9c5e53a5e7c07be52ff2d91c5a1f6d604a4bc71d1a1327abf7c4005a0e0f2f0750302da01c69f69b2b77f14bd75d68de98ad5ec7ef134f3eb985715d98c1444147cccad64b9ad2f8f98b490f146c34954d655cff39e5f0c26085f9c26b8d8bcae58a488f6bb6fc67c3ef0be95031aa70aad912dfe8a03c79de746d3b473aa6ff8dda3ae93d4a4169e7eb4de2cba02d9a4e1d46bb9518668dd7825847bd1c3339e1c73b02349e717937270fd8178088a8772bb89608fa0b08209562bbe495e2a4750125a0aa24e8feda16f6d17a704eb660e06d919acd909fb823b229a19675a9a91ad26db5afe69be70d775caf11ae679529f772894492654fafc1039bffa1bbd2050bee394f1d8c325d0c783f618d17100064c377f688195786d7da290265c6ba80d83bc9737eb96dcbec84605909f3f8b6b6d5d85dc7a6b7f1d2a7f6f9ba5098df591a04c1b63b045c5bf8123c062985335c3b414f9c4f98963294c446dc2dd3580e5ca23d5d643378f04df6a8158a756a0e8c76efa74c88a97f16bb747e2a4af74eeac0c34547661af6971c4e84fedcd5fd7a1819ebeb031b123f54c202eb580c9a9bf644c3ba5a395b4074af9b88449f44278ba20f0717144ddfec228130c61fc77c3bccb11a4aaf969d5716ef6a13bf37f170c8f81d3d2b14e62347463ee3bcf3884e319e0dd8b24c2b4b1fbcd16033dfbdde38460e3a417b566a5e3c7346045a320e5826a793adc46a7b828cbd6da080ec4876df435d28d519ff089fd9201eb8367c604e3da4a6cfb6f9b009bae9ea27d0559aa5b1c3be39f94c51f16ed1b64fc5b49c0d8241283b771c5406d4df626c7bbdcfa128e22e602023665259ad6684dbd6f2ff2f1de0b927795cae0a4d30f5d569dff223769e51429444899925d34c3c7e211bf44ad2131b2b1590704bccd64380b28ddf5171ffb408435f3fcd7f4071550f6028e5071986d375cd636f94b0f2b3a2ef14d0708663484a0c818eedb5353b8952a790168aa5d3be089e07cd38b22591e7299abf64c3132ab2557edd6d689564751ef090fc9f4d75b02194a79af58eb127deca1e9359ea076b5afcb55d293b57303352e0196b8c1f3d78ab42e9b86228443e151085a19d3c454d20d8fca52b1f4a482a86a3a581e28e96cf909d41e89ae042c75670bc4b1e2475f1cca88fedfc8d1a10de7d7f5a838be0e1fd11666b75b5bbef679ca2b3b9d8ed020d2b3b5664719a9ca8c1ec24295776d6dee21381a0e86e92bbccd5dd010a37454d777c84b0d9f8000000000000000000000000000000060d1420272b313c", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 34, + "comment": "signature that takes 15 iteration(s)", + "msg": "3e00000000000000000000000000000000000000000000000000000000000000", + "sig": "0db805f0519e707d5936faa395e987589da136f0edb1c74f887dae7b58af1689916b13197fabe469fc6c9cda1b856d76dac62f0ceaec869cda640d4aee2ece9402d8089dd85dd3c91d2b8054bef2bbd10cab5dc2a83fb82c7f3199e63907517b34e4d16bf86d4f8d4b8d231182287a329500ae7b0add3f82f643fc101c6dd0fe30a401ba08e16c2e898a393b89c610807cb5509bfea1c0bd2db3ba5c6a9d55c644040cb2b1d6d7615512b36f32ed1cf5cde7d6b01bf321a43d6261a4b81a574050d4efc9334a7cbb9f9cd7475affb4d2f8e1783c69a3159ef8356df4d88873a5302bd44697e3eb7a28ce60dbfa92d72489f55451483a479cc691a924dd98e05f02cc1e3576e28462c2fd7dbe45c0e5bce67bff42290b62bff2d595fba893a1a2644ad68e3f4d1633905bc6af34873ab1a63760a44c7cc8eaf7894f013a5f6e3a9b95e4657ebcc90fac9e0a7e3de97e99d35f4d796aa1eb0928c27deee26e10196333c469805137c378ef2af6e8dc8955ed0f0472a395309ec982ce287bfc2aa1fcf4b75c8e42fd5ad518fdb277c99d6e02adeddb289ece5f33481b9150692f0f8cf2398c4cf8ce2ebd2224f832cb2083e1823d7b452792c85d13923c1bec04bc4a10dc01a7cb42e86850a5d8ffbc76919ccd0d2b942beac349097aa79db06c114c00545ebc5437fb2e009da094d5f413253c5ecdce7ef352cec5fd13faa92388c13725e8a1a310b8e584d02285871f435d834faee091998d97eeb0a42e47821383899d8f1d672fb900c279e5923a5de84fe83d555f27a5658debd59898f62de8d4a5822f8772961933ba603d8d32e4965e8485ceaf6c1a3d7234b3025d25cd2580c731e95209bf94762105b0ee1204573f484d1a119cf41ab5389acb073d9023ec7029f13552a461820d84c6a3f47f8b678f89f4560ef0c9ef5e6ee9c884a2ca7d04e5bcafb1dcac579388d5118f016e243fdd52092504d1913b935d0caf440e86e42aa831f0cc5b84891c177d1b9988e0f6baac1dd5162cfeb9e60eb7196a784fc94cfbd53ef471004edc28b63b7d051fbc6b21fc854e0336d2cb9cb264492cfd66713863308184f1344c27b0fee163852fe3c7349e22bf1eabf74cd2a2fae7ca9752b884db119b5714406b4f9db9cd1249e3feed71d3e9cbd4231dbcbfbcf4ea0b68e4947fd91bc2458b5a8bc8b3ba23bfef3883fd311f64281d170a821a95a6adbe8a7cd8751fe44e1c95416df0ec9caf23b55b5276d2447a4f4d8796b3a13f9198bfef2cc1e27b069f9018411dc105cc61563a55a7f4463c121381df30a95d279a09a2f34174d9cb23d141c3f466d138d25569c18f5277fb7a9247a8afb74ce5485288a62c5e8930f9d3d80740d0f3cb207c16d76514d4270d70d2d5923a037c2bd8fd3eae4307992be35fd0c0222fa9a2a8c978488602e3bb16d64e22dbb02a54560f8ccd94a69d1913ebbda117dca4482ca702c6da0b8c88d441aa1e51807f3019fc4862b86fee530c5c2f940e9099467f91a819a3f4587458bd4fbbe27cfadce4f483932388107f53db80296b1b20178bb9ee1f3401a4a31dcc0b3c70ddcc89ea94c3bb76a5967ac4486c2f019c2d6f8ef91aa42c0bc8fe2a158044bf13d73070f772b0ad3f8cb65bf08f639fa04139937cad2ce9c4aff50aeee5edcdbe0e5572a8806f73bf7ddf1b05da477677db0db32303f96e52b4399f008db5cd8e9d163ce10a7d00ca469545e18fec26bdbe47ada471e7b69213560ba12b117eaaac8eed687c18020a7cd624ed11502a22a2e43a458b6dbb7b30d8d35d462919bce3f4ab8673184b80cea52b13cc1ef8b194783b40785549c7036382ed72844d3f9eb2667e173cb92d7811e6e1c9714205721aa8f69e5e3235a86cfde5c41cf3fa63b9bc4fd30fdb7feb4122eb9922b2232407dfa82b8a1d5d6796dd0b97a8c2279bcc0d3ea03d945079e59839b50c960793e83b098c6281f4723ea5ea2dd138ffba2199826c716273aba904993ca2b473de69c6ef9536f1e7d6039c8312e095cbfb46f6ab0eaaae1ec25af258e3c3fbfc828e38a0e15dab34fa98306098b01b4552ae534d37688fe4bbfc3242ae31e197f6cb73e6c630388f246e4bb33b6bedec730cdf992554ed82f869bec8b7435ca4490669e27ecb968e6ba0985bcf0f20223e894ee3c99089e5589c98f0f47e088ff28ed0aa2cc31e2debd6d661d4e2c22493ec64db75e3082522006eaa1c6414da31954a87b08e4c2510dee1a2ed315012f0988548a1b3c54a43b758c26a18898b08c6bb38687f9687a64ab95e77f6d9dd7b07d0593ed299548eac23024f140c53c479c518e42e49da86b1983c53c9ad7d41f6f4a14f649b07b9ca336e747b233197f4318f1066cdfcd65fae2ac165c3355fdefef9cc6d614c9988bf031c7c19300b7dc1ea9d1cd6a418086b7505efd59ed5fd21bdadadf38c1c71079ac15c476de111cf670c15e5b5f3329fc980b2465ffefb5aa024b85a0b2d2f1a5997acceb3e1ffea8505412948ce5666267b200b6653daba874a39ab7e3fcccb10d6ef7b36e7a452e03372ddd2800305007cde826e6700e33e9cd19615d0da09882329ff9f83bf6c2b2600f486667898afe37e6b58abfc9deb3c3583635d2219786529cbb11b34f3de6deee3ded351fa941572ba180ed6a37527460b00b8fdf9a50d4cb711fc515c5a13622554f27e4c5035b91f2a0acb6cc6bc83fc844161c891e7a6c791ecc52e935963482336dd0b6bbdbb8c90c84380b3f9656561c6cc6c46407ef3de72ea03172bca8f0f9606421018d753ebb40b113bb43533e75d54d858a191ca6db2a69bed92a253f3bba7611c24c8a6e2ad597a59c40285b6b7a94e7117b355c7710c0151cb87ced2c54f96ca82e5021c9fdfee715bb8e76e01527b640f37b931c86c94ced21384766d8cf02b41ed9d61bcd97790dcbfa7b8fb0c44e2763bdfdd4873d6013ba1ee7177403d6af2701e3b3b93f515331e61f4d03fdd2e513079f3e9d7cf18b3626037f9831ff05f403950f6569147d27cbc58a5e562e1717d99a1f34bbaacfbc799b33daceb497d9bd7a46c8d0cd21a074fddfe2ee4980f79dd64bdda25bba3bd5ec534bb5f036ba1b6a715498b95351f85a12cfa0ab22e28ab31a90e11010d0844f8b4e142de9c18b79beb54fb2ffd30c895316f8c3f7b266438a480e15d6662f6253a2fc1cf515e9c56efa41401a4919e01169b5929a68c1d0a207c538d58e275075594cb265047c6e8e0bcbb746a7f6589ef67d4a84fb555c7a833ef6f2a48442d88df02d98a4dc8fc7f95d9d07744c44d5003138f80f4421c812f4787dbc0295f2b5cc37dc4244f2862aa0ee4dcbf15deff3283cc3e43aee8fdcda154e92f10e55bad012a8720fedbe4182cc37468a63ade93cd80c3aedcf79fb5ceb80c9de7e383a9f088698784670f82821dfd86263d35add59c365a55325f686894c85c42fa634bacf5a7a6d3b16039b0888e63ff49d048f6cdb02b10eb906ff3a722120d02b4bd9eb56f00c13e91d4a80351aa26e7bd53ceea10297c3445ad9e7c0e663a6ae0e13d79f7290adbdfe13b386fb14c545f8a290480cf3b2bd94c70909ef2f0a36bd6b590acafeb5dee0fafa6b918ee7c19e091784038b64a2242e34f57a070c96425140ac058febbc8f18b274a188fb57342a67f5242184abd45b2d49c7bb65d4543a132b6f995a5e4ba519369d48e09693e24df8a57ae3c568c5cc3ec20e03a3362ff37ff327c80edb4a6946c20bf491a92f780b71b500a9c029c3ae153428839cf13f0444043d0a8ebeb33eea621aa3b26a2b570a444884545b689015f43ae0673958ffaf5c7527d800b86a42580060e05a9e0564d25e80a5228eed2ac06432c1210c5bfea1556de901a43b4fc2c4953caaeae303cabbc5fa68fa35638757b2256712ee07ea085f275e7b4b460140efba6101eb90cbc08c2162996a7a58b86f2b6e25fd7b40e74702166be3a81fab64a0b5697bd20eea4dc07aff7337733d17c272b2015292f5073c2a8ce95544a4b1097c2fe103d32500b8a85f57744cfea241d9da9e17570af639c3ead05c0bbe43a1b872b93dd6fd027aa6c6c1dbf63e416b8d4f3f30b81bb35a759baa590361a679c51357d1e2d7586fbcf1fb7ff4da7ced69f8244e5cfa0f66053767f1743daa0798c431fb31f47aff52833aeade4a6ed68e4a73c126a2e7bbfa24b79dc8e74a63736d1ea99e4fe83e6455f5454662c9d291df00067501771aff021d4c7b2cc0025e21692f1b83dfbf832f5091e998e5c228345389e16a1befc387e9e995c32ba0d3f51f57bb81621b2573008e03b614bdb6d2355dcbabe4a6872d5ad6514915bdebeb6938991859030722b4d3dda3b786726e0923e1e3fe6b0e4478137f95fb7fe205111a0cb952f80af9ce1ed39183d5984425fbf03402bef28be12471f8fe1f57467debc25b4fe3fec8d6eefa5bf4b5b66b94f55b66380b3b9ea49c309fbfd1cbc9ac9e178f97b1ca077b54099392f2758efd813a3c6b324b19c9395eb19e41c340b654f781c3fbcdb257ca3aeb7da9b121132b24da050e6528771f217532c1731aa8aced6111696093cd17eaa453c0ac1b2da03a6e86b5b717774ffc3f5dcdb5a64dec645f1c240634d55d382dc8d17864b3148e51bc7a2642763e55253cd53392b7d0336e023e9295b01f41380c416f969117cec5ecb13c7df6a21fa6d4ead45ba1bab18db63fdba2d6670b740ba0393b49f866da13980f73ecb9c6bd36133a92514a1e0cb8112998696e6c8ba84cbb8fa36cb7ad657caa9d0e99cfbc9ac93529b6f0cd53520476d209ef0aa13eeace9ccf44507ca72a106f3bb8c20ccf082053745addde093bd184f036fa5f7966e4073c9b8eb242fb6fe69d8399f86d814d31bc94ccf0e6cb7302ab1c9bbddc4a21acb4b68aebd4978d099bf42e631e7d023e241fa4ecc1d4b45d64036bff9c3cbe030314bbe28de33ab0136405667c1b2039b505a233cf92d59270749f72423315640983a7360ed6a12be2a010e9cb930694cf2570de5dd4043f29edbfa249bfb64856b69e6868cac886fabfd46737e9089d197440352bc358189c2c877b703a6f523672174f7d3ace7bbc191a602d6f9d5b39ebaf3d36f19c5e81471fe76fd821065436421aa29354040f206453a729953d249a5dc865ba66f0d275a0ea2bbab48c43e22e5054db52309cdbdb896863938c9dcdc0bc9ba7c4843c5ed70f81bc1c71aaf2f83e9993dec0f57ee17d45350f049a4ade9c08fa73e3bf9c3835c7694bf20d1ff83ac0259068e5abe01c501c6bf6e9277f21418021c041a32cf191fc387eacdb8478f76d253f556d12921978a074c1d52433645680e5761d85bcd7345cc4e33124de465680566a37bab7bc6f4b4ee229ab9327ca2511bfac7b1a16766da8ed9c4f71b8dec2fceffb37ef8f801430e2d99b328cb417c656d27fc63f41951c5c9d2b01443d3dd14f9eb355e014e50bc5076094bd864fa6f7e61b0f145514da06e7a0e0d1bd10e7d2abea5857ba2d9bdec9d1f1fbbd56a6d521271ae3fe53b82c91c2abe9777d2f437c344f8871fc6cc81555b9675e7ebb25ab60427a411b0ee60dbb39107ce81855410a8fb7e5a5c4aa272b8f061689762bd9fe8d1bd4619ca983e0c0034cb2fc299e8ec2f5fd04ee803e7600d57bfb8c1513c1bc6e03c33e083d66feef969bb051c7f9aa0732add065d32d98adf0cde70bda0cc935424a0aa7dcd50e428a7dee7fde28d1c30534e33d835b5eabf979de8fa37d52edac75d01e68178a30ef0ec089b4e6cdcd5d08068d7a956188795b4d2e77986483f65f58949bbdd09649f438249666b57defcda88aa307c2e74abfdad3d380c4f2a659a6f0537aa04cb09ad287ecb1531c8c97a1598ac05916a3cd7bb109ebbc5c0313e4c9c21a8ddb7da2fa95fbde033de794f4b578c44a2f7d370c9f4fde44a4b574dd830df50205eec538e4a8e06664f3e62b4934adb6d56c979a6fa35093dc912f162c87ff30132aa4f2af83afae0404400cbedf2d910911890dd031272ae1f3d5e46f557abe791ec52a136ed044d3e1ca56b435ecb51c9901a0de3323d3db01561ea9b11f6499ffeb7bee9f9dae85c7b575ffd2987c9bddda79b33cdf30477c66c499467a14e2e8df6c57d6bbd732555290c6a7bf3d2cc5769448a5205dc138a5e5ae26e6ebd4388c078f6141fa948ff62cabb5151dc6448836058e64aff01dbbf4333d9ca3f8f7196f2503de9d6b6245624a0d2c64c36f9c66f8cd5e29739b9e73d875b5a22db3e4f40bca6580887d7e7dc5bcb03d75ce8955c4414012a2f3c0cc5590069de790198e642888e4d4f681ffdbd93f85f7fbef494904c598141f6c0a0032d6e198d28b1eb3224f74552f5f5312a6d68dad782bf2adcda0115c2913b70704424081051565a6b71989fa0bfd9071d1eaaafbcdfedf5fb02156283b4f23b3e5575d6fb32649a9fb8bcdd174b667990f80b1eacb2b4d6e6ecf2fc032d3087d7000000000000000000000000000c161c22292f393e", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 35, + "comment": "signature that takes 16 iteration(s)", + "msg": "5e00000000000000000000000000000000000000000000000000000000000000", + "sig": "fdf36e7f184e32df6e47aa2dcfae714a2a74e06e67b4653c8c1dfa4d68c10054acbd2c1ba9a1b22a6a302488349193087297bfd111bdca1f076e2805af8266c724c99da1767cead94c91e33e0047d218cc5d26618ff3301f61ce6d310869f94540a1302102df2495323b6c5e8009782eac08c048d4149159803a1170bdac004a3cd96d1563122c27b98092e86d85f0ecdd96b2e6e5e69039e247b2e80a190c7e3d75b3fcd79ac1dafeb8f55f680fa0367cbfd3dac89e1b82c341291392963f24b7d8e7dc16916da84e90bd2eff992c83a70a430b205a70cf64fc1cd965f5a9ed918753ad7ca00f3666f39b6caa6d9689e5f77109b2d96aaff629ffbfdfc0599ec3fef0557f6091d727f745a1d9d2e18145b52c7855d345ac63f05abed9eec5e87bd7843ec106fa1698ff57896f4467e753fd6bf5db8ff126244bc36cdfba3b754b0a7fc1c8cf46ab15c16ccc34c993c0ae56d9d8a3fede0a2da8ef814ca4a4fa27af4c64af065b11806122d36b747f06208b5b16633401edf92d486f9c2e7bc5f6249f8cdd34e72d8c41d160d334e2780450d692dfdd62cd084d15cd2427e31a7e51d37000d1479deafc100a7085ee72b64febce7f5e0d547a9985c6f4ede6ecbec5eaad40268133756d0e698fe857610a148e33464ba35a42527e9a7647603737482cf9b29f75d7f1f99a51e854be1698d90dbfbc0e00ec90e1e8e4aa01a58a0b1ca91a6d40d0d9cf5409a4ce649b497d792b01e3b7134fbd70563f67207bee6f943ad12c13942dc377fc37e6174d04d04e1f3ffc38217b1c2387902c22d5d7a455d141869a63b8141eb25cb983f248eb88b2836b879cc7585af93907b01e6e8688027726269159e87c8c70ab7cee3c25977eecbd226ccd01c6c3d5682ef51ad3affa8b2099d5acb591ba397a80ac96ba8f84acb62a3f452dfaf69e2e8a98ceb54178192ea3123e31e47c191099c717dfe170577419a6ffc3bb68c75cdacdea67bccf3e95a82091ffb596c65cb07b0dc2a8e7cfc2f172eda684aeae97520cbbc284e4a3ce531461740c077da7c92255e5687333678759754df361605e751b67a1055014200242919e2c13ddb0c24225ad59c84b1d54ee1a1c3a53a703a2897d29087b24b7a8d067820892c1afdbe5b184e67e23e3247de697e54d4ef2dc077b878f16018f3cdea630d3e1941db14851f8e4940c2e1314863b5bdb169b6890e02c9a181d2d162bb6753d97d901943a34c55be3b580c44b17cde28f0f0e086d8a96ce3b4eba2b40356aee495fb3ecd1b194cc3ee39b0714ae25a431bb85c098e6d2f06d83bcb4d70a83373f08db4644861ce41983ddf7a7d2431ab9802da6587848c8e3425f341b6ba8d7b26be336bc19631aa8e3a2931301a9cb9549a2f9ba2840fb3f04210bfc5d1d249898aec8f4695a005b01c8047a207ed5cd88e0b0eee1907eb1da46f1982c0c189cbaa5298e4cf61ae017dbffc8d07b7bdac93915e6fcedc9e4b437b8a1f7b9e984b9f4d52fd597421240b6a50122aceec4bb7c9140e496d606ed67ce96fafce40ffd1594ab327d2c49629fd7fa897793a42d272306e42d3a3209d0f54ba50039638677317f6ecddeca54a4d64a3eb9d22a5fb07d228923b0a76f94906133283a634634ce9fce9ff2b2f2d0ce7ff53f8064d8e5f44da6b6b760cb650b0e6119771d392611c0957f70fcb046cc1f607c7d6648716e4b58b492e4c702627b001dec69a8590f900622deaf382480266d16f9f2c0f16158a6c1b7c9434a125d464d762aeeba00bea3f5a0e7dab308da7d5bab845053258bad0f06b60739f6bb41e83b815d120fd1ed1ca267972f6f6c79ce76e9c8f8f4c85635292c2b21222f5403f89ae7cf8085ae32ad516a6481698d10d603469e668ea8cdc7f3b7f4261abb71ce845ca2e0377a5474fb51238df34dc45a576e4df095e847dec66ed1da68820ea8a8d14672f96039d8b90db3df9456c3ab37397804d400510bfac610f3feb17a6ecc4bff0d916308e6a934e37fb410e6ef1deb1a6858c59286d64d44dd0294d3bd70e2ff953e99829897e8af899a1afcb7c05c375e71a08f950628de0966c9f0401af0c6dc7f4e82076cb36ead49e1017dbae6803c44b025986a48031e12bca6b799e56a3e529873a36d5383394ffc804d59c649985d94827197d5ab4f90e4fa8034588ed5859c04f3456defed4d2ac77064f39c65e73d2d5f49b1f929f99cced317cce35b806bf8e536ec13295576e9d48de67f72d4d5e861a9d770d0b21dd70102424370f7b65d2af8249c6ac9829214bce9500e89ff1dbe7be04293ed70e576402304ef536c51ec55f3eaa1161434f15a4f0761904f7c7e79ab48cfa7eb190fdd71a95deb72b7bd514661c38d5389ef496bf9d43fcf50802aead7b72f85fe79a0feec21ac7cb043db1bab3745dfc9b372830acb6f0a30f2f232e261f51bec73e92b36ff5480355095681061e97f808cb48f3974512b2944594d956b83a783e8e665d5a9d6d523ca2cd61e52a9bce94acc00a1993bde73104923962a40bbccde01874b6d89eb913e301700ebf2872c6f61be83dd5dc58f686c9340f8a1e78b68c3d031ca73d0154810139595f3c596b91da0aafc510c767c4044d49efc7d0dacbd4f022fc01cbe4dcda55164f6ea06ff36faef717c09c5ceef281827a9972353eeaf193a3ddc855684d2f6ff0794eab81bff361d58a1c3fe8c4ea686c05d360dba65aa07be273b9969ad6475b52684bbf3865e937b1e3818c45df0707b2ae8f661b829dd405087f795df205d92c4ec163d04c964a173a7216d3d98d96d06d1dd665190f31fc7ba3f941b3df64f78611e20fb1e337fb7b9856591c6ef943800fb927a535f336df1f21f179d72f752967e436465d9fb4a04ed9a61e3f2f92d61ec4fa5ac0a7262a4bdf7da1cf7865d3bd61b2036fe50e6541c2ec760938cb29f9a1ab13aa2be082e8e003cf2c27539d6ff46f5cf6b12c02ed6a89130b44717a392b137f346fe2b02944067fe35e77038262dabb950f766785df0fd30901e258b7f4d783e0e68f0203743c68ae5297229ffa98fb63e45a96a4261bf0054da09b8fa165727161e074e563b8b07c2c8eefc754e820c1723cdec68e867c070fbfaef039182fc6f45044386e49b51862ce84b63537be8f62833aa2e0e886e21635f0a36a76a2af6add8163e6261d0e03e41c415254c7683456bb6b64541164cfde5924466f3eded0db95259a505ad1171ff71ecb9de0324bca48e4fb938ebdd8c6365fdf34b016b4d20640e10f932bba224e5ab62128cc889277e63cbc049e295a0185e7825a21475009dfba013d75c921a5742ddc0c252672f2aa15aa31112a343b27a13870ad1a2551a5d1856c7fad6074fc21cd62d77231be5173c8aeffd6cd6d7eaeb236fca78d0227e13eafb9489e1967282019e8d8fa0add0cfddc60e99758dcdb33bbc3a00b8da1aee3f89705965901c4725b1c0b1b3773fae9fad7d1147cfb1cd770c6dae7307a4ff6fccd474e976c34e5b4b5e79c6d0c8bea023c8deefbc72aaee9c270e3003e4601a1e4dace7d8ff563b77f607d855352869b2a15daa6ec756cb09a13156599092f3a8756b76dd51fb87a0455f008230eb40086f52436d1313e4cac80982e7d93a14c38df9a0cc6e68ab9283fe1749331c900251fccf2c70efca523eb819536c80063225a227a7a3021b26c7c561bec2e7772a729effca736cc3837e52889673746b9dc0f0a9171d3a46e7364f5ea9ef4617695b0a27dc263d38a359b07dbd9f2833f5ff7fac9a94cb2c37d2b0ab5270aaf32c85cb34c8028c9c6b90afad57588bccc260896ba911e850d7fb28487e83c19fbb5bfcbc7ff81ea59f2c5513d4796eaf436e03b3da672bafc00e1b2c672f150bac9cc5b61863c8c1d55436aa497e3d90f777fdd98546ab83248b07d462e3dc74d96899b861df81ce144eaebdf76c58e83dd7057200382d19c6508dcebfa4a6a534d79509d0db98ecd544bbcc7d50db8a211cc1a48ee8abc98bd7a584c7bc8ead5d193b1dc801bdc6cdcd83d54b2d66d9fd2a55c13aa1a88b8533fc4e55843e24aecd3b0ffc1fb4ffaf71051a79bfcc8f3ba32c130c73daccd3733c2fe83d5b0bdc28cb3c5b91a2c34d94732058923d0f2c228997a214daf930d1a0c9c464156bb1c0a112eb0a635e4e7fd29ae74ff9bf4d48ed2101de36c765afdce34476e138231e9e13d47df2ff7d43cb61e1edfdbf6d8aa339899f444d57fd31aadb69efa4e59e42f026d4f97a069c111ecacf5b5d607d051d199cf22597b4ecd1a8d3cdfb956b3f643abca359af16a9933d3c81f42109ebb90d12288fc015da94ff27ccf2e58236dc70f8947d596403ac238855e570b0d0fa4c1eb629cf95a952c4c674be7f48478db1135da78869611a3c878eac0cfa9998ab11a1c9e576510211f25edf1a3795581bb396b04de8009d3ded78444b64c89e63b8763f67583ce78ef802ac010f50f6d233f23e08153548f53ffe75094a87f3c55ac18e46112e02442deb6c9a33f5d6393e7a5e64e41f0f744fd418dabddcfe1523a8db7a3f6775f545704e262026f507e946c589165220e4a023eb6b54075e150528b1fe97ca0bd6533142a7be5b34feb60c501602f155c07c6f485ad07d36ca9906dbdd4a5d2ca45ed82d352821ecb43ec2ded6713c60dfdf108ab8c550740de15ca32905c8069ac8705be4ce0b185a79f0d5169432235837ef10724373e3467ce84caf5e34b12e21fb6b793fb71658c3e30c420147666b9159bc766fc40ae086205782344bb61633764a56db44c3bd08e79eedee5eef1721ce25a311112545053dd8d5ccd4e8d2c54e5bd50ceb888ab056767e44850232f289035a90151a328ec623412b4443dc00b8e83f4411e0a592962bf96de8a0cb68524b96495d35fb5bfcd2b46be405c13143205708099b4fccb8955880c02249ca5c76611e44af1a807757e6fae8a2730bd5f6b1cba945e764d163b7de2e97860bff8b13bcbcad25e3054093c4967146b16cc209cdd444c6b66faeaa82524a5da276d7f81a9fd37d7490fb58da052602b881873b256d1bbdb46ceec354907ada9b6d9e249751a9baca7b7846e20a62007e737a47e22c8a415a66341b347bdf39fb4a64da392669d3d1cee7d3e2a5116434cf4e6b7790775c1590b99174dee32e3a7e9690b72314ed379ab8c6c092b3cd22f7dac834406ecf4086412b83bfa2141e26faa473d1a6c6dc0d9c72bfea62a954da0f895baac25a948e579b98530e965996e7e9405a3e6fc8fba4b40168a2b847fd82002c7904109b623dbb8e6d2c178c040e46c60ea89be06758903595b946b11ef4dbbf0aec49b50a15b9b1f2b95382fe8cb25e58281e5ea4527f5d4f4bc33348f073d8cfce6c91b7a98ce0612861be9c892dddd6ea5271adf380ae01a471b9f4a2cc7d635c16c53730282e11c204a7366560c9d6cea8a8dce2e0ccc716979d45e69c897f9c7544003ece79dafcb799069abf0c9263ab18578ad70131310686b639c4d5e11d3e137b4cf6f64b3987149fc63f58c9c9ea2d006b2a73efc7650036940fbe5982ac715d890b51460e19b345473bf30ff245aa87d890e6705b1765428fd7bb2a8f59af92c5912ce3547e9a985587606c8ed0c14852d78722d6b576c22ff0c1e4b38919a747d0360cefd6885c613a86fc302139ee5778e5a679123a3ed2cc689ef9d81ff1c4f8d0fa4577a0b8b23ba5d787ba0eff1736be3bb02f65b4ea4901f685afbb18b144849617c04902ebe041812568573148e5474bdb738e06eb2bd0c589768c8171828a1e6de561650e60748257041f52914a1f29fec27927ead261562ba1bc349b2a2fa874bc0d057969382341b2d0e0e580cf8580d6bdc7609cbbabeec7ba73a9ff72a3312fd1f8ee3dfce04b369597d4d65dcae62e62821696a2fbf5210ce560393cef448e3d911e08ce0e015d9137a93a5f1f8ddf2ac7ffbe5c6fa18faaa23b2413a06236236e2713df1da406531f1038aa497d67406946e43079ff953a449b9f5f614844f0d7b9722fb387b5358f40aa4a53054e8663984962346e1ad85bdf3cfb1f7070daa96e1d9a63b804b905bcd322d55ebbe66d87386dba6977596113506c5e35f713b642e1b9e1122c1113cfcd2a1c8397182700756e6a091449bbaf1c8012ee6d32a0e6367b001309fc17217437c70dee9499ca26aaecb2f9becfac5e1dd8136269f03df3a5d19e6d8495343dd29717489f5b84f7c896c635d447cb2b68dbbfe15ae6fd56c790d490e47600419fb6299a6547f4a733fb38119e859b4304207409af9e68278ad802bc905c1e001848af72756a92594f849c835c295e4bd4ded0d8a65714efec2a8d0541bfd0fea5e6b1de6059fcfe616781567fcc76b6a17d2782af7787db00b158cba8af13bf084ea4151e318ca0bd193340606b8e999c9df83250859195f5212952bcbdf0214d55616bdc0f14253049515766677c8bda00238082add0e2f7092b3a5d6faaeaf3000000000000000000000000000610161c222e363e", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 36, + "comment": "signature that takes 17 iteration(s)", + "msg": "1700000000000000000000000000000000000000000000000000000000000000", + "sig": "6afe73d36aecaa2ad4688160baf037a0e56fac2173dadd84614eb8223a35ed79f83b97373aa37f04147309b5e6900f6cc68c0aa7179a82604634a62cb66eac1ada62444e03030e0585f00175c498870d886171f16c825bc17d2d81f57dd8135ab4430cf144fe649d5b434f746cd41f0122d76aa5e6d9c474a187359d9cec2288ceac723a72c041a01b6f6d80e29023514d2d5347700b6a4e5e4df09891f7ee645586d47dab67328537d7ecda0aa3dc358d1d52b24caf88f4398436c804f0acac457959d33559938c9d859d4c0bb8800740f624653376168a70f9be80087c263679dc1e15e22afa05d06c48245cfb7cebd8e23ebda16a372577e3672622fb7e94678739caad7d52f18975029cbdc30bcfa65a49628582653407275f8a617eecc29d006b666f2d310df7a153d1f0a3683a01cb39edb0c8432197e2b5a12ab9cdcd241e8625325e165ad273aeb6747baf059b70dd9d86cfcbdae023b4c39ad86f21725ba8ab8262ccc9526268d1052779b0cc294195a82411977e5f8f41187a1482b0d16526b34c86e41697768a2a916e68496d41ed7dd03a4de9e75d7aa5a3b21a99c5927a6f1f9cd6f8e67f459262703e207091c1b1c4a49298898c9f3d483cedff39a6287c1a1e2e440f1100797f88b655d9c6a2791ff7427364145a95af90f71d5f69388aa38ece566b0a56f5d7aee9a0045cb9f7f984ae06b6cff142c39c51873a8166dc3c055773d3f58b92b0216d065d59103826220c30005ed48968c5a0cb5c427d145b35712c820f271e665ffac12cdbc59e221fce0d31363dfdbd3afc8f8c65e321565806214aeb37016be63ee32d33bc9638926d875fe9fe0e9b4cc6a8c9bbc02f1f5596163b724066b37f69302371bb1aca8d5e5535d883e12cb211a7ef64aa270a9eaf18cb682b54369c644c7a30b5f9fcd0ac1a637a9987360901ab63af9a1188eb81525ca23794b30e51ff29dfd69a79d95d819cd0c583be8e42a8b92d26da6a9883a9411ce5366778753b2f13306d8f6d58588c4dd495f986a1d50db1e058dc05ecd75e566f951d8c9306f828d0c29e198c44cfc11758ef23bacb44e3602c2be0a06bf51d11ea38be78239a94cd4b6ddc7676889aa640c4ec2400035d95ca3f2f03732123fab7c19bab26655bb4a1adc78e27a5d29a590d884a24a118335655b0cc420fd58da2ca6d3cc7dc2dadb14096eaa5ebd262ec4d13fe25d2aea89088998bd7d212b2ff54b6600a65633ef43e3220acdd4045a7b54543ca602ee31271c8abddbceffb4db0db2276c5465445744384de5931d2ecf7ba623574bef009319b0b63978286481cf7a8bffaac077f19f359158cb597cf24582b304c72849584353c97d6c6bbf0f7aaaf2b6885418b08c9a8c440688a1d5a469cea93153ac846cbe13ae070f85390940dd84976330651b55214112a815808ce97e3da29dd7f638262ec8dccbd8fe9f8806868f96d9d68a318830dd2ada8dd1885b4811892060ee0bbf8df72a86c3d2d63321567c65eb2f4c90f42a9c602cdcb0f190f556ab9505a8de85e24f2712b714988e9514803f068a4610bd5f03b6994316c37712905eba9e950cb6c293cee3867f7731a6fc4b5838db3cf03ea0b875c4af9752db8e850615d6f4f1770ceadc74abac2bc23f39f9c6e054d2cca9047586c4a0d20311aecae57e649fef1466267edb901e9eb3b535dd56f116a133aa40dd286f06c14f1565e88c3323df9b902d86c2e8b2d20afb65a751811a181caf605ce0d48edbbb4dd6b080cb9727566ea3415053d096f8493e6186ab2b7342aa14c574212aed4b304bfa1a6086e47d0c46d1e8fea663fa256ff74a7d5206876b751af34c8f736fd10a82f232208e8f0ecc19d622e32607f93d15be348e2fcb461508a0e3ff622db8aef1193b3e383e36494580ac411b2761abfd2d412bc1ac573867e1ee2306e056ae332d2fc37b9bf0a223314d005cab83de31623f3515571609c18dfd86ffafc6135b8606b67dbbc93ee3467f6008ff3af06c62128aac3dce1166292f316735bf99caef120edfbc75c64bfc8bf1b81c8d3a4f81bd6cb95e46883a16feb682c098ad32e8a23d0c024b9653da6be42009997b26d1dcfa0cb7d08c47f269a7633547b2566d685905037bd32761306ae1b336339cfbd6c3863f8122a185497787c1527e3ccfd54fe876ba7316c1d24c4dbe0bbadd149884a7558d897e753f6371f8c0e56a2dc036010e9a4b86226cfba2a5616a08890d7fc0d5e6703431dc4e8b1085f72995181a05f35a9b1b621979be1057567d0bd6406caf244008eb72269a15a788507b71de629469dbe5653b02c6a47f4034699ef7889cd7ec9e8f5516f292f2dca6a69565ad16f93ee251c91324fff608882be6639b35a9b4a2b0bce923c56bb605a74ca1851c594705d5d57ef718d5f16f5018478f54ee701789c43784e702d0cbee948bae849fdfa9e2d4bc303d9d11abbc000b8561e68eb51a0596053e30b2fce8d90a6728455edf19461e02137b8f5e362d68df93244956cebdfc8e67cc67e2aa95ebd4cdec1a36413473317d45b028da034a1ec0408ff0156ac274622f966dce0714ba8d9cb4791abf3c07239b7eaf96a0727314345f49953e64bd77dfd64f463bf36f3ce65f18fe6ae9e9c7e737c0ac3b48ed4aa2bc53a0367a5fcab60b6c115dd7982f8ca9e00f25f6be58b7b8515b266ffdfb884112bb46db66672c7b23066dc0cc061d34e373e4f125baf1b625336d6d6796064a1fd2ca95823b8b1b5512fac9521a691dccdfb44b10ec5c47f1ac6a8afad1e155ee14e3495272ef3953d65488c7f53867905f5671cdc5605a31f4630489ae90f4dcc7a074c5824296c2f491738cab3c8eac1a99147531f5dd652027f1bf7b450ddb88c42033cc03965ca43eb7b0990aaf0b470432dfee216b0fd856ea357f62015fa74ba2147eb6ea3ed948f182571f45c04f8729cfbed4f5dce8f4201f907be23337dc3d89073d6965d21871bb30209c6724d14336501a22ab83ab1090a372e7bca192aadd0e161939274ab6541807562f9a8fc8617bc688b93f9c635ec08244f4ccd5e19f4e0caaec108f5d6d935cbd2e9953d1c6cb84909b3b4f9d2bab9dde01d885949515322ce9fce4e3288096dc11c9c3124e44c7c25766ef0daf0c8bcdeed8fb3c1dae83c44072c242630f7836f46ab8cbf44e6f0b85df96376fbb40d000bde32f2b5c8f0323e925dc3ad920d660fea568ee8c6800fc45df65f217a5d3b5ffe5233f984989762aafd3d844a56d6e68b15bdd989bc63e256aadff6ca0179a872cac3d2db3eeffa3e78d79b05dc8cf78419cab1ce5f61152c091e8c13685f16d168a3f0c8713fbbffd5314f669b149ae1bf6813de3dc81c65d15593d8f51abb2247967fcc1adcc2973588f5458637b53ae8d6a43f1071c7c3a8dbacffdb5897f1c9bb90b22bf3fce87cdbb538607408c2db891263d683cbceb3fe772fe7742b1fc280792c74d197f80710ba38219e8743639aaeac6a29feb0e3592b7e57f53a9e88beebe23ce5e0791d6d50649c938e1307aba55f487183347bd2b78135e2988262d40434d2600e4c2b0609dde365f369f9d4bd5b18ae8ce07ee8cbdbdabed5f24251bf10cbbb257471ed9c4ce68e97d9b52f974b014b67d37dc9af0e5d6b568cc071afffdbd9dccd8748fd2a4cecbd15f19f7033e26ee7b5314f8f6ee319057a0e38a873bbdb96e0c849a014ef8c676379cab2ce0ebd3ae1e9c048ed2f16c600508b40d78bca5559ca978df5a8763b01cd606c6c94f392bfab90f3da115338a3de0ca43f7401f25bbed0bc67862e7e98782387fe552628f479466e60d332e2b3e850d60742487fd7841ea792e8318eb70d3969d6fe532e2e1c75e1da025a372e286a5a7259a0420ab74e14ee598e8b1b318fc21cdbdb16854e8ba387c3cd969477a7bd11f405e36fb7fd5c89e6c466c367d200d00ae824023ba2a91f112985e34143586a3e47a8d473e1aadd4fda6eea327d43c8be5abdec3394fc7544e6f3c7098541be8ff2e49a8e5b99d60294cbabac9dee43512f3c935a3a2ac27358c37c64e4bd67da82813b195e8a716b70fbfd45086568cde63ff37602489da9f685966359e728002dba275e8bcc7426d05c4949d65a1e8933229c734005c0e76f45c8a0e1634b4871a2c47fa8e28b36a444586be8e1a08a2e0350f9805481835f50ccee9c2b94b6b7f3787da78071c2c6ad4e7d4029c06ba838b90bdc6a58ccbbab20979560020d06089b9067e225eca8db229e9999fa2bf165487761890c9ee469bafd3925fc2cc61dbae281b45e7a3c92b81c3734e9821422a1cef9f04ede4250b9a6c77899934ea87ca1689cad0266959a54720c47d1df1ce38ac738a1a2ec77fe4cb60a8495c521ab437f815043a909527ced52c0dd493676ee9ac49ffcd67e3ba15a21b4d7e9ca7a0eb4417f40a3923e5640faf1834074ac4820b122d7b3eb78e30b9dee1e754b35a22baf1c35438d8f0bef4bbe6ec83b24b8efab7e6ef115a0cf158db10840964c58fe308af4c78de7811dd54a7bf7c912ec40386ed77c9e325574c13cd6beed6a0ea1999d3b6a7c2a84c293f1de29ac3d1619944ea0c6418a8172a235a329a7a1e324338468c28e35b1b5c4ee2b777c0b7faa99f3a69c67f8a52e6e48a29faf3d2f66754aa74fa09eedb87d94fd4e9acb0fd89af0d67d483b6d2b66ad61600e418332fe5da3bec3298923bb30ac7e33137f4a7a749ef9b127be11a5e5dfd7bd568b8ba58b132380c59063c337148acef096b63d576483dfcea96c8144e8f892f8d597099c185e518fea0eee7fa98c25ba0cfd14e401659c508f26ca99c80b3785f7381466a868cbc36cef3a2ac2316318a331a52a06b2dad78b6527ba12c888c54d2bd0255516c0c097580a5d545a25d58e57e9979abee3427e222aa956797df35c77feabb5cc78a6edeb9c3c49f5640faf8b599cfffa2329c95c65d7ddb9db72a9b281cd8d3fba3c16fd8a36aff82d7dd401d61bc498d2c8216f5f2c2d7a5071f95cdeebe78b097a0270d49afd4bef91730b7af93463b0bec029869773e77c083b00a4eaafbf917c7b10d0f689e863d9d920bb19796505c84208e4ef0310e475f57d6df863838fb0e43b7d7f06583fec059b0c7c04f54b0523a7e641ec654c7f6cd6ffeff9bf92901c6e71506b40c8b09ca6929e9d3b2751737fb246a4f630a21039f6f872de303d1d9be6248fd54f31a7fc057567ee9d2c6d634970ca48e3e8c78c2b894ca4ff647409ae3bc9d85056bb81807ee5b6e66a182db6b6d0d4c646342668fbf0dce135f8c41a5a51f1dd57aece7947c35ec92f45213abde698531bb98d408171f62773d972cc5c364e9da3bba7b75fa64b7843f0c0c7a358d90ca42425764fdaf364db2574f7d102cdccf58614ae031f3dff02f6e7060b06da5ae9276aa467a8baf90a3f95197784deaf1a212575e7e004df504024c7a33b39b0c986246f3e961485579cd4ebb1819ee1a3a1d34c31ed5e7513f10cc338b6c450940e55ba943649314d9b16c2f5d816f114bf68c3890a2ead2296fb67601a10f25e9d9e6d1e91538c46ff8d63f646049c1c29ba9e6db4c2bb4cee1af6fa2990a9590adb420311f6a7647bf207fc3a306ed5d02c1e808955a62bc4e7d2deae6fcf356e4fb6bc5f6f3e0631d4da82f78de35d6f28f2584895ad2385f741a8bd49de5ccbaed013a9c2cecbe15ad513ea47f972b4ee2a0f03e0953c35c7aafb5c0976242f0a0e25f94c889f4ca02a7db0460af48081fe8a5552b061f3cb2200d1e9d7ee2ff1721fe50c2b2d89403c0aa39d3a06651dee7769b204036d6a246f4ec840b88d626dd2e3a71f6e21e21123d7115d29a1c85ce68436d15b0ec24f8e9a1e0acc466e16e8ea21605b7448985a56a187c816ac4e376c9619a745ac652a7d1925c729b37168ad01a621b05a556b001ceffb6461a8745261f223af10c53c3fa3d437ca75a5f799e37ebfc532e1a427512104ccb51f97f31839ba8868c0451a3be7217a87b5780d291f93aba9e7d19d928fc9b597fce8c445d3f93a22442ba75d2c30060ffa563e2a85d3251ee1d396847025d7af10228bd00bfb3453e9598d0b2da3815e5c8e35d180c60c0ed53090c698eb098c5ed372cdf6a47112d621abe95553615bd1a11a059d13896cb2ad1f3707dd117ee97428c30ef8dce10b61a71b769cab02c9424f183a79b3b6609bbed000ae9bb9abc6c079ae66f59a6fa4f948afa74a643d90172ef5fe7ae29c7d229c4c5c23fea8f8932ff578ed10bc40c486959e2df5b9a09d5514f72f82da6cd1f86414567bcf1122104750259401c77b508383f334df04b25ab339711f8b477d21324feb43b125eaea5a579a9fe32c4aad854a45066567cee3162ae635caebd951d0742df87e9d536d8c1e227e88c8fe05316c7a969ad1ff1b696c7b86a4b4d4f119a4daf100070a6f77848da1b3b4f8fd1449a2acb5b64168b1ec02124a57596681ade00000000000000000000000000000000000060e171b272d313a", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 37, + "comment": "signature that takes 18 iteration(s)", + "msg": "6500000000000000000000000000000000000000000000000000000000000000", + "sig": "535286d7323240363071e587302bf6e2dbb28401997d5fc58c9e2671021ece7c0dc6ed38727f03af46e97a18e415b9fdd6dadf07af070d8a0ea7b1b815f9c22cbb9b66bd34bb15767a58d756f8c45e9e44e0a7dfd00ba5b0c445140ed26d0f56ceaa33082f120636ce2d5e417d9a1ff1d4cf2c1d6f452748af68b70c7e34d74d22e1728d34e39e42c0a2286cfb12961bbfb6723767e8dd6d6525b192beecfe418fcfbac6d66161f463da3ec523c2a9e1d2a187e31f23d56dbcbac30f28d95b705dbde7b16d97f91c50976750ca35269426a9c4430dd20d542a60d12792c2c553a05db0276aa94a5fdc14ba88a1f21ba6e18997e8afbef9228d91c5911a76967ff0cc617d055aabd390a6e6474eaa18b7f5721c7291f6ced5528a0a70a793340b75a1af069db55c30ea204d5ee8a3272ffdd178dd2cb3d72e04b1f8a6a2b0f15d7a9099c362477291e4c4ce2d5cbe41bb2d1ca3ea81053670c7325e4da89a62e7a1dd475952227f3e8be306f07494a017025fb4fb340211d84504939c69305957939be9abfb15d1bfdff5ff9621fe9d451661f5790b730595e976750e29311186d0dbd58ed912132c83c1dab9a12ddd82140925eccc25db709e61425bdbd7ebc2161c1f72fbc30e35c45410bf9239464253558f8bd7292f4a23f535d147f2db9ca4759e471cd6cceb55e5880b6ac5264c4d1e0f85d5606ecacb4d6b0805396c87a4f2b2ce0f6e98556b77baf437665fc79d8e6c9f009f8c69c8b4d8562f979b0c7095b7663a231340b2bc3d9c62589baef6635715260b2b157c0ae1783936e728a6b52eddf2983fd4a21e913cdb436639aa44d62e5cedca417d172f4e22f6ea3f0489b02dbdc4d7be9b89ea0efdf2184efe3db8363713f781c44aade4926a963e56997eb970da36f32a2b6725120fb519b47a9028e18e83679b85c97d0025bd36b96ac34402477581f87ef70273233ff2e5b13182278f408e95da9c2efb3978ef8e5e06928c771838c08a5645cae4c8f3a940caf71908eb0ab8e963cbed810c571bf8625ea6b132101381203c24bc9917f7734d7635e158aab68fd1e4499345143b52a2d5fd2d17aa9df026b002bf468944f6f52475ec3d7d5c427f57edf55f739f7b507072ea268f812a2d155e23c147a08d8594564ebc5b6a41cf9198814b9deef9218b148555ff22a9f0b4a8f7aef1b51562a09683086e09e6bf446d60538dda0861b494aa2e0f51482e617e1dd19ccb8a4166bfe4ab9582f88107b05bbb2f7d330b8fec0a573eed8754758436151e1b3e9c28e01ec82b2c7154244b71e12eff4c5026af8eb58a8cd810c63735a716af83bd0ad9b9cf8acbd9f727532e78445323914be43b2f78d6a518215fdf2cf5e8de05051f304e172f2e0858e708bdaf0041bc4aed6808951070c221219d304f64067d8f1bb74120a3f08357a59d06ac0afc2b7137a75117d6f3c0b6a869512c6838476f1c18f21344a28b3ab53273a82acf1fbde0273bffdab1b1889b850c7f87d9403bcc1fe08bb04846c21b640de8a492a66efbaaff58833b7b46461eefaba2c246c760588e2cff125dc08c7a3de11b446399ccf8a82b0b78074eb4fe3fdd8eede242571e96aa064933076c4589c3a1e12c495c82221ff55785fc144b644aabfec429d81861365446dfea8c366aec31a1145f37036db531b1c5f761be8fc716e824406db2800281a6eeb8d6295a8ab5b6fef666e0b6a5c1d032119e0d893c2634afa25f7512fb951f6149e6c5359db9e689945bf80a9582c5890f0905e4b917041c6d96db885e180e041d27a58b0742edee17b8d3cf28f77cb1a22d6e5109cd5c515c9b6044cd434b58a28a931fc73fdb234893e1fd0441619d380e0b8c7f376c7a7508eaef29393bbd53460c7db0000110ad75a18b711e666c447e08d836a074eda27c6e2d27b5708f894fb44197b581020047ba37e3757bf3339eb8102695591f06ebda1d94c978ef321754e298df3babfe935c59cbf28da110e3e62a715ca071825dbf02133fa44f78a48eb7b23deab3e3b2f026f39a8ac344beb312796df31457ae23948646792998c22b83d2806a1f74b12d09894d3b4719102f07aa214b2c8e256bb7664d11c2c41ff93bae59c7ca9c2899148213b77ac3918c8f7861365691bffa93645f2f86f881a2c5ce29769f42a81dba4990457b10c157e9c22ee50ff52c29239734ebb5bc6bcc1a5d40bf95b4b6296810150b8da0ad314f1e8e1b6f01d116215eba20a767e54523f6309a54d8c6bfa37fb2290a1b68e348fa383fdb41ac9b3ba20569b8968de5d65b7108e8ef3643682eef54ac550ab0418c179a48f18e4cdec83c6a8fb491dc8f9a9f6bd9d7682b48d9b1acc9f9a396b00abc5e7c1cf7519c37420cc0daf6c7751df7bd585e906e36645f51706acd2949e907b0cb8e0a9e916afa477ee777bad47655f03af5a1ea8c7078368167946b5db0401c9306800cd3d74844ccdf4f307a5e662a0e9f486779513713e2ee441ac35376762bad1a3ed1ed855c905440b231851d3ed7777dd4745d8f08c47113fabebc0342f4cf4d8eb568cc23b902461b53a90467f48fcddc3439795b76f0afc51ea3acc93c1d1252557fc04018ec087beaa9bc86a10719f8bdff233b6e8c2777836be638211afe36d7affe5ffd29adfe4d17ee9c5fa9ef29c549f27ace7d116e21e0bd88883e978652c39eb6ae16bb2c589c22cf00dc2ecdd4a11630e544099acb5490a445231fb174b5cf0bc2fba80ece34fa5549ebd8d5de4d5ff5797812a7c57bc1fcf79cf050dcab6299c08bb74846dd70b11a82c5b14188dea66dfc61ce45a74669b3f5a78bcc3d7c9f8d821a30beda96a6a7f17641e0b07b0fe48b30f7773513708bee625ba4060f0a7d4acdc472d70b6e42e2814123c637f4a7ab33c8c5872f79da8e6fe97e2c3ec9581ad163c7be117883731930bd4599cbc4ae7c6b2c4fb40bd6b14a53bd58965ba645c42d0a1211636551b0c3494775a3abe77d94fcb9a5454167dacbf26ec39e3f1a7df7ccf7531067a05fca1c4c138e53f276539a50cca98bbd84b23f6da511024d8c96af284c5b9a0636159d6d99e151898510706541aba4081c70206bb6408b685747abb30b85df0266cafef982a138c205713a49cf0a4e3d12dda1947c63a3c1f902866e42e1557bf80ce1879c1ab0df912542426c8cb7563b8e270354813bff1a143cd3b8effea65f0b14b09f29a8440d2cd50ae42d227d5d4295b1bfba8c6e34ad78047d59e5c7ce83a9367bc6be3ddc84fadec55777c186b5760d22e54ef41a6416d720d1242c805ec36a031fb5b410183cfe54b18ad5eea722178ee4267ba67d1260d48242b00e24756b0bc7b58b4771fbf1995189ed80ae7e67db0be8ecbbbc1ac03de553b0502873227e93f0b5ad653442ed4a357076453e15be3c994488e77af688461d40ee24d2a31ce3870e8e2894770b793656abf8e637005931e663cf355fd2e949fea5975f0643b8fa54e647635a90a7e58b0c3c20e2cb06413f48ff80a483614286739552e1d483e3e9f6080e36d452c39ab125ec8ab0d64540a8b8cf46c18c905be11b06318fd16fd93615bb48ba1bdc56a514e113285f197fae0fd02807de5f23834ade7f5053696ffbd7a11d743ae84b3dd329784da7be47bdfec53c90eb4a8776240c635b5ee37c3d3af852e3c402896d8aa3dd83be9fffa3ed61ac1f8b33f7598ec9a142a30e8482489dc937fab66d71145b92da0a74e46ab59f5d073b0c10ed8900a3f25aa3c3e4fd1d027a8bb31f2a446c57edb40a1e75f14dc35b925a4beafe78d9c784a8b6aa3ac550535d117d25fbfc3072b404e3b84bb486c2380fd42c61157ab0496530a36ac4541b8e8182acb6a5a8c46852f3560333ad7d7854bead67337f1566e94acdc4f75ad62352abd7dcf3a914942624cfe8bb20613840794670a26ef9bd9c15f893384b7a349076a09fa0084634d17bbc0b759cded83a7dfad84e73dcf5e29abe751e1c87369b28fd6a87f2f9fffd698888fe5aa9520b58f3e38439c102242cac89c5b62a4b4725e8e3e44c3e5c4016251b978ee9d1b3002b6fb5c842bba7b429a76e3b75a318dfcfd0f55d01e826e7ea971c13e96cbc5d9ace145b745b8b0c3396f43425c41b54b1865fe368d785e8b328aa44212c95d74861c68d884fea1ce1802c8bc0a24472604b1100fc93b83c490dd93972a80c1fb8b6fa617ba19cac6a93da315fb9be7dc40792797e1f1dc22a65c7d9e590818c978ad89887abfb808bd6d57ce256ae1a7148ec766a0e4837d721f4387aa5b5033939fb8af067f745bef128f8d36e2531be75ea50b0cd35ef2bdd3894804b25dd3ce702bc67b1ebcaf3ce18309cb6d7b114c9b64680bac9d1c83d3eea22ca9b62ed1c86d882c40b904ce634232c2cf0074a77028519234ca65477a8ffe83a02b8a08d1d4ceef27bf8dae8a913a3bad3d3b8de762b70007e289614d7e64c52e1a000ac2e7c08b4b319c83322e43df054ae2484435d795afa0a85fa34d7e6056878af426f2200487db1266d505e3db893dee9d45f2c163d644c8d8f3be0840e232976c1d52cb9de4cd80801aeefc8145b78dfe2bcd6c689967dfa708f7b5edce5ed8bba0e74236c4aeaec10cf9b43d6030d49bc25bd0b3af8b82fcfb71ffca09b6ed174e76c1aa525c6044ce8e050f5070a9b19702dfb7e0a4787c62825087711b8174614cafb743e5047c141fe8364d4d51935bf99b67d06801b938fef7b7f1bf0b59aacfc4978779725fda293fd98524e0141a8e59ad299cb181fd5bb975e5c80e76b1cf0920979b85fe182221c97d41164b8f0f48349367b52e1f693f7fdec569349109fdab8a96f049deafc0664826c2966b5c47b83a468dd2546c7265ebfdf273dacfe8ea5de7c2bd42d5afd97d68a4926a61c5e14673b1c725fc55e686bc1f281cee74315af39714cb235d109c34a0cf64850f2e51736076566717b87e441d45bace802d7e7ddcf3732d7249066742fb554cad3ea8524bef4d9839fa53db300b9744da4bc6f1d70a3061f3fe91ae7f5f4361b2d194186cd0d9c2be21d8c42146f7cc0b5bf412e9956891e52aaf528bb136305c0cca6cecaaa6849dcac67d4e0ce3af7d78cca83c3ae5e91dd203973d032733b1e0d4fa9508f39f8b7f13d46dac22c48a39c59353279b70edd6fbe7ef6ff0b577e9d2c84f1662a947be8bbd3f1340ed5d87e6ebad9a2983a6f3a73cf1f6dc8b460c28f6e95b988e0aaddf6b8ce037f9013cbf98720d2856d9e7832c8703460318a91c78dbb29b973d89f5965298d7cc2bfeb0dd1d9423136c7a8c5bd8cda2bc89b111120925734b1f02f98b61859fd094b9d6bb2f87601f15e451ec6c0c4b290ceb6785e8573b7c892611511dcceb4050d687fc9d3dd8e13838cce96e9c44be296fdb4fd8f2c0cbd6db0a3f2d637c931a6bfafe9751c490001c7017fe2642f469d3db250e5d2908c5e05950a394529442d75346c3937e4448039d3e0926399cbf4866829c83b0b2fe53707e6214aec13fd4eb3a87e057c5cc691a1a1b2d4857ec5f67897e5ce063b5cedb1893e93ae17edf9a20d5eb556746f15c3cc66a213d545743e044eff165cc9051123ec62d6a54e2e5e2e6db8fd08feb8a837edf7665edcfe89e156b2a06e3d23981056f2c96274b154a8efa49f46733e8e309d11bcc8b6794ab25a1200dbaf0ddb48011e393833d353875075857fb125cbbb6054951cced39533dd09e35ca1512805399c616390bf2e41c6888b7a5db931cb92af941573586a56affa9e361bf12fcf70caf4f006802bbbd00697ae61cb711098cd613f2fb99aaba927e8ab88215e2b1177cf8e7e34f22e1559b27168aaa5818ea449857212330e982c3d2a6f88781ab5c6f75906c3552aaaa14b05b71f9fb7132a5101a2b325325b4a58222c56b75ad64b2bb5cb96df823cfa6039cb48cdb6218aace7fbb972bbc9b26cc3e22c09f6f9f3e57b05ab75a36d6337a74f690c144e4a6849e643f5878d67a67a47290203536222bf467987de916c69896cd7293c3b7474dd6c8103a1bdd4dab3f4737d8027c7f36a593a8906a9bd79b25c7cf64f7f77f97e0474479093c6b5a6b4decb3caa1d76dad77a46adc47124deea5661ffe7b9b38bdc9754929650c2126dd62b4379b9c6032abb5dbe52536999c0c965142ba1dae235d1048e5805d8b49cb5889cae556f35b4e4d743003078453fb0dc804124d0a3d512c1652b5ea23d8caf1e36b881830384c61ce0d5e90ef83053746ba761bf654586f86e3cc6c8128e242c7fee79aeced0a13f1a3ce6df480045d59e1477a51d4546d5a61671d746e5cfb5edfee9ed5e8f7c0857de1bc5c791751238690920599ae68f583d43947e2b39c5e9b2024772235d17177415258030afa3c0d91d8478d2757a8ae7f1dab94d4f5567767c8194c2ea0f265f6893b1c0cad2e408282c323872db25525499c2d5d7e0f3f4f90a0c1f217682acf3294387d1e92c31aedc2d4a8ec6ce0000000000000000000000000000000a141b262e33373c", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 38, + "comment": "signature that takes 19 iteration(s)", + "msg": "5d03000000000000000000000000000000000000000000000000000000000000", + "sig": "c130926eadd11584c98dd7a2f92b52d2642ac9da510b624f9ae0a4b26df2524e5ce4e2d3ad32dc10b1179bc63f765aefbc8d39e4bf5f8edd389d11cf20102169a9d10e325ee11c559ce18398f6a959530c14004ce98c9de506d7b6562813b3b4f36907fa71f74e391fa244627ad5cc11c66985474c5677e826809f2f0bfb3f56ba501c605a1625d49678ca37159394fb7aa21e1ec876d0f9889e0a5c689f013e61958fac9c386216d75a3522537fa7c2db049c0b4a5fad03acaa2ffcf07488d636057ae7cddf6eda75ec6b7a7ce4efdffa5b3d125d55bea2cbde52c34e42ce594d72e75f39119253ff74c321ffa465385872bcae1ff657348286d4b478abfbf49fe318ed7d9151a8e0c441080fb53253aa506846016edc4a9f71a0a7f4bef08196875a66bcde161c3a5cf5156121a08f3f225b4de3cf6f066f9f27df9d77c1c25759cc43dad71db3a301606b374da661ab3053c347025a8b3cb4b90808afbb4abd44918b2d9b0cb12675daae22e003c926b9161cea8b0fd791d1c6832e147c3441bd871b64f58391c901119c0bdd557ac9c2a805ab14d8df7267b97883533b5deea80c4966ee4c2b662e3268e7fe8943cfc48b3c3304ada65b0b6b7309a09d18f3406ee61207b7aac8a6f4dc265dd945c43244130e7294f82a4f6cffee215836d88cfbb0bcdf9b011048791a99843032075072b7eaafa85b1ade4468b85e7df9b8f032b2a4638f883618c560f7caf87a0f7f5b26b075a40abbb906b0274509f1570a6cc7b79535e895bf11e0aacc4437e49f8576652c8b50313ce52c9de2ec2a0e22035318116718ba04eeb301b5211f2c3011cb53283e8a4e9bb0e39418fdb28fbb3bcfa58ec47e7ef904b69990e38b53daa29b55815e29cd05fd886387fdb8eab7c1c5b435e5c025e70cce82168ecc01c3efe423113f1155d45ec55f15d786c77b4ef822b1844a8d298103f55c5cef371f617fdb22a72105d8701df10292b0f397a59f0ddadb3b6efc88e7e5745146d36b948562c8a154452f53c8d0d366afddf384e9882ecc24e672d7dbbe31c01cc584052acc9b9529415b1961363241e90728ce6290ff2c01ca4e69a8ccbd2825bd5299bc2cda35caff8f7cff7d56d0d2c399e26ab0fc37c06d485517f754c41d32221ed7d11cb19df2c0fae5097ff80bfa74574c229f58fc44d6ce1d340dd0d8cad782f2534fddda01e4bd014e844d076a016fde3fc973aaa77ee5c839fe46c742c586ff29b8f7002aa27a3ce4f74e6a5779dc2224433d98e08f8617d1c7b2510b94b7ce51d371fae3c383783278b4447843ef459d496be257a342ffec8717ec1a2aa97f4956db50b81987e977011e8b84ba08608c9ac8c0d4402477e53e606fee271125034f06c176031f9d9f298b7031f285e81d830b589cf5e89e18e1a4827723f6fe438a40229b682301a7cae33ed86644b362c3e97173fbe562ca4c8b59ecd554f1320ea7a66fef25c89685bc8596b183b528ce75ecd0897e59885408d96fee1f12f4321775378ae7d49cffadf373df697891fbab3ac79986a1c2c0ea7d0a5e441b64c278c61cbac573923188fdb7aed70b0ca9025db576bf1ae0c9e69accfeaa7917295fc36f8c67f2e367b2300a06d90be8d5e3896fba1a00ca9c8206cdf33b9df1f6aa93eaf1db0898fd220cda5ed623b6e6e31323706e043b49fa6570fbbd605f14ef9fbbf5261999c00955fc20b812f42ab2878e8d194336ed84598c1dac1d3c57f18e121079034bb70bf8d9c97b4328f033d415ea4938ea2db7a9dfb9480c9d680c58240ab3b79ae3749291aba86c38512f65aebcbb39a500266ea56ec2fcef54ee202bbd8870ba0b50df4a0303ea54ce0ca9262e59a532330c59576ac1e41ecc4109da1c77af587eb88134f794182cc1e2d97411ef2811ce0d947dcf76a54b4dd37bf64b95f4e30f0532f851228a58e1c1db2c2886b66466642fbe378e55f2241714dfa2a868174edb2040ba526537ff0e06b12b702fce1f7b24d9aea37b37a7edd05a4e85b433ba29fbab155dd3160ab3ac94021a8fdc74d08f33c6ceca51334a33645fc73444832454dc12de89b61f5f7ce96f51ac2271c7ce26afefa93ed18c6a2ea103fb6063649619d11fa74bbc7d0a14144eb43f47494ae3a05676d86cc57f4abadcfa59e03d8d36f1146256ef5b567f788d89a1f3246238ea7aa685aa59481b2e3cc6f5c3f1dd1754623a9556eb84770352de38eb9f378694e8709b70020f9093ad00083644575cb9b4b8f663ea08d6696edb8854b98ebcec1880dc22f6662403580d1bc8209d84276e42dc1d2f7c909be326cb585739f875312c9d38882becb323acb67f6ce1e97cfc86779ff20b3687ba20c83cb465e6caf2a19cdffbb883479169878f8bc36857ca50097fdf91e9b7da00dd67eeeeef0df2c70b701590bd32c183c1850e0cca88783a526c3fc9d5c7fcf38c31fa5b12f9e943b991a35ed8f0ebd7cb530ed1c66110271b1082b9fd163e70ad1385c2cb4c7df1a6d6245395c399a1f5b6a5163aeaab2c877e93240653104ca4f51e09c5f15cbccc969c67932d55aabfc339de0e788e13a2ca863dc73380d09f769fd2aab595463c2629058ad4458863fd8472771315832fa2fb91cc7d816d9eea7d6ccb781224aa71a1ff07a0132e86b6bae5255ecd69aa22e21e076d5124abcb030d0aeb333860a3af69568b0adc201485a8ec48ce5b357790ac98d24e63e471bfe6ee74f6cce0d4cfb68556689a3b51e725437850cf7294a9cc6f832b161983afe0f86632ae5d141ce73854bba2941ffe2754c382c647103444558e689732f432e8d09943af3fc2dec1de6e5398f4b2e9e431a6d9ada7c2caf6b09421740586c6f0459c9f4eff8f8cb25dc76858d54d125a7dbc88f66c8d55a967bec33ae7ca5b75def25d657ac2f35516f43cd5cd4c5625c77b281d60bc0e39fe3bd90cd03c8519d22eef794549485056552e98cbe0d49c192a52e88f1af693654ab94ebaf33e91f3765b38dfd9ae8935452c9158725c00ce87e940011ab9e5b37b721e18d2ef1fa51ea1204dff367760595e7b47126f102dda548381b53762d5d1bbc18a8a99ba6d5b0f35687d1ba4627acd76d30e6bba6bf635fb7c1e9ee2eee7b9334c586685c365d9a9ff8de99cc557cffced33d355c53774e414c2f691dbbb59889a3fbb5952f9c003371910c4690c8b4843060ca4cfc048c954008289a116b2b5cee47a9a69200aa5dcb6374c8d16cfe35dd3e3244a35c5a5dcde4cf551a142ec70482b00005d2f8fe339d06cacbb7a82e65eef04484ed750b941334249d8cf729af7abb64ad8f44e38f38c40ffdc860b7bd688fc16b1495a32210a8f6774a2c57653ae867f7fd8944d0418d763279da955e5542f35e9a3e13bbbf89ca9cabaaa6815435cdf80b8fabd7f6c0c8d4da9504c17f87f8edd4481f31f247ab47a8e5a3ddc6cd073a86f83f8a241ff175c1ca51021903a7f30f4c2c13816fb1bb83b3860c4d81624168c55d006d7c3fd602bbf124b97356d544e90b3facaa3bf088686c4472c6d82794eecc8537e479b45b30be8f7a413f003f9c9582c26a45cf02bd6fdedf8956177bbb08201dc4fc239fd0a94d948200a6ed9bb9794a6844d2f4a2513395b009cdc2144b0f61dedcd2ac565e3471c422b3c36a368220cf5bf60641dbef7d1258175f64bc18a35529a46f31b4c01d078656581437e710d0f7d5495a0f9821cc8659712cada7e00e8ec09f03b9fc5915fa947ad45b6dcba3f3e559ce57f042185cbe74c3951c8cdc0bb4b415d2b2681e1e24b80f25ad9749831559b4b0013d17232fbf1850cf1eaf455f46c05e7414552ada3960c4b7a1e0d0d71af20733612826d9e550f349053e69f3000448e628edf71faa3436d0880d504f3fcc8a21535f55110d4008e39314a79913cb4126e80b33858df931af64fd86ae1cf76b5dd5791d8202fd1cb15ea159b90e762dfe3aa92f10eb212a4ebf273b1a0b8c64ddc49d15291659af3211a6fd27b83ad061d38071ee6937f0fd43d3000c27ce2a103e79a726403767b5ddc9e4492c4edf5c82569acf180de89083b103b9445af526c03555ca7bc957de93d76a00d66a552e8b24b26f184d85a770eab000ac6c637ee0ab28fa850ec209ad339186aed2d1eb546d749e4a4d07466d3c49eb7d9add517ba5bac766e59bcfe31e32fd4714fdbd97de96085459e131efac1f6735d3ef058cfaff517b98c2be8afa47cf61cf050394f13a97581ef182feb06ba53ae373dc1eb4238be748764424e20a34ae19a744311e3b29cc826f7809b073a3105356c19e362a3ba0edf812a0ea7620414e4f2320a0778c4b390d83ebf17e4996dd311943f84411af7263a5af555e20ff0aec2faa3edb8d17fa361370adab53e658cbc5913e8f5cde04ef5db3fd99cc75a80df4eedc179ee7797cc06d1d2a349cdbb1a5837e63be574dc2de6a0bd94a9dc261b9dd63f99f25378b27b767a98f6cb531623a931d423be302dd91841b8ba8a5cf9e7b88cfb9ccf479f9066441b247e086be22aa562c431214e90f70e540706942b21a061610590bcdc14dbb5160d0616255c448bd35d27e33227bf3f0ce2bfea5d4e8ee2bca605a76c04ae43d92b31e89e3f56e147fda9cedbd12fd3328bb6841d5b5b9f7a9ce7b63f07ef5325362d04aec692ffbeee1cce5645495822e45c8ae637dbe95c700c19d938c2648ccc324a8291b2a4b262a1218ecfdc44a7422c6ad0940e60e49c491c42a4ed1691c0b19033c0068a1b9964946dd09a770984af81b78ae7a6358e40f12e026c43dde7cd4166588305a27865297aa434d5f150ead75a333917e070bcf9ccbe2e099290d64e462bb6a9aa181af53894c785af6f35773c92c188aa86ae17411c7093ae7b138a2785bae6529d4fcd71b2f832229b192aa025ab212f51cfd0579a7757138c26572cabf73e229efe815c450629710372c6096dd35a846b4b4f3e4217906172de30849e53846dce268a1da3690002ee89458b4c06838b6ee0f2a8d92aa0c395aaeb37223fcc83d5e795249d200938da66fb657c315601005b5dab993dd0e0ece59a80b5b0c18396dae163d6301fb7dcb4551efc4fef9f0ba3c57fc7a4cdf06fb3797ef41c76d52fd74f18af03a265e37837abb21063f081b31586563674059a61e9b2d9704ada2c410d90bae634080a9066211c8ce9f6d90e31911883f8bd3d291a293d2998cb7b188d8f222170fc6706d08fbb3360c2f223a04971f08c1d7eadda1733c8a89ec343b7a979ecee483e3eadf5f6ad8ef9100ac0a1fc2097d425efece68d26b3a0f7b37c0981a7c8a7ef78691f5195b724018ba05346e74c35e1341e23664571855a2e9bc0b3dce0ac6e5102edad825a518466fdbe4341b45a150b436af6f326b0645cdfa5a1dc357385cc286568bb29b4f78ab926baee5b1fbf599934068040b1f144b0329ddc06ce39bf63697dd0d8378edd4438257e7f2441438f480dd350f2f28f5f77f20a7d2d01ccd6674efaa17a4637e320327fcd40d1265e9b924ff30155790e5e25fb1cac05f8ed9bb36c166ab7ace529233d666322ad2240cf0cb7e1ffa1259697b2f047eabf09ac1329ce71a273acbbb85ebe1e4aff3f8d29a7ded9baae87c5be1e40880bf73a5638e981351ea381b79fe7ec04429c853ad862061a6c93585013f9d0642105a4e66cff2c7d0960af0097829c5d5b704b5564310ed92d38db5a6f64f7ffa7dbf88fc372ad91a59ee7cf8e3a5ae80eb6982fb085c5294705f5f6af02ecfa8a09321cc5e28ac91efa71ca69ddcac44ad0839f3cf40831c1d30f455c5f931aa4f183d76ee73a2f4deeffe8e3ee0650861d6d5b3a3d07a0a7dc87eeb5846e120884f2826c57fa1d0e686ec04aa10d1ccf53870acbcfc65f2b4b1bfbcb079dfc973e110850e5f92a118e00ebd796a31e1d3d145bc1857a975bbda0eebf4c839d39fbcd3e032c1b9d2bde2c5161a6476ded0b6fe09f7ae6c8e3bc939335a6a6853a704d542a66afb981f05e68762d4a3fe36b1bff6f672cf19f99fb1b9ae4eda4270bf6d653b71c5f1ccc7642477e620e27e35665d18e47bd1e2c17f4a0d114d064bee0012a11caf1bc13b589d8c8d669616355735741d7c00409b9cef4245502a0d2b0368c76b16f5c54c7a36fdd75bf7ab02c69d21d9bbb1f0ef76366057ac2950af45a1ba46af1daa0b870d4288256c4548aef232c88905fb23ba81b9374266a7b7c0f594b8c686221e4dfdcf154265c4baf65ef99b1fb7caa28b9d5c9652d0d18513733b525598a5bc24da445a280a1664694fdbe0b070ee54e1eb345bfa8f690f8194a0e0196d6fa8e8184cae9519b07d1e41c698fda64522bdf6bf1204d42086041c8b2e53b7256135309250c9b481a0613950d729bbe797c6d6426f40a2eec28914db654318390b7397896d514637d7fabc8fdfe2e515759739ba0a9b3fbfc2e3744577374f4f5fa5ae8013e47737712343d454f787f8dabda000000000000000000000000000000000000000000000408101b24262b35", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 39, + "comment": "signature that takes 20 iteration(s)", + "msg": "5102000000000000000000000000000000000000000000000000000000000000", + "sig": "0c83671ab0972110fee5262155d5098a3d5c48d7144fdad596cd8c329d44d9404dbef78331f105f7cddad4483f70b63608b62fa98dd8a676341af24d7a9bc3ab2531c0115197949236e52219b492086000f703a637d76e31ea0b74481df30bd99a6ba5c6746e216b331efe23c268feedbd73e239d971132edd3f8ce7c3b78380bc2a8987ffa1e6210e27efabbc3858d5b8500ea3df8b35c2d6a61b5673adc318621150a32c456cbc3c3f321186ad579c04a0b7c35730a09c24a9b45e7ef85a2d7b1fff2805156dc6e89aa1b3b181101fd5b7e580e0aa862e81984337cbbb6b3952cbe4e62b9fe28253f3db8ddea82a82a6c4c148702ed1f18ca667a09e3b947b52d720bdca9089b3f2aa3282b62527f28756fa97b2bcea6fab349d0232ae7160049b012a0993ec249e4c6c6dc31926529d04dd2812ef86071aae8550a9bf102f5587a29cbc1d7df8c302b690c596837b6fa5f98b48ed991a7a74080c3b8ccad14047961ed75af232d3eb0ddc8dd016909b19ce8ca188523c68265d797cd5dcd6beee5180dc6bb6f5464347d8d8b347ef78177e33a8d0e99abe788acd3d7b7b386f2622fcfdaebe5387ca6620a7cf1973b43c1f0e4f638d2b63626362286bb922daac55e9b2ddb46cfebe940954f8c433525e1a19aa0fd01472f7433c8e02bbb8c4300af39feafbcca6405c42ba210fc82e83adeddf8a90108d5f6fc068aae1f4517032fe3d0985fdf61c75aef71299d8ff0b109f6daa0444c8c27875cdc815093fe40403c2c97adf9b23da9d53794539af6b73aa9cd5d222e1483978474205333043bf5d695173e4c3d08cb870b30aa7482d22d5b0a04b3e86d5055de6530b9d08cda51e948eeea09dae5b0df0fceb91a0a4b1eee817257df7703d22e298f91c0e151dc26b7fa06a9d530a75a136241b86c34c981d3d37e6e3581283e2991b1f7316e13dec5d5518fdb6cae7883db693186a0ee92f21081d3e7679f6f2862fff1168920be558e2ad265f7149dc7a3710cf072c41dd72f31e950a4b97963bae18e3104dc9f5d5d153d88e9c987fdd994d94559a17d104d239658452fb4bf42a5f193fa808d7a0d68336c0b981c4774c77af7d1998b605267d72aba30ced70419635f9e668e372244d8ab045c84054aa99e2c0acb61e7dd1b6f26ea5f69c9aab2d8f632eaa26a298a004d8b262af6547aba67509000420a9f3ad3ef4e4d78851c1e601c933a180bb205c316a24283c269972ff6ae9c360e3c72139e639bc83a059ec8e83ecae88d9f411c9c228fcea1cf3a0c369a4deb37668c8b445a63b65bf0b33d752cc1b890e5e3443c23da58f967f08613e89b2bc22cf8724a79a1f09b98eb7bfb6bd71fd5d49f6d5b36af13c353c9dc3ea2b6aebe9f4d43231af132b5788a1d31fec2bff130b2a53f66d37c9591245b18d25051706067b246c18c790bba746432c79074ca3160d6b914779193b4affa92cc2d27d9b3b9cca1f49f7cd90535a1a1c38e64c4fad11030dcf7632231b5279dd0bab0fc8e869f899dc8e8697de812477371c7f25477d096ce8957d51d7b62d828bafd66d32618560432484e6aea7dadba9d289c59369237c4f84026b47a15f52fff356308827019a60256c185fe55f61991f70d987d7b73e197e94aa0eb14a16a274c0abfe4c45e9e0543b77d9bd4f2c57e8877358f7bea08d57e16736c5b89da83ee546ba073f037608e81578dd18139a46859167b19ee120e700de2ff3c86433e5e4a4dcb09460626e865635cf167eeb9a7c2341bad9cf1e48d6bfeab1de1404b25e00641217087161672371ed9a55ad3eb071c723e32c1347489abf485447ad11ac89e854cab028625d21baab1ebabeb5ac987869e709e34fa909d8aecaf57a6079b2d8b01e778f0faae64fcd02dc78b4141b64a4d06e5f96cc8230addd887e94a81488826ef21baf3429eb8e5a5007f9da71d79bb6b4c9b734eede745963805a75a75c8a4a5640eb82d42c635ab49708d731b70ed361a9c6bb02998ee48a51c2f06827849d30610423df09cdf5f3423252e27d4a02d129a62c921ab6d98950b443a11119fb0a6a2abe135465e2e9d233ce04c5b22dd34e8188652582f0e6cafc2d3865ce2d2a9b2f8d7d98c284750ecbb9166d5c3ea8def1edcef503cb6856da24d0272f0d03ee2260d78471ddc2338581b8e4b29cadf1409b5a49eba1c7dfc4fec38ee6763c75ab4f73deb7e8eaaa1d9cf90107889b23c2ac7ca33fb648d61f5e8b598ae29ae9f92dd36d685cea1872d989c3ac0fefb8ef71fe6de7ff6e5274af55b2edb70bf0ee737a7e6c06639ccebcd3eed9fd1ef6645dbb935ff6cd5a7e6b2be085ec8d7fd7e01150751db3f147d9c6c961526d16ceb57fae21111d3290be66ba92e3f79a35e5ebdb6eba5521811654c069c97ccf316b5a3901ab873b70b02e8e015fcf11da0681b76408eba0ed91b6d0697fe608e4851947af81c1fa644ae410011a6b2522da4d4e621fbef29733d964308aba7c044c91635cf840d0bce0795058c183cd0a4ed14d13b8fbf369b740375781e60e0a72fc10c964e36b579f0498033409a0b7be05a49fa30f3a8e830253f6fd3e5877724d498c0c49c871904c52a927dd782de003d8fa5d834e90ff14c093c37f8ad520037f37ff46ce0d4ee41a7bc100b9869042c22e59e4dcac467fbd5f12005228fc8f325ab7fe6b49fc02ff15d9b0e3b4feb7ad91eda13bff0629fe4ad3247fb5618f621666589f36ccaf65d91e81deabf8f39746fac9d29a43356b1e180476a5970cb01fcd75d000c0a31c31538c13e43418c0ffd55bdb8effaebfa35ba556e3bc9ba26f85b15aea9db2aae69eb54088ea637bde3f45c7116f79968fdee83383078c5dd5072deb5d9532d075dcc7181257f60f0dc54d90272a416e822b0fe7682877edb5a48ecfc1d7598fd018a133c2a5879732bd8dc4462bed379d7c723457cf1d1f4634d4bfec61bf8d90941e03049be89230bfe0c5fe1a1964417e790f582241cb07ad0dd5ee1bd99990e7987ca33b491844e817cb4b190fd82144a2460170873aee2a33c3bf444cfc65cce166c78476ef69dda10dd551da4746885290f37b486b7d7bb2d149e213123d1ee0668728f74f3621129f563ba79e61422a22e5cd600f11fb327c34153fc583f8abc4a52c75180b64df7fe77f3a392751c91cebf657a061f15ac68dc21fbbce30d174945d1a29c3693433a34b423cc3fe5caface74b8fc800a1ed302dd60f642c0205971216c911d9747ea0a44a96efa6cc72f9012d19b1edf5480c0780950d0600be11be307fa5654ae52493cd09e685916240ac4a0f562d6054513f7cc2c764fbaac70b4e943f8a5b90e3bf4e7e2514b7d0c08a8aa9d0ccaad5b68626c7037cb65edca218a876b3814ff5427ef89085903afba0315380b2e72bb7835c4b10d7e96646309aebfec23547ae5cf4422ebed998b5b7582043c9dc4502cda905581cbf5fbc4a917c0438c1b827b4949f1b7f6265d097fa95a27f17bb56ac6ff0d8a52fe20d6f536052c8fb36abbafab7f18b8c89a16080f317e8e75225404910533fd7b7626711a50c5a5d0afe59168cd92c6f8c6eb95001f529d1bd1605409cc7efb25117c462e4c2088c4f6ec30bcc536a370619cc8b5860df9f89d463de402017a2bb33bf78a434cc2911bbb5d860060009c09b38a92411e89a7101f9e8a391bda09df4d31bfe9a75fa6a565a60f706417cc2956b9221fc01b609c02237b0edd02160b89ea7daafea06df0b927fcd5d5035597cffe836f3bc3c5b6ad61dffd586221429b83aa9b63ab24360553bc35b1c1060085d5b019f83cb57537351057b978c434b0fa8d33d1a17eeebe75846b7b5415a9d78678a90103500a3cfd098de137590e0d57a5a1a2d71535a9c539f2cdfb2fd41cacd4878bde9996bf2ce2c5642ae6559a17d954bc731894e2bb0d82ce1b49e858fca26c22e8f67bd1610cb10a7fc4b9429f6dafa0fa218469c399a3d529f9dfc95088eaed0331af5b36bccbd0175ec24f90b3fb68c2e5ffad8dd06e82a07443dc052ef6c2d92ee47fdc54200ee382d3a697081832ef6742a08a8a1d831c604bb8d5f95735c060a0eead76995e25d21a3266911d669b75ad3346107e0123a46578ba8c9c7cabfde20b1d99edfd7d610d77019362b8306023f037ee99043cf5fa4a44547170f9593fc7c8b54ce5642e1f7daeca846efeb3b5fdec8468e35880e5b6f3d68a88068940989bb849acdfbd00f892817ae46a6f11a179d4a56183d979cf5b6b3d3e8090080d02107a9de5dd68dacd97dfe7d50ec54b395cf77d3910affaf2a2702113668e784b0379ce52bb6cfdc967188c275fac3afe39cf6a66d22a340a60ab9ed9454e6227da0c1ef877cb9ebd661868ec182cb3246984cc19c4b33a63c0b6e2cc916eb0e2b3d673fe11229c484527ef4af6a2e971eb70a7620790618152cddfef45a632dbbe3dabc831deae540c7d06daf95f849ea18efc67e1cb48bb7a542962559b03ef4f2a56062e433675da5becdfc5680eca20d8fe23333adc97869c8e729283409e4fb479624790ae98c28fab04094c80692a1b811879814d117d894a732828e773b4aa63d924c2da064f48bc9df0b255a26cee4727018af9a5285c0d708b476c9549ca4f53dff3ca44cf847720973a1a3428b003c996ebed2c1093f4e2a13a28e1a7c0b4071a4f7dc3f98dd89219b46c661d01a0f52910b2c47ae39f90b5e7ecdbe093de9f159e9f560d7f4cda16affaf5354413b679272f98e6bafe039173a78d4b914d653e0cee20a1210889d568f9769eacf3389b13e6084b0aeb9f6855022cf176ca240fe45172c04afba02486dceda0e64872efa1f1c3f95205047e318fa805aa4a0f8e2b278d4a282a1f6c8e0ac6fd14a0c2fb39443598e5b7921fd60bcadd271999a9620a0c03bb4c287e838e181a26b3980c8b8052e14f1f9c9c35dfa8205e19782acbb091bf10163235ff0a5e659413bb5f0c903e6200d5ba94fc1bcef80681464c86f3ba4dcd18ac1a39a789f08a27d6cf2bf45abc94563e7d4a93c41b581e15a1afc0a6b5f6bf5d0866dbd27f71c943c9825585fac48cce7fe315e55e5f8b0230ab91f1e0570f47b667386a9cba02a980a63126b9f701d1a443beb159207ac6e49e90860c3d597f3888f8893f0ce5cc1ce0a06bfbb9c63f3bb71aeb0977e9a1f83d67e81da3019e8a57e186c0d4e5a8f0ffd71e8192c6ea70a4f515a31410148879382c6bc9108d75c6a2c2a5fcf709929c87b7f6dd236259e778d1a2790ed16fe72d68156398d18b2a3fc65853bcef1511e934e9bd793de693d2515e5d482b16d5fbc0276e2c6167e93c0c06fd143922f3775f73c4a68bd580189083c52357a0c24edb50644f40254fc43cf86ab32697ff46c0885fdaaff643541986bd681b92a89627fa33cfc285e30d5c2370169aba62f01d1085e7de405831cbaebc998b78635b31a691225c0b68cde8e9cb2b8e55b631a8526e6ff0489e103cccd3b8629c8307c66027b6af4ce50e55f46d390ad4b49fa80ff95e2b4de9762c4dd7e541f7c6fec3510f5f3af153b60a54f47af360bee2649f8a971be8324b2ea523b851571c837dcfa3152b04240bb1ec955abe67acc99c8210f38ea2dd70039b5733ee9a7bdad1a5b4afae1b234a951844fe9e8bdfb6e97ec1f5e3778ceb68a6e0ff4513cf841ef6c3836bd0ec89349ee09282b4ed9e3f64cdc130994e047cdf7eeb3ca41b09edfdf5318be678c9a199731a0f49889a7b64d6dd672e4c17f8564c01a86bb0737696a43043bd4fe08448344a95013e367f41b77687b94efd8fea46f61edd1cd0f0a713ca17a8b8593335dc527c901d6fa3b2996db1680783c2c8b9863342ef7577f24b23d8b42fbfd2ac55d848a4f995ff130009d5a33bef1cf60b29b5d857aefd5e548c3a91a3629933ebb45554ff69d3fd36adb149a1be8f33b3ef6f910455923f0443fd43e12e3a761cea682bf8a672f0ac80c25a18538ba93999b330d514186b53f76221dece425fe6cf760ff7dbfd28915cd62231b9627dae87b2380589ad02cc856e816da536c52d9573842e78fcdc51218664e3705d8f8f4a6126054126a928a709db3db463d4c4e51cec61dbcf8b8e4567a9be5dffb8907b74a560b06cc417e039034ce26d3e9607df482c73e3182ad865b1da348363ffd0ae59df159200142b98b7a5e0bd3bd9175c86605048610156e6255c6ef89a10f9535085a040857963d84b9f7c5b4eb8bbfa54d187b73bc2c56bddc631a1a72144d5a326613a0b33490c9932da24ed1dc0be98131997d8788741e5c6c344471269da43837da787af532d378ffa4ba5343dc0cf05ed84dcfc3eb54df1f3e8d4380a9344ff96ea5b832803028a0eaa7d81fe2d1be9c8b2736c4f7f2b30c84ec34297e94e8672fe6ff153dfe33404451749ccee84654555b748abddf0f303e7c97a7c9f25361a3a5afd1e2082166687072a01b3651677476a6bdceee1b2d3097e9f8000000000000000000000000000000000000030b131b22293339", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 40, + "comment": "signature that takes 21 iteration(s)", + "msg": "5f01000000000000000000000000000000000000000000000000000000000000", + "sig": "2c51e73a3674dc7be233f7cba17446bdeb9865e2fdf15ef055ad51c4c408c573b07c42a862fca4d2869ba8f3c4e56dc69151c8c247589c4d992bc178b446e3da86e69dafd54bb1489585b38141e2c3b1c6b594a3d67d02c626f1296b7c1d0cbc7fe9ecc117637621c803336731240b2ec51d70b355ddf1b042b56fe128a61b9a020f144cac1989c96dadef7d4dc3329d5850475ba6dbc564f478c01b76a3b59f37fff81ea9ce4fe7577e959475b4d19ed016191103c15d6928b180ed4eb27a451d468ff0b75d7f62baaf3a3521daeb5edb341837fcb0ed282d40a1d2cb2b4ca9058708b584a699b69528b0a78c2779e820db7ad49b9d31e766836ac5c05a2086d5d510b9ca074558f1741fb347ba3b648713a0da18818be59e264636cbac1526ee181dd9d2d4d79406a6b6e84c73fd048d47f49b95ee43ef32732779fb4446a8fe206e5f8cd29b424359f961fc1f1d12e1ff89f0f6c4d13aed01073939ae3290360b3da87a8be0ce7dc62898a833c1b2776872c6e801dc55e3573123fd356283d6fa6bfe53049998b9699cc2b04c9cadda580647ea0cce195fed59ea766f00fb6b6542577fb0943dbfead8e2b6c9e9368f9025f5aaa05ac81b710f5d876bcb91c70161169106c86e7f7002a88da4bff51e7df942c186c19143158b38c6fb81593c4ece15ab850dfe859291697e713f57f2899e1d4c0855c00daf11e11b3bc053b54671a9eb9842e0029daba2dd284a4b06c49a9601a50a3ded4448276cabb0dbc9d01acc0a08f9d952f1040deee2b677df9e04eef6880da4de7a979c36ab433e5229296f78f1e1b22952b7bd8eac3ad030ead4f9997d385e7f0c51f0b4dd7226a29f8e537f01b227f4ae97c302d2eefa4052e0852f9830c0eaed2d44d2bd5274eb144deeefe39e3f5531862836f9ed5d4070dc3f02607e7a338272380ab930c24c9b5b2e78b8f0574b012ee2e5108e6e88b47cf1016dec44f58746d38d9006bbb76eeb77887896c1d5a3b580bf8bb49755442ddac8d5813a7be1b60797b365549844bd31a7c63b8b45083c3160c6fc334c1d4aaaf89298ac9bcb4df55b380d7e5ecff903cfd060557391343903c06a4ea30c4f9dcf5af7f86ef3e115784a68a1e6197facb2e91ae537cafca7729d4507126116561d850e1a49ec60b5fe022bb81fe0254ceae590c97764f67560e20ff49303f776690327fec28d91d42123a1eb7797e80c2d654d5eae7625205e0cc9561cc428bfe6e55ebafab2ca8edcda563520c57119de0049e1b0df13eda6069c59d86f502d5ae59fd867aab6f2b83956359d15aa4b9944cea7c4174f3ee98b745a5cea84dd96079511b51ce1cb177e2efc4cc1e1554a5b4d0b3c65e2f9b931b5cae93e3d6f4485f66b379f3d97f12a9baacbb29bcf5d08ebaff45b9785575a83717a8ffa3af7b83617aa932f2300f84631d1590dfa1bee678d9086c586246741262ccbf248c0447c7f2a7252bbcc814f75d7519eb11749e6b7bc407f47e156ff1a29b59cd9761c45cdd4e9cea2d7a742cdc4ffccfd65ae9da145c0887cd1a6463bd0ac2c46afdae72092a4fa19a53ed0c516e1473234dda097c4f5699bf8ad80294412b7938a727aa256009e6e8fd3b8d81a7b8efb707ad2bdd8f95b966187065e45b11e4390ab3846e32890a13ef8f7f4d85f5ad054e9f45dd98591b06d49f10e7d96fb7c28419db949207852c18bb9ae0ddd629964ec98c4d4ed3ff7a192c69e60646acdc0603786f775bfe6e999dc1b2da2ada72a58fee0da22efca56c0841f1c106039709af03e442bb2e21465d769933b8a7aa1785bbddb96b1c42aeeecb993845b5b20d87db2304ba9ecfbe7e876d76a6510604637cc9e06c8447ef22dc04f66a7e53eac1e62dbbc5aaf705ce60e48a761a58a5a6d3b409fb9c8c006db6a4e5ffb868ef56aa44242487196bdc9b63335d4e99193f5f7a6d5aeb7027586b7ca55dad2100d0bd8031483831b2ed7ec4d0a532d04589c8228952a8a670e0a776c11ca6c8a97c14e5e2d8001de105085acff8996a2358788f4ff31e18c16e6441de97bb919ae784a13d7f20c20d8116a9097dbbe26308dfc2a93b028acb989356670d0f37ec3b0f26dedf06d236fbad4b08c228c970c5435a383901c86be3baa5545737ff3ae66baae6789cd3cefe1a0649f9d24bedc3cbda8ded3abd4e0bbab32253697674550c377e6faa984309d6e9285cc494566105a1d6530c87406b59eb6569971863950d61d0171f160ead71b1a0143b7360d6cf2bdd9eec5ab8e7941022a4bbef381631d169c8900b760e4ee071ef5d1c870b8c145bfdc4920e72c2039b4f53f385421463fd64f474afb77c6c79040dd6dd5b8dc9eb6b613edc409645fa7577dafb9a9438bd61686b52b1df6f7db80cfff5258570d6530d16b8bfb39276b67188e6e6189f67603821b5e44b0e6df8e06a247777a5b13631e3eb22bb802d7406498650b80112422cbbaf08dbabac69c4da1c5ffe310e84d03ea92c9a9590d08574ba8568c3e2576b5e01f30059131f34ddda3d4735184fa4e47ca22dc0f08bd0189aadcc5a78f66d858039d316adeef756561d34754fc5b0473b730aa900c868a523fa6e36360b192a9594b1c80e83bfc72625d871a28c81ed0e6bd8ce4b098540abdafede169e24c036ef234f1def30f881c998a63d592c433cafe134b22a2d5d69d03e4ef339d685afaaae398214f4883b000a6cb2d23bf8006ff785581bfbf816b98d3acef62e04eb632847231d56536dc9bafa16734e658a8a602f94f3eb084062bf79eac3391f942cb685d3fd17ac5bb1be5b208e46e7fbaf7c821acb6f2a6eb8d561a921bdc5961e470f65f0b4b64a997abe6ce8a69d21e56006469134d230bd0b1073d6d4a61941da33974e880f90b9d424a1e0aa62bae433c0c54ab29a17765ea67a76fa0d345a085e7631d331c3d53360842ac7cb392bef9d3cd44fd8f3e11b172e4697cdd9e66be36f7bbada38b720ad0fb060d141df65a61bf4db2c5028c9418f2d62e94006fc8b3540464b8011a13a98f9d897c190de11a6518a1368ff40dcf82f124f8f958601448d9e39a48fba139dd9a9eb97113a43cc1eb2847130562db3dd95b882b1cfde99822b55881e5a7f230b76d5a0766bc226fdbecd0734917959d0d8e94136055f84a82a7f54bda24d342e7f138a20dbbdd26ba8c266751d29c15550d601b1b9825f7a28dbd9b35f31b5bbad2408145e085968143df42eae020ca8517892e68b94ff55e55f1c382f5f25c8e708d2136c205a8d33430d31aac33f9a2de475d720c040a9beae40881cdd4aa7c4a5bd3414777db59c412e002313f8f02e6585cb0b94c08f6a86a9674c433bf68e70d59d976e01949311d1248c8c068bb31859dd9ba71579527ed433094a676faac29142ef9c80754eb23cdc2cc6c900e036d15fcaa37fb7e851501e3342aa00e90b05e14fe2ff5a92c2982bb8cdcf5b1f2403ae8af0c290a83c92776fd24baf1a38a2cad87d427c5a72ff5845bbbd9e45287ba1d3c59e26da34b4aec09cab200cc0e008dbf80de3789edad51e101a1f846733c8f908440df67fae30503a351bbd23e95852b818642eb8c654626316500a03d5bfda13a3796aba3ff816f74ffe10a22da2db6f4a4c6b0e4a42f252c187f49f6cf4ab0452ed37e6f54bf635326aa13f02cfa95cfbe6c905f50aa96f876ce4fe28d5d30db536d8b21974674e629578a3a850536c59dce3a8aa045e208413b7444428256feb1c8020b13998d2b3ab0440189a84c5589e09995330b7fdd2d568a4589e628d9a3e80fe25bfe43f03a37cbd76693400e16fa1250161d38e7f55af754f24869b3e66e96c9a4ababf23f59dcd76b13c5e18c162a250cd466993fcbb13fa7a0ae3cb1c5a544dce8c6536be1239c7ab62740af765a07d98aebe3cd539236e245f3cb2aa5b5cc014d1d4acd42235a64b34004534d8f20692305f708fb3302751fd199dbf57a18ce01b1cad0da297209a37d51047c82f8dcad37107889ae3fc6ce8664fe27a94ac6078feb4cfbcd77868143bdad245ece8f8b27db0e89d3499ab9dd42f2d331081364e2ca08f511226823b95d90104e11f15a2522b2bac946d32d6b56442c7d630931d01a19b0f280ec889dadb2a7f271414b4251dc951ca8b2eeec42ccdd65342d934d1f4bd25e8d81dcbab5b6ad30b0998161f884bdaa7ecdbd9aba3e00561189a20b43f255352cffa183755680e2476e05b128e3d5458f4471e51cdaaf155eebba2605b5cc668ea546c6c160c034fb9440852b1cfcc5fa0df5dccd5af3fdf23c5a46d2fec67bd0c34a45c5a1cbb34010af813d656decd4f60e8658f8dac85ed7a8a6f24043bdef41595fba5635abbc2883f3938f0feace8f759e60fa40df68efa9c7054e5c39716e314cc9bdf2f30d315be7579a2c1212957014071e78bdd2cd18d56d6d0f456ee818f8ec317d999858ec3f65ac624dc81a0ff9cafb797b0593bc749fa1eabc547961731c83e5688443d9d4f5d03fd88ba9d83b709cb544e44bf646c64faa5461cc31ff94d40693ba3586141a14eebf98861da6483d1236ad8233b359f2022f29f10cee7f87cc01e6bf36a3011e42a762473258fe0906f614f2a9d6e40a937d096705839edf34c6af9b2dc608f3c540c3850800a4951e528eb8492baee80b0e5f002ff0dccbe02a66f7fddc482954dbde3bc514c3e508c6c7d2a2dfc4873ff1d0b1580ba723ad66384b93cbbacc69d88b45684c701688bd73a7fe315919276349a5fad8e0492011b268e6696199104b61c28f4541fbd4afc7ff8cc320a15dafef2fc445ac5101e36ead799423bd22972353ba4fa6600c72ae952c90f4f36ced607e8aff38662c41237930959231ae1d0d35472f7058ad19e6c22765275e0ba77ea81b95e42b9d1ff846b8352869d7f646a597252544694bd0717628c41bdf3297d0669e62157c1a088a701053b0847d312402181c5c67dcb2da7efdfeffc9b538fa9931a6e0df9e7abb70e72665cf6791ec8f1c271b4398886bfdba79aa82e82d91816527e53f606d62187c5d97b7ef689abf7176ac357e22aa43c63dbe8e41f6a1c14c43e1ea206b0eb328a8f0dcc00681498dcfeadae59c9937988ddcc29a695bcba607ee1af80bd150ccb354eefb7347d1c60b2579b17255f38ef0c47d60d01dfb973f4690a80de32a21162e9030b67eaf78379adca9c96b19af518b93df1f1031a14c56cd919583e79070c4f7663f1f78f0faf824257c6df1b50f097b654a510322bde08b36aba0a82c0bb3d789091e50031ffd291645e7038d8412e2e6393618167d7cc95eab5e56ca79b13067bfdbcbc49c6b01a63140a6e6e7e26e07eec288ba87adefa865bf100c5014a9b03fa7c1ae4e8a305538463842bbaeebc11b1b88f40fd09c6e6ad09ffeafc6b09547583ac023dd8bcb70c9d834dfb0c9a9a475e3cfee42a7cc5c449b0f46dbac132ec44cd27c85db421c5885ce3b670b650b8455d44c0dfd9a7dd9f054cb78ddbee3791b1bdff439ff48bbc5f70059c4cf5552e34c552151009c6f6c39494dc6a29d68b2d4caf0a898059a1fbffe58761635303f4cb376ded948b555babca3b0873efd6808816943d070443ea96554574202d82f93f1665e896a72ee857329fdc658fd8c310bfa331d0f7c93dcd7b44de45ee0efe41de635c805b902b606f5bc4762892ad18ef496f12bf0ad73d671cc55b3ef2d62e82a0be9b732bc0967f4a8a513c0e343774141d439d1d3fa5469b2a5b4e29df2bb207c7aa5ad3a7c76f98c13d217da7c9d23bf72b4ba9e313a6f811d727216159c78253458caccccf7f276d9f48e0c348812198e396c5f8700a4121a28ec70e5bfbb2124df5a6c4d359157a14004aad1175099f2cde3dc5cbd585fa8c8d7859a71eb916b5df62358ce1d81c4d2d87a9677a742b04c4651e50330a7ea2d957e7dff65b778c1eb358278652ea1f8a8834e3809a54d41c20055c2d86bcf8eec5e769bda52c2e62692e1667e4ca77a0fd4ce4570e464d418c2b1767dff0bd2ff5ea77e6ecac4abba732e2d8dba772510146f664bd01a9c571c7a580125d46d17bf32b40c22f060387b95ff7901650e20d47dc3454f10ceda4f7df9a82ff06bebdc3cfb388280e4f98024414a9305689302a07185bb87ee5034c3e865735cd69826163540d52950243e83505ce50f60d28986f0f3fee938808138ceea133751a3bb002e15c52ce073556959b0a2d7c4da1a098b6d45b07e6eea10cce543fdaf5f62515a2b2c17ed2283e5672f5b4b98c3e03268f06c624fb2920c5071493a179677d126e126aeffad0657b995cb188d951fbfe19cc47a7da29737afd5289646df754afa58c8878e83569acd553adc7b48fd6cb2c35ed32799bc53cf3bbd2423117a535de0056c35cfc3ba146dd3c7ad6e152d5bc7dc1e66b8ebf93548536885a0af8e979eaeea2d33539da3d8dce4fa456086e8263064898ba1bae2153f4247517a86b3b5cedbdfe8fc000000000000000000000000000000000000000003080f141d212937", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 41, + "comment": "signature that takes 22 iteration(s)", + "msg": "e300000000000000000000000000000000000000000000000000000000000000", + "sig": "8070015c38f44102993cad3f7982b786ecf7862dadae3d2346076258b1660d001d44ec826743517f780730504bf489e440aec1bdb6eb43801db7a061ba4471270ee9e02c2ac9af3364e0c971d90929f0dfea9a551a908d3087b72f31eee9f9916ca9d384a149696ae3091151a2228a8320aa622ed383a173cfd430fcbce33b4261cc32f537a1dfecd006e5b63187275a5f2f4da0e0bd49427fe4dee49931aa058c526ea547639d79d722c5c467fcd9c5e95e684f128638ae4906d3f6d871f1bde77175928b5f8db54a3c00ef4cf42cfbaa4cced37beb63e7155e56d0b453ce3db7d21d44c4fb03a4833675080f197f49970e77e2982913fc82f28305cd8087426c46fed5e5d9115198638f93cbd5faab61b923973238d710288d502a9764f0d7d88db2c2bb089989fc5d0f1ae018e1a1a9db4b56c8e51beeb07481aa0a5ac1c509e4126ba5f48a104ace331f307a21b8575f6d673b8d1f031aab29db9b362aa277750637bea7e7ee03ac48362ca419b53b728ca3b77bc37067ad7eec81825da40bddfa601cb3beef4dd3de2964f604cbf6793470f358c8f45d4d6dc635eaf829df60a91ffa7c4985cfe7be5607e707920eda7d6c308cc8c540c9b980a50dd21f6f26a9a990ab6e8cd9d82121890e0599775d0ce25ec6756049b20e1504d5ff879f44cbf16890db99969c6d13d794c94750ef7d981990d944cc6cdf5e44b9e7f400eb87877b37fd9350a9670bf84c90d28e895bc420491e458f6669e484b5947864ef4f2513c3e7bc24341e7684fc023432dab70bd7b97ef8d5220c08c65a323a063a816940232f0a5ee592a1305481d27cf441d9e86de7cf719e3fe902180955a880fe0be6211be278a643a1c55eaad31e3715403f5212bacbb53d00591b75c62ffaf1052d6cc1f40f8e23d74fd2926826a8abab24af7b6b3a0002d8f1f4e80c24487aee23f7dee51a6282da038cee06fbe1dc2bf98316def6f4d8e4ccab9768099cca5adad5e4f1813d32d45105d867d007cef2ec7ac6c42757481ff646c9678f3354a20e1d53cecddec88b906f5799ea375be5ddfb8cdbaf922a35da0d2df787f37dbdc540fb2d49a3a050a183faf7a73e0bd9477e4e072227225284722c088379c0052a4e531e40b6968bd0928cbb7ce6991e04270659bb923a65b2c5286ad3f2de0e69d83c133665ef8aa978c9430cbc25d5ca01051ce26045a19f1bc2b5ff39003b2db88f8846a6961a254d5f770a226a2ca521f2b46e38624042ea3f76a02191dfafe527470325eaac60e22acb2c55890997f050cd5d055c2e3dbed55dbff9cbc72cb4118539f0e4384a537f200d6e9ebc2ff3060c05918568320210ed8ab1ab90e1bcb4de4a6e8892cad0282eecbc2aa8de770d16a7bac54d4f86e5594e782b2265409ff4790f8910b9c287963431ae58dda60e0d10b4a515e9befa4feefe978d9d2aed2711a6e4d1220d90138cdb1e72c50cb3ebe1b6ebc72e0b4eff7d2e368bed4ee5609ccf7f5702582277cb250432d44e51f9fe6900fc3dcdbc749944ac5625406ea622170ef7a71d0720d40b0587e416b3ebeaf349ebb7e04d19c69bdffa4dfb0584637313f956cba00896fadae4e854eb60a9489b62aa81ae55f11911d431796be07b9b76a243c274be357c57b08ac1c62c90d2ce701e05db14a760f5dce28daf28ae82b1fa77e80275715b0d662d0828b81aed5b7023c1e9263b5b9f70e498841a4aec33a1b774bcd55576d6b2c76799db5b77f8dad1ddd708cd1525df3e9b52c3d819071133482a720b8a869ce13b452af4c5f51290f249f420a6e366fc12de68414a740d0937ffa2659c0ae82643d84aa7ca23b07148877bbb2113384bc3346b8c42cf433321cccbd51bd35bae0018aeb9283594a3c4817842bb8477d6faf9f8f4a9d1ba179bba4e19bfc7a06d603f94b6b862b3fd92e7f5dd56a5ba6195ae768e10c56944c443ac10c091e9c79ec9da0b3ba01162aecea069d8554b4eb70b650e04e3edeb26d507dd1f2b9c41368cd1d5c71a772cf6f045d625425fb386a049d9134604163a264b1bc526c3528fafc9166c0f2aeff663e95fc1af1301e3b687cdd25a3fd415fb8f9a53eaa2ba5f038b4f71ffef5558e8a430219f06a96f184185264472e513e62b61814fc2cf928a35693bb3f608bfd61fbfa1b81a65f2d695dcd97d0d15a27d9a4ae05acb11aaaf078055e9214bff6b6a4c8d9c4364b6e4904be91cf123dcfbe5f4db93c7c57e56bd7bd18da44d8e16e04d5c3b7d79dc73c2ae344354ced4bb60f42e9a4a0e1f3e480b4db64a77c7c188ef0506e73c648abe8c01c09fd56c4910a6257fd089a1b4a16adfbb32d7066b91820088d9ac05776fbbd7e27f8275a718ec7d034513640e8e52329405c5bcad10c1db0861a9455f6b14f87d170c68362f948627ad3834fcadf70f4b7a271a5a46d3f97659a5b779f7127e80ddda3af9e5d724a532641afdd3f7b8656b5e01b33a5e05d637d5bc33f911cf6bfe34b6b41cf101caa078b289e7819a5b198eceb6fda9b482c50295f3a532d4599d1b0b756a14c90b6070de7287b0a01ac2125d7d82b75caaaa5697197b8005fef00b6c1326df188cf5f23102979109d28839406a30055404f731dd31007d321ffa2c4043d7c400eb6798c2607487fd97d71dfb60e9d95188f887bd5064450839abdb64d1ed342948e5f4e9f3922c9332162707763639fe3639e941a197f43bddb71269b28d3636f5b5b13b2d1d072623b0acbc862d51184bead5d14a03801324c63fb72ed5db40754a8860f8cbc8afe57b538b3d7fcd1f5b3f87aa7d3e441d4f8c49826602ba52a83142177694cd0412ac01f8b9669707b0758c3ba1fad854f772204cae0fee98a94ca0e43f80ca97ed22f30eaf540cf68690ac8ccd854d9b19b3e73a265f6e944694309bc8cf8809b69dbf77164d441f12429446b65f0cbd64a89cb3cfa88984c7a17e2e5e4909c6fec7ff053ddaa6dedf80e102f4b5df63c55808cdca5d51c4f86fb3214441f4b65f5a68e8574c3b485faeafb8509260b15f74851d9526ab45ba2da5bf6472ee33324c2ba581b2c5bb793a6ce41fd38216e8b6d2998a5a65933792a456ffd543f90b9396604066c9d73fcf6773af4e21f7efac7f28ebb1d7b066d332575e9429fa473ffed351a043bc7904799eb371d0fd86aeae89c631ca3fac79470bd20b7984c047a79812865ef5819b53067aefd2107627238e8761b533bfaed0824c0eb9342768f61459f08b6bda4affee76202695d689facac9199462a5e2febd14f08963b09e98b69263595aa10d016e4385394bed82356474efd87f1a3154b97509a909ef9b6cad432f94acd9e2fa8830489cfdca11e4bf2d39114869eb6dbff4381078cd2aae7e858fb68e02b677045fae2a6f79934e02a7e980feb2f1735e72a3e2f9b2ba639b68f5b261faf9de5d62092246381de708da0aa09f4f49114ce84bf7528a38032a4f3cee41f6db15b5a94f8a3c67ac13c18d1b8fdfdbd261e1e2a5cc72a36282bb3b85790976fc6ab1be1267ad5a4a337176abeac415915c1bb851f5124e37164f2823ebfa5808025a4caf75e00a4b62ef0d52f84ef5f29e09aed83aaaf03a227f44953ba79ae0ab45994a9d2ec130e80c78e928fb53aca5eac134c77a737093586897ac08a00b23f5287250d14448d149f1faaeb9cb5f22662ce981919eb0b93e15bb75e8822280100af9f461a45ee7d453fa209602bad8410fa32915ddbe9d820c967866ec18b2de61a1d861ce648ccea533040e74a31aaf85cc915d8276f04d9448e16c5a260ed90e19bee61157516b5ebadbdeea8a2fb14880c32eddebe3ad009459e7afdaf3d1a7c2f06061af04eb411b6b13398056ea6e3a3268cc0b2d0c3a84cb0a422bdce632d310449bf78cb758a9342b9267a58f28cd059b41f98632e4a9ed7eaf2ceda44b747d313900b576a2d6b3826c52862ee46faf15486a284072111fadb8f529ff4c9b1bfb0fc9057d5deff6e181463fbe6da16548c7dcc1c99cdfac5bacd8d665d107d9586679228e367ba39347c2af06673f98e444fc8e9b914d3906a54f9cf20259fbc816d67ba7f94e55dc82391dd2efa0c7da3893865bfab45a55731f421217e0b930533882cacde8507cf77f6fe72c939e3f71216cf415c454394eabfe7de53b328d14d0a3529179066d86ead4d320848d54d372e4519f86ce221cd03aa4a0b7db32cba8b6e0bd966609bb8639b4dbfcb967a132c657093aca8ad1e8a8b00ee4fb1747e09c9864d1f3e850b798ccd89b90977816bdbc96d17f0f05f6aac3c06f4f76f68e447dc5a5c3e6cfd0f93508756cd8a0aa957722fe6e16011fcd308c7cfbbdb1be959b4b9ae4117c76fc466420766bf96e64dc36cd95f81bd652201c426b3aa0494e7c6692a53929721d59341eeb8715162be6931c80d254c2e927d57cb42c527a4a15439220d013a346ed968ec86df71b43c73289b6be73124bb11f2fff471ac2c723e513ee24868926144435c40a67e055fd716e49ab0d4b8665822f3649a6bd532f55b5fc75f612a7f80875364399eae99fece9c8d67e4a04db2466e03732644e50e3dd3f5be38c4c060be65d0ea5082b982365bcfdd261b4b0f3b3e91efe124f03fe5f0d2b83ccffa5622b9a288eed2c557c43d875d6dbca3acdac66f503bc6e2b3987ee8471de0d05c889c788d07a58797e5edb34999dae7801f8abef95d2a1d8d26e534576daa08b0e7933f3adf2133742a82e42150999788e4e892397709a4d0c4d3de3fd261c758e0f23b5669e1292acbabbb3dff938873b27fa288ac57c3b7caad5902b32bc4d9d7cf49758b8ad22ae33a027340adb60686d951e0114ca7a0d824ac6a732be24c48588672ff4f6e2d902e7a2f487240f4c4d1d5e8d93f9a04ee7d7df218c500cbf2e3f27075387ba349dd5c016306b8e915222e9b85303775475fe9134aed7b2fcbb7cbce0dea0851c94b19e386132b4ae1ecc2616170de2d9c7621486952da441b5716477fe86d62d543b8c5a5eca5748bd28b4ae4dab31a39058ce8977ddd72ba32e62a2f1cd097fa545c117f13a758b356d6ff85fbaa13e83e0d40b91029a04b6743b31d8042b5f5605730e8e01a1c3a85d86747a87b217e124900110b0593137d14f96ac19cf47de740f9af9a77a7e7cc72d8c554cdcdc2f18af23cb8cc1aabe0b60ff3b0003810bc04fdb2f03199264dde87f1f4bff98a9b32788f7a1265d9f29fbce06a49fc01e3fa50284f9e1054333e5bd1bbaac1bb8d964cfe40d32162150e1901130db3ef60c932895a9c63f45a9829a6a6b44cf8909936475b3e20deafbd1aafe322327efa81d7a4e3d6795096cd96ff2f32f829ec0d326614f719dbaf00218b9a1ef23dfbc7f4cc28eb08d93247b70a8478529fdfcf198a98d777da4d22038aa1e8b3f13bcb27146871f274b5b4c675702a25269bd618f7742009498428d95689561433aa3c3a7c59542aab8c69fa90a0505a125f77543817c0155a567fe71f9edc0ae9191fb7d10c417f3a000db5ccf63c205c695f4c0250ddc6c4c94c4ca4eff6a5e59571eba1de5870352c0bf387b344bafba1a5b6c148c70d7cae4c29d738683aa8e29ba2265c5970e55d6f295b71d7098605fc321bb576608d455a170c2fec2201f9f3694d757ac869773ecd9f1de631553e3b32c4bd7969d798b2cb26fde24f62d72842248a62e61956c7fa21dba5b1930100ab67f52dc62172693b363cfca559ad0c70e1a2504b9d69894918830f865f6ab3e400ad830d299a1b70474b7fa80666b61ba2d6db41ff838c255efb1ccd520dfd5196639094aa59b00c3510294929d75435089730ca66b26472ba77c4ea6a6ec255e1ddc1ffbfc21864e61bf04f5f2f33b11ef4eb9e20166e6f7d35896de62985c2032d6188ef4a64064dec6c750b2dd18821b66cab5ab1d33492320405ef390c13047e401e5c2b34e36337fb68448ab34e5a41c6b114baf92fa37c3ff45e3e9a164031a7d94f47c1ddf3ad5f94b3edbd88ac9581521d82df8b274787aa93f1d2c808d9cc949bea1879984dc329d5d637bf0423b43ac098fb6e503af2aa09de8813271d834b9131841e5d6d1645c148ae8a5b89609ffd6db1770620ad477137ba0b0e3ac930804ec4a5955b62c5bc1aecb439c23c73ee6224c7d7cb565b96c10b81a0c7fcf0484e9397437612d817c16adee0c7c5397e01c470c8d8d7b42d90744ad3d38e37c9b0648a4f207b5f7949afa07a4bc80270d0e5c5014039f6371d78fbed2f0e76717f8fec006fde92d1688117a64119469405c35638e4d7734f5793542f8ef36fa2bb11577b10df5c485d0f642ed3d64f30b6d7c3dd77222ee90a3f3dc85bf0afcf88532d79411cb080f25cad0dc4a4894354e4a0928bc29eb1e6958919195407a6278d97a5ed3608712283a45585a5b7187d3dcebfe186e6f889afdff3d830e2b4a52617184aac61a2c72a7a92c7ea2afcdfa328893de0f135e709c9fb1b2c50000000000000000000000000000000000000000000c13151e23292d36", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 42, + "comment": "signature that takes 23 iteration(s)", + "msg": "0d02000000000000000000000000000000000000000000000000000000000000", + "sig": "72b76c31d65cacfd8dd99d1ac61b0050c4c592ecef9e83185cfeb5f409750d79794944349abda5e28827405228f071448be773a96777269275b31602cd3660ff7c0b93685fb20ce6ef6908b3a6cfc45482e01bf1b0b1d1ddc6713df9e631695601e3bb4e1c0fad10e1500cfa53579f5a18e1b6c6b9d506fcacf3c429d87bd58a71951b3cbef2b69169fcb1415fc4bb5af1adc71aa73817cf640ffff39f2e4c85c3eafcb03321dc54c2473400df68ccb541d3cd6a89d7656e750e08678dbb05163fa1027b8c522dd3b4f417b2935eb72f3635499f3425561ddac91edd8eb3fa6dc6779e01bb3c7586494f4f50c750857bf9befe5a52108118bedc23690608272c9253a035a612c22c24662395418aebf06333d7cd56500dcca46dbcfe4407922280af7cfb9fbca8bbb09036a9a78d14b5dbcf4b23ce999c2ce544f9023eda617707c026441ecbd763a1a5cb8e0577f953b7e81b4a49011410e3e9887e067ce1f88f1dccefa8a80a0cf4385257e4e488aa93b256d545578a2850b7e0aaec7381ce3ea26a106f298dfec6339cf2aec5baed43212497bd65e3b1dc3d936a53f4f1afff627624c0e672b1248bd338aaee56fa34546d2477c82e05526056161093eeec9a839554dea344548be3451c452342ed0444e371e3b4e88b8213560bc1004206ee3bf494c50f8cebefb9f91fff81dffa83c9b72a47319f20867a9572ff111302138b9472d28b2cc1e73bc00f235d44e5ff57180b38fa9a1c1a02dfcfe798a4bb4f2df23f0f335af0e9fb1c62b1a75dc4f22d78a72f1a119e8003f402c68d6736436400bba75392d7e85ae81ce5df539d691d09a609b063a27a41a75a50ab805d525119706812e705a15f04ef1b616b213fd37ff4d8a96b3ea1c14a46fe805c5850b573e711e2fc6f939d93d7b805d5461444227a903f2b33ca4cc4a87c92e2b256411f4e0c0579dd5a7de0feaa23bf37ff53243a2516e4e064c807a4f2c42069e75515469c5a317da5ed54059e8991a81ea6f9fa5cc012d3544a1350ee28aab3196c2f00fcf6d9feb3330b904dc38ab6af03e131fc1718e8ba0bcee86bb92b301ad8796cd86323da892f3529d51c56c63929315db67cef9761aec28191b86f89c3fc3addc4e4d2fd85dbc832ee6e5191f95fc08bdbbf0c8f4d72d0755fc17e7ded1b32cce7c14f5bc824e545e6ec90a03c8a890cd57641b4bd66b85dc38b5cbdf0c0147733557c0d249701d61754fb1c2f719d283ee0a1e18c7759ad0014c8ebf73e0da6d8dd5b0e82b8ac2a2ad87bf16d4e311b898dc4c1d27063873edd38228dfb314e606e674b6b8ad8ab4fa35e1e16b798080877bcd7acd22b5ef13eff14cdd2d10bd710f59309d219ce0e7805a762d35d63863d0330ce71437518d406ecb4f0c76df512b8e37f0b54e02910ecabc69b0039af01e1b1f25c72d5659c1885e049343a78dc05fb0aaacf57bfeb2c18a4f7514812658770e9731d32aa922e0e41e257ef1da6736e78dd9763d20f3532ebe3b3b7790d46870e919735698d5c934cfcc09e32b21a4c0a261479f179a6684d70c9548a14d3db77c5556cd1ed7069ce295fee977aa83fa98e6c43b55f72e6e2ed18f63697f60bdb2ab15f45b291485c66288780ba66e6dec0e2f000cb65be48f9b2a8511ab6346cee42da6f1d5a0e306aeb20c80ee427411c6154a539eb66d1e1dd7e17f3b735556390e0f656073cf6ac8bbe6e28a1d60adce6fd61cdaedf104d3c72bfb6e8638ab144455d5b955dbce710e08ef047246317c9fa393f8edfa0de9e6eaaba2958567b3dc3c90972e755f9d01cd6e93cac2c5c843306a9da75fd0be875b2ddd24225648d13bb6314ab720ac204e8c67aa0069f3d23a21eba8d6faf112b80d49fe539aa3d15760a530c4d367ad181f6e57a08b7ebd33bc1309f647ae0bb5057f7aaac44da7b5292f21eea28700f5c44b8aa6a540c37f371a1fda8e86af44032be4420cacc0cf023c1f6ac2c92b8ea304c90c687e3eb9f3127f5e1a106bde74f9b585a9c03f3b4bc869ca9e0dc8f75917e52f9a67cfe7242cf5f2f00fc0371cd84e06cabc1135a3d7c0a9d949043e2637f36e0706c5d15cbcff73241ec3bbd36f434c57d26eba1e4964ba342378e02973545e8e5628a1c74de29e572cc6ef92539a1f060452cd56d76cb4010662e0e7b37293c709df7f679f43ca670d05d38fe38c1fa3f7b89e1a9ffce05ff700dc66da6d471a362230f94ecf9c82838186d7e47bcd0077dbbbff8cd5f35e454d60eeef7ea7206c798f87a05bff694ee1d794c88e4c3d05e1b1fc6b2498b9f28603ac850be0060128870f98485469fb74cecded7e8f171939a64af9d39474bf0534a2dee8c40a489a76a170d0020649f6d0084920f6a74af578b0408bce3cb74f4524cef2e68549ca921d1679aad5e01a57db637ce8eb63670c82013704a4f7d5c5a3f2ed8cbb9dc5f47897aa123e21aa6f38ef512327fa604d888f8b3018abd42efe7ffbf8991284545f9a4ebc4c06abf09d3b91007e25b1fa1097a2f879ee1c8685095470efad77ceddc5ab064197fe9f9d604c3d472b34f5147c2b8982bc3ac624b91e16842d3fa4eb3f1d4aebd3be7cbcf167993045e764c24c63ba55a97732174d1fa967700e31d33718e5d52ee59037b742acea6edaf4233cf7576c6de1c0b0006ec0cd59d78e66375e5cf2df629a909eeb3277198991114d4979e205ef703933c516c02fa6b97fc9d5e8a2b3871193002b776a2bad0e76ad44626c980dae0c3d3750c98dd0e156494066fea3708910d5a3781c1a114f5ad0f608e9123723b2232c14b8152687d22b88f0385615a3ce190119c8f79278e873b025106a54ddf3cac6fb3b72c923d8d3316c2d813ec47fb06af5dd19e1bbd3e2c8a0aa67f68ee60bc31a41ee30b65279475345211cf60be335f153e1800ac16e3eff69f66c2905e9b622cb3b9d5ef5964d4412d12dc1308b9e514f069c7b334ec7a81b93adf5b375a83e3f238b909d31930e0bd8c9fdb631b8a390034991036e7c7b54b75c987df3f96d55abfc5189b00a9147c8cae23a944e8846c4819d9bc76b14448bf6f6e180a9194c0831ad47f704db078f246d8a674c0eab4b589709ea779080f20a0ec6c98646437511bba2887cbf52adaac5bf056d71370d37cae002fd7a4394c869a1c455a02f250fcec868990318cc50394e4b1a5de1d69e419319141b5e426412ad9388f45a861ff3fac365288c09d39eac360ed3903a1caeae9909f747d8f4e1224e355187c2c8d9f977669b007d573a413688fec6dc0f40e3a28732cc5459e0f5d8274c6fc8094b1b87b327f20c8955f66b4b0300ffb1713aab6dc1733e4b342f0b16ce35742ce038f65f2a9ffb251d4d39da79966ebca259be04632954f45644db896cc64512128f93b0365604ff5a373b7889e7173d8c08e200649ce64ca2f7b34c1a4a72fbec6a1e1c8e0b1e90130b40490a770f311679bd394ea116b7284a1e479dd028942b9aefca178fc0e237d307f003aaa4e7949ae92f43c3cf9e747bd53433d73917df43b6aa9da99e214c553d0270a98daabf98a18a73f74f5572f430e048f5c35399f4c4db93b11f81e7ee631de906917fffe477475a73011a3baa41f04e9cc8e17269d4fcd0f9ff41c059347358136f2cfc0ed6d9f70418bc7b39796ed23f663376fc9b7c787c0f8d76fafe678ee3bc4076e99feface6e6fd3c285545f5df719e9b6e446d45f256532fc71a28c2b1fccdf972becbb7e6d01f92dd280bcac8c9338670d9d8dcbeabd3029916739c1354651ff66982b18b4b1eb19bdf544258afc7d5947a754a7f390253a031f112a8ed203bafcde14c111b2556570fec114860e64eb869ddc7a221dcf9a36494d3a8f22a18675ca8f8157fe09ec28b778e6b1caf13752c709d7c07440ffb3874dc029dda4c7ffb0b15a8cb8281d61a10ddb747233f94d07cca4c559b781904e3e1ad3c96548ab59bcbca5cc9ca88ccbb13e91766d155b409b45937c6f004e7e60622726063b99bae68239899a1188115194559e105bff8d194787370a435404d76b9404414c1ceb30daa6c879367d4287890ee1398fa997ea8aa2ba51db88fe0e1119c6c857f608f44abb67f731ccf57ae735e81135f5800a9aa69823104e8203f1e3a81525b65617b2508f6a1f0f4727b923f4f6acc00793b0285d95ce8f543fc204fb8374ab90d01ca1417826dfeacfafee7b6ff162f831e92ca7d6ae81e0d40de79ac30027a52395fbc97308440655bd07a6e0cf863ba7c9b55efb5e2c1cb4b8f57ff89e14e612cf64abda446f75e356244242a9a21bde2d035490ff656a499f7e81834f8aaba6cdcdc6488abacdfa4e2ee352d44addb9bfad2b0336b8aaf49a3608d6dd10292fdb3ac461ed67311ea352c13ed7091d9b86d387b3846a330f4eb97247a78bed8583cde756ce3525d3e808f8e1c77253f23223d4ea6512faf65bec966982e7f199ef3a299661496bc3fe5aba5e1d7126e57c2d22dfaf377a0bf62e7dbfff63b7f5a8f0948c988176a65dcf38f80ad536f8a30bd8cdcaf353fb4b6267cbb69d6d14f185a714b6579afb474544e793fd416e48032d348485786a20761bf7e5d3f12e2a69156a151d3e7108fb0ad18d093ebdf0b11200a5b9142369b1029d4eb4f68ead2839419a28a4cda1254adeac1d70864ffcaeed6c65261c85243dceef57d9c524336477c0b305e63a7077096beb2d2c28c1785512615624a60c76572494760438cb1c0842638a9b619291e869693a471b17304021ead4ced4a92055a2b62320bac89bef0f45ca369f24a9d53fc85f3c004433323bb0e15aeeda809472134db0e5ac2f19739f9adbcbd1cddffc62c777635db14b9967d3d50321071b5666fe2bb00a0cea072954300318d03d68343becb56cc9dc15facc35f24e2a5f7c44ec63bff34018bd41a8893750155d571f0572951059bd1cb378bd8238be3ec9f4017fbae4c6a5a164ae13df0c2e742058240b4b3053f9ceca9e11c71d84dd04d366a19dae8e9e00c7c4dc3985fd24e561ddcd2216fcc5c92d91d8de3d41b7ced889af0c55b1f86f71d9f87c83b5b27600ea100f7813b4e4053a67ead684f21e0be2a729eaed77eed7c9fca4b847ead78162d9bf42bc4971360439fb86346051ff7479668184e06a9c14bf2156ea88337d63fc8650562986c6371168d2f1534d7a269ff190b070b13b4335c2c7a0b195ad1468a482ff67c1cb4e9817e30e2d4513fae9957b0941718073b378cb10707b96177237b565bedccdadf94a426206f9e9f1324b9326126341f768bf25dc0865342472fd54842456012f40a3722d1e6b60b0e09b0a76392f147e51d0b14bfb6db41c27dd71cc8ee27fe5f1e55a124eb7d6db4b35da52cf4848cbab6adcacae77f68e3ba7ee2740c341d3f7be713a599611ebb1ac9f4365439ab350fd7c12ad32fdba9b9494338b6ffebc4075e7f9e316e18a0bcaf9a37b2be20cbc04a01db7c4cbcc3a9953af5dc2b9828caf5734ce44ff3836b6d57a178dd2503c10c1a42d278ad15627f6eec2836604096f80e50339106bb55183a876c3465721fac27380d3575721ca425064f53616c8fae8cd2bcc54e869b59f131a986da7caed333634ab44cfe6005cc4e74dec38ceff1e4a5c9003a94c34bdf15ef13b7fe7834c1f59cee48dd5c6170ae50199d8ac01160a9e6d933133b0af485849ee6fc9b8fbba21dd3ddfdbdd20e9854e9847151037aa31eb8be279a9ebd612d8b87531048883c9f178daeb8b9e05ffef2235c482517ff5283a278c947452ecd8e01363718bab9a66a95d861295269157cbbe7d3566b1b21042f433f0bc36ee70be2a748a78f115aee0bbaa696e90d0d38ef71b979e8ce2181b31038873f0e0a10ed714193d67368842051b28be8dc167b8d0ccb009ee3acc1adac7159b66d8f0343023128589e20f50e6be8992a39c2cc219c46be8b5629b390c157810f20112d9d95a6176aabe436e13e34aed175a3b18daeb4c5e8431c7840313f13d3d6f0bce5e538eb866202c759a57421738a4ec018d4e47369554d8b49380657893d2b04c3675463dcd392c3de4b08c4e6c6189d9c058fd7395be318e95b5a8db02cda9df52196e1840383cbe94f9766433028baf849029b9f04a04b268d89d2e6550365c6553aae70c58269a14a7cc7b5884134bc6275d11a748741b16c6cc9b7c86faa2e194f2e569fe49029e24001a30c5f245d8d93fa0ab87181757156d103a55775f2a38cbf21eeee3190c49adb3e9b78d2c091af4edd8f1f117af5ed4a33eafffb616982592b8a6cd0b503412dd463db69fb835def38546d88316e9eee71628bc0892b344263be16579b3d34a65a0359324bef5bb5dc15a100645c8b2dd30cf6dfe7f341b5a386423cef10d20bab82b285a75a2164e9e309563c79e142ec9e2f61592c7eb9497a0c84042507a8fb4cafa031b264f757f808aa6a8b1e5ed11173543667e7f9f00273c5a60c4c5cbea0e6facc4f20000000000000000000000000000000000000005090d15222a3338", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 43, + "comment": "signature that takes 25 iteration(s)", + "msg": "7c07000000000000000000000000000000000000000000000000000000000000", + "sig": "a200c19d069e4b57e62801fcb814288af4303535480160c116aec8588a823700d9172e6743af2f901e8fcb8244df83b373c14e50f114b07aad0b99109ccdb200b9973832438c20356888ce22cdd282701e276f8882cb1615930f91e943f50d0a7d3af8f6326a161be3dc4deff1733c026e771b4a12eb04789622628d19674add76ae179477a516e690d5a22fc2c7c8ac60014bab98f731ce480e8bf041674aef0de0ad88f4b76193b6c57814dc792b820d87101533f2e64e4145b5b63976dd2bca582f69a8636bacf094b6012e90d62a1059adab7dfdde650bddfeb2290596bc6a207f0dd0dd1c6fe586026b254b9dfd063d5578a78dca96fd42ebcbb4de35fb711da64c7273d9c2f858effab233bdf864ec2be21b59517edfa24f6c68a17893817116a623a32825f7ad252e531910570cdbe906e6d43252086009dafdcbdf916409e8b6763975df20ffa7a91890657292470c3a6b851d933e7f82c9d324e5ff1d9aff3909a87a389524b7a00edd418b441f827e040d4a9baa341f6c47e586c7da6f7f05809fc757a7fe95aae1e877eb28bcd9ac3ab67578ec280142749c4536f5cd99d8ebec350d76b2c1783ef9177a9d7455902361ead9fd3bcca29383771c979b345339890f9319f2c576edb7ae6fff156a69ea19e3599dda149dadf15c340744c7019d7764930883c4201e489473cfca42a7195127397f6ef6922aab0721576df386065accfe0631dec593811b2f285722e160c9deeee8eb3de7a85b4560d636cd96673bb7bf67a4c196374a808b083102a2fee7fe886ab2fc40d2eeaff7ddb193b9ef71fe625eb3a3cc027a0368b5489ec4cee58ae026e8ebc5e61c3289c9fb9cee13c7704f16f70b7032de2cad8882739538b2edad8fe91249e04a766fae5e3b3a99ee14e2b2c441f34939221dff84eeabd33d014180e131d10eea1e2e68d101712f0a18227ccc20ce35fd40af0994d2231314d5716349acc52a3f98a772b0348a5e8dd08762f6e5f68fd424704492349a5d2b039b1cddbf5d018f3f7484d7e9e5a46441f04b6ba09e505248391c1450118045fb9408c6c04acf0a1dc55188291fe3ff8e3d1ad159dac72f8310b0c37d847b85ce7bacc9bfe3e7ee1ea8718c3a3f71517e116cfe3e2ba96c06eadbac9581241a109eedb645a05f220074af1deabbdc4f89bf779ca7ee2afccc229c92dd3efdac33a9dec97f4e0a92f6bcef4d7484d26820bcc3453b6eb5f72f3a955fa3ccc280dd0c95c8eddf029e0d7ef4601bc26d21a6ff8aa04fd20fe524932e692e32b0f8353a43ac0fbf47626f8460019c778c94a640f2f6d34ac1cb512ac2ce9b0928e580a0900bb306970f136980bac5dd09828b42c5ccb626874a3cdd34b099b69e63f06339f95299a17ec2b463a85928b2e6216532852fe3f2632dc0649c4090e4e13e1c876a3c6561f8edc492f2db32670e0ffd9614ab0468f6cd172bb92eb70ce1806cb67ee22211420a9a2cdc495f376d7eab60d8f88664a8176626baa02d88263b34588d662ba92fb03aefe9707b976fea30fe19bbcfaabefabb7a1c43c52f693486f8e1f645d6c08c0579898e4542a5d5ea760a1d76e8bb9bafca36d771fbe1c99446fa639629aa1ade26a9c6dfa57589469ceb580b0696cb2c333f1721d960537db83a4edf651d34b7ca50e4d52604134e366bfee53df6d422ff916ca87298b1ba9b787f87710cc1b3dff28e1eb00cfc09839328fe7d5d534b7bd5f6f05d087b2726f8756929f3c0c93f1270f6ed00dd7629defaf3653fb8bb961412c830f6eda86c406445d2303d831820f077e4eefdc7b98ee8300b19013a339c648920e6f42a62bb9c763444fed9886488fc39de2f76c3d2e1719c21f863179620076544a2af7c25322e887e791668fad830695ce3c71f06155d899673eada8b2b00f74dd0b855255b822e3499754fb8a51204e110b94128e2c0bb7efd36db53d9ef6d5ea54c997496cc61e0f8113f2155abab98c8d7237f5996e1a0b471aa3ac66eb51f4c5a13393d4b666e9e02faa447ddf211e09396f36cb6ea47b1fb750ccbf8f43a4d478e5958cb7d0e3a1813583bb6d42d6684868c022579bcc1b1e84240ab26c55caf09c18d4199f33bdf628e4cbad99cc85f9424592f0a71e5e31c72a7b601a37e907cdc47ca9d9a8c9991ad51ed996409ef753b2714a02f3476fb8315d73a7db33f06f28133ab0987351a4da92f6df0294945855394a612fe9393011c95622ca033ed399fe1eb9e85b89cf5ccc4dacdf930a4cf798b86d41091abe9f1a64bc9a954aa032712a76f1efe2b348e0d5313e286a0821d5377e8517175689cda9402eb244a913bbd76d09f5d0a2037e3b647307fc3964e87f946419cb8e8c2c2c9dc169672aff8a533992dfc5f2b89cc8b008aca34bea03e2fe1c76723a0c99b3844f1d1db56da8045bf3139d7a64bad7d013835296ee448872a004c50516ce3b94ca91a5dfb9a34c17f10b27435ef4693728a3e9298d30d5eaae83a2c0ce6bb25e10a1eccc33fa2529913e7e00f75d713e8a1eb902c6d2f4fbcf3fc3bddd5c579e53ea43d9c7e1c92dc902a2018f6105ed9b013ea358bc35225db77b51b24f3ab74958024490b4527410e0dbdb7ce4edd25b3b8fc7ec3d3985c2b2ba618c626b649db40577ca14b4c070e9340c6dfc919059c20b327d9f79fe54b7166b0a6da4c01296a57c7f4db5957109ac7f983486180777b7b7ab73dc6adea33183ce064581d8f73916460be38567c2a6aa33bddaac4dacda9e797cd0224a1243601b6cc8d49b828c00fdc40cf187119c5ae89928b3d50f7b802e57f644cbe891d536cdb877a141c162fdf3a2ab11f82d0e78ca758e79d869cbf84a91eab14de7e39525325b93d779c1bec1284c1a92c5e4f00eacc572f1c24f6dda62bc5063d7bd52e47a70a8a5610aeafe09a3824365bc427044b75fee59593270f436e1ed6853e13a7be2e1b2fa1783449a1cc89ce04274e3f5f5a27094e4c44d7d7b9981ac9abe6ae412d4770c0f98620889841ec2a67397ef9fde78e05232857f87ce37cd91f1cbe27cfc243f1561236535907fe0ca8319bfe10b6e5835e53dfdfc3a249fd715cf361cdef71828aafc6ea85abd30c8e612f959d95eb1b6e3b66125fbb42fa7f42d19cd4b3d4ba0b49092d4d065cdc408c645189ed1ef8bfdb5e19615ca40b7009484e68d8f601261774e5fa384af052d2936dd7c6856b7f4c73aef06c15ae06d8aaa0ad5717ad8746baa7d88832ae072c1a11c9ef8dc5d1f03f71b8c8cfc92ed184095161eecad879a5375c376a76fb28aff7e456fd593307d0d7ebdac2ecd9d6549e53582d3b4f19bc2c0c90c7bcb6a672e22d41c4f93b467878489d3368f9d7f2816dbf5b25dde74624c2dc2464eff4612d9cbbea406fdd5abfbb63f60654c248b806d97e4006c7969cb01fe6dab8f99e2d5a0264b41d17ccf05487063a348df65fa8c388678e0baa27f71f999bc42f730fbbc93b16a95b3be2bf32b4c4b39189b2d988428657d592e268c707afc659abcc32f8a8a618413d430074096d5a570957025c6236cb31910130679ab9456ee46720428ffbc2264f01047c933eac48e61f54db8b4ec63bde95636205a863f8f52e8911a7518ef86582de1fc1046f2cc80b40fa9772fd371daa2276ccde6bceef5e6f85f59c7a6b14d3bfdbd1df62ab747256d848c122c611912620e9bf9d1cc82cac1d8f39cb4b85e096c5e92017c8ae78ab930481749f5cd69bd0a1b150498cc732377f2621d1ebb37e16875fad53a9cdda83eee73da03a3c2b8f8cea1e144ca41aad469dd7b0d2818c7a57d24981213dd141d3d617527d6ddca4dba5740f0b1733222b7a6ffcb7333aa096f1b394460f91639104a3692cae8764600eeb918bb8d0c5972d41bd2ea9014f65abc96349a1158f49616ba1e92311fbad6b23810639109f3a69600a6c3c12f6ea5921db8881c019604ceffb9e4df4c4eb23b7a943eac706b75b0c18ad28f602584be31b52a338ad1746e268c248ca188fb576133b6040332e5015147d02f7afcce156e204e3aaf98ee8f8c16e6ba6794afd0e36a9184fe41b88ea13b39ebad994a24143a5373d598df90e1bbc27f946c2582c5095804dc49a5e4f8cdf228a7142d10a60bca6252c4029b1d9332b995c901a59b3dd079b94c199ae62eadccdebeeada6a17b314d04efa501396b65e040d94a6c11a849b198b22703fd5eeb82d17b892313369e91b6ad73ced5b46634a14d5ca12c0b0e6591bbd559e6ba1aba195560eb809ff584139b8d7c9ad37e399f9764da3a2219d7fe4abbdfecc2571c2a4cecdc55eb0f12ce5ad59c973b91f5841f96ee7731a242e4197e02554299fd70c7367ef09ab76dbf9db4c267b6458880c76f0b18daccb6dde67987d50339682c53793a0ffc66740eb4e8e6c078a42ab17321baaa5dee4da6b031338f2e0b652c4a2b2163589da35e02f339c48f733345359d6f1a5c5c721cb7dcc2fec3317777bc6fe246592d3e705b3a03c8eb59aab47f8fc6d89a842971934ac4c85a33379396d7d84a66d8003e8b7e556ef177daf8aeb22518124195df047fd10a73779890f9d5dc1a9ab289470f70418c4ca92059480f7d5847bd61a032ee842f9e6061c85571faad628c9775bb032157232a47b04846a6bc076e6552cf576c325d952e4fd6a15fd3f0dafc1734c5af8ca24d1e7ae1ea3c8db85b4625a6d7ee5b88158dd3aa7f7703f396ad92fd539d2f75e0f086d579db4281c11b46068ded8cdd05644df02e18a09446087a676f2b220dba633c6e1307fa61a5da964f8f2fa7ae02e5279905d768016614de9a86b04454fc2961cd0ae33b7427d65c37ba090a90a976ed8586f0754be301c2720f7fe0200dc2858fc93720719ef38a67a84e6436250917f882f06120e2eda29455b5129fda8b158a8094d8df3bbbb63f458085087639b3bc10d46e69a994adbf6471d532a25a7eba40921667f13bbb1bef800283af0e3eb9e0f7d56a348726d216cba973733b112e567525f00eda7fe0131b31fd81282f04c255581d340a199dc1e2901e1fe3d18afecbaaf209da29c2a8aa3e0e90b3733e28ca118d10c8e87db39c6f46c61b850be15f7f906b26d6ffaaf022fe3d4b64333f08c93947dcc34aada40eff199c45c35853a46def5cfb363252d9d67a62644111510fedd4d2c4f42330775761471bc7a69db3a49164f3a9a47d79ae858de2478b88e298b2fc6debcc5b3a8763ff0e613642085f49f956fddfa25eed25bfa01b1993e8ffe9f1b833f180c7d3797a04dad3f54aea1488a31b77ff31c0cc494150d1e5023a0d2228a1e89dd734e5d636a645c9e45f16a32c3c8fe22b9e3d2689f5a12162abdfea485b2ed95c6c6bec1159b169c6904007d3507440c5e79f36e0f3de90779e70e9d19d0205b93a2a90daf7e1493fe4c3155de82885d0cf4fb53d01e18e80e7c1430e17dc3cc74409cf0a1cfcf7e7819a28fbb864e86272df387bf014bbc123e02e4cccb3305e8cb743cc836a1863480a195841d7a8a56560488b367ee3cb0434ff72662e7d899a85d8a4b32a5c70c5472743cc109c1782715088d8d0d24667f764a926ca9cfd9c22651beeb2e6d511f5b7d5094170bec1bd69e561513b263531b51cb5c2f943f700afae797582eb5bdf542e943d34af2cc6cdf541b8bac11e1a13bf0da6ec7bf513cd44176d06bf4ad4645a68fc1732ab531f1227c08013e8a0db9af2417104a198dea6cd12cd4850d8f5d7d4072eec518a8865c7fd4d0091a47156284d27c068e9c78db2df674932a595607738bddb8e8b2ccf36bf6eb30fc1f62bac7f7290774b7380b50f96b6f493facf1544122c89991b05d0543daaf85fa4dc7e10d26e53ac41785e1f1f9f2a51edfc2af0d420e36280da9dca5038117a94240128e160d77ba838bde753064aa0d23af7ad9000920adc0f70b29fefe75139c014d4d273de62774924983bff19f7b48dfec86d2d2872ace867e59f2bb0ac6b1d996ccfcf0ebb82161d02d47774cdf8602adbc6a026a272dd418290f72a43c7de4f31af59b943ee83ba95682163c35d8d2caa3334a2c831afaca58a9b9dfe74c1eceb1cf9419d5ff5c267a963b20df7a108bc404f648eb4002fc839a86726e69f360b67ab819ee14d6a634b4a10b98dcf140a49b73aae7dc760d15ad9b818cef75d5e188420da266ffe2b9faf79a5a23243dabb6cd5712d9692723c7b4a392081dffdf1c52a95a8e966ec7cfaafbf3e006416619359bc7059fa669f6c41820ade7a98642a7cb647737f6b3eeb31cf02e164943f4de5d10edf8d9bc9b6b1f63959c2135e187e6640cfc632c3d56530f859f091d37347d359ff1f9f458a4fcdb327496555e585f6631134313791550e3fe194c123b4da474196607db461c2fbd37796ba8817d2603388da0d8ab0d40619616fd3ec246b93a1a5c8ccd51b72a7adcccfed013e4a69bfc0104da7abb2bdc9db3b474d5f616981e8051e54566da7dc000000000000000000000000000000000000000000040a12191f272f36", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 44, + "comment": "signature that takes 27 iteration(s)", + "msg": "370e000000000000000000000000000000000000000000000000000000000000", + "sig": "1494167014da7e901905f120fa806166752e373459599bed3e89784aaa2725753f2f93edc1725182f2397b1229dd6e3452d66ee48a782207a2fc371de95fa7c20e8450740f94cd400821c222383aa391e4f6e34de20eb175455a5eed36b9f82c6ab441c9d9a5d84a328c1f6f73a2e7fee29c9e3e01d46b685a0a2d799d0b8aa95d09a141e01cd44f08d5677121bbd10e389d067d47231ea3cb05120324eb06fbd6433fdcd115c2fccde0fecc78dc357b3cae1d200edb197d1f064e422890164d835f36f7b6464a2795eeccdef6b42c2431c19f4dd06bebfb6563465754ad473f550d6f3830ddf82359738939d1fc5681c91255c96ec883bd174fc2d61bf0ae8d3b3fa6e0956ef3d936057b087eaa64d933430e400e0e2d6c824f9742f1212257cf84782087ee5bfb1589c729a38f73a3e3d21bf99ba3972eb724b9f57dc365a04fce74bae2c5d14ab403c98f25353f12e187b27cc2f09f39d4c8007a7d6dd554c2d8c1fcce075b4d8b0683dfb9e417aa87a5688a7528e781ad6b2d6171771193919eb1749b751cecc050af19cf4d40eda182e8f76907233ac60578496dad0703801578aadb2532f9071255a7f459e2be5066f1f84d7529fb1170e1b807f63b001abb4671b60537cfad4d59e452593b3696e1038ff4efe6460a3bbeae53eeb1ab44e02a0e8e9a5e951fbc26eeee29ed4e8a059eea986875efab5b8a48e0fa8ddb926dd8766ffb46d34c03700100aeca47050c5832d27052a93ca58acd0166dc847197f5cacd99c3f7f016c8fea7c8236fc28a77a02bc9ede3d447e9016102c9af1f549dccffbe274b5c5d83cde085f206905ca2b2766a5dd963de2f0cffc9f22fb40e8dc9912f571f44b71778cdd733cd45aee6b5bce07077af3bb9107ae40768a939d8591f81af47e61e997c9ac5ccdb3f173889a2e1caa024500fa28d81989f0e919f398060443c6ff97bcf5f71662d9bf4d1bae72469bf65105357302058a669d903558afba634922ba7149526a0d5679b48da8144f6918031868946599e57dab7a028e7296ede2e9e0959677f3599f7e0cdcdcb63713ea4a56a9cf209e28546170dee1402caa6e6bc15a78aea4d9ad81e6a35a00bb52a8570641d5ce5b5ccbbc8536bcf29e9ada68703ef714b24b1d386774c05fdcce2daac216b05d99183357180440e43f6f3957c3da16906abfa82ebf25d09ca26d3bfd6691337b9f421ec25c0232f901bd96d2dae7d8b7af0ffbf5f0e38decf9053bb4f24778451bdc204ef56cf6961791bb016c338b382a11cc21933eb2cdf7eda25b01e33782acab0370ba0134b58efba7f9784dc628dedf7b0ccceec0ea4214e529b8f10bfc7e1246ba0d176ebc47fc1cc8fa67997acd5f67256dcb98f7bd7e7fae71613108edb83797c81c6a46cb0ba2b80cac820a1b4f32f5ca84824d67940575e268e0fa0c9b35e088b69bcabd81870fccbd199f783ee5ee05d623442ada2d22fde04a1b19720649de57c5318f1725256a51e0d9ceb89b820cdd2c4cf2656b41656279108dec8394c7f514cbb31ac2597d63092cd3e8f603461000d155b0520e2fa44a4ea221e6976e8ff8b8223766bf5c6b7d192a594080edd05112041b680271e9948b3c7eac0ed4521cbbf459742d40bba6ee85ce6c5859bf4d39796379ab5df1b4787ab7c505bd81ab0e745ce194552687e6277d592ccb1153c2890afd79dbe89557a826f74bf2a7a451760ce7e049f085a1c03e768827e47f552ffd8503e59c2f47043eb61cd5600e48ee09a874620f13aa3996468c3329f919a5c44978942049b2cfc05e4b5641e062f67b5523d2979cc9db93beebe9a22cbee4a16348cd8809c4bdecc086d546e3a7913e1ca68b34cba99f84147a7e09959f6632a4b2b51178c75d053a724d7d093a54dd5f9544a3413b846ceb82b8862aba62723f48a4661fedf003b4a13a8cf7538f88ca94e703cd2974be34f60c1ae6ec7130a8f768c09c23665f44113d10dc362fe63ebcdb78284f146849c703ca38516e3f334a7bc0549980ca213712f2e5fdb1da1f02758e37ab5119005b8f81895abf4beb128c0aa839857c1ea2e34981835eafcc16fedae7ae0bd4608c3764216b5e015b7a7bac08e2dcb30fffec14ba15ec18e77ddfd769d3c5a2579d289b2e40964e9bc3f8635ef078e165281d0ee44e1d560b9634efd3ab54a3ae3477a8f361e5385e50cbb8e4d33b0146cc6a5865e101ce49c94b67fdd79a33f735843e7164fefec9151a417c66ff3503718a8dce8f431ab172068f8f4de6bc245e6d83674bcf918c48fce33e1dd9043297732474929a788f000a58839dafc40918fa3902fca5ca2f12265c2d56891ace91a7462f8487fde8785bd367a64ba033afcebcc08609e81c63b45d1491ae0ae20c5554e78053c7f7184106b587c6423c4a8d9d4fcd223cae69721dd441fc34a62064581700988450a754f3dea9ed602168ffff3c0cb1177ca94e47de2349d0098e98d487f1c46b44791bcb4283f4e29bf37562e455d96aab5252615d672e49c60b048e40c7973ec382259743be5a2536df6a219207a59c17870c9062d3b8ed272bcca963769740948b9cc301ff43bdac4c305b4af639dfb62d1ae64e300fe88077d856e9b9bbb797e43d95e957d9267796d8ff4cf05ba4df256c779dee57db6174e6c4f70742b85e45e36a3fb803d70cabd2f08969d248b931ef310ee5e754f5bb96e812854639381cfd9cbe1d5511a7f6130b50ed181779263631ebd29b0781dd1de10d0b04a2a8b20f1086e210596eb3b9ec976c9c0ccfa64259bb07a80d47404318bbb8eee9690dd3c378836b0341856da39cd6946b1e76444c4eb7bcb8fa7554a0211f62755b64c207b46c281a1eb2f7d5b1ab10d4e15454723333887d783d9a1c9aac840509a66f6d349acd2cc6254e1f6c56e7ff447590ba0e535d16eee45d3f86170591eb3789a1b4aa39c283e4fc3e50ff37da29ab0734bdc9ed2a592c75f2bf4fc120072605cb4b6924c5ea5ea783b0a44cb4c2f4c14db3786b2c89b520f4c03cc8b1aa2999b1ef6bcb10db289a4f44796933ec01a49c6ba873ed4bfe4bdd66f38cbe3d064c9a11639ae013722ec9d1e7306891505242b40a6007d0ea3b179f8ab83874c09e0c764d018c74ab944be3ab5e2378653c409d29115fc74a94f99fab19d79c28266cf9918e2b74b6e6cf8d47f53e3ce0b0b1e5411bcda6dba7049d97b28ae3b566e763aac6d9929ba4a01e7b4a7cadacf8109d9f59e122f12993b0f3c9da550c5b95a04cc0cce8818631f88f3076519e9a14bd6f902cfc87e5ee86e560c230f89fdc0ff59ed1e5ea22509bd5c9caf03be2bcd19100f658e5540ee18ef0b6eba9315e65b341b7f93a0964beb1549050b252e62c7fe22af7e60af4241a830480324ee185c906e54d20dd9134f78a4296a68cc09000cfa233f26c87c61412c588400b5c95663bba4392c390e92777eb76863705c7e7757fbe25ad4a3c46657339fe07ebbf17ab4406ebb70424b644500505ed3d73ef1de9d6d56ebc9471a93e6be65ae878cddb27cf6f62cd8b89881bc44ccdb1360ebe33392ab5e4846e7dc5ae4dfed08c208a1bb4a35fba7487a65be9d10ed2759dcbfbaad17008a92e77d8fd7cc9753b902c8f2c93bf7f4780b230c4f11c45f077bab546a26ae35b4148ccbc06aa64b5607b67a8aa2158a413e21a66aa7b587ace7e8a095138ecad5460474163f0b3a75f03ae0d130e1f2e98e0ed7ca049e43e9fbe9b5d0daabe26f297de8d539255dcbe7666ea8af242397102dd046bcf7258624680940aa22bf3e2ff3c643a6db9d6ba45979d0dba17746eec92f627a9caab972c068c26f74f88fdeaa0e090bcf1d5feb1d8b9bf74964d6a2d1fc8d0ce11f77d7f9e0e425dfa606cf9cf3174324b8495e3d2241646df198f095cadb44451567166e9bc6ea104ff46da0129163dca1b61e5c203f42155483343e504a51826174420d52eb23f7180cb74d6de3ca5aa5051f5faf953ea1273bd0453762c349cf3da2ae621eb0fc47dca28353152b08e732f887f9df7fdb7633af78d5a7f5b34817513fce8dda5397b2fc6b34918805490fe0dc1dcfaa950c2b021332979ff3dc98e6a0ce0c316ddd580b6a8280519c04391a637f6085faa6373f735f0c93bd5e8ca69ca3f4123dbc40481de865e699545acc1dc13d3547b5a8fcec546d839f5bb9441df05c6da15d5ca1dd298bd3496b1bdf0d3ba217d879a5b40424255f60ef6fac07a0a8fc9bd976aa36cd53450cbfbb7537c4aaa3897f5138580be8afa076ef9b88987c67f76397b2eea879e60dca71eb27336dd91f0e1b00835cd790584c2b8d52f6b30b183b87b014d259a4af347ce7d112df366abe39bb161da896daf190e9a6b1c10fbff814f0b79be9d2b814d8a0bbfd2fde9743ef0e8f44289cc69092d9e107d8bd734a5978ca1012612bc6a14fa9e482081aedb12cf45aa494a4bf5717c2417014af3808a84efde18a1115b279a6d8b18187b8e3319581b0f8b2e6cc3b5b8ed1d8af923406cb115a5040a86545e492d922df04fa458ba90845e9529ea9a9e27e9cb11d144e05b0fc7d3ee69c3b4e9a7cb2e81402931becb4beb088206cf8d9059864c2fdcae82c88eec397a5ecec572693a96240886cc0eb78867ee902a0c43c1bc13d9c3ac4450b685596c109afe92729f605cea003ce19ddf7d088e0f09b83ff70f01a2664cc23a30cbcee27cf59130c56f236871d4f047a18daec5f250b0b60122c16625bfc0bee56275655b052effb19be4b2e676435bc0696c5b1794556cde2493691a23f99c5536dd0130d96838ede8536fc17b4f26b4781c784c1bd75f023df0f6e1719d6e1d9aa58f7d637762b3971ab025e7535b44d3241df74e917fd734d1abf370c5458fb3e872255a7c6b10ffd5d6fd85149905b487f3b30c66513af590c8938555b7e5c86c212ccb7dc3121f9d4020d64528cd6928bc9be2ab4d412fb624535158e5fa4c551104dca2019f310acc9a3e23e4b6d1502ac6faea71199f5d7b12f9d569af38417c1155a105cc968c3343f3ea41515205257faf742c968e82c84689a7a3df6128d6e128278bad9df5c472845bcf8e71ed61a92b268234b4892da907573ba5f935ec744286fa956bdad1b31ed2b7757b0466e16bb7f402ee8ddb310d855adc7310f4bfee3463a49ed4fa3a019dca877bfc8d71d178ddbe2d58a51ab0d1b24c8c7562e6b2d89afa5c7e43165a9a51ecb21e7aeb7be0eb957c950dc5d844bad5166e93fd153d69001f019521214ee0e7a404f3affe6d4f9b2f466ea55753b7743c1ad0d89ead86ad14e784ce309f06fa7f643fd3d9f748442e8e09ad1a546ac0780c72226bc8511961e18dd178e2c6bd5f67e72f346f24bec671c2a67d63a85d1958de861406ae3244b07da6c7bfb210abaec60b46d7bc6eb5bb52ee548c5ad6536e89ff92b4fa5a40a8970f7c39decf8e070b5037abf187454f56c5c14b957d93d6a91a572528870419b40a4ddd77a3c67da5c0fd55e7fdbc254599277e3dd68db787dcff2c82f01a4984780fed52ac0886e3a3a70c9c96ddafc0792fad0ebafab3f87a3ea9329d324c170643d2005851a52ad9f13d82729d817af50c9235dd599e8205a1b197e7358bfd4e5ce345c926cf2dff150d5fe7f353951760f426ef880cf546b69c319bba1e8f645d77e5e68bb8b805c4320e198f3a9b9c3e34c6999a96c51e918caed58f1055f1132f84013e2e8af2875d5b3430f92d2f6170e1468fb1ba4cf141fdb0a799968c78e428c3677f635916baa421ed8bf84ac55215743cb7e2d601defed25e674809f4fc5ede43aa1b0fba97e53b0558fd17573ecf885cf1b775d494d59a7487fda352702d45a9df1e50ed5057ee134bb9ca16bd8b7f1defadda60c53279f9af79b1cae776776d2a72731293b81287c5edad00be2c5aa75eb81f0e748600d294bc3ff7dbfb65e2cd149229582aec8ecb5470c586c17c7edca37741e726eae17100ab0e8b54f3620fb6558768081a5bf4ad230aabf230895aa544f4851d821b3164245970a88a8f7495578ad1480a7c216a74cfc6cbadccb2095f985b8c74a2bf986020dfa9895d7f2c38e88f88ccca72e08be21532c1e40a96538032b33b843eeaaa13f92745c51131ebb1c134894e5285332a83d79be39b191612071deda787342a0b6f618fae101c01066ff15061270d478ab60eda74bc0e00e804e6155879f1df1392cb150d26b9f40cf89fc44d28cfd4dec6ac4c3ae08f9fc115f65f9921d0db32fc73a4fcdab9859b23966557665c11057cb0863662a521c07d6d559cbfdd7f8fcbdfa4569fefa8beab5f22b11067a718684a87c763544c7964f428ca5ada4bd47e75c7995c1208a9ae0ab97e179deff1d20d19b061874049813d69a6b9eece41fc0bc631c2960aa554a70d9e0e2292c556a9ead2d65777a7db2d4112d7698bdbeca060a1b23315a63707bdcf1fd0e181f233a75a4cfea1c3e80a8adde236e7fa7bfd4dcebee0000000000000000000000000000050b1219252e343d", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 45, + "comment": "signature that takes 30 iteration(s)", + "msg": "e502000000000000000000000000000000000000000000000000000000000000", + "sig": "f69df809b4d242354f84c4de29cddbf60ecf849d7202b19926b773152a55670364007ca856c145d10157a8832df1a753c98698916184267536a8d4833facb3811d4fcbb443767f4debfcfb6bce10840d5e8c5986b1355d2196667aced69e641093b527edea6fa9fb56990dd99380879a48f6838dbcb974e44087203a54bd5cf07f7b412e463beecf7cdb46b1b5e804970b48c0401f390acc58ea8ebf13492751b877a844168b09b20d17e963e95bea8a0691ddf91acc6554a0124c71e98d8f3336ec4a00225ab0598597fe1593aa0cb717a8364b04d1b32a54317a82d382399396eeeac12a93a2a2f3aeac750958098ee2c2c728c22594a9afda0370bed83f9ec709309be1cf7a32ae92f1ed7b1b70e8389868b0c50a15a70486dabb745b020e6e760fbe5db7f25f17cca9986b7d1b92b9336cfe1a180f056e2b4d0ac47d0d9dbb2d0cc32280e03cc5cb5b8ed81a5d6d8eb07cef63f0ef681c26432d221589bad2977dae976ef0d3f9422f62efc5fe3d6a1bc3ed974f9d6ec5711035f7778cc725973d4018c8993f198db801d1a3d74e4302dc925174dc9367eaeec632a06b44b821c2b81d48ad4c48441369eba7e99809d49f03a040c6054dc099049b1bbc7cf60fe335cf5efb514ea3d2fad09752bb3bb20f22bab96f274e443d3fdb97d38ac6427a756681d63ae1204b32a166b10624ce3166051c013eee29402463394419dfe44c9fc07c1ef0164f279fd1e082623f75abb69a19e00be12ac209e48d868691ee21adde52c4dbd89250e18c90cf24d2c26b650b09c52aba801933b2a41c0b266462e52988eed66d09d065aa8d71315f60cfe6b0380aa43e8c48566e8f678bc98881454601cf05a62fdacbd14f7af274fbcbbd78a0cdfaea3b596b85124a2a893d50cb91abfec75c32292675ca10ee5a423afc45b5ec6eeadad84fcd57eeb66432a909219093497fc774bd0131ef5f994faf8727e34a60e787cc4c6bef7fdc4b13e5127ae852b015d7213b45f886cceae3d8e0a531295adf298c808245b383f8493ec822c3ea49cb21b2b8249dfaefe8f4406db41eb0e2a69ad5c87993f47be31adfc4d84486486bf4dbf2e127c366cecd8f376fab4e917a27b22712d4fb8405478a00d5170f2114d562524ad899cadc6df511c7f839188fd31fe98245bf01281c96690b84b16c4e2dca34ea07f086d479feb349681ba31e5ceb78d67ee5340519de2b736796d9a4f18d931cc2ed5e4a8ba41351a3dcc2a61407b2c90eefafe05c061e4e9c93a4fa1ee52cda6ed8eecdf531e0dcff81ea65e88101f5171f875b268e285c0418068e39fc66cae9710c35b0236f8a20bc6ae4a53eafb33a8123376659944fb4b98161fec7a0aedf55f63722229f26504ecf930c58ca72af5c77d75bf9077c502015b9de47a5f71531bebacef7ab5109e13beb17282b349d7a04a4fda0cf58d286d258c749043a991c25d5fe2b55fa2661ce5cdf190558233f99913ff259c9976933302368ae5af8270f83b7b552c07817a6eb38cbf11219a57987f04708461e3e979ee4856a2a1f9f5434ec78d9baa56ed8052ae09149aea873646a40a50581c7fe5fdf028aa5106e1ea79fd394f824c8f9a417ab2218d9136efe9c16738352b18d47c76f2e745ea129f1907e67760a525a190e3ec29087e4dd72ad2d2d106243f85d8d11dff5d9264d6b599939a301d471230a13c921777c7b1e2e1e3dc5161220afadc1538deacc1c55df997bd95ac7dbc9d7e27c02b30ddc9e4d472976552f8ad843c5f40faa7b02390c0d107bad8666b9328863851815e9cc1b2cb01ffec08defc4e0643eb539515541bf51897919db862d1c612f5ba61f187ee679d5493815ffe5627c806b8ca697f5f562f9a1e904d0d513ccacff4f1193af95165929bc34f31416f46193a8b9eaa5f1b07f26efaa47546292a153eb0e6e46029249bae00e6d8e653f0f921ec305c9f3ddc74133c6527bbcce24ed0995c233b31f0a63c800098793bd8c36b53f732a599bde97481f9a7b18c82050d34fd309958b010113a6084f3a1ff13d5d8e076808fe34047e001be3bb1b41734c94b637bb9b58e873e0c73e74a32915540cd311ab00bdcb8c91cf011075a92fb839a16cb6e39898cd2644b868355cba96788f6e4ab5aae8eb2ec2c58fa8de673502b6798c4a0493d372f7ebc9e8d8f2a50a0b26926bb2db3536153a3599d20c4cb1a17c86ffa8c4d0c2499164709e7585c9e5a30ec55004acf47d6ea0c1f991f1e3072c3e86db80a069738f38c8c5aa38f83c088e6b0cd35e081209c1de1355b801b3c30c99f06864cd5b12c1fe553d3dab73144336a289a4a5b3a7114deb075e0c3fdd8265c8bad8b351f52b0418843a3819ccfd62c93c7ef2f5f70872e17c72cba033c6262264fe8909912646802c8238a6e837268727b12b275ff8993ffabd516f8b1ccd337d4584d62c6d1d935441dbca9061c4a0a467aca6dc137b74eaa85c6eb85e3533032e4c95a65a9aa9bf9a9ccb7975ed30e23f9600693239068d138e508845e94e1b94591bf4ca3192f2eeacc7a0506cf68337a8af55d32583c0a6c23ca4fe7043e40cb617fbc78de9ea34ee68d1ae00acef9271a8f6c391e628c09de9c80028386f9dfb8d8b6d68ffbb0d8af328e9240137891baac185f915f4139fcc9686a8bf4a1e8ae74eaaf8c8632cceaeceb3550ef2044f65a633d435e277a69094ce6616c25eada011d45cbe7bae2b3756a98a5087a73958e991cf3ab20a7cd99da47103793bff78c0d7839f9177b6a4d1008bac97ebfa565186f2cce9cdbf541d98cea5c8e3044159b6b9db5c157852b9712cc88e5c970a95a5545cccff78b844134b1c12963c4ea50f67d1218f2a9a1b93f53af941111ddbd2c5889a5750c18846b4e84553a0b0e0d6817a9e97ff60369f16b7d62dad842ef96867ee7b1a3312390f50c4eaa6c36bede6189b6741da75b646e6ada9f451e2fd48353ff1cbaaeb3711491caee01e0ccc1b3dadca80516a4bb3195da959ad111ef35c1d704e6a38633709c38cc6a1e666ad693ee35ae18960915b7b22fae9f825cb642b1e1ae691ea20838b78bd18bcd017958e5b9d91367a9982df2bb3e772c005f133dab0aaef4679608a9e6e42f1e1c6f000ee257ef4636775dcc7fc40587e2601895ff6c232ff89d646e019bb983b33b278929813c7dcc96a74108e8ea927b16ecbedd76772f3324ac921204fe13e26b5db1714dff2a9b7c4d1b58bce41ea481bf6050403112721717f551272702b534a0d2dede40a77e005e7ce7c14c11415ba4432b1900db5fa7a52dba0d4092ad6041e86d2ca6f3db36db51e81386eb93f98dfb053e601377fdb253b807140cca5de8124279be643b99e105a76bd0fc3d0c907825772591eb4d80e1f0f8fa68b4aa7dff467e5ed7d992f8abf83d3e5be129496ecf4a3007ce946e69d584d6c0518c248368d5ea5d8d44d2714bd33f4dd57cccdcf9e77e65836c0745581f620bbdc80d59c83553677b4c512f1665cfbcfe4e731f20097cb3e1f58e7c4b8d2dfc7b4f3321b1f34036a00b6b08b38fba15e846dff6823f54d06b947dd1829f3fb6a4671b16be42af54047f8d6ae3a0ad9771de67c186d6a767b104cde49617a934407048a02260a3c40877fdac030029b6024d4d970ed4da95cd0397e5378cc439343bf29f4a520eb4a51a712f06e54f50dda717db98f1542df1b5a5417283ac547c6d5e65843b098954c4f50ef2d9ee7d314ba362da41493015b54a4ceb21f36907e22d5301948ea4484abececeb927ec6bd61e1663735e8c0fca7a82adc4e13ce06a7ed8b72b1e3e195c4bc32487f82ac6e82e5bc2ce47e261f4a26c4f531714b7375f1fae4115980f0841b73ea735c446dda43a351223d607d34d97c463550830319d3f424731c36cf238b7c8e039a06e683f3fda4372ee0ea97e0c1b0405ea6b019ab7c552059a0bcdd70f3447a5b2c5b7696140f753a9069de1661f70beecfe8a733af8017279105abcd98713dfa3d662c84b52fd7ac344a19435444df047353d10ce158ad4be5560f98ec6d06aecfecb09f55472356c0ac1edd19729ce96b51e00c66af2260228f2c63c79f6761856739747e0c4546d08d31f0cec59e1316c6917054b9ace529676b023bffbef73ba97cd024e1a0df20cbc18420b99a894d80b711d762ea8ae7e66944147e38557993cc4ddb5351bc14df482f704e0cf381cfa133282baaadd5155eb3539e6fd59e72211d677dda89741e557850da08fc17090ec13ea1eb66139ba16fed2cb88bf33e23fb28d4474228a26bf16563f98990e73386726d9b0c078ba9d08b07ff5aabfd9f594a4b20cf0378f3061dc12cfc253a70bfaeb83bcdc5bcecbbf093b53940b68e2b7fe3c3ae6e9a45642e439cfb1aa22536d91327a4a9ae04763ae9ab691f521cb85bf0796c4a75ac07681ccc50688b215bbdc160d87e7e4047630f8ff9388f0c81b9f224f5cefbd59e2b7a45dc105eb1124a67a5f0b86563cf781be1b800ed686c8ff85f9e55f63c9946b6e864d28d0d3a6889d9d53adc55971592675cd7fabc4fb6c52edad3e26433f01f2d44eb045f46c4bb82e0f52d9c191a499b834a6d492eb6b37a0ed9a2324f7489a7531216cb1341cf37c9985110d487456b060fc9c44db25006b299ce442d6743fab22ec5180f86f14ec89b49f45ed7eeff7ca50d534f10e996d27f7dbc84f4e7a0459ef9b2650cddfa7cd6f8321673e2e222f9723487e35973d0d809956031b696e8fa5044eedb87a2e3ef895ad6008fa24151e0d5ef2369e74096ab44e10588ba4bb7495145896842b081e453ff5508640d47dce9e98fe2cbfc573e547f94eeafe145a79f5b50f319825d7391de4e4d51aa08e92560fcc8dfcb36f26f968c6c66dff2b7271c017b2bd206f80347b3218fab3822eab87b5842b8b449d672441a75c7af253d3f78404b2743e155e5526bdd47b23cb8b90da856cff813b9170c30336f8d5b4e7f8b15752b51b01bbd397204bd272beaebaae5df6abdef7fb1ad2e59b12c5e762dd9f74d6c4330b42496c2808e15b4d4f6bc36f1a38f610ea4c5b614b24e3869d21e88c33c9460b006c60b3e65d387a3c0855fe9dcc2ed6d2da9f926b7a72fedbbe070c699785e61e7decaa6ab5779d46e78b9c97f931de5e426bdc395e63387f753e8cdf9239f3d70d8d06cb308031fca6c2a66a832b7fda017814632a5d345962b6af22a3d3433aa28dfd4e00b2675fd333818d4a99f20b291f5ea4b24d79f0935fe94c96124c8bcb33186ad9c1012a95515a5c499b8f4c1bf9f5046b54a57bd9c91968f18ac3b0f0dbb0107f04531678ef65171eb2966b8cfcb969a6dd0753a5596e4a3b953d2aa6445f8faa5ee3ed27a3dfeacaab3f90b960679dfb89ca6842a44204750e21e8709cc4bd52f7bfdbb9b1c75fd34bcd56d4ab7832c36734f5f615536886cf5477cd61312d9182e67f70f238a794118b7e02f44ffb7faf2c34c57904d9e0e1d11e7a88ba298a2da2c8463eba99f94a6a7545b66695ee6a850fc957fe9d37e089251cdd8c9ead8e6fe4ca3b45298f771ac378e69cab39f18678a0941574b9a436817ecbc9a987d3cdd451bbae84e5b6d30dba3a6c090952f0d2ce8fc5f26966db4fc0475ac64c53c1f4fdf45f4629b5e3316b9bf7e8f67db5b6b6a13f4c56e6185fbf6a0d77d53518bacdf9bbbe54e7646587f07ab558e3849ec64c545ebc2bcf2ecd00f57f56ee5852352c8ec1b64bc4f3345e0cb6ee1c7ff9800d4145ef61cc80a5921ff28f1604d121085fd47961a2533bcdeab595364c0d558e1792a72838775ebfa712b906f74c62f542af0f386642e1ef27732fe7c19b41efd0c9ea9e10e42713fff431fa21a80057b0b117ec4dd3d0a8da210fd043251f550005f4ebe07c239f94ac08a72ed6555571ea2a333c7c9d41b935dd1226c924f53b30c4830e3cae11774ab02071554fc3509cafa1971e116558eafde8ed1566126d9725b334bc38a8e7083f2fb9fb566ab3536b72e7fb4c0bc2da0c7ab5d078e8c567557ad0d1a4e2d67316619e432561e184ab8aa8fa9e9cb478f53a3531bbeba2ffb601d5b0a3441a7128c78361ce9a217d95b78b0902287e9b7914361403f0f3fd3f68d0685fafaa9c5c8e00a461609be5119413e2e47539938749ae0a05789a8074af70dfb0f225e883199a974d9f97402c573de9c2ea5539d19bca6e02d81552b9cdc926f84ba3f383ab355e589212794e41b6995f5b6b36d1c205baaaef7a354fb8cef18d705039211f56448a3dde427b634cedb7781f8919ec6fa9e635d2d41afe742e51003beb51488386155ea826eb861b2d9181f896cb9a3d0a89a62de80c4c422d145932c67d38357984cfd562f570a6d6a078e39f3c24e94b4fffd09b3d243efbc2c8b1e95789c9d948a460b5b90cef72a41acb9dde61b2026749ab3c2d0d6fc0c1d28e2ee233d5197a0b1bc182c507476848694aab4d1fa02b8cbd0d9eef83039ea0000000000000000000000000000000000000000050b151a212d3437", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 46, + "comment": "signature that takes 31 iteration(s)", + "msg": "3422000000000000000000000000000000000000000000000000000000000000", + "sig": "21c10410bb4deefd6420b99d8fe5cc93954b7b82ea88c09c768adcfc657793a76c973afe3561f329d4c608f860d413dd080f9043f38c5afa0c640810c5d54f889910dacd215470820530fe4bc8ca43d808e2f7120ddf2131bb33c104ed5a64217e31263d5b48cb3089e9b448a0ca47f77a7fbeb0b77f8e760527386cea8e35cc6c638bf5cd8fb4d27e12819885fd6c50fb33023084a9b2ec2908efe81079738e81adf8d99a07f4952cfc4787efc2b7bb3a1621ec4cba8adeac6bc0406392e94e643d265f9e6446df566121c1b50de95728e61e90d917d4c2e2c6ae72f8d8c3e381fecbc8bf112ef327e81ee75e12df64260e3877cea0bb88afd2b77201698aefee8291cefe352b35e6f79d1d8793154dd62547ba3680c7ecf02e41ec78282312e66645267078353f8f40b40a8eedf2ad9c6b20959ac7a75717737a4e8be5ea41c3a5595e505caba8f5141cd805292a5dac369b3aae856c14b642c8fdc9f34845d333a06e1d3d09be794675dc8a3b4637f39e7d22436369fed10b4a13df69b17951acfb8226adca5e87c852370cd9229a10984f418a71c1e45bbd1f9d6c49311eaf1e5b7dfc8a17898e7517031c3e7779b8c34ef0ee0b7c2478fbf5d0bee9bfc150e45e5232ee29ac454325d23286b36fcbd32a9099d183c8f81d7119e4c39b266f21ba266f4d61783658e542a724bba3e551e87978a5f56de02b336ffd919228461e6a410a0f6e323b2f480bc7002def2132fedd0acb619209f9373a9b6d7737667c5d9145adfa15c2fd7f551781ea9244c3d0e7c0a0c61858c09443a4b623478ff801bdd82c1538cd0145dea0cf7d0263ce1a2fad8933d3db828f8913a6a6ca455135b1e29609123459b8c59e7de31584c6a2f7d721e79419686b1b62d2e5bd05a873de0dac1749fa2ed16c720458dbe23c52c8ff5c20c95b1bad1b244fa92970a859d78a812eeba8135b9ade6f89b416be2122c78593057146a4bce9870e10acd80844a2fa869cfc0abcd529ea5a194d0f62a473110fa2838800cd9085c139ba3cb2b1f340fea6ab552188d27cf8f10957f9b684a65b4b659f918f7c09910382b9991189d7453bf79159f835d49525388866cf8e757ce5effd3283274858d437150887bbbfc5481b5100cc79d0d58d50f632a8e91c59297e58f79325ec5c1133354a9de61a30ea6d0352e64b123227854c99f18f013efa76dfe88b080d5c387201dbeb9a9988762865d0f2ce0e90291299e79bdb4276c7f1c8a6a35e6b205c86306c8e78291edf3004751a61d293ad2e23c86fa19338d0464792a45d9ba06ebf85b995b5615afa6f659d796f6cee66be495c451920d842e5a32ffa8d49c93dde676b7033392a948259810fe45f94c37469cd557fd0028707b53b963b1ec3bbad8f92d0e3464d5aaa457cc2665fdfe4825aea6979858bb816f23e7f6ed081ce9957359941fee2835a802032936f11c62eae5ea796aaf1fbd72ca28e2c7ceb2350461b7f484ecdda795b8ccb44500509c28a443ad8547f306e3bb2bd22a6a86fa4635d286e5eb0054e346f3e193d97d334b23b768adaa391ab041b04b924fcecf5f176eba319b60410b71ad7e999a5c5932fa7c86475156ad052822036ccf51e97ac4d920bdc7eb784f6ab8b387b9cbccb67dbd68344621c57d462d811151f48cfb42129a1eb5ed7e74612e61521cb115e2e0a97b1780ac63b3f23eee0cb1c98dba3fd3362b700abe46d6d68847a6353f5f5c6c6fce6fba25ee2ca87feff77db87fc7268f614cdd372fbefb5d864e3b9b951851cef434c88bea74d15cc78364270139cea37702877097890ebf8c99f2d2e9c233649e16d08770ff1efa2f48078de25bb0d4e1cf9cfb16b5c7d9d2e5283c5ebbeed58364e13825c3e9ea11ee34194bc279de75f7b89648f439fdf5fc9b1908234b912c6481a38b2e87c91775f26b828f65a0e8f4fac7fa6e0b68072e129a7afb1f467da51e5fecc2d5e14bb14316daa6d477367e878f1bd2ded1575f233d8d4579abf406fab700cd73dba7d3380f94f32e310ad953d3d76ef97e2eebe26fb0fcae1aaf69ec6aaa70210b69909d5d6752eb0cdb848b97e348f65acdb56ca5e305238655c1e2602f314097623fdd1f5009f66fef7ff7719e05b1a23cf53aaf356c221886c3ad9533a14c2ff9a9d648e058c4536f3fc794bf73441c023881c86f14af793dd9a843be3be12a43743380e8e8a0cf606a597faf76767cd28e272cd15951764b5027f23aa7682364388669537a19502d307c9ce38533759fdbbb84b37336cab43a32d65e2a8619b65ee88afc99a21d028a7d1fdd5156417b644ff4f0428dce4f22ce09e82220d8ebb756e0da00892c12e6f23add62034d816d22d86a8aa4489cb95be023244027fa934c8b58e93092c22e47ec72b238ac19db22fdae25569b38a4086f2c6377ce877fb1b484f3d1257cfb072eb79ff0a862ce4b6534817204f52b3c57bc8896e64eb95a121ff86224e143d4b666c3f06514404e7571597cc6d8732c30319e196043198422c33e9ad7aed67fcdaf8810d2aecbd463183f493b11deaa70eeed0cab03c2402a12cb228384c39443ed66055fdf78b742145e7e12942a8909e9a2db3ba619ccb004c27dd3285a39681ca396eed685a2476d6669591b6851130f5de75e4235971ee6050203b07e61eaf23f210682a3bedebd41b3b6387cb36c619a182bbedff5a4895009e826105d13a95289a25496fce74616f6bda522e4060d40bfe9b47da0d8b110f4338cf7dd2c728b5778eac75ac8b3e143716c8448ec9d96ed346182aa104b5e25bd920d7420bcec5074294da97bbf36d14bcb2d4716c8eeff5023081279dcb986ffd1b344783dd4408ff06198127eb6b0e66455da34bbb1e4887bb2ee2d2d36df94990478ef47cbacd41ebcdc9b44412c6776c34d524bac4ec4222791ffb1e3242bf25cacf55802584191bd4d5b10b1d0a94452c6d8dc4afbbc9715b1c08866a8b8c7933844adbb77e03b5ccae307bdbe104a0ccf627572fb6725cfc2ca386214c0f94b6f24f28cf7600f327afbec4827567653be19b18c3308b55cecf4f1c475c5114bb4b1f25455ca20fe1964ffe6e0f363bd9784685ddd6777086506d402e6f462168948d467f02eafc2ecbbbf17306c276b4169848cd5820b69dad964ac85ce7e86655b9030b287a11588015c0552cdf8cae7b20133c29d0c3f85cd5d31b4b17b5c13ddda6f8be0cad67e210806bcf2cfe3dc8de6f2dad4beeab87c01851a57c2b8c3584eae8c66a16252527b2c1dfe7147c02e67560e451b2924db04814c3b67a1df250a1be828957943e81ad7d15067a900d1540f23aa223da8611bbf814e501b76e332d9867ebdcf58ececfc8e9665bdc9444a754518bfc88b74c9daca3416ec0c3c7aaba8d17e2ca9097776f5822efb99fbac6967a93f3c7e9a66db28588fcf83299081101e823656e93a502712c50024cb8135fe54ad53fa33ccea2d88cca79a9f8dc1bc82bbf86d2999491b5fbb980dec9d381c3f3b5a5d0706114b2826772d4dc6736ae34a53e3f2a33d8d84c56c313318688d5f7769ff9ef72752e42506b962b6859217198b2c95b89962f7e75528825c9725cba956910ec2f99cd240927a74aac3d68c28f2fee1531965beaf2e7de50d9cd3ecaed5eee6ffe925054634712943c4ac5f6f626aa4e880eaa372f731722b4194323c41f1b4a27448fcd1ea5988271334477d933f204ecdca1e09444f3e9c234f221d1e547417a5fbab37d4ff65bc60ebd67019c242639bf1791ce97e1f165dfb3f6f6bd684ce37a2fecdc1843f03dc5317e6e950f9b8ff489349999a595a2bddf4699c8f25a83baf63e45baa625a5f6afdbcee53eea366b532c44a6f5bb4d3b4edd2fb24a4ae4ab22a32c78b9b2b6d4a01c5e01458ffe907d5dec2caace873af0972669ded4c7ae1945a245bcd103a034719a76d6aef96caac8974bd8e5f093a6cc57e9b82793c9fa8e6d562de0f103bf2dc61af4b37f377ab78850219d6cc3fd2fc5a7579021596b7b784ad91db9b1a797813236bdcf65539ba1e2f9bcd4a578ac06b13b7d058da8a93a8b7b037e7ffb981c5b403a49e419206cc76c664bb3bcd64c526f59c92882c1135f812e53086fe2999137d45ee7db4467f4f55b77acabbc6f98cc84eedc5f7e4cb4c391c908ae48e0daff962a6e6f83828edba2493d95a4e16d8f76c64b6a54f235cb2a05211fcbb0b6eb99fdc293dd0bb3879010b43b51210859243d4dd51b3b1440b5a900a620addf14296167d394d4ed33bf2d1ef3d242af15155065940f2c2251a1a9cfa8f4c7e89f53d95c5e31fbc89c9c371ada32322b31dc157445206f1a8f4e7b67d66b9dd3534b2d31ca551f610291221cfe606eafa008d07d7728051b17a1dfbc1c522e4e484c2b5d83dcd20fb0bd4e416a796da91d023860245a68b1bbf3f7fe93e5dbb22dd834a095db05960f2ac5b513f63b3afd22162caaa1f82cfd1b6240eabecae2854b3a8f124cea75600fef0b66b3022663bb141d451f65159157e146ba016a5dc86eb3054dc11880b344d30f08d8d9d30e4c873dafa0fc8e19c5642bc6c13dabc9f5ee87ecd5230e32df71022dd425dd72067b15a0e09bdb2f40cc9cd45e7f41389bcfb02575cace04848a110a9e0623f85df097185a7f321fa56c80057f60225c5ca30fccffce5f3b6582318769f26a60a07ff3d478e3707b6783bc4b7524265bdb82c223162121b852c50858134fce70f88bd17a1be83ccbbb1bd9e459490d5c5e7fb5897ea9c31467f2302b1ebd6b3569378c2c671507db4e954422e5db28b4e9541d0b1e8f48a312eac0ee7de73bc5e34e4b588a2aab38c7fa8befb1baae5b137648f36c89f96fb53f82e582dd5741784db293ef3ee8d4ee3d1ffa8d8eaac7ef6201c54772eb644f88f0b6772742a471d9860d375d211a7efb1c2c512dfffa5e042cb8093ab3ae7839079072f5490788ca6f6f3e95e2294a388efc3f721212f28e39c370aa828e5b963889aa718078f1d12a295ab762a48260c4ca7c2f2a8d4c9d3a85e619064dc0a5c0053f7d929513f54e4372b446ea45248ea20f71970daaf9f4cb36c7b4dce175bcc168abc0724252017ad079dceceb9f5fd568298b5ff7560422c7d28757ff2ad67d19581cb8935804783fff5e13ebd8fb40441c8090ba97541ea46ca44e9e74fa59b787a1585d4b1463457e9ffaab7278117876882a8d621c7b216d5b957d848bec013b9835d11ad49014637ff47e45aefc9ac4b29cb0e24de18a2b91ab0b8000dd914ffb015ec8f84bebc703f54395abf6e7f6b0e156f02b69ddc12f826627e72afa5c76b963c5bfa98889ba71e0e20cdc390124989548f4e01832beb897260e7f128ff98a83f64ebc99ee3aac35e8079a24f705752cb6638a8c04944c84d61b99a8ff959eb15e1f29d4aa7b53a386d3402b8e1074af95ebae157b895bb4caf4b8ac27d55f08f27fc08c7693a305f58daf6c755df7fd20673f3e08e468b5c9803a5f94c91e6cfe9099438ecfabb18ada07f643a79416cb50f58e37b77aa363b0c9ff9cf7c3b9171a18cc3460bfe24a8b1e1b6534c9c357f41d12b864ceedfcbfaa703530e2361ffaf049def514dd3366d1643de567933ba5d2b5d55644e586c639602f9fea74cebadbf277223d6f87c958b4c03046f369351db3e3f3fca09a9995423ac02406129a751ba54ae5d059215a982f0fd36109ad0551d90695bb7f8d82ae0ca2cfab851e9832190b3fd347506d9e6e8b9c27c7bd69a9248c457e72a7acae4d451b249ce0d29cd068cfa3febe73e13535eebb6b8220ebf6bd166a2bcf5debeda5981cf1e26ada0566f7732f5f16afe90dd4b4857f5068b12fbaada4cb50352fda09c7ae3d17230cbf3f83ce210934c656c54cd0fdd0572c1ebec7ae8936d53d7c4b10b041cc61adeff11dc76f341b3f3582c8613f0ddbdb9a193e8611ea55bfe8df45d0401e2e0d6150dbe83c7a5473f3c40482c1e9cad365e45e83919ba887c1b9441a51d13b09479f133b73710e99c18990fffc9872c13e2b55b2f44b2d1ac40bf17bbd3f7cc05c5c5004673d68308e2984b7a63ef9093938f1e215406916bd6a1bda452ee16fe1ac42c2ab9cf5c80be75daf684b67ab40faaeef51f9af5b24f1ae5b749bbe80b59c9830d0ee9a3fbcc4941b9da6246fb4cfde1d9a157d8fdc2c9753af6cfd751be02aa67ee752d12e87204cd473c9cc61ba22be5aaf54473a890e5ccf843a111df0feee8cfe1766d57e2fbd4a7675f376fdbb3ae62277d3f51aecc69feeb633eea65c4a20ce8c3769901bdb9b29cf4cc2bce2b9a04aa246c504c28612f620000f5294cd36d91d34219dea83f7a9637352e5d88d83fa62b02eb1cf7c60b4600a69cd8ad2010765540a0053ff4e0dac1d2499ea82b86465da95357c83ae29373f53595ea9115895a1a3c52d818fa1ce0d408ea1bbd708243dc7f808183b899acb1f3469738a9dc2d7e700000000000000000000000000000000000000000000000000000000030a10151b20262f", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 47, + "comment": "signature that takes 39 iteration(s)", + "msg": "4018000000000000000000000000000000000000000000000000000000000000", + "sig": "c3f428b712f27682a2cb4505e9559867839439408104abe2aba1ab3f161e0c6b1faaa929d3c7e55093be063271248c7b9b08d40900badeedae6d922470273057e04c3f04b149146a6c81eb84252705b1b3a910bd83794b9992d60501f00e08b15ec86002b8a985fffbbaf2292b18fdee3a2f22704014f14dad62998f95b0d79035045dbeddfd68baa308d1006a0b09df59ac8afdfaff5be8dd9e70730a0231fc7e3670501efc528a5c19408435aca6f0e03f7627f8e89d5f7281195d47f4b19aee377daf9f92f36a0282f67983421777c4f317d5db55de0754223f8ca86a1e2318425711c2f9475e341d971d408980645d07061b7263758ab75cded6166bdaadeb461e64880eb5609b26a0e68bd335b72980f16f5a236aa0cd84ed85fcf14707ac6364881994c4cba867799c1200f1d877a4e642306d5762931d52d9e122d763540e810be27bbca2c966cf04167d1b5da1adede0a55efa95f238c7e05dfab433f838c7503e03307214641da331beb401bdf26f029576c17bf6d132f7cd6bd0c33246a14b477ccc5c1c426a8b6d4396e998a1d9d3b424e721807c06b42d8c7a450bd82259e1df879dc7e21ffe4978bfaf3fee7275f86eb6a68ad9564bcc6ac81154a83c4fd504499195d10caa9a9ebc175b77defca4ec476dc7661cc383509dd2d87ca89292edcbf7c41031765c791bae5d03b93803960973df6b5d03a2a8ee7023f66396c06651563308aacc8fd4400e690509393ebe589f64ebffe7fe505826854cb55a6650bb109e386403df007e4b1ce8565b507e0f2cd2843acaec55ca9f191380c5d9d856cde12edf5cdf41ccffa154b7246b9eb9c6ea2863046d2cc7a6c1cb808bbcc4a65975c4041a547050ac6aab064610451bc4fb6c9a0b1bd44504e0edfea570959d2b79dd7900315f870c36c60c5e5d2bba80debcb2473dbf6c6d0fc68e8b32c0a3b100407f24d4aaba3c6ef738d842726910cda73f0fbf019091f4e8ec6f5103329b9ca7b3bdcd96821d6185e8dc6fd26c7875c5c0ff2285019f7483274c9a9eb15180a7b6e862ac912c7246f415b0a0e2bca0065a029b8950fcc93495cc9c86afc672e6132b6c238f8bd6f83a0d2288b8920ae3e3af4868d8ca2d3006bc0c0b2630d623572628bdbec3afd3e6789ac9905c5e1895c6d112c882613f1de1b6b8f217f1a5a064e159c267de2085a5655547aa3c220f0f88d1c6f85fafa4f4d77fa0fc0f551af384fca6cfa33954aa025e7388f898d3c33bed8a54b39d0b543921922e60e49c96c14f185b724f1bb1371c60fb09cf33c9cd02876f2f89c7e0f3a6151d5d47af929fb01af284def5b49fd21bd91d6b45f4b044073f2b325aed80767dfd2354940e0843c556bd719367a324b7ccce5ad61bc76023a2995f32574ae688cd72223c894bf239ea53ff6293b9dacf433da3774e0a967af5a00e9d8c1a37c569dca20baa164bdbc08b82d47406e02d942e2d860ac846e5ec67340e32014ca41e6b973ad9136c3cac1b65b2f27241d1fbf953d2c3bb20339ea77c257e30f74f52c16f2cffb6bc11af17436f51b5c3bb2f91fb7159c939fc12f0ff1878ffdb9d5d94a646f4eb84857b05a6f38e6dae9a3537c5a25f1c06ee13d41df3a0ffd9e49519e51c4e121a3676f858caf52ef346a130e6fe0a042044e58429352e0830032ba3ef54daec48b8a250cffca906468db9cbe55922775624b0f5bc30b83d81ed0735b2b5545a6947a18454b408ed5aa045b7caa04f602958dbb17d233812df52848d9954e12fddb62c138614276fce62babde47ab3fbe9871e1ce70cd4898d61f0701a8b526e1df8942db3f41b2b14e1a61914d0af7698c85d08be3c602f3d4045638a565f5fde49672245c4f4c4eb59cab0a473650de82ed1c227c762826dab12d71d44e8d875b3ee8efad2c9893b1a4d3c7d1ee0a1a82009e57847a74a4d683988d283eb64bbb4b26943047e63450d820f5b3b81c67618af3d3ddbf9833abf0465061cda97f2dc8e7e3c4847f706c359a60e909c1728050ced610696863572c27bc1894d597f19fd7904fc839ec8e358b6c50df574a35ca84339deb590b20de25a2588cd0db3c85b70910336a08ae8612da84343f2c7e73bcfb5ef39d774300adbc57047044503713178c611f474694386b23e6654c348d9dfd385ca07969d2e7f0a142734e781c151345ece5a4d4d775c58e017ce44150d8859f7f173f8cda33eda4b7242916228f7f2cfa37f5321ae4971084d4add5b9baebe1cde16de0f897e0a7d5412550a8eb702f3778d434ba77f6de3b38b24dd772f1041d64187eb1e9ade693d5da24f05f97d10a4699569cec8f794c0c82bb2634662f965a230ffd9dd28f0c880e48e72ce98db5a66a9689665b473cd84f33f75dd80be4b5bdb3d3133ff6bb0cc7e901ccdd96cc877eefe4eb804015f66f2b028428794bf8b5c33c4d3a4beecdab56e9b4f59922481cfc2d34d7a2a65e053d10ecd297dc10a4b9db84e69765b6adb7b210a520acaebb2a0d4154f2993d71b4c937b1db17622afae463fe9e73e5ad3f2960f94233e5bb59a07c0aa366962fa53c557a94a834df889b88861ad1187bf7e652a124b15ff3b326f049aadadf74a56572bcb811b5e0a833103bfe5f413c43cd374aa8bafe2d0955616a556d96498c884c7019821a7ba9e75e8be662591232e8ac5394cd1da20447cafe234b7ee8fdc96f24c78a26abd5e4bd22a9bb71d28bfdca92e73cc5173a33696b76ccca429ce0b404eeaba14d79848da3b5f9c5dd97be39a2679fc5964523799b1c97fe13df18a209698090fb509b7e65a907b1c7e2f3079d323dd068af60c8a6f2f1d9b49dbd8f6b6cb7bb3fcd5b7a8c948f3f2051dcdd7cf94c71c2dcf7085a440ef1b51d6e256ac39620ddb9bd130e36e33f0f21be99d874a7300b8ac2ecb17f94089947bcfba70a559da132c105895321e3b1188764c3b8d40b8492c80bc9487eb21376b24a3aa3c9938d8acc9ab592be1f7a4f5cb08eba90952261ac87e02f7b2f072280a2f0989e802a3bec12a992b306fb6d6c7c81c24ef6640aae7334dec7d556f37d5d907b14971fc3c85634825b229812617fed92b789962aecfbf33561b2713163203c4b3894615ce4dcfe931ba0dfda5941a696750093ab7377f01d70483eee6312952b16155ca58a949b0b87a778f4480bdfa580671e7cac50a9d220632b28fb351d10bf343debaa97e07ca33af7bbc8c12b972021f089fec8cd51ef37ad552d9251d4ce0fbc02752b19985592c5c0c3b2dc47799cfafa542498806f773f49eaf338bc63ff2a3c3386c2d4ef013ecdd75d92095f3941360f52c0296f61e29cd3613816bbd152614c5084fe58abe653521c9a387b673029c0d84388ce4d633fcb2806326cab1ee453369b83c63cf65fd9790349e5a830db3054d2f068c30c3b415e85cad3cf35e4eca4962c87379e3bf9c6aec95974690095cb1183bc221bde5fd3ab3ac358b37b9393d95524f6b24989d154d750d073c28be7fff722851d616d83c35ef344cf11430045e5cba72d27ad4297872e4f282ceac6f18a82c03806e21d50b3c47a8f8d790ec2fcb69d329e266f1cd24986ed636b0ef6e3cb777acfee701425da8618e56857ed7cb694d6dd23a375e51d607a1d2b1acfd8911eea7c73f03fe0249ef857a37cc1e709fa727427d2a88b2735687d40dd2b7c00ce697975e67a6a91e35c288bdb01e6e7d9d8f23049fd91548860de0a873efe39aa173f985d3ee7b379c82881dc92022849e4dca2fa76712578ef3f4782c4915de121f702b52124b6ad04a27ec8a278b793c7bed65045cda934f731b18b586e4c1d957119acdfb3ef559dc19d2a022136b61a33b972ec17c46a96c29c999b810643006a47e87af13ea50d88f579da8d11293c232aea35d6bac399c3b337dc433fc8f430ce88be99e403c62c18ced432acc073c4fa8115e3cca8cd57507206947c42fdfb4c7df22601cc6908e9fba29e75e187d1afb0931ec90d252525305d0dcb974e3faa7bb3903bfb6d100fa484d13265e8563e121d1e8c36602399241e192657f2a0933bf4fced70b35b9d1213859b328d73cc6b8552fd8bfaeec947c069da5b3883ee91615d8380fee0c587c346f615a32a16c86ec06ee0b47d0b7897c784e49f11ba21a0e97a5b31e8e30544251d35f6f4afb9adbd5b568985d7f7417aeae405a17bf7929a76a77417744614862392f68bea861042bc5db99ffbe8db18772e1b6e2e44c8397167154ac54713a36fa8bd1f2472d0a0fac92fc062db91896755bab32f778b4c6587f626146b06dcee3ac3bfc30febe8a39c2d33c011121d3f589743d4e01beb3eaf8a9e9fbece013107eca1a5d3d0c94a1b76d9dac968f4547e8a6fa03a15d3477357cafe8e526648032d7d5098e1e50fd44ef91fef761f5603a2fd7ceaac3fbae340c66c2625aa122cc1b5c2e1717cdde5c99e1d749bc838f1f0c01ff01a86b2984cf9fd7b7f3222e452bf6aa654965f2a7f11ac8baec4829e9bddc008b48049617728420805bdad9b1ef6110e3b6edd93015bf05df4d2b08c483f59c338e37fe7744c310d6d58ed56762459ecead9a7de17bcdd4f74d3706cd9fd97fbafbfaa489a937f6266a9330388e862e9fa2a7fc536350bcc84d73f1488581dfad2172a68304438812f5c2345a825358bf9e90dba7df8d1fb31510ab9f4e9af66b5f10f68eb382d68c0c61aa286888d24f82c5d50efa690c96cc2c30e0449f96c001c63224a182679bf83959b2a14bf3b2d347f7c57153c5df7959ebcdea50c516e76d8dc335f71fb1db1d03904b87a77fef395b6f7da67b537d26e65bf5ed1194a9dc0d9ada8d50a0718e991a55079437fe6839d3bd42276bd4aa1dbc9e9fe4fe56bcca1fd7f6581cf1c9a39dc780ce0f41020661a3a21601fb8e1b0f95148a06c4ea6ee9435439f516c28ad660f46ba54d0279fa810b8ab84fbdae0868c2a7004b6c25c59d2adc81fbf7ea2d42d4f7a87cddd3b52178d94ed496a98641b07cf944aa7af47ff836fd04b95840dea4212700802131d31818243426d65871e6d349784275bf55e38a2078366ece241185b07aec9caa8841ea14144c0756dee2aa3b4d421a85c93bb03c1443a8411a93a7320895503e3325663364f1062f629100352eaed9452495eebb57dd52ec98c0e1c5cc09f3029e915c2006b4e40cfb0be3b6fb7eb1b914e41d7d800e25151ec82745cf8b816b6ea9f72956a4eb0263d9b5d45ab6db4a69b4a2aa23457c72300d8aaefe683a51636b1c748d328edbc1600c72b17317a75c0b7449540d939b3c1ba0f3aaf3775335ee4c550d6adb3c8a49516e9822e80b6bf0f78b12c966a40fc9312f124d9948a9cfcff17b3a2a93848d704ec9423ed3db9dddbeebeb30368caf97332ae2eb5e14f4a598cbd77b6fa7b743dd6d17a117d9ffb24c001fd5b4f50adb1310c932656bc21ccb3969473e75c74afd188196856c70844c6cbd117687202afc38eb568dc68d7e6ea789fc21ecb23e25eeef282ebf301051bb58383c3744750178f1268309e2f9bf2f61dd1727bf6ee324f7fd32533700b9ed625f97a9e8716836156919f9e629419d9c4ef776c5e4f32d20fac11cfa8fc0a5bbdb2827c1520ea806be9430a102c1636a9f26d189525d01c07fdd6d6d6bac76e11ea8a9c0924e08e1d526568e09bcff3d1fd7a99f617ab378d48986267a6813c82f5e2ddce291ae12ad277ab24abb2b2e087a0abf545bc7c285ed8d5f7fa58fdd2105689dfa375dc542ccd7e234451afaf1895efed054bd2b55b5208990c9feaf74eafc07b967f492b948a1679fd3c90ac5576779e63115cd159131bf4f31849dc538ccd7133dd2055439a2114794f77942010b486a8d11e66eccf2049ad2d356a04ea84694cddacdea78452c60771b2342381effd2123dda827785e724359c0da6eddf586964e9eae8f33abade2ed52172e80922891ef94cd84f456d9db46fc17ca439c65c127ef00a6b4558755967bcc2b095487cc4b840d50208efe66f59fbb60f365d2ad13e0d5fac1b0cdfad26b461356068cb80a73977f8be4f11380aa6a7120939ffdf23c664ecb82ac1c2cdbc75e02de04213dd4a5222765eee88a2e89c8d4db2c95ba93b006a0d981cfaa2caa5512673a290b6c96303968b5b8a8a0a09c71c3fa93687fccb3cbe1517175e8d956e1f80a6ea4239fe36ecd510831e727a3cfdc7290ce5116cdae679a2bd83ebdc0e51304a7ff5af8759eb60418e42b5cfdf2e57954418875c559dfab181130d6b654a1391b2e3358aa7cc51a48722a1346cbef97dce4bf5487b575a9426af234759aa90887a17d78b8492fd2121e447ca755683269561c8055ccd276e7bb970983869851f84c4d4077bc3f1cb5680e2bb9e067efa1ad7f03414400188b36bb8ff9fe7e609284c6b85af23445462a5b6203263657990d00228434b8892a8ee383a9211627c81426db2bfc1d2fdfe1a558fa0b0c300000000000000000000000000000000000000000000000000000000050b121a1d21292f", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 48, + "comment": "sample_in_ball requires 1 SHAKE blocks", + "msg": "0100000000000000000000000000000000000000000000000000000000000000", + "sig": "6cc73c863de62231718954780a08787cd0d3f874b0986a5ea5de3a9795107dcdf38bb8a5c46c01b584dd4736ae55250bc609bcb1db6db819ee714a74e5405d8cddf51c016cc1403936937c5d6a34a8b2613b450e285cc28c0bc7a9fc6db1cc109aa6187de298c9847fdfd7df400d87562c38a081e33d5a5966971c6a6a9a0e17edbf34b605d0d54097993953028851c7d6e792e6a9674185b9e97c9a0db89fddbf0d64c7926775b915525b39adcc867ca57f0e8eb13f231729cc466c03ec5e39c37470cb51efe47c20adc47c0669ec27cf63cc2628eb98fd578ac5341022d181c7dba84adec992277b57bacfe427449d48e43dda5b6f65d06757008602f72bb32bf8a9bbf9547326e67e77bcfea408f73c577f412723f3b7f384fa1c8b12bd0b8ff0bb48c02bfecddd8c05b985e67da63501d2b76ab07af7407c05099b2f4237e17d0713bf0844da76e556749ff99d2a46e002d0c3d95f50d655667b2536dace5ad4bbfac84255df8dd1a0ac011269dfc437c5979f6c35baee1404bfe9cced6a3706ea82b64e2dad0761db85c2c6879131a9aec09cefa4f0f46a630710908a4564ae62ebf40272633d4f86f869153b7bf91785e8c2f11e5d855814927a0223b2b36e00a3f97f3f895e2b8f6eec022e133b4c6a54964aa8b35633462681e53147e70df5cdd8483a9d80783a742bdd79c2273c144b82516ac2048d1f2054fbb9a33ec039810e658d290e22ac0da33b5aa3636df826341dd5970557b17338eac7089c1d8ecab3bea5560da6875a7874aef7b78511fa4cf54eeda94960ebcec2f59f51798f5eb3fc16019d18cce3f41ee3fa068129304315a5e58ee0c59cb16d3a1ffb572e5e4bc85e4f049703aa2c5a8264977cdfbe52602f05acd803422836bffca8674d158cfcd0196a498fab074446334996b75679c6d3563fc3cb5ca2686a1ff07d8a61e23feeffa580c612667251f29698fd276f3fd865afa9a72d9f29a948b42342078f38ef421dac5f331cabef9fb9cd4eee4354b53184eed83ffc6ff5cde874e349bff798e6f5a3fdc3fcecc159c3812c1c98f3c76c5e26737b15c1d1ada28f391ccecfb6367bca0ccc2bf76f155746a439fc6377df03161fcdb80d5939907ccf41e524a83af791c5683f7b0823d05738417b597fee6b0e02beb1a5a4b9b5086da4e2fb75cdc5c76ca9665a8ed56fb7345707cf2d10a10287ec269a0645ea4d772aa3a01655f7b6f8334da14f865d4b673786da894f23fca8790f4574799a30e1f4f66821bbeec8c3913495ec0346c0f53fad068fe6bc9027ab4cfbd6211f2603a9eff25f977a3b4fe7e0e46401416cfb2d776718b587bf37c7604fd7d0446488d3847978c33ed94e9dd8571577c9e14226b90cfb1955ed6c6047c7ea02819e8d733800dd4297fb69f8a69d43f03e06d0e5cfcf0a71f65963c04ab2dfba6fc1905ccbb8e33203ddf61218aabbc9e9538df311505cf7cc7dc570a44a96952eac73c3b02019836a11f254eb55c63c8eda9eff87975099d8515f241641a6b13456dd3cfbc4e7c4e3717ad911e3b6cca87c613c373b3c16b67ca2110f1dd86e422fd05f0409ce553e269ecd0c7f528d270d0782c6105ed83dadb2966e7fe5ee77dc38606ab3011ebe4a5b606b2595ef967feca05c26d30ef8bac68c09aaa5e3f87752b83cb78d330ec16a5ebb1138ecde16c76bcffd894211f8fd6b7aa09efbd1bf4a8324367244d06fd017c90b793da27bfc19727a195eb7312fb9b3ac19c66f8785f448a7ab1c18d814ae988c2dc63a3dc6d5fc1fb3ecc9ab5d10363800a766c733c7a6c2edc7b0c86a817a0892b657920f78176691188bc9e82cc4e6629fc5cab248303608ce0fe69724a17eac2222b3bced0aac4c2059a923ba98717921499685a76c53cd5a960d55bce9a6f164b616d06551c65c27576602e5b1d6215a8feeff02d4427bd860630e6aa5b36e6dd53cda37776e1700a63a3222528246fd7f23a1e95ed2e3887ba71064f3e7f7f07a8c3a045c1f13aa2091ed378f855587f5d9f0b449f1ad5b5059d28ed3be95a2a8c466b2a3cc26a8ec716f805d149d13f56462c29585b3b9db663c795cb0d1866865eb9794bd80501e2a1e0cfe8b314bfb9f961c4da31dc6e25831620dd720043c4efe4e19b6261c479b029323c630f1c8345dae9235126f6e1c7e98143b976dbb2a6a09b8a4e01d082d6f1b05a18f818b8777940ad413be6064d6287bd93a7633cc64675c7adce7aed302eba9dff92e04f8d6d224a2896a2dfd27f79dd83dcb4ea136d16d50e7254f2ec0ec55f54edad4b41d78d8d8e07051f63afb6ec37c5cab932baa9df09eeba24b1d3ad9a923e163ddacfef990df40ecac3c55d771cc8f1bf1bb98452d14c93652b25541105f4d20271b250ad2a2a2ebbbdfaa7411a895825ed901412e195dce9d7068e25d34d83e24252ab18b186bee8714ea9ce17501c9543460c2c201b5bd01361736fdbc5bb92938cb2a72c60de2e5360c5a2abec236a1c92a05de478997a247cedf0c9d92d56f4eefce7610b0756119928733ed878230487e6c01b34662bfdb550641d2fb2d41751c66c9eead25caf3e7cbc4dbf0b2bb2a1f9a407fdc9e37bb2268aed94c9163109a8014485e74dec6159f87030f656a6a7266fc30f61cc39a600fed90a4fb8f1837ff9d3d4625e335d87a01a46929c6ef243aa86d1317759200a19f4ac2c24099ce615404fa0b816564313b41a3d2b79a812202afb78ba17ae65a8eaba5139440a4d31b73e9ae16514c082f6907a7ec07da44192cc6325d8dedaa3f0f28bfc92a7653ef5738b9bba85ab593a65e17af07913d321be4057594e16043ca609e308efca3c276840b49fcaf34fa7c38c43fa898800081f2d6a1746db7a950b5cac48d27a420ac20624387dc78194bc29299767e1211f0c7b137abb6c3321b69b546e2782f6c2c29bb2ac652aacac2ce664d95d7610156dd4bbe8685d0e0af25176baa5d8b04b32de81ba8341b4f2afcfa13ff7c6a61c3da03fd2cfe38a0302dbf1882b0e8dc10851aed0205f5ba1d6ffb584f450b110ce1b89ec3f909d0ff3f93932b524ad0f098d7b2ab7037bfdd4ebba64c34f5cf9c5ed1412f4ca280c73fd220580089fc91bac1c1defb0afcbd9dd6e629a1c4f57b4261133cb05830029429f4b4f381a3fc67e67b57f6086e1f49dc13c52d87f28e27eab312ab9e83858dd459de672de08ba5a7cf1b3d073512f910339e56d9e3731e6bba4b24d9592e856c7e68fb0fffb73950e7860deb0eb32299076380825edf4cc0fdf7cfc81dbb5aef9a2905a2e07fba19741846a4ba3f81e2516e8d511b895b5d6d2e3900062bb0968e096eb0f104dc03826ffe59c54bcb3980b30680f643bd78b671e2f8220f09cf8b0016c98ca44f4f75f493bfce3a078052931a7318aa36513903d226161d74c7c29ad9729fadb33caa4109f2c5c976af1d7e779255042d383044981e2071ca6dbde7a327445e7a0091c04de78d22863ad849552af5bbd164c64315bc592bd498ae7261a0149511d030b2eb8d562479d0402085e60e10be98373ab74359e5b0d0eafe2768b3342210f9a0cd05339d08ee63fc380d143f05e87774e073d8442a548e3b7ee568fd80f09094447efc4d5ccef0143fdf5bfcb7346bd7a2798d312cc8ae98922e0f0f7756ca44647dbc62f93188c60196ab73724337e7c64ddc9f71ba8a81c1c15d11422e5b58f68f817726e2838cf365207789d6864c4566c3ee723e4c5b339f3af37176cfe9197359c489c3cce9c913e810d96af017484ac24d744e688a80461eb921d4f8e527c9c4f9fcaebe8747132b6bd9ea86c783f64b53e876834c4f08bfd3aeeef689fb86f94ad8a44ede78d3f0b1219a6b5afd56d1bb61610bb7bd925232a287ab5e67ac277097d955cd1b9fb53050a3e3252af91c9169e4027a7d1c289940b860f5fe90d6e1f809c6e142cef0c78c07235cb2e5e9a5c3bbac836c0a714c0bcba74104119ccdd0b42699ab19e37cc8822574554acf9c2c70712194626221ea08d489922655d7996ee9b2fcfda76939e77b390f5680958dc3fb41825c4850550ca350255aea6f27e720867ffcf38998d02c2b4ebff3a7bbec330ca2b2cb83db2880f0e130b7a573b71b76d87d191c436ade5aca2aa91518f86182d7b7695815d813ca0836f028c6393a6becda2710f94c91c9cf4bfcaabaeca174b6f84cdedb9482398efe900b4cb03ad85b1e86c2d548f706ce6ce7abbe994979a400d28cabf7fca42f3973d3a0e40abd365f3d82ff0524444cfc7bb0957f8ae1f2af5fc0dac136946e1e70a71b13234c5163658bcd76b9a7986edf3a525335eb750c7e9f888a35ce81528a89a982c85685648f43802222096b3ad88f4c64f9323bb10835f64d856fec57398af894e29cf2c1402c9188f7876e455bdf7254efe7e28a47e72ea7c557fb6dc77329c5c5e47ad783d0cffbe60c66e5a20a562364ebab88c0f698c1caec92fd4b39f8814f4a05e952b978c89c3b63daac3d63dcc6f273677f7770798913452d1f2026caa444baa224d3b4b6fa71d3a1311a26433a7d7084b915e918da3b202878233d707770ee6e0337db6bb8e3118d1ed6a20849764275e0207c30aad6e9dfbc629543cda5a611de0fcea2bec753446ea2375d6d3a592d7f8eeb817ac218df8dfe5d87164ad914b92c596eb3ba5bf707d0c8f9cdad958f224a01608fb2c3c4445385890ef33c6cb9eef2e2e3d2fe16a03137e5e42f47301ecd5208608e13569becc719609c823ab4a52fe47d4c61cac464ef24718fb0a4475d80e3ae2605bb96cfc8311e62d85a48f267ed88af3f9455d87b8712ef1c79f3b4093db7ea8fe4c63f038065ac5e5b84ab672bcbadd82331e3c8e4fd7bdab926c7bccac1f306f7a5d95e75674b64e7ab203bf79e04f48627960f7179a29c70325eb58d1a9080a40d3642b712d8d1f216f0653eecb6abf8a2f40e07a03bacc772a2c537d267dde8bbe481b7fa80132ce0fac96c1aaf6df3d427b592ae99358337b019bbba999ebe16947e61e27327d18ca78f78287ae57efbfd1f19bedc86f39e264106e70169e8eeda2a93f713857a588098dd4d8dd7159261556bc72c811a191d4cba0831468a862701593c56105c2d0306620f37e5e2a255555ae374b5c95c1a4dd1a3bfd0e7ff501a08505c0cbd8de2d26a53d9e90fcb24f926c052fcaf65917d74b13d7798c90997b55a41e60ee5375deba064ec3434d83e8cee5875a96d87c1754986baac33126f419a0c7084e64c0d69bd411a6a609ef629684b6677f916889edd267b28146bd2254c5fbd1d9d5de379be832c49270464de9b8be95dd883aa1e7f9e227fc18b77886c2445accfba514c2a870d9160d4b5613b02dca799266494cfa4abf6014b97c19755dbbdb89a148f70f9e09a65a295f0322da6332b75c8fff7a4c51f22b192df20389875e54278701689616f953b865532c697def1fc5114c9af57fc43b0be42f46c7249a8a860fceaeb0c82426da42e6fef52473f50c1917247b2c648bdd9f1558db0e61853de09b394234d423e17db6d8367a570ab62bcdb82f36cebc749e01dcee7a0cf4d2a27d7f1fcb68285699f8830cc494f82fcf3e973fd21ffff1e58633badedac5d2ed43f9b26cd61fb7537436b1cf8fcb894175b43c819abbe46b09a43542fd5440c77591ec498c43ab38b88ad2e5b1ff6470400d5eafe0154269ad4ffeb8cfccea92ef6e49b44760d6f7839927395246ba6f7d15aec0a4ed6a5908ec7f6f310abf06195b0fe78918d930d1945750bb0ac73dcd4f5c1b2dffdee3d4e03f4df7da42c211be9b46fc6f31a6ee8370c87babf32e9f66423fa7646ae6d87ea53204558bb61a3ffe91a5d7b6c6bc2c56838ba7c2d43cd93e5fbc9b0e454bf9b25c533b107110758b50d8c70a54453acb3eb5173e4332b8dd23b117b2fb5ac0abecb3b1cbaafaddddd2f06d349bcd773e676bfd0c2daeb21c04ef3d2a978314895a401dbb7169ba8e9c8c960f2cc67f2104468c7cc69206ababcc516c8a96b008640c04ef162863f01da3e1a0a0d912cd87171fbaec3f52c9fcb2fb7b306aea1b7c647e88c7fe72864dd3aa4797f5f9410e62c5270a9b624fea1efc5b00173d761407b0f71d20dd20af75e452803f9223642bfe6ea1a3d4488255ae2df3578cb6bf48fa5cd9ea1bcfb7bd16ece11f297782f59ef1db5c8299f1857a1070dd0e971658eddcfba0ed6642ba4b8a67683595b30cd934eaa367f271bd8231b2cdf8c6f348179cfe83609ccf32426d021f1cfe4ad1cd17d7310a01b253b2288b4af00d1d0d73db1d8b7f90988c0e09f9a6949b96d432e9e4998b6cf9d46df6d1673e13f3f6c899b6372cc724587afc61e5d44d7a2fc64dc239efb48501c03eb31f3d53ee79cc433fa447880c74194d420a5b5040f23265bcaeb0c1c303e5d929496d4f1fd164548548cbcc11b34474d4f64658386a3cee1eaf72a32334e576b6f8690d7e22243485f87a9b4de012338479dc2c3ccef0000000000030a151c2a353d46", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 49, + "comment": "sample_in_ball requires 93 SHAKE bytes", + "msg": "e720000000000000000000000000000000000000000000000000000000000000", + "sig": "c0f71eb7979d049b9c20e1213f1fbbc1074b376a2f98a535b99f9e0abb03c9071e2d4ba3dc658543df275f2606fba8cb68f748939c51913426378cc1003a292693680abe4b8de6c1c13d306d29a7bdd9d1222910ac1ee164ce7817800d244b00eb70257bbda15e140d7d1477cd4b5578455cf234524441ea4280c4828f97461fede02def3a07a74db054c6aebe168d42512816a4619e050a9bb54d187ff697a0af8510ee411f479f1e267ca1543caeefd525e2b75e30d5f7a96b2c6e648f69af91c8b88d7bb76523a0c847b38b20a18f76a180708c1c8be711c150b1a5dfc22a7329df9c38a7db25c99e5961e7b05490c1f492e8d984b6ab9d6113d6e21047833951d92b34e13a81b8ab2b0951aa4015d2f6e83b2aa1c49452fed7404aef42fb54d0ea6f0481e670d309a6520da64e5cc66203c5994ae9d6e1fac5ebfb09deab8631188aa6a3e5e9e0a9893ef03385fd4aab12fbf49d6bb2337b32ccd55728806ce764210b3c0a168bb3b42eb420a04e06c946bccb1b37bc12a3a0d0f1ae4c84225dd7020c085acb676b20372dfa73d6328b3a92013ab0f3d95dc8e617104981cccf7a588cb0ab0f90a330aff6e1a5411bcda67469bdf7b2128161250348a7c0c4c2fcc0fdf8c5194216d5e78e446234c419be0d3a13ea8cbad99125ed3ec28e197a8de56028d0edd1f877ccdb0819bd15609658f4b2f590464c413e30032a09431b1a7a6b6fe1436cc3d409183de697c59400943a60b4b9e5f88d2af703150378cec00788309baea0d89e639a005499beaac44b3db4d277daeff3e2dcd85075af54fca5a07fc4b9551e45b0ef68d33b6c70f9716550d276eb5989bf1ee7038fccc7940756eb83631c8811110544d50783035aa2c534d25e677e022d6cf61bce2de5465d06fc5b6139b165e94103ea5cb307772ad2ec966e7c67e7c7efc98d7213f8ad436eccfbad33e0aca8840561fc521e21fde98cb23d492247de67be90e301d8d0433dc66845fd6aea72811137987fbba9070f39a0f9529197f68af94d99fff1100f7987f34bd46dbccd3309b4f5a6cbce24311c046c9106e6e0a73b277861b13daceee43d81c236b3d982032b49c34024dfd3ef621d257e821f47cd8cab62eb585c89abc6ddb39a99a31a1d6902d0e22a9f47e61f109935e9e2b097e089905fea78a2425c49f376dc5fd8d56dd650442bad36394b5c7cf9ae74dcc323c4080682e3249dd8c1fc0638c7b21771a482711dcc74e847bb80402ab971fe01d602ab404cd7d807e8e563237ea4be9dd31966f86e9b3e6d2a7fedaaa452c056612e7ee374bc8d45692212a153abf003bcbb6ef153eb0aa3b9fe673e243818b15b744b2460f3599874622a257b5d9432798ecd859d01cdd29c7113206694a23cdac81d35213bc9a8c21781ddbd9335a750db1cecd1bb2973fcf39b5fe738383109b23936ca50332106dbc77e94579e75844a4d21836ff897b2368b52eb81ac42a2aeec77133527083c1100875f4f8b5384e446acbcacfbf8fec112d66870fe1c74528a1d8052def932555bc41fea29732828cb08e5e05fdbc0962ecfe82cd1c718715d7dd76d11bac0a64be8010b5973e07c8230da0ba1b9b0e3f40f58b6d96da07eb87544429d44d7c94853f6ab39ad4bfdc3b951a565a289fd7e9ce1fd43af1f55aa066f3b8d95aa31990e3bd0d4727d9c65ab852a3c4963e12305dfc094b342929b0e71d18811399547674e92a94eae173006bf6e4cab106aad6fdf51993136a6b72ef3c118b329ec349c15914a65850f5fd79268655e6bccd407ce0f511efa992308e6d2f06478465522a6765199d897afbeffaa5549a2745fc87ed1ed8d33a025d0147965aec52f6d49e8ffe2bd0ec3b9a95ee1b0dcc21cd20c92484a3cf31e6b5faa5c3644613e1cdd68663c100aa89be93d23ff39090ccfe9d2aa5e2adc7a7d0a0c924d0589449fdb8e2c769cc727fcc6ac0be1a7aef534830913dc6e271b992b4229dce84f09ce6db58d23f54d80cd94a303422ace65ccb54a75f861c509e2a6ad37ea98e4a3f38ba3bece8f14343054bca2a8680a53fcf8d6465d25c13478be40a2725a9344d47ad16adf4dca957bc1a6e9d084e43fb0e22fe1411ba4bb9c0499e06b8d080caed7370c82c2cecdc7a333c2e9c907fd88b0c9b2368b93ff8bb974ca471b8cad7bd2a632a15a4a5af95989ba1ad2fd8a46b73c70624211a431baf66ecc775cca1cb02e45b856ee3674be76ab6dcc3769911e039db614a18b0ac109d0f51c4eab092b1a5918b43055da3b7757be9a95a47f20a8133d56ec8734d4460bf89853addb66f18fd70ffacf2c993dabc3efebb7583efe8f1ff40f8eefd2d4913f38fa9c93d8aa18a554d4f6f0a759e605c3be3756da8d0625d86863677261aa2e57fd4fd8a79b247325348b1c4aae903e10e3e85c335a86e4742975e94122a855be251ec443d99cb6db963a30eadf96bb77d3b7126fce0b502b896e996697265fec71cae9845dd5cbae1918e9b513579edafca5c77a6e7d7236dbec5ec6c6c23d2740b74174a6031faef0840ce2b5da41d4b662ae9684f8b7679be00cd0e1821594130b751f90066427be44aa2ea6f46abf2b480078d02ba360b246c3019f16d513277ec23c23b9f78a5b6a98842543abd73b582197a6add6dbc724e7c99d25458c505ddba97e8d0ad6dd85f239903fab88c9f1931ed33306258d41586998b70d437d81be8c3ea5bbd8e6393e3b449f14168641cf6b661b756b448b297e2fd1889499d8f9ef5a9bd8dfa2b5b7d1e81ec56d2ac954e505b849d49466d673fcb6ef34c2d8dacc54c85edaec31446488b7032386d5360f3e40559413bbc54e8ff61a3206e73b5bebe9ee5a3bc7b8451336d171d95628d6cfd9d7221592e7d3a6f4436949424e7ea1a687e57f59ab77244d43237b6a7539bb1e912dbb9779534c40ed4a7048805492b080181a8b65366242131e9f450143d7a502fa718a43a6ca1f177071c57e47d7127c115e1b95312b8087035bcb4045a5bc62d7cb58df6e9edaefafd8ddafce5e8e645b40ebced821bb6731cc4bda60f197f9fd0e02fe370e2c3fd42c5d04316b9855ec078638cadc5186831c24cf7f023583ac6278b633761ddf4efa616a9a76e74d72b71283f1de9f924d58d761199f26e47951f56317780cd4663321db872037981663ba1f647eba143aecf711b9e6fdc36189454a29d9a8e111d21a3dfe183390a93feff8fc9d2c79676a82b6a1acf575a675076e57c09349fe43a7036252b0eb070d53d9ab2db9f58eb3229211a0c02624e41e7d22991f0a1f9fa8079b64b6e99a48f241fe7ed10360b4bb8aa38c123e6b19ed752003517df439cbaaf77f1b41d34999480ace6758287b9a5bd6d49176409d4568c51218a128ea3e9459de51ef24fdc789e07f609571cb166894c49ce015e45b308a95434fa0a11a433fb588b3cb6fd3d2d8a6701a2d073aaae8fc020275122baba7dabeff9753e8b89095c39d76296c2c40ae3f93b0ea06fa9c93c2ab88ff8314a826c171f4f589633132bbc3211c9e33e94a29074bd91a606dd1f40201313f1a2750ab089c794027720f315dd0ac3385341a144646aa5103e575ad837d427d881af4f0e520aff2773ea2668c934c455a21883c7cd9d29c2df52cb1ba39a14f0b5e98314d027d48fcc82261768f18397d005efa76c0cf6537f4e7cecf4adea08274155e9ffe698e646d9dd216cd1948c6880364f9e09cbee207bf3de67649e9c4ad16dde00c139cc31401ee0057e61a495ff2092461e10491d161b0481670794d4e75514140a6ddbe15d33d2cd9b6dc11344b8c83c2033435db9474d8a0006692428b64bc6993e6e0bb4273f67d01368d5cd07f01e0ccbb84830366fde9c74d8457e602558373a8584c8fe082fae5c9d9a8675c0640d54bcc217454baba894ace6fce42147e8c2a885cad56c6586cb922eb00b5e95c8139fea645b8870d331e054d5c80842ac5fc5638f21e19be8249e9906bdfa8ee12ff54f40b8aef27adbd646027b67632c8f39bc7e016b4801fdc39aa249febaf1603586407cbbc464e02d815414cdb5201a33bdadcda4034f235dfca1371b5662280b2fa7146c2638e09f9f3728a70e36a96491579da664abec62babf47653b8ebce637de968762abc655ff0c69f5ca65260ba03c8f8d24b5d45ece71721723c3a94519291190553f38cb69a8b8e461b48d0aa169273f2139bd3d5ee7fe7b746808d9191193e2b4837704c6e3617b767b74c4c31fcf243529de700b334c5a5975aac85fabd82f074f93f39113fb89c7b21d6a7cc37fb04ee39c1f4d7f99a76072b5f1e30ff613e0721da192c9ac5f7d767718d01e92a1fcc57c68aef0a74bbd28b27e6e6c20b397b9e97c4c24140a6c239c6341c75c16255ac299849895771dab1c7165e05977438b102ec53bd947579df2fec48fa4d2d546cf666fb02108c73723a281cd4db867fe85b2acb451eb02fe2a88637fe7222b2ed3b0d9e77e74f9fed241337954ceeadba39002f09ed520387078d93ba7a9c9a214039ad311694c2028aee52cf2928eea14b51fddb2a39e16f12dff6efa2e6f70a0d2bc3e0890d4fb8f4a44fd840faf1b2da2596cc737d497b58f007c5cead29f1a55d34c79563c9c3db36a002f5fd476889f0b2b22b36e4c32b753926935c51246f3dba0f836d3505711664782ba7c509fb6fb9e249d278545fc0a07cf1029a0740296cb683d3e074a38c329c43914d0ed196b67c6e8ce655c88d37dc957da4dc9290136fbb04adb4e834dfbf4b02800f1c1a94b6fba64ad7650479397649b9b650423d3f21b53ecbde066564ed9b593b981f2efe916d9062d1eed62e725f09cc44c13f632cf338303a5cadc740a27e7c72f4b9d0be3dea4b903648cd780ee54cca4f121e837d8483f8ffc6b0791e83729d84ade3154dab6eb40dba2626ef4f9fdc263e68d415f6c202fcab211b1a8a75e1e15ef129a89332c706c5278ae53ab4bd083e827966bcc623925188a31c82b070378f393565fd42ef6a156f1794b056b9f130de70ff1c626d6140f01dc62588296d7a0d7814847aa9c38fd1f691ced73dd13a8968462981ad40ca58c36f512c1bdc8845d76bc3554b50c24248b9de5f18a983f19297c1e9c0e51c7ee99fc055b62325215483bbd8294c5369aab29dad24ca33f232e724dd422e0713e3972062227903a237ee1b9fc6d42e8b27f2056c4b8295777a01dc87171fa469d0f40ce74513dee2d1a17b8c9ba500ed9ae2c89f69d9169dcda661395d64d413d996fb7c8af2e1c62188b7c6f4b84ad54b30a835044793293bf119a5737d474859153c93875e8ca44d42193c7166391103cf811dce421113059535266f802c0396dbdd71a53615e4ce662decdcb102a9cb08afa48dfad560ba1d7733d6e9c580945c78e5f425ee4495e52ee1af04db02b8c4489fd8a633aa57235f5d41b17c465fd4fd677e991baf72a52fb987e94ef4c42249c08deae9c7ac46c3e76a35fb2061bc2e38e1ab0d7443dd8ab391b222754a0704e942beee143e87e10ccecd0bffcddd80b423fe7fbccbc0d84f80621362f97bf6c94f1aa5cb1c2815f04df1c8e4083724ea02207ecd9e00bcb2a5b2ed09595acd3a43f8237378ba68007f63418e1a623b1029ff3806f3505bbdad3dcdb047205b6f06f3a8f90b2b1636c036fa7f297ef22df63b571c1eb72c942972f951dc8d58be93d8e87a56fd865db42eed971f00b7ce98797dbd870aeef85d2842d23580e1a6d35149e6d1897b7d4e1b23314fe02ae45cbdbccf3a1443c3246354ff1e25a8361753771fc45e761ec2527476ca1b9e960084ef771886917458707d77984b84ecef14834811fb20b0f1a395e67f8183fc62d2c1d8435c3a5651698825f4ebcf948847818e2bbbe40407ccde1c135423fe3097652cb6b61b068260e930d4dedbbc01496c0d43c4bd4dbcbd02ad18b5e7da9e80b568595d54da7997437536474d4269a223d7158182ed2abdc92eb787e2fd308c71830c90dee596ab50661d730b4bf557030e3c0e8864bca6f35603f46e5cd54fc063d23ec0874934067d13e32c66f432a9aa4cdd28a130721ed4581c05b070777feb46db305c1e07ab258067868663f523aeb9151ee2efe8c43d03356fcce4fe876323a593b3446ac5ad0ee7716f38dcf7d86449ca431d95c7fed541d6855350e5b359e6f35ed141cd27214641b57c3683df0279799dc3753ed8c079cae192dead07db752c024f33307c06ce124136d44fcddcdbd8a74510968724ef2d4d06c55f8ac0250e09d38b85a772294ed702288bd2ba44f6974544396079e726e0263f7a4ad80dfa0187de81f6abd0bac63f0187ad15279ff97df4b5a675c92a938206dff1849c32e14cd142c0bf037c6fe7838ed8164a461634a302f0a3bc62d3284a51787b8ca4b1becc2b74868a98494b5a5e6e7baeb4b7ed2f33457beb060f18919e0f6c92b0ec77878cccfa7177d60000000000000000000000000000000000000000000000000000000a0f191e23282d30", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 50, + "comment": "z_max below the limit", + "msg": "eb02000000000000000000000000000000000000000000000000000000000000", + "sig": "849041a0d4698c7c8c81ce78f780880eb0ec91091b8582d104f0f26673546504078e5817e757b9610253a3e0dd67bc672ed9566bc55c32b991d7f70c9a1d93828160a8bcdeb8df4c082bad2166a1ae6915c54289d7e7fee32b8fb9d963f02670b3cbf4e78d91ae4752ede6e63821b21e590a8ed8529b409b27f7e3e5cbaa340a9d5d9aa44d52f711864908db29862aea67e553f7b293696eb3c08deaa1c00fa5e2be590a08e3611d774e4eb0027c0a2c77835abfb8e79249d004365d190b5be4a37197f717c44257d2c3c59222dceb227868af447bab8367334ef5314b646009c7fa844e5cdd66a997291101b1924a666606fd27ac3b4cb82710703e3d3dcc9ea22efa777b0967051e9696c53025d3e1d75e560fa12e90c710b562a67bf473438d4ed64601a6cea52aa04dd82cead831c2143c689b353c51f79be2afd0b6f060fb2b3a3388b4da041e08158dcf556cf7a602011727b13848d07b2dce0589afe4eba9fe4b7e37aa0d98f935940878469fbd0c9c2e40067a2da2b418748335e582b3984219ad398751542a902534e1198383e0f569a3cb8473c8756781f7e6c6b538a9584a54be16645752daf67ce0efbd1ded9c67087049caa20cc2833096149820b16c510e0cb885098608d4933a5f6cea15be6d486a1a6150bd8d3441aac9195a21215527133ccfb21b4ecd7574515afda04274f7ee52b0ce74a2c9dfadd3245df783486d2a82155e9f32a0960a3ef1bd135641fa5ad38f3612eab7ab10d1ac52fedadd0fd5e3e869e7ab675ebd5a8e3d529a099780b90a6f470c3a158ccffa0ee33d5909e1ca575816708fbca683e8d6566c9b7ee8d221af9ad4f28d17e55276655ab49c8126ddc6880f3a165913e93ba6fdb42fc001949e2ff317e3fd61274b66e4041471d04227619d6006ca87ada08b52052a86d749ed716dd5eeaaa0801ba91e0dd5b2ccb2622eded78c1fb07fd9cf23814afa51b65e77e56b3fd01fa488315eda1566fbcf9e0c064b48ddfac54b974e6dbf2fc8f3abdf249c3b343fa7812ff9594f8859821c0df2cb26d4b9192075ccb88403459d4c6bf6fad1c96198ecdff4d774ee11771459f2313b999e1b120ea84d4e8612a4d82dacd68a4c73d9083b7776cbd44db994407693e7274ed7fb937003c8c085c0bae934205583493bb682455f0a77f2e72ac12256a2e191a9bbe459547887efb4830b9884235ff91036f6201e7be24beac999d517c10c2615fa0c50f01a2435b8231e47f8af796cc47aecbf8c1a8c670d4b88b07a062749b5ef29667bff3e164bafd2f270233119aa7efc37bfc408c39d634e7eee43d0885e48d8027b04d5ff5df49737be0feef7db4b58d48a8f068918851cb21bb011a530dab69060e3f25945f16397e28b3339b49440cf9556efb491c65e875e5a5dca0df8ee63588a03f2b85c23f3a3335ef496f918bcb79ad28b4a7fec638e80358595858789f9bd28cf8f2e5569bcd6790bd4f2b056eb17dbf2d7cce624517fd16578ca0f1a478de71369f00642937cb7a555c31c4ec7f2dd51d62ce1f5fdf543ec2086925270b0772fdc48f0f254c567e867bbd92b6f770cbde767e40927c20ce7ad1b2295fb2527292a7e29001c2fc3f443f29811cd15c71574bc547d5a07d1d90d244b29a85d40fde523454bff8ceeaf21a95eac743f339cf075bff0b16cadc5a263d0f1412461322dd4197b9ac666ea468a1850191e6f3080991c12bf781be064d5b105175cf33af1b351b9dbd0151f2aaad71c099e1f12afd3b3f6dc3c231b81ad3b5722a10b48a94608851a95f9bc69648c7cb8ba24b236cb70b0841b2bd813eb7f3c9a064cab7296ce5e0a5a2ec388364002404eaab66fcc4bf1c118d12c8b0f94f265d948beb77ca9d44b2f290b877991d5662d1bcf869b5ec1dabc86be0cb7f2fed26bfa6bc45c36bbb6af3474efd75fb29da2f6baa8bef99cb407705cbc28c180b5ab1236baa52e80699ace06f3484c50484c5b1f8bb1872211a55129d3451975dab6f1be38e2f651ca242ac03ebd48ebbe735168474ce93116c6aff564a31fca9593d73f5a1f6a3989ef4010dfc19437b7c7897d7c171ee61be204effeb6ca687a3cec2a77f935d68372cea1834b9ef743c7d59cf2d390dabffe45cc8d5d5f1ad94026d82e586f4198aa70b5c1c44900e1d7e8b7864b9a0995d3d553f5aac8cf4f66df44163ce35befd25e205cf2f290fe7ad91c2d54a68b4218b8a1850e3c83fbcbc2c23d1d5134af307f2073d76bbddd604cd5598468d5533b9ac679fab6851c9e462912bb8f982bbf10cfc288b3bc22df38842036e478ea552e0fcb67f29ca1ffc97d946c119e8ad87474f5bec42288b83fae1c56c90bd5a9e652f2ce02bd76238eba01a6051c702d9fdab2dde4a3fd620aa705ac2d64d75af54ff66cb834c7f315873e7231c67974ee7c32b515f10277761c2645f417771de01fece259a026aa4a58cce0a10857fea8ff13a342098daea8d454b31021e60e38732b912e53dcf0480eebb208bb29cff52023a23f64c8b1674ae763c09b4fd2b483e5a808837825f1a01cae2ff3f3c8706c8fdac1ae6a7807ae7c88e37334d2491d2f5910f280ee472fd1cb59ce3370f8ae8dcf1da08c137680faa3017baa4c7023ebf0bdc0453343f58ac104523b4e50daa9750580ac05371fc98ffa57befe37c96bf9005d03369b1273d81db3eb902db455d5d073802e3c49df289dd59262988654b80004fdfe22051376c82d65caa6a7a6896fc89e27dc6f0795d7eeb6f56306aa6f7310cd2ca2a3c7a331176a83bb3cfe97bc0a7ba4cdee7f94f5171f56c2689ebd13296cedabb09f1a4a809dfb97ba5b8b36924e66c4f876ba222af5457c4553e8135bd4297f7e76030e46708c3fb2a049e91571b51a5d95f4235beff35ded7754a50d0fe4eb2b91720038a4d3890c68f61a790f79192796c0781cbc83defc965f46bf745c4ce77b054e88b838c8a437062af886b31dcb8fd4b80729edf74f4cbd46e56bf5c53d04c7cf16f6ccc881aec89ce1aa2a7ccf25fc1a8b16f21a2460b2200b64a9408c2ce00befc9e19fdc503b128af8818b7fd460c7684bcb241b52d6ee76bd7ccc0f2303fcdd7bd50fb7f9f2d4d8fccdf51864e496b9da09bb0157ce1cd88e0e1b9b5d6e76d0c6bef0fe60c4b312c9ca15cbfe3e5c9a8d45870b637018ca072982d32a1959ec5bf4b20ddfba5b77cda6dd26eb71f9a60ab9fc2c208c58e07c804c92a3e8b41e0a0082b36bb12ec1410c5a68c6c666b3d7234f74c2294090bd66ee29904b070966ff2d6f58d5f9e5f4939fa2d0ca4b6e0b6f3ca7e94cdc0807bb4e45baae3007db7a08a7efa5f133f8ce01b94ec9baf5e9a4e4e68a86846f3c8edda0f63ed528ca223f2a62c2f9450899154bd399ba5318b52a7fe1dc41028c070471c3edf1e1cbe44cf8290359517c3b20ffa50f114edfeb437543231a8571b66213e0ae91b3fca405adcfabb5b68a09715ab7f24b02f07ce7db3a1d8f5360f6a07a8c5fe5bc0ec222de2c0056f3e638dfd182b1a009e532c66a125df09ab7874d4f3f9ec0fa68606c81cebdb75577c0a376d72d1b64102666a1acec91783689656edeeff0f85c9dc99be48b1740c28f94912bebe1d7c197a88d17a0a36d0d1c2b1a39828ba0bf7671eed095276025a6d5897e03ab96e9ddf4fbec96f3e42464d1ce17866243d32f1e7c6980d2cfa86751b774bcde14f7fe142fd60d4c7f2cd2b662ec9dc8278c5bd15f3fad1a82301a6c93073584b82df09660effa8c79cff79b8234250f9ea9476c654a7f0128ad6f3ae6eb6c899403ba3b58c9431e5e7b3e7e073ff6a259f9e551a5ab453ccc6c892f7731f0fb2c7fd157496210267bcdf483c1eb5c094429803439590f1e74fd6c8fefd57df4bf2e94c9f5c6ccb8db88804d6b3023492625cf7db8470c4be75a7ee5655e40c365aed055772a97101da82440d6782566b855b76e50ea2189951e062fa01be8f082362f446f1390972111489350ae3bb58095c072692df5b921a591047e7ca6edb3fc0679e224a9e69545aff1f3b7681c120a2724b61381312e912a404ea49c37cc65bb08e52e80084fbae1ed95a71113a570649d147cfe9174df4e65288f60960dd75cec654c41e5d8ed0c44d0f82a736aee4636e96403845a451e113597834887f5b037d7cc8e6bb60d94bdc41921b362ab6f1d54eab1e61a398ffc7f0e1345bf5d6d5cf2112670d653a05cd93235b5566226e196e98c99627ff73c1e915ec2409fe5eefeb30e8f336830c15b04a6145b34c5f75aaef730aeb7e470b4ee1a68162ad9bc7d3f13a86e1fe06fb281d4f752a2a6b217cfcf38bb50e1357333c9d571ac7f3a5d61dbb34bb8b3ef631232ecf70e1dacc59fd61c07eea93cde167bf4ec35cd245c169d10c5da4e4b94211e34433c101b773862aa88df4b9ded5762ef25fc45b8f327debe3fa7ec15c7188f37f348a50643baa7d3a4a3cfd1e7017822e70c5ea02f28a68a0f60165ba0c4a4057dd9591e440fc534cc83eb407350b3cf6c10b6ecb50a4b5f37fdcdf86f862004755492b8ab0fb8861624b84c0a6325f0ba31707c98dfe3e39f63dc962246d3984360e110cbd26da581b130da06200e64bf49a629798cd0a3b139c67bc72cc1477c9cfc57d5d55776fe7fc49352579a0a03193e7a6343055b6dab023e2b8e3591cee4aa6b0755fb4de8387cbd1d71d03cbaa37861d261d8b9bf849faded038e06a8e3c8204621b2d13d72d641050f0b87618ca281652beb09bf57c63dbf7cd6b3fe99dcf5d74f0361881cf3be275bd2742eda710f19ed53b58c2b127e2778cf4f9fcd402276578e058eb94d7647318e892dcf879b89a365ac8ee031fd11fc88eea64ecd73aaecec7419e46731dd4802ea1cb7fc6a95cd72c8472bfa3240b564777467db94a896f62f80d30ab0d8fb8ee91d8b81ce7f8b5fbe6c1dcccc65d381d3e607ce9cd002addddaf37793d0def6f5cd94c7ade954e33554148e79e986712eeef1a8ad6f0ea56bc8d0b842b69eeea794bf9457f37a3f8e396daec4b66c638c151b2a2db17936a667ce3610a63ac196941944f25158af85054133aae90e3ef3a63f831aa8149fc2030da5bedc8c8ed48d74de20c5b8440cf0ec20f8dcb051af6e592b968b1a724dd1bf69df8fae2c6f9f64b0ad78108d3cc84a409afdea028ee4ee696d7e2977d50180404ab6504615ff633c4a974728b2e3bfa160f218125ad849c59ed57fa033c88f7de7d2514a78db5c970e20d5c61a614995f4957cd92a92879fc016288b9394bcc61a75f07a0a7614d157e746178b9390422a6e73cf4eb04e5efdcdc3931f17f343b08189b77d7d6ce44e718c5b0f565711db846f8feada17a12c3a1a4f352b19ab9a68fce71a408f77e067e468b06386e023b699de5c63f6562016133c9bab861e0ec56f220ae7aa37594b94c50ae3913579429c624c61cc2ef2aeff19a2cbc3be7d7b5395998db7c0b5e099ab1c3bdd931be3f27636ba4871a11893472a9435ee41b6992d8f9da10037fa86bb447234b9f0d6f8c037cd2526125897f887e53107c46949fc213baa52069ac6de72439d52e1206b0dcc31b1a545546be4a4ce08871a7d73c537bf87a9f5110d64febd60fcd48d7846436ce2c99af235ed16a7b3dfc9811cfdb0fbd4321508611f15c34560a6ceff2bf4540a4b72925c11aff29deab16b35d7b96d9edf8c9a265103540f67518b29f0408adc54fee85fd8ac67ea0fc60e2d2ef391c790a222ce07f1b984ff4ba1835a95f1eb025ff7a77d97c2486102526561045a4bd42f5958729da94f5d7a482119c103999ff2816811d03504d544f3a0bd6c455466c3ac8f58172d2efe0b1b93d61131610e67a81f4b77c5089cd0045882ae80237f08e117e908c20ed5bdec62d3314826da5fcab705d35e8c71fe2e5959025c8ee016788f125a693ed2e5ac6d2038e580b66e4d5f2ef8e42d7c1d6d1ad1d1538d5ec05e7edc2a6dd47bae536f396f0ab5461603118072d4a5ab8dd6a6fd2f065e68a1f1e452951d13d9b4a46b389dfa15ed3846b1448a19578f87ad41b8c6e1f1f718bb3e11abd2ebf9efeacc47401d3d39bb312a2d2d80683b8b3cf4a0a3e5970700472a4dbc7f133d4956d8b565b016a40765e8f4249c3d98582e6a9c85bfb73877e9da3fe46ddb5ed647db7d98c785ec8329339448cebce8087a193e1fc1e27d0b1b6e63304fb4b467f8a7ddb6d1d73b9bb9270a51b94988d292e750beb073e98123b330df60e875a76227ff04e53d2cd97e4ba16dc13a4aa3d693e6356a5484a055551710dc8ba5c6a697d73b8f03e4989401ce86e627e9f17b4a86d7b02adb729729fcc460afdf6644e35fcf02574c04cd50fd7d5604a32e0c3b02e559bc7c3d26c36859b4164da9634dcb9e69a05209dda403060d71788b8fa1acd9476b7074d4ebf83c3d4391adaed0d4dc6ac5c6fb404264676e767887a1b9e937070c2c303953b6041b394095a1a6b0beeef10000000000000000000000000000000a111a1e292a313c", + "result": "valid", + "flags": [ + "ValidSignature", + "BoundaryCondition" + ] + }, + { + "tcId": 51, + "comment": "z_max above the limit", + "msg": "c502000000000000000000000000000000000000000000000000000000000000", + "sig": "c3d39d0b8a5f1677456a67443fe2229978559b1095759264fbd37b0aa3cc2d1ac6c9a35aab463b6495ed5f568f3f55ebb1c14ffee8691911bf31b3644c99f97652eb1ba0309347488bf93ed82674a41d46ebaccb841e17e0e19cbfe5f4e362751513d0de0b18a9e568101b666e3f336eeaadb05885afeee2497e733d1fb166977c76d8257fddd9ee81580ed3b9b9c21f73855f57580c9d627e211eaaaf950a114568b43d60ea6dd0df22c2b702b936605d398006cffeb5c2555618d15ed315dc57f975d4ce898bacb7902a1736d3faa721dc58ded807780a44c5d1e6f8258041cbb2e57f471360f634124f83c7040eb59b138b3ed867faa64944e66d9b068261dabb7b093b7bb26f88c91c4fb9e5c04c7829657b62ba78f9d5a88bf758bff3d9b625e18a94a82f63d94f89a6f66c470ca0509d6d31dc78e683e809d113a79d33f151b430dee8b2e66399fb5599a3cff1c77652adc3dbbc456e9ec1e4bf3ddc2cf9d5c236893bc3e2fa5ef1cb9e90d528bbb87b754091e75129556c42a7baf6b28aaf79a94ad7fb323aee0ea81394a8cdb5375401575dc8d027a803474f996dcd655fe9904a17cb81fa41716e2cbc460c472e27f6025221f898a836a841c51e73c0445d474f8f760023c489c6c79de1f77bc583a94dfcb806be3e8bc449f4dd743e06cb40d280e7baeae7ce5cd1d742be0aa65134da1c800d466beffbd08b2d092b1929a631b7493b0e39fad6f6cc0656f57f3cfaceebf42deb256df6ebfba627d78b03157306f7b2251c4a11d4cd66e251b459581af58373b26a8ff97a4ca1848cd57fee4c391f0294c54d661a824b496e289dbb6c61db22a6e920510dcbde1a3e72315a80f15a4645d5cadf495cde2cf5e051ebf37f68d5b9d448e888c73679d94ef41ae6a63a54eee9ace3d6aa43212d6001aada6e32c9ec2480cbb3f568cf0d40b65d80349036350c0baecc7a2ef6e993aa5e99de8e7a896526d17b46f6c1ad1d1478717636d5caa4c95ee86083a58e63a60d0f4489a7ce8e1b90bb1b10d352c27469b5cdcd67c6fc474551c20e1343a68dbe27289450762ab7c7a62ce47805fce78265169d6e6511b1dbac09fe5e0afc51560fccfcf0c56cd6f1772a6ee5a4143606518d4fe9125d96db9280a27a94fbeab9a04aea1172a3ed18ed223a4af4073baf576179eabe812d0c854ca42646a091df42226890fd604765cc546f5381259b59ff3a9045b092c78dc81c0d6dc1e3e653f1f675cbb4a09656caa51f72535c272e3908cf1e8c433eee301c965c35eacd9dfc8e04b02e5a44a212725379b3f09e6e4f9decd01bd7e49a747a17adfcb4614f86fd9838c0b839d27280b63a2b5bf11d0ac122fd25f2130cf4f7f30a58421b571a7fcb9057551054203dd57774d27991de8ac7b51e79de7713bb0292bbb5b93f0be5e9a6a959007419e2e57fce084f457ba6c4dd2571e2e859e0483162562b6c792af375e892bf34b6cee63d521df340a0d6f07cc639409baf2933e0d5f6333e5559e166b2cf42cdcd19a3d4d08753c15feb106918a1794dd50843342368da89c1875893f744d710ba3743c14655bc95f693d1b85e08f18737fa78fa80748adb064d40cd883736c1d23975d13833cc27fe2abd34a6a91ed36a43693cb6f85ea65e8c2e935e45fad9ba2ca1423b4a45d61a046c5d7a8e4379cb42c7362ea9f971197fff224dd71435a3e94d934958c8aa5ab6834aaa2b602f2d428a8a729758cdd67fe3d2891bc94b4a0552a0871c1b48e6309639e7ed165d7a80425e78ecac7f066f79cc376889da25a10038adce33625a18fb7e68c2760428a953ab379cd51e2cb04db08e466aa190017c60347451eeda7955a1a04efb59c697ca4a5123ab8e94f6e51810dac7baf7205949975fd2627d291d956cbc82f5501cc6d9dd0cdf57caee02241c53638d87b98f5c035fa9bfc34276438f2aa003facd671e85629a6cd28f26c4cfc9f9ed5514e347a44bff33d46f997f54ed5482f2fbb9041e860663aa3f8b602aa53addd03bb2b1eecc430a57995fc4248bfb52faec3fba5541a7abd6eb192f1b6b0645b1ac374d813ebb6c74714451f5a58c66466ac9949dde8b4f0870e3c6e480562d54df5216cb25a2574d69af9d30a60596928ae66c15433aa3b4cb0bf02055392e136ceb65defa5d5cdd038442788cc3fceded465823a76ba0db59f48177ef7ff1fb7faea5611f78a27243edc19f68472d8a1ca79fc1ec57225d0b92f23d8adcd8e2abf86ccd65502435184d33e0920f3a3beb65bc23f594b39cac498a3b9e8e2e4a0171b8ddd9598dee334d0b6ff69ee0dfa17dc3632657a5ea21eb40a84d6247e69c0858a71f7bd4f44beaad9e7295a66a2ed5776c29438a45b7804d40a38111ecabe92278d7a5c8935eb98fb2c3b57b7f39cff7484145f5c7b995666dd2e68f0f368d534e98538ff93076c30b1efc8c3118d38ab37e317c5c651d9a85b34652a7b908436e6115931edb026f0bde9827d32553d084f7ccff203f619128f6ccb273266aafbcec4c996b005b3bd4dc254c58f50d672121501d361b56baeb3389be0d9f94b1bb22d763b1b72b1bb5137ad5e53205252017cb1d2f888368b1fee212c0ff1d3e70907f65cccedae832f106e18b36faee6c201d1e5fdd50d8d7340a2ea070b69c6be6de3bbc44dc8812124fc51653a85708875cfcf695131f0d4d4e1a59b2dd0d6a803cbf331faba609022a22c81ad632cb912e5b81a8d4767602a0aea88e736c27dc93e7ed26fb19d3c6ed612b8ff6486d1090ad33b59a62d8ee1bb5aa1d43d0933a97015302004f4b519aa34467546dfc0078e7366aaf5e48b16e29c594b53194afe9eb490f97bc3d65f31c64d7bfe5ec00eb17bf7dbbe4f66775abe0710b5c20656c6f0bed6e44bc0a14000a3f6483a1b691325a6d03e7587f77563c41399cdded270acde5184567a85af041b42b149c3bd5ff639b0472d914498a35e66205771ba1ea9442ada78a25012063bae06c5471191e287611ab7aa120c0df0469e8e41775e548dcc4ec69ab3a979cce88dac5d9d55fd8f6f50a8d18cc37a7d8ac98427ffa1df97061e23fe3d425a3b3e7e0cfb67834f5b5b5afeb7a4b0c93ab919c1a00bac0aaf7b9b91be754d92659b798f766f2f63bdf30e8e78f3c383f6a0ab1b5ae02990a2a9865d973e11fdd7aa9c5f49941ffc6a4618f36b19757ceb6a61c3b1ba1a727890b5871aae6ca7ad30615a23a46dd65a9229ee87c32535b3f25b8aa2b58e85e32e5655d4dc58a435721e997968f4257e79ee637276db3f8e28be45d6c4acfc7dde65d589c6d6559be03b96a2f48ad727eed96b7be0914dffc170d5336836d5110a8ba6d30614061ba27c0ee08da3be959cdbc034e72026171c7bb7ce24900ebf95b99bd079a0f1751e6cb802d0ff657d13de0e430f595b8df419afbd10193a1b8453f12c32c413fd1c519500d486a88aec78bb6f272c627ed68cb4b337c45d08ed5f5e836b42a3d50de4382faf0887500af4a297f132edbb5f1c6914c772606251343d0ebd7e36aa61dae447c7cd38a46429b66ba9ebfd8a89b1df4486054b2152385174115376732c1f10ebb8de26c23db7fc69592558bf2412ae943258f75f398ef93e4973e4599cf2f4f2a66fd1220f0e29563ce5b05bf291db96cbc028c30b27cc85ecda0be618d71e4511e937cb5c75c8295aee4e6e4b887123fa6ac5311ec642e2a1faea76b473f06c1ec0d47d823a1086b96c6aa154d99cb002a8f9fea10ae93c911650c1b100911ff616d28fcd757d96d30c2c0feed606bbff620eaaca772d336876eab9764e9a2a7d1fd2fe2cd63fbfde27e251b35a866a9e37e3314d596cf5ec6304042dbf97e1740c00a04d9cd60584d0df8f487ced6379eff01a28587d7fe9a9861b12c875f1866058b71018333107b8d1f8f0094364fef747981105b9386d15ee5c4065b7bd8ff0ef742e891383d0749b311ebe20da6ec84b3bac596ab8927ed6aa49bac5e74878ccfc9a2e6008ed7a52c110b94524a34c0fd37eeab3ab845ab33232122645d53d13cc3432b1c03a6f4f33820ae350d462702647f8e09b816f507b372e52536546364d74446b3b4cfe2f87b6297ee7b82576b78dedc06bfea1b7ccf0af738b6beab53ba8b0baf1cc0614f743d23cf9712fa33131fcf10ad344b75e9578bc628e2dbcb0e0a92107a6af74b4c52e5c1181214fb760ad353309048a8e94cc0b65296ad1543a8ae7407704cd5dcf4f76d325eff2fd71d48c620d64db431ea07bc4e9153cac5ef7e4553ca01ac5d331b0014d2fb5cdf7c17b15e68d16607a7086b8b6fc27c2520c0fba988b4175b99c6d38fb93770a55d16e50ef6e13c8d5fa0651ada102d9f3a99aff30f154600e255b36efdd619cf3b1b6ce3ce36e44d9890589730bc19e6adaa6f1322b6c64b3215d5f364d856023364259f199607c82dc0ebb641f6263277341253da5aa3eccccb9cd8c7e65f8a42343c213407866bbe11703d3c3d9478d2738ea71a379c7ddb831711ca8cd456ff5906327585c0877b0c21520143d3a625192e5c665b8d622786779801bd061ae83d65bc86c51f792e0177db1489a8a311ac0f1e5c6b5048ce30028e0a2a8e25869a8fd1d83a4969eabb1bbca090a17e0f4e6ac9df2dc71c236462af57ed024d164b72bf638a3ec76973f62668ecf43d4439a7d8c6a62447807e7cfd2b5546f513a605a28b7e0d6562b4fc998464b0f5397b0c27191cbca490abc0162e6b5d8f95166cc4d9bae7d3491e33dd0c6032be45b7aeb294ad486d0592595f994f5b4ce331493a088db481052f0f0727225b100b8328c57f933225b5ca938ae1521bf1a2c58cc25feac9aadd32853d5b22fad8a03e1d729b25d1586270d22676d76eb8fac454b3830fe482ddb64a15e5628de85c0f1c8d623d67a8104f23fc9cda7b84af407b4b2915b08a56140733cdc2fc7f6db628a7196d3981517b8cec8753c5df917782f630eda93cf86d10a28609ca063dbc19690c321d0e82987e454b3321979a48fc9a7f6b3106dd8e153f260056cd714969542fae41af4e05897608484b621aa48bed9f453aa9593f58745de903e5c51519143340daf487109b7643558a47b74e978740050baaec4e3659a311fd9bbfd579a9b183572cbba34ad359d4e442e2931bfdaa8d10b61780ab290988ec4c3a2f590ed73669772d3b5fe2006b9640876363bd00c3905b7494cc3dc4e250a66890ddf8ceb493cea245bbcd996bdc9b358ad509e98b44bf37fc01e60e24a04479cbb595afe3c34e922da3f759aa057202277d589980c50e5028a3d0e725722b91d181a41ae2ac8f2688e948fc145d55c93ed774c73efb8dbf0f787a3ef1d3c36520c1a418f74f0ca869253f79b03639247702826a6a3ddce79410430505262f954293d23212de999f6b1e7779a08519a8fdf61eca511e6b38ef9860cf303eedbe60e10c57762a7fdf19b247ad0f5c4ee10229996689d46214bfce3b8056e890355ae543f22e8139f9eb213c0fa384dd3fa763d617b64b4ebeb7bf75c4732257c5e80e35f54965231f373ee801585f5dfa360b0199f2517e88e58c1b88c99fba99aebe2f5f15b4d1945117ab91c776b6223dc273429eecd85f5bf3f2e952e1ecd8fe7295d877539575c72a5b49cc6261a023deb417fe25b2cee60360937f2e62ba9a2b9e74522ba7b0c778e743f3bc7f0b1fd4aebd63452fc5180bd0afced77603ad7a350680b70c0888542d83612f1de47056070ab796580ac19fd62f49cf6a0ffe0ca6176dd9dd835a7ff8d34dbe928e9f05de95202d0ac62f1efd10d24105baaae92f1e5d13dfd83d2f794902e54ddb2dd3152355c3942b673e8417f225123f7996169cbb99fd60a45d0937b8444eac6c81ccbfc3cf42575e9d735ece53b212572949f591639bcea0201b286ea6cb9a97915a674eb04b04149b0a39a77fa421455c323479712108910f5cb63a9a381f255d735cb21c40a2fa730e120435b451bd6bcc2d1e610ed5618c36bde844066ba6b8946b7ba27e7f39fdc3decb0d44a8c1c4e20b6a934b81b56e1abe9c7e4ac2b1bace13096a0615fcdbe8defab8e2483937b178aeea62747e6f410b43477248d847e380f9b35404a8062c3186424dbb463893f9af64f3ac196ff3e786bda381045b4974356c5252b70f5ba47f0ec9dfe1a680ea057114380a17b24ffece60acb13e3bb75fa77907ac3280f27dc322ff6ce883ddc8352d6d81385e65b9d7e4d6d6f74f041c7f30b6a58ab4b928f9d310f6c8acf9f12e1d9ee925846f69b31d3d30ed7b5716b82765a61a164c765ce0c7a5cf5dc44192096029b4921f365bbdbe45cccabcd7e1a25629b510860401b7cb4e89318f043176771b31c5cd5b9040efa72f6029a8d196dbe8801580fe12301ea9a47397638f1eed3a3eafcc47889aafc0c6e67398b2c43d4047a8a9b8c3192054556c6d999ed9da03305e74b5eff80e192c578394a5acb3c9e32152595d73deee00000000000000000000000000000000000000030a0e151f263138", + "result": "valid", + "flags": [ + "ValidSignature", + "BoundaryCondition" + ] + }, + { + "tcId": 52, + "comment": "r0_max below the limit", + "msg": "2c00000000000000000000000000000000000000000000000000000000000000", + "sig": "ec75c0ddd01262e0c82cb7b8b886369ca545cf63f7c811fe77019280150f2e817d6dfbe8b6ab57ee253a172ed929a557532fd69441317229a76702cb993aa701fcb0986dae72b395f3ece57c0f7e17566e3c8c91f3f09a36d48a129bc45ee25302ff59530aef8efb4b20dc3a23d1513e402da07f15fcd3889d3c7b6dd8849d74e4751e3d96241165763933905b5a3bdb9717549a45dc35a63cfc696a35d8bd333a678ff9d71d46152a4f54f84cba9c450e5c4aeb6e8489ec71e8982cb9bee63af15ba25cbc5e6ff18d3a4563b0cc8ea6de54a4e3ceba4de9233447bbb0ffbf01b9090f5c168c1600ff2bb72bca2ed707027a75f7bc062e8a0541fe595b288af96ca29332f68a4ded5ae1c8961e8eb996936cdda154581245751879f6f2201ea52c28cb2c455abcc7cbb98be0324220330857a65dee023ecc78a290fd01073110128fe4071023e51d8574848d0919dbff732a9a56d0632fc7da4a4924debd0c87d6d039c5b56878d1671bd7709b89e14b0490f6aa5361db5915aa1b2226e22d0adf6ff81509d04233a5e310ceec885ee042caa4bdbb8ffa7ae6f7fcdcf1b038c05ba5208329b68ab7bab9e183efa6cc3ae5ba291042dc765fb279dac55d5b2fecd0729f525f085759518b6c194ac05b369fb5f8a70f2375fd031f4cc9c2c9c7e0038c6f7af4fedad52a70b3218b9d23bfa028578d4912c66a5e9cc8ff7b72892c08ac4259673a5510779a69cee439038a053f3b253216cb8c43626d2f1d9572390a92fc20bbac51b2d782c7e8e56b4a64ada8b88313d263014ba1e3cfa75e500895b20ebe83de520ce890be35d8add45b1d586b58e93331731742529a7f0f8eb77b78e41338a04d89b6e3d09d1987e6fcde3db7f6838d8fc3858fd48a93ac993460db804b6495d9b3e9b8fd13a84cb44cb92addc08be82adf84ebc101fdd2aca326813801b2aedd3b7f50f46ea15cf0f635326701fb69eb09adb0b8eae93563573627c9400ee90b2ea51b1bb1787d43244786d0bf30356148e36a913d2eb8d70432680e4b33392766e90116ab2b483cf303f77347600aaf7d0300c0a5d8b3b5924e30af3fa0f639067650525e8e63c66a18af26a9833dccfc1c9eef467bbafe6e9a1bcbb135b8af9568ed2608e5944c2afa18be3adccb26c86bf94fc4a392d9e1007a754f6fc9e8ebaa823e177c918442d1156178fddd8e4d7eb0d528ae19c00bee3698cff0c31f0a029356ca71ad54c7cd28b47f15c9bfdb517d9407bec73a74fa55fd3d5c53282cb8988b2ade141bce71e4d90d39355ae8b3a0e13460c7009a2a359c4ef1ed928049969743d8649493194ef252560ac60690963f6a8249ccd5a4c9d775f15dfa2142dfa0d756ccdeb9c38ed175a57f3037b34e8e1c1dff7fc6b6e2f8f05e4e4bce67f2b5d92ce6f4ed6bd01527ceda9bde6ff12983b7c6283c3b73eafc8de554b682173c2b4e0bab95e104527d1189da94738a21e96c2574428fa3f55cebef1034ce082599a17ff862de7c716d610c7e39d77a3deac696fc0ce31b7437efec717dac7de5b7141120a3dc2b2e8fd21c15d21b3e970c41a7978a89c31fee0cc553f652f2f95e6256036f4813865d3f28854e2fb5ddf7556e9ba7723d7912ad7f64cad9538eebea4b46dcf7035b2372cfe0b0c98623415a02b2e4891010db3a82bebe87b33312274e39b91bb8a8732f999b2c0806cce756bdca759f9ca575bb59ada57af6fac77207f8563d283f30ef101ff0078790cfa054d9def5d04af72966f90f2eda40c9ee9b56293a022de540c024f83fdab98f9a30c31c698c5a00cb7f488523876b7fecd40f81732110b698c8b2f50859e48dd789b51cd0a5d6eae920b9c4bf89c9cccd11d9f76df87881b7275d0a02081e2bda33968556f298fe2f11c2e90aea2d401a9d69a16b5c072b20e44d3bb5b044c9171f89ae4958f2b771eafd0c5899e9a37e8686a6dc2b5b8daaa14bfa1b8b797687191277645734940d9712d86a8c55684ae66bd7e53351163aed9184d38e2f763a7f8c3de46737220fed1e21aa609c8c0ae66ed45271f66b768ac891a3e6dd04453819b2d8029b988f58c861f285ba25547077d449bc375004a2dffd2a13fcf19f16ae382a950bd7e26ce04eb6c2f551af82ec2b9c52bded4b8f948d1d0e420ae66afa60a322263ca410723a5ea47d7629fa05e30c624dc0c794d7e1ee6e597d32dc28860338041744f4bfce1b06cc1e47a797f88fbbf4593c8fd9acf298088796c20b28fb6af94b5461b113e88672fa90d4bb0f6688c135785da9bb54d4ed3524cba91c25286b2dc8df7e55ee1833a8a73605151daf1e9139ffafa7eb7ea8c3a7f6a002e8f9a5e0461b0b8bebd39a001ee0d29743dcefe28b38d2d0d8da77b060f94d2bf658c6941022061d3ec123db62b0204e3c3d5bedc79263d19cef4f10f4a9a74f7f1da4c608dbcf57e80eac08fa90470c88fb2130606402bcdbf70eaf0d79e6248d4e6d0b6a7418ea452db8381bd21f1b36143f3017b15a260a8079bd17bb1c0a710113e75c6674b9f034b901344c8542bfc763d458f29252752d2f91ebdb03e942973a43aef4b5b6e82a14def53739159c49720c973dcd1c1b3d5d981dd4834c68412728878666c1642e65486df401c0932cba9b9aa05a2e165b5852cc38756ff2dde48ea09ee3eaec3b5d29c1f75072d0a30ad159888265398f5792f97bf559c871e2151282993d8dbdd2232e7953417e833096b7f1389b11f8585c0ba24dc0c4f4cc5695764c3b751ea55594175f3b4428288fec9d0065f7593dabcdb8dbe87c78e1d9b9b0cce6964309905ce9eace87e0cd10c5c83c446a08bc9898e8e634532a947c12c724e0bc20ee43264d3896de79bdba911cfa4b6e1bdac0d5e3c18fc90383e9981b964a30b0126f9c09e99eb1c932861caf169fd32d3f6325e155f2ac69e7ca16ef8bc47b45bab98948d6418d4ffe49237dd4394e0c53b24b1814cc4704c250d9d17e3513edb15af3f92da6ea8484461c9fd184535e750cac16085113edbd848629120b7600200d66d0b0c5a611b41d96cee69147193d528cd2b54c84753afef9385b774cc6a1982cb3f112b8c60a527d04d86fe74ab8369ef15f2695de6ca3f96747c5977f1793feec0da3add56577837420e41c400040853d1a4023b74e746c32beac1b6a25639a730c9b50fdb44c2009d35ccd16ebd24e6d4ccd8455838831b6521b764748921ca49c810b7e4d98de2f5466f4134048abe8b258f0b07b27be009778dd0be657a181a9287d213b7d7e3f84d8bf7e4569ebadef347bda0bfac9b03124b0958261e58e07355009e86c577abef67385499031d66d813403d38279b25d5021d4eac1f230438d8a5d4fc0d067962b623ddec7348f4601e9e9f0b96575312c528258afa2c705e0299eacfea3aa2f44da8ec4c2a347b0a1e96791a2c256cef60ca21002af44307ff8e145cce4d0c272d74018b9834536d6a057db82e8b7ca3ff986291283ea9b1a2f85b9149f6734a2f43a40a874e66f14c37a07b7262b754ae1ec36a5a7ae8a0ffa2269e8a55ee074182360a70ac0bb7ebde44e91dcdb60c56e384e0da07b688555e83ede5113f40dd326fa2731b8d4f80d44c0b5781e2757e4b1bbb7c6ab35968df42141a6c8aa9561862f8a5747b80ccb530510160c2f5423a9dd636c57c6bbeca426c07dbe313296be10b107a50a0207e472123a8d6fd209dadc3bd38c0e1a0c1bd08b2637f633300993c766a056aba5a78f0ce9d9b6c1124435bf179f5ac33a890e49cb406a136c502addc0bd30d95f7d8e219507ade86d1572a3b39ee03f7cc80f4ddfc4fd11bd2cd656e889925527bc86650ff5af35be9cc1754cd601cee9d4ac937914499c8c98011440673f455a32cdb3f260301242bae320b9d31a056959832098258fdd4d1c3c52114920afa7f343f9eadb26941979b0eb4246444fd32d5c0e7154693616f307403be9419dc65816beeee74391c2a2cfe36647393ce28bb7a7f322c4a067104b77f058decc5f948aeefd5f3dc0650eb60025705340dc017161c893665f27dc62a14853ba8bdc244621b7f78872b84e29148eb2d31127d307ed90a9fd33eab3d88b9ae2a0cb1fbdfe2ee7a34e8b01b3a7d8e837d2a8d78219b7a41932fa3f4ca536ee6eb0815ed537fe8729445b5fc24008664afb4e6f2342fbbdc9fa5253d3414b0d68f36cbbcd3bb098a19a01832b23957081842a2c8118d64fbd0793ab9bca7b12d3535f441be1d966b08c0cb64333fed67ac579d488feb21319fe6d07b1d789eb25b730b9ccdaca3b3bc05569f26dd94404e5667a52762d78659baab6a88fd7158c5308f6eadce5e490b845ba701000729e05c224921d303f1def8642de50d5a1e713dbb7e74d80eec6ca25addaef8afe122e61cbb68b0230692eec938ab1291482d27184ae5431a5a052f3be9983668a2515307f1b275765bf5804aaccd244daba416f74bb7698790664b15b7b5f34f6330521406c0f9fa28bbfece87ab0638a32427da054cdaff842ee008fb1da31b89c9f06c581c0a785f53ee532c24b228d8f8f2bea5bfe8f002c99b22b9d3bfe648f5396b60d4601d0ee3593fdcde7af84b5605c44179789ed88f770d04f9bf6989caec995bcb01ab3a5f157299caa680ee2d775b7fa4c9e390ed4b6e0b3ac1cc755f3db0409d38b01eeb0e4fd42a96b4634c7a5e24e7e3f31505b5c3fc4719f9cd31076cca32e2c4a41407ab8eb94e5cc8acea6ebcf15e0b325892aaf2dd97a61fb9152b7b3eddc946875abb98300165ce2c372aea110e2d833d72e84b75af8538f5f5eced1f475b98efa62d8fc3ce2743b20d4901f45cb80f293c674d472a72edd79c32789ca5b70748df9d9686a0d732a2eae874320c8c42d9d2e8707e949a7a87d4bf8fbabedaa34ba8df6a5afce0ca6dc748f15c0aed972e39b74fbeedfd4ae558b49bcddd24a3fe25d05450c219933193d03e57eae0a30890c2957f1f222e6b80dfaf741ace5806b5a9fbf25c2994410578100a85dd1406062f8fa924e5252ec95c7b535f39d325a79b152483716798ee2ad1d8eed48221de0fb3e2b90a80551a27785b4cbe1ae440ff7e07c674367c5793043cccad7ce6f94ec592cdbf2145ffd6e3432b8e147d9924b057f447f974515866bc22650a9c1207c380cc4be22a5a453ebf599e37ca2e3207cd8db02b801882e9724d987bddc3036fc1dc5cc663cfae7c0a005c5d152946345174f5c8097d1e197fdbda8ef469fe81f3780ee3218bb47f5c55589d1ba16e02bf146ef6c750611d5a541634594831f583aa0d79da11bdb9f5bafedf200b0d1b5f8ec95fb02a3f0486c4bcad4f6aa1e29f1b170a05a019a839f4de0053170634e42f5ce552edee9dd6d905c8d76c3e36a0467eceda5327a6c168ccbad8888fde7327b9f66c2352f704a5beb875e78fe2ebc3ac1b94cac8a2ca074f8752f237f0e12ce5b8c13ce0ccdfb574e5f1e365d9f3b6ef685f862157d828d84b94b9b12ab5320cab51371504f1dba4d4c0a0e341f57eb04afe8702347c266dd3bb2301f5a0e2e0680982a4e6228d8c78de61938ad7133cdb0a1674c8fa7aecba500fad1eebcc9eb2f1a663d2f69d620629e97bd2e38eb42a25b3c8cd92298f07b620c53cc5869cd7e96cef27fbbd181d0e13d4638bc751a1795a0babd1e6f1dc5473925fadb64d0806f164f223c84dd5038ad2a12ad4649638c5fc168aec6a97f0182d58bb848f1ff92be8514bf2a743414fc99bbaafebac7f2f084128b8bd8fbda27db5ef59c6e261e7f429ab0595fcff5e445d8708e8c5c983c91882448b5204fc5a04d33c12d5a089047c00c602b5a0f5f56400a3f41d584c24e0d171a4c87faaaa5d1df85d6ed6778e88ae88092a50bdaac13f3282905773cfdfaa02506ed8c77b11da924cabc0d74ad1237f9ebd32be02c8fc2cedd0977e529d702be8bffaf02b11ccfb4974e97dc59e857db3a4f25b381572f5f6ec80ba3f12baf37c8b58e7edcf5bdfd6bfb3cfbd647c0aec22e46c4e84b98a3f4ce174d0da914779cee2928e4e7ce717259fcb7541efae83056d639e9fc5d1ae49b1369a0b2ef4d7a57909b6a3730e0790df6a8e88844f8533d73a9c89fa7c965759b30fbd9455cd05e13fe523e2aa3542493059433db573efa41043bc565b624f509afc185b67d379783976a3fbe4d8e212fbc9bf5b9ddb31b64d50fa6a50bf8c77c605bcb8eda8a2bfe90c6d55b953ad3394c2e2081a619400c69987da2c63fa44552fbfa66bd3bc3206eb6a9e1411a951de0046b239d09050a70d9b0ae702cc5e01ce0e43b7a124ce50254bcec7643dd1099194f046beba496fe0ff6a4d8df1f037a40f45dded97975269a62124953281427c807b12a5edb6b4fd088453315903164f6122931b75280ba8c4acd67062e5ac9161747609ea31733628d92b8b9e9f2193741c6d7e1293e5b7b8da0c9de00617f80b7cbdbdcf0087fafbbc0d5212f365357727eced603212f45545f74c5d0d2dee9f0000000000000000000060f151d262c3542", + "result": "valid", + "flags": [ + "ValidSignature", + "BoundaryCondition" + ] + }, + { + "tcId": 53, + "comment": "r0_max above the limit", + "msg": "3400000000000000000000000000000000000000000000000000000000000000", + "sig": "10c9624f738c627b6097580e20b1369e0258b40df36675b7ac71ba5d4f17179d90de36132f5caa104fbf7012f876d90f78cb54f916ea2ddfb34573fd72f03d4ca4e7378d8f2a63c566cad7a98219129e2e93849b146c3684930d10009508e703a5592c8c8d139b1b87feb18aa04b3536f67893f256d2d186c3e68bde0d9bf6e96cc08f5ae0a215c9ab39be37283a876678c987b6a5b59187bb5b8d61a86760a277ebf73c612ee9b53bcab878cc53ed08e60b47905cb076ac78fa07993c7897659c822f7df60120111b6df9bc5490827e76a03ab834bb33458baab1e789d0321b0c2c68a1be14a8a2516870487daf6da76b230c3c25544cd3160a06a152d59b3b1cd5883a7abe6abf340676024cdc8baf2722caa48fd74867b610849faab35266d0af2005a7cdd49a5012cd7106a9944e0217111e536734bc21a4f859107d58adfbf70dedcd424ffc3b5c065ef3f5cd32ba73ff2c1914e14e54de9c5322c3daac2b24d53eb91c9ffe97fbab780055a7961ad7f71416014af7f41d21b681f9a32fd022dcdc06ff8e68a8245d7be094a6bb285e2c17a0bfff49163468ce5894424845ab5fec6007a04f06eca8530e06a5691e00f7e9cb35abd74c7beb696ff5032fdb43106ea15c40dd6f52096187de5539f252fe5e1ceea49ccadac545733e0e429b70bc4daeae2e64e29e863079c54bfa56e1ac030e4cfcec1beb4178d2711f50421f088f99e993baa65021b849ca95a19792aee1d9435218941d72010b22992dd42d5c2668ecf0199bc8f4058717289e7329516fc1343d53a2298d8fde8603e1a93e7867aa10490bb37131701a3ace8f563dc074e33913b3381586eab674c462188c9dd62ef70ddbbe7671912d3111a87d799b4ef83de5341666dc9e3029026364641bf53d1ce300d81c41b05c951bf6d84ef66a2ecbbd07a7eb771166228ff8644e11f3505e5171c3058ccae7da5d2662978d18acb2f335c60ab9c9f3e833b49a55af08452b77669cb8e512f1bcca140b0d8cbeb11becd2c66ad5c2f41c498e487af484a5cba01c47f1406fbff87663a6d323b5d3766671090913e88b41e0f4b214c72d46b7fbfa630bd3bc158d2beeb0d4a5298e6dd7752d8e618b9cbcf2c0f20cf2c160f46fcbfae91411d194ce706f31e0f4bd61292b07e53de007b9e02b57e99d30a95d3cbccfbda9b4f99888783bee785a9ba3f1b8c285017e19959bc4c6d83fd26f2afe9c432038af01c49215076d04b2677a084675e344e0b2877c70f7a8526ddcd09bd98c1dcabb0fc361cbb523b4e47d8a6189b7ebe701ad6b6522ecb0795b95e4906fa9ac112d8cf932a1120c3e73495fefbcc925acdfc7f6c98170fd64a0fdfae6cee4fdd44977079f8f7b1c623cbcc369842854a7acd626b730e0ff965bf4315f0f261cbeaecdc143773cfcc8ff0e3b9cdfff387398ac048ad620cb50de192b49e2db63b0c576f20e29c8c116ab79ed16c6632faa49f765ab5c6afbc37d6e8d7c7f7d341df99c9116bb4ece2d7857a097a5f4d77d28fe03a01068a45bce2b7062563880c635b28cc8e4be48ef1533a0f6bb1c61a16db512e288e5eda63004b1a874f853ab4b457753d418b272675ee3c441ce2e67a3e80ec450d6a56bb25b35d728e4b04b50334ac0c017ff894ac10d0859f0ba28145e67f713b0a6dd8661123040c863663ade1e735728d725df2c1e503f7719733a5e2fe04fce81278e7d99ea7361cc55684787e513cf544c015706df66e64dc64ac04c644b50b69bf36da55acb06a3615cd9c6c64ac7ff1def6724791abbf4b30fa1658fc84ae807dc72b297241a8070727c1464a310c6853336990212927e9471d4969e48b5fed86d3db1758181c2de5b2dce01570fd3f78cb89d272593e61132471d43c05a376bc45bd8de61c6592d02b81b84b45de7435a9723f312e99f7e15ac114953466c1f819f9af5b6f2d60c6e9fdb347d47104b27129591b9cdf4cba34f26567efe4e47e696a130a744f5ed10f564f770890dc6306eab31c5a5cc28f8e3ed7fe7957d89adf050388c9fef6168226d13869b830120d4e2a585f9dd2b24153b04359c448600191f292cba4164fc922463f18a99f456efd590d163eedfc1a2dd57d9302bc3845828d66331c1e70ce9ab7c3bf9686205906ad4403802ad7745a70525c9662fc66a6462c005374d4cbe0b08162662e0274b9ee6a1403923a6012056f64d714e736826c0160b9f5f0b7a06c772cd5356fa9d8bf597b7cfe7681b7d5816c8f889a4e663ee8c00e431f019945eb5e492efb3cfc8a368d2e7f9c2e9ea88eaafa6e323e9c70a5478492504a77a14b34eb4de6b0c65190d0ef201ac0b83483a51bf23c3e10338ed7ad3f7731b85d7d32eddb21a8ab08b7f077640478807af39060cd406ccc4214344af68ddb713f6df476a67883cf5cff014db1d76c5642f73173072a459be5d3131947f5876892d150a1800aad96d524dc78e679617081bdd4fe21bc4637c8fd9ed40058ce423b202e54f26fbb3d64e54f8beba5d4b07ce576ce96dc2b0fdf4f7d65f953a77a645578dd5adfdf7fc7461934ad2b9c25c367c99499f2922fbf72f5d8b274c00ae34d9449c3c7741e7e056252252cfc530d969eef559e99f3be31b956613022654d55e2de16f6b0eae5f96fb174e54c710b3d88f4178673095f5519e750f2326e098a39c23865d97bfb38ec782f8820e4b1883320c47d2fdefeaa5f6070d5882218dded13222bd97341e2327100f8b215442bb141a445b26af6491311d993a0d4585dead2bcdb8628b8ce449852222d273bd3619ab4006fc5001afe3ee013ae5d1d73597d24221efcf24dda9d321a8c170c9e1dfaafb2718fa05814ccd6ed5765a0dbb2cdf6e6ce968e570366a3f680d9549cafbefcaa2f8a229093ffeb618ba95f5962412a4d6357f215d8787461a183adb94f31a36dfbf70bdd2cf3dd98b939cb48b3e7763fe5e7b69e5aaa6acce380a0daa77f709c6bd54d7841c9c0ea286134e36df08892b555f93ec134e2d43356be6f83c33b77285c2c0d05a54cea912c03b2101816fbed80369a2a29696e5d93807ab76517fc7ba5590b2074d7554e985031f0c7aa29931fbcb2b871d89f7c9a73e9b0a1386acad3cfe6e0d4018cbf5c5c16e59483558f7a249c228432dff0258dd2ee8e4d57c6b3d52050b6e8732ac0e07d6ee214cee7c8e9062c769f808029729c136920dbe8fa187b96c3c1a62dee9a6b397a915f067a1d856d4cf451b7f7285cdff2fbb1614c8c2848e9d9f33a6aea35728839915e040fec49603b9a7f2eb07cc2f99017080ea4ad11f212ff17707aa29034e7dc34abce64217453473a733f8fe11444b88796a17551efec7d6cc3898c781dec9f121ae27c52aed7928174d8a71f3e93d8ed1bd480c1bef3ba65b49e2d49c9c5c1073944ea5b54cec24f41d868bd53aaadbee0dd2577d0d5af14cfd653cd1618062e099350626498fcd731ae88f8f972c1cf5bc06aa6431181766019d50838b7ced29e95abf61062f59b2de6582090aa835a5fdb7a1ccb4b5d8b5f9974cb7d0132911368b74368e8fbc580a29077634049a8cb701af31f1d81c4f3009f0953899c47b9bf0707a93b704c40b06d404c7443f985ed0d9ee9608360a2e84d303d4f3921b5d27a74487bde39cd7532abf27bbe31118644a4f87b1bebf31cdc59aab4f97664ccd3966d401ce96f5a354cb3a2424713d65ad87048098d63be85582f7b92bfbf3e3e26909271c3c6bee323ae369df9a4225c1f0a2e5826357eaf828f6b2525e29a576d05eb1aeed91a324f9e5c5e81ba4c46149757de5df5efbad60c69982e649422804de73837acedf5ab90c8307cd2a70e10e3de547b39f7853c2f7c8b47597bce5d68cf2651e0e1017a433cc3d44364d7711f36ce34661bc522e4e3150679fb3882b57e6ce4c905bc4665f7ef4ed94627b04379ae421b575a166763be2881780d09bec415136a9c7e4394ce8106e1e1dae08388d221756ee9a271bd50204ff4123dca62829c2a4372929e0da5bc4560a8c578602ac9c9b47b7be64b1de43c013aa7a47f32ee552e39fe7ba6fbc4aeee0ad2ed467cc46ad729fe792305adca737fa39dfe4f7b5398f0f13b7d9ddc664bc616230c100b5488a6b30cf10bb53098704529d007ff244baf7223d1ccfa8f78ec45ae61f10eb8c9b34663fca81e7d4d72ca39d0ff5223ac96e7cbe543b7a67bb01d4f81b385d31f9c01fe2b6edf2d2467d890dbf84756c386c6a35950c7760b04efd566224dddfa951909d67c994309ecfd4bf3a6be9852f33bdcc458f5730e1d45e6718cba682d8027fc8a31aa826af34080868117f45dc10d88f7e8283224bafefd10a0aced08aaf5609485ff2f6a66fcf2a9a11b06f0b6866830ba318b68668da54500e1a5645fd5e50d9fc802c9c0324908413a9f7f3e64d1258eafdcf0a9cdefb29b6db8a31dcd9d76685a36bd22b9017e313fd4e5e70709e96aee3b265c4636ae053ef9d40efa4fae4aaa5c394bd55b4b3a106632f48f6758c212d7bfcfff0157e542317f11b48169c8e4242a901997da98e95d69186686bcf82c54d025789aaa4cd864494de8c2fa7c64a200ae0ddb1317cc0fdc3118394703ec096161247d96f2c41181a2df4dca237ab7b4803c2e488d75984c50fc3f4f1df2d1e30b30cdef836c5b28255240c3624bf8d545e78a9eb4620a6572390f6d640516e67cc8f3d5eca0955b54cb82bd4f0858dbbde97f92c3419831c8fa7cb347ebe67c1b7889c1e8783d149f51bcad23a44b4a1ea8fd52dde98a8b35ed04f9d6b4d7e98e883d7835f9966840c5392e6358862aaf6d3073392c3d4094b48cd1911f1a11100dd8c32b44e0ffeb0908e9d0c549765b115615b255187b0f48c5c04241780ce37c4427788062c2dec3c577528bf5f2fda87227f0d3c5f890978a2ac88eb9f4e2ef59acb3143f57bd206b430da5391593683fe358ab7c375171097ba07c9918fb5a1fb9c0c283afec31fa587af7f0ec208b38cf7d992c6fbdafc962ad40850fc01452a4b4ae7a13efc2cc8bbce7eef83e6fb7d5b3be8de0bc3bfd0cf7b4625847672eff50a3c87714f60e1f70e4eaf513afaf1310428e7bf8195ad97b582ccceb2417e07e0164d1092f9cd3f2b7f4113be5dabd0efe6c8883ee0655be08d924bcdb9e33587b068b0f29ee171826ad7620cf40b7371e3d1db6725548358f7aabdf091d8c39235e124dd04e7a4019fba786b70217f9eadf5ed24bf64f3371097734b9ab1dba2b4bea5460b038af21cec127f47a585f941bde513b46faa9830397e34117a0df56bc6ea0b2c749891ec365394817d2ec1900e9753864a33701d829fa4dd3aba249e6d9568162974dad7ed3b568bbd181cc41bc99a47cf48cab921a4485383d8953e34e363b45efc71821e7a1b2ca9317e811596dc6dacb839e99970b3e2502eb1fbaabcd6d70507190728cf993149b804ae36c5a4642134bfdb0211a807a0af940b8ddb28d6c35afe6466d9fe2643d11ed8249808174fc1ba1ba013790b986a385bd061d388945980a76f45deab05d161d4c9a036654c9de545f462a44582ee1f08864f736606bce2341ec3aabe6ad6faf290c8cfe67e991a173c93894731c4ff229e68a5eeed8c33d2de90b76cd0a2f97a29b563127be472ac68facb4a9163b226c1549389a95a34af9301d60e9448bb4c31eabcea52a6f06f2c91c893029c6a5d2fcbf2e4d72f5256d425934c68f926749c76bb3c1ddb28c4b43845d05780f74f0e6636068b25138324ac21a57c2444056c581616bab052a4b84439f118796e2eb07b6548c474eff1cbce9f4ed8d9c10fe5c50b281ad8defcefec617ca6b2437bf9e5f620afa9516cfc07d8f0723a527efc85a41435167b26148258f783ceb2ece785fe3b2df831ae84606e25f67521810c675cfe9fe30a4f50a73d4fcc67f7aa97bf92ab38ae2d5e0a393602ecd12f893a6e24b259a99faf0c7c281879146b22b3a174f9d62861aa875143d980d4cedf220c403db9162707e850825333602c085e3da009e12aa3bf86b89aa8e9073357ff3cdea5de52baca469af0959057c6ca2f7603b21b0eeb0fe6f1be7d9a847934650d74deba8aa95477fddcb8d46310d23fd76a4dea453c9736e97657f1101daf36a905831e0b99ed1d6eb5c214a80c91a0d204f416a2eddd644176a10712fe056d4ee418285ed6da44c669a9c83c2eb5f2242256711ab6f640014908efe14199a5c3387a329a72c4567d87298dbb31db7e024b0ac649f9692d86bade8f2be4893325c6aacc20b1731dcb7b585b8c943c847d2a1b81fd3def7b35216c537ec99b9c5dc11fafa85bfed190499fed063f745722238fc94d92fecd99d24e86d1033dc9a451a29d071b4d7dcd982cb469a2710f9c6195e8dcb65657fdbf1b85d136c183cd58145b859f2e5662979cb2d6f5fa0618212b7c9ad0d345686b7b8bc3172d55737a878aa2ccdfec071b446c71aa1f275187b0f8131f3f4f54729eb0c9cfeb0000000000000000000000000000040d151b262c323d", + "result": "valid", + "flags": [ + "ValidSignature", + "BoundaryCondition" + ] + }, + { + "tcId": 54, + "comment": "h_ones below the limit", + "msg": "8100000000000000000000000000000000000000000000000000000000000000", + "sig": "7e2643db8fe3d42ff7915f1a99f6550e097c608e36eeabd590a29156c0b223834da867e86b513a14cd42f6037591a5b61ae708cfa0050a4f05668935d1a98930c4d1fad1f27cf637a7c180cdf1a686cd38a0b2acedb64dfa5dec6c31bb4071c35f332793c9711c1634d2f5b690c84fc1f06d4ea6e154c3e9259bb99d907d5f8dcf9e6e16f82934fb9fbe9e58cb11549454ce0ea23c75816c0d6144e704bccee594609369e3c5778465e20f67f1f8256a092bec4974752d26859bace25cad2bca7aea52a4da4e35d61d2dc30502df4fe61b03f9c0b69e02fa33551f6516690b1246b6d73a0bdb8e6f556859b9934302dcc12d01b5fb7a4cdd17dbe9d8f4e2f60a889746a8c5c945d772276f49e0b4c533fe56e496e528aaf209066cfb6ef541a5f46e5949a1d92f977855c6743bc1e39f5e5a45bd7106f5793a80950ab708504ecdb1e6eff6ec7073a004ca8981ae539258c82f8998ef0ddfae4f9bc635368ffcada8a94358b39adcc7dd8858ba760ba70337f4aa8fe6210faf0c050684623fb964572694323485f69338139accab6aac00adcf4523c6ccfdafee9247540dc05f6807d377583852235e92dab00d504c1187f3c4ab4bfe68335fd5a244294ec7444841a0aec51cefe96dcd47c41847bb7d3f91ea59350e8f0e2f389ab2adec347c232deb710d1f4931abf6da8b48627b06e25deaebfba191e018bf1411b4f8a9d520a39d092017cd2b2abc030ee3b0e5c329a00e5c7260ffbd05e5465372697d3ce6fbdddb12ef12dc130214828263aa8a8cce877cdcc4929515d709a36b481a8540e44737d684b8aa2b489232e60a0717bf521ff19d64e094e6759ba5af4faa7cde80418e7239c96181ea3d77d5a60fb50d9c23141a8220fa73ed2db97b4f6e0b7fc2ae8d0c926930c5f7739ca1e0c5c79ae16bedb36287f298a92545cad30ea9e808f9d16d4232d2000a3fc0b9012342df3482d7db267c25a8cc5b3a32b5c1955811ac0ab2aad4ee82b713e1992a864f8b9c8ada846dc59ebad7636ca78ee0236931a1324090dca30d348554279ca2ce4d0489a75bfc70bcff87e059628430d9821d90304c7e2db63b34aa262cc67723d3cd004e1cb52c54a77e4a2b127556af3bd7c27b90c71b44e1fc3def1c5f6c874af3b97f9ae36a84585c462d6e0b241f6abeb849499ab5a34e765b00b60bcb14a9db9bcb763cd151166c9e2e1d25254398987dcaeee2a77fae944e1e9b6e22a1eaca5d2dfbdc78e0213309f524044b4f59da05e9066ec0d23be68db47d2f40e7b295e94fcc80de94a60db3a8d9d472e78e5ca29c720fb92b519b098ee0e4b753dc608b71f16eac9bacc8551508a0420b54c80e9a6d9b30b4561aaba79f66efc4aa839f8ba16c72b54bc5ac9b9310ab521600a7a868c7807fee6c51f98d01fae274b38e1b15ceb21e8602939d5d7e25bb6464a1e1232314b28a8cb1a2911ad59e3018feda56dc796f2855b33ec11c012859def1475fef94f2495101c72d17b984d145fda7722a0a39ca92761fc17d0dcee2851c379235a67a39287586e11a368d2d4a7186543490dd30304aed49dac63d7e3a1ffd08a1aa774ec94f518f5b6ba00d84dc5c2e021f7c294018af225cf09015f1f409ee9405fb5ee5a359265e6b7210435d6526a002ff0f7076296ccc0a8fee28f865c7ee7dc16dd0517dca77c365db733f7fce76689731154e2cc3c4d807b06bf621f9056cbbbded580812db967acd3cbc4fc4a4714909a2b8d1b28ff2eee199662f1ec327d091374c1c09e45b39a9bd43891ceb9abe1dc31dd5612df16278b732e2bfdbdc170727f8b503e52b766ea8b614a61b5e6b5ab4c8f46dbaf7cf1ddc0999f7690156235fd2f87e3290ed57f79f03df73e8059aa33cee0d6fba87530beca6be88d67ecd94b532c4f91fd0a53dbb02565193683893c65c489180ff84e879b2c1bbf35297241acf7174714ed0904b4bdd44f5ef25af0bd5ca74872715f879af421e4c3412559702b48c32859d7e60423ca6c6800f63c31fd5b464295f63274f9a8e82843a2cf09d786dc50bf1a14b30b4e1c5bd786d22974bdb1a0adad3b4f071290679d7155f9bf86a6c7dd4d838a4eaf1586622cc73f5b997061cf4732e9e95f6c33cb966347562c81d162223c3e273e939a11e87753b97872abd74cdc3874cbccf847b9f9c7ff9c1ae3116a230bb5b2a4913532c90798b1191153cc1967ba23e2f2f50c918d6b9591874afa50db0a356e810633ef30d791b8c2ddd1e273602241eb2ffd0aa235f9eb1c94be30e2df32e48fb2b8bfe02c3d2fbce248ca46b842de71509d60d4dc207b8fa73801924322f8d1b1b128a00d6a41b95e6237bdf7b7f5ba64e983813227c764f898b9cb7a35c3805eb6c663f461dd2286efd7b4988f9f21a864893bdfb4e990d3c0d4343038a4dd879a498fac1f11777591488b0b0ea33a1f1708ad710fa8d3acb8f9c0c04b13b2c63559e84e52af4f598fb80a2985d6c62bf6ef883f6622f54950203535bd997ca3214319423906cff73ce6793bc73d22f2ee2ce08e0373ed55a8706900599214795dab0bcd2615834df5dd650bb7308f0bc0d7b2dddc2516cc35e681592112b95410f8657ad6748800f7210af03128edf274aee83baa86609a62e8aed4d2e596c85a9d26fe4e4554bc65a8b4a79da5344f36bf3028a43640365ae45f819dd136398724b42ce29a93824f92ebb5931c8ddd57b6f9b6fdc3f0f653398228792277ff57746103dfb75da89a48b2686184e5c907c50ef5d3f80d12889cc4ce96d783de3bb4354dc8319e62e7caa0aac25c13f3e43dab4e7b6b0073bd05a05d7a2179a262d22bf2eb0ff00cc0a50ddb85d711fcee3d739344a9322c5fe10558ba120b06667ef7772f034e24aa7f50a946c65072c4d1570d88a3f103946e9d45c44146bd5ed1301ce5f8a858b90e9acfc1346ce78f6a0029521f44403a63ce50e37cd0533e24274f2621b26c8e1e4608e7f4c42369fe4bdc2e30611c9129729020c8a0647c8fb6977fcb5a08dbc1fa203e49e85fcc6ff8ac01140bc15b6d451cb1ed72651f5a6378a0f4b122c561b37cdee294819e9cab719e2628dd84105f7ab3829b18eeb97217fcde463be9ad4d9733319e80f666977ef8efa6e3d5ca4758a57c0accc8eca2ef70e66e7d568be8945b10f6e8c40684813fe34c4fc45a0b701034ac997a6ceb9dcc68c6984463d26c029e584741d4510d0ab73814238821744dbfb1caa00096a1d82cb9779c019c821a7c84c03c7245d3222622057c15c356cd91a3ec8aecbd42b4a49ba27eef91edbf148e62fb8550664f04f8262f7696bc18435b9ca1918684a9b7257c7185930fd71b4963c298b36874cc7c740201e4de9eccc17263fcd1c4fa9e47f1abcb3a49cb1ad2d6e12e036111a71a2adcb26db4a9bfd627a07d2fee541ac1cf6fd447557c9acbdb74ab08a1122f1f80d725256b2c4f5d92fe49888acd332f19908ecfdc6fc8b0a6c8ebb8082815d5ba7d124d0800f5b32f43ff17402e2de95b5993306046f896ca085a2e421b9f0e376a9fb1548f9b5b4023329eb2466f116da7e07fced772909f27bb37ff9bb7a27ed084627dac5ecfd6f5d0b7a2c207153a3fcc96e8463261651e82c8a7f45889e2ccd42be425ccb0ab771c466b6e6234d01064492aac0e35d6096cee82eaa6c23556a365114b3d6a915c101fd920f48947bea1f15f888474e876ca801e2a8701b685d0a79796b0f3aef3d60772b7c911fb4267fcd1e5c9a23a6cbd1ffd6463f8dac9f386d1f76276731834901dbee23c07fb81cb364e62af1a94d2cc6cd18b964a1d41a99f57675308fb23364180772537492338c04ee4e27cc72df2cbd6e883697e8384cb2742da50e70a0656028a8eafd27f919a58543a4a5432043c292fd64309d079623c3f2c32314f1772821b75b663d9ea10917d8616b4fcc0f7599ab9b49d2ccc2f444972324f9c1b9d67ee52d5aa565e17210fcdad84c19c617e999338dadcfdd9d44d84e6fa987de793acc25a4ca7cdf31ad33723710ec0264cb604aca57a39c468ee67e81315fccd4acee2c9075cf42cc65dc8964b5721a46797164d2c83dd3be93d0d73145647e2c9a0445b8e27f229225eb34dc54e8e6da60d8a3ce75fb7e3ff5383cee5f58bdcab1ca20f74fef3f0c64df20c7d2d0a8bbac8944e478cb29d46027c8542223352b93ee687b7046ac450b8205e6402f8686530d6442863ffa1392f3f7e10092d29d676f25b6e98fa0296f1196f5c37775ab5688cd90dcc514dfd6e2d58554f4f5cf7befc56da445fc25446b5d7c0c7769139ff2ff6c48b569a307f51171cbf2cfa57f55f42c564dcdd6b2a4a8d3430fbebb9ccb6f7ee870fbb1b0d5bb26448516a12e19ed88107e482b73ee566923296d49f6a0748f098b7173c6a506cdd431a541c146ee12c6f816f70795747448b9b62fa6088f0206b62f11532b9942decf02e6163c3a2a59053051d300dd514563a334d0cade3c5ef715813bca9d662f1f886db1b7ab967cd7e0e4a831c189ff91a7e22d1a98e29fdb3a62a91d9eee60cbd792ca5b7f1a6f26f4345202e23ae071ae01ba21db2e074c7c5d45195dc5c72eadc15b4007bb29e7c7c1a278d9cc6a48c79fb6d6c8eb63cb796a9ddcdace9b40fde4fbf5718286243e0d59740b26ae98980ca534f36665e805d62c56e7ae3006492ba3111a6c849a538f7669df1bbde3bda68b42df4ee433e194da1824e539de96c51238436860fe32fa4384b3855159c29d9c832d59bb618940a765976a2143eb92ae46f30e6820f14b7457015eb4d53d753a2d1a1c8a4331cf673a4f73bbd8a742177d05daec19d082968b776168b774aa06394f3cad67dc5ddf0463b52d2d35664f7146e99872161e48c75c7c853bd74f9e72b549c1be9b1d508d36564e5eb77b6210d9a37ee96d60bf58ce6bdabaf61608bb742146d847378918b86069f3505f25696bd1d5530053b4ccc6e2d3875b7fcba7f09e7ffd54078100f96b0b93a1d10f984177f2a79f287a60fe307a502cbb24e8a2e60c7cf68e32738264b25bdd5dd8e8048e6837b12f3b9fb4aeb9335c304d69e21e2e477f9f1c4d24fa605fbdbe165436cc2ef6a6451d9bf6034a20323ba396ac62ede733fa9125860ee1fc272053799758536a7b135a99dd034a90caaba29a49222ceb0a2e7effa594b278bfce7337d9dc115f2973922641b9ee36f3e51e83cd2c40dfe99af01669f6fa726f362c9207b2e35a4f7ad3d9a5dde18a93b3eb2e9b86d98cc3fccf899824685f3eed703bd9ca5812479206da26ecaa561f2dec3de7d150d4fd4107a6f4564587b5d2da2a876d7a8069c90b7ea319df6ca502783017839d5abcb1bbe0a4599868e5485e5b8bed8b4ecf2fbd9b8c7d5cc7ab0da090ef77d86efff4d2e56dd4781017f26a03340792a77a7c20a6bde7097eec41d502cd9bf696625935816f733d14f277bfe10ebb33a958699f2a13549efd1b946086ae16cc80e118c87b7468e2a74c567b8871bc9190d645e9bbd22b3542f4effc9c2e1d4417e38287de99dbbeb62498c65788d1345172bce1091a1e61bbe937341711ddc9e1bed90facd61cea357499f19e8efbfb3352096cdfaec25c3a05cc37196401f7725d31e7d0d5be30772f4b5cdd0fbeed84c00ac2b0a7ea4db5cb8ab20e378c5f720f13e6f22a5eada1e983ac03e3a3567ddf47a2b86a89423f01110115742a539ea8a3381a0a50d6fc1459f50169f25bad7bee4e83544d6f306f28a4c1d9da451673e5ee6633af4080419f4295e760087908d5976e4c62d7d81826afad8269445aa3d20bd073a4ff5d20db71d45c39b73473b20b4c4196b440f668200605f689274990a1b37d4a6f48ac7dc54ae95609b6fc37ed207e6a41d6d911f472f5cb12faff6809745cbea78928fe12df7d1b5d48c167f0dc92af056896c5b051da90782d484462025d3ebdadc2ce9906e0cb26664a71c6dc7cc3dec01a8d9dcdc44fa4afcb8e3560fa099f0fc7c2d3d64f59f50ad38b0d3870403b551924bb573f35e76fa863b22a2f087a9da935e14e433093d33c325e28d16153da0f201fe80a1512ee33d0bdc1b8325387ba0514f3f6f12ede4718a3d81e95f1e4563f1a9c46dda200d14ec9c57d2ac8d8360063f660ad654e74f0a8abe40df0824062923deabe80d1de5e6d00a6c2f27a0903bbba98e8c54c13412d72d09547eaff716394c52c6b2dee50b6e73b9b70fde07f7508295b52270e9c2bcf64baf174da5d233517aed91df8af011ff653f2181e9dfcf6e913bfea310883a5930cb49f299d7d8a1112d859f89ec0382e288c797b68ea2bd18560ade8188522c5f829b30b2f069f086af11bb32f50daab4975bad0feadf9cb53c034f5e20952f06d7e2082ac698e7e0e14f7512e4a90833722ee530aef9ba41b20999ca9c1c3d911393d4f50778e92abacbbbee61f203a52585e7690ab0254697390a1aabec2e3f2f63c4578849115496d79afbbfa00060a0d26427795969ca6afca2b333b3c3f5ab9f808151e2a2f36434b", + "result": "valid", + "flags": [ + "ValidSignature", + "BoundaryCondition" + ] + }, + { + "tcId": 55, + "comment": "h_ones above the limit", + "msg": "7701000000000000000000000000000000000000000000000000000000000000", + "sig": "947f5e4f2ea32b8ace2e80df3c54448dacb064fb312416d97ea24cc56ffc6bad76255c641bdd8e69e750af120f11806741324be720b6e5a287c47819c9fa3838c80ce8ca3c6a2150ca1a72e482c54a70a083e8df66f44856623f2f92312e183912dd370c18390ba12352935a3e0ba02886a4f96136e2a868be4d6db602eefc9dd6e14d62eeab29f21b1d50756ccabc31f53d4b2dd834ab08503c4a094998cb072a7840f9ba135cf67522b39701c07416100f224b5f2df7be74010e316ca9f0b2bf62d749a8e47e6741f918dc6031e3a7713dd8c6b524721a7b15e2a51eae28b3ee0612939654c60c96fa93696903eb784eb1bb9a6760c46ba1b1feca94bfc8f64fbbbf458cbc119bdd6865fdf9200cdfb3630cd15ec2d45e11c7bfa915ea0601a3256027cd0c296fb6018a33734d52281495209e66db4b18438a3cd5b55977d327a891f2bcd85fed1080df7b19d5fa99fc9f13da5fec4542578c9b256410b0370089f36954471fe295a495e9e3833082bfc5f66bdca54705afee1fc31436703364aa3ab8b8fb4f9a470373ecfc9dd6d6a4d301ec0e50645d13fcd1a434fdeca3a23773fec9fb5d793b0439b10cf1ebb29b22caa4715c000d0ad096b861f185db53e4bd2d5895ab14ef73bd36aff2e4d6a5a954e9bade8ac86bcad42372425c3af9a678c9cc63146c3e444a903055d5fea57862e89f09e60a11d23cff2c5ff6f54eee003c92fa3846e06eed43937fc7e0b88c5aaf3236c52896bcedd8f80f543c94e7aa5058187dde017141222531a68d40a08f690a1b4a83c8a2d2333fc81f1022670bf72bfa5a6c3aaa8876913428a15f371ec59457c77ed02da70ccab5b9535792bf49b589f4fbe6eaf05fe6d5dbdc06c2a06a3a2ca396137fac0fc98b688b93bc8d3c92dec72676435017298eb211c24b509dcd7dad78e01556c5eb516c77f37ad19c5a922fadcfc6ca8f0894cf07f1db5d2a8198bbc6a06ce907ee3502f225aad5908c97315a0fa896e596eb0a872b87dff5f96a5fb8491e080b73b978d9a0674f3fb0bb796da42698737af7dd96d31db68c856fd6b2b6d31c85ff8860247061bff1a7f0061875ff5eddfadd7e35bbbe650774417a3936a41e87a0557aacc3e3ffb01d170d88dbfa3a4e4e4e0a7070bb153437b6145a3d3e368faa3e70445001c16122e90131711c95879b78c9f09ec0481d1c3b871661cdfdcd7a8a29f384b8c79ae357667c7c1ff14cec3b200fdd319ba84697fb62ad016482840499db66e5ec3ec644132ef2592da8676a09bd12b3a7abe2c17f5bdc1e735ae32269607124898d050bf33007b6eb9368bf4aea07a91600562c23311a025742281d9db8600759842080f23d1df4fc2dc25f408a2d062a72217109ce31a90d137e78125657c529d48d6123b448125f48144131f4d7ac203045cb1510d5673fee4629aa15a27eec85f25fa7b84a10414936933d9ba8f0613f67d6b4ea85469204bf8988926210d32f59832104120702e686a3f7beacbae7e7c0ce37ba705d2fe3550d7a54ee1827cd8e8c2d5bc22d691785714f8281ed141ec0089023feee21182d09a29a4908f38396a19e54dc35077b2cfbce64348d71db76cd9042a6c399d9826cf4719f717a96684b03be4f1b5483ec398bc672115728390bbbe4099098f6395bb26b17072c65c1af749797ce362c1f42f57566c5a22973a048b78fc1be0a6df23d41a9d351b9c5dfc2403936614c72b5cc7b298dd992e2276419fe736e5c4f8e8ed6d09a70cb3a6a95aa7a8fd355cf38aa0342d61b63fce1e57093b410550317507a1ca9153e3a34fb666658a935bfb32b7db075a77a9d2e287eff6747aecb96c884281b8270296192b4851f666bfb6a4a6db5f29ef42b5213f0d956b119857166342af12dc83bb5057723168058b6802f2126a5e470207e1aabb6879adf93ce4a4e3533fddf96a23e94759d0a0f6f8cf47ca339d54a1e0efe91172903ea029a5dee53a8112d581569f99e583d91385cdf01b239226aea06270be018c1b632bc5dce85547dca9871fb6177a74783e9ed79bdbf79e53f462fa933a2c27380a214d23c84f608d3bb4aac55850dcd6fa29554f0f10e06143d1ed338a9aaf9b187b7fef97792bde143e6ff190a08c72e07c7568e02b4776fe7ef18228dc5fdfdddb81b27d9a51a1b0ebe60714114a96b5c9ef09295843088bba31ecd8d92b5333abcb9971b6c81e145f524fb924c3aaa0750c209fb067584e7145d98fe041b8d45cf356c83c9c9cd437c5ff436e6dffadd8d0c0c9cc079d95e8a745d3a2558c3c2ba5d5bd68ee6cc83f3e23c28675307b86e3d4beeb0a4d46447bd5adf4fe6cfda20281f950eeba9b8417e871bbdfff5052b1bcf6f815b829f68f7661cc1ea92ad87222d8f0db8745f20d97b45226d9e969f47217c1bf79c00169204f5188575c13f8de69601a6ecb381987ad30cc0bc20dbd9d1dc9dcce525bbf5e86d6d9a1a7c3cdb26c5c6801658fbcd5bc4983a221f3e80230a49bb76544ef564e1b5b2661371e77cef32b82ac2eb7376103d16685499ccdc375324588117e9429495513324e29f29c1769f7da0b0759d7ecdfb26eff8b5a5100329df652f016f72e7ecdf5b21c0773334ad984824b39f6bfada5a19b89eae136c2e2d7d21d64cc96e0b47fcbe4c4af91b815cdeb7b32d2aa8243081f8ad5f8ca74250667bd8e4b2f77485b860af5132341811f6d777c0b6d1e0cb078fee980c3ab1fea5082a7a144e877ec1c76155d668de5995002c6df58d726528f2780772ade636b7056ae54a58cf402d8519d50c2eb9480cbf76d5ae103d928c099b888401306f56e518479f15d7a39e3f9d819bf48aa00149fd57e1db2648a27c60fa8e172749846bb337cc60dd877ebd34cf9d36c3f5388a3c014f3268877efee116be73624d3a8161c568d733e3139759ea0aed36791220d4845839fd9ee1248dc5b1df90964f055e6e9fc8deab5b7e9ed1913c2e2aff07385b01273408da7caef597221ec8bda1c804392e054d163b647c5d85df6ae897b011c117e83bee8d93bcc22e89390fea1c7fad03d9984be9c94b98f389d32078d7be9f921dcada3285cf066739fb20e83c341dbbbfb8dd7857e5f157e5566485d4581dd228ab5726f92a354027f318a80bff5d174bd687392c1135d3c4a94b365db2e65c0ee9720c841425a43b2774a87eeb51f5fdc96926c91e8f256f89d5c011c541a4bfbe83d520828fc77b88e9bf78fff35188eeb3f3ecd8308fd3feeeffa0e3e578b729b7cc8dcd1cfc689ea599983e29ae00603371c3da65601a6228840141dce068e0dea36d79bebe2520686d03818d47d6b9dafcfc0477f2cf34844fb216e059f688be1a63ad3411ad227561da5d9eda80f65c9b4d2bf680ef7ecdc86e047178c2544d469ffcfd90f8abec52fd74bd8f1289ef6f91b57b77298cdc93416e366a471467b41b70f9f7890c90c0a9c0d97cb91d93eaa4c1445dcf20fefe35724a380b4260b2090c46fece639dea85f5bf6d793fda08cf3a44fbe429b21b50445e8422ea8e2333f888ed676d85e0d61e79a4ac68aeedfbe2d8ee47bf9cc654f902d748627fbee73916b2455a37cca6f5ef092d888c6c11d2b76f6a977bf5eb5c859f82ce0d1ecdf383747556588578be206b8bc43303bfe59b14b3aa339213759099323ee62f9146886027709fe978bf92ebea3ac18534f745dcfbd79a1b42c8197dd12757728db7555627a9ecef10e4c678ec4b313c421e4e0efad6e888ab2a9c66247285606330cc4f4d30019bb0bcff9d913eb82d012c6adfec4dc8612cf021cf69973b57497e9affe89e621ca626d423b7a7e39c99d32d6d9fad77e4b0e23d83640265bb70b9bf22639d0f7f62b7f1c7dc469dcb96dd301804d589faf5f6bc4d8494e484cb1573d572104d54a694943994cfc0acaaf4842bfb04074f36ad0f2b2ea47704c37c6d481c6bd786f27b71bc8f0277084de547c27a261e442278d335b2ef8d7a88e3570cb5cb70e5bd54f10f3cd015f96ad842508770db02e27bb322bc59139b156c91dbaf47735f83d23f91895c3df7335cac57d5ac4e95414514a1769980f3b05e99e6d9b484e1118a7e3a85688775778bf15885dc97e8a941f1d54a9f4a758a83575708eaff6aadbe7a21de5ae1c8f034ada6f495592e32fa4ed44b5c8b6d2d07fe89202e5f1433eb275c4f80dcc6c2a40c6eee82b9011d54ddcabc334cac2ac86023a0763320c38fb385777b3a67380c2ba49c8a4abcf189aefd1ec78dab419d95b6e54fe4a6b6051f9b3f0b1006da66c1af0e032285cabca9ff9bdb53e9711ee82a476372cabde4d7be4e22d4e6b136f3190786fa432f55361555a622d63d7bfc5556f10a9adcb1b0d0a18c555ba3985bc4f03834bd813168706e3900186df8f9cdc2f91ce0c44813528e604e008215a681758b2435beb32a189b65ab39680ac06e56f9867cab92454e56ea576cd55633d62eb90fbadcb47dfd1b492015c8efe0a66f877e78c2fd9718e32040fcf478939c888e0097eb4f330b0b1978e840c82abeefe430e3e8ca7516694e8026ca89023cfbf872cb3f90b97c9e39a50aeb878eb0b19bc986d8929de5726ab6fba638e8c5f4f66685960d0630516a384249cf0f90e86db20ab3ef1e70ff81667995cf364018a7cc0c7da753464c3d154a73c583bd1396eb1d478b5d3124a68b148d8023e7fb7e8bb298b60f1961476d97ec945b1b01f39edc0c75c19e480c82faa904ab900c469fed8f4573d83830d4168f3f44a6f295f90bfeb8dceb7b836ffc0486c7b4d6892b3e43efe67f9d5ca2b3eca575f71fee9ddde5355daa1be5d0a0b23ae32080e894173f1d7a6e2cfc0011cb26412fa157b0ae3d1f5da8a36e2e0d2a0f639994a2acf36f7300e9e141ef570a338f1f23508a328ef4e47012ad7bb1922e057fc5c04e19b9e0820d5b5638cb15cb7c5b9bbb447cad35dccf5931dbdc3c823746081fdd7c876c0a50edefc8f7f5dd8e0983b8ddd790ddcf61a083e0cebb8a4059d8521b5a8a27fd36b42dc5fc13bbfa2d92f39877fe7a8ad7bba2ac6a6fcbdb9c96064955261031d6584d9f635a687ba19c48747c187ddcf41d869ae1704bcfd58680de0f044eefeda15277757b84e1b0affff80376221a02fc02f532fda980a81e899ba2be0f110af64421611240c59b3056ca9a858d498b441156d1ba47a8765a4097c81d35d4feeaf7b9ac6aedce9a276d47c5b11700355d22ad26cd5b1ec6bef6bf31fe57e9b6047cfc9985823e58239d3ba62e4c48efa4a72317f862f48d09691925d9b0dd5797cb1bc1ca2775219bd3538c30bb0f6b748ac8f2e68b01af1a4d62a27cf11bdec5fd8c41b11ab0beae668eb314696bbd22b161e56d9c7feab10162cd3906eff268a071d8b630df79ef1913f0edc7bfa7cb43ed434df4c0b8449f5d4c3f2e029bf54d4e7530ee2c367a90292eb11ab4cc5a8761c54d1ba809410f7aff0d3ac110657b4dd4ed48a8d5e7ee02a07109fc6ce783a078083acb521c1ff270083260305b14f14bcc6bcf9da0436eb8165b4c29cd7b9ed275e831c71df1f49ea5fb9c42224a8175bac81ca759b0e3eb752cee9c9e7c1035c98de96ed8266c5ddc9688eab8f5c0dfe4fa7d1d553b121776e6ac82c2fdbb3fe28fef714cd9b3dcb5a7d7a4a7408e0ba5ead3c4bcbb6638a693091a65e1db82689426fa0b0a514b38d7917f132d5a8d934af178423a085f22334a2b7fb58b5b34dff76b700d9900a5839f1ed07d1692ba525e03fa061805b354b5a1892928a1e62fb14fde68220c58a431ce9ffa3cfe9479e776047d6b37bd5f18d9f1e63f8cdf49b306882ba49d10c460cb8956ea03c2d1b2898cc1b98c31d5b48ffc9991fdb95d5db741d48b8d05a48231dda69dfe685e133b96f480d119bf33c145898e6f931f182c5f808b9284998867b95d7002bf2f9deca119ecea9615f3097979a0c2170b5f48b3e4454bce09648f23b22c34d0b512c4ec50b00ef16aeba0f695426ea208b6af5d2dbc97114bff2a66d18be4b96f18c05526e2b4e720c442e72f7d7797d9f1ddc82fd9f78b04adbb76a9c299d63d29458eb033441bc268d44485e5681e6ff7665a3f57567c42772822e0ac2528fd3ffe4333a329923c31c14846a7d87c55433cd17e8f5c6ee28e4b813905334e11c81b1c0a564422e841b97443b37ba1ff68ca23b023d9f6caeace9e1acc440634d0219fe3e748a17ca449064fe28d3f2aa7a92c8362801b03b13911136513843af7db919b585157600b7c0b362cfc072db52ef8e8b75d61042eaa5888a0ffaaf215ffef4d480dbfe84e9b6657cda7801efe827170d898dbb0b331ee86c1d4e57cb65494abfadc2e9169f152c5ffff19c33b4168cc54f21a6ea1e53e3d39cb1eab73481ec1f49e5b53f1e9edfc5288c7710e1c3073c7d0f6fb13164c7aa7d2f1313d9bb1d4d6d8f5207396c5c6e3e84f6d142b5758727d03050f134b8a9fafc2ca3b4a5a7c859baed900000000000000000000000000000000000000080f171e20263038", + "result": "valid", + "flags": [ + "ValidSignature", + "BoundaryCondition" + ] + }, + { + "tcId": 56, + "comment": "high_bits called on the edge case", + "msg": "2901000000000000000000000000000000000000000000000000000000000000", + "sig": "fdd5a8ff7fe50a8d42004037f14d993ba2eaa278f6f3790d4e5c18b932f9881112c654b8d8b624e5102c90951cfcc3670adb9296b751940fcfbf19139b69d4d795668f1b6a5f8707865aba56c79f0be45ed38b36639a48a3ceab07ecff0e9f034efad4fcf6b1568e662d5dd9bb0e70354389039664ef59c90ddb5856206e2b0fd44a2c0bbd519e9a1b17b3d172a7b92861e42052178a628ece89d628a8eff30a2ef9f88aa6bfe051a3b8430f60fb8d6148c698328c94467274abebc9e7669ae1a439bd92622ab14de0ae3f9194087258ed68bbbbad4089abdcf46f77c96fe1e0664aa2b2e373f36fd58cbc38fc4d51c88bd280a7f8a90f538cf478662743637e2c3ff7dcc94a5803885919d3fe0958d0ee8287ae06f6cec83e74c92b10d9acb263859936794afc6b5a05a6d8bacc92bc28a54cedbad8bc73f842e30cdedaa3a82c26cd290ccff268d7205742cc49a14a915b70ed048429952b4ac41f5296140d203189a69548b08789fd40de753dbb6282f5339299aff93c70bad2037da8b56e03ca126a6b2d261268054ead154bd96887bb8d798aa37995cc79ca8ae1d82afb5e118259fb4410da1fb4e8b06e62f5d7271d7ed189777c87e73a4f1430763f28b7071632983ec50b06a59202aa4c183a4ea0058ba7410d55efe3e4814c610ec5b3338e31bd902fdac40475372ac87b916ee298a371dc3ff4c552f9cee2d80a91eaaea191ba7a58d262b0c592a7f421be6afc75d57df95b2591d6a5d7bae6b5f0f18c0a4de9bb5f7069a21b5b3cd54144788602deb081a75341a8e4d816bedfe1b39fd770dd045cfa24dbb9fecf808adfc89afe1b3151f3880fdb8e32fb688cfd3ac33c52dc48daf32b0a59ad240974bfbf898491fadf471b8760ca9d98787de06f6d7325793b00703285d52bd802dd0338696ac6324bed84eb6ec33260a0dbdacfe9211e7e1c1e350cbee4992fa67dd60181f0707ed24cda0e3951aa4badc2e21cd64b77e2150c30360808712cad404cfe3c789e7e6c36ad2521289ac3a14124128936ca5e4061e99889be6e0fb261973878c501cadd5bf878f1bd3066ff459ab543178347a32d2e1267b75c781517316d9cd6c48b9fe042027e0ee56a468a704198b6c3732b190cc80587fd447d0eae50bbe34444d5b3ddf56a9476b9f8f10c64c443e15b2e19371267b3f1874d778f1da104928977070804665a001950855d56d4332651c9367f35843962f291e0e490b5ea06c286e0023217d5a8844b9399a2e02b3409cbdef849874f27273039431484ce5bf0b6865347d99ae99632222c4306551d754a6d799a2d8bdcf3736488c001ca7faddb49a32821bd849633aaa949590257da4a698f62d0911fc97300d56e6ee250cbe0e34931a3181d7214b9e83fbdb3b0123d1994c062da5dfb00cb7df0c1ac982145b017ad1ba1c5a85f7604d3312c3e7a8be8fcd29c2ec70bfe3a4e4877b1deaad26287337174d173f99eca1e6b143724fabd24eda124b3b7e1caf8b36693035447f751f0e5f5e294b89cac264575ae740f77fb222d56db2fb348da975fbc7cfa4e5aaa9bd35f5488202f67db55e13be9412de0e54d228de9e8ce0bc9367470bbf972e1d2e49d6900a5fb67cd242eea58a0912b394064e7a0fcba58b30cd4d57861b939c8f940478d3105ee30ee4a896b6e5c5b50f2d2942ff6343a4cf188717882da935535cd6d5162efa08cfcfe76f21f6fb481732d4dfa5a93897771a654f7f64922b3fd599678d72a063d38723daf31ca14f12005f7bd07a61703cd7884e79f19a11bef69f4796ca9f69e795591a6336b4b38bb1db7e293484ba7345c6447422d68aa24a8fb16698a013cb9600b080dcb724f559bc16f7d77990ea68ed6a58a1dc8ae735aa007fc20a066fa7c478fab76c4eb417bf036f637e2d267024fef5eff40aad3165c6c80b45a71cf309cb96abb1e3879b8ad1a10c8f070008975b049c9d95aa5b0eae6618a4b9ae7ec63f1cc6cd23acd9ec4ad8031b28245741b8563617084c25acd6b1ec11e963b4d43ef9290b662918b965c0559b7c4c4e733ebe391e723ee02bbb26817e67511949ea5ee5103076e489f917f8b5c8909cce4fd2ef84a0a17518f20bb67af4d3d3262b51765906a98e8a6d240f4a000b56950636a9e9b6576331a0211678886f5623e40d43750f1110b4b63b6991749ed15634140429b490cf2a4dec16005be074a5a1d1b99152be4e9b095f7fd551449639002fe4f1ce5b63a4c660f12e97098acb225b61ff86d1f08d15f780d584c80af0ad0b30d06261a279df7093f1f27eb44c8815a77b8300c540161de9ee8e64855b7e3042bd7bb7feeccbd63bffad4db59498662db6f5afbc2b606bab67036954fefad59bad0e4cf36f2fd838724f251304bad10c571180fc7239ddcc19029286aecfe09584f1ee3ddebba3a9e802c8895642aa38b467785f1d0d751da1c3b91379afc2c37c1b593cc26da508cad376ce18b8f284093df9bda8c8227cf90229ec716e2e83908f8018ad0a510e0bd5f910ba75f2a3d9c51b454e4a0101dd5f0ab9a8f44f0181311f604f7bfd8ce54de29b6c54aeaf1b05cb3e69fbd541bf7935a3552548a72634543fe105f758a05f68d2690124d49dfcb5cd966b9eaab52d5f4869b7a93e3fe6a9e7dfc3eca69fe9ff87cb66aaf598fbfe3562d6cf643a2d415e721118cd6412dd748268f786ff0e5df58b57213ee0f101404bcbad68d1ed50d1c9fcd0ad10df799b6a3ec8adc350d5c021065a46ca65000ea44233ed78ba12d0f7c72e143ce7399365166fd49556c0c4ce465368376d450c0f99aef3c70a433830e4317b94f65282fad8de07dd1d0bfc22921c3b80d896c649a08149a3b50c77be23e489e239c7f2b997ffefbc3100a47962ad888f1678ea2b583838f6a40717efe7ebd7f9860c1311b77e2a6e5e9fa522bc2477c66ec9b46597e73aed356a36477ad653a1c30f6b0689bd45c34f9bd5a22a1c811ddb783619894699091c2d1f06cb3c2005377e3604bd864a35b3dadce1ba79a78989659dd97e316becfbab74772d80f361a2f7e69e7628a5b11aae6a30aefd8b42cfadbdaa90768b6f5f35c518665a2844d55dd020a70a1fde324dbbf02df2fab1a20c76bf4c40648179104e0af2fb62435b37c16a09141d5f8ce48021f3fc386b0071c461202af60dbec29b6e1fcb19ed34970f3983d610c29d99fa27eb737d82bd52b001202622b6cc86830ccc54faa22709f53fa0d5e04b4ff10675c19f381d7cd4bffddde78a31bf9eb9396b7e109b608c0c700610a94bf52a55223ce19ee69cc3f6d5618a29bac0e4766cf50ef53469ee9f096c92ebd678b6001672326a3774b03b6fc2fb07b6829992076ff08afc531abaaedeec5f2c493110d730504b1534a036842ec93fa97ce880dbcca72c77a4a8d0403d9d818bbc60db112eef67543e6158b4dcde305960f4725594ba5500ea6135473bb160703c1b1cb9df934c5e32605f3ffa9a5b1c116ea7f9fa2c2cb2d22c40d4204881a804c3ebb19e2d72a1e7bd03721cb903bf60f590873055ff3064acffe7eb94ef717a394719434fbfa79686cd3e35db9147452c0259967531ad29d99bad4d7c96b67850e4b0d63d0ffc97fb07ddd9c7b83b16722de5dd5de2b3bc6850ac4e20032fd1d89b15342461395b5a3ecd2c5e9f3fde027b76d62aecad0af950d145463d2869371fa145de557e4d31cf7b6fcbff95c24bc13c8de4a2a1710a6ed6d93b0fc37ddda2e24e03a84e31529223e5344f6e078733b2e1c181f0267801c9c77f5b1cb96c396d90741059c0c47d5dee1d8880b9ad93ff1c9eb4f46a6f74ae9672b98d230c1d1813a3d9b12869c950644fe4492ec2edd3309c63772d7a2d479751415323a3b67a13b8fe38fcfa2115be82a6a4a9184bd12a0741084d1d8873c4cd09e7438583a45cab86808a9d72efcbdc63b0580c0124b322216291928a377e111c24d1a2fe2dbbf3fc7fe2fa5dda4694f511a38c04d24487a7c34a36364305bdcc3da45532c75a5ce56999e961186303940bd5208eaa3d5b4efaf8a0e62cf958f397f125e3a60eac4f7bd264c9ff5eec4f0748025b5434b91e5ac8e7b39791e5dd8dfd4fc2cdc4c8ea0d69f95b33b873228a642b2675ab4c4b2a16f9faf3f581804d2e3638d2df1be52d47dbcf3049fc5b9122cb06f6b931eafd77da312fba593ad666125713aa7a8454acfeeb0c0a00c798caf58e09a4868cd6cd1a2792a570b5c3185fd04798411efb75fd36602449ed3a79a42cc774cdd67eb8483ae585872f426806c9756a9b7292f50133a9e3eef4c49f21441c5ccdf33be4f12af57d9bda52921eadba00118d9144ad1db4e2a8ef3a5c33bb289cb3040f59de6ce5289ba61804c4467c619dafd0dd8764102326536006ac81b34891c0f7e90c4cdcc2e981c62aa3cbcbd4c4b9492b87e551b9dfe0e11f8a1bcd6d1b4855ec06ee15e1728852f1e843b1c8ef7cf5c1247717a85ba661151d2755f5d97bae1a50f56c1211d3f233da989cc3de85bff12c4f55291505f615896556febb5624cef6728b4edfc3df5bbfaa2bdd29f0d46ec228ddfad3ccdc684a8904d1ed4ac25ffe3488744748628aa2a4e1cea3038fef614c715c6bdf0c538f8505df8aab46588aba8d5418a962fd53f4e86d2513980a4ee3d106f8d27a69e4ba650a466e92619d0760f9509b6893630c55a5bce05d495137bcd5f67a1f3f12dcb01ac7c58af6bac123163d2d6eaae38ebfe8be689c58ef5f2385db4e89f55aaa17c582964bb7460dd9cc9d7ea67f43cf30e6a43dcded02ca75b276a4286b588d100e06c18f6858c364ccbcb9f76bfb13cd8a9901eed98d9c4da4c006ecd44e5af04f3dcc533b5b3a7fd18f03046f5269b860fa74c80e7efdd5e583d7fa3e94ad9291394b5f77fdd42cdc5fdfd325ab0bce94ac7957f22749d4985f981c9b3c605d1ca01e88130af8ce16ef0edeb43e2c36d53680383fef9697f95e49f62ec86fdd1ae46fcf00aff8f97816feb2b5446217dc1e53aba214e5c9e32b0b52690dca1ed257e1a7ecc00cc095b8216aaecd9a5b762aaa2beedc5125fafa529f2b88686b3c8d150cd0ea069e1132ac29aba89636a2fc3b5db7a688f8ca1538ac7bdd66f7c277436b5a4def3064954f982aa6ce5dff3448d1214e296d0cbc6a018c9243f3a9865912ff11cdb5e02cf6c3cd462b49abec92dde6dad120d887bbf211b50b7b1be6e03c250013ee5cd1855bdc450df92fe1f538f112588632cc3f72fdb66c5284b72d6e8d27bec278bdeabdab39746e523c02f616d5b0137e862d86f7b8c1242ff2196c8f44789adc83b97a4c267898f8ed98b4a79ab307afe5ef72983a5c891bf4e0f1d65254f1ec31936415592391ab0759249a61ed8f33ea26ea49558706c396fc9cc8ff49729d4a670236de32d5d6e08569898d558ec445ea89ab652cc335c7dbc6b8e3f57cd8f9af081c9349843cd2a0ac25c285fd1dc618193f23e50cd05f0a047314bf0920a3a7ae96fe0b6a15428badeee4bc0a4ebfd844c58f79129de2fcaa187c1eda281b4f491675eb7fe061dff3251a0daef0f5e3af9801627a35e42c0dd8a08b05589d54fa06b0f158801530cf34bf33d3e81133c236b9c785df084f23b1dcebc07dcc4c768217dc47790b125c9de2c305fa0f5663f1b0018ca3837b4c6e1d406eea5944df0d3bd91ac0f2de12c5d8678424272b1ae433ded61c44207068934ebe0ea5b66da55a000155d77152ab16827041870a48d12fb40297a86831fe004d36270433c78759f978713b2b7caa8be3f54f68ccb4ca64bd3bb6f2f0e42746db3f61990e7d62acc282511621b1f71f1b7e32233666722d5b0ed027eb9d3f565b46ac25e1f138cee019c9492b5decfb6e104c56a5457ee623b05a86d3439a195ebbf62fa9ccbf88ea1841f8deeada6e8a9b80c1a640e892507dfe087d5db54abe62ba1de6f8d4bbbb074fecff5702529f97bd9c608f3aa9247db164aa2d98cfe0a60cd363de49f243cc04c8ddac24c130cedaa6d5a28fb96fdb395e3f807ef4594945fe66a8b0cdc7cbb4634823f6d94235537de1639645f17ebbdd68aa237dd61e0a4109db92b643cd4ca472561830c81f763f833f1c5e5ce3b07534182c932c6b7185974c907d5cb295006d852f65459b162aa7c9832dde3f42bd6b9769b55733cf143850ff6cb4af94ed0e0af8b526579d6ab302d07206950a68b5a7e13441f67b172f2f08648127276257811d8ff50788e65d87db156d30e426c9f40680b002516fed82645ff9a5d32d847ac72a29f1cbd2752b27cae3278a25a5d8404faa5e4e5b864e495468e242205cc3ac9d26097ca14b69e70ca658d90351c01ccf84420e503206c6a3f020fd979a9ec0b00195e114c2d08b4d7465ab9ab37dc9e7afa040b2f592715282e4d5198aa0c4751a0abaeb9c1e5e8f4fb053943536888a0d0083c6f83870e1009111e2b2f3743464b5de9f4074994b91843d1d600000000000000000000000000000000000000000007131b20222e3236", + "result": "valid", + "flags": [ + "ValidSignature", + "BoundaryCondition" + ] + }, + { + "tcId": 57, + "comment": "low_bits called on the edge case", + "msg": "9a03000000000000000000000000000000000000000000000000000000000000", + "sig": "91a557eb6083cf71a39d7ad4ed0e9e743f0e219244be4277c85060d9df9000d494cdb244dfddb74d3dbb6c313de18ca41bf822587beb340b8640e384e96b6850e874d958ebd32b6aa1beacfdfb50ab98bd40b09365e4c4a4c25f2bba303dd71717d51f90dfec4517eb16ceb8474ae35f8f684a4392a6347ec3ad8040970c06b69caf37470e7289b201b3152cc20f0025abb67382fb8ab8b4824777e091fe983b5550740b06f067b98590187073aa8f6baf9512565c9070e4cc3577a260bf4a472d3d5be99eebe1f40e1126fda1a67020e0c58c889a6e0318dfb098c6447c1ea36249989491f909f8879727e647edbcfdf3e4e862b91245d670f94974ec7ad0bc80d6eaa5938dac463eb8a7ad553430ccbb996ffe37775601a9b425c58d3260d319c6f156f4551d35256815a36c33f7ac902b7a4ad6cf7b0e89581f3b818b150c8e0f92836881efb22cd0c8573fee8448d9e6a99f4679b811a8b7937fd9b3a53977b76a93e13427e4cdf3fe37eacf54a025092f3cdf308828112d9563c919c2b02cf3e42a9e49e5a6740fb8882e8b0410936b22b3634e5b81e3fcd90236ed0ca9c4a614f5ac90b18d094824ac5536269d61f309630fa1a756409b7dab77750957c4e719e07ee45d6a5aaada56e078000cc69d153faacd7f4b7afbdd3e6f49a1d56a6005a0b6315e67323aee42ce3eeec54d901a56eabcd1a2074eb169bf9e0b853154d7e006b8704ea43425fc283a48d35786f8df54877ad6df29df87b29cdedaefa54bc7df5c936d92664ed28a3ede8d4fda34c01395e10e0323a0accdef62210da6acf717ea21210ec96a84944c9d04e2dac7696eb81ffba0b182fc6f84f46de5be7359f4a1d0671c499de60c338120c4807e3380d149d216410d2686bf54c56916edbae91b587f6d2d1d1d2654631f8e9944a2bcc1c3ef62a6e2fa3456ead1a74eea8f27aae5551a5083c3cc013fbd4921d22ff014ad76d45792e120d43a04bd4c87248b4953e80469948eeacf5d5d670f8422506ddeb1377d9591c74cd0c1681ab47998ed03880fdc5b0e41635d5483c4b824cd2fbb79d5e2c141fe4eba3cd19c6303e7c60825ee8cbb9851613d90e63e248e3fb66d74e019cfd56f9d23df255b9731af22bca929b2e8c9f7ddbe84cfeb149a2a0b44619633cb37121277ca932ec3a85cf59a147c25995b1023d956a537f157b004e4d189169d2dceb7f5ead3997c5dc9c63f05ad3b2a62e5c2bbe0374c3fc5f9df060a38fb6a9104cad7896c70b53cd03c071f2c1799ad60065ffec0db82e119c51062c6818b5ca3afe084f55d24a78a30665892766d06e5a17c35e0b2414b55ea6fa24a1ce4154fd3ee383dcfc3ce5f095a414cd12f40b6035f79d582d9a96e6a4a7111d5ee7a6485e255f1757872bdef4e9a194d45dff5a152540d9be0807315059c942e555a5dc8e226b1183719ba1f877e287e98f37708c6d2a81471514dbd79afeba90a90e3d75c2309e4748a1fd2c8b65c25bdae548f24854be10c4cda04ccd62c9377308ffe3f65e988248d2303f76d0ddc6dfe40f11a5d77c3913709eb58bd32c89788b976b46908d2857945b6dfc0208bf1e04fa77c8cb3a3054d8917fa5682896d41ff6e27d5f7fa0e5b241ef3b936bac924fc40d4ce3533ed829ecd2e91d3e57424cf58c02dd01c40d65944aaad81e51a5136d4616fe7c34dee12f0117bed3ac21e5806c939046942932aaf46e25b08c01fbda729a6c90c752aeda876eb75287556b2d24febaa0838b25b441b4402508e8db01d50eafa6f7671c16a5fedc21e68c9df967f0ecc0808675e6667a38ce6bcc47f8b9abd176fa0a9698dd069db8fe899b1a44df729721112ed395b796f86bccf112c3a8d420a9457db9b01ae38968fce52b1df2cf380220007745ff771d7419f21b5d318efb7f6053afc8840e66686574c3ce1e9197fda8e8b124a0e044022cd00287c0e1ac3e97e9c9572522b44a884a476a997e669d5476607dc53fdbb20f59d3ee03c7273c626e20071bb18b735135df0506a1f77317cb9de8a8556c99baf3168e4aee2151a4eac8cc591ba73586b9e42cadf94a8f78206d30434820a40e3fd8bbff5f897119f0c908486df5c4c7b91691fdce5c8659fdc6153aa5fe6a9a5b1fe822f5e58f11257ee8ef956d4bd43c60fad82960b4d20116ad8f7ab345dbf69654beef3edafecbb1ffa9d90f6803e3eff4e2f6c8cd14c8afc54373925b41955780c769e5c2b6e20d7e1a91de57cc584d5937d5e1f06ef580d24aadecf95b43e131dd03c8f116b6e1ad120991f43ee9548bff5f1ecb29c796efb86758c4071aed167d2c0d67e9f56990c8a72983c717101635f7d73f5efb0e58ac2caae3c90cf4a381dfc78eccd3f5894d847a8bd0cdd1dc504adfcc09a29d12a5a2b9c2917c2fb1f377961ff0bce683a94d1f2047d0a0554011085cd3b00873e6a520ddd82b1f2038f5ea0a1f035e941e2782a7ab2d793c3151126301306d6f80bd90b7666457a154282375d00432c976ac50209eca908eb7af065449f8c735a5321b7ffae8154fb36479b6b5efc2187250f873fa31415b39b3a9dbb64a67e2e7a7783067f081bd9a537968acd7d551756e745ec55d04bf26b128fe327963f522b18fcf9bccc2063cc1e2891b78b0fe528035d41b36bb9219bd23ea786d48219f51b215ca1825d15c4d490b75c8e8fdd4a7671ed9cbbed1137067912bc206cd53e2ebc92d47c1db93e34ba929da7099d64ae5aaccf4c03aea45ccf3f0ed80b8cd9f039e38021d85cf61fb265d3ed348159c40e49c27ae6559ea41717c10b8c075f75af538281e017458a3245c76c6607fc91a82dcf8e4615d430c12482e64123f53ddbb7ed7016b2e6c7c41bef5552bf641c694eda940226e228f1635358de2f91176bbf49c0d05d523b5424ac97b3b40e4b7119afe532d65827f33d6a8abbcbc40149a874a985a66092c409f1c54e2c0cd4772d893f510206a216b6c533031f9667935a1c6def65825c63b938f22244e08675402c2911f7b9300e91dd3e20927e631b3251d54234bd4341650023ce15b6bc232adc0206686c7c2afb703797578d7a462ead5d8501748834ecc162bd3e9beea5003b96469b522ab918230010619db46f83ec76fda03e80db78cb48572f96c373ab0a1f07bf35374bfaac3a50b828cd514d20be10578cca1a219988855e98d96e249643b18a1c63cc6ff80d23aba3813f9baf783adfea88e695ea516331637a831f19732fcfa3676f4b7cd00afabfc2f1d5f3914fa31cf0b68de5891f2e89ab32b3816fa073e1ffef283f04152c65b8f2f2e650dba3247628ab5e126e7275e25a41eb2f42cf5902b1992b68b942622be7b590ea3d400ede069af9cd15e08aa13e61d811bf6a6d7be381ea375947793aa92b1c419a6ea0baa5e714baeb2c28899d180269b97185d4d55e37c8fb72b1b99850fb86d8efad66fb1789edc03708afe49f1306db2355a2dfc8ad5b4245ad70a38ef62a0015ffea64a1c11859bdc0f989c56410eaae8dd803609f9c16361092cb0f4263d0d6958e4f8e642c9f467dddd624fcc833cfe8972d5cabe59e6e44406476b7ff20b43d4708ffcefd8b05fb1b863e57cbf6db42920d5150e0fd43984e75689b0cd63bf32d25b9b9d5b687ed371f55febde4cb7eeb488c34af61afc7dcd1045c05a9934efcb4fce59266191eff1debffda0ddbc4000fd36a32b3b3f827499685bfeee1cb58f610d8ea7b0f901104861b21fd2783974b4fdfbae6d60dff50eedf3be0da81c9244718e42697603d446407c539dc1155206c4f53257d428a13aa271e6dee4af4e6b2ade5d5ef28ab7361819bf1d1de51d639797f929bb0c6e7949335a60948c889db04596d275a29d8e8b42268bd91bb5a4032f6e4936dd595dcb5049801e89fba3689609bb9adc9239e0e788b96ead8733d6a75ecadffe39198e5fc35346ef7cd26a78518af9bdef852317cc976599f6ef7c14af3bb64b791778098b8cc7cd45a762d903cb735ae5616589256b30ca83f948237f4098cd00af679d707f7beed1e3467b8cddd54e1e903a087a10d13d9361b9143fc5a1bfbb181c6c2e18fd53f6990fe21e96b3c3692a286a8cf10b67ed0e7369370572e71983d474d72ce8605b3dfb2f338ef9d1351ce968f9c6eeeb7d50d5db20ca98612f142a7f93e9c12dc56d4d0467978c2df0b32be3258786c8e8484fefe8b0e93ea9a2405bda6a89e5dc8c6871d8d98c8013c42e41fd98d74a2759eab0b45fd6ebfda1503b0c17f43e441842076e0022f57256efe4e20ea46147c79931db7275202ab73f67662200a224e36354f5ed7f9d7a9d32f300a4c656e7c712a36cb86c5af35c8c582e68c80ef164d86f5670c13f2e9383aa8d73045db6a72052a911a583fec647ba411714cb0099db0b2281f4a5549a2492d56c41d22cf517624971a0dac5bb1d87db8cfe97a06926f27dfce961fbf63c3a348d3f1ab4adf50e265da502f37c5a41f1400bdcf6f22dd0b12a8add02a31f397c50a6879f2c0d0e1e8ca0507826dcb36210772decd0b1d9dd2e15532b44ef5b0c7645061e07e54a6c91d9f457cdf3dc73d625b35f1412638b774d497dd044d4236e17d36146e5538513de67a1df48c7a936594b8e913f218fc0e7288a363a93ef407958a712a37e99a156a9f83ca0fba4d0d89b3443dc1b838e7ad2b3fbf8d7101d0c218a0a755dc3f728d7e5171cd36c757dd29109ee6387d8767d85a2a65c0ff0659e824faf3e6b66884e1e6bde42a28dc4cf240e1d7a80b8db58e16d00e017e0560832995f17575eac239077728b716b2901be00c03c6deef37b79bc61c2d6c9445b579a5ce44efb5db61a91532371fb44ab120c322788bd128fa9ab37f52184a49bdb497fbcb29f215930a5512b4640f30afaa4c96549cbe2b6b56efea6d938dcb7b9b98edf3e222a18093432d5bdeedb273207de70c031ce6b7a8f773c8740ea688202af516a98bfe8527601aeb34d4f2fa9abe259623f0a3eec0195a69b18e7e49864b29aa6daa4ac79a54154a223783c468e05695dd095351a5e07cbe44e52716517091cda3b00e0fdae7eb5455f3d6f94b718c5fe5fe9bd1fa8f9b2d42a386124e0cb5e759993fe7832b12cee90ef1e01f0278af72171f9fd5ffc797ebc2ed9c7d2db1e3b602b6dab60941009ea3b6b1e153142f8518be09b5ff3e760ebdb730e47f29d630ad227d4cceeb1abd88abac17361b7a63d91e36fb0ae34ec70c5c9f56d2f100aced1c408fe20a9ea29dba7d6b89964e41d76e8166ae44d7343cdb4b5994faf72ff86785304592f71703e01bc3f42d4beec075f1f8ea58ac90c9bb096b55c4de5a3a05deb22f7a55e40a950b5edd536df1f8c45771d4e1b22e6e30151342b6223fbb0354fb0831c7b264f6b0e78dd3af4c6e31a9610feb39d494bd1ca60b8490f18e742e94d046849b91a60c06f399fa947be268cd9016e82cdce2aa70bb5b32203d78934e300c8fd4b7a63e6bb9e4d241450f52c547d093d062973aa72e2573bcdda4ddc39048a10085c45bd1aa6e8e019bc632b6f3df53db564edef3604874df4a148cad7bdecbef28d7fee86bba0c78a50685a7eb7910bd7b727392a01d3e38efe7d991cafbb153f32f199402a1d72b9fe2957f8a9021e541b5d79f86751e3f335ff2b3b86245535efc8be3e189c0445ed6db77fdf288e6106effbc909800bbb35a9f19eb81a1162865b8ab1883412897ed92aff7506800786cd485687435cface6164bc89a7e9829bd5ed484b164c99293840fb782cff9de46a528471bfcd02940ba54c259d2de3a3b604e7eb8d328f62de40912672d8d2b639f8e508bd9ee7d8e44e13604fb111768c6848a3c896948cb159cd225a24f536f1e02bdfb17b1c0ae126abe1a347db65101a42118858cc44066034469524f9c9c6a34add8006f6a970782b5800498c43314a3384bd7ee3572bbcf23fd197efa6cc55094a94a72e4c646b91e146daf40d33c7b92cccff48f434c89f033cee29800506ed2114bafa8ab0a941a2b33d87ef7698e56ca82ee83ac472672581cf4df46f406ab945cd447ef67edc1c424966563295611a60d11893e2d0dbad88af4272197197828885d58c4b1de0f30dff90ca0e1be35be1b26f13e4307c53b016ab5b911ff769051e71ab8083c99c88aaaf804695139f95d118ebab56e115728bbbbf7e492e8136e2ab583abc266250cb58f563c9bf1bc61e39a0c6fbcf65f07e9c1bbc7441f532194be2ca43501f6551c2bbed52c4bb14edb77df66c0a9590729e2a1823c5025ef95ae84b497668fdb4c264ca076fdeb401868c55ac8017f86a4cff3dcfa91129eaf87aa50045f5752a1f61fc5a8bc864c737cdb564264811d46b5349ee10f7f6d621204f81a90b2dd8fd5bc4b2a14b222cc67b1af443ad2028804fc171b5f6f76b81c1d279ed313276ca4e50f3e474a899ccaf2353a66e2ec3a4a5990a8c4e716224e57dfe40a3a838cb0b8fd0000000000000000000000000000000000000000000000000000060b10181d242a31", + "result": "valid", + "flags": [ + "ValidSignature", + "BoundaryCondition" + ] + } + ] + }, + { + "type": "MlDsaVerify", + "publicKey": "5a04d37a8c83d373ba07da5cf96806002e3635ad8add42ce6ee9902dfc9a1f27ca9cc3712e5d8d372f72b5e2484a1566d683a94858b68bfcecd2ec128e27353bc69ede96138b633b836b3ad60aa053731d95caedd09a2ddcc7342602d0579abbbd57c9d50abca96a029852a2520ac258eadeb3420685734fbbfc38b1fe19bbb18b5a4bee715834c22f6fa89f589010949d5dd66163e995e23a48ecb28fc54756dd54fc22a940902bc4252bb5d217cb6babaf196faf4d340d5c181331320a4f641731db14111ecd8b321d22bd136353ea74016cf60acbdd4800968edc1f4fa6497e87766161c61edeb812b7d09fcfd7cfd019b447d91452907e9c3e4d8f611b218d25796c091b7ac57f0644fd0f108ff27a9c68a3a733e9ab00236c8c39c463beac5dd031719b708bb677194afb38f05d0d5aa51ee25de9a2159297555cb435b3138889a5628febdbb0d795666173a4b4f140c3e97b8f496c876e5437d14cabb9a6e9350e3b2091d600c77e2f9100a296e0884e12e8a39a9c64368136e7e7778d8ded66d1ee3bdce1e009ca29498228e9a2b4af6320a0debf1e3471e6d4778d1827c551a68a25a756505004b448304aa338843eee2463a18fc83c2ee972a140dbd5080ffe09b79860b0c0702d033e67f3111476bf58e0dd052af2cf522a0190c220270c8d0b8e765cbfffebb1fc3a03181a9a0b7f1a422b760a4e43efb9778542b011ed74abcc918ddd576eb31cc7da4d4b61115682f5e66a430a90665232152571849c3154a9b627639eb85ab5bd3ee7f01365ef1e74af28b89ab240ee20b43d388bdde1a7cb2d5bdfaa80301744f5a4c7cb2a4da23290ff1de44ceafe73028c4e504143f043955946e3b58da5f66c2e9a8367efa2905b57f0e6c02c9c918c6aa1a0f83ae38c8113f342f35a8ad2430f8fbb2858f77c20da47abdd772286655b5039834f5e7b61f1f4d59c1add1bf93f0859b7e4eaf6e39b5978ce322f0b20ffbffc87361f8f23632a5532258d7e4113a0a1e311bb7a4c6b8ef5e3b9bedf0da5fe08b2a49b255e09ac5c9e9884e0f706199214be18011cc93d845e181de208f071ce46ba663fd2e13a8bf7366054d97c6c8c2c9cc03f299927dfb127f5845a44a1e13a0c95c9287a698d5f7a10fc2c91f454ab0e58d7d7ca6790063ba3061cd324df4fdffb87e735686017357dd3535068015d8460b650680cbebfbd165bc3dffc45f441b004e71dd8e8d42e3aec09357e9a3548241423f93d775dbdbbb5eb29a29e144d2c1b3f90785e5d9f44def8fd65f1e731746d47e88914fdbe758a8a8ba731ba004141f8de1a4b4c3b757fc0697cfcfcb7e48236fea7ae12a3e279c85accf746d363b6735d6726a32f8db0ea04368917b2decb75b17332a5e3dd3e339450f83377698ec9599cb2be39d0dfb7cae50f6d58f3b8a6e4a02e4413c0c1788855e5461423c0b22febd0e5103a526a045bd051c9374d606d3738130e97fe3b91eada3c19496e44a6506f5661aba7ea1f97b52f99d7c3f08b7b250c417267ff3997f38d7d0a02bc0d7ac673213fa9e6515aa582c6808f4819a47c8f9ac02ff7ac3be61fc792b004fccff7dd2f508a2a154401d2573c3f79ca4318435d8f0bcc46e4fec20106e58d3af25642a2b8010aea39d92841fb6e9db0c2c6756c610914c9db72eded61e18a07504020b75fc469850c02c2550831918268fa0e427c389edd1a0393bdfa8233fad01528fc9edd91a10a4ab955d3ac44dfae1329b0170a5ea977623b68e46d707c71e5535ae45688e8dc44751e5e52d7c2f3d0c7216a14d3d45f1fe6e28b7191856b816ee2204092e2ac814974aa86c09f09451fe064ada03807e8306fb64912ab34b5f2f915410fc80e666bcd40ff0dce2acd1a5201c9d8ca14524edac734580b11f7054affbbda55e9dc9171c26196c88935722f780b5bd235172adc09dfc49f5fbe2427381665cdff92c2b1513c21d85c30fc6f4392e6a8f6f48f2cc474e2405569989f47cb9227db393989c88f7324b2504b9a868ad8c04eea390e4180b7b5eaf8ad028e3cc0ca6fd958f6a388cce507416f952bd05361b72329a97504855708725ecaed1c8288b1fb22a2b7aed6e2233c7c9f3e6e0d50b0f3b13f7a541c4c608c76073476ea18a3a46816b8ce867770e88fcc186a612026513b2b2d6a129758c8ba402ac85e0e21ecfcdfed34acb6444c962fb6fbb029c8a51422f4a31a200010cc1053f85d5f7833e12a8f19f497102d47325686a8c2b126a4308199879b1ef86d0ff97099fbd06377a700348a9109bc0a0dcb5cb02f728ffd996545b448d0f4ce3d1668017fd35cfcd011622f276d0f30061a62328c4f444b08d3b9b2ab3ece85881687049a39696a087196a0b6ddc483da62829d9e148f2fda9bf5651954af874b6e0121e52c2095a524c6f0804b997bec4a2b7b74f46d82742f78e327fd2c375e272e86402f3409a814c55389047df0e23742b612d545b3beebfece6c94495e3e651d74c7cc6b775e100bc9f10d68c930a72d480623be635cf47523339ad7c7efd0f234d06a5fb3bfc3e034b4eda42eba174d1f823c7390efa6b1abdc10acae3c1bd44fc20e07bb24ade438603c93ae099460d3443826cfc12d2a084999a886b2a3e76e637a8fc47c85f72bafc1718eeba5fb5a829f177d92377bc7d353ca3bb010830b5abd7cd95f5d2257b1b81befd81e8d3bb17ec9e6726b2f1b0f3b0a3c800f64a92a976efbd158085e30f7173d351a9bbfe3e0de4d9be32bfdf48ba6aacc3037aa07eaed14f2aec561d41ad680617cd61b14144c82a5aa14e0e32453c389e4237d95309a795e081300215c3813ef719b5786d06b5a3738a74e7048e7c42809f5d24764860f28da28fdb012788857804a9afa465abb237cb36e80ed11bb2f33f2ab31d461a934011f5c3fa3d8d0b9bb9950ad13d1d4fb3fdf2ce85c18e9b7689fa53e5c328dd74bde56a2a3aadc1762dd52cf0864fadbaa267ac0980c0df6c342461262e21749b395a2069eefb4d8a6be1eb72ebc16a2c7a80e56daa50c66f3efc134d1f7db426a1fa30a5aa8e0d9565ae4a4f157b21312322fe97196e3ed0164add38ad8c9818d30bb36a2857598a3224e159471aa1eab5bc00dde39cd3def50a275f90b2876435d02fb3b042c9b4fc451c4931a913158e75e2cf2f4a09cf7997dcb6888108db31500f9e3cb226382366598bff7e3bbf9b39b4f3a48c62e97e6d5ec899ada74843948a40a28f8dd11b2dccd46eb1068b84631fa2374faea3e04e65c59d387048b353d2aa9eca5fc03c1f1d615c158e2d14046bbfe6a6154a9697ad6c3c624fe580a73ba58d70e135075c4e230509af53493d9e7dda468fbafb0c1d4d9ef073d0681288cd434787f994faa6305798805471d1f29f4813fcf1cb4b8f3ccb9cfadc17c6e3fa72b678083960882c73c3ca815bb655b9c9cbc8a17f7f9895a487e46f883f8da26b9fd1749efcc8b801e85e74e010661a5ea38414a1c74f758d5c368d49426780f3821b937ead96deeecca4ebec92cc15973f82016a86736009df0fd484840217fae26d87c94b0133c4bf51b7306571c23934ed4401b54fc2bdbe1bdac4a8e208c40e6881192bb81c315750c867076bf0dcab552975f0fa133b80cb1fc0ff26ad7cd80875e0c2d", + "tests": [ + { + "tcId": 58, + "comment": "short public key", + "msg": "48656c6c6f20776f726c64", + "sig": "1a13408d3274fb5f79a3039f0b7d693c5a9851fb97e67181dafbda100cf889ebdd724d8da7e22bf30c26e6f9511a69da84637dd2c751b8e26c0baf009a0163e96f7ee0f33174a57ed5c86a0399b8fdafc34e71859a2cd7f6a316d2dae35a13bea9e178a542196d0b17e3e5a3b182f2de5f255d7202f0a4c85c9ff6b0d4d821e2f6894243939e06f01a72d90f3bbad170aed2dd7dd2fc21ef44728dbe05adecbaf1f392ab69909c4194ff215e8c04ec5cd12b99d7b28112e9ddb5dbc91154e4a6daad7cf54581acb79c0424e2ffb9d8b70e1e46b6f47b6cddef5adcf84e9a53cdb69e45549c90e6df73706ac20a303d0c4f6630fc35c2b832c6205b6219913ef7718505c7c5b33d9ded3a8ff6bcf5cbc80b3155b9cda3abcd2d5e0cb055a28c771cf8dc9f6e0f157ac153a53da7ed50bac0e84750550a6fc8fb6696673c20ceac88b60e8a9142b4d3821872331876085427e163e4dcfbdad888e9c862e1293383dbd81af7910c87132dca1f5365f271e671fc2d245fbeedfdb861ebe5a8ce86d37164c66f3f3ae11d39216026e8a6d4fda4c7bfc6513d36fc042dd71fa0960405c122c918eb2b92e046801162d3d3c54c18ed6ff67248c9fcadabc0aa1286986cd748fec67b8f2c7ff0c2801925adb3a0d910506147bac34877d329996a6f0a7b0eec7a0cf352eb6fd09023d30db2b9e371eed224828bc10550fef7c5ff1747ec0ca7b61d1fd4594cc169dcaf14474cbb10b4518dfa848f056be3ff2d71829e261c87a786bdb0289b595c2ebee471af05e06f83ae00f70d9bf8a24d4a02e38e6c3ff7a2020c48801d2d2a28cc14d621bca6a92bbf6b36f011f7f4df81549e160d836c2b6959f848d9d265add11c4c6ee0f51d2f58df64f41152bb7c32886649f8f6e075e57cc5b947cb96038a91ebb5423bd5ec2432155ce2d0f1d81ca969c47c017c2a5472c0a53681e14dceb26b37e894a1a938c033cc2480247e958314d1c251b988ff9a4ed7f67366600ab031601e4684ca5d72a17339e124c5ebb573811b6a584b3d0f1bd040f816cf300aa66eb42d4c5039dd1e0b79decfb5199005d2bbdf9fcebf05a0088983ac6185ce87c95722febcb5b242af1c22973314b44499e8f59127cfb5e58a602d3ee565865bae0729c3b9f31c4aef3dcedf78d6bb520c16d7e1ba5a088ca5cc2217420d99c0613a01f3b75cecd5517636cb864b35a08a6639038bee0250767b9c7bb7d857b8fbe66281f607ed65561d7084e5b31324ae1d7c5fdea534ce4b6fcc7a69add96e99825f86aa6715ff2cb78a0c9281412c7c9c55dfbc16354b564382ed425aa1c8d2604c784fdc5f729c9cd5637eb77172367bd2a8ec0828d9bc03019e5a147d5de676cbaa0f1930603c942feb859f7ec5d70eb148c8afe84b30b3d778f0affcbad6302036291c6518f62e6577794157c985193d858fd602011145c49987a138a8d4e49060600d1b7a76fcee46bbb3241589dcc1320a6bfbcf587d325ba6aebbbe56ec5ce0111a80eafbe430a41a1ebd939583e3adec10f4f1114973fd0b1b0aa75476ec85da51592ec120437ecff50e9afe7401c96ef29297c667ef4da78ac7e1c8486d19faaad35d5904c07e164874f6ef634d5d8a64b076c3f9a37b3d44f61a63b4bb38a3a970d5091e68138bb9301d84db083de275e48fa7553c3e0f1874d0568d594857bf5f52933c5bc4957eeebd2fc7d3c0b90e4b49daf5e447e7d36c4dbdb4c118595f28d3a48b5665a7f995d3e179c96d975d47de5f48cd21c7a1b6a6c673c67669e67e23c3defe0672e8e1289636ec2145a14b6ed50c0b95ebe1b1ba1bd6b8a34a796ad858ab9ce8e678df7355f702ce2959e2c0a1831bb2d203e72cad74d0f9607a34bda435a521c850deee9b6afe6ae182598b74934d0a5d244bde7973cbe89e55a987cdc6cd54fb57b033015294642267b25d2b1016be3f2e842fff9ef1cd2885c99c0d504785ab1fa0f0a7a4828237ddace3c79e0c02dc9d3687c79e01a97cb634fd03dfad85abbeb9567309a21f114817a801cf5bfbd8cf136ddf535469053c43d89feeab902195cb7e2d3c08700bd99d663e65456067b64be4ff2a1572cb696881b3ca64c1566ba7b29cf0ff1cf1a9a24814631ccba5c83874445ed3690db166ec73edf7c2aeecccec9d1ab94187e88dda60936f2e97861acb5f791a67930fcd966eedb4109051edd15f3de10c99b1cef51e9448965a4a4ac8ed10649c5f54f1dbb961d001008b23bb942d49427e61ebb07a02d8c2b32e408f64a69b451cdfca5e0fd8665b800bbb9afb6a0e79bedb9499b14aafd89db80586fbe0166b5d4edc3f5c36e04557897699f32a760a93591eaac14202ca0f193c7c360c83e6dae397c89c2fc5a37883c95a36abbb71dbce6431972297c8e16ca468913b6ffa24d52eaa8d5858cc7cbf1c6d702fe3b236d2b12a63659ded31a5db3500ed37b1f0175af1117456704149506d0d4ae49a5911afbf7ddb6aa9f16cd23721f2ea6920da7bca939910d88237fdb791a90d7c5c7824241e1e62409ad398c64a8470b56fe235b90d85efe648ea33cc0a83ccb941f1cceff086b567c901a5e22e1d8b20af5d75f33aa2e44daef7cfe41d09639da5027e42e646c356367d8943f90d2a80927b140579078eda13a0007f1d3b90ed7d52a34c0cbf632f2177444ef2b47d9ffef295cc49033fb84ca058cdc07696385f0187544f708659ec24c7071c1fe553c20c64cf98ad01b1396bb1699043669b40e8f1b67d42127a2da8ee813ceed2beea7a5a972f55a4239b8013165cc11ac88e2f28b5f7333be23d088acc2fee88233752cebb5c30b6097353056e900e1079e38e389cdb19c81b3c412b9de2f4946b5676862f8473c3f001f7aa0ddec5ec5406afb1fba7c8aaa690aa1618c8244cfcfedc13a8a40f0297d475d43b83e6692c54c1991f3d43cbdb9acd47ed1b0162f83d1ba5a09d753c4d154df38f0042554cbfc98adf3e66928592aa26f330574a8b676d526e84dccc9408bc80d6fded421a66515c0a783600b9aec4304e4d00370e24ed26d1b432e50518f2a132edc1c9fb029c7f8bfb4d8eecf436ed795f31c622efdbb918afe47423d39147a595394cf3af726c70028fce9ec01c465f2fdb0790c372e22a4b826c339ede5cb9a453f228f21946ff3ab02e8d7e844e72b9441d681d73d7417fd5bf5c6099be70830e9d30c99b2b16486208462c6f8d85ee5bb323359d9a3bcf9fae11327f8e06c31c79d66d1ae8b5b5ccbd9bb6ba35bec9ce8c060a0226945543c89f40e7bcced95093c21688c90bb25078d287a66cd18fad9f9a117f4e5afc7ab24689aa797d1623a95e50f4abe45f2fc4d1826f34d54777ba2f6b2acd7427e29b67902a9de8e55e6db362e4fe55a6c24413d2dd6f806f73ed95ed8073bf907382e71ad277a3a20e39a21b8b72e04c7c8511407bc92d4a7fa09a248d96d4e0c8e98ca4d9a821d579ddbcc2c545b3e1cfde9dfa3e812e92c8f75a413a87d61f42f4e7d2062463d5509f3e55ebecc7f615a13c626c265fe8b58c8be96caa72d7a48f87e248923c3ae769f37c5a692d2ce17777a2063ab732e7dfe247f8435930c81d73ad29dbc7579d79534a43d67195d77423ebf396b458084b1140e9fa722eaff25a6519e4ee3a0fac3d239e1cd6edb45f7113fbbc3487bb57ae278caa7a275e344b870691b9119bdbd80c36042de9d69dba4947170cc060b9299a15796f459af7e3cf82d7063dd071fccfc9d7a8852fd61aa9ffd28986504c6e04a67a493e8a76dc7bdf110b9491b290992584ccae69c6dc6eaad78592dcf9b2439144ba4b9872f7c3b1772a01cb7d0a88192c74019b5ee79991541cad2e00c6e5edd4a14abd8c7b57cbaa6c017e703de5c4f6d551baca90f5f0036fef0f7699f992c9921fe3150baf6dfaffbd7db48ca54edc5293306cbc3df9c7fb9ea5467ff8a94f827d532310201e2f7adb89f418df5415d75b54d1f361fddee5d425e0057f320f4afb154f71275fdf0f328300a4d9482f852440b989efa676a420a5c0b0785fb26f7a518534358a8b991c987036744bbf50e32bb8593da4a6add0a5a055df68bf4bffcc23d17ce44b4e565b2224159c86830d87a0e0af467426da1c5c9e43f951405da0f447c957f1ee81b5a4e427b41680af43d546a8ee4057dce454bcb56014095d88a8f37342234588e526f4f8bf8b38dd461403744cc7bf50d702465657614169441a41953f5c535cc1da9ce9dac6c6cb1d15224c10588ce29fd78a53a25b96471e53796ee9aec16837876ebdeb663186b0ae07160e779fc71c8682c1fb4a236dd7438c30b4416d7d1e1ea99ad14e196134ee95a35b7ea46fa7f95db365572677bc86d44fac60ba053137ad91ecdc6e5494354fac09f0cc983973a773d23e78b660c85558a550971a34bf2c42cb8f1fa062b667246952e13012c3a5c72f099aef765d72c042283c07c019536ede021117866b83b71b7265d1731d1f2ebd9fb5b49229f67e3f9a80d4b66f4f8495e6fe8889bcec085a32c6ccc004e003b31ed5e2db2e576825111483049da840dc1cdac7a01d6d9ddd7b0a30c5dce8a74728ecb3cc6d76503a6655c6c6fe1b875cd62f53214fb85ad7c70e526907b8aecd5ce5e85eb6c8eb7a69331caeade3b4a82b94c576b2cfc5dc982edb92a0b526cc861384c1bde479b0346af9dc6517acf97f9045b696df80db3667d49faf349df78f178ef5a1f35d97f8fa30384c9d391eac4b56bb0020505ae93b076c8b9aade70086779fe3b2cf5625fe8c2094856fd6fa79ed960eb9e7ca74472c2f45fbf2af4575e6d7bbc748e197fcc95ebb5015e755c02b4b4ca5d118678c3bb280cede40ae6efb6bd19e8e016b49dfc91cd18c3a71c435b223fbd2ff1f4638a8b4249480c019121d1ffbfb23907e88fbc480d6785cb11d92307b668f4f2876a1e362b57edf21c58b992e88a360e62c0ec008c591d22769ea0f41d13441b3339c23702e3af631896c64d3d46dd2bb6345e0dd8085ec5fbbab57ec3f1507370efb63050e3129155f80c5733c63c70bd27a5d2af502676e96105212151a8f4af97ffb35e52b341e3983a254ec7dc936c8de7d752cd65daa271e58d2eafec02c120694dcd54e4b85e9d3b526f492e87c058db1831e5ead3617f0c08bd095ff2d397623bd8c3dccc8f7dfa213fa6ddeac0de78cf498b0240706205b7e162e1703fd46ea4f02ba2c0624cf095be6908ed16059a3d0ebcddd0bd476b75c8687c9229f3b1a9096a899010950678badc06eb72ed0c532445b83f53ff48e07d91c3bf8b841c55e8c58ef28e9efa4e272dda05d4a84fbc3d2a4a48bdacf7e11dba085865f81fc70417c84532a702c5932066e904407803d5f0dd37c33f0727a8c8b4d3702c36ae9d38e7bc01a758dbc5c269b06661a7c58aec7bec4619296c838a5a41627e394092464f79ffbf1a1c1785b6b74035eba2f5d72881fafac30490e29ccd82f1319f43c72b1d83c6c3f9694ca0a81b352e84dcdee64a571999c627f34897d8b24b9f78381e4706a46d231fa19480517f9eafe763f3290c2f41e8b2c406a97af83175c422b8c0d1a624bdd2982c16c0b6ee84cd37c78ee0e5d3b6c6b8fff292bd7aba7904677a37c73e399fe2846aea5efc199dd16666785717f057769460a830e336278985ee89e3a70673b342d11d90625fa5e3ce5854650bb18145f4162cbeb737402594b7e28f58cc5d70ea9ae629c39f9c13f0cc54111e182f53877ae3af7dc7eba68ac5d80d7658ae4bfd3b9d4232a3a3f071b568141cc87580b3bda9efeb59055feefaccdcbb21fdfd04cb16ce1739e26d0278008ca50ea03a286b689d44ef26ba5670d38f16450ac6d0ea6b9f683173ef991b66c16b6eb6bf63db7feb5001655b70531a2825689ccac3775110ee34b771ca6ae11dbc1adceeacce40a38594ab376e6d19579ad3977c7e4ba00d26065af0848cddd8a58a8ba842a9f4a0612cf6fb6eb9ec359f8c7e4e17286949bf11f281c6d51f3cfa8decadf07a8da911b7f60b61d8dfcab26530de61e6e0cdc028b2a3d70e02ecf084c6f2842a768f0f5f6f0f3691d67bd683690e83b3a02515055d56ec540051f16b71f4bbecc66e61583a9b52e63745d999597fb30b566293344ee60c479c8acb035e075df1cba2103894c71acebaa1818750d58a0d664fa751f3408ff06f54f98874eb5b9f452552a834a28f602f35c5b343822d905d90f7de02e8adc46492b465b6cead37314ba4d5e51e44a2f6b3183ecb6ad677c8cbb0df5ab2e420b046624593fafc04f7a36f15532c3e77b87e3b9a39cc39a5adba74df028189b14edbed70f623a0a1d8962a377d0d27b04f5e22f22feffd074fb6f20517446f46e68d1d24cdd11b6f0718c21cc7e2eec90370212437bf6992b44172287d0131c27556b7aa4b5e801556c6f8c96a4c9dbe95965757b81c0c6d0072c7b9299bed3e70b3fc20512357283868caab6b7bbdff811358dc30000000000000000000000000000000000030c161e2629363a", + "result": "invalid", + "flags": [ + "IncorrectPublicKeyLength" + ] + } + ] + }, + { + "type": "MlDsaVerify", + "publicKey": "5a04d37a8c83d373ba07da5cf96806002e3635ad8add42ce6ee9902dfc9a1f27ca9cc3712e5d8d372f72b5e2484a1566d683a94858b68bfcecd2ec128e27353bc69ede96138b633b836b3ad60aa053731d95caedd09a2ddcc7342602d0579abbbd57c9d50abca96a029852a2520ac258eadeb3420685734fbbfc38b1fe19bbb18b5a4bee715834c22f6fa89f589010949d5dd66163e995e23a48ecb28fc54756dd54fc22a940902bc4252bb5d217cb6babaf196faf4d340d5c181331320a4f641731db14111ecd8b321d22bd136353ea74016cf60acbdd4800968edc1f4fa6497e87766161c61edeb812b7d09fcfd7cfd019b447d91452907e9c3e4d8f611b218d25796c091b7ac57f0644fd0f108ff27a9c68a3a733e9ab00236c8c39c463beac5dd031719b708bb677194afb38f05d0d5aa51ee25de9a2159297555cb435b3138889a5628febdbb0d795666173a4b4f140c3e97b8f496c876e5437d14cabb9a6e9350e3b2091d600c77e2f9100a296e0884e12e8a39a9c64368136e7e7778d8ded66d1ee3bdce1e009ca29498228e9a2b4af6320a0debf1e3471e6d4778d1827c551a68a25a756505004b448304aa338843eee2463a18fc83c2ee972a140dbd5080ffe09b79860b0c0702d033e67f3111476bf58e0dd052af2cf522a0190c220270c8d0b8e765cbfffebb1fc3a03181a9a0b7f1a422b760a4e43efb9778542b011ed74abcc918ddd576eb31cc7da4d4b61115682f5e66a430a90665232152571849c3154a9b627639eb85ab5bd3ee7f01365ef1e74af28b89ab240ee20b43d388bdde1a7cb2d5bdfaa80301744f5a4c7cb2a4da23290ff1de44ceafe73028c4e504143f043955946e3b58da5f66c2e9a8367efa2905b57f0e6c02c9c918c6aa1a0f83ae38c8113f342f35a8ad2430f8fbb2858f77c20da47abdd772286655b5039834f5e7b61f1f4d59c1add1bf93f0859b7e4eaf6e39b5978ce322f0b20ffbffc87361f8f23632a5532258d7e4113a0a1e311bb7a4c6b8ef5e3b9bedf0da5fe08b2a49b255e09ac5c9e9884e0f706199214be18011cc93d845e181de208f071ce46ba663fd2e13a8bf7366054d97c6c8c2c9cc03f299927dfb127f5845a44a1e13a0c95c9287a698d5f7a10fc2c91f454ab0e58d7d7ca6790063ba3061cd324df4fdffb87e735686017357dd3535068015d8460b650680cbebfbd165bc3dffc45f441b004e71dd8e8d42e3aec09357e9a3548241423f93d775dbdbbb5eb29a29e144d2c1b3f90785e5d9f44def8fd65f1e731746d47e88914fdbe758a8a8ba731ba004141f8de1a4b4c3b757fc0697cfcfcb7e48236fea7ae12a3e279c85accf746d363b6735d6726a32f8db0ea04368917b2decb75b17332a5e3dd3e339450f83377698ec9599cb2be39d0dfb7cae50f6d58f3b8a6e4a02e4413c0c1788855e5461423c0b22febd0e5103a526a045bd051c9374d606d3738130e97fe3b91eada3c19496e44a6506f5661aba7ea1f97b52f99d7c3f08b7b250c417267ff3997f38d7d0a02bc0d7ac673213fa9e6515aa582c6808f4819a47c8f9ac02ff7ac3be61fc792b004fccff7dd2f508a2a154401d2573c3f79ca4318435d8f0bcc46e4fec20106e58d3af25642a2b8010aea39d92841fb6e9db0c2c6756c610914c9db72eded61e18a07504020b75fc469850c02c2550831918268fa0e427c389edd1a0393bdfa8233fad01528fc9edd91a10a4ab955d3ac44dfae1329b0170a5ea977623b68e46d707c71e5535ae45688e8dc44751e5e52d7c2f3d0c7216a14d3d45f1fe6e28b7191856b816ee2204092e2ac814974aa86c09f09451fe064ada03807e8306fb64912ab34b5f2f915410fc80e666bcd40ff0dce2acd1a5201c9d8ca14524edac734580b11f7054affbbda55e9dc9171c26196c88935722f780b5bd235172adc09dfc49f5fbe2427381665cdff92c2b1513c21d85c30fc6f4392e6a8f6f48f2cc474e2405569989f47cb9227db393989c88f7324b2504b9a868ad8c04eea390e4180b7b5eaf8ad028e3cc0ca6fd958f6a388cce507416f952bd05361b72329a97504855708725ecaed1c8288b1fb22a2b7aed6e2233c7c9f3e6e0d50b0f3b13f7a541c4c608c76073476ea18a3a46816b8ce867770e88fcc186a612026513b2b2d6a129758c8ba402ac85e0e21ecfcdfed34acb6444c962fb6fbb029c8a51422f4a31a200010cc1053f85d5f7833e12a8f19f497102d47325686a8c2b126a4308199879b1ef86d0ff97099fbd06377a700348a9109bc0a0dcb5cb02f728ffd996545b448d0f4ce3d1668017fd35cfcd011622f276d0f30061a62328c4f444b08d3b9b2ab3ece85881687049a39696a087196a0b6ddc483da62829d9e148f2fda9bf5651954af874b6e0121e52c2095a524c6f0804b997bec4a2b7b74f46d82742f78e327fd2c375e272e86402f3409a814c55389047df0e23742b612d545b3beebfece6c94495e3e651d74c7cc6b775e100bc9f10d68c930a72d480623be635cf47523339ad7c7efd0f234d06a5fb3bfc3e034b4eda42eba174d1f823c7390efa6b1abdc10acae3c1bd44fc20e07bb24ade438603c93ae099460d3443826cfc12d2a084999a886b2a3e76e637a8fc47c85f72bafc1718eeba5fb5a829f177d92377bc7d353ca3bb010830b5abd7cd95f5d2257b1b81befd81e8d3bb17ec9e6726b2f1b0f3b0a3c800f64a92a976efbd158085e30f7173d351a9bbfe3e0de4d9be32bfdf48ba6aacc3037aa07eaed14f2aec561d41ad680617cd61b14144c82a5aa14e0e32453c389e4237d95309a795e081300215c3813ef719b5786d06b5a3738a74e7048e7c42809f5d24764860f28da28fdb012788857804a9afa465abb237cb36e80ed11bb2f33f2ab31d461a934011f5c3fa3d8d0b9bb9950ad13d1d4fb3fdf2ce85c18e9b7689fa53e5c328dd74bde56a2a3aadc1762dd52cf0864fadbaa267ac0980c0df6c342461262e21749b395a2069eefb4d8a6be1eb72ebc16a2c7a80e56daa50c66f3efc134d1f7db426a1fa30a5aa8e0d9565ae4a4f157b21312322fe97196e3ed0164add38ad8c9818d30bb36a2857598a3224e159471aa1eab5bc00dde39cd3def50a275f90b2876435d02fb3b042c9b4fc451c4931a913158e75e2cf2f4a09cf7997dcb6888108db31500f9e3cb226382366598bff7e3bbf9b39b4f3a48c62e97e6d5ec899ada74843948a40a28f8dd11b2dccd46eb1068b84631fa2374faea3e04e65c59d387048b353d2aa9eca5fc03c1f1d615c158e2d14046bbfe6a6154a9697ad6c3c624fe580a73ba58d70e135075c4e230509af53493d9e7dda468fbafb0c1d4d9ef073d0681288cd434787f994faa6305798805471d1f29f4813fcf1cb4b8f3ccb9cfadc17c6e3fa72b678083960882c73c3ca815bb655b9c9cbc8a17f7f9895a487e46f883f8da26b9fd1749efcc8b801e85e74e010661a5ea38414a1c74f758d5c368d49426780f3821b937ead96deeecca4ebec92cc15973f82016a86736009df0fd484840217fae26d87c94b0133c4bf51b7306571c23934ed4401b54fc2bdbe1bdac4a8e208c40e6881192bb81c315750c867076bf0dcab552975f0fa133b80cb1fc0ff26ad7cd80875e0c2d6100", + "tests": [ + { + "tcId": 59, + "comment": "long public key", + "msg": "48656c6c6f20776f726c64", + "sig": "1a13408d3274fb5f79a3039f0b7d693c5a9851fb97e67181dafbda100cf889ebdd724d8da7e22bf30c26e6f9511a69da84637dd2c751b8e26c0baf009a0163e96f7ee0f33174a57ed5c86a0399b8fdafc34e71859a2cd7f6a316d2dae35a13bea9e178a542196d0b17e3e5a3b182f2de5f255d7202f0a4c85c9ff6b0d4d821e2f6894243939e06f01a72d90f3bbad170aed2dd7dd2fc21ef44728dbe05adecbaf1f392ab69909c4194ff215e8c04ec5cd12b99d7b28112e9ddb5dbc91154e4a6daad7cf54581acb79c0424e2ffb9d8b70e1e46b6f47b6cddef5adcf84e9a53cdb69e45549c90e6df73706ac20a303d0c4f6630fc35c2b832c6205b6219913ef7718505c7c5b33d9ded3a8ff6bcf5cbc80b3155b9cda3abcd2d5e0cb055a28c771cf8dc9f6e0f157ac153a53da7ed50bac0e84750550a6fc8fb6696673c20ceac88b60e8a9142b4d3821872331876085427e163e4dcfbdad888e9c862e1293383dbd81af7910c87132dca1f5365f271e671fc2d245fbeedfdb861ebe5a8ce86d37164c66f3f3ae11d39216026e8a6d4fda4c7bfc6513d36fc042dd71fa0960405c122c918eb2b92e046801162d3d3c54c18ed6ff67248c9fcadabc0aa1286986cd748fec67b8f2c7ff0c2801925adb3a0d910506147bac34877d329996a6f0a7b0eec7a0cf352eb6fd09023d30db2b9e371eed224828bc10550fef7c5ff1747ec0ca7b61d1fd4594cc169dcaf14474cbb10b4518dfa848f056be3ff2d71829e261c87a786bdb0289b595c2ebee471af05e06f83ae00f70d9bf8a24d4a02e38e6c3ff7a2020c48801d2d2a28cc14d621bca6a92bbf6b36f011f7f4df81549e160d836c2b6959f848d9d265add11c4c6ee0f51d2f58df64f41152bb7c32886649f8f6e075e57cc5b947cb96038a91ebb5423bd5ec2432155ce2d0f1d81ca969c47c017c2a5472c0a53681e14dceb26b37e894a1a938c033cc2480247e958314d1c251b988ff9a4ed7f67366600ab031601e4684ca5d72a17339e124c5ebb573811b6a584b3d0f1bd040f816cf300aa66eb42d4c5039dd1e0b79decfb5199005d2bbdf9fcebf05a0088983ac6185ce87c95722febcb5b242af1c22973314b44499e8f59127cfb5e58a602d3ee565865bae0729c3b9f31c4aef3dcedf78d6bb520c16d7e1ba5a088ca5cc2217420d99c0613a01f3b75cecd5517636cb864b35a08a6639038bee0250767b9c7bb7d857b8fbe66281f607ed65561d7084e5b31324ae1d7c5fdea534ce4b6fcc7a69add96e99825f86aa6715ff2cb78a0c9281412c7c9c55dfbc16354b564382ed425aa1c8d2604c784fdc5f729c9cd5637eb77172367bd2a8ec0828d9bc03019e5a147d5de676cbaa0f1930603c942feb859f7ec5d70eb148c8afe84b30b3d778f0affcbad6302036291c6518f62e6577794157c985193d858fd602011145c49987a138a8d4e49060600d1b7a76fcee46bbb3241589dcc1320a6bfbcf587d325ba6aebbbe56ec5ce0111a80eafbe430a41a1ebd939583e3adec10f4f1114973fd0b1b0aa75476ec85da51592ec120437ecff50e9afe7401c96ef29297c667ef4da78ac7e1c8486d19faaad35d5904c07e164874f6ef634d5d8a64b076c3f9a37b3d44f61a63b4bb38a3a970d5091e68138bb9301d84db083de275e48fa7553c3e0f1874d0568d594857bf5f52933c5bc4957eeebd2fc7d3c0b90e4b49daf5e447e7d36c4dbdb4c118595f28d3a48b5665a7f995d3e179c96d975d47de5f48cd21c7a1b6a6c673c67669e67e23c3defe0672e8e1289636ec2145a14b6ed50c0b95ebe1b1ba1bd6b8a34a796ad858ab9ce8e678df7355f702ce2959e2c0a1831bb2d203e72cad74d0f9607a34bda435a521c850deee9b6afe6ae182598b74934d0a5d244bde7973cbe89e55a987cdc6cd54fb57b033015294642267b25d2b1016be3f2e842fff9ef1cd2885c99c0d504785ab1fa0f0a7a4828237ddace3c79e0c02dc9d3687c79e01a97cb634fd03dfad85abbeb9567309a21f114817a801cf5bfbd8cf136ddf535469053c43d89feeab902195cb7e2d3c08700bd99d663e65456067b64be4ff2a1572cb696881b3ca64c1566ba7b29cf0ff1cf1a9a24814631ccba5c83874445ed3690db166ec73edf7c2aeecccec9d1ab94187e88dda60936f2e97861acb5f791a67930fcd966eedb4109051edd15f3de10c99b1cef51e9448965a4a4ac8ed10649c5f54f1dbb961d001008b23bb942d49427e61ebb07a02d8c2b32e408f64a69b451cdfca5e0fd8665b800bbb9afb6a0e79bedb9499b14aafd89db80586fbe0166b5d4edc3f5c36e04557897699f32a760a93591eaac14202ca0f193c7c360c83e6dae397c89c2fc5a37883c95a36abbb71dbce6431972297c8e16ca468913b6ffa24d52eaa8d5858cc7cbf1c6d702fe3b236d2b12a63659ded31a5db3500ed37b1f0175af1117456704149506d0d4ae49a5911afbf7ddb6aa9f16cd23721f2ea6920da7bca939910d88237fdb791a90d7c5c7824241e1e62409ad398c64a8470b56fe235b90d85efe648ea33cc0a83ccb941f1cceff086b567c901a5e22e1d8b20af5d75f33aa2e44daef7cfe41d09639da5027e42e646c356367d8943f90d2a80927b140579078eda13a0007f1d3b90ed7d52a34c0cbf632f2177444ef2b47d9ffef295cc49033fb84ca058cdc07696385f0187544f708659ec24c7071c1fe553c20c64cf98ad01b1396bb1699043669b40e8f1b67d42127a2da8ee813ceed2beea7a5a972f55a4239b8013165cc11ac88e2f28b5f7333be23d088acc2fee88233752cebb5c30b6097353056e900e1079e38e389cdb19c81b3c412b9de2f4946b5676862f8473c3f001f7aa0ddec5ec5406afb1fba7c8aaa690aa1618c8244cfcfedc13a8a40f0297d475d43b83e6692c54c1991f3d43cbdb9acd47ed1b0162f83d1ba5a09d753c4d154df38f0042554cbfc98adf3e66928592aa26f330574a8b676d526e84dccc9408bc80d6fded421a66515c0a783600b9aec4304e4d00370e24ed26d1b432e50518f2a132edc1c9fb029c7f8bfb4d8eecf436ed795f31c622efdbb918afe47423d39147a595394cf3af726c70028fce9ec01c465f2fdb0790c372e22a4b826c339ede5cb9a453f228f21946ff3ab02e8d7e844e72b9441d681d73d7417fd5bf5c6099be70830e9d30c99b2b16486208462c6f8d85ee5bb323359d9a3bcf9fae11327f8e06c31c79d66d1ae8b5b5ccbd9bb6ba35bec9ce8c060a0226945543c89f40e7bcced95093c21688c90bb25078d287a66cd18fad9f9a117f4e5afc7ab24689aa797d1623a95e50f4abe45f2fc4d1826f34d54777ba2f6b2acd7427e29b67902a9de8e55e6db362e4fe55a6c24413d2dd6f806f73ed95ed8073bf907382e71ad277a3a20e39a21b8b72e04c7c8511407bc92d4a7fa09a248d96d4e0c8e98ca4d9a821d579ddbcc2c545b3e1cfde9dfa3e812e92c8f75a413a87d61f42f4e7d2062463d5509f3e55ebecc7f615a13c626c265fe8b58c8be96caa72d7a48f87e248923c3ae769f37c5a692d2ce17777a2063ab732e7dfe247f8435930c81d73ad29dbc7579d79534a43d67195d77423ebf396b458084b1140e9fa722eaff25a6519e4ee3a0fac3d239e1cd6edb45f7113fbbc3487bb57ae278caa7a275e344b870691b9119bdbd80c36042de9d69dba4947170cc060b9299a15796f459af7e3cf82d7063dd071fccfc9d7a8852fd61aa9ffd28986504c6e04a67a493e8a76dc7bdf110b9491b290992584ccae69c6dc6eaad78592dcf9b2439144ba4b9872f7c3b1772a01cb7d0a88192c74019b5ee79991541cad2e00c6e5edd4a14abd8c7b57cbaa6c017e703de5c4f6d551baca90f5f0036fef0f7699f992c9921fe3150baf6dfaffbd7db48ca54edc5293306cbc3df9c7fb9ea5467ff8a94f827d532310201e2f7adb89f418df5415d75b54d1f361fddee5d425e0057f320f4afb154f71275fdf0f328300a4d9482f852440b989efa676a420a5c0b0785fb26f7a518534358a8b991c987036744bbf50e32bb8593da4a6add0a5a055df68bf4bffcc23d17ce44b4e565b2224159c86830d87a0e0af467426da1c5c9e43f951405da0f447c957f1ee81b5a4e427b41680af43d546a8ee4057dce454bcb56014095d88a8f37342234588e526f4f8bf8b38dd461403744cc7bf50d702465657614169441a41953f5c535cc1da9ce9dac6c6cb1d15224c10588ce29fd78a53a25b96471e53796ee9aec16837876ebdeb663186b0ae07160e779fc71c8682c1fb4a236dd7438c30b4416d7d1e1ea99ad14e196134ee95a35b7ea46fa7f95db365572677bc86d44fac60ba053137ad91ecdc6e5494354fac09f0cc983973a773d23e78b660c85558a550971a34bf2c42cb8f1fa062b667246952e13012c3a5c72f099aef765d72c042283c07c019536ede021117866b83b71b7265d1731d1f2ebd9fb5b49229f67e3f9a80d4b66f4f8495e6fe8889bcec085a32c6ccc004e003b31ed5e2db2e576825111483049da840dc1cdac7a01d6d9ddd7b0a30c5dce8a74728ecb3cc6d76503a6655c6c6fe1b875cd62f53214fb85ad7c70e526907b8aecd5ce5e85eb6c8eb7a69331caeade3b4a82b94c576b2cfc5dc982edb92a0b526cc861384c1bde479b0346af9dc6517acf97f9045b696df80db3667d49faf349df78f178ef5a1f35d97f8fa30384c9d391eac4b56bb0020505ae93b076c8b9aade70086779fe3b2cf5625fe8c2094856fd6fa79ed960eb9e7ca74472c2f45fbf2af4575e6d7bbc748e197fcc95ebb5015e755c02b4b4ca5d118678c3bb280cede40ae6efb6bd19e8e016b49dfc91cd18c3a71c435b223fbd2ff1f4638a8b4249480c019121d1ffbfb23907e88fbc480d6785cb11d92307b668f4f2876a1e362b57edf21c58b992e88a360e62c0ec008c591d22769ea0f41d13441b3339c23702e3af631896c64d3d46dd2bb6345e0dd8085ec5fbbab57ec3f1507370efb63050e3129155f80c5733c63c70bd27a5d2af502676e96105212151a8f4af97ffb35e52b341e3983a254ec7dc936c8de7d752cd65daa271e58d2eafec02c120694dcd54e4b85e9d3b526f492e87c058db1831e5ead3617f0c08bd095ff2d397623bd8c3dccc8f7dfa213fa6ddeac0de78cf498b0240706205b7e162e1703fd46ea4f02ba2c0624cf095be6908ed16059a3d0ebcddd0bd476b75c8687c9229f3b1a9096a899010950678badc06eb72ed0c532445b83f53ff48e07d91c3bf8b841c55e8c58ef28e9efa4e272dda05d4a84fbc3d2a4a48bdacf7e11dba085865f81fc70417c84532a702c5932066e904407803d5f0dd37c33f0727a8c8b4d3702c36ae9d38e7bc01a758dbc5c269b06661a7c58aec7bec4619296c838a5a41627e394092464f79ffbf1a1c1785b6b74035eba2f5d72881fafac30490e29ccd82f1319f43c72b1d83c6c3f9694ca0a81b352e84dcdee64a571999c627f34897d8b24b9f78381e4706a46d231fa19480517f9eafe763f3290c2f41e8b2c406a97af83175c422b8c0d1a624bdd2982c16c0b6ee84cd37c78ee0e5d3b6c6b8fff292bd7aba7904677a37c73e399fe2846aea5efc199dd16666785717f057769460a830e336278985ee89e3a70673b342d11d90625fa5e3ce5854650bb18145f4162cbeb737402594b7e28f58cc5d70ea9ae629c39f9c13f0cc54111e182f53877ae3af7dc7eba68ac5d80d7658ae4bfd3b9d4232a3a3f071b568141cc87580b3bda9efeb59055feefaccdcbb21fdfd04cb16ce1739e26d0278008ca50ea03a286b689d44ef26ba5670d38f16450ac6d0ea6b9f683173ef991b66c16b6eb6bf63db7feb5001655b70531a2825689ccac3775110ee34b771ca6ae11dbc1adceeacce40a38594ab376e6d19579ad3977c7e4ba00d26065af0848cddd8a58a8ba842a9f4a0612cf6fb6eb9ec359f8c7e4e17286949bf11f281c6d51f3cfa8decadf07a8da911b7f60b61d8dfcab26530de61e6e0cdc028b2a3d70e02ecf084c6f2842a768f0f5f6f0f3691d67bd683690e83b3a02515055d56ec540051f16b71f4bbecc66e61583a9b52e63745d999597fb30b566293344ee60c479c8acb035e075df1cba2103894c71acebaa1818750d58a0d664fa751f3408ff06f54f98874eb5b9f452552a834a28f602f35c5b343822d905d90f7de02e8adc46492b465b6cead37314ba4d5e51e44a2f6b3183ecb6ad677c8cbb0df5ab2e420b046624593fafc04f7a36f15532c3e77b87e3b9a39cc39a5adba74df028189b14edbed70f623a0a1d8962a377d0d27b04f5e22f22feffd074fb6f20517446f46e68d1d24cdd11b6f0718c21cc7e2eec90370212437bf6992b44172287d0131c27556b7aa4b5e801556c6f8c96a4c9dbe95965757b81c0c6d0072c7b9299bed3e70b3fc20512357283868caab6b7bbdff811358dc30000000000000000000000000000000000030c161e2629363a", + "result": "invalid", + "flags": [ + "IncorrectPublicKeyLength" + ] + } + ] + }, + { + "type": "MlDsaVerify", + "publicKey": "5a04d37a8c83d373ba07da5cf96806002e3635ad8add42ce6ee9902dfc9a1f27fe591181ea20556e358180d2c1699f1a30db0ebbd3b0f7cf63680fbfc5030b438f7f510f28ea9d273744f87aff655e3012eda9eb8dd66bd4c1dfe9a02abe9155c5d489159605c1003d078ab3646e57a988a2f045aad29a209f2d473699c714e3236a17493b8325ba4d2110e6dcfce75b584a1d9496903389a94c21c87013c4a2f5df49a11713801bc46c2c889bc8dbe042c96e83c141b1dc5bd81991f665c6e55871b60224ae4c22449f6835785e8a228486b5591f9c8eca8e4285bd3c6a38f5ef56569963875d5d1fb787b60a099d4bbe8c6fb31ec79210cf4fdf6fddd72352b8a2cdb36b93d0fd4901c7850967a6e80f1be18ac4f2b2bc0124c8d7051444d92271946bfc2773917b982c8f14f68224a3244e288929de500c8ce1697e99857fd79fa244e859248ea3238e9d40405eb7db688599eb1a97e4a7d6bf319c693ae2653f34a5f60e38d59f4dbc224492ce1deba29b9a3e9e6066bbbeadbc9ca4e63d8894d2df24ea6ec8e04097c2d625a54ce2cf4ca137b2578767e1990a655a7aeca4b2949be7ba8f7a479cc7abbfd36216e1d51632400ee839916033d94ed092c0677b46757864bc7c2e620534778b67c0b0345c4cae026aaf5973fa33e202489261296528920493249c3dea4e7bfa282c55bac9649279bcbd4bb542fafb2dd9300233599b7703c762a5426bf4f995122d054cf6d8251cc3bbb17b05eafd6e174a32ad1bdf5447c0e16071a7ab76923a6dd9909b844134ab12e200b9349cc44cedbb788a83f3c7bc5ae1aed25479b1e24f90e775b1dcf76706d6e95cc379f98003c42203b23c521d18bf1564d4f6b0a7e6710a141c51b22255c3ca6495735883b8f5835791617a76c70175b24543904f9464dcba51e004cfd7a08de162e7f63ffab6557ace427e45025a18dff9e9fac6608e25b882bf2ac22a932c6d2290774d63f48c3c4716442deee577fcdd5c941cdbfc27c7785a85aa822f436543ac9a16813be837562d2033bade3eec6a04b2744a4ae9239a35b0481e7875c1cb415a964dbf584673acfc39d8d0fc1901b03ea576c494789fb18f75b205becb215521ce53c753fe44e09d538a918565758b651da38114527ea9e238929636632263f4caf0599ad18937520b41647b841f1ce36e029d42e714ce0bc2389db71ad2ff42c85d0cf3358227cc5cb3aef164ce90590f5f03c9645f75eb16c33c21c31e04c8424d8560989d8299ae4f6b2fe94a599b6b950c1dd837bbb4e8241af25d881565167ccf0345a19b377e0c5eb0e8064bd55a3ba5839230e428b686c7fae39081a53e561507d781de10056b93c4ae6824041f7e8148b72bd3cdd08c432d1fb72fcdbf47690df5c3fd8e5897d564cc95d24d1c2c11c6aff710dfc605afcf1a72fcbb7086f3a36709c3c7092214e08a1d9b3b261349c84fd19b4bdee3fad824c42d5454af62f281cc73334152f730d844bcb1466582120659ae4646cbecd6f0ea8f638ad992a065612be339d67a9f8f47fa2aca9054940dcdd1bcb1716c5cac0231f3e8e8f64847bbc92ee05893c46e58207024197b81e6be21ad1a4b69cb9eee28dae6ad09465106cd847fa28837020db75584c300ad85cd0a5e3adbb00ada0e35bad05abe93c67890535d6cfa1cbc86ceda9d240861584db4cd756efec12fbe698bc2df20cbe4163946853e33e2b33f15d9f84102586be2053d3265278c04beffcc77d07e797b73b57bcc25d4f72cb2d14f7fb0c9542f7f39464e2a8d83ebb269ebc921d346935a8f84a4d27847f53d7ad3933e6d7c9344ed947f4094cf81a8e9cfbef7e8c47571c57f648250ad98148b31b1687e7a9c612d1fdba5883314e95eb3971131fc2a7906dab88b7caabdc68eb0e2c98b82de336c5b65e7fe036600ecf3bc194fd7eb6886aca88b69edcf8046d90aba18fb9e208e1c7a9e0c2eb755656cd9acd0945a134c65ae71c658773a0c21c19abec88ec384c45b709194fe63fcbd736268a0891b91d0425e0c9ab3a42a081bc9542fcfe5d51dfd6ef5b4937a1a3b3a6354aa5d3a4c5d3a97eb37ac60e31b87a0e0c1d265365a2a07800f71d95c70ed02ba6136766120cca80420cc20c0623a67217823ab38f71c1615d08b6c70d22aeb1f3319458410a688e1874603e95331eb97430c4a64f6521e64fffd6b3ac1c3e54ea50d2b0782eb128fb37a488d62d12b8cdb6fe3762260081dde1e82ce8b389fddcd07b68354fb3047f0e8805da072aadeadda36cacf0d98a13058ac21a5188f25cdc8c05cbf4b8b60252044a2b518afc3f88556e6c138b82adf56df378a09437671593a602d12e8b954a03094f3d47db8da875c37f05c84fd42990434fe52d7d1d89f586760a0bf9e775ed5c78bda1a1604fe98dde216f0f2aad7f91872a620beaed7e93c858878631f1f84ed83e278618e491b1b4648c6d272d22b1fc0398ad3a80c33ccc37c9b811d756fe9a12ff857005bb23a0ebc9a333465b4da51723fb29252efba7b3405426286681334f5d7747b363cd15262938a4b129735ea9c5591165ca7308bce1dec7a3c418dfe64304c68dfa5266bee3c103e0b28e61906cab1e2b162bc6786dc5bd51b7c61769cedf9fbdb53bd80bc4f3f33299958bd57c6f3493046ff66257631d56bb5c06d4b7457bdf0d2d83666b57120afe52c43a6cbbfc28ad928941ae233178106749d4ccb6a66765a27d5d46a320a646264eaf69efdb974867d9abc13f529b027d5a3219ddd7994155b20ed500a0583733f0fa23d6b39e9b82747828408b99b1eb44f8e30dfaaf5518dafb65b763bf65f651f9a3d3f3a89760d168e24dea956ab1d3aa437958b77aa2178c23fdd22e7a07d5834599e30a99f3c739cb8812348fb1cc86873ddaefce4a9d8135b435a1bcec857f72666c0a2f52a3a58655c02d1162819fbfcefa1e114d33023aba34ef8dce441febfeb210e68784ca723ff584906e26e237a582d8a965f1cb743fe06ac16c262507d44c473160d59f9966cefe38bc2b8730ab837a513a0d06b49c57df6e9d594ec495de590fc342ca322edc734a902318bba5a568f227b3e774b05d24b27be8116ca0296cb3838809778036227742c1347ad1d627e497bb6831dd29bf5d486679d3c5539492191a83004383d8be247df50dda0484dd80261315faae564b5222b5888fdf9615c9278dd4bc65200c0aae120308b7dcffc61c46bc23423b0d6e64f297677b0d240d375bd95566a9fa6990d0011c56f7d211eafce2bdedcf7f6b8a85cf616c9475eef3f7628f66c78fedaac767a15318566ce68fa57f887557d8c6c4eb70c522dbd05ccdf11a9d4984106877e1baba9905c19ca0a24bee4f24ddf439d65db31bf0e3cd0be218072d41124c5f02ea68c8e1189dd9a4592b303fcee0c8617b7b54a5d5224f2f6bbabd987a7b5c2a969e8f83a396b386e72591bdf285c20e174cc597584a04f7d6fc49bb62782587961b9931ca9f5540ccc394f29c6df07398c3e9865dde7fb3ebcb7ff0d24cb91b9fa29095f0dccc58315045bb785068f45986d6cdb61cb4741ed569a2c763a535a8ddc4487538422372da0aa6ff654fc6e45e2959d62c2a89bd8839e3974989c2c0ee8b91ae52fa2c3305ed523c5309db3", + "tests": [ + { + "tcId": 60, + "comment": "private key with s1 vector out of range", + "msg": "48656c6c6f20776f726c64", + "sig": "0fe732d6cc03b78348cbb72360cb12bba522a822fbf9ce8428d1d90696abbcd04acb66b09438ee56d6e8b029e2aa8c7220aa8be11a715965cc3d9bc4db469119ab80617a98a5183200bf1469c4904c290ea636bc773fde54996fdadf130089e263f3ea09edf60e8c78a186e54676ee0bfd980b3bcb5047515b5fd4eb43b6b834da9757c2f0d072044ad0429b268742086666d5ca61a861f128d133eb7b7a7c04b4cec66239477668a2ea1cfe587ed93135d205e56fe4af33f79f77064c40c68c09dd337d384cb55adfa1b2bed6ff4037a2dfb3dbb69256ffe320b95d644cf4ebb9c4c6ff20b0f1de6a58fa6955b1ade9279f6572b6cb164ce3d6c13d9152c5c4d2322cce86cb7b13cdf3ba05f02ca1170de5aba7123f59451a4d32d01202c3b5b3e59c6c6c82a21471363d194c1d837f4f8cb22ab19cc86c4b17f5d128580bd74ad9e870060e4ce0c135e7301c5d60511ec2f48338e8652c833f8db4987a7f9865bc43d40fd5fd2cbe67e2ec9fe5624bc0bdfd46d07aa7fbed8718923eba3ddf26754b8073b034eb9ae25bfe0e3714dc7ddf8f00ee1746cfc47cbf6941a4628fc8995ac034a9ad766cf311924c31dad23652b0b2670eb594d43887f9e2638bcbab193cfb0712eddf2b48b93e0c0c9a74cae790c8143b2a20f3c6f37df4c311f0d65c24475364e69a17de53f290fa5fbf53dacb8eac85091a53f91a62557e0a84ca70224b6f90266dd48c05b5b1f6107d61f0f48c385a8d9b7eb2d545f575c2c40fd75009e550b1af8470358703acaa567872de730d6c49dd8db9bc276f1a8f85fe1a609c24bc93f13977b2be7021635ba1cac899eca4e17caca57351978a9e75593d73fc5b4345372af698cc4bbb4c24df299c25031f3b54e05a4a2402ee2c2efd3220347fcadfc94a82cb89d278883dc054359656bcf886ea3d3bd08edeea53f43eb2cf93644b2f59b2f681a2f910ce588fd210f1e55b81dd521ac2c07c156f6f8b037811a9d0c37b0db403d2b6c1a1d0d9e8f59478b1b603a6c02ac782f230686de2c5e03adfe8cff8786ed0cf717cc0af3eeafb4c271bcda00627cb869ca2fcc39800f25b532be2ec663246b8189d51455b4321712f2d789466da81af978f0f62058f9ca9b200ca70f45cb96b9a197bc0758329687c7a3e2f83ec36217c90029146637f5ccae90b31213d502c0dd860e91b4bd2feada896ba2f4cca8e15bd1617999382339121799e705153c0d9f375ccfa0dece6449d774bd9ed117bfa419f8f8508cd79028eb55c3ecdb8046d72e2ebd89dbbfc2545ffb3325ba6fa1561791dd36db81f6897fced03e2add94430d23bc20e48416bd45fde2383ec39d13df8fe594a13e43d9a8b658ce395ffb69f717694a379a1c81325782ad0a0740e8390e108a16727250c2eb6b5475d72f6c290c9382bb3ac2a825a0604351b1a8c6d078b63757d2106afdf95463347b23e64e5dd4605d4aeb80bdcbee7e82b7669b093a31aeab79b8cb2b376ebbdb57f114873533bbab334b32e9945ec68736e0e55bc05a90b1adb424d675375e3e52972babd9ac03fe1b501f5d1586d2fb0ca774f656a93283eacb3f55e1e7f8c42201f52fef310321106ee2666ebf5e1febbbb74f82103647d02df159de61e06edcbc51ac0741668577bbfa9269d60f65a308a253f2add54bd3e999293ede7d1a33bc542ed6516f012e6d4369c903b1eef27b55bfe73ceaf3326368686e1e6663c7b1d8d00c90376dfac656cb0f50ba7dcaeae648f5464e23557d23e2c7d4afc4f8a0bd54d9f0748cfd2d633f4d2228924baceaf9effbbed5ec4882b0c3e52e31442666f9a63602f639c274826bd8541c8ff63599d706435c2bdfbad5c82a6a46ff2100023cecd0ad11b2f3ceb3a04cae589f5dfbe0bb2e37a88cbc1b03b98dbff9e163a3470b6f72b1109575876575d9ba4065767c9eb75bf081bda9ee1db517e0fa3a8f7d4198327c9607f9d885815be97aa06d315114bf6ffd58bf7356ea5635bf1b23ff2f3b3cb9911a761d22f5157815d7f1892a927743b1032f33f272491876a9734a3927535f0ea58ece7c9a8991419ef94cf131745448a71524e7da8aeafae557c33f9040840e12ca393e2bed183f3af63e32ce4cdc4e54946ff762be6bb5f317b4af2bf2d2d3035e909e4cb48ce15c62c6c673843f05ed0ff9b0d3b56b14c6fe238737a5e3a2e26e4f850d587d17282886b94fc65d6fd657f765aec867a5bd3e00f7707392ddccaa575df47e54d0118502e03a2001adbde92e38548da6d7f10079916a2f94387930beb34e35a0e1983c9a8433f8797e884d3711235920ba3127813cd2ddebfb8cfeccdf94bcfb27ee8e98c30c047d395dc45e7f7d2680284b9dcdac3dcf95811e5cfe2e5f04468d69947f3164157604e45b45782ce9078c89bf00ac7a6ade3994f76aba7de36d0f2200959ca5d2c603dc4aa514ce1703c01a416c1517b5e96ddbfeb7959fd47b441b9147583ec0f77fc6ce1a39986f5e4819d3ae79f4600bbfd46cd4425aa31702d3c3f770c1106f909a731c184d38aec822f515765cd2c921c5937aa578689ca714d11f712c480d511ca60debdc7ef6b9ea8d55b69eda5a20a803aad89aa66ae1113a9f4ee80d81ce6b3e632ddea8fa56711f051078716ade9129b2e2da9c52a7b92eb61a5604556e2cb0d3d6500ddf3b6e971aabfa057d221fdf9a413b2deb338a23a9fde6f408932989697748a1171adf41937708f29b4aae6f221d673e26c1b4fa92274e5542627fff8548ec166e42df91f13386365abf26e6e60130b7527334654a9ee07fa61d8c550a39a7163e88dd6ba27162421e9077f7358fbe12d976102dc240b3649b212e716be623046b0128077aff60e23ab5f6ee41d2e23a1433531f3235f985947b1c935baa78c074c03720763efffc4e328e7ce2582583a02cd44f56c1663471bd14dcfc4e3fbaa1610d8bdca2ac2bc20bc745ecbfc2693643bd597ba8d1e594e1d2e11c7fdd19ec43388f16f24882c8928450a27a0f1e6ce5f2aedb68621ce7158e665157044d87f62059c8f8b509332c0215c67d6a02895e1c32f554b9b09bdb7b064133d0be863009c659ed2231b1b71a1bad5037b1ff582b8b2e3b3919cda599c13833708ec6fd6cd33abc3be46ae72f4de7a2d0ae4204e69f02a2dcbceb69036235f82370ea50ddb765ba1c26eb4ec3311d5fcdf120fac17e7c62157cde348574c07b519783a8aefef86709eff8831d9bb3b4c940bd452c5ff178e38859c02b7a941f666f236f5c9d640b69d11739dc871e5b46a9ec6791713361e98507afc258555b27f9c094c5433a072b067d7b7dba866678d76d360ad35f6973b8205ac55ca3bf6117f264695ac815f6ed83cef28cc48d4f906a4256fda4ba9682a41de9528fdc545e2d8b74c801339c47c2a5c35ee509ad5c407aa7624c4cf6cb2590ac482acf447e7494e1c2a44230f702edace56d739132fa3b577dc4d6060b4bdf34c44b6a9713fddb3e9a454dd6668690a8d399e490023bd1fdf2821a32836d5514580af31048f418c816b9e60c140f0c775c8c9f32ab61ed997fe94674cbae1816bb5adf304cf693380d4fd433c602885023289bb33d3485033aad675e63dc9136f0f08c75a6d9772225a04b061ff5df8861e1c3f6d8b1dcf90da08be11783a7ecc3172b1e0d6096b67e8290f97f39ecf59bc80e89a2b8acfeb577b856d5309ccf04bc8e1fc6390bc3d8835143a22c56b9ea1f7730217c35f3976fad57a80e193e8e59f069b8b47c486724c5e3347e972dd15578f5951aa2530b238d9819568c76ed15fc0908ea1cf47d4310333eb44e577450b915738f32c4c5850cbeafb2cf7604db6fac0ac2734bb319753ae2284838280c2e1bce7e762bcfb10fdb992042b476469ba331b1ef3862a5d6961a89ea4161df51f5841c93fd8488d82dd76ed56105ce4b56b2d9474d5959621739a1494f1ea03efb940d06d990d5916d7b6386788736c440c71dd2fd7faa237bb53b225dbb3cbb54164941a74242151c40c01d7537d01cef7792ee2ab308f158d4c31596b0368bd4505feb2d64c18264599ea96c29e5e7c69ba44c552a9d8364b445d85565d143e2ccb9a44a29e5a03d0a6e29c4fa06ec614ff1afeabd772357573b93a8ee9ba39c5ecafbd2d367025faa48b77b1314a69af4f1e9e516d6216e4204ac8bc4dc1cc502af4119354684a0bbbff1fee796f159535d7235c63d9cb66019ef9b2c346d87848994d9cb02a7932da5d92bc388022ea199edb081e62426ea335b3ba2e2768a04c7e25e6770ac95b22f760aa1f2bc924aa24d3dec2d4fa9ea574367a832a496b00197e698c471aee7905d4059ecef805200895368db6acb8472bad1d020a4bf562afb911edcb4ed960ac82b7fc72a3bbc38798a2aa0c74bd8bb93534ddc937efea3f54b98114f6ee9843fc3b2e4cd597fc1b66540ead005719f3f830897101ad2c26034d2411ecb332ad07433cadc515764076781dfe82e0595619044067b52dfc93fc1dea953588bd8759202d4ccdc55b59c1541df02fc7f80c2842d6660e59407841fd8c954f99cf6c019aed676db576b2dc69d051615b7af69537516941acb3676de30eab0e5e46bb6ae315ba7830ac30f1f15a3e9ad417cee1edf2fa2421620cb9ac193d2db3cb5b74b941fa3b108afe8f797aaa2eee67030d3d44049e15446cdd15b2ca93f3240dfb0acb937f6397764a2d99d84926ad19db7ac67a81683ca95a897c0a067cc30aeaf0cb19ced2abe8f9d311489ad23cf39ba6640e28293c807bcb47764a5dc43f473c2a8369369c8991336e93e3544e62495d15c09a13bc5355b17f2f699afa2b30b5a24c1ee70458d439f3f97ac0ead5a15b828a1c5af0c4f23426e67380e1f0359b9c6f010dc40ef6663d17ef680c98cf31e6f45765dcb52049451a84d83e150354c78a8048d212e744615b59ac38b1de1368f230031ee1aaaa881525c11a17af4917977b9d22e2a4c608176f26a9cc438529a62a2fffc0e8258088a6b492df0faa731a24ee079c5c30d72d9b687ff2a629c98b2039de280f4319eeab68fad5b968bffc81ef0af1c8274710f4c872ba24e77ac83b0c139dcc773ffa5db8f6bab0eb8b013d12e1fd07e49797116b761aa2b9fc7cb21aad01088c11f4ff33ee3c3d19e0885539b0b09206fee16883b94c6aaceeef8a522203e7ee45d4afca8b4e18000ba80780030b36edc6831c3bde4766e3a25a90afd2264b65b8476c782dbeb40a4ad05575723c1d6256699962e0a230906a4485fe46d31e6f2dbd1a9ee84be7baef00416b9d981f312ed0b5be641cf8819517eef19112ce172a2c79126eb520d2cde6d2e4b86d9199da858ffba6ba8da26bbad6b60acb1bc313509acfbaf3ba3c9306da20dad4254f9250e21109b00d322d5a36052ac2cf222f948a3f8dd78c18dbfa246c22da45d98bb197ef1950bee4ce68427e88980867345416fccf56fbd8b81d29632485dbdcc55bdded0fbe3fc003cc3554eb4d6f0a39cbbd51d603a82ea94f6ed29f5f2405374cc49023f5e2c46affde7042d6800e5a8c7bccc40c030b7578eebccf505d6ab4c98f91a7b8ebc81c8eb9a4dbfca6daafd0493c2048de551cf9ccd96966f3bc23217b5d238c8faddc22d28b22a26c2e3006da5d46f2122955cab4e8be53fc766d762c1186d471c3ee37cdc11cd90dc73daf3ab9af8f7762de3b3448449eb98fab9f03a72640a137adaee32a550820fbe9ce44fa2f2b69cb368679f0765d1b31fbd832944fb02a0abf1855cb9972fffb5c7dfc5d50d5b5cf1a21988937e66083e1235d90a1b3ba55c0657d14f5c2ea6a581843ae41afff00ae802a3f178b527440910cdb0b3b5bd9cfd6d9728f30b685bcff948d8275f3bfe127cabde3305cd5a8c0eef30699ed8eec992224566315f5df521b86ba237f11e380279ed1221607f458ca43e605bd8b5b5bde83e09c04668dcf61fa7e5bd393d0a3ee59e517d9f805a246796dc0c0b3f118185ce11024f6071496cc5e9343a85abb9c92f8d5381b67cadd99679a7b57c49cef78a60cbd8451fd1e765fd92556f1daee9cfc2a601ea1785e61cc7fade90439836438eff1629370fa1a3e4542830474083ed1e9429618ce6617faadd961fffca685db5c1d35bc9f43f2e9e0a32865da65d7f42a1192c5c0ce94d8511bdf9f63d39519e8cf637d01906d3407b7059ffd3aa6a4214f8882bc5fb8a237b3a49aac54209866f8b1ca9751d8cc09565d522728eba6e154e6d42968689931a4319cfe9fe6e01c633d5f9c6064fee5d53c87c4325268210360fe0963bec055c52d304070d121cae349df87f818b0493fb4bb4d8f25283eef64237d6c1f950e12c28c30249cee23fe258094739ebd63e0e315f8f2d1ffbe8247b5841dde1c775b4260c253191a665ab6252d2f3552f01e4a53758eb1bbeb060a1d3f96cdcee80f16236b7584a1d9de1a5dfe00446b7495a2bcbee8727bb4ebf90e22464b6876abc9d3000000000000000000000000000000000000060e161f222b3039", + "result": "valid", + "flags": [ + "ValidSignature", + "InvalidPrivateKey" + ] + } + ] + }, + { + "type": "MlDsaVerify", + "publicKey": "2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a2a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "tests": [ + { + "tcId": 61, + "comment": "public key with t1 component set to zero", + "msg": "48656c6c6f20776f726c64", + "sig": "25f86fe28f3f8cd618278b95ee76cfab091c2bb873c463004497d6aad9c6ac8c6b23dbe161e31f1329cc84f01e08af6349b7024b36b71165fd1ebcd33d6f6525000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000080080000008008000000800800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "result": "valid", + "flags": [ + "ValidSignature", + "ZeroPublicKey" + ] + } + ] + }, + { + "type": "MlDsaVerify", + "publicKey": "d83f3fe5bfd9895f3fca5d0b6ac999618c311772d3a9dd13d5f1dceae0f8dfc7f976de7534ed44b5c91f4b364ec92d37357086f1b7895a2f42329e30865e25e204792741968644a10331c9cb82b0ec0ba4b4c3a5c20701e2ef40b8984daf6d01a2be83503a98067fd32ca6cd749d498530485de423c464c76be1f8a376f5f32947358fbf237c473b1c365ca3a8fef555bcf2d4526953b52394b8ff06cf1426eaf7d183efe1bc1c4e63fd84a0de05b3a8fe7fca377c734c7bc5bf0cd0f6e080f330df9c1abe9677de149df09fb78e49f76bc2ca6183e8fe2559735666affb3141c164dc23f1fe491483ff47c8e8df19033ab60b410e1e1171d367246bfb8e5500cb56755361bc40fd32a49af9b03bf8bf877b4124f4061477becde55a3361898ea09ac668d9060d2876b6f8b82ab329226aa2c0ad1695204973dedcf6dd4e80e64d152eea7bdea44a77a8cb98bb61d9323e29eca404accc4e41acbcb01d9e5f203743b35f4831e330191f4986a868811e17c61966af08bde22b073d6b141677eb714809b7c3c5ccb58ebd65739900eda05c93fe47f8f586cb50df5e37b248ce796b9656455824e1957c4c78e7c6fd10416bfc9d38b49c81e8e38aa349568498fe4cbfcf5454ac96c3f7a757a61021624a54b3ed9777ff91bd2a307d99470d90989641915b91e23d44fb8041a6820018df9aee83f072b692db3c08b1e5d68ca8963f9bf70774962b0c8a6f686e83bd8d8b12bc550d484375170683834fef51b470d0e9851386257dd6a0a469694c88279288652c66c54da22ee92b89504148cca4ee93cb9040892509f67d55ec1de02707406fd90194e5ffd9996cfdf867251e2e0fbe36b653117098b3aeda5515fe049f023a136e92f7df391abf13aaddea4a4dcb20ccce64792b780a29504c50ab18e621fe716b9a16120243bde73c3fdb4c19911269a9098f0b3d834e0af523b6aeb2d2e0e4554304d426ae2fa2d99c795b32b1187649e0dd5d8b20e532692b87afe52a82fe6b2755420950cd1fa44ed142e2f252d1807d549082c78593a4cd06bfb654295a79b0a99905ab651f7f1440542157911e5fa1a83772f142b7bd7cfbdba207d779eaaf895d4b05d88ebb4774215a729378cfbdbd2dda67c959b9f773d1202e1c0c6e36d80db63fcb1193b9de8f96a4cd4ef2bbab92e86deb8fcc39c60d4c2b0b97a96f1bc6e35213ea677b97e5c94640f294b8d9b2357bd8179f832e5e0499376c709b155fe8a593940cb1b2309fadfd97c23f43add741cc7cfbe773df8b590acb7d8d77abfa060ee635d2b6946f5ad8fa3b00faae0a282c0968060c8bd543e1dd3012ef2d84f64322b7ea2922653312c82f72c5645fdb2e2c50c900ee979ff571796633a4f51ecedb9ad2fe9c7779e3132a5cdbb550f4d4ee43822b466e0443f96fd9ba3bada3a5d85b0aba5dfb682f19beb3657d5c7ce695bf934fdb0c8d5ee58f0572faa7f1ad104b40abb983d3d0af8178fd1a1cdde968421817e3cae51923ac03f82d3d83bb87118b550e24325a7116f7ae8c564d1cb0e753b34d3575e9b2dacb6b378b9a4c9487fbe72c25812aff1d062fc9185a05fa70c9987078fb92cf4d8bf49a398db531a7ee2be7966780e63b61785f8dec53f6498c426f01bd9ded7309b68f930d7d7407e0a3c8dbcf7dd40a3343d4dcef5548c0fe7ef6403446c2f7cf702db2395e9ad57282b2b7c45be7407eaa4dbfd9e4a3036bdaa1890a98b010d97bf249c8f2c2db58721819ef189f305ee5b0000892424c422a9ded42b392ee0d453f6e3866611e62c88926d34ce5eccf5aa3cdd6409cb60ad664ad4e27874a058a67bd811befdd51c9e286fe7ca9ac693ea45d1c1660741fc11b0c5b985a6cda47f79811999186a85de3ba555544276cfbd334fe1ebe29ff8445088b398be985a6f32c603f7a7da075026df54cf4664914c3530c503d2a74792fef8fe4646821ad6763715deb731651e9867ef7a32d81abd3da737e3be37c79d0980d5c23d4ee205465c001160b77edca43d8523116c7e10787fa086236de6729f6eaa7c5ae377e35cc2d6f047c33eeefac980f4b7a91e7fa40c53da22152c54a52a417deef29469231f21190c3d16fcb96ccc85bdd670bf6eb1262350a1f0048fc8a58d4704605861a85c521e26e95600bb1e7404bad9c02830885b9c042f9caa664f6ec527b7d336ff040d1963b6d34e2c35a340f899918949c08ce98ec7b62184163e31589276353757126f40457d561829e5bfde91a18d0ef24db351c21757fae7c041daee8d8e9e91fc2ff9d0500f6f75af4e3a6e2fc38b6414c69c8121ea821504c2d325b168e9a4ebe392a9422f5dfc0dcae8ec9cff4dac36b34d7d43ff0576f00b1cae2cab76a5fb450e1875f1aa01463f681cfb9971bee16c239520cadb4d0f7e2c1b56dfc781d420ed7cf387398a5234a80264f567f22a8e306743fab78089d331f892a2e3637fee7141711347b2db93841160740ed4f14b621c58287cbf7a2068d154df3d25e334c4539d20c70d807f4e178ed2765b100f6c8333e5a5b74181c6594678af5fe6ae8deb1bdd1e7385e5fe5132aa554020e4fb171889b4b2a999b6bc1aa45d836e815210dca8e902f9a2cf8f14d35b46ae0e70b6d5ca0b4b0e42cf25a0ca6e9983e05895f95c40e0e4c463969b8a004c7ceea4cd7d6edfa449ddefded0c29dd5e40202a75cf171eac8ff0791b8afde9fb6a66f44bfd125910b465cd2192320364f5c0fc9a48890b0427e7648f442af83cf626d551af5b98ff547c466bc699a545eacd2b36857da567428fb8f385416398ec1c4a62da954f1db3440226e0972587cbe5a1247359dee12302914e2521e7f695387275009413cf46f4b9a292a1cb58852f63875991f87d143ada1107c25438104539dcaedbb424d8fe42dd5a12bfbc2b1307a7b06674b91c8c8a09b98f7176386f03171c8c0a4b27a758d23b32c534f440aea1fa86606ccb0904636c9959a243f546c92ac4fda9ab5fa23cb8045aae747a341eb614c5dee093c07fbf2ebc71bed3469ef71e9fa2666274b3c4d8d431d253df7e9338f983fce45d714a4087dc8fb7c5647414a19ca5c7a0c492c8dcc21010fdd7f6f71f4b32a2f44f9381501af1e928367ad149d548fc5ee231d8df965a2992ed04cccc134c8ce1dd2372ec8054ee829db48edb686df69d9fb8f4fde11b60401a4fe2abd1055bd08e8b8755b5e41b3ae0ac706f519456277db441a95efa91eb985dfef3b3fc413aeb09ece49ab9e28486e3c368125bd0657c475cb9f5a15665644beb2c69bd65c117c6878042eb9b553a17c04d85da630a90d65672b60edb3f55d8a3157089127458f068738ecb3646074315dcfcae5577257800b4412f97b8a67c99a1aa511f047ac313e637702aba453ea35d7facd1f2530ebaa48d76f31d3c402e4e31f365a7404a84c829850db4884ae9d98c8c517ab7a9f43f3323c0c06f9d3ee46b976e1203a81c7fc8eeafc7878aa79600620d7850dc503b8cf2a5ab686070c0b734bf516d238f2173d432e0f9d9d4e4e96d846c991ba04ff433e5c1feb839438f896d51e6af23903c201659dfa19b4b275c6411e3cec47ccefe1ef1fb536bff237bff6c6a7ffab4732eb77e25dd10eeddf11f5d6a19e06e67750975a13f06", + "tests": [ + { + "tcId": 62, + "comment": "rej_ntt_poly (sample_uniform) requires 5 SHAKE blocks", + "msg": "48656c6c6f20776f726c64", + "sig": "bdbd590a2244f0f2185e9155e694d8fc835f58c8e115693819fd64c358d3ba0d05b083019bf1e180f4d0b50e2e6a682d1fd041a3170774db4fde836c891cbadba412accdbe13c5d17564e84bb9ce76346f2b53f6b239cb63ed2d3eb2c8e45fcf5ca87ace938157de96f562460718fe21c2af8d1ad8e7c83413b197ac0e89b8db3e1fe6aeae126119d8ea4795ede08bad86e8334baf970e4eca2af4b580c31251ae6eefbd045abe57c782053aff152d4272650edd6984d601f3b81f7cc63d7c712908b9051dda45b672905c4135a20c92b871d987ddca21e571e6b92778afbac2666f1d057d68e4fe3aea479383b61c798705f20c37c3abe218b9d6a6d8571c92eaf5f65322d19fb90747cb65562c65d0428d1161a2fafa4d933ae6b8948a031be22f103d3227efc7d5b19e5aa541d43207d2a2dc952435d85739556fe2894d0232284262c751f54adfaae7cf250f7d9d98e351c7c398a2eb5010199ba391296fbdfe7965d9970936f5dffb641cc646aa795b159232f78d2adc0e5ddb1bf7d755c48ca5e204a34e14c770188ef7c9826a0541b75602da6adc28bf3c7882e6dc061b726e2a4885278d7a9d4fa37be88abfc31fb66768222eca3be3f68a5dfeaf22d677c5f29ac952e0bd0b72d8255b60a7d491be1255106b7424ea02b46751f75d84d3ae036771b69a31fd937d6c0fef449dc4b1e3cea5366cae3839f5029fa89579cd122980a56f0a2e4c35e973bb67f9c02504926d50ff2ac874c9c6830e734135a79a51481a877d8ff58d0c8a1477d799e3ab3e2757765746b9922dee80b8a99a25c0522ab3a86ebb1fb0023a41dd4f1876b2ba572b5ad057e07cdbfa6db5e93509b123be540f2ab09aa1371d3efd2f9841efc4c747ebe991c4a7a3af4609988436a0b75ea02519abff82e3d82f410698e2105af01e7e29c5ea87f556b60b7a9edf2a8cbe76e094f299fcf3b31a86c89284b7376f670e1b45a23724fe2b1f8e7f07e0bb8e12b6e326db394921d811011e7b05c019e28adcae8b96a3fba22b702f1791ab9822f0786ac8cc39b7a98a6b0882add1e0919fe0fc381da0e9d9acc113e47e7fb4d5f3c7e7ae28ae60793d5429404925f33f621b3808c5bd0b2d01a8f1bb01642ebe8c00366d48f1cf56a775e5d8e3e0d344ca04ff2e3aa06d350728539c71803337d142f4890fc95c9d960e8dbb3ad37aaf8eb1280eb4c616395cfaac01587b672d52b5f5be6f274ea161204780f3ebcb6fc2cf3c5ff82b95c288b1fd8ee184c5a723399e8591f7f393e95486995347f738a13a378fd7250dd7d9dce3bbc5ab7e157b93710df20dc44405053bf030fa6ba0fcdabf48cf2ad364bae3b50b2b6b615c04cbcc9f61aa18189041022f03a3a9e63334c22a4208d66a575896395599e69ec20ebb4f251f9ff4230a5ec11f63504a1261b4a2fec8a3fdff30dff61dce37a4e4db7523391d4bf37e1993ada256b0e464015fb8187a2f2a099ac14fffb99b32b110aa885f6b98a4c94ddbf7c012e14848ce6d8ca05f2ae6b948e3aeb0a04a769a4c5d5b51d210ec189d9ecf250583c268d92336d21c0e15e4e43e9ac49d29a77d907c2bb48b2109465686b6c3d541a9a80968017a420c7f1d9a87be01e82efa679a00c90f9ce308365c6531595c30dfcbc3e6f2730c859feb49763a5bfd444afd11af0c3bb8a01900da2a4bfd3c7a884af250e4c544dae3ef1539c3e190c1c49de95478e95be8c377a9dd525bfcad8fee65ad82903fe4e22f0ac4c01ba7ea7bc69d6af64cd945b169a5bf8a9e567f82918c562d282066d15e24f523a5a860f8bbd713991a1a873b3c461a1714771ed72504b42da8ff0aac938219c30dc5c247d546ae68d7e2edcdb945bd0a41b3187f87b4efee08f4d361c5726eb85f39fdb320e554e85eceff374489e55f2697d81818d8f4018a2ffc9e4519e81985160da676d1d9a8d9aa4b92ebfbb9e8d2f62e142374ef1597461c04be6f371b4912356f31563213379b73934196fafafc890568d36c9cd0d8821e400d70042d90fb3048a22352d003f09cfbd815f8d7359e29e3c836b768c95c9a55e510d9806d1ef4761229ada799c35112a8bd8ec9ba7bf89680979d689946dae81f06835760d6fbce453981f25631d320db5eb44728bdd2013b0d1796de60b2fab291391d884eb532661deaad35b6380b3be36d0cd03b58049721dd77459ecdaaa9b40f5abaec62fbdfb4ec9e9e470eec1fc5a61f306066948e3fa31d1e069a7f28befcc74c12083bfb0c632afe2a2882bd9e6a37dac21120d3bb4f9ea053854bdde843a4da28a270ead7025a6a12d21c608ebf34ee8328a2c89d3bda3c02ab3befea760c614e6de734a2f921e38266d281bf38c7d668ebbf97aca7532160f4921bcc3e3daefb0729ad5e86ad90403f32fd60096a00f07bcf76577451bf9753e203df556c68fc3dd71c046dee2d55f5d587e7b71bf3e8619ac324a75431abda708e94f7239fe0b0fa75ff7a11985dc26b480b2326b0a80db18fb1b287a1d2219a054805319050f244c65cfa82e58099b1a92cca7cf1a64943ee58fec374511b3e84b8e066adbe65fa87ee0afcc966877fc68946647bdbb698ad4d5dbf6ba17b476ee33b4b73fde3519eb369239018665cbb280614003b9fefc418f59ebf0001263eef391310d0c9cd70d11e59f87cdd7c8ecede3b71a06c3a977efff29577c63f3b04332dff52d30ebde22a2cd5b3d91cc1fd6eebb6a2ee1e953492b5bf8b0a6eade75cd9bb8a8f276ac4228b735e1b56823026367fbde09afe5bd02efc4b00a4489a3d2ba5c74cd56979a3f5ec63570155d68dba2834264ae70954f34956ef004208cf88b603b409c91e109e73b48cf50af1c5a8a4a1280b6db7098b29fdb510abc966f31e516a9e59cee647710de7fea32659a12db2d385a0baad1d68220302ca8794406afd395046297f6f6e303e9689b40cbf0f6cfb8ec6fc88a02b72012b94798e6fcb4e0681dd5c9bc9d44f1bfb816d623e434d7b397d978328d99f9c9bec990e856e27de6bc48c172593f8e81708d29a636807509e97326c17d28c368e52b0af7c6d56566fe42002a07d81c42a87d0d541cf623db9cbecfde2944f6bdc11c1f486919357699118d9c666fc357bfc11734b5ba6be6033473e7ebb5300b83d3870f4fa51eb601e4ca11eb66c66f0cbd44ad1da4f7e744afe415bff7897ce80817b3975b5be66324973770018bfdb30cd08cb6831c7d3c60f8bafcc168fde1f86f110c4b071783102879943b40c4a31c06101c8d52c800c28926b9007334296d000776ec7b489eeac2dceac250fbc4cd2c8e4c54bbda7d9820116244e2cd0e85ff718c4345b2a812c6adf12a0870e8dd27a0040e78a1a685b229ce75f00c79f66c5da40590b8a2afeb7a96a1bd5ee17d27a6212fb367ac9b82ab689b5aa8afb90a0496f942667fe42d572e4749e36e9ba456810ca133196e9f75f00e2897f6b0888f0a9af29951b5be3a2f63a9f8d9d225e83937f15c349faee24f2f5c16a48b460a9e4a6c4c80cb496523986bf27edac76aa733e68ed238c17d85b8dd49eb05424e5889fd3d4e183ff1ed1f348d7e0889faf167dedbd59ee874cb3070069d854184c7d9305b7af2cf1adc09533273f3be154f272baded0e03d836465e655cb35ce5f666588d682f95ae789d10c13fedf883359b0fa45a27894f4eeb63ed2a86f5c98e93f9c5a43ca104d70cd8c0ed8a4da7804c6c8091b6369bc3988dd201cadb636b4fbb90b0511ae1e4d508e4b7ab551c4f130d0f72906f61bd9270c36e7b474d411eaca5c93fc70533ba76c2dc0a59145a6f3d7397480955758cc36362be14d987dad5633bbfa208a7c8c36140ac8f4ae4538fad3a33eb6438a1f2466fc523de92bd1698345d7f2fd114b78adfee9d00fa9b4a9538b45a27d66ac3f92aed2ae9ec74be8fbd8c647d45911c79b2f945e71bc96b06d5b5f3cfb2317fb1161a84f4bd0c8b2999e606de7f8910e28a2a25c29eed13656d1590b0e2f46c03afb5529fb8d4fd11f8c77a5c38fa5963ce8a1c0d029d75c3236f16caeed92340d55a20d453374dac3fa17817a66b2e29f23485af8316367896b2952233035522e19a52980655ff9fe08b236f89543cb2232673f7009c3810006af4b213e5e20e07479f0b3a85da9e88e6ec2d70abc24f10b0883d10bff855d423f598e17566b3355bde2167169c3d6dc094d505599c88dd7702d69edc9a856e1e89bab79385a6c102d277bdf50c877d1b5715d141c688779a67d388e436ac8ed784b806c7372bcc4cdd83400219a36473550e301be47bdfe7104dcca2d79931937479d4922b969dbdf4c9ed7c8bd7d1fd3f458365eab0a8a8a5e3808265760ee9d40d2fe15cabab961b668f026f04c1567094b44febd20b6354f5d863c50aca5e0e6cede70a67d5678f78fdff39c71a701abfb56a12697c8800c7016cbe0c987749f311b39ae257c07e38aa75f8bb34f829f94a9a821fbeabae69d02d21fd90a56a0518bd6fa8d7e0a6998f53e6f9a0584c1c6d030ff39f362bf9cffe702c30c6b161c0b559f5a794ce895c57b36c710135065dc7a030628ec64b466692b7df7889dc9d4420e46133afe91eaf6cdba79af006b03b281298caf4e3cd900173e1104a808a5d8d8c14e952aecf9c63d59c719318d0d9fbc77f64608f33996477537daedc49af37498f783543de0f60f0fab3a2db35aa7f61a595c18a0591da2c9a57939161d614e18542b889f5404397e2478393816a4bf8c6bd501873f9737ef296bf171897f42fca2605ad334fec42dc5df79a4a22a2c5d502af1f5773ba671ee83324e174047c07eee7031874254d71c248f558515442215136cd058df6a2d4f529979a6b05455d19eb368760d453377c1fd4f4292758028f26306006304312234756310454cea238fdd1255487c1430390eceb987c86610b7a0fae2936756202247968af6099fa9e92379548d2ab36328834dfe88a412f5bd662fc3dbfad225f3c2060fec9c1511c168c1a43b7967624d4ca5e43b9842160f5e7ff3851fa951be4d9020f9582dc814c9498adafcd5248ccae5d479218d903b296ec384151ec8699c56e22ca95a9b613c1f1fd3b4f735045badd75587411fdd45686374ca6938b35af2d93ff61d628236b1fe631672839720014dfff54387cb537872c19fa380d2c7ef837c6d9765b52cd2064a771d50d6d61702d04a6ccaf8b92905571c82b658c0c5e2191631f236f0acd0f956fe67af42bfe017471e98bb61fec2113585708b6f4a90f6a15c1eec02ae1358e214a4a83ce630f5a7759ddf58d7d3acf65d083104454f6e7c13bd0f7e65bcc739bd3c4f8188abacadaed2bd9c24dfbe42b7d14c7d5919b948471af43bfd8531ea1d0d3719beb82d47f0eefe248361785e36610dfc4a8530501c9b3ad2e32aa21e6829a0ae0b77834ff3ff3e3f3cb35c4ca785680e420a4fbc3c3a872f273a02fb30f58cc2d6f9865b594f67c616d0010c422dbb10d021daed4046ebd70ec5eda0a11f40e7f089477d31a513bf3b0deaa5b4474f6f8a548053f0f736231648094ddb73de02bb3d1ae496d7c3c92da8c0fdd8124f1715da8e38e8829b1c136fff74bcf3bd0cba93a405c9d17bf6f077b8f2fd00e88b6bd383192a725e6305d36c3e850e76034b442693c69eebadb25d37954084dcdb3dfc91240482d77b3c35e90e1d33c543486693831f3aa5ca1be5737e81a32dcff31c7b71b62bdaf03600d7c23d39e8529532a908358a1a1b04eba9d8e2b9cec7da2f29b882568e9fbd91ca0324b76eba26095343b25d5a72d84a806c74805d4656a1f1b57fc48deafef1f7129aa481023bc56adaf31fee173c05f8e856607f3179a3865c9eb14ab778bd6bb2793acda7ddde54bfd7a914047f42ea61e20825b3d6a10c7ef6b65c576956c286bd2d9b07c8d523c81bc868b5c128e2b0702844190763f09f313d52a8fa62d9764868234c2946756963519326c6ad79f08ec1c97fb9019e4952078078937ce4770eb3c92e3330fa59b91e9af0a330f187673bd10715db563fc23b17c676868aa0e5e1b51eecdbd6b59e095d8e3aa3827eebafb4efca6b20a317093c844b099374651651d72f871aa80c01cbc8f2ef1266aab157248b23689fe6352b82057fbad8c852877a4cb7c0f4d97d6d3e1cba99f241aef08d6eb5bc0a5e64268803a8ef71cc8731ada4b41c97bd56bbf5bfd4e0a9379491190557ecdf488d47de11e49c074f91e85ddf0e429b4c8391a2bc07d88cae0a86b402f7a834862b31fdc68189336389f8799f18f83e0437bdf6d4389b89858a81fb81eda423a8cf0a84a291ad0312f6c76198325bdfef457821059144f5ae70a87f750d93efdef7f39a00a7db08213c69c6a77f9b76bdb58401a76bfc283eed3ddc79f74983ff4a5712406f8fa2c6ea3a4ec3c4c5ce1b45545ba8e6f2fd16274f6f774c9ab8bd303a48acdeeb68569bd6d700000000000000000000000000000000000000000000000000000000000000000000070d151a1e242529", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 63, + "comment": "expand_a requires 280 SHAKE blocks", + "msg": "48656c6c6f20776f726c64", + "sig": "bdbd590a2244f0f2185e9155e694d8fc835f58c8e115693819fd64c358d3ba0d05b083019bf1e180f4d0b50e2e6a682d1fd041a3170774db4fde836c891cbadba412accdbe13c5d17564e84bb9ce76346f2b53f6b239cb63ed2d3eb2c8e45fcf5ca87ace938157de96f562460718fe21c2af8d1ad8e7c83413b197ac0e89b8db3e1fe6aeae126119d8ea4795ede08bad86e8334baf970e4eca2af4b580c31251ae6eefbd045abe57c782053aff152d4272650edd6984d601f3b81f7cc63d7c712908b9051dda45b672905c4135a20c92b871d987ddca21e571e6b92778afbac2666f1d057d68e4fe3aea479383b61c798705f20c37c3abe218b9d6a6d8571c92eaf5f65322d19fb90747cb65562c65d0428d1161a2fafa4d933ae6b8948a031be22f103d3227efc7d5b19e5aa541d43207d2a2dc952435d85739556fe2894d0232284262c751f54adfaae7cf250f7d9d98e351c7c398a2eb5010199ba391296fbdfe7965d9970936f5dffb641cc646aa795b159232f78d2adc0e5ddb1bf7d755c48ca5e204a34e14c770188ef7c9826a0541b75602da6adc28bf3c7882e6dc061b726e2a4885278d7a9d4fa37be88abfc31fb66768222eca3be3f68a5dfeaf22d677c5f29ac952e0bd0b72d8255b60a7d491be1255106b7424ea02b46751f75d84d3ae036771b69a31fd937d6c0fef449dc4b1e3cea5366cae3839f5029fa89579cd122980a56f0a2e4c35e973bb67f9c02504926d50ff2ac874c9c6830e734135a79a51481a877d8ff58d0c8a1477d799e3ab3e2757765746b9922dee80b8a99a25c0522ab3a86ebb1fb0023a41dd4f1876b2ba572b5ad057e07cdbfa6db5e93509b123be540f2ab09aa1371d3efd2f9841efc4c747ebe991c4a7a3af4609988436a0b75ea02519abff82e3d82f410698e2105af01e7e29c5ea87f556b60b7a9edf2a8cbe76e094f299fcf3b31a86c89284b7376f670e1b45a23724fe2b1f8e7f07e0bb8e12b6e326db394921d811011e7b05c019e28adcae8b96a3fba22b702f1791ab9822f0786ac8cc39b7a98a6b0882add1e0919fe0fc381da0e9d9acc113e47e7fb4d5f3c7e7ae28ae60793d5429404925f33f621b3808c5bd0b2d01a8f1bb01642ebe8c00366d48f1cf56a775e5d8e3e0d344ca04ff2e3aa06d350728539c71803337d142f4890fc95c9d960e8dbb3ad37aaf8eb1280eb4c616395cfaac01587b672d52b5f5be6f274ea161204780f3ebcb6fc2cf3c5ff82b95c288b1fd8ee184c5a723399e8591f7f393e95486995347f738a13a378fd7250dd7d9dce3bbc5ab7e157b93710df20dc44405053bf030fa6ba0fcdabf48cf2ad364bae3b50b2b6b615c04cbcc9f61aa18189041022f03a3a9e63334c22a4208d66a575896395599e69ec20ebb4f251f9ff4230a5ec11f63504a1261b4a2fec8a3fdff30dff61dce37a4e4db7523391d4bf37e1993ada256b0e464015fb8187a2f2a099ac14fffb99b32b110aa885f6b98a4c94ddbf7c012e14848ce6d8ca05f2ae6b948e3aeb0a04a769a4c5d5b51d210ec189d9ecf250583c268d92336d21c0e15e4e43e9ac49d29a77d907c2bb48b2109465686b6c3d541a9a80968017a420c7f1d9a87be01e82efa679a00c90f9ce308365c6531595c30dfcbc3e6f2730c859feb49763a5bfd444afd11af0c3bb8a01900da2a4bfd3c7a884af250e4c544dae3ef1539c3e190c1c49de95478e95be8c377a9dd525bfcad8fee65ad82903fe4e22f0ac4c01ba7ea7bc69d6af64cd945b169a5bf8a9e567f82918c562d282066d15e24f523a5a860f8bbd713991a1a873b3c461a1714771ed72504b42da8ff0aac938219c30dc5c247d546ae68d7e2edcdb945bd0a41b3187f87b4efee08f4d361c5726eb85f39fdb320e554e85eceff374489e55f2697d81818d8f4018a2ffc9e4519e81985160da676d1d9a8d9aa4b92ebfbb9e8d2f62e142374ef1597461c04be6f371b4912356f31563213379b73934196fafafc890568d36c9cd0d8821e400d70042d90fb3048a22352d003f09cfbd815f8d7359e29e3c836b768c95c9a55e510d9806d1ef4761229ada799c35112a8bd8ec9ba7bf89680979d689946dae81f06835760d6fbce453981f25631d320db5eb44728bdd2013b0d1796de60b2fab291391d884eb532661deaad35b6380b3be36d0cd03b58049721dd77459ecdaaa9b40f5abaec62fbdfb4ec9e9e470eec1fc5a61f306066948e3fa31d1e069a7f28befcc74c12083bfb0c632afe2a2882bd9e6a37dac21120d3bb4f9ea053854bdde843a4da28a270ead7025a6a12d21c608ebf34ee8328a2c89d3bda3c02ab3befea760c614e6de734a2f921e38266d281bf38c7d668ebbf97aca7532160f4921bcc3e3daefb0729ad5e86ad90403f32fd60096a00f07bcf76577451bf9753e203df556c68fc3dd71c046dee2d55f5d587e7b71bf3e8619ac324a75431abda708e94f7239fe0b0fa75ff7a11985dc26b480b2326b0a80db18fb1b287a1d2219a054805319050f244c65cfa82e58099b1a92cca7cf1a64943ee58fec374511b3e84b8e066adbe65fa87ee0afcc966877fc68946647bdbb698ad4d5dbf6ba17b476ee33b4b73fde3519eb369239018665cbb280614003b9fefc418f59ebf0001263eef391310d0c9cd70d11e59f87cdd7c8ecede3b71a06c3a977efff29577c63f3b04332dff52d30ebde22a2cd5b3d91cc1fd6eebb6a2ee1e953492b5bf8b0a6eade75cd9bb8a8f276ac4228b735e1b56823026367fbde09afe5bd02efc4b00a4489a3d2ba5c74cd56979a3f5ec63570155d68dba2834264ae70954f34956ef004208cf88b603b409c91e109e73b48cf50af1c5a8a4a1280b6db7098b29fdb510abc966f31e516a9e59cee647710de7fea32659a12db2d385a0baad1d68220302ca8794406afd395046297f6f6e303e9689b40cbf0f6cfb8ec6fc88a02b72012b94798e6fcb4e0681dd5c9bc9d44f1bfb816d623e434d7b397d978328d99f9c9bec990e856e27de6bc48c172593f8e81708d29a636807509e97326c17d28c368e52b0af7c6d56566fe42002a07d81c42a87d0d541cf623db9cbecfde2944f6bdc11c1f486919357699118d9c666fc357bfc11734b5ba6be6033473e7ebb5300b83d3870f4fa51eb601e4ca11eb66c66f0cbd44ad1da4f7e744afe415bff7897ce80817b3975b5be66324973770018bfdb30cd08cb6831c7d3c60f8bafcc168fde1f86f110c4b071783102879943b40c4a31c06101c8d52c800c28926b9007334296d000776ec7b489eeac2dceac250fbc4cd2c8e4c54bbda7d9820116244e2cd0e85ff718c4345b2a812c6adf12a0870e8dd27a0040e78a1a685b229ce75f00c79f66c5da40590b8a2afeb7a96a1bd5ee17d27a6212fb367ac9b82ab689b5aa8afb90a0496f942667fe42d572e4749e36e9ba456810ca133196e9f75f00e2897f6b0888f0a9af29951b5be3a2f63a9f8d9d225e83937f15c349faee24f2f5c16a48b460a9e4a6c4c80cb496523986bf27edac76aa733e68ed238c17d85b8dd49eb05424e5889fd3d4e183ff1ed1f348d7e0889faf167dedbd59ee874cb3070069d854184c7d9305b7af2cf1adc09533273f3be154f272baded0e03d836465e655cb35ce5f666588d682f95ae789d10c13fedf883359b0fa45a27894f4eeb63ed2a86f5c98e93f9c5a43ca104d70cd8c0ed8a4da7804c6c8091b6369bc3988dd201cadb636b4fbb90b0511ae1e4d508e4b7ab551c4f130d0f72906f61bd9270c36e7b474d411eaca5c93fc70533ba76c2dc0a59145a6f3d7397480955758cc36362be14d987dad5633bbfa208a7c8c36140ac8f4ae4538fad3a33eb6438a1f2466fc523de92bd1698345d7f2fd114b78adfee9d00fa9b4a9538b45a27d66ac3f92aed2ae9ec74be8fbd8c647d45911c79b2f945e71bc96b06d5b5f3cfb2317fb1161a84f4bd0c8b2999e606de7f8910e28a2a25c29eed13656d1590b0e2f46c03afb5529fb8d4fd11f8c77a5c38fa5963ce8a1c0d029d75c3236f16caeed92340d55a20d453374dac3fa17817a66b2e29f23485af8316367896b2952233035522e19a52980655ff9fe08b236f89543cb2232673f7009c3810006af4b213e5e20e07479f0b3a85da9e88e6ec2d70abc24f10b0883d10bff855d423f598e17566b3355bde2167169c3d6dc094d505599c88dd7702d69edc9a856e1e89bab79385a6c102d277bdf50c877d1b5715d141c688779a67d388e436ac8ed784b806c7372bcc4cdd83400219a36473550e301be47bdfe7104dcca2d79931937479d4922b969dbdf4c9ed7c8bd7d1fd3f458365eab0a8a8a5e3808265760ee9d40d2fe15cabab961b668f026f04c1567094b44febd20b6354f5d863c50aca5e0e6cede70a67d5678f78fdff39c71a701abfb56a12697c8800c7016cbe0c987749f311b39ae257c07e38aa75f8bb34f829f94a9a821fbeabae69d02d21fd90a56a0518bd6fa8d7e0a6998f53e6f9a0584c1c6d030ff39f362bf9cffe702c30c6b161c0b559f5a794ce895c57b36c710135065dc7a030628ec64b466692b7df7889dc9d4420e46133afe91eaf6cdba79af006b03b281298caf4e3cd900173e1104a808a5d8d8c14e952aecf9c63d59c719318d0d9fbc77f64608f33996477537daedc49af37498f783543de0f60f0fab3a2db35aa7f61a595c18a0591da2c9a57939161d614e18542b889f5404397e2478393816a4bf8c6bd501873f9737ef296bf171897f42fca2605ad334fec42dc5df79a4a22a2c5d502af1f5773ba671ee83324e174047c07eee7031874254d71c248f558515442215136cd058df6a2d4f529979a6b05455d19eb368760d453377c1fd4f4292758028f26306006304312234756310454cea238fdd1255487c1430390eceb987c86610b7a0fae2936756202247968af6099fa9e92379548d2ab36328834dfe88a412f5bd662fc3dbfad225f3c2060fec9c1511c168c1a43b7967624d4ca5e43b9842160f5e7ff3851fa951be4d9020f9582dc814c9498adafcd5248ccae5d479218d903b296ec384151ec8699c56e22ca95a9b613c1f1fd3b4f735045badd75587411fdd45686374ca6938b35af2d93ff61d628236b1fe631672839720014dfff54387cb537872c19fa380d2c7ef837c6d9765b52cd2064a771d50d6d61702d04a6ccaf8b92905571c82b658c0c5e2191631f236f0acd0f956fe67af42bfe017471e98bb61fec2113585708b6f4a90f6a15c1eec02ae1358e214a4a83ce630f5a7759ddf58d7d3acf65d083104454f6e7c13bd0f7e65bcc739bd3c4f8188abacadaed2bd9c24dfbe42b7d14c7d5919b948471af43bfd8531ea1d0d3719beb82d47f0eefe248361785e36610dfc4a8530501c9b3ad2e32aa21e6829a0ae0b77834ff3ff3e3f3cb35c4ca785680e420a4fbc3c3a872f273a02fb30f58cc2d6f9865b594f67c616d0010c422dbb10d021daed4046ebd70ec5eda0a11f40e7f089477d31a513bf3b0deaa5b4474f6f8a548053f0f736231648094ddb73de02bb3d1ae496d7c3c92da8c0fdd8124f1715da8e38e8829b1c136fff74bcf3bd0cba93a405c9d17bf6f077b8f2fd00e88b6bd383192a725e6305d36c3e850e76034b442693c69eebadb25d37954084dcdb3dfc91240482d77b3c35e90e1d33c543486693831f3aa5ca1be5737e81a32dcff31c7b71b62bdaf03600d7c23d39e8529532a908358a1a1b04eba9d8e2b9cec7da2f29b882568e9fbd91ca0324b76eba26095343b25d5a72d84a806c74805d4656a1f1b57fc48deafef1f7129aa481023bc56adaf31fee173c05f8e856607f3179a3865c9eb14ab778bd6bb2793acda7ddde54bfd7a914047f42ea61e20825b3d6a10c7ef6b65c576956c286bd2d9b07c8d523c81bc868b5c128e2b0702844190763f09f313d52a8fa62d9764868234c2946756963519326c6ad79f08ec1c97fb9019e4952078078937ce4770eb3c92e3330fa59b91e9af0a330f187673bd10715db563fc23b17c676868aa0e5e1b51eecdbd6b59e095d8e3aa3827eebafb4efca6b20a317093c844b099374651651d72f871aa80c01cbc8f2ef1266aab157248b23689fe6352b82057fbad8c852877a4cb7c0f4d97d6d3e1cba99f241aef08d6eb5bc0a5e64268803a8ef71cc8731ada4b41c97bd56bbf5bfd4e0a9379491190557ecdf488d47de11e49c074f91e85ddf0e429b4c8391a2bc07d88cae0a86b402f7a834862b31fdc68189336389f8799f18f83e0437bdf6d4389b89858a81fb81eda423a8cf0a84a291ad0312f6c76198325bdfef457821059144f5ae70a87f750d93efdef7f39a00a7db08213c69c6a77f9b76bdb58401a76bfc283eed3ddc79f74983ff4a5712406f8fa2c6ea3a4ec3c4c5ce1b45545ba8e6f2fd16274f6f774c9ab8bd303a48acdeeb68569bd6d700000000000000000000000000000000000000000000000000000000000000000000070d151a1e242529", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 64, + "comment": "rej_bounded_poly (sample_uniform_eta) requires 2 SHAKE blocks", + "msg": "48656c6c6f20776f726c64", + "sig": "bdbd590a2244f0f2185e9155e694d8fc835f58c8e115693819fd64c358d3ba0d05b083019bf1e180f4d0b50e2e6a682d1fd041a3170774db4fde836c891cbadba412accdbe13c5d17564e84bb9ce76346f2b53f6b239cb63ed2d3eb2c8e45fcf5ca87ace938157de96f562460718fe21c2af8d1ad8e7c83413b197ac0e89b8db3e1fe6aeae126119d8ea4795ede08bad86e8334baf970e4eca2af4b580c31251ae6eefbd045abe57c782053aff152d4272650edd6984d601f3b81f7cc63d7c712908b9051dda45b672905c4135a20c92b871d987ddca21e571e6b92778afbac2666f1d057d68e4fe3aea479383b61c798705f20c37c3abe218b9d6a6d8571c92eaf5f65322d19fb90747cb65562c65d0428d1161a2fafa4d933ae6b8948a031be22f103d3227efc7d5b19e5aa541d43207d2a2dc952435d85739556fe2894d0232284262c751f54adfaae7cf250f7d9d98e351c7c398a2eb5010199ba391296fbdfe7965d9970936f5dffb641cc646aa795b159232f78d2adc0e5ddb1bf7d755c48ca5e204a34e14c770188ef7c9826a0541b75602da6adc28bf3c7882e6dc061b726e2a4885278d7a9d4fa37be88abfc31fb66768222eca3be3f68a5dfeaf22d677c5f29ac952e0bd0b72d8255b60a7d491be1255106b7424ea02b46751f75d84d3ae036771b69a31fd937d6c0fef449dc4b1e3cea5366cae3839f5029fa89579cd122980a56f0a2e4c35e973bb67f9c02504926d50ff2ac874c9c6830e734135a79a51481a877d8ff58d0c8a1477d799e3ab3e2757765746b9922dee80b8a99a25c0522ab3a86ebb1fb0023a41dd4f1876b2ba572b5ad057e07cdbfa6db5e93509b123be540f2ab09aa1371d3efd2f9841efc4c747ebe991c4a7a3af4609988436a0b75ea02519abff82e3d82f410698e2105af01e7e29c5ea87f556b60b7a9edf2a8cbe76e094f299fcf3b31a86c89284b7376f670e1b45a23724fe2b1f8e7f07e0bb8e12b6e326db394921d811011e7b05c019e28adcae8b96a3fba22b702f1791ab9822f0786ac8cc39b7a98a6b0882add1e0919fe0fc381da0e9d9acc113e47e7fb4d5f3c7e7ae28ae60793d5429404925f33f621b3808c5bd0b2d01a8f1bb01642ebe8c00366d48f1cf56a775e5d8e3e0d344ca04ff2e3aa06d350728539c71803337d142f4890fc95c9d960e8dbb3ad37aaf8eb1280eb4c616395cfaac01587b672d52b5f5be6f274ea161204780f3ebcb6fc2cf3c5ff82b95c288b1fd8ee184c5a723399e8591f7f393e95486995347f738a13a378fd7250dd7d9dce3bbc5ab7e157b93710df20dc44405053bf030fa6ba0fcdabf48cf2ad364bae3b50b2b6b615c04cbcc9f61aa18189041022f03a3a9e63334c22a4208d66a575896395599e69ec20ebb4f251f9ff4230a5ec11f63504a1261b4a2fec8a3fdff30dff61dce37a4e4db7523391d4bf37e1993ada256b0e464015fb8187a2f2a099ac14fffb99b32b110aa885f6b98a4c94ddbf7c012e14848ce6d8ca05f2ae6b948e3aeb0a04a769a4c5d5b51d210ec189d9ecf250583c268d92336d21c0e15e4e43e9ac49d29a77d907c2bb48b2109465686b6c3d541a9a80968017a420c7f1d9a87be01e82efa679a00c90f9ce308365c6531595c30dfcbc3e6f2730c859feb49763a5bfd444afd11af0c3bb8a01900da2a4bfd3c7a884af250e4c544dae3ef1539c3e190c1c49de95478e95be8c377a9dd525bfcad8fee65ad82903fe4e22f0ac4c01ba7ea7bc69d6af64cd945b169a5bf8a9e567f82918c562d282066d15e24f523a5a860f8bbd713991a1a873b3c461a1714771ed72504b42da8ff0aac938219c30dc5c247d546ae68d7e2edcdb945bd0a41b3187f87b4efee08f4d361c5726eb85f39fdb320e554e85eceff374489e55f2697d81818d8f4018a2ffc9e4519e81985160da676d1d9a8d9aa4b92ebfbb9e8d2f62e142374ef1597461c04be6f371b4912356f31563213379b73934196fafafc890568d36c9cd0d8821e400d70042d90fb3048a22352d003f09cfbd815f8d7359e29e3c836b768c95c9a55e510d9806d1ef4761229ada799c35112a8bd8ec9ba7bf89680979d689946dae81f06835760d6fbce453981f25631d320db5eb44728bdd2013b0d1796de60b2fab291391d884eb532661deaad35b6380b3be36d0cd03b58049721dd77459ecdaaa9b40f5abaec62fbdfb4ec9e9e470eec1fc5a61f306066948e3fa31d1e069a7f28befcc74c12083bfb0c632afe2a2882bd9e6a37dac21120d3bb4f9ea053854bdde843a4da28a270ead7025a6a12d21c608ebf34ee8328a2c89d3bda3c02ab3befea760c614e6de734a2f921e38266d281bf38c7d668ebbf97aca7532160f4921bcc3e3daefb0729ad5e86ad90403f32fd60096a00f07bcf76577451bf9753e203df556c68fc3dd71c046dee2d55f5d587e7b71bf3e8619ac324a75431abda708e94f7239fe0b0fa75ff7a11985dc26b480b2326b0a80db18fb1b287a1d2219a054805319050f244c65cfa82e58099b1a92cca7cf1a64943ee58fec374511b3e84b8e066adbe65fa87ee0afcc966877fc68946647bdbb698ad4d5dbf6ba17b476ee33b4b73fde3519eb369239018665cbb280614003b9fefc418f59ebf0001263eef391310d0c9cd70d11e59f87cdd7c8ecede3b71a06c3a977efff29577c63f3b04332dff52d30ebde22a2cd5b3d91cc1fd6eebb6a2ee1e953492b5bf8b0a6eade75cd9bb8a8f276ac4228b735e1b56823026367fbde09afe5bd02efc4b00a4489a3d2ba5c74cd56979a3f5ec63570155d68dba2834264ae70954f34956ef004208cf88b603b409c91e109e73b48cf50af1c5a8a4a1280b6db7098b29fdb510abc966f31e516a9e59cee647710de7fea32659a12db2d385a0baad1d68220302ca8794406afd395046297f6f6e303e9689b40cbf0f6cfb8ec6fc88a02b72012b94798e6fcb4e0681dd5c9bc9d44f1bfb816d623e434d7b397d978328d99f9c9bec990e856e27de6bc48c172593f8e81708d29a636807509e97326c17d28c368e52b0af7c6d56566fe42002a07d81c42a87d0d541cf623db9cbecfde2944f6bdc11c1f486919357699118d9c666fc357bfc11734b5ba6be6033473e7ebb5300b83d3870f4fa51eb601e4ca11eb66c66f0cbd44ad1da4f7e744afe415bff7897ce80817b3975b5be66324973770018bfdb30cd08cb6831c7d3c60f8bafcc168fde1f86f110c4b071783102879943b40c4a31c06101c8d52c800c28926b9007334296d000776ec7b489eeac2dceac250fbc4cd2c8e4c54bbda7d9820116244e2cd0e85ff718c4345b2a812c6adf12a0870e8dd27a0040e78a1a685b229ce75f00c79f66c5da40590b8a2afeb7a96a1bd5ee17d27a6212fb367ac9b82ab689b5aa8afb90a0496f942667fe42d572e4749e36e9ba456810ca133196e9f75f00e2897f6b0888f0a9af29951b5be3a2f63a9f8d9d225e83937f15c349faee24f2f5c16a48b460a9e4a6c4c80cb496523986bf27edac76aa733e68ed238c17d85b8dd49eb05424e5889fd3d4e183ff1ed1f348d7e0889faf167dedbd59ee874cb3070069d854184c7d9305b7af2cf1adc09533273f3be154f272baded0e03d836465e655cb35ce5f666588d682f95ae789d10c13fedf883359b0fa45a27894f4eeb63ed2a86f5c98e93f9c5a43ca104d70cd8c0ed8a4da7804c6c8091b6369bc3988dd201cadb636b4fbb90b0511ae1e4d508e4b7ab551c4f130d0f72906f61bd9270c36e7b474d411eaca5c93fc70533ba76c2dc0a59145a6f3d7397480955758cc36362be14d987dad5633bbfa208a7c8c36140ac8f4ae4538fad3a33eb6438a1f2466fc523de92bd1698345d7f2fd114b78adfee9d00fa9b4a9538b45a27d66ac3f92aed2ae9ec74be8fbd8c647d45911c79b2f945e71bc96b06d5b5f3cfb2317fb1161a84f4bd0c8b2999e606de7f8910e28a2a25c29eed13656d1590b0e2f46c03afb5529fb8d4fd11f8c77a5c38fa5963ce8a1c0d029d75c3236f16caeed92340d55a20d453374dac3fa17817a66b2e29f23485af8316367896b2952233035522e19a52980655ff9fe08b236f89543cb2232673f7009c3810006af4b213e5e20e07479f0b3a85da9e88e6ec2d70abc24f10b0883d10bff855d423f598e17566b3355bde2167169c3d6dc094d505599c88dd7702d69edc9a856e1e89bab79385a6c102d277bdf50c877d1b5715d141c688779a67d388e436ac8ed784b806c7372bcc4cdd83400219a36473550e301be47bdfe7104dcca2d79931937479d4922b969dbdf4c9ed7c8bd7d1fd3f458365eab0a8a8a5e3808265760ee9d40d2fe15cabab961b668f026f04c1567094b44febd20b6354f5d863c50aca5e0e6cede70a67d5678f78fdff39c71a701abfb56a12697c8800c7016cbe0c987749f311b39ae257c07e38aa75f8bb34f829f94a9a821fbeabae69d02d21fd90a56a0518bd6fa8d7e0a6998f53e6f9a0584c1c6d030ff39f362bf9cffe702c30c6b161c0b559f5a794ce895c57b36c710135065dc7a030628ec64b466692b7df7889dc9d4420e46133afe91eaf6cdba79af006b03b281298caf4e3cd900173e1104a808a5d8d8c14e952aecf9c63d59c719318d0d9fbc77f64608f33996477537daedc49af37498f783543de0f60f0fab3a2db35aa7f61a595c18a0591da2c9a57939161d614e18542b889f5404397e2478393816a4bf8c6bd501873f9737ef296bf171897f42fca2605ad334fec42dc5df79a4a22a2c5d502af1f5773ba671ee83324e174047c07eee7031874254d71c248f558515442215136cd058df6a2d4f529979a6b05455d19eb368760d453377c1fd4f4292758028f26306006304312234756310454cea238fdd1255487c1430390eceb987c86610b7a0fae2936756202247968af6099fa9e92379548d2ab36328834dfe88a412f5bd662fc3dbfad225f3c2060fec9c1511c168c1a43b7967624d4ca5e43b9842160f5e7ff3851fa951be4d9020f9582dc814c9498adafcd5248ccae5d479218d903b296ec384151ec8699c56e22ca95a9b613c1f1fd3b4f735045badd75587411fdd45686374ca6938b35af2d93ff61d628236b1fe631672839720014dfff54387cb537872c19fa380d2c7ef837c6d9765b52cd2064a771d50d6d61702d04a6ccaf8b92905571c82b658c0c5e2191631f236f0acd0f956fe67af42bfe017471e98bb61fec2113585708b6f4a90f6a15c1eec02ae1358e214a4a83ce630f5a7759ddf58d7d3acf65d083104454f6e7c13bd0f7e65bcc739bd3c4f8188abacadaed2bd9c24dfbe42b7d14c7d5919b948471af43bfd8531ea1d0d3719beb82d47f0eefe248361785e36610dfc4a8530501c9b3ad2e32aa21e6829a0ae0b77834ff3ff3e3f3cb35c4ca785680e420a4fbc3c3a872f273a02fb30f58cc2d6f9865b594f67c616d0010c422dbb10d021daed4046ebd70ec5eda0a11f40e7f089477d31a513bf3b0deaa5b4474f6f8a548053f0f736231648094ddb73de02bb3d1ae496d7c3c92da8c0fdd8124f1715da8e38e8829b1c136fff74bcf3bd0cba93a405c9d17bf6f077b8f2fd00e88b6bd383192a725e6305d36c3e850e76034b442693c69eebadb25d37954084dcdb3dfc91240482d77b3c35e90e1d33c543486693831f3aa5ca1be5737e81a32dcff31c7b71b62bdaf03600d7c23d39e8529532a908358a1a1b04eba9d8e2b9cec7da2f29b882568e9fbd91ca0324b76eba26095343b25d5a72d84a806c74805d4656a1f1b57fc48deafef1f7129aa481023bc56adaf31fee173c05f8e856607f3179a3865c9eb14ab778bd6bb2793acda7ddde54bfd7a914047f42ea61e20825b3d6a10c7ef6b65c576956c286bd2d9b07c8d523c81bc868b5c128e2b0702844190763f09f313d52a8fa62d9764868234c2946756963519326c6ad79f08ec1c97fb9019e4952078078937ce4770eb3c92e3330fa59b91e9af0a330f187673bd10715db563fc23b17c676868aa0e5e1b51eecdbd6b59e095d8e3aa3827eebafb4efca6b20a317093c844b099374651651d72f871aa80c01cbc8f2ef1266aab157248b23689fe6352b82057fbad8c852877a4cb7c0f4d97d6d3e1cba99f241aef08d6eb5bc0a5e64268803a8ef71cc8731ada4b41c97bd56bbf5bfd4e0a9379491190557ecdf488d47de11e49c074f91e85ddf0e429b4c8391a2bc07d88cae0a86b402f7a834862b31fdc68189336389f8799f18f83e0437bdf6d4389b89858a81fb81eda423a8cf0a84a291ad0312f6c76198325bdfef457821059144f5ae70a87f750d93efdef7f39a00a7db08213c69c6a77f9b76bdb58401a76bfc283eed3ddc79f74983ff4a5712406f8fa2c6ea3a4ec3c4c5ce1b45545ba8e6f2fd16274f6f774c9ab8bd303a48acdeeb68569bd6d700000000000000000000000000000000000000000000000000000000000000000000070d151a1e242529", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + }, + { + "tcId": 65, + "comment": "power_2_round returns a remainder of 4096", + "msg": "48656c6c6f20776f726c64", + "sig": "bdbd590a2244f0f2185e9155e694d8fc835f58c8e115693819fd64c358d3ba0d05b083019bf1e180f4d0b50e2e6a682d1fd041a3170774db4fde836c891cbadba412accdbe13c5d17564e84bb9ce76346f2b53f6b239cb63ed2d3eb2c8e45fcf5ca87ace938157de96f562460718fe21c2af8d1ad8e7c83413b197ac0e89b8db3e1fe6aeae126119d8ea4795ede08bad86e8334baf970e4eca2af4b580c31251ae6eefbd045abe57c782053aff152d4272650edd6984d601f3b81f7cc63d7c712908b9051dda45b672905c4135a20c92b871d987ddca21e571e6b92778afbac2666f1d057d68e4fe3aea479383b61c798705f20c37c3abe218b9d6a6d8571c92eaf5f65322d19fb90747cb65562c65d0428d1161a2fafa4d933ae6b8948a031be22f103d3227efc7d5b19e5aa541d43207d2a2dc952435d85739556fe2894d0232284262c751f54adfaae7cf250f7d9d98e351c7c398a2eb5010199ba391296fbdfe7965d9970936f5dffb641cc646aa795b159232f78d2adc0e5ddb1bf7d755c48ca5e204a34e14c770188ef7c9826a0541b75602da6adc28bf3c7882e6dc061b726e2a4885278d7a9d4fa37be88abfc31fb66768222eca3be3f68a5dfeaf22d677c5f29ac952e0bd0b72d8255b60a7d491be1255106b7424ea02b46751f75d84d3ae036771b69a31fd937d6c0fef449dc4b1e3cea5366cae3839f5029fa89579cd122980a56f0a2e4c35e973bb67f9c02504926d50ff2ac874c9c6830e734135a79a51481a877d8ff58d0c8a1477d799e3ab3e2757765746b9922dee80b8a99a25c0522ab3a86ebb1fb0023a41dd4f1876b2ba572b5ad057e07cdbfa6db5e93509b123be540f2ab09aa1371d3efd2f9841efc4c747ebe991c4a7a3af4609988436a0b75ea02519abff82e3d82f410698e2105af01e7e29c5ea87f556b60b7a9edf2a8cbe76e094f299fcf3b31a86c89284b7376f670e1b45a23724fe2b1f8e7f07e0bb8e12b6e326db394921d811011e7b05c019e28adcae8b96a3fba22b702f1791ab9822f0786ac8cc39b7a98a6b0882add1e0919fe0fc381da0e9d9acc113e47e7fb4d5f3c7e7ae28ae60793d5429404925f33f621b3808c5bd0b2d01a8f1bb01642ebe8c00366d48f1cf56a775e5d8e3e0d344ca04ff2e3aa06d350728539c71803337d142f4890fc95c9d960e8dbb3ad37aaf8eb1280eb4c616395cfaac01587b672d52b5f5be6f274ea161204780f3ebcb6fc2cf3c5ff82b95c288b1fd8ee184c5a723399e8591f7f393e95486995347f738a13a378fd7250dd7d9dce3bbc5ab7e157b93710df20dc44405053bf030fa6ba0fcdabf48cf2ad364bae3b50b2b6b615c04cbcc9f61aa18189041022f03a3a9e63334c22a4208d66a575896395599e69ec20ebb4f251f9ff4230a5ec11f63504a1261b4a2fec8a3fdff30dff61dce37a4e4db7523391d4bf37e1993ada256b0e464015fb8187a2f2a099ac14fffb99b32b110aa885f6b98a4c94ddbf7c012e14848ce6d8ca05f2ae6b948e3aeb0a04a769a4c5d5b51d210ec189d9ecf250583c268d92336d21c0e15e4e43e9ac49d29a77d907c2bb48b2109465686b6c3d541a9a80968017a420c7f1d9a87be01e82efa679a00c90f9ce308365c6531595c30dfcbc3e6f2730c859feb49763a5bfd444afd11af0c3bb8a01900da2a4bfd3c7a884af250e4c544dae3ef1539c3e190c1c49de95478e95be8c377a9dd525bfcad8fee65ad82903fe4e22f0ac4c01ba7ea7bc69d6af64cd945b169a5bf8a9e567f82918c562d282066d15e24f523a5a860f8bbd713991a1a873b3c461a1714771ed72504b42da8ff0aac938219c30dc5c247d546ae68d7e2edcdb945bd0a41b3187f87b4efee08f4d361c5726eb85f39fdb320e554e85eceff374489e55f2697d81818d8f4018a2ffc9e4519e81985160da676d1d9a8d9aa4b92ebfbb9e8d2f62e142374ef1597461c04be6f371b4912356f31563213379b73934196fafafc890568d36c9cd0d8821e400d70042d90fb3048a22352d003f09cfbd815f8d7359e29e3c836b768c95c9a55e510d9806d1ef4761229ada799c35112a8bd8ec9ba7bf89680979d689946dae81f06835760d6fbce453981f25631d320db5eb44728bdd2013b0d1796de60b2fab291391d884eb532661deaad35b6380b3be36d0cd03b58049721dd77459ecdaaa9b40f5abaec62fbdfb4ec9e9e470eec1fc5a61f306066948e3fa31d1e069a7f28befcc74c12083bfb0c632afe2a2882bd9e6a37dac21120d3bb4f9ea053854bdde843a4da28a270ead7025a6a12d21c608ebf34ee8328a2c89d3bda3c02ab3befea760c614e6de734a2f921e38266d281bf38c7d668ebbf97aca7532160f4921bcc3e3daefb0729ad5e86ad90403f32fd60096a00f07bcf76577451bf9753e203df556c68fc3dd71c046dee2d55f5d587e7b71bf3e8619ac324a75431abda708e94f7239fe0b0fa75ff7a11985dc26b480b2326b0a80db18fb1b287a1d2219a054805319050f244c65cfa82e58099b1a92cca7cf1a64943ee58fec374511b3e84b8e066adbe65fa87ee0afcc966877fc68946647bdbb698ad4d5dbf6ba17b476ee33b4b73fde3519eb369239018665cbb280614003b9fefc418f59ebf0001263eef391310d0c9cd70d11e59f87cdd7c8ecede3b71a06c3a977efff29577c63f3b04332dff52d30ebde22a2cd5b3d91cc1fd6eebb6a2ee1e953492b5bf8b0a6eade75cd9bb8a8f276ac4228b735e1b56823026367fbde09afe5bd02efc4b00a4489a3d2ba5c74cd56979a3f5ec63570155d68dba2834264ae70954f34956ef004208cf88b603b409c91e109e73b48cf50af1c5a8a4a1280b6db7098b29fdb510abc966f31e516a9e59cee647710de7fea32659a12db2d385a0baad1d68220302ca8794406afd395046297f6f6e303e9689b40cbf0f6cfb8ec6fc88a02b72012b94798e6fcb4e0681dd5c9bc9d44f1bfb816d623e434d7b397d978328d99f9c9bec990e856e27de6bc48c172593f8e81708d29a636807509e97326c17d28c368e52b0af7c6d56566fe42002a07d81c42a87d0d541cf623db9cbecfde2944f6bdc11c1f486919357699118d9c666fc357bfc11734b5ba6be6033473e7ebb5300b83d3870f4fa51eb601e4ca11eb66c66f0cbd44ad1da4f7e744afe415bff7897ce80817b3975b5be66324973770018bfdb30cd08cb6831c7d3c60f8bafcc168fde1f86f110c4b071783102879943b40c4a31c06101c8d52c800c28926b9007334296d000776ec7b489eeac2dceac250fbc4cd2c8e4c54bbda7d9820116244e2cd0e85ff718c4345b2a812c6adf12a0870e8dd27a0040e78a1a685b229ce75f00c79f66c5da40590b8a2afeb7a96a1bd5ee17d27a6212fb367ac9b82ab689b5aa8afb90a0496f942667fe42d572e4749e36e9ba456810ca133196e9f75f00e2897f6b0888f0a9af29951b5be3a2f63a9f8d9d225e83937f15c349faee24f2f5c16a48b460a9e4a6c4c80cb496523986bf27edac76aa733e68ed238c17d85b8dd49eb05424e5889fd3d4e183ff1ed1f348d7e0889faf167dedbd59ee874cb3070069d854184c7d9305b7af2cf1adc09533273f3be154f272baded0e03d836465e655cb35ce5f666588d682f95ae789d10c13fedf883359b0fa45a27894f4eeb63ed2a86f5c98e93f9c5a43ca104d70cd8c0ed8a4da7804c6c8091b6369bc3988dd201cadb636b4fbb90b0511ae1e4d508e4b7ab551c4f130d0f72906f61bd9270c36e7b474d411eaca5c93fc70533ba76c2dc0a59145a6f3d7397480955758cc36362be14d987dad5633bbfa208a7c8c36140ac8f4ae4538fad3a33eb6438a1f2466fc523de92bd1698345d7f2fd114b78adfee9d00fa9b4a9538b45a27d66ac3f92aed2ae9ec74be8fbd8c647d45911c79b2f945e71bc96b06d5b5f3cfb2317fb1161a84f4bd0c8b2999e606de7f8910e28a2a25c29eed13656d1590b0e2f46c03afb5529fb8d4fd11f8c77a5c38fa5963ce8a1c0d029d75c3236f16caeed92340d55a20d453374dac3fa17817a66b2e29f23485af8316367896b2952233035522e19a52980655ff9fe08b236f89543cb2232673f7009c3810006af4b213e5e20e07479f0b3a85da9e88e6ec2d70abc24f10b0883d10bff855d423f598e17566b3355bde2167169c3d6dc094d505599c88dd7702d69edc9a856e1e89bab79385a6c102d277bdf50c877d1b5715d141c688779a67d388e436ac8ed784b806c7372bcc4cdd83400219a36473550e301be47bdfe7104dcca2d79931937479d4922b969dbdf4c9ed7c8bd7d1fd3f458365eab0a8a8a5e3808265760ee9d40d2fe15cabab961b668f026f04c1567094b44febd20b6354f5d863c50aca5e0e6cede70a67d5678f78fdff39c71a701abfb56a12697c8800c7016cbe0c987749f311b39ae257c07e38aa75f8bb34f829f94a9a821fbeabae69d02d21fd90a56a0518bd6fa8d7e0a6998f53e6f9a0584c1c6d030ff39f362bf9cffe702c30c6b161c0b559f5a794ce895c57b36c710135065dc7a030628ec64b466692b7df7889dc9d4420e46133afe91eaf6cdba79af006b03b281298caf4e3cd900173e1104a808a5d8d8c14e952aecf9c63d59c719318d0d9fbc77f64608f33996477537daedc49af37498f783543de0f60f0fab3a2db35aa7f61a595c18a0591da2c9a57939161d614e18542b889f5404397e2478393816a4bf8c6bd501873f9737ef296bf171897f42fca2605ad334fec42dc5df79a4a22a2c5d502af1f5773ba671ee83324e174047c07eee7031874254d71c248f558515442215136cd058df6a2d4f529979a6b05455d19eb368760d453377c1fd4f4292758028f26306006304312234756310454cea238fdd1255487c1430390eceb987c86610b7a0fae2936756202247968af6099fa9e92379548d2ab36328834dfe88a412f5bd662fc3dbfad225f3c2060fec9c1511c168c1a43b7967624d4ca5e43b9842160f5e7ff3851fa951be4d9020f9582dc814c9498adafcd5248ccae5d479218d903b296ec384151ec8699c56e22ca95a9b613c1f1fd3b4f735045badd75587411fdd45686374ca6938b35af2d93ff61d628236b1fe631672839720014dfff54387cb537872c19fa380d2c7ef837c6d9765b52cd2064a771d50d6d61702d04a6ccaf8b92905571c82b658c0c5e2191631f236f0acd0f956fe67af42bfe017471e98bb61fec2113585708b6f4a90f6a15c1eec02ae1358e214a4a83ce630f5a7759ddf58d7d3acf65d083104454f6e7c13bd0f7e65bcc739bd3c4f8188abacadaed2bd9c24dfbe42b7d14c7d5919b948471af43bfd8531ea1d0d3719beb82d47f0eefe248361785e36610dfc4a8530501c9b3ad2e32aa21e6829a0ae0b77834ff3ff3e3f3cb35c4ca785680e420a4fbc3c3a872f273a02fb30f58cc2d6f9865b594f67c616d0010c422dbb10d021daed4046ebd70ec5eda0a11f40e7f089477d31a513bf3b0deaa5b4474f6f8a548053f0f736231648094ddb73de02bb3d1ae496d7c3c92da8c0fdd8124f1715da8e38e8829b1c136fff74bcf3bd0cba93a405c9d17bf6f077b8f2fd00e88b6bd383192a725e6305d36c3e850e76034b442693c69eebadb25d37954084dcdb3dfc91240482d77b3c35e90e1d33c543486693831f3aa5ca1be5737e81a32dcff31c7b71b62bdaf03600d7c23d39e8529532a908358a1a1b04eba9d8e2b9cec7da2f29b882568e9fbd91ca0324b76eba26095343b25d5a72d84a806c74805d4656a1f1b57fc48deafef1f7129aa481023bc56adaf31fee173c05f8e856607f3179a3865c9eb14ab778bd6bb2793acda7ddde54bfd7a914047f42ea61e20825b3d6a10c7ef6b65c576956c286bd2d9b07c8d523c81bc868b5c128e2b0702844190763f09f313d52a8fa62d9764868234c2946756963519326c6ad79f08ec1c97fb9019e4952078078937ce4770eb3c92e3330fa59b91e9af0a330f187673bd10715db563fc23b17c676868aa0e5e1b51eecdbd6b59e095d8e3aa3827eebafb4efca6b20a317093c844b099374651651d72f871aa80c01cbc8f2ef1266aab157248b23689fe6352b82057fbad8c852877a4cb7c0f4d97d6d3e1cba99f241aef08d6eb5bc0a5e64268803a8ef71cc8731ada4b41c97bd56bbf5bfd4e0a9379491190557ecdf488d47de11e49c074f91e85ddf0e429b4c8391a2bc07d88cae0a86b402f7a834862b31fdc68189336389f8799f18f83e0437bdf6d4389b89858a81fb81eda423a8cf0a84a291ad0312f6c76198325bdfef457821059144f5ae70a87f750d93efdef7f39a00a7db08213c69c6a77f9b76bdb58401a76bfc283eed3ddc79f74983ff4a5712406f8fa2c6ea3a4ec3c4c5ce1b45545ba8e6f2fd16274f6f774c9ab8bd303a48acdeeb68569bd6d700000000000000000000000000000000000000000000000000000000000000000000070d151a1e242529", + "result": "valid", + "flags": [ + "ValidSignature", + "BoundaryCondition" + ] + } + ] + }, + { + "type": "MlDsaVerify", + "publicKey": "da2593ac1dddc220922b9b1972a2549aaca212f972786a5a5d7c2e00abc407a1e1e2b3fb7c6244aa5dfaacd38901a0389b66e557039582fde8a8e13696dab7466a7b4b79f5b00345631884b8962f887b20159bd991bb47a24abf7d3dab9e7c84f0816b071a3962a3b44b5eefc17df3703ad1acab4d263bd4123037a827df786dd64d21d57bf2a8768f0867d2c690d0cd1c31bf273e1805203271d553cd215530fc62ebde4dc55ddbce9a4cc9279011e1c5e9f8237ad8ee37dff2a9936d5827aef0b9f1c1354658b9e5685e1ecbe5bc6579a51668b84c6dc6f7c98a9eb33f11908c2cf6e6d97e4ebd55607de74259f730fd6a8bd242923e32d50c1deb803cefcb2182ee5933408ab984bce691c67f53e7b71193f72d2b15ebd9f49d283e4319807ac937e46843152985fb3a2d15aa94d060aad502f09553905ff0e2f8208ea89e3f08d1bd920b6ea2029c82243da6faedb66049d9f891df9d33fa466763502068235b73bc1fe56420822b5c35d7cefad0fbc5dd9f83d078661eb004ad981a65a52fb6e3d577f109260f262b7c074eba32b4138df2cced8a0c7fe5db2014fa20779d066df38b1dd49897a1a3975d9a4068f6852a44debf295694d1163c4b810c5dc5aed2089fe6d3b0d185178c63958045300594aa46dcc56a4fa29cc4d10c27e6b23c51be03e63257df25a81c723a19b0e4c40c88886e4c8d7112fd95cd96cf19b0b9584b68da8ce89235a35e721fcad715b85da4d8c00dd9132cb8a266860e83b9d5c36d456be41dd3cc362e22f9c559affc7124d311f94cab786b97ea8f32961a469d60ea26c7ab98ca8f11021cfea996c481048e20175170b32d525a3114b8822f918f19d07d0e2c80749444fb00439ce352b2f2c3b302174d4f8d5627b9ffd125461443970a91a22aa1d48d3d1dfbe30476bf6d77e94a2853cc5a00c7c9d6516f1dee39d127cf9b8bdddb154e8296d085fd9b3512e54b5fbc475604066218d854c4685dfbb5c878466bbc69895d66b63efb6066f3f790e716538332e55ca5dd13b6b7debc7b76a2e4bf13aa131ce20866b8abd68f340221249c81323698ac8f1b8eb672319517f61ba70ccf14ad1cedc5be61f3f45c8b6d9d80f8699035ae92662ca6f60d72e9e20fdbde0d736bd6287ba86b4f20a3d8cd6ea722be3eb08357439b6e8c157bed72cacdde80c389154d03ef85bde388d5c002c50aa6ef0efa2cbc833945a2eb644f6e10d98d2e8ca81f293499986a298a6eca2d6b5e0ffb095954fcf0fe85d4e0e7314dcc026dcec548f04c403ff326cd147db1f60cf391e313a3405f94a88c017ad68dd4854c142d1c7dabc99f571f4250e9644fa7cdaec3a43cc4174017d3cb831e8c0d57cc0b288040bd4b55ab7fbabf7c180ad6089150873c1cb5e894c304d31b0671115b8fda5235aa5a221164c015b23c098a174ea52570625ae1f19ac6b8e8760a66548e3edf2faee6951133fb87287f6a646d036fc5bef7389662f4e7e377c6587617767377575017f878930fed418a8092519729a4413858fe7825bced2fff93734009802e21c2224b25a251a27a4ab14dead1cbd2d2c4c477d6da0a7141370260e3743dad10b136410777429e486dd25334ce56bf0f6609f11d42ba900dc491fed1853f513f218423b089792251f0a18d696ffd586d850cb1aa11e0d1a0e8905fea8b9be08a4984fc9bbbfc787a9fd5e6e04d15eaa33e96d90b859dcee4faa3c4ce3a39beaa0f968cad63d9b87a52c91be8fbe826b76d42b618eabbbfe0014597eb643e3bd755c5213d9437b7758d0b348d67cf48f122a57842e25b93d35e6e2d0a6223fbe2944c8fd4b780ee389a8c53220f08d7bcc816bcb77eb82688a81c37e6f0aab9a7adc84df7c88749996f87326dd5dd5851a7389a443933411d749811e2ca4a3295578e0346b0526ce725aba5d4f41eb236d610b0dcf093ccbaf06076fb90091f83f85c0c20bd475506ccb447dd062a592c987dadf209ec73592c0323f60292bd1ae5f6aef5483b356a0b60d8e47454b1f2831314eec2448391392cf7c69f4d233d9fed59b6fbbd6f3621fe4ee2386115545c436006938e7df1055b6f332a7e84d02f0c457409aee2ac42822fdfdabe0f31734398e30742aeffbd4fa7864a4dcd8870448c3974c10a1d6bcd136e85eb9ae0e218dafd4865911b0e82751c4bcf426de9f29aabccd588e1b4f1c67797c9eaa78e0eeca9441fa6bba61af6be108095eabe5c08ab22c29e84c93f653f5d043b683816db942f5cad2f8699601cd93c9be2a965d2b79fc0b54d339a24404da938cfe5b1fcf6fbe7c59e3ec980ac29fb4173adec2d806f7bca9069cbaa57931ce99b36af16b87ccdce5f7b8166a0858251b22a1a86d4e4dd54f8156135e9d957e6bbb77355c287d09b097dc70564e5f7dc51cab803629fc37525bb17f1d1fdbe22c4774d121e7226d8941ed65a19fd33a6723d100ab86651dbe97f1f1cb23c3f91f48f651c59ac0c4b47e79f05cc4f3a8fe4ee3d388e0c868711dcdfc4ea1b12b1dcae1a550e98e83aa8223b7b2bb601b7750fe0462f2ebf764d9f3b1f27e75ba8713d424074631ef6b35baee7c32d9f6e6930dd42d7694c45de38ec14bcc5b3807993c623111d0897fdeee615ba9726d2886a2970dfe13ba99a3af734bed2b5aa20b95ec483d7e796d9b253e7ebf8caf33731c0d0092cbc29e913ff68fa72ccfc79daf2dcac8965c64d80aa282134b2accea626d3255d3278f9b82aeb2f96b2b475d59d262d553bbbba7576b56b2152d3fed9d344499f668df0b82ff83a16bdee263f8f910f39784b8a014d629a6e8dc621c919af6527c8e5640567f2bac9eee6a8983f983289f2767b593efb5ff48529b78230df9316da7c9e7109844923af3937b5cc0658ba32be1e8c3f2e2adfc5d0c25ebbb4be82317d0fca2ee313f3b21b4268a2fdf1d20aaada9e291103a0eb4b3123b6cfeadb33dfbe08ffe5371291bf61b82b5468240fa6d6500778e2d7907fc4931d8d8fb8482328469e3b5a3e4b27d2db3983f35e00d9e5f4b004f6052fd8b816e58df515c6e61c54c9f62798bdcaed62b68c535201cc8ab476420e5f1b29e789f4f7f354451a1ca0dfe958ed593916fe63e21840023d0612714bd760b7412373f0a049d0e16baa8b0f472d44fc93e52bcf25a5da197239ed0dd6bb678275a7c45e6a87059f0c37b9490b01ebc04a0c9aafdaf018e31a510cedd5159e4d5e8306cb275ccd02f299b39a9b49df40bdf2a0f8611adb378d405b2c143d0d3ac4dfba1037ceaabda369ab352d54535ad8c0276b67e33c77267c57f8989413376835f3f7515fc79a4acb63fa812b516ec3d79a1319e8b9c000622bfffa860309d049035b822112784bee1bd33bac6844819c54a5228091b8d49182312804013520d66a1b41c7c1a4c73f69d88891297a4227a0b73b1c021398847031f135414faf64fcaff42cc51e9088917b57a197134394a1c9f8aa001d439c13e70eb29d18a0a3ca073acb0ecb2d760766921d005f3f3e4ac5e9fa2bd3d2c504fa125e6cfbcb7cda6046dd21361b121b0b6981451b12c2e10bd6a407f49735ef6cfebdc2a5d9391c8751119e62912e3e2f86a5e44d8e4b07fba54e7e0038366687ac3351d92d8de4dc8d798c67488fb168b52f77e0", + "tests": [ + { + "tcId": 66, + "comment": "rej_ntt_poly (sample_uniform) requires 783 SHAKE bytes", + "msg": "48656c6c6f20776f726c64", + "sig": "453abe3b7306bfc3685cc05f254fa627aa77566d18826c252e030d5530c25eea07c1743349c9edb16359c5fee9d02f9294250741048ce6c4f0bde967b3e2f40dd9d8f17b4635436c9a11669a197d7e1217a1daf861c74b41562181ede15729bc1777600295f0524271d8cb7a54be90817ea9e42b631884b967f6d4914257d8b761525245963b94b73a67c4c96ed728ba92fb5d76a6e21a04489a447c013fa8ec5f4fb435fdcd682eb203c2be3f43b54d8f43ff10cc75ccdece2f54bb3e79538b0103076295f5488d2b7fe8bdb251d23d6425822bfd07641254326b5d06426a9a037f6430a6bf740632fc3da4cfc323f7ceb979dee7431351ac1b28bc3ecf2b1c553e55b111dd3a2b290be1732a19e0cad7dc919eaa1e231d5e3f2b375039f07944f175f90b313546706814299593bacece5d3fe219ddf3c663f9e31c947c6297feec219e5342062881a17aaa09a162f17252d9c2174b337a578f77ea9b61e9ad73e5ad590f62da4994bdf24d3c65341f1a1f3c321a4e0f19e3b0c185cd8d0f2e0d6484f36ed62c698cdbe301019b5eea519ef58a2d36660f60c68466615970921ab991bf2734c76bd47853c2912dd50e2c5e5974aa2d3be161d8abf9e320ca1998547304b4e59728453e95d883bceceba7cd99f0bfb868fd5d92da20a492e03b17fa259ca3341f5f9d7f0e9bb19d5b96ea57380c380af4ac4abb4c8db62a11ebe44f296648be8ab8379b8afb5b6629704147574842f56176fc4f78af7b927559c309c771118c82e18cf14243af9e6c0c4214c1fadfb7776897f61d10ec800b4997756a67e124c7a26c7203d36599d4f98f47a182daac1f9d062cee7520977d827a375d41c7c1ad35bbe5720b83c0689431856fecdd961e0d2212cde66e2abdf96df0b60923641add102a62de9caf0421ce1e1abbeb845cc72d15edc245b096b4aa599b4b2dcc6cb0e060c232b101b095afb2c9ccec5ec97325576d694c1bfd1f2c63f37141593f851ea60ad8b897e8e8285b40a9457ebf692b8868ae8524b1efe6ce8cc163cf8f9cd7b444e60ce727c70ed0932bf7601ac13b690ce3c1866e1b87ce82a440de753228a974dac3d6c676c77578544804793357430918ab9ed8aee28d7e907120b3b5aa960d3624074a9a0f52b02e75d62a20a765ac88e889646754e9b73b3da221b13064c18f94ee5e4b25fd621ca0e67c92e1c732520656e3a378d9c1a469714d0b5f4121823383c828ee7753d34a2ec407c7e6b3b5abb802aef5e1131af859cf142bd90cdd7f147280685b094116f7358e2cd9120f09aa90e8957db75fa6a4bf47c796a57ebf18d81e1480c5dc014bcfe82dcbc8b842a0114d8e68243aedddda35a9c9d6023aec9e4e6d986627ef32a7332509440690c5e3113010bd8b0ce7fdd6663b999971e1f605a0cea7fb1bb9bb16d83a8776d28250935d58764d7671d1fc76e810cc1583baac21a40010446b805aff24e7628949139597490438fbb3683a2dfd878723ae6882ac46ce440edca24c45b4c775d4b0057370641fcc303ae68576d809df0f46eae9a7fdcc993f5b9aff5760fdc0506c3ab0772c730110e4c59ac5181fcb5a74db18a9c8e1de5343bc33590bd83a41ecad8ad7eea9e972b2ba6d2a67990e78ed2a10417566146691af6ce752982c8fc17b54d3c291b7cbee7c0c7b37772db5d0d808dc27e16e12ef103d90a6dc373725c00d16d9fe2296e78ef9702ad32e1e95ceda2012e4c026a0e6bed7f594e64109fc4fa30cf1311f7b55dc26aa3f1c5fd2a691b19cc1626b78dc933f2cdb90cd4fe94330905401496c757337240ae934c3f3e2754602689f65fbb266bef423ac328cc3f6b21aad3923512e50c4c9c352a7b9fadb1476bf8de51bae00485cef0e8449eb34ad216ffe98de30208b42200e86dd4dd116ab0f7018963382235198bf72577a4f7e24b91c4d72b608d07846c7f19c751f248583a01f18de9e1f3c8c77065dbae16558b82ffc1f25312397139388e6c5dada753ecc057ffe5e93b3ae3fe33fa7da5139e6cbb8b9f81343c4618d992206e46a641483f852d5a8f962c3a0eda7d6b9da3e8b20233bba0a4452df7587350fb7a692dbaf1b231f15b1c9aa61003d45c90b5a12022073ee3083257a399e1eb420e3c29a2924b3be17f6a2465769a2e311a80aec2a472a5fb06dafdb5f0511240a204c0db80ecd807ac8ffd71de3499bfba55c0eb7986a1950d1149111a7a95bf34f60d611d7010db7e612ce85f1924c3e4ca8f26ddc61ffda8b10ea283f3ed17f37999c62d369e72b90b065e27ddb540bbd8a8feae866f1f439a27aa33fe3ee865088981812b582d12c940ad1aa8da72498cd4909994786edcd43659c56644403740024c04523330b717d45a6263934d7432f0d5f197ff70e04d089631cf910545891a9158f809bb859b57b93a38b48211e8165162fc90cd1559117a6ad8e7ede6ccf48ba6311b3f2443450275f1dc5c84133dd4d7fd2a1f4a02d1c68ef50210f0b673e258080c4c998dbe943d52223b37affe48a5a10b7fdcbaf5793da45106378725b6ec6242bcc91cb6239f90eded2709cdba059e52550e505110120f12658e60676c5a42a84279c52c9c9220efe33f2a2343deb8b3fcebb1a89db762c7d00de3aa0aab3bc88dbddf9ca019e63e8a378dff99c14239885f3a044c2205007d43ab597571bd9ede95f50925beb14a52248a23c20d9693d550206ef39fd2769cd3f2e1bfea346670f4754ce167c140b19d5d9e6f1ad0a67aea8f585d87ea3f6100d8463ac39579fefe7858efb64b68ea4a69fd4314ff77191708813dbf55974f73482f1f25e628e3918b6e7640f0ae15ccfc3b8e57dcb7583b6c2f3ca64607e413d65925453e9abf1fe41fe39bd511ff387fa16edb224042a02ac693d353bb2976cf3e1431ce8442985ddc5243f445111c42d1a937ff855c11fcd195445228621317a3a96f578eb41bc1438d3d5332c1de364ec3e287d8e68da4cf475cdee82ba8d5e16c8c2ed942be2f267b8066a468479d02487d7c6b267b7214a201efcd47cb1288835e056c17583340f26e3a8ab581a535cdafdd8000237c64840d610e907ac18b901ad9a7ee12c85c441c7d7a0eb3266db393f7affe4e83e23c1968622ae0d31804568b241d95ef1b4749e292e23412ad6314ea08dd12be2cf015c92cb4ddfab25cb95b6edbe9989ed73912b37c7b1f3680ff6f39804efe04142e2617b05abe21e45e191f4dd84cb5972ac01934656c566d82aa3c0d7db2877a7f39cb782abed0878461e410f1305d7d5c2dc2f066d330f15711ff91f7a8624503792826b8f64f7d021f764ee8a9a3f140d0b2cb33b667ea86ac9fa246ccf56df5566a0429cad04db2ecb363b5b61557409dac2c249c246470478ca88433f6bd8826bb06b0f07a264c802012aec80fcaa8c34ed01f3d36ac7410eba730ae42aa76f79bcd0af5e1c5fbbec18e8bc06cecc2ce36e098679b1bc626f7032f1b55fc53d4ee05540d19ecc0330a0aedeaee06f61a0142df5e847fba6d9e576215e73ffbf90d0336f394ccd6802fb314f1ccf26cf37fcef23bfd61f14c5851727bd1e1f660dd7b158e02a7469387dcf4dead208405c005f2b1c4642c55770764b18a6e41fe37584709865585a868eea76c3746d3348025bd373be904e5ed9136345bcd6685b64f188b3846b0c3ed2d4c22c3356406eaf84f299bb41c2e893966ec05f761e434579d49687c4237ef59f4e5bf11ae4cfeff61b9472ba9669816e742593b74616bc41a75c874b28b7cca7a12bc9b170a65b60e132ccc351f4efa3d6f9751c3b7564d2363fe223b101620656d017d8d9fb9b22aaaeaca231ea9dc3fdab593e0398f0e74398dc52c3bedf539194d855a4ed0dfa5c23df698c24636e0f15819766aafd00958b72f238bc9e14410942f17f4744bbd72621718d7589688975322093f5bdcb9ebae921b14e0eeed4b1ec1d1c633c230082dfd20dcf41450dc1fc75a56f28fa250f09acc1436cecbea4c8dbaa784bb08224a11a750369910c369379d474d1dcc18bac19a26eb1580bf314344bfde0601fcd0cf933aaa7d9d1e9a967a2a4dcd46fa82b193e26903e3aaf1fffdc35936e41e02bbedef3e5785118ea75e7f795c6b40c6ce0006e3e56ee72ee31114c6238524c8a137fbcd78dcea412f4ceb699bc5c0e10a139cd4be91e4e2a2126208660675a0d287cedc434d65760c1abddf76ab142514f948c4f4c9e30542a3d77e680efcd2d5f2ef3cf4c507f4fd32544c61970f1e277563c6928bc310d34755f341650ed931be20a28be5d6ddec568beb57b72f3edbd3bfe1504c886d0d85ad6531413902e8eddb8bd68866f48a567d258ac764aacbb6c67c335e3e332e05807447fec4ac35e1cc0db3200e1703237c9f8cdaa8913961da8ddf3cfab3749bf0182c1833827fa827dcb4e5b9abc8c0e6b58330d6e79772ce4d682711654fd40802b33f1b9266f40aa2255f39b5079367b832796854916226e0d3c5a179d0d5adbbf120e762f5d293963f6ce655ee859a0572f4a4a87241ba671c408f77f6da9bfd448f10ba03a7f946f53e9f70f84c9e71daaedbfb008d48ee7767dd024c38287bacfd728f7a512ab6c0b2d2cb2493f5626fa6680061f65c7e7f9dd704fe810727d24ad3f943695fb464d82123c53553e4ddd3923b438f8d120cd205766bac7acc3445f0427a21e04d0c205b8136eb1422cc34fcd02086864fd3e19d4fe1564494e45ea2ab00dde2563892e6d01097a5c543202d4d65e405f29a526945e8039c021c0ab8cad1c595878a627d93f65d37744cdcab0638b0436fb1528db39a7dab997ede37a4760ef198f8c85bb34a6a2cdadc975cba57f1ebaff0ee04dab616cad651822ea8240c93022093a81f602b4e4c10630db2379fd587ec1d7b071875ab1da50d145e235b266bc3adf81b3e07f42ebc97a200ed65591b218b8af1a72ff3f30e17411f7fcd52aa7d6d1069d54ef0e9dd4caef0a03fb37f6279ee8639911b930ffdafc4c598de0106a40ee30b820b4677146a3a0f5be403a337606f681c0cd1e23157b3d4bc739750facf96fdb7f59605359e0f23ecaf19893378c1ba21e7ce513b5e8f585f379619c9ee2c3882150eee6346c09c4a4f21bb797acf9f79a64f50193a25bb8e518d7528c854468b66046070e3daaa7c0713479b5e732c5be42a0d92ce85438778406302b70500a65d85e53db216e803aea4843bc408aed1ae3b9c0285cc4e87d7fdcdfcb7dc861c70aad88e98fd9f8c289fddec009e5e95cb9b25066bb8d533c6abbb3c18b27052f3add717e922dfeea7862a6c6b51467d1daaf0d16b33f746473a125427e84827449cedbf28c286b9d6aeb0f2534a85a6a55b5d86de8a5919e7f0d1f242d94a0986ab807c2b4d73da94282d4dc070563d5a550ab5a93fb3cb0423f555552fc63807d3d2d89171b2bdccf75bccacb82931575cc2c0ac6469e1cbfdc05c726c8b96913a1c33f6f176fedc13271b4f4779f21e4fab09684aec588de40ee4c9b0954ee6308acaca752d77ee08e47a019cace10033fa178b5c208d81b67a5e3e26908e7baa9632689aaee6d3c6ddfc93a5538aa8ae7d48c7d8c3eec9d718a023fe70f4b32a1828bcca465f230e3f031e24d7b5a28e70614e39a03f5d835545539567abbc48254e2896bce7bc27f8645fc5281b8b7a4e65d494ab89a9211cf93242a043ee2bdca743f91a1e3a637d1f9b4e4d857b003a899c82a6c971e41238eea039d8513ebb23ebcc225c8f1d5cde0d51e956ef9315f416a8801460c7bbc11776835a36a03a5bd2fa39eb948ca87da2af82b8370962012b93496f73b623577d5c7d4da887f24e33f0a22e57ae981a6e43a9d89f37d1754dc8c153996e6aec33444dcae1a7e47137fa0099f2058c6124b86d81e4e5bdd88b1c383acd1acb3adec017f77c4b045cf78ce63c869b6194f8a97fa3d9bce358aea3225ed4f1aaecc2ff093162d6a7b89b830b8b5d310a35ef79111950cfd71c5c518007c5dd41ce57cfd41d5fbc460c6318748771c9c1ac79ebd14f57f7517aed91b8b6d3efc2a4901d6448471acdfaa22a19ca3dbb559819426ec1084749e10c824bd74ce183783e910bb18ce4159a0ed5f701a84fc817ecbd7cb1d6f792efe34dc59393db775e36df733127667814441bc62a394b6af13d3ab05778eedd1471cf01e387a0085d6f39eef4053e2652c1476dcaedfc172ad9bbf52ba47f9c3f6d6c7698c0a3b7bd35b84be480e0e3544833ed491aabed002a72ef88fd50a822e586c4eca9d62a02fe24e5770c50d36052a98b540b5d1229ed891691244ba7ab1e01b1e851f29beac052432413c4edf117d24a2583c18d332b1ba5f680f26a73a0261a5df128562b9ca25cdc924faab67fca1c9562fd188c283ce0b78fc0d376ca42067b1d0d473cde6eb3747f8fd257d8df4266287a8afc9d9f4fe4850d5ea5fe9fa00000000000000000000000000000000000000000000000000000000000000000000000000000003080c10141d2124", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + } + ] + }, + { + "type": "MlDsaVerify", + "publicKey": "85831a0f2227e81311e33de072fc6ef98be3b76726a2a153a1adff3757a22f03231474e5be784e404c20d11f632190811bb5f88b7302ec1022153e34606b4ca754f15861de1817f274d83a99bc7a195604114d3adeafb7e0f3c2cea783c67270de8c11769d2255adf0d1deeb1aedba1946fbbf49c72f651d8e31e6a7e86610ebc09e2af129c722f78a4273db39f47d0d652a3f92674eea761e77545ea818d8c3e6a70851caf05c391378283b9010de665f5c21065d5de62b1b340fdadc59d5660c219ea161f4bf952c113e9030fb3c7d6d5c8bf0d2f1b02f18425a588fe6ceac66e56ce02ae15bc5004efd60ed3de36959d3255df1814bc4d795ab873960921520df2892ce79aa9e1cc5599f00b3a3077c645f50533a17200fcf91f35ff8371a096cb5d1a23fc019496e2d3c7397d661b29f1a66b39b027b08dc901b9fee53d1812edf96de5b2b720b703bac985ab7a53f123f79d8781032a2d5d24f80a14abbca93c9021fd8e8a8b37629799dcf4e8d8bcae7e065d9ac5f6b82bf77000db6a36e09331aa98962cc6467829f812ddd4e61005902c95b668c7e93eec14c95b76e12006114b29e369d081c21dfd2db1a6cb410f657fbd4f0fe921849dcce7fffce89f83b45563d1af30c6c43e1a11e71a5d1a2ee07a78e8398424bced31c73634c710d17c82869676289c99a28c598488799702d640830332c911a8be41e9bb0bac37a7f55a64b01117878b5c0aac6033de2a5b9fe60823692c4f7efea260ab4d3babb667252d398c626a3cf7955067ce8c6b520cc55f2caf4a30212d69f3a0b5c3257eb4124869539be81a00a612aa205589a7d6fe35dd81d67a02582323b72352aa055db33867974d65416bbad3c72d36652143ec8a3db66608d6b0ed3c5999f976686d7ef1a7effb4c32c7827f1733bac7549bc27f1b51a1bf39a9f5105c723ef8a83e709c50eeff9b12540d850d9c745be9d340b03e16836cffa7e7169e62a377e9d65aa4a039039e4c20c85491b1193c030a862df1416f2379fceaec4e037940a71281f0049ace8da0e7c48cc3c8021bb7753d015480e0766119e2c424c0d59795b18150d4b77ace650883d5d3861e245bae2861a7fd93d28517c67922582ca6cc14ce7b93797491c05f34814f3eb6f2c0be34e2eb14350d851c3d80473fa1d584a4ba267efff574aa5dc5feece5b2f7ceec9e5bad14b3f3d9609e2eb47ff49eb3b23ec708e3964d775dc83b8b4e3bb54f23ca4f375b7f436a415a39aa257f9417cede0cf7192b80676b50ae0573a41c2ea0a41b2a97c3b34b4bc3fe52a85b3a4398ca113a4716980ccb45fccc88f02ce831c7e254ed6ec0fde72a27cc0609a6f5af7ce7fe86f38c4cd1634e6720732f0d254b5b5f7cb14699a64b22de7736b4fb480ef94d1a15f79dfb887d81841acbdd31ec1a5333ea5e770a2aae9605f3f58b5d15d9e11800f2bd3c3b2462892826a69856a2bd2017bb3068080f1a4bfaef2d2e90fd32247610c22ede4e06188c2f4951f3f8bbf3af968392be01e824fb7fb686a038a71af6db02dcb7aceaf2ac28cf37e148abc0356b952c3b09cd8994372442fb234c4030c031a195c13d8a97ebd7214c4f22fbc3edb5e9006560239d7d2dbf6b5efe55907591e9ee72742980997051fdd9013b93bf6df26adb8ae6150666dc5a64f2445927670b6da5a19f29a092b2d47714c07aceca0529c7bb1c713e45089374835ae50c3296685e7131e01e2f2f050552bb062a55cc2074438785d0488c842c1eb7fb69c4f2fb90e7e6bfc4d6c9c7a3907221d717506c4f68e3d1db8cb76fe0423a6e1313f83f75285aab3917cb1ff673aec3e48a42e7862eb1d8f3a4e3c531b3736073c1f953b12bcf29e374533d4bf9bc07ff6702cd6604e0274be3890ba5b895c54a4a9b484fd6c4f0096b3e8117f393ca623fb5ff061ebbdf013bf752d2841ae2dae98c5a4adce5a3949f95e0dbbedbd942682874a1b52df1d6436adcbe1c22604dda0a4234a59b4fa68db288350c9aa492b11f7dc6846c5b43e8526332584bc1066be0c1e30f6b620813349d10c66ab3dd24dd9c1d424b0d34d8181da5717e4725c7da91a2a17838340b5a5dba4ea1dba680be6178be9fe4b0aae5b7ba1a8c14f07880218c17d66e58a088941e1ad380664d816d7aa40372d4e4d8b93e1004e674b70f18fefafaffd783721072e8e757bbf78e7ca62b27fffcbc7cc52b52bbedee405fd21e61a55eee36d2d4a2b71c75713b055a7fee5f9eb8ba40c5cf6b903651fde4ce3d6c2d82a7d1d68eff1a27c3a606af678207324f78e53e9631dae91f29401d61a9bf42f95e6e1b5f3dec7221a4d5d1e59fe2908bf740de15a4ce6725f5e943f79c0b2f1c2c83045e022ee3cc0011db7a27e943f97d09bbbfff036f5b0748dd97f16f84ac97b01a2fad48b41ccb5c8a941224640b9fc1218929060e3ef8bb20a836d6f52bb05349847221c69012b6a3cb5f328c3f195924270f77a2c32310a64c6f182cc85a334e83171bcda929d67e3fa00cfd5b17aed6a125e97bd28d5bc87b2d6a719e7e3410ecb53200c6eca4fa5be6c3410a00a5f3211e9a18d97a349bfae0efcf16297bf5a0177b24b53f7ccc831093d776ab852d9b0f54869f829e2395cd4e3e244357ac9ab541932d90b62c67c48e3e78c69acfe8f8939634d5e61233c908f57a6cf9af54ed627668741fce67460bb6691df9b5bf978a1decdb942f5b5ae85ae701f96a3536f7ee163249fb20bdb9898b693241f35c7a682efea8e7779d7c3272e3547a705c0666065d7f1ce9908a238f0ba080996f93d220d94419c8bdb2ba5950a5841fae7732154ce5f7410508d987caca38463c78cf93c91321f0fac2bd179f0a06facab4682adf2d140f540ba3a785ca01b6ea02793c00abd80ba5529df8189fcee2eda76df4c1ab115a6f71e3cc61b3f17a3d75cf9ea95f975c8adb6c844a079c62fc65684e6a8373883b9d57719d6d50a94b83a4bc0a524e506c6a60bcfee2c5ecea4fd82a5835f2f83b7e986dbc86ea5b4a9163e4a40e621fe33a3e710d05570c28b12dfd916afa6a82c11e0aebc03e1c0f2e471f5958bcaf867707d043a4c5576b656105c628b2c13a00eb7efd10a3f45c79b23458ba2208ae72e19a8255a6998ebe9bd9773436be8b2d9869e2dc4b93372f1403eb3344dfb31bb0a12e77f474ae244fc43ce0a48e37e82eee27620945672ca3b4ccccce12778e2a196447743ab52c2fc26c081c57972892dbb7ecd2e17e6e6bd2dc7b43f1317dcec3d126c879466f25635c7ff5993b51a8d0cb3e326e6fb1f1beeab4b417ed862a295b6d028a5f589a0f0ae1edb9c5c32d4a357f1f0c49377c64929e1f61146064492d2f486ede287c752ff6225e2f6c19a718421e69f18f29f18f5b8920b5fbd36dfe8a549c8a63c9a4a97c16ee7564b2daccfb0a047c59a2150b8dbffcbad800400fd7be8f53d01d52c57851fcc918522ea26b1b717a67de263b0779178b094ebc8fb1138d473284fe9f8e995206582332f6b0b48fc8e814d01a97a629491ffafdbd3ac233073e9674c8fa394369b9cfc2c34883c97e4e93eb5a13990a892dcc04afbfc419155f4f18ea2cc57ef3aa4cfb3bcaf778688adaf9dd103e68cccb66fa115e9094f56085627cd8258f7ed7bf3", + "tests": [ + { + "tcId": 67, + "comment": "expand_a requires 43101 SHAKE bytes", + "msg": "48656c6c6f20776f726c64", + "sig": "23070a1f4deb7622b5c00154e2d556abae7254f6adb8f7ccf349d546cdc3b05489f47f55fde26439c16da6b43cc6d7911cd3ac5804f3d32f74b57cbac37b0aaafc153e019797103d613e27af8ce0c474854f33e943ed82035c5448da83c0a45ec8de03202b11c5d674947ba4f2c56def139953af84eac63b27781ced39c5e3d82a7e95b018f485d99bc9e659fcd484ba01bdb8ebc10b485cc320745ad0dd2ca693f0d74c4dfac3d176afc5ed4f3af516dcde7281e9884450b49caf0f0ce22cd1172090e532012c23119ae0b2f185de90641d4edfb947f18621435b9f971be66c37585b33d723074072ae8e118fe6ca8c182caf06276744a805e72830287eb3397f77043711050c334499d86c83a04272fbcd4a997417aad884029d26b7132997727fe8dc73767bd87fb29b283ee70cfb758b6e57d89ad53eae858a7b53c67ff189b406ade5db4413ee31002d48af7834e713e5b76206de84ab1de5253d7cbde00095ece4d1f7a10ede3adcfce9ca72f573fadae0ac69660570cc9dd4535306f5a2222add89af08f89ff39d45bfb74fc070d85fb3c54650c0e95da1f0b692484bcd135ac1bf99647fb62547f7d4303cd5ee28a8875bfce669452876eff5497424fad71d771b1172892ef06c03bd9bff08f352173337ddd0313983fc676a47cf4108e596ce1ebd18e5317fe340dc2e68606c31b82a685f974896e0dde6a9d3b6de545e13446a9bc33d16040b87ad91da7f06d1bb076a109db51e345e612741fb28fd7e1fe8e827505edc8fa7a645df1d6c4d8184791656224b99a7dbba513325fd6f18d9c885e10af93da5bd7ec2a3019d8fc2e6f4b908a66dc1519a95f1ad047d8676c5c1cc472e462309cc035a9231524d42754c2053286decc78df706680b65d9fe7f2caefc957b934f57662ce9c0a5522455c38a994cb9cba4aca3ef2822a9693089e1fc9d12e7383a21ff14157b812ec33f9f1c94863884e7798e3552c74f1a98d01fb3adf93bb098ee99c42e2c4ffbe08cfcec5245dc38165b8906622059593888ed983b77b95ae3bc08259b92490a0a89b3002240f16ddad6e3bbc27dc34710a3b56d8a23ac97642baa9c4314f1ad6537af2fe7ab95ce72eee790d272aeef712d31d64d30d2ed9838601e6428d9e9de303e1cc363995cb2e46f6a7e5190207666ba0e3ad8919790d4d5ffff4018f3bbaf79153f705ba9bcc62de813ec479bb2d3adc6917bc9209216fa42c84174e33cea7c9c4ab3e87a08b5ff0f8ad524d2b637660bb618522f90e49f52e664907418d6a3ab0c742c10dc772a2cae8ae8ba7f096b22a6892fd20f312fd2b01ddfc1ba8611ff3fe430c677051fe7b9b80c7e9f9c9429cd677a4ee532cfcba4e26d3a5eccbcd1e34482d1d4c42c95a0ef7aaf158d27067a3720c3989660781f9180618fc780bec103c58c9fab0e66960322ce986450bde2db052000680e5c06024e25c2f91705bf03a30d54697d9197bdb546c113344837fc0bd18add13d42f8de7f493f716d6f4e81788697e7017ecc66b4e032dec0b089180deb018362d0a67c9f4512ba1412dcde3838e674f31ae478caf86cdf6f55f0a49b92ce97f23fb960d0d04334795860eb11c59c14d3c6ea60f9f11c4d4b5f6546905221fdb47cad31e28d855bb8cdd05ab90431963555e073b67f9860e53a69b844c18c03fd584ee8aa8ea59b99307eeaa4a35f1444f19b4fbe825c6d3738708077b71c8e401e90e9166b185a647e9a73bc6f459674933b4c0a875d86c2ff27f7771fe77dfef9000db2539eecf6b0b9025d679b9cda44112714aa510bc291bfa239f5d17f865844744930e2f70ed059a9a90b73d553fce2ae5bfbdd852ea8a4b0b721b48f4835f2a51efea535eeb479e80ba7fbfcf9198ae4fa90648c55865700a2a4db4e3ed22b916d332b81fa1099773f2e6b2bb97e6b10eb5ebad7470f47ed4af2e8fea58c4ca26b028270aa3d25072bafabef7087747c0a8a2aed969bf74f0c9fe9f7b518d127f305690d2000d43310704af9b934e6d4bc0cbd42aae048dbb679c2eaf775b5203abc3fe34cd6bd0286fcf036a6fe4c03e30152a81a25fdfd0f9656e5a202810c2ae0456ba0686a39e6bb4fbadc73033368faf089edfc68c3b0cfa111254f6085373974381122a5b3695c4b29a41415adb44d71eafb02084e25dcffd7d62359969dddce3a0f3b61e4c31817ec6f404cd7a383a7320fcbddfa4fbc08529e89b6ff2b3b96c465fd7a49dcea56e6d519c5281e74edc21aef1a48bcf8f90ce54257d1ae89c2e322e3bc215c8b710d638dcb1e0a238a67bcc74e13bde37855ea4263c8b7e2467c798c790fa5fa7536fe0b8dabc291df9f315ee2106f50741eee35ba2c082203e8d5eecc74c50d34f0758e1b71b28df29e9a2e74b88d5821901eea26ad212b68857bbb7eb77c258ae1ff17fd6cac23bf468ebf2289e9aa142e8639cf6d7d07adf454030fcb0204d7972b39579eb887be9a50ca78e7edb982bf8449ff3a9aab0a2b6f497e46e8d616a3556595888171ca9286e02015a19524babe5a5b67c508ec896b8e6e084ce1e1fb2db27765e09a5725424884d2f4dd9672b68c8a6bec3fddd075fba96faa41eaabcb90abedf6d953d31a594d6098e5932b2c357c237cd0f682c1921c6d724fa3cc09027a53044ae5941fadd9b4dab6fdd4482c3ae51966b8e34e34047e6e07fc441d01ddae6da756a742f25a6067c7b9bd0b23d6d3d25e0c5b73e2c9c7791e295ed84cc3a3eb174dc87dfe450c67e5c2573be6f7d7fa757cd2008cd4721209d385c116820d91adf5ff484a1ca43b1ebe92ae868bfb4703e4233c795ea30a3f3cd54888379a460424caacbc35a4ae12475cfd5998f93a28390730078a0e6342959d9bbf43aeafed90202ddf5639e50629ab4c966328e6bd005e0310f133ed4ad19307393f90593c7957973dbfb584c575175350fa70d4fcc63f4596938a058812ea64f5a0976c075e2e32b1657885612a63469506c90ed42b0760f50799cc69e36eae5355fad44ac16898687d5a108c1eddc73e09a6a0f629d0695cc729ed1eb835612ea60efc177548217d2edc0c3a535132e0c02e001d5e1b793585bdb68f79c291bea085b94200f3951ac219c4a1d55b4f8823ae2c1e628a4822cbbe43b60b9b567bc8dfdd2772f68d60a536f776766e13e0a977b630cde3d0cc26b2990c0b9d1d848c3c812a0853f1c5a7fe940e95c886197941e5c4be1075e3a8464aa1dd426ba71948d76c123019980b0198e8fa8f6edac3fd90b674f46fae063c8e5097f2859f351ba4cceeb615d4eeca9c9a624376bfa7252cc29654aa71fdb4f76ada7688679647eb56fcc80141cbbdd4fb545dc644d87bdde00a2bb19bdef4d8e2c6395517f483f8c932eb4d56454520fdbf9715f7085ee642e441220919c47724f597ab2ae92974c7b6ea50808d8c0439a6aca9d5013674e7a6337ae4184fad1b587cadde5efa265aad57542979b3080e9e0e488f6aab1d768df3414e5ab512f49bf85e50f4a07ce79f15e463a571b1960eb38f2391a93206c18a870da22799a40169c356f9a950e0d6d43268a1f29072833cca0ae9f2a6015261ac803e22095505c5fd1c7a788d5f5839f63755dc516134cbfea09ba9b798d43809dd9112e94df540332ed6f1a303a42ea1dcde326810c21fab033706406452ca7b908470b15cc0e1ececf6bcead95658344fcc370997483fe751ce4679a7af03fecb5e67cf3eb7354ddaf5e7797023863b2f90921acc98844dff52b974531d6913939f1741a921c37687abc5acab286ff067a998a907898131aa7f134d95c6c1acc9eb93356f99246710d0ee17b7f413518739ff688a3e63cf3f5181fc91c083396e3a231d58dcff949bc8af2d4f1a183834094f0023c413cb9838dcdeff756d3c314f755ba4c3c2513d20b1b66df79ee67d214c1eec0b3fb0ff77de975ccdb6d40a9c3b61529ff1aafbb62e2413ab015e62252fd4a6a1486aba00dacc22c5a075b3673d73739b130c3fa389ed8c1aae1102c0616e6efe3d013b0b0815cab217e8cb42ce218da74a44e4d75d19ae33d66c231ae3c61fceadc871a40267652f8d6eb846678136459375bc61836d101d4b71b480128d37ec591ac8aa3b70b12ed90f782c15c5dc9ca9d2c0060483df0f6e69687260b80ca8205cbdb89aef1cb4e3a40eb33f36533d1440b70bfe28580991b32d333f511c749d32c5a9f374455fc11fb533905371a5a3822f3a654cbb4285ea7516da578e1f4fc9db08e9b3d911014aa880383ea82c2266f0bb40bcc7914e1129e53c9a586b3092b9a712bac5a8e863d79c7d9ea0bcda891b5216cbb59adaf908d3e821a5563972a46dbfdcad0bb639c401966a21e1378a01fc44e0ba8717e118b6fc1b140a94a9f13ade6ffb9802fb063c865ef62bf5a14d2ab83027019f46c567bdb7b0fc69f53640f233e6bd13d50d62c4de01739607f8638292c4f2de4c5f27156d69d01472cdb585ad56511f3c66328e7a6d79f077255e254e3355b8d2517a92e23a8aa36ec51718c7fdb9592911c7f4128cc867d497578467d6a1db80e999e7bce80105bd760faf3f494bdc35c49d41fe4b7d043221763c4d8819b1b2ad7e1285ee4633af5c4392f2cc38ac8e00d5675c4ef793c6b4268a771320e0d391aa2ff75c29c034761cf8e96a91a3214383e8a8a54c8e04a94b299fcf345feccab6e2b52eb63f61d1c395ae745c886235f0919349488ab602f39e4c90701aa6af417ec109e74c10f4261fcbd0cf92711fd543039aa60b9d843e5686dec6106e36149c526cf5243d2163933dda8ef4e801ac822e73e1ab205015bd2d4ea029001044e9961084f1ea73c6bb44c954731eb0747a98255713283e4c2543ba0545fb2d1b132254e202b64f8bf3dc1606d7ad6e759bed35d1230a1552a1d36da80d43a18717160d79cb91da608da0f0687a0d5a9c3b677972dfb971b08918db34840a6bcff5885d7962ba3f2b96f60d28326e474e7e06a7be76412fba3774b205031418b0273855bc4e70628bc09df380231f74ef898165002cb7fcdaf1ace74bd5afaaf3905945c570f9a0ca3ed5a86cba92db3f256504b483c95a95da2b45ce974c01fdf8f9e59b02441bff677ed66c0d1a44dd0d491f075562322664c07180bae1db28d262b76c9bc2c836badfb1add1d55fba3b922b3854ff7022c77256671c962c7191973b4cc30b93fbd4ab9f1a20ada10a0533d541b1063ecb58a3be59575fd99b7ee71de66c2183185b747538084d151b9d9a1252a50d3bb08180bd9ff9749be5813e00b04178a72c3529871afa00642ca82809a066dc87252e4684ceb86c83c0bd119ff71e804f0f80432f75d2c05e4124ff39e8da1b6b9cd237ba2326e5dda4c25e89d58e79ee7aa77f166a3a4d4f44bb7e35e946ac2c323d77def0ed083b5e2c5954b3a3b1cc05d3a07866074cca0e8cf3bb3effcd4f12f3b6fb5381138d516b153a0d1c052f21abee2b5ec5e3382b5716b00d195661214309c67e0bc7cce5e8146beb5ae6e083553a3c1e4c4f0556848589ba9a26250b95585a57fcb8c4eaed5af340858d7231fc4be6642e08cf5fac31bfa429c44c36db01a2e6c2f41dae74917bba79b214d15ddb74def90814b1e01f88ae43a3a911eedc4a1da4b543e500a948b6ce44691061ec721408a71d071e5a2d57c8bd5891647290f8dce6330f595c2e7623a109653a888fa652fc034799bbdad36c80049c86690ac195deb262b519c49039a62cab2fdd5b124cda40e84ea9130bcf3a6b91a45f7b0932f6ea56c098f693d6dfd5acf9baa8bc119929f7fd6ddc354a2cecca6785c6d3d61987aa67a189fbccea3a495a3e4219e580378dcd62ce31a1526df06f3ce84b99b21baa9eb0332c4dfaadcf05c7f1ab7f3dc3a989bdfecf50a43e6c8756bf15a12ede0d628212acf5c6fac2f3d94fe0a55ad8990617d405656f2a73af1bbc05ffd2d845a7442dfbdce70dc25563f7af1fec7de4905d1777b19d22828ef0ec07c7ff2ad4b2a5ba1631b57316a6e0f9f4395387281b471e9c779dca400159b88e33b40278d0dd6b43909d1c510c144bddfeb5753e812f512aea7dd5bd02df2f05c75e3bf4a0e6b7fc1fc31527b3faad9da49e02b505989ba55a3fc84f6298efc62504677c010b28bff41a73e8ee7a4516dace5c261d2a426ba89d58c861a66d1b69050d93194167079c53a9275d058f7b3e4cf98320329194dab877c6a8b5c2d6fa4b89ee9106a1deecac03886f3b5578b72153e7f50547a49ed2c35ceb0a3df45703bbdd020dc2588e60fee89cea114d7fbdafb88819cbfa22c287794ac6f0bb0bae531e8829cf1a43626114e92fd0f940e1fc9ed2709d5a2702562626eed02105aa3f6f4f16bc0869ba071bf4ad4d4e5402b5af7ad9b1166ced123c466162b7991aef628404c5b647e8a91b2bb08192a2e3e5d80c0292f567e939ab2bfd00b0e4f8087aeb3d0e1f4fe051c11283a4c74a0b0d4e1f912427f89e1f800000000000000000000000000061018212c2e383e", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + } + ] + }, + { + "type": "MlDsaVerify", + "publicKey": "33e12abcb664496b409ae94eb9c45e8f4671be79c33ba8edbf118bd9fcd6ff77a27def95bad5c8f92e2aaa4e1ec4e9cd89d5e5d2a7b6df6a1000970e9fc3ff8c547f0c772ae4f177c24e21f36197173028e7e6f37e376a957955da62a30bc38866dea733de62970c6af923f344c0a2d96ea5198ddfee4508b47ebf096f3fffecc098846ded6bd9c68072a4b7e6378b23fedeb497e71772d2d36c9bea6f48018c14fbfa2e5e840130b0140d7bad76a13e46f5895e6b935eaab9a87f06151e97d092a56815605170ecf7c2d5b63d403b17679a0a43746a23f8f6e2e4b2aa5512763f88a55074458e6a5b3fe5ae6d674e7ead86c9232ba2d526d4db13fd7da88ef7039fee9f40e201bffe93c228702c870bdf0c053d49da35a3132d903ecb369154ea888e6ac54ac79ad218ef2f5217292d9b67092cb44a05dfc44e62deafb3b9582e35b4ff0e97585360555e08fc95c229c54d18b0c9d98bee797c5bb4d3c1b547563e2921db275d70a9b5cc0c4149353f184ef20785703f1c92ba98e154b5cc060319939ab791c15516d21ad46bb96b70bc9b6f918d84f88c438ea8148c53446ea4f68b8dfe50a96700ac4b1e0fcb34a6ac447a9327ab8def34011f3f710c2c8a0524b34fe5d8df6979e3df3e910b2374c676b65f8b10870f176d4059d6ef27a07bd36cd2071ab99ff8bb04734a7e66c1b2b6f5b22dce0fd9d47f20094ce81aacebab357bb10238833475ae1c9990ee0919d07d9faf790ab7ed56eefee72b297cac457202121e9f7ee9e4a145777a51ad56b66fa45c418c4f7aa8957e9e6fafc14bb1979b66e5d34abe7a0a7e93473ed88f213a6abc3830ae55cb067783ddb7924df088eff9ec097ad94dff396d82833a94ab8f63e1e4bd4d07193426ebda1eb2e81524b42315ac64d8b91d0a4d83be4eb65f1fca995c84b59ac713eccbfe94146914567b18f420c76c257375f537240c3cc9f63fbbc4b6d2bc72f79774499a14169eacc023b5c148fc6444f43f98fd205865835fe69aa3524e519ae74da640e1fdfc68be7794653ffb125462dcf1850c5978f5d972fd7bc8d230790906674c847c64614103b5415e2a47d7c0ea56c709c75a28fa167099170cab294c65451ac596b5e75b9de6ff7c8f9df64a996499fc2f7fa08eae0fb08637c5aa0395137950da7eefcb4f5b5ad80159987621b7286e78ecdaef9074d278bc2b8613fb8fbfc94becbc476fa9f75fb63610f4c5f77c0bd14efb25cc4e58d8e79342d11d1528a8af7512442d25a5ee81b930b354566c5875b2036593c5e962ada3d228e2b1da4b5c389f009792936d140013e55772f24b93ab94f3e13777e1ac574daaecd8e559e3cbf1f4fe7bbab6d6d723a3ff68ae7a43480817f3dd5cdbc72f1d5f44cb5203ce6a79a9038f50b46174c1b1202878d4200c915f0f9aaeb3b27ff261014907fc72ac8761f81e8726b446343343bcb44fdfe07ac271104df32a9dc967abaac36c7bde49de9a6e30aa817dedf523805b225c5e229a939b34cf63e9e32c7d2b86fb376a159e7715518f4e620b12a34a9030d5453251ffc8a4a96139b59600ade772b3261e08008d19a6317b1581a4c30da673eccc8135c0b1d6816aca8c5a7557fb94e8502c87bf50c7dcd65e368362b111811340d19229bd4b204d52f990c546b0772638fbc95aaae740bcdb064eb0d49fa4713a554a3c665eb09ae56b09eefaee302467381bb49e447f9d8b32551d72024d086d52f76366f674b2d8fa1473161c6b56aefbdb68c242ea7975f6e334f8569dbd9320a74df746f16b6adf1bc949f7af47754a74c7cf82dd5eda17067a8906e9b915077a7266b3d33ff2b0f47e7cced0447a232eb50ac9387227637692813f2037aa003a399f292c8e4c133197aa81d0fb69f86979878c2ca8d1e68504c9cd1704605d39ebc275e67b7e8dc008ca24ef5470fd0b775edff668908e2e84cfb1e1df1cd35c8e785e623be6f42018c6e6e9a96994f4d0c14b4d3965f115779f08d4f198d59db145a99ffb414e69c3ac462d6e64eca540047319f7cdb39d84fe875f1a8269ab47cffca236806f4dd941f24ac96b0418aac332903028cc221731899e74524ebf63cf4641187802a4d97b23fe81eaee219df3f20f0d8a4146c4fde81c091743b6cc85493315131cdfc3716e84db2b858adfe61e96004f29212b6fabd1db392e8ce1406ae9e3b7a82667d4b499a7dec197028befe9f8969a42f082d78cd328fa8b79e4f1f3a099815b26622bbe825571aded074a7374ece5ecec0cd21c2cb6e5f0c060d40a930337cf81fc9caac55607d9c73c2bc1917202857b017e8852eda98d7bdf9bab96cbbfcec6de0c96630933d5b6ab8d96197b5b7c2d95240f34b7629c94cdd30499ef1c114e6f1723563e093ea3022123c96f3c619aaae0ed26efacf56e6e980dcd19d4c5665e0cbb416f967678f97aab0529f7eb94c8390d6b780d98f9fdd718ade74a0a62a96e12c292235c1d09b9afb5c4dfed52c9a81e2f6c76243687244b053705f43b94ec8ddd10c3d284b2615adf66d4d5f341b41dd40819256a75c641222b8a9a69be0807bd8173406876b132efa3e21ed92575556a97c6db00ae091c2ab1f6b84a05527e10ec60d6a8b02755016dd6ed2dfc49e491a45dac597fe5a816a26636b38d220b9ff27ad5c669420fcdeaf251956c129ef299b08d7d0f83bf344fa5897640d23260e3cfbffee85de972d361c86e6e9af33760fcf71bf954273a22702e62c17e7259b543c8bf59438c0ed38ec34d33fda09204b5c321e72616e7501d15c214a51cc4bdbcf995163f20a1121bc97550b7ad69f0181f15d455064a770dfca4efcac0b5726bc08e1c6142d23121dfec6dd9c82394604651d72e55d3e39dffd0e75f28ac83b4fc6a02e5f5d42a0cb0a7f0474b089570c74b5edaea7c849a4e75b5171b110cf74152f563b647a9882cb36458ba887b30f8b4653f8cd6c44a31b64b6e0d3d21b5ec6f006907e8e1229379001f4a10c99e740e601e521a43a94e99b6aa8c4d99e065fbf75ee1bedca51ac058b1947b54a0ad819245ab355348a1a1de4b8646afa38b99e57e1ff40470651ff7c58967de4312643c3f7a372bed304b14045cfa516ceb62cf8bc254625c5cffe5f40c9428fc04472ff3810efceb2ad36c9afd72ef4a4993d51a73823d2e9a2ba3b1d0e98e120bb149135dc81b64e70f56ac07b9b6a566d6cbf6723076eb3fd31fe63f205f0057dbeb4ee3bb5f7a2977a7f571e3594842b1a485d372738136075bde2f8e9def67b284f09a6976f036066212b8e24f94649b2856eacd31114018a4cb9c6e1fdc122cd307009bdd1e296d18640a520667cb933a3e147db9ceb3ff56bd097357e5f2a7f03e5522a18c97bd1740afcee7e23b2a84be5596fed40b85e5cc2024daaaded8f3495033cbe558e515c64e32122c3fb0ceb6cbe900915a5722f69cf8f2d6a41f6e42aff750108378120c84cd6c82770438b201994398cd242aa08175248cfb6459785158c38afc48d2e0f94f3549090b18e7f0f4d526d74f99aa7086ae5be0fe79fe1e696bc84eea51cfa2ba678d8dbb6de228811ec3f15a781360e45ca20e2c20b21e42106f345b12a8fe64a7c345758b3ab4d8b90ad856998195847e52375a57e56a3a37fde61cb2fc", + "tests": [ + { + "tcId": 68, + "comment": "expand_s requires 30 SHAKE blocks", + "msg": "48656c6c6f20776f726c64", + "sig": "4fb72cc8fc11d9ad3dad46af45308bfaf0e1ff6c633b14ae1290ba8a65cecccf42cde181aa0f8865835d9f65ae1eeaf51d813037732bde8e0969e35df2f670457d74bde94ee4eaf433bf53af624ca772004335182892db2c03f78e4bfc10e3c4a103daf44eee5fe0a0c877a3e32cd45dddcf05f6685c6d3e0b0f6efdf678f7c43b408da43b640da61566d168b57a683154da154272995ca952e6cfd52a3c5a684ce80819a112906c42a6dcd17bf176aa7b718e52ffc47c9c7554ebea8131e211c681801787031d24893dd55d66745fe19bea5aa3e144fa3e562708e12877f3fa5fe5e9d6b777695e7f2c50078dd490bfa42b6aeffc2dbdc72c70ddf657fabc3ca19e0da8ba97cd541bcbe5e23b86f63a9503c3e5af5e6f20eff171804b7b225365feceab6a6536d13e0ab38f613c204a80374fcbbd282dba876df0853fcf218477c6f16405981bfd231e8a3f974585bd1f0ea8c2e1a6298294bb384dbba3b9c6467dace4df2c0e7ecf7f2367d3de79d2b241c0bf11c03f02676c8c28364a9cccfe0513ddf4f80547538a966252aec57e49b898cca885d5833191b4794b7e4f4ac3d4d1e4a796a45da564ea627906b6efc049734ec08121d084b32d3e08e8862f12fd65b91056e98b3780e3b3d20091e24ee067ad3f76aedbed71e39602a6bb985b72502caa7e121b7b2f63edf613ebc0e8f972d75198e2e0670ff4f43b6c494e8052f83fac70afbb2b2502be9c02b6a0a9d9df6e0dbae5d17d482da4531677bdc48918eb3f5d7f594061390a56b89385826941e7ff5a2372d7f8d0de5eccd938d3aa6433735aa04c0f04be974154be34ba919444322190b21e1f68a1f0af2e44779bbefa33297dbad110e0d66e531df1b4c4d57f13cfb852c740f46e3af7e1220d198e11dfe9714424ca8a9c8ce42ffa58b686b73c6f85923f083e58eec7347c707cef9b92d73b40fd72e764145c65acc57f9eea7e6f3f529be8d89e6f10ac0cfab892c3913d926b60069b9e3edd81913ae1e071b6d1896d8c1d789c414e5a1795a587d38449af9ec87a813ec75d3e8fa426953041dc6053498df986e622b6c9e8a5c6a8a91d7c7174261af3d574da9da6f22f6a5f2615a6ea4b6c25c0f696658ee80e22dcd68998c28c02026a3282283d7e51c16232d88a283486dbd1e3c1b5c6cb6a101d1cf1783e456cf822fe00b7e2696b2dbc06cd430c493c75bdcb7c8d035c77ea025bf7b1190660c39ab026b9e91df8ff99fa725023f42f187255401acd329640c1356b6bda544b6aa4303faba473c870b37478a83f8b2efabe83a1bba00ebfe3227d4a50f063ee1f2e600eee169c9a63e3baa75498bc28849c062dc68a36446ca41526f4e947b9d1da36bd83a48c7e17067def7e5cd6e2b212a70d54a260cec327ce0d2dd7aa4b7c025856ec107821692ede69f3e485e4c8e69f8b03e8f6e84346873d8260023055dbe13dad44815efb7fe9546bc0c42dcf2e57dc635d1de6c82e3afe6bd5c5daf35d4f37e9d0315ff1bc4c38a78a54bc70f8de71d9f7d4341c1ed7f3376649b8bd5c5025e63305d3242344ea9fdb237d45b0ab3b0654f1c751de05ad8e67f990e28f1acf85f22cd1c448386f597a57f20cf312a636676c341581d74c3441b5c373ec52fecac29bbcac35207a4cf704ec192cd4d9fad63dc1fffee0a98c1d84d9fbf7c61a629f64df624166aa29d5ba969fbf45257f57c05fb9ccc5d9277a3f8d5ce19633bbf2ba41073f5f1dff3cd0477d7f842f60818bc771276ed4f82a7a5013827b83173ebf6986fa86950bfd8cafae3443beb790914f6f70851e4c6c472cac837f04230b97401ad1f5a7b332264d170cedda45d37e27776c874a768d00a0b7c3e03ac25cec31f5c858ca4992a91d219db5df2ad17fca2fb6f6c5c24085f6f2607116397ade5483cc3fb06591904e1ada480ae242b37b15e42f31057a0a5adc52cd83d6cd0d6f068e7a4c6e33a5afab34415979e1ec752e2f709b20d8afa09390b30ea48651cb34a55cd2ef7c0f3453a2180c3921fd25a83071b9a2bac353c188cd70221a5379e28b2d651b33feba831e9dd5b2acef4cbe8cdfc8cc254e931c25d1e76120fe9976bb7d6bc7b90e5f92d5b9f1422a5120f9714ba4a6bc0a317b7924fb1f4bb56551a960454127c38e718580d0edf0055f4f28f9cca5c0032fb38c754064e63d826c2f732c7d9ffa897d83c579f5527ef3c057ff2b324d3298ad6732f7dab41084593f53151a73e10c331ff63cd9091ffedf331c5bcaae106138d7dad3dbfadc57a429809a6d20d3422f9678d11bc68ddc252ac6e7801c80a8dab3f948ff05fe382e2c933cb757b8494f3b10ca32ffaa7d79e274f2c5b32d1a5a68e4ae78a26354e2172a691c6a3a1d0ee474d7aa5f96132cb302e935156c3279a3736895bb60f3f54fd86baef61853bfec8a05f3cbb9e626e3fa2db4845341fa13dc07610ba7ff72dbd78ab00c15d5f50c0ec7ef447a076de2e8e82db3328ca1a10f88a0ba45e73d302192635325b687707891c7fedf9c4f2af09a3d530713a15636db5c29e78453c91bf955b488f3cb86eacb8069d1d95ed44abea205114ff51a46fd1a1193e552bd2febb93c13471d6d01273be5e2cc80e746e2aff0c00476faabc6e25cccce79cd5011aaf5730e8dd692aaffee2278fd918019fdf54595728499a24f25de4561dfef6ecd81d80d7779e1b79372f9113f13cae5bfe7e3efa6ba6e89697b2774563dee96fefb16983e77daa81e3da067afe0d5a9a27be79e9d831ba95c0fb8d694b05de5e5c6f277a9a09e982ce6cddbd0025e6e0c9f193b5c4aac3139d6e2968ee2369ec160545c0d9a3e70c1eed750f807a1d8ef6c6d6e43f7e09d58a2a583c05b255214777a07ca0ceb05ff6be070e0ffddedc223aa1517aee3b385b23b8856a65426b7ef9f0b7f06e55ae71ba14105a16c98832230cd52e81190d6768bbb906242f2a4e30240678ff918a1814a5d36190aa7cfa6942d1001f9d2ab2fa8a4b767608212b071cc6d86c907455a0191a73c0319c95e0fecd5df077d24280a52176e04b03fd55d878b062ae61a9506dfbee3d74eebd6f3bf11a791022a0611764b5c608254da15c3eaa9e96305e762bd4466cbc5fc1daed6d50c1fd369f3d6dd4baa1479557ca027702878bf672182c76be4cade0c4a860addd5e7756dc5c01b2a08fbdf9a98f9a14b96196cfcab7bdd500632aeabda8bace5b90d2aa67613e87e8d566316b924a28c6aef47ce2a9fb4776e39796ddf13b0b9f3e073e3f5abb4cd070909591fd319121356da2d8ab4c9190f08ddfe404be16907a15424610ce61350e6830f106ca03b6175bf856336c564a946af716b356dee8711d7122c57009965bb55fdd8a83f304ac557cbc878e7dcebf86cbf4e394eac44bc360e066c20a3d533d11c5c81a68ea6295c5c84606fbd90db691138f15ece19f8247fcd2ba870a0a3a1082445bce406ba0207945c0e1772a06d070e12e531c7c1710360d0461a6ee21aaa35c40822c5db6cee17c5f59e294ebca1d9a52208112ec04adea73160fe6360157761f3269dc2195160a41f7f4658a3de275dfecb320585a8873f087f404e19f8859e3a67f5af152f8d39939b4d1d30be94f2c7a5d9f741eafee95fd952d040540d041517120289f7bd5fb6ed4ce2b481115ad9ed2c252143f7712c125685433024756f7c6d9d4a68b357a1e2dea53b2e5cff2d533daf7ff7ee3de7c26ca219993f6cb21ae5f230d7cbed728cc81d8193500fe57456717d848c54cb5982dd75a9c791d50e0d56dff930a8d00c8ef62e749ed698dba631d02db3ea5e8b1e6cf7fb7c15854fa239d5ebcb00948927e9ccf48398da74b1f15aeea6eb03585fa18e6971e1ab58302242cda945bbdcb501ff0fa7d542415aaa9a0b2cfa72291318a83686f6c26ddb00441c4bea59e896481cf80007eb65efb2a6b628d99b4dd8e725b78df28939b59bf896e2fed4da646f141e0199c0fc576ac590968ce6a9ee018a8243f8c0a01fb8b6934796cd39dc142bd0b71909abf2d439b984348fbf611a7add47b3485420abc764af3a854faee5fff8f475726917b741d68e3c5524a32372301fcbce2afd1b505b01073b335d5f4ed2dc561ada3cfd8b8daa8d53875d4aa9bcf02e276324d46efcbad5a889adcedfe6fea80ad0484dd9d0be89335dce6f289bb88c8f7db45ff4856d842ba73af06885e7c701d426e61b6067714dbd5080bca8bd0915e013c27f21ab5da98fbc67f0b23208bb8dcdd061816d37438ed96e1974bf03399cc50f44cc36b08e4aa27bee730ff34290cee65cc5ffa06b7883ba9b32da164108ee9477c78d6efdda968ab2de603aec42be8e7a54b2444853ce97754c29464dd09219d15d0b20b4777ab7ce405e1ce3206b966d7e1cbf7d3b96c950181ebda024ef3c77fe6939ea7b63a7c424933f3116bd0ccabfb60951b904f185ccd96ab46d75f8cab4a80cc8185a94d884ba872a29eb7a2a6891328144dec2855e35eba00a27fb70d17820f7a8c6e05cfdb53320c5a78fb90d54c9dc8ad6e59beac900c01c030f99c80a0d37430a46f90ebb26746ef6ea456e47d1cf7922d36c04152ffa33cb7780a81b77cd519c71ee34d74b5ae82e2580e22a21b0a01f25c3463a58bfec0e10131a780f64c664f12891b99d186b3e86790f6d02d9f505fe94114312b40f606aabad4f754073f6524c2e56eddbf194a7125e8edccfd78c1bf329336979cbb2bae65f6393f84a2a87d23692b1f55be560ebf8c7b9c6f41a881dd6a9fb13f474ab34bf46e9876254e2b7554273a94c53bb9b23e958efa40448855f6d6af6329f7dac44a427190da47783e57055da3060408ff5eed2b8ad81a4f04e00ee64a82d6eb41afbb4b5a8e8e4d7de345ee45427a9dac32c64d9e9d4d08e9f3c097afc59fb5eb35576dd33f37e5dfa83504389083ef90f0cc5ca93846ee1fa13040af02232ca12f28e08edd5270710f30e0edfb4c130925ead912c1b3f4a3f00ec9adf02577c8ffe6def321b1b10e0bec451d822f7449455462d58fe4c32a8d69338b6e2ef7c408227813e11381f6b390a99779a68405663618b42aa2091ebb5bf61450fe58b7af0270d31060e99c4a8301dec4fe19c8f9e526ac0d2f94b7eac44ed37636c1fc401c6ab166c0b87866f0a86f5be2e0074497d3467e32d91e26ae97cd659fc0ff2294bb16134d1c6d412f28f9356c6c7b2765d2ef63b158e9853d300224eddc3b28079431f8c71fa77963e0eb11ece3e36840f649bf5214a6cd1ba5c0357cfe63613c66e91918a239309b4db78651a7fa98f1954531c240f50c08bb6a4de2a150a683e3895ac1ea7d374792f92f6b118cd81f19f4f67fa84b5d16dfa5bf1899981f6aba1cd90a5017576d2c07ce254e791e36b3002caab47ad3c608f59a5a6499f22621d3e8fdd6585b4bd2f2d8751d47da43e54637e3a4611238d84a6039ca82c231786b83e8c6c07d62a29b14a22f18880855c57de1c5314a20d41d25517e6bd7f4101cdd75cb460cc8c22adcfb3fe42f9ad7845123ea4d1e13e47be9893bbd2e0ce07b3cef2502c3fa10b43ce3d1c8131034826db5febbede9981e6b6ae8ac07ae89aaa48fd5aa0f1cb9f900f0be3d90c98a9b7cac46e44ba30b88a4e608a7cbb1697ce407b2e6f54221ea4bd7994101acfec91355c5f2ffc590cd768b301291ca61761377b9722275336ff294a49b0cd116484a3e829eb9bd38498a03d9db0d4f2c24515b3f72eef5d3a8cdf6d681fe1c55f46c67ad306dc3ba434cf29dc87821944f7613aa75301172668587a26c9deb298087b35b73e729ea1eac73d86fdc37dc9ca50712e608b0c58388c7c11c7e5bd442f1add88963cacd9c5f0dc4ed1a79736a9f90b2becd584624fad14375ce5dab5314cde609a1c6ad1a4391123daaf4dda3d5c2a8ea1912b768278c914d2267657da02c32f953a8c3eda74c835837700bde95b840233ed75d99f82eabf291641fb300a1ae605e8568f2211a16c104b993f23edd4f1808f5182c4e898183e1af55b34a4267d319c89ed8093559900734c378755806444ea566ee16f6fc3b9c92cd5361f80409b815b1a75e9e64bad3643ddfa06690971e333a0d2c54834fcfe2f960fb23dba7aa7513f55f843de8053e662c9c9872543a6f1cae280ba6b90d52b662c700c37058c632554b5c8307cca58b0ad197cc3268a49cb8236b5f56b77803f2dd8f568dbf38eb0ac63d1d8d1383b99ba13d3540c2f4971f35ddb0724be07a10c76dfe0a9029ba440037bb9c32d3d0f6f2bf5e86138995e0c46b9b93c2baa02a2be1fc87e3961ecbd6d82978f411fb7f92e6f94b00a3b32eaf305cc575a2c62e785f67368691ef4195fcd2b378613dac0b9404f5d022c41cb222d24b8819c1c4d3d602f0e680a15b5bc6f5c9b19373a48496a8294658c949cb0f4fe357989b0bfc4c6e21e518cb2d5d71f245171819ec0cbced5f528327a7b83aecadce3325b7b8a8dabf06e7a8a9bcfd7f8000000000000000000000000080f171d2831383f", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + } + ] + }, + { + "type": "MlDsaVerify", + "publicKey": "d5bc7d3c2fcbb66365428b385a2a2c83a8402084179f41c4baaa9c74137dd62f4339238a82d2e381bab7f7da2c51c2fb60d9b9b55eb927c7dd3a9d2d4536ec2b5e6460313b1c001f01540d69617d60d6a845afa434ccf65580651a8b09df5b860924d7b8f7c27cc50231836f7c3a3a1c2ca9fd6c6e892a69f0788669a93c1d89f719b45c2598787958efb03e635a9a344d8a3eb64a8f39debf8078690dccf9a0f0e735fe36d5109659f136b18d40dab080ac69a15b51ff672f5b7961087754f64fe821cf160e1d3b9c80b604c33ff6588a0fc2292883e3ef57155b96741b3f26bb9a759a158da447d1ee91822db9c991122256606b82c0ef37cdf22f4caad28ec46dd266ab2b5573c608028ef0f7455c797fecb2ccff9d550948aad68f02210c6c148f883b6321d0054420f4db70891265503dd9df81a2c3e74ec465417886263a259a54a4e133c41e941241a9c62c79149a06049c4005d7deb9b65db14e999ab1f8947c12efdf17c6c7fea3f535fe9e75083044529dd04c7f4d89a1160bbf8ef43297ef49d8ec0cac2cf690b60141b11e5547d5640be848cc2b504e23687d9053ec7ced0dbd894ece38a1c1c9af14fad2a886d0c22c998a133956504fab7c19d87d146251fe65c8a8d11e375fb60d2c5eb974b1dd49ced414a94ec9849111cd8cb02ea892921d2d315732b22de283c90e76db52938b190eec991b9ed6a36ac652359828b29779eee3e8c8f51a7a116c71b444ecfee7ff5b1b3ec85517af9d16718bd8573a6c8318714c117009cf4fbd655aa2cc1c546fddad3286a46c6f7ed8378b92e770c91a55aa4b106e650a24b4856ff067be880337c941ef43c84667db088af2ad9b0c9bae0debc3c88897ee599a4880b488fc07c45091db7d62ce5feb5d561ed0d36317872bb872c7e3b7ee992957089cf7b0c68f743940f7b4d37d6c80762cd172ca21692f68cf905fdaaba9063429afa8da72efb78d06a32ca71fc211fe6e6f6968c986d0ad6c08f1b3876fdcdca491d128e0530e42027f5ddcefcf444a0cc60ef715a8deace55d5ad6ea5fcf24734ad42d1bbc9261066385b81fcde5dc76fd9c2299f900fa8194a96aa98ab123bcc95de78bcc7ce58c478b6fe35fdb3118add2a87d714f7e2bf9c4e23b6ed1acdc977f02c6035006f1c2c1815a964635e93245a09f753eb02868db931a6b0861e5c1135de5774f8a8a2048eefe11d3d8b024a522dead06089151c2cd18595a4d37794b98bcdb6074e9a075ef015849764e6d70820cd7943f147abdb74d818c8398b7e124bc6b80373ab4235ae5b8be8db3da715b3b9a0792499e40eb22dee04495a848ccbe88e447e95fa9a15d2972f0899eea8baf95f87828c3fa80dec3fc9bebc0b6d05362df0eab1b2348334053c29685c1e3087aa3f8563f94a68230b9a326afbf1360e8e867a58ffeec5c6ca6b76333afa459cd6b150fbac82e0bc0bea846a787cea40b1a6ebf2ca9c665c9726b13823d6bcf78772980847ae7fc8e44404cbcec393e9ae69eb036909e4537eb5a6752836e4c2f6b7faf1602b5583fc52045ff687e85f5ae5249b92f10bd7c809e4240afa0697e1cc0f4f82996a0a5e1e1c1375f6e08ea4ca81745bf35f12aff7e1c1408554a7c20ff027073cff64e6780c7536fd4d7508fd8b924446826522fa279e9cdb9e0e4a5fb6b69be326df3b8e31c0ffc64b2ee6f7f78a24ff12d308e9dae81aa84e83427140fc9eaf915202db1404d1e2a57b4fac76f4e408ecd5dbb28942b7a76f35cbeaf81940bc90e56d9d37dddeee510f6ecf320f829149cf47ae4619db01802ac28ace9b9f1f374e8f1fad2dc5506817bdafb085ded9866c39911dc4cd2f555b16dd9b68f563fe826058d7fffd4e6c42127accfc19177a0eeb26b146b75428ba8aa68683a0bbbed3d379f336bdc4271c3dec96f9a179ddc210c98b2659829200a66e22ed71b8e4596b4c87da6d81f5100fd4834b191591a242c7bc661f4ade9ec777f9c136ca29ec82c0987189fc6a4e086ab261824e623022286cd4d3a8d795a6c0dda79684e58400e86d48c565ee897bacd4be09f3d11f7d9aea80b25c30691f2ac7d8b375b60d7ad378c2df434a6077baa1ce506f87075821b18931ac7fa5a5d0bac1943f6dc4794e6ca347f8e8b02426d19d037633b323aaee6d7a6995485ae140b6ab318f195f143d05e8ebd7b4def6bac425cfa6c246a5f291b60b63a74570f5821cbde5afc15d7cb818aff490b3584b36505a103d08386fd4563ee51d4ccae7bc57b53760bafb240c68f6b8f340b0fc00a99f84373c21d0bde430ea69dd74f5ba3032eefe50edc31e89df8c7ea1fdd229d1de43b880781557f9cc337776ecca2dc929e27716a77f8976ca8b091ff1cea93f71533310c2790cd6f40b56c14ad926fc1429108f5560c78c4939f81b7fba53fb479deb60f38042051c8dc095ee9b7fec6efde0dce25b481491c93afc6dca2b462c484eddd078e672adb0f72fb18fe65850ae883bf79b50e16893f3af299885ee682b3ba9aac1d3398c2320aad4931ef2f336198c85e03c9a5a0849d7528222c9bd4a03a3b0afa1eee9d2a37f22c30208f34fc4ce1b33c58fe0965c0efbc2348b3eabf346f81d073d27df428eaa555757cbc69cb616c1c97ecc65572565e51521af35c5234bd3f1da094f0631174d1fd84580e01def14bd9bce2085a31cb3bd40db2a969b535f852f6d4e7e8b8838df0d9405f673910ae648d3bb0bbeebb9e4fe160b40648ec0eebb1eb9b1b46043d423fa8957971a7d92537e79926c809e8e87faec1d11a6c21c60f66a5832cacde297a06e65cd433ac72dc92b4b76ae18bc684db28c7e5f0e9a9b09d25dc77a4f590c123802398352018e6aee3d701cb77c70692b9cb2d7e39f1a34fb056210a21b75449d4f4138b8325f7bb3055137ffcfd1f9c665a2634e92ae975a6d44f3942574b59701722ebc94ff8f34c888d5120b3eab86e6dd07b4fe3b711984c00650bd93bb53293e1ea3464f251261e2c742ba81c0ac8558b5220558bc5f4d0b2de826e453af406fe9951e60cf82e5f1962d7981045fb1cbc950bc392516cc0e57772bf08914a321bc6e83e1a470a3245916ef440c5279cadacfb373d7821c7db39efb73a6804f6a3e05c719c38b1161b043eae49fe762fbad5f975a527c00eac918c8795c8946af2b4a50c4b0d22df9b74c95c0c19afecd90c9e48f5be3213230cd9c083cef3f7adbb3a7b39de84d5120a028d57d14754e9112aec03808f9351a9214de293d2df07f4f1fcab663f7beb40edd28653fd0019e48be5b40e6502ac01b0ed4c07bd90a8fe8ee037ffa3dbd7e233259eb3a15d58efd0d9eacdb45dfea089bb54e13499ede4da5ad3e4aaa492afb76a99a150bd81b656213853f76568281947fdb65d530bdee901ddfe938f79e7dc4865c4843a963506a17e48c72c8a59ff6c0bce66dff83957d1f2bcf5c2c3bab3dfc957c72658ddc3f4f7f587edaa38fc3b4555745cfeb9efdc44911c021f9943a901806a8f6d5ac867bfcd7c00d4fd661fa16d9d23c0b87e3a732bd4da2400a688b926d3c78a06591b1161c0dfed30c7889cedaed3b2f580a7fc9e5a0a7efcc9c501e3951c0090ad308d0a3f1876e9712ec6d2ad792736cbdc566cfc98e256d0ae67dfc57c", + "tests": [ + { + "tcId": 69, + "comment": "rej_bounded_poly (sample_uniform_eta) requires 149 SHAKE bytes", + "msg": "48656c6c6f20776f726c64", + "sig": "ba65cdd2404f93b6caa0428b7da3105c1e74191135d5815a06ee539783c8bb2f77c5e7e72aaad0839cac406e86010050ff93f34bfe9684db7da13b84e1165b896f1253b2c5bb6b85df3cefae9fb4e7316bb419e01a3b23c2804519494753e6953b051e85fdb5c8fce5c0239f745080f1de8a32f06b6bef8fe43f3075556c83fc91c28da3e229644ca40226cb3241c0a0ff5fbcfabc43d58118661e78081cefc8252c46d2c086f6f2b65175e3c98854acd22cf6d668b07d279cc6477f4d6fc80301ad191944aed2b4a30c4252ae4935db5e972afec2743572fa0ad841414a65efcf8a771cf9e6f51617709db4342c74e1b629da5c2d6c579867e9229783f9a565959ec6a85cb6acd887ee68027f4033550c255f246760e0974e04dee0798265abd13bf0e15e48d6af7a911a2fae3db750e6ca64e7d13df076728b026ced3c9fd08b30db8f1fc7ea6619f494cfe6a6d0489fd3dcb518966bb04692e650f5a22a013cf140f38b97d38e0b1a025e912ad1e37bf54885b7f2cd7348c11854fa6dfbba3ac3eb92f56790b68c9da19272c1d54395462d2f0a2863782f4d0f72b5b79304727d7e48ae4d4866a2e92f26eb95e374e2538a1118d24cda1a3d236a997e98a5984c84ae2f14724591b4f0c793d51e5b51fe230d5e065e8baa1987586f9faf6b3e5a78ebd2bb28b4653cf556dfbfcffa479df96d71d22d3a6f748b669b7896188423c504ecf9c3e203938f59c7ac49102eee2002a20f193e49f2c6d2f81bfa83305b1caba6a6e787de984f7014174b06f86edde9e4618141c0cb6465a4d83b3efecda9c043264b5707f04307674c7b5da832a64a69674ed4e08c3cd70896cd1ad95875f7b039a689a6c3f9c94be9db7a71dcf6da176e0e827b588a57da86df83ff0720ec637fd6620115fef5779f8a413f323f82afdc3b6e36aadeb37689caf75e5989a60e9e8809b0fb42068e825d7a58db4eaf32891c4ce83f32ca7f5533f12dc7613052889777d1bf644826fd8fd250c4c951ef927731d3f276b6d472b284f2a797e71c085fa9e7ee7080337c79af29248587b3838f1d1bc6c0ac7867eba4e234b30b354e68b905506fc650f8fbe41305033ee8bdc548d2b0efec4a6ef09abf0b122814e421221dd672567e61398a0c0d8f014e63d7e5761007b3e6d31a5ba3d5b982d91a4509791f60ddafa8c8cce75fa791fc864ca7b250c98b4268a1532540689e0b6e447c26c8af488f7881b66c81c9a746ff1eb9d0b38e3e845dd1576b3adf29a3bb778308b16bbe47da42e9597a59d79db5b7af3b02b7025f9903dce3b5eae17ba4c5b32512bc05ea0e25a7e57801f758557b503aa9b8c9070cb3e2a9b6e0637eea4172859ac42fafd11221efdfad1c15db8141473b85464ed9d765b670c2d9872b607600ea6d15960324e665bc417ae0ba3e5cff6f5a0eff4011d0ca5648d1523bedc194f3f2694aaab6e1e7ecb96c996c6731dfbdb3ac8e3ea095c0c175631e1f88db7db730c891f78732eeb1cf86b0b85c2cb619ce6cdfe9412510f5335fc57b2e13e1b9fde4c6b84f444bf7854e47490d50a421dccb39088b538536f7a44365a86fd7e971d8b58c673c81ed9495d16306ba4e5ed0abd3647609d3f0e99fed3fdc5543e55ec4e343cf62f2b8febfe27994455c3a55fe0771ef1fe68d1bb0005885f384767ada8b40c6cba691b60073f12137b9737612f65dad542787659cc9fc7f039b624f46bf914a2c9469ccc52ec59e4d0a61774df833e3045bffeb92424b4f671dd586459fb9b1c512f989bbff6da43b1c1bc25966c764291703641373a602bd9533b59685df91ee6841fab5fd3a0ce1506750f35ab818cd346ed7778256a7dfcf5ff878afa79e991251cce0ed3e0815f1e75042b3f5525739bbf50b93d3942b4931ad46d3a31298580ad1e3745c08a4e889b18b4ca53bdf4d6107fea549658693182c5daeffc027ad448672088620d45c4a63c96aac26f7d3eca81159118b54e4c806b9e89580cd98d75097553532f2af35d40bb8f4cf4590be084665520a421034ab67628d862973156e5734d752790cabc080ff5eb4e62b11a64d96c9c04ad214326131e643c36d16d60ea12451b9a889081e8bedda4b24a7ed9b6ef328201df0c03087cf614e125dce42645c5bc558c780adda009a97fd72f585978baa5d93514c5c0b5c62eb7714d5e31da9a75e29bc86ae2221ea21102f306ca9710083066211becbd824e0f7b884ed19e4a56a48faa434c7ebb116e3642c7d8f7562ad3297830980eaae8f3d79cddc563dd3cf38e4b9636f4a8dbc4fe85c8f55a333fd4abdc693ceddba6317f107052012fa714a9eecb492558e535ae07eca334557e44068e9a4cf2e8eb6b3678c6c88bdd68911a8bdc816ae866ab7a5f37e2a092cd0fa640b080387512af501bafa907552e6e7aab93c500a0b602ef966bbeb3d19bdf23866d0610acd4a9b37120b4b4b23eb879e0fdc0c8ede4fa2cb1143309c556833c4d858a825d22e5fd4ded0b0e7c5daf90ee75eb671df0b4f8fd579e5681722ddf7059bf4c6f81985075072ebfb8f5abb88605d3c1915e7e10cc1bd0336bbe8719195c139b4d0f018b5603fe78098ec2e02db1ecc58c7617307d97848bfdab9fd29bce68fb9ef182e021e8291c2bd030a4ed7b7813203874d85395438b62968751cae346a4d234693e70ca8eca212f1e683b805a88414b6dcd312aa90484aae9d5f5e2fb7d9c25aa50f49b419b2f45fc97ce49c8fb71126318e5428e7598e1dcf08eb852a9e3217dce2adbc0b2fda97d716d52d01c2645d81845465f40fffa54ad7afc1e82451065bc9695924ea8251b9f10774726235240d9d405ca27f070194705169f2f736eaa846bedbc4deb90eb25ceadd4c4c665cff16aa566ab151eb916c5cbdbbccaf5125977ccfd8c04dc019f414fb8a1eddec216b8b5240fcf2f99ddc04c1ac5d25881d27fa89a6ab0568cbfe944af00040b4af48d613fbf408590d5fe00b6c77a8df4d62c8bb659685592d2288a9e74e32aa7ad32cb1763adfeacdedd54075509ce81c5d7855bdd1399629fffd5b1937d72e89947587716b5d16e560818378055080e34ef92d7a285ec7c5b9696fa0ca578a3179a4d6ebee05fc998d4931cd0049c3b043832fb3438f8d5b959d4eb9cd1320f5d42a8fedc6ee8f8195af6c60fbac73748412cd80bf2b09b7e7631ae5944580e8014e6db9cd26a2a4c8ffb64a14e553c243877b4d700acb30c125848afc94c95f67489aa8bcc41b373dbd5cd61eb0ecc7700c5162af8a6760cb8c5a42f1369c8319d25cc531e2e6693285d41ed59434953ada73e0fe1f293935e49fcc8232ad2ad7d6a809bbc8362925f0981183a6317527686ba63384e99ed5813318d074db1ce5e9387ce6897c3fc764d021fabd5ddf45e80244bdbd03519fcf44a806d6d2fe38a9685a165b18fe8fd86335de9ac7f3555eb32d0d675902787b152aa332826737e16cbcbeb4cde070676553edbb034087c2674f2a0131162b0536599b9b93c36681332146b4a2428a0d1f7d6253d764ce8a853b13df8091ed3fd3e72967512281bb0e54557a301e0b557be72196f9b1bd1cd2e13668c2895dfae6e22929e17e6a7797c2b509ef69f86ee88d3d3728c89a67ad6e143ac70aca78a4d57b1be00b790db0c978ab8e27fa9aaf138e519e0676160b0fad462b600e9e1f72b79812e957df0e1d53d27603cb14fc798ff4ff59e9f9e554750efbcabbe079fdb4ce544fe4df00db39efebfe6094aaa60b3774acb4636fbf45c41c247de599bd7153ca1818fd6f754843c017a6a4afa83d1a45f25215995a41e5c72fe9ef854d64e72ba7fddee1ce3c2c7d25c503118068a2078cf60d08d683ac044e51b5374984cb237bc33b1c52f7227e87bc1ff349ab590134fbb92af864a64f923dfc6c45bd0b912d804301f2c962da5ee627c403fd365e5ede88adce5b8c294e2e18ab5ed1fb3b68122d9517a7163b2d3408cfc52893cf62aca12e0fe1f11e36a6fab64e13537c48c02cd38811750d3ccc8389d631eaccfeb64d4b361459f68e120aee331d50b7ee10943b4cdd73a6ba79f6f089ea67967522ef1ac4b43fae117721adf13da0d16dcb84e0a2f1932db9fbad885ac3bc7bde959f82639bedde7a3925653b5c4af3db38c8518acbfb444e17567d42b03f18a05cd0f2fe6039dfae5acf725f05e5eb7cf9efb63405d860807433119d46ae09f6a906701c20b5e7b716c93a2b267fd1d7cba7252f4ad4a988b5408ab9031138e28f01739d94764389de786bc5c80000c41410b9f46b462be92c946631db5c4a30aea8b73e13e6c62dfc6698574b11b64fcdd7b9812a887c9558ad3279446f074cb598d595f9fa06277a1d3fa5ff58ff0d2f07e15bdde69ce5c3988d347296f9465eb66c78ed78912ba7b09b089288b0050ec0b26638e1fb6cfc8b4a246b9fc0e7801e81bc63c91ad3335bb474a21858b1ab89bfad465bc6f5f53ce10cb38cf34aac70df35145f2967d7ad5952c83fc74eb3398c97760564eb2f00183730a4d9bcb26f9b38f63dabcc9c42e0b00dd8d2dd7efc9bbcc23ac4beac47a4e1c43340cd5c87f91ac88f92d80a4cc03fb9808def0c74399d84b9f6bc03729f2040a297ae9ccd4b5140df7b64ad66eaa9fdf7c37ec8460c11a79d30d92a376f7a9330c2e1110626999d8439266a34b45ae8b7df687919b00df6df8e5a70807893ed730afc18be325d058f58638e5af96acf0174b637b3f378c537ebe6711b9cc7c8d5d448d6180b58db4554f4c639b9c98e0a7ccbb217d07984e227d13746bad57b5b46f78c08e63d889c968a8d698f24fe5225b29d9a12a332e95cdf6f623fe531978ea8cedba283b44a0d465cc92b41d313f58d840c4617f33d93eb9057d3f1bfad7df90c61bd1e151412a9d355f925c5a9b91c1e856216d2a9bad492e1915c23e2575a39190a1355bf263029bb10808bf8feb4537bb6c14c9d3fe9ac5a6e8d27ea16a29cc3d7370b82522b092ae2e4601cbb1001ad3d2c49cf676d8d8e8904d64dd71b3fc080c3924e206fe2670af36dfd9d0526cb005dfc9a73caed416526d5cce988baf74beb97454a72eea10160ac3d129697df6a7fb3ae7d3b8a5733eb0347c0916ddcad184dfb62fb921c1a07b8710491e5bcf1a42473b1b8a7b316df623b2a902de537710f269d30bdaa9151fc7cdae04cd337123ee2cecdc0d08f20d9684dacd77f874e985d7e7aa66d47ea9bc4ec264c9e53f8cbf0d1c94bb003bf40cf090b4d651bdf163e1d363da7cdc3a70aa81087f504639cac7330ef4d741b5cbb42d25a2ce0f9b7b3eb7b1b1ec60a37745e14ca4bb57cc9c9fb36cf3b1514d6ee91ce1cff40b198572c5d3080268a1f5060b783a8c20f1a896fd76cf50c1fe7aa5039d07d971d03289346a09e1ca2a4f56499d4a797f28fa185e5c75008409dd17c1cd4fb4a40ddb0ae61a9ff1d8b39a211cacdcc3e24b3707acaf2900496a62e0659b1037c6064387cf8f68eac4f65c8d918077d1fb956a085ac278ed018ad204849775fa6130400976008bc7b10c64a0529e2e95da67d4eed64e6fd6ad4991597aa12a39753f88cf7ae7edde2fb4fc60c5703e20d37c078b1943cb348b6a0e3c8f7b2ce9951a2c2d488a26b7cdeea903b52cd0ff798daf7e04c6934552623b72215c5d0deae4ca19dcdbaa2011a3a25c1c524236c12b6fad8f2b099008b2e62a49b111d4848b6799b003df8b436b58a025aafdeac5a947832612706e98080f0aa5ada7f0163250af9905f24f18b0d2c4c8d9a2b9b2ce78b2c65ba78fa1d87d2d9d5ac7fbf97729f5106adbb771ab6d0f53bbe3bd922b285a6daa9c13f2f22902212301ddb308b68963bb70def70e2cb9b69a76b0898f1c28898993bf9dcf75f703fed0bec8c53e4f4cfc611323ca2b5c9a138baa0c9548c97a6c5271f637e2b042e6eda2c6b95d684029c3d9fb14a2b39f38c4dd8e8a0b02dcfbb50829c6643aa07ece20aabe02446ab2409c8556fa32a9a160fe35b54ef008e6f5a9730931b1a646422c344084e80a277d2a19f623242759c776625bb996a424083d92f66aeb56284a459dd3647a114efe01bf71e99c060c540fdd4d9168be4059c4c861e3972d9b3f67222070e0fbf1a546a77b601ee8cbbc0ce1bc55967490da7e24c670a82f74acec86eef97578684e660d4ac712173c7f67930f176c2a9a73cb83ca579ac5414a56ac76c7cc946b7e5ab9173735ac0039fee6b09216bfd2e8893b85b513f46497f827971b50173de6bd6443117fcb254ff7b8a538f9c12e3330af27a0e60d4f8eb3d9d052a36ab628af43e4dc9a8d822a9cb49ca7ae4b04c2d69c19f923fd0c978e93e75cbff7e0efa928e48eacd2dfa5f2e3e77c153d8d9c33d56eb305fbdb3480ad40baf600034224cfee7f7db1f505a5cabafe0030e3d6392adc5d0f7555fafb7cbd4e2fe20484e76c8d106666e88bdeafcff556589adaed6dee7ebeef1f2fe042a666995aec70a748d90ae0000000000000000000000000710181e26333a3f", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + } + ] + }, + { + "type": "MlDsaVerify", + "publicKey": "acdb973dbf7f7c8dfb1126089e811ec909a77815bcbf1c2a1fd114b39a6c14c8e8fbe001a86020e9c2064968912e8c49adef6a10b723e48b6cc6ac2f9a599d05f568c9e61a8b1c8fe3bd60c4e5ae8d0584315962b47751a4eced69e3b23d200538da2407577baf91a75b8efcedc759e3b7dac9eac33a9de08a3d6197fa21ca25165f2b9d4fce3b0d03095b1481e4bf3bf579b0de4732a58b0757ff41194de277eb83b92c40a252d7f54a57a7f00585ab2d94c565c30781245f2043cd7713f3c35cef5fe61a42ec4d77cc6e6433af530a04620df33333882e24e0c7e9897d2eaa373670292be73c7a14624b2a964665d5e76c621fbeefbfaf95f033b834935044cf9dc6ecd2341ed4b20dbebb3b609afc280f5b431bd7a815056ee6c7374697b2f91301d36cc1d997d599ea73af62409223157d5722666f671e05ad0d1b28b85df8798a213f19feda5f62bc2718440b46855fd7c32fde42c1d9d4359705bf6e1dacf04d30b1ce3138121d0227afbc0af5205a8fba08c83f1f9077c909aca13131c7dd854f67372e67a8275992012404a1103582598f16445ea4a8c198944f24459b14b28e6799ec07b0bbf73ab687c15682f81b505fcc522d103783e54681ad37785a4c0c604dbee6345b381e671f0cc58da112ba39d507daa8da7bf984970112d452f493a7e151b11d4ab8bb0ad8ae582fd1a20afaa0e197cbcc5fb0f34544d2d7abdade4eb05d8a0c7fa08d9f33a788a3d64b1cece4bd1b6fdcb1cf08eee3cf7d6e3c8a0222b4b8bc44ea34a2e1e8926e1ed982c9f192ca7e2047125be044e8fd084c8b4e20af14a40650571d4ea9c2153c92b18ca84c3ce562856bae71c5fb1532651bafc9eb8ac5824e0b3a16c0da1e79c5707c99a7a0c4a80c53725e735bd18d803f3736d4b1bdbda5612835646d3a1dd166042604c466411cac628fc45e77404c0707b412593325cb31cbabeb2731b60a6321ba09f86e31b8f9388bc2efa04683c6a780804632aa4d2b7c526b1f24b1e12f6d8203c4880957687eb0f1c615d7425297ced51992fed272bb42ba6eea6f9b595ca2bf03ea540d4355ad40fee19a40f133da518c64a24cf02cc90dfa77eb1aaca1e3761a70dba91d636942248e3b44d22c5d257431b5ba89e3434bf9f27bc0598db43b4bef8da30cd93d987dbe8e48199d255edb079c84bb29759032f12d334656de158ad04cffc674559722405bb3948e065955f3a0cb0ad2fd916a91efc68cdb40eb88a6854beeffd62213e3267ab88cd54e8f16fdc9440f974d2195332ce8d851be9ac93a50b492d821e1248558955737fae19311a428943d294579c3ac38227d0e87203b966572c2ed9160ffd50ac1648375b3549b133de54cc1a0f9b83aebdfef9ba3188ae6c525fec99f8cda18fe2b36d97b4334d47f02f35772a68ef46c188b8badec8d044e7089cc57544bf641a9e4037c35bf0dfeb6be46f514c5310e6410e264355530f7cd3680546af6fe6a9c92dbc83e26a403c184abee375db18b71e1fda1c92276d4c31f677976f25de4bb1d4a32b14ee1a3fed8845483c2e022fc4f1d61a8ddaf6807a2b39fca705837b70a55d8240c2b08d95abd6ce0c37eefc03d8994df21d150822f41708826411187374d2dd6a388c45ed1c1252ba595a15e98e436376a41c51dd571fa7c9c2ba8ff0df55ec4ca261fc49a7ed751a5e9b52164403cb94fe0786d2f510b862659f9362878b230a392694fc99e9857af5b97d742595830ca8127b67d0623089127bc2c2445296b0f0dccbf4634c48775b316ae66a72c2545a07574719f64c9a6064ad51036e76a70195f01b3c6aaf3ccee165f0ae199e753d1571dd09331b98ada9168feb6ffa0195af82a44148d43588d519c4b5161ae95776459566fdb2e5c486b986e210e15b15945cac33b5bc48ada737a3ae718e7bd33ec408c91f5a865ddab0466166fe94f066c70ba2ebb32e53bba4debae1f48668ef2b77a0365f23e8de9ed6dd1b2039d728f69dc7fd7507975a49919ccb27de0d96731e13693f25a569aceb6118dd9e7cf21c249b59d9525b23426e03d6ea8f792964293b19005bf4ad32d4010bd2e9a374e58ba6a83a80052245c3173ec125aaf5100532b84322d1c9d0de2757fa2b32dd2e95af6a769dcb39c627d8e4e2fb41319df2df741975841002f61cf8b3b275b36c9a3284b715ada6ad44ce3f7a8fff0c3fa5e53b472edb67f1d76bd5ff8e4c12b6e814981879730dd344f81c009991bb387060dd746ddf43afcec5b565e7aa7bb7675ed1b83cc8d03870cc652875223ff24b66a8aeec8a1a60ba758d8dddbe5536a81a5728acc11138c3f1652687ed0c9244c7286e856f13fdb5e9d0bda2c90aa71a9ee7d79633145270a891fdce2b3c666bb97a98703cc65dab4cc64d30e763db47f9931b4ca4e49a696c9257798f1882d192f260152fe8a685bb1518fbf239517dad4f4331731538fa404e34add11487a9cb635f1708b05d1ce2622c25b0acc4feb05b4e87ea94c401a386185daf0d7e8c64d91b44f3eea32ab3ad22ec827e0e3590e319bf7478647a7b00a1fb700f4a5d4224c4aa0a8946806529e7c023e41bedc5d14f80780c538254b85334240bf618986bc728a57b36abac18f36763d7312a72362023440114adb4ed693b64e8d8e4893558af4058eb4672ce535f816f0f13b86a9b8759e9cae11afbc0a0ef01b7b8ff1ab4a1aa5c71cc6c5dd4553c1d37825e64487dc43788c7bf6c325351630523b28e6280d49a645cac6061a5cd1d8ab4c8b5c33c7091d915060f298efe4441a906d73f68971cb140228477271ef35470ce7ccf7cd64870c019acbbfdfd9261e0b6b22b385f2dc2148e7b987009d1767c0a35f04c8ac4fbe67b886159dbac7b67a98c90eec61cfbb7ee40d16f3d583bc8635549daa6968d7edb979316ab6ccb6d8a39848be5d5f7e4f3480db5ecf04942ae1e840af7671954ffca46d068a9b699751c6f535898c4fd1d52ce3eaef0e051069f8b234a6a6593434edacd0e859426e9c6824075e9515c8aa00d4da29c237c40228a3358ec5bfae44bcb773881c39286937b26bfcd630d2dfddff7edd5282c1afce492f5df0b2db8fae7c3bc3543ac23f0549c34aad63932e6cc3db9c02269ad74d45b1169675414f4799a17247804a41cf4b5c8c8a6638df310398e1bf1b331a69431224b3b807b5b0a1ce2b6aea2b57a883cc0360641ff1b7ad615ad39413334cf6550b9762bf750f93a91c2c65eb67e05cc5909db39d0d4c08a97791864eabf9c9163756315fb0c49a0c9137a771b5a803b93b0cb3485038f141c057fa5458b577cb447e2cf0e7d0223ae7c22ee509b0baac3eb031d275bd22f30b70d30db3851947d45ef749478f25ff41db779a26beadb6027eb24c571b948ec093e27f7a06b3a57b07b0f3ec35d91fd4e0bc030f7f4998b206aabb5a63e102a8633fd95e580776bcfd7b76895b1120a36d44eecd09d5b4f6fae840772e569a8a14d2931250f456e1342b408d851351080f1d3c487753cf9c67fbf82cfcdf8fe85e0ab742ca81fd20cf962ea15306bbee99f2b9346972f5c1bb636fb8d66c68b9ca84be30f7420d649083c87169319a00f7449198f65dcab7097b6ac90242905091a5543bf4ad0c4dd1c9d2678e7742d7d0ef2c8b", + "tests": [ + { + "tcId": 70, + "comment": "expand_s requires 2093 SHAKE bytes", + "msg": "48656c6c6f20776f726c64", + "sig": "40d1e4c39cb59aa9c511ac6116c4cb07fe96494f0572230f8c17b55c9bf25d4f32c4eb3a60fb77f11242971529ffefba5ab6ed51418b94e5893475f0ed13b328d176715056be746bae09d9345ea4e861120e179d4511967b02bb8688e768d214c4cd429a5d2f032a7a81201dc522fb9fb8a0d1d211aab0f259233886df233865165ce4521bb4c0920e97ac14c28af98588f51f9f76c01de380e88e74b62c4c7664667b47c8cae2684f523c997764b26ab03b402a4ab420b6ca1c806131b42008247fdc137dc9fa06e01a897a3346cf820771519f740a13a8b64ee4b87e688764764be002efaa53125c30f8774195ac9b05d2a8385e91913aec6ce38d908982059e95d7cf3ee27b850e76c2bf1b4fb262e57ba421d74c2d14652b890f7174c0e56d5a6281ee0f8c7fcb8f2f2334850fe12664c212e6b9a1b3b69d31aa9fd28edd232befe40e15e0401fadb99fc1468f39574ecf9fe5b0a0828b9adeb11dd24fafd27f1144980b4dafc769ed77022ee02032f28e0da3709a71e074a99a11fa35c10c270bae94c88c55ee01db80f25c37ce4f82e1b5655a219de47c599bf342f1f80867dc736474c9b1ea05961f02d04b8f9da9ef4155598289e3af53fff81977e025cc887beac1127efbc32e93607b108a3883866b2c472c508559b0b05e7d75dee8eef222053225ca492c2fdf3b888ae7bb87c81cdcbca0627c27e20a838011c64bb821f16e4298b67448da37a0d1a445135b65a3f4dde1a08c6e930a38d7715f034437ae1ddf6668cff9ba3068539f3815d257826c75a1922876b1c94f711c4428f4ee2c1a776a8198ab1050379ab6f9a7ec0a04d530b5429f28fda45ffdc5cab4609d02d7b74e2c2ed98d8366164e26e43ca362d66baca0bc57efaf68e2a4517552154b810232ceb6646d8fdeca43f2b93e9a012368ea21a2b3ffceb81642c99d1d79e08404275317c5a80262639cd9650a5a0eca6750887b51bae9972dbe9c99a242cf8a7ed2895021b84e81ce488859699a5884e9c5ddeab6deaec6a73bd54a3f28244a3b8b7f00389161b0727e5419cf490fc8d99238f4149652e8f6a5c4b9a2b52da7fa93234fc48856de6a8e587c78bd3e26ab469e075a353952802e311d04dfb12f914ac366ca464b336eb551fd4f93b61f460a2e66d8ca599018a93c26d4f0887aafb60cccc1facc8908941982458a10aa9a0589edde064e24995ae5b63525ed496e5302e38c9f8ecae9e29c3243242e3d8ebfb10e34e686d68dcb46c7b67120af6b4fc17d2ff728c70bc20d27aa439999d5b3e2478de19370d25e558adece78459286b8ce3796b2747dc0e1e6752fbd7f1efa585b305f66324a1902272afe05237836f67b45c7abc89393cff49b5217e981afb70e89243a61cb72c2222b91f709ead02fc51c064aae1936e7be7addd25be93d3062179540733dbed1905a8ad17e389a25391e84f51f8b25c8af2799868f0098c7bd9a11277fb094c6887921cf5fd9a2829f8d49b42d76e4a1653947d3ddc1abddd06f8069704c8b7d411c8128c420ecef16fb5ae9c0a3557a0d8e78ee75ab6d6e299b36f9a13c06668cb6f3fe8abe80f7a0de3e249668e7086a7d0becc99a17e9b75e74802c8d3c7bf599979c7da77d446446f3854ef1a9cc08f6eb154de77ffe9271f22be6c69964b940a7fa76902f8d2c1890cf73fbe7edc8465896afe47210445944dfa1d03bf7c581591e72e33e2c53a9c75609a192f556be257a570d9dea40afffec929445770491d4578c86028ac94617c5cca3530931f61d24b5e508ca7c43ce1b4aaf0c05a89397635ea93ff8202282efb2f413913f63176043c8323f69b95af44e37bd1c8d50f0b8534884504640752adf29d9c1e6cfb769336f670c92e11cd28c39b5977d405e501aff26cf6fb3ee55355bd7f5c1d42c3dbfb3740830f239f879d6881dc139103845de4b5d8c44dd12196a8efcb1da903710822079459350ba8672f5995e6502e36b3940f0532d648faa4584788cce4e70a58c4f02d8eebf75ed9a265531575de64c9b9e2810e71254e06dd644b6c889f56c77d12593bd98bbb6c3ee6c59651c3d71e9e26872a91b70c1e39fa6d1e6bd1596e748201935e0948c253bdaf9d78e4cb6f988257a778f6e0c7712e86b89142fd1a7ac2a4e9b01e2bc6df878daf35a345489a223df455391df964cffd03f4c098a20295cf5e3ecb2c90c23fc9cb6956ca5888e891e8a054f011a69270a1cbbc5651602ddcfe0a6236e37a066184936d79ef8a3a49d64d494b5347f28d5548c7aedca0eed455f101a5f07b69047538c326081d784a3bd59f0e8c71cc03aceadaa93838ef3a97f0729b169b9b6a8e88191ef47bfea65782646ce2900bb6c2a9636ed76b28e838f0f11cd4388de5d23c446e5c6c0fc12a068dd400a7bf7446ea172655c4092456f497c1ac0040484d8d263c401f67896ebec44d09c60f85f534bdd9af2c3222ab22767eb938e261205be627b98aad8d74d8878f997dd8e758adcafb24230fbaec25b9ee0ce3cb5bd73daf59af350851d47c7b72fe8813194a45490a432fb330787ceca5dc37f9b70f377ad8ff1b6e6e6d3f7c640e6f1cc32f59b77d7c9ae50a79fd06775ac2fcc5747e509a06671d9b63b2319a46c37aed97bc22c546079f0733fe1cddc3a97329163852be91bffe0cfedaf6eff1f2826e881dca07f5cf581861b57bbb483a300334fa3d7e64ffed2f533f7c41e9761c87c4e5a589fd914085b7fcadac5e7a2db8758a0d24873870fe65499d0769c0e80c9cfa02cd5b4f4cffd713ca801d8ffea0b6d616db1a0bacad75fcd1d5845470f730830554df35d06c83a62d6c444a5ae7488d6441812ac304744ac103aea3c3a555bc4bd78ee42b532e8a90b7fba84a5b8bedd4829c8cce37e8f84d7e97d7ba25dd1f6b7605eaad3502ecfb579ef28391279a21243af8c52c701a82c7f797fdce690f0dcb1d196353214786cc34be1180c5277ac6580751994a4334d64562328edd0aeb09bf64ac56be87c8fb92804ba400881ef9e3ce61781b3888e70758270f5c383c6b1ff306c103cc3f6a482b227d7782f9ba57f357a61770a74850163555bfe37687e4c0a1b27f1b95bc8df5c9cc52fb5498361f6df9726278c7b1a419a171b9ffccbf330a19f09d954426ec09afd17bd14e5798a7a20748fc3e26f730ee9afdc25ce346f23d9a525ad8f21e46092ce8584caf31c8118b2be013db4455d9c37645cfdc30c31465c20658e35ec2b923a91413e54593044cc8ba5a318a47f4e8102cd6f6e8b6ea1bb1acdea683962992e7146555cc14eb0b48a85c9deb586f7e4c2cff311bfe2781ee86e2e7b4f2609a3d1abe3fb498286264ca6511113163dd6b8d3b656f8cc04427f8a1cc5da38a82b285fd9b7b1183363260c6f9c86c6a8d34c077dca7e7e1cc98cd7e8004a7db3b68f419eb0911d790879943b64ce4ef8317c316eeef6cd2261246cc1c558230d951536868a7c72e823614dc73c853021ffb743fbcbd065578b68ae52973216597f9f302e7da97362c105062966b0ce880bfca0f221246d5dafe4af5d1e678e04dae1a9cf11cd1f85aeaee76ecde18f61efbc96fad36d6f7b910263746ec9ec6cb751d96b5c1d51364506eee2dec16d63f5b265375de27148499c353fda4629d5469e9582421ed5816572a7c45e9dcf211176ca1a7020e7fdba36817b84d53e4e48a6d939f499940ede477a1b4d31df513d6c56fb64d767398e498f4c5734119ace0ebc81d9690f14aa32edc63d692a5d71fe8d2af01aa12de43dd35d6247c4a9be4451aa872b8ae6d921798a74b75c3ecce342f73d6fa13346281628f10cb40ca1ed405416dcad86e7db77b94350dddf52f22c48a134c989a5a401aaac3b26a4b9a6c0ff471ae1b84789e7cf5edea2843a8f6b4f2cfe287ab591392f06e45160a5f71d06f13d9356db8515c1684a56e225ec200f8213062beaeda219b679836daa7cfe856e7c00a5b4f49f50afca3e42173c30d8d7f70b854929a35b411d734db07a1a278886fea7594eff978f0948061c04e5a21529d8e5e16796aadbef9efdab1e2f92363c0539f986d3c1458d92f8ae2188979b9ddbb33377711adcb09499fd1f5557a739b1626d91327206221ff76c999d9ce1e18644ad08f3c629552761b6641637cf813f1a3277200a9493b959060c8f180593d287adc1d76af2e730ac6ad410d32f248d7842538f6e1be3048b8937d3db368e35d8448302f604d3a1f39eb9bb8a14dc42d312ca6de41ca89dccae099b74c8b4a1fb344dfe9aa33a24fc1e4a2d989645681ba710a77c89755ccc04907ac7259ec0c0f12b5ab3a449cafa905028097b372a39133093a6014e159dd6ae0d7397017e00b4f2dd7d1970f28f57fba54aa46214cd74df7ecc6061972fc2b849dbe7315fd9d105638e3841d29bef3d5a89e2155e6da4d23018bccc6f1f2b0390f0dc4dbb5bf23c012ad715417e2b8104ecbdace377fd68312ccc4a8e9d1950c5b7029832ad2f81dfeb15519001df072b4ae5224ce42148b3a835792956c2dee63a2fab776cbfca6630993f901abef3ec6b7d8aef6ef36a1deddd8070ca724c50341c9eec87aa3a5b4d5570cff0ef3343a2de09e05845cad481f12b6399cfafeb030f980a3109d12bb5963c3b5b924f39348356364298d93062ff5fac395823a68dc994cb826245d8dc1f97eac125e430a8b9cffb008ac5b63aa95392c8c677d48353cf49830c326d3970dfc930776159ce2c630998295b7a0bbced1d8e640ad4b5558f467fbb4405dfaf5435f8dbabaf2b69af8206c4c424bc13251b04097b05ec9d362e2ba51e6eee3098164251551745f12dad99b2439b65b432b611c4633ce930e125693ea36cd2d61976b01fec2de8b6249d6eb73cc58471d02731ea269880d015eb71e59ccae5c96f960a1f2c45de24b3490a99bacc6d9380b85f9abebe4c475b40da90489ea8682809b3a7afd44c7f4a4c93a8203c124c4ed494797f416889ecf98261b0e9e1fcdb094666538e857f3b17f3b2530d03385dc695d7aa1f62d2cc267e2a9d0f0fe63983e16f08f7a1ad8bb00b1db1cd4e5b165d8e8ed65df7a992bca2951692f3ff2dd16d739ef929b1e6f86a88457800ea9e7bf3b04d01c74ee2c26c8d981c2c63fde1df61eed6e61beb41754c9a8ad28a9b61f9b866ef700d0c26accacfceb3e48d884c756edb7691fe0a56938a061eedd73c5da3fc5a41bb08d7453021ad14d31c3f431ffa251d76f6bbd9a3376ce6d2ca944b81a1ea98ffda5559bf4b215afe808846e0a330de906b201d6ae048dcf851ff60c620b95759d9b38fd7767fcfd965bae2f703aab6fd7983232607d5806406db15a44af88639daef0a32749a476a673b36fcfeb68437d945b2ca12128abbf3b2c828b851cd92d71bca34d3c40a8e941d7aed2f150a6abda3b50eadee6fd9f830acda277a3695e41168992d7bfbf1af4865db8c6b05dfab344a7d7ee6f6e5b0a38561cc9df34d502b6b6abe01854c66b85ac0f73bdd1a8a1bac29483257ad121c7453cb018d05ebfe43f74402c542a434f8ca69118a55fc277864c81dbffc20d671b39793cfc3c51d21906045120638e8221705da070300b9666987854048ce1b8e411fc25b20ac36e87a0edd9a057cd016e9d2fa6edf457ee87580c77e04f2ec51304131930315f4c082db96cd73a017c92e146f0c15d0c7c0e285e9b5b0551551bbbe673ed29f8b5e11075ea0dcb64b00238a7dabb3e573a73f2748277956ba23b1f35537a7f840f7e608337087851087e505ded5c4dbc575b8b76a70d8b5622ae85889831b85fd3504a8af8371d96411668520b16b054077bda8bd9f2d06faa7046c629948707e3e3b8a22490dfe6ea0a99eae385922f9bb8792f68bc322eccf33704e0b95fcfdf522349b2a5bd1bff17e882b17fc6cce8b52cb6699e47624a9d3b67c759c0c72ce93193df3fd665a48571947d832cddde21d14c154d5326207a8577e14973d6ff7cd36c39697a043c3b8e2b14023e122bb12813b31676fbda0d104f1d1202fb4e904d473ca37155087a14c45d86f138d83038eaf1c69c005c664cf456b53a0d698e90a638dc437fac811692c5cffa003e1afbad17579e4a5e22d92125847fbfa05676b0e3410447881947b13890f773b9cf2a1357e9f9137c0210ccc321ec497b5f42ded42c03b0fb5c7a5eb641e4cf0b329cade947912c0e36e13353d75ccf4cdaa0e0538bd3b40f4008d326d4f462dc4e02ed58d3eb7f678e2d10e6943366cf5c1fbd65291ce6fb65e0d0360641aec1efa24fe204218b5b1c1734af295d94acc4f4b7a3b8e7b2c820dfb6e703e2edf1ebbeda5b928508e9cf5555ce663700af42ec7e85e6a41bd01355bd7c69103032396b0d1c80787868101c8fb04cb992d53cc30627ce100090b51616869989fa8d0d6f50217a1ee6d6f7d889fa4ab25284d608f9b9fcddfe6ebef0533434f708ec1f52d6177eaf10b2d4b4fc3f543659bb1d100000000000000000000000000000000000b0f16222a2f353a", + "result": "valid", + "flags": [ + "ValidSignature", + "ManySteps" + ] + } + ] + }, + { + "type": "MlDsaVerify", + "publicKey": "2c3c585610631e4701ae30f2fa3df0da7b607281a51396d7165aae1d3310295eaf913c102554844ee54ba1c26dc8f49fd2e9a55f8434c5e0b47ca5824c1a1709aa2825220e5edad3e4ca06dd35f1aa6eed654e04fcb41957be0d838aa2d2ae8f4aa6210f52303d1904a2b958d0117bba6224c3c1ec83bb516701b00c63c6e95eb7f066f00b9fe03deaa8283186f1ab87a0859d89d20846959e252183f47315ebabe6b42baa22ea3d73c80449fcd1d3267650f5f12c7224ab25311e3a5b479c95dacefc0e1291903f860304536ec4556630ee064650a7100f5caa3a789ca60110871f10a6fd22df1864484db68222bd3decce92992d506b55876e1ce84bddf80c5df8b27a3d465ff56cbd0604a466755ed04c82b2c9758e0e7aa849d1c58f6baebccfd80a290db16f7f5f52479c60ebe0eded01116e0e3ec79ae9c27b63a042ca827f2749d118a31dafd73efedffc372f5827528aec5cdbe234056bf23379c9e98ff0a227c7944f5a8b622568ff97354debf018c7e8b7fb2be7b5bd1b75d4c5832c2423a428c09fb4db6df26644bb70033d801c8d47ddaf287cd0a428c4219565895d5b0f7aa48102f269ab2335ef45a94ae5a33b198972d07b95dd5c2ac294222e5b883fb8af422b77b7e07166caf4361e55342873a40e500861b18f1607044f2144fe0d10e7d734cf3d80dd8af7f81114dccaaa73aa030225468fb2cb8fdc9bc62032b0de976f3a568e48b41886444d2eb0204819b6c200e8518bd0e4175de5f85126d13f5c06e96c5eecd8853a708823f0da086c8cd60513127f7fb4fd6ce0d261e8d714ce361dfac2b7a13fbd006d1c25697b0333dededacf52f9013ddeee5c743d78b6ff2ca08e7bf5881710f21de18218d2ce58c5d398a16fa48152a2db929cd7726d9221b73f8768adec154d396461145922e81c778a43365f029e5a2d902323caf3ffc65bc73d07efe06cd45d9655364c722e9904e1c02ccef4f8b1236b79025ac070a2b1f8065cbe635d67b17ff0ae8f9ae3cce5bde705fd38c7cb8e7a881d45be45820e39e79443b6076d97b0761dd3f48f1e9a8e87aa910d9e9fc42214573a8ccf6658823ae5f58cb3e15f5ef0590f3f4ec80ecb948d8ab86d3ff9c57a3f22f2528c62326f3e418516313e35bd7a99ac41920cc8f4ebfcc685e29d8cec4b1ca49ed643fc7f81c962689dbcc122064581260589a05eea9bbfeedb2abcda207de5dae9d347fcae27b516e0da0ce3fed63164b2853747ff467ebe988835d2370f8762d0f4614bdaffc4c6407a91a05b0407236fd074b4a6c3b20cfa5e500f21e43749e08f8b00cbc51f12f787423bf2d3902905b681d013e9d0c1a64ca762feb4243279c468d48ee2b54b949dad1698fec8e666958fbd2a372b5a348ef74a9dccaf52b2cbbcbb56eff93f46819ae4ce8f665ecf6fa2f81c545cbddd746929c222c2b7523d7326725656e33dab98bd9def5e7dc74aae9ee1a7cfbfc931ba454b91210d2ffb0640829ec00ce5ff88ed39a74d6355e87bba0a7f93b87cfd68f3c612d5c9b0bf0d896a250c5c9973fbf6606a9d89e9db75406797d5fd62d0932cd0abb70f248451ef66886687d2fee732c3dcfd0adc8d5efc87ffe8edb4b6d1b52452907998b13f6c8d21b0d8cd28403acc39ca75615e9016fdc5b9ad695f3d9cd4415c2f08f3cbe444710b2733756b897a10a4089f3436458928e3521a319dcca433d0782e726f506c7ee4de0886cca21349692a2e5cb2d4e31d488ef9e482464af3035a4b009d8c169ae04ee6ec8114a9b97888fc401bc7c9f7e1a1db8608e706d639efb2487cb43e97d41dd16dbbbb7d541a5d76474377b095c80ae21d4a74284a30e74fe7234d03ffb97b9d1d5497b52a789dcded8fe9979b8024303dd86a11a543f8c32d35b7b9376c52d94df150f8b24998bfb026f7fb83331a8661b12947b6faba440e7d76ba461fe7b44d568c481153bdc26c8f063686b28f7fef85df0bf8fc883778feaa6d9539eb58c37caed4aee5a1fb990a18106c0203ce71bee719bfe0ab254385240918c595e018967840339369433f52d425e05f3645da7fe9c2863f04b52b78da3bb4d477cf2a4908bb26535567ae80c8f99f6baa5b0dda44b3e63521ac5a6754ed172dfc147ce26949d69533f27355ff6879d0a267d2e005396529fa549396e57ec8cffa26228b2ef45c6446da108451682b19f0b4f8263db11037206eb384a82a96eb4b9059d0bb1fd0429e328fe036cdd35beafad904738787be3fce22fe23baf4642b689e3bf64e4c67af94ecc639dae084307202104576267303795be6f1ec3439d14d96a621cab4e3cb6b8812a6d712f13396062ccae30130cd780ea29ff227e513a732963f5bd18ec4d4a61eb5593a8751cb9295de43f8c8ba4aa31f2a35f0f644f2986d608b8d1377e51df54ccf1538b25a7fb7ad28b8cb211f0f822acb9e4c79d8cf30df9b28a9a4aea9372db67c2d5a246dec09db844795fb35221024e54e4b480074dd542ac5e2dd4325b0533c74fffc9bd388669c22a1377d2edca49c2dc95663d7ded5bfb42091b82266a2a0740a67eacc9e95ee9ab9204c70369e7ff0a3f0eeee34925fad997b2f5beaf64b4aea4e3607282e427bc8ca3fba55a5a02a1f9e853404c1c6859e08bbec76c4d4e07e56da633066c3cf2127cb81c00de7e0df7b498dff90c7bd90b21eec2624ce45f83f25b5de32cbd9bdedbba632c0ca55bfd9ff0ceacf174d094bb5bfcee1f6a6aaa343fdb9130010e7b84d8a14f921ad924cc202d28ad28767d16312c5a5465291af1a1993cb55990661c7febf821c42b4c13a0cee25c8ab32912948dd90484f58ece787de7348a0210b5b1dfc4862cc6da2099006a87446cc1590fbb0a51cdf111ff7cbcaca43feddf5dc0c62df7220fd260cee4d4cc5132f27ebd3dfcaed01d343b1531330b97f769b0670cfcb54301a70cf0f17ce3f74b690334204c849be5ef97b9a158d3cc20cbe428f316e79bfe85f5c64b47dc3dbe4686b26dcd9b968c53a9740658660c34e639ef98be9af6d08e94043729ce29cd5cf2b3284d4e1652c68c19d77d2a9866d8a03a15d1d8ae081a93255f10b71539f2e63a10ba1cbc32c2bba85b21d0cb356f2b287ebab37ebd01c6b6e71c64b6f2fc3a35839919f98f35b078764c4243f8395fbd908e759728c999957ff519c8c5c06eb1adf02833ad6bd8eea0bf504e7b6e6625244e42d7f0274518c47b2d7be5b4ac4619bcf60c8c08274988660db0e27f78165c79adf97141f8b6b15e58b78ee21e52a2da535bcfef83b905712bb995e0bac0d301ac9bc7ef90892ba8ad6b93bc614e712b5d8b7c7287f7cea23529a5cb879864fde1cd3132f2f8d668d8259d4875f10aac24afacadd50b79293fc320455399cda8608037d8befa046d07f9778f1958a2088cbb81d2dfa41ac631e16c921210f8563cde776f8322e50131b6edc92d3a920208ed124e76c6663ea2e229366e5454ddf4801255866d9ee5ce5f479c19f9bc986ec2d6fb79e08e5cd7c2ce9c5886e775fb091eae92304580d631c2b4a3c339340efc8c831e784fc897bc3b6811bcab7b326d0768eb32aa343787605244d98e5d969317400f68e5bd90f3b4967a291f0c28d9d2c5ad5c459a8ba4ea94075569af69fbcd99165", + "tests": [ + { + "tcId": 71, + "comment": "power_2_round returns a remainder of -4095", + "msg": "48656c6c6f20776f726c64", + "sig": "464e7a5320132ea24884301a40e0256fc33c0fb161cf326527f1af1a0a46882adb4b06a1fc5c98413f54e7e9e7d1ac32b064f091e277ac360bc1d9cbf7fb6e5ef67802239cdd9f08e95ab575aadf75f5b4b88d49c69fd6d0936573cfc3e7878598d9c4a901e65c1e6d3793a87f9516ca263d6eb8b0e39c57d98bd2517a06a162290b036fc24837ff0a7b4c95855f6c6f8c2671f7ee58bbc3e5d0470bf514ae5907d2e8d7adb5b2b8c8135c4375e852163dc190dea3286eb02699957cf426f70d33a17e33717594b9af461d9c9d29471d95bbd1e726f26098af07566df75b6d5fedc0e1cdd96a33421e2d4d9efd7a9b374f38305d402b633190a673cbef44de8cdbe71ce6aa9df6c2639c5878730d9be5aff7f44f1b03211d8078707fc75ff77b0466b95062c23c428dc3380441841b7f75757b4293ad58075938047224e391bb3395255bf046719d8b5e5cd1230b65cf788356db072ae488f71122f65fe8f7ac6370d2cd95712feb7a6aa2ffc7c8a24afb8d95f6bdcc7822d4a9778382c1aa15e2106c528fca1b31befe69f0524f52cd41f6e41b5da7b91ab24a99e7e3ac7fe7572fd3d4661c8297588eb508d67e47495a06628088b90e1cfde19f92fe324c5c70146e1199480bb31a69ce577fc1b9470ff909d7c6ce69e6e2c6d317741d74567d92db2a9c1996bdc2baa728df5ae41b8d970913c57429212646c96c9cdb21c97443cb928a3c06f8dcb7f59a933ed59d28f60a1e8bd9c700d1919c7c7ae344df61797372413e46caf6b532162d5e7cebca6cb3dd23c88067073adfb07a09bd2e5128327f7990a9ef3901ee0a4278488d97f0ac5789550e20af56351cf699a45dfe5263ba7b40eecf21a661aa7ae0c3d5cf42f1138f5c1df2d70521c614586a61ddd0d16033d066e525c0a68aaaa4419b4152166d355ae8cf38037f3fa4004ba8a423ecbd4b81e450389735867fbf21f56a266a6cd17d145577582548f2e63315f167f0907243a482e97b702f3ddea23be2206f3f5c7a93c08b0ab751970c31b1f9efb26714f766ce1c3b2a0dc8b10f2f9219e40ecd925cd01d3d4771991eb7edb79de8ec0cba5f8bb33d5d0c74d909996bc82ff9730efc8c22a0aea80a751e98ed34c6680ec199073e24b165b8eceddd5b9428ce859e7a0447bd89e3a089c24c79734a61ea509b755291ec08944b230f480e8bea4aa9b21bf54803722a0a2f8f92e29731ad36ce4a3e9c775e287f53ca236db902777aca7377daa6e587268d94a6c934039d8471a01a59686ec99a79fe41af6ec026ff697a2aba6b232ba97b40203b1dafa694e5daaa6f491000a8efd2245eece944d82876148a6ed4fb2cd04d4ef4205531e3e77b5c57241f208c8bf225a7d44aca0e49830d1cd6fa59f72d2bbdf9b44846aaec44c6aa053df94f3a44e65d8934e2141d766170afc43bdc2b6faba24ebed9285c9755309a68899f47686248152ec59bbd48440f1a1491724057e26f9371766e834e377560bee17d0f12c2415a3ba05bf93b46e4997e22f2e78d6dfcce53ca1f59c7291b32521769a8df444b8b4c4007c77dabd6696ead56e02cb1952f35ce5cd4f2e44c473ee30528f75a31a14607514fb824598caa963880d8f15c15fad61929f244a3bd9c95b00fe034e9659d99c7fcee940c03031a3f7db4ba337acb0c21bd9219da68141a520606b62403e00e5bc912e5f748e4a3a8ee0251bac5a90a76d46224655d1178790a4530108161e99d8a08b5ea2005cde784e5d5b91e1a89a1dbaabb91fa1f9af88b818f556f06df5429c7ebc5fd88d6a31f91068ea4fb2d040e9822cd823c351bade4fe673a8a2a6a6d0a0f6eda7040e9be3d63f6c4d10d9edf937793dce9402f5ddc0d8b582819ebf361fc194eaee37e63fe018be039efdb066aaaf4031efce5efa3c1957e45edb81774d8c3b20e4c889bf62868e06202f783d075d1131671766b456961909fdc3afd2aa746a2e789e0abe21f53dba71e66720f594302d8155cef32520be216c5236f8a865912de12ce816f1b54acae09fc2b1e627694f675bc410e39ea245b87c23ad94f4694d06138c743e232be8e0ce1c867465cecdb96816c5c4865914f8b05ca4b7924164e42c74c821b96522bb9009fec723b9dbdbba5af9ab95959e511ead97635b71425dfc8f789ee76290e8d3e98623da52a7853f6881139a14c42fa9f291a14bfb46eea60c3bbd2da4063a675f0dcd7610f945ff481f0b9e3597e22593fb10adc61c92441d2ede376519250d17d0be8d4ab5b9ad8e7fa70fa841fc2bda65a1e868ea95344cf3a47df7386518365c9b9a8ba994e573ad37a20df8f69ee78a5179568f48b57d181479d030f6a887a5a9e47bad88579062a1ae22cfb74787665dccb3c03236f078fb01684559f2351b9a3bd4da6f8f4c00e29e505ceb9158a7324b6b4c7683faf52dbf331e675ba5f41819ceaa46dbab5775467d24e9b9ce90a5163050cf9e55004c275bdb80c0d08227c28bc6865b6ecb5b13d29e41c2bcc0541f62b5889a22ad62febb5eae535a5b366c02385981d7788792b1d53bd1eb1aaad5ab81515c4c6135c38db778f9e63a640f72c9828391efedb8f5492ab68da66144f8cb888b8692b9e139e087bb9b9b4307deee102a7d2a24978a4b01ef66f3c59e4c031585c2c03c7c2cf00d710142113865ba54f56c50156b66e3f73faf200d16d535d208819bd2c67392196e3b5727dbfcefffb17372f303b1acc396d59b55425f922809221ea0eaebabd74cc39fc1992ae11f3e369c9fa26027f0ee50db14708a69bbdc462b05eca6c318463dfe38747308f366ddb40483a8d0b4c2a756c0275284a16d2ac5397a2ba52681b3d9099131c556c130c36945727dbfa008f1022fa93bb57fb62a339f4ae346d330f7c39da1123435cca61c99aee927fbd04d4a6dd50e3525211a6521b68016b04d5dccc4e72b92d09860657628f6e9a8c508dd509b775dcb5658dd3815d1a6581d7878142fc142fa773849559f6ba447eb6534df87abf0e0cfaaf5636d9cbb3a7c994199fccc76a544f5d007c730b17681769086f833d02226fa9b7f02be2d3d09250cf22894b6f6e321980d0980d6664c7b7bd8093354cfa2707bbd8c919188851b7b5bed277f8becc976bf44f496a375827a8abbdc090598d4ee7f9cf5129dbebea74435239dab7e41487bc82cfa8622542bdcb4ac567323bfe0fd84b3b58833c30272466458b7840ac0a0f6333ef1b33f6a67fb325d9db289bd8b6682aff506d4f120cb65b5acbd703852e224b0a6a093110b3a0e4efb26e74c01a50bdfa2998d4640af5e8ee3fba7fc0a06b628b9e2cc83a95a6f6f8486ab20c4154509e75b7861c7c13bf2e532305e94b139157a529f56bf025a299e1d6f5fd8fb590bf1e7831376f1991e6aed5a0c852a802341a0b835b90077f0c7f58043df6a0b939aa20d3ab61177886ec51b17c369bc3e37be9174cd9eb374e9d8e13c18a729a5023d8f37ef73ffc83b89fa16548a35674414fc31b3056079a32c04da1f45b757e556acf46dd3b6b8abbb114d96aa8ad97aeee03a18c1a2124fe247487d764d79d7abf5f7bb98bcb356a2318548521bb24272c61398d647ad8818c68632968c743dc000ec39d7d378f01295708cedee836cee0e5c30deb7e8337cb5200e362d6fbc78f3d01274c8d7d0fed6e44f1ee2389e26dc25af091495dd62595be71c0cafa1464d74e3c31bd2248159eb51691217500dc841b2af9f4fb910ffea9acc83c6bfd21d514b9d30fce89800df1fda381dec4104e53a6126234fb098eb481aa3d76292df0aff10106d7cb3ba4957df94977d171ce6786242103ece403973706bde10bb739869b78cfdb56d7a00879a3e1df5c3dbf3697d8d4e5f164a65ddaa5c9a1c8d3829804aad24df3ae7ae72ac30089afde1a24f2baefefb192e5699b911d0cd6a04bbf1a567c7b1051eaf99dc83ade01430d81c33ee7f29fe9e1729ba9a5af489e6c02ad9788814b3442dddbf17acbf923a89a0279441e86ae88f0505f785be9bd0665437be47357910d82c84dd39f63f78a08c9eb153943168a8d693137c5e3a3e396f58d5a88ca232b43cc835b18845e938a1822a39dbb058268782f357fbe40ba11943868fc3477e9375dbc22ef0021aed028394807098f95d5ff2dc60dba661f24019d69850f29ddbfc2f27f7b309311e57b7a01a1dc70c7b56f12255723f2987de340ea5da986edc3918ce4992e1fc0d04fe5d51e74dc80695da18a389f2cdd941dfff1a22a4ffe6a2b8e2f6d9ccc91cd3df9d9b8c79f5c80e35d9cc95935b49fe0e9d92063782673327ca2c63e1b69baa727dcca26bf0f7f427d4191f97f2aff9d3a46a61f979f145c51d48384f94a07e23f1bd0803ab873daf2f416b0d6fae2297533ae0ab27256c4dcccffc0d47c0a9869bd5ad455a7af546c888a0a88e799190d4d6e0c8a5e4c3db0b5e0fa9ee5119a2ecff2a113a9c06eec69413a524e77813740a21357550fd617cc4d31ed9d73439cb0925749dbe32206c4e43fb257204a5e638112297bf8eea6ae24041a2e8b20222ae94b1b841b92119e826d17eedb604ed89e419ad3550ba1b3c056f10495971c97e31b334c37f57c29bc2702a3601708c4ef7f5925fb66caac4e4aceb1485f5172c85ae0c5fccfee7012b86b348e75be43534e97b74f6a737488b30aa41ba183d6e14f793a64c284a8abad9c8d4657f16f546223a18bfb445a10912f37233d6c52cfca14e45c5c7ecf9ea15ccf0e8a5762b722f97bca4cec7a7a0a886e99b6aa3d3ea2293f48c94a73c792183cdda12584f75d6aeda3728f9cc8597e55bd6b7b56afb420d75f1f9ed918c24a8bf6bc6fc7055e86618612c22acaca1d21bca5d636bbdf3994c3b40d15a9aed5f9b6d9d76706071f03a29b3292ccc3dd0089c02a1dd929f5517c0273bce6e0d1f296125a2253e46921f79cbe146c9db8364402f13c04b6919a3ac0d645f0e4230c484eb30534829eb9b583f8efc31022b8c4c7bf573f87964f5869c07e1264d132138b9c64303fcbba0a79c710cf89dca5da8397482ee71e54abd86ebef7fe5c354df160cc9ee719136507dd6ca0b0e669303a02781ec3acf33541d5bd41057be2060e5bf88ad1138ccb14317d27a2ed2d59f9f89742af4b6c15056ba9093d485fb888f57e17df586b4eb3257ce74be0232c7565271fb3a9a55a2be79601f66f89156a036cb4933670ccb64f8ab15cd4837f0bd04ab3178eaf2fd99c8ff01d9ac03636c8b219985d207c8ab8240cb7a92bb4964d22191d14edb8c9b98a6f35bc6d9e598a84f2a484c5dacdac7809acc10f1b2071aa8a2ea42635306f95f005603a7f3943b12d4a9787c7d9a531901f39c2bce3b70b6b003e18a39a085284088d3570237bafbe1eb6633ba13d5590d4072855ded0ef47c76003a3a85dad2e2f1eba53cd4b455f98bca7a22df5a4df093730f629c27c0a4143734285caddf636475d021712b360280e0acb905f0d7321edd4c7670a8e782d2bc5aa68319d1047a88d64f745b1906e4d68a1cc72a3dd4b4175f9ecf4ed1533ec1233907794205797a7ee43d8ab225d925b6dc37ec5d3862d6f14dcafe55558e37b2f93e4f574bc754bb86312fa491cd9da58b6201b537e68edd313dfaa24b3e226c4da6022a0317b9ddb4a7d05ae02629582c87667e3d2f5b23602cbb640a253a01bd4223beb272a3cdb290652505e102e91992593c77274db30f8c1e063808855649af07c5eb272eba50bba967b3f929c239faa20e9579714c71b301c593f76a5fad42ef79929f51190e4efe011ba1bafb24b73c09644744516ec903f5a0e2e14090e8ca484083d160f7e9c8755359d990a3a5dba299f0b6b629fe20a34a4f123dd21c5540fa5a6c466a5683d942e6b1fc55f03f984512c1d2c1a90fe7ca7318bedd48307824cd04851873e0fc9610aed4b5865828bd621d73cdd3b10fc42586c74b9770d5ae9fc591f8a7cae5d8d7b3c53983443079ae1e3fe0543ab9d90289ea15d1bc5644c13cc3be24d00f40b9ba02492ad906fd25dcfccaf6d76da8a737e4b92c32f645ad57a467838f9f48c10daa094675b813316032981f2d7949165f3fae9d95d9836035009989a27aaafe1c8af0f25c3e5d849de6e1f9f0923582593a88fa17706fecea8276f18173fd82dc64d62bdc58657a805b29ea8e5c1c78d27b5b576652a7cde684e3b20fbec3b08de1330784d9aaa480b7d41c46e4d0afb11f473ccf9d379ebe9a3fbeeac3ecefc700d805993bef9e6a3b960d626bb7ce5c81889fb24bf583548caf82d9ade8e09bcd38dcec4e82f2d5428e71acd405c2bb6f3f7ce179298abe46b1dda4f539a4c9c8f7d2be2f97b22905b87a5cc7deb5a755d9834fa3dd5d08cd48197badeda3acc270a1e55ef4935099f2915fb8432d0dc02115da3f0f5fe43454b4f547882f62d778fa1d41893b5e1edf600223d53cee0fa205a6e72749da2a8d6dc0134666a7993f4167b82a6cbf800000000000000000000000000000000000000070f141a212b3238", + "result": "valid", + "flags": [ + "ValidSignature", + "BoundaryCondition" + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/libcrux-ml-dsa/tests/wycheproof_sign.rs b/libcrux-ml-dsa/tests/wycheproof_sign.rs index ff1a71150..3d436a31a 100644 --- a/libcrux-ml-dsa/tests/wycheproof_sign.rs +++ b/libcrux-ml-dsa/tests/wycheproof_sign.rs @@ -4,51 +4,77 @@ use hex; use std::{fs::File, io::BufReader, path::Path}; -use libcrux_ml_dsa::ml_dsa_44; +use libcrux_ml_dsa::{ml_dsa_44, ml_dsa_65, ml_dsa_87}; include!("wycheproof/sign_schema.rs"); -#[test] -fn wycheproof_sign_44() { - let katfile_path = Path::new("tests") - .join("wycheproof") - .join(format!("mldsa_{}_draft_sign_test.json", 44)); - let katfile = File::open(katfile_path).expect("Could not open KAT file."); - let reader = BufReader::new(katfile); - - let katfile_serialized: SignSchema = - serde_json::from_reader(reader).expect("Could not deserialize KAT file."); - - let signing_randomness = [0u8; 32]; - - for test_group in katfile_serialized.test_groups { - let signing_key_bytes = hex::decode(test_group.private_key).unwrap(); - if signing_key_bytes.len() != ml_dsa_44::SIGNING_KEY_SIZE { - // If the verification key size in the KAT does not match the - // signing key size in our implementation, ensure that the KAT - // key has a corresponding flag set staring that its length is incorrect. - // - // This flag is set on the child `tests` object. - assert_eq!(test_group.tests.len(), 1); - assert!(test_group.tests[0] - .flags - .contains(&Flag::IncorrectPrivateKeyLength)); - - continue; - } - let signing_key = ml_dsa_44::MLDSA44SigningKey(signing_key_bytes.try_into().unwrap()); +macro_rules! wycheproof_sign_test { + ($name:ident, $parameter_set:literal, $signing_key_size:expr, $signing_key_object: expr, $sign:expr) => { + #[test] + fn $name() { + let katfile_path = Path::new("tests") + .join("wycheproof") + .join(format!("mldsa_{}_draft_sign_test.json", $parameter_set)); + let katfile = File::open(katfile_path).expect("Could not open KAT file."); + let reader = BufReader::new(katfile); + + let katfile_serialized: SignSchema = + serde_json::from_reader(reader).expect("Could not deserialize KAT file."); + + let signing_randomness = [0u8; 32]; - for test in test_group.tests { - let message = hex::decode(test.msg).unwrap(); + for test_group in katfile_serialized.test_groups { + let signing_key_bytes = hex::decode(test_group.private_key).unwrap(); + if signing_key_bytes.len() != $signing_key_size { + // If the signing key size in the KAT does not match the + // signing key size in our implementation, ensure that the KAT + // key has a corresponding flag set staring that its length is incorrect. + // + // This flag is set on the child `tests` object. + assert_eq!(test_group.tests.len(), 1); + assert!(test_group.tests[0] + .flags + .contains(&Flag::IncorrectPrivateKeyLength)); - let signature = ml_dsa_44::sign(signing_key, &message, signing_randomness); + continue; + } + let signing_key = $signing_key_object(signing_key_bytes.try_into().unwrap()); - if test.result == Result::Valid { - assert_eq!( - signature.0.as_slice(), - hex::decode(test.sig).unwrap().as_slice() - ); - } // TODO: else, how should invalid signatures be handled? + for test in test_group.tests { + let message = hex::decode(test.msg).unwrap(); + + let signature = $sign(signing_key, &message, signing_randomness); + + if test.result == Result::Valid { + assert_eq!( + signature.0.as_slice(), + hex::decode(test.sig).unwrap().as_slice() + ); + } // TODO: else, how should invalid signatures be handled? + } + } } - } + }; } + +wycheproof_sign_test!( + wycheproof_sign_44, + 44, + ml_dsa_44::SIGNING_KEY_SIZE, + ml_dsa_44::MLDSA44SigningKey, + ml_dsa_44::sign +); +wycheproof_sign_test!( + wycheproof_sign_65, + 65, + ml_dsa_65::SIGNING_KEY_SIZE, + ml_dsa_65::MLDSA65SigningKey, + ml_dsa_65::sign +); +wycheproof_sign_test!( + wycheproof_sign_87, + 87, + ml_dsa_87::SIGNING_KEY_SIZE, + ml_dsa_87::MLDSA87SigningKey, + ml_dsa_87::sign +); From 16a329372331bc08a7ca133257a5608fe3839e1b Mon Sep 17 00:00:00 2001 From: xvzcf Date: Tue, 25 Jun 2024 14:24:56 -0400 Subject: [PATCH 10/13] wycheproof verify tests for all parameter sets. --- libcrux-ml-dsa/src/ml_dsa_65.rs | 5 +- libcrux-ml-dsa/src/ml_dsa_87.rs | 5 +- libcrux-ml-dsa/tests/wycheproof_verify.rs | 124 ++++++++++++++-------- 3 files changed, 84 insertions(+), 50 deletions(-) diff --git a/libcrux-ml-dsa/src/ml_dsa_65.rs b/libcrux-ml-dsa/src/ml_dsa_65.rs index 67403e5a5..62fa000e7 100644 --- a/libcrux-ml-dsa/src/ml_dsa_65.rs +++ b/libcrux-ml-dsa/src/ml_dsa_65.rs @@ -42,7 +42,7 @@ const COMMITMENT_VECTOR_SIZE: usize = COMMITMENT_RING_ELEMENT_SIZE * ROWS_IN_A; const COMMITMENT_HASH_SIZE: usize = 48; -const VERIFICATION_KEY_SIZE: usize = SEED_FOR_A_SIZE +pub const VERIFICATION_KEY_SIZE: usize = SEED_FOR_A_SIZE + (COEFFICIENTS_IN_RING_ELEMENT * ROWS_IN_A * (FIELD_MODULUS_MINUS_ONE_BIT_LENGTH - BITS_IN_LOWER_PART_OF_T)) @@ -54,12 +54,13 @@ pub const SIGNING_KEY_SIZE: usize = SEED_FOR_A_SIZE + (ROWS_IN_A + COLUMNS_IN_A) * ERROR_RING_ELEMENT_SIZE + ROWS_IN_A * RING_ELEMENT_OF_T0S_SIZE; -const SIGNATURE_SIZE: usize = +pub const SIGNATURE_SIZE: usize = COMMITMENT_HASH_SIZE + (COLUMNS_IN_A * GAMMA1_RING_ELEMENT_SIZE) + MAX_ONES_IN_HINT + ROWS_IN_A; #[derive(Clone, Copy)] pub struct MLDSA65SigningKey(pub [u8; SIGNING_KEY_SIZE]); +#[derive(Clone, Copy)] pub struct MLDSA65VerificationKey(pub [u8; VERIFICATION_KEY_SIZE]); pub struct MLDSA65KeyPair { diff --git a/libcrux-ml-dsa/src/ml_dsa_87.rs b/libcrux-ml-dsa/src/ml_dsa_87.rs index cab1caa00..479775888 100644 --- a/libcrux-ml-dsa/src/ml_dsa_87.rs +++ b/libcrux-ml-dsa/src/ml_dsa_87.rs @@ -42,7 +42,7 @@ const COMMITMENT_VECTOR_SIZE: usize = COMMITMENT_RING_ELEMENT_SIZE * ROWS_IN_A; const COMMITMENT_HASH_SIZE: usize = 64; -const VERIFICATION_KEY_SIZE: usize = SEED_FOR_A_SIZE +pub const VERIFICATION_KEY_SIZE: usize = SEED_FOR_A_SIZE + (COEFFICIENTS_IN_RING_ELEMENT * ROWS_IN_A * (FIELD_MODULUS_MINUS_ONE_BIT_LENGTH - BITS_IN_LOWER_PART_OF_T)) @@ -54,12 +54,13 @@ pub const SIGNING_KEY_SIZE: usize = SEED_FOR_A_SIZE + (ROWS_IN_A + COLUMNS_IN_A) * ERROR_RING_ELEMENT_SIZE + ROWS_IN_A * RING_ELEMENT_OF_T0S_SIZE; -const SIGNATURE_SIZE: usize = +pub const SIGNATURE_SIZE: usize = COMMITMENT_HASH_SIZE + (COLUMNS_IN_A * GAMMA1_RING_ELEMENT_SIZE) + MAX_ONES_IN_HINT + ROWS_IN_A; #[derive(Clone, Copy)] pub struct MLDSA87SigningKey(pub [u8; SIGNING_KEY_SIZE]); +#[derive(Clone, Copy)] pub struct MLDSA87VerificationKey(pub [u8; VERIFICATION_KEY_SIZE]); pub struct MLDSA87KeyPair { diff --git a/libcrux-ml-dsa/tests/wycheproof_verify.rs b/libcrux-ml-dsa/tests/wycheproof_verify.rs index 3c989a543..a53082063 100644 --- a/libcrux-ml-dsa/tests/wycheproof_verify.rs +++ b/libcrux-ml-dsa/tests/wycheproof_verify.rs @@ -4,60 +4,92 @@ use hex; use std::{fs::File, io::BufReader, path::Path}; -use libcrux_ml_dsa::ml_dsa_44; +use libcrux_ml_dsa::{ml_dsa_44, ml_dsa_65, ml_dsa_87}; include!("wycheproof/verify_schema.rs"); -#[test] -fn wycheproof_verify_44() { - let katfile_path = Path::new("tests") - .join("wycheproof") - .join(format!("mldsa_{}_draft_verify_test.json", 44)); - let katfile = File::open(katfile_path).expect("Could not open KAT file."); - let reader = BufReader::new(katfile); - - let katfile_serialized: VerifySchema = - serde_json::from_reader(reader).expect("Could not deserialize KAT file."); - - for test_group in katfile_serialized.test_groups { - let verification_key_bytes = hex::decode(test_group.public_key).unwrap(); - if verification_key_bytes.len() != ml_dsa_44::VERIFICATION_KEY_SIZE { - // If the verification key size in the KAT does not match the - // verification key size in our implementation, ensure that the KAT - // key has a corresponding flag set staring that its length is incorrect. - // - // This flag is set on the child `tests` object. - assert_eq!(test_group.tests.len(), 1); - assert!(test_group.tests[0] - .flags - .contains(&Flag::IncorrectPublicKeyLength)); - - continue; - } - let verification_key = - ml_dsa_44::MLDSA44VerificationKey(verification_key_bytes.try_into().unwrap()); +macro_rules! wycheproof_sign_test { + ($name:ident, $parameter_set:literal, $verification_key_size:expr, $verification_key_object: expr, $signature_size: expr, $signature_object: expr, $verify:expr) => { + #[test] + fn $name() { + let katfile_path = Path::new("tests") + .join("wycheproof") + .join(format!("mldsa_{}_draft_verify_test.json", $parameter_set)); + let katfile = File::open(katfile_path).expect("Could not open KAT file."); + let reader = BufReader::new(katfile); - for test in test_group.tests { - let message = hex::decode(test.msg).unwrap(); + let katfile_serialized: VerifySchema = + serde_json::from_reader(reader).expect("Could not deserialize KAT file."); - let signature_bytes = hex::decode(test.sig).unwrap(); - if signature_bytes.len() != ml_dsa_44::SIGNATURE_SIZE { - // If the signature size in the KAT does not match the - // signature size in our implementation, ensure that the KAT - // signature has a corresponding flag set staring that its length - // is incorrect. - assert!(test.flags.contains(&Flag::IncorrectSignatureLength)); + for test_group in katfile_serialized.test_groups { + let verification_key_bytes = hex::decode(test_group.public_key).unwrap(); + if verification_key_bytes.len() != $verification_key_size { + // If the verification key size in the KAT does not match the + // verification key size in our implementation, ensure that the KAT + // key has a corresponding flag set staring that its length is incorrect. + // + // This flag is set on the child `tests` object. + assert_eq!(test_group.tests.len(), 1); + assert!(test_group.tests[0] + .flags + .contains(&Flag::IncorrectPublicKeyLength)); - continue; - } - let signature = ml_dsa_44::MLDSA44Signature(signature_bytes.try_into().unwrap()); + continue; + } + let verification_key = + $verification_key_object(verification_key_bytes.try_into().unwrap()); + + for test in test_group.tests { + let message = hex::decode(test.msg).unwrap(); - let verification_result = ml_dsa_44::verify(verification_key, &message, signature); + let signature_bytes = hex::decode(test.sig).unwrap(); + if signature_bytes.len() != $signature_size { + // If the signature size in the KAT does not match the + // signature size in our implementation, ensure that the KAT + // signature has a corresponding flag set staring that its length + // is incorrect. + assert!(test.flags.contains(&Flag::IncorrectSignatureLength)); - match test.result { - Result::Valid => assert!(verification_result.is_ok()), - Result::Invalid => assert!(verification_result.is_err()), + continue; + } + let signature = $signature_object(signature_bytes.try_into().unwrap()); + + let verification_result = $verify(verification_key, &message, signature); + + match test.result { + Result::Valid => assert!(verification_result.is_ok()), + Result::Invalid => assert!(verification_result.is_err()), + } + } } } - } + }; } + +wycheproof_sign_test!( + wycheproof_sign_44, + 44, + ml_dsa_44::VERIFICATION_KEY_SIZE, + ml_dsa_44::MLDSA44VerificationKey, + ml_dsa_44::SIGNATURE_SIZE, + ml_dsa_44::MLDSA44Signature, + ml_dsa_44::verify +); +wycheproof_sign_test!( + wycheproof_sign_65, + 65, + ml_dsa_65::VERIFICATION_KEY_SIZE, + ml_dsa_65::MLDSA65VerificationKey, + ml_dsa_65::SIGNATURE_SIZE, + ml_dsa_65::MLDSA65Signature, + ml_dsa_65::verify +); +wycheproof_sign_test!( + wycheproof_sign_87, + 87, + ml_dsa_87::VERIFICATION_KEY_SIZE, + ml_dsa_87::MLDSA87VerificationKey, + ml_dsa_87::SIGNATURE_SIZE, + ml_dsa_87::MLDSA87Signature, + ml_dsa_87::verify +); From 5ae8c581524996b583fb66ffe2ed7a0538fb5cc9 Mon Sep 17 00:00:00 2001 From: xvzcf Date: Tue, 25 Jun 2024 16:45:06 -0400 Subject: [PATCH 11/13] benchmarks. --- Cargo.lock | 15 ++++ libcrux-ml-dsa/Cargo.toml | 6 ++ libcrux-ml-dsa/benches/ml-dsa.rs | 94 +++++++++++++++++++++++ libcrux-ml-dsa/src/ml_dsa_65.rs | 1 + libcrux-ml-dsa/tests/wycheproof/README.md | 2 +- 5 files changed, 117 insertions(+), 1 deletion(-) create mode 100644 libcrux-ml-dsa/benches/ml-dsa.rs diff --git a/Cargo.lock b/Cargo.lock index 744109305..57d6b3efa 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1005,8 +1005,10 @@ dependencies = [ name = "libcrux-ml-dsa" version = "0.0.2-pre.2" dependencies = [ + "criterion", "hex", "libcrux-sha3", + "pqcrypto-dilithium", "rand", "serde", "serde_json", @@ -1294,6 +1296,19 @@ version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" +[[package]] +name = "pqcrypto-dilithium" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "685de0fa68c6786559d5fcdaa414f0cd68ef3f5d162f61823bd7424cd276726f" +dependencies = [ + "cc", + "glob", + "libc", + "pqcrypto-internals", + "pqcrypto-traits", +] + [[package]] name = "pqcrypto-internals" version = "0.2.5" diff --git a/libcrux-ml-dsa/Cargo.toml b/libcrux-ml-dsa/Cargo.toml index dc62791c0..f94a7d470 100644 --- a/libcrux-ml-dsa/Cargo.toml +++ b/libcrux-ml-dsa/Cargo.toml @@ -18,3 +18,9 @@ rand = { version = "0.8" } hex = { version = "0.4.3", features = ["serde"] } serde_json = { version = "1.0" } serde = { version = "1.0", features = ["derive"] } +criterion = "0.5" +pqcrypto-dilithium = "0.5.0" + +[[bench]] +name = "ml-dsa" +harness = false diff --git a/libcrux-ml-dsa/benches/ml-dsa.rs b/libcrux-ml-dsa/benches/ml-dsa.rs new file mode 100644 index 000000000..e861244a1 --- /dev/null +++ b/libcrux-ml-dsa/benches/ml-dsa.rs @@ -0,0 +1,94 @@ +use std::time::Duration; + +use criterion::{criterion_group, criterion_main, Criterion}; +use rand::{rngs::OsRng, RngCore}; + +use libcrux_ml_dsa::ml_dsa_65; + +pub fn comparisons_key_generation(c: &mut Criterion) { + let mut rng = OsRng; + let mut group = c.benchmark_group("ML-DSA-65 Key Generation"); + group.measurement_time(Duration::from_secs(10)); + + group.bench_function("libcrux portable (external random)", |b| { + let mut randomness = [0; 32]; + rng.fill_bytes(&mut randomness); + b.iter(|| { + let _ = ml_dsa_65::generate_key_pair(randomness); + }) + }); + + group.bench_function("pqclean reference implementation (internal random)", |b| { + b.iter(|| { + let (_, _) = pqcrypto_dilithium::dilithium3::keypair(); + }) + }); +} + +pub fn comparisons_signing(c: &mut Criterion) { + let mut rng = OsRng; + let mut group = c.benchmark_group("ML-DSA-65 Signing"); + group.measurement_time(Duration::from_secs(10)); + + let mut message = [0u8; 511]; + rng.fill_bytes(&mut message); + + group.bench_function("libcrux portable (external random)", |b| { + let mut randomness = [0; 32]; + rng.fill_bytes(&mut randomness); + let keypair = ml_dsa_65::generate_key_pair(randomness); + + rng.fill_bytes(&mut randomness); + b.iter(|| { + let _ = ml_dsa_65::sign(keypair.signing_key, &message, randomness); + }) + }); + + group.bench_function("pqclean reference implementation (internal random)", |b| { + let (_, sk) = pqcrypto_dilithium::dilithium3::keypair(); + b.iter(|| { + let _ = pqcrypto_dilithium::dilithium3::detached_sign(&message, &sk); + }) + }); +} + +pub fn comparisons_verification(c: &mut Criterion) { + let mut rng = OsRng; + let mut group = c.benchmark_group("ML-DSA-65 Verification"); + group.measurement_time(Duration::from_secs(10)); + + let mut message = [0u8; 511]; + rng.fill_bytes(&mut message); + + group.bench_function("libcrux portable (external random)", |b| { + let mut randomness = [0; 32]; + rng.fill_bytes(&mut randomness); + let keypair = ml_dsa_65::generate_key_pair(randomness); + + rng.fill_bytes(&mut randomness); + let signature = ml_dsa_65::sign(keypair.signing_key, &message, randomness); + b.iter(|| { + let _ = ml_dsa_65::verify(keypair.verification_key, &message, signature).unwrap(); + }) + }); + + group.bench_function("pqclean reference implementation (internal random)", |b| { + let (vk, sk) = pqcrypto_dilithium::dilithium3::keypair(); + let signature = pqcrypto_dilithium::dilithium3::detached_sign(&message, &sk); + b.iter(|| { + let _ = pqcrypto_dilithium::dilithium3::verify_detached_signature( + &signature, &message, &vk, + ) + .unwrap(); + }) + }); +} + +pub fn comparisons(c: &mut Criterion) { + comparisons_key_generation(c); + comparisons_signing(c); + comparisons_verification(c); +} + +criterion_group!(benches, comparisons); +criterion_main!(benches); diff --git a/libcrux-ml-dsa/src/ml_dsa_65.rs b/libcrux-ml-dsa/src/ml_dsa_65.rs index 62fa000e7..25977b00f 100644 --- a/libcrux-ml-dsa/src/ml_dsa_65.rs +++ b/libcrux-ml-dsa/src/ml_dsa_65.rs @@ -68,6 +68,7 @@ pub struct MLDSA65KeyPair { pub verification_key: MLDSA65VerificationKey, } +#[derive(Clone, Copy)] pub struct MLDSA65Signature(pub [u8; SIGNATURE_SIZE]); /// Generate an ML-DSA-65 Key Pair diff --git a/libcrux-ml-dsa/tests/wycheproof/README.md b/libcrux-ml-dsa/tests/wycheproof/README.md index 86c2212de..a15b4a9e7 100644 --- a/libcrux-ml-dsa/tests/wycheproof/README.md +++ b/libcrux-ml-dsa/tests/wycheproof/README.md @@ -1,4 +1,4 @@ -The JSON files were taken from `https://github.com/C2SP/wycheproof/pull/112`, and +The JSON files were taken from `https://github.com/C2SP/wycheproof/pull/112`. Both `sign_schema.rs` and `verify_schema.rs` were generated with [quicktype](https://github.com/glideapps/quicktype), using the commands: From 9704dcf3678e7da63be63a6a8acb6dcac3dce903 Mon Sep 17 00:00:00 2001 From: xvzcf Date: Wed, 26 Jun 2024 10:39:54 -0400 Subject: [PATCH 12/13] Added examples for generating flamegraphs. --- libcrux-ml-dsa/examples/key_pair_65.rs | 17 +++++++++++++++++ libcrux-ml-dsa/examples/sign_65.rs | 21 +++++++++++++++++++++ libcrux-ml-dsa/examples/verify_65.rs | 22 ++++++++++++++++++++++ 3 files changed, 60 insertions(+) create mode 100644 libcrux-ml-dsa/examples/key_pair_65.rs create mode 100644 libcrux-ml-dsa/examples/sign_65.rs create mode 100644 libcrux-ml-dsa/examples/verify_65.rs diff --git a/libcrux-ml-dsa/examples/key_pair_65.rs b/libcrux-ml-dsa/examples/key_pair_65.rs new file mode 100644 index 000000000..64f94ae56 --- /dev/null +++ b/libcrux-ml-dsa/examples/key_pair_65.rs @@ -0,0 +1,17 @@ +use libcrux_ml_dsa::ml_dsa_65; +use rand::{rngs::OsRng, RngCore}; + +fn random_array() -> [u8; L] { + let mut rng = OsRng; + let mut seed = [0; L]; + rng.try_fill_bytes(&mut seed).unwrap(); + seed +} + +fn main() { + let key_generation_seed = random_array(); + + for _i in 0..100_000 { + let _ = ml_dsa_65::generate_key_pair(key_generation_seed); + } +} diff --git a/libcrux-ml-dsa/examples/sign_65.rs b/libcrux-ml-dsa/examples/sign_65.rs new file mode 100644 index 000000000..487a3eb78 --- /dev/null +++ b/libcrux-ml-dsa/examples/sign_65.rs @@ -0,0 +1,21 @@ +use libcrux_ml_dsa::ml_dsa_65; +use rand::{rngs::OsRng, RngCore}; + +fn random_array() -> [u8; L] { + let mut rng = OsRng; + let mut seed = [0; L]; + rng.try_fill_bytes(&mut seed).unwrap(); + seed +} + +fn main() { + let key_generation_seed = random_array(); + let signing_randomness = random_array(); + let message = random_array::<1023>(); + + let keypair = ml_dsa_65::generate_key_pair(key_generation_seed); + + for _i in 0..100_000 { + let _ = ml_dsa_65::sign(keypair.signing_key, &message, signing_randomness); + } +} diff --git a/libcrux-ml-dsa/examples/verify_65.rs b/libcrux-ml-dsa/examples/verify_65.rs new file mode 100644 index 000000000..1c33d6412 --- /dev/null +++ b/libcrux-ml-dsa/examples/verify_65.rs @@ -0,0 +1,22 @@ +use libcrux_ml_dsa::ml_dsa_65; +use rand::{rngs::OsRng, RngCore}; + +fn random_array() -> [u8; L] { + let mut rng = OsRng; + let mut seed = [0; L]; + rng.try_fill_bytes(&mut seed).unwrap(); + seed +} + +fn main() { + let key_generation_seed = random_array(); + let signing_randomness = random_array(); + let message = random_array::<1023>(); + + let keypair = ml_dsa_65::generate_key_pair(key_generation_seed); + let signature = ml_dsa_65::sign(keypair.signing_key, &message, signing_randomness); + + for _i in 0..100_000 { + ml_dsa_65::verify(keypair.verification_key, &message, signature).unwrap(); + } +} From 5a4243c5a8a8f9418eceb136b23923ba14117c52 Mon Sep 17 00:00:00 2001 From: xvzcf Date: Wed, 26 Jun 2024 13:29:05 -0400 Subject: [PATCH 13/13] Disable default features in pqcrypto_dilithium crate. --- libcrux-ml-dsa/Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libcrux-ml-dsa/Cargo.toml b/libcrux-ml-dsa/Cargo.toml index f94a7d470..a0c64135d 100644 --- a/libcrux-ml-dsa/Cargo.toml +++ b/libcrux-ml-dsa/Cargo.toml @@ -19,7 +19,7 @@ hex = { version = "0.4.3", features = ["serde"] } serde_json = { version = "1.0" } serde = { version = "1.0", features = ["derive"] } criterion = "0.5" -pqcrypto-dilithium = "0.5.0" +pqcrypto-dilithium = { version = "0.5.0", default-features = false } [[bench]] name = "ml-dsa"