Always declare restartable function variants

Otherwise code that uses these functions in other modules will have to do:

    #if defined(MBEDTLS_ECP_RESTARTABLE)
    ret = do_stuff( there, may, be, many, args );
    #else
    ret = do_stuff( their, may, be, namy, args, rs_ctx );
    #fi

and there is a risk that the arg list will differ when code is updated, and
this might not be caught immediately by tests because this depends on a
config.h compile-time option which are harder to test.

Always declaring the restartable variants of the API functions avoids this
problem; the cost in ROM size should be negligible.
This commit is contained in:
Manuel Pégourié-Gonnard 2017-04-20 16:06:13 +02:00
parent 0ff17df081
commit b5a50e754d
2 changed files with 7 additions and 13 deletions
library

View file

@ -250,9 +250,6 @@ static int ecp_check_budget( const mbedtls_ecp_group *grp,
#define ECP_BUDGET( ops ) MBEDTLS_MPI_CHK( ecp_check_budget( grp, rs_ctx, ops ) );
#else
#define ECP_BUDGET( ops ) /* no-op */
/* We also need that type to make our life simpler for internal functions */
typedef void mbedtls_ecp_restart_ctx;
#endif /* MBEDTLS_ECP_RESTARTABLE */
#if defined(MBEDTLS_ECP_DP_SECP192R1_ENABLED) || \
@ -2130,9 +2127,6 @@ cleanup:
/*
* Restartable multiplication R = m * P
*/
#if !defined(MBEDTLS_ECP_RESTARTABLE)
static
#endif
int mbedtls_ecp_mul_restartable( mbedtls_ecp_group *grp, mbedtls_ecp_point *R,
const mbedtls_mpi *m, const mbedtls_ecp_point *P,
int (*f_rng)(void *, unsigned char *, size_t), void *p_rng,
@ -2295,9 +2289,6 @@ cleanup:
* Restartable linear combination
* NOT constant-time
*/
#if !defined(MBEDTLS_ECP_RESTARTABLE)
static
#endif
int mbedtls_ecp_muladd_restartable(
mbedtls_ecp_group *grp, mbedtls_ecp_point *R,
const mbedtls_mpi *m, const mbedtls_ecp_point *P,