Module Tls.Handshake_crypto13

val cdiv : int -> int -> int
val left_pad_dh : Mirage_crypto_pk.Dh.group -> string -> string
val not_all_zero : (string, [> `Fatal of [> `Handshake of [> `BadDH of string ] ] ] as 'a) Stdlib.result -> (string, 'a) Stdlib.result
val dh_shared : [< `Finite_field of Mirage_crypto_pk.Dh.secret | `P256 of Mirage_crypto_ec.P256.Dh.secret | `P384 of Mirage_crypto_ec.P384.Dh.secret | `P521 of Mirage_crypto_ec.P521.Dh.secret | `X25519 of Mirage_crypto_ec.X25519.secret ] -> string -> (string, [> `Fatal of [> `Handshake of [> `BadDH of string | `BadECDH of Mirage_crypto_ec.error ] ] ]) Stdlib.result
val dh_gen_key : [< `FFDHE2048 | `FFDHE3072 | `FFDHE4096 | `FFDHE6144 | `FFDHE8192 | `P256 | `P384 | `P521 | `X25519 ] -> [> `Finite_field of Mirage_crypto_pk.Dh.secret | `P256 of Mirage_crypto_ec.P256.Dh.secret | `P384 of Mirage_crypto_ec.P384.Dh.secret | `P521 of Mirage_crypto_ec.P521.Dh.secret | `X25519 of Mirage_crypto_ec.X25519.secret ] * string
val trace : string -> string -> unit
val pp_hash_k_n : [< `AES_128_CCM_SHA256 | `AES_128_GCM_SHA256 | `AES_256_GCM_SHA384 | `CHACHA20_POLY1305_SHA256 ] -> Ciphersuite.aead_cipher * [> `SHA256 | `SHA384 ] * int * int
val hkdflabel : string -> string -> int -> string
val derive_secret_no_hash : Digestif.hash' -> string -> ?length:int -> ?ctx:string -> string -> string
val derive_secret : State.kdf -> string -> Stdlib.String.t -> string
val derive : State.kdf -> string -> State.kdf
val traffic_key : [< `AES_128_CCM_SHA256 | `AES_128_GCM_SHA256 | `AES_256_GCM_SHA384 | `CHACHA20_POLY1305_SHA256 ] -> string -> string * string
val ctx : State.kdf -> string -> string -> State.crypto_context
val early_traffic : State.kdf -> Stdlib.String.t -> string * State.crypto_context
val hs_ctx : State.kdf -> Stdlib.String.t -> string * State.crypto_context * string * State.crypto_context
val app_ctx : State.kdf -> Stdlib.String.t -> string * State.crypto_context * string * State.crypto_context
val app_secret_n_1 : State.kdf -> string -> string * State.crypto_context
val exporter : State.kdf -> Stdlib.String.t -> string
val resumption : State.kdf -> Stdlib.String.t -> string
val res_secret : Digestif.hash' -> string -> string -> string
val finished : Digestif.hash' -> string -> Stdlib.String.t -> string