diff --git a/ChangeLog b/ChangeLog index 8d00b72..11d4c39 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2020-09-07 NIIBE Yutaka + + * src/modp256r1.c (modp256r1_add, modp256r1_sub) + (modp256r1_reduce): Use memmove. + + * (modp256k1_add, modp256k1_sub): Use memmove. + 2020-09-04 NIIBE Yutaka * src/openpgp-do.c (GPG_DO_ALG_INFO): New. diff --git a/src/modp256k1.c b/src/modp256k1.c index c296453..94c7154 100644 --- a/src/modp256k1.c +++ b/src/modp256k1.c @@ -1,7 +1,7 @@ /* * modp256k1.c -- modulo arithmetic for p256k1 * - * Copyright (C) 2014, 2016 Free Software Initiative of Japan + * Copyright (C) 2014, 2016, 2020 Free Software Initiative of Japan * Author: NIIBE Yutaka * * This file is a part of Gnuk, a GnuPG USB Token implementation. @@ -76,7 +76,7 @@ modp256k1_add (bn256 *X, const bn256 *A, const bn256 *B) cond &= bn256_sub (tmp, X, P256K1); if (cond) /* No-carry AND borrow */ - memcpy (tmp, tmp, sizeof (bn256)); + memmove (tmp, tmp, sizeof (bn256)); else memcpy (X, tmp, sizeof (bn256)); } @@ -95,7 +95,7 @@ modp256k1_sub (bn256 *X, const bn256 *A, const bn256 *B) if (borrow) memcpy (X, tmp, sizeof (bn256)); else - memcpy (tmp, tmp, sizeof (bn256)); + memmove (tmp, tmp, sizeof (bn256)); } /** diff --git a/src/modp256r1.c b/src/modp256r1.c index 90518c5..d22a480 100644 --- a/src/modp256r1.c +++ b/src/modp256r1.c @@ -1,7 +1,7 @@ /* * modp256r1.c -- modulo arithmetic for p256r1 * - * Copyright (C) 2011, 2013, 2014, 2016 + * Copyright (C) 2011, 2013, 2014, 2016, 2020 * Free Software Initiative of Japan * Author: NIIBE Yutaka * @@ -71,7 +71,7 @@ modp256r1_add (bn256 *X, const bn256 *A, const bn256 *B) cond &= bn256_sub (tmp, X, P256R1); if (cond) /* No-carry AND borrow */ - memcpy (tmp, tmp, sizeof (bn256)); + memmove (tmp, tmp, sizeof (bn256)); else memcpy (X, tmp, sizeof (bn256)); } @@ -90,7 +90,7 @@ modp256r1_sub (bn256 *X, const bn256 *A, const bn256 *B) if (borrow) memcpy (X, tmp, sizeof (bn256)); else - memcpy (tmp, tmp, sizeof (bn256)); + memmove (tmp, tmp, sizeof (bn256)); } /** @@ -122,7 +122,7 @@ modp256r1_reduce (bn256 *X, const bn512 *A) S1->word[0] = A->word[0]; borrow = bn256_sub (tmp0, S1, P256R1); if (borrow) - memcpy (tmp0, tmp0, sizeof (bn256)); + memmove (tmp0, tmp0, sizeof (bn256)); else memcpy (S1, tmp0, sizeof (bn256)); /* X = S1 */ @@ -166,7 +166,7 @@ modp256r1_reduce (bn256 *X, const bn512 *A) S5->word[0] = A->word[9]; borrow = bn256_sub (tmp0, S5, P256R1); if (borrow) - memcpy (tmp0, tmp0, sizeof (bn256)); + memmove (tmp0, tmp0, sizeof (bn256)); else memcpy (S5, tmp0, sizeof (bn256)); /* X += S5 */ @@ -180,7 +180,7 @@ modp256r1_reduce (bn256 *X, const bn512 *A) S6->word[0] = A->word[11]; borrow = bn256_sub (tmp0, S6, P256R1); if (borrow) - memcpy (tmp0, tmp0, sizeof (bn256)); + memmove (tmp0, tmp0, sizeof (bn256)); else memcpy (S6, tmp0, sizeof (bn256)); /* X -= S6 */ @@ -195,7 +195,7 @@ modp256r1_reduce (bn256 *X, const bn512 *A) S7->word[0] = A->word[12]; borrow = bn256_sub (tmp0, S7, P256R1); if (borrow) - memcpy (tmp0, tmp0, sizeof (bn256)); + memmove (tmp0, tmp0, sizeof (bn256)); else memcpy (S7, tmp0, sizeof (bn256)); /* X -= S7 */