+ asprintf(&myself->name, "%s", (char*)cfg->data.val);
+
+ if(check_id(myself->name))
+ {
+ syslog(LOG_ERR, _("Invalid name for myself!"));
+ return -1;
+ }
+cp
+ if(!(cfg = get_config_val(config, privatekey)))
+ {
+ syslog(LOG_ERR, _("Private key for tinc daemon required!"));
+ return -1;
+ }
+ else
+ {
+ myself->rsa_key = RSA_new();
+ BN_hex2bn(&myself->rsa_key->d, cfg->data.ptr);
+ BN_hex2bn(&myself->rsa_key->e, "FFFF");
+ }
+
+ if(read_host_config(myself))
+ {
+ syslog(LOG_ERR, _("Cannot open host configuration file for myself!"));
+ return -1;
+ }
+cp
+ if(!(cfg = get_config_val(myself->config, publickey)))
+ {
+ syslog(LOG_ERR, _("Public key for tinc daemon required!"));
+ return -1;
+ }
+ else
+ {
+ BN_hex2bn(&myself->rsa_key->n, cfg->data.ptr);
+ }
+/*
+ if(RSA_check_key(myself->rsa_key) != 1)
+ {
+ syslog(LOG_ERR, _("Invalid public/private keypair!"));
+ return -1;
+ }
+*/
+ if(!(cfg = get_config_val(myself->config, port)))