1*62c56f98SSadaf Ebrahimi /** 2*62c56f98SSadaf Ebrahimi * \file bignum_mod_raw_invasive.h 3*62c56f98SSadaf Ebrahimi * 4*62c56f98SSadaf Ebrahimi * \brief Function declarations for invasive functions of Low-level 5*62c56f98SSadaf Ebrahimi * modular bignum. 6*62c56f98SSadaf Ebrahimi */ 7*62c56f98SSadaf Ebrahimi /** 8*62c56f98SSadaf Ebrahimi * Copyright The Mbed TLS Contributors 9*62c56f98SSadaf Ebrahimi * SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later 10*62c56f98SSadaf Ebrahimi */ 11*62c56f98SSadaf Ebrahimi 12*62c56f98SSadaf Ebrahimi #ifndef MBEDTLS_BIGNUM_MOD_RAW_INVASIVE_H 13*62c56f98SSadaf Ebrahimi #define MBEDTLS_BIGNUM_MOD_RAW_INVASIVE_H 14*62c56f98SSadaf Ebrahimi 15*62c56f98SSadaf Ebrahimi #include "common.h" 16*62c56f98SSadaf Ebrahimi #include "mbedtls/bignum.h" 17*62c56f98SSadaf Ebrahimi #include "bignum_mod.h" 18*62c56f98SSadaf Ebrahimi 19*62c56f98SSadaf Ebrahimi #if defined(MBEDTLS_TEST_HOOKS) 20*62c56f98SSadaf Ebrahimi 21*62c56f98SSadaf Ebrahimi /** Convert the result of a quasi-reduction to its canonical representative. 22*62c56f98SSadaf Ebrahimi * 23*62c56f98SSadaf Ebrahimi * \param[in,out] X The address of the MPI to be converted. Must have the 24*62c56f98SSadaf Ebrahimi * same number of limbs as \p N. The input value must 25*62c56f98SSadaf Ebrahimi * be in range 0 <= X < 2N. 26*62c56f98SSadaf Ebrahimi * \param[in] N The address of the modulus. 27*62c56f98SSadaf Ebrahimi */ 28*62c56f98SSadaf Ebrahimi MBEDTLS_STATIC_TESTABLE 29*62c56f98SSadaf Ebrahimi void mbedtls_mpi_mod_raw_fix_quasi_reduction(mbedtls_mpi_uint *X, 30*62c56f98SSadaf Ebrahimi const mbedtls_mpi_mod_modulus *N); 31*62c56f98SSadaf Ebrahimi 32*62c56f98SSadaf Ebrahimi #endif /* MBEDTLS_TEST_HOOKS */ 33*62c56f98SSadaf Ebrahimi 34*62c56f98SSadaf Ebrahimi #endif /* MBEDTLS_BIGNUM_MOD_RAW_INVASIVE_H */ 35