Module Tls13

val hkdf_expand_label : string -> label:string -> context:string -> int -> string
val derive_secret : string -> string -> string -> string
val handshake_secret : string -> string
val master_secret : string -> string
type cipher =
  1. | Chacha20_poly1305
  2. | Aes128_gcm
type keys = {
  1. cipher : cipher;
  2. key : string;
  3. iv : string;
  4. seq : int;
}
val traffic_keys : cipher -> string -> keys
val finished : string -> string -> string
val seal : keys -> int -> string -> string * keys
val open_record : keys -> string -> string -> ((int * string) * keys) option
type t
type state =
  1. | Handshaking
  2. | Open
  3. | Closed
  4. | Failed of string
val client : host:string -> random:string -> secret:string -> session_id:string -> verify:(X509.t list -> (unit, string) Stdlib.result) -> t * string
val received : t -> string -> t * string
val state : t -> state
val read : t -> t * string
val write : t -> string -> t * string
val close : t -> t * string
val certificates : t -> X509.t list
val cipher : t -> cipher option