tls

Transport Layer Security purely in OCaml
Library tls
val cdiv : int -> int -> int
val not_all_zero : ( Cstruct.t, [> `Fatal of [> `InvalidDH ] ] as 'a ) result -> ( Cstruct.t, 'a ) 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 ] -> Cstruct.t -> ( Cstruct.t, [> `Fatal of [> `BadECDH of Mirage_crypto_ec.error | `InvalidDH ] ] ) 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 ] * Cstruct.t
val trace : string -> Cstruct.t -> 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 -> Cstruct.t -> Cstruct.uint16 -> Cstruct.t
val derive_secret_no_hash : Mirage_crypto.Hash.hash -> Cstruct.t -> ?length:Cstruct.uint16 -> ?ctx:Cstruct.t -> string -> Cstruct.t
val derive_secret : State.kdf -> string -> Cstruct.t -> Cstruct.t
val derive : State.kdf -> Cstruct.t -> State.kdf
val traffic_key : [< `AES_128_CCM_SHA256 | `AES_128_GCM_SHA256 | `AES_256_GCM_SHA384 | `CHACHA20_POLY1305_SHA256 ] -> Cstruct.t -> Cstruct.t * Cstruct.t
val ctx : State.kdf -> string -> Cstruct.t -> State.crypto_context
val app_secret_n_1 : State.kdf -> Cstruct.t -> Cstruct.t * State.crypto_context
val exporter : State.kdf -> Cstruct.t -> Cstruct.t
val resumption : State.kdf -> Cstruct.t -> Cstruct.t