iw4x-client/src/Steam/Interfaces/SteamUser.cpp

129 lines
2.7 KiB
C++
Raw Normal View History

#include "STDInclude.hpp"
2015-12-23 08:45:53 -05:00
namespace Steam
{
2016-02-22 07:37:13 -05:00
::Utils::Cryptography::Token User::GuidToken;
2016-02-21 13:57:56 -05:00
::Utils::Cryptography::ECDSA::Key User::GuidKey;
2015-12-23 08:45:53 -05:00
int User::GetHSteamUser()
{
return NULL;
}
bool User::LoggedOn()
{
return true;
}
SteamID User::GetSteamID()
{
2016-01-12 08:42:04 -05:00
static unsigned int subId = 0;
2015-12-25 15:42:35 -05:00
SteamID id;
2015-12-25 15:42:35 -05:00
if (!subId)
{
2015-12-27 14:16:01 -05:00
if (Components::Dedicated::IsDedicated()) // Dedi guid
2015-12-27 14:05:43 -05:00
{
2016-01-12 08:42:04 -05:00
subId = ~0xDED1CA7E;
2015-12-27 14:05:43 -05:00
}
2015-12-27 14:16:01 -05:00
else if (Components::Singleton::IsFirstInstance()) // Hardware guid
2015-12-27 14:05:43 -05:00
{
2016-02-21 13:57:56 -05:00
if (!User::GuidKey.IsValid())
{
2016-02-22 07:37:13 -05:00
Proto::Auth::Certificate cert;
if (cert.ParseFromString(::Utils::ReadFile("players/guid.dat")))
{
User::GuidKey.Import(cert.privatekey(), PK_PRIVATE);
User::GuidToken = cert.token();
}
2016-02-21 13:57:56 -05:00
if (!User::GuidKey.IsValid())
{
2016-02-22 07:37:13 -05:00
User::GuidToken.Clear();
2016-02-21 13:57:56 -05:00
User::GuidKey = ::Utils::Cryptography::ECDSA::GenerateKey(512);
2016-02-22 07:37:13 -05:00
cert.set_token(User::GuidToken.ToString());
cert.set_privatekey(User::GuidKey.Export(PK_PRIVATE));
::Utils::WriteFile("players/guid.dat", cert.SerializeAsString());
2016-02-21 13:57:56 -05:00
}
}
2016-02-21 13:57:56 -05:00
std::string publicKey = User::GuidKey.GetPublicKey();
subId = ::Utils::OneAtATime(publicKey.data(), publicKey.size());
2015-12-27 14:05:43 -05:00
}
2015-12-27 14:16:01 -05:00
else // Random guid
2015-12-27 14:05:43 -05:00
{
subId = (Game::Com_Milliseconds() + timeGetTime());
}
2016-01-12 08:38:33 -05:00
subId &= ~0x80000000; // Ensure it's positive
2015-12-25 15:42:35 -05:00
}
2015-12-27 08:05:08 -05:00
id.Bits = 0x110000100000000 | subId;
2015-12-23 08:45:53 -05:00
return id;
}
int User::InitiateGameConnection(void *pAuthBlob, int cbMaxAuthBlob, SteamID steamIDGameServer, unsigned int unIPServer, unsigned short usPortServer, bool bSecure)
{
2016-02-21 13:57:56 -05:00
Components::Logger::Print("%s\n", __FUNCTION__);
2015-12-23 08:45:53 -05:00
return 0;
}
void User::TerminateGameConnection(unsigned int unIPServer, unsigned short usPortServer)
{
}
void User::TrackAppUsageEvent(SteamID gameID, int eAppUsageEvent, const char *pchExtraInfo)
{
}
bool User::GetUserDataFolder(char *pchBuffer, int cubBuffer)
{
return false;
}
void User::StartVoiceRecording()
{
}
void User::StopVoiceRecording()
{
}
int User::GetCompressedVoice(void *pDestBuffer, unsigned int cbDestBufferSize, unsigned int *nBytesWritten)
{
return 0;
}
int User::DecompressVoice(void *pCompressed, unsigned int cbCompressed, void *pDestBuffer, unsigned int cbDestBufferSize, unsigned int *nBytesWritten)
{
return 0;
}
unsigned int User::GetAuthSessionTicket(void *pTicket, int cbMaxTicket, unsigned int *pcbTicket)
{
return 0;
}
int User::BeginAuthSession(const void *pAuthTicket, int cbAuthTicket, SteamID steamID)
{
return 0;
}
void User::EndAuthSession(SteamID steamID)
{
}
void User::CancelAuthTicket(unsigned int hAuthTicket)
{
}
unsigned int User::UserHasLicenseForApp(SteamID steamID, unsigned int appID)
{
return 1;
}
}