+static int gtoraw(group *gg, buf *b, ec *x) {
+ gctx_ec *g = (gctx_ec *)gg; ec t = EC_INIT; int rc;
+ EC_OUT(g->ei.c, &t, x); rc = ec_putraw(g->ei.c, b, &t);
+ EC_DESTROY(&t); return (rc);
+}
+
+static int gfromraw(group *gg, buf *b, ec *d) {
+ gctx_ec *g = (gctx_ec *)gg; ec t = EC_INIT; int rc;
+ if (ec_getraw(g->ei.c, b, &t)) return (-1);
+ EC_IN(g->ei.c, &t, &t); rc = EC_CHECK(g->ei.c, &t);
+ if (!rc) EC_COPY(d, &t); EC_DESTROY(&t); return (rc);
+}
+