Pass explicit hs parameters into t1_enc.c.
Change-Id: I5ef0fe5cc3ae0d5029ae41db36e66d22d76f6158
Reviewed-on: https://boringssl-review.googlesource.com/12341
Reviewed-by: David Benjamin <davidben@google.com>
Commit-Queue: David Benjamin <davidben@google.com>
CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org>
diff --git a/ssl/handshake_client.c b/ssl/handshake_client.c
index 76a08f5..2ee5408 100644
--- a/ssl/handshake_client.c
+++ b/ssl/handshake_client.c
@@ -369,7 +369,7 @@
ssl->state = SSL3_ST_CW_NEXT_PROTO_A;
- if (!tls1_change_cipher_state(ssl, SSL3_CHANGE_CIPHER_CLIENT_WRITE)) {
+ if (!tls1_change_cipher_state(hs, SSL3_CHANGE_CIPHER_CLIENT_WRITE)) {
ret = -1;
goto end;
}
@@ -460,7 +460,7 @@
goto end;
}
- if (!tls1_change_cipher_state(ssl, SSL3_CHANGE_CIPHER_CLIENT_READ)) {
+ if (!tls1_change_cipher_state(hs, SSL3_CHANGE_CIPHER_CLIENT_READ)) {
ret = -1;
goto end;
}
diff --git a/ssl/handshake_server.c b/ssl/handshake_server.c
index 1cf668a..0f0c862 100644
--- a/ssl/handshake_server.c
+++ b/ssl/handshake_server.c
@@ -353,7 +353,7 @@
goto end;
}
- if (!tls1_change_cipher_state(ssl, SSL3_CHANGE_CIPHER_SERVER_READ)) {
+ if (!tls1_change_cipher_state(hs, SSL3_CHANGE_CIPHER_SERVER_READ)) {
ret = -1;
goto end;
}
@@ -429,7 +429,7 @@
}
ssl->state = SSL3_ST_SW_FINISHED_A;
- if (!tls1_change_cipher_state(ssl, SSL3_CHANGE_CIPHER_SERVER_WRITE)) {
+ if (!tls1_change_cipher_state(hs, SSL3_CHANGE_CIPHER_SERVER_WRITE)) {
ret = -1;
goto end;
}
diff --git a/ssl/internal.h b/ssl/internal.h
index 534f276..e307cb9 100644
--- a/ssl/internal.h
+++ b/ssl/internal.h
@@ -1842,7 +1842,7 @@
int ssl_init_wbio_buffer(SSL *ssl);
void ssl_free_wbio_buffer(SSL *ssl);
-int tls1_change_cipher_state(SSL *ssl, int which);
+int tls1_change_cipher_state(SSL_HANDSHAKE *hs, int which);
int tls1_handshake_digest(SSL *ssl, uint8_t *out, size_t out_len);
int tls1_generate_master_secret(SSL *ssl, uint8_t *out, const uint8_t *premaster,
size_t premaster_len);
diff --git a/ssl/t1_enc.c b/ssl/t1_enc.c
index 4c7d3ee..70907e1 100644
--- a/ssl/t1_enc.c
+++ b/ssl/t1_enc.c
@@ -258,8 +258,9 @@
return 1;
}
-static int tls1_setup_key_block(SSL *ssl) {
- if (ssl->s3->hs->key_block_len != 0) {
+static int tls1_setup_key_block(SSL_HANDSHAKE *hs) {
+ SSL *const ssl = hs->ssl;
+ if (hs->key_block_len != 0) {
return 1;
}
@@ -310,14 +311,15 @@
}
assert(key_block_len < 256);
- ssl->s3->hs->key_block_len = (uint8_t)key_block_len;
- ssl->s3->hs->key_block = keyblock;
+ hs->key_block_len = (uint8_t)key_block_len;
+ hs->key_block = keyblock;
return 1;
}
-int tls1_change_cipher_state(SSL *ssl, int which) {
+int tls1_change_cipher_state(SSL_HANDSHAKE *hs, int which) {
+ SSL *const ssl = hs->ssl;
/* Ensure the key block is set up. */
- if (!tls1_setup_key_block(ssl)) {
+ if (!tls1_setup_key_block(hs)) {
return 0;
}
@@ -333,9 +335,9 @@
size_t mac_secret_len = ssl->s3->tmp.new_mac_secret_len;
size_t key_len = ssl->s3->tmp.new_key_len;
size_t iv_len = ssl->s3->tmp.new_fixed_iv_len;
- assert((mac_secret_len + key_len + iv_len) * 2 == ssl->s3->hs->key_block_len);
+ assert((mac_secret_len + key_len + iv_len) * 2 == hs->key_block_len);
- const uint8_t *key_data = ssl->s3->hs->key_block;
+ const uint8_t *key_data = hs->key_block;
const uint8_t *client_write_mac_secret = key_data;
key_data += mac_secret_len;
const uint8_t *server_write_mac_secret = key_data;