add support for loading signed network files
[project/unetd.git] / network.h
index ea52be3cc69cab0e9bfe84bfe96d05d02c6d8ba8..81fe892a1ee49cac5260fc963d28a1d80e81634d 100644 (file)
--- a/network.h
+++ b/network.h
@@ -12,6 +12,7 @@
 enum network_type {
        NETWORK_TYPE_FILE,
        NETWORK_TYPE_INLINE,
+       NETWORK_TYPE_DYNAMIC,
 };
 
 struct wg_ops;
@@ -29,6 +30,7 @@ struct network {
                int keepalive;
                uint8_t key[CURVE25519_KEY_SIZE];
                uint8_t pubkey[CURVE25519_KEY_SIZE];
+               uint8_t auth_key[CURVE25519_KEY_SIZE];
                const char *file;
                const char *interface;
                const char *update_cmd;
@@ -46,6 +48,9 @@ struct network {
                bool local_host_changed;
        } net_config;
 
+       void *net_data;
+       size_t net_data_len;
+
        int ifindex;
        struct network_host *prev_local_host;
        struct avl_tree hosts;
@@ -63,6 +68,7 @@ enum {
        NETWORK_ATTR_NAME,
        NETWORK_ATTR_TYPE,
        NETWORK_ATTR_KEY,
+       NETWORK_ATTR_AUTH_KEY,
        NETWORK_ATTR_FILE,
        NETWORK_ATTR_DATA,
        NETWORK_ATTR_INTERFACE,