Information about the status of a key exchange with another peer. More...
Data Fields | |
struct GSC_KeyExchangeInfo * | next |
DLL. More... | |
struct GSC_KeyExchangeInfo * | prev |
DLL. More... | |
const struct GNUNET_PeerIdentity * | peer |
Identity of the peer. More... | |
struct GNUNET_MQ_Handle * | mq |
Message queue for sending messages to peer. More... | |
struct GNUNET_MessageStreamTokenizer * | mst |
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_Task * | retry_set_key_task |
ID of task used for re-trying SET_KEY and PING message. More... | |
struct GNUNET_SCHEDULER_Task * | keep_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... | |
Information about the status of a key exchange with another peer.
Definition at line 185 of file gnunet-service-core_kx.c.
struct GSC_KeyExchangeInfo* GSC_KeyExchangeInfo::next |
DLL.
Definition at line 190 of file gnunet-service-core_kx.c.
Referenced by do_rekey(), and GSC_KX_handle_client_monitor_peers().
struct GSC_KeyExchangeInfo* GSC_KeyExchangeInfo::prev |
DLL.
Definition at line 195 of file gnunet-service-core_kx.c.
const struct GNUNET_PeerIdentity* GSC_KeyExchangeInfo::peer |
Identity of the peer.
Definition at line 200 of file gnunet-service-core_kx.c.
Referenced by deliver_message(), derive_session_keys(), do_decrypt(), do_encrypt(), GSC_KX_encrypt_and_transmit(), GSC_KX_handle_client_monitor_peers(), handle_encrypted(), handle_ephemeral_key(), handle_ping(), handle_pong(), handle_transport_notify_connect(), handle_transport_notify_disconnect(), monitor_notify_all(), send_keep_alive(), send_key(), and setup_fresh_ping().
struct GNUNET_MQ_Handle* GSC_KeyExchangeInfo::mq |
Message queue for sending messages to peer.
Definition at line 205 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().
struct GNUNET_MessageStreamTokenizer* GSC_KeyExchangeInfo::mst |
Our message stream tokenizer (for encrypted payload).
Definition at line 210 of file gnunet-service-core_kx.c.
Referenced by handle_encrypted(), handle_transport_notify_connect(), and handle_transport_notify_disconnect().
struct PingMessage GSC_KeyExchangeInfo::ping |
PING message we transmit to the other peer.
Definition at line 215 of file gnunet-service-core_kx.c.
Referenced by send_ping(), and setup_fresh_ping().
struct GNUNET_CRYPTO_EcdhePublicKey GSC_KeyExchangeInfo::other_ephemeral_key |
Ephemeral public ECC key of the other peer.
Definition at line 220 of file gnunet-service-core_kx.c.
Referenced by derive_session_keys(), and handle_ephemeral_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 239 of file gnunet-service-core_kx.c.
Referenced by do_encrypt(), GSC_KX_encrypt_and_transmit(), handle_ping(), and setup_fresh_ping().
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 245 of file gnunet-service-core_kx.c.
Referenced by do_decrypt(), handle_encrypted(), handle_ping(), and handle_pong().
struct GNUNET_TIME_Absolute GSC_KeyExchangeInfo::foreign_key_expires |
At what time did the other peer generate the decryption key?
Definition at line 251 of file gnunet-service-core_kx.c.
Referenced by handle_encrypted(), and handle_ephemeral_key().
struct GNUNET_TIME_Absolute GSC_KeyExchangeInfo::timeout |
When should the session time out (if there are no PONGs)?
Definition at line 256 of file gnunet-service-core_kx.c.
Referenced by GSC_KX_handle_client_monitor_peers(), monitor_notify_all(), send_keep_alive(), and update_timeout().
struct GNUNET_TIME_Absolute GSC_KeyExchangeInfo::last_notify_timeout |
What was the last timeout we informed our monitors about?
Definition at line 261 of file gnunet-service-core_kx.c.
Referenced by monitor_notify_all(), and update_timeout().
struct GNUNET_TIME_Relative GSC_KeyExchangeInfo::set_key_retry_frequency |
At what frequency are we currently re-trying SET_KEY messages?
Definition at line 266 of file gnunet-service-core_kx.c.
Referenced by handle_transport_notify_connect(), send_key(), and set_key_retry_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 271 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().
struct GNUNET_SCHEDULER_Task* GSC_KeyExchangeInfo::keep_alive_task |
ID of task used for sending keep-alive pings.
Definition at line 276 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().
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 283 of file gnunet-service-core_kx.c.
Referenced by derive_session_keys(), and handle_encrypted().
uint32_t GSC_KeyExchangeInfo::last_sequence_number_received |
last sequence number received on this connection (highest)
Definition at line 288 of file gnunet-service-core_kx.c.
Referenced by derive_session_keys(), and handle_encrypted().
uint32_t GSC_KeyExchangeInfo::last_sequence_number_sent |
last sequence number transmitted
Definition at line 293 of file gnunet-service-core_kx.c.
Referenced by GSC_KX_encrypt_and_transmit().
uint32_t GSC_KeyExchangeInfo::ping_challenge |
What was our PING challenge number (for this peer)?
Definition at line 298 of file gnunet-service-core_kx.c.
Referenced by handle_pong(), and setup_fresh_ping().
int GSC_KeyExchangeInfo::has_excess_bandwidth |
GNUNET_YES if this peer currently has excess bandwidth.
Definition at line 303 of file gnunet-service-core_kx.c.
Referenced by GSC_KX_encrypt_and_transmit(), and GSC_NEIGHBOURS_check_excess_bandwidth().
enum GNUNET_CORE_KxState GSC_KeyExchangeInfo::status |
What is our connection status?
Definition at line 308 of file gnunet-service-core_kx.c.
Referenced by deliver_message(), do_decrypt(), do_rekey(), GSC_KX_handle_client_monitor_peers(), handle_encrypted(), handle_ephemeral_key(), handle_ping(), handle_pong(), handle_transport_notify_connect(), handle_transport_notify_disconnect(), monitor_notify_all(), send_keep_alive(), send_key(), and set_key_retry_task().