mirror of
https://github.com/yuzu-emu/mbedtls.git
synced 2024-12-22 19:35:34 +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.
|
||||
* Zero length buffer check for undefined behavior in
|
||||
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
|
||||
* 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 )
|
||||
{
|
||||
uint8_t i;
|
||||
unsigned char *x_ptr;
|
||||
mbedtls_mpi_uint tmp = 0;
|
||||
/* This works regardless of the endianness. */
|
||||
for( i = 0; i < ciL; i++, x >>= 8 )
|
||||
tmp |= ( x & 0xFF ) << ( ( ciL - 1 - i ) << 3 );
|
||||
|
||||
for( i = 0, x_ptr = (unsigned char*) &x; i < ciL; i++, x_ptr++ )
|
||||
{
|
||||
tmp <<= CHAR_BIT;
|
||||
tmp |= (mbedtls_mpi_uint) *x_ptr;
|
||||
}
|
||||
|
||||
return( tmp );
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue