Move ssl3_record_sequence_update with the other record-layer bits. Change-Id: I045a4d3e304872b8c97231dcde5bca7753a878fb Reviewed-on: https://boringssl-review.googlesource.com/6831 Reviewed-by: Adam Langley <alangley@gmail.com>
diff --git a/ssl/dtls_record.c b/ssl/dtls_record.c index 940494a..af839ca 100644 --- a/ssl/dtls_record.c +++ b/ssl/dtls_record.c
@@ -286,7 +286,7 @@ if (!SSL_AEAD_CTX_seal(aead, out + DTLS1_RT_HEADER_LENGTH, &ciphertext_len, max_out - DTLS1_RT_HEADER_LENGTH, type, wire_version, &out[3] /* seq */, in, in_len) || - !ssl3_record_sequence_update(&seq[2], 6)) { + !ssl_record_sequence_update(&seq[2], 6)) { return 0; }
diff --git a/ssl/internal.h b/ssl/internal.h index 99f083d..15f590a 100644 --- a/ssl/internal.h +++ b/ssl/internal.h
@@ -346,6 +346,10 @@ /* Record layer. */ +/* ssl_record_sequence_update increments the sequence number in |seq|. It + * returns one on success and zero on wraparound. */ +int ssl_record_sequence_update(uint8_t *seq, size_t seq_len); + /* ssl_record_prefix_len returns the length of the prefix before the ciphertext * of a record for |ssl|. * @@ -1075,10 +1079,6 @@ int ssl3_accept(SSL *ssl); int ssl3_connect(SSL *ssl); -/* ssl3_record_sequence_update increments the sequence number in |seq|. It - * returns one on success and zero on wraparound. */ -int ssl3_record_sequence_update(uint8_t *seq, size_t seq_len); - int ssl3_do_change_cipher_spec(SSL *ssl); int ssl3_set_handshake_header(SSL *ssl, int htype, unsigned long len);
diff --git a/ssl/s3_enc.c b/ssl/s3_enc.c index 89d861a..f5f847e 100644 --- a/ssl/s3_enc.c +++ b/ssl/s3_enc.c
@@ -383,18 +383,6 @@ return ret; } -int ssl3_record_sequence_update(uint8_t *seq, size_t seq_len) { - size_t i; - for (i = seq_len - 1; i < seq_len; i--) { - ++seq[i]; - if (seq[i] != 0) { - return 1; - } - } - OPENSSL_PUT_ERROR(SSL, ERR_R_OVERFLOW); - return 0; -} - int ssl3_alert_code(int code) { switch (code) { case SSL_AD_CLOSE_NOTIFY:
diff --git a/ssl/tls_record.c b/ssl/tls_record.c index 3381eae..e3a413b 100644 --- a/ssl/tls_record.c +++ b/ssl/tls_record.c
@@ -130,6 +130,18 @@ SSL_CIPHER_is_block_cipher(ssl->aead_write_ctx->cipher); } +int ssl_record_sequence_update(uint8_t *seq, size_t seq_len) { + size_t i; + for (i = seq_len - 1; i < seq_len; i--) { + ++seq[i]; + if (seq[i] != 0) { + return 1; + } + } + OPENSSL_PUT_ERROR(SSL, ERR_R_OVERFLOW); + return 0; +} + size_t ssl_record_prefix_len(const SSL *ssl) { if (SSL_IS_DTLS(ssl)) { return DTLS1_RT_HEADER_LENGTH + @@ -222,7 +234,7 @@ *out_alert = SSL_AD_BAD_RECORD_MAC; return ssl_open_record_error; } - if (!ssl3_record_sequence_update(ssl->s3->read_sequence, 8)) { + if (!ssl_record_sequence_update(ssl->s3->read_sequence, 8)) { *out_alert = SSL_AD_INTERNAL_ERROR; return ssl_open_record_error; } @@ -284,7 +296,7 @@ &ciphertext_len, max_out - SSL3_RT_HEADER_LENGTH, type, wire_version, ssl->s3->write_sequence, in, in_len) || - !ssl3_record_sequence_update(ssl->s3->write_sequence, 8)) { + !ssl_record_sequence_update(ssl->s3->write_sequence, 8)) { return 0; }