GNUnet 0.21.0
GSC_KeyExchangeInfo Struct Reference

Information about the status of a key exchange with another peer. More...

Collaboration diagram for GSC_KeyExchangeInfo:
[legend]

Data Fields

struct GSC_KeyExchangeInfonext
 DLL. More...
 
struct GSC_KeyExchangeInfoprev
 DLL. More...
 
const struct GNUNET_PeerIdentitypeer
 Identity of the peer. More...
 
struct GNUNET_MQ_Handlemq
 Message queue for sending messages to peer. More...
 
struct GNUNET_MessageStreamTokenizermst
 Our message stream tokenizer (for encrypted payload). More...
 
struct PingMessage ping
 PING message we transmit to the other peer. More...
 
struct GNUNET_CRYPTO_EcdhePublicKey other_ephemeral_key
 Ephemeral public ECC key of the other peer. More...
 
struct GNUNET_CRYPTO_SymmetricSessionKey encrypt_key
 Key we use to encrypt our messages for the other peer (initialized by us when we do the handshake). More...
 
struct GNUNET_CRYPTO_SymmetricSessionKey decrypt_key
 Key we use to decrypt messages from the other peer (given to us by the other peer during the handshake). More...
 
struct GNUNET_TIME_Absolute foreign_key_expires
 At what time did the other peer generate the decryption key? More...
 
struct GNUNET_TIME_Absolute timeout
 When should the session time out (if there are no PONGs)? More...
 
struct GNUNET_TIME_Absolute last_notify_timeout
 What was the last timeout we informed our monitors about? More...
 
struct GNUNET_TIME_Relative set_key_retry_frequency
 At what frequency are we currently re-trying SET_KEY messages? More...
 
struct GNUNET_SCHEDULER_Taskretry_set_key_task
 ID of task used for re-trying SET_KEY and PING message. More...
 
struct GNUNET_SCHEDULER_Taskkeep_alive_task
 ID of task used for sending keep-alive pings. More...
 
uint32_t last_packets_bitmap
 Bit map indicating which of the 32 sequence numbers before the last were received (good for accepting out-of-order packets and estimating reliability of the connection) More...
 
uint32_t last_sequence_number_received
 last sequence number received on this connection (highest) More...
 
uint32_t last_sequence_number_sent
 last sequence number transmitted More...
 
uint32_t ping_challenge
 What was our PING challenge number (for this peer)? More...
 
int has_excess_bandwidth
 GNUNET_YES if this peer currently has excess bandwidth. More...
 
enum GNUNET_CORE_KxState status
 What is our connection status? More...
 

Detailed Description

Information about the status of a key exchange with another peer.

Definition at line 133 of file gnunet-service-core_kx.c.

Field Documentation

◆ next

struct GSC_KeyExchangeInfo* GSC_KeyExchangeInfo::next

DLL.

Definition at line 138 of file gnunet-service-core_kx.c.

Referenced by do_rekey(), and GSC_KX_handle_client_monitor_peers().

◆ prev

struct GSC_KeyExchangeInfo* GSC_KeyExchangeInfo::prev

DLL.

Definition at line 143 of file gnunet-service-core_kx.c.

◆ peer

◆ mq

struct GNUNET_MQ_Handle* GSC_KeyExchangeInfo::mq

Message queue for sending messages to peer.

Definition at line 153 of file gnunet-service-core_kx.c.

Referenced by GSC_KX_encrypt_and_transmit(), GSC_NEIGHBOURS_get_queue_length(), handle_ping(), handle_transport_notify_connect(), send_key(), and send_ping().

◆ mst

struct GNUNET_MessageStreamTokenizer* GSC_KeyExchangeInfo::mst

Our message stream tokenizer (for encrypted payload).

Definition at line 158 of file gnunet-service-core_kx.c.

Referenced by handle_encrypted(), handle_transport_notify_connect(), and handle_transport_notify_disconnect().

◆ ping

struct PingMessage GSC_KeyExchangeInfo::ping

PING message we transmit to the other peer.

Definition at line 163 of file gnunet-service-core_kx.c.

Referenced by send_ping(), and setup_fresh_ping().

◆ other_ephemeral_key

struct GNUNET_CRYPTO_EcdhePublicKey GSC_KeyExchangeInfo::other_ephemeral_key

Ephemeral public ECC key of the other peer.

Definition at line 168 of file gnunet-service-core_kx.c.

Referenced by derive_session_keys(), and handle_ephemeral_key().

◆ encrypt_key

struct GNUNET_CRYPTO_SymmetricSessionKey GSC_KeyExchangeInfo::encrypt_key

Key we use to encrypt our messages for the other peer (initialized by us when we do the handshake).

Definition at line 174 of file gnunet-service-core_kx.c.

Referenced by derive_session_keys(), do_encrypt(), GSC_KX_encrypt_and_transmit(), handle_ping(), and setup_fresh_ping().

◆ decrypt_key

struct GNUNET_CRYPTO_SymmetricSessionKey GSC_KeyExchangeInfo::decrypt_key

Key we use to decrypt messages from the other peer (given to us by the other peer during the handshake).

Definition at line 180 of file gnunet-service-core_kx.c.

Referenced by derive_session_keys(), do_decrypt(), handle_encrypted(), handle_ping(), and handle_pong().

◆ foreign_key_expires

struct GNUNET_TIME_Absolute GSC_KeyExchangeInfo::foreign_key_expires

At what time did the other peer generate the decryption key?

Definition at line 185 of file gnunet-service-core_kx.c.

Referenced by handle_encrypted(), and handle_ephemeral_key().

◆ timeout

struct GNUNET_TIME_Absolute GSC_KeyExchangeInfo::timeout

When should the session time out (if there are no PONGs)?

Definition at line 190 of file gnunet-service-core_kx.c.

Referenced by GSC_KX_handle_client_monitor_peers(), monitor_notify_all(), send_keep_alive(), and update_timeout().

◆ last_notify_timeout

struct GNUNET_TIME_Absolute GSC_KeyExchangeInfo::last_notify_timeout

What was the last timeout we informed our monitors about?

Definition at line 195 of file gnunet-service-core_kx.c.

Referenced by monitor_notify_all(), and update_timeout().

◆ set_key_retry_frequency

struct GNUNET_TIME_Relative GSC_KeyExchangeInfo::set_key_retry_frequency

At what frequency are we currently re-trying SET_KEY messages?

Definition at line 200 of file gnunet-service-core_kx.c.

Referenced by handle_transport_notify_connect(), send_key(), and set_key_retry_task().

◆ retry_set_key_task

struct GNUNET_SCHEDULER_Task* GSC_KeyExchangeInfo::retry_set_key_task

ID of task used for re-trying SET_KEY and PING message.

Definition at line 205 of file gnunet-service-core_kx.c.

Referenced by handle_pong(), handle_transport_notify_connect(), handle_transport_notify_disconnect(), send_key(), and set_key_retry_task().

◆ keep_alive_task

struct GNUNET_SCHEDULER_Task* GSC_KeyExchangeInfo::keep_alive_task

ID of task used for sending keep-alive pings.

Definition at line 210 of file gnunet-service-core_kx.c.

Referenced by handle_encrypted(), handle_ephemeral_key(), handle_ping(), handle_pong(), handle_transport_notify_disconnect(), send_keep_alive(), and update_timeout().

◆ last_packets_bitmap

uint32_t GSC_KeyExchangeInfo::last_packets_bitmap

Bit map indicating which of the 32 sequence numbers before the last were received (good for accepting out-of-order packets and estimating reliability of the connection)

Definition at line 217 of file gnunet-service-core_kx.c.

Referenced by derive_session_keys(), and handle_encrypted().

◆ last_sequence_number_received

uint32_t GSC_KeyExchangeInfo::last_sequence_number_received

last sequence number received on this connection (highest)

Definition at line 222 of file gnunet-service-core_kx.c.

Referenced by derive_session_keys(), and handle_encrypted().

◆ last_sequence_number_sent

uint32_t GSC_KeyExchangeInfo::last_sequence_number_sent

last sequence number transmitted

Definition at line 227 of file gnunet-service-core_kx.c.

Referenced by GSC_KX_encrypt_and_transmit().

◆ ping_challenge

uint32_t GSC_KeyExchangeInfo::ping_challenge

What was our PING challenge number (for this peer)?

Definition at line 232 of file gnunet-service-core_kx.c.

Referenced by handle_pong(), and setup_fresh_ping().

◆ has_excess_bandwidth

int GSC_KeyExchangeInfo::has_excess_bandwidth

GNUNET_YES if this peer currently has excess bandwidth.

Definition at line 237 of file gnunet-service-core_kx.c.

Referenced by GSC_KX_encrypt_and_transmit(), and GSC_NEIGHBOURS_check_excess_bandwidth().

◆ status


The documentation for this struct was generated from the following file: