diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/lib/libcrypto/bn/bn_local.h | 20 | ||||
-rw-r--r-- | src/lib/libcrypto/bn/bn_sqr.c | 43 |
2 files changed, 10 insertions, 53 deletions
diff --git a/src/lib/libcrypto/bn/bn_local.h b/src/lib/libcrypto/bn/bn_local.h index 904eaa0f05..4ea54d2320 100644 --- a/src/lib/libcrypto/bn/bn_local.h +++ b/src/lib/libcrypto/bn/bn_local.h | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: bn_local.h,v 1.7 2023/02/03 04:47:59 jsing Exp $ */ | 1 | /* $OpenBSD: bn_local.h,v 1.8 2023/02/09 09:16:26 jsing Exp $ */ |
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
@@ -342,13 +342,6 @@ struct bn_gencb_st { | |||
342 | (c)= Hw(t); \ | 342 | (c)= Hw(t); \ |
343 | } | 343 | } |
344 | 344 | ||
345 | #define sqr(r0,r1,a) { \ | ||
346 | BN_ULLONG t; \ | ||
347 | t=(BN_ULLONG)(a)*(a); \ | ||
348 | (r0)=Lw(t); \ | ||
349 | (r1)=Hw(t); \ | ||
350 | } | ||
351 | |||
352 | #elif defined(BN_UMULT_LOHI) | 345 | #elif defined(BN_UMULT_LOHI) |
353 | #define mul_add(r,a,w,c) { \ | 346 | #define mul_add(r,a,w,c) { \ |
354 | BN_ULONG high,low,ret,tmp=(a); \ | 347 | BN_ULONG high,low,ret,tmp=(a); \ |
@@ -371,11 +364,6 @@ struct bn_gencb_st { | |||
371 | (r) = ret; \ | 364 | (r) = ret; \ |
372 | } | 365 | } |
373 | 366 | ||
374 | #define sqr(r0,r1,a) { \ | ||
375 | BN_ULONG tmp=(a); \ | ||
376 | BN_UMULT_LOHI(r0,r1,tmp,tmp); \ | ||
377 | } | ||
378 | |||
379 | #elif defined(BN_UMULT_HIGH) | 367 | #elif defined(BN_UMULT_HIGH) |
380 | #define mul_add(r,a,w,c) { \ | 368 | #define mul_add(r,a,w,c) { \ |
381 | BN_ULONG high,low,ret,tmp=(a); \ | 369 | BN_ULONG high,low,ret,tmp=(a); \ |
@@ -400,12 +388,6 @@ struct bn_gencb_st { | |||
400 | (r) = ret; \ | 388 | (r) = ret; \ |
401 | } | 389 | } |
402 | 390 | ||
403 | #define sqr(r0,r1,a) { \ | ||
404 | BN_ULONG tmp=(a); \ | ||
405 | (r0) = tmp * tmp; \ | ||
406 | (r1) = BN_UMULT_HIGH(tmp,tmp); \ | ||
407 | } | ||
408 | |||
409 | #else | 391 | #else |
410 | /************************************************************* | 392 | /************************************************************* |
411 | * No long long type | 393 | * No long long type |
diff --git a/src/lib/libcrypto/bn/bn_sqr.c b/src/lib/libcrypto/bn/bn_sqr.c index 74d5eded94..940cdd33bd 100644 --- a/src/lib/libcrypto/bn/bn_sqr.c +++ b/src/lib/libcrypto/bn/bn_sqr.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: bn_sqr.c,v 1.22 2023/01/23 12:09:06 jsing Exp $ */ | 1 | /* $OpenBSD: bn_sqr.c,v 1.23 2023/02/09 09:16:26 jsing Exp $ */ |
2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
3 | * All rights reserved. | 3 | * All rights reserved. |
4 | * | 4 | * |
@@ -180,33 +180,9 @@ bn_sqr_comba8(BN_ULONG *r, const BN_ULONG *a) | |||
180 | #endif | 180 | #endif |
181 | 181 | ||
182 | #ifndef HAVE_BN_SQR_WORDS | 182 | #ifndef HAVE_BN_SQR_WORDS |
183 | #if defined(BN_LLONG) || defined(BN_UMULT_HIGH) | 183 | /* |
184 | void | 184 | * bn_sqr_words() computes (r[i*2+1]:r[i*2]) = a[i] * a[i]. |
185 | bn_sqr_words(BN_ULONG *r, const BN_ULONG *a, int n) | 185 | */ |
186 | { | ||
187 | assert(n >= 0); | ||
188 | if (n <= 0) | ||
189 | return; | ||
190 | |||
191 | #ifndef OPENSSL_SMALL_FOOTPRINT | ||
192 | while (n & ~3) { | ||
193 | sqr(r[0], r[1], a[0]); | ||
194 | sqr(r[2], r[3], a[1]); | ||
195 | sqr(r[4], r[5], a[2]); | ||
196 | sqr(r[6], r[7], a[3]); | ||
197 | a += 4; | ||
198 | r += 8; | ||
199 | n -= 4; | ||
200 | } | ||
201 | #endif | ||
202 | while (n) { | ||
203 | sqr(r[0], r[1], a[0]); | ||
204 | a++; | ||
205 | r += 2; | ||
206 | n--; | ||
207 | } | ||
208 | } | ||
209 | #else /* !(defined(BN_LLONG) || defined(BN_UMULT_HIGH)) */ | ||
210 | void | 186 | void |
211 | bn_sqr_words(BN_ULONG *r, const BN_ULONG *a, int n) | 187 | bn_sqr_words(BN_ULONG *r, const BN_ULONG *a, int n) |
212 | { | 188 | { |
@@ -216,24 +192,23 @@ bn_sqr_words(BN_ULONG *r, const BN_ULONG *a, int n) | |||
216 | 192 | ||
217 | #ifndef OPENSSL_SMALL_FOOTPRINT | 193 | #ifndef OPENSSL_SMALL_FOOTPRINT |
218 | while (n & ~3) { | 194 | while (n & ~3) { |
219 | sqr64(r[0], r[1], a[0]); | 195 | bn_umul_hilo(a[0], a[0], &r[1], &r[0]); |
220 | sqr64(r[2], r[3], a[1]); | 196 | bn_umul_hilo(a[1], a[1], &r[3], &r[2]); |
221 | sqr64(r[4], r[5], a[2]); | 197 | bn_umul_hilo(a[2], a[2], &r[5], &r[4]); |
222 | sqr64(r[6], r[7], a[3]); | 198 | bn_umul_hilo(a[3], a[3], &r[7], &r[6]); |
223 | a += 4; | 199 | a += 4; |
224 | r += 8; | 200 | r += 8; |
225 | n -= 4; | 201 | n -= 4; |
226 | } | 202 | } |
227 | #endif | 203 | #endif |
228 | while (n) { | 204 | while (n) { |
229 | sqr64(r[0], r[1], a[0]); | 205 | bn_umul_hilo(a[0], a[0], &r[1], &r[0]); |
230 | a++; | 206 | a++; |
231 | r += 2; | 207 | r += 2; |
232 | n--; | 208 | n--; |
233 | } | 209 | } |
234 | } | 210 | } |
235 | #endif | 211 | #endif |
236 | #endif | ||
237 | 212 | ||
238 | /* tmp must have 2*n words */ | 213 | /* tmp must have 2*n words */ |
239 | void | 214 | void |