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;
     }