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