summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/lib/libcrypto/Makefile4
-rw-r--r--src/lib/libcrypto/bn/bn_prime.c14
-rw-r--r--src/lib/libcrypto/bn/bn_prime.h266
-rw-r--r--src/lib/libcrypto/bn/bn_prime.pl78
-rw-r--r--src/lib/libcrypto/bn/bn_small_primes.c265
5 files changed, 292 insertions, 335 deletions
diff --git a/src/lib/libcrypto/Makefile b/src/lib/libcrypto/Makefile
index d3daf29970..818b2c2c14 100644
--- a/src/lib/libcrypto/Makefile
+++ b/src/lib/libcrypto/Makefile
@@ -1,4 +1,4 @@
1# $OpenBSD: Makefile,v 1.80 2022/11/08 12:56:00 beck Exp $ 1# $OpenBSD: Makefile,v 1.81 2022/11/09 22:52:51 tb Exp $
2 2
3LIB= crypto 3LIB= crypto
4LIBREBUILD=y 4LIBREBUILD=y
@@ -91,7 +91,7 @@ SRCS+= bn_print.c bn_rand.c bn_shift.c bn_word.c bn_blind.c
91SRCS+= bn_kron.c bn_sqrt.c bn_gcd.c bn_prime.c bn_err.c bn_sqr.c 91SRCS+= bn_kron.c bn_sqrt.c bn_gcd.c bn_prime.c bn_err.c bn_sqr.c
92SRCS+= bn_recp.c bn_mont.c bn_mpi.c bn_exp2.c bn_gf2m.c bn_nist.c 92SRCS+= bn_recp.c bn_mont.c bn_mpi.c bn_exp2.c bn_gf2m.c bn_nist.c
93SRCS+= bn_depr.c bn_const.c bn_x931p.c 93SRCS+= bn_depr.c bn_const.c bn_x931p.c
94SRCS+= bn_bpsw.c bn_isqrt.c 94SRCS+= bn_bpsw.c bn_isqrt.c bn_small_primes.c
95 95
96# buffer/ 96# buffer/
97SRCS+= buffer.c buf_err.c buf_str.c 97SRCS+= buffer.c buf_err.c buf_str.c
diff --git a/src/lib/libcrypto/bn/bn_prime.c b/src/lib/libcrypto/bn/bn_prime.c
index f44fbdf79a..bf3f931644 100644
--- a/src/lib/libcrypto/bn/bn_prime.c
+++ b/src/lib/libcrypto/bn/bn_prime.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: bn_prime.c,v 1.25 2022/11/09 15:33:13 tb Exp $ */ 1/* $OpenBSD: bn_prime.c,v 1.26 2022/11/09 22:52:51 tb 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 *
@@ -260,7 +260,7 @@ static int
260probable_prime(BIGNUM *rnd, int bits) 260probable_prime(BIGNUM *rnd, int bits)
261{ 261{
262 int i; 262 int i;
263 prime_t mods[NUMPRIMES]; 263 BN_ULONG mods[NUMPRIMES];
264 BN_ULONG delta, maxdelta; 264 BN_ULONG delta, maxdelta;
265 265
266again: 266again:
@@ -268,10 +268,10 @@ again:
268 return (0); 268 return (0);
269 /* we now have a random number 'rand' to test. */ 269 /* we now have a random number 'rand' to test. */
270 for (i = 1; i < NUMPRIMES; i++) { 270 for (i = 1; i < NUMPRIMES; i++) {
271 BN_ULONG mod = BN_mod_word(rnd, (BN_ULONG)primes[i]); 271 BN_ULONG mod = BN_mod_word(rnd, primes[i]);
272 if (mod == (BN_ULONG)-1) 272 if (mod == (BN_ULONG)-1)
273 return (0); 273 return (0);
274 mods[i] = (prime_t)mod; 274 mods[i] = mod;
275 } 275 }
276 maxdelta = BN_MASK2 - primes[NUMPRIMES - 1]; 276 maxdelta = BN_MASK2 - primes[NUMPRIMES - 1];
277 delta = 0; 277 delta = 0;
@@ -325,7 +325,7 @@ probable_prime_dh(BIGNUM *rnd, int bits, const BIGNUM *add, const BIGNUM *rem,
325loop: 325loop:
326 for (i = 1; i < NUMPRIMES; i++) { 326 for (i = 1; i < NUMPRIMES; i++) {
327 /* check that rnd is a prime */ 327 /* check that rnd is a prime */
328 BN_LONG mod = BN_mod_word(rnd, (BN_ULONG)primes[i]); 328 BN_LONG mod = BN_mod_word(rnd, primes[i]);
329 if (mod == (BN_ULONG)-1) 329 if (mod == (BN_ULONG)-1)
330 goto err; 330 goto err;
331 if (mod <= 1) { 331 if (mod <= 1) {
@@ -390,8 +390,8 @@ loop:
390 /* check that p and q are prime */ 390 /* check that p and q are prime */
391 /* check that for p and q 391 /* check that for p and q
392 * gcd(p-1,primes) == 1 (except for 2) */ 392 * gcd(p-1,primes) == 1 (except for 2) */
393 BN_ULONG pmod = BN_mod_word(p, (BN_ULONG)primes[i]); 393 BN_ULONG pmod = BN_mod_word(p, primes[i]);
394 BN_ULONG qmod = BN_mod_word(q, (BN_ULONG)primes[i]); 394 BN_ULONG qmod = BN_mod_word(q, primes[i]);
395 if (pmod == (BN_ULONG)-1 || qmod == (BN_ULONG)-1) 395 if (pmod == (BN_ULONG)-1 || qmod == (BN_ULONG)-1)
396 goto err; 396 goto err;
397 if (pmod == 0 || qmod == 0) { 397 if (pmod == 0 || qmod == 0) {
diff --git a/src/lib/libcrypto/bn/bn_prime.h b/src/lib/libcrypto/bn/bn_prime.h
index d5199008f9..32cbd93495 100644
--- a/src/lib/libcrypto/bn/bn_prime.h
+++ b/src/lib/libcrypto/bn/bn_prime.h
@@ -1,5 +1,4 @@
1/* $OpenBSD: bn_prime.h,v 1.7 2016/12/21 15:49:29 jsing Exp $ */ 1/* $OpenBSD: bn_prime.h,v 1.8 2022/11/09 22:52:51 tb Exp $ */
2/* Auto generated by bn_prime.pl */
3/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 2/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
4 * All rights reserved. 3 * All rights reserved.
5 * 4 *
@@ -57,267 +56,12 @@
57 * [including the GNU Public Licence.] 56 * [including the GNU Public Licence.]
58 */ 57 */
59 58
59#include <openssl/bn.h>
60
60__BEGIN_HIDDEN_DECLS 61__BEGIN_HIDDEN_DECLS
61 62
62#define NUMPRIMES 2048 63#define NUMPRIMES 2048
63typedef unsigned short prime_t; 64
64static const prime_t primes[NUMPRIMES] = { 65extern const uint16_t primes[NUMPRIMES];
65 2, 3, 5, 7, 11, 13, 17, 19,
66 23, 29, 31, 37, 41, 43, 47, 53,
67 59, 61, 67, 71, 73, 79, 83, 89,
68 97, 101, 103, 107, 109, 113, 127, 131,
69 137, 139, 149, 151, 157, 163, 167, 173,
70 179, 181, 191, 193, 197, 199, 211, 223,
71 227, 229, 233, 239, 241, 251, 257, 263,
72 269, 271, 277, 281, 283, 293, 307, 311,
73 313, 317, 331, 337, 347, 349, 353, 359,
74 367, 373, 379, 383, 389, 397, 401, 409,
75 419, 421, 431, 433, 439, 443, 449, 457,
76 461, 463, 467, 479, 487, 491, 499, 503,
77 509, 521, 523, 541, 547, 557, 563, 569,
78 571, 577, 587, 593, 599, 601, 607, 613,
79 617, 619, 631, 641, 643, 647, 653, 659,
80 661, 673, 677, 683, 691, 701, 709, 719,
81 727, 733, 739, 743, 751, 757, 761, 769,
82 773, 787, 797, 809, 811, 821, 823, 827,
83 829, 839, 853, 857, 859, 863, 877, 881,
84 883, 887, 907, 911, 919, 929, 937, 941,
85 947, 953, 967, 971, 977, 983, 991, 997,
86 1009, 1013, 1019, 1021, 1031, 1033, 1039, 1049,
87 1051, 1061, 1063, 1069, 1087, 1091, 1093, 1097,
88 1103, 1109, 1117, 1123, 1129, 1151, 1153, 1163,
89 1171, 1181, 1187, 1193, 1201, 1213, 1217, 1223,
90 1229, 1231, 1237, 1249, 1259, 1277, 1279, 1283,
91 1289, 1291, 1297, 1301, 1303, 1307, 1319, 1321,
92 1327, 1361, 1367, 1373, 1381, 1399, 1409, 1423,
93 1427, 1429, 1433, 1439, 1447, 1451, 1453, 1459,
94 1471, 1481, 1483, 1487, 1489, 1493, 1499, 1511,
95 1523, 1531, 1543, 1549, 1553, 1559, 1567, 1571,
96 1579, 1583, 1597, 1601, 1607, 1609, 1613, 1619,
97 1621, 1627, 1637, 1657, 1663, 1667, 1669, 1693,
98 1697, 1699, 1709, 1721, 1723, 1733, 1741, 1747,
99 1753, 1759, 1777, 1783, 1787, 1789, 1801, 1811,
100 1823, 1831, 1847, 1861, 1867, 1871, 1873, 1877,
101 1879, 1889, 1901, 1907, 1913, 1931, 1933, 1949,
102 1951, 1973, 1979, 1987, 1993, 1997, 1999, 2003,
103 2011, 2017, 2027, 2029, 2039, 2053, 2063, 2069,
104 2081, 2083, 2087, 2089, 2099, 2111, 2113, 2129,
105 2131, 2137, 2141, 2143, 2153, 2161, 2179, 2203,
106 2207, 2213, 2221, 2237, 2239, 2243, 2251, 2267,
107 2269, 2273, 2281, 2287, 2293, 2297, 2309, 2311,
108 2333, 2339, 2341, 2347, 2351, 2357, 2371, 2377,
109 2381, 2383, 2389, 2393, 2399, 2411, 2417, 2423,
110 2437, 2441, 2447, 2459, 2467, 2473, 2477, 2503,
111 2521, 2531, 2539, 2543, 2549, 2551, 2557, 2579,
112 2591, 2593, 2609, 2617, 2621, 2633, 2647, 2657,
113 2659, 2663, 2671, 2677, 2683, 2687, 2689, 2693,
114 2699, 2707, 2711, 2713, 2719, 2729, 2731, 2741,
115 2749, 2753, 2767, 2777, 2789, 2791, 2797, 2801,
116 2803, 2819, 2833, 2837, 2843, 2851, 2857, 2861,
117 2879, 2887, 2897, 2903, 2909, 2917, 2927, 2939,
118 2953, 2957, 2963, 2969, 2971, 2999, 3001, 3011,
119 3019, 3023, 3037, 3041, 3049, 3061, 3067, 3079,
120 3083, 3089, 3109, 3119, 3121, 3137, 3163, 3167,
121 3169, 3181, 3187, 3191, 3203, 3209, 3217, 3221,
122 3229, 3251, 3253, 3257, 3259, 3271, 3299, 3301,
123 3307, 3313, 3319, 3323, 3329, 3331, 3343, 3347,
124 3359, 3361, 3371, 3373, 3389, 3391, 3407, 3413,
125 3433, 3449, 3457, 3461, 3463, 3467, 3469, 3491,
126 3499, 3511, 3517, 3527, 3529, 3533, 3539, 3541,
127 3547, 3557, 3559, 3571, 3581, 3583, 3593, 3607,
128 3613, 3617, 3623, 3631, 3637, 3643, 3659, 3671,
129 3673, 3677, 3691, 3697, 3701, 3709, 3719, 3727,
130 3733, 3739, 3761, 3767, 3769, 3779, 3793, 3797,
131 3803, 3821, 3823, 3833, 3847, 3851, 3853, 3863,
132 3877, 3881, 3889, 3907, 3911, 3917, 3919, 3923,
133 3929, 3931, 3943, 3947, 3967, 3989, 4001, 4003,
134 4007, 4013, 4019, 4021, 4027, 4049, 4051, 4057,
135 4073, 4079, 4091, 4093, 4099, 4111, 4127, 4129,
136 4133, 4139, 4153, 4157, 4159, 4177, 4201, 4211,
137 4217, 4219, 4229, 4231, 4241, 4243, 4253, 4259,
138 4261, 4271, 4273, 4283, 4289, 4297, 4327, 4337,
139 4339, 4349, 4357, 4363, 4373, 4391, 4397, 4409,
140 4421, 4423, 4441, 4447, 4451, 4457, 4463, 4481,
141 4483, 4493, 4507, 4513, 4517, 4519, 4523, 4547,
142 4549, 4561, 4567, 4583, 4591, 4597, 4603, 4621,
143 4637, 4639, 4643, 4649, 4651, 4657, 4663, 4673,
144 4679, 4691, 4703, 4721, 4723, 4729, 4733, 4751,
145 4759, 4783, 4787, 4789, 4793, 4799, 4801, 4813,
146 4817, 4831, 4861, 4871, 4877, 4889, 4903, 4909,
147 4919, 4931, 4933, 4937, 4943, 4951, 4957, 4967,
148 4969, 4973, 4987, 4993, 4999, 5003, 5009, 5011,
149 5021, 5023, 5039, 5051, 5059, 5077, 5081, 5087,
150 5099, 5101, 5107, 5113, 5119, 5147, 5153, 5167,
151 5171, 5179, 5189, 5197, 5209, 5227, 5231, 5233,
152 5237, 5261, 5273, 5279, 5281, 5297, 5303, 5309,
153 5323, 5333, 5347, 5351, 5381, 5387, 5393, 5399,
154 5407, 5413, 5417, 5419, 5431, 5437, 5441, 5443,
155 5449, 5471, 5477, 5479, 5483, 5501, 5503, 5507,
156 5519, 5521, 5527, 5531, 5557, 5563, 5569, 5573,
157 5581, 5591, 5623, 5639, 5641, 5647, 5651, 5653,
158 5657, 5659, 5669, 5683, 5689, 5693, 5701, 5711,
159 5717, 5737, 5741, 5743, 5749, 5779, 5783, 5791,
160 5801, 5807, 5813, 5821, 5827, 5839, 5843, 5849,
161 5851, 5857, 5861, 5867, 5869, 5879, 5881, 5897,
162 5903, 5923, 5927, 5939, 5953, 5981, 5987, 6007,
163 6011, 6029, 6037, 6043, 6047, 6053, 6067, 6073,
164 6079, 6089, 6091, 6101, 6113, 6121, 6131, 6133,
165 6143, 6151, 6163, 6173, 6197, 6199, 6203, 6211,
166 6217, 6221, 6229, 6247, 6257, 6263, 6269, 6271,
167 6277, 6287, 6299, 6301, 6311, 6317, 6323, 6329,
168 6337, 6343, 6353, 6359, 6361, 6367, 6373, 6379,
169 6389, 6397, 6421, 6427, 6449, 6451, 6469, 6473,
170 6481, 6491, 6521, 6529, 6547, 6551, 6553, 6563,
171 6569, 6571, 6577, 6581, 6599, 6607, 6619, 6637,
172 6653, 6659, 6661, 6673, 6679, 6689, 6691, 6701,
173 6703, 6709, 6719, 6733, 6737, 6761, 6763, 6779,
174 6781, 6791, 6793, 6803, 6823, 6827, 6829, 6833,
175 6841, 6857, 6863, 6869, 6871, 6883, 6899, 6907,
176 6911, 6917, 6947, 6949, 6959, 6961, 6967, 6971,
177 6977, 6983, 6991, 6997, 7001, 7013, 7019, 7027,
178 7039, 7043, 7057, 7069, 7079, 7103, 7109, 7121,
179 7127, 7129, 7151, 7159, 7177, 7187, 7193, 7207,
180 7211, 7213, 7219, 7229, 7237, 7243, 7247, 7253,
181 7283, 7297, 7307, 7309, 7321, 7331, 7333, 7349,
182 7351, 7369, 7393, 7411, 7417, 7433, 7451, 7457,
183 7459, 7477, 7481, 7487, 7489, 7499, 7507, 7517,
184 7523, 7529, 7537, 7541, 7547, 7549, 7559, 7561,
185 7573, 7577, 7583, 7589, 7591, 7603, 7607, 7621,
186 7639, 7643, 7649, 7669, 7673, 7681, 7687, 7691,
187 7699, 7703, 7717, 7723, 7727, 7741, 7753, 7757,
188 7759, 7789, 7793, 7817, 7823, 7829, 7841, 7853,
189 7867, 7873, 7877, 7879, 7883, 7901, 7907, 7919,
190 7927, 7933, 7937, 7949, 7951, 7963, 7993, 8009,
191 8011, 8017, 8039, 8053, 8059, 8069, 8081, 8087,
192 8089, 8093, 8101, 8111, 8117, 8123, 8147, 8161,
193 8167, 8171, 8179, 8191, 8209, 8219, 8221, 8231,
194 8233, 8237, 8243, 8263, 8269, 8273, 8287, 8291,
195 8293, 8297, 8311, 8317, 8329, 8353, 8363, 8369,
196 8377, 8387, 8389, 8419, 8423, 8429, 8431, 8443,
197 8447, 8461, 8467, 8501, 8513, 8521, 8527, 8537,
198 8539, 8543, 8563, 8573, 8581, 8597, 8599, 8609,
199 8623, 8627, 8629, 8641, 8647, 8663, 8669, 8677,
200 8681, 8689, 8693, 8699, 8707, 8713, 8719, 8731,
201 8737, 8741, 8747, 8753, 8761, 8779, 8783, 8803,
202 8807, 8819, 8821, 8831, 8837, 8839, 8849, 8861,
203 8863, 8867, 8887, 8893, 8923, 8929, 8933, 8941,
204 8951, 8963, 8969, 8971, 8999, 9001, 9007, 9011,
205 9013, 9029, 9041, 9043, 9049, 9059, 9067, 9091,
206 9103, 9109, 9127, 9133, 9137, 9151, 9157, 9161,
207 9173, 9181, 9187, 9199, 9203, 9209, 9221, 9227,
208 9239, 9241, 9257, 9277, 9281, 9283, 9293, 9311,
209 9319, 9323, 9337, 9341, 9343, 9349, 9371, 9377,
210 9391, 9397, 9403, 9413, 9419, 9421, 9431, 9433,
211 9437, 9439, 9461, 9463, 9467, 9473, 9479, 9491,
212 9497, 9511, 9521, 9533, 9539, 9547, 9551, 9587,
213 9601, 9613, 9619, 9623, 9629, 9631, 9643, 9649,
214 9661, 9677, 9679, 9689, 9697, 9719, 9721, 9733,
215 9739, 9743, 9749, 9767, 9769, 9781, 9787, 9791,
216 9803, 9811, 9817, 9829, 9833, 9839, 9851, 9857,
217 9859, 9871, 9883, 9887, 9901, 9907, 9923, 9929,
218 9931, 9941, 9949, 9967, 9973, 10007, 10009, 10037,
219 10039, 10061, 10067, 10069, 10079, 10091, 10093, 10099,
220 10103, 10111, 10133, 10139, 10141, 10151, 10159, 10163,
221 10169, 10177, 10181, 10193, 10211, 10223, 10243, 10247,
222 10253, 10259, 10267, 10271, 10273, 10289, 10301, 10303,
223 10313, 10321, 10331, 10333, 10337, 10343, 10357, 10369,
224 10391, 10399, 10427, 10429, 10433, 10453, 10457, 10459,
225 10463, 10477, 10487, 10499, 10501, 10513, 10529, 10531,
226 10559, 10567, 10589, 10597, 10601, 10607, 10613, 10627,
227 10631, 10639, 10651, 10657, 10663, 10667, 10687, 10691,
228 10709, 10711, 10723, 10729, 10733, 10739, 10753, 10771,
229 10781, 10789, 10799, 10831, 10837, 10847, 10853, 10859,
230 10861, 10867, 10883, 10889, 10891, 10903, 10909, 10937,
231 10939, 10949, 10957, 10973, 10979, 10987, 10993, 11003,
232 11027, 11047, 11057, 11059, 11069, 11071, 11083, 11087,
233 11093, 11113, 11117, 11119, 11131, 11149, 11159, 11161,
234 11171, 11173, 11177, 11197, 11213, 11239, 11243, 11251,
235 11257, 11261, 11273, 11279, 11287, 11299, 11311, 11317,
236 11321, 11329, 11351, 11353, 11369, 11383, 11393, 11399,
237 11411, 11423, 11437, 11443, 11447, 11467, 11471, 11483,
238 11489, 11491, 11497, 11503, 11519, 11527, 11549, 11551,
239 11579, 11587, 11593, 11597, 11617, 11621, 11633, 11657,
240 11677, 11681, 11689, 11699, 11701, 11717, 11719, 11731,
241 11743, 11777, 11779, 11783, 11789, 11801, 11807, 11813,
242 11821, 11827, 11831, 11833, 11839, 11863, 11867, 11887,
243 11897, 11903, 11909, 11923, 11927, 11933, 11939, 11941,
244 11953, 11959, 11969, 11971, 11981, 11987, 12007, 12011,
245 12037, 12041, 12043, 12049, 12071, 12073, 12097, 12101,
246 12107, 12109, 12113, 12119, 12143, 12149, 12157, 12161,
247 12163, 12197, 12203, 12211, 12227, 12239, 12241, 12251,
248 12253, 12263, 12269, 12277, 12281, 12289, 12301, 12323,
249 12329, 12343, 12347, 12373, 12377, 12379, 12391, 12401,
250 12409, 12413, 12421, 12433, 12437, 12451, 12457, 12473,
251 12479, 12487, 12491, 12497, 12503, 12511, 12517, 12527,
252 12539, 12541, 12547, 12553, 12569, 12577, 12583, 12589,
253 12601, 12611, 12613, 12619, 12637, 12641, 12647, 12653,
254 12659, 12671, 12689, 12697, 12703, 12713, 12721, 12739,
255 12743, 12757, 12763, 12781, 12791, 12799, 12809, 12821,
256 12823, 12829, 12841, 12853, 12889, 12893, 12899, 12907,
257 12911, 12917, 12919, 12923, 12941, 12953, 12959, 12967,
258 12973, 12979, 12983, 13001, 13003, 13007, 13009, 13033,
259 13037, 13043, 13049, 13063, 13093, 13099, 13103, 13109,
260 13121, 13127, 13147, 13151, 13159, 13163, 13171, 13177,
261 13183, 13187, 13217, 13219, 13229, 13241, 13249, 13259,
262 13267, 13291, 13297, 13309, 13313, 13327, 13331, 13337,
263 13339, 13367, 13381, 13397, 13399, 13411, 13417, 13421,
264 13441, 13451, 13457, 13463, 13469, 13477, 13487, 13499,
265 13513, 13523, 13537, 13553, 13567, 13577, 13591, 13597,
266 13613, 13619, 13627, 13633, 13649, 13669, 13679, 13681,
267 13687, 13691, 13693, 13697, 13709, 13711, 13721, 13723,
268 13729, 13751, 13757, 13759, 13763, 13781, 13789, 13799,
269 13807, 13829, 13831, 13841, 13859, 13873, 13877, 13879,
270 13883, 13901, 13903, 13907, 13913, 13921, 13931, 13933,
271 13963, 13967, 13997, 13999, 14009, 14011, 14029, 14033,
272 14051, 14057, 14071, 14081, 14083, 14087, 14107, 14143,
273 14149, 14153, 14159, 14173, 14177, 14197, 14207, 14221,
274 14243, 14249, 14251, 14281, 14293, 14303, 14321, 14323,
275 14327, 14341, 14347, 14369, 14387, 14389, 14401, 14407,
276 14411, 14419, 14423, 14431, 14437, 14447, 14449, 14461,
277 14479, 14489, 14503, 14519, 14533, 14537, 14543, 14549,
278 14551, 14557, 14561, 14563, 14591, 14593, 14621, 14627,
279 14629, 14633, 14639, 14653, 14657, 14669, 14683, 14699,
280 14713, 14717, 14723, 14731, 14737, 14741, 14747, 14753,
281 14759, 14767, 14771, 14779, 14783, 14797, 14813, 14821,
282 14827, 14831, 14843, 14851, 14867, 14869, 14879, 14887,
283 14891, 14897, 14923, 14929, 14939, 14947, 14951, 14957,
284 14969, 14983, 15013, 15017, 15031, 15053, 15061, 15073,
285 15077, 15083, 15091, 15101, 15107, 15121, 15131, 15137,
286 15139, 15149, 15161, 15173, 15187, 15193, 15199, 15217,
287 15227, 15233, 15241, 15259, 15263, 15269, 15271, 15277,
288 15287, 15289, 15299, 15307, 15313, 15319, 15329, 15331,
289 15349, 15359, 15361, 15373, 15377, 15383, 15391, 15401,
290 15413, 15427, 15439, 15443, 15451, 15461, 15467, 15473,
291 15493, 15497, 15511, 15527, 15541, 15551, 15559, 15569,
292 15581, 15583, 15601, 15607, 15619, 15629, 15641, 15643,
293 15647, 15649, 15661, 15667, 15671, 15679, 15683, 15727,
294 15731, 15733, 15737, 15739, 15749, 15761, 15767, 15773,
295 15787, 15791, 15797, 15803, 15809, 15817, 15823, 15859,
296 15877, 15881, 15887, 15889, 15901, 15907, 15913, 15919,
297 15923, 15937, 15959, 15971, 15973, 15991, 16001, 16007,
298 16033, 16057, 16061, 16063, 16067, 16069, 16073, 16087,
299 16091, 16097, 16103, 16111, 16127, 16139, 16141, 16183,
300 16187, 16189, 16193, 16217, 16223, 16229, 16231, 16249,
301 16253, 16267, 16273, 16301, 16319, 16333, 16339, 16349,
302 16361, 16363, 16369, 16381, 16411, 16417, 16421, 16427,
303 16433, 16447, 16451, 16453, 16477, 16481, 16487, 16493,
304 16519, 16529, 16547, 16553, 16561, 16567, 16573, 16603,
305 16607, 16619, 16631, 16633, 16649, 16651, 16657, 16661,
306 16673, 16691, 16693, 16699, 16703, 16729, 16741, 16747,
307 16759, 16763, 16787, 16811, 16823, 16829, 16831, 16843,
308 16871, 16879, 16883, 16889, 16901, 16903, 16921, 16927,
309 16931, 16937, 16943, 16963, 16979, 16981, 16987, 16993,
310 17011, 17021, 17027, 17029, 17033, 17041, 17047, 17053,
311 17077, 17093, 17099, 17107, 17117, 17123, 17137, 17159,
312 17167, 17183, 17189, 17191, 17203, 17207, 17209, 17231,
313 17239, 17257, 17291, 17293, 17299, 17317, 17321, 17327,
314 17333, 17341, 17351, 17359, 17377, 17383, 17387, 17389,
315 17393, 17401, 17417, 17419, 17431, 17443, 17449, 17467,
316 17471, 17477, 17483, 17489, 17491, 17497, 17509, 17519,
317 17539, 17551, 17569, 17573, 17579, 17581, 17597, 17599,
318 17609, 17623, 17627, 17657, 17659, 17669, 17681, 17683,
319 17707, 17713, 17729, 17737, 17747, 17749, 17761, 17783,
320 17789, 17791, 17807, 17827, 17837, 17839, 17851, 17863,
321};
322 66
323__END_HIDDEN_DECLS 67__END_HIDDEN_DECLS
diff --git a/src/lib/libcrypto/bn/bn_prime.pl b/src/lib/libcrypto/bn/bn_prime.pl
index eb73f0bfa6..bc85909bfb 100644
--- a/src/lib/libcrypto/bn/bn_prime.pl
+++ b/src/lib/libcrypto/bn/bn_prime.pl
@@ -1,4 +1,4 @@
1#!/usr/local/bin/perl 1#!/bin/perl
2# bn_prime.pl 2# bn_prime.pl
3 3
4$num=2048; 4$num=2048;
@@ -26,78 +26,26 @@ loop: while ($#primes < $num-1)
26# * the code are not to be removed. 26# * the code are not to be removed.
27# * See the COPYRIGHT file in the SSLeay distribution for more details. 27# * See the COPYRIGHT file in the SSLeay distribution for more details.
28# */ 28# */
29# 29#
30# EOF 30# EOF
31 31
32printf("/*\t\$" . "OpenBSD" . "\$ */\n");
32print <<\EOF; 33print <<\EOF;
33/* Auto generated by bn_prime.pl */ 34/*
34/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) 35 * Public domain, generated by bn_prime.pl.
35 * All rights reserved.
36 *
37 * This package is an SSL implementation written
38 * by Eric Young (eay@cryptsoft.com).
39 * The implementation was written so as to conform with Netscapes SSL.
40 *
41 * This library is free for commercial and non-commercial use as long as
42 * the following conditions are aheared to. The following conditions
43 * apply to all code found in this distribution, be it the RC4, RSA,
44 * lhash, DES, etc., code; not just the SSL code. The SSL documentation
45 * included with this distribution is covered by the same copyright terms
46 * except that the holder is Tim Hudson (tjh@cryptsoft.com).
47 *
48 * Copyright remains Eric Young's, and as such any Copyright notices in
49 * the code are not to be removed.
50 * If this package is used in a product, Eric Young should be given attribution
51 * as the author of the parts of the library used.
52 * This can be in the form of a textual message at program startup or
53 * in documentation (online or textual) provided with the package.
54 *
55 * Redistribution and use in source and binary forms, with or without
56 * modification, are permitted provided that the following conditions
57 * are met:
58 * 1. Redistributions of source code must retain the copyright
59 * notice, this list of conditions and the following disclaimer.
60 * 2. Redistributions in binary form must reproduce the above copyright
61 * notice, this list of conditions and the following disclaimer in the
62 * documentation and/or other materials provided with the distribution.
63 * 3. All advertising materials mentioning features or use of this software
64 * must display the following acknowledgement:
65 * "This product includes cryptographic software written by
66 * Eric Young (eay@cryptsoft.com)"
67 * The word 'cryptographic' can be left out if the rouines from the library
68 * being used are not cryptographic related :-).
69 * 4. If you include any Windows specific code (or a derivative thereof) from
70 * the apps directory (application code) you must include an acknowledgement:
71 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
72 *
73 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
74 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
75 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
76 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
77 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
78 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
79 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
80 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
81 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
82 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
83 * SUCH DAMAGE.
84 *
85 * The licence and distribution terms for any publically available version or
86 * derivative of this code cannot be changed. i.e. this code cannot simply be
87 * copied and put under another distribution licence
88 * [including the GNU Public Licence.]
89 */ 36 */
90 37
91EOF 38EOF
92 39
93printf "#define NUMPRIMES %d\n",$num; 40print "#include \"bn_prime.h\"\n\n";
94printf "typedef unsigned short prime_t;\n"; 41print "const uint16_t primes[NUMPRIMES] = {";
95print "static const prime_t primes[NUMPRIMES]=\n{\n\t";
96for ($i=0; $i <= $#primes; $i++) 42for ($i=0; $i <= $#primes; $i++)
97 { 43 {
98 printf("\n\t") if (($i%8) == 0) && ($i != 0); 44 if ((($i%8) == 0)) {
99 printf("%4d,",$primes[$i]); 45 printf("\n\t")
46 } else {
47 printf(" ");
48 }
49 printf("%5d,",$primes[$i]);
100 } 50 }
101print "\n};\n"; 51print "\n};\n";
102
103
diff --git a/src/lib/libcrypto/bn/bn_small_primes.c b/src/lib/libcrypto/bn/bn_small_primes.c
new file mode 100644
index 0000000000..bfb7903a54
--- /dev/null
+++ b/src/lib/libcrypto/bn/bn_small_primes.c
@@ -0,0 +1,265 @@
1/* $OpenBSD: bn_small_primes.c,v 1.1 2022/11/09 22:52:51 tb Exp $ */
2/*
3 * Public domain, generated by bn_prime.pl.
4 */
5
6#include "bn_prime.h"
7
8const uint16_t primes[NUMPRIMES] = {
9 2, 3, 5, 7, 11, 13, 17, 19,
10 23, 29, 31, 37, 41, 43, 47, 53,
11 59, 61, 67, 71, 73, 79, 83, 89,
12 97, 101, 103, 107, 109, 113, 127, 131,
13 137, 139, 149, 151, 157, 163, 167, 173,
14 179, 181, 191, 193, 197, 199, 211, 223,
15 227, 229, 233, 239, 241, 251, 257, 263,
16 269, 271, 277, 281, 283, 293, 307, 311,
17 313, 317, 331, 337, 347, 349, 353, 359,
18 367, 373, 379, 383, 389, 397, 401, 409,
19 419, 421, 431, 433, 439, 443, 449, 457,
20 461, 463, 467, 479, 487, 491, 499, 503,
21 509, 521, 523, 541, 547, 557, 563, 569,
22 571, 577, 587, 593, 599, 601, 607, 613,
23 617, 619, 631, 641, 643, 647, 653, 659,
24 661, 673, 677, 683, 691, 701, 709, 719,
25 727, 733, 739, 743, 751, 757, 761, 769,
26 773, 787, 797, 809, 811, 821, 823, 827,
27 829, 839, 853, 857, 859, 863, 877, 881,
28 883, 887, 907, 911, 919, 929, 937, 941,
29 947, 953, 967, 971, 977, 983, 991, 997,
30 1009, 1013, 1019, 1021, 1031, 1033, 1039, 1049,
31 1051, 1061, 1063, 1069, 1087, 1091, 1093, 1097,
32 1103, 1109, 1117, 1123, 1129, 1151, 1153, 1163,
33 1171, 1181, 1187, 1193, 1201, 1213, 1217, 1223,
34 1229, 1231, 1237, 1249, 1259, 1277, 1279, 1283,
35 1289, 1291, 1297, 1301, 1303, 1307, 1319, 1321,
36 1327, 1361, 1367, 1373, 1381, 1399, 1409, 1423,
37 1427, 1429, 1433, 1439, 1447, 1451, 1453, 1459,
38 1471, 1481, 1483, 1487, 1489, 1493, 1499, 1511,
39 1523, 1531, 1543, 1549, 1553, 1559, 1567, 1571,
40 1579, 1583, 1597, 1601, 1607, 1609, 1613, 1619,
41 1621, 1627, 1637, 1657, 1663, 1667, 1669, 1693,
42 1697, 1699, 1709, 1721, 1723, 1733, 1741, 1747,
43 1753, 1759, 1777, 1783, 1787, 1789, 1801, 1811,
44 1823, 1831, 1847, 1861, 1867, 1871, 1873, 1877,
45 1879, 1889, 1901, 1907, 1913, 1931, 1933, 1949,
46 1951, 1973, 1979, 1987, 1993, 1997, 1999, 2003,
47 2011, 2017, 2027, 2029, 2039, 2053, 2063, 2069,
48 2081, 2083, 2087, 2089, 2099, 2111, 2113, 2129,
49 2131, 2137, 2141, 2143, 2153, 2161, 2179, 2203,
50 2207, 2213, 2221, 2237, 2239, 2243, 2251, 2267,
51 2269, 2273, 2281, 2287, 2293, 2297, 2309, 2311,
52 2333, 2339, 2341, 2347, 2351, 2357, 2371, 2377,
53 2381, 2383, 2389, 2393, 2399, 2411, 2417, 2423,
54 2437, 2441, 2447, 2459, 2467, 2473, 2477, 2503,
55 2521, 2531, 2539, 2543, 2549, 2551, 2557, 2579,
56 2591, 2593, 2609, 2617, 2621, 2633, 2647, 2657,
57 2659, 2663, 2671, 2677, 2683, 2687, 2689, 2693,
58 2699, 2707, 2711, 2713, 2719, 2729, 2731, 2741,
59 2749, 2753, 2767, 2777, 2789, 2791, 2797, 2801,
60 2803, 2819, 2833, 2837, 2843, 2851, 2857, 2861,
61 2879, 2887, 2897, 2903, 2909, 2917, 2927, 2939,
62 2953, 2957, 2963, 2969, 2971, 2999, 3001, 3011,
63 3019, 3023, 3037, 3041, 3049, 3061, 3067, 3079,
64 3083, 3089, 3109, 3119, 3121, 3137, 3163, 3167,
65 3169, 3181, 3187, 3191, 3203, 3209, 3217, 3221,
66 3229, 3251, 3253, 3257, 3259, 3271, 3299, 3301,
67 3307, 3313, 3319, 3323, 3329, 3331, 3343, 3347,
68 3359, 3361, 3371, 3373, 3389, 3391, 3407, 3413,
69 3433, 3449, 3457, 3461, 3463, 3467, 3469, 3491,
70 3499, 3511, 3517, 3527, 3529, 3533, 3539, 3541,
71 3547, 3557, 3559, 3571, 3581, 3583, 3593, 3607,
72 3613, 3617, 3623, 3631, 3637, 3643, 3659, 3671,
73 3673, 3677, 3691, 3697, 3701, 3709, 3719, 3727,
74 3733, 3739, 3761, 3767, 3769, 3779, 3793, 3797,
75 3803, 3821, 3823, 3833, 3847, 3851, 3853, 3863,
76 3877, 3881, 3889, 3907, 3911, 3917, 3919, 3923,
77 3929, 3931, 3943, 3947, 3967, 3989, 4001, 4003,
78 4007, 4013, 4019, 4021, 4027, 4049, 4051, 4057,
79 4073, 4079, 4091, 4093, 4099, 4111, 4127, 4129,
80 4133, 4139, 4153, 4157, 4159, 4177, 4201, 4211,
81 4217, 4219, 4229, 4231, 4241, 4243, 4253, 4259,
82 4261, 4271, 4273, 4283, 4289, 4297, 4327, 4337,
83 4339, 4349, 4357, 4363, 4373, 4391, 4397, 4409,
84 4421, 4423, 4441, 4447, 4451, 4457, 4463, 4481,
85 4483, 4493, 4507, 4513, 4517, 4519, 4523, 4547,
86 4549, 4561, 4567, 4583, 4591, 4597, 4603, 4621,
87 4637, 4639, 4643, 4649, 4651, 4657, 4663, 4673,
88 4679, 4691, 4703, 4721, 4723, 4729, 4733, 4751,
89 4759, 4783, 4787, 4789, 4793, 4799, 4801, 4813,
90 4817, 4831, 4861, 4871, 4877, 4889, 4903, 4909,
91 4919, 4931, 4933, 4937, 4943, 4951, 4957, 4967,
92 4969, 4973, 4987, 4993, 4999, 5003, 5009, 5011,
93 5021, 5023, 5039, 5051, 5059, 5077, 5081, 5087,
94 5099, 5101, 5107, 5113, 5119, 5147, 5153, 5167,
95 5171, 5179, 5189, 5197, 5209, 5227, 5231, 5233,
96 5237, 5261, 5273, 5279, 5281, 5297, 5303, 5309,
97 5323, 5333, 5347, 5351, 5381, 5387, 5393, 5399,
98 5407, 5413, 5417, 5419, 5431, 5437, 5441, 5443,
99 5449, 5471, 5477, 5479, 5483, 5501, 5503, 5507,
100 5519, 5521, 5527, 5531, 5557, 5563, 5569, 5573,
101 5581, 5591, 5623, 5639, 5641, 5647, 5651, 5653,
102 5657, 5659, 5669, 5683, 5689, 5693, 5701, 5711,
103 5717, 5737, 5741, 5743, 5749, 5779, 5783, 5791,
104 5801, 5807, 5813, 5821, 5827, 5839, 5843, 5849,
105 5851, 5857, 5861, 5867, 5869, 5879, 5881, 5897,
106 5903, 5923, 5927, 5939, 5953, 5981, 5987, 6007,
107 6011, 6029, 6037, 6043, 6047, 6053, 6067, 6073,
108 6079, 6089, 6091, 6101, 6113, 6121, 6131, 6133,
109 6143, 6151, 6163, 6173, 6197, 6199, 6203, 6211,
110 6217, 6221, 6229, 6247, 6257, 6263, 6269, 6271,
111 6277, 6287, 6299, 6301, 6311, 6317, 6323, 6329,
112 6337, 6343, 6353, 6359, 6361, 6367, 6373, 6379,
113 6389, 6397, 6421, 6427, 6449, 6451, 6469, 6473,
114 6481, 6491, 6521, 6529, 6547, 6551, 6553, 6563,
115 6569, 6571, 6577, 6581, 6599, 6607, 6619, 6637,
116 6653, 6659, 6661, 6673, 6679, 6689, 6691, 6701,
117 6703, 6709, 6719, 6733, 6737, 6761, 6763, 6779,
118 6781, 6791, 6793, 6803, 6823, 6827, 6829, 6833,
119 6841, 6857, 6863, 6869, 6871, 6883, 6899, 6907,
120 6911, 6917, 6947, 6949, 6959, 6961, 6967, 6971,
121 6977, 6983, 6991, 6997, 7001, 7013, 7019, 7027,
122 7039, 7043, 7057, 7069, 7079, 7103, 7109, 7121,
123 7127, 7129, 7151, 7159, 7177, 7187, 7193, 7207,
124 7211, 7213, 7219, 7229, 7237, 7243, 7247, 7253,
125 7283, 7297, 7307, 7309, 7321, 7331, 7333, 7349,
126 7351, 7369, 7393, 7411, 7417, 7433, 7451, 7457,
127 7459, 7477, 7481, 7487, 7489, 7499, 7507, 7517,
128 7523, 7529, 7537, 7541, 7547, 7549, 7559, 7561,
129 7573, 7577, 7583, 7589, 7591, 7603, 7607, 7621,
130 7639, 7643, 7649, 7669, 7673, 7681, 7687, 7691,
131 7699, 7703, 7717, 7723, 7727, 7741, 7753, 7757,
132 7759, 7789, 7793, 7817, 7823, 7829, 7841, 7853,
133 7867, 7873, 7877, 7879, 7883, 7901, 7907, 7919,
134 7927, 7933, 7937, 7949, 7951, 7963, 7993, 8009,
135 8011, 8017, 8039, 8053, 8059, 8069, 8081, 8087,
136 8089, 8093, 8101, 8111, 8117, 8123, 8147, 8161,
137 8167, 8171, 8179, 8191, 8209, 8219, 8221, 8231,
138 8233, 8237, 8243, 8263, 8269, 8273, 8287, 8291,
139 8293, 8297, 8311, 8317, 8329, 8353, 8363, 8369,
140 8377, 8387, 8389, 8419, 8423, 8429, 8431, 8443,
141 8447, 8461, 8467, 8501, 8513, 8521, 8527, 8537,
142 8539, 8543, 8563, 8573, 8581, 8597, 8599, 8609,
143 8623, 8627, 8629, 8641, 8647, 8663, 8669, 8677,
144 8681, 8689, 8693, 8699, 8707, 8713, 8719, 8731,
145 8737, 8741, 8747, 8753, 8761, 8779, 8783, 8803,
146 8807, 8819, 8821, 8831, 8837, 8839, 8849, 8861,
147 8863, 8867, 8887, 8893, 8923, 8929, 8933, 8941,
148 8951, 8963, 8969, 8971, 8999, 9001, 9007, 9011,
149 9013, 9029, 9041, 9043, 9049, 9059, 9067, 9091,
150 9103, 9109, 9127, 9133, 9137, 9151, 9157, 9161,
151 9173, 9181, 9187, 9199, 9203, 9209, 9221, 9227,
152 9239, 9241, 9257, 9277, 9281, 9283, 9293, 9311,
153 9319, 9323, 9337, 9341, 9343, 9349, 9371, 9377,
154 9391, 9397, 9403, 9413, 9419, 9421, 9431, 9433,
155 9437, 9439, 9461, 9463, 9467, 9473, 9479, 9491,
156 9497, 9511, 9521, 9533, 9539, 9547, 9551, 9587,
157 9601, 9613, 9619, 9623, 9629, 9631, 9643, 9649,
158 9661, 9677, 9679, 9689, 9697, 9719, 9721, 9733,
159 9739, 9743, 9749, 9767, 9769, 9781, 9787, 9791,
160 9803, 9811, 9817, 9829, 9833, 9839, 9851, 9857,
161 9859, 9871, 9883, 9887, 9901, 9907, 9923, 9929,
162 9931, 9941, 9949, 9967, 9973, 10007, 10009, 10037,
163 10039, 10061, 10067, 10069, 10079, 10091, 10093, 10099,
164 10103, 10111, 10133, 10139, 10141, 10151, 10159, 10163,
165 10169, 10177, 10181, 10193, 10211, 10223, 10243, 10247,
166 10253, 10259, 10267, 10271, 10273, 10289, 10301, 10303,
167 10313, 10321, 10331, 10333, 10337, 10343, 10357, 10369,
168 10391, 10399, 10427, 10429, 10433, 10453, 10457, 10459,
169 10463, 10477, 10487, 10499, 10501, 10513, 10529, 10531,
170 10559, 10567, 10589, 10597, 10601, 10607, 10613, 10627,
171 10631, 10639, 10651, 10657, 10663, 10667, 10687, 10691,
172 10709, 10711, 10723, 10729, 10733, 10739, 10753, 10771,
173 10781, 10789, 10799, 10831, 10837, 10847, 10853, 10859,
174 10861, 10867, 10883, 10889, 10891, 10903, 10909, 10937,
175 10939, 10949, 10957, 10973, 10979, 10987, 10993, 11003,
176 11027, 11047, 11057, 11059, 11069, 11071, 11083, 11087,
177 11093, 11113, 11117, 11119, 11131, 11149, 11159, 11161,
178 11171, 11173, 11177, 11197, 11213, 11239, 11243, 11251,
179 11257, 11261, 11273, 11279, 11287, 11299, 11311, 11317,
180 11321, 11329, 11351, 11353, 11369, 11383, 11393, 11399,
181 11411, 11423, 11437, 11443, 11447, 11467, 11471, 11483,
182 11489, 11491, 11497, 11503, 11519, 11527, 11549, 11551,
183 11579, 11587, 11593, 11597, 11617, 11621, 11633, 11657,
184 11677, 11681, 11689, 11699, 11701, 11717, 11719, 11731,
185 11743, 11777, 11779, 11783, 11789, 11801, 11807, 11813,
186 11821, 11827, 11831, 11833, 11839, 11863, 11867, 11887,
187 11897, 11903, 11909, 11923, 11927, 11933, 11939, 11941,
188 11953, 11959, 11969, 11971, 11981, 11987, 12007, 12011,
189 12037, 12041, 12043, 12049, 12071, 12073, 12097, 12101,
190 12107, 12109, 12113, 12119, 12143, 12149, 12157, 12161,
191 12163, 12197, 12203, 12211, 12227, 12239, 12241, 12251,
192 12253, 12263, 12269, 12277, 12281, 12289, 12301, 12323,
193 12329, 12343, 12347, 12373, 12377, 12379, 12391, 12401,
194 12409, 12413, 12421, 12433, 12437, 12451, 12457, 12473,
195 12479, 12487, 12491, 12497, 12503, 12511, 12517, 12527,
196 12539, 12541, 12547, 12553, 12569, 12577, 12583, 12589,
197 12601, 12611, 12613, 12619, 12637, 12641, 12647, 12653,
198 12659, 12671, 12689, 12697, 12703, 12713, 12721, 12739,
199 12743, 12757, 12763, 12781, 12791, 12799, 12809, 12821,
200 12823, 12829, 12841, 12853, 12889, 12893, 12899, 12907,
201 12911, 12917, 12919, 12923, 12941, 12953, 12959, 12967,
202 12973, 12979, 12983, 13001, 13003, 13007, 13009, 13033,
203 13037, 13043, 13049, 13063, 13093, 13099, 13103, 13109,
204 13121, 13127, 13147, 13151, 13159, 13163, 13171, 13177,
205 13183, 13187, 13217, 13219, 13229, 13241, 13249, 13259,
206 13267, 13291, 13297, 13309, 13313, 13327, 13331, 13337,
207 13339, 13367, 13381, 13397, 13399, 13411, 13417, 13421,
208 13441, 13451, 13457, 13463, 13469, 13477, 13487, 13499,
209 13513, 13523, 13537, 13553, 13567, 13577, 13591, 13597,
210 13613, 13619, 13627, 13633, 13649, 13669, 13679, 13681,
211 13687, 13691, 13693, 13697, 13709, 13711, 13721, 13723,
212 13729, 13751, 13757, 13759, 13763, 13781, 13789, 13799,
213 13807, 13829, 13831, 13841, 13859, 13873, 13877, 13879,
214 13883, 13901, 13903, 13907, 13913, 13921, 13931, 13933,
215 13963, 13967, 13997, 13999, 14009, 14011, 14029, 14033,
216 14051, 14057, 14071, 14081, 14083, 14087, 14107, 14143,
217 14149, 14153, 14159, 14173, 14177, 14197, 14207, 14221,
218 14243, 14249, 14251, 14281, 14293, 14303, 14321, 14323,
219 14327, 14341, 14347, 14369, 14387, 14389, 14401, 14407,
220 14411, 14419, 14423, 14431, 14437, 14447, 14449, 14461,
221 14479, 14489, 14503, 14519, 14533, 14537, 14543, 14549,
222 14551, 14557, 14561, 14563, 14591, 14593, 14621, 14627,
223 14629, 14633, 14639, 14653, 14657, 14669, 14683, 14699,
224 14713, 14717, 14723, 14731, 14737, 14741, 14747, 14753,
225 14759, 14767, 14771, 14779, 14783, 14797, 14813, 14821,
226 14827, 14831, 14843, 14851, 14867, 14869, 14879, 14887,
227 14891, 14897, 14923, 14929, 14939, 14947, 14951, 14957,
228 14969, 14983, 15013, 15017, 15031, 15053, 15061, 15073,
229 15077, 15083, 15091, 15101, 15107, 15121, 15131, 15137,
230 15139, 15149, 15161, 15173, 15187, 15193, 15199, 15217,
231 15227, 15233, 15241, 15259, 15263, 15269, 15271, 15277,
232 15287, 15289, 15299, 15307, 15313, 15319, 15329, 15331,
233 15349, 15359, 15361, 15373, 15377, 15383, 15391, 15401,
234 15413, 15427, 15439, 15443, 15451, 15461, 15467, 15473,
235 15493, 15497, 15511, 15527, 15541, 15551, 15559, 15569,
236 15581, 15583, 15601, 15607, 15619, 15629, 15641, 15643,
237 15647, 15649, 15661, 15667, 15671, 15679, 15683, 15727,
238 15731, 15733, 15737, 15739, 15749, 15761, 15767, 15773,
239 15787, 15791, 15797, 15803, 15809, 15817, 15823, 15859,
240 15877, 15881, 15887, 15889, 15901, 15907, 15913, 15919,
241 15923, 15937, 15959, 15971, 15973, 15991, 16001, 16007,
242 16033, 16057, 16061, 16063, 16067, 16069, 16073, 16087,
243 16091, 16097, 16103, 16111, 16127, 16139, 16141, 16183,
244 16187, 16189, 16193, 16217, 16223, 16229, 16231, 16249,
245 16253, 16267, 16273, 16301, 16319, 16333, 16339, 16349,
246 16361, 16363, 16369, 16381, 16411, 16417, 16421, 16427,
247 16433, 16447, 16451, 16453, 16477, 16481, 16487, 16493,
248 16519, 16529, 16547, 16553, 16561, 16567, 16573, 16603,
249 16607, 16619, 16631, 16633, 16649, 16651, 16657, 16661,
250 16673, 16691, 16693, 16699, 16703, 16729, 16741, 16747,
251 16759, 16763, 16787, 16811, 16823, 16829, 16831, 16843,
252 16871, 16879, 16883, 16889, 16901, 16903, 16921, 16927,
253 16931, 16937, 16943, 16963, 16979, 16981, 16987, 16993,
254 17011, 17021, 17027, 17029, 17033, 17041, 17047, 17053,
255 17077, 17093, 17099, 17107, 17117, 17123, 17137, 17159,
256 17167, 17183, 17189, 17191, 17203, 17207, 17209, 17231,
257 17239, 17257, 17291, 17293, 17299, 17317, 17321, 17327,
258 17333, 17341, 17351, 17359, 17377, 17383, 17387, 17389,
259 17393, 17401, 17417, 17419, 17431, 17443, 17449, 17467,
260 17471, 17477, 17483, 17489, 17491, 17497, 17509, 17519,
261 17539, 17551, 17569, 17573, 17579, 17581, 17597, 17599,
262 17609, 17623, 17627, 17657, 17659, 17669, 17681, 17683,
263 17707, 17713, 17729, 17737, 17747, 17749, 17761, 17783,
264 17789, 17791, 17807, 17827, 17837, 17839, 17851, 17863,
265};