Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(342)

Side by Side Diff: nss/lib/freebl/ecl/ecp_256.c

Issue 1504923011: Update NSS to 3.21 RTM and NSPR to 4.11 RTM (Closed) Base URL: http://src.chromium.org/svn/trunk/deps/third_party/nss
Patch Set: Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 /* This Source Code Form is subject to the terms of the Mozilla Public 1 /* This Source Code Form is subject to the terms of the Mozilla Public
2 * License, v. 2.0. If a copy of the MPL was not distributed with this 2 * License, v. 2.0. If a copy of the MPL was not distributed with this
3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
4 4
5 #include "ecp.h" 5 #include "ecp.h"
6 #include "mpi.h" 6 #include "mpi.h"
7 #include "mplogic.h" 7 #include "mplogic.h"
8 #include "mpi-priv.h" 8 #include "mpi-priv.h"
9 9
10 /* Fast modular reduction for p256 = 2^256 - 2^224 + 2^192+ 2^96 - 1. a can be r. 10 /* Fast modular reduction for p256 = 2^256 - 2^224 + 2^192+ 2^96 - 1. a can be r.
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
61 r0 = MP_DIGIT(a,0); 61 r0 = MP_DIGIT(a,0);
62 r1 = MP_DIGIT(a,1); 62 r1 = MP_DIGIT(a,1);
63 r2 = MP_DIGIT(a,2); 63 r2 = MP_DIGIT(a,2);
64 r3 = MP_DIGIT(a,3); 64 r3 = MP_DIGIT(a,3);
65 r4 = MP_DIGIT(a,4); 65 r4 = MP_DIGIT(a,4);
66 r5 = MP_DIGIT(a,5); 66 r5 = MP_DIGIT(a,5);
67 r6 = MP_DIGIT(a,6); 67 r6 = MP_DIGIT(a,6);
68 r7 = MP_DIGIT(a,7); 68 r7 = MP_DIGIT(a,7);
69 69
70 /* sum 1 */ 70 /* sum 1 */
71 » » MP_ADD_CARRY(r3, a11, r3, 0, carry); 71 carry = 0;
72 » » MP_ADD_CARRY(r4, a12, r4, carry, carry); 72 » » MP_ADD_CARRY(r3, a11, r3, carry);
73 » » MP_ADD_CARRY(r5, a13, r5, carry, carry); 73 » » MP_ADD_CARRY(r4, a12, r4, carry);
74 » » MP_ADD_CARRY(r6, a14, r6, carry, carry); 74 » » MP_ADD_CARRY(r5, a13, r5, carry);
75 » » MP_ADD_CARRY(r7, a15, r7, carry, carry); 75 » » MP_ADD_CARRY(r6, a14, r6, carry);
76 » » r8 = carry; 76 » » MP_ADD_CARRY(r7, a15, r7, carry);
77 » » MP_ADD_CARRY(r3, a11, r3, 0, carry); 77 » » r8 = carry; carry = 0;
78 » » MP_ADD_CARRY(r4, a12, r4, carry, carry); 78 » » MP_ADD_CARRY(r3, a11, r3, carry);
79 » » MP_ADD_CARRY(r5, a13, r5, carry, carry); 79 » » MP_ADD_CARRY(r4, a12, r4, carry);
80 » » MP_ADD_CARRY(r6, a14, r6, carry, carry); 80 » » MP_ADD_CARRY(r5, a13, r5, carry);
81 » » MP_ADD_CARRY(r7, a15, r7, carry, carry); 81 » » MP_ADD_CARRY(r6, a14, r6, carry);
82 » » r8 += carry; 82 » » MP_ADD_CARRY(r7, a15, r7, carry);
83 » » r8 += carry; carry = 0;
83 /* sum 2 */ 84 /* sum 2 */
84 » » MP_ADD_CARRY(r3, a12, r3, 0, carry); 85 » » MP_ADD_CARRY(r3, a12, r3, carry);
85 » » MP_ADD_CARRY(r4, a13, r4, carry, carry); 86 » » MP_ADD_CARRY(r4, a13, r4, carry);
86 » » MP_ADD_CARRY(r5, a14, r5, carry, carry); 87 » » MP_ADD_CARRY(r5, a14, r5, carry);
87 » » MP_ADD_CARRY(r6, a15, r6, carry, carry); 88 » » MP_ADD_CARRY(r6, a15, r6, carry);
88 » » MP_ADD_CARRY(r7, 0, r7, carry, carry); 89 » » MP_ADD_CARRY(r7, 0, r7, carry);
89 » » r8 += carry; 90 » » r8 += carry; carry = 0;
90 /* combine last bottom of sum 3 with second sum 2 */ 91 /* combine last bottom of sum 3 with second sum 2 */
91 » » MP_ADD_CARRY(r0, a8, r0, 0, carry); 92 » » MP_ADD_CARRY(r0, a8, r0, carry);
92 » » MP_ADD_CARRY(r1, a9, r1, carry, carry); 93 » » MP_ADD_CARRY(r1, a9, r1, carry);
93 » » MP_ADD_CARRY(r2, a10, r2, carry, carry); 94 » » MP_ADD_CARRY(r2, a10, r2, carry);
94 » » MP_ADD_CARRY(r3, a12, r3, carry, carry); 95 » » MP_ADD_CARRY(r3, a12, r3, carry);
95 » » MP_ADD_CARRY(r4, a13, r4, carry, carry); 96 » » MP_ADD_CARRY(r4, a13, r4, carry);
96 » » MP_ADD_CARRY(r5, a14, r5, carry, carry); 97 » » MP_ADD_CARRY(r5, a14, r5, carry);
97 » » MP_ADD_CARRY(r6, a15, r6, carry, carry); 98 » » MP_ADD_CARRY(r6, a15, r6, carry);
98 » » MP_ADD_CARRY(r7, a15, r7, carry, carry); /* from sum 3 */ 99 » » MP_ADD_CARRY(r7, a15, r7, carry); /* from sum 3 */
99 » » r8 += carry; 100 » » r8 += carry; carry = 0;
100 /* sum 3 (rest of it)*/ 101 /* sum 3 (rest of it)*/
101 » » MP_ADD_CARRY(r6, a14, r6, 0, carry); 102 » » MP_ADD_CARRY(r6, a14, r6, carry);
102 » » MP_ADD_CARRY(r7, 0, r7, carry, carry); 103 » » MP_ADD_CARRY(r7, 0, r7, carry);
103 » » r8 += carry; 104 » » r8 += carry; carry = 0;
104 /* sum 4 (rest of it)*/ 105 /* sum 4 (rest of it)*/
105 » » MP_ADD_CARRY(r0, a9, r0, 0, carry); 106 » » MP_ADD_CARRY(r0, a9, r0, carry);
106 » » MP_ADD_CARRY(r1, a10, r1, carry, carry); 107 » » MP_ADD_CARRY(r1, a10, r1, carry);
107 » » MP_ADD_CARRY(r2, a11, r2, carry, carry); 108 » » MP_ADD_CARRY(r2, a11, r2, carry);
108 » » MP_ADD_CARRY(r3, a13, r3, carry, carry); 109 » » MP_ADD_CARRY(r3, a13, r3, carry);
109 » » MP_ADD_CARRY(r4, a14, r4, carry, carry); 110 » » MP_ADD_CARRY(r4, a14, r4, carry);
110 » » MP_ADD_CARRY(r5, a15, r5, carry, carry); 111 » » MP_ADD_CARRY(r5, a15, r5, carry);
111 » » MP_ADD_CARRY(r6, a13, r6, carry, carry); 112 » » MP_ADD_CARRY(r6, a13, r6, carry);
112 » » MP_ADD_CARRY(r7, a8, r7, carry, carry); 113 » » MP_ADD_CARRY(r7, a8, r7, carry);
113 » » r8 += carry; 114 » » r8 += carry; carry = 0;
114 /* diff 5 */ 115 /* diff 5 */
115 » » MP_SUB_BORROW(r0, a11, r0, 0, carry); 116 » » MP_SUB_BORROW(r0, a11, r0, carry);
116 » » MP_SUB_BORROW(r1, a12, r1, carry, carry); 117 » » MP_SUB_BORROW(r1, a12, r1, carry);
117 » » MP_SUB_BORROW(r2, a13, r2, carry, carry); 118 » » MP_SUB_BORROW(r2, a13, r2, carry);
118 » » MP_SUB_BORROW(r3, 0, r3, carry, carry); 119 » » MP_SUB_BORROW(r3, 0, r3, carry);
119 » » MP_SUB_BORROW(r4, 0, r4, carry, carry); 120 » » MP_SUB_BORROW(r4, 0, r4, carry);
120 » » MP_SUB_BORROW(r5, 0, r5, carry, carry); 121 » » MP_SUB_BORROW(r5, 0, r5, carry);
121 » » MP_SUB_BORROW(r6, a8, r6, carry, carry); 122 » » MP_SUB_BORROW(r6, a8, r6, carry);
122 » » MP_SUB_BORROW(r7, a10, r7, carry, carry); 123 » » MP_SUB_BORROW(r7, a10, r7, carry);
123 » » r8 -= carry; 124 » » r8 -= carry; carry = 0;
124 /* diff 6 */ 125 /* diff 6 */
125 » » MP_SUB_BORROW(r0, a12, r0, 0, carry); 126 » » MP_SUB_BORROW(r0, a12, r0, carry);
126 » » MP_SUB_BORROW(r1, a13, r1, carry, carry); 127 » » MP_SUB_BORROW(r1, a13, r1, carry);
127 » » MP_SUB_BORROW(r2, a14, r2, carry, carry); 128 » » MP_SUB_BORROW(r2, a14, r2, carry);
128 » » MP_SUB_BORROW(r3, a15, r3, carry, carry); 129 » » MP_SUB_BORROW(r3, a15, r3, carry);
129 » » MP_SUB_BORROW(r4, 0, r4, carry, carry); 130 » » MP_SUB_BORROW(r4, 0, r4, carry);
130 » » MP_SUB_BORROW(r5, 0, r5, carry, carry); 131 » » MP_SUB_BORROW(r5, 0, r5, carry);
131 » » MP_SUB_BORROW(r6, a9, r6, carry, carry); 132 » » MP_SUB_BORROW(r6, a9, r6, carry);
132 » » MP_SUB_BORROW(r7, a11, r7, carry, carry); 133 » » MP_SUB_BORROW(r7, a11, r7, carry);
133 » » r8 -= carry; 134 » » r8 -= carry; carry = 0;
134 /* diff 7 */ 135 /* diff 7 */
135 » » MP_SUB_BORROW(r0, a13, r0, 0, carry); 136 » » MP_SUB_BORROW(r0, a13, r0, carry);
136 » » MP_SUB_BORROW(r1, a14, r1, carry, carry); 137 » » MP_SUB_BORROW(r1, a14, r1, carry);
137 » » MP_SUB_BORROW(r2, a15, r2, carry, carry); 138 » » MP_SUB_BORROW(r2, a15, r2, carry);
138 » » MP_SUB_BORROW(r3, a8, r3, carry, carry); 139 » » MP_SUB_BORROW(r3, a8, r3, carry);
139 » » MP_SUB_BORROW(r4, a9, r4, carry, carry); 140 » » MP_SUB_BORROW(r4, a9, r4, carry);
140 » » MP_SUB_BORROW(r5, a10, r5, carry, carry); 141 » » MP_SUB_BORROW(r5, a10, r5, carry);
141 » » MP_SUB_BORROW(r6, 0, r6, carry, carry); 142 » » MP_SUB_BORROW(r6, 0, r6, carry);
142 » » MP_SUB_BORROW(r7, a12, r7, carry, carry); 143 » » MP_SUB_BORROW(r7, a12, r7, carry);
143 » » r8 -= carry; 144 » » r8 -= carry; carry = 0;
144 /* diff 8 */ 145 /* diff 8 */
145 » » MP_SUB_BORROW(r0, a14, r0, 0, carry); 146 » » MP_SUB_BORROW(r0, a14, r0, carry);
146 » » MP_SUB_BORROW(r1, a15, r1, carry, carry); 147 » » MP_SUB_BORROW(r1, a15, r1, carry);
147 » » MP_SUB_BORROW(r2, 0, r2, carry, carry); 148 » » MP_SUB_BORROW(r2, 0, r2, carry);
148 » » MP_SUB_BORROW(r3, a9, r3, carry, carry); 149 » » MP_SUB_BORROW(r3, a9, r3, carry);
149 » » MP_SUB_BORROW(r4, a10, r4, carry, carry); 150 » » MP_SUB_BORROW(r4, a10, r4, carry);
150 » » MP_SUB_BORROW(r5, a11, r5, carry, carry); 151 » » MP_SUB_BORROW(r5, a11, r5, carry);
151 » » MP_SUB_BORROW(r6, 0, r6, carry, carry); 152 » » MP_SUB_BORROW(r6, 0, r6, carry);
152 » » MP_SUB_BORROW(r7, a13, r7, carry, carry); 153 » » MP_SUB_BORROW(r7, a13, r7, carry);
153 r8 -= carry; 154 r8 -= carry;
154 155
155 /* reduce the overflows */ 156 /* reduce the overflows */
156 while (r8 > 0) { 157 while (r8 > 0) {
157 » » » mp_digit r8_d = r8; 158 » » » mp_digit r8_d = r8; carry = 0;
158 » » » MP_ADD_CARRY(r0, r8_d, r0, 0, carry); 159 » » » carry = 0;
159 » » » MP_ADD_CARRY(r1, 0, r1, carry, carry); 160 » » » MP_ADD_CARRY(r0, r8_d, r0, carry);
160 » » » MP_ADD_CARRY(r2, 0, r2, carry, carry); 161 » » » MP_ADD_CARRY(r1, 0, r1, carry);
161 » » » MP_ADD_CARRY(r3, 0-r8_d, r3, carry, carry); 162 » » » MP_ADD_CARRY(r2, 0, r2, carry);
162 » » » MP_ADD_CARRY(r4, MP_DIGIT_MAX, r4, carry, carry); 163 » » » MP_ADD_CARRY(r3, 0-r8_d, r3, carry);
163 » » » MP_ADD_CARRY(r5, MP_DIGIT_MAX, r5, carry, carry); 164 » » » MP_ADD_CARRY(r4, MP_DIGIT_MAX, r4, carry);
164 » » » MP_ADD_CARRY(r6, 0-(r8_d+1), r6, carry, carry); 165 » » » MP_ADD_CARRY(r5, MP_DIGIT_MAX, r5, carry);
165 » » » MP_ADD_CARRY(r7, (r8_d-1), r7, carry, carry); 166 » » » MP_ADD_CARRY(r6, 0-(r8_d+1), r6, carry);
167 » » » MP_ADD_CARRY(r7, (r8_d-1), r7, carry);
166 r8 = carry; 168 r8 = carry;
167 } 169 }
168 170
169 /* reduce the underflows */ 171 /* reduce the underflows */
170 while (r8 < 0) { 172 while (r8 < 0) {
171 mp_digit r8_d = -r8; 173 mp_digit r8_d = -r8;
172 » » » MP_SUB_BORROW(r0, r8_d, r0, 0, carry); 174 » » » carry = 0;
173 » » » MP_SUB_BORROW(r1, 0, r1, carry, carry); 175 » » » MP_SUB_BORROW(r0, r8_d, r0, carry);
174 » » » MP_SUB_BORROW(r2, 0, r2, carry, carry); 176 » » » MP_SUB_BORROW(r1, 0, r1, carry);
175 » » » MP_SUB_BORROW(r3, 0-r8_d, r3, carry, carry); 177 » » » MP_SUB_BORROW(r2, 0, r2, carry);
176 » » » MP_SUB_BORROW(r4, MP_DIGIT_MAX, r4, carry, carry); 178 » » » MP_SUB_BORROW(r3, 0-r8_d, r3, carry);
177 » » » MP_SUB_BORROW(r5, MP_DIGIT_MAX, r5, carry, carry); 179 » » » MP_SUB_BORROW(r4, MP_DIGIT_MAX, r4, carry);
178 » » » MP_SUB_BORROW(r6, 0-(r8_d+1), r6, carry, carry); 180 » » » MP_SUB_BORROW(r5, MP_DIGIT_MAX, r5, carry);
179 » » » MP_SUB_BORROW(r7, (r8_d-1), r7, carry, carry); 181 » » » MP_SUB_BORROW(r6, 0-(r8_d+1), r6, carry);
182 » » » MP_SUB_BORROW(r7, (r8_d-1), r7, carry);
180 r8 = 0-carry; 183 r8 = 0-carry;
181 } 184 }
182 if (a != r) { 185 if (a != r) {
183 MP_CHECKOK(s_mp_pad(r,8)); 186 MP_CHECKOK(s_mp_pad(r,8));
184 } 187 }
185 MP_SIGN(r) = MP_ZPOS; 188 MP_SIGN(r) = MP_ZPOS;
186 MP_USED(r) = 8; 189 MP_USED(r) = 8;
187 190
188 MP_DIGIT(r,7) = r7; 191 MP_DIGIT(r,7) = r7;
189 MP_DIGIT(r,6) = r6; 192 MP_DIGIT(r,6) = r6;
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
222 a5l = a5 << 32; 225 a5l = a5 << 32;
223 a5h = a5 >> 32; 226 a5h = a5 >> 32;
224 a4l = a4 << 32; 227 a4l = a4 << 32;
225 a4h = a4 >> 32; 228 a4h = a4 >> 32;
226 r3 = MP_DIGIT(a,3); 229 r3 = MP_DIGIT(a,3);
227 r2 = MP_DIGIT(a,2); 230 r2 = MP_DIGIT(a,2);
228 r1 = MP_DIGIT(a,1); 231 r1 = MP_DIGIT(a,1);
229 r0 = MP_DIGIT(a,0); 232 r0 = MP_DIGIT(a,0);
230 233
231 /* sum 1 */ 234 /* sum 1 */
232 » » MP_ADD_CARRY(r1, a5h << 32, r1, 0, carry); 235 carry = 0;
233 » » MP_ADD_CARRY(r2, a6, r2, carry, carry); 236 » » carry = 0;
234 » » MP_ADD_CARRY(r3, a7, r3, carry, carry); 237 » » MP_ADD_CARRY(r1, a5h << 32, r1, carry);
235 » » r4 = carry; 238 » » MP_ADD_CARRY(r2, a6, r2, carry);
236 » » MP_ADD_CARRY(r1, a5h << 32, r1, 0, carry); 239 » » MP_ADD_CARRY(r3, a7, r3, carry);
237 » » MP_ADD_CARRY(r2, a6, r2, carry, carry); 240 » » r4 = carry; carry = 0;
238 » » MP_ADD_CARRY(r3, a7, r3, carry, carry); 241 » » carry = 0;
239 » » r4 += carry; 242 » » MP_ADD_CARRY(r1, a5h << 32, r1, carry);
243 » » MP_ADD_CARRY(r2, a6, r2, carry);
244 » » MP_ADD_CARRY(r3, a7, r3, carry);
245 » » r4 += carry; carry = 0;
240 /* sum 2 */ 246 /* sum 2 */
241 » » MP_ADD_CARRY(r1, a6l, r1, 0, carry); 247 » » carry = 0;
242 » » MP_ADD_CARRY(r2, a6h | a7l, r2, carry, carry); 248 » » MP_ADD_CARRY(r1, a6l, r1, carry);
243 » » MP_ADD_CARRY(r3, a7h, r3, carry, carry); 249 » » MP_ADD_CARRY(r2, a6h | a7l, r2, carry);
244 » » r4 += carry; 250 » » MP_ADD_CARRY(r3, a7h, r3, carry);
245 » » MP_ADD_CARRY(r1, a6l, r1, 0, carry); 251 » » r4 += carry; carry = 0;
246 » » MP_ADD_CARRY(r2, a6h | a7l, r2, carry, carry); 252 » » carry = 0;
247 » » MP_ADD_CARRY(r3, a7h, r3, carry, carry); 253 » » MP_ADD_CARRY(r1, a6l, r1, carry);
248 » » r4 += carry; 254 » » MP_ADD_CARRY(r2, a6h | a7l, r2, carry);
255 » » MP_ADD_CARRY(r3, a7h, r3, carry);
256 » » r4 += carry; carry = 0;
249 257
250 /* sum 3 */ 258 /* sum 3 */
251 » » MP_ADD_CARRY(r0, a4, r0, 0, carry); 259 » » carry = 0;
252 » » MP_ADD_CARRY(r1, a5l >> 32, r1, carry, carry); 260 » » MP_ADD_CARRY(r0, a4, r0, carry);
253 » » MP_ADD_CARRY(r2, 0, r2, carry, carry); 261 » » MP_ADD_CARRY(r1, a5l >> 32, r1, carry);
254 » » MP_ADD_CARRY(r3, a7, r3, carry, carry); 262 » » MP_ADD_CARRY(r2, 0, r2, carry);
255 » » r4 += carry; 263 » » MP_ADD_CARRY(r3, a7, r3, carry);
264 » » r4 += carry; carry = 0;
256 /* sum 4 */ 265 /* sum 4 */
257 » » MP_ADD_CARRY(r0, a4h | a5l, r0, 0, carry); 266 » » carry = 0;
258 » » MP_ADD_CARRY(r1, a5h|(a6h<<32), r1, carry, carry); 267 » » MP_ADD_CARRY(r0, a4h | a5l, r0, carry);
259 » » MP_ADD_CARRY(r2, a7, r2, carry, carry); 268 » » MP_ADD_CARRY(r1, a5h|(a6h<<32), r1, carry);
260 » » MP_ADD_CARRY(r3, a6h | a4l, r3, carry, carry); 269 » » MP_ADD_CARRY(r2, a7, r2, carry);
270 » » MP_ADD_CARRY(r3, a6h | a4l, r3, carry);
261 r4 += carry; 271 r4 += carry;
262 /* diff 5 */ 272 /* diff 5 */
263 » » MP_SUB_BORROW(r0, a5h | a6l, r0, 0, carry); 273 » » carry = 0;
264 » » MP_SUB_BORROW(r1, a6h, r1, carry, carry); 274 » » MP_SUB_BORROW(r0, a5h | a6l, r0, carry);
265 » » MP_SUB_BORROW(r2, 0, r2, carry, carry); 275 » » MP_SUB_BORROW(r1, a6h, r1, carry);
266 » » MP_SUB_BORROW(r3, (a4l>>32)|a5l,r3, carry, carry); 276 » » MP_SUB_BORROW(r2, 0, r2, carry);
277 » » MP_SUB_BORROW(r3, (a4l>>32)|a5l,r3, carry);
267 r4 -= carry; 278 r4 -= carry;
268 /* diff 6 */ 279 /* diff 6 */
269 » » MP_SUB_BORROW(r0, a6, »» r0, 0, carry); 280 » » carry = 0;
270 » » MP_SUB_BORROW(r1, a7, r1, carry, carry); 281 » » MP_SUB_BORROW(r0, a6, »» r0, carry);
271 » » MP_SUB_BORROW(r2, 0, r2, carry, carry); 282 » » MP_SUB_BORROW(r1, a7, r1, carry);
272 » » MP_SUB_BORROW(r3, a4h|(a5h<<32),r3, carry, carry); 283 » » MP_SUB_BORROW(r2, 0, r2, carry);
284 » » MP_SUB_BORROW(r3, a4h|(a5h<<32),r3, carry);
273 r4 -= carry; 285 r4 -= carry;
274 /* diff 7 */ 286 /* diff 7 */
275 » » MP_SUB_BORROW(r0, a6h|a7l,» r0, 0, carry); 287 » » carry = 0;
276 » » MP_SUB_BORROW(r1, a7h|a4l, r1, carry, carry); 288 » » MP_SUB_BORROW(r0, a6h|a7l,» r0, carry);
277 » » MP_SUB_BORROW(r2, a4h|a5l, r2, carry, carry); 289 » » MP_SUB_BORROW(r1, a7h|a4l, r1, carry);
278 » » MP_SUB_BORROW(r3, a6l, r3, carry, carry); 290 » » MP_SUB_BORROW(r2, a4h|a5l, r2, carry);
291 » » MP_SUB_BORROW(r3, a6l, r3, carry);
279 r4 -= carry; 292 r4 -= carry;
280 /* diff 8 */ 293 /* diff 8 */
281 » » MP_SUB_BORROW(r0, a7,» r0, 0, carry); 294 » » carry = 0;
282 » » MP_SUB_BORROW(r1, a4h<<32, r1, carry, carry); 295 » » MP_SUB_BORROW(r0, a7,» r0, carry);
283 » » MP_SUB_BORROW(r2, a5, r2, carry, carry); 296 » » MP_SUB_BORROW(r1, a4h<<32, r1, carry);
284 » » MP_SUB_BORROW(r3, a6h<<32, r3, carry, carry); 297 » » MP_SUB_BORROW(r2, a5, r2, carry);
298 » » MP_SUB_BORROW(r3, a6h<<32, r3, carry);
285 r4 -= carry; 299 r4 -= carry;
286 300
287 /* reduce the overflows */ 301 /* reduce the overflows */
288 while (r4 > 0) { 302 while (r4 > 0) {
289 mp_digit r4_long = r4; 303 mp_digit r4_long = r4;
290 mp_digit r4l = (r4_long << 32); 304 mp_digit r4l = (r4_long << 32);
291 » » » MP_ADD_CARRY(r0, r4_long, r0, 0, carry); 305 carry = 0;
292 » » » MP_ADD_CARRY(r1, 0-r4l, r1, carry, carry); 306 » » » carry = 0;
293 » » » MP_ADD_CARRY(r2, MP_DIGIT_MAX, r2, carry, carry); 307 » » » MP_ADD_CARRY(r0, r4_long, r0, carry);
294 » » » MP_ADD_CARRY(r3, r4l-r4_long-1,r3, carry, carry); 308 » » » MP_ADD_CARRY(r1, 0-r4l, r1, carry);
309 » » » MP_ADD_CARRY(r2, MP_DIGIT_MAX, r2, carry);
310 » » » MP_ADD_CARRY(r3, r4l-r4_long-1,r3, carry);
295 r4 = carry; 311 r4 = carry;
296 } 312 }
297 313
298 /* reduce the underflows */ 314 /* reduce the underflows */
299 while (r4 < 0) { 315 while (r4 < 0) {
300 mp_digit r4_long = -r4; 316 mp_digit r4_long = -r4;
301 mp_digit r4l = (r4_long << 32); 317 mp_digit r4l = (r4_long << 32);
302 » » » MP_SUB_BORROW(r0, r4_long, r0, 0, carry); 318 » » » carry = 0;
303 » » » MP_SUB_BORROW(r1, 0-r4l, r1, carry, carry); 319 » » » MP_SUB_BORROW(r0, r4_long, r0, carry);
304 » » » MP_SUB_BORROW(r2, MP_DIGIT_MAX, r2, carry, carry); 320 » » » MP_SUB_BORROW(r1, 0-r4l, r1, carry);
305 » » » MP_SUB_BORROW(r3, r4l-r4_long-1,r3, carry, carry); 321 » » » MP_SUB_BORROW(r2, MP_DIGIT_MAX, r2, carry);
322 » » » MP_SUB_BORROW(r3, r4l-r4_long-1,r3, carry);
306 r4 = 0-carry; 323 r4 = 0-carry;
307 } 324 }
308 325
309 if (a != r) { 326 if (a != r) {
310 MP_CHECKOK(s_mp_pad(r,4)); 327 MP_CHECKOK(s_mp_pad(r,4));
311 } 328 }
312 MP_SIGN(r) = MP_ZPOS; 329 MP_SIGN(r) = MP_ZPOS;
313 MP_USED(r) = 4; 330 MP_USED(r) = 4;
314 331
315 MP_DIGIT(r,3) = r3; 332 MP_DIGIT(r,3) = r3;
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
368 mp_err 385 mp_err
369 ec_group_set_gfp256(ECGroup *group, ECCurveName name) 386 ec_group_set_gfp256(ECGroup *group, ECCurveName name)
370 { 387 {
371 if (name == ECCurve_NIST_P256) { 388 if (name == ECCurve_NIST_P256) {
372 group->meth->field_mod = &ec_GFp_nistp256_mod; 389 group->meth->field_mod = &ec_GFp_nistp256_mod;
373 group->meth->field_mul = &ec_GFp_nistp256_mul; 390 group->meth->field_mul = &ec_GFp_nistp256_mul;
374 group->meth->field_sqr = &ec_GFp_nistp256_sqr; 391 group->meth->field_sqr = &ec_GFp_nistp256_sqr;
375 } 392 }
376 return MP_OKAY; 393 return MP_OKAY;
377 } 394 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698