Browse Source

const** related fixes for gcc

master
Mike Hamburg 10 years ago
parent
commit
d2e5e0fe8c
4 changed files with 13 additions and 59 deletions
  1. +1
    -1
      src/goldilocks.c
  2. +5
    -51
      src/scalarmul.c
  3. +5
    -5
      test/bench.c
  4. +2
    -2
      test/test_scalarmul.c

+ 1
- 1
src/goldilocks.c View File

@@ -462,7 +462,7 @@ goldilocks_verify (
linear_combo_var_fixed_vt( pk_text,
challenge, GOLDI_SCALAR_BITS,
s, GOLDI_SCALAR_BITS,
goldilocks_global.wnafs, WNAF_PRECMP_BITS );
(const tw_niels_a_t*)goldilocks_global.wnafs, WNAF_PRECMP_BITS );
untwist_and_double_and_serialize( pk, pk_text );



+ 5
- 51
src/scalarmul.c View File

@@ -70,52 +70,6 @@ constant_time_lookup_tw_niels (
constant_time_lookup(out,in,sizeof(*out),nin,idx);
}

/*
static __inline__ void
constant_time_lookup_tw_pniels (
tw_pniels_a_t out,
const tw_pniels_a_t in,
int nin,
int idx
) {
big_register_t big_one = br_set_to_mask(1), big_i = br_set_to_mask(idx);
big_register_t *o = (big_register_t *)out;
const big_register_t *i = (const big_register_t *)in;
int j;
unsigned int k;
really_memset(out, 0, sizeof(*out));
for (j=0; j<nin; j++, big_i-=big_one) {
big_register_t mask = br_is_zero(big_i);
for (k=0; k<sizeof(*out)/sizeof(*o); k++) {
o[k] |= mask & i[k+j*sizeof(*out)/sizeof(*o)];
}
}
}

static __inline__ void
constant_time_lookup_tw_niels (
tw_niels_a_t out,
const tw_niels_a_t in,
int nin,
int idx
) {
big_register_t big_one = br_set_to_mask(1), big_i = br_set_to_mask(idx);
big_register_t *o = (big_register_t *)out;
const big_register_t *i = (const big_register_t *)in;
int j;
unsigned int k;
really_memset(out, 0, sizeof(*out));
for (j=0; j<nin; j++, big_i-=big_one) {
big_register_t mask = br_is_zero(big_i);
for (k=0; k<sizeof(*out)/sizeof(*o); k++) {
o[k] |= mask & i[k+j*sizeof(*out)/sizeof(*o)];
}
}
}
*/

static void
convert_to_signed_window_form (
word_t *out,
@@ -180,7 +134,7 @@ scalarmul (
inv = (bits>>(WINDOW-1))-1;
bits ^= inv;
constant_time_lookup_tw_pniels(pn, multiples, NTABLE, bits & WINDOW_T_MASK);
constant_time_lookup_tw_pniels(pn, (const tw_pniels_a_t*)multiples, NTABLE, bits & WINDOW_T_MASK);
cond_negate_tw_pniels(pn, inv);
convert_tw_pniels_to_tw_extensible(working, pn);
@@ -200,7 +154,7 @@ scalarmul (
inv = (bits>>(WINDOW-1))-1;
bits ^= inv;
constant_time_lookup_tw_pniels(pn, multiples, NTABLE, bits & WINDOW_T_MASK);
constant_time_lookup_tw_pniels(pn, (const tw_pniels_a_t*)multiples, NTABLE, bits & WINDOW_T_MASK);
cond_negate_tw_pniels(pn, inv);
add_tw_pniels_to_tw_extensible(working, pn);
}
@@ -355,7 +309,7 @@ scalarmul_fixed_base (
tab ^= invert;
tab &= (1<<(t-1)) - 1;
constant_time_lookup_tw_niels(ni, table->table + (j<<(t-1)), 1<<(t-1), tab);
constant_time_lookup_tw_niels(ni, (const tw_niels_a_t*)table->table + (j<<(t-1)), 1<<(t-1), tab);
cond_negate_tw_niels(ni, invert);
if (i||j) {
add_tw_niels_to_tw_extensible(out, ni);
@@ -582,7 +536,7 @@ precompute_fixed_base (
}
}
field_simultaneous_invert(zis, zs, n<<(t-1));
field_simultaneous_invert(zis, (const field_a_t*)zs, n<<(t-1));

field_a_t product;
for (i=0; i<n<<(t-1); i++) {
@@ -670,7 +624,7 @@ precompute_fixed_base_wnaf (
}
}
field_simultaneous_invert(zis, zs, 1<<tbits);
field_simultaneous_invert(zis, (const field_a_t *)zs, 1<<tbits);

field_a_t product;
for (i=0; i<1<<tbits; i++) {


+ 5
- 5
test/bench.c View File

@@ -359,7 +359,7 @@ int main(int argc, char **argv) {
when = now();
for (i=0; i<nbase/10; i++) {
q448_randomize(&crand, sk);
scalarmul_fixed_base_wnaf_vt(&ext,sk,SCALAR_BITS,wnaft,6);
scalarmul_fixed_base_wnaf_vt(&ext,sk,SCALAR_BITS,(const tw_niels_a_t*)wnaft,6);
}
when = now() - when;
printf("edwards vt6: %5.1fµs\n", when * 1e6 / i);
@@ -374,7 +374,7 @@ int main(int argc, char **argv) {
when = now();
for (i=0; i<nbase/10; i++) {
q448_randomize(&crand, sk);
scalarmul_fixed_base_wnaf_vt(&ext,sk,SCALAR_BITS,wnaft,4);
scalarmul_fixed_base_wnaf_vt(&ext,sk,SCALAR_BITS,(const tw_niels_a_t*)wnaft,4);
}
when = now() - when;
printf("edwards vt4: %5.1fµs\n", when * 1e6 / i);
@@ -389,7 +389,7 @@ int main(int argc, char **argv) {
when = now();
for (i=0; i<nbase/10; i++) {
q448_randomize(&crand, sk);
scalarmul_fixed_base_wnaf_vt(&ext,sk,SCALAR_BITS,wnaft,5);
scalarmul_fixed_base_wnaf_vt(&ext,sk,SCALAR_BITS,(const tw_niels_a_t*)wnaft,5);
}
when = now() - when;
printf("edwards vt5: %5.1fµs\n", when * 1e6 / i);
@@ -398,7 +398,7 @@ int main(int argc, char **argv) {
for (i=0; i<nbase/10; i++) {
q448_randomize(&crand, sk);
q448_randomize(&crand, tk);
linear_combo_var_fixed_vt(&ext,sk,FIELD_BITS,tk,FIELD_BITS,wnaft,5);
linear_combo_var_fixed_vt(&ext,sk,FIELD_BITS,tk,FIELD_BITS,(const tw_niels_a_t*)wnaft,5);
}
when = now() - when;
printf("vt vf combo: %5.1fµs\n", when * 1e6 / i);
@@ -708,7 +708,7 @@ int main(int argc, char **argv) {
serialize_extensible(b, &exta);

ignore_result(precompute_fixed_base_wnaf(wnaft,&exu,5));
linear_combo_var_fixed_vt(&ext,sk,FIELD_BITS,tk,FIELD_BITS,wnaft,5);
linear_combo_var_fixed_vt(&ext,sk,FIELD_BITS,tk,FIELD_BITS,(const tw_niels_a_t*)wnaft,5);
untwist_and_double(&exta,&exv);
serialize_extensible(c, &exta);


+ 2
- 2
test/test_scalarmul.c View File

@@ -89,7 +89,7 @@ single_scalarmul_compatibility_test (
continue;
}
scalarmul_fixed_base_wnaf_vt(&work, scalar, nbits, pre, i);
scalarmul_fixed_base_wnaf_vt(&work, scalar, nbits, (const tw_niels_a_t*)pre, i);
untwist_and_double_and_serialize(wout[i], &work);
}
@@ -193,7 +193,7 @@ single_linear_combo_test (
/* use the dedicated wNAF linear combo algorithm */
copy_tw_extensible(&working, &text1);
linear_combo_var_fixed_vt(&working, scalar1, nbits1, scalar2, nbits2, wnaf, 5);
linear_combo_var_fixed_vt(&working, scalar1, nbits1, scalar2, nbits2, (const tw_niels_a_t*)wnaf, 5);
untwist_and_double_and_serialize(result_wnaf, &working);
/* use the dedicated combs algorithm */


Loading…
Cancel
Save