/[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 25 by matty, Sat Jan 6 03:47:04 2001 UTC revision 28 by matty, Wed Jun 20 13:54:48 2001 UTC
# Line 28  extern char hostname[16]; Line 28  extern char hostname[16];
28  extern int width;  extern int width;
29  extern int height;  extern int height;
30  extern int keylayout;  extern int keylayout;
31    extern BOOL use_encryption;
32    extern BOOL licence_issued;
33    
34  static int rc4_key_len;  static int rc4_key_len;
35  static RC4_KEY rc4_decrypt_key;  static RC4_KEY rc4_decrypt_key;
# Line 312  sec_init(uint32 flags, int maxlen) Line 314  sec_init(uint32 flags, int maxlen)
314          int hdrlen;          int hdrlen;
315          STREAM s;          STREAM s;
316    
317          hdrlen = (flags & SEC_ENCRYPT) ? 12 : 4;          if (!licence_issued)
318                    hdrlen = (flags & SEC_ENCRYPT) ? 12 : 4;
319            else
320                    hdrlen = (flags & SEC_ENCRYPT) ? 12 : 0;
321          s = mcs_init(maxlen + hdrlen);          s = mcs_init(maxlen + hdrlen);
322          s_push_layer(s, sec_hdr, hdrlen);          s_push_layer(s, sec_hdr, hdrlen);
323    
# Line 326  sec_send(STREAM s, uint32 flags) Line 331  sec_send(STREAM s, uint32 flags)
331          int datalen;          int datalen;
332    
333          s_pop_layer(s, sec_hdr);          s_pop_layer(s, sec_hdr);
334          out_uint32_le(s, flags);          if (!licence_issued || (flags & SEC_ENCRYPT))
335                    out_uint32_le(s, flags);
336    
337          if (flags & SEC_ENCRYPT)          if (flags & SEC_ENCRYPT)
338          {          {
# Line 412  sec_out_mcs_data(STREAM s) Line 418  sec_out_mcs_data(STREAM s)
418          /* Client encryption settings */          /* Client encryption settings */
419          out_uint16_le(s, SEC_TAG_CLI_CRYPT);          out_uint16_le(s, SEC_TAG_CLI_CRYPT);
420          out_uint16(s, 8);       /* length */          out_uint16(s, 8);       /* length */
421          out_uint32_le(s, 1);    /* encryption enabled */          out_uint32_le(s, use_encryption ? 1 : 0);       /* encryption enabled */
422          s_mark_end(s);          s_mark_end(s);
423  }  }
424    
# Line 569  sec_recv() Line 575  sec_recv()
575    
576          while ((s = mcs_recv()) != NULL)          while ((s = mcs_recv()) != NULL)
577          {          {
578                  in_uint32_le(s, sec_flags);                  if (use_encryption || !licence_issued)
   
                 if (sec_flags & SEC_LICENCE_NEG)  
579                  {                  {
580                          licence_process(s);                          in_uint32_le(s, sec_flags);
                         continue;  
                 }  
581    
582                  if (sec_flags & SEC_ENCRYPT)                          if (sec_flags & SEC_LICENCE_NEG)
583                  {                          {
584                          in_uint8s(s, 8);        /* signature */                                  licence_process(s);
585                          sec_decrypt(s->p, s->end - s->p);                                  continue;
586                            }
587    
588                            if (sec_flags & SEC_ENCRYPT)
589                            {
590                                    in_uint8s(s, 8);        /* signature */
591                                    sec_decrypt(s->p, s->end - s->p);
592                            }
593                  }                  }
594    
595                  return s;                  return s;
# Line 604  sec_connect(char *server) Line 613  sec_connect(char *server)
613                  return False;                  return False;
614    
615          sec_process_mcs_data(&mcs_data);          sec_process_mcs_data(&mcs_data);
616          sec_establish_key();          if (use_encryption)
617                    sec_establish_key();
618          return True;          return True;
619  }  }
620    

Legend:
Removed from v.25  
changed lines
  Added in v.28

  ViewVC Help
Powered by ViewVC 1.1.26