Allow tinc to be compiled without OpenSSL.
[tinc] / src / tincctl.c
index abaf6ee..0eb3a25 100644 (file)
@@ -119,8 +119,12 @@ static void usage(bool status) {
                                "  restart [tincd options]    Restart tincd.\n"
                                "  reload                     Partially reload configuration of running tincd.\n"
                                "  pid                        Show PID of currently running tincd.\n"
+#ifdef DISABLE_LEGACY
+                               "  generate-keys              Generate a new Ed25519 public/private keypair.\n"
+#else
                                "  generate-keys [bits]       Generate new RSA and Ed25519 public/private keypairs.\n"
                                "  generate-rsa-keys [bits]   Generate a new RSA public/private keypair.\n"
+#endif
                                "  generate-ed25519-keys      Generate a new Ed25519 public/private keypair.\n"
                                "  dump                       Dump a list of one of the following things:\n"
                                "    [reachable] nodes        - all known nodes in the VPN\n"
@@ -415,6 +419,7 @@ static bool ed25519_keygen(bool ask) {
        return true;
 }
 
+#ifndef DISABLE_LEGACY
 /*
   Generate a public/private RSA keypair, and ask for a file to store
   them in.
@@ -480,6 +485,7 @@ static bool rsa_keygen(int bits, bool ask) {
 
        return true;
 }
+#endif
 
 char buffer[4096];
 size_t blen = 0;
@@ -1800,7 +1806,12 @@ static int cmd_init(int argc, char *argv[]) {
        fprintf(f, "Name = %s\n", name);
        fclose(f);
 
-       if(!rsa_keygen(2048, false) || !ed25519_keygen(false))
+#ifndef DISABLE_LEGACY
+       if(!rsa_keygen(2048, false))
+               return 1;
+#endif
+
+       if(!ed25519_keygen(false))
                return 1;
 
        check_port(name);
@@ -1824,7 +1835,11 @@ static int cmd_init(int argc, char *argv[]) {
 }
 
 static int cmd_generate_keys(int argc, char *argv[]) {
+#ifdef DISABLE_LEGACY
+       if(argc > 1) {
+#else
        if(argc > 2) {
+#endif
                fprintf(stderr, "Too many arguments!\n");
                return 1;
        }
@@ -1832,9 +1847,18 @@ static int cmd_generate_keys(int argc, char *argv[]) {
        if(!name)
                name = get_my_name(false);
 
-       return !(rsa_keygen(argc > 1 ? atoi(argv[1]) : 2048, true) && ed25519_keygen(true));
+#ifndef DISABLE_LEGACY
+       if(!rsa_keygen(argc > 1 ? atoi(argv[1]) : 2048, true)
+               return 1;
+#endif
+
+       if(!ed25519_keygen(true))
+               return 1;
+
+       return 0;
 }
 
+#ifndef DISABLE_LEGACY
 static int cmd_generate_rsa_keys(int argc, char *argv[]) {
        if(argc > 2) {
                fprintf(stderr, "Too many arguments!\n");
@@ -1846,6 +1870,7 @@ static int cmd_generate_rsa_keys(int argc, char *argv[]) {
 
        return !rsa_keygen(argc > 1 ? atoi(argv[1]) : 2048, true);
 }
+#endif
 
 static int cmd_generate_ed25519_keys(int argc, char *argv[]) {
        if(argc > 1) {
@@ -2196,7 +2221,9 @@ static const struct {
        {"set", cmd_config},
        {"init", cmd_init},
        {"generate-keys", cmd_generate_keys},
+#ifndef DISABLE_LEGACY
        {"generate-rsa-keys", cmd_generate_rsa_keys},
+#endif
        {"generate-ed25519-keys", cmd_generate_ed25519_keys},
        {"help", cmd_help},
        {"version", cmd_version},