comparison libtommath/bn_fast_s_mp_mul_digs.c @ 511:582cb38e4eb5 insecure-nocrypto

propagate from branch 'au.asn.ucc.matt.dropbear' (head cdcc3c729e29544e8b98a408e2dc60e4483dfd2a) to branch 'au.asn.ucc.matt.dropbear.insecure-nocrypto' (head 0ca38a1cf349f7426ac9de34ebe4c3e3735effab)
author Matt Johnston <matt@ucc.asn.au>
date Thu, 06 Nov 2008 13:16:55 +0000
parents 5ff8218bcee9
children 60fc6476e044
comparison
equal deleted inserted replaced
361:461c4b1fb35f 511:582cb38e4eb5
10 * additional optimizations in place. 10 * additional optimizations in place.
11 * 11 *
12 * The library is free for all purposes without any express 12 * The library is free for all purposes without any express
13 * guarantee it works. 13 * guarantee it works.
14 * 14 *
15 * Tom St Denis, [email protected], http://math.libtomcrypt.org 15 * Tom St Denis, [email protected], http://math.libtomcrypt.com
16 */ 16 */
17 17
18 /* Fast (comba) multiplier 18 /* Fast (comba) multiplier
19 * 19 *
20 * This is the fast column-array [comba] multiplier. It is 20 * This is the fast column-array [comba] multiplier. It is
68 iy = MIN(a->used-tx, ty+1); 68 iy = MIN(a->used-tx, ty+1);
69 69
70 /* execute loop */ 70 /* execute loop */
71 for (iz = 0; iz < iy; ++iz) { 71 for (iz = 0; iz < iy; ++iz) {
72 _W += ((mp_word)*tmpx++)*((mp_word)*tmpy--); 72 _W += ((mp_word)*tmpx++)*((mp_word)*tmpy--);
73
73 } 74 }
74 75
75 /* store term */ 76 /* store term */
76 W[ix] = ((mp_digit)_W) & MP_MASK; 77 W[ix] = ((mp_digit)_W) & MP_MASK;
77 78
78 /* make next carry */ 79 /* make next carry */
79 _W = _W >> ((mp_word)DIGIT_BIT); 80 _W = _W >> ((mp_word)DIGIT_BIT);
80 } 81 }
81
82 /* store final carry */
83 W[ix] = (mp_digit)(_W & MP_MASK);
84 82
85 /* setup dest */ 83 /* setup dest */
86 olduse = c->used; 84 olduse = c->used;
87 c->used = pa; 85 c->used = pa;
88 86
101 } 99 }
102 mp_clamp (c); 100 mp_clamp (c);
103 return MP_OKAY; 101 return MP_OKAY;
104 } 102 }
105 #endif 103 #endif
104
105 /* $Source: /cvs/libtom/libtommath/bn_fast_s_mp_mul_digs.c,v $ */
106 /* $Revision: 1.7 $ */
107 /* $Date: 2006/03/31 14:18:44 $ */