pub struct SessionState {
pub root_key: String,
pub their_current_nostr_public_key: Option<String>,
pub their_next_nostr_public_key: Option<String>,
pub our_previous_nostr_key: Option<KeyPairBytes>,
pub our_current_nostr_key: Option<KeyPairBytes>,
pub our_next_nostr_key: KeyPairBytes,
pub receiving_chain_key: Option<String>,
pub sending_chain_key: Option<String>,
pub sending_chain_message_number: u32,
pub receiving_chain_message_number: u32,
pub previous_sending_chain_message_count: u32,
pub skipped_keys: BTreeMap<String, SkippedKeysEntry>,
}Expand description
The full double-ratchet session state for one 1:1 channel.
Held in memory and cloned for the plan/apply transaction model. JSON
persistence is a separate concern layered on later; the wire-critical
Header is the only type with a fixed external encoding.
Fields§
§root_key: StringRoot chain key (hex).
their_current_nostr_public_key: Option<String>Peer’s current DH public key (x-only hex), if known.
their_next_nostr_public_key: Option<String>Peer’s next DH public key (x-only hex), if known.
our_previous_nostr_key: Option<KeyPairBytes>Our previous DH keypair (kept to decrypt late-arriving messages).
our_current_nostr_key: Option<KeyPairBytes>Our current DH keypair.
our_next_nostr_key: KeyPairBytesOur next DH keypair (advertised in outgoing headers).
receiving_chain_key: Option<String>Receiving chain key (hex), if a receiving chain exists.
sending_chain_key: Option<String>Sending chain key (hex), if a sending chain exists.
sending_chain_message_number: u32Next index to use on the sending chain.
receiving_chain_message_number: u32Next index expected on the receiving chain.
previous_sending_chain_message_count: u32Number of messages sent on the previous sending chain.
skipped_keys: BTreeMap<String, SkippedKeysEntry>Skipped message keys, keyed by sender DH pubkey (hex).
Trait Implementations§
Source§impl Clone for SessionState
impl Clone for SessionState
Source§fn clone(&self) -> SessionState
fn clone(&self) -> SessionState
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for SessionState
impl Debug for SessionState
Source§impl Drop for SessionState
Scrub the chain/root secrets on drop. our_*_nostr_key (KeyPairBytes)
and skipped_keys (SkippedKeysEntry) values scrub themselves via their
own Drop impls when this struct’s fields are subsequently dropped.
impl Drop for SessionState
Scrub the chain/root secrets on drop. our_*_nostr_key (KeyPairBytes)
and skipped_keys (SkippedKeysEntry) values scrub themselves via their
own Drop impls when this struct’s fields are subsequently dropped.