adding g_ prefix to global vars, licence.c done
git-svn-id: svn://svn.code.sf.net/p/rdesktop/code/trunk/rdesktop@379 423420c4-83ab-492f-b58f-81f9feb106b5
This commit is contained in:
parent
151fd27b4a
commit
599062c6a0
26
licence.c
26
licence.c
@ -29,10 +29,10 @@
|
|||||||
extern char username[16];
|
extern char username[16];
|
||||||
extern char hostname[16];
|
extern char hostname[16];
|
||||||
|
|
||||||
static uint8 licence_key[16];
|
static uint8 g_licence_key[16];
|
||||||
static uint8 licence_sign_key[16];
|
static uint8 g_licence_sign_key[16];
|
||||||
|
|
||||||
BOOL licence_issued = False;
|
BOOL g_licence_issued = False;
|
||||||
|
|
||||||
/* Generate a session key and RC4 keys, given client and server randoms */
|
/* Generate a session key and RC4 keys, given client and server randoms */
|
||||||
static void
|
static void
|
||||||
@ -46,10 +46,10 @@ licence_generate_keys(uint8 * client_key, uint8 * server_key, uint8 * client_rsa
|
|||||||
sec_hash_48(session_key, temp_hash, server_key, client_key, 65);
|
sec_hash_48(session_key, temp_hash, server_key, client_key, 65);
|
||||||
|
|
||||||
/* Store first 16 bytes of session key, for generating signatures */
|
/* Store first 16 bytes of session key, for generating signatures */
|
||||||
memcpy(licence_sign_key, session_key, 16);
|
memcpy(g_licence_sign_key, session_key, 16);
|
||||||
|
|
||||||
/* Generate RC4 key */
|
/* Generate RC4 key */
|
||||||
sec_hash_16(licence_key, &session_key[16], client_key, server_key);
|
sec_hash_16(g_licence_key, &session_key[16], client_key, server_key);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -163,10 +163,10 @@ licence_process_demand(STREAM s)
|
|||||||
{
|
{
|
||||||
/* Generate a signature for the HWID buffer */
|
/* Generate a signature for the HWID buffer */
|
||||||
licence_generate_hwid(hwid);
|
licence_generate_hwid(hwid);
|
||||||
sec_sign(signature, 16, licence_sign_key, 16, hwid, sizeof(hwid));
|
sec_sign(signature, 16, g_licence_sign_key, 16, hwid, sizeof(hwid));
|
||||||
|
|
||||||
/* Now encrypt the HWID */
|
/* Now encrypt the HWID */
|
||||||
RC4_set_key(&crypt_key, 16, licence_key);
|
RC4_set_key(&crypt_key, 16, g_licence_key);
|
||||||
RC4(&crypt_key, sizeof(hwid), hwid, hwid);
|
RC4(&crypt_key, sizeof(hwid), hwid, hwid);
|
||||||
|
|
||||||
licence_present(null_data, null_data, licence_data, licence_size, hwid, signature);
|
licence_present(null_data, null_data, licence_data, licence_size, hwid, signature);
|
||||||
@ -242,17 +242,17 @@ licence_process_authreq(STREAM s)
|
|||||||
memcpy(out_token, in_token, LICENCE_TOKEN_SIZE);
|
memcpy(out_token, in_token, LICENCE_TOKEN_SIZE);
|
||||||
|
|
||||||
/* Decrypt the token. It should read TEST in Unicode. */
|
/* Decrypt the token. It should read TEST in Unicode. */
|
||||||
RC4_set_key(&crypt_key, 16, licence_key);
|
RC4_set_key(&crypt_key, 16, g_licence_key);
|
||||||
RC4(&crypt_key, LICENCE_TOKEN_SIZE, in_token, decrypt_token);
|
RC4(&crypt_key, LICENCE_TOKEN_SIZE, in_token, decrypt_token);
|
||||||
|
|
||||||
/* Generate a signature for a buffer of token and HWID */
|
/* Generate a signature for a buffer of token and HWID */
|
||||||
licence_generate_hwid(hwid);
|
licence_generate_hwid(hwid);
|
||||||
memcpy(sealed_buffer, decrypt_token, LICENCE_TOKEN_SIZE);
|
memcpy(sealed_buffer, decrypt_token, LICENCE_TOKEN_SIZE);
|
||||||
memcpy(sealed_buffer + LICENCE_TOKEN_SIZE, hwid, LICENCE_HWID_SIZE);
|
memcpy(sealed_buffer + LICENCE_TOKEN_SIZE, hwid, LICENCE_HWID_SIZE);
|
||||||
sec_sign(out_sig, 16, licence_sign_key, 16, sealed_buffer, sizeof(sealed_buffer));
|
sec_sign(out_sig, 16, g_licence_sign_key, 16, sealed_buffer, sizeof(sealed_buffer));
|
||||||
|
|
||||||
/* Now encrypt the HWID */
|
/* Now encrypt the HWID */
|
||||||
RC4_set_key(&crypt_key, 16, licence_key);
|
RC4_set_key(&crypt_key, 16, g_licence_key);
|
||||||
RC4(&crypt_key, LICENCE_HWID_SIZE, hwid, crypt_hwid);
|
RC4(&crypt_key, LICENCE_HWID_SIZE, hwid, crypt_hwid);
|
||||||
|
|
||||||
licence_send_authresp(out_token, crypt_hwid, out_sig);
|
licence_send_authresp(out_token, crypt_hwid, out_sig);
|
||||||
@ -272,14 +272,14 @@ licence_process_issue(STREAM s)
|
|||||||
if (!s_check_rem(s, length))
|
if (!s_check_rem(s, length))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
RC4_set_key(&crypt_key, 16, licence_key);
|
RC4_set_key(&crypt_key, 16, g_licence_key);
|
||||||
RC4(&crypt_key, length, s->p, s->p);
|
RC4(&crypt_key, length, s->p, s->p);
|
||||||
|
|
||||||
in_uint16(s, check);
|
in_uint16(s, check);
|
||||||
if (check != 0)
|
if (check != 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
licence_issued = True;
|
g_licence_issued = True;
|
||||||
|
|
||||||
in_uint8s(s, 2); /* pad */
|
in_uint8s(s, 2); /* pad */
|
||||||
|
|
||||||
@ -293,7 +293,7 @@ licence_process_issue(STREAM s)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
licence_issued = True;
|
g_licence_issued = True;
|
||||||
save_licence(s->p, length);
|
save_licence(s->p, length);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
10
secure.c
10
secure.c
@ -38,7 +38,7 @@ extern int width;
|
|||||||
extern int height;
|
extern int height;
|
||||||
extern int keylayout;
|
extern int keylayout;
|
||||||
extern BOOL encryption;
|
extern BOOL encryption;
|
||||||
extern BOOL licence_issued;
|
extern BOOL g_licence_issued;
|
||||||
extern BOOL use_rdp5;
|
extern BOOL use_rdp5;
|
||||||
extern int server_bpp;
|
extern int server_bpp;
|
||||||
|
|
||||||
@ -330,7 +330,7 @@ sec_init(uint32 flags, int maxlen)
|
|||||||
int hdrlen;
|
int hdrlen;
|
||||||
STREAM s;
|
STREAM s;
|
||||||
|
|
||||||
if (!licence_issued)
|
if (!g_licence_issued)
|
||||||
hdrlen = (flags & SEC_ENCRYPT) ? 12 : 4;
|
hdrlen = (flags & SEC_ENCRYPT) ? 12 : 4;
|
||||||
else
|
else
|
||||||
hdrlen = (flags & SEC_ENCRYPT) ? 12 : 0;
|
hdrlen = (flags & SEC_ENCRYPT) ? 12 : 0;
|
||||||
@ -347,7 +347,7 @@ sec_send(STREAM s, uint32 flags)
|
|||||||
int datalen;
|
int datalen;
|
||||||
|
|
||||||
s_pop_layer(s, sec_hdr);
|
s_pop_layer(s, sec_hdr);
|
||||||
if (!licence_issued || (flags & SEC_ENCRYPT))
|
if (!g_licence_issued || (flags & SEC_ENCRYPT))
|
||||||
out_uint32_le(s, flags);
|
out_uint32_le(s, flags);
|
||||||
|
|
||||||
if (flags & SEC_ENCRYPT)
|
if (flags & SEC_ENCRYPT)
|
||||||
@ -769,7 +769,7 @@ sec_recv(void)
|
|||||||
|
|
||||||
while ((s = mcs_recv(&channel)) != NULL)
|
while ((s = mcs_recv(&channel)) != NULL)
|
||||||
{
|
{
|
||||||
if (encryption || !licence_issued)
|
if (encryption || !g_licence_issued)
|
||||||
{
|
{
|
||||||
in_uint32_le(s, sec_flags);
|
in_uint32_le(s, sec_flags);
|
||||||
|
|
||||||
@ -777,7 +777,7 @@ sec_recv(void)
|
|||||||
{
|
{
|
||||||
if (sec_flags & SEC_ENCRYPT) {
|
if (sec_flags & SEC_ENCRYPT) {
|
||||||
DEBUG_RDP5(("Encrypted license detected\n"));
|
DEBUG_RDP5(("Encrypted license detected\n"));
|
||||||
}
|
}
|
||||||
licence_process(s);
|
licence_process(s);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user