Create ecp_group_copy() and use it
diff --git a/include/polarssl/ecp.h b/include/polarssl/ecp.h
index 2c0009c..2082bd9 100644
--- a/include/polarssl/ecp.h
+++ b/include/polarssl/ecp.h
@@ -220,6 +220,17 @@
int ecp_copy( ecp_point *P, const ecp_point *Q );
/**
+ * \brief Copy the contents of a group object
+ *
+ * \param dst Destination group
+ * \param src Source group
+ *
+ * \return 0 if successful,
+ * POLARSSL_ERR_MPI_MALLOC_FAILED if memory allocation failed
+ */
+int ecp_group_copy( ecp_group *dst, const ecp_group *src );
+
+/**
* \brief Import a non-zero point from two ASCII strings
*
* \param P Destination point
diff --git a/library/ecp.c b/library/ecp.c
index a2d13c4..09a021b 100644
--- a/library/ecp.c
+++ b/library/ecp.c
@@ -182,6 +182,14 @@
}
/*
+ * Copy the contents of a group object
+ */
+int ecp_group_copy( ecp_group *dst, const ecp_group *src )
+{
+ return ecp_use_known_dp( dst, src->id );
+}
+
+/*
* Import a non-zero point from ASCII strings
*/
int ecp_point_read_string( ecp_point *P, int radix,
diff --git a/programs/pkey/ecdsa.c b/programs/pkey/ecdsa.c
index 06f1123..94e00df 100644
--- a/programs/pkey/ecdsa.c
+++ b/programs/pkey/ecdsa.c
@@ -152,9 +152,9 @@
printf( " . Preparing verification context..." );
fflush( stdout );
- if( ( ret = ecp_use_known_dp( &ctx_verify.grp, ctx_sign.grp.id ) ) != 0 )
+ if( ( ret = ecp_group_copy( &ctx_verify.grp, &ctx_sign.grp ) ) != 0 )
{
- printf( " failed\n ! ecp_use_known_dp returned %d\n", ret );
+ printf( " failed\n ! ecp_group_copy returned %d\n", ret );
goto exit;
}