Replace bits in SSL_HANDSHAKE with bool.
Change-Id: I23f1449d8652a4aa3a9006e04c86c9430127800e
Reviewed-on: https://boringssl-review.googlesource.com/19924
Reviewed-by: Steven Valdez <svaldez@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.cc b/ssl/handshake.cc
index 8087310..8d74b7b 100644
--- a/ssl/handshake.cc
+++ b/ssl/handshake.cc
@@ -122,25 +122,25 @@
SSL_HANDSHAKE::SSL_HANDSHAKE(SSL *ssl_arg)
: ssl(ssl_arg),
- scts_requested(0),
- needs_psk_binder(0),
- received_hello_retry_request(0),
- received_custom_extension(0),
- handshake_finalized(0),
- accept_psk_mode(0),
- cert_request(0),
- certificate_status_expected(0),
- ocsp_stapling_requested(0),
- should_ack_sni(0),
- in_false_start(0),
- in_early_data(0),
- early_data_offered(0),
- can_early_read(0),
- can_early_write(0),
- next_proto_neg_seen(0),
- ticket_expected(0),
- extended_master_secret(0),
- pending_private_key_op(0) {
+ scts_requested(false),
+ needs_psk_binder(false),
+ received_hello_retry_request(false),
+ received_custom_extension(false),
+ handshake_finalized(false),
+ accept_psk_mode(false),
+ cert_request(false),
+ certificate_status_expected(false),
+ ocsp_stapling_requested(false),
+ should_ack_sni(false),
+ in_false_start(false),
+ in_early_data(false),
+ early_data_offered(false),
+ can_early_read(false),
+ can_early_write(false),
+ next_proto_neg_seen(false),
+ ticket_expected(false),
+ extended_master_secret(false),
+ pending_private_key_op(false) {
}
SSL_HANDSHAKE::~SSL_HANDSHAKE() {
@@ -534,7 +534,7 @@
case ssl_hs_early_data_rejected:
ssl->rwstate = SSL_EARLY_DATA_REJECTED;
// Cause |SSL_write| to start failing immediately.
- hs->can_early_write = 0;
+ hs->can_early_write = false;
return -1;
case ssl_hs_early_return:
diff --git a/ssl/handshake_client.cc b/ssl/handshake_client.cc
index 6afd44f..ee8cf7a 100644
--- a/ssl/handshake_client.cc
+++ b/ssl/handshake_client.cc
@@ -507,10 +507,10 @@
// Stash the early data session, so connection properties may be queried out
// of it.
- hs->in_early_data = 1;
+ hs->in_early_data = true;
SSL_SESSION_up_ref(ssl->session);
hs->early_session.reset(ssl->session);
- hs->can_early_write = 1;
+ hs->can_early_write = true;
hs->state = state_read_server_hello;
return ssl_hs_early_return;
@@ -1129,7 +1129,7 @@
return ssl_hs_error;
}
- hs->cert_request = 1;
+ hs->cert_request = true;
hs->ca_names = std::move(ca_names);
ssl->ctx->x509_method->hs_flush_cached_ca_names(hs);
@@ -1566,8 +1566,8 @@
ssl3_can_false_start(ssl) &&
// No False Start on renegotiation (would complicate the state machine).
!ssl->s3->initial_handshake_complete) {
- hs->in_false_start = 1;
- hs->can_early_write = 1;
+ hs->in_false_start = true;
+ hs->can_early_write = true;
return ssl_hs_early_return;
}
@@ -1606,7 +1606,7 @@
// RFC 5077 allows a server to change its mind and send no ticket after
// negotiating the extension. The value of |ticket_expected| is checked in
// |ssl_update_cache| so is cleared here to avoid an unnecessary update.
- hs->ticket_expected = 0;
+ hs->ticket_expected = false;
ssl->method->next_message(ssl);
hs->state = state_process_change_cipher_spec;
return ssl_hs_read_change_cipher_spec;
@@ -1709,7 +1709,7 @@
hs->new_session.reset();
}
- hs->handshake_finalized = 1;
+ hs->handshake_finalized = true;
ssl->s3->initial_handshake_complete = 1;
ssl_update_cache(hs, SSL_SESS_CACHE_CLIENT);
diff --git a/ssl/handshake_server.cc b/ssl/handshake_server.cc
index 71590cf..eeb9f7f 100644
--- a/ssl/handshake_server.cc
+++ b/ssl/handshake_server.cc
@@ -579,7 +579,7 @@
// Determine whether we are doing session resumption.
UniquePtr<SSL_SESSION> session;
- int tickets_supported = 0, renew_ticket = 0;
+ bool tickets_supported = false, renew_ticket = false;
enum ssl_hs_wait_t wait = ssl_get_prev_session(
ssl, &session, &tickets_supported, &renew_ticket, &client_hello);
if (wait != ssl_hs_ok) {
@@ -647,11 +647,11 @@
// Only request a certificate if Channel ID isn't negotiated.
if ((ssl->verify_mode & SSL_VERIFY_PEER_IF_NO_OBC) &&
ssl->s3->tlsext_channel_id_valid) {
- hs->cert_request = 0;
+ hs->cert_request = false;
}
// CertificateRequest may only be sent in certificate-based ciphers.
if (!ssl_cipher_uses_certificate_auth(hs->new_cipher)) {
- hs->cert_request = 0;
+ hs->cert_request = false;
}
if (!hs->cert_request) {
@@ -1568,7 +1568,7 @@
ssl->s3->established_session->not_resumable = 0;
}
- hs->handshake_finalized = 1;
+ hs->handshake_finalized = true;
ssl->s3->initial_handshake_complete = 1;
ssl_update_cache(hs, SSL_SESS_CACHE_SERVER);
diff --git a/ssl/internal.h b/ssl/internal.h
index 5fa3869..03b7f8b 100644
--- a/ssl/internal.h
+++ b/ssl/internal.h
@@ -1232,74 +1232,73 @@
uint8_t *key_block = nullptr;
uint8_t key_block_len = 0;
- // scts_requested is one if the SCT extension is in the ClientHello.
- unsigned scts_requested:1;
+ // scts_requested is true if the SCT extension is in the ClientHello.
+ bool scts_requested:1;
- // needs_psk_binder if the ClientHello has a placeholder PSK binder to be
- // filled in.
- unsigned needs_psk_binder:1;
+ // needs_psk_binder is true if the ClientHello has a placeholder PSK binder to
+ // be filled in.
+ bool needs_psk_binder:1;
- unsigned received_hello_retry_request:1;
+ bool received_hello_retry_request:1;
- unsigned received_custom_extension:1;
+ bool received_custom_extension:1;
// handshake_finalized is true once the handshake has completed, at which
// point accessors should use the established state.
- unsigned handshake_finalized:1;
+ bool handshake_finalized:1;
// accept_psk_mode stores whether the client's PSK mode is compatible with our
// preferences.
- unsigned accept_psk_mode:1;
+ bool accept_psk_mode:1;
- // cert_request is one if a client certificate was requested and zero
- // otherwise.
- unsigned cert_request:1;
+ // cert_request is true if a client certificate was requested.
+ bool cert_request:1;
- // certificate_status_expected is one if OCSP stapling was negotiated and the
+ // certificate_status_expected is true if OCSP stapling was negotiated and the
// server is expected to send a CertificateStatus message. (This is used on
// both the client and server sides.)
- unsigned certificate_status_expected:1;
+ bool certificate_status_expected:1;
- // ocsp_stapling_requested is one if a client requested OCSP stapling.
- unsigned ocsp_stapling_requested:1;
+ // ocsp_stapling_requested is true if a client requested OCSP stapling.
+ bool ocsp_stapling_requested:1;
// should_ack_sni is used by a server and indicates that the SNI extension
// should be echoed in the ServerHello.
- unsigned should_ack_sni:1;
+ bool should_ack_sni:1;
- // in_false_start is one if there is a pending client handshake in False
+ // in_false_start is true if there is a pending client handshake in False
// Start. The client may write data at this point.
- unsigned in_false_start:1;
+ bool in_false_start:1;
- // in_early_data is one if there is a pending handshake that has progressed
+ // in_early_data is true if there is a pending handshake that has progressed
// enough to send and receive early data.
- unsigned in_early_data:1;
+ bool in_early_data:1;
- // early_data_offered is one if the client sent the early_data extension.
- unsigned early_data_offered:1;
+ // early_data_offered is true if the client sent the early_data extension.
+ bool early_data_offered:1;
- // can_early_read is one if application data may be read at this point in the
+ // can_early_read is true if application data may be read at this point in the
// handshake.
- unsigned can_early_read:1;
+ bool can_early_read:1;
- // can_early_write is one if application data may be written at this point in
+ // can_early_write is true if application data may be written at this point in
// the handshake.
- unsigned can_early_write:1;
+ bool can_early_write:1;
// next_proto_neg_seen is one of NPN was negotiated.
- unsigned next_proto_neg_seen:1;
+ bool next_proto_neg_seen:1;
- // ticket_expected is one if a TLS 1.2 NewSessionTicket message is to be sent
+ // ticket_expected is true if a TLS 1.2 NewSessionTicket message is to be sent
// or received.
- unsigned ticket_expected:1;
+ bool ticket_expected:1;
- // extended_master_secret is one if the extended master secret extension is
+ // extended_master_secret is true if the extended master secret extension is
// negotiated in this handshake.
- unsigned extended_master_secret:1;
+ bool extended_master_secret:1;
- // pending_private_key_op is one if there is a pending private key operation
+ // pending_private_key_op is true if there is a pending private key operation
// in progress.
- unsigned pending_private_key_op:1;
+ bool pending_private_key_op:1;
// client_version is the value sent or received in the ClientHello version.
uint16_t client_version = 0;
@@ -2117,8 +2116,8 @@
// be called again. Otherwise, it returns |ssl_hs_error|.
enum ssl_hs_wait_t ssl_get_prev_session(SSL *ssl,
UniquePtr<SSL_SESSION> *out_session,
- int *out_tickets_supported,
- int *out_renew_ticket,
+ bool *out_tickets_supported,
+ bool *out_renew_ticket,
const SSL_CLIENT_HELLO *client_hello);
// The following flags determine which parts of the session are duplicated.
@@ -2293,7 +2292,7 @@
// Retry later.
// |ssl_ticket_aead_error|: an error occured that is fatal to the connection.
enum ssl_ticket_aead_result_t ssl_process_ticket(
- SSL *ssl, UniquePtr<SSL_SESSION> *out_session, int *out_renew_ticket,
+ SSL *ssl, UniquePtr<SSL_SESSION> *out_session, bool *out_renew_ticket,
const uint8_t *ticket, size_t ticket_len, const uint8_t *session_id,
size_t session_id_len);
diff --git a/ssl/s3_pkt.cc b/ssl/s3_pkt.cc
index 858d77a..9051b40 100644
--- a/ssl/s3_pkt.cc
+++ b/ssl/s3_pkt.cc
@@ -228,7 +228,7 @@
max = ssl->session->ticket_max_early_data - ssl->s3->hs->early_data_written;
if (max == 0) {
ssl->s3->wnum = tot;
- ssl->s3->hs->can_early_write = 0;
+ ssl->s3->hs->can_early_write = false;
*out_needs_handshake = 1;
return -1;
}
@@ -433,7 +433,7 @@
rr->length = 0;
ssl_read_buffer_discard(ssl);
// Stop accepting early data.
- ssl->s3->hs->can_early_read = 0;
+ ssl->s3->hs->can_early_read = false;
*out_got_handshake = 1;
return -1;
}
diff --git a/ssl/ssl_lib.cc b/ssl/ssl_lib.cc
index 1f1461f..ed97561 100644
--- a/ssl/ssl_lib.cc
+++ b/ssl/ssl_lib.cc
@@ -1084,7 +1084,7 @@
}
hs->wait = ssl_hs_ok;
- hs->in_early_data = 0;
+ hs->in_early_data = false;
hs->early_session.reset();
// Discard any unfinished writes from the perspective of |SSL_write|'s
diff --git a/ssl/ssl_session.cc b/ssl/ssl_session.cc
index cdae03a..32d3b35 100644
--- a/ssl/ssl_session.cc
+++ b/ssl/ssl_session.cc
@@ -730,18 +730,18 @@
enum ssl_hs_wait_t ssl_get_prev_session(SSL *ssl,
UniquePtr<SSL_SESSION> *out_session,
- int *out_tickets_supported,
- int *out_renew_ticket,
+ bool *out_tickets_supported,
+ bool *out_renew_ticket,
const SSL_CLIENT_HELLO *client_hello) {
// This is used only by servers.
assert(ssl->server);
UniquePtr<SSL_SESSION> session;
- int renew_ticket = 0;
+ bool renew_ticket = false;
// If tickets are disabled, always behave as if no tickets are present.
const uint8_t *ticket = NULL;
size_t ticket_len = 0;
- const int tickets_supported =
+ const bool tickets_supported =
!(SSL_get_options(ssl) & SSL_OP_NO_TICKET) &&
ssl->version > SSL3_VERSION &&
SSL_early_callback_ctx_extension_get(
diff --git a/ssl/t1_lib.cc b/ssl/t1_lib.cc
index 0ff5a09..301096f 100644
--- a/ssl/t1_lib.cc
+++ b/ssl/t1_lib.cc
@@ -681,7 +681,7 @@
}
hs->hostname.reset(hostname_raw);
- hs->should_ack_sni = 1;
+ hs->should_ack_sni = true;
return 1;
}
@@ -894,13 +894,13 @@
return 0;
}
- hs->extended_master_secret = 1;
+ hs->extended_master_secret = true;
}
// Whether EMS is negotiated may not change on renegotiation.
if (ssl->s3->established_session != NULL &&
hs->extended_master_secret !=
- ssl->s3->established_session->extended_master_secret) {
+ !!ssl->s3->established_session->extended_master_secret) {
OPENSSL_PUT_ERROR(SSL, SSL_R_RENEGOTIATION_EMS_MISMATCH);
*out_alert = SSL_AD_ILLEGAL_PARAMETER;
return 0;
@@ -925,7 +925,7 @@
return 0;
}
- hs->extended_master_secret = 1;
+ hs->extended_master_secret = true;
return 1;
}
@@ -1002,7 +1002,7 @@
return 0;
}
- hs->ticket_expected = 1;
+ hs->ticket_expected = true;
return 1;
}
@@ -1112,7 +1112,7 @@
// status_request here does not make sense, but OpenSSL does so and the
// specification does not say anything. Tolerate it but ignore it.
- hs->certificate_status_expected = 1;
+ hs->certificate_status_expected = true;
return 1;
}
@@ -1144,7 +1144,7 @@
return 1;
}
- hs->certificate_status_expected = 1;
+ hs->certificate_status_expected = true;
return CBB_add_u16(out, TLSEXT_TYPE_status_request) &&
CBB_add_u16(out, 0 /* length */);
@@ -1225,7 +1225,7 @@
}
ssl->s3->next_proto_negotiated_len = selected_len;
- hs->next_proto_neg_seen = 1;
+ hs->next_proto_neg_seen = true;
return 1;
}
@@ -1248,7 +1248,7 @@
return 1;
}
- hs->next_proto_neg_seen = 1;
+ hs->next_proto_neg_seen = true;
return 1;
}
@@ -1266,7 +1266,7 @@
if (ssl->ctx->next_protos_advertised_cb(
ssl, &npa, &npa_len, ssl->ctx->next_protos_advertised_cb_arg) !=
SSL_TLSEXT_ERR_OK) {
- hs->next_proto_neg_seen = 0;
+ hs->next_proto_neg_seen = false;
return 1;
}
@@ -1350,7 +1350,7 @@
return 0;
}
- hs->scts_requested = 1;
+ hs->scts_requested = true;
return 1;
}
@@ -1478,7 +1478,7 @@
}
// ALPN takes precedence over NPN.
- hs->next_proto_neg_seen = 0;
+ hs->next_proto_neg_seen = false;
CBS protocol_name_list;
if (!CBS_get_u16_length_prefixed(&contents, &protocol_name_list) ||
@@ -1886,7 +1886,7 @@
return 0;
}
- hs->needs_psk_binder = 1;
+ hs->needs_psk_binder = true;
return CBB_flush(out);
}
@@ -2043,7 +2043,7 @@
return 1;
}
- hs->early_data_offered = 1;
+ hs->early_data_offered = true;
if (!CBB_add_u16(out, TLSEXT_TYPE_early_data) ||
!CBB_add_u16(out, 0) ||
@@ -2089,7 +2089,7 @@
return 0;
}
- hs->early_data_offered = 1;
+ hs->early_data_offered = true;
return 1;
}
@@ -2921,7 +2921,7 @@
tls_extension_find(&ext_index, type);
if (ext == NULL) {
- hs->received_custom_extension = 1;
+ hs->received_custom_extension = true;
if (!custom_ext_parse_serverhello(hs, out_alert, type, &extension)) {
return 0;
}
@@ -2988,7 +2988,7 @@
return -1;
case SSL_TLSEXT_ERR_NOACK:
- hs->should_ack_sni = 0;
+ hs->should_ack_sni = false;
return 1;
default:
@@ -3062,7 +3062,7 @@
}
static enum ssl_ticket_aead_result_t ssl_decrypt_ticket_with_cb(
- SSL *ssl, uint8_t **out, size_t *out_len, int *out_renew_ticket,
+ SSL *ssl, uint8_t **out, size_t *out_len, bool *out_renew_ticket,
const uint8_t *ticket, size_t ticket_len) {
assert(ticket_len >= SSL_TICKET_KEY_NAME_LEN + EVP_MAX_IV_LENGTH);
ScopedEVP_CIPHER_CTX cipher_ctx;
@@ -3076,7 +3076,7 @@
} else if (cb_ret == 0) {
return ssl_ticket_aead_ignore_ticket;
} else if (cb_ret == 2) {
- *out_renew_ticket = 1;
+ *out_renew_ticket = true;
} else {
assert(cb_ret == 1);
}
@@ -3125,7 +3125,7 @@
}
static enum ssl_ticket_aead_result_t ssl_decrypt_ticket_with_method(
- SSL *ssl, uint8_t **out, size_t *out_len, int *out_renew_ticket,
+ SSL *ssl, uint8_t **out, size_t *out_len, bool *out_renew_ticket,
const uint8_t *ticket, size_t ticket_len) {
uint8_t *plaintext = (uint8_t *)OPENSSL_malloc(ticket_len);
if (plaintext == NULL) {
@@ -3149,10 +3149,10 @@
}
enum ssl_ticket_aead_result_t ssl_process_ticket(
- SSL *ssl, UniquePtr<SSL_SESSION> *out_session, int *out_renew_ticket,
+ SSL *ssl, UniquePtr<SSL_SESSION> *out_session, bool *out_renew_ticket,
const uint8_t *ticket, size_t ticket_len, const uint8_t *session_id,
size_t session_id_len) {
- *out_renew_ticket = 0;
+ *out_renew_ticket = false;
out_session->reset();
if ((SSL_get_options(ssl) & SSL_OP_NO_TICKET) ||
diff --git a/ssl/tls13_client.cc b/ssl/tls13_client.cc
index 51d275c..717a34d 100644
--- a/ssl/tls13_client.cc
+++ b/ssl/tls13_client.cc
@@ -147,7 +147,7 @@
}
ssl->method->next_message(ssl);
- hs->received_hello_retry_request = 1;
+ hs->received_hello_retry_request = true;
hs->tls13_state = state_send_second_client_hello;
// 0-RTT is rejected if we receive a HelloRetryRequest.
if (hs->in_early_data) {
@@ -483,7 +483,7 @@
return ssl_hs_error;
}
- hs->cert_request = 1;
+ hs->cert_request = true;
hs->ca_names = std::move(ca_names);
ssl->ctx->x509_method->hs_flush_cached_ca_names(hs);
@@ -565,7 +565,7 @@
SSL *const ssl = hs->ssl;
if (ssl->early_data_accepted) {
- hs->can_early_write = 0;
+ hs->can_early_write = false;
if (!ssl->method->add_alert(ssl, SSL3_AL_WARNING,
TLS1_AD_END_OF_EARLY_DATA)) {
return ssl_hs_error;
diff --git a/ssl/tls13_server.cc b/ssl/tls13_server.cc
index 26ce0e1..969f2ec 100644
--- a/ssl/tls13_server.cc
+++ b/ssl/tls13_server.cc
@@ -289,7 +289,7 @@
// TLS 1.3 session tickets are renewed separately as part of the
// NewSessionTicket.
- int unused_renew;
+ bool unused_renew;
UniquePtr<SSL_SESSION> session;
enum ssl_ticket_aead_result_t ret =
ssl_process_ticket(ssl, &session, &unused_renew, CBS_data(&ticket),
@@ -588,7 +588,7 @@
// Only request a certificate if Channel ID isn't negotiated.
if ((ssl->verify_mode & SSL_VERIFY_PEER_IF_NO_OBC) &&
ssl->s3->tlsext_channel_id_valid) {
- hs->cert_request = 0;
+ hs->cert_request = false;
}
}
@@ -698,9 +698,9 @@
hs->hash_len)) {
return ssl_hs_error;
}
- hs->can_early_write = 1;
- hs->can_early_read = 1;
- hs->in_early_data = 1;
+ hs->can_early_write = true;
+ hs->can_early_read = true;
+ hs->in_early_data = true;
hs->tls13_state = state_process_end_of_early_data;
return ssl_hs_read_end_of_early_data;
}