Merge commit 'dfc115332c94a2f62058ac7f2bce7631fbd20b3d'
[unleashed/tickless.git] / lib / libcrypto / bn / bn_prime.h
blobd5199008f98b117b2796aac77d115cd895c75835
1 /* $OpenBSD: bn_prime.h,v 1.7 2016/12/21 15:49:29 jsing Exp $ */
2 /* Auto generated by bn_prime.pl */
3 /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
4 * All rights reserved.
6 * This package is an SSL implementation written
7 * by Eric Young (eay@cryptsoft.com).
8 * The implementation was written so as to conform with Netscapes SSL.
10 * This library is free for commercial and non-commercial use as long as
11 * the following conditions are aheared to. The following conditions
12 * apply to all code found in this distribution, be it the RC4, RSA,
13 * lhash, DES, etc., code; not just the SSL code. The SSL documentation
14 * included with this distribution is covered by the same copyright terms
15 * except that the holder is Tim Hudson (tjh@cryptsoft.com).
17 * Copyright remains Eric Young's, and as such any Copyright notices in
18 * the code are not to be removed.
19 * If this package is used in a product, Eric Young should be given attribution
20 * as the author of the parts of the library used.
21 * This can be in the form of a textual message at program startup or
22 * in documentation (online or textual) provided with the package.
24 * Redistribution and use in source and binary forms, with or without
25 * modification, are permitted provided that the following conditions
26 * are met:
27 * 1. Redistributions of source code must retain the copyright
28 * notice, this list of conditions and the following disclaimer.
29 * 2. Redistributions in binary form must reproduce the above copyright
30 * notice, this list of conditions and the following disclaimer in the
31 * documentation and/or other materials provided with the distribution.
32 * 3. All advertising materials mentioning features or use of this software
33 * must display the following acknowledgement:
34 * "This product includes cryptographic software written by
35 * Eric Young (eay@cryptsoft.com)"
36 * The word 'cryptographic' can be left out if the rouines from the library
37 * being used are not cryptographic related :-).
38 * 4. If you include any Windows specific code (or a derivative thereof) from
39 * the apps directory (application code) you must include an acknowledgement:
40 * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
42 * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND
43 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
44 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
45 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
46 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
47 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
48 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
49 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
50 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
51 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
52 * SUCH DAMAGE.
54 * The licence and distribution terms for any publically available version or
55 * derivative of this code cannot be changed. i.e. this code cannot simply be
56 * copied and put under another distribution licence
57 * [including the GNU Public Licence.]
60 __BEGIN_HIDDEN_DECLS
62 #define NUMPRIMES 2048
63 typedef unsigned short prime_t;
64 static const prime_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,
323 __END_HIDDEN_DECLS