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