Lines Matching +full:- +full:r
5 * SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
25 int mbedtls_mpi_mod_residue_setup(mbedtls_mpi_mod_residue *r, in mbedtls_mpi_mod_residue_setup() argument
30 if (p_limbs != N->limbs || !mbedtls_mpi_core_lt_ct(p, N->p, N->limbs)) { in mbedtls_mpi_mod_residue_setup()
34 r->limbs = N->limbs; in mbedtls_mpi_mod_residue_setup()
35 r->p = p; in mbedtls_mpi_mod_residue_setup()
40 void mbedtls_mpi_mod_residue_release(mbedtls_mpi_mod_residue *r) in mbedtls_mpi_mod_residue_release() argument
42 if (r == NULL) { in mbedtls_mpi_mod_residue_release()
46 r->limbs = 0; in mbedtls_mpi_mod_residue_release()
47 r->p = NULL; in mbedtls_mpi_mod_residue_release()
56 N->p = NULL; in mbedtls_mpi_mod_modulus_init()
57 N->limbs = 0; in mbedtls_mpi_mod_modulus_init()
58 N->bits = 0; in mbedtls_mpi_mod_modulus_init()
59 N->int_rep = MBEDTLS_MPI_MOD_REP_INVALID; in mbedtls_mpi_mod_modulus_init()
68 switch (N->int_rep) { in mbedtls_mpi_mod_modulus_free()
70 if (N->rep.mont.rr != NULL) { in mbedtls_mpi_mod_modulus_free()
71 mbedtls_zeroize_and_free((mbedtls_mpi_uint *) N->rep.mont.rr, in mbedtls_mpi_mod_modulus_free()
72 N->limbs * sizeof(mbedtls_mpi_uint)); in mbedtls_mpi_mod_modulus_free()
73 N->rep.mont.rr = NULL; in mbedtls_mpi_mod_modulus_free()
75 N->rep.mont.mm = 0; in mbedtls_mpi_mod_modulus_free()
78 N->rep.ored.modp = NULL; in mbedtls_mpi_mod_modulus_free()
84 N->p = NULL; in mbedtls_mpi_mod_modulus_free()
85 N->limbs = 0; in mbedtls_mpi_mod_modulus_free()
86 N->bits = 0; in mbedtls_mpi_mod_modulus_free()
87 N->int_rep = MBEDTLS_MPI_MOD_REP_INVALID; in mbedtls_mpi_mod_modulus_free()
102 if (A == NULL || limbs == 0 || limbs >= (MBEDTLS_MPI_MAX_LIMBS / 2) - 2) { in set_mont_const_square()
131 N->p = p; in standard_modulus_setup()
132 N->limbs = p_limbs; in standard_modulus_setup()
133 N->bits = mbedtls_mpi_core_bitlen(p, p_limbs); in standard_modulus_setup()
134 N->int_rep = int_rep; in standard_modulus_setup()
143 N->rep.mont.mm = mbedtls_mpi_core_montmul_init(N->p); in mbedtls_mpi_mod_modulus_setup()
144 ret = set_mont_const_square(&N->rep.mont.rr, N->p, N->limbs); in mbedtls_mpi_mod_modulus_setup()
159 N->rep.ored.modp = modp; in mbedtls_mpi_mod_optred_modulus_setup()
168 if (N->limbs == 0) { in mbedtls_mpi_mod_mul()
172 if (X->limbs != N->limbs || A->limbs != N->limbs || B->limbs != N->limbs) { in mbedtls_mpi_mod_mul()
176 mbedtls_mpi_uint *T = mbedtls_calloc(N->limbs * 2 + 1, ciL); in mbedtls_mpi_mod_mul()
181 mbedtls_mpi_mod_raw_mul(X->p, A->p, B->p, N, T); in mbedtls_mpi_mod_mul()
193 if (X->limbs != N->limbs || A->limbs != N->limbs || B->limbs != N->limbs) { in mbedtls_mpi_mod_sub()
197 mbedtls_mpi_mod_raw_sub(X->p, A->p, B->p, N); in mbedtls_mpi_mod_sub()
208 mbedtls_mpi_mod_raw_inv_prime(X->p, A->p, in mbedtls_mpi_mod_inv_mont()
209 N->p, N->limbs, in mbedtls_mpi_mod_inv_mont()
210 N->rep.mont.rr, in mbedtls_mpi_mod_inv_mont()
227 MBEDTLS_MPI_CHK(mbedtls_mpi_mod_modulus_setup(&Nmont, N->p, N->limbs)); in mbedtls_mpi_mod_inv_non_mont()
229 /* We'll use X->p to hold the Montgomery form of the input A->p */ in mbedtls_mpi_mod_inv_non_mont()
230 mbedtls_mpi_core_to_mont_rep(X->p, A->p, Nmont.p, Nmont.limbs, in mbedtls_mpi_mod_inv_non_mont()
234 mbedtls_mpi_mod_raw_inv_prime(X->p, X->p, in mbedtls_mpi_mod_inv_non_mont()
241 mbedtls_mpi_core_from_mont_rep(X->p, X->p, Nmont.p, Nmont.limbs, in mbedtls_mpi_mod_inv_non_mont()
253 if (X->limbs != N->limbs || A->limbs != N->limbs) { in mbedtls_mpi_mod_inv()
258 if (mbedtls_mpi_core_check_zero_ct(A->p, A->limbs) == 0) { in mbedtls_mpi_mod_inv()
263 mbedtls_mpi_mod_raw_inv_prime_working_limbs(N->limbs); in mbedtls_mpi_mod_inv()
273 switch (N->int_rep) { in mbedtls_mpi_mod_inv()
296 if (X->limbs != N->limbs || A->limbs != N->limbs || B->limbs != N->limbs) { in mbedtls_mpi_mod_add()
300 mbedtls_mpi_mod_raw_add(X->p, A->p, B->p, N); in mbedtls_mpi_mod_add()
311 if (X->limbs != N->limbs) { in mbedtls_mpi_mod_random()
314 return mbedtls_mpi_mod_raw_random(X->p, min, N, f_rng, p_rng); in mbedtls_mpi_mod_random()
317 int mbedtls_mpi_mod_read(mbedtls_mpi_mod_residue *r, in mbedtls_mpi_mod_read() argument
325 /* Do our best to check if r and m have been set up */ in mbedtls_mpi_mod_read()
326 if (r->limbs == 0 || N->limbs == 0) { in mbedtls_mpi_mod_read()
329 if (r->limbs != N->limbs) { in mbedtls_mpi_mod_read()
333 ret = mbedtls_mpi_mod_raw_read(r->p, N, buf, buflen, ext_rep); in mbedtls_mpi_mod_read()
338 r->limbs = N->limbs; in mbedtls_mpi_mod_read()
340 ret = mbedtls_mpi_mod_raw_canonical_to_modulus_rep(r->p, N); in mbedtls_mpi_mod_read()
346 int mbedtls_mpi_mod_write(const mbedtls_mpi_mod_residue *r, in mbedtls_mpi_mod_write() argument
352 /* Do our best to check if r and m have been set up */ in mbedtls_mpi_mod_write()
353 if (r->limbs == 0 || N->limbs == 0) { in mbedtls_mpi_mod_write()
356 if (r->limbs != N->limbs) { in mbedtls_mpi_mod_write()
361 mbedtls_mpi_uint *working_memory = r->p; in mbedtls_mpi_mod_write()
362 size_t working_memory_len = sizeof(mbedtls_mpi_uint) * r->limbs; in mbedtls_mpi_mod_write()
364 if (N->int_rep == MBEDTLS_MPI_MOD_REP_MONTGOMERY) { in mbedtls_mpi_mod_write()
366 working_memory = mbedtls_calloc(r->limbs, sizeof(mbedtls_mpi_uint)); in mbedtls_mpi_mod_write()
373 memcpy(working_memory, r->p, working_memory_len); in mbedtls_mpi_mod_write()
385 if (N->int_rep == MBEDTLS_MPI_MOD_REP_MONTGOMERY && in mbedtls_mpi_mod_write()