~ubuntu-branches/ubuntu/precise/gnutls28/precise

« back to all changes in this revision

Viewing changes to lib/gnutls_handshake.c

  • Committer: Package Import Robot
  • Author(s): Andreas Metzler
  • Date: 2011-09-20 19:37:06 UTC
  • mfrom: (1.1.3)
  • Revision ID: package-import@ubuntu.com-20110920193706-a9phjijvddzg3nkl
Tags: 3.0.3-1
* New upstream version. (Includes a fix for #640639)
* Bump shlibs.

Show diffs side-by-side

added added

removed removed

Lines of Context:
250
250
{
251
251
  const int siz = TLS_MSG_LEN;
252
252
  opaque concat[MAX_HASH_SIZE + 16 /*MD5 */ ];
253
 
  size_t hash_len = 20 + 16;
 
253
  size_t hash_len;
254
254
  const char *mesg;
255
 
  digest_hd_st td_md5;
256
 
  digest_hd_st td_sha;
257
255
  int rc, len;
258
256
 
259
257
  if (sending)
263
261
 
264
262
  if (!_gnutls_version_has_selectable_prf (gnutls_protocol_get_version(session)))
265
263
    {
266
 
      rc = _gnutls_hash_init (&td_sha, GNUTLS_DIG_SHA1);
267
 
      if (rc < 0)
268
 
        return gnutls_assert_val(rc);
269
 
 
270
 
      rc = _gnutls_hash_init (&td_md5, GNUTLS_DIG_MD5);
271
 
      if (rc < 0)
272
 
        {
273
 
          _gnutls_hash_deinit (&td_sha, NULL);
274
 
          return gnutls_assert_val(rc);
275
 
        }
276
 
      _gnutls_hash(&td_sha, session->internals.handshake_hash_buffer.data, len);
277
 
      _gnutls_hash(&td_md5, session->internals.handshake_hash_buffer.data, len);
278
 
 
279
 
      _gnutls_hash_deinit (&td_md5, concat);
280
 
      _gnutls_hash_deinit (&td_sha, &concat[16]);
 
264
      rc = _gnutls_hash_fast( GNUTLS_DIG_SHA1, session->internals.handshake_hash_buffer.data, len, &concat[16]);
 
265
      if (rc < 0)
 
266
        return gnutls_assert_val(rc);
 
267
 
 
268
      rc = _gnutls_hash_fast( GNUTLS_DIG_MD5, session->internals.handshake_hash_buffer.data, len, concat);
 
269
      if (rc < 0)
 
270
        return gnutls_assert_val(rc);
 
271
       
 
272
      hash_len = 20 + 16;
281
273
    }
282
274
  else 
283
275
    {
284
276
      int algorithm = _gnutls_cipher_suite_get_prf(&session->security_parameters.current_cipher_suite);
285
277
 
286
 
      rc = _gnutls_hash_init (&td_sha, algorithm);
 
278
      rc = _gnutls_hash_fast( algorithm, session->internals.handshake_hash_buffer.data, len, concat);
287
279
      if (rc < 0)
288
280
        return gnutls_assert_val(rc);
289
281
 
290
 
      _gnutls_hash(&td_sha, session->internals.handshake_hash_buffer.data, len);
291
 
 
292
 
      _gnutls_hash_deinit (&td_sha, concat);
293
282
      hash_len = _gnutls_hash_get_algo_len (algorithm);
294
283
    }
295
284