From 3c33e7f9fad502e7a1ac4ef92edd98a666a5a918 Mon Sep 17 00:00:00 2001 From: "Steinar H. Gunderson" Date: Sat, 5 Feb 2005 21:08:21 +0000 Subject: [PATCH] Go to 40-bit encryption, and ignore junk at end of logon packets. This makes us understand mstsc's logon packets! --- mcs.c | 2 +- rdp.c | 5 +++-- secure.c | 3 ++- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/mcs.c b/mcs.c index e771a07..6c5bbb7 100644 --- a/mcs.c +++ b/mcs.c @@ -370,7 +370,7 @@ mcs_send_connect_response() // crypto info out_uint16_le(s, SEC_TAG_SRV_CRYPT); out_uint16_le(s, 84 + sizeof(cacert) + sizeof(server_cert)); // length - out_uint32_le(s, 8); // 128-bit + out_uint32_le(s, 1); // 128-bit out_uint32_le(s, 2); // medium out_uint32_le(s, SEC_RANDOM_SIZE); // random_len diff --git a/rdp.c b/rdp.c index 39d2ce8..e8e69cd 100644 --- a/rdp.c +++ b/rdp.c @@ -275,8 +275,9 @@ rdp_get_logon_info(STREAM s) printf("directory='%s'\n", directory); } - if (!s_check_end(s)) - error("Unknown data at end of logon packet!\n"); + if (!s_check_end(s)) { + printf("Unknown data at end of logon packet!\n"); + } } /* Send a control PDU */ diff --git a/secure.c b/secure.c index 51e5f84..3d0a42c 100644 --- a/secure.c +++ b/secure.c @@ -763,6 +763,7 @@ sec_recv(void) { printf("Received logon packet!\n"); rdp_get_logon_info(s); + continue; } if (sec_flags & SEC_CLIENT_RANDOM) { @@ -794,7 +795,7 @@ sec_recv(void) printf("\n"); // now we can generate the keys - sec_generate_keys(inr + SEC_RANDOM_SIZE, cacert, 8); + sec_generate_keys(inr + SEC_RANDOM_SIZE, cacert, 1); continue; } } -- 2.39.2