1
0
mirror of https://github.com/ARMmbed/mbedtls.git synced 2025-06-28 00:58:05 +08:00

Merge pull request #8017 from ivq/unchecked_return

Fix a few unchecked return values
This commit is contained in:
Tom Cosgrove 2023-08-21 13:02:53 +00:00 committed by GitHub
commit d29648026b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 7 additions and 4 deletions

View File

@ -0,0 +1,3 @@
Bugfix
* Fix some cases where mbedtls_mpi_mod_exp, RSA key construction or ECDSA
signature can silently return an incorrect result in low memory conditions.

View File

@ -2033,7 +2033,7 @@ int mbedtls_mpi_exp_mod(mbedtls_mpi *X, const mbedtls_mpi *A,
/* /*
* Load the result in the output variable. * Load the result in the output variable.
*/ */
mbedtls_mpi_copy(X, &W[x_index]); MBEDTLS_MPI_CHK(mbedtls_mpi_copy(X, &W[x_index]));
cleanup: cleanup:

View File

@ -373,7 +373,7 @@ modn:
#if defined(MBEDTLS_ECP_RESTARTABLE) #if defined(MBEDTLS_ECP_RESTARTABLE)
if (rs_ctx != NULL && rs_ctx->sig != NULL) { if (rs_ctx != NULL && rs_ctx->sig != NULL) {
mbedtls_mpi_copy(r, pr); MBEDTLS_MPI_CHK(mbedtls_mpi_copy(r, pr));
} }
#endif #endif
@ -447,7 +447,7 @@ int mbedtls_ecdsa_sign_det_restartable(mbedtls_ecp_group *grp,
MBEDTLS_MPI_CHK(mbedtls_mpi_write_binary(d, data, grp_len)); MBEDTLS_MPI_CHK(mbedtls_mpi_write_binary(d, data, grp_len));
MBEDTLS_MPI_CHK(derive_mpi(grp, &h, buf, blen)); MBEDTLS_MPI_CHK(derive_mpi(grp, &h, buf, blen));
MBEDTLS_MPI_CHK(mbedtls_mpi_write_binary(&h, data + grp_len, grp_len)); MBEDTLS_MPI_CHK(mbedtls_mpi_write_binary(&h, data + grp_len, grp_len));
mbedtls_hmac_drbg_seed_buf(p_rng, md_info, data, 2 * grp_len); MBEDTLS_MPI_CHK(mbedtls_hmac_drbg_seed_buf(p_rng, md_info, data, 2 * grp_len));
#if defined(MBEDTLS_ECP_RESTARTABLE) #if defined(MBEDTLS_ECP_RESTARTABLE)
if (rs_ctx != NULL && rs_ctx->det != NULL) { if (rs_ctx != NULL && rs_ctx->det != NULL) {

View File

@ -126,7 +126,7 @@ int mbedtls_rsa_deduce_primes(mbedtls_mpi const *N,
} }
for (; attempt < num_primes; ++attempt) { for (; attempt < num_primes; ++attempt) {
mbedtls_mpi_lset(&K, primes[attempt]); MBEDTLS_MPI_CHK(mbedtls_mpi_lset(&K, primes[attempt]));
/* Check if gcd(K,N) = 1 */ /* Check if gcd(K,N) = 1 */
MBEDTLS_MPI_CHK(mbedtls_mpi_gcd(P, &K, N)); MBEDTLS_MPI_CHK(mbedtls_mpi_gcd(P, &K, N));