mirror of
https://github.com/espressif/mbedtls.git
synced 2025-05-09 11:21:21 +08:00
bignum: add provision for combined software and hardware MPI approach
For exponential mod (API mbedtls_mpi_exp_mod) operation, some ESP target chips needs to have ability for both hardware and software implementation. Hardware implementation provided performance advantage but it can only support upto 3072 bit operations (e.g., ESP32-C3) and hence we fallback to software implementation in such cases (e.g., 4096 bit operations). Earlier this was handled using linker "--wrap" flag but that does not work in all scenarios as API `mbedtls_mpi_exp_mod` is being used in same tranlation (compilation unit). This approach was found to be next best option with minimal changes in mbedTLS library.
This commit is contained in:
parent
df0d3fc61e
commit
2092ac687b
@ -1971,9 +1971,15 @@ cleanup:
|
|||||||
/*
|
/*
|
||||||
* Sliding-window exponentiation: X = A^E mod N (HAC 14.85)
|
* Sliding-window exponentiation: X = A^E mod N (HAC 14.85)
|
||||||
*/
|
*/
|
||||||
|
#if !defined(MBEDTLS_MPI_EXP_MOD_ALT_FALLBACK)
|
||||||
int mbedtls_mpi_exp_mod( mbedtls_mpi *X, const mbedtls_mpi *A,
|
int mbedtls_mpi_exp_mod( mbedtls_mpi *X, const mbedtls_mpi *A,
|
||||||
|
const mbedtls_mpi *E, const mbedtls_mpi *N,
|
||||||
|
mbedtls_mpi *prec_RR )
|
||||||
|
#else
|
||||||
|
int mbedtls_mpi_exp_mod_soft( mbedtls_mpi *X, const mbedtls_mpi *A,
|
||||||
const mbedtls_mpi *E, const mbedtls_mpi *N,
|
const mbedtls_mpi *E, const mbedtls_mpi *N,
|
||||||
mbedtls_mpi *prec_RR )
|
mbedtls_mpi *prec_RR )
|
||||||
|
#endif
|
||||||
{
|
{
|
||||||
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
int ret = MBEDTLS_ERR_ERROR_CORRUPTION_DETECTED;
|
||||||
size_t wbits, wsize, one = 1;
|
size_t wbits, wsize, one = 1;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user