diff options
Diffstat (limited to 'src/hotstuff_keygen.cpp')
-rw-r--r-- | src/hotstuff_keygen.cpp | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/hotstuff_keygen.cpp b/src/hotstuff_keygen.cpp new file mode 100644 index 0000000..7a7e615 --- /dev/null +++ b/src/hotstuff_keygen.cpp @@ -0,0 +1,33 @@ +#include <error.h> +#include "salticidae/util.h" +#include "crypto.h" + +using salticidae::Config; +using hotstuff::privkey_bt; +using hotstuff::pubkey_bt; + +int main(int argc, char **argv) { + Config config("hotstuff.conf"); + privkey_bt priv_key; + auto opt_n = Config::OptValInt::create(1); + auto opt_algo = Config::OptValStr::create("secp256k1"); + config.add_opt("num", opt_n, Config::SET_VAL); + config.add_opt("algo", opt_algo, Config::SET_VAL); + config.parse(argc, argv); + auto &algo = opt_algo->get(); + if (algo == "secp256k1") + priv_key = new hotstuff::PrivKeySecp256k1(); + else + error(1, 0, "algo not supported"); + int n = opt_n->get(); + if (n < 1) + error(1, 0, "n must be >0"); + while (n--) + { + priv_key->from_rand(); + pubkey_bt pub_key = priv_key->get_pubkey(); + printf("pub:%s sec:%s\n", get_hex(*pub_key).c_str(), + get_hex(*priv_key).c_str()); + } + return 0; +} |