mirror of
https://github.com/yuzu-emu/mbedtls.git
synced 2024-12-23 10:05:37 +00:00
Remove last non-static parts of known EC groups
This commit is contained in:
parent
731d08b406
commit
73cc01d7fa
|
@ -527,7 +527,6 @@ int ecp_group_read_string( ecp_group *grp, int radix,
|
|||
int ret;
|
||||
|
||||
MPI_CHK( mpi_read_string( &grp->P, radix, p ) );
|
||||
MPI_CHK( mpi_add_int( &grp->A, &grp->P, -3 ) );
|
||||
MPI_CHK( mpi_read_string( &grp->B, radix, b ) );
|
||||
MPI_CHK( ecp_point_read_string( &grp->G, radix, gx, gy ) );
|
||||
MPI_CHK( mpi_read_string( &grp->N, radix, n ) );
|
||||
|
@ -868,7 +867,17 @@ static int ecp_double_jac( const ecp_group *grp, ecp_point *R,
|
|||
MPI_CHK( mpi_mul_mpi( &Z3, &P->Z, &P->Z ) ); MOD_MUL( Z3 );
|
||||
MPI_CHK( mpi_mul_mpi( &X3, &Z3, &Z3 ) ); MOD_MUL( X3 );
|
||||
MPI_CHK( mpi_mul_int( &T3, &T3, 3 ) ); MOD_ADD( T3 );
|
||||
MPI_CHK( mpi_mul_mpi( &X3, &X3, &grp->A ) ); MOD_MUL( X3 );
|
||||
|
||||
/* Special case for A = -3 */
|
||||
if( grp->A.p == NULL )
|
||||
{
|
||||
MPI_CHK( mpi_mul_int( &X3, &X3, 3 ) );
|
||||
X3.s = -1; /* mpi_mul_int doesn't handle negative numbers */
|
||||
MOD_SUB( X3 );
|
||||
}
|
||||
else
|
||||
MPI_CHK( mpi_mul_mpi( &X3, &X3, &grp->A ) ); MOD_MUL( X3 );
|
||||
|
||||
MPI_CHK( mpi_add_mpi( &T3, &T3, &X3 ) ); MOD_ADD( T3 );
|
||||
MPI_CHK( mpi_mul_mpi( &X3, &T3, &T3 ) ); MOD_MUL( X3 );
|
||||
MPI_CHK( mpi_sub_mpi( &X3, &X3, &T1 ) ); MOD_SUB( X3 );
|
||||
|
@ -1633,7 +1642,17 @@ static int ecp_check_pubkey_sw( const ecp_group *grp, const ecp_point *pt )
|
|||
*/
|
||||
MPI_CHK( mpi_mul_mpi( &YY, &pt->Y, &pt->Y ) ); MOD_MUL( YY );
|
||||
MPI_CHK( mpi_mul_mpi( &RHS, &pt->X, &pt->X ) ); MOD_MUL( RHS );
|
||||
MPI_CHK( mpi_add_mpi( &RHS, &RHS, &grp->A ) ); MOD_ADD( RHS );
|
||||
|
||||
/* Special case for A = -3 */
|
||||
if( grp->A.p == NULL )
|
||||
{
|
||||
MPI_CHK( mpi_sub_int( &RHS, &RHS, 3 ) ); MOD_SUB( RHS );
|
||||
}
|
||||
else
|
||||
{
|
||||
MPI_CHK( mpi_add_mpi( &RHS, &RHS, &grp->A ) ); MOD_ADD( RHS );
|
||||
}
|
||||
|
||||
MPI_CHK( mpi_mul_mpi( &RHS, &RHS, &pt->X ) ); MOD_MUL( RHS );
|
||||
MPI_CHK( mpi_add_mpi( &RHS, &RHS, &grp->B ) ); MOD_ADD( RHS );
|
||||
|
||||
|
|
|
@ -450,6 +450,17 @@ static inline void ecp_mpi_load( mpi *X, const t_uint *p, size_t len )
|
|||
X->p = (t_uint *) p;
|
||||
}
|
||||
|
||||
/*
|
||||
* Set an MPI to static value 1
|
||||
*/
|
||||
static inline void ecp_mpi_set1( mpi *X )
|
||||
{
|
||||
static t_uint one[] = { 1 };
|
||||
X->s = 1;
|
||||
X->n = 1;
|
||||
X->p = one;
|
||||
}
|
||||
|
||||
/*
|
||||
* Make group available from embedded constants
|
||||
*/
|
||||
|
@ -461,28 +472,20 @@ static int ecp_group_load( ecp_group *grp,
|
|||
const t_uint *gy, size_t gylen,
|
||||
const t_uint *n, size_t nlen)
|
||||
{
|
||||
int ret;
|
||||
|
||||
ecp_mpi_load( &grp->P, p, plen );
|
||||
if( a != NULL )
|
||||
ecp_mpi_load( &grp->A, a, alen );
|
||||
else
|
||||
MPI_CHK( mpi_sub_int( &grp->A, &grp->P, 3 ) );
|
||||
ecp_mpi_load( &grp->B, b, blen );
|
||||
ecp_mpi_load( &grp->N, n, nlen );
|
||||
|
||||
ecp_mpi_load( &grp->G.X, gx, gxlen );
|
||||
ecp_mpi_load( &grp->G.Y, gy, gylen );
|
||||
MPI_CHK( mpi_lset( &grp->G.Z, 1 ) );
|
||||
ecp_mpi_set1( &grp->G.Z );
|
||||
|
||||
grp->pbits = mpi_msb( &grp->P );
|
||||
grp->nbits = mpi_msb( &grp->N );
|
||||
|
||||
cleanup:
|
||||
if( ret != 0 )
|
||||
ecp_group_free( grp );
|
||||
|
||||
return( ret );
|
||||
return( 0 );
|
||||
}
|
||||
|
||||
#if defined(POLARSSL_ECP_NIST_OPTIM)
|
||||
|
|
Loading…
Reference in a new issue