Lines Matching defs:Ri
266 BIGNUM *Ri, *R;
272 if ((Ri = BN_CTX_get(ctx)) == NULL)
315 BN_zero(Ri);
316 else if ((BN_mod_inverse(Ri, R, &tmod, ctx)) == NULL)
318 if (!BN_lshift(Ri, Ri, 2 * BN_BITS2))
319 goto err; /* R*Ri */
320 if (!BN_is_zero(Ri)) {
321 if (!BN_sub_word(Ri, 1))
325 if (bn_expand(Ri, (int)sizeof(BN_ULONG) * 2) == NULL)
327 /* Ri-- (mod double word size) */
328 Ri->neg = 0;
329 Ri->d[0] = BN_MASK2;
330 Ri->d[1] = BN_MASK2;
331 Ri->top = 2;
333 if (!BN_div(Ri, NULL, Ri, &tmod, ctx))
336 * Ni = (R*Ri-1)/N, keep only couple of least significant words:
338 mont->n0[0] = (Ri->top > 0) ? Ri->d[0] : 0;
339 mont->n0[1] = (Ri->top > 1) ? Ri->d[1] : 0;
348 /* Ri = R^-1 mod N */
350 BN_zero(Ri);
351 else if ((BN_mod_inverse(Ri, R, &tmod, ctx)) == NULL)
353 if (!BN_lshift(Ri, Ri, BN_BITS2))
354 goto err; /* R*Ri */
355 if (!BN_is_zero(Ri)) {
356 if (!BN_sub_word(Ri, 1))
360 if (!BN_set_word(Ri, BN_MASK2))
361 goto err; /* Ri-- (mod word size) */
363 if (!BN_div(Ri, NULL, Ri, &tmod, ctx))
366 * Ni = (R*Ri-1)/N, keep only least significant word:
368 mont->n0[0] = (Ri->top > 0) ? Ri->d[0] : 0;
378 /* Ri = R^-1 mod N */
379 if ((BN_mod_inverse(Ri, R, &mont->N, ctx)) == NULL)
381 if (!BN_lshift(Ri, Ri, mont->ri))
382 goto err; /* R*Ri */
383 if (!BN_sub_word(Ri, 1))
386 * Ni = (R*Ri-1) / N
388 if (!BN_div(&(mont->Ni), NULL, Ri, &mont->N, ctx))