aboutsummaryrefslogtreecommitdiff
path: root/src/io/cli.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/io/cli.h')
-rw-r--r--src/io/cli.h40
1 files changed, 40 insertions, 0 deletions
diff --git a/src/io/cli.h b/src/io/cli.h
new file mode 100644
index 0000000..0826419
--- /dev/null
+++ b/src/io/cli.h
@@ -0,0 +1,40 @@
+/*
+ * ecgen, tool for generating Elliptic curve domain parameters
+ * Copyright (C) 2017 J08nY
+ */
+#ifndef ECGEN_CLI_H
+#define ECGEN_CLI_H
+
+#include <argp.h>
+#include <stdbool.h>
+#include <stdlib.h>
+
+extern char doc[];
+extern char args_doc[];
+extern struct argp_option options[];
+
+enum field_e { FIELD_PRIME, FIELD_BINARY };
+
+typedef struct config_t {
+ enum field_e field;
+ bool binary_field;
+ bool prime_field;
+ bool random;
+ bool prime;
+ bool invalid;
+ bool cm;
+ char *order;
+ bool koblitz;
+ bool from_seed;
+ char *seed;
+ char *datadir;
+ char *output;
+ char *input;
+ bool append;
+ long bits;
+
+} config_t;
+
+error_t parse_opt(int key, char *arg, struct argp_state *state);
+
+#endif // ECGEN_CLI_H