Lines Matching refs:chaining_key
83 memset(&handshake->chaining_key, 0, NOISE_HASH_LEN); in handshake_zero()
311 size_t data_len, const u8 chaining_key[NOISE_HASH_LEN]) in kdf()
325 blake2s256_hmac(secret, data, chaining_key, data_len, NOISE_HASH_LEN); in kdf()
361 const u8 chaining_key[NOISE_HASH_LEN]) in derive_keys()
366 chaining_key); in derive_keys()
371 static bool __must_check mix_dh(u8 chaining_key[NOISE_HASH_LEN], in mix_dh()
380 kdf(chaining_key, key, NULL, dh_calculation, NOISE_HASH_LEN, in mix_dh()
381 NOISE_SYMMETRIC_KEY_LEN, 0, NOISE_PUBLIC_KEY_LEN, chaining_key); in mix_dh()
386 static bool __must_check mix_precomputed_dh(u8 chaining_key[NOISE_HASH_LEN], in mix_precomputed_dh()
393 kdf(chaining_key, key, NULL, precomputed, NOISE_HASH_LEN, in mix_precomputed_dh()
395 chaining_key); in mix_precomputed_dh()
409 static void mix_psk(u8 chaining_key[NOISE_HASH_LEN], u8 hash[NOISE_HASH_LEN], in mix_psk()
415 kdf(chaining_key, temp_hash, key, psk, NOISE_HASH_LEN, NOISE_HASH_LEN, in mix_psk()
416 NOISE_SYMMETRIC_KEY_LEN, NOISE_SYMMETRIC_KEY_LEN, chaining_key); in mix_psk()
421 static void handshake_init(u8 chaining_key[NOISE_HASH_LEN], in handshake_init()
426 memcpy(chaining_key, handshake_init_chaining_key, NOISE_HASH_LEN); in handshake_init()
454 u8 chaining_key[NOISE_HASH_LEN], in message_ephemeral()
460 kdf(chaining_key, NULL, NULL, ephemeral_src, NOISE_HASH_LEN, 0, 0, in message_ephemeral()
461 NOISE_PUBLIC_KEY_LEN, chaining_key); in message_ephemeral()
504 handshake_init(handshake->chaining_key, handshake->hash, in wg_noise_handshake_create_initiation()
513 dst->unencrypted_ephemeral, handshake->chaining_key, in wg_noise_handshake_create_initiation()
517 if (!mix_dh(handshake->chaining_key, key, handshake->ephemeral_private, in wg_noise_handshake_create_initiation()
527 if (!mix_precomputed_dh(handshake->chaining_key, key, in wg_noise_handshake_create_initiation()
558 u8 chaining_key[NOISE_HASH_LEN]; in wg_noise_handshake_consume_initiation() local
569 handshake_init(chaining_key, hash, wg->static_identity.static_public); in wg_noise_handshake_consume_initiation()
572 message_ephemeral(e, src->unencrypted_ephemeral, chaining_key, hash); in wg_noise_handshake_consume_initiation()
575 if (!mix_dh(chaining_key, key, wg->static_identity.static_private, e)) in wg_noise_handshake_consume_initiation()
590 if (!mix_precomputed_dh(chaining_key, key, in wg_noise_handshake_consume_initiation()
615 memcpy(handshake->chaining_key, chaining_key, NOISE_HASH_LEN); in wg_noise_handshake_consume_initiation()
627 memzero_explicit(chaining_key, NOISE_HASH_LEN); in wg_noise_handshake_consume_initiation()
660 dst->unencrypted_ephemeral, handshake->chaining_key, in wg_noise_handshake_create_response()
664 if (!mix_dh(handshake->chaining_key, NULL, handshake->ephemeral_private, in wg_noise_handshake_create_response()
669 if (!mix_dh(handshake->chaining_key, NULL, handshake->ephemeral_private, in wg_noise_handshake_create_response()
674 mix_psk(handshake->chaining_key, handshake->hash, key, in wg_noise_handshake_create_response()
703 u8 chaining_key[NOISE_HASH_LEN]; in wg_noise_handshake_consume_response() local
723 memcpy(chaining_key, handshake->chaining_key, NOISE_HASH_LEN); in wg_noise_handshake_consume_response()
734 message_ephemeral(e, src->unencrypted_ephemeral, chaining_key, hash); in wg_noise_handshake_consume_response()
737 if (!mix_dh(chaining_key, NULL, ephemeral_private, e)) in wg_noise_handshake_consume_response()
741 if (!mix_dh(chaining_key, NULL, wg->static_identity.static_private, e)) in wg_noise_handshake_consume_response()
745 mix_psk(chaining_key, hash, key, preshared_key); in wg_noise_handshake_consume_response()
763 memcpy(handshake->chaining_key, chaining_key, NOISE_HASH_LEN); in wg_noise_handshake_consume_response()
775 memzero_explicit(chaining_key, NOISE_HASH_LEN); in wg_noise_handshake_consume_response()
803 handshake->chaining_key); in wg_noise_handshake_begin_session()
806 handshake->chaining_key); in wg_noise_handshake_begin_session()