Tls_miou_unixEffectful operations using Miou for pure TLS.
The pure TLS is state and buffer in, state and buffer out. This module uses Miou (and its Unix layer) for communication over the network.
exception Tls_alert of Tls.Packet.alert_typeexception Tls_failure of Tls.Engine.failureval file_descr : t -> Miou_unix.file_descrfile_descr returns the underlying file-descriptor used by the given TLS socket.
val read : t -> ?off:int -> ?len:int -> bytes -> intread fd buf ~off ~len reads up to len bytes (defaults to Bytes.length buf - off from the given TLS socket fd, storing them in byte sequence buf, starting at position off in buf (defaults to 0). It returns the actual number of characters read, between 0 and len (inclusive).
val really_read : t -> ?off:int -> ?len:int -> bytes -> unitreally_read fd buf ~off ~len reads len bytes (defaults to Bytes.length buf - off) from the given TLS socket fd, storing them in byte sequence buf, starting at position off in buf (defaults to 0). If len = 0, really_read does nothing.
val write : t -> ?off:int -> ?len:int -> string -> unitwrite t str ~off ~len writes len bytes (defaults to String.length str - off) from byte sequence str, starting at offset off (defaults to 0), to the given TLS socket fd.
val close : t -> unitclose flow closes the TLS session and the underlying file-descriptor.
val shutdown : t -> [ `read | `write | `read_write ] -> unitshutdown t direction closes the direction of the TLS session t. If `read_write or `write is closed, a TLS close-notify is sent to the other endpoint. If this results in a fully-closed session (or an errorneous session), the underlying file descriptor is closed.
val client_of_fd :
Tls.Config.client ->
?read_buffer_size:int ->
?host:[ `host ] Domain_name.t ->
Miou_unix.file_descr ->
tclient_of_flow client ~host fd is t, after client-side TLS handshake of fd using client configuration and host.
val server_of_fd :
Tls.Config.server ->
?read_buffer_size:int ->
Miou_unix.file_descr ->
tserver_of_fd server fd is t, after server-side TLS handshake of fd using server configuration.
val connect : X509.Authenticator.t -> (string * int) -> tconnect authenticator (host, port) is t, a connected TLS connection to host on port using the default configuration and the authenticator.
val epoch : t -> Tls.Core.epoch_data optionepoch t returns epoch, which contains information of the active session.