Fix ecp_tls_read_group's signature
diff --git a/include/polarssl/ecp.h b/include/polarssl/ecp.h
index 373de8d..ec9067d 100644
--- a/include/polarssl/ecp.h
+++ b/include/polarssl/ecp.h
@@ -296,14 +296,14 @@
  * \brief           Set a group from a TLS ECParameters record
  *
  * \param grp       Destination group
- * \param buf       Start of input buffer
+ * \param buf       &(Start of input buffer)
  * \param len       Buffer length
  *
  * \return          O if successful,
  *                  POLARSSL_ERR_MPI_XXX if initialization failed
  *                  POLARSSL_ERR_ECP_BAD_INPUT_DATA if input is invalid
  */
-int ecp_tls_read_group( ecp_group *grp, const unsigned char *buf, size_t len );
+int ecp_tls_read_group( ecp_group *grp, const unsigned char **buf, size_t len );
 
 /**
  * \brief           Write the TLS ECParameters record for a group
diff --git a/library/ecp.c b/library/ecp.c
index cc79b77..68f20f7 100644
--- a/library/ecp.c
+++ b/library/ecp.c
@@ -589,7 +589,7 @@
 /*
  * Set a group from an ECParameters record (RFC 4492)
  */
-int ecp_tls_read_group( ecp_group *grp, const unsigned char *buf, size_t len )
+int ecp_tls_read_group( ecp_group *grp, const unsigned char **buf, size_t len )
 {
     ecp_group_id id;
 
@@ -602,13 +602,15 @@
     /*
      * First byte is curve_type; only named_curve is handled
      */
-    if( *buf++ != POLARSSL_ECP_TLS_NAMED_CURVE )
+    if( *(*buf)++ != POLARSSL_ECP_TLS_NAMED_CURVE )
         return( POLARSSL_ERR_ECP_BAD_INPUT_DATA );
 
     /*
      * Next two bytes are the namedcurve value
      */
-    id = 256 * buf[0] + buf[1];
+    id = *(*buf)++;
+    id <<= 8;
+    id |= *(*buf)++;
     return ecp_use_known_dp( grp, id );
 }
 
diff --git a/tests/suites/test_suite_ecp.data b/tests/suites/test_suite_ecp.data
index ca71ff3..57b3113 100644
--- a/tests/suites/test_suite_ecp.data
+++ b/tests/suites/test_suite_ecp.data
@@ -212,7 +212,7 @@
 ecp_tls_read_group:"030017":0:256
 
 ECP tls read group #5 (OK, buffer continues)
-ecp_tls_read_group:"030018DEAD":0:384
+ecp_tls_read_group:"0300180000":0:384
 
 ECP tls write-read group #1
 ecp_tls_write_read_group:SECP192R1
diff --git a/tests/suites/test_suite_ecp.function b/tests/suites/test_suite_ecp.function
index 50de46a..64e0147 100644
--- a/tests/suites/test_suite_ecp.function
+++ b/tests/suites/test_suite_ecp.function
@@ -377,6 +377,7 @@
 {
     ecp_group grp;
     unsigned char buf[10];
+    const unsigned char *vbuf = buf;
     int len, ret;
 
     ecp_group_init( &grp );
@@ -384,11 +385,14 @@
 
     len = unhexify( buf, {record} );
 
-    ret = ecp_tls_read_group( &grp, buf, len );
+    ret = ecp_tls_read_group( &grp, &vbuf, len );
 
     TEST_ASSERT( ret == {ret} );
     if( ret == 0)
+    {
         TEST_ASSERT( mpi_msb( &grp.P ) == {bits} );
+        TEST_ASSERT( *vbuf == 0x00 );
+    }
 
     ecp_group_free( &grp );
 }
@@ -399,6 +403,7 @@
 {
     ecp_group grp1, grp2;
     unsigned char buf[10];
+    const unsigned char *vbuf = buf;
     size_t len;
     int ret;
 
@@ -409,7 +414,7 @@
     TEST_ASSERT( ecp_use_known_dp( &grp1, POLARSSL_ECP_DP_{id} ) == 0 );
 
     TEST_ASSERT( ecp_tls_write_group( &grp1, &len, buf, 10 ) == 0 );
-    TEST_ASSERT( ( ret = ecp_tls_read_group( &grp2, buf, len ) ) == 0 );
+    TEST_ASSERT( ( ret = ecp_tls_read_group( &grp2, &vbuf, len ) ) == 0 );
 
     if( ret == 0 )
     {