/[rdesktop]/sourceforge.net/trunk/rdesktop/secure.c
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /sourceforge.net/trunk/rdesktop/secure.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 706 by astrand, Tue Jun 1 08:06:02 2004 UTC revision 733 by jsorg71, Mon Jul 5 19:09:07 2004 UTC
# Line 33  Line 33 
33  #include "crypto/bn.h"  #include "crypto/bn.h"
34  #endif  #endif
35    
36  extern char hostname[16];  extern char g_hostname[16];
37  extern int g_width;  extern int g_width;
38  extern int g_height;  extern int g_height;
39  extern int keylayout;  extern int g_keylayout;
40  extern BOOL g_encryption;  extern BOOL g_encryption;
41  extern BOOL g_licence_issued;  extern BOOL g_licence_issued;
42  extern BOOL g_use_rdp5;  extern BOOL g_use_rdp5;
# Line 410  sec_establish_key(void) Line 410  sec_establish_key(void)
410  static void  static void
411  sec_out_mcs_data(STREAM s)  sec_out_mcs_data(STREAM s)
412  {  {
413          int hostlen = 2 * strlen(hostname);          int hostlen = 2 * strlen(g_hostname);
414          int length = 158 + 76 + 12 + 4;          int length = 158 + 76 + 12 + 4;
415          unsigned int i;          unsigned int i;
416    
# Line 446  sec_out_mcs_data(STREAM s) Line 446  sec_out_mcs_data(STREAM s)
446          out_uint16_le(s, g_height);          out_uint16_le(s, g_height);
447          out_uint16_le(s, 0xca01);          out_uint16_le(s, 0xca01);
448          out_uint16_le(s, 0xaa03);          out_uint16_le(s, 0xaa03);
449          out_uint32_le(s, keylayout);          out_uint32_le(s, g_keylayout);
450          out_uint32_le(s, 2600); /* Client build. We are now 2600 compatible :-) */          out_uint32_le(s, 2600); /* Client build. We are now 2600 compatible :-) */
451    
452          /* Unicode name of client, padded to 32 bytes */          /* Unicode name of client, padded to 32 bytes */
453          rdp_out_unistr(s, hostname, hostlen);          rdp_out_unistr(s, g_hostname, hostlen);
454          out_uint8s(s, 30 - hostlen);          out_uint8s(s, 30 - hostlen);
455    
456          out_uint32_le(s, 4);          out_uint32_le(s, 4);
# Line 820  sec_process_mcs_data(STREAM s) Line 820  sec_process_mcs_data(STREAM s)
820    
821  /* Receive secure transport packet */  /* Receive secure transport packet */
822  STREAM  STREAM
823  sec_recv(void)  sec_recv(uint8 * rdpver)
824  {  {
825          uint32 sec_flags;          uint32 sec_flags;
826          uint16 channel;          uint16 channel;
827          STREAM s;          STREAM s;
828    
829          while ((s = mcs_recv(&channel)) != NULL)          while ((s = mcs_recv(&channel, rdpver)) != NULL)
830          {          {
831                    if (rdpver != NULL)
832                    {
833                            if (*rdpver != 3)
834                            {
835                                    if (*rdpver & 0x80)
836                                    {
837                                            in_uint8s(s, 8);        /* signature */
838                                            sec_decrypt(s->p, s->end - s->p);
839                                    }
840                                    return s;
841                            }
842                    }
843                  if (g_encryption || !g_licence_issued)                  if (g_encryption || !g_licence_issued)
844                  {                  {
845                          in_uint32_le(s, sec_flags);                          in_uint32_le(s, sec_flags);

Legend:
Removed from v.706  
changed lines
  Added in v.733

  ViewVC Help
Powered by ViewVC 1.1.26