Make it possible to disable encryption for all packets except the

packets exchanged in the setup phase.

Seems to work with all encryption levels on my W2003 Server (Beta).


git-svn-id: svn://svn.code.sf.net/p/rdesktop/code/trunk/rdesktop@426 423420c4-83ab-492f-b58f-81f9feb106b5
This commit is contained in:
Erik Forsberg 2003-06-19 11:51:18 +00:00
parent 9231b642e8
commit e158625b07

View File

@ -55,6 +55,7 @@ BOOL bitmap_compression = True;
BOOL sendmotion = True; BOOL sendmotion = True;
BOOL orders = True; BOOL orders = True;
BOOL encryption = True; BOOL encryption = True;
BOOL packet_encryption = True;
BOOL desktop_save = True; BOOL desktop_save = True;
BOOL fullscreen = False; BOOL fullscreen = False;
BOOL grab_keyboard = True; BOOL grab_keyboard = True;
@ -94,6 +95,7 @@ usage(char *program)
fprintf(stderr, " -f: full-screen mode\n"); fprintf(stderr, " -f: full-screen mode\n");
fprintf(stderr, " -b: force bitmap updates\n"); fprintf(stderr, " -b: force bitmap updates\n");
fprintf(stderr, " -e: disable encryption (French TS)\n"); fprintf(stderr, " -e: disable encryption (French TS)\n");
fprintf(stderr, " -E: disable encryption of everything but the logon packet\n");
fprintf(stderr, " -m: do not send motion events\n"); fprintf(stderr, " -m: do not send motion events\n");
fprintf(stderr, " -C: use private colour map\n"); fprintf(stderr, " -C: use private colour map\n");
fprintf(stderr, " -K: keep window manager key bindings\n"); fprintf(stderr, " -K: keep window manager key bindings\n");
@ -167,7 +169,7 @@ main(int argc, char *argv[])
#define VNCOPT #define VNCOPT
#endif #endif
while ((c = getopt(argc, argv, VNCOPT "u:d:s:S:c:p:n:k:g:a:fbemCKT:Dh?54")) != -1) while ((c = getopt(argc, argv, VNCOPT "u:d:s:S:c:p:n:k:g:a:fbeEmCKT:Dh?54")) != -1)
{ {
switch (c) switch (c)
{ {
@ -272,7 +274,9 @@ main(int argc, char *argv[])
case 'e': case 'e':
encryption = False; encryption = False;
break; break;
case 'E':
packet_encryption = False;
break;
case 'm': case 'm':
sendmotion = False; sendmotion = False;
break; break;
@ -380,6 +384,12 @@ main(int argc, char *argv[])
if (!rdp_connect(server, flags, domain, password, shell, directory)) if (!rdp_connect(server, flags, domain, password, shell, directory))
return 1; return 1;
/* By setting encryption to False here, we have an encrypted login
packet but unencrypted transfer of other packets */
if (!packet_encryption)
encryption = False;
DEBUG(("Connection successful.\n")); DEBUG(("Connection successful.\n"));
memset(password, 0, sizeof(password)); memset(password, 0, sizeof(password));