mirror of
				https://github.com/Mbed-TLS/mbedtls.git
				synced 2025-11-03 20:33:16 +03:00 
			
		
		
		
	RSA: remove redundant GCD call in prepare_blinding()
inv_mod() already returns a specific error code if the value is not invertible, so no need to check in advance that it is. Also, this is a preparation for blinding the call to inv_mod(), which is made easier by avoiding the redundancy (otherwise the call to gcd() would need to be blinded too). Signed-off-by: Manuel Pégourié-Gonnard <manuel.pegourie-gonnard@arm.com>
This commit is contained in:
		@@ -826,11 +826,14 @@ static int rsa_prepare_blinding( mbedtls_rsa_context *ctx,
 | 
				
			|||||||
            return( MBEDTLS_ERR_RSA_RNG_FAILED );
 | 
					            return( MBEDTLS_ERR_RSA_RNG_FAILED );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        MBEDTLS_MPI_CHK( mbedtls_mpi_fill_random( &ctx->Vf, ctx->len - 1, f_rng, p_rng ) );
 | 
					        MBEDTLS_MPI_CHK( mbedtls_mpi_fill_random( &ctx->Vf, ctx->len - 1, f_rng, p_rng ) );
 | 
				
			||||||
        MBEDTLS_MPI_CHK( mbedtls_mpi_gcd( &ctx->Vi, &ctx->Vf, &ctx->N ) );
 | 
					
 | 
				
			||||||
    } while( mbedtls_mpi_cmp_int( &ctx->Vi, 1 ) != 0 );
 | 
					        ret = mbedtls_mpi_inv_mod( &ctx->Vi, &ctx->Vf, &ctx->N );
 | 
				
			||||||
 | 
					        if( ret != 0 && ret != MBEDTLS_ERR_MPI_NOT_ACCEPTABLE )
 | 
				
			||||||
 | 
					            goto cleanup;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    } while( ret == MBEDTLS_ERR_MPI_NOT_ACCEPTABLE )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /* Blinding value: Vi =  Vf^(-e) mod N */
 | 
					    /* Blinding value: Vi =  Vf^(-e) mod N */
 | 
				
			||||||
    MBEDTLS_MPI_CHK( mbedtls_mpi_inv_mod( &ctx->Vi, &ctx->Vf, &ctx->N ) );
 | 
					 | 
				
			||||||
    MBEDTLS_MPI_CHK( mbedtls_mpi_exp_mod( &ctx->Vi, &ctx->Vi, &ctx->E, &ctx->N, &ctx->RN ) );
 | 
					    MBEDTLS_MPI_CHK( mbedtls_mpi_exp_mod( &ctx->Vi, &ctx->Vi, &ctx->E, &ctx->N, &ctx->RN ) );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user