]> git.ipfire.org Git - thirdparty/gnutls.git/commitdiff
Small changes and a sanity check
authorNikos Mavrogiannopoulos <nmav@gnutls.org>
Wed, 23 Jan 2013 21:11:39 +0000 (22:11 +0100)
committerNikos Mavrogiannopoulos <nmav@gnutls.org>
Wed, 23 Jan 2013 21:11:39 +0000 (22:11 +0100)
lib/gnutls_cipher.c
lib/gnutls_range.c
lib/gnutls_record.c
lib/gnutls_record.h

index 15ee5b0f057de71ccf9c0e50a9edd7837492f76d..4c50c416c374f4336c8e14a63ccc67f5df639573 100644 (file)
@@ -233,10 +233,15 @@ calc_enc_length_block (gnutls_session_t session, int data_size,
    * this LH pad, we only add minimal padding
    */
   unsigned int pre_length = data_size + hash_size + *pad;
+  unsigned int length, new_pad;
 
-  *pad = (uint8_t) (blocksize - (pre_length % blocksize)) + *pad;
+  new_pad = (uint8_t) (blocksize - (pre_length % blocksize)) + *pad;
+  
+  if (new_pad > 255)
+    new_pad -= blocksize;
+  *pad = new_pad;
 
-  unsigned int length = data_size + hash_size + *pad;
+  length = data_size + hash_size + *pad;
 
   if (_gnutls_version_has_explicit_iv
       (session->security_parameters.version))
@@ -297,11 +302,11 @@ make_preamble (uint8_t * uint64_data, uint8_t type, unsigned int length,
  */
 static int
 compressed_to_ciphertext (gnutls_session_t session,
-                               uint8_t * cipher_data, int cipher_size,
-                               gnutls_datum_t *compressed,
-                               size_t target_size,
-                               content_type_t type, 
-                               record_parameters_st * params)
+                          uint8_t * cipher_data, int cipher_size,
+                          gnutls_datum_t *compressed,
+                          size_t target_size,
+                          content_type_t type, 
+                          record_parameters_st * params)
 {
   uint8_t * tag_ptr = NULL;
   uint8_t pad = target_size - compressed->size;
@@ -438,11 +443,11 @@ compressed_to_ciphertext (gnutls_session_t session,
 
 static int
 compressed_to_ciphertext_new (gnutls_session_t session,
-                               uint8_t * cipher_data, int cipher_size,
-                               gnutls_datum_t *compressed,
-                               size_t target_size,
-                               content_type_t type, 
-                               record_parameters_st * params)
+                              uint8_t * cipher_data, int cipher_size,
+                              gnutls_datum_t *compressed,
+                              size_t target_size,
+                              content_type_t type, 
+                              record_parameters_st * params)
 {
   uint8_t * tag_ptr = NULL;
   uint16_t pad = target_size - compressed->size;
index 41d4b9ec01291d7d8481ae3ae2437b858f59f67b..ebfc59b4cde89c6890fc1ed20775f3c1c493067f 100644 (file)
@@ -44,6 +44,8 @@ _gnutls_range_max_lh_pad (gnutls_session_t session, ssize_t data_length,
                           ssize_t max_frag)
 {
   int ret;
+  ssize_t max_pad;
+  unsigned int fixed_pad;
   record_parameters_st *record_params;
 
   ret = _gnutls_epoch_get (session, EPOCH_WRITE_CURRENT, &record_params);
@@ -52,9 +54,6 @@ _gnutls_range_max_lh_pad (gnutls_session_t session, ssize_t data_length,
       return gnutls_assert_val (GNUTLS_E_INVALID_REQUEST);
     }
 
-  ssize_t max_pad;
-  unsigned int fixed_pad;
-
   if (session->security_parameters.new_record_padding != 0)
     {
       max_pad = MAX_USER_SEND_SIZE (session);
@@ -260,8 +259,9 @@ gnutls_record_send_range (gnutls_session_t session, const void *data,
       ret = _gnutls_send_tlen_int (session, GNUTLS_APPLICATION_DATA, -1,
                                    EPOCH_WRITE_CURRENT,
                                    &(((char *) data)[sent]),
-                                   next_fragment_length, MBUFFER_FLUSH,
-                                   cur_range.high);
+                                   next_fragment_length, 
+                                   cur_range.high,
+                                   MBUFFER_FLUSH);
       if (ret < 0)
         {
           return ret;           /* already gnutls_assert_val'd */
index 1aa17d6be40376a5eb8f3572e6283535cc360551..15c65c25cb41b3b0854d92b697db92da86c6b7a8 100644 (file)
@@ -351,7 +351,7 @@ ssize_t
 _gnutls_send_tlen_int (gnutls_session_t session, content_type_t type,
                gnutls_handshake_description_t htype,
                unsigned int epoch_rel, const void *_data,
-               size_t data_size, unsigned int mflags, size_t target_length)
+               size_t data_size, size_t target_length, unsigned int mflags)
 {
   mbuffer_st *bufel;
   ssize_t cipher_size;
index fdd182d8da5f388c142ae86246b3d9d88cabff7a..0ca8d736ee9c03d84c1b031c002f677c6d11fe03 100644 (file)
@@ -29,8 +29,9 @@
 ssize_t _gnutls_send_tlen_int (gnutls_session_t session, content_type_t type,
                                gnutls_handshake_description_t htype,
                                unsigned int epoch_rel, const void *data,
-                               size_t sizeofdata, unsigned int mflags,
-                               size_t targetlength);
+                               size_t sizeofdata, 
+                               size_t targetlength,
+                               unsigned int mflags);
 
 inline static ssize_t
 _gnutls_send_int (gnutls_session_t session, content_type_t type,
@@ -38,7 +39,7 @@ _gnutls_send_int (gnutls_session_t session, content_type_t type,
                   unsigned int epoch_rel, const void *_data,
                   size_t data_size, unsigned int mflags)
 {
-  return _gnutls_send_tlen_int(session,type,htype,epoch_rel,_data,data_size,mflags,data_size);
+  return _gnutls_send_tlen_int(session,type,htype,epoch_rel,_data,data_size,data_size,mflags);
 }
 
 ssize_t _gnutls_recv_int (gnutls_session_t session, content_type_t type,