mirror of
https://github.com/yuzu-emu/mbedtls.git
synced 2024-12-23 05:45:27 +00:00
Merge remote-tracking branch 'origin/pr/2645' into mbedtls-2.16
* origin/pr/2645: Adapt ChangeLog Fix mpi_bigendian_to_host() on bigendian systems
This commit is contained in:
commit
c3bfb20a41
|
@ -30,6 +30,9 @@ Bugfix
|
||||||
Discovered and fixed by Andy Gross (Linaro), #2392.
|
Discovered and fixed by Andy Gross (Linaro), #2392.
|
||||||
* Zero length buffer check for undefined behavior in
|
* Zero length buffer check for undefined behavior in
|
||||||
mbedtls_platform_zeroize(). Fixes ARMmbed/mbed-crypto#49.
|
mbedtls_platform_zeroize(). Fixes ARMmbed/mbed-crypto#49.
|
||||||
|
* Fix bug in endianness conversion in bignum module. This lead to
|
||||||
|
functionally incorrect code on bigendian systems which don't have
|
||||||
|
__BYTE_ORDER__ defined. Reported by Brendan Shanks. Fixes #2622.
|
||||||
|
|
||||||
Changes
|
Changes
|
||||||
* Make it easier to define MBEDTLS_PARAM_FAILED as assert (which config.h
|
* Make it easier to define MBEDTLS_PARAM_FAILED as assert (which config.h
|
||||||
|
|
|
@ -742,10 +742,15 @@ cleanup:
|
||||||
static mbedtls_mpi_uint mpi_uint_bigendian_to_host_c( mbedtls_mpi_uint x )
|
static mbedtls_mpi_uint mpi_uint_bigendian_to_host_c( mbedtls_mpi_uint x )
|
||||||
{
|
{
|
||||||
uint8_t i;
|
uint8_t i;
|
||||||
|
unsigned char *x_ptr;
|
||||||
mbedtls_mpi_uint tmp = 0;
|
mbedtls_mpi_uint tmp = 0;
|
||||||
/* This works regardless of the endianness. */
|
|
||||||
for( i = 0; i < ciL; i++, x >>= 8 )
|
for( i = 0, x_ptr = (unsigned char*) &x; i < ciL; i++, x_ptr++ )
|
||||||
tmp |= ( x & 0xFF ) << ( ( ciL - 1 - i ) << 3 );
|
{
|
||||||
|
tmp <<= CHAR_BIT;
|
||||||
|
tmp |= (mbedtls_mpi_uint) *x_ptr;
|
||||||
|
}
|
||||||
|
|
||||||
return( tmp );
|
return( tmp );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue