diff --git a/include/polarssl/ecp.h b/include/polarssl/ecp.h
index 7a58011..ae45c6e 100644
--- a/include/polarssl/ecp.h
+++ b/include/polarssl/ecp.h
@@ -98,28 +98,35 @@
 /**
  * \brief           ECP group structure
  *
- * The curves we consider are defined by y^2 = x^3 - 3x + B mod P,
+ * The curves we consider are defined by y^2 = x^3 + A x + B mod P,
  * and a generator for a large subgroup of order N is fixed.
  *
  * pbits and nbits must be the size of P and N in bits.
  *
- * If modp is NULL, reduction modulo P is done using a generic
- * algorithm. Otherwise, it must point to a function that takes an mpi
- * in the range 0..2^(2*pbits) and transforms it in-place in an integer
- * of little more than pbits, so that the integer may be efficiently
- * brought in the 0..P range by a few additions or substractions. It
- * must return 0 on success and a POLARSSL_ERR_ECP_XXX error on failure.
+ * If modp is NULL, reduction modulo P is done using a generic algorithm.
+ * Otherwise, it must point to a function that takes an mpi in the range
+ * 0..2^(2*pbits)-1 and transforms it in-place in an integer of little more
+ * than pbits, so that the integer may be efficiently brought in the 0..P-1
+ * range by a few additions or substractions. It must return 0 on success and
+ * non-zero on failure.
  */
 typedef struct
 {
     ecp_group_id id;    /*!<  RFC 4492 group ID                 */
     mpi P;              /*!<  prime modulus of the base field   */
+    mpi A;              /*!<  currently unused (-3 assumed)     */
     mpi B;              /*!<  constant term in the equation     */
     ecp_point G;        /*!<  generator of the subgroup used    */
     mpi N;              /*!<  the order of G                    */
     size_t pbits;       /*!<  number of bits in P               */
     size_t nbits;       /*!<  number of bits in N               */
+    unsigned int h;     /*!<  cofactor (unused now: assume 1)   */
     int (*modp)(mpi *); /*!<  function for fast reduction mod P */
+    int (*t_pre)(ecp_point *, void *);  /*!< currently unused   */
+    int (*t_post)(ecp_point *, void *); /*!< currently unused   */
+    void *t_data;                       /*!< currently unused   */
+    ecp_point *T;       /*!<  pre-computed points (unused now)  */
+    size_t T_size;      /*!<  number for pre-computed points    */
 }
 ecp_group;
 
