summaryrefslogtreecommitdiff
path: root/src/or/channeltls.c
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2016-09-22 11:22:11 -0400
committerNick Mathewson <nickm@torproject.org>2016-11-03 08:40:11 -0400
commitf156156d56ec61394eb814397c33557762870809 (patch)
tree62348be6bc50bb820c065af59b05a5b33f6c1369 /src/or/channeltls.c
parentb978494ed994cdca7e79ed2e7d256c631391c84d (diff)
downloadtor-f156156d56ec61394eb814397c33557762870809.tar.gz
tor-f156156d56ec61394eb814397c33557762870809.zip
Audit use of tor_tls_cert_get_key().
This function is allowed to return NULL if the certified key isn't RSA. But in a couple of places we were treating this as a bug or internal error, and in one other place we weren't checking for it at all! Caught by Isis during code review for #15055. The serious bug was only on the 15055 branch, thank goodness.
Diffstat (limited to 'src/or/channeltls.c')
-rw-r--r--src/or/channeltls.c10
1 files changed, 3 insertions, 7 deletions
diff --git a/src/or/channeltls.c b/src/or/channeltls.c
index f5b81f03df..a3e1f8c867 100644
--- a/src/or/channeltls.c
+++ b/src/or/channeltls.c
@@ -1955,9 +1955,7 @@ channel_tls_process_certs_cell(var_cell_t *cell, channel_tls_t *chan)
identity_rcvd = tor_tls_cert_get_key(id_cert);
if (!identity_rcvd) {
- //LCOV_EXCL_START
- ERR("Internal error: Couldn't get RSA key from ID cert.");
- //LCOV_EXCL_STOP
+ ERR("Couldn't get RSA key from ID cert.");
}
memcpy(chan->conn->handshake_state->authenticated_rsa_peer_id,
id_digests->d[DIGEST_SHA1], DIGEST_LEN);
@@ -2242,10 +2240,8 @@ channel_tls_process_authenticate_cell(var_cell_t *cell, channel_tls_t *chan)
size_t keysize;
int signed_len;
- if (BUG(!pk)) {
- // LCOV_EXCL_START
- ERR("Internal error: couldn't get RSA key from AUTH cert.");
- // LCOV_EXCL_STOP
+ if (! pk) {
+ ERR("Couldn't get RSA key from AUTH cert.");
}
crypto_digest256(d, (char*)auth, V3_AUTH_BODY_LEN, DIGEST_SHA256);