1 module libssh.dconst;
2 
3 import libssh.types;
4 
5 enum SSH_KEX
6 {
7     KEX       = ssh_kex_types_e.SSH_KEX,
8     HOSTKEYS  = ssh_kex_types_e.SSH_HOSTKEYS,
9     CRYPT_C_S = ssh_kex_types_e.SSH_CRYPT_C_S,
10     CRYPT_S_C = ssh_kex_types_e.SSH_CRYPT_S_C,
11     MAC_C_S   = ssh_kex_types_e.SSH_MAC_C_S,
12     MAC_S_C   = ssh_kex_types_e.SSH_MAC_S_C,
13     COMP_C_S  = ssh_kex_types_e.SSH_COMP_C_S,
14     COMP_S_C  = ssh_kex_types_e.SSH_COMP_S_C,
15     LANG_C_S  = ssh_kex_types_e.SSH_LANG_C_S,
16     LANG_S_C  = ssh_kex_types_e.SSH_LANG_S_C
17 }
18 
19 enum SSH_AUTH_RESULT
20 {
21     SUCCESS  = ssh_auth_e.SSH_AUTH_SUCCESS,
22     DENIED   = ssh_auth_e.SSH_AUTH_DENIED,
23     PARTIAL  = ssh_auth_e.SSH_AUTH_PARTIAL,
24     INFO     = ssh_auth_e.SSH_AUTH_INFO,
25     AGAIN    = ssh_auth_e.SSH_AUTH_AGAIN,
26     ERROR    = ssh_auth_e.SSH_AUTH_ERROR
27 }
28 
29 enum SSH_AUTH_METHOD
30 {
31     UNKNOWN     = SSH_AUTH_METHOD_UNKNOWN,
32     NONE        = SSH_AUTH_METHOD_NONE,
33     PASSWORD    = SSH_AUTH_METHOD_PASSWORD,
34     PUBLICKEY   = SSH_AUTH_METHOD_PUBLICKEY,
35     HOSTBASED   = SSH_AUTH_METHOD_HOSTBASED,
36     INTERACTIVE = SSH_AUTH_METHOD_INTERACTIVE,
37     GSSAPI_MIC  = SSH_AUTH_METHOD_GSSAPI_MIC,
38 }
39 
40 enum SSH_REQUEST
41 {
42     AUTH         = ssh_requests_e.SSH_REQUEST_AUTH,
43     CHANNEL_OPEN = ssh_requests_e.SSH_REQUEST_CHANNEL_OPEN,
44     CHANNEL      = ssh_requests_e.SSH_REQUEST_CHANNEL,
45     SERVICE      = ssh_requests_e.SSH_REQUEST_SERVICE,
46     GLOBAL       = ssh_requests_e.SSH_REQUEST_GLOBAL
47 }
48 
49 enum SSH_CHANNEL_TYPE
50 {
51     UNKNOWN         = ssh_channel_type_e.SSH_CHANNEL_UNKNOWN,
52     SESSION         = ssh_channel_type_e.SSH_CHANNEL_SESSION,
53     DIRECT_TCPIP    = ssh_channel_type_e.SSH_CHANNEL_DIRECT_TCPIP,
54     FORWARDED_TCPIP = ssh_channel_type_e.SSH_CHANNEL_FORWARDED_TCPIP,
55     X11             = ssh_channel_type_e.SSH_CHANNEL_X11,
56     AUTH_AGENT      = ssh_channel_type_e.SSH_CHANNEL_AUTH_AGENT
57 }
58 
59 enum SSH_CHANNEL_REQUEST
60 {
61     UNKNOWN       = ssh_channel_requests_e.SSH_CHANNEL_REQUEST_UNKNOWN,
62     PTY           = ssh_channel_requests_e.SSH_CHANNEL_REQUEST_PTY,
63     EXEC          = ssh_channel_requests_e.SSH_CHANNEL_REQUEST_EXEC,
64     SHELL         = ssh_channel_requests_e.SSH_CHANNEL_REQUEST_SHELL,
65     ENV           = ssh_channel_requests_e.SSH_CHANNEL_REQUEST_ENV,
66     SUBSYSTEM     = ssh_channel_requests_e.SSH_CHANNEL_REQUEST_SUBSYSTEM,
67     WINDOW_CHANGE = ssh_channel_requests_e.SSH_CHANNEL_REQUEST_WINDOW_CHANGE,
68     X11           = ssh_channel_requests_e.SSH_CHANNEL_REQUEST_X11
69 }
70 
71 enum SSH_PUBLICKEY_STATE
72 {
73     ERROR = ssh_publickey_state_e.SSH_PUBLICKEY_STATE_ERROR,
74     NONE  = ssh_publickey_state_e.SSH_PUBLICKEY_STATE_NONE,
75     VALID = ssh_publickey_state_e.SSH_PUBLICKEY_STATE_VALID,
76     WRONG = ssh_publickey_state_e.SSH_PUBLICKEY_STATE_WRONG
77 }
78 
79 enum SSH_STATUS_FLAG
80 {
81     CLOSED       = SSH_CLOSED,
82     PENDIN       = SSH_READ_PENDING,
83     CLOSED_ERROR = SSH_CLOSED_ERROR,
84     WRITE_PENDING = SSH_WRITE_PENDING,
85 }
86 
87 enum SSH_SERVER_KNOWN
88 {
89     ERROR          = ssh_server_known_e.SSH_SERVER_ERROR,
90     NOT_KNOWN      = ssh_server_known_e.SSH_SERVER_NOT_KNOWN,
91     OK             = ssh_server_known_e.SSH_SERVER_KNOWN_OK,
92     CHANGED        = ssh_server_known_e.SSH_SERVER_KNOWN_CHANGED,
93     FOUND_OTHER    = ssh_server_known_e.SSH_SERVER_FOUND_OTHER,
94     FILE_NOT_FOUND = ssh_server_known_e.SSH_SERVER_FILE_NOT_FOUND
95 }
96 
97 enum SSH_KNOWN_HOSTS
98 {
99     ERROR     = ssh_known_hosts_e.SSH_KNOWN_HOSTS_ERROR,
100     NOT_FOUND = ssh_known_hosts_e.SSH_KNOWN_HOSTS_NOT_FOUND,
101     UNKNOWN   = ssh_known_hosts_e.SSH_KNOWN_HOSTS_UNKNOWN,
102     OK        = ssh_known_hosts_e.SSH_KNOWN_HOSTS_OK,
103     CHANGED   = ssh_known_hosts_e.SSH_KNOWN_HOSTS_CHANGED,
104     OTHER     = ssh_known_hosts_e.SSH_KNOWN_HOSTS_OTHER,
105 }
106 
107 enum SSH_ERROR_TYPE
108 {
109     NO_ERROR       = ssh_error_types_e.SSH_NO_ERROR,
110     REQUEST_DENIED = ssh_error_types_e.SSH_REQUEST_DENIED,
111     FATAL          = ssh_error_types_e.SSH_FATAL,
112     EINTR          = ssh_error_types_e.SSH_EINTR
113 }
114 
115 enum SSH_KEYTYPE
116 {
117     UNKNOWN    = ssh_keytypes_e.SSH_KEYTYPE_UNKNOWN,
118     DSS        = ssh_keytypes_e.SSH_KEYTYPE_DSS,
119     RSA        = ssh_keytypes_e.SSH_KEYTYPE_RSA,
120     RSA1       = ssh_keytypes_e.SSH_KEYTYPE_RSA1,
121     ECDSA      = ssh_keytypes_e.SSH_KEYTYPE_ECDSA,
122     ED25519    = ssh_keytypes_e.SSH_KEYTYPE_ED25519,
123     DSS_CERT01 = ssh_keytypes_e.SSH_KEYTYPE_DSS_CERT01,
124     RSA_CERT01 = ssh_keytypes_e.SSH_KEYTYPE_RSA_CERT01
125 }
126 
127 enum SSH_KEYCMP
128 {
129     PUBLIC  = ssh_keycmp_e.SSH_KEY_CMP_PUBLIC,
130     PRIVATE = ssh_keycmp_e.SSH_KEY_CMP_PRIVATE
131 }
132 
133 enum SSH_RETCODE
134 {
135     OK    = SSH_OK,
136     ERROR = SSH_ERROR,
137     AGAIN = SSH_AGAIN,
138     EOF   = SSH_EOF
139 }
140 
141 enum SSH_LOG
142 {
143     NOLOG     = SSH_LOG_NOLOG,
144     WARNING   = SSH_LOG_WARNING,
145     PROTOCOL  = SSH_LOG_PROTOCOL,
146     PACKET    = SSH_LOG_PACKET,
147     FUNCTIONS = SSH_LOG_FUNCTIONS,
148 
149     NONE  = SSH_LOG_NONE,
150     WARN  = SSH_LOG_WARN,
151     INFO  = SSH_LOG_INFO,
152     DEBUG = SSH_LOG_DEBUG,
153     TRACE = SSH_LOG_TRACE,
154 }
155 
156 enum SSH_OPTION
157 {
158     HOST                        = ssh_options_e.SSH_OPTIONS_HOST,
159     PORT                        = ssh_options_e.SSH_OPTIONS_PORT,
160     PORT_STR                    = ssh_options_e.SSH_OPTIONS_PORT_STR,
161     FD                          = ssh_options_e.SSH_OPTIONS_FD,
162     USER                        = ssh_options_e.SSH_OPTIONS_USER,
163     SSH_DIR                     = ssh_options_e.SSH_OPTIONS_SSH_DIR,
164     IDENTITY                    = ssh_options_e.SSH_OPTIONS_IDENTITY,
165     ADD_IDENTITY                = ssh_options_e.SSH_OPTIONS_ADD_IDENTITY,
166     KNOWNHOSTS                  = ssh_options_e.SSH_OPTIONS_KNOWNHOSTS,
167     TIMEOUT                     = ssh_options_e.SSH_OPTIONS_TIMEOUT,
168     TIMEOUT_USEC                = ssh_options_e.SSH_OPTIONS_TIMEOUT_USEC,
169     SSH1                        = ssh_options_e.SSH_OPTIONS_SSH1,
170     SSH2                        = ssh_options_e.SSH_OPTIONS_SSH2,
171     LOG_VERBOSITY               = ssh_options_e.SSH_OPTIONS_LOG_VERBOSITY,
172     LOG_VERBOSITY_STR           = ssh_options_e.SSH_OPTIONS_LOG_VERBOSITY_STR,
173     CIPHERS_C_S                 = ssh_options_e.SSH_OPTIONS_CIPHERS_C_S,
174     CIPHERS_S_C                 = ssh_options_e.SSH_OPTIONS_CIPHERS_S_C,
175     COMPRESSION_C_S             = ssh_options_e.SSH_OPTIONS_COMPRESSION_C_S,
176     COMPRESSION_S_C             = ssh_options_e.SSH_OPTIONS_COMPRESSION_S_C,
177     PROXYCOMMAND                = ssh_options_e.SSH_OPTIONS_PROXYCOMMAND,
178     BINDADDR                    = ssh_options_e.SSH_OPTIONS_BINDADDR,
179     STRICTHOSTKEYCHECK          = ssh_options_e.SSH_OPTIONS_STRICTHOSTKEYCHECK,
180     COMPRESSION                 = ssh_options_e.SSH_OPTIONS_COMPRESSION,
181     COMPRESSION_LEVEL           = ssh_options_e.SSH_OPTIONS_COMPRESSION_LEVEL,
182     KEY_EXCHANGE                = ssh_options_e.SSH_OPTIONS_KEY_EXCHANGE,
183     HOSTKEYS                    = ssh_options_e.SSH_OPTIONS_HOSTKEYS,
184     GSSAPI_SERVER_IDENTITY      = ssh_options_e.SSH_OPTIONS_GSSAPI_SERVER_IDENTITY,
185     GSSAPI_CLIENT_IDENTITY      = ssh_options_e.SSH_OPTIONS_GSSAPI_CLIENT_IDENTITY,
186     GSSAPI_DELEGATE_CREDENTIALS = ssh_options_e.SSH_OPTIONS_GSSAPI_DELEGATE_CREDENTIALS,
187     HMAC_C_S                    = ssh_options_e.SSH_OPTIONS_HMAC_C_S,
188     HMAC_S_C                    = ssh_options_e.SSH_OPTIONS_HMAC_S_C,
189     PASSWORD_AUTH               = ssh_options_e.SSH_OPTIONS_PASSWORD_AUTH,
190     PUBKEY_AUTH                 = ssh_options_e.SSH_OPTIONS_PUBKEY_AUTH,
191     KBDINT_AUTH                 = ssh_options_e.SSH_OPTIONS_KBDINT_AUTH,
192     GSSAPI_AUTH                 = ssh_options_e.SSH_OPTIONS_GSSAPI_AUTH,
193     GLOBAL_KNOWNHOSTS           = ssh_options_e.SSH_OPTIONS_GLOBAL_KNOWNHOSTS,
194     NODELAY                     = ssh_options_e.SSH_OPTIONS_NODELAY,
195     PUBLICKEY_ACCEPTED_TYPES    = ssh_options_e.SSH_OPTIONS_PUBLICKEY_ACCEPTED_TYPES,
196 }
197 
198 enum SSH_SCP
199 {
200     WRITE     = SSH_SCP_WRITE,
201     READ      = SSH_SCP_READ,
202     RECURSIVE = SSH_SCP_RECURSIVE,
203 }
204 
205 enum SSH_SCP_REQUEST_TYPE
206 {
207     NEWDIR  = ssh_scp_request_types.SSH_SCP_REQUEST_NEWDIR,
208     NEWFILE = ssh_scp_request_types.SSH_SCP_REQUEST_NEWFILE,
209     EOF     = ssh_scp_request_types.SSH_SCP_REQUEST_EOF,
210     ENDDIR  = ssh_scp_request_types.SSH_SCP_REQUEST_ENDDIR,
211     WARNING = ssh_scp_request_types.SSH_SCP_REQUEST_WARNING
212 }
213 
214 enum SSH_CONNECTOR_FLAG
215 {
216     STDOUT = ssh_connector_flags_e.SSH_CONNECTOR_STDOUT,
217     STDERR = ssh_connector_flags_e.SSH_CONNECTOR_STDERR,
218     BOTH   = ssh_connector_flags_e.SSH_CONNECTOR_BOTH
219 }
220 
221 enum SSH_PUBLICKEY_HASH_TYPE
222 {
223     SHA1   = ssh_publickey_hash_type.SSH_PUBLICKEY_HASH_SHA1,
224     MD5    = ssh_publickey_hash_type.SSH_PUBLICKEY_HASH_MD5,
225     SHA256 = ssh_publickey_hash_type.SSH_PUBLICKEY_HASH_SHA256
226 }