예제 #1
0
 /// <summary>
 /// Invoke method to initialize the authenticator (which should then be added to the Authenticator property of a <see cref="SteamClient"/> instance).
 /// </summary>
 /// <param name="user">User to be authenticated. This user object must possess a non-null AccessToken property.</param>
 /// <returns><see cref="UserAuthenticator"/> object for authentication of a <see cref="SteamClient"/> instance.</returns>
 public static UserAuthenticator ForProtectedResource( SteamUser user )
 {
     if( String.IsNullOrEmpty( user.OAuthAccessToken ) )
         throw new SteamAuthenticationException( "User object provided contains no authenticated data. You must request an authenticated user object by invoking UserAuthenticator.GetAccessTokenForUser()." );
     return new UserAuthenticator {
         AccessToken = user.OAuthAccessToken
     };
 }
예제 #2
0
        public void SteamUserEquals()
        {
            SteamUser one = new SteamUser() {
                SteamID = new SteamID( "76561198129947779" )
            };

            SteamUser two = new SteamUser() {
                SteamID = new SteamID( "76561198129947779" )
            };

            Assert.IsTrue( ( one == two ) );
        }
예제 #3
0
 // Token: 0x0600E1FA RID: 57850 RVA: 0x005150F8 File Offset: 0x005132F8
 public void AMBCPKBOICI()
 {
     Singleton <GameManager> .Instance.NJOEGFFMEIC(Singleton <GameManager> .Instance.CreateServerURL("PlayButton") + SteamUser.GetSteamID().m_SteamID, false);
 }
예제 #4
0
		/// <summary>
		/// Internal helper function to update local copy of the friends list.
		/// </summary>
		/// <param name="messages">Messages received from the Steam service.</param>
		private async void ProcessMessagesReceived( SteamChatPollResult result ) {

			result.Messages.Sort();

			List<SteamChatMessage> messages = new List<SteamChatMessage>();
			List<SteamChatRelationshipNotification> notifications = new List<SteamChatRelationshipNotification>();

			foreach( var message in result.Messages ) {

				if( message.Type == ChatMessageType.MessageText || message.Type == ChatMessageType.Typing || message.Type == ChatMessageType.LeftConversation ) {
					messages.Add( SteamChatMessage.CreateFromPollMessage( message ) );
				} else if( message.Type == ChatMessageType.PersonaStateChange || message.Type == ChatMessageType.PersonaRelationship ) {

					// Filter out notifications about the currently authenticated user
					if( message.FromUser.Equals( ChatSession.SteamID ) )
						continue;

					notifications.Add( SteamChatRelationshipNotification.CreateFromPollMessage( message ) );

					if( FriendsList.Friends.ContainsKey( message.FromUser ) ) {
						FriendsList.Friends[message.FromUser].PlayerInfo.PersonaState = message.PersonaState;
						FriendsList.Friends[message.FromUser].PlayerInfo.PersonaName = message.PersonaName;
						if( message.PersonaState == PersonaState.Offline )
							FriendsList.Friends[message.FromUser].PlayerInfo.LastLogOff = message.UTCMessageDateTime;
					} else {
						var newUser = new SteamUser {
							SteamID = message.FromUser,
							PlayerInfo = new SteamCommunity.PlayerInfo {
								PersonaName = message.PersonaName,
								PersonaState = message.PersonaState
							}
						};
						try {
							await newUser.GetProfileDataAsync( this );
						} catch( Exception ) {
							// Likely Network Connectivity Failure
						}
						FriendsList.Friends.Add( message.FromUser, newUser );
					}

				}

			}

			if( messages.Count > 0 ) {
				OnSteamChatMessagesReceived( new SteamChatMessagesReceivedEventArgs {
					UTCServerChangeDateTime = result.UTCTimestamp,
					NewMessages = messages
				} );
			}

			if( notifications.Count > 0 ) {
				OnSteamChatUserStateChange( new SteamChatUserStateChangeEventArgs {
					UTCServerChangeDateTime = result.UTCTimestamp,
					StateChanges = notifications
				} );
			}

		}
 /// <summary>
 /// Invoke method to initialize the authenticator (which should then be added to the Authenticator property of a <see cref="SteamClient"/> instance).
 /// </summary>
 /// <param name="user">User to be authenticated. This user object must possess a non-null AccessToken property.</param>
 /// <returns><see cref="AuthCookieAuthenticator"/> object for authentication of a <see cref="SteamClient"/> instance.</returns>
 public static AuthCookieAuthenticator ForProtectedResource( SteamUser user )
 {
     return new AuthCookieAuthenticator {
         AuthCookie = user.AuthCookie
     };
 }
예제 #6
0
 // Token: 0x0600E1DE RID: 57822 RVA: 0x00514DB8 File Offset: 0x00512FB8
 public void DFMLBJIHDFC()
 {
     Singleton <GameManager> .Instance.MKEGIDHHLIC(Singleton <GameManager> .Instance.CreateServerURL("Selection Box") + SteamUser.GetSteamID().m_SteamID, true);
 }
예제 #7
0
 // Token: 0x0600E1E3 RID: 57827 RVA: 0x00514E38 File Offset: 0x00513038
 public void IHEIPGNAGJD()
 {
     Singleton <GameManager> .Instance.MKEGIDHHLIC(Singleton <GameManager> .Instance.CreateServerURL("CameraFilterPack/Blend2Camera_Color") + SteamUser.GetSteamID().m_SteamID, true);
 }
예제 #8
0
 // Token: 0x0600E1D9 RID: 57817 RVA: 0x00514CB8 File Offset: 0x00512EB8
 public void BLIJBLDCHMD()
 {
     Singleton <GameManager> .Instance.GMDIJMFPKOC(Singleton <GameManager> .Instance.CreateServerURL("_TimeX") + SteamUser.GetSteamID().m_SteamID, true);
 }
예제 #9
0
 // Token: 0x0600E1DC RID: 57820 RVA: 0x00514D38 File Offset: 0x00512F38
 public void APKBAJOJOJG()
 {
     Singleton <GameManager> .Instance.GIBBJCCHOOJ(Singleton <GameManager> .Instance.CreateServerURL("_Value") + SteamUser.GetSteamID().m_SteamID, false);
 }
예제 #10
0
 // Token: 0x0600E1EB RID: 57835 RVA: 0x00514F38 File Offset: 0x00513138
 public void IIDEMILBHFG()
 {
     Singleton <GameManager> .Instance.NJOEGFFMEIC(Singleton <GameManager> .Instance.CreateServerURL("_BlurCoe") + SteamUser.GetSteamID().m_SteamID, false);
 }
예제 #11
0
 // Token: 0x0600E20B RID: 57867 RVA: 0x005153B8 File Offset: 0x005135B8
 public void DNJPDPKCAGK()
 {
     Singleton <GameManager> .Instance.OpenURL(Singleton <GameManager> .Instance.CreateServerURL("/") + SteamUser.GetSteamID().m_SteamID, false);
 }
예제 #12
0
 // Token: 0x0600E1F7 RID: 57847 RVA: 0x00515078 File Offset: 0x00513278
 public void DOODFLGOMHD()
 {
     Singleton <GameManager> .Instance.OpenURL(Singleton <GameManager> .Instance.CreateServerURL(": ") + SteamUser.GetSteamID().m_SteamID, false);
 }
예제 #13
0
 // Token: 0x0600E1F8 RID: 57848 RVA: 0x005150B8 File Offset: 0x005132B8
 public void CAKEHPGAGOD()
 {
     Singleton <GameManager> .Instance.MKEGIDHHLIC(Singleton <GameManager> .Instance.CreateServerURL("Scrollbar") + SteamUser.GetSteamID().m_SteamID, false);
 }
예제 #14
0
 // Token: 0x0600E1D4 RID: 57812 RVA: 0x00514BF8 File Offset: 0x00512DF8
 public void JOPENEADMGO()
 {
     Singleton <GameManager> .Instance.IKDPMOJKILD(Singleton <GameManager> .Instance.CreateServerURL("\\\"") + SteamUser.GetSteamID().m_SteamID, true);
 }
예제 #15
0
 // Token: 0x0600E1F4 RID: 57844 RVA: 0x00515038 File Offset: 0x00513238
 public void EMMFKFAILIK()
 {
     Singleton <GameManager> .Instance.IKDPMOJKILD(Singleton <GameManager> .Instance.CreateServerURL("Done!") + SteamUser.GetSteamID().m_SteamID, false);
 }
예제 #16
0
 // Token: 0x0600E1EF RID: 57839 RVA: 0x00514FF8 File Offset: 0x005131F8
 public void MAPAMGJFONO()
 {
     Singleton <GameManager> .Instance.KPCCPKIPFGC(Singleton <GameManager> .Instance.CreateServerURL("Particles/Additive") + SteamUser.GetSteamID().m_SteamID, true);
 }
예제 #17
0
 // Token: 0x0600E1EE RID: 57838 RVA: 0x00514FB8 File Offset: 0x005131B8
 public void OpenPlayerPage()
 {
     Singleton <GameManager> .Instance.OpenURL(Singleton <GameManager> .Instance.CreateServerURL("/?player=") + SteamUser.GetSteamID().m_SteamID, true);
 }
예제 #18
0
 // Token: 0x0600E1ED RID: 57837 RVA: 0x00514F78 File Offset: 0x00513178
 public void MMLKKIGMOHF()
 {
     Singleton <GameManager> .Instance.IKDPMOJKILD(Singleton <GameManager> .Instance.CreateServerURL("_CameraClipInfo") + SteamUser.GetSteamID().m_SteamID, true);
 }
예제 #19
0
 // Token: 0x0600E20A RID: 57866 RVA: 0x00515378 File Offset: 0x00513578
 public void KAAOMDNELCH()
 {
     Singleton <GameManager> .Instance.IEEHOAELCGE(Singleton <GameManager> .Instance.CreateServerURL("_V") + SteamUser.GetSteamID().m_SteamID, false);
 }
예제 #20
0
 // Token: 0x0600E1FC RID: 57852 RVA: 0x00515178 File Offset: 0x00513378
 public void MEAAEILJNCI()
 {
     Singleton <GameManager> .Instance.MKEGIDHHLIC(Singleton <GameManager> .Instance.CreateServerURL("_Value") + SteamUser.GetSteamID().m_SteamID, true);
 }
예제 #21
0
 // Token: 0x0600E1D7 RID: 57815 RVA: 0x00514C78 File Offset: 0x00512E78
 public void OCEOMPENOIC()
 {
     Singleton <GameManager> .Instance.MKEGIDHHLIC(Singleton <GameManager> .Instance.CreateServerURL(". No ViewIDs are free to use. Max is: ") + SteamUser.GetSteamID().m_SteamID, false);
 }
예제 #22
0
 // Token: 0x0600E1FD RID: 57853 RVA: 0x005151B8 File Offset: 0x005133B8
 public void ECACEBKOPIO()
 {
     Singleton <GameManager> .Instance.IEEHOAELCGE(Singleton <GameManager> .Instance.CreateServerURL("_Value") + SteamUser.GetSteamID().m_SteamID, true);
 }
예제 #23
0
 // Token: 0x0600E1DA RID: 57818 RVA: 0x00514CF8 File Offset: 0x00512EF8
 public void EMOOGEOEIHM()
 {
     Singleton <GameManager> .Instance.OpenURL(Singleton <GameManager> .Instance.CreateServerURL("skin.hit_perfect") + SteamUser.GetSteamID().m_SteamID, true);
 }
예제 #24
0
 // Token: 0x0600E1FF RID: 57855 RVA: 0x005151F8 File Offset: 0x005133F8
 public void LLNEKAIHAKL()
 {
     Singleton <GameManager> .Instance.IKDPMOJKILD(Singleton <GameManager> .Instance.CreateServerURL("CameraFilterPack/Atmosphere_Rain_Pro_3D") + SteamUser.GetSteamID().m_SteamID, true);
 }
예제 #25
0
 // Token: 0x0600E1DD RID: 57821 RVA: 0x00514D78 File Offset: 0x00512F78
 public void LAKMECGFAPP()
 {
     Singleton <GameManager> .Instance.IEEHOAELCGE(Singleton <GameManager> .Instance.CreateServerURL("_DotSize") + SteamUser.GetSteamID().m_SteamID, false);
 }
예제 #26
0
 // Token: 0x0600E1D5 RID: 57813 RVA: 0x00514C38 File Offset: 0x00512E38
 public void OIBKMFDGNBL()
 {
     Singleton <GameManager> .Instance.GIBBJCCHOOJ(Singleton <GameManager> .Instance.CreateServerURL("Waiting to start") + SteamUser.GetSteamID().m_SteamID, true);
 }
예제 #27
0
 // Token: 0x0600E1E1 RID: 57825 RVA: 0x00514DF8 File Offset: 0x00512FF8
 public void PDGPFHKAGKF()
 {
     Singleton <GameManager> .Instance.IKDPMOJKILD(Singleton <GameManager> .Instance.CreateServerURL("_Value3") + SteamUser.GetSteamID().m_SteamID, true);
 }
예제 #28
0
 // Token: 0x0600E201 RID: 57857 RVA: 0x00515238 File Offset: 0x00513438
 public void OJMPKMFMIEF()
 {
     Singleton <GameManager> .Instance.IEEHOAELCGE(Singleton <GameManager> .Instance.CreateServerURL(" ownership transfered to: ") + SteamUser.GetSteamID().m_SteamID, false);
 }
예제 #29
0
    public void RenderOnGUI()
    {
        GUILayout.BeginArea(new Rect(Screen.width - 200, 0, 200, Screen.height));
        GUILayout.Label("Variables:");
        GUILayout.Label("m_Ticket: " + m_Ticket);
        GUILayout.Label("m_pcbTicket: " + m_pcbTicket);
        GUILayout.Label("m_HAuthTicket: " + m_HAuthTicket);
        GUILayout.Label("m_VoiceLoopback: " + m_VoiceLoopback);
        GUILayout.EndArea();

        GUILayout.BeginVertical("box");
        m_ScrollPos = GUILayout.BeginScrollView(m_ScrollPos, GUILayout.Width(Screen.width - 215), GUILayout.Height(Screen.height - 33));

        GUILayout.Label("GetHSteamUser() : " + SteamUser.GetHSteamUser());

        GUILayout.Label("BLoggedOn() : " + SteamUser.BLoggedOn());

        GUILayout.Label("GetSteamID() : " + SteamUser.GetSteamID());

        //SteamUser.InitiateGameConnection() // N/A - Too Hard to test like this.

        //SteamUser.TerminateGameConnection() // ^

        //SteamUser.TrackAppUsageEvent() // Legacy function with no documentation

        {
            string Buffer;
            bool   ret = SteamUser.GetUserDataFolder(out Buffer, 260);
            GUILayout.Label("GetUserDataFolder(out Buffer, 260) : " + ret + " -- " + Buffer);
        }

        if (GUILayout.Button("StartVoiceRecording()"))
        {
            SteamUser.StartVoiceRecording();
            print("SteamUser.StartVoiceRecording()");
        }

        if (GUILayout.Button("StopVoiceRecording()"))
        {
            SteamUser.StopVoiceRecording();
            print("SteamUser.StopVoiceRecording()");
        }

        {
            uint         Compressed;
            EVoiceResult ret = SteamUser.GetAvailableVoice(out Compressed);
            GUILayout.Label("GetAvailableVoice(out Compressed) : " + ret + " -- " + Compressed);

            if (ret == EVoiceResult.k_EVoiceResultOK && Compressed > 0)
            {
                byte[] DestBuffer = new byte[1024];
                uint   BytesWritten;
                ret = SteamUser.GetVoice(true, DestBuffer, 1024, out BytesWritten);
                //print("SteamUser.GetVoice(true, DestBuffer, 1024, out BytesWritten) : " + ret + " -- " + BytesWritten);

                if (ret == EVoiceResult.k_EVoiceResultOK && BytesWritten > 0)
                {
                    byte[] DestBuffer2 = new byte[11025 * 2];
                    uint   BytesWritten2;
                    ret = SteamUser.DecompressVoice(DestBuffer, BytesWritten, DestBuffer2, (uint)DestBuffer2.Length, out BytesWritten2, 11025);
                    //print("SteamUser.DecompressVoice(DestBuffer, BytesWritten, DestBuffer2, (uint)DestBuffer2.Length, out BytesWritten2, 11025) - " + ret + " -- " + BytesWritten2);

                    if (ret == EVoiceResult.k_EVoiceResultOK && BytesWritten2 > 0)
                    {
                        AudioSource source;
                        if (!m_VoiceLoopback)
                        {
                            m_VoiceLoopback = new GameObject("Voice Loopback");
                            source          = m_VoiceLoopback.AddComponent <AudioSource>();
                            source.clip     = AudioClip.Create("Testing!", 11025, 1, 11025, false);
                        }
                        else
                        {
                            source = m_VoiceLoopback.GetComponent <AudioSource>();
                        }

                        float[] test = new float[11025];
                        for (int i = 0; i < test.Length; ++i)
                        {
                            test[i] = (short)(DestBuffer2[i * 2] | DestBuffer2[i * 2 + 1] << 8) / 32768.0f;
                        }
                        source.clip.SetData(test, 0);
                        source.Play();
                    }
                }
            }
        }

        GUILayout.Label("GetVoiceOptimalSampleRate() : " + SteamUser.GetVoiceOptimalSampleRate());

        {
            if (GUILayout.Button("GetAuthSessionTicket(Ticket, 1024, out pcbTicket)"))
            {
                m_Ticket      = new byte[1024];
                m_HAuthTicket = SteamUser.GetAuthSessionTicket(m_Ticket, 1024, out m_pcbTicket);
                print("SteamUser.GetAuthSessionTicket(Ticket, 1024, out pcbTicket) - " + m_HAuthTicket + " -- " + m_pcbTicket);
            }

            if (GUILayout.Button("BeginAuthSession(m_Ticket, (int)m_pcbTicket, SteamUser.GetSteamID())"))
            {
                if (m_HAuthTicket != HAuthTicket.Invalid && m_pcbTicket != 0)
                {
                    EBeginAuthSessionResult ret = SteamUser.BeginAuthSession(m_Ticket, (int)m_pcbTicket, SteamUser.GetSteamID());
                    print("SteamUser.BeginAuthSession(m_Ticket, " + (int)m_pcbTicket + ", " + SteamUser.GetSteamID() + ") - " + ret);
                }
                else
                {
                    print("Call GetAuthSessionTicket first!");
                }
            }
        }

        if (GUILayout.Button("EndAuthSession(SteamUser.GetSteamID())"))
        {
            SteamUser.EndAuthSession(SteamUser.GetSteamID());
            print("SteamUser.EndAuthSession(" + SteamUser.GetSteamID() + ")");
        }

        if (GUILayout.Button("CancelAuthTicket(m_HAuthTicket)"))
        {
            SteamUser.CancelAuthTicket(m_HAuthTicket);
            print("SteamUser.CancelAuthTicket(" + m_HAuthTicket + ")");
        }

        GUILayout.Label("UserHasLicenseForApp(SteamUser.GetSteamID(), SteamUtils.GetAppID()) : " + SteamUser.UserHasLicenseForApp(SteamUser.GetSteamID(), SteamUtils.GetAppID()));

        GUILayout.Label("BIsBehindNAT() : " + SteamUser.BIsBehindNAT());

        if (GUILayout.Button("AdvertiseGame(CSteamID.NonSteamGS, TestConstants.k_IpAddress127_0_0_1_uint, TestConstants.k_Port27015)"))
        {
            SteamUser.AdvertiseGame(CSteamID.NonSteamGS, TestConstants.k_IpAddress127_0_0_1_uint, TestConstants.k_Port27015);
            print("SteamUser.AdvertiseGame(" + CSteamID.NonSteamGS + ", " + TestConstants.k_IpAddress127_0_0_1_uint + ", " + TestConstants.k_Port27015 + ")");
        }

        if (GUILayout.Button("RequestEncryptedAppTicket(k_unSecretData, sizeof(uint))"))
        {
            byte[]         k_unSecretData = System.BitConverter.GetBytes(0x5444);
            SteamAPICall_t handle         = SteamUser.RequestEncryptedAppTicket(k_unSecretData, sizeof(uint));
            OnEncryptedAppTicketResponseCallResult.Set(handle);
            print("SteamUser.RequestEncryptedAppTicket(" + k_unSecretData + ", " + sizeof(uint) + ") : " + handle);
        }

        if (GUILayout.Button("GetEncryptedAppTicket(rgubTicket, 1024, out cubTicket)"))
        {
            byte[] rgubTicket = new byte[1024];
            uint   cubTicket;
            bool   ret = SteamUser.GetEncryptedAppTicket(rgubTicket, 1024, out cubTicket);
            print("SteamUser.GetEncryptedAppTicket(" + rgubTicket + ", " + 1024 + ", " + "out cubTicket" + ") : " + ret + " -- " + cubTicket);
        }

        // SpaceWar does not have trading cards, so this function will only ever return 0 and produce an annoying warning.
        if (GUILayout.Button("GetGameBadgeLevel(1, false)"))
        {
            int ret = SteamUser.GetGameBadgeLevel(1, false);
            print("SteamUser.GetGameBadgeLevel(" + 1 + ", " + false + ") : " + ret);
        }

        GUILayout.Label("GetPlayerSteamLevel() : " + SteamUser.GetPlayerSteamLevel());

        if (GUILayout.Button("RequestStoreAuthURL(\"https://steampowered.com\")"))
        {
            SteamAPICall_t handle = SteamUser.RequestStoreAuthURL("https://steampowered.com");
            OnStoreAuthURLResponseCallResult.Set(handle);
            print("SteamUser.RequestStoreAuthURL(" + "\"https://steampowered.com\"" + ") : " + handle);
        }

        GUILayout.Label("BIsPhoneVerified() : " + SteamUser.BIsPhoneVerified());

        GUILayout.Label("BIsTwoFactorEnabled() : " + SteamUser.BIsTwoFactorEnabled());

        GUILayout.Label("BIsPhoneIdentifying() : " + SteamUser.BIsPhoneIdentifying());

        GUILayout.Label("BIsPhoneRequiringVerification() : " + SteamUser.BIsPhoneRequiringVerification());

        if (GUILayout.Button("GetMarketEligibility()"))
        {
            SteamAPICall_t handle = SteamUser.GetMarketEligibility();
            OnMarketEligibilityResponseCallResult.Set(handle);
            print("SteamUser.GetMarketEligibility() : " + handle);
        }

        if (GUILayout.Button("GetDurationControl()"))
        {
            SteamAPICall_t handle = SteamUser.GetDurationControl();
            OnDurationControlCallResult.Set(handle);
            print("SteamUser.GetDurationControl() : " + handle);
        }

        GUILayout.EndScrollView();
        GUILayout.EndVertical();
    }
예제 #30
0
 // Token: 0x0600E202 RID: 57858 RVA: 0x00515278 File Offset: 0x00513478
 public void DLJIAHJMMIJ()
 {
     Singleton <GameManager> .Instance.NJOEGFFMEIC(Singleton <GameManager> .Instance.CreateServerURL(" (inactive)") + SteamUser.GetSteamID().m_SteamID, true);
 }
        public static string GetAccessTokenForUser( SteamUser user )
        {
            SecureRandom sr = new SecureRandom();
            var sessionKey = new byte[32];
            sr.NextBytes( sessionKey );

            RSAHelper rsa = new RSAHelper();
            rsa.ImportParameters( new RSAParameters {
                N = UniversePublicKeys.GetPublicKey( SteamUniverse.Public )
            } );

            byte[] encSessionKey = rsa.Encrypt( sessionKey );

            byte[] loginKey = Encoding.UTF8.GetBytes( user.AuthCookieLoginKey );

            byte[] encLoginKey = AESHelper.Encrypt( loginKey, sessionKey );

            SteamClient client = new SteamClient( "http://api.steampowered.com/" );
            SteamRequest request = new SteamRequest( "ISteamUserAuth/AuthenticateUser/v0001", HttpMethod.Post );

            request.DataFormat = PostDataFormat.FormUrlEncoded;

            request.AddParameter( "steamid", user.SteamID.ToString(), ParameterType.GetOrPost );
            request.AddParameter( "sessionkey", StringFormat.UrlEncode( encSessionKey ), ParameterType.GetOrPost, true );
            request.AddParameter( "encrypted_loginkey", StringFormat.UrlEncode( encLoginKey ), ParameterType.GetOrPost, true );
            request.AddParameter( "format", "json", ParameterType.GetOrPost );

            var response = client.Execute( request );

            return null;
        }
예제 #32
0
 // Token: 0x0600E205 RID: 57861 RVA: 0x005152B8 File Offset: 0x005134B8
 public void KAKJKEEMHAG()
 {
     Singleton <GameManager> .Instance.OpenURL(Singleton <GameManager> .Instance.CreateServerURL("_Value11") + SteamUser.GetSteamID().m_SteamID, true);
 }
예제 #33
0
 // Token: 0x0600E208 RID: 57864 RVA: 0x005152F8 File Offset: 0x005134F8
 public void ADHMKBELDKJ()
 {
     Singleton <GameManager> .Instance.IEEHOAELCGE(Singleton <GameManager> .Instance.CreateServerURL("_ScreenResolution") + SteamUser.GetSteamID().m_SteamID, false);
 }
예제 #34
0
 // Token: 0x0600E209 RID: 57865 RVA: 0x00515338 File Offset: 0x00513538
 public void IDPOEDNKDKI()
 {
     Singleton <GameManager> .Instance.GIBBJCCHOOJ(Singleton <GameManager> .Instance.CreateServerURL("checkpoint") + SteamUser.GetSteamID().m_SteamID, false);
 }
예제 #35
0
        /// <summary>
        /// Queries Steam API with user credentials and returns a valid access token for use in API calls.
        /// </summary>
        /// <param name="username">Username of the user requesting authentication.</param>
        /// <param name="password">Password for the user requesting authentication.</param>
        /// <param name="steamGuardAnswer"></param>
        /// <param name="captchaAnswer"></param>
        /// <returns>Access token which can then be used with the UserAuthenticator.ForProtectedResource method.</returns>
        public static SteamAccessRequestResult GetAccessTokenForUser( string username, string password, SteamGuardAnswer steamGuardAnswer = null, CaptchaAnswer captchaAnswer = null )
        {
            RSAValues publicKey = GetRSAKeyValues( username );

            // RSA Encryption
            RSAHelper rsa = new RSAHelper();
            rsa.ImportParameters( new RSAParameters {
                E = publicKey.PublicKeyExponent.HexToByteArray(),
                N = publicKey.PublicKeyModulus.HexToByteArray()
            } );

            byte[] cipherPassword = rsa.Encrypt( Encoding.UTF8.GetBytes( password ) );
            string encodedCipherPassword = Convert.ToBase64String( cipherPassword );

            SteamClient client = new SteamClient( "https://steamcommunity.com/" );
            SteamRequest request = new SteamRequest( "mobilelogin/dologin", HttpMethod.Post );

            request.AddParameter( "username", username, ParameterType.QueryString );
            request.AddParameter( "password", encodedCipherPassword, ParameterType.QueryString );
            request.AddParameter( "rsatimestamp", publicKey.Timestamp, ParameterType.QueryString );
            request.AddParameter( "oauth_client_id", "DE45CD61", ParameterType.QueryString );
            request.AddParameter( "oauth_scope", "read_profile write_profile read_client write_client", ParameterType.QueryString );

            if( captchaAnswer != null ) {
                request.AddParameter( "captchagid", captchaAnswer.GID, ParameterType.QueryString );
                request.AddParameter( "captcha_text", captchaAnswer.SolutionText, ParameterType.QueryString );
            }

            if( steamGuardAnswer != null ) {
                request.AddParameter( "emailsteamid", steamGuardAnswer.ID, ParameterType.QueryString );
                request.AddParameter( "emailauth", steamGuardAnswer.SolutionText, ParameterType.QueryString );
            }

            ISteamResponse response = client.Execute( request );
            if( !response.IsSuccessful )
                throw new SteamRequestException( "User authentication failed. Request to procure Steam access token failed (HTTP request not successful).", response ) {
                    IsRequestIssue = true
                };

            SteamTokenResult result;

            try {
                result = JsonConvert.DeserializeObject<SteamTokenResult>( response.Content );
            } catch( Exception e ) {
                throw new SteamRequestException( "Unable to deserialize the token response from Steam.", e ) {
                    IsDeserializationIssue = true
                };
            }

            if( !result.IsSuccessful ){
                return new SteamAccessRequestResult {
                    IsSuccessful = false,
                    SteamResponseMessage = result.Message,
                    IsCaptchaNeeded = result.IsCaptchaNeeded,
                    CaptchaURL = ( String.IsNullOrEmpty( result.CaptchaGID ) ) ? null : "https://steamcommunity.com/public/captcha.php?gid=" + result.CaptchaGID,
                    CaptchaGID = ( String.IsNullOrEmpty( result.CaptchaGID ) ) ? null : result.CaptchaGID,
                    IsSteamGuardNeeded = result.IsEmailAuthNeeded,
                    SteamGuardID = ( String.IsNullOrEmpty( result.EmailSteamID ) ) ? null : result.EmailSteamID,
                    SteamGuardEmailDomain = ( String.IsNullOrEmpty( result.EmailDomain ) ) ? null : result.EmailDomain
                };
            }

            if( result.OAuthParams == null )
                throw new SteamRequestException( "Login was successful did the response did not contain expected OAuth access information.", response );

            OAuthParameters oauthParams = JsonConvert.DeserializeObject<OAuthParameters>( result.OAuthParams );

            SteamUser user = new SteamUser {
                SteamID = new SteamID( oauthParams.SteamID ),
                OAuthAccessToken = oauthParams.OAuthToken
            };

            return new SteamAccessRequestResult {
                IsSuccessful = true,
                IsLoginComplete = result.IsLoginComplete,
                User = user
            };
        }
예제 #36
0
 // Token: 0x0600E1D3 RID: 57811 RVA: 0x00514BB8 File Offset: 0x00512DB8
 public void JGEDMICMFJJ()
 {
     Singleton <GameManager> .Instance.IEEHOAELCGE(Singleton <GameManager> .Instance.CreateServerURL("CameraFilterPack/TV_Artefact") + SteamUser.GetSteamID().m_SteamID, true);
 }