File: constants.py

package info (click to toggle)
python-asyncssh 2.21.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 3,464 kB
  • sloc: python: 40,306; makefile: 11
file content (363 lines) | stat: -rw-r--r-- 13,385 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
# Copyright (c) 2013-2021 by Ron Frederick <ronf@timeheart.net> and others.
#
# This program and the accompanying materials are made available under
# the terms of the Eclipse Public License v2.0 which accompanies this
# distribution and is available at:
#
#     http://www.eclipse.org/legal/epl-2.0/
#
# This program may also be made available under the following secondary
# licenses when the conditions for such availability set forth in the
# Eclipse Public License v2.0 are satisfied:
#
#    GNU General Public License, Version 2.0, or any later versions of
#    that license
#
# SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-or-later
#
# Contributors:
#     Ron Frederick - initial implementation, API, and documentation

"""SSH constants"""

# Default language for error messages
DEFAULT_LANG                        = 'en-US'

# Default SSH listening port
DEFAULT_PORT                        = 22

# SSH message codes
MSG_DISCONNECT                      = 1
MSG_IGNORE                          = 2
MSG_UNIMPLEMENTED                   = 3
MSG_DEBUG                           = 4
MSG_SERVICE_REQUEST                 = 5
MSG_SERVICE_ACCEPT                  = 6
MSG_EXT_INFO                        = 7

MSG_KEXINIT                         = 20
MSG_NEWKEYS                         = 21

MSG_KEX_FIRST                       = 30
MSG_KEX_LAST                        = 49

MSG_USERAUTH_REQUEST                = 50
MSG_USERAUTH_FAILURE                = 51
MSG_USERAUTH_SUCCESS                = 52
MSG_USERAUTH_BANNER                 = 53

MSG_USERAUTH_FIRST                  = 60
MSG_USERAUTH_LAST                   = 79

MSG_GLOBAL_REQUEST                  = 80
MSG_REQUEST_SUCCESS                 = 81
MSG_REQUEST_FAILURE                 = 82

MSG_CHANNEL_OPEN                    = 90
MSG_CHANNEL_OPEN_CONFIRMATION       = 91
MSG_CHANNEL_OPEN_FAILURE            = 92

MSG_CHANNEL_WINDOW_ADJUST           = 93
MSG_CHANNEL_DATA                    = 94
MSG_CHANNEL_EXTENDED_DATA           = 95
MSG_CHANNEL_EOF                     = 96
MSG_CHANNEL_CLOSE                   = 97
MSG_CHANNEL_REQUEST                 = 98
MSG_CHANNEL_SUCCESS                 = 99
MSG_CHANNEL_FAILURE                 = 100

# Messages 90-92 are excluded here as they relate to opening a new channel
MSG_CHANNEL_FIRST                   = 93
MSG_CHANNEL_LAST                    = 127

# SSH disconnect reason codes
DISC_HOST_NOT_ALLOWED_TO_CONNECT    = 1
DISC_PROTOCOL_ERROR                 = 2
DISC_KEY_EXCHANGE_FAILED            = 3
DISC_RESERVED                       = 4
DISC_MAC_ERROR                      = 5
DISC_COMPRESSION_ERROR              = 6
DISC_SERVICE_NOT_AVAILABLE          = 7
DISC_PROTOCOL_VERSION_NOT_SUPPORTED = 8
DISC_HOST_KEY_NOT_VERIFIABLE        = 9
DISC_CONNECTION_LOST                = 10
DISC_BY_APPLICATION                 = 11
DISC_TOO_MANY_CONNECTIONS           = 12
DISC_AUTH_CANCELLED_BY_USER         = 13
DISC_NO_MORE_AUTH_METHODS_AVAILABLE = 14
DISC_ILLEGAL_USER_NAME              = 15

DISC_HOST_KEY_NOT_VERIFYABLE        = 9   # Error in naming, left here to not
                                          # break backward compatibility

# SSH channel open failure reason codes
OPEN_ADMINISTRATIVELY_PROHIBITED    = 1
OPEN_CONNECT_FAILED                 = 2
OPEN_UNKNOWN_CHANNEL_TYPE           = 3
OPEN_RESOURCE_SHORTAGE              = 4

# Internal failure reason codes
OPEN_REQUEST_X11_FORWARDING_FAILED  = 0xfffffffd
OPEN_REQUEST_PTY_FAILED             = 0xfffffffe
OPEN_REQUEST_SESSION_FAILED         = 0xffffffff

# SFTPv3-v5 packet types
FXP_INIT                            = 1
FXP_VERSION                         = 2
FXP_OPEN                            = 3
FXP_CLOSE                           = 4
FXP_READ                            = 5
FXP_WRITE                           = 6
FXP_LSTAT                           = 7
FXP_FSTAT                           = 8
FXP_SETSTAT                         = 9
FXP_FSETSTAT                        = 10
FXP_OPENDIR                         = 11
FXP_READDIR                         = 12
FXP_REMOVE                          = 13
FXP_MKDIR                           = 14
FXP_RMDIR                           = 15
FXP_REALPATH                        = 16
FXP_STAT                            = 17
FXP_RENAME                          = 18
FXP_READLINK                        = 19
FXP_SYMLINK                         = 20
FXP_STATUS                          = 101
FXP_HANDLE                          = 102
FXP_DATA                            = 103
FXP_NAME                            = 104
FXP_ATTRS                           = 105
FXP_EXTENDED                        = 200
FXP_EXTENDED_REPLY                  = 201

# SFTPv6 packet types
FXP_LINK                            = 21
FXP_BLOCK                           = 22
FXP_UNBLOCK                         = 23

# SFTPv3 open flags
FXF_READ                            = 0x00000001
FXF_WRITE                           = 0x00000002
FXF_APPEND                          = 0x00000004
FXF_CREAT                           = 0x00000008
FXF_TRUNC                           = 0x00000010
FXF_EXCL                            = 0x00000020

# SFTPv4 open flags
FXF_TEXT                            = 0x00000040

# SFTPv5 open flags
FXF_ACCESS_DISPOSITION              = 0x00000007
FXF_CREATE_NEW                      = 0x00000000
FXF_CREATE_TRUNCATE                 = 0x00000001
FXF_OPEN_EXISTING                   = 0x00000002
FXF_OPEN_OR_CREATE                  = 0x00000003
FXF_TRUNCATE_EXISTING               = 0x00000004
FXF_APPEND_DATA                     = 0x00000008
FXF_APPEND_DATA_ATOMIC              = 0x00000010
FXF_TEXT_MODE                       = 0x00000020
FXF_BLOCK_READ                      = 0x00000040
FXF_BLOCK_WRITE                     = 0x00000080
FXF_BLOCK_DELETE                    = 0x00000100

# SFTPv6 open flags
FXF_BLOCK_ADVISORY                  = 0x00000200
FXF_NOFOLLOW                        = 0x00000400
FXF_DELETE_ON_CLOSE                 = 0x00000800
FXF_ACCESS_AUDIT_ALARM_INFO         = 0x00001000
FXF_ACCESS_BACKUP                   = 0x00002000
FXF_BACKUP_STREAM                   = 0x00004000
FXF_OVERRIDE_OWNER                  = 0x00008000

# SFTPv5-v6 ACE mask values used in desired-access
ACE4_READ_DATA                      = 0x00000001
ACE4_WRITE_DATA                     = 0x00000002
ACE4_APPEND_DATA                    = 0x00000004
ACE4_READ_ATTRIBUTES                = 0x00000080
ACE4_WRITE_ATTRIBUTES               = 0x00000100

# SFTPv3 attribute flags
FILEXFER_ATTR_SIZE                  = 0x00000001
FILEXFER_ATTR_UIDGID                = 0x00000002
FILEXFER_ATTR_PERMISSIONS           = 0x00000004
FILEXFER_ATTR_ACMODTIME             = 0x00000008
FILEXFER_ATTR_EXTENDED              = 0x80000000
FILEXFER_ATTR_DEFINED_V3            = 0x8000000f

# SFTPv4 attribute flags
FILEXFER_ATTR_ACCESSTIME            = 0x00000008
FILEXFER_ATTR_CREATETIME            = 0x00000010
FILEXFER_ATTR_MODIFYTIME            = 0x00000020
FILEXFER_ATTR_ACL                   = 0x00000040
FILEXFER_ATTR_OWNERGROUP            = 0x00000080
FILEXFER_ATTR_SUBSECOND_TIMES       = 0x00000100
FILEXFER_ATTR_DEFINED_V4            = 0x800001fd

# SFTPv5 attribute flags
FILEXFER_ATTR_BITS                  = 0x00000200
FILEXFER_ATTR_DEFINED_V5            = 0x800003fd

# SFTPv6 attribute flags
FILEXFER_ATTR_ALLOCATION_SIZE       = 0x00000400
FILEXFER_ATTR_TEXT_HINT             = 0x00000800
FILEXFER_ATTR_MIME_TYPE             = 0x00001000
FILEXFER_ATTR_LINK_COUNT            = 0x00002000
FILEXFER_ATTR_UNTRANSLATED_NAME     = 0x00004000
FILEXFER_ATTR_CTIME                 = 0x00008000
FILEXFER_ATTR_DEFINED_V6            = 0x8000fffd

# SFTPv4 file types
FILEXFER_TYPE_REGULAR               = 1
FILEXFER_TYPE_DIRECTORY             = 2
FILEXFER_TYPE_SYMLINK               = 3
FILEXFER_TYPE_SPECIAL               = 4
FILEXFER_TYPE_UNKNOWN               = 5

# SFTPv5 file types
FILEXFER_TYPE_SOCKET                = 6
FILEXFER_TYPE_CHAR_DEVICE           = 7
FILEXFER_TYPE_BLOCK_DEVICE          = 8
FILEXFER_TYPE_FIFO                  = 9

# SFTPv5 attrib bits
FILEXFER_ATTR_BITS_READONLY         = 0x00000001
FILEXFER_ATTR_BITS_SYSTEM           = 0x00000002
FILEXFER_ATTR_BITS_HIDDEN           = 0x00000004
FILEXFER_ATTR_BITS_CASE_INSENSITIVE = 0x00000008
FILEXFER_ATTR_BITS_ARCHIVE          = 0x00000010
FILEXFER_ATTR_BITS_ENCRYPTED        = 0x00000020
FILEXFER_ATTR_BITS_COMPRESSED       = 0x00000040
FILEXFER_ATTR_BITS_SPARSE           = 0x00000080
FILEXFER_ATTR_BITS_APPEND_ONLY      = 0x00000100
FILEXFER_ATTR_BITS_IMMUTABLE        = 0x00000200
FILEXFER_ATTR_BITS_SYNC             = 0x00000400

# SFTPv6 attrib bits
FILEXFER_ATTR_BITS_TRANSLATION_ERR  = 0x00000800

# SFTPv6 text hint flags
FILEXFER_ATTR_KNOWN_TEXT            = 0
FILEXFER_ATTR_GUESSED_TEXT          = 1
FILEXFER_ATTR_KNOWN_BINARY          = 2
FILEXFER_ATTR_GUESSED_BINARY        = 3

# SFTPv5 rename flags
FXR_OVERWRITE                       = 0x00000001
FXR_ATOMIC                          = 0x00000002
FXR_NATIVE                          = 0x00000004

# SFTPv6 realpath control byte
FXRP_NO_CHECK                       = 1
FXRP_STAT_IF_EXISTS                 = 2
FXRP_STAT_ALWAYS                    = 3

# OpenSSH statvfs attribute flags
FXE_STATVFS_ST_RDONLY               = 0x1
FXE_STATVFS_ST_NOSUID               = 0x2

# SFTPv3 error codes
FX_OK                               = 0
FX_EOF                              = 1
FX_NO_SUCH_FILE                     = 2
FX_PERMISSION_DENIED                = 3
FX_FAILURE                          = 4
FX_BAD_MESSAGE                      = 5
FX_NO_CONNECTION                    = 6
FX_CONNECTION_LOST                  = 7
FX_OP_UNSUPPORTED                   = 8
FX_V3_END                           = FX_OP_UNSUPPORTED

# SFTPv4 error codes
FX_INVALID_HANDLE                   = 9
FX_NO_SUCH_PATH                     = 10
FX_FILE_ALREADY_EXISTS              = 11
FX_WRITE_PROTECT                    = 12
FX_NO_MEDIA                         = 13
FX_V4_END                           = FX_NO_MEDIA

# SFTPv5 error codes
FX_NO_SPACE_ON_FILESYSTEM           = 14
FX_QUOTA_EXCEEDED                   = 15
FX_UNKNOWN_PRINCIPAL                = 16
FX_LOCK_CONFLICT                    = 17
FX_V5_END                           = FX_LOCK_CONFLICT

# SFTPv6 error codes
FX_DIR_NOT_EMPTY                    = 18
FX_NOT_A_DIRECTORY                  = 19
FX_INVALID_FILENAME                 = 20
FX_LINK_LOOP                        = 21
FX_CANNOT_DELETE                    = 22
FX_INVALID_PARAMETER                = 23
FX_FILE_IS_A_DIRECTORY              = 24
FX_BYTE_RANGE_LOCK_CONFLICT         = 25
FX_BYTE_RANGE_LOCK_REFUSED          = 26
FX_DELETE_PENDING                   = 27
FX_FILE_CORRUPT                     = 28
FX_OWNER_INVALID                    = 29
FX_GROUP_INVALID                    = 30
FX_NO_MATCHING_BYTE_RANGE_LOCK      = 31
FX_V6_END                           = FX_NO_MATCHING_BYTE_RANGE_LOCK

# SSH channel data type codes
EXTENDED_DATA_STDERR                = 1

# SSH pty mode opcodes
PTY_OP_END                          = 0
PTY_VINTR                           = 1
PTY_VQUIT                           = 2
PTY_VERASE                          = 3
PTY_VKILL                           = 4
PTY_VEOF                            = 5
PTY_VEOL                            = 6
PTY_VEOL2                           = 7
PTY_VSTART                          = 8
PTY_VSTOP                           = 9
PTY_VSUSP                           = 10
PTY_VDSUSP                          = 11
PTY_VREPRINT                        = 12
PTY_WERASE                          = 13
PTY_VLNEXT                          = 14
PTY_VFLUSH                          = 15
PTY_VSWTCH                          = 16
PTY_VSTATUS                         = 17
PTY_VDISCARD                        = 18
PTY_IGNPAR                          = 30
PTY_PARMRK                          = 31
PTY_INPCK                           = 32
PTY_ISTRIP                          = 33
PTY_INLCR                           = 34
PTY_IGNCR                           = 35
PTY_ICRNL                           = 36
PTY_IUCLC                           = 37
PTY_IXON                            = 38
PTY_IXANY                           = 39
PTY_IXOFF                           = 40
PTY_IMAXBEL                         = 41
PTY_IUTF8                           = 42
PTY_ISIG                            = 50
PTY_ICANON                          = 51
PTY_XCASE                           = 52
PTY_ECHO                            = 53
PTY_ECHOE                           = 54
PTY_ECHOK                           = 55
PTY_ECHONL                          = 56
PTY_NOFLSH                          = 57
PTY_TOSTOP                          = 58
PTY_IEXTEN                          = 59
PTY_ECHOCTL                         = 60
PTY_ECHOKE                          = 61
PTY_PENDIN                          = 62
PTY_OPOST                           = 70
PTY_OLCUC                           = 71
PTY_ONLCR                           = 72
PTY_OCRNL                           = 73
PTY_ONOCR                           = 74
PTY_ONLRET                          = 75
PTY_CS7                             = 90
PTY_CS8                             = 91
PTY_PARENB                          = 92
PTY_PARODD                          = 93
PTY_OP_ISPEED                       = 128
PTY_OP_OSPEED                       = 129
PTY_OP_RESERVED                     = 160