69#ifndef MBEDTLS_BIGNUM_MOD_H
70#define MBEDTLS_BIGNUM_MOD_H
74#if defined(MBEDTLS_BIGNUM_C)
382 int (*f_rng)(
void *,
unsigned char *,
size_t),
410 const unsigned char *buf,
Multi-precision integer library.
uint32_t mbedtls_mpi_uint
The type of machine digits in a bignum, called limbs.
Definition bignum.h:170
int(* mbedtls_mpi_modp_fn)(mbedtls_mpi_uint *X, size_t X_limbs)
Definition bignum_mod.h:115
mbedtls_mpi_mod_ext_rep
Definition bignum_mod.h:99
@ MBEDTLS_MPI_MOD_EXT_REP_BE
Definition bignum_mod.h:102
@ MBEDTLS_MPI_MOD_EXT_REP_LE
Definition bignum_mod.h:101
@ MBEDTLS_MPI_MOD_EXT_REP_INVALID
Definition bignum_mod.h:100
int mbedtls_mpi_mod_residue_setup(mbedtls_mpi_mod_residue *r, const mbedtls_mpi_mod_modulus *N, mbedtls_mpi_uint *p, size_t p_limbs)
int mbedtls_mpi_mod_write(const mbedtls_mpi_mod_residue *r, const mbedtls_mpi_mod_modulus *N, unsigned char *buf, size_t buflen, mbedtls_mpi_mod_ext_rep ext_rep)
int mbedtls_mpi_mod_sub(mbedtls_mpi_mod_residue *X, const mbedtls_mpi_mod_residue *A, const mbedtls_mpi_mod_residue *B, const mbedtls_mpi_mod_modulus *N)
Perform a fixed-size modular subtraction.
int mbedtls_mpi_mod_read(mbedtls_mpi_mod_residue *r, const mbedtls_mpi_mod_modulus *N, const unsigned char *buf, size_t buflen, mbedtls_mpi_mod_ext_rep ext_rep)
mbedtls_mpi_mod_rep_selector
Definition bignum_mod.h:83
@ MBEDTLS_MPI_MOD_REP_MONTGOMERY
Definition bignum_mod.h:88
@ MBEDTLS_MPI_MOD_REP_INVALID
Definition bignum_mod.h:85
@ MBEDTLS_MPI_MOD_REP_OPT_RED
Definition bignum_mod.h:94
int mbedtls_mpi_mod_optred_modulus_setup(mbedtls_mpi_mod_modulus *N, const mbedtls_mpi_uint *p, size_t p_limbs, mbedtls_mpi_modp_fn modp)
void mbedtls_mpi_mod_modulus_init(mbedtls_mpi_mod_modulus *N)
int mbedtls_mpi_mod_modulus_setup(mbedtls_mpi_mod_modulus *N, const mbedtls_mpi_uint *p, size_t p_limbs)
int mbedtls_mpi_mod_add(mbedtls_mpi_mod_residue *X, const mbedtls_mpi_mod_residue *A, const mbedtls_mpi_mod_residue *B, const mbedtls_mpi_mod_modulus *N)
Perform a fixed-size modular addition.
void mbedtls_mpi_mod_modulus_free(mbedtls_mpi_mod_modulus *N)
void mbedtls_mpi_mod_residue_release(mbedtls_mpi_mod_residue *r)
int mbedtls_mpi_mod_inv(mbedtls_mpi_mod_residue *X, const mbedtls_mpi_mod_residue *A, const mbedtls_mpi_mod_modulus *N)
Perform modular inversion of an MPI with respect to a modulus N.
int mbedtls_mpi_mod_mul(mbedtls_mpi_mod_residue *X, const mbedtls_mpi_mod_residue *A, const mbedtls_mpi_mod_residue *B, const mbedtls_mpi_mod_modulus *N)
Multiply two residues, returning the residue modulo the specified modulus.
int mbedtls_mpi_mod_random(mbedtls_mpi_mod_residue *X, mbedtls_mpi_uint min, const mbedtls_mpi_mod_modulus *N, int(*f_rng)(void *, unsigned char *, size_t), void *p_rng)
Utility macros for internal use in the library.
@ B
Definition element-type.h:28
@ A
Definition element-type.h:28
#define min(a, b)
Definition minmax.h:24
Definition bignum_mod.h:121
size_t limbs
Definition bignum_mod.h:123
mbedtls_mpi_mod_rep_selector int_rep
Definition bignum_mod.h:125
const mbedtls_mpi_uint * p
Definition bignum_mod.h:122
size_t bits
Definition bignum_mod.h:124
Definition bignum_mod.h:105
size_t limbs
Definition bignum_mod.h:107
mbedtls_mpi_uint * p
Definition bignum_mod.h:106
Definition bignum_mod.h:110
mbedtls_mpi_uint const * rr
Definition bignum_mod.h:111
mbedtls_mpi_uint mm
Definition bignum_mod.h:112
Definition bignum_mod.h:117
mbedtls_mpi_modp_fn modp
Definition bignum_mod.h:118
Definition bignum_mod.h:126
mbedtls_mpi_opt_red_struct ored
Definition bignum_mod.h:130
mbedtls_mpi_mont_struct mont
Definition bignum_mod.h:128