New function read_rsa_public_key();
[oweals/tinc.git] / src / protocol.c
index 1a791a717316ba82503997c4b0dca8c635ae2ffe..a46894d0af349679eb6b0349bf680e64e688d2f6 100644 (file)
@@ -17,7 +17,7 @@
     along with this program; if not, write to the Free Software
     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 
-    $Id: protocol.c,v 1.28.4.64 2000/11/22 19:55:50 guus Exp $
+    $Id: protocol.c,v 1.28.4.68 2000/11/30 23:18:21 zarq Exp $
 */
 
 #include "config.h"
@@ -255,8 +255,8 @@ cp
   if((cfg = get_config_val(cl->config, config_publickey)))
     {
       cl->rsa_key = RSA_new();
-      BN_hex2bn(&cl->rsa_key->n, cfg->data.ptr);
-      BN_hex2bn(&cl->rsa_key->e, "FFFF");
+      if(read_rsa_public_key(&(cl->rsa_key), cfg->data.ptr) < 0)
+       return -1;
     }
   else
     {
@@ -575,8 +575,6 @@ cp
   if(cl->status.outgoing)
     cl->allow_request = ACK;
 
-  setup_vpn_connection(cl);
-
   x = send_request(cl, "%d", ACK);
   cl->status.encryptout = 1;
 cp
@@ -846,7 +844,7 @@ cp
 
   /* Check if somebody tries to add ourself */
 
-  if(!strcmp(new->name, myself->name))
+  if(!strcmp(name, myself->name))
     {
       syslog(LOG_ERR, _("Warning: got ADD_HOST from %s (%s) for ourself, restarting"), cl->name, cl->hostname);
       sighup = 1;
@@ -901,12 +899,6 @@ cp
   new->status.active = 1;
   new->cipher_pkttype = EVP_bf_cfb();
   new->cipher_pktkeylength = cl->cipher_pkttype->key_len + cl->cipher_pkttype->iv_len;
-
-  /* Okay this is a bit ugly... it would be better to setup UDP sockets dynamically, or
-   * perhaps just one UDP socket... but then again, this has benefits too...
-   */
-   
-  setup_vpn_connection(new);
 cp
   return 0;
 }
@@ -1258,8 +1250,8 @@ cp
 
   from->cipher_pktkey = xstrdup(pktkey);
   keylength /= 2;
-  hex2bin(pktkey, pktkey, keylength);
-  pktkey[keylength] = '\0';
+  hex2bin(from->cipher_pktkey, from->cipher_pktkey, keylength);
+  from->cipher_pktkey[keylength] = '\0';
 
   from->status.validkey = 1;
   from->status.waitingforkey = 0;