From: Schanzenbach, Martin Date: Thu, 26 Dec 2019 05:15:42 +0000 (+0900) Subject: fix rekey X-Git-Tag: v0.12.2~53 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=191914dcd42b59e5c9bd980168ff6d14a5e38315;p=oweals%2Fgnunet.git fix rekey --- 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))