NOISE_PUBLIC_KEY_LEN
const u8 pubkey[NOISE_PUBLIC_KEY_LEN],
blake2s_update(&blake, pubkey, NOISE_PUBLIC_KEY_LEN);
u8 unencrypted_ephemeral[NOISE_PUBLIC_KEY_LEN];
u8 encrypted_static[noise_encrypted_len(NOISE_PUBLIC_KEY_LEN)];
u8 unencrypted_ephemeral[NOISE_PUBLIC_KEY_LEN];
NOISE_PUBLIC_KEY_LEN,
NOISE_PUBLIC_KEY_LEN,
nla_len(attrs[WGPEER_A_PUBLIC_KEY]) == NOISE_PUBLIC_KEY_LEN)
NOISE_PUBLIC_KEY_LEN)) {
NOISE_PUBLIC_KEY_LEN) {
u8 public_key[NOISE_PUBLIC_KEY_LEN];
private_key, NOISE_PUBLIC_KEY_LEN))
BUILD_BUG_ON(WG_KEY_LEN != NOISE_PUBLIC_KEY_LEN);
fail = nla_put(skb, WGPEER_A_PUBLIC_KEY, NOISE_PUBLIC_KEY_LEN,
const u8 private_key[NOISE_PUBLIC_KEY_LEN])
NOISE_PUBLIC_KEY_LEN);
const u8 private[NOISE_PUBLIC_KEY_LEN],
const u8 public[NOISE_PUBLIC_KEY_LEN])
u8 dh_calculation[NOISE_PUBLIC_KEY_LEN];
NOISE_SYMMETRIC_KEY_LEN, 0, NOISE_PUBLIC_KEY_LEN, chaining_key);
memzero_explicit(dh_calculation, NOISE_PUBLIC_KEY_LEN);
const u8 precomputed[NOISE_PUBLIC_KEY_LEN])
static u8 zero_point[NOISE_PUBLIC_KEY_LEN];
if (unlikely(!crypto_memneq(precomputed, zero_point, NOISE_PUBLIC_KEY_LEN)))
NOISE_SYMMETRIC_KEY_LEN, 0, NOISE_PUBLIC_KEY_LEN,
const u8 remote_static[NOISE_PUBLIC_KEY_LEN])
mix_hash(hash, remote_static, NOISE_PUBLIC_KEY_LEN);
static void message_ephemeral(u8 ephemeral_dst[NOISE_PUBLIC_KEY_LEN],
const u8 ephemeral_src[NOISE_PUBLIC_KEY_LEN],
memcpy(ephemeral_dst, ephemeral_src, NOISE_PUBLIC_KEY_LEN);
mix_hash(hash, ephemeral_src, NOISE_PUBLIC_KEY_LEN);
NOISE_PUBLIC_KEY_LEN, chaining_key);
NOISE_PUBLIC_KEY_LEN);
NOISE_PUBLIC_KEY_LEN, key, handshake->hash);
u8 s[NOISE_PUBLIC_KEY_LEN];
u8 e[NOISE_PUBLIC_KEY_LEN];
const u8 peer_public_key[NOISE_PUBLIC_KEY_LEN],
memcpy(handshake->remote_ephemeral, e, NOISE_PUBLIC_KEY_LEN);
memcpy(handshake->remote_static, peer_public_key, NOISE_PUBLIC_KEY_LEN);
u8 e[NOISE_PUBLIC_KEY_LEN];
u8 ephemeral_private[NOISE_PUBLIC_KEY_LEN];
u8 static_private[NOISE_PUBLIC_KEY_LEN];
NOISE_PUBLIC_KEY_LEN);
memcpy(handshake->remote_ephemeral, e, NOISE_PUBLIC_KEY_LEN);
memset(&handshake->ephemeral_private, 0, NOISE_PUBLIC_KEY_LEN);
memzero_explicit(ephemeral_private, NOISE_PUBLIC_KEY_LEN);
memset(&handshake->remote_ephemeral, 0, NOISE_PUBLIC_KEY_LEN);
memzero_explicit(static_private, NOISE_PUBLIC_KEY_LEN);
const u8 private_key[NOISE_PUBLIC_KEY_LEN]);
u8 static_public[NOISE_PUBLIC_KEY_LEN];
u8 static_private[NOISE_PUBLIC_KEY_LEN];
u8 ephemeral_private[NOISE_PUBLIC_KEY_LEN];
u8 remote_static[NOISE_PUBLIC_KEY_LEN];
u8 remote_ephemeral[NOISE_PUBLIC_KEY_LEN];
u8 precomputed_static_static[NOISE_PUBLIC_KEY_LEN];
const u8 peer_public_key[NOISE_PUBLIC_KEY_LEN],
const u8 public_key[NOISE_PUBLIC_KEY_LEN],
const u8 public_key[NOISE_PUBLIC_KEY_LEN],
const u8 pubkey[NOISE_PUBLIC_KEY_LEN])
const u64 hash = siphash(pubkey, NOISE_PUBLIC_KEY_LEN, &table->key);
const u8 pubkey[NOISE_PUBLIC_KEY_LEN])
NOISE_PUBLIC_KEY_LEN)) {
const u8 pubkey[NOISE_PUBLIC_KEY_LEN]);