亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mpi.c

?? 最新版本的加密解密算法庫
?? C
?? 第 1 頁 / 共 5 頁
字號:
{  int     oldused, newused, res, pa, pb, ix;  mp_word W[MP_WARRAY];  /* calculate size of product and allocate more space if required */  newused = a->used + b->used + 1;  if (c->alloc < newused) {    if ((res = mp_grow (c, newused)) != MP_OKAY) {      return res;    }  }  /* like the other comba method we compute the columns first */  pa = a->used;  pb = b->used;  memset (W + digs, 0, (pa + pb + 1 - digs) * sizeof (mp_word));  for (ix = 0; ix < pa; ix++) {    {      register mp_digit tmpx, *tmpy;      register int iy;      register mp_word *_W;      /* work todo, that is we only calculate digits that are at "digs" or above  */      iy = digs - ix;      /* copy of word on the left of A[ix] * B[iy] */      tmpx = a->dp[ix];      /* alias for right side */      tmpy = b->dp + iy;           /* alias for the columns of output.  Offset to be equal to or above the        * smallest digit place requested        */      _W = W + digs;                 /* skip cases below zero where ix > digs */      if (iy < 0) {         iy    = abs(iy);         tmpy += iy;         _W   += iy;         iy    = 0;      }      /* compute column products for digits above the minimum */      for (; iy < pb; iy++) {         *_W++ += ((mp_word) tmpx) * ((mp_word)*tmpy++);      }    }  }  /* setup dest */  oldused = c->used;  c->used = newused;  /* now convert the array W downto what we need   *   * See comments in bn_fast_s_mp_mul_digs.c   */  for (ix = digs + 1; ix < newused; ix++) {    W[ix] += (W[ix - 1] >> ((mp_word) DIGIT_BIT));    c->dp[ix - 1] = (mp_digit) (W[ix - 1] & ((mp_word) MP_MASK));  }  c->dp[newused - 1] = (mp_digit) (W[newused - 1] & ((mp_word) MP_MASK));  for (; ix < oldused; ix++) {    c->dp[ix] = 0;  }  mp_clamp (c);  return MP_OKAY;}/* End: bn_fast_s_mp_mul_high_digs.c *//* Start: bn_fast_s_mp_sqr.c *//* LibTomMath, multiple-precision integer library -- Tom St Denis * * LibTomMath is a library that provides multiple-precision * integer arithmetic as well as number theoretic functionality. * * The library was designed directly after the MPI library by * Michael Fromberger but has been written from scratch with * additional optimizations in place. * * The library is free for all purposes without any express * guarantee it works. * * Tom St Denis, tomstdenis@iahu.ca, http://math.libtomcrypt.org */#include <ltc_tommath.h>/* fast squaring * * This is the comba method where the columns of the product * are computed first then the carries are computed.  This * has the effect of making a very simple inner loop that * is executed the most * * W2 represents the outer products and W the inner. * * A further optimizations is made because the inner * products are of the form "A * B * 2".  The *2 part does * not need to be computed until the end which is good * because 64-bit shifts are slow! * * Based on Algorithm 14.16 on pp.597 of HAC. * */int fast_s_mp_sqr (mp_int * a, mp_int * b){  int     olduse, newused, res, ix, pa;  mp_word W2[MP_WARRAY], W[MP_WARRAY];  /* calculate size of product and allocate as required */  pa = a->used;  newused = pa + pa + 1;  if (b->alloc < newused) {    if ((res = mp_grow (b, newused)) != MP_OKAY) {      return res;    }  }  /* zero temp buffer (columns)   * Note that there are two buffers.  Since squaring requires   * a outer and inner product and the inner product requires   * computing a product and doubling it (a relatively expensive   * op to perform n**2 times if you don't have to) the inner and   * outer products are computed in different buffers.  This way   * the inner product can be doubled using n doublings instead of   * n**2   */  memset (W,  0, newused * sizeof (mp_word));  memset (W2, 0, newused * sizeof (mp_word));  /* This computes the inner product.  To simplify the inner N**2 loop   * the multiplication by two is done afterwards in the N loop.   */  for (ix = 0; ix < pa; ix++) {    /* compute the outer product     *     * Note that every outer product is computed     * for a particular column only once which means that     * there is no need todo a double precision addition     * into the W2[] array.     */    W2[ix + ix] = ((mp_word)a->dp[ix]) * ((mp_word)a->dp[ix]);    {      register mp_digit tmpx, *tmpy;      register mp_word *_W;      register int iy;      /* copy of left side */      tmpx = a->dp[ix];      /* alias for right side */      tmpy = a->dp + (ix + 1);      /* the column to store the result in */      _W = W + (ix + ix + 1);      /* inner products */      for (iy = ix + 1; iy < pa; iy++) {          *_W++ += ((mp_word)tmpx) * ((mp_word)*tmpy++);      }    }  }  /* setup dest */  olduse  = b->used;  b->used = newused;  /* now compute digits   *   * We have to double the inner product sums, add in the   * outer product sums, propagate carries and convert   * to single precision.   */  {    register mp_digit *tmpb;    /* double first value, since the inner products are     * half of what they should be     */    W[0] += W[0] + W2[0];    tmpb = b->dp;    for (ix = 1; ix < newused; ix++) {      /* double/add next digit */      W[ix] += W[ix] + W2[ix];      /* propagate carry forwards [from the previous digit] */      W[ix] = W[ix] + (W[ix - 1] >> ((mp_word) DIGIT_BIT));      /* store the current digit now that the carry isn't       * needed       */      *tmpb++ = (mp_digit) (W[ix - 1] & ((mp_word) MP_MASK));    }    /* set the last value.  Note even if the carry is zero     * this is required since the next step will not zero     * it if b originally had a value at b->dp[2*a.used]     */    *tmpb++ = (mp_digit) (W[(newused) - 1] & ((mp_word) MP_MASK));    /* clear high digits of b if there were any originally */    for (; ix < olduse; ix++) {      *tmpb++ = 0;    }  }  mp_clamp (b);  return MP_OKAY;}/* End: bn_fast_s_mp_sqr.c *//* Start: bn_mp_2expt.c *//* LibTomMath, multiple-precision integer library -- Tom St Denis * * LibTomMath is a library that provides multiple-precision * integer arithmetic as well as number theoretic functionality. * * The library was designed directly after the MPI library by * Michael Fromberger but has been written from scratch with * additional optimizations in place. * * The library is free for all purposes without any express * guarantee it works. * * Tom St Denis, tomstdenis@iahu.ca, http://math.libtomcrypt.org */#include <ltc_tommath.h>/* computes a = 2**b  * * Simple algorithm which zeroes the int, grows it then just sets one bit * as required. */intmp_2expt (mp_int * a, int b){  int     res;  /* zero a as per default */  mp_zero (a);  /* grow a to accomodate the single bit */  if ((res = mp_grow (a, b / DIGIT_BIT + 1)) != MP_OKAY) {    return res;  }  /* set the used count of where the bit will go */  a->used = b / DIGIT_BIT + 1;  /* put the single bit in its place */  a->dp[b / DIGIT_BIT] = 1 << (b % DIGIT_BIT);  return MP_OKAY;}/* End: bn_mp_2expt.c *//* Start: bn_mp_abs.c *//* LibTomMath, multiple-precision integer library -- Tom St Denis * * LibTomMath is a library that provides multiple-precision * integer arithmetic as well as number theoretic functionality. * * The library was designed directly after the MPI library by * Michael Fromberger but has been written from scratch with * additional optimizations in place. * * The library is free for all purposes without any express * guarantee it works. * * Tom St Denis, tomstdenis@iahu.ca, http://math.libtomcrypt.org */#include <ltc_tommath.h>/* b = |a|  * * Simple function copies the input and fixes the sign to positive */intmp_abs (mp_int * a, mp_int * b){  int     res;  /* copy a to b */  if (a != b) {     if ((res = mp_copy (a, b)) != MP_OKAY) {       return res;     }  }  /* force the sign of b to positive */  b->sign = MP_ZPOS;  return MP_OKAY;}/* End: bn_mp_abs.c *//* Start: bn_mp_add.c *//* LibTomMath, multiple-precision integer library -- Tom St Denis * * LibTomMath is a library that provides multiple-precision * integer arithmetic as well as number theoretic functionality. * * The library was designed directly after the MPI library by * Michael Fromberger but has been written from scratch with * additional optimizations in place. * * The library is free for all purposes without any express * guarantee it works. * * Tom St Denis, tomstdenis@iahu.ca, http://math.libtomcrypt.org */#include <ltc_tommath.h>/* high level addition (handles signs) */int mp_add (mp_int * a, mp_int * b, mp_int * c){  int     sa, sb, res;  /* get sign of both inputs */  sa = a->sign;  sb = b->sign;  /* handle two cases, not four */  if (sa == sb) {    /* both positive or both negative */    /* add their magnitudes, copy the sign */    c->sign = sa;    res = s_mp_add (a, b, c);  } else {    /* one positive, the other negative */    /* subtract the one with the greater magnitude from */    /* the one of the lesser magnitude.  The result gets */    /* the sign of the one with the greater magnitude. */    if (mp_cmp_mag (a, b) == MP_LT) {      c->sign = sb;      res = s_mp_sub (b, a, c);    } else {      c->sign = sa;      res = s_mp_sub (a, b, c);    }  }  return res;}/* End: bn_mp_add.c *//* Start: bn_mp_add_d.c *//* LibTomMath, multiple-precision integer library -- Tom St Denis * * LibTomMath is a library that provides multiple-precision * integer arithmetic as well as number theoretic functionality. * * The library was designed directly after the MPI library by * Michael Fromberger but has been written from scratch with * additional optimizations in place. * * The library is free for all purposes without any express * guarantee it works. * * Tom St Denis, tomstdenis@iahu.ca, http://math.libtomcrypt.org */#include <ltc_tommath.h>/* single digit addition */intmp_add_d (mp_int * a, mp_digit b, mp_int * c){  int     res, ix, oldused;  mp_digit *tmpa, *tmpc, mu;  /* grow c as required */  if (c->alloc < a->used + 1) {     if ((res = mp_grow(c, a->used + 1)) != MP_OKAY) {        return res;     }  }  /* if a is negative and |a| >= b, call c = |a| - b */  if (a->sign == MP_NEG && (a->used > 1 || a->dp[0] >= b)) {     /* temporarily fix sign of a */     a->sign = MP_ZPOS;     /* c = |a| - b */     res = mp_sub_d(a, b, c);     /* fix sign  */     a->sign = c->sign = MP_NEG;     return res;  }  /* old number of used digits in c */  oldused = c->used;  /* sign always positive */  c->sign = MP_ZPOS;  /* source alias */  tmpa    = a->dp;  /* destination alias */  tmpc    = c->dp;  /* if a is positive */  if (a->sign == MP_ZPOS) {     /* add digit, after this we're propagating      * the carry.      */     *tmpc   = *tmpa++ + b;     mu      = *tmpc >> DIGIT_BIT;     *tmpc++ &= MP_MASK;     /* now handle rest of the digits */     for (ix = 1; ix < a->used; ix++) {        *tmpc   = *tmpa++ + mu;        mu      = *tmpc >> DIGIT_BIT;        *tmpc++ &= MP_MASK;     }     /* set final carry */     ix++;     *tmpc++  = mu;     /* setup size */     c->used = a->used + 1;  } else {     /* a was negative and |a| < b */     c->used  = 1;     /* the result is a single digit */     if (a->used == 1) {        *tmpc++  =  b - a->dp[0];     } else {        *tmpc++  =  b;     }     /* setup count so the clearing of oldused      * can fall through correctly      */     ix       = 1;  }  /* now zero to oldused */  while (ix++ < oldused) {     *tmpc++ = 0;  }  mp_clamp(c);  return MP_OKAY;}/* End: bn_mp_add_d.c *//* Start: bn_mp_addmod.c *//* LibTomMath, multiple-precision integer library -- Tom St Denis * * LibTomMath is a library that provides multiple-precision * integer arithmetic as well as number theoretic functionality. * * The library was designed directly after the MPI library by * Michael Fromberger but has been written from scratch with * additional optimizations in place. * * The library is free for all purposes without any express * guarantee it works. * * Tom St Denis, tomstdenis@iahu.ca, http://math.libtomcrypt.org */#include <ltc_tommath.h>/* d = a + b (mod c) */intmp_addmod (mp_int * a, mp_int * b, mp_int * c, mp_int * d){  int     res;  mp_int  t;  if ((res = mp_init (&t)) != MP_OKAY) {    return res;  }  if ((res = mp_add (a, b, &t)) != MP_OKAY) {    mp_clear (&t);    return res;  }  res = mp_mod (&t, c, d);  mp_clear (&t);  return res;}/* End: bn_mp_addmod.c *//* Start: bn_mp_and.c *//* LibTomMath, multiple-precision integer library -- Tom St Denis * * LibTomMath is a library that provides multiple-precision * integer arithmetic as well as number theoretic functionality. * * The library was designed directly after the MPI library by * Michael Fromberger but has been written from scratch with * additional optimizations in place. * * The library is free for all purposes without any express * guarantee it works. * * Tom St Denis, tomstdenis@iahu.ca, http://math.libtomcrypt.org */#include <ltc_tommath.h>/* AND two ints together */intmp_and (mp_int * a, mp_int * b, mp_int * c){  int     res, ix, px;  mp_int  t, *x;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产欧美精品一区二区色综合 | 制服丝袜国产精品| 日韩欧美第一区| 国产精品免费视频网站| 日韩成人精品视频| 99精品偷自拍| 久久久久国产精品人| 丝袜美腿亚洲综合| 色综合久久天天| 国产欧美一区二区三区网站| 奇米综合一区二区三区精品视频| 在线看不卡av| 国产精品久久久久久久裸模| 国产剧情在线观看一区二区 | 成人亚洲一区二区一| 3751色影院一区二区三区| 中文字幕一区二区三区精华液| 九九视频精品免费| 宅男噜噜噜66一区二区66| 亚洲另类在线视频| 国产精品一二三四| 久久你懂得1024| 免费人成在线不卡| 欧美日韩国产高清一区二区三区 | 美女视频一区二区| 91精品国产福利| 五月开心婷婷久久| 欧美亚洲日本一区| 亚洲不卡在线观看| 欧美日韩你懂的| 亚洲一区二区四区蜜桃| 欧洲激情一区二区| 亚洲与欧洲av电影| 欧美美女一区二区在线观看| 亚洲一区二区三区不卡国产欧美| 欧美综合亚洲图片综合区| 一区二区三区四区亚洲| 色av成人天堂桃色av| 亚洲另类春色国产| 欧美日韩一区三区四区| 香蕉久久一区二区不卡无毒影院| 欧美男人的天堂一二区| 日本视频中文字幕一区二区三区| 日韩一区二区中文字幕| 精彩视频一区二区三区| 欧美韩国日本综合| 色婷婷一区二区| 亚洲v日本v欧美v久久精品| 欧美一区二区三区日韩| 国产一区二区三区免费播放| 国产精品久久久久久户外露出| 色婷婷综合久久久中文字幕| 亚洲aaa精品| 久久丝袜美腿综合| av在线不卡网| 青青青伊人色综合久久| 久久久精品中文字幕麻豆发布| 成人app下载| 日韩电影在线看| 国产亚洲短视频| 日本韩国一区二区| 免费久久精品视频| 国产精品私房写真福利视频| 欧美亚洲愉拍一区二区| 久久国产精品免费| 中文字幕一区二区三区蜜月 | 91蜜桃免费观看视频| 天涯成人国产亚洲精品一区av| 精品国产乱码久久久久久浪潮 | 国产一区二区三区综合| 亚洲欧洲精品天堂一级| 欧美一区二区三区不卡| 成人avav影音| 久久99精品久久久久久动态图 | 欧美婷婷六月丁香综合色| 久久精品国产一区二区三区免费看| 国产欧美日韩中文久久| 欧美人妖巨大在线| 国产99久久久精品| 图片区日韩欧美亚洲| 欧美韩国日本不卡| 日韩女优电影在线观看| 色偷偷成人一区二区三区91| 国产成+人+日韩+欧美+亚洲| 五月天久久比比资源色| 亚洲天堂网中文字| 久久综合色播五月| 在线成人av网站| 91小视频免费看| 国产精品自产自拍| 久久精品国产99国产精品| 一区二区三区不卡在线观看| 国产精品美女久久久久av爽李琼| 欧美一区二区三区四区高清 | 亚洲综合在线观看视频| 久久品道一品道久久精品| 欧美一区二区黄色| 欧美性猛交xxxx黑人交| 91在线丨porny丨国产| 国产99久久久国产精品潘金网站| 麻豆成人av在线| 天堂在线亚洲视频| 亚洲一区二区视频| 伊人婷婷欧美激情| 亚洲欧美成人一区二区三区| 中文字幕在线不卡一区| 国产无遮挡一区二区三区毛片日本| 日韩精品一区二区三区中文精品| 91精品国产综合久久精品性色| 欧美日精品一区视频| 欧美视频在线一区二区三区 | www.欧美色图| 懂色av噜噜一区二区三区av| 国产电影精品久久禁18| 国产一区二区日韩精品| 国产一区二区三区免费播放| 韩日精品视频一区| 国产精品一二三四五| 成人亚洲精品久久久久软件| 成人福利在线看| 99久久综合99久久综合网站| 99精品热视频| 一本一道综合狠狠老| 欧美在线一区二区| 在线播放欧美女士性生活| 91精品国产入口| 精品乱人伦小说| 国产日产欧美一区| 亚洲色图在线视频| 午夜久久久久久| 蜜桃av一区二区| 粉嫩av一区二区三区| 91麻豆国产自产在线观看| 欧美在线一区二区三区| 欧美电影免费观看高清完整版在线| 精品999在线播放| 国产三级欧美三级| 一区二区三区在线免费视频| 视频一区在线播放| 国产精品亚洲人在线观看| 9i看片成人免费高清| 欧美日本一道本在线视频| 久久综合色鬼综合色| 1区2区3区精品视频| 日韩二区三区在线观看| 国产精品系列在线观看| 色激情天天射综合网| 精品免费日韩av| 亚洲区小说区图片区qvod| 日韩国产在线一| 成人一级视频在线观看| 4438成人网| 亚洲国产精品成人综合| 天天影视色香欲综合网老头| 国产高清精品在线| 欧美日韩三级在线| 中文字幕免费在线观看视频一区| 亚洲地区一二三色| 丁香另类激情小说| 欧美一区二区三区四区高清| 综合精品久久久| 国产一区二区三区黄视频| 欧美性极品少妇| 国产精品国产三级国产aⅴ入口| 免费成人在线观看| 色综合久久久久综合99| 久久先锋影音av鲁色资源网| 亚洲成人综合在线| 97超碰欧美中文字幕| 精品国产一区二区精华| 午夜精品免费在线观看| jlzzjlzz国产精品久久| 2014亚洲片线观看视频免费| 日日夜夜精品视频免费| 色综合久久综合网97色综合| 日本一区二区三区高清不卡| 麻豆91免费观看| 欧美日韩精品三区| 一区二区三区日韩精品视频| 国产成人高清在线| 精品国产91乱码一区二区三区 | 国产传媒日韩欧美成人| 欧美一级片在线| 午夜婷婷国产麻豆精品| 99精品黄色片免费大全| 国产精品美女久久久久久 | 久久久综合精品| 麻豆精品国产91久久久久久| 在线欧美日韩精品| 伊人开心综合网| 91色porny在线视频| 亚洲欧洲精品一区二区三区不卡 | 蜜桃一区二区三区在线观看| 欧美视频在线一区| 亚洲444eee在线观看| 欧美日韩国产中文| 天堂在线亚洲视频| 欧美成人性福生活免费看| 久久69国产一区二区蜜臀| 欧美成人乱码一区二区三区|