diff options
Diffstat (limited to 'src/curve.h')
| -rw-r--r-- | src/curve.h | 109 |
1 files changed, 106 insertions, 3 deletions
diff --git a/src/curve.h b/src/curve.h index 106bf5e..5002f45 100644 --- a/src/curve.h +++ b/src/curve.h @@ -5,8 +5,111 @@ #ifndef ECGEN_CURVE_H #define ECGEN_CURVE_H -#include "gp.h" +#include <pari/pari.h> +#include "field.h" +#include "point.h" -GEN curve_random(GEN field); +typedef struct curve_t { + GEN seed; + GEN field; + GEN a; + GEN b; + GEN curve; + GEN order; + point_t **points; + size_t npoints; +} curve_t; -#endif //ECGEN_CURVE_H +/** + * + * @param field + * @return + */ +curve_t *curve_random(GEN field); + +/** + * + * @param t + * @param bits + * @return + */ +curve_t *curve_randomf(enum field_e t, long bits); + +/** + * + * @param field + * @return + */ +curve_t *curve_nonzero(GEN field); + +/** + * + * @param t + * @param bits + * @return + */ +curve_t *curve_nonzerof(enum field_e t, long bits); + +/** + * + * @param field + * @return + */ +curve_t *curve_prime(GEN field); + +/** + * + * @param t + * @param bits + * @return + */ +curve_t *curve_primef(enum field_e t, long bits); + +/** + * ANSI X9.62 Verifiable random curve over field with seed. + * + * @param field + * @param seed + * @return + */ +curve_t *curve_seed(GEN field, GEN seed); + +/** + * + * @param field + * @return + */ +curve_t *curve_seedr(GEN field); + +/** + * + * @param seed + * @param t + * @param bits + * @return + */ +curve_t *curve_seedf(GEN seed, enum field_e t, long bits); + +/** + * + * @param t + * @param bits + * @return + */ +curve_t *curve_seedrf(enum field_e t, long bits); + +/** + * + * @param curve + * @return + */ +GEN curve_params(curve_t *curve); + +/** + * + * @param curve + */ +void free_curve(curve_t **curve); + + +#endif // ECGEN_CURVE_H |
