Add ecp_check_prvkey, with test

Also group key checking and generation functions in ecp.h and ecp.c.
diff --git a/tests/suites/test_suite_ecp.function b/tests/suites/test_suite_ecp.function
index a051bd7..1d3d3df 100644
--- a/tests/suites/test_suite_ecp.function
+++ b/tests/suites/test_suite_ecp.function
@@ -438,6 +438,28 @@
 END_CASE
 
 BEGIN_CASE
+ecp_check_prvkey:id
+{
+    ecp_group grp;
+    mpi d;
+
+    ecp_group_init( &grp );
+    mpi_init( &d );
+
+    TEST_ASSERT( ecp_use_known_dp( &grp, POLARSSL_ECP_DP_{id} ) == 0 );
+
+    TEST_ASSERT( mpi_lset( &d, 0 ) == 0 );
+    TEST_ASSERT( ecp_check_prvkey( &grp, &d ) == POLARSSL_ERR_ECP_GENERIC );
+
+    TEST_ASSERT( mpi_copy( &d, &grp.N ) == 0 );
+    TEST_ASSERT( ecp_check_prvkey( &grp, &d ) == POLARSSL_ERR_ECP_GENERIC );
+
+    ecp_group_free( &grp );
+    mpi_free( &d );
+}
+END_CASE
+
+BEGIN_CASE
 ecp_gen_keypair:id
 {
     ecp_group grp;
@@ -455,8 +477,8 @@
     TEST_ASSERT( ecp_gen_keypair( &grp, &d, &Q, &rnd_pseudo_rand, &rnd_info )
                  == 0 );
 
-    TEST_ASSERT( mpi_cmp_mpi( &d, &grp.N ) < 0 );
-    TEST_ASSERT( mpi_cmp_int( &d, 1 ) >= 0 );
+    TEST_ASSERT( ecp_check_pubkey( &grp, &Q ) == 0 );
+    TEST_ASSERT( ecp_check_prvkey( &grp, &d ) == 0 );
 
     ecp_group_free( &grp );
     ecp_point_free( &Q );