Update from 1.0.0-stable
authorDr. Stephen Henson <steve@openssl.org>
Wed, 1 Jul 2009 11:29:25 +0000 (11:29 +0000)
committerDr. Stephen Henson <steve@openssl.org>
Wed, 1 Jul 2009 11:29:25 +0000 (11:29 +0000)
engines/ccgost/gost_crypt.c
ssl/d1_pkt.c

index 954d150e51ce811f5473745806154fc5b84a820c..39bb6964469b203e8a426aa9ae3030d11a71888c 100644 (file)
@@ -390,6 +390,14 @@ int gost_cipher_ctl(EVP_CIPHER_CTX *ctx,int type,int arg,void *ptr)
                        }
                break;
                }
                        }
                break;
                }
+               case EVP_CTRL_PBE_PRF_NID:
+                       if (ptr) {
+                               *((int *)ptr)=  NID_id_HMACGostR3411_94;
+                               return 1;
+                       } else {
+                               return 0;
+                       }       
+                               
                default:
                        GOSTerr(GOST_F_GOST_CIPHER_CTL,GOST_R_UNSUPPORTED_CIPHER_CTL_COMMAND);
                        return -1;
                default:
                        GOSTerr(GOST_F_GOST_CIPHER_CTL,GOST_R_UNSUPPORTED_CIPHER_CTL_COMMAND);
                        return -1;
index 394daf6258be194483a293a01f23ebdf593f1c53..35e83d8b52dc8e383d60890b861d3c5039873b80 100644 (file)
@@ -623,6 +623,7 @@ again:
                /* this packet contained a partial record, dump it */
                if ( n != i)
                        {
                /* this packet contained a partial record, dump it */
                if ( n != i)
                        {
+                       rr->length = 0;
                        s->packet_length = 0;
                        goto again;
                        }
                        s->packet_length = 0;
                        goto again;
                        }
@@ -636,6 +637,7 @@ again:
        bitmap = dtls1_get_bitmap(s, rr, &is_next_epoch);
        if ( bitmap == NULL)
                {
        bitmap = dtls1_get_bitmap(s, rr, &is_next_epoch);
        if ( bitmap == NULL)
                {
+               rr->length = 0;
                s->packet_length = 0;  /* dump this record */
                goto again;   /* get another record */
                }
                s->packet_length = 0;  /* dump this record */
                goto again;   /* get another record */
                }
@@ -660,6 +662,7 @@ again:
                {
                dtls1_record_bitmap_update(s, bitmap);
                dtls1_buffer_record(s, &(s->d1->unprocessed_rcds), rr->seq_num);
                {
                dtls1_record_bitmap_update(s, bitmap);
                dtls1_buffer_record(s, &(s->d1->unprocessed_rcds), rr->seq_num);
+               rr->length = 0;
                s->packet_length = 0;
                goto again;
                }
                s->packet_length = 0;
                goto again;
                }