 +	}
 +	HPOSTAMBLE
 +}
-+EXPORT_SYMBOL(__hsiphash_unaligned);
 +#endif
 +
 +/**

+
+static inline void queue_encrypt_reset(struct sk_buff_head *queue, struct noise_keypair *keypair)
+{
+	struct sk_buff *skb;
+	bool have_simd = chacha20poly1305_init_simd();
+	skb_queue_walk(queue, skb) {
+		skb_encrypt(skb, keypair, have_simd);
+		skb_reset(skb);
+	}
+	chacha20poly1305_deinit_simd(have_simd);

+#include "packets.h"
+
+/*
+ * Timer for retransmitting the handshake if we don't hear back after `REKEY_TIMEOUT + jitter` ms
+ * Timer for sending empty packet if we have received a packet but after have not sent one for `KEEPALIVE_TIMEOUT` ms
+ * Timer for initiating new handshake if we have sent a packet but after have not received one (even empty) for `(KEEPALIVE_TIMEOUT + REKEY_TIMEOUT)` ms
+ * Timer for zeroing out all ephemeral keys after `(REJECT_AFTER_TIME * 3)` ms if no new keys have been received
