Client Logon Proof

From ArcEmu-Wiki
Jump to: navigation, search
uint8   cmd;
uint8   A[32];
uint8   M1[20];
uint8   crc_hash[20];
uint8   number_of_keys;
uint8   unk;


clientlogonproofoyc44.jpg


Contents

Description

The client sends this message as a response to a positive Server_Logon_Challenge message. Basically the purpose of this message is to prove that the client has the same password as the server. This is done by calculating the M values on both sides.

Relevant formulas:

A = g^a
B = kv + g^b
u = H(A, B)
x = H(s, p)
S = (B - kg^x) ^ (a + ux)
K = H(S)
M = H(H(N) xor H(g), H(I), s, A, B, K)


NOTE:
Symbol Map

A is the client public value.
B is the server public value.
u is the so called "Random scrambling parameter".
x is the Private key.
S is the Session key.
K is the hashed session key, hashed with H hash function ( H is SHA1 in our case ).


Fields

cmd

Cmd is the command/operation code of the packet. Always 1 for this message.

A

The client SRP6 A value ( public client value ).

M1

The client's SRP6 M value.

crc_hash

I don't know what this is for, but it doesn't seem to be used in Arcemu.

number_of_keys

I don't know what this is for, but it doesn't seem to be used in Arcemu. It also seems to be always 0.

unk

Unknown.

Personal tools