Check return code of mbedtls_mpi_fill_random
Add MBEDTLS_MPI_CHK to check for error value of mbedtls_mpi_fill_random. Reported and fix suggested by guidovranken in #740
This commit is contained in:
parent
3e19df5c95
commit
7269fee0b6
3 changed files with 7 additions and 5 deletions
|
@ -11,6 +11,8 @@ Bugfix
|
||||||
* Fix resource leak on windows platform, in mbedtls_x509_crt_parse_path.
|
* Fix resource leak on windows platform, in mbedtls_x509_crt_parse_path.
|
||||||
In case of failure, when an error occures, goto cleanup.
|
In case of failure, when an error occures, goto cleanup.
|
||||||
Found by redplait #590
|
Found by redplait #590
|
||||||
|
* Add MBEDTLS_MPI_CHK to check for error value of mbedtls_mpi_fill_random.
|
||||||
|
Reported and fix suggested by guidovranken in #740
|
||||||
|
|
||||||
Security
|
Security
|
||||||
* Fix authentication bypass in SSL/TLS: when auth_mode is set to optional,
|
* Fix authentication bypass in SSL/TLS: when auth_mode is set to optional,
|
||||||
|
|
|
@ -165,7 +165,7 @@ int mbedtls_dhm_make_params( mbedtls_dhm_context *ctx, int x_size,
|
||||||
*/
|
*/
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
mbedtls_mpi_fill_random( &ctx->X, x_size, f_rng, p_rng );
|
MBEDTLS_MPI_CHK( mbedtls_mpi_fill_random( &ctx->X, x_size, f_rng, p_rng ) );
|
||||||
|
|
||||||
while( mbedtls_mpi_cmp_mpi( &ctx->X, &ctx->P ) >= 0 )
|
while( mbedtls_mpi_cmp_mpi( &ctx->X, &ctx->P ) >= 0 )
|
||||||
MBEDTLS_MPI_CHK( mbedtls_mpi_shift_r( &ctx->X, 1 ) );
|
MBEDTLS_MPI_CHK( mbedtls_mpi_shift_r( &ctx->X, 1 ) );
|
||||||
|
@ -251,7 +251,7 @@ int mbedtls_dhm_make_public( mbedtls_dhm_context *ctx, int x_size,
|
||||||
*/
|
*/
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
mbedtls_mpi_fill_random( &ctx->X, x_size, f_rng, p_rng );
|
MBEDTLS_MPI_CHK( mbedtls_mpi_fill_random( &ctx->X, x_size, f_rng, p_rng ) );
|
||||||
|
|
||||||
while( mbedtls_mpi_cmp_mpi( &ctx->X, &ctx->P ) >= 0 )
|
while( mbedtls_mpi_cmp_mpi( &ctx->X, &ctx->P ) >= 0 )
|
||||||
MBEDTLS_MPI_CHK( mbedtls_mpi_shift_r( &ctx->X, 1 ) );
|
MBEDTLS_MPI_CHK( mbedtls_mpi_shift_r( &ctx->X, 1 ) );
|
||||||
|
@ -324,7 +324,7 @@ static int dhm_update_blinding( mbedtls_dhm_context *ctx,
|
||||||
count = 0;
|
count = 0;
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
mbedtls_mpi_fill_random( &ctx->Vi, mbedtls_mpi_size( &ctx->P ), f_rng, p_rng );
|
MBEDTLS_MPI_CHK( mbedtls_mpi_fill_random( &ctx->Vi, mbedtls_mpi_size( &ctx->P ), f_rng, p_rng ) );
|
||||||
|
|
||||||
while( mbedtls_mpi_cmp_mpi( &ctx->Vi, &ctx->P ) >= 0 )
|
while( mbedtls_mpi_cmp_mpi( &ctx->Vi, &ctx->P ) >= 0 )
|
||||||
MBEDTLS_MPI_CHK( mbedtls_mpi_shift_r( &ctx->Vi, 1 ) );
|
MBEDTLS_MPI_CHK( mbedtls_mpi_shift_r( &ctx->Vi, 1 ) );
|
||||||
|
|
|
@ -1128,7 +1128,7 @@ static int ecp_randomize_jac( const mbedtls_ecp_group *grp, mbedtls_ecp_point *p
|
||||||
/* Generate l such that 1 < l < p */
|
/* Generate l such that 1 < l < p */
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
mbedtls_mpi_fill_random( &l, p_size, f_rng, p_rng );
|
MBEDTLS_MPI_CHK( mbedtls_mpi_fill_random( &l, p_size, f_rng, p_rng ) );
|
||||||
|
|
||||||
while( mbedtls_mpi_cmp_mpi( &l, &grp->P ) >= 0 )
|
while( mbedtls_mpi_cmp_mpi( &l, &grp->P ) >= 0 )
|
||||||
MBEDTLS_MPI_CHK( mbedtls_mpi_shift_r( &l, 1 ) );
|
MBEDTLS_MPI_CHK( mbedtls_mpi_shift_r( &l, 1 ) );
|
||||||
|
@ -1527,7 +1527,7 @@ static int ecp_randomize_mxz( const mbedtls_ecp_group *grp, mbedtls_ecp_point *P
|
||||||
/* Generate l such that 1 < l < p */
|
/* Generate l such that 1 < l < p */
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
mbedtls_mpi_fill_random( &l, p_size, f_rng, p_rng );
|
MBEDTLS_MPI_CHK( mbedtls_mpi_fill_random( &l, p_size, f_rng, p_rng ) );
|
||||||
|
|
||||||
while( mbedtls_mpi_cmp_mpi( &l, &grp->P ) >= 0 )
|
while( mbedtls_mpi_cmp_mpi( &l, &grp->P ) >= 0 )
|
||||||
MBEDTLS_MPI_CHK( mbedtls_mpi_shift_r( &l, 1 ) );
|
MBEDTLS_MPI_CHK( mbedtls_mpi_shift_r( &l, 1 ) );
|
||||||
|
|
Loading…
Reference in a new issue