KCl v0.2.0 Kcl.State

On-going KCl session state

Some helpers to maintain state between messages

Summary

Functions

Initialize a new state

update the state for a new peer

Types

t :: %Kcl.State{our_private: term, our_public: term, previous_nonce: term, shared_secret: term, their_public: term}

Functions

init(our_private, our_public \\ nil)

Specs

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.

new_peer(state, their_public)

Specs

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.