Add mbedtls_ecdh_can_do

All curves can currently do ECDH, but to make the API symmetric and
future-proof, add mbedtls_ecdh_can_do() to go with mbedtls_ecdsa_can_do().
diff --git a/include/mbedtls/ecdh.h b/include/mbedtls/ecdh.h
index 7f61c45..3948d7c 100644
--- a/include/mbedtls/ecdh.h
+++ b/include/mbedtls/ecdh.h
@@ -145,6 +145,15 @@
 mbedtls_ecdh_context;
 
 /**
+ * \brief          Check whether a given group can be used for ECDH.
+ *
+ * \param gid      The ECP group ID to check.
+ *
+ * \return         \c 1 if the group can be used, \c 0 otherwise
+ */
+int mbedtls_ecdh_can_do( mbedtls_ecp_group_id gid );
+
+/**
  * \brief           This function generates an ECDH keypair on an elliptic
  *                  curve.
  *
diff --git a/library/ecdh.c b/library/ecdh.c
index 66a2d16..648becb 100644
--- a/library/ecdh.c
+++ b/library/ecdh.c
@@ -63,6 +63,13 @@
 #endif
 }
 
+int mbedtls_ecdh_can_do( mbedtls_ecp_group_id gid )
+{
+    /* At this time, all groups support ECDH. */
+    (void) gid;
+    return 1;
+}
+
 #if !defined(MBEDTLS_ECDH_GEN_PUBLIC_ALT)
 /*
  * Generate public key (restartable version)
diff --git a/programs/test/benchmark.c b/programs/test/benchmark.c
index 7524f5c..502b15d 100644
--- a/programs/test/benchmark.c
+++ b/programs/test/benchmark.c
@@ -911,6 +911,9 @@
              curve_info->grp_id != MBEDTLS_ECP_DP_NONE;
              curve_info++ )
         {
+            if( ! mbedtls_ecdh_can_do( curve_info->grp_id ) )
+                continue;
+
             mbedtls_ecdh_init( &ecdh );
 
             CHECK_AND_CONTINUE( mbedtls_ecp_group_load( &ecdh.grp, curve_info->grp_id ) );
@@ -956,6 +959,9 @@
              curve_info->grp_id != MBEDTLS_ECP_DP_NONE;
              curve_info++ )
         {
+            if( ! mbedtls_ecdh_can_do( curve_info->grp_id ) )
+                continue;
+
             mbedtls_ecdh_init( &ecdh );
 
             CHECK_AND_CONTINUE( mbedtls_ecp_group_load( &ecdh.grp, curve_info->grp_id ) );
@@ -1012,6 +1018,9 @@
             curve_info->grp_id != MBEDTLS_ECP_DP_NONE;
             curve_info++ )
         {
+            if( ! mbedtls_ecdh_can_do( curve_info->grp_id ) )
+                continue;
+
             mbedtls_ecdh_init( &ecdh_srv );
             mbedtls_ecdh_init( &ecdh_cli );
             CHECK_AND_CONTINUE( mbedtls_ecdh_setup( &ecdh_srv, curve_info->grp_id ) );