Lines Matching defs:recp
13 void BN_RECP_CTX_init(BN_RECP_CTX *recp)
15 memset(recp, 0, sizeof(*recp));
16 bn_init(&(recp->N));
17 bn_init(&(recp->Nr));
35 void BN_RECP_CTX_free(BN_RECP_CTX *recp)
37 if (recp == NULL)
39 BN_free(&recp->N);
40 BN_free(&recp->Nr);
41 if (recp->flags & BN_FLG_MALLOCED)
42 OPENSSL_free(recp);
45 int BN_RECP_CTX_set(BN_RECP_CTX *recp, const BIGNUM *d, BN_CTX *ctx)
47 if (!BN_copy(&(recp->N), d))
49 BN_zero(&(recp->Nr));
50 recp->num_bits = BN_num_bits(d);
51 recp->shift = 0;
56 BN_RECP_CTX *recp, BN_CTX *ctx)
77 ret = BN_div_recp(NULL, r, ca, recp, ctx);
85 BN_RECP_CTX *recp, BN_CTX *ctx)
98 if (BN_ucmp(m, &(recp->N)) < 0) {
115 j = recp->num_bits << 1;
120 if (i != recp->shift)
121 recp->shift = BN_reciprocal(&(recp->Nr), &(recp->N), i, ctx);
123 if (recp->shift == -1)
127 * d := |round(round(m / 2^BN_num_bits(N)) * recp->Nr / 2^(i - BN_num_bits(N)))|
132 if (!BN_rshift(a, m, recp->num_bits))
134 if (!BN_mul(b, a, &(recp->Nr), ctx))
136 if (!BN_rshift(d, b, i - recp->num_bits))
140 if (!BN_mul(b, &(recp->N), d, ctx))
147 while (BN_ucmp(r, &(recp->N)) >= 0) {
152 if (!BN_usub(r, r, &(recp->N)))
159 d->neg = m->neg ^ recp->N.neg;