Function esp_idf_svc::hal::sys::mbedtls_ecp_mul_restartable

source ·
pub unsafe extern "C" fn mbedtls_ecp_mul_restartable(
    grp: *mut mbedtls_ecp_group,
    R: *mut mbedtls_ecp_point,
    m: *const mbedtls_mpi,
    P: *const mbedtls_ecp_point,
    f_rng: Option<unsafe extern "C" fn(_: *mut c_void, _: *mut u8, _: usize) -> i32>,
    p_rng: *mut c_void,
    rs_ctx: *mut c_void,
) -> i32
Expand description

\brief This function performs multiplication of a point by an integer: \p R = \p m * \p P in a restartable way.

\see mbedtls_ecp_mul()

\note This function does the same as \c mbedtls_ecp_mul(), but it can return early and restart according to the limit set with \c mbedtls_ecp_set_max_ops() to reduce blocking.

\param grp The ECP group to use. This must be initialized and have group parameters set, for example through mbedtls_ecp_group_load(). \param R The point in which to store the result of the calculation. This must be initialized. \param m The integer by which to multiply. This must be initialized. \param P The point to multiply. This must be initialized. \param f_rng The RNG function. This must not be \c NULL. \param p_rng The RNG context to be passed to \p f_rng. This may be \c NULL if \p f_rng doesn’t need a context. \param rs_ctx The restart context (NULL disables restart).

\return \c 0 on success. \return #MBEDTLS_ERR_ECP_INVALID_KEY if \p m is not a valid private key, or \p P is not a valid public key. \return #MBEDTLS_ERR_MPI_ALLOC_FAILED on memory-allocation failure. \return #MBEDTLS_ERR_ECP_IN_PROGRESS if maximum number of operations was reached: see \c mbedtls_ecp_set_max_ops(). \return Another negative error code on other kinds of failure.