@@ -101072,7 +101072,9 @@ static void sp_256_get_entry_16_8(sp_point_256* r,
101072101072 r->y[6] = 0;
101073101073 r->y[7] = 0;
101074101074 for (i = 1; i < 16; i++) {
101075- mask = (sp_digit)0 - (i == idx);
101075+ sp_digit gte = (sp_digit)((((sp_uint32)i - (sp_uint32)idx) >> 31) - 1);
101076+ sp_digit lte = (sp_digit)((((sp_uint32)idx - (sp_uint32)i) >> 31) - 1);
101077+ mask = gte & lte;
101076101078 r->x[0] |= mask & table[i].x[0];
101077101079 r->x[1] |= mask & table[i].x[1];
101078101080 r->x[2] |= mask & table[i].x[2];
@@ -101452,7 +101454,9 @@ static void sp_256_get_entry_256_8(sp_point_256* r,
101452101454 r->y[6] = 0;
101453101455 r->y[7] = 0;
101454101456 for (i = 1; i < 256; i++) {
101455- mask = (sp_digit)0 - (i == idx);
101457+ sp_digit gte = (sp_digit)((((sp_uint32)i - (sp_uint32)idx) >> 31) - 1);
101458+ sp_digit lte = (sp_digit)((((sp_uint32)idx - (sp_uint32)i) >> 31) - 1);
101459+ mask = gte & lte;
101456101460 r->x[0] |= mask & table[i].x[0];
101457101461 r->x[1] |= mask & table[i].x[1];
101458101462 r->x[2] |= mask & table[i].x[2];
@@ -111495,7 +111499,9 @@ static void sp_384_get_entry_16_12(sp_point_384* r,
111495111499 r->y[10] = 0;
111496111500 r->y[11] = 0;
111497111501 for (i = 1; i < 16; i++) {
111498- mask = (sp_digit)0 - (i == idx);
111502+ sp_digit gte = (sp_digit)((((sp_uint32)i - (sp_uint32)idx) >> 31) - 1);
111503+ sp_digit lte = (sp_digit)((((sp_uint32)idx - (sp_uint32)i) >> 31) - 1);
111504+ mask = gte & lte;
111499111505 r->x[0] |= mask & table[i].x[0];
111500111506 r->x[1] |= mask & table[i].x[1];
111501111507 r->x[2] |= mask & table[i].x[2];
@@ -111891,7 +111897,9 @@ static void sp_384_get_entry_256_12(sp_point_384* r,
111891111897 r->y[10] = 0;
111892111898 r->y[11] = 0;
111893111899 for (i = 1; i < 256; i++) {
111894- mask = (sp_digit)0 - (i == idx);
111900+ sp_digit gte = (sp_digit)((((sp_uint32)i - (sp_uint32)idx) >> 31) - 1);
111901+ sp_digit lte = (sp_digit)((((sp_uint32)idx - (sp_uint32)i) >> 31) - 1);
111902+ mask = gte & lte;
111895111903 r->x[0] |= mask & table[i].x[0];
111896111904 r->x[1] |= mask & table[i].x[1];
111897111905 r->x[2] |= mask & table[i].x[2];
@@ -124705,7 +124713,9 @@ static void sp_521_get_entry_16_17(sp_point_521* r,
124705124713 r->y[15] = 0;
124706124714 r->y[16] = 0;
124707124715 for (i = 1; i < 16; i++) {
124708- mask = (sp_digit)0 - (i == idx);
124716+ sp_digit gte = (sp_digit)((((sp_uint32)i - (sp_uint32)idx) >> 31) - 1);
124717+ sp_digit lte = (sp_digit)((((sp_uint32)idx - (sp_uint32)i) >> 31) - 1);
124718+ mask = gte & lte;
124709124719 r->x[0] |= mask & table[i].x[0];
124710124720 r->x[1] |= mask & table[i].x[1];
124711124721 r->x[2] |= mask & table[i].x[2];
@@ -125121,7 +125131,9 @@ static void sp_521_get_entry_256_17(sp_point_521* r,
125121125131 r->y[15] = 0;
125122125132 r->y[16] = 0;
125123125133 for (i = 1; i < 256; i++) {
125124- mask = (sp_digit)0 - (i == idx);
125134+ sp_digit gte = (sp_digit)((((sp_uint32)i - (sp_uint32)idx) >> 31) - 1);
125135+ sp_digit lte = (sp_digit)((((sp_uint32)idx - (sp_uint32)i) >> 31) - 1);
125136+ mask = gte & lte;
125125125137 r->x[0] |= mask & table[i].x[0];
125126125138 r->x[1] |= mask & table[i].x[1];
125127125139 r->x[2] |= mask & table[i].x[2];
0 commit comments