summaryrefslogtreecommitdiff
path: root/src/mpi.h
diff options
context:
space:
mode:
authorWerner Koch <wk@gnupg.org>2007-03-28 10:47:25 +0000
committerWerner Koch <wk@gnupg.org>2007-03-28 10:47:25 +0000
commit6966f968530365a74b9141da4269245b3d393fbb (patch)
treeb6ed25be944dbe662ab485154a086deb5516f8a8 /src/mpi.h
parent5c8ee46baeed3d72945729e5792213cc6850782d (diff)
downloadlibgcrypt-6966f968530365a74b9141da4269245b3d393fbb.tar.gz
Rewrote the ECDSA implementation.
Diffstat (limited to 'src/mpi.h')
-rw-r--r--src/mpi.h32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/mpi.h b/src/mpi.h
index f9a8adbf..6e2ae88c 100644
--- a/src/mpi.h
+++ b/src/mpi.h
@@ -228,5 +228,37 @@ void _gcry_mpi_normalize( gcry_mpi_t a );
#define mpi_invm(a,b,c) _gcry_mpi_invm ((a),(b),(c))
void _gcry_mpi_invm( gcry_mpi_t x, gcry_mpi_t u, gcry_mpi_t v );
+/*-- ec.c --*/
+
+/* Object to represent a point in projective coordinates. */
+struct mpi_point_s;
+typedef struct mpi_point_s mpi_point_t;
+struct mpi_point_s
+{
+ gcry_mpi_t x;
+ gcry_mpi_t y;
+ gcry_mpi_t z;
+};
+
+/* Context used with elliptic curve fucntions. */
+struct mpi_ec_ctx_s;
+typedef struct mpi_ec_ctx_s *mpi_ec_t;
+
+void _gcry_mpi_ec_point_init (mpi_point_t *p);
+void _gcry_mpi_ec_point_free (mpi_point_t *p);
+mpi_ec_t _gcry_mpi_ec_init (gcry_mpi_t p, gcry_mpi_t a);
+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,
+ mpi_point_t *point, mpi_ec_t ctx);
+void _gcry_mpi_ec_add_points (mpi_point_t *result,
+ mpi_point_t *p1, mpi_point_t *p2,
+ mpi_ec_t ctx);
+void _gcry_mpi_ec_mul_point (mpi_point_t *result,
+ gcry_mpi_t scalar, mpi_point_t *point,
+ mpi_ec_t ctx);
+
+
#endif /*G10_MPI_H*/