KCl v0.3.0 Kcl.State
On-going KCl session state
Some helpers to maintain state between messages
Summary
Types
t :: %Kcl.State{our_private: term, our_public: term, previous_nonce: term, shared_secret: term, their_public: term}
Functions
Specs
init(Kcl.key, Kcl.key | nil) :: Kcl.State.t
Initialize a new state
The private key will be used to derive the public one, if such is not supplied. There is, otherwise, no verification that the supplied keys form a valid pair.
Specs
new_peer(Kcl.State.t, Kcl.key) :: Kcl.State.t
update the state for a new peer
The shared secret is computed from the state and new peer public key.
The previous_nonce value is also reset to 0
.