tor

The Tor anonymity network
git clone https://git.dasho.dev/tor.git
Log | Files | Refs | README | LICENSE

commit 91f49bc0f0759d0e0a794fbfe8cce5a9bb07e607
parent d5acdadaeffa8e1c61abef5881e9cc6e42d9a755
Author: Nick Mathewson <nickm@torproject.org>
Date:   Mon,  5 Jun 2017 15:51:11 -0400

Fix unit tests to work after own_link_cert assertion

The assert_nonfatal() I had added was triggered by some of the code
that tested the pre-ed case of CERTS cell generation.

Diffstat:
Msrc/or/connection_or.c | 9++++++++-
Msrc/or/connection_or.h | 4++++
Msrc/test/test_link_handshake.c | 2++
3 files changed, 14 insertions(+), 1 deletion(-)

diff --git a/src/or/connection_or.c b/src/or/connection_or.c @@ -2270,6 +2270,12 @@ add_ed25519_cert(certs_cell_t *certs_cell, cert->encoded, cert->encoded_len); } +#ifdef TOR_UNIT_TESTS +int certs_cell_ed25519_disabled_for_testing = 0; +#else +#define certs_cell_ed25519_disabled_for_testing 0 +#endif + /** Send a CERTS cell on the connection <b>conn</b>. Return 0 on success, -1 * on failure. */ int @@ -2320,7 +2326,8 @@ connection_or_send_certs_cell(or_connection_t *conn) CERTTYPE_ED_ID_SIGN, get_master_signing_key_cert()); if (conn_in_server_mode) { - tor_assert_nonfatal(conn->handshake_state->own_link_cert); + tor_assert_nonfatal(conn->handshake_state->own_link_cert || + certs_cell_ed25519_disabled_for_testing); add_ed25519_cert(certs_cell, CERTTYPE_ED_SIGN_LINK, conn->handshake_state->own_link_cert); diff --git a/src/or/connection_or.h b/src/or/connection_or.h @@ -112,5 +112,9 @@ void var_cell_free(var_cell_t *cell); void connection_or_group_set_badness_(smartlist_t *group, int force); +#ifdef TOR_UNIT_TESTS +extern int certs_cell_ed25519_disabled_for_testing; +#endif + #endif diff --git a/src/test/test_link_handshake.c b/src/test/test_link_handshake.c @@ -149,6 +149,8 @@ test_link_handshake_certs_ok(void *arg) /* If we're making a CERTS cell for an ed handshake, let's make sure we * have some Ed25519 certificates and keys. */ init_mock_ed_keys(key2); + } else { + certs_cell_ed25519_disabled_for_testing = 1; } /* c1 has started_here == 1 */