/*
sptps_test.c -- Simple Peer-to-Peer Security test program
- Copyright (C) 2011-2013 Guus Sliepen <guus@tinc-vpn.org>,
+ Copyright (C) 2011-2022 Guus Sliepen <guus@tinc-vpn.org>,
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
#include "system.h"
-#include <getopt.h>
-
#include "crypto.h"
+#include "random.h"
#include "ecdsagen.h"
#include "logger.h"
-
-static char *program_name;
+#include "names.h"
void logger(debug_t level, int priority, const char *format, ...) {
(void)level;
fputc('\n', stderr);
}
-static void usage() {
+static void usage(void) {
fprintf(stderr, "Usage: %s [options] private_key_file public_key_file\n\n", program_name);
fprintf(stderr, "Valid options are:\n"
" --help Display this help and exit.\n"
{NULL, 0, NULL, 0}
};
-int main(int argc, char *argv[]) {
- program_name = argv[0];
- int r;
- int option_index = 0;
-
- while((r = getopt_long(argc, argv, "", long_options, &option_index)) != EOF) {
- switch(r) {
- case 0: /* long option */
- break;
-
- case '?': /* wrong options */
- usage();
- return 1;
-
- case 1: /* help */
- usage();
- return 0;
-
- default:
- break;
- }
- }
-
- argc -= optind - 1;
- argv += optind - 1;
-
- if(argc != 3) {
- fprintf(stderr, "Wrong number of arguments.\n");
- usage();
- return 1;
- }
-
- crypto_init();
-
+static int generate_keypair(char *argv[]) {
ecdsa_t *key = ecdsa_generate();
if(!key) {
return 1;
}
}
+
+int main(int argc, char *argv[]) {
+ program_name = argv[0];
+ int r;
+ int option_index = 0;
+
+ while((r = getopt_long(argc, argv, "", long_options, &option_index)) != EOF) {
+ switch(r) {
+ case 0: /* long option */
+ break;
+
+ case '?': /* wrong options */
+ usage();
+ return 1;
+
+ case 1: /* help */
+ usage();
+ return 0;
+
+ default:
+ break;
+ }
+ }
+
+ argc -= optind - 1;
+ argv += optind - 1;
+
+ if(argc != 3) {
+ fprintf(stderr, "Wrong number of arguments.\n");
+ usage();
+ return 1;
+ }
+
+ random_init();
+ crypto_init();
+
+ int result = generate_keypair(argv);
+
+ random_exit();
+
+ return result;
+}