diff --git a/src/services/verifier.rs b/src/services/verifier.rs index 5b660a8a..c1dc9bc8 100644 --- a/src/services/verifier.rs +++ b/src/services/verifier.rs @@ -455,10 +455,15 @@ fn verify_revealed_attribute_value( proof: &Presentation, attr_info: &RevealedAttributeInfo, ) -> Result<()> { - let reveal_attr_encoded = attr_info.encoded.to_string(); - let reveal_attr_encoded = Regex::new("^0*") - .unwrap() - .replace_all(&reveal_attr_encoded, ""); + let leading_zero_regex = Regex::new("^0[0-9]+").unwrap(); + let encoded_info = &attr_info.encoded; + + let reveal_attr_encoded = if leading_zero_regex.captures(encoded_info).is_some() { + encoded_info.trim_start_matches('0') + } else { + attr_info.encoded.as_str() + }; + let sub_proof_index = attr_info.sub_proof_index as usize; let crypto_proof_encoded = proof