#ifndef __EC_PARAMS_EXTERNAL_H__
#define __EC_PARAMS_EXTERNAL_H__
#include <libecc/words/words.h>
typedef struct {
const u8 *buf;
const u8 buflen;
} ec_str_param;
#define TO_EC_STR_PARAM(pname) \
static const ec_str_param pname##_str_param = { \
.buf = pname, \
.buflen = sizeof(pname) \
}
#define TO_EC_STR_PARAM_FIXED_SIZE(pname, sz) \
static const ec_str_param pname##_str_param = { \
.buf = pname, \
.buflen = (sz) \
}
#define PARAM_BUF_LEN(param) ((param)->buflen)
#define PARAM_BUF_PTR(param) ((param)->buf)
typedef struct {
const ec_str_param *p;
const ec_str_param *p_bitlen;
const ec_str_param *r;
const ec_str_param *r_square;
const ec_str_param *mpinv;
const ec_str_param *p_shift;
const ec_str_param *p_normalized;
const ec_str_param *p_reciprocal;
const ec_str_param *a;
const ec_str_param *b;
const ec_str_param *curve_order;
const ec_str_param *gx;
const ec_str_param *gy;
const ec_str_param *gz;
const ec_str_param *gen_order;
const ec_str_param *gen_order_bitlen;
const ec_str_param *cofactor;
const ec_str_param *alpha_montgomery;
const ec_str_param *gamma_montgomery;
const ec_str_param *alpha_edwards;
const ec_str_param *oid;
const ec_str_param *name;
} ec_str_params;
#endif