This pairing is not very useful at present. It can be implemented entirely in a field of prime order, that is, only arithmetic modulo a prime is needed and there is never a need to extend a field.
If some day a mathematician discovers that discrete log in field extensions is substantially easier to solve than previously thought, or finds that discrete log can be solved in elliptic curves as easily as they can be in finite fields, this pairing type may become useful.
void e_param_init(e_param_t ep)
Initialize p. This must be called before p can be used.
void e_param_clear(e_param_t ep)
Clear p. This should be called after p is no longer needed.
void e_param_gen(e_param_t p, int rbits, int qbits)
Generate type E pairing parameters and store them in p, where the group order r is rbits long, and the order of the base field q is qbits long. 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.
Typical values: rbits = 160, qbits = 1024.
void e_param_out_str(FILE *stream, e_param_t p)
Write the parameters in p in a text format onto stream.