X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=tfctrapi.c;h=67ec44b714f37efcc78686f7f3857f41afa45c1d;hb=0b911d4a813fe164d62ef6ef132c5a4f9a441d57;hp=fcd14eef4f0bd2dd2598daa2cb5651489f1a4939;hpb=efa545d64b910923248233618e774ca3b87efebb;p=tfcrypt.git diff --git a/tfctrapi.c b/tfctrapi.c index fcd14ee..67ec44b 100644 --- a/tfctrapi.c +++ b/tfctrapi.c @@ -6,9 +6,12 @@ void tf_ctr_set(void *ctr, const void *sctr, size_t sctrsz) TF_UNIT_TYPE usctr[TF_NR_BLOCK_UNITS]; TF_UNIT_TYPE *uctr = ctr; + data_to_words(uctr, TF_BLOCK_SIZE); + memset(usctr, 0, TF_BLOCK_SIZE); memcpy(usctr, sctr, sctrsz > TF_BLOCK_SIZE ? TF_BLOCK_SIZE : sctrsz); - ctr_add(uctr, usctr, TF_NR_BLOCK_UNITS); - data_to_words(uctr, TF_BLOCK_SIZE); + data_to_words(usctr, TF_BLOCK_SIZE); + + ctr_add(uctr, TF_NR_BLOCK_UNITS, usctr, TF_NR_BLOCK_UNITS); memset(usctr, 0, TF_BLOCK_SIZE); }