aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/src/crypto/include/zinc/curve25519.h
diff options
context:
space:
mode:
authorJason A. Donenfeld <Jason@zx2c4.com>2019-02-03 21:50:54 +0100
committerJason A. Donenfeld <Jason@zx2c4.com>2019-02-03 21:51:18 +0100
commit897548e927fc90d13a19e1b1f29a549e7f885621 (patch)
treed27bc7200af21ab98724973011b5a78de6dcdba8 /src/crypto/include/zinc/curve25519.h
parentchacha20poly1305: permit unaligned strides on certain platforms (diff)
downloadwireguard-monolithic-historical-897548e927fc90d13a19e1b1f29a549e7f885621.tar.xz
wireguard-monolithic-historical-897548e927fc90d13a19e1b1f29a549e7f885621.zip
noise: store clamped key instead of raw key
Diffstat (limited to 'src/crypto/include/zinc/curve25519.h')
-rw-r--r--src/crypto/include/zinc/curve25519.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/crypto/include/zinc/curve25519.h b/src/crypto/include/zinc/curve25519.h
index 0b46552..127d8a3 100644
--- a/src/crypto/include/zinc/curve25519.h
+++ b/src/crypto/include/zinc/curve25519.h
@@ -19,4 +19,10 @@ void curve25519_generate_secret(u8 secret[CURVE25519_KEY_SIZE]);
bool __must_check curve25519_generate_public(
u8 pub[CURVE25519_KEY_SIZE], const u8 secret[CURVE25519_KEY_SIZE]);
+static inline void curve25519_clamp_secret(u8 secret[CURVE25519_KEY_SIZE])
+{
+ secret[0] &= 248;
+ secret[31] = (secret[31] & 127) | 64;
+}
+
#endif /* _ZINC_CURVE25519_H */