Util_conduit
util_conduit doesn't depend on any of our modules like Crypto, Common etc., hence the type parameter on `'a Connection`. All IP addresses are `Ipaddr.t` and ports are `int`.
type 'a mk_peerkey := Mirage_crypto_ec.Ed25519.pub -> 'a peerkey
module Connection : sig ... end
type 'a connection = 'a Connection.t
val ip_port_of_conn_exn : 'a connection -> Ipaddr.t * int
val open_client_connection :
?info_str:string ->
?server_fingerprint:(Mirage_crypto.Hash.hash * Cstruct.t) ->
?client_auth:[ `None | `Cert of string * string ] ->
string ->
Ipaddr.t ->
int ->
'a mk_peerkey ->
'a connection Lwt.t
val start_server :
?info_prefix:string ->
?openssl_cmd:string list ->
string ->
string ->
Ipaddr.t ->
int ->
'a mk_peerkey ->
('a connection -> unit Lwt.t) ->
unit Lwt.t
val send_s : 'a connection -> string -> unit Lwt.t
val send : 'a connection -> 'b Seaboar.Encode.encoder -> 'b -> unit Lwt.t
val send_terminate_message : 'a connection -> unit Lwt.t
val close_connection : 'a connection -> unit Lwt.t
val key_fingerprints_authenticator :
string ->
(Mirage_crypto.Hash.hash * fingerprint) ->
X509.Authenticator.t
val mk_prf : ?prepend:string -> ?append:string -> 'a connection -> 'b fmt