Type F should be used when the top priority is to minimize bandwidth (e.g. short signatures). The pairing is slower than the other types.
If finite field discrete log algorithms improve further, type D pairings will have to use larger fields, but type F can still remain short, up to a point.
void f_param_init(f_param_t fp)
Initialize p. This must be called before p can be used.
void f_param_clear(f_param_t fp)
Clear p. This should be called after p is no longer needed.
void f_param_gen(f_param_t fp, int bits)
Generate type F pairing parameters and store them in p. Both the group order r and the order of the base field q will be roughly bits-bit numbers. To be secure, generic discrete log algorithms must be infeasible in groups of order r, and finite field discrete log algorithms must be infeasible in finite fields of order q^12. Typical value: bits = 160.
void f_param_out_str(FILE *stream, f_param_t p)
Write the parameters in p in a text format onto stream.