1pub(crate) const CLIENT_VERSION: &str = "SSH-2.0-SSH_RS-0.5.0";
3pub(crate) const SSH_MAGIC: &[u8] = b"SSH-";
4
5#[allow(dead_code)]
7pub(crate) mod ssh_str {
8 pub const SSH_USERAUTH: &str = "ssh-userauth";
10 pub const SSH_CONNECTION: &str = "ssh-connection";
12 pub const PUBLIC_KEY: &str = "publickey";
14 pub const PASSWORD: &str = "password";
16 pub const SESSION: &str = "session";
18 pub const SHELL: &str = "shell";
20 pub const EXEC: &str = "exec";
22 pub const SCP: &str = "scp";
24 pub const PTY_REQ: &str = "pty-req";
26 pub const XTERM_VAR: &str = "xterm-256color";
28}
29
30#[allow(dead_code)]
31pub(crate) mod permission {
32 pub const DIR: &str = "775";
34 pub const FILE: &str = "664";
36}
37
38#[cfg(feature = "scp")]
40#[allow(dead_code)]
41pub(crate) mod scp {
42 pub const SOURCE: &str = "-f";
44 pub const SINK: &str = "-t";
46 pub const RECURSIVE: &str = "-r";
48 pub const VERBOSE: &str = "-v";
50 pub const PRESERVE_TIMES: &str = "-p";
52 pub const QUIET: &str = "-q";
54 pub const LIMIT: &str = "-l";
56
57 pub const T: u8 = b'T';
60 pub const D: u8 = b'D';
63 pub const C: u8 = b'C';
66 pub const E: u8 = b'E';
69
70 pub const END: u8 = 0;
73 pub const ERR: u8 = 1;
75 pub const FATAL_ERR: u8 = 2;
77}
78
79#[allow(dead_code)]
80pub(crate) mod size {
81 pub const FILE_CHUNK: usize = 30000;
82 pub const BUF_SIZE: usize = 32768;
84 pub const LOCAL_WINDOW_SIZE: u32 = 2097152;
86}
87
88#[allow(dead_code)]
90pub(crate) mod ssh_connection_code {
91 pub const GLOBAL_REQUEST: u8 = 80;
92 pub const REQUEST_SUCCESS: u8 = 81;
93 pub const REQUEST_FAILURE: u8 = 82;
94 pub const CHANNEL_OPEN: u8 = 90;
95 pub const CHANNEL_OPEN_CONFIRMATION: u8 = 91;
96 pub const CHANNEL_OPEN_FAILURE: u8 = 92;
97 pub const CHANNEL_WINDOW_ADJUST: u8 = 93;
98 pub const CHANNEL_DATA: u8 = 94;
99 pub const CHANNEL_EXTENDED_DATA: u8 = 95;
100 pub const CHANNEL_EOF: u8 = 96;
101 pub const CHANNEL_CLOSE: u8 = 97;
102 pub const CHANNEL_REQUEST: u8 = 98;
103 pub const CHANNEL_SUCCESS: u8 = 99;
104 pub const CHANNEL_FAILURE: u8 = 100;
105}
106
107#[allow(dead_code)]
109pub(crate) mod ssh_channel_fail_code {
110 pub const ADMINISTRATIVELY_PROHIBITED: u32 = 1;
111 pub const CONNECT_FAILED: u32 = 2;
112 pub const UNKNOWN_CHANNEL_TYPE: u32 = 3;
113 pub const RESOURCE_SHORTAGE: u32 = 4;
114}
115
116#[allow(dead_code)]
118pub(crate) mod ssh_transport_code {
119 pub const DISCONNECT: u8 = 1;
120 pub const IGNORE: u8 = 2;
121 pub const UNIMPLEMENTED: u8 = 3;
122 pub const DEBUG: u8 = 4;
123 pub const SERVICE_REQUEST: u8 = 5;
124 pub const SERVICE_ACCEPT: u8 = 6;
125 pub const KEXINIT: u8 = 20;
126 pub const NEWKEYS: u8 = 21;
127 pub const KEXDH_INIT: u8 = 30;
128 pub const KEXDH_REPLY: u8 = 31;
129}
130
131#[allow(dead_code)]
133pub(crate) mod ssh_disconnection_code {
134 pub const HOST_NOT_ALLOWED_TO_CONNECT: u8 = 1;
135 pub const PROTOCOL_ERROR: u8 = 2;
136 pub const KEY_EXCHANGE_FAILED: u8 = 3;
137 pub const RESERVED: u8 = 4;
138 pub const MAC_ERROR: u8 = 5;
139 pub const COMPRESSION_ERROR: u8 = 6;
140 pub const SERVICE_NOT_AVAILABLE: u8 = 7;
141 pub const PROTOCOL_VERSION_NOT_SUPPORTED: u8 = 8;
142 pub const HOST_KEY_NOT_VERIFIABLE: u8 = 9;
143 pub const CONNECTION_LOST: u8 = 10;
144 pub const BY_APPLICATION: u8 = 11;
145 pub const TOO_MANY_CONNECTIONS: u8 = 12;
146 pub const AUTH_CANCELLED_BY_USER: u8 = 13;
147 pub const NO_MORE_AUTH_METHODS_AVAILABLE: u8 = 14;
148 pub const ILLEGAL_USER_NAME: u8 = 15;
149}
150
151#[allow(dead_code)]
153pub(crate) mod ssh_user_auth_code {
154 pub const REQUEST: u8 = 50;
155 pub const FAILURE: u8 = 51;
156 pub const SUCCESS: u8 = 52;
157 pub const BANNER: u8 = 53;
158 pub const PK_OK: u8 = 60;
159}
160
161pub(crate) const ALPHABET: [u8; 6] = [b'A', b'B', b'C', b'D', b'E', b'F'];