Lines Matching refs:A

1051 int mbedtls_mpi_add_abs(mbedtls_mpi *X, const mbedtls_mpi *A, const mbedtls_mpi *B)  in mbedtls_mpi_add_abs()  argument
1059 const mbedtls_mpi *T = A; A = X; B = T; in mbedtls_mpi_add_abs()
1062 if (X != A) { in mbedtls_mpi_add_abs()
1063 MBEDTLS_MPI_CHK(mbedtls_mpi_copy(X, A)); in mbedtls_mpi_add_abs()
1112 int mbedtls_mpi_sub_abs(mbedtls_mpi *X, const mbedtls_mpi *A, const mbedtls_mpi *B) in mbedtls_mpi_sub_abs() argument
1123 if (n > A->n) { in mbedtls_mpi_sub_abs()
1129 MBEDTLS_MPI_CHK(mbedtls_mpi_grow(X, A->n)); in mbedtls_mpi_sub_abs()
1134 if (A->n > n && A != X) { in mbedtls_mpi_sub_abs()
1135 memcpy(X->p + n, A->p + n, (A->n - n) * ciL); in mbedtls_mpi_sub_abs()
1137 if (X->n > A->n) { in mbedtls_mpi_sub_abs()
1138 memset(X->p + A->n, 0, (X->n - A->n) * ciL); in mbedtls_mpi_sub_abs()
1141 carry = mbedtls_mpi_core_sub(X->p, A->p, B->p, n); in mbedtls_mpi_sub_abs()
1164 const mbedtls_mpi *A, const mbedtls_mpi *B, in add_sub_mpi() argument
1169 s = A->s; in add_sub_mpi()
1170 if (A->s * B->s * flip_B < 0) { in add_sub_mpi()
1171 int cmp = mbedtls_mpi_cmp_abs(A, B); in add_sub_mpi()
1173 MBEDTLS_MPI_CHK(mbedtls_mpi_sub_abs(X, A, B)); in add_sub_mpi()
1179 MBEDTLS_MPI_CHK(mbedtls_mpi_sub_abs(X, B, A)); in add_sub_mpi()
1184 MBEDTLS_MPI_CHK(mbedtls_mpi_add_abs(X, A, B)); in add_sub_mpi()
1196 int mbedtls_mpi_add_mpi(mbedtls_mpi *X, const mbedtls_mpi *A, const mbedtls_mpi *B) in mbedtls_mpi_add_mpi() argument
1198 return add_sub_mpi(X, A, B, 1); in mbedtls_mpi_add_mpi()
1204 int mbedtls_mpi_sub_mpi(mbedtls_mpi *X, const mbedtls_mpi *A, const mbedtls_mpi *B) in mbedtls_mpi_sub_mpi() argument
1206 return add_sub_mpi(X, A, B, -1); in mbedtls_mpi_sub_mpi()
1212 int mbedtls_mpi_add_int(mbedtls_mpi *X, const mbedtls_mpi *A, mbedtls_mpi_sint b) in mbedtls_mpi_add_int() argument
1222 return mbedtls_mpi_add_mpi(X, A, &B); in mbedtls_mpi_add_int()
1228 int mbedtls_mpi_sub_int(mbedtls_mpi *X, const mbedtls_mpi *A, mbedtls_mpi_sint b) in mbedtls_mpi_sub_int() argument
1238 return mbedtls_mpi_sub_mpi(X, A, &B); in mbedtls_mpi_sub_int()
1244 int mbedtls_mpi_mul_mpi(mbedtls_mpi *X, const mbedtls_mpi *A, const mbedtls_mpi *B) in mbedtls_mpi_mul_mpi() argument
1254 if (X == A) { in mbedtls_mpi_mul_mpi()
1255 MBEDTLS_MPI_CHK(mbedtls_mpi_copy(&TA, A)); A = &TA; in mbedtls_mpi_mul_mpi()
1261 for (i = A->n; i > 0; i--) { in mbedtls_mpi_mul_mpi()
1262 if (A->p[i - 1] != 0) { in mbedtls_mpi_mul_mpi()
1282 mbedtls_mpi_core_mul(X->p, A->p, i, B->p, j); in mbedtls_mpi_mul_mpi()
1291 X->s = A->s * B->s; in mbedtls_mpi_mul_mpi()
1304 int mbedtls_mpi_mul_int(mbedtls_mpi *X, const mbedtls_mpi *A, mbedtls_mpi_uint b) in mbedtls_mpi_mul_int() argument
1306 size_t n = A->n; in mbedtls_mpi_mul_int()
1307 while (n > 0 && A->p[n - 1] == 0) { in mbedtls_mpi_mul_int()
1330 MBEDTLS_MPI_CHK(mbedtls_mpi_copy(X, A)); in mbedtls_mpi_mul_int()
1331 mbedtls_mpi_core_mla(X->p, X->n, A->p, n, b - 1); in mbedtls_mpi_mul_int()
1444 int mbedtls_mpi_div_mpi(mbedtls_mpi *Q, mbedtls_mpi *R, const mbedtls_mpi *A, in mbedtls_mpi_div_mpi() argument
1469 if (mbedtls_mpi_cmp_abs(A, B) < 0) { in mbedtls_mpi_div_mpi()
1474 MBEDTLS_MPI_CHK(mbedtls_mpi_copy(R, A)); in mbedtls_mpi_div_mpi()
1479 MBEDTLS_MPI_CHK(mbedtls_mpi_copy(&X, A)); in mbedtls_mpi_div_mpi()
1483 MBEDTLS_MPI_CHK(mbedtls_mpi_grow(&Z, A->n + 2)); in mbedtls_mpi_div_mpi()
1485 MBEDTLS_MPI_CHK(mbedtls_mpi_grow(&T1, A->n + 2)); in mbedtls_mpi_div_mpi()
1542 Q->s = A->s * B->s; in mbedtls_mpi_div_mpi()
1547 X.s = A->s; in mbedtls_mpi_div_mpi()
1568 const mbedtls_mpi *A, in mbedtls_mpi_div_int() argument
1579 return mbedtls_mpi_div_mpi(Q, R, A, &B); in mbedtls_mpi_div_int()
1585 int mbedtls_mpi_mod_mpi(mbedtls_mpi *R, const mbedtls_mpi *A, const mbedtls_mpi *B) in mbedtls_mpi_mod_mpi() argument
1593 MBEDTLS_MPI_CHK(mbedtls_mpi_div_mpi(NULL, R, A, B)); in mbedtls_mpi_mod_mpi()
1611 int mbedtls_mpi_mod_int(mbedtls_mpi_uint *r, const mbedtls_mpi *A, mbedtls_mpi_sint b) in mbedtls_mpi_mod_int() argument
1627 if (b == 1 || A->n == 0) { in mbedtls_mpi_mod_int()
1633 *r = A->p[0] & 1; in mbedtls_mpi_mod_int()
1640 for (i = A->n, y = 0; i > 0; i--) { in mbedtls_mpi_mod_int()
1641 x = A->p[i - 1]; in mbedtls_mpi_mod_int()
1656 if (A->s < 0 && y != 0) { in mbedtls_mpi_mod_int()
1697 void mbedtls_mpi_montmul(mbedtls_mpi *A, const mbedtls_mpi *B, in mbedtls_mpi_montmul() argument
1701 mbedtls_mpi_core_montmul(A->p, A->p, B->p, B->n, N->p, N->n, mm, T->p); in mbedtls_mpi_montmul()
1712 void mbedtls_mpi_montred(mbedtls_mpi *A, const mbedtls_mpi *N, in mbedtls_mpi_montred() argument
1721 mbedtls_mpi_montmul(A, &U, N, mm, T); in mbedtls_mpi_montred()
1728 static int mbedtls_mpi_exp_mod_optionally_safe(mbedtls_mpi *X, const mbedtls_mpi *A, in mbedtls_mpi_exp_mod_optionally_safe() argument
1786 MBEDTLS_MPI_CHK(mbedtls_mpi_copy(X, A)); in mbedtls_mpi_exp_mod_optionally_safe()
1825 if (A->s == -1 && (E->p[0] & 1) != 0) { in mbedtls_mpi_exp_mod_optionally_safe()
1844 int mbedtls_mpi_exp_mod(mbedtls_mpi *X, const mbedtls_mpi *A, in mbedtls_mpi_exp_mod() argument
1850 return mbedtls_mpi_exp_mod_unsafe(X, A, E, N, prec_RR); in mbedtls_mpi_exp_mod()
1852 return mbedtls_mpi_exp_mod_optionally_safe(X, A, E, MBEDTLS_MPI_IS_SECRET, N, prec_RR); in mbedtls_mpi_exp_mod()
1860 int mbedtls_mpi_exp_mod_unsafe(mbedtls_mpi *X, const mbedtls_mpi *A, in mbedtls_mpi_exp_mod_unsafe() argument
1864 return mbedtls_mpi_exp_mod_optionally_safe(X, A, E, MBEDTLS_MPI_IS_PUBLIC, N, prec_RR); in mbedtls_mpi_exp_mod_unsafe()
1870 int mbedtls_mpi_gcd(mbedtls_mpi *G, const mbedtls_mpi *A, const mbedtls_mpi *B) in mbedtls_mpi_gcd() argument
1878 MBEDTLS_MPI_CHK(mbedtls_mpi_copy(&TA, A)); in mbedtls_mpi_gcd()
1889 ret = mbedtls_mpi_copy(G, A); in mbedtls_mpi_gcd()
2025 int mbedtls_mpi_inv_mod(mbedtls_mpi *X, const mbedtls_mpi *A, const mbedtls_mpi *N) in mbedtls_mpi_inv_mod() argument
2040 MBEDTLS_MPI_CHK(mbedtls_mpi_gcd(&G, A, N)); in mbedtls_mpi_inv_mod()
2047 MBEDTLS_MPI_CHK(mbedtls_mpi_mod_mpi(&TA, A, N)); in mbedtls_mpi_inv_mod()
2184 mbedtls_mpi W, R, T, A, RR; in mpi_miller_rabin() local
2187 mbedtls_mpi_init_mempool(&T); mbedtls_mpi_init_mempool(&A); in mpi_miller_rabin()
2205 MBEDTLS_MPI_CHK(mbedtls_mpi_fill_random(&A, X->n * ciL, f_rng, p_rng)); in mpi_miller_rabin()
2207 j = mbedtls_mpi_bitlen(&A); in mpi_miller_rabin()
2210 A.p[A.n - 1] &= ((mbedtls_mpi_uint) 1 << (k - (A.n - 1) * biL - 1)) - 1; in mpi_miller_rabin()
2218 } while (mbedtls_mpi_cmp_mpi(&A, &W) >= 0 || in mpi_miller_rabin()
2219 mbedtls_mpi_cmp_int(&A, 1) <= 0); in mpi_miller_rabin()
2224 MBEDTLS_MPI_CHK(mbedtls_mpi_exp_mod(&A, &A, &R, X, &RR)); in mpi_miller_rabin()
2226 if (mbedtls_mpi_cmp_mpi(&A, &W) == 0 || in mpi_miller_rabin()
2227 mbedtls_mpi_cmp_int(&A, 1) == 0) { in mpi_miller_rabin()
2232 while (j < s && mbedtls_mpi_cmp_mpi(&A, &W) != 0) { in mpi_miller_rabin()
2236 MBEDTLS_MPI_CHK(mbedtls_mpi_mul_mpi(&T, &A, &A)); in mpi_miller_rabin()
2237 MBEDTLS_MPI_CHK(mbedtls_mpi_mod_mpi(&A, &T, X)); in mpi_miller_rabin()
2239 if (mbedtls_mpi_cmp_int(&A, 1) == 0) { in mpi_miller_rabin()
2249 if (mbedtls_mpi_cmp_mpi(&A, &W) != 0 || in mpi_miller_rabin()
2250 mbedtls_mpi_cmp_int(&A, 1) == 0) { in mpi_miller_rabin()
2258 mbedtls_mpi_free(&T); mbedtls_mpi_free(&A); in mpi_miller_rabin()
2442 mbedtls_mpi A, E, N, X, Y, U, V; in mbedtls_mpi_self_test() local
2444 mbedtls_mpi_init_mempool(&A); mbedtls_mpi_init_mempool(&E); in mbedtls_mpi_self_test()
2449 MBEDTLS_MPI_CHK(mbedtls_mpi_read_string(&A, 16, in mbedtls_mpi_self_test()
2466 MBEDTLS_MPI_CHK(mbedtls_mpi_mul_mpi(&X, &A, &N)); in mbedtls_mpi_self_test()
2494 MBEDTLS_MPI_CHK(mbedtls_mpi_div_mpi(&X, &Y, &A, &N)); in mbedtls_mpi_self_test()
2522 MBEDTLS_MPI_CHK(mbedtls_mpi_exp_mod(&X, &A, &E, &N, NULL)); in mbedtls_mpi_self_test()
2546 MBEDTLS_MPI_CHK(mbedtls_mpi_inv_mod(&X, &A, &N)); in mbedtls_mpi_self_test()
2578 MBEDTLS_MPI_CHK(mbedtls_mpi_gcd(&A, &X, &Y)); in mbedtls_mpi_self_test()
2580 if (mbedtls_mpi_cmp_int(&A, gcd_pairs[i][2]) != 0) { in mbedtls_mpi_self_test()
2600 mbedtls_mpi_free(&A); mbedtls_mpi_free(&E); mbedtls_mpi_free(&N); mbedtls_mpi_free(&X); in mbedtls_mpi_self_test()