Store only one handshake write sequence number.

The pair was a remnant of some weird statefulness and also ChangeCipherSpec
having a "sequence number" to make the pqueue turn into an array.

Change-Id: Iffd82594314df43934073bd141faee0fc167ed5f
Reviewed-on: https://boringssl-review.googlesource.com/8436
Reviewed-by: Adam Langley <agl@google.com>
diff --git a/ssl/d1_both.c b/ssl/d1_both.c
index 6b2a019..9adc2aa 100644
--- a/ssl/d1_both.c
+++ b/ssl/d1_both.c
@@ -749,8 +749,6 @@
 
 int dtls1_send_change_cipher_spec(SSL *ssl, int a, int b) {
   if (ssl->state == a) {
-    /* Buffer the message to handle retransmits. */
-    ssl->d1->handshake_write_seq = ssl->d1->next_handshake_write_seq;
     dtls1_buffer_change_cipher_spec(ssl);
     ssl->state = b;
   }
diff --git a/ssl/d1_lib.c b/ssl/d1_lib.c
index 6e05695..0c47dc6 100644
--- a/ssl/d1_lib.c
+++ b/ssl/d1_lib.c
@@ -312,8 +312,8 @@
 int dtls1_set_handshake_header(SSL *ssl, int htype, unsigned long len) {
   uint8_t *message = (uint8_t *)ssl->init_buf->data;
 
-  ssl->d1->handshake_write_seq = ssl->d1->next_handshake_write_seq;
-  ssl->d1->next_handshake_write_seq++;
+  uint16_t seq = ssl->d1->handshake_write_seq;
+  ssl->d1->handshake_write_seq++;
 
   ssl->init_num = (int)len + DTLS1_HM_HEADER_LENGTH;
   ssl->init_off = 0;
@@ -322,7 +322,7 @@
   uint8_t *p = message;
   *p++ = htype;
   l2n3(len, p);
-  s2n(ssl->d1->handshake_write_seq, p);
+  s2n(seq, p);
   l2n3(0, p);
   l2n3(len, p);
   assert(p == message + DTLS1_HM_HEADER_LENGTH);
diff --git a/ssl/handshake_client.c b/ssl/handshake_client.c
index 5bc6bdc..3b33574 100644
--- a/ssl/handshake_client.c
+++ b/ssl/handshake_client.c
@@ -524,7 +524,7 @@
 
         if (SSL_IS_DTLS(ssl)) {
           ssl->d1->handshake_read_seq = 0;
-          ssl->d1->next_handshake_write_seq = 0;
+          ssl->d1->handshake_write_seq = 0;
         }
 
         ret = 1;
diff --git a/ssl/handshake_server.c b/ssl/handshake_server.c
index 0d06929..b0e4c56 100644
--- a/ssl/handshake_server.c
+++ b/ssl/handshake_server.c
@@ -516,7 +516,6 @@
         if (SSL_IS_DTLS(ssl)) {
           ssl->d1->handshake_read_seq = 0;
           ssl->d1->handshake_write_seq = 0;
-          ssl->d1->next_handshake_write_seq = 0;
         }
 
         ssl->s3->initial_handshake_complete = 1;
diff --git a/ssl/internal.h b/ssl/internal.h
index 0b263f2..64a63d8 100644
--- a/ssl/internal.h
+++ b/ssl/internal.h
@@ -916,12 +916,7 @@
   /* records being received in the current epoch */
   DTLS1_BITMAP bitmap;
 
-  /* handshake message numbers.
-   * TODO(davidben): It doesn't make much sense to store both of these. Only
-   * store one. */
   uint16_t handshake_write_seq;
-  uint16_t next_handshake_write_seq;
-
   uint16_t handshake_read_seq;
 
   /* save last sequence number for retransmissions */