Misc details

This commit is contained in:
Manuel Pégourié-Gonnard 2013-11-21 18:33:36 +01:00
parent 469a209334
commit 36daa13d76

View File

@ -1449,13 +1449,16 @@ int ecp_mul( ecp_group *grp, ecp_point *R,
/* /*
* Sanity checks (before we even initialize anything) * Sanity checks (before we even initialize anything)
*/ */
if( mpi_cmp_int( &P->Z, 1 ) != 0 )
return( POLARSSL_ERR_ECP_BAD_INPUT_DATA );
if( ( ret = ecp_check_privkey( grp, m ) ) != 0 ) if( ( ret = ecp_check_privkey( grp, m ) ) != 0 )
return( ret ); return( ret );
/* We'll need this later, but do it now to possibly avoid cheking P */ /* We'll need this later, but do it now to possibly avoid checking P */
p_eq_g = ( mpi_cmp_int( &P->Z, 1 ) == 0 && p_eq_g = ( mpi_cmp_mpi( &P->Y, &grp->G.Y ) == 0 &&
mpi_cmp_mpi( &P->Y, &grp->G.Y ) == 0 &&
mpi_cmp_mpi( &P->X, &grp->G.X ) == 0 ); mpi_cmp_mpi( &P->X, &grp->G.X ) == 0 );
if( ! p_eq_g && ( ret = ecp_check_pubkey( grp, P ) ) != 0 ) if( ! p_eq_g && ( ret = ecp_check_pubkey( grp, P ) ) != 0 )
return( ret ); return( ret );
@ -1466,7 +1469,7 @@ int ecp_mul( ecp_group *grp, ecp_point *R,
/* /*
* Minimize the number of multiplications, that is minimize * Minimize the number of multiplications, that is minimize
* 10 * d * w + 18 * 2^(w-1) + 11 * d + 7 * w * 10 * d * w + 18 * 2^(w-1) + 11 * d + 7 * w, with d = ceil( nbits / w )
* (see costs of the various parts, with 1S = 1M) * (see costs of the various parts, with 1S = 1M)
*/ */
w = grp->nbits >= 384 ? 5 : 4; w = grp->nbits >= 384 ? 5 : 4;
@ -1479,12 +1482,12 @@ int ecp_mul( ecp_group *grp, ecp_point *R,
w++; w++;
/* /*
* Make sure w is within limits. * Make sure w is within bounds.
* (The last test is useful only for very small curves in the test suite.) * (The last test is useful only for very small curves in the test suite.)
*/ */
if( w > POLARSSL_ECP_WINDOW_SIZE ) if( w > POLARSSL_ECP_WINDOW_SIZE )
w = POLARSSL_ECP_WINDOW_SIZE; w = POLARSSL_ECP_WINDOW_SIZE;
if( w < 2 || w >= grp->nbits ) if( w >= grp->nbits )
w = 2; w = 2;
/* Other sizes that depend on w */ /* Other sizes that depend on w */