Module EverCrypt.Curve25519
Multiplexing interface for ECDH using Curve25519
type bytes
= SharedDefs.CBytes.t
val secret_to_public : sk:bytes -> bytes
secret_to_public sk
takes a 32-byte secret keysk
and returns the corresponding 32-byte ECDH public key.
val ecdh : sk:bytes -> pk:bytes -> bytes option
ecdh sk pk
takes a 32-byte secret keysk
and another party's 32-byte public key and returns the 32-byte ECDH shared key.
val scalarmult : scalar:bytes -> point:bytes -> bytes
scalarmult scalar point
performs scalar multiplication over the curve. Buffers are 32-byte long and must be distinct.
module Noalloc : sig ... end
Versions of these functions which write their output in a buffer passed in as an argument