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
|