package awa

  1. Overview
  2. Docs
type event =
  1. | Channel_exec of int32 * string
  2. | Channel_subsystem of int32 * string
  3. | Channel_data of int32 * Cstruct.t
  4. | Channel_eof of int32
  5. | Disconnected of string
  6. | Pty of string * int32 * int32 * int32 * int32 * string
  7. | Set_env of string * string
  8. | Start_shell of int32
type t = {
  1. client_version : string option;
  2. server_version : string;
  3. client_kexinit : Ssh.kexinit option;
  4. server_kexinit : Ssh.kexinit;
  5. neg_kex : Kex.negotiation option;
  6. host_key : Hostkey.priv;
  7. session_id : Cstruct.t option;
  8. keys_ctos : Kex.keys;
  9. keys_stoc : Kex.keys;
  10. new_keys_ctos : Kex.keys option;
  11. new_keys_stoc : Kex.keys option;
  12. keying : bool;
  13. key_eol : Mtime.t option;
  14. expect : Ssh.message_id option;
  15. auth_state : Auth.state;
  16. user_db : Auth.db;
  17. channels : Channel.db;
  18. ignore_next_packet : bool;
}
val guard_msg : t -> Ssh.message -> (unit, string) result
val make : Hostkey.priv -> Auth.db -> t * Ssh.message list
val of_new_keys_ctos : t -> (t, string) result
val of_new_keys_stoc : t -> (t, string) result
val rekey : t -> (t * Ssh.message) option
val should_rekey : t -> Mtime.t -> bool
val maybe_rekey : t -> Mtime.t -> (t * Ssh.message) option
val pop_msg2 : t -> Cstruct.t -> (t * Ssh.message option * Cstruct.t, string) result
val make_noreply : 'a -> ('a * 'b list * 'c option, 'd) result
val make_reply : 'a -> 'b -> ('a * 'b list * 'c option, 'd) result
val make_replies : 'a -> 'b -> ('a * 'b * 'c option, 'd) result
val make_event : 'a -> 'b -> ('a * 'c list * 'b option, 'd) result
val make_reply_with_event : 'a -> 'b -> 'c -> ('a * 'b list * 'c option, 'd) result
val make_disconnect : 'a -> Ssh.disconnect_code -> string -> ('a * Ssh.message list * event option, 'b) result
val input_userauth_request : t -> string -> string -> Ssh.auth_method -> (t * Ssh.message list * event option, string) result
val input_channel_open : t -> int32 -> int32 -> int32 -> Ssh.channel_open -> (t * Ssh.message list * 'a option, 'b) result
val input_channel_request : t -> Channel.Channel_map.key -> bool -> Ssh.channel_request -> (t * Ssh.message list * event option, 'a) result
val input_msg : t -> Ssh.message -> Mtime.t -> (t * Ssh.message list * event option, string) result
val output_msg : t -> Ssh.message -> (t * Cstruct.t, string) result
val output_channel_data : t -> Channel.Channel_map.key -> Cstruct.t -> (t * Ssh.message list, string) result
OCaml

Innovation. Community. Security.