summaryrefslogtreecommitdiff
path: root/src/mpi.h
diff options
context:
space:
mode:
authorWerner Koch <wk@gnupg.org>2013-09-07 10:06:46 +0200
committerWerner Koch <wk@gnupg.org>2013-09-07 10:16:45 +0200
commit4d8c8c7aa88cddb1624301957e6245405f46d027 (patch)
treec8b7e7550a0beccfaa547e241bcbfda3417f3c4b /src/mpi.h
parentddfefe429660cc5d798f3517208936449247ae5c (diff)
downloadlibgcrypt-4d8c8c7aa88cddb1624301957e6245405f46d027.tar.gz
mpi: Improve support for non-Weierstrass support.
* mpi/ec.c (ec_p_init): Add args MODEL and P. Change all callers. (_gcry_mpi_ec_p_internal_new): Ditto. (_gcry_mpi_ec_p_new): Ditto. * cipher/ecc-curves.c (_gcry_ecc_fill_in_curve): Return GPG_ERR_UNKNOWN_CURVE instead of invalid value. Init curve model. * cipher/ecc.c (ecc_verify, ecc_encrypt_raw): Ditto. * cipher/pubkey.c (sexp_data_to_mpi): Fix EDDSA flag error checking. -- (fixes commit c26be7a337d0bf98193bc58e043209e46d0769bb)
Diffstat (limited to 'src/mpi.h')
-rw-r--r--src/mpi.h10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/mpi.h b/src/mpi.h
index 09ba7170..6406112a 100644
--- a/src/mpi.h
+++ b/src/mpi.h
@@ -291,8 +291,13 @@ enum gcry_mpi_ec_models
struct mpi_ec_ctx_s;
typedef struct mpi_ec_ctx_s *mpi_ec_t;
-mpi_ec_t _gcry_mpi_ec_p_internal_new (gcry_mpi_t p, gcry_mpi_t a);
+mpi_ec_t _gcry_mpi_ec_p_internal_new (enum gcry_mpi_ec_models model,
+ gcry_mpi_t p, gcry_mpi_t a, gcry_mpi_t b);
+gpg_err_code_t _gcry_mpi_ec_p_new (gcry_ctx_t *r_ctx,
+ enum gcry_mpi_ec_models model,
+ gcry_mpi_t p, gcry_mpi_t a, gcry_mpi_t b);
void _gcry_mpi_ec_free (mpi_ec_t ctx);
+
int _gcry_mpi_ec_get_affine (gcry_mpi_t x, gcry_mpi_t y, mpi_point_t point,
mpi_ec_t ctx);
void _gcry_mpi_ec_dup_point (mpi_point_t result,
@@ -303,11 +308,10 @@ void _gcry_mpi_ec_add_points (mpi_point_t result,
void _gcry_mpi_ec_mul_point (mpi_point_t result,
gcry_mpi_t scalar, mpi_point_t point,
mpi_ec_t ctx);
+int _gcry_mpi_ec_curve_point (gcry_mpi_point_t point, mpi_ec_t ctx);
gcry_mpi_t _gcry_mpi_ec_ec2os (gcry_mpi_point_t point, mpi_ec_t ectx);
-gpg_err_code_t _gcry_mpi_ec_p_new (gcry_ctx_t *r_ctx,
- gcry_mpi_t p, gcry_mpi_t a);
gpg_err_code_t _gcry_mpi_ec_new (gcry_ctx_t *r_ctx,
gcry_sexp_t keyparam, const char *curvename);
gcry_mpi_t _gcry_mpi_ec_get_mpi (const char *name, gcry_ctx_t ctx, int copy);