GNUnet debian-0.24.3-28-g4f2a77692
 
Loading...
Searching...
No Matches
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.
 
struct GSC_KeyExchangeInfoprev
 DLL.
 
struct GNUNET_PeerIdentity peer
 Identity of the peer.
 
struct GNUNET_MQ_Handlemq
 Message queue for sending messages to peer.
 
struct GNUNET_MQ_Enveloperesend_env
 Env for resending messages.
 
struct GNUNET_MessageStreamTokenizermst
 Our message stream tokenizer (for encrypted payload).
 
enum GSC_KX_Role role
 Own role in the key exchange.
 
struct GNUNET_ShortHashCode ss_R
 
struct GNUNET_ShortHashCode ss_e
 
struct GNUNET_ShortHashCode ss_I
 
struct GNUNET_CRYPTO_EcdhePrivateKey sk_e
 Initiator secret key.
 
struct GNUNET_CRYPTO_EcdhePublicKey pk_e
 Initiator ephemeral key.
 
struct GNUNET_HashContexttranscript_hash_ctx
 The transcript hash context.
 
struct GNUNET_ShortHashCode early_secret_key
 ES - Early Secret Key TODO uniform naming: _key?
 
struct GNUNET_ShortHashCode early_traffic_secret
 ETS - Early traffic secret TODO.
 
struct GNUNET_ShortHashCode handshake_secret
 HS - Handshake secret TODO.
 
struct GNUNET_ShortHashCode rhts
 RHTS - Responder handshake secret TODO.
 
struct GNUNET_ShortHashCode ihts
 IHTS - Initiator handshake secret TODO.
 
struct GNUNET_ShortHashCode master_secret
 Master secret key TODO.
 
struct GNUNET_ShortHashCode current_ats
 *ATS - our current application traffic secret by epoch
 
struct GNUNET_ShortHashCode their_ats [10]
 *ATS - other peers application traffic secret by epoch
 
uint64_t current_epoch
 Our currently used epoch for sending.
 
struct GNUNET_TIME_Absolute current_epoch_expiration
 Expiration time of our current epoch.
 
uint64_t their_max_epoch
 Highest seen (or used) epoch of responder resp initiator.
 
uint64_t current_sqn
 Our current sequence number.
 
struct GNUNET_TIME_Absolute timeout
 When should the session time out (if there are no Acks to HEARTBEATs)?
 
struct GNUNET_TIME_Absolute last_notify_timeout
 Last time we notified monitors.
 
struct GNUNET_SCHEDULER_Taskresend_task
 Task for resending messages during handshake.
 
unsigned int resend_tries_left
 Resend tries left.
 
struct GNUNET_SCHEDULER_Taskheartbeat_task
 ID of task used for sending keep-alive pings.
 
int has_excess_bandwidth
 GNUNET_YES if this peer currently has excess bandwidth.
 
enum GNUNET_CORE_KxState status
 What is our connection state?
 
enum GNUNET_CORE_PeerClass class
 Peer class of the other peer TODO still needed?
 

Detailed Description

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

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

Field Documentation

◆ next

struct GSC_KeyExchangeInfo* GSC_KeyExchangeInfo::next

DLL.

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

Referenced by GSC_KX_handle_client_monitor_peers().

◆ prev

struct GSC_KeyExchangeInfo* GSC_KeyExchangeInfo::prev

DLL.

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

◆ peer

◆ mq

◆ resend_env

◆ mst

struct GNUNET_MessageStreamTokenizer* GSC_KeyExchangeInfo::mst

Our message stream tokenizer (for encrypted payload).

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

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

◆ role

enum GSC_KX_Role GSC_KeyExchangeInfo::role

Own role in the key exchange.

Are we supposed to initiate or receive the handshake?

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

Referenced by handle_initiator_done(), handle_initiator_hello(), handle_responder_hello(), and restart_kx().

◆ ss_R

◆ ss_e

struct GNUNET_ShortHashCode GSC_KeyExchangeInfo::ss_e

◆ ss_I

struct GNUNET_ShortHashCode GSC_KeyExchangeInfo::ss_I

◆ sk_e

struct GNUNET_CRYPTO_EcdhePrivateKey GSC_KeyExchangeInfo::sk_e

Initiator secret key.

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

Referenced by cleanup_handshake_secrets(), handle_responder_hello(), and send_initiator_hello().

◆ pk_e

struct GNUNET_CRYPTO_EcdhePublicKey GSC_KeyExchangeInfo::pk_e

Initiator ephemeral key.

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

Referenced by handle_initiator_hello_cont(), send_initiator_hello(), and send_responder_hello().

◆ transcript_hash_ctx

struct GNUNET_HashContext* GSC_KeyExchangeInfo::transcript_hash_ctx

The transcript hash context.

It is fed data from the handshake to be implicitly validated and used to derive key material.

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

Referenced by handle_initiator_done(), handle_initiator_hello(), handle_initiator_hello_cont(), handle_responder_hello(), handle_responder_hello_cont(), restart_kx(), send_initiator_hello(), and send_responder_hello().

◆ early_secret_key

struct GNUNET_ShortHashCode GSC_KeyExchangeInfo::early_secret_key

ES - Early Secret Key TODO uniform naming: _key?

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

Referenced by cleanup_handshake_secrets(), handle_initiator_hello_cont(), handle_responder_hello(), send_initiator_hello(), and send_responder_hello().

◆ early_traffic_secret

struct GNUNET_ShortHashCode GSC_KeyExchangeInfo::early_traffic_secret

ETS - Early traffic secret TODO.

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

Referenced by cleanup_handshake_secrets(), handle_initiator_hello_cont(), and send_initiator_hello().

◆ handshake_secret

struct GNUNET_ShortHashCode GSC_KeyExchangeInfo::handshake_secret

HS - Handshake secret TODO.

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

Referenced by cleanup_handshake_secrets(), handle_responder_hello_cont(), and send_responder_hello().

◆ rhts

struct GNUNET_ShortHashCode GSC_KeyExchangeInfo::rhts

RHTS - Responder handshake secret TODO.

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

Referenced by cleanup_handshake_secrets(), handle_responder_hello_cont(), and send_responder_hello().

◆ ihts

struct GNUNET_ShortHashCode GSC_KeyExchangeInfo::ihts

IHTS - Initiator handshake secret TODO.

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

Referenced by cleanup_handshake_secrets(), handle_initiator_done(), handle_responder_hello_cont(), and send_responder_hello().

◆ master_secret

struct GNUNET_ShortHashCode GSC_KeyExchangeInfo::master_secret

◆ current_ats

struct GNUNET_ShortHashCode GSC_KeyExchangeInfo::current_ats

*ATS - our current application traffic secret by epoch

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

Referenced by check_rekey(), GSC_KX_encrypt_and_transmit(), handle_heartbeat(), handle_responder_hello_cont(), and send_responder_hello().

◆ their_ats

struct GNUNET_ShortHashCode GSC_KeyExchangeInfo::their_ats[10]

*ATS - other peers application traffic secret by epoch

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

Referenced by handle_encrypted_message(), handle_initiator_done(), and handle_responder_hello_cont().

◆ current_epoch

uint64_t GSC_KeyExchangeInfo::current_epoch

Our currently used epoch for sending.

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

Referenced by check_rekey(), GSC_KX_encrypt_and_transmit(), handle_heartbeat(), handle_responder_hello_cont(), and send_responder_hello().

◆ current_epoch_expiration

struct GNUNET_TIME_Absolute GSC_KeyExchangeInfo::current_epoch_expiration

Expiration time of our current epoch.

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

Referenced by check_if_ack_or_heartbeat(), check_rekey(), handle_heartbeat(), and handle_initiator_done().

◆ their_max_epoch

uint64_t GSC_KeyExchangeInfo::their_max_epoch

Highest seen (or used) epoch of responder resp initiator.

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

Referenced by handle_encrypted_message(), and handle_responder_hello_cont().

◆ current_sqn

uint64_t GSC_KeyExchangeInfo::current_sqn

◆ timeout

struct GNUNET_TIME_Absolute GSC_KeyExchangeInfo::timeout

When should the session time out (if there are no Acks to HEARTBEATs)?

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

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

◆ last_notify_timeout

struct GNUNET_TIME_Absolute GSC_KeyExchangeInfo::last_notify_timeout

Last time we notified monitors.

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

Referenced by monitor_notify_all(), and update_timeout().

◆ resend_task

◆ resend_tries_left

unsigned int GSC_KeyExchangeInfo::resend_tries_left

◆ heartbeat_task

struct GNUNET_SCHEDULER_Task* GSC_KeyExchangeInfo::heartbeat_task

ID of task used for sending keep-alive pings.

TODO still needed?

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

Referenced by handle_heartbeat(), handle_initiator_done(), handle_transport_notify_disconnect(), send_heartbeat(), and update_timeout().

◆ has_excess_bandwidth

int GSC_KeyExchangeInfo::has_excess_bandwidth

GNUNET_YES if this peer currently has excess bandwidth.

TODO still needed?

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

Referenced by GSC_NEIGHBOURS_check_excess_bandwidth().

◆ status

◆ class

enum GNUNET_CORE_PeerClass GSC_KeyExchangeInfo::class

Peer class of the other peer TODO still needed?

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

Referenced by check_if_ack_or_heartbeat(), and handle_initiator_done().


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