aboutsummaryrefslogtreecommitdiff
path: root/src/hotstuff_keygen.cpp
diff options
context:
space:
mode:
authorDeterminant <ted.sybil@gmail.com>2018-07-16 04:13:57 -0400
committerDeterminant <ted.sybil@gmail.com>2018-07-16 04:13:57 -0400
commitefd49718dfbb6c1f329e72026770b07a67348168 (patch)
tree4f29a41480c6ad42ad0fcf2b861c7acc7368b937 /src/hotstuff_keygen.cpp
init
Diffstat (limited to 'src/hotstuff_keygen.cpp')
-rw-r--r--src/hotstuff_keygen.cpp33
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;
+}