mirror of
https://github.com/Mbed-TLS/mbedtls.git
synced 2025-03-29 22:20:30 +00: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:
parent
ea45c1d2d4
commit
b0b77e1b13
@ -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
|
||||
*
|
||||
* \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
|
||||
* representing the bignum to accumulate onto.
|
||||
* \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 */
|
||||
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:
|
||||
mbedtls_free( a );
|
||||
mbedtls_free( x );
|
||||
|
Loading…
x
Reference in New Issue
Block a user