Up

module Lwt_ssl

: sig

OCaml-SSL integration

#
type socket

Wrapper for SSL sockets.

It is either a plain socket, either a real SSL socket.

#
type uninitialized_socket

Wrapper for SSL sockets that have not yet performed the SSL handshake.

#
val ssl_socket : socket -> Ssl.socket option

Returns the underlying SSL socket used for this wrapper. If it is a plain socket it returns None.

#
val ssl_socket_of_uninitialized_socket : uninitialized_socket -> Ssl.socket

Returns the underlying SSL socket used for this wrapper.

#
val is_ssl : socket -> bool

Are we using an SSL socket?

#
val ssl_accept : Lwt_unix.file_descr -> Ssl.context -> socket Lwt.t
#
val ssl_connect : Lwt_unix.file_descr -> Ssl.context -> socket Lwt.t
#
val plain : Lwt_unix.file_descr -> socket
#
val embed_socket : Lwt_unix.file_descr -> Ssl.context -> socket
#
val embed_uninitialized_socket : Lwt_unix.file_descr -> Ssl.context -> uninitialized_socket
#
val ssl_perform_handshake : uninitialized_socket -> socket Lwt.t

Initiate a SSL/TLS handshake on the specified socket (used by clients).

#
val ssl_accept_handshake : uninitialized_socket -> socket Lwt.t

Await a SSL/TLS handshake on the specified socket (used by servers).

#
val read : socket -> string -> int -> int -> int Lwt.t
#
val write : socket -> string -> int -> int -> int Lwt.t
#
val read_bytes : socket -> Lwt_bytes.t -> int -> int -> int Lwt.t
#
val write_bytes : socket -> Lwt_bytes.t -> int -> int -> int Lwt.t
#
val wait_read : socket -> unit Lwt.t
#
val wait_write : socket -> unit Lwt.t
#
val shutdown : socket -> Unix.shutdown_command -> unit
#
val close : socket -> unit Lwt.t
#
val in_channel_of_descr : socket -> Lwt_io.input_channel
#
val out_channel_of_descr : socket -> Lwt_io.output_channel
#
val ssl_shutdown : socket -> unit Lwt.t
#
val abort : socket -> exn -> unit
#
val get_fd : socket -> Lwt_unix.file_descr
#
val get_unix_fd : socket -> Unix.file_descr
#
val getsockname : socket -> Unix.sockaddr
#
val getpeername : socket -> Unix.sockaddr
end