Mailing List Archive

[PATCH] ecc: Simplify signature code
* cipher/ecc-gost.c (_gcry_ecc_gost_sign): Use implemented function.
* cipher/ecc.c (ecc_verify): Remove redundant code.
--

Signed-off-by: Tianjia Zhang <tianjia.zhang@linux.alibaba.com>
---
cipher/ecc-gost.c | 18 ++++--------------
cipher/ecc.c | 22 +---------------------
2 files changed, 5 insertions(+), 35 deletions(-)

diff --git a/cipher/ecc-gost.c b/cipher/ecc-gost.c
index e9dfc597..44654a47 100644
--- a/cipher/ecc-gost.c
+++ b/cipher/ecc-gost.c
@@ -45,8 +45,7 @@ _gcry_ecc_gost_sign (gcry_mpi_t input, mpi_ec_t ec,
gcry_mpi_t k, dr, sum, ke, x, e;
mpi_point_struct I;
gcry_mpi_t hash;
- const void *abuf;
- unsigned int abits, qbits;
+ unsigned int qbits;

if (DBG_CIPHER)
log_mpidump ("gost sign hash ", input );
@@ -54,18 +53,9 @@ _gcry_ecc_gost_sign (gcry_mpi_t input, mpi_ec_t ec,
qbits = mpi_get_nbits (ec->n);

/* Convert the INPUT into an MPI if needed. */
- if (mpi_is_opaque (input))
- {
- abuf = mpi_get_opaque (input, &abits);
- rc = _gcry_mpi_scan (&hash, GCRYMPI_FMT_USG, abuf, (abits+7)/8, NULL);
- if (rc)
- return rc;
- if (abits > qbits)
- mpi_rshift (hash, hash, abits - qbits);
- }
- else
- hash = input;
-
+ rc = _gcry_dsa_normalize_hash (input, &hash, qbits);
+ if (rc)
+ return rc;

k = NULL;
dr = mpi_alloc (0);
diff --git a/cipher/ecc.c b/cipher/ecc.c
index 10e11243..1195f5ec 100644
--- a/cipher/ecc.c
+++ b/cipher/ecc.c
@@ -813,27 +813,7 @@ ecc_verify (gcry_sexp_t s_sig, gcry_sexp_t s_data, gcry_sexp_t s_keyparms)
}
else
{
- if (mpi_is_opaque (data))
- {
- const void *abuf;
- unsigned int abits, qbits;
- gcry_mpi_t a;
-
- qbits = mpi_get_nbits (ec->n);
-
- abuf = mpi_get_opaque (data, &abits);
- rc = _gcry_mpi_scan (&a, GCRYMPI_FMT_USG, abuf, (abits+7)/8, NULL);
- if (!rc)
- {
- if (abits > qbits)
- mpi_rshift (a, a, abits - qbits);
-
- rc = _gcry_ecc_ecdsa_verify (a, ec, sig_r, sig_s);
- _gcry_mpi_release (a);
- }
- }
- else
- rc = _gcry_ecc_ecdsa_verify (data, ec, sig_r, sig_s);
+ rc = _gcry_ecc_ecdsa_verify (data, ec, sig_r, sig_s);
}

leave:
--
2.17.1


_______________________________________________
Gcrypt-devel mailing list
Gcrypt-devel@gnupg.org
http://lists.gnupg.org/mailman/listinfo/gcrypt-devel
Re: [PATCH] ecc: Simplify signature code [ In reply to ]
Tianjia Zhang <tianjia.zhang@linux.alibaba.com> wrote:
> * cipher/ecc-gost.c (_gcry_ecc_gost_sign): Use implemented function.
> * cipher/ecc.c (ecc_verify): Remove redundant code.

Thanks. Applied.
--

_______________________________________________
Gcrypt-devel mailing list
Gcrypt-devel@gnupg.org
http://lists.gnupg.org/mailman/listinfo/gcrypt-devel