-int EC_POINT_add(const EC_GROUP *, EC_POINT *r, EC_POINT *a, EC_POINT *b);
-int EC_POINT_dbl(const EC_GROUP *, EC_POINT *r, EC_POINT *a);
+/* TODO: 'set' and 'get' functions for EC_POINTs */
+
+size_t EC_POINT_point2oct(const EC_GROUP *, const EC_POINT *, point_conversion_form_t form,
+ unsigned char *buf, size_t len, BN_CTX *);
+int EC_POINT_oct2point(const EC_GROUP *, EC_POINT *,
+ const unsigned char *buf, size_t len, BN_CTX *);
+
+int EC_POINT_add(const EC_GROUP *, EC_POINT *r, const EC_POINT *a, const EC_POINT *b, BN_CTX *);
+int EC_POINT_dbl(const EC_GROUP *, EC_POINT *r, const EC_POINT *a, BN_CTX *);
+
+int EC_POINT_is_at_infinity(const EC_GROUP *, const EC_POINT *);
+int EC_POINT_is_on_curve(const EC_GROUP *, const EC_POINT *, BN_CTX *);
+
+int EC_POINT_make_affine(const EC_GROUP *, const EC_POINT *, BN_CTX *);