View Source Kcl (KCl v1.4.2)
pure Elixir NaCl crypto suite substitute
The box
and unbox
functions exposed here are the equivalent
of NaCl's:
crypto_box_curve25519xsalsa20poly1305
crypto_box_curve25519xsalsa20poly1305_open
Summary
Functions
crypto_auth
equivalent
box up an authenticated packet
derive a public key from a private key
generate a {private, public}
key pair
create an inital state for a peer connection
box based on a shared secret
unbox based on a shared secret
pre-compute a shared key
sign a message
convert a signing Ed25519 key to a Curve25519 encryption key
unbox an authenticated packet
Compare auth
HMAC
validate a message signature
Types
Functions
crypto_auth
equivalent
@spec box(binary(), nonce(), Kcl.State.t()) :: {binary(), Kcl.State.t()}
box up an authenticated packet
@spec derive_public_key(key(), key_variety()) :: key() | :error
derive a public key from a private key
@spec generate_key_pair(key_variety()) :: {key(), key()} | :error
generate a {private, public}
key pair
new_connection_state(our_private, our_public \\ nil, their_public)
View Source@spec new_connection_state(key(), key() | nil, key()) :: Kcl.State.t()
create an inital state for a peer connection
A convenience wrapper around Kcl.State.init
and Kcl.State.new_peer
box based on a shared secret
unbox based on a shared secret
sign a message
If only the secret key is provided, the public key will be derived therefrom. This can add significant overhead to the signing operation.
convert a signing Ed25519 key to a Curve25519 encryption key
unbox an authenticated packet
Returns :error
when the packet contents cannot be authenticated, otherwise
the decrypted payload and updated state.
Compare auth
HMAC
validate a message signature