diff options
author | Pierre Ossman <ossman@cendio.se> | 2022-08-18 14:53:10 +0200 |
---|---|---|
committer | Pierre Ossman <ossman@cendio.se> | 2022-08-18 16:26:19 +0200 |
commit | e1174e813b617062c77491c01130c38b45f15311 (patch) | |
tree | 0f1b8d78b710a8a6590ccd675d203378b043253e /core | |
parent | 6719b932cf95b7356385b7ca3ed0a0271be4134b (diff) | |
download | novnc-e1174e813b617062c77491c01130c38b45f15311.tar.gz |
Use constants for security types
Makes everything much more readable.
Diffstat (limited to 'core')
-rw-r--r-- | core/rfb.js | 72 |
1 files changed, 43 insertions, 29 deletions
diff --git a/core/rfb.js b/core/rfb.js index f524411..2d7e77f 100644 --- a/core/rfb.js +++ b/core/rfb.js @@ -54,6 +54,21 @@ const GESTURE_SCRLSENS = 50; const DOUBLE_TAP_TIMEOUT = 1000; const DOUBLE_TAP_THRESHOLD = 50; +// Security types +const securityTypeNone = 1; +const securityTypeVNCAuth = 2; +const securityTypeRA2ne = 6; +const securityTypeTight = 16; +const securityTypeVeNCrypt = 19; +const securityTypeXVP = 22; +const securityTypeARD = 30; + +// Special Tight security types +const securityTypeUnixLogon = 129; + +// VeNCrypt security types +const securityTypePlain = 256; + // Extended clipboard pseudo-encoding formats const extendedClipboardFormatText = 1; /*eslint-disable no-unused-vars */ @@ -1356,20 +1371,20 @@ export default class RFB extends EventTargetMixin { Log.Debug("Server security types: " + types); // Look for each auth in preferred order - if (types.includes(1)) { - this._rfbAuthScheme = 1; // None - } else if (types.includes(22)) { - this._rfbAuthScheme = 22; // XVP - } else if (types.includes(16)) { - this._rfbAuthScheme = 16; // Tight - } else if (types.includes(6)) { - this._rfbAuthScheme = 6; // RA2ne Auth - } else if (types.includes(2)) { - this._rfbAuthScheme = 2; // VNC Auth - } else if (types.includes(30)) { - this._rfbAuthScheme = 30; // ARD Auth - } else if (types.includes(19)) { - this._rfbAuthScheme = 19; // VeNCrypt Auth + if (types.includes(securityTypeNone)) { + this._rfbAuthScheme = securityTypeNone; + } else if (types.includes(securityTypeXVP)) { + this._rfbAuthScheme = securityTypeXVP; + } else if (types.includes(securityTypeTight)) { + this._rfbAuthScheme = securityTypeTight; + } else if (types.includes(securityTypeRA2ne)) { + this._rfbAuthScheme = securityTypeRA2ne; + } else if (types.includes(securityTypeVNCAuth)) { + this._rfbAuthScheme = securityTypeVNCAuth; + } else if (types.includes(securityTypeARD)) { + this._rfbAuthScheme = securityTypeARD; + } else if (types.includes(securityTypeVeNCrypt)) { + this._rfbAuthScheme = securityTypeVeNCrypt; } else { return this._fail("Unsupported security types (types: " + types + ")"); } @@ -1441,7 +1456,7 @@ export default class RFB extends EventTargetMixin { this._rfbCredentials.username + this._rfbCredentials.target; this._sock.sendString(xvpAuthStr); - this._rfbAuthScheme = 2; + this._rfbAuthScheme = securityTypeVNCAuth; return this._negotiateAuthentication(); } @@ -1499,8 +1514,7 @@ export default class RFB extends EventTargetMixin { subtypes.push(this._sock.rQshift32()); } - // 256 = Plain subtype - if (subtypes.indexOf(256) != -1) { + if (subtypes.indexOf(securityTypePlain) != -1) { // 0x100 = 256 this._sock.send([0, 0, 1, 0]); this._rfbVeNCryptState = 4; @@ -1778,11 +1792,11 @@ export default class RFB extends EventTargetMixin { case 'STDVNOAUTH__': // no auth this._rfbInitState = 'SecurityResult'; return true; - case 'STDVVNCAUTH_': // VNC auth - this._rfbAuthScheme = 2; + case 'STDVVNCAUTH_': + this._rfbAuthScheme = securityTypeVNCAuth; return true; - case 'TGHTULGNAUTH': // UNIX auth - this._rfbAuthScheme = 129; + case 'TGHTULGNAUTH': + this._rfbAuthScheme = securityTypeUnixLogon; return true; default: return this._fail("Unsupported tiny auth scheme " + @@ -1834,29 +1848,29 @@ export default class RFB extends EventTargetMixin { _negotiateAuthentication() { switch (this._rfbAuthScheme) { - case 1: // no auth + case securityTypeNone: this._rfbInitState = 'SecurityResult'; return true; - case 22: // XVP auth + case securityTypeXVP: return this._negotiateXvpAuth(); - case 30: // ARD auth + case securityTypeARD: return this._negotiateARDAuth(); - case 2: // VNC authentication + case securityTypeVNCAuth: return this._negotiateStdVNCAuth(); - case 16: // TightVNC Security Type + case securityTypeTight: return this._negotiateTightAuth(); - case 19: // VeNCrypt Security Type + case securityTypeVeNCrypt: return this._negotiateVeNCryptAuth(); - case 129: // TightVNC UNIX Security Type + case securityTypeUnixLogon: return this._negotiateTightUnixAuth(); - case 6: // RA2ne Security Type + case securityTypeRA2ne: return this._negotiateRA2neAuth(); default: |