summaryrefslogtreecommitdiff
path: root/src/transport/gnunet-communicator-tcp.c
diff options
context:
space:
mode:
authorSchanzenbach, Martin <mschanzenbach@posteo.de>2019-12-26 14:15:42 +0900
committerSchanzenbach, Martin <mschanzenbach@posteo.de>2019-12-26 14:15:42 +0900
commit191914dcd42b59e5c9bd980168ff6d14a5e38315 (patch)
tree98d75de3640376710c319b0ff78f597e829d1372 /src/transport/gnunet-communicator-tcp.c
parent8e4aef844175c6da37861f92f8d104d533f199c9 (diff)
fix rekey
Diffstat (limited to 'src/transport/gnunet-communicator-tcp.c')
-rw-r--r--src/transport/gnunet-communicator-tcp.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/transport/gnunet-communicator-tcp.c b/src/transport/gnunet-communicator-tcp.c
index 12f2dbc42..e902e2316 100644
--- a/src/transport/gnunet-communicator-tcp.c
+++ b/src/transport/gnunet-communicator-tcp.c
@@ -1272,8 +1272,13 @@ inject_rekey (struct Queue *queue)
&thp.purpose,
&rekey.sender_sig));
calculate_hmac (&queue->out_hmac, &rekey, sizeof(rekey), &rekey.hmac);
- memcpy (queue->pwrite_buf, &rekey, sizeof(rekey));
- queue->pwrite_off = sizeof(rekey);
+ GNUNET_assert (0 ==
+ gcry_cipher_encrypt (queue->out_cipher,
+ &queue->cwrite_buf[queue->cwrite_off],
+ sizeof(rekey),
+ &rekey,
+ sizeof(rekey)));
+ queue->cwrite_off += sizeof(rekey);
}
@@ -1339,9 +1344,9 @@ queue_write (void *cls)
(0 ==
GNUNET_TIME_absolute_get_remaining (queue->rekey_time).rel_value_us)))
{
+ inject_rekey (queue);
gcry_cipher_close (queue->out_cipher);
setup_out_cipher (queue);
- inject_rekey (queue);
}
if ((0 == queue->pwrite_off) && (! queue->finishing) &&
(GNUNET_YES == queue->mq_awaits_continue))