/[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 557 by stargo, Wed Dec 10 08:02:59 2003 UTC revision 642 by matthewc, Thu Mar 18 02:32:00 2004 UTC
# Line 412  sec_out_mcs_data(STREAM s) Line 412  sec_out_mcs_data(STREAM s)
412          if (hostlen > 30)          if (hostlen > 30)
413                  hostlen = 30;                  hostlen = 30;
414    
415          out_uint16_be(s, 5);    /* unknown */          /* Generic Conference Control (T.124) ConferenceCreateRequest */
416            out_uint16_be(s, 5);
417          out_uint16_be(s, 0x14);          out_uint16_be(s, 0x14);
418          out_uint8(s, 0x7c);          out_uint8(s, 0x7c);
419          out_uint16_be(s, 1);          out_uint16_be(s, 1);
# Line 425  sec_out_mcs_data(STREAM s) Line 426  sec_out_mcs_data(STREAM s)
426          out_uint16_le(s, 0xc001);          out_uint16_le(s, 0xc001);
427          out_uint8(s, 0);          out_uint8(s, 0);
428    
429          out_uint32_le(s, 0x61637544);   /* "Duca" ?! */          out_uint32_le(s, 0x61637544);   /* OEM ID: "Duca", as in Ducati. */
430          out_uint16_be(s, ((length - 14) | 0x8000));     /* remaining length */          out_uint16_be(s, ((length - 14) | 0x8000));     /* remaining length */
431    
432          /* Client information */          /* Client information */
# Line 628  sec_parse_crypt_info(STREAM s, uint32 * Line 629  sec_parse_crypt_info(STREAM s, uint32 *
629                  uint32 certcount;                  uint32 certcount;
630    
631                  DEBUG_RDP5(("We're going for the RDP5-style encryption\n"));                  DEBUG_RDP5(("We're going for the RDP5-style encryption\n"));
632                  in_uint32_le(s, certcount); /* Number of certificates */                  in_uint32_le(s, certcount);     /* Number of certificates */
633    
634                  if(certcount < 2)                  if (certcount < 2)
635                  {                  {
636                          error("Server didn't send enough X509 certificates\n");                          error("Server didn't send enough X509 certificates\n");
637                          return False;                          return False;
638                  }                  }
639    
640                  for(; certcount > 2; certcount--)                  for (; certcount > 2; certcount--)
641                  { /* ignore all the certificates between the root and the signing CA */                  {               /* ignore all the certificates between the root and the signing CA */
642                          uint32 ignorelen;                          uint32 ignorelen;
643                          X509 *ignorecert;                          X509 *ignorecert;
644    
# Line 647  sec_parse_crypt_info(STREAM s, uint32 * Line 648  sec_parse_crypt_info(STREAM s, uint32 *
648                          DEBUG_RDP5(("Ignored Certificate length is %d\n", ignorelen));                          DEBUG_RDP5(("Ignored Certificate length is %d\n", ignorelen));
649                          ignorecert = d2i_X509(NULL, &(s->p), ignorelen);                          ignorecert = d2i_X509(NULL, &(s->p), ignorelen);
650    
651                          if(ignorecert == NULL)                          if (ignorecert == NULL)
652                          { /* XXX: error out? */                          {       /* XXX: error out? */
653                                  DEBUG_RDP5(("got a bad cert: this will probably screw up the rest of the communication\n"));                                  DEBUG_RDP5(("got a bad cert: this will probably screw up the rest of the communication\n"));
654                          }                          }
655    
656  #ifdef WITH_DEBUG_RDP5  #ifdef WITH_DEBUG_RDP5
657                          DEBUG_RDP5(("cert #%d (ignored):\n",certcount));                          DEBUG_RDP5(("cert #%d (ignored):\n", certcount));
658                          X509_print_fp(stdout, ignorecert);                          X509_print_fp(stdout, ignorecert);
659  #endif  #endif
660                  }                  }
# Line 782  sec_process_mcs_data(STREAM s) Line 783  sec_process_mcs_data(STREAM s)
783          uint8 *next_tag;          uint8 *next_tag;
784          uint8 len;          uint8 len;
785    
786          in_uint8s(s, 21);       /* header (T.124 stuff, probably) */          in_uint8s(s, 21);       /* header (T.124 ConferenceCreateResponse) */
787          in_uint8(s, len);          in_uint8(s, len);
788          if (len & 0x80)          if (len & 0x80)
789                  in_uint8(s, len);                  in_uint8(s, len);

Legend:
Removed from v.557  
changed lines
  Added in v.642

  ViewVC Help
Powered by ViewVC 1.1.26