Struct containing all information regarding a tunnel to a peer. More...
Data Fields | |
struct CadetPeer * | destination |
Destination of the tunnel. More... | |
struct GNUNET_CRYPTO_EcdhePublicKey | peers_ephemeral_key |
Peer's ephemeral key, to recreate e_key and d_key when own ephemeral key changes. More... | |
struct GNUNET_CRYPTO_SymmetricSessionKey | e_key |
Encryption ("our") key. More... | |
struct GNUNET_CRYPTO_SymmetricSessionKey | d_key |
Decryption ("their") key. More... | |
struct CadetTunnelAxolotl | ax |
Axolotl info. More... | |
struct CadetTunnelAxolotl * | unverified_ax |
Unverified Axolotl info, used only if we got a fresh KX (not a KX_AUTH) while our end of the tunnel was still up. More... | |
struct GNUNET_SCHEDULER_Task * | destroy_task |
Task scheduled if there are no more channels using the tunnel. More... | |
struct GNUNET_SCHEDULER_Task * | maintain_connections_task |
Task to trim connections if too many are present. More... | |
struct GNUNET_SCHEDULER_Task * | send_task |
Task to send messages from queue (if possible). More... | |
struct GNUNET_SCHEDULER_Task * | kx_task |
Task to trigger KX. More... | |
struct GNUNET_MessageStreamTokenizer * | mst |
Tokenizer for decrypted messages. More... | |
struct GNUNET_MQ_Handle * | mq |
Dispatcher for decrypted messages only (do NOT use for sending!). More... | |
struct CadetTConnection * | connection_ready_head |
DLL of ready connections that are actively used to reach the destination peer. More... | |
struct CadetTConnection * | connection_ready_tail |
DLL of ready connections that are actively used to reach the destination peer. More... | |
struct CadetTConnection * | connection_busy_head |
DLL of connections that we maintain that might be used to reach the destination peer. More... | |
struct CadetTConnection * | connection_busy_tail |
DLL of connections that we maintain that might be used to reach the destination peer. More... | |
struct GNUNET_CONTAINER_MultiHashMap32 * | channels |
Channels inside this tunnel. More... | |
struct GNUNET_CADET_ChannelTunnelNumber | next_ctn |
Channel ID for the next created channel in this tunnel. More... | |
struct CadetTunnelQueueEntry * | tq_head |
Queued messages, to transmit once tunnel gets connected. More... | |
struct CadetTunnelQueueEntry * | tq_tail |
Queued messages, to transmit once tunnel gets connected. More... | |
struct CadetTConnection * | current_ct |
Identification of the connection from which we are currently processing a message. More... | |
struct GNUNET_TIME_Relative | kx_retry_delay |
How long do we wait until we retry the KX? More... | |
struct GNUNET_TIME_Absolute | next_kx_attempt |
When do we try the next KX? More... | |
unsigned int | num_ready_connections |
Number of connections in the connection_ready_head DLL. More... | |
unsigned int | num_busy_connections |
Number of connections in the connection_busy_head DLL. More... | |
unsigned int | unverified_attempts |
How often have we tried and failed to decrypt a message using the unverified KX material from unverified_ax? Used to stop trying after MAX_UNVERIFIED_ATTEMPTS. More... | |
unsigned int | tq_len |
Number of entries in the tq_head DLL. More... | |
enum CadetTunnelEState | estate |
State of the tunnel encryption. More... | |
int | kx_auth_requested |
Force triggering KX_AUTH independent of estate. More... | |
Struct containing all information regarding a tunnel to a peer.
Definition at line 302 of file gnunet-service-cadet_tunnels.c.
struct CadetPeer* CadetTunnel::destination |
Destination of the tunnel.
Definition at line 307 of file gnunet-service-cadet_tunnels.c.
struct GNUNET_CRYPTO_EcdhePublicKey CadetTunnel::peers_ephemeral_key |
Peer's ephemeral key, to recreate e_key
and d_key
when own ephemeral key changes.
Definition at line 313 of file gnunet-service-cadet_tunnels.c.
struct GNUNET_CRYPTO_SymmetricSessionKey CadetTunnel::e_key |
Encryption ("our") key.
It is only "confirmed" if kx_ctx is NULL.
Definition at line 318 of file gnunet-service-cadet_tunnels.c.
struct GNUNET_CRYPTO_SymmetricSessionKey CadetTunnel::d_key |
Decryption ("their") key.
It is only "confirmed" if kx_ctx is NULL.
Definition at line 323 of file gnunet-service-cadet_tunnels.c.
struct CadetTunnelAxolotl CadetTunnel::ax |
Axolotl info.
Definition at line 328 of file gnunet-service-cadet_tunnels.c.
struct CadetTunnelAxolotl* CadetTunnel::unverified_ax |
Unverified Axolotl info, used only if we got a fresh KX (not a KX_AUTH) while our end of the tunnel was still up.
In this case, we keep the fresh KX around but do not put it into action until we got encrypted payload that assures us of the authenticity of the KX.
Definition at line 337 of file gnunet-service-cadet_tunnels.c.
struct GNUNET_SCHEDULER_Task* CadetTunnel::destroy_task |
Task scheduled if there are no more channels using the tunnel.
Definition at line 342 of file gnunet-service-cadet_tunnels.c.
struct GNUNET_SCHEDULER_Task* CadetTunnel::maintain_connections_task |
Task to trim connections if too many are present.
Definition at line 347 of file gnunet-service-cadet_tunnels.c.
struct GNUNET_SCHEDULER_Task* CadetTunnel::send_task |
Task to send messages from queue (if possible).
Definition at line 352 of file gnunet-service-cadet_tunnels.c.
struct GNUNET_SCHEDULER_Task* CadetTunnel::kx_task |
Task to trigger KX.
Definition at line 357 of file gnunet-service-cadet_tunnels.c.
struct GNUNET_MessageStreamTokenizer* CadetTunnel::mst |
Tokenizer for decrypted messages.
Definition at line 362 of file gnunet-service-cadet_tunnels.c.
struct GNUNET_MQ_Handle* CadetTunnel::mq |
Dispatcher for decrypted messages only (do NOT use for sending!).
Definition at line 367 of file gnunet-service-cadet_tunnels.c.
struct CadetTConnection* CadetTunnel::connection_ready_head |
DLL of ready connections that are actively used to reach the destination peer.
Definition at line 372 of file gnunet-service-cadet_tunnels.c.
struct CadetTConnection* CadetTunnel::connection_ready_tail |
DLL of ready connections that are actively used to reach the destination peer.
Definition at line 377 of file gnunet-service-cadet_tunnels.c.
struct CadetTConnection* CadetTunnel::connection_busy_head |
DLL of connections that we maintain that might be used to reach the destination peer.
Definition at line 382 of file gnunet-service-cadet_tunnels.c.
struct CadetTConnection* CadetTunnel::connection_busy_tail |
DLL of connections that we maintain that might be used to reach the destination peer.
Definition at line 387 of file gnunet-service-cadet_tunnels.c.
struct GNUNET_CONTAINER_MultiHashMap32* CadetTunnel::channels |
Channels inside this tunnel.
Maps struct GNUNET_CADET_ChannelTunnelNumber
to a struct CadetChannel
.
Definition at line 393 of file gnunet-service-cadet_tunnels.c.
struct GNUNET_CADET_ChannelTunnelNumber CadetTunnel::next_ctn |
Channel ID for the next created channel in this tunnel.
Definition at line 398 of file gnunet-service-cadet_tunnels.c.
struct CadetTunnelQueueEntry* CadetTunnel::tq_head |
Queued messages, to transmit once tunnel gets connected.
Definition at line 403 of file gnunet-service-cadet_tunnels.c.
struct CadetTunnelQueueEntry* CadetTunnel::tq_tail |
Queued messages, to transmit once tunnel gets connected.
Definition at line 408 of file gnunet-service-cadet_tunnels.c.
struct CadetTConnection* CadetTunnel::current_ct |
Identification of the connection from which we are currently processing a message.
Only valid (non-NULL) during handle_decrypted() and the handle-*()-functions called from our mq during that function.
Definition at line 415 of file gnunet-service-cadet_tunnels.c.
struct GNUNET_TIME_Relative CadetTunnel::kx_retry_delay |
How long do we wait until we retry the KX?
Definition at line 420 of file gnunet-service-cadet_tunnels.c.
struct GNUNET_TIME_Absolute CadetTunnel::next_kx_attempt |
When do we try the next KX?
Definition at line 425 of file gnunet-service-cadet_tunnels.c.
unsigned int CadetTunnel::num_ready_connections |
Number of connections in the connection_ready_head DLL.
Definition at line 430 of file gnunet-service-cadet_tunnels.c.
unsigned int CadetTunnel::num_busy_connections |
Number of connections in the connection_busy_head DLL.
Definition at line 435 of file gnunet-service-cadet_tunnels.c.
unsigned int CadetTunnel::unverified_attempts |
How often have we tried and failed to decrypt a message using the unverified KX material from unverified_ax? Used to stop trying after MAX_UNVERIFIED_ATTEMPTS.
Definition at line 442 of file gnunet-service-cadet_tunnels.c.
unsigned int CadetTunnel::tq_len |
Number of entries in the tq_head DLL.
Definition at line 447 of file gnunet-service-cadet_tunnels.c.
enum CadetTunnelEState CadetTunnel::estate |
State of the tunnel encryption.
Definition at line 452 of file gnunet-service-cadet_tunnels.c.
int CadetTunnel::kx_auth_requested |
Force triggering KX_AUTH independent of estate.
Definition at line 457 of file gnunet-service-cadet_tunnels.c.