All of lore.kernel.org
 help / color / mirror / Atom feed
From: Triffid Hunter <triffid.hunter@gmail.com>
To: derrick@pallas.us
Cc: WireGuard mailing list <wireguard@lists.zx2c4.com>
Subject: Re: [PATCH 1/2] peer: add wg_peer_reset_keys
Date: Thu, 14 Mar 2019 14:47:22 +0800	[thread overview]
Message-ID: <CACL3eKB7SLDoAbWc9+k5s4SE4jDKRu_FYSpUx0Co_83=cdfqog@mail.gmail.com> (raw)
In-Reply-To: <20190313224643.17904-1-derrick@pallas.us>


[-- Attachment #1.1: Type: text/plain, Size: 2225 bytes --]

This sounds interesting, as I often get long (10-30 minute) stalls where wg
is doing nothing but throwing keys back and forth. I'll let you know if it
helps when I have a chance to test properly.

On Thu, 14 Mar 2019 at 06:44, <derrick@pallas.us> wrote:

> From: Derrick Pallas <derrick@pallas.us>
>
> This function will clear the key state for the peer and reset its handshake
> timer.  This is useful, for instance, if it is known that the current key
> material is bad.  Currently, this happens when the private key is changed.
>
> Signed-off-by: Derrick Pallas <derrick@pallas.us>
> ---
>  src/peer.c | 14 ++++++++++++++
>  src/peer.h |  1 +
>  2 files changed, 15 insertions(+)
>
> diff --git a/src/peer.c b/src/peer.c
> index 996f40b..be244a4 100644
> --- a/src/peer.c
> +++ b/src/peer.c
> @@ -160,6 +160,20 @@ static void peer_remove_after_dead(struct wg_peer
> *peer)
>         wg_peer_put(peer);
>  }
>
> +void wg_peer_reset_keys(struct wg_peer *peer)
> +{
> +       if (unlikely(!peer))
> +               return;
> +       lockdep_assert_held(&peer->device->device_update_lock);
> +
> +       wg_noise_handshake_clear(&peer->handshake);
> +       wg_noise_keypairs_clear(&peer->keypairs);
> +       wg_cookie_checker_precompute_peer_keys(peer);
> +       atomic64_set(&peer->last_sent_handshake,
> +               ktime_get_boot_fast_ns() -
> +                       (u64)(REKEY_TIMEOUT + 1) * NSEC_PER_SEC);
> +}
> +
>  /* We have a separate "remove" function make sure that all active places
> where
>   * a peer is currently operating will eventually come to an end and not
> pass
>   * their reference onto another context.
> diff --git a/src/peer.h b/src/peer.h
> index 23af409..f85817f 100644
> --- a/src/peer.h
> +++ b/src/peer.h
> @@ -79,5 +79,6 @@ static inline struct wg_peer *wg_peer_get(struct wg_peer
> *peer)
>  void wg_peer_put(struct wg_peer *peer);
>  void wg_peer_remove(struct wg_peer *peer);
>  void wg_peer_remove_all(struct wg_device *wg);
> +void wg_peer_reset_keys(struct wg_peer *peer);
>
>  #endif /* _WG_PEER_H */
> --
> 2.19.2
>
> _______________________________________________
> WireGuard mailing list
> WireGuard@lists.zx2c4.com
> https://lists.zx2c4.com/mailman/listinfo/wireguard
>

[-- Attachment #1.2: Type: text/html, Size: 3066 bytes --]

[-- Attachment #2: Type: text/plain, Size: 148 bytes --]

_______________________________________________
WireGuard mailing list
WireGuard@lists.zx2c4.com
https://lists.zx2c4.com/mailman/listinfo/wireguard

  parent reply	other threads:[~2019-03-14  6:47 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-03-13 22:46 [PATCH 1/2] peer: add wg_peer_reset_keys derrick
2019-03-13 22:46 ` [PATCH 2/2] netdev: reset peer keys when changing private key derrick
2019-03-14  6:47 ` Triffid Hunter [this message]
2019-04-04 19:20   ` [PATCH 1/2] peer: add wg_peer_reset_keys Derrick Lyndon Pallas
  -- strict thread matches above, loose matches on Subject: below --
2019-01-25  1:53 Derrick Pallas

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CACL3eKB7SLDoAbWc9+k5s4SE4jDKRu_FYSpUx0Co_83=cdfqog@mail.gmail.com' \
    --to=triffid.hunter@gmail.com \
    --cc=derrick@pallas.us \
    --cc=wireguard@lists.zx2c4.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.