Lines Matching defs:Ri
167 BIGNUM *Ri, *R;
177 Ri = BN_CTX_get(ctx);
178 if (Ri == NULL) {
211 if (BN_mod_inverse(Ri, R, &tmod, ctx) == NULL) {
214 if (!BN_lshift(Ri, Ri, 2 * BN_BITS2)) {
215 goto err; /* R*Ri */
217 if (!BN_is_zero(Ri)) {
218 if (!BN_sub_word(Ri, 1)) {
223 if (bn_expand(Ri, (int)sizeof(BN_ULONG) * 2) == NULL) {
226 /* Ri-- (mod double word size) */
227 Ri->neg = 0;
228 Ri->d[0] = BN_MASK2;
229 Ri->d[1] = BN_MASK2;
230 Ri->top = 2;
233 if (!BN_div(Ri, NULL, Ri, &tmod, ctx)) {
236 /* Ni = (R*Ri-1)/N,
238 mont->n0[0] = (Ri->top > 0) ? Ri->d[0] : 0;
239 mont->n0[1] = (Ri->top > 1) ? Ri->d[1] : 0;
249 /* Ri = R^-1 mod N*/
250 if (BN_mod_inverse(Ri, R, &tmod, ctx) == NULL) {
253 if (!BN_lshift(Ri, Ri, BN_BITS2)) {
254 goto err; /* R*Ri */
256 if (!BN_is_zero(Ri)) {
257 if (!BN_sub_word(Ri, 1)) {
262 if (!BN_set_word(Ri, BN_MASK2)) {
263 goto err; /* Ri-- (mod word size) */
266 if (!BN_div(Ri, NULL, Ri, &tmod, ctx)) {
269 /* Ni = (R*Ri-1)/N,
271 mont->n0[0] = (Ri->top > 0) ? Ri->d[0] : 0;
275 /* RR = (2^ri)^2 == 2^(ri*2) == 1 << (ri*2), which has its (ri*2)th bit set. */
276 int ri = (BN_num_bits(mod) + (BN_BITS2 - 1)) / BN_BITS2 * BN_BITS2;
278 if (!BN_set_bit(&(mont->RR), ri * 2)) {