Mercurial > dropbear
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 $ */ |