Crypto++  8.8
Free C++ class library of cryptographic schemes
bfinit.cpp
1 #include "pch.h"
2 #include "blowfish.h"
3 
4 NAMESPACE_BEGIN(CryptoPP)
5 
6 const word32 Blowfish::Base::p_init[Blowfish::ROUNDS+2] =
7 {
8  608135816U, 2242054355U, 320440878U, 57701188U,
9  2752067618U, 698298832U, 137296536U, 3964562569U,
10  1160258022U, 953160567U, 3193202383U, 887688300U,
11  3232508343U, 3380367581U, 1065670069U, 3041331479U,
12  2450970073U, 2306472731U
13 } ;
14 
15 const word32 Blowfish::Base::s_init[4*256] = {
16  3509652390U, 2564797868U, 805139163U, 3491422135U,
17  3101798381U, 1780907670U, 3128725573U, 4046225305U,
18  614570311U, 3012652279U, 134345442U, 2240740374U,
19  1667834072U, 1901547113U, 2757295779U, 4103290238U,
20  227898511U, 1921955416U, 1904987480U, 2182433518U,
21  2069144605U, 3260701109U, 2620446009U, 720527379U,
22  3318853667U, 677414384U, 3393288472U, 3101374703U,
23  2390351024U, 1614419982U, 1822297739U, 2954791486U,
24  3608508353U, 3174124327U, 2024746970U, 1432378464U,
25  3864339955U, 2857741204U, 1464375394U, 1676153920U,
26  1439316330U, 715854006U, 3033291828U, 289532110U,
27  2706671279U, 2087905683U, 3018724369U, 1668267050U,
28  732546397U, 1947742710U, 3462151702U, 2609353502U,
29  2950085171U, 1814351708U, 2050118529U, 680887927U,
30  999245976U, 1800124847U, 3300911131U, 1713906067U,
31  1641548236U, 4213287313U, 1216130144U, 1575780402U,
32  4018429277U, 3917837745U, 3693486850U, 3949271944U,
33  596196993U, 3549867205U, 258830323U, 2213823033U,
34  772490370U, 2760122372U, 1774776394U, 2652871518U,
35  566650946U, 4142492826U, 1728879713U, 2882767088U,
36  1783734482U, 3629395816U, 2517608232U, 2874225571U,
37  1861159788U, 326777828U, 3124490320U, 2130389656U,
38  2716951837U, 967770486U, 1724537150U, 2185432712U,
39  2364442137U, 1164943284U, 2105845187U, 998989502U,
40  3765401048U, 2244026483U, 1075463327U, 1455516326U,
41  1322494562U, 910128902U, 469688178U, 1117454909U,
42  936433444U, 3490320968U, 3675253459U, 1240580251U,
43  122909385U, 2157517691U, 634681816U, 4142456567U,
44  3825094682U, 3061402683U, 2540495037U, 79693498U,
45  3249098678U, 1084186820U, 1583128258U, 426386531U,
46  1761308591U, 1047286709U, 322548459U, 995290223U,
47  1845252383U, 2603652396U, 3431023940U, 2942221577U,
48  3202600964U, 3727903485U, 1712269319U, 422464435U,
49  3234572375U, 1170764815U, 3523960633U, 3117677531U,
50  1434042557U, 442511882U, 3600875718U, 1076654713U,
51  1738483198U, 4213154764U, 2393238008U, 3677496056U,
52  1014306527U, 4251020053U, 793779912U, 2902807211U,
53  842905082U, 4246964064U, 1395751752U, 1040244610U,
54  2656851899U, 3396308128U, 445077038U, 3742853595U,
55  3577915638U, 679411651U, 2892444358U, 2354009459U,
56  1767581616U, 3150600392U, 3791627101U, 3102740896U,
57  284835224U, 4246832056U, 1258075500U, 768725851U,
58  2589189241U, 3069724005U, 3532540348U, 1274779536U,
59  3789419226U, 2764799539U, 1660621633U, 3471099624U,
60  4011903706U, 913787905U, 3497959166U, 737222580U,
61  2514213453U, 2928710040U, 3937242737U, 1804850592U,
62  3499020752U, 2949064160U, 2386320175U, 2390070455U,
63  2415321851U, 4061277028U, 2290661394U, 2416832540U,
64  1336762016U, 1754252060U, 3520065937U, 3014181293U,
65  791618072U, 3188594551U, 3933548030U, 2332172193U,
66  3852520463U, 3043980520U, 413987798U, 3465142937U,
67  3030929376U, 4245938359U, 2093235073U, 3534596313U,
68  375366246U, 2157278981U, 2479649556U, 555357303U,
69  3870105701U, 2008414854U, 3344188149U, 4221384143U,
70  3956125452U, 2067696032U, 3594591187U, 2921233993U,
71  2428461U, 544322398U, 577241275U, 1471733935U,
72  610547355U, 4027169054U, 1432588573U, 1507829418U,
73  2025931657U, 3646575487U, 545086370U, 48609733U,
74  2200306550U, 1653985193U, 298326376U, 1316178497U,
75  3007786442U, 2064951626U, 458293330U, 2589141269U,
76  3591329599U, 3164325604U, 727753846U, 2179363840U,
77  146436021U, 1461446943U, 4069977195U, 705550613U,
78  3059967265U, 3887724982U, 4281599278U, 3313849956U,
79  1404054877U, 2845806497U, 146425753U, 1854211946U,
80 
81  1266315497U, 3048417604U, 3681880366U, 3289982499U,
82  2909710000U, 1235738493U, 2632868024U, 2414719590U,
83  3970600049U, 1771706367U, 1449415276U, 3266420449U,
84  422970021U, 1963543593U, 2690192192U, 3826793022U,
85  1062508698U, 1531092325U, 1804592342U, 2583117782U,
86  2714934279U, 4024971509U, 1294809318U, 4028980673U,
87  1289560198U, 2221992742U, 1669523910U, 35572830U,
88  157838143U, 1052438473U, 1016535060U, 1802137761U,
89  1753167236U, 1386275462U, 3080475397U, 2857371447U,
90  1040679964U, 2145300060U, 2390574316U, 1461121720U,
91  2956646967U, 4031777805U, 4028374788U, 33600511U,
92  2920084762U, 1018524850U, 629373528U, 3691585981U,
93  3515945977U, 2091462646U, 2486323059U, 586499841U,
94  988145025U, 935516892U, 3367335476U, 2599673255U,
95  2839830854U, 265290510U, 3972581182U, 2759138881U,
96  3795373465U, 1005194799U, 847297441U, 406762289U,
97  1314163512U, 1332590856U, 1866599683U, 4127851711U,
98  750260880U, 613907577U, 1450815602U, 3165620655U,
99  3734664991U, 3650291728U, 3012275730U, 3704569646U,
100  1427272223U, 778793252U, 1343938022U, 2676280711U,
101  2052605720U, 1946737175U, 3164576444U, 3914038668U,
102  3967478842U, 3682934266U, 1661551462U, 3294938066U,
103  4011595847U, 840292616U, 3712170807U, 616741398U,
104  312560963U, 711312465U, 1351876610U, 322626781U,
105  1910503582U, 271666773U, 2175563734U, 1594956187U,
106  70604529U, 3617834859U, 1007753275U, 1495573769U,
107  4069517037U, 2549218298U, 2663038764U, 504708206U,
108  2263041392U, 3941167025U, 2249088522U, 1514023603U,
109  1998579484U, 1312622330U, 694541497U, 2582060303U,
110  2151582166U, 1382467621U, 776784248U, 2618340202U,
111  3323268794U, 2497899128U, 2784771155U, 503983604U,
112  4076293799U, 907881277U, 423175695U, 432175456U,
113  1378068232U, 4145222326U, 3954048622U, 3938656102U,
114  3820766613U, 2793130115U, 2977904593U, 26017576U,
115  3274890735U, 3194772133U, 1700274565U, 1756076034U,
116  4006520079U, 3677328699U, 720338349U, 1533947780U,
117  354530856U, 688349552U, 3973924725U, 1637815568U,
118  332179504U, 3949051286U, 53804574U, 2852348879U,
119  3044236432U, 1282449977U, 3583942155U, 3416972820U,
120  4006381244U, 1617046695U, 2628476075U, 3002303598U,
121  1686838959U, 431878346U, 2686675385U, 1700445008U,
122  1080580658U, 1009431731U, 832498133U, 3223435511U,
123  2605976345U, 2271191193U, 2516031870U, 1648197032U,
124  4164389018U, 2548247927U, 300782431U, 375919233U,
125  238389289U, 3353747414U, 2531188641U, 2019080857U,
126  1475708069U, 455242339U, 2609103871U, 448939670U,
127  3451063019U, 1395535956U, 2413381860U, 1841049896U,
128  1491858159U, 885456874U, 4264095073U, 4001119347U,
129  1565136089U, 3898914787U, 1108368660U, 540939232U,
130  1173283510U, 2745871338U, 3681308437U, 4207628240U,
131  3343053890U, 4016749493U, 1699691293U, 1103962373U,
132  3625875870U, 2256883143U, 3830138730U, 1031889488U,
133  3479347698U, 1535977030U, 4236805024U, 3251091107U,
134  2132092099U, 1774941330U, 1199868427U, 1452454533U,
135  157007616U, 2904115357U, 342012276U, 595725824U,
136  1480756522U, 206960106U, 497939518U, 591360097U,
137  863170706U, 2375253569U, 3596610801U, 1814182875U,
138  2094937945U, 3421402208U, 1082520231U, 3463918190U,
139  2785509508U, 435703966U, 3908032597U, 1641649973U,
140  2842273706U, 3305899714U, 1510255612U, 2148256476U,
141  2655287854U, 3276092548U, 4258621189U, 236887753U,
142  3681803219U, 274041037U, 1734335097U, 3815195456U,
143  3317970021U, 1899903192U, 1026095262U, 4050517792U,
144  356393447U, 2410691914U, 3873677099U, 3682840055U,
145 
146  3913112168U, 2491498743U, 4132185628U, 2489919796U,
147  1091903735U, 1979897079U, 3170134830U, 3567386728U,
148  3557303409U, 857797738U, 1136121015U, 1342202287U,
149  507115054U, 2535736646U, 337727348U, 3213592640U,
150  1301675037U, 2528481711U, 1895095763U, 1721773893U,
151  3216771564U, 62756741U, 2142006736U, 835421444U,
152  2531993523U, 1442658625U, 3659876326U, 2882144922U,
153  676362277U, 1392781812U, 170690266U, 3921047035U,
154  1759253602U, 3611846912U, 1745797284U, 664899054U,
155  1329594018U, 3901205900U, 3045908486U, 2062866102U,
156  2865634940U, 3543621612U, 3464012697U, 1080764994U,
157  553557557U, 3656615353U, 3996768171U, 991055499U,
158  499776247U, 1265440854U, 648242737U, 3940784050U,
159  980351604U, 3713745714U, 1749149687U, 3396870395U,
160  4211799374U, 3640570775U, 1161844396U, 3125318951U,
161  1431517754U, 545492359U, 4268468663U, 3499529547U,
162  1437099964U, 2702547544U, 3433638243U, 2581715763U,
163  2787789398U, 1060185593U, 1593081372U, 2418618748U,
164  4260947970U, 69676912U, 2159744348U, 86519011U,
165  2512459080U, 3838209314U, 1220612927U, 3339683548U,
166  133810670U, 1090789135U, 1078426020U, 1569222167U,
167  845107691U, 3583754449U, 4072456591U, 1091646820U,
168  628848692U, 1613405280U, 3757631651U, 526609435U,
169  236106946U, 48312990U, 2942717905U, 3402727701U,
170  1797494240U, 859738849U, 992217954U, 4005476642U,
171  2243076622U, 3870952857U, 3732016268U, 765654824U,
172  3490871365U, 2511836413U, 1685915746U, 3888969200U,
173  1414112111U, 2273134842U, 3281911079U, 4080962846U,
174  172450625U, 2569994100U, 980381355U, 4109958455U,
175  2819808352U, 2716589560U, 2568741196U, 3681446669U,
176  3329971472U, 1835478071U, 660984891U, 3704678404U,
177  4045999559U, 3422617507U, 3040415634U, 1762651403U,
178  1719377915U, 3470491036U, 2693910283U, 3642056355U,
179  3138596744U, 1364962596U, 2073328063U, 1983633131U,
180  926494387U, 3423689081U, 2150032023U, 4096667949U,
181  1749200295U, 3328846651U, 309677260U, 2016342300U,
182  1779581495U, 3079819751U, 111262694U, 1274766160U,
183  443224088U, 298511866U, 1025883608U, 3806446537U,
184  1145181785U, 168956806U, 3641502830U, 3584813610U,
185  1689216846U, 3666258015U, 3200248200U, 1692713982U,
186  2646376535U, 4042768518U, 1618508792U, 1610833997U,
187  3523052358U, 4130873264U, 2001055236U, 3610705100U,
188  2202168115U, 4028541809U, 2961195399U, 1006657119U,
189  2006996926U, 3186142756U, 1430667929U, 3210227297U,
190  1314452623U, 4074634658U, 4101304120U, 2273951170U,
191  1399257539U, 3367210612U, 3027628629U, 1190975929U,
192  2062231137U, 2333990788U, 2221543033U, 2438960610U,
193  1181637006U, 548689776U, 2362791313U, 3372408396U,
194  3104550113U, 3145860560U, 296247880U, 1970579870U,
195  3078560182U, 3769228297U, 1714227617U, 3291629107U,
196  3898220290U, 166772364U, 1251581989U, 493813264U,
197  448347421U, 195405023U, 2709975567U, 677966185U,
198  3703036547U, 1463355134U, 2715995803U, 1338867538U,
199  1343315457U, 2802222074U, 2684532164U, 233230375U,
200  2599980071U, 2000651841U, 3277868038U, 1638401717U,
201  4028070440U, 3237316320U, 6314154U, 819756386U,
202  300326615U, 590932579U, 1405279636U, 3267499572U,
203  3150704214U, 2428286686U, 3959192993U, 3461946742U,
204  1862657033U, 1266418056U, 963775037U, 2089974820U,
205  2263052895U, 1917689273U, 448879540U, 3550394620U,
206  3981727096U, 150775221U, 3627908307U, 1303187396U,
207  508620638U, 2975983352U, 2726630617U, 1817252668U,
208  1876281319U, 1457606340U, 908771278U, 3720792119U,
209  3617206836U, 2455994898U, 1729034894U, 1080033504U,
210 
211  976866871U, 3556439503U, 2881648439U, 1522871579U,
212  1555064734U, 1336096578U, 3548522304U, 2579274686U,
213  3574697629U, 3205460757U, 3593280638U, 3338716283U,
214  3079412587U, 564236357U, 2993598910U, 1781952180U,
215  1464380207U, 3163844217U, 3332601554U, 1699332808U,
216  1393555694U, 1183702653U, 3581086237U, 1288719814U,
217  691649499U, 2847557200U, 2895455976U, 3193889540U,
218  2717570544U, 1781354906U, 1676643554U, 2592534050U,
219  3230253752U, 1126444790U, 2770207658U, 2633158820U,
220  2210423226U, 2615765581U, 2414155088U, 3127139286U,
221  673620729U, 2805611233U, 1269405062U, 4015350505U,
222  3341807571U, 4149409754U, 1057255273U, 2012875353U,
223  2162469141U, 2276492801U, 2601117357U, 993977747U,
224  3918593370U, 2654263191U, 753973209U, 36408145U,
225  2530585658U, 25011837U, 3520020182U, 2088578344U,
226  530523599U, 2918365339U, 1524020338U, 1518925132U,
227  3760827505U, 3759777254U, 1202760957U, 3985898139U,
228  3906192525U, 674977740U, 4174734889U, 2031300136U,
229  2019492241U, 3983892565U, 4153806404U, 3822280332U,
230  352677332U, 2297720250U, 60907813U, 90501309U,
231  3286998549U, 1016092578U, 2535922412U, 2839152426U,
232  457141659U, 509813237U, 4120667899U, 652014361U,
233  1966332200U, 2975202805U, 55981186U, 2327461051U,
234  676427537U, 3255491064U, 2882294119U, 3433927263U,
235  1307055953U, 942726286U, 933058658U, 2468411793U,
236  3933900994U, 4215176142U, 1361170020U, 2001714738U,
237  2830558078U, 3274259782U, 1222529897U, 1679025792U,
238  2729314320U, 3714953764U, 1770335741U, 151462246U,
239  3013232138U, 1682292957U, 1483529935U, 471910574U,
240  1539241949U, 458788160U, 3436315007U, 1807016891U,
241  3718408830U, 978976581U, 1043663428U, 3165965781U,
242  1927990952U, 4200891579U, 2372276910U, 3208408903U,
243  3533431907U, 1412390302U, 2931980059U, 4132332400U,
244  1947078029U, 3881505623U, 4168226417U, 2941484381U,
245  1077988104U, 1320477388U, 886195818U, 18198404U,
246  3786409000U, 2509781533U, 112762804U, 3463356488U,
247  1866414978U, 891333506U, 18488651U, 661792760U,
248  1628790961U, 3885187036U, 3141171499U, 876946877U,
249  2693282273U, 1372485963U, 791857591U, 2686433993U,
250  3759982718U, 3167212022U, 3472953795U, 2716379847U,
251  445679433U, 3561995674U, 3504004811U, 3574258232U,
252  54117162U, 3331405415U, 2381918588U, 3769707343U,
253  4154350007U, 1140177722U, 4074052095U, 668550556U,
254  3214352940U, 367459370U, 261225585U, 2610173221U,
255  4209349473U, 3468074219U, 3265815641U, 314222801U,
256  3066103646U, 3808782860U, 282218597U, 3406013506U,
257  3773591054U, 379116347U, 1285071038U, 846784868U,
258  2669647154U, 3771962079U, 3550491691U, 2305946142U,
259  453669953U, 1268987020U, 3317592352U, 3279303384U,
260  3744833421U, 2610507566U, 3859509063U, 266596637U,
261  3847019092U, 517658769U, 3462560207U, 3443424879U,
262  370717030U, 4247526661U, 2224018117U, 4143653529U,
263  4112773975U, 2788324899U, 2477274417U, 1456262402U,
264  2901442914U, 1517677493U, 1846949527U, 2295493580U,
265  3734397586U, 2176403920U, 1280348187U, 1908823572U,
266  3871786941U, 846861322U, 1172426758U, 3287448474U,
267  3383383037U, 1655181056U, 3139813346U, 901632758U,
268  1897031941U, 2986607138U, 3066810236U, 3447102507U,
269  1393639104U, 373351379U, 950779232U, 625454576U,
270  3124240540U, 4148612726U, 2007998917U, 544563296U,
271  2244738638U, 2330496472U, 2058025392U, 1291430526U,
272  424198748U, 50039436U, 29584100U, 3605783033U,
273  2429876329U, 2791104160U, 1057563949U, 3255363231U,
274  3075367218U, 3463963227U, 1469046755U, 985887462U
275 };
276 
277 NAMESPACE_END
Classes for the Blowfish block cipher.
static const int ROUNDS
The number of rounds for the algorithm provided as a constant.
Definition: seckey.h:56
unsigned int word32
32-bit unsigned datatype
Definition: config_int.h:72
Crypto++ library namespace.
Precompiled header file.