/[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 60 by matthewc, Sat Jul 13 02:30:49 2002 UTC revision 61 by matthewc, Sun Jul 14 12:06:03 2002 UTC
# Line 181  buf_out_uint32(uint8 *buffer, uint32 val Line 181  buf_out_uint32(uint8 *buffer, uint32 val
181    
182  /* Generate a signature hash, using a combination of SHA1 and MD5 */  /* Generate a signature hash, using a combination of SHA1 and MD5 */
183  void  void
184  sec_sign(uint8 *signature, uint8 *session_key, int length,  sec_sign(uint8 *signature, int siglen, uint8 *session_key, int keylen,
185           uint8 *data, int datalen)           uint8 *data, int datalen)
186  {  {
187          uint8 shasig[20];          uint8 shasig[20];
# Line 193  sec_sign(uint8 *signature, uint8 *sessio Line 193  sec_sign(uint8 *signature, uint8 *sessio
193          buf_out_uint32(lenhdr, datalen);          buf_out_uint32(lenhdr, datalen);
194    
195          SHA1_Init(&sha);          SHA1_Init(&sha);
196          SHA1_Update(&sha, session_key, rc4_key_len);          SHA1_Update(&sha, session_key, keylen);
197          SHA1_Update(&sha, pad_54, 40);          SHA1_Update(&sha, pad_54, 40);
198          SHA1_Update(&sha, lenhdr, 4);          SHA1_Update(&sha, lenhdr, 4);
199          SHA1_Update(&sha, data, datalen);          SHA1_Update(&sha, data, datalen);
200          SHA1_Final(shasig, &sha);          SHA1_Final(shasig, &sha);
201    
202          MD5_Init(&md5);          MD5_Init(&md5);
203          MD5_Update(&md5, session_key, rc4_key_len);          MD5_Update(&md5, session_key, keylen);
204          MD5_Update(&md5, pad_92, 48);          MD5_Update(&md5, pad_92, 48);
205          MD5_Update(&md5, shasig, 20);          MD5_Update(&md5, shasig, 20);
206          MD5_Final(md5sig, &md5);          MD5_Final(md5sig, &md5);
207    
208          memcpy(signature, md5sig, length);          memcpy(signature, md5sig, siglen);
209  }  }
210    
211  /* Update an encryption key - similar to the signing process */  /* Update an encryption key - similar to the signing process */
# Line 358  sec_send(STREAM s, uint32 flags) Line 358  sec_send(STREAM s, uint32 flags)
358                  hexdump(s->p + 8, datalen);                  hexdump(s->p + 8, datalen);
359  #endif  #endif
360    
361                  sec_sign(s->p, sec_sign_key, 8, s->p + 8, datalen);                  sec_sign(s->p, 8, sec_sign_key, rc4_key_len, s->p + 8, datalen);
362                  sec_encrypt(s->p + 8, datalen);                  sec_encrypt(s->p + 8, datalen);
363          }          }
364    

Legend:
Removed from v.60  
changed lines
  Added in v.61

  ViewVC Help
Powered by ViewVC 1.1.26