SID AUTH INFO
Contents
Message Details
Protocol: BNCS
Message ID: 0x50
Name: SID_AUTH_INFO
Used By
- StarCraft / Broodwar
- Diablo II / Lord of Destruction
- WarCraft III / The Frozen Throne
Format
Client -> Server
(UINT32) Protocol ID (always 0)
(UINT32) Platform code ('IX86', 'XMAC', 'PMAC')
(UINT32) Product code ('STAR', 'D2DV', etc)
(UINT32) Version byte
(UINT32) Language code ('enUS', 'deDE', 'frFR', etc - use 0 for default)
(UINT32) Local IP (network byte order, can safely be set to 0)
(UINT32) Time zone bias
(UINT32) MPQ locale ID (can safely be set to 0)
(UINT32) Language ID (can safely be set to 0)
(STRING) Country abbreviation (3 characters)
(STRING) Country name
Server -> Client
(UINT32) Logon type (UINT32) Server token (UINT32) UDP value (FILETIME) CheckRevision MPQ filetime (STRING) CheckRevision MPQ filename (STRING) CheckRevision formula WAR3/W3XP Only: (VOID) 128-byte server signature
Remarks
Supported products
This message and associated messages are supported for any product code, regardless of if the official client for that product uses them.
Language code
This value is used to determine the client's default home channel (eg. Diablo II En-1) as well as the language used for system messages sent to the user.
Time zone bias
The difference between UTC and local time, in minutes.
On Windows, this value can be retrieved using GetTimeZoneInformation().
MPQ locale ID
Specifies the language variation of an MPQ file to be used when available.
On Windows, this can be retrieved using GetUserDefaultLCID().
User language ID
On Windows, this can be retrieved using GetUserDefaultLangID().
Country name and abbreviation
On Windows, these values can be retrieved using GetLocalInfo() with LOCALE_SABBREVCTRYNAME and LOCALE_SENGLISHCOUNTRYNAME.
If you're unable to retrieve these values, they can safely be set to 'USA' and 'United States'.
Logon types
Indicates how the client should proceed with account logon.
- 0x00: Broken SHA-1 (used by STAR/SEXP, D2DV/D2XP)
- 0x01: NLS version 1 (used by WAR3 Beta)
- 0x02: NLS version 2 (used by WAR3/W3XP)
For Broken SHA-1, the SID_LOGONRESPONSE2 message should be used.
For NLS, the SID_AUTH_ACCOUNTLOGON message should be used.
The primary difference between NLSv1 and NLSv2 is the byte-order of the modulus used in calculations.
UDP value
It is unknown what this value really is, but it is used in the UDP_CONNTEST2 and MCP_STARTUP messages.
CheckRevision
These values are used for the CheckRevision process. Official clients will download and extract the given MPQ archive using BNFTP and then call the CheckRevision() function from the DLL file contained within. The formulas rarely change and can be safely emulated without needing to download and extract the DLL each time.
Server signature
This value is used to verify that the server is an official Battle.net server. For more information see Server signature verification.