BNETDocs
C>S 0x0B BNLS_HASHDATA
Message Id:0x0B
Message Name:BNLS_HASHDATA
Direction:Client to Server
Used By:Diablo II, Diablo II Lord of Destruction
Diablo Retail, Diablo Shareware
Starcraft Japanese, Starcraft Broodwar
Starcraft Shareware, Starcraft Original
Warcraft II BNE
Format:

(UINT32) Size of Data
(UINT32) Flags
(VOID) Data to be hashed

Optional*:
(UINT32) Client Key (Double Hash Only)
(UINT32) Server Key (Double Hash Only)
(UINT32) Cookie (Cookie Hash Only)

Remarks

This message will calculate the hash of the given data. The hashing algorithm used is the Battle.net standard hashing algorithm also known as "Broken SHA-1"

* For clarity, the optional fields come after the VOID and not before.

The flags may be zero, or any bitwise combination of the following flags:

0x01: Unused

This flag has no effect.

0x02: Double Hash

If this flag is present, the server will calculate a double hash. First it will calculate the hash of the data. Then it will prepend the client key and the server key to the resulting hash, and calculate the hash of the result. If this flag is present, the client key and server key UINT32s must be specified in the request after the data. This may be used to calculate password hashes for the "Old Logon System".

0x04: Cookie Hash

If this flag is present, a cookie UINT32 is specified in the request. This is an application-defined value that is echoed back to the client in the response.

| Edited:
Comments
mikeownage

Flags 0x00 is for a single hash request.