mirror of
https://github.com/yuzu-emu/mbedtls.git
synced 2025-03-24 22:25:11 +00:00
Added ecp_copy() (for points)
This commit is contained in:
parent
5179e463d5
commit
883f313516
|
@ -33,6 +33,7 @@
|
||||||
* ECP Error codes
|
* ECP Error codes
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief ECP point structure (affine coordinates)
|
* \brief ECP point structure (affine coordinates)
|
||||||
*/
|
*/
|
||||||
|
@ -144,6 +145,26 @@ ecp_group;
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \brief Free the components of a point
|
||||||
|
*/
|
||||||
|
void ecp_point_free( ecp_point *pt );
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \brief Free the components of an ECP group
|
||||||
|
*/
|
||||||
|
void ecp_group_free( ecp_group *grp );
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \brief Copy the contents of point Q into P
|
||||||
|
*
|
||||||
|
* \param P Destination point
|
||||||
|
* \param Q Source point
|
||||||
|
*
|
||||||
|
* \return 0 if successful, or an POLARSSL_ERR_ECP_XXX error code
|
||||||
|
*/
|
||||||
|
int ecp_copy( ecp_point *P, const ecp_point *Q );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Addition: R = P + Q
|
* \brief Addition: R = P + Q
|
||||||
*
|
*
|
||||||
|
@ -170,16 +191,6 @@ int ecp_add( const ecp_group *grp, ecp_point *R,
|
||||||
int ecp_mul( const ecp_group *grp, ecp_point *R,
|
int ecp_mul( const ecp_group *grp, ecp_point *R,
|
||||||
const mpi *m, const ecp_point *P );
|
const mpi *m, const ecp_point *P );
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Free the components of a point
|
|
||||||
*/
|
|
||||||
void ecp_point_free( ecp_point *pt );
|
|
||||||
|
|
||||||
/**
|
|
||||||
* \brief Free the components of an ECP group
|
|
||||||
*/
|
|
||||||
void ecp_group_free( ecp_group *grp );
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Checkup routine
|
* \brief Checkup routine
|
||||||
*
|
*
|
||||||
|
|
|
@ -26,7 +26,7 @@
|
||||||
/*
|
/*
|
||||||
* References:
|
* References:
|
||||||
*
|
*
|
||||||
* SEC1-v2 (XXX: insert url)
|
* SEC1 http://www.secg.org/index.php?action=secg,docs_secg
|
||||||
* Guide to Elliptic Curve Cryptography - Hankerson, Menezes, Vanstone
|
* Guide to Elliptic Curve Cryptography - Hankerson, Menezes, Vanstone
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
@ -57,12 +57,26 @@ void ecp_group_free( ecp_group *grp )
|
||||||
if( grp == NULL )
|
if( grp == NULL )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
mpi_free( &( grp->P ) );
|
mpi_free( &grp->P );
|
||||||
mpi_free( &( grp->B ) );
|
mpi_free( &grp->B );
|
||||||
mpi_free( &( grp->N ) );
|
ecp_point_free( &grp->G );
|
||||||
ecp_point_free( &( grp->G ) );
|
mpi_free( &grp->N );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Copy the contents of Q into P
|
||||||
|
*/
|
||||||
|
int ecp_copy( ecp_point *P, const ecp_point *Q )
|
||||||
|
{
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
P->is_zero = Q->is_zero;
|
||||||
|
MPI_CHK( mpi_copy( &P->X, &Q->X ) );
|
||||||
|
MPI_CHK( mpi_copy( &P->Y, &Q->Y ) );
|
||||||
|
|
||||||
|
cleanup:
|
||||||
|
return( ret );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#if defined(POLARSSL_SELF_TEST)
|
#if defined(POLARSSL_SELF_TEST)
|
||||||
|
|
Loading…
Reference in a new issue