[tor-commits] [tor/master] Use safe_mem_is_zero for checking curve25519 output for 0-ness
nickm at torproject.org
nickm at torproject.org
Thu Jan 3 16:52:58 UTC 2013
commit 5f219ddd029348df2d384fca5012d96957885cbc
Author: Nick Mathewson <nickm at torproject.org>
Date: Tue Dec 25 22:25:09 2012 -0500
Use safe_mem_is_zero for checking curve25519 output for 0-ness
This should make the intent more explicit. Probably needless, though.
---
src/common/crypto_curve25519.c | 6 +-----
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 6034706..f3ecdb5 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 8eab55a..b601d1e 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);
More information about the tor-commits
mailing list