/**
* Message for mesh connection creation.
- * TODO onionify path, add random tunnel ID
*/
struct GNUNET_MESH_ConnectionCreate
{
/**
* Type: GNUNET_MESSAGE_TYPE_MESH_CONNECTION_CREATE
*
- * Size: sizeof(struct GNUNET_MESH_ManipulatePath) +
- * path_length * sizeof (struct GNUNET_PeerIdentity)
+ * Size: sizeof (struct GNUNET_MESH_ConnectionCreate) +
+ * path_length * sizeof (struct GNUNET_PeerIdentity)
*/
struct GNUNET_MessageHeader header;
/**
* ID of the connection
*/
- struct GNUNET_HashCode cid;
+ struct GNUNET_MeshHash cid;
/**
* path_length structs defining the *whole* path from the origin [0] to the
*/
struct GNUNET_MessageHeader header;
- /**
- * Always 0.
- */
- uint32_t reserved GNUNET_PACKED;
-
/**
* ID of the connection.
*/
- struct GNUNET_HashCode cid;
+ struct GNUNET_MeshHash cid;
- /* TODO: signature */
};
*/
struct GNUNET_MessageHeader header;
- /**
- * Always 0.
- */
- uint32_t reserved GNUNET_PACKED;
-
/**
* ID of the connection.
*/
- struct GNUNET_HashCode cid;
+ struct GNUNET_MeshHash cid;
/* Specific KX message follows. */
};
*/
struct GNUNET_MessageHeader header;
- /**
- * Initialization Vector for payload encryption.
- */
- uint32_t iv GNUNET_PACKED;
-
/**
* ID of the connection.
*/
- struct GNUNET_HashCode cid;
+ struct GNUNET_MeshHash cid;
/**
* ID of the packet (hop by hop).
*/
uint32_t ttl GNUNET_PACKED;
+ /**
+ * Initialization Vector for payload encryption.
+ */
+ uint32_t iv GNUNET_PACKED;
+
+ /**
+ * MAC of the encrypted message, used to verify message integrity.
+ * Everything after this value will be encrypted and authenticated.
+ */
+ struct GNUNET_MeshHash hmac;
+
/**
* Encrypted content follows.
*/
};
+
+/**
+ * Message to create a Channel.
+ */
struct GNUNET_MESH_ChannelCreate
{
/**
uint32_t opt GNUNET_PACKED;
};
+
+/**
+ * Message to manage a Channel (ACK, NACK, Destroy).
+ */
struct GNUNET_MESH_ChannelManage
{
/**
MESH_ChannelNumber chid GNUNET_PACKED;
};
+
/**
* Message for mesh data traffic.
*/
/**
* ID of the connection.
*/
- struct GNUNET_HashCode cid;
+ struct GNUNET_MeshHash cid;
};
*/
struct GNUNET_MESH_Poll
{
- /**
- * Type: GNUNET_MESSAGE_TYPE_MESH_POLL
- */
+ /**
+ * Type: GNUNET_MESSAGE_TYPE_MESH_POLL
+ */
struct GNUNET_MessageHeader header;
- /**
- * Last packet sent.
- */
+ /**
+ * Last packet sent.
+ */
uint32_t pid GNUNET_PACKED;
/**
* ID of the connection.
*/
- struct GNUNET_HashCode cid;
+ struct GNUNET_MeshHash cid;
};
*/
struct GNUNET_MessageHeader header;
- /**
- * Always 0.
- */
- uint32_t reserved GNUNET_PACKED;
-
/**
* ID of the connection.
*/
- struct GNUNET_HashCode cid;
+ struct GNUNET_MeshHash cid;
/**
* ID of the endpoint
* ID of the endpoint
*/
struct GNUNET_PeerIdentity peer2;
-
- /* TODO: signature */
};
*/
struct GNUNET_MessageHeader header;
- /**
- * Always 0.
- */
- uint32_t reserved GNUNET_PACKED;
-
/**
* ID of the connection.
*/
- struct GNUNET_HashCode cid;
-
- /* TODO: signature */
+ struct GNUNET_MeshHash cid;
};
-/**
- * Message to keep a connection alive.
- */
-struct GNUNET_MESH_ConnectionKeepAlive
-{
- /**
- * Type: GNUNET_MESSAGE_TYPE_MESH_(FWD|BCK)_KEEPALIVE
- */
- struct GNUNET_MessageHeader header;
-
- /**
- * Always 0.
- */
- uint32_t reserved GNUNET_PACKED;
-
- /**
- * ID of the connection.
- */
- struct GNUNET_HashCode cid;
-};
-
-
-
GNUNET_NETWORK_STRUCT_END
#if 0 /* keep Emacsens' auto-indent happy */