1
0
Fork 0
mirror of https://github.com/TransparentLC/opencl_vanity_gpg.git synced 2025-10-20 15:24:08 +00:00

fix: check wildcard

This commit is contained in:
GZTime 2025-01-09 03:26:48 +08:00
parent 522d29a0d0
commit 329649b9ad
No known key found for this signature in database
GPG key ID: 373640C748EA3E19

View file

@ -1,4 +1,4 @@
use std::str::FromStr; use std::{collections::HashMap, str::FromStr};
use anyhow::bail; use anyhow::bail;
@ -17,15 +17,24 @@ impl HashPattern {
let hash_str = hex::encode_upper(hash); let hash_str = hex::encode_upper(hash);
let mut matched = true;
for (i, c) in self.pattern.chars().enumerate() { for (i, c) in self.pattern.chars().enumerate() {
if c.is_ascii_hexdigit() && c != hash_str.chars().nth(i).unwrap() { if c.is_ascii_hexdigit() && c != hash_str.chars().nth(i).unwrap() {
matched = false; return false;
break;
} }
} }
matched let mut map = HashMap::new();
for (pos, c) in self.pattern.chars().enumerate() {
if ('G'..='Z').contains(&c) {
let hash_char = hash_str.chars().nth(pos).unwrap();
let expect = map.entry(c).or_insert(hash_char);
if *expect != hash_char {
return false;
}
}
}
true
} }
} }