Skip to content

Commit

Permalink
Updates libecc module
Browse files Browse the repository at this point in the history
  • Loading branch information
catenacyber committed Jan 28, 2022
1 parent 3ffded9 commit 6b624da
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 20 deletions.
9 changes: 1 addition & 8 deletions fuzz_ec.c
Original file line number Diff line number Diff line change
Expand Up @@ -49,11 +49,10 @@ size_t bitlenFromTlsId(uint16_t tlsid) {
return 0;
}

#define NBMODULES 12
#define NBMODULES 11
//TODO integrate more modules
void fuzzec_mbedtls_process(fuzzec_input_t * input, fuzzec_output_t * output);
void fuzzec_libecc_process(fuzzec_input_t * input, fuzzec_output_t * output);
void fuzzec_libecc_montgomery_process(fuzzec_input_t * input, fuzzec_output_t * output);
void fuzzec_openssl_process(fuzzec_input_t * input, fuzzec_output_t * output);
void fuzzec_nettle_process(fuzzec_input_t * input, fuzzec_output_t * output);
void fuzzec_gcrypt_process(fuzzec_input_t * input, fuzzec_output_t * output);
Expand Down Expand Up @@ -86,12 +85,6 @@ fuzzec_module_t modules[NBMODULES] = {
fuzzec_libecc_add,
NULL,
},
{
"libecc_montgomery",
fuzzec_libecc_montgomery_process,
NULL,
NULL,
},
{
"openssl",
fuzzec_openssl_process,
Expand Down
24 changes: 12 additions & 12 deletions modules/libecc.c
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,9 @@ static ec_curve_type eccurvetypeFromTlsId(uint16_t tlsid) {
static void libecc_to_ecfuzzer(prj_pt *pointZ, fuzzec_output_t * output, size_t index, size_t byteLen) {
aff_pt point;

if (prj_pt_iszero(pointZ)) {
int ret;
int iszero;
if (prj_pt_iszero(pointZ, &iszero) || iszero) {
//null point is zero
output->pointSizes[index] = 1;
output->points[index][0] = 0;
Expand All @@ -53,7 +55,7 @@ static void libecc_to_ecfuzzer(prj_pt *pointZ, fuzzec_output_t * output, size_t
}

void fuzzec_libecc_process_aux(fuzzec_input_t * input, fuzzec_output_t * output, void (*multiplyFunction)(prj_pt_t, nn_src_t, prj_pt_src_t)) {
const ec_str_params *the_curve_const_parameters;
const ec_str_params *the_curve_const_parameters = NULL;
ec_params curve_params;
nn scalar1;
fp coordx;
Expand All @@ -62,10 +64,11 @@ void fuzzec_libecc_process_aux(fuzzec_input_t * input, fuzzec_output_t * output,
prj_pt pointZ1;
prj_pt pointZ2;
size_t byteLen;
int ret, iszero;

//initialize
the_curve_const_parameters = ec_get_curve_params_by_type(eccurvetypeFromTlsId(input->tls_id));
if (the_curve_const_parameters == NULL) {
ret = ec_get_curve_params_by_type(eccurvetypeFromTlsId(input->tls_id), &the_curve_const_parameters);
if (ret || the_curve_const_parameters == NULL) {
output->errorCode = FUZZEC_ERROR_UNSUPPORTED;
return;
}
Expand All @@ -83,7 +86,8 @@ void fuzzec_libecc_process_aux(fuzzec_input_t * input, fuzzec_output_t * output,

//elliptic curve computations
//P2=scalar2*P1
if (nn_iszero(&scalar1)) {
ret = nn_iszero(&scalar1, &iszero);
if (ret || iszero) {
//multiplication by 0 is not allowed
prj_pt_zero(&pointZ2);
} else {
Expand All @@ -102,16 +106,12 @@ void fuzzec_libecc_process_aux(fuzzec_input_t * input, fuzzec_output_t * output,
return;
}

void fuzzec_libecc_montgomery_process(fuzzec_input_t * input, fuzzec_output_t * output) {
fuzzec_libecc_process_aux(input, output, prj_pt_mul_monty);
}

void fuzzec_libecc_process(fuzzec_input_t * input, fuzzec_output_t * output) {
fuzzec_libecc_process_aux(input, output, prj_pt_mul);
}

void fuzzec_libecc_add(fuzzec_input_t * input, fuzzec_output_t * output) {
const ec_str_params *the_curve_const_parameters;
const ec_str_params *the_curve_const_parameters = NULL;
ec_params curve_params;
fp coordx;
fp coordy;
Expand All @@ -122,8 +122,8 @@ void fuzzec_libecc_add(fuzzec_input_t * input, fuzzec_output_t * output) {
size_t byteLen;

//initialize
the_curve_const_parameters = ec_get_curve_params_by_type(eccurvetypeFromTlsId(input->tls_id));
if (the_curve_const_parameters == NULL) {
int ret = ec_get_curve_params_by_type(eccurvetypeFromTlsId(input->tls_id), &the_curve_const_parameters);
if (ret || the_curve_const_parameters == NULL) {
output->errorCode = FUZZEC_ERROR_UNSUPPORTED;
return;
}
Expand Down

0 comments on commit 6b624da

Please sign in to comment.