CURVE25519_KEY_SIZE
NOISE_PUBLIC_KEY_LEN = CURVE25519_KEY_SIZE,
void curve25519_generic(u8 out[at_least CURVE25519_KEY_SIZE],
const u8 scalar[at_least CURVE25519_KEY_SIZE],
const u8 point[at_least CURVE25519_KEY_SIZE]);
curve25519(u8 mypublic[at_least CURVE25519_KEY_SIZE],
const u8 secret[at_least CURVE25519_KEY_SIZE],
const u8 basepoint[at_least CURVE25519_KEY_SIZE]);
curve25519_generate_public(u8 pub[at_least CURVE25519_KEY_SIZE],
const u8 secret[at_least CURVE25519_KEY_SIZE]);
curve25519_clamp_secret(u8 secret[at_least CURVE25519_KEY_SIZE])
curve25519_generate_secret(u8 secret[at_least CURVE25519_KEY_SIZE])
get_random_bytes_wait(secret, CURVE25519_KEY_SIZE);
asmlinkage void curve25519_neon(u8 mypublic[CURVE25519_KEY_SIZE],
const u8 secret[CURVE25519_KEY_SIZE],
const u8 basepoint[CURVE25519_KEY_SIZE]);
static void curve25519_arch(u8 out[CURVE25519_KEY_SIZE],
const u8 scalar[CURVE25519_KEY_SIZE],
const u8 point[CURVE25519_KEY_SIZE])
static void curve25519_base_arch(u8 pub[CURVE25519_KEY_SIZE],
const u8 secret[CURVE25519_KEY_SIZE])
void curve25519_generic(u8 out[CURVE25519_KEY_SIZE],
const u8 scalar[CURVE25519_KEY_SIZE],
const u8 point[CURVE25519_KEY_SIZE])
void curve25519_generic(u8 mypublic[CURVE25519_KEY_SIZE],
const u8 secret[CURVE25519_KEY_SIZE],
const u8 basepoint[CURVE25519_KEY_SIZE])
static const u8 curve25519_null_point[CURVE25519_KEY_SIZE] __aligned(32) = { 0 };
static const u8 curve25519_base_point[CURVE25519_KEY_SIZE] __aligned(32) = { 9 };
static void curve25519_arch(u8 mypublic[CURVE25519_KEY_SIZE],
const u8 secret[CURVE25519_KEY_SIZE],
const u8 basepoint[CURVE25519_KEY_SIZE])
static void curve25519_base_arch(u8 pub[CURVE25519_KEY_SIZE],
const u8 secret[CURVE25519_KEY_SIZE])
curve25519(u8 mypublic[CURVE25519_KEY_SIZE],
const u8 secret[CURVE25519_KEY_SIZE],
const u8 basepoint[CURVE25519_KEY_SIZE])
CURVE25519_KEY_SIZE);
curve25519_generate_public(u8 pub[CURVE25519_KEY_SIZE],
const u8 secret[CURVE25519_KEY_SIZE])
CURVE25519_KEY_SIZE)))
return crypto_memneq(pub, curve25519_null_point, CURVE25519_KEY_SIZE);
static void curve25519_arch(u8 mypublic[CURVE25519_KEY_SIZE],
const u8 secret[CURVE25519_KEY_SIZE],
const u8 basepoint[CURVE25519_KEY_SIZE])
static void curve25519_base_arch(u8 pub[CURVE25519_KEY_SIZE],
const u8 secret[CURVE25519_KEY_SIZE])
u8 private[CURVE25519_KEY_SIZE];
u8 public[CURVE25519_KEY_SIZE];
u8 out[CURVE25519_KEY_SIZE] = {};
u8 result[CURVE25519_KEY_SIZE];
u8 in[CURVE25519_KEY_SIZE];
u8 out[CURVE25519_KEY_SIZE];
u8 out2[CURVE25519_KEY_SIZE];
ret2 = curve25519(out2, in, (u8[CURVE25519_KEY_SIZE]){ 9 });
"in=%*phN", CURVE25519_KEY_SIZE, in);
KUNIT_EXPECT_MEMEQ_MSG(test, out, out2, CURVE25519_KEY_SIZE,
"in=%*phN", CURVE25519_KEY_SIZE, in);
u8 out[CURVE25519_KEY_SIZE];
static void curve25519_arch(u8 mypublic[CURVE25519_KEY_SIZE],
const u8 secret[CURVE25519_KEY_SIZE],
const u8 basepoint[CURVE25519_KEY_SIZE])
static void curve25519_base_arch(u8 pub[CURVE25519_KEY_SIZE],
const u8 secret[CURVE25519_KEY_SIZE])