From fe1a063eef50b87fbcce717f1d89d69596f02a57 Mon Sep 17 00:00:00 2001 From: Henrik Hautakoski Date: Fri, 20 Dec 2019 12:10:46 +0100 Subject: [PATCH] src/main.cpp: implement search. --- src/main.cpp | 52 ++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 46 insertions(+), 6 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index 11582aa..8f5a787 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -22,18 +22,58 @@ * SOFTWARE. */ #include +#include +#include "utils.h" #include "base58.h" #include "WIF.h" #include "ec.h" +static void print_key(struct ec_keypair *key) { + + std::cout << "Private: " << wif_priv_encode(key->secret) << std::endl; + std::cout << "Public: " << wif_pub_encode(key->pub) << std::endl; +} + +static void search(const char *words, size_t n) { + + size_t count = 0; + struct ec_keypair pair; + std::vector word_list; + + std::cout << "Searching for " << n << " keys containing: " << words << std::endl; + + word_list = strsplit(words, ","); + + while (count < n) { + std::string pubstr; + ec_generate_key(&pair); + pubstr = wif_pub_encode(pair.pub); + + for(auto const& word: word_list) { + if (pubstr.find(word) != std::string::npos) { + std::cout << "----" << std::endl; + std::cout << "Found: " << word << std::endl; + print_key(&pair); + count++; + } + } + } +} + int main(int argc, char **argv) { - struct ec_keypair pair; - - ec_generate_key(&pair); - - std::cout << "Private: " << wif_priv_encode(pair.secret) << std::endl; - std::cout << "Public: " << wif_pub_encode(pair.pub) << std::endl; + // search [ ] + if (argc > 2 && !strcmp(argv[1], "search")) { + int n = 100; + if (argc > 3) { + n = atoi(argv[3]); + } + search(argv[2], n); + } else { + struct ec_keypair pair; + ec_generate_key(&pair); + print_key(&pair); + } return 0; }