|
|
|
@ -30,6 +30,7 @@ |
|
|
|
#include "../lib/platform_compat.h" |
|
|
|
#include "../lib/platform_compat.h" |
|
|
|
#include "../lib/mem.h" |
|
|
|
#include "../lib/mem.h" |
|
|
|
#include "../lib/ll_queue.h" |
|
|
|
#include "../lib/ll_queue.h" |
|
|
|
|
|
|
|
#include <openssl/sha.h> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -92,6 +93,11 @@ static int instance_init_common(struct UTUN_INSTANCE* instance, struct UASYNC* u |
|
|
|
DEBUG_ERROR(DEBUG_CATEGORY_CRYPTO, "Failed to derive Ed25519 pubkey"); |
|
|
|
DEBUG_ERROR(DEBUG_CATEGORY_CRYPTO, "Failed to derive Ed25519 pubkey"); |
|
|
|
return -1; |
|
|
|
return -1; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
uint8_t ed_priv_hash[SHA512_DIGEST_LENGTH]; |
|
|
|
|
|
|
|
SHA512(instance->my_keys.private_key, SC_PRIVKEY_SIZE, ed_priv_hash); |
|
|
|
|
|
|
|
memcpy(instance->my_ed25519_privkey, ed_priv_hash, SC_PRIVKEY_SIZE); |
|
|
|
|
|
|
|
} |
|
|
|
DEBUG_INFO(DEBUG_CATEGORY_CRYPTO, "Ed25519 pubkey derived successfully"); |
|
|
|
DEBUG_INFO(DEBUG_CATEGORY_CRYPTO, "Ed25519 pubkey derived successfully"); |
|
|
|
|
|
|
|
|
|
|
|
// Initialize networks queue (indexed by 56-bit network id)
|
|
|
|
// Initialize networks queue (indexed by 56-bit network id)
|
|
|
|
@ -287,7 +293,7 @@ struct UTUN_INSTANCE* utun_instance_create(struct UASYNC* ua, const char *config |
|
|
|
} |
|
|
|
} |
|
|
|
int remaining = (int)(sizeof(instance->stats_dir) - dir_len - 8); |
|
|
|
int remaining = (int)(sizeof(instance->stats_dir) - dir_len - 8); |
|
|
|
if (remaining > 0) snprintf(instance->stats_dir + dir_len, remaining, "/stats"); |
|
|
|
if (remaining > 0) snprintf(instance->stats_dir + dir_len, remaining, "/stats"); |
|
|
|
mkdir(instance->stats_dir, 0755); |
|
|
|
utun_mkdir(instance->stats_dir, 0755); |
|
|
|
DEBUG_INFO(DEBUG_CATEGORY_GENERAL, "Metrics stats dir: %s", instance->stats_dir); |
|
|
|
DEBUG_INFO(DEBUG_CATEGORY_GENERAL, "Metrics stats dir: %s", instance->stats_dir); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|