Simplify the ChangeCipherSpec logic. It's the same between TLS and SSL 3.0. There's also no need for the do_change_cipher_spec wrapper (it no longer needs checks to ensure it isn't called at a bad place). Finally fold the setup_key_block call into change_cipher_spec. Change-Id: I7917f48e1a322f5fbafcf1dfb8ad53f66565c314 Reviewed-on: https://boringssl-review.googlesource.com/6834 Reviewed-by: Adam Langley <alangley@gmail.com>
diff --git a/ssl/s3_srvr.c b/ssl/s3_srvr.c index 489f585..8f1899d 100644 --- a/ssl/s3_srvr.c +++ b/ssl/s3_srvr.c
@@ -425,7 +425,7 @@ goto end; } - if (!ssl3_do_change_cipher_spec(ssl)) { + if (!tls1_change_cipher_state(ssl, SSL3_CHANGE_CIPHER_SERVER_READ)) { ret = -1; goto end; } @@ -502,11 +502,6 @@ case SSL3_ST_SW_CHANGE_A: case SSL3_ST_SW_CHANGE_B: - if (!ssl->enc_method->setup_key_block(ssl)) { - ret = -1; - goto end; - } - ret = ssl3_send_change_cipher_spec(ssl, SSL3_ST_SW_CHANGE_A, SSL3_ST_SW_CHANGE_B); if (ret <= 0) { @@ -515,8 +510,7 @@ ssl->state = SSL3_ST_SW_FINISHED_A; ssl->init_num = 0; - if (!ssl->enc_method->change_cipher_state( - ssl, SSL3_CHANGE_CIPHER_SERVER_WRITE)) { + if (!tls1_change_cipher_state(ssl, SSL3_CHANGE_CIPHER_SERVER_WRITE)) { ret = -1; goto end; }