mirror of
https://github.com/Mbed-TLS/mbedtls.git
synced 2025-07-30 22:43:08 +03:00
Document and test aliasing of the bignums given to mbedtls_mpi_core_mla()
Signed-off-by: Tom Cosgrove <tom.cosgrove@arm.com>
This commit is contained in:
@ -214,6 +214,9 @@ mbedtls_mpi_uint mbedtls_mpi_core_sub( mbedtls_mpi_uint *X,
|
|||||||
/**
|
/**
|
||||||
* \brief Perform a fixed-size multiply accumulate operation: X += b * A
|
* \brief Perform a fixed-size multiply accumulate operation: X += b * A
|
||||||
*
|
*
|
||||||
|
* \p X may be aliased to \p A (when \p X_limbs == \p A_limbs), but may not
|
||||||
|
* otherwise overlap.
|
||||||
|
*
|
||||||
* \param[in,out] X The pointer to the (little-endian) array
|
* \param[in,out] X The pointer to the (little-endian) array
|
||||||
* representing the bignum to accumulate onto.
|
* representing the bignum to accumulate onto.
|
||||||
* \param X_limbs The number of limbs of \p X. This must be
|
* \param X_limbs The number of limbs of \p X. This must be
|
||||||
|
@ -2008,6 +2008,14 @@ void mpi_core_mla( char * input_A, char * input_B, char * input_S,
|
|||||||
/* 1b) A += B * s => we should get the correct result */
|
/* 1b) A += B * s => we should get the correct result */
|
||||||
ASSERT_COMPARE( a, bytes, x, bytes );
|
ASSERT_COMPARE( a, bytes, x, bytes );
|
||||||
|
|
||||||
|
if ( A.n == B.n && memcmp( A.p, B.p, bytes ) == 0 )
|
||||||
|
{
|
||||||
|
/* Check when A and B are aliased */
|
||||||
|
memcpy( a, A.p, A.n * sizeof(mbedtls_mpi_uint) );
|
||||||
|
TEST_EQUAL( mbedtls_mpi_core_mla( a, limbs, a, limbs, *S.p ), *cy->p );
|
||||||
|
ASSERT_COMPARE( a, bytes, x, bytes );
|
||||||
|
}
|
||||||
|
|
||||||
exit:
|
exit:
|
||||||
mbedtls_free( a );
|
mbedtls_free( a );
|
||||||
mbedtls_free( x );
|
mbedtls_free( x );
|
||||||
|
Reference in New Issue
Block a user