Fix building tinc and running tests on Solaris
[tinc] / src / protocol_auth.c
index d4bb407..0049cd9 100644 (file)
@@ -1,7 +1,7 @@
 /*
     protocol_auth.c -- handle the meta-protocol, authentication
     Copyright (C) 1999-2005 Ivo Timmermans,
-                  2000-2017 Guus Sliepen <guus@tinc-vpn.org>
+                  2000-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
@@ -46,6 +46,9 @@
 #include "ed25519/sha512.h"
 #include "keys.h"
 
+/* If nonzero, use null ciphers and skip all key exchanges. */
+bool bypass_security = false;
+
 int invitation_lifetime;
 ecdsa_t *invitation_key = NULL;
 
@@ -246,7 +249,7 @@ static bool receive_invitation_sptps(void *handle, uint8_t type, const void *dat
        memcpy(hashbuf, data, 18);
        memcpy(hashbuf + 18, fingerprint, sizeof(hashbuf) - 18);
        sha512(hashbuf, sizeof(hashbuf), cookie);
-       b64encode_urlsafe(cookie, cookie, 18);
+       b64encode_tinc_urlsafe(cookie, cookie, 18);
        free(fingerprint);
 
        char filename[PATH_MAX], usedname[PATH_MAX];
@@ -287,7 +290,12 @@ static bool receive_invitation_sptps(void *handle, uint8_t type, const void *dat
 
        // Read the new node's Name from the file
        char buf[1024] = "";
-       fgets(buf, sizeof(buf), f);
+
+       if(!fgets(buf, sizeof(buf), f)) {
+               logger(DEBUG_ALWAYS, LOG_ERR, "Could not read invitation file %s\n", cookie);
+               return false;
+       }
+
        size_t buflen = strlen(buf);
 
        // Strip whitespace at the end