Small code cleanups
diff --git a/library/ecp.c b/library/ecp.c
index 91f0820..2ff8820 100644
--- a/library/ecp.c
+++ b/library/ecp.c
@@ -1276,35 +1276,26 @@
memset( x, 0, d+1 );
- /* For x[0] use the classical comb value without adjustement */
- for( j = 0; j < w; j++ )
- x[0] |= mpi_get_bit( m, d * j ) << j;
- c = 0;
-
- for( i = 1; i < d; i++ )
- {
- /* Get the classical comb value */
+ /* First get the classical comb values (except for x_d = 0) */
+ for( i = 0; i < d; i++ )
for( j = 0; j < w; j++ )
x[i] |= mpi_get_bit( m, i + d * j ) << j;
+ /* Now make sure x_1 .. x_d are odd */
+ c = 0;
+ for( i = 1; i <= d; i++ )
+ {
/* Add carry and update it */
cc = x[i] & c;
x[i] = x[i] ^ c;
c = cc;
- /* Make sure x[i] is odd, avoiding if-branches */
+ /* Adjust if needed, avoiding branches */
adjust = 1 - ( x[i] & 0x01 );
c |= x[i] & ( x[i-1] * adjust );
x[i] = x[i] ^ ( x[i-1] * adjust );
x[i-1] |= adjust << 7;
}
-
- /* Finish with the carry */
- x[i] = c;
- adjust = 1 - ( x[i] & 0x01 );
- c |= x[i] & ( x[i-1] * adjust );
- x[i] = x[i] ^ ( x[i-1] * adjust );
- x[i-1] |= adjust << 7;
}
/*
@@ -1487,9 +1478,12 @@
/*
* Prepare precomputed points: if P == G we want to
- * use grp->T if already initialized, or initiliaze it.
+ * use grp->T if already initialized, or initialize it.
*/
- if( ! p_eq_g || grp->T == NULL )
+ if( p_eq_g )
+ T = grp->T;
+
+ if( T == NULL )
{
T = (ecp_point *) polarssl_malloc( pre_len * sizeof( ecp_point ) );
if( T == NULL )
@@ -1509,17 +1503,6 @@
grp->T_size = pre_len;
}
}
- else
- {
- T = grp->T;
-
- /* Should never happen, but we want to be extra sure */
- if( pre_len != grp->T_size )
- {
- ret = POLARSSL_ERR_ECP_BAD_INPUT_DATA;
- goto cleanup;
- }
- }
/*
* Make sure M is odd (M = m + 1 or M = m + 2)