Raw.DH
See spec section 4.17
type esk = R.esk
val esk_encoding : R.esk Data_encoding.encoding
val esk_random : unit -> R.esk
type epk = R.epk
val epk_encoding : R.epk Data_encoding.encoding
val derive_ephemeral : Viewing_key.address -> R.esk -> R.epk
Derives the public part of the DH for the sender. (ie. epk is used for symkey_receiver).
val symkey_sender : R.esk -> R.pkd -> Mavryk_crypto.Crypto_box.Secretbox.key
Derives a symmetric key to be used to create the ciphertext on the sender side.
val symkey_receiver : R.epk -> R.ivk -> Mavryk_crypto.Crypto_box.Secretbox.key
val symkey_out :
R.ovk ->
(R.cv * R.commitment * R.epk) ->
Mavryk_crypto.Crypto_box.Secretbox.key