mirror of
https://github.com/yuzu-emu/mbedtls.git
synced 2024-11-23 04:15:43 +01:00
Abort modular inversion when modulus is one.
The modular inversion function hangs when provided with the modulus 1. This commit refuses this modulus with a BAD_INPUT error code. It also adds a test for this case.
This commit is contained in:
parent
2a8d655664
commit
2938ccbdd8
@ -665,8 +665,8 @@ int mbedtls_mpi_gcd( mbedtls_mpi *G, const mbedtls_mpi *A, const mbedtls_mpi *B
|
|||||||
*
|
*
|
||||||
* \return 0 if successful,
|
* \return 0 if successful,
|
||||||
* MBEDTLS_ERR_MPI_ALLOC_FAILED if memory allocation failed,
|
* MBEDTLS_ERR_MPI_ALLOC_FAILED if memory allocation failed,
|
||||||
* MBEDTLS_ERR_MPI_BAD_INPUT_DATA if N is negative or nil
|
* MBEDTLS_ERR_MPI_BAD_INPUT_DATA if N is <= 1,
|
||||||
MBEDTLS_ERR_MPI_NOT_ACCEPTABLE if A has no inverse mod N
|
MBEDTLS_ERR_MPI_NOT_ACCEPTABLE if A has no inverse mod N.
|
||||||
*/
|
*/
|
||||||
int mbedtls_mpi_inv_mod( mbedtls_mpi *X, const mbedtls_mpi *A, const mbedtls_mpi *N );
|
int mbedtls_mpi_inv_mod( mbedtls_mpi *X, const mbedtls_mpi *A, const mbedtls_mpi *N );
|
||||||
|
|
||||||
|
@ -1888,7 +1888,7 @@ int mbedtls_mpi_inv_mod( mbedtls_mpi *X, const mbedtls_mpi *A, const mbedtls_mpi
|
|||||||
int ret;
|
int ret;
|
||||||
mbedtls_mpi G, TA, TU, U1, U2, TB, TV, V1, V2;
|
mbedtls_mpi G, TA, TU, U1, U2, TB, TV, V1, V2;
|
||||||
|
|
||||||
if( mbedtls_mpi_cmp_int( N, 0 ) <= 0 )
|
if( mbedtls_mpi_cmp_int( N, 1 ) <= 0 )
|
||||||
return( MBEDTLS_ERR_MPI_BAD_INPUT_DATA );
|
return( MBEDTLS_ERR_MPI_BAD_INPUT_DATA );
|
||||||
|
|
||||||
mbedtls_mpi_init( &TA ); mbedtls_mpi_init( &TU ); mbedtls_mpi_init( &U1 ); mbedtls_mpi_init( &U2 );
|
mbedtls_mpi_init( &TA ); mbedtls_mpi_init( &TU ); mbedtls_mpi_init( &U1 ); mbedtls_mpi_init( &U2 );
|
||||||
|
@ -550,6 +550,9 @@ mbedtls_mpi_inv_mod:10:"3":10:"-11":10:"4":MBEDTLS_ERR_MPI_BAD_INPUT_DATA
|
|||||||
Base test mbedtls_mpi_inv_mod #4
|
Base test mbedtls_mpi_inv_mod #4
|
||||||
mbedtls_mpi_inv_mod:10:"2":10:"4":10:"0":MBEDTLS_ERR_MPI_NOT_ACCEPTABLE
|
mbedtls_mpi_inv_mod:10:"2":10:"4":10:"0":MBEDTLS_ERR_MPI_NOT_ACCEPTABLE
|
||||||
|
|
||||||
|
Base test mbedtls_mpi_inv_mod #5
|
||||||
|
mbedtls_mpi_inv_mod:10:"3":10:"1":10:"0":MBEDTLS_ERR_MPI_BAD_INPUT_DATA
|
||||||
|
|
||||||
Test mbedtls_mpi_inv_mod #1
|
Test mbedtls_mpi_inv_mod #1
|
||||||
mbedtls_mpi_inv_mod:16:"aa4df5cb14b4c31237f98bd1faf527c283c2d0f3eec89718664ba33f9762907c":16:"fffbbd660b94412ae61ead9c2906a344116e316a256fd387874c6c675b1d587d":16:"8d6a5c1d7adeae3e94b9bcd2c47e0d46e778bc8804a2cc25c02d775dc3d05b0c":0
|
mbedtls_mpi_inv_mod:16:"aa4df5cb14b4c31237f98bd1faf527c283c2d0f3eec89718664ba33f9762907c":16:"fffbbd660b94412ae61ead9c2906a344116e316a256fd387874c6c675b1d587d":16:"8d6a5c1d7adeae3e94b9bcd2c47e0d46e778bc8804a2cc25c02d775dc3d05b0c":0
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user