Module Hacl.Box

type combined
type _ key =
  1. | Sk : Stdlib.Bytes.t -> secret key
  2. | Pk : Stdlib.Bytes.t -> public key
  3. | Ck : Stdlib.Bytes.t -> combined key
val skbytes : int
val pkbytes : int
val ckbytes : int
val tagbytes : int
val unsafe_to_bytes : 'a. 'a key -> Stdlib.Bytes.t
val blit_to_bytes : 'a. 'a key -> ?pos:int -> Stdlib.Bytes.t -> unit
val equal : 'a. 'a key -> 'a key -> bool
val unsafe_sk_of_bytes : Stdlib.Bytes.t -> secret key
val unsafe_pk_of_bytes : Stdlib.Bytes.t -> public key
val unsafe_ck_of_bytes : Stdlib.Bytes.t -> combined key
val of_seed : ?pos:int -> bytes -> secret key
val basepoint : bytes
val neuterize : secret key -> public key
val keypair : unit -> public key * secret key
val dh : public key -> secret key -> combined key
val box : k:combined key -> nonce:Hacl_star__Hacl.bytes -> msg:Hacl_star__Hacl.bytes -> cmsg:Hacl_star__Hacl.bytes -> unit
val box_open : k:combined key -> nonce:Hacl_star__Hacl.bytes -> cmsg:Hacl_star__Hacl.bytes -> msg:Hacl_star__Hacl.bytes -> bool
val box_noalloc : k:combined key -> nonce:Hacl_star__Hacl.bytes -> tag:Hacl_star__Hacl.bytes -> buf:Hacl_star__Hacl.bytes -> unit
val box_open_noalloc : k:combined key -> nonce:Hacl_star__Hacl.bytes -> tag:Hacl_star__Hacl.bytes -> buf:Hacl_star__Hacl.bytes -> bool