|
53 | 53 | * would be defined in mbedtls/ecp.h from ecp.c for our inclusion */
|
54 | 54 | #define ECP_SHORTWEIERSTRASS
|
55 | 55 |
|
| 56 | +#include "mbedtls/platform.h" |
56 | 57 | #include "mbedtls/ecp_internal.h"
|
57 | 58 | #include "mbed_toolchain.h"
|
58 | 59 | #include "mbed_assert.h"
|
@@ -632,10 +633,9 @@ NU_STATIC int internal_run_eccop(const mbedtls_ecp_group *grp,
|
632 | 633 | crypto_ecc_prestart();
|
633 | 634 | CRPT->ECC_CTL = (grp->pbits << CRPT_ECC_CTL_CURVEM_Pos) | eccop | CRPT_ECC_CTL_FSEL_Msk | CRPT_ECC_CTL_START_Msk;
|
634 | 635 | ecc_done = crypto_ecc_wait();
|
635 |
| - |
636 |
| - /* FIXME: Better error code for ECC accelerator error */ |
637 |
| - MBEDTLS_MPI_CHK(ecc_done ? 0 : -1); |
638 |
| - |
| 636 | + |
| 637 | + MBEDTLS_MPI_CHK(ecc_done ? 0 : MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED); |
| 638 | + |
639 | 639 | /* (X1, Y1) hold the normalized result. */
|
640 | 640 | MBEDTLS_MPI_CHK(internal_mpi_read_eccreg(&R->X, (uint32_t *) CRPT->ECC_X1, NU_ECC_BIGNUM_MAXWORD));
|
641 | 641 | MBEDTLS_MPI_CHK(internal_mpi_read_eccreg(&R->Y, (uint32_t *) CRPT->ECC_Y1, NU_ECC_BIGNUM_MAXWORD));
|
@@ -726,10 +726,9 @@ NU_STATIC int internal_run_modop(mbedtls_mpi *r,
|
726 | 726 | crypto_ecc_prestart();
|
727 | 727 | CRPT->ECC_CTL = (pbits << CRPT_ECC_CTL_CURVEM_Pos) | (ECCOP_MODULE | modop) | CRPT_ECC_CTL_FSEL_Msk | CRPT_ECC_CTL_START_Msk;
|
728 | 728 | ecc_done = crypto_ecc_wait();
|
729 |
| - |
730 |
| - /* FIXME: Better error code for ECC accelerator error */ |
731 |
| - MBEDTLS_MPI_CHK(ecc_done ? 0 : -1); |
732 |
| - |
| 729 | + |
| 730 | + MBEDTLS_MPI_CHK(ecc_done ? 0 : MBEDTLS_ERR_PLATFORM_HW_ACCEL_FAILED); |
| 731 | + |
733 | 732 | /* X1 holds the result. */
|
734 | 733 | MBEDTLS_MPI_CHK(internal_mpi_read_eccreg(r, (uint32_t *) CRPT->ECC_X1, NU_ECC_BIGNUM_MAXWORD));
|
735 | 734 |
|
|
0 commit comments