• Home
  • Raw
  • Download

Lines Matching +full:tp +full:- +full:sensitive +full:- +full:adjust

1 /* mpi-pow.c  -  MPI functions
18 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
24 * to avoid revealing of sensitive data due to paging etc.
31 #include "mpi-internal.h"
52 int rc = -ENOMEM; in mpi_powm()
54 esize = exp->nlimbs; in mpi_powm()
55 msize = mod->nlimbs; in mpi_powm()
57 msign = mod->sign; in mpi_powm()
59 rp = res->d; in mpi_powm()
60 ep = exp->d; in mpi_powm()
63 return -EINVAL; in mpi_powm()
68 res->nlimbs = (msize == 1 && mod->d[0] == 1) ? 0 : 1; in mpi_powm()
69 if (res->nlimbs) { in mpi_powm()
72 rp = res->d; in mpi_powm()
75 res->sign = 0; in mpi_powm()
86 mod_shift_cnt = count_leading_zeros(mod->d[msize - 1]); in mpi_powm()
88 mpihelp_lshift(mp, mod->d, msize, mod_shift_cnt); in mpi_powm()
90 MPN_COPY(mp, mod->d, msize); in mpi_powm()
92 bsize = base->nlimbs; in mpi_powm()
93 bsign = base->sign; in mpi_powm()
96 * (The quotient is (bsize - msize + 1) limbs.) */ in mpi_powm()
100 MPN_COPY(bp, base->d, bsize); in mpi_powm()
109 bp = base->d; in mpi_powm()
112 res->nlimbs = 0; in mpi_powm()
113 res->sign = 0; in mpi_powm()
117 if (res->alloced < size) { in mpi_powm()
129 rp = res->d; in mpi_powm()
172 negative_result = (ep[0] & 1) && base->sign; in mpi_powm()
174 i = esize - 1; in mpi_powm()
178 c = BITS_PER_MPI_LIMB - 1 - c; in mpi_powm()
186 * by RP (==RES->d), and with 50% probability in the area originally in mpi_powm()
192 mpi_ptr_t tp; in mpi_powm() local
223 tp = rp; in mpi_powm()
225 xp = tp; in mpi_powm()
251 tp = rp; in mpi_powm()
253 xp = tp; in mpi_powm()
257 c--; in mpi_powm()
261 i--; in mpi_powm()
269 * steps. Adjust the result by reducing it with the original MOD. in mpi_powm()
271 * Also make sure the result is put in RES->d (where it already in mpi_powm()
276 mpihelp_lshift(res->d, rp, rsize, mod_shift_cnt); in mpi_powm()
277 rp = res->d; in mpi_powm()
283 MPN_COPY(res->d, rp, rsize); in mpi_powm()
284 rp = res->d; in mpi_powm()
306 res->nlimbs = rsize; in mpi_powm()
307 res->sign = rsign; in mpi_powm()