159 |
licence_generate_keys(null_data, server_random, null_data); |
licence_generate_keys(null_data, server_random, null_data); |
160 |
|
|
161 |
licence_size = load_licence(&licence_data); |
licence_size = load_licence(&licence_data); |
162 |
if (licence_size != -1) |
if (licence_size > 0) |
163 |
{ |
{ |
164 |
/* Generate a signature for the HWID buffer */ |
/* Generate a signature for the HWID buffer */ |
165 |
licence_generate_hwid(hwid); |
licence_generate_hwid(hwid); |
265 |
RC4_KEY crypt_key; |
RC4_KEY crypt_key; |
266 |
uint32 length; |
uint32 length; |
267 |
uint16 check; |
uint16 check; |
268 |
|
int i; |
269 |
|
|
270 |
in_uint8s(s, 2); /* 3d 45 - unknown */ |
in_uint8s(s, 2); /* 3d 45 - unknown */ |
271 |
in_uint16_le(s, length); |
in_uint16_le(s, length); |
280 |
return; |
return; |
281 |
|
|
282 |
licence_issued = True; |
licence_issued = True; |
283 |
save_licence(s->p, length - 2); |
|
284 |
|
in_uint8s(s, 2); /* pad */ |
285 |
|
|
286 |
|
/* advance to fourth string */ |
287 |
|
length = 0; |
288 |
|
for (i = 0; i < 4; i++) |
289 |
|
{ |
290 |
|
in_uint8s(s, length); |
291 |
|
in_uint32_le(s, length); |
292 |
|
if (!s_check_rem(s, length)) |
293 |
|
return; |
294 |
|
} |
295 |
|
|
296 |
|
licence_issued = True; |
297 |
|
save_licence(s->p, length); |
298 |
} |
} |
299 |
|
|
300 |
/* Process a licence packet */ |
/* Process a licence packet */ |