using System; using System.Text; namespace ScreenConnect; public static class Constants { public const int ByteSizeBits = 8; public const int GuidSizeBytes = 16; public const int IntSizeBytes = 4; public const int MillisecondsPerSecond = 1000; public const int MillisecondsPerMinute = 60000; public const int MillisecondsPerHour = 3600000; public const int MillisecondsPerDay = 86400000; public static readonly int WordSizeBytes = ReflectionExtensions.SizeOfType(); public static readonly int WordSizeBits = WordSizeBytes * 8; public static readonly int ProtocolVersion = 29; public const int ClientTimerIntervalMilliseconds = 10; public const int KeepAliveIntervalMilliseconds = 2000; public const int UnacknowledgedDataTimeoutMilliseconds = 20000; public const int GeneralRetrySleepMilliseconds = 30000; public const int MinRetrySleepMilliseconds = 2000; public const float SuccessiveRetryTimeMultiplier = 1.5f; public const float SuccessiveRetryTimeMultiplierVariance = 0.2f; public const int MinPingIntervalMilliseconds = 25000; public const int MaxNetworkUnreachableRetrySleepMilliseconds = 30000; public const string CompanyName = "ScreenConnect Software"; public const string ProductName = "ScreenConnect"; public const string ClientDescription = "ScreenConnect Client"; public const string ClientServiceDescription = "ScreenConnect Client Service"; public const string ServiceDescription = "ScreenConnect Service"; public const string CloudServiceDescription = "ScreenConnect Cloud Service"; public const string BackstageShellDescription = "ScreenConnect Backstage Shell"; public const string FileManagerDescription = "ScreenConnect File Manager"; public static readonly int[] ValidSymmetricKeyByteCounts = new int[2] { 16, 32 }; public const int EncryptionBlockByteLength = 16; public const int EncryptionInitializationVectorByteLength = 16; public const int EncryptionRandomLength = 32; public const int DeriveBytesIterations = 100; public const int GuestValidationAlgorithmKeySizeBits = 2048; public const int NetworkAddressMaxByteLength = 16; public const int ClientFlushDelayMilliseconds = 12; public const int ClientFlushByteSizeThreshold = 256; public const int ClientFlushDelayThresholdMilliseconds = 2; public const int ServerFlushByteSizeThreshold = 256; public const int StreamBufferSize = 2912; public const int DataMessagePayloadSize = 2896; public const string ClientExecutableName = "ScreenConnect.WindowsClient.exe"; public const string ClientServiceExecutableName = "ScreenConnect.ClientService.exe"; public const string WindowsBackstageShellExecutableName = "ScreenConnect.WindowsBackstageShell.exe"; public const int RecordKeyFrameFrequencySecond = 10; public const int RecordQuality = 80; public const int VirtualStreamMinBytesAhead = 131072; public const int VirtualStreamRequestBytesAhead = 524288; public const int VirtualStreamReadTimeoutMilliseconds = 60000; public const char VirtualFileDirectorySeparator = '/'; public const string DummyText = "524ff283-2094-4f98-b68d-f24f61c5f8fa"; public const string RelayUriScheme = "relay"; public const string ApplicationTitle = "ScreenConnect"; public const string ApplicationTitleClient = "ScreenConnect Client"; public const int MaxAccessTokenByteLength = 256; public const int MaxAsymmetricEncryptedDataLength = 256; public const int MaxHandshakeMessageDataLength = 1024; public static readonly CoreVersion ProductVersion = DataObject.GetVersion(typeof(Constants).GetAssemblyX().GetName().Version); public static readonly Encoding UTF8EncodingWithoutPreamble = new UTF8Encoding(encoderShouldEmitUTF8Identifier: false); public const string EssentialsMenuTitle = "Essentials"; public const string SendCtrlAltDelTitle = "Send Ctrl-Alt-Del"; public const string SendClipboardKeystrokesTitle = "Send Clipboard Keystrokes"; public const string RebootAndReconnectMenuTitle = "Reboot and Reconnect"; public const string RebootAndReconnectNormalModeTitle = "Normal Mode"; public const string RebootAndReconnectSafeModeTitle = "Safe Mode"; public const string SetScreenQualityMenuTitle = "Set Screen Quality"; public const string SetScreenQualityHighTitle = "High"; public const string SetScreenQualityMediumTitle = "Medium"; public const string SetScreenQualityLowTitle = "Low"; public const string SelectLogonSessionMenuTitle = "Select Logon Session"; public const string ManageCredentialsMenuTitle = "Manage Credentials"; public const string ManageCredentialsPromptForStorageTitle = "Store"; public const string ManageCredentialsClearCredentialsTitle = "Clear"; public const string ManageCredentialsSendToScreenTitle = "Send"; public const string BlockGuestInputTitle = "Block Guest Input"; public const string UnblockGuestInputTitle = "Unblock Guest Input"; public const string BlankGuestMonitorTitle = "Blank Guest Monitor"; public const string UnblankGuestMonitorTitle = "Unblank Guest Monitor"; public const string AcquireWakeLockTitle = "Acquire Wake Lock"; public const string ReleaseWakeLockTitle = "Release Wake Lock"; public const string MouseActionMenuTitle = "Mouse Action Menu"; public const string MouseActionMenuPerformSingleLeftClickHereTitle = "Perform Single Left Click Here"; public const string MouseActionMenuPerformDoubleLeftClickHereTitle = "Perform Double Left Click Here"; public const string MouseActionMenuPerformSingleRightClickHereTitle = "Perform Single Right Click Here"; public const int MouseButtonMask = 7340032; public const int MouseButtonLeft = 1048576; public const int MouseButtonMiddle = 4194304; public const int MouseButtonRight = 2097152; public const string ToolboxMenuTitle = "Toolbox"; public const string ToolboxMenuTitleSeparator = " - "; public const long MaxFileSize = 5368709120L; public const int UnixExecuteBit = 1; public const int UnixWriteBit = 2; public const int UnixReadBit = 4; public const int UnixDirectoryBit = 16384; public const int UnixRegularFileBit = 32768; public const int UnixSymbolicLinkBits = 40960; public const int UnixReadBits = 4; public const int UnixReadWriteBits = 6; public const int UnixExecuteReadWriteBits = 7; public const int UnixExecuteReadBits = 5; public const int UnixOthersShift = 0; public const int UnixGroupShift = 3; public const int UnixOwnersShift = 6; public const int UnixPermissions777 = 511; public const int UnixPermissions755 = 493; public const int UnixPermissions644 = 420; public const int UnixPermissions600 = 384; public const int UnixModeFile777 = 33279; public const int UnixModeFile755 = 33261; public const int UnixModeFile644 = 33188; public const int UnixModeFile600 = 33152; public const int UnixModeDirectory777 = 16895; public const int UnixModeDirectory755 = 16877; public const int UnixModeSymlink777 = 41471; public const string FileExtensionToolboxApp = ".scapp"; public const int AudioChannels = 1; public const int AudioSampleRate = 11025; public const int AudioBitsPerSample = 8; public const string FeedbackUrl = "https://feedback.screenconnect.com/Feedback.axd"; public const string UserConfigFileName = "user.config"; public const string AppConfigFileName = "app.config"; public const string SystemConfigFileName = "system.config"; public const string FileExtensionConfig = ".config"; public static readonly string[] OrderedConfigFileNames = new string[3] { "user.config", "app.config", "system.config" }; public const string JavaApplicationConfigurationSettingsAttachmentName = "UserInterfaceAndSystemConfiguration.properties"; public const string RegistryServiceKeyImagePathName = "ImagePath"; public const string LowerLetters = "abcdefghijklmnopqrstuvwxyz"; public const string DecimalDigits = "0123456789"; public const int BackstageLogonSessionID = 0; public const string ConsoleSessionName = "Console"; public static readonly Guid CredentialProviderBaseClassID = new Guid(1878366853u, 48183, 19668, 0, 0, 0, 0, 0, 0, 0, 0); public const string ObsoleteUseAsync = "Async version exists; use it"; public static readonly bool IsPreRelease = false; public static readonly DateTime Epoch1970 = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc); public const int UnhandledExceptionEventID = 1; public const int ConnectionErrorEventID = 20; public const int SessionInvalidEventID = 30; public const int ReceiveFilesErrorEventID = 40; public const int ParticipantConnectedEventID = 100; public const int ParticipantDisconnectedEventID = 101; public const int ExecutedCommandEventID = 200; public const int TransferredFilesEventID = 201; public const string FileExtensionExe = ".exe"; public const string FileExtensionMsi = ".msi"; public const string AssemblyInfoVersion = "25.6.9.9400"; }