mirror of
https://github.com/nelsbrock/fingerprunk.git
synced 2026-10-13 21:29:34 +02:00
Compare commits
6
Commits
20c0a919c5
...
0.4.1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
bf246ea88d
|
||
|
|
19ddf681e1
|
||
|
|
b1cab3c4fe
|
||
|
|
c22d4bdb27
|
||
|
|
3439e51865
|
||
|
|
a07aaca068
|
No files matched your search
Generated
+244
-529
File diff suppressed because it is too large.
Load diff
+3
-3
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "fingerprunk"
|
||||
version = "0.3.0"
|
||||
version = "0.4.1"
|
||||
authors = ["Niklas Elsbrock <mail@nelsbrock.de>"]
|
||||
edition = "2024"
|
||||
description = "CLI tool for brute-forcing OpenPGP keys with cool fingerprints"
|
||||
@@ -13,7 +13,7 @@ categories = ["command-line-utilities"]
|
||||
anyhow = "1.0.102"
|
||||
clap = { version = "4.6.1", features = ["derive"] }
|
||||
ctrlc = "3.5.2"
|
||||
fancy-regex = "0.18.0"
|
||||
fancy-regex = "0.19.2"
|
||||
num-integer = "0.1.46"
|
||||
rpassword = "7.5.2"
|
||||
sequoia-openpgp = "2.2.0"
|
||||
sequoia-openpgp = "2.3.0"
|
||||
+2
-2
@@ -38,7 +38,7 @@ enum Message {
|
||||
pub struct Config {
|
||||
pub regex: Regex,
|
||||
pub status_enabled: bool,
|
||||
pub stop_after: Option<NonZero<u64>>,
|
||||
pub count: Option<NonZero<u64>>,
|
||||
pub password: Option<Password>,
|
||||
pub userids: Vec<UserID>,
|
||||
pub workers: NonZero<usize>,
|
||||
@@ -111,7 +111,7 @@ impl Fingerprunk {
|
||||
|
||||
// Increase "found" counter and stop if enough matches have been found
|
||||
let prev = self.counter_found.fetch_add(1, Ordering::Relaxed);
|
||||
if self.config.stop_after.is_some_and(|s| prev + 1 == s.get()) {
|
||||
if self.config.count.is_some_and(|s| prev + 1 == s.get()) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
+6
-6
@@ -14,8 +14,8 @@ use sequoia_openpgp::packet::UserID;
|
||||
struct Args {
|
||||
/// Filter key fingerprints by using a regular expression.
|
||||
///
|
||||
/// This regex is matched against the hexadecimal representation of the fingerprint, without
|
||||
/// spaces or other additional symbols.
|
||||
/// This regex is matched against the upper-case hexadecimal representation of the fingerprint,
|
||||
/// without spaces or other additional symbols.
|
||||
///
|
||||
/// This is implemented using the fancy-regex library: <https://crates.io/crates/fancy-regex>.
|
||||
/// You can test and debug your regex here: <https://fancy-regex.github.io/fancy-regex/>.
|
||||
@@ -27,12 +27,12 @@ struct Args {
|
||||
/// By default, status information is only shown if stderr is bound to a terminal and stdout is
|
||||
/// *not* bound to a terminal. The latter in particular prevents found keys (which are printed
|
||||
/// to stdin) from being "overwritten" by status information printed to stderr.
|
||||
#[arg(long, value_enum, default_value_t)]
|
||||
#[arg(long, value_enum, value_name = "WHEN", default_value_t)]
|
||||
status: StatusEnabled,
|
||||
|
||||
/// Stop once the specified number of matching keys has been found.
|
||||
#[arg(long, value_name = "NUM")]
|
||||
stop_after: Option<NonZero<u64>>,
|
||||
#[arg(short = 'n', long, value_name = "NUM")]
|
||||
count: Option<NonZero<u64>>,
|
||||
|
||||
/// Prompt for a password and use it to encrypt matching keys.
|
||||
///
|
||||
@@ -120,7 +120,7 @@ fn main() -> anyhow::Result<()> {
|
||||
let config = fingerprunk::Config {
|
||||
regex: args.regex,
|
||||
status_enabled: args.status.evaluate(),
|
||||
stop_after: args.stop_after,
|
||||
count: args.count,
|
||||
password,
|
||||
userids: args.userid,
|
||||
workers,
|
||||
|
||||
Reference in new issue
Block a user