diff options
Diffstat (limited to '')
| -rw-r--r-- | src/lib/libcrypto/bn/arch/amd64/bn_arch.h | 3 | ||||
| -rw-r--r-- | src/lib/libcrypto/bn/arch/i386/bn_arch.h | 3 | ||||
| -rw-r--r-- | src/lib/libcrypto/bn/arch/mips64/bn_arch.h | 3 | ||||
| -rw-r--r-- | src/lib/libcrypto/bn/arch/powerpc/bn_arch.h | 3 | ||||
| -rw-r--r-- | src/lib/libcrypto/bn/arch/sparc/bn_arch.h | 3 | ||||
| -rw-r--r-- | src/lib/libcrypto/bn/bn_asm.c | 54 | ||||
| -rw-r--r-- | src/lib/libcrypto/bn/bn_sqr.c | 59 |
7 files changed, 69 insertions, 59 deletions
diff --git a/src/lib/libcrypto/bn/arch/amd64/bn_arch.h b/src/lib/libcrypto/bn/arch/amd64/bn_arch.h index 2d11fbd7c2..e8c9986bb3 100644 --- a/src/lib/libcrypto/bn/arch/amd64/bn_arch.h +++ b/src/lib/libcrypto/bn/arch/amd64/bn_arch.h | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: bn_arch.h,v 1.5 2023/01/23 12:02:48 jsing Exp $ */ | 1 | /* $OpenBSD: bn_arch.h,v 1.6 2023/01/23 12:09:06 jsing Exp $ */ |
| 2 | /* | 2 | /* |
| 3 | * Copyright (c) 2023 Joel Sing <jsing@openbsd.org> | 3 | * Copyright (c) 2023 Joel Sing <jsing@openbsd.org> |
| 4 | * | 4 | * |
| @@ -30,6 +30,7 @@ | |||
| 30 | #define HAVE_BN_SQR | 30 | #define HAVE_BN_SQR |
| 31 | #define HAVE_BN_SQR_COMBA4 | 31 | #define HAVE_BN_SQR_COMBA4 |
| 32 | #define HAVE_BN_SQR_COMBA8 | 32 | #define HAVE_BN_SQR_COMBA8 |
| 33 | #define HAVE_BN_SQR_WORDS | ||
| 33 | 34 | ||
| 34 | #define HAVE_BN_SUB_WORDS | 35 | #define HAVE_BN_SUB_WORDS |
| 35 | 36 | ||
diff --git a/src/lib/libcrypto/bn/arch/i386/bn_arch.h b/src/lib/libcrypto/bn/arch/i386/bn_arch.h index 18d7e519ec..eeb273583a 100644 --- a/src/lib/libcrypto/bn/arch/i386/bn_arch.h +++ b/src/lib/libcrypto/bn/arch/i386/bn_arch.h | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: bn_arch.h,v 1.4 2023/01/23 12:02:48 jsing Exp $ */ | 1 | /* $OpenBSD: bn_arch.h,v 1.5 2023/01/23 12:09:06 jsing Exp $ */ |
| 2 | /* | 2 | /* |
| 3 | * Copyright (c) 2023 Joel Sing <jsing@openbsd.org> | 3 | * Copyright (c) 2023 Joel Sing <jsing@openbsd.org> |
| 4 | * | 4 | * |
| @@ -29,6 +29,7 @@ | |||
| 29 | 29 | ||
| 30 | #define HAVE_BN_SQR_COMBA4 | 30 | #define HAVE_BN_SQR_COMBA4 |
| 31 | #define HAVE_BN_SQR_COMBA8 | 31 | #define HAVE_BN_SQR_COMBA8 |
| 32 | #define HAVE_BN_SQR_WORDS | ||
| 32 | 33 | ||
| 33 | #define HAVE_BN_SUB_WORDS | 34 | #define HAVE_BN_SUB_WORDS |
| 34 | 35 | ||
diff --git a/src/lib/libcrypto/bn/arch/mips64/bn_arch.h b/src/lib/libcrypto/bn/arch/mips64/bn_arch.h index f53c75472c..f7676611d7 100644 --- a/src/lib/libcrypto/bn/arch/mips64/bn_arch.h +++ b/src/lib/libcrypto/bn/arch/mips64/bn_arch.h | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: bn_arch.h,v 1.5 2023/01/23 12:02:48 jsing Exp $ */ | 1 | /* $OpenBSD: bn_arch.h,v 1.6 2023/01/23 12:09:06 jsing Exp $ */ |
| 2 | /* | 2 | /* |
| 3 | * Copyright (c) 2023 Joel Sing <jsing@openbsd.org> | 3 | * Copyright (c) 2023 Joel Sing <jsing@openbsd.org> |
| 4 | * | 4 | * |
| @@ -30,6 +30,7 @@ | |||
| 30 | 30 | ||
| 31 | #define HAVE_BN_SQR_COMBA4 | 31 | #define HAVE_BN_SQR_COMBA4 |
| 32 | #define HAVE_BN_SQR_COMBA8 | 32 | #define HAVE_BN_SQR_COMBA8 |
| 33 | #define HAVE_BN_SQR_WORDS | ||
| 33 | 34 | ||
| 34 | #define HAVE_BN_SUB_WORDS | 35 | #define HAVE_BN_SUB_WORDS |
| 35 | 36 | ||
diff --git a/src/lib/libcrypto/bn/arch/powerpc/bn_arch.h b/src/lib/libcrypto/bn/arch/powerpc/bn_arch.h index 18d7e519ec..eeb273583a 100644 --- a/src/lib/libcrypto/bn/arch/powerpc/bn_arch.h +++ b/src/lib/libcrypto/bn/arch/powerpc/bn_arch.h | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: bn_arch.h,v 1.4 2023/01/23 12:02:48 jsing Exp $ */ | 1 | /* $OpenBSD: bn_arch.h,v 1.5 2023/01/23 12:09:06 jsing Exp $ */ |
| 2 | /* | 2 | /* |
| 3 | * Copyright (c) 2023 Joel Sing <jsing@openbsd.org> | 3 | * Copyright (c) 2023 Joel Sing <jsing@openbsd.org> |
| 4 | * | 4 | * |
| @@ -29,6 +29,7 @@ | |||
| 29 | 29 | ||
| 30 | #define HAVE_BN_SQR_COMBA4 | 30 | #define HAVE_BN_SQR_COMBA4 |
| 31 | #define HAVE_BN_SQR_COMBA8 | 31 | #define HAVE_BN_SQR_COMBA8 |
| 32 | #define HAVE_BN_SQR_WORDS | ||
| 32 | 33 | ||
| 33 | #define HAVE_BN_SUB_WORDS | 34 | #define HAVE_BN_SUB_WORDS |
| 34 | 35 | ||
diff --git a/src/lib/libcrypto/bn/arch/sparc/bn_arch.h b/src/lib/libcrypto/bn/arch/sparc/bn_arch.h index 18d7e519ec..eeb273583a 100644 --- a/src/lib/libcrypto/bn/arch/sparc/bn_arch.h +++ b/src/lib/libcrypto/bn/arch/sparc/bn_arch.h | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: bn_arch.h,v 1.4 2023/01/23 12:02:48 jsing Exp $ */ | 1 | /* $OpenBSD: bn_arch.h,v 1.5 2023/01/23 12:09:06 jsing Exp $ */ |
| 2 | /* | 2 | /* |
| 3 | * Copyright (c) 2023 Joel Sing <jsing@openbsd.org> | 3 | * Copyright (c) 2023 Joel Sing <jsing@openbsd.org> |
| 4 | * | 4 | * |
| @@ -29,6 +29,7 @@ | |||
| 29 | 29 | ||
| 30 | #define HAVE_BN_SQR_COMBA4 | 30 | #define HAVE_BN_SQR_COMBA4 |
| 31 | #define HAVE_BN_SQR_COMBA8 | 31 | #define HAVE_BN_SQR_COMBA8 |
| 32 | #define HAVE_BN_SQR_WORDS | ||
| 32 | 33 | ||
| 33 | #define HAVE_BN_SUB_WORDS | 34 | #define HAVE_BN_SUB_WORDS |
| 34 | 35 | ||
diff --git a/src/lib/libcrypto/bn/bn_asm.c b/src/lib/libcrypto/bn/bn_asm.c index a7f288fc1c..143c939367 100644 --- a/src/lib/libcrypto/bn/bn_asm.c +++ b/src/lib/libcrypto/bn/bn_asm.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: bn_asm.c,v 1.21 2023/01/23 12:02:48 jsing Exp $ */ | 1 | /* $OpenBSD: bn_asm.c,v 1.22 2023/01/23 12:09:06 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 | * |
| @@ -124,32 +124,6 @@ bn_mul_words(BN_ULONG *rp, const BN_ULONG *ap, int num, BN_ULONG w) | |||
| 124 | return (c1); | 124 | return (c1); |
| 125 | } | 125 | } |
| 126 | 126 | ||
| 127 | void | ||
| 128 | bn_sqr_words(BN_ULONG *r, const BN_ULONG *a, int n) | ||
| 129 | { | ||
| 130 | assert(n >= 0); | ||
| 131 | if (n <= 0) | ||
| 132 | return; | ||
| 133 | |||
| 134 | #ifndef OPENSSL_SMALL_FOOTPRINT | ||
| 135 | while (n & ~3) { | ||
| 136 | sqr(r[0], r[1], a[0]); | ||
| 137 | sqr(r[2], r[3], a[1]); | ||
| 138 | sqr(r[4], r[5], a[2]); | ||
| 139 | sqr(r[6], r[7], a[3]); | ||
| 140 | a += 4; | ||
| 141 | r += 8; | ||
| 142 | n -= 4; | ||
| 143 | } | ||
| 144 | #endif | ||
| 145 | while (n) { | ||
| 146 | sqr(r[0], r[1], a[0]); | ||
| 147 | a++; | ||
| 148 | r += 2; | ||
| 149 | n--; | ||
| 150 | } | ||
| 151 | } | ||
| 152 | |||
| 153 | #else /* !(defined(BN_LLONG) || defined(BN_UMULT_HIGH)) */ | 127 | #else /* !(defined(BN_LLONG) || defined(BN_UMULT_HIGH)) */ |
| 154 | 128 | ||
| 155 | BN_ULONG | 129 | BN_ULONG |
| @@ -218,32 +192,6 @@ bn_mul_words(BN_ULONG *rp, const BN_ULONG *ap, int num, BN_ULONG w) | |||
| 218 | return (carry); | 192 | return (carry); |
| 219 | } | 193 | } |
| 220 | 194 | ||
| 221 | void | ||
| 222 | bn_sqr_words(BN_ULONG *r, const BN_ULONG *a, int n) | ||
| 223 | { | ||
| 224 | assert(n >= 0); | ||
| 225 | if (n <= 0) | ||
| 226 | return; | ||
| 227 | |||
| 228 | #ifndef OPENSSL_SMALL_FOOTPRINT | ||
| 229 | while (n & ~3) { | ||
| 230 | sqr64(r[0], r[1], a[0]); | ||
| 231 | sqr64(r[2], r[3], a[1]); | ||
| 232 | sqr64(r[4], r[5], a[2]); | ||
| 233 | sqr64(r[6], r[7], a[3]); | ||
| 234 | a += 4; | ||
| 235 | r += 8; | ||
| 236 | n -= 4; | ||
| 237 | } | ||
| 238 | #endif | ||
| 239 | while (n) { | ||
| 240 | sqr64(r[0], r[1], a[0]); | ||
| 241 | a++; | ||
| 242 | r += 2; | ||
| 243 | n--; | ||
| 244 | } | ||
| 245 | } | ||
| 246 | |||
| 247 | #endif /* !(defined(BN_LLONG) || defined(BN_UMULT_HIGH)) */ | 195 | #endif /* !(defined(BN_LLONG) || defined(BN_UMULT_HIGH)) */ |
| 248 | 196 | ||
| 249 | #if defined(BN_MUL_COMBA) && !defined(OPENSSL_SMALL_FOOTPRINT) | 197 | #if defined(BN_MUL_COMBA) && !defined(OPENSSL_SMALL_FOOTPRINT) |
diff --git a/src/lib/libcrypto/bn/bn_sqr.c b/src/lib/libcrypto/bn/bn_sqr.c index ff254764e3..74d5eded94 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.21 2023/01/21 14:10:46 jsing Exp $ */ | 1 | /* $OpenBSD: bn_sqr.c,v 1.22 2023/01/23 12:09:06 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 | * |
| @@ -56,6 +56,7 @@ | |||
| 56 | * [including the GNU Public Licence.] | 56 | * [including the GNU Public Licence.] |
| 57 | */ | 57 | */ |
| 58 | 58 | ||
| 59 | #include <assert.h> | ||
| 59 | #include <stdio.h> | 60 | #include <stdio.h> |
| 60 | #include <string.h> | 61 | #include <string.h> |
| 61 | 62 | ||
| @@ -178,6 +179,62 @@ bn_sqr_comba8(BN_ULONG *r, const BN_ULONG *a) | |||
| 178 | } | 179 | } |
| 179 | #endif | 180 | #endif |
| 180 | 181 | ||
| 182 | #ifndef HAVE_BN_SQR_WORDS | ||
| 183 | #if defined(BN_LLONG) || defined(BN_UMULT_HIGH) | ||
| 184 | void | ||
| 185 | bn_sqr_words(BN_ULONG *r, const BN_ULONG *a, int n) | ||
| 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 | ||
| 211 | bn_sqr_words(BN_ULONG *r, const BN_ULONG *a, int n) | ||
| 212 | { | ||
| 213 | assert(n >= 0); | ||
| 214 | if (n <= 0) | ||
| 215 | return; | ||
| 216 | |||
| 217 | #ifndef OPENSSL_SMALL_FOOTPRINT | ||
| 218 | while (n & ~3) { | ||
| 219 | sqr64(r[0], r[1], a[0]); | ||
| 220 | sqr64(r[2], r[3], a[1]); | ||
| 221 | sqr64(r[4], r[5], a[2]); | ||
| 222 | sqr64(r[6], r[7], a[3]); | ||
| 223 | a += 4; | ||
| 224 | r += 8; | ||
| 225 | n -= 4; | ||
| 226 | } | ||
| 227 | #endif | ||
| 228 | while (n) { | ||
| 229 | sqr64(r[0], r[1], a[0]); | ||
| 230 | a++; | ||
| 231 | r += 2; | ||
| 232 | n--; | ||
| 233 | } | ||
| 234 | } | ||
| 235 | #endif | ||
| 236 | #endif | ||
| 237 | |||
| 181 | /* tmp must have 2*n words */ | 238 | /* tmp must have 2*n words */ |
| 182 | void | 239 | void |
| 183 | bn_sqr_normal(BN_ULONG *r, const BN_ULONG *a, int n, BN_ULONG *tmp) | 240 | bn_sqr_normal(BN_ULONG *r, const BN_ULONG *a, int n, BN_ULONG *tmp) |
