mirror of
https://github.com/yuzu-emu/mbedtls.git
synced 2024-11-25 20:35:39 +01:00
Merge remote-tracking branch 'upstream-public/pr/2267' into development
This commit is contained in:
commit
01b34fb316
@ -49,6 +49,8 @@ Bugfix
|
|||||||
* Add explicit integer to enumeration type casts to example program
|
* Add explicit integer to enumeration type casts to example program
|
||||||
programs/pkey/gen_key which previously led to compilation failure
|
programs/pkey/gen_key which previously led to compilation failure
|
||||||
on some toolchains. Reported by phoenixmcallister. Fixes #2170.
|
on some toolchains. Reported by phoenixmcallister. Fixes #2170.
|
||||||
|
* Fix double initialization of ECC hardware that made some accelerators
|
||||||
|
hang.
|
||||||
|
|
||||||
= mbed TLS 2.14.0 branch released 2018-11-19
|
= mbed TLS 2.14.0 branch released 2018-11-19
|
||||||
|
|
||||||
|
@ -114,6 +114,7 @@
|
|||||||
defined(MBEDTLS_ECDSA_SIGN_ALT) || \
|
defined(MBEDTLS_ECDSA_SIGN_ALT) || \
|
||||||
defined(MBEDTLS_ECDSA_VERIFY_ALT) || \
|
defined(MBEDTLS_ECDSA_VERIFY_ALT) || \
|
||||||
defined(MBEDTLS_ECDSA_GENKEY_ALT) || \
|
defined(MBEDTLS_ECDSA_GENKEY_ALT) || \
|
||||||
|
defined(MBEDTLS_ECP_INTERNAL_ALT) || \
|
||||||
defined(MBEDTLS_ECP_ALT) )
|
defined(MBEDTLS_ECP_ALT) )
|
||||||
#error "MBEDTLS_ECP_RESTARTABLE defined, but it cannot coexist with an alternative ECP implementation"
|
#error "MBEDTLS_ECP_RESTARTABLE defined, but it cannot coexist with an alternative ECP implementation"
|
||||||
#endif
|
#endif
|
||||||
|
@ -414,11 +414,11 @@
|
|||||||
* unsigned char mbedtls_internal_ecp_grp_capable(
|
* unsigned char mbedtls_internal_ecp_grp_capable(
|
||||||
* const mbedtls_ecp_group *grp )
|
* const mbedtls_ecp_group *grp )
|
||||||
* int mbedtls_internal_ecp_init( const mbedtls_ecp_group *grp )
|
* int mbedtls_internal_ecp_init( const mbedtls_ecp_group *grp )
|
||||||
* void mbedtls_internal_ecp_deinit( const mbedtls_ecp_group *grp )
|
* void mbedtls_internal_ecp_free( const mbedtls_ecp_group *grp )
|
||||||
* The mbedtls_internal_ecp_grp_capable function should return 1 if the
|
* The mbedtls_internal_ecp_grp_capable function should return 1 if the
|
||||||
* replacement functions implement arithmetic for the given group and 0
|
* replacement functions implement arithmetic for the given group and 0
|
||||||
* otherwise.
|
* otherwise.
|
||||||
* The functions mbedtls_internal_ecp_init and mbedtls_internal_ecp_deinit are
|
* The functions mbedtls_internal_ecp_init and mbedtls_internal_ecp_free are
|
||||||
* called before and after each point operation and provide an opportunity to
|
* called before and after each point operation and provide an opportunity to
|
||||||
* implement optimized set up and tear down instructions.
|
* implement optimized set up and tear down instructions.
|
||||||
*
|
*
|
||||||
|
@ -47,6 +47,35 @@
|
|||||||
#include MBEDTLS_CONFIG_FILE
|
#include MBEDTLS_CONFIG_FILE
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \brief Function level alternative implementation.
|
||||||
|
*
|
||||||
|
* The MBEDTLS_ECP_INTERNAL_ALT macro enables alternative implementations to
|
||||||
|
* replace certain functions in this module. The alternative implementations are
|
||||||
|
* typically hardware accelerators and need to activate the hardware before the
|
||||||
|
* computation starts and deactivate it after it finishes. The
|
||||||
|
* mbedtls_internal_ecp_init() and mbedtls_internal_ecp_free() functions serve
|
||||||
|
* this purpose.
|
||||||
|
*
|
||||||
|
* To preserve the correct functionality the following conditions must hold:
|
||||||
|
*
|
||||||
|
* - The alternative implementation must be activated by
|
||||||
|
* mbedtls_internal_ecp_init() before any of the replaceable functions is
|
||||||
|
* called.
|
||||||
|
* - mbedtls_internal_ecp_free() must \b only be called when the alternative
|
||||||
|
* implementation is activated.
|
||||||
|
* - mbedtls_internal_ecp_init() must \b not be called when the alternative
|
||||||
|
* implementation is activated.
|
||||||
|
* - Public functions must not return while the alternative implementation is
|
||||||
|
* activated.
|
||||||
|
* - Replaceable functions are guarded by \c MBEDTLS_ECP_XXX_ALT macros and
|
||||||
|
* before calling them an \code if( mbedtls_internal_ecp_grp_capable( grp ) )
|
||||||
|
* \endcode ensures that the alternative implementation supports the current
|
||||||
|
* group.
|
||||||
|
*/
|
||||||
|
#if defined(MBEDTLS_ECP_INTERNAL_ALT)
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined(MBEDTLS_ECP_C)
|
#if defined(MBEDTLS_ECP_C)
|
||||||
|
|
||||||
#include "mbedtls/ecp.h"
|
#include "mbedtls/ecp.h"
|
||||||
@ -2412,11 +2441,6 @@ int mbedtls_ecp_muladd_restartable(
|
|||||||
|
|
||||||
mbedtls_ecp_point_init( &mP );
|
mbedtls_ecp_point_init( &mP );
|
||||||
|
|
||||||
#if defined(MBEDTLS_ECP_INTERNAL_ALT)
|
|
||||||
if( ( is_grp_capable = mbedtls_internal_ecp_grp_capable( grp ) ) )
|
|
||||||
MBEDTLS_MPI_CHK( mbedtls_internal_ecp_init( grp ) );
|
|
||||||
#endif /* MBEDTLS_ECP_INTERNAL_ALT */
|
|
||||||
|
|
||||||
ECP_RS_ENTER( ma );
|
ECP_RS_ENTER( ma );
|
||||||
|
|
||||||
#if defined(MBEDTLS_ECP_RESTARTABLE)
|
#if defined(MBEDTLS_ECP_RESTARTABLE)
|
||||||
@ -2444,6 +2468,12 @@ int mbedtls_ecp_muladd_restartable(
|
|||||||
mul2:
|
mul2:
|
||||||
#endif
|
#endif
|
||||||
MBEDTLS_MPI_CHK( mbedtls_ecp_mul_shortcuts( grp, pR, n, Q, rs_ctx ) );
|
MBEDTLS_MPI_CHK( mbedtls_ecp_mul_shortcuts( grp, pR, n, Q, rs_ctx ) );
|
||||||
|
|
||||||
|
#if defined(MBEDTLS_ECP_INTERNAL_ALT)
|
||||||
|
if( ( is_grp_capable = mbedtls_internal_ecp_grp_capable( grp ) ) )
|
||||||
|
MBEDTLS_MPI_CHK( mbedtls_internal_ecp_init( grp ) );
|
||||||
|
#endif /* MBEDTLS_ECP_INTERNAL_ALT */
|
||||||
|
|
||||||
#if defined(MBEDTLS_ECP_RESTARTABLE)
|
#if defined(MBEDTLS_ECP_RESTARTABLE)
|
||||||
if( rs_ctx != NULL && rs_ctx->ma != NULL )
|
if( rs_ctx != NULL && rs_ctx->ma != NULL )
|
||||||
rs_ctx->ma->state = ecp_rsma_add;
|
rs_ctx->ma->state = ecp_rsma_add;
|
||||||
|
Loading…
Reference in New Issue
Block a user