PolarSSL v1.3.1
|
ECP group structure. More...
#include <ecp.h>
Data Fields | |
ecp_group_id | id |
mpi | P |
mpi | A |
mpi | B |
ecp_point | G |
mpi | N |
size_t | pbits |
size_t | nbits |
unsigned int | h |
int(* | modp )(mpi *) |
int(* | t_pre )(ecp_point *, void *) |
int(* | t_post )(ecp_point *, void *) |
void * | t_data |
ecp_point * | T |
size_t | T_size |
ECP group structure.
The curves we consider are defined by y^2 = x^3 + A x + B mod P, and a generator for a large subgroup of order N is fixed.
pbits and nbits must be the size of P and N in bits.
If modp is NULL, reduction modulo P is done using a generic algorithm. Otherwise, it must point to a function that takes an mpi in the range 0..2^(2*pbits)-1 and transforms it in-place in an integer of little more than pbits, so that the integer may be efficiently brought in the 0..P-1 range by a few additions or substractions. It must return 0 on success and non-zero on failure.
ecp_group_id ecp_group::id |
int(* ecp_group::modp)(mpi *) |
int(* ecp_group::t_post)(ecp_point *, void *) |