diff --git a/tests/suites/test_suite_ecp.data b/tests/suites/test_suite_ecp.data
new file mode 100644
index 0000000..85f1637
--- /dev/null
+++ b/tests/suites/test_suite_ecp.data
@@ -0,0 +1,80 @@
+ECP small addition #1
+ecp_small_add:1:"":"":1:"":"":1:0:0
+
+ECP small addition #2
+ecp_small_add:1:"":"":0:"14":"11":0:14:11
+
+ECP small addition #3
+ecp_small_add:0:"13":"00":0:"13":"00":1:0:0
+
+ECP small addition #4
+ecp_small_add:0:"14":"11":0:"14":"36":1:0:0
+
+ECP small addition #5
+ecp_small_add:0:"13":"00":0:"37":"31":0:34:14
+
+ECP small addition #6
+ecp_small_add:0:"14":"11":0:"37":"31":0:45:07
+
+ECP small addition #7
+ecp_small_add:0:"37":"31":0:"37":"31":0:21:32
+
+ECP small addition #8
+ecp_small_add:0:"14":"11":0:"14":"11":0:27:30
+
+ECP small multiplication #0
+ecp_small_mul:0:1:0:0
+
+ECP small multiplication #1
+ecp_small_mul:1:0:17:42
+
+ECP small multiplication #2
+ecp_small_mul:2:0:20:01
+
+ECP small multiplication #3
+ecp_small_mul:3:0:14:11
+
+ECP small multiplication #4
+ecp_small_mul:4:0:34:33
+
+ECP small multiplication #5
+ecp_small_mul:5:0:21:32
+
+ECP small multiplication #6
+ecp_small_mul:6:0:27:30
+
+ECP small multiplication #7
+ecp_small_mul:7:0:27:17
+
+ECP small multiplication #8
+ecp_small_mul:8:0:21:15
+
+ECP small multiplication #9
+ecp_small_mul:9:0:34:14
+
+ECP small multiplication #10
+ecp_small_mul:10:0:14:36
+
+ECP small multiplication #11
+ecp_small_mul:11:0:20:46
+
+ECP small multiplication #12
+ecp_small_mul:12:0:17:05
+
+ECP small multiplication #13
+ecp_small_mul:13:1:0:0
+
+ECP test vectors secp192r1
+ecp_test_vect:SECP192R1
+
+ECP test vectors secp224r1
+ecp_test_vect:SECP224R1
+
+ECP test vectors secp256r1
+ecp_test_vect:SECP256R1
+
+ECP test vectors secp384r1
+ecp_test_vect:SECP384R1
+
+ECP test vectors secp521r1
+ecp_test_vect:SECP521R1
diff --git a/tests/suites/test_suite_ecp.function b/tests/suites/test_suite_ecp.function
new file mode 100644
index 0000000..4427613
--- /dev/null
+++ b/tests/suites/test_suite_ecp.function
@@ -0,0 +1,99 @@
+BEGIN_HEADER
+#include <polarssl/ecp.h>
+END_HEADER
+
+BEGIN_DEPENDENCIES
+depends_on:POLARSSL_ECP_C:POLARSSL_BIGNUM_C
+END_DEPENDENCIES
+
+BEGIN_CASE
+ecp_small_add:a_zero:x_a:y_a:b_zero:x_b:y_b:c_zero:x_c:y_c
+{
+    ecp_group grp;
+    ecp_point A, B, C;
+
+    ecp_group_init( &grp );
+    ecp_point_init( &A ); ecp_point_init( &B ); ecp_point_init( &C );
+
+    TEST_ASSERT( ecp_group_read_string( &grp, 10,
+                "47", "4", "17", "42", "13" ) == 0 );
+
+    if( {a_zero} )
+        ecp_set_zero( &A );
+    else
+        TEST_ASSERT( ecp_point_read_string( &A, 10, {x_a}, {y_a} ) == 0 );
+
+    if( {b_zero} )
+        ecp_set_zero( &B );
+    else
+        TEST_ASSERT( ecp_point_read_string( &B, 10, {x_b}, {y_b} ) == 0 );
+
+    TEST_ASSERT( ecp_add( &grp, &C, &A, &B ) == 0 );
+
+    if( {c_zero} )
+        TEST_ASSERT( C.is_zero );
+    else
+    {
+        TEST_ASSERT( mpi_cmp_int( &C.X, {x_c} ) == 0 );
+        TEST_ASSERT( mpi_cmp_int( &C.Y, {y_c} ) == 0 );
+    }
+
+    TEST_ASSERT( ecp_add( &grp, &C, &B, &A ) == 0 );
+
+    if( {c_zero} )
+        TEST_ASSERT( C.is_zero );
+    else
+    {
+        TEST_ASSERT( mpi_cmp_int( &C.X, {x_c} ) == 0 );
+        TEST_ASSERT( mpi_cmp_int( &C.Y, {y_c} ) == 0 );
+    }
+
+    ecp_group_free( &grp );
+    ecp_point_free( &A ); ecp_point_free( &B ); ecp_point_free( &C );
+}
+END_CASE
+
+BEGIN_CASE
+ecp_small_mul:m:r_zero:x_r:y_r
+{
+    ecp_group grp;
+    ecp_point R;
+    mpi m;
+
+    ecp_group_init( &grp );
+    ecp_point_init( &R );
+    mpi_init( &m );
+
+    TEST_ASSERT( ecp_group_read_string( &grp, 10,
+                "47", "4", "17", "42", "13" ) == 0 );
+
+    TEST_ASSERT( mpi_lset( &m, {m} ) == 0 );
+
+    TEST_ASSERT( ecp_mul( &grp, &R, &m, &grp.G ) == 0 );
+
+    if( {r_zero} )
+        TEST_ASSERT( R.is_zero );
+    else
+    {
+        TEST_ASSERT( mpi_cmp_int( &R.X, {x_r} ) == 0 );
+        TEST_ASSERT( mpi_cmp_int( &R.Y, {y_r} ) == 0 );
+    }
+
+    ecp_group_free( &grp );
+    ecp_point_free( &R );
+    mpi_free( &m );
+}
+END_CASE
+
+BEGIN_CASE
+ecp_test_vect:id
+{
+    ecp_group grp;
+
+    ecp_group_init( &grp );
+
+    TEST_ASSERT( ecp_use_known_dp( &grp, POLARSSL_ECP_DP_{id} ) == 0 );
+
+    ecp_group_free( &grp );
+}
+END_CASE
