diff options
author | Nick Mathewson <nickm@torproject.org> | 2012-12-25 22:25:09 -0500 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2013-01-03 11:29:48 -0500 |
commit | 5f219ddd029348df2d384fca5012d96957885cbc (patch) | |
tree | 436e9e85c7bc06fd31194cf63b021fa069762b21 | |
parent | f07a5125cb5bb9ee5968ded163cfdd73e5ad028c (diff) | |
download | tor-5f219ddd029348df2d384fca5012d96957885cbc.tar.gz tor-5f219ddd029348df2d384fca5012d96957885cbc.zip |
Use safe_mem_is_zero for checking curve25519 output for 0-ness
This should make the intent more explicit. Probably needless, though.
-rw-r--r-- | src/common/crypto_curve25519.c | 6 | ||||
-rw-r--r-- | src/or/onion_ntor.c | 24 |
2 files changed, 5 insertions, 25 deletions
diff --git a/src/common/crypto_curve25519.c b/src/common/crypto_curve25519.c index 60347065d1..f3ecdb5c7e 100644 --- a/src/common/crypto_curve25519.c +++ b/src/common/crypto_curve25519.c @@ -49,11 +49,7 @@ curve25519_impl(uint8_t *output, const uint8_t *secret, int curve25519_public_key_is_ok(const curve25519_public_key_t *key) { - static const uint8_t zero[] = - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" - "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"; - - return tor_memneq(key->public_key, zero, CURVE25519_PUBKEY_LEN); + return !safe_mem_is_zero(key->public_key, CURVE25519_PUBKEY_LEN); } /** Generate a new keypair and return the secret key. If <b>extra_strong</b> diff --git a/src/or/onion_ntor.c b/src/or/onion_ntor.c index 8eab55acfe..b601d1ebb1 100644 --- a/src/or/onion_ntor.c +++ b/src/or/onion_ntor.c @@ -167,18 +167,10 @@ onion_skin_ntor_server_handshake(const uint8_t *onion_skin, /* build secret_input */ curve25519_handshake(si, &s.seckey_y, &s.pubkey_X); - bad = tor_memeq(si, - "\x00\x00\x00\x00\x00\x00\x00\x00" - "\x00\x00\x00\x00\x00\x00\x00\x00" - "\x00\x00\x00\x00\x00\x00\x00\x00" - "\x00\x00\x00\x00\x00\x00\x00\x00", 32); + bad = safe_mem_is_zero(si, CURVE25519_OUTPUT_LEN); si += CURVE25519_OUTPUT_LEN; curve25519_handshake(si, &keypair_bB->seckey, &s.pubkey_X); - bad |= tor_memeq(si, - "\x00\x00\x00\x00\x00\x00\x00\x00" - "\x00\x00\x00\x00\x00\x00\x00\x00" - "\x00\x00\x00\x00\x00\x00\x00\x00" - "\x00\x00\x00\x00\x00\x00\x00\x00", 32); + bad |= safe_mem_is_zero(si, CURVE25519_OUTPUT_LEN); si += CURVE25519_OUTPUT_LEN; APPEND(si, my_node_id, DIGEST_LEN); @@ -257,19 +249,11 @@ onion_skin_ntor_client_handshake( /* Compute secret_input */ curve25519_handshake(si, &handshake_state->seckey_x, &s.pubkey_Y); - bad = tor_memeq(si, - "\x00\x00\x00\x00\x00\x00\x00\x00" - "\x00\x00\x00\x00\x00\x00\x00\x00" - "\x00\x00\x00\x00\x00\x00\x00\x00" - "\x00\x00\x00\x00\x00\x00\x00\x00", 32); + bad = safe_mem_is_zero(si, CURVE25519_OUTPUT_LEN); si += CURVE25519_OUTPUT_LEN; curve25519_handshake(si, &handshake_state->seckey_x, &handshake_state->pubkey_B); - bad |= tor_memeq(si, - "\x00\x00\x00\x00\x00\x00\x00\x00" - "\x00\x00\x00\x00\x00\x00\x00\x00" - "\x00\x00\x00\x00\x00\x00\x00\x00" - "\x00\x00\x00\x00\x00\x00\x00\x00", 32); + bad |= safe_mem_is_zero(si, CURVE25519_OUTPUT_LEN); si += CURVE25519_OUTPUT_LEN; APPEND(si, handshake_state->router_id, DIGEST_LEN); APPEND(si, handshake_state->pubkey_B.public_key, CURVE25519_PUBKEY_LEN); |