diff options
author | Werner Koch <wk@gnupg.org> | 2013-03-15 14:43:19 +0100 |
---|---|---|
committer | Werner Koch <wk@gnupg.org> | 2013-03-15 14:53:42 +0100 |
commit | 229f3219f80c9369ed9624242c0436ae6d293201 (patch) | |
tree | 1eaa99a11af69b72dc6c96d1222c4d1ffb0c4228 /src/visibility.h | |
parent | e005629bd7bebb3e13945645c6e1230b44ab16a2 (diff) | |
download | libgcrypt-229f3219f80c9369ed9624242c0436ae6d293201.tar.gz |
mpi: Add functions to manipulate an EC context.
* src/gcrypt.h.in (gcry_mpi_ec_p_new): Remove.
(gcry_mpi_ec_new): New.
(gcry_mpi_ec_get_mpi): New.
(gcry_mpi_ec_get_point): New.
(gcry_mpi_ec_set_mpi): New.
(gcry_mpi_ec_set_point): New.
* src/visibility.c (gcry_mpi_ec_p_new): Remove.
* mpi/ec.c (_gcry_mpi_ec_p_new): Make it an internal function and
change to return an error code.
(_gcry_mpi_ec_get_mpi): New.
(_gcry_mpi_ec_get_point): New.
(_gcry_mpi_ec_set_mpi): New.
(_gcry_mpi_ec_set_point): New.
* src/mpi.h: Add new prototypes.
* src/ec-context.h: New.
* mpi/ec.c: Include that header.
(mpi_ec_ctx_s): Move to ec-context.h, add new fields, and put some
fields into an inner struct.
(point_copy): New.
* cipher/ecc.c (fill_in_curve): Allow passing NULL for R_NBITS.
(mpi_from_keyparam, point_from_keyparam): New.
(_gcry_mpi_ec_new): New.
* tests/t-mpi-point.c (test-curve): New.
(ec_p_new): New. Use it instead of the removed gcry_mpi_ec_p_new.
(get_and_cmp_mpi, get_and_cmp_point): New.
(context_param): New test.
(basic_ec_math_simplified): New test.
(main): Call new tests.
* src/context.c (_gcry_ctx_get_pointer): Check for a NULL CTX.
--
gcry_mpi_ec_p_new() was a specialized version of the more general new
gcry_mpi_ec_new(). It was added to master only a few days ago, thus
there should be no problem to remove it. A replacement can easily be
written (cf. t-mpi-point.c).
Note that gcry_mpi_ec_set_mpi and gcry_mpi_ec_set_point have not yet
been tested.
Diffstat (limited to 'src/visibility.h')
-rw-r--r-- | src/visibility.h | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/visibility.h b/src/visibility.h index 90c6ad14..031537a1 100644 --- a/src/visibility.h +++ b/src/visibility.h @@ -154,7 +154,6 @@ #define gcry_mpi_copy _gcry_mpi_copy #define gcry_mpi_div _gcry_mpi_div #define gcry_mpi_dump _gcry_mpi_dump -#define gcry_mpi_ec_p_new _gcry_mpi_ec_p_new #define gcry_mpi_gcd _gcry_mpi_gcd #define gcry_mpi_get_flag _gcry_mpi_get_flag #define gcry_mpi_get_nbits _gcry_mpi_get_nbits @@ -370,7 +369,6 @@ gcry_err_code_t gcry_md_get (gcry_md_hd_t hd, int algo, #undef gcry_mpi_copy #undef gcry_mpi_div #undef gcry_mpi_dump -#undef gcry_mpi_ec_p_new #undef gcry_mpi_gcd #undef gcry_mpi_get_flag #undef gcry_mpi_get_nbits @@ -550,7 +548,11 @@ MARK_VISIBLEX(gcry_mpi_ec_add) MARK_VISIBLEX(gcry_mpi_ec_dup) MARK_VISIBLEX(gcry_mpi_ec_get_affine) MARK_VISIBLEX(gcry_mpi_ec_mul) -MARK_VISIBLE (gcry_mpi_ec_p_new) +MARK_VISIBLEX(gcry_mpi_ec_new) +MARK_VISIBLEX(gcry_mpi_ec_get_mpi) +MARK_VISIBLEX(gcry_mpi_ec_get_point) +MARK_VISIBLEX(gcry_mpi_ec_set_mpi) +MARK_VISIBLEX(gcry_mpi_ec_set_point) MARK_VISIBLE (gcry_mpi_gcd) MARK_VISIBLE (gcry_mpi_get_flag) MARK_VISIBLE (gcry_mpi_get_nbits) |