from nx_crypto_ec.h:117
typedef struct NX_CRYPTO_EC_STRUCT
{
CHAR *nx_crypto_ec_name;
UINT nx_crypto_ec_id;
UINT nx_crypto_ec_window_width;
UINT nx_crypto_ec_bits;
union
{
NX_CRYPTO_HUGE_NUMBER fp;
NX_CRYPTO_EC_POLYNOMIAL f2m;
} nx_crypto_ec_field;
NX_CRYPTO_HUGE_NUMBER nx_crypto_ec_a;
NX_CRYPTO_HUGE_NUMBER nx_crypto_ec_b;
NX_CRYPTO_EC_POINT nx_crypto_ec_g;
NX_CRYPTO_HUGE_NUMBER nx_crypto_ec_n;
NX_CRYPTO_HUGE_NUMBER nx_crypto_ec_h;
NX_CRYPTO_EC_FIXED_POINTS *nx_crypto_ec_fixed_points;
VOID (*nx_crypto_ec_add)(struct NX_CRYPTO_EC_STRUCT *curve,
NX_CRYPTO_EC_POINT *left,
NX_CRYPTO_EC_POINT *right,
HN_UBASE *scratch);
VOID (*nx_crypto_ec_subtract)(struct NX_CRYPTO_EC_STRUCT *curve,
NX_CRYPTO_EC_POINT *left,
NX_CRYPTO_EC_POINT *right,
HN_UBASE *scratch);
VOID (*nx_crypto_ec_multiple)(struct NX_CRYPTO_EC_STRUCT *curve,
NX_CRYPTO_EC_POINT *g,
NX_CRYPTO_HUGE_NUMBER *d,
NX_CRYPTO_EC_POINT *r,
HN_UBASE *scratch);
VOID (*nx_crypto_ec_reduce)(struct NX_CRYPTO_EC_STRUCT *curve,
NX_CRYPTO_HUGE_NUMBER *value,
HN_UBASE *scratch);
} NX_CRYPTO_EC;