From 17281d9369b2b684e88b2982e6f756aa9760df72 Mon Sep 17 00:00:00 2001 From: "Jason A. Donenfeld" Date: Sun, 3 Feb 2019 21:50:54 +0100 Subject: [PATCH] noise: store clamped key instead of raw key Signed-off-by: Jason A. Donenfeld --- src/curve25519.c | 1 - src/curve25519.h | 5 ++--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/src/curve25519.c b/src/curve25519.c index 0d52bc8..648daed 100644 --- a/src/curve25519.c +++ b/src/curve25519.c @@ -68,7 +68,6 @@ static inline void put_unaligned_le64(u64 s, u8 *d) #ifndef __force #define __force #endif -#define clamp_secret(a) curve25519_clamp_secret(a) static noinline void memzero_explicit(void *s, size_t count) { diff --git a/src/curve25519.h b/src/curve25519.h index badcda0..c047019 100644 --- a/src/curve25519.h +++ b/src/curve25519.h @@ -10,7 +10,7 @@ #include enum curve25519_lengths { - CURVE25519_KEY_SIZE = 32, + CURVE25519_KEY_SIZE = 32 }; void curve25519(uint8_t mypublic[static CURVE25519_KEY_SIZE], const uint8_t secret[static CURVE25519_KEY_SIZE], const uint8_t basepoint[static CURVE25519_KEY_SIZE]); @@ -18,8 +18,7 @@ void curve25519_generate_public(uint8_t pub[static CURVE25519_KEY_SIZE], const u static inline void curve25519_clamp_secret(uint8_t secret[static CURVE25519_KEY_SIZE]) { secret[0] &= 248; - secret[31] &= 127; - secret[31] |= 64; + secret[31] = (secret[31] & 127) | 64; } #endif