memzero_explicit(c, sizeof(c));
}
-static void normalize_key(uint8_t *z)
+static void clamp_key(uint8_t *z)
{
z[31] = (z[31] & 127) | 64;
z[0] &= 248;
fe a = { 1 }, b = { 9 }, c = { 0 }, d = { 1 }, e, f;
memcpy(z, private_key, sizeof(z));
- normalize_key(z);
+ clamp_key(z);
for (i = 254; i >= 0; --i) {
r = (z[i >> 3] >> (i & 7)) & 1;
void wg_generate_private_key(wg_key private_key)
{
wg_generate_preshared_key(private_key);
- normalize_key(private_key);
+ clamp_key(private_key);
}
void wg_generate_preshared_key(wg_key preshared_key)
o[a] = c[a];
}
- function normalizeKey(z) {
+ function clamp(z) {
z[31] = (z[31] & 127) | 64;
z[0] &= 248;
}
_9 = gf([9]);
for (var i = 0; i < 32; ++i)
z[i] = privateKey[i];
- normalizeKey(z);
+ clamp(z);
for (var i = 254; i >= 0; --i) {
r = (z[i >>> 3] >>> (i & 7)) & 1;
cswap(a, b, r);
function generatePrivateKey() {
var privateKey = generatePresharedKey();
- normalizeKey(privateKey);
+ clamp(privateKey);
return privateKey;
}
#ifndef __force
#define __force
#endif
-#define normalize_secret(a) curve25519_normalize_secret(a)
+#define clamp_secret(a) curve25519_clamp_secret(a)
static noinline void memzero_explicit(void *s, size_t count)
{
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]);
void curve25519_generate_public(uint8_t pub[static CURVE25519_KEY_SIZE], const uint8_t secret[static CURVE25519_KEY_SIZE]);
-static inline void curve25519_normalize_secret(uint8_t secret[static CURVE25519_KEY_SIZE])
+static inline void curve25519_clamp_secret(uint8_t secret[static CURVE25519_KEY_SIZE])
{
secret[0] &= 248;
secret[31] &= 127;
return 1;
}
if (!strcmp(argv[0], "genkey"))
- curve25519_normalize_secret(key);
+ curve25519_clamp_secret(key);
key_to_base64(base64, key);
puts(base64);