2 * Copyright 1995-2016 The OpenSSL Project Authors. All Rights Reserved.
4 * Licensed under the OpenSSL license (the "License"). You may not use
5 * this file except in compliance with the License. You can obtain a copy
6 * in the file LICENSE in the source distribution or at
7 * https://www.openssl.org/source/license.html
10 static const BF_KEY bf_init = {
12 0x243f6a88L, 0x85a308d3L, 0x13198a2eL, 0x03707344L,
13 0xa4093822L, 0x299f31d0L, 0x082efa98L, 0xec4e6c89L,
14 0x452821e6L, 0x38d01377L, 0xbe5466cfL, 0x34e90c6cL,
15 0xc0ac29b7L, 0xc97c50ddL, 0x3f84d5b5L, 0xb5470917L,
16 0x9216d5d9L, 0x8979fb1b}, {
17 0xd1310ba6L, 0x98dfb5acL, 0x2ffd72dbL,
19 0xb8e1afedL, 0x6a267e96L, 0xba7c9045L,
21 0x24a19947L, 0xb3916cf7L, 0x0801f2e2L,
23 0x636920d8L, 0x71574e69L, 0xa458fea3L,
25 0x0d95748fL, 0x728eb658L, 0x718bcd58L,
27 0x7b54a41dL, 0xc25a59b5L, 0x9c30d539L,
29 0xc5d1b023L, 0x286085f0L, 0xca417918L,
31 0x8e79dcb0L, 0x603a180eL, 0x6c9e0e8bL,
33 0xd71577c1L, 0xbd314b27L, 0x78af2fdaL,
35 0xe65525f3L, 0xaa55ab94L, 0x57489862L,
37 0x55ca396aL, 0x2aab10b6L, 0xb4cc5c34L,
39 0xa15486afL, 0x7c72e993L, 0xb3ee1411L,
41 0x2ba9c55dL, 0x741831f6L, 0xce5c3e16L,
43 0xafd6ba33L, 0x6c24cf5cL, 0x7a325381L,
45 0x3b8f4898L, 0x6b4bb9afL, 0xc4bfe81bL,
47 0x61d809ccL, 0xfb21a991L, 0x487cac60L,
49 0xef845d5dL, 0xe98575b1L, 0xdc262302L,
51 0x23893e81L, 0xd396acc5L, 0x0f6d6ff3L,
53 0x2e0b4482L, 0xa4842004L, 0x69c8f04aL,
55 0x21c66842L, 0xf6e96c9aL, 0x670c9c61L,
57 0x6a51a0d2L, 0xd8542f68L, 0x960fa728L,
59 0x6eef0b6cL, 0x137a3be4L, 0xba3bf050L,
61 0xa1f1651dL, 0x39af0176L, 0x66ca593eL,
63 0x8cee8619L, 0x456f9fb4L, 0x7d84a5c3L,
65 0xe06f75d8L, 0x85c12073L, 0x401a449fL,
67 0x4ed3aa62L, 0x363f7706L, 0x1bfedf72L,
69 0x37d0d724L, 0xd00a1248L, 0xdb0fead3L,
71 0x075372c9L, 0x80991b7bL, 0x25d479d8L,
73 0xe3fe501aL, 0xb6794c3bL, 0x976ce0bdL,
75 0xc1a94fb6L, 0x409f60c4L, 0x5e5c9ec2L,
77 0x68fb6fafL, 0x3e6c53b5L, 0x1339b2ebL,
79 0x6dfc511fL, 0x9b30952cL, 0xcc814544L,
81 0xbee3d004L, 0xde334afdL, 0x660f2807L,
83 0xc0cba857L, 0x45c8740fL, 0xd20b5f39L,
85 0x5579c0bdL, 0x1a60320aL, 0xd6a100c6L,
87 0x679f25feL, 0xfb1fa3ccL, 0x8ea5e9f8L,
89 0x3c7516dfL, 0xfd616b15L, 0x2f501ec8L,
91 0x323db5faL, 0xfd238760L, 0x53317b48L,
93 0x9e5c57bbL, 0xca6f8ca0L, 0x1a87562eL,
95 0xd542a8f6L, 0x287effc3L, 0xac6732c6L,
97 0x695b27b0L, 0xbbca58c8L, 0xe1ffa35dL,
99 0x10fa3d98L, 0xfd2183b8L, 0x4afcb56cL,
101 0x9a53e479L, 0xb6f84565L, 0xd28e49bcL,
103 0xe1ddf2daL, 0xa4cb7e33L, 0x62fb1341L,
105 0xef20cadaL, 0x36774c01L, 0xd07e9efeL,
107 0x95dbda4dL, 0xae909198L, 0xeaad8e71L,
109 0xd08ed1d0L, 0xafc725e0L, 0x8e3c5b2fL,
111 0x8ff6e2fbL, 0xf2122b64L, 0x8888b812L,
113 0x4fad5ea0L, 0x688fc31cL, 0xd1cff191L,
115 0x2f2f2218L, 0xbe0e1777L, 0xea752dfeL,
117 0xe5a0cc0fL, 0xb56f74e8L, 0x18acf3d6L,
119 0xb4a84fe0L, 0xfd13e0b7L, 0x7cc43b81L,
121 0x165fa266L, 0x80957705L, 0x93cc7314L,
123 0xe6ad2065L, 0x77b5fa86L, 0xc75442f5L,
125 0xebcdaf0cL, 0x7b3e89a0L, 0xd6411bd3L,
127 0x00250e2dL, 0x2071b35eL, 0x226800bbL,
129 0x2464369bL, 0xf009b91eL, 0x5563911dL,
131 0x78c14389L, 0xd95a537fL, 0x207d5ba2L,
133 0x83260376L, 0x6295cfa9L, 0x11c81968L,
135 0xb3472dcaL, 0x7b14a94aL, 0x1b510052L,
137 0xd60f573fL, 0xbc9bc6e4L, 0x2b60a476L,
139 0x08ba6fb5L, 0x571be91fL, 0xf296ec6bL,
141 0xb6636521L, 0xe7b9f9b6L, 0xff34052eL,
143 0x53b02d5dL, 0xa99f8fa1L, 0x08ba4799L,
145 0x4b7a70e9L, 0xb5b32944L, 0xdb75092eL,
147 0xad6ea6b0L, 0x49a7df7dL, 0x9cee60b8L,
149 0xecaa8c71L, 0x699a17ffL, 0x5664526cL,
151 0x193602a5L, 0x75094c29L, 0xa0591340L,
153 0x3f54989aL, 0x5b429d65L, 0x6b8fe4d6L,
155 0xa1d29c07L, 0xefe830f5L, 0x4d2d38e6L,
157 0x4cdd2086L, 0x8470eb26L, 0x6382e9c6L,
159 0x09686b3fL, 0x3ebaefc9L, 0x3c971814L,
161 0x687f3584L, 0x52a0e286L, 0xb79c5305L,
163 0x3e07841cL, 0x7fdeae5cL, 0x8e7d44ecL,
165 0xb03ada37L, 0xf0500c0dL, 0xf01c1f04L,
167 0xae0cf51aL, 0x3cb574b2L, 0x25837a58L,
169 0xd19113f9L, 0x7ca92ff6L, 0x94324773L,
171 0x3ae5e581L, 0x37c2dadcL, 0xc8b57634L,
173 0xa9446146L, 0x0fd0030eL, 0xecc8c73eL,
175 0xe238cd99L, 0x3bea0e2fL, 0x3280bba1L,
177 0x4e548b38L, 0x4f6db908L, 0x6f420d03L,
179 0x2cb81290L, 0x24977c79L, 0x5679b072L,
181 0xde9a771fL, 0xd9930810L, 0xb38bae12L,
183 0x5512721fL, 0x2e6b7124L, 0x501adde6L,
185 0x7a584718L, 0x7408da17L, 0xbc9f9abcL,
187 0xec7aec3aL, 0xdb851dfaL, 0x63094366L,
189 0xef1c1847L, 0x3215d908L, 0xdd433b37L,
191 0x12a14d43L, 0x2a65c451L, 0x50940002L,
193 0x71dff89eL, 0x10314e55L, 0x81ac77d6L,
195 0x043556f1L, 0xd7a3c76bL, 0x3c11183bL,
197 0xf28fe6edL, 0x97f1fbfaL, 0x9ebabf2cL,
199 0x86e34570L, 0xeae96fb1L, 0x860e5e0aL,
201 0x771fe71cL, 0x4e3d06faL, 0x2965dcb9L,
203 0x803e89d6L, 0x5266c825L, 0x2e4cc978L,
205 0xc6150ebaL, 0x94e2ea78L, 0xa5fc3c53L,
207 0xf2f74ea7L, 0x361d2b3dL, 0x1939260fL,
209 0x5223a708L, 0xf71312b6L, 0xebadfe6eL,
211 0xe3bc4595L, 0xa67bc883L, 0xb17f37d1L,
213 0xc332ddefL, 0xbe6c5aa5L, 0x65582185L,
215 0xeecea50fL, 0xdb2f953bL, 0x2aef7dadL,
217 0x1521b628L, 0x29076170L, 0xecdd4775L,
219 0x13cca830L, 0xeb61bd96L, 0x0334fe1eL,
221 0xb5735c90L, 0x4c70a239L, 0xd59e9e0bL,
223 0xeecc86bcL, 0x60622ca7L, 0x9cab5cabL,
225 0x648b1eafL, 0x19bdf0caL, 0xa02369b9L,
227 0x40685a32L, 0x3c2ab4b3L, 0x319ee9d5L,
229 0x9b540b19L, 0x875fa099L, 0x95f7997eL,
231 0xf837889aL, 0x97e32d77L, 0x11ed935fL,
233 0x0e358829L, 0xc7e61fd6L, 0x96dedfa1L,
235 0x57f584a5L, 0x1b227263L, 0x9b83c3ffL,
237 0xcdb30aebL, 0x532e3054L, 0x8fd948e4L,
239 0x58ebf2efL, 0x34c6ffeaL, 0xfe28ed61L,
241 0x5d4a14d9L, 0xe864b7e3L, 0x42105d14L,
243 0x45eee2b6L, 0xa3aaabeaL, 0xdb6c4f15L,
245 0xc742f442L, 0xef6abbb5L, 0x654f3b1dL,
247 0xd81e799eL, 0x86854dc7L, 0xe44b476aL,
249 0xcf62a1f2L, 0x5b8d2646L, 0xfc8883a0L,
251 0x7f1524c3L, 0x69cb7492L, 0x47848a0bL,
253 0x095bbf00L, 0xad19489dL, 0x1462b174L,
255 0x58428d2aL, 0x0c55f5eaL, 0x1dadf43eL,
257 0x3372f092L, 0x8d937e41L, 0xd65fecf1L,
259 0x7cde3759L, 0xcbee7460L, 0x4085f2a7L,
261 0xa6078084L, 0x19f8509eL, 0xe8efd855L,
263 0xa969a7aaL, 0xc50c06c2L, 0x5a04abfcL,
265 0x9e447a2eL, 0xc3453484L, 0xfdd56705L,
267 0xdb73dbd3L, 0x105588cdL, 0x675fda79L,
269 0xc5c43465L, 0x713e38d8L, 0x3d28f89eL,
271 0x153e21e7L, 0x8fb03d4aL, 0xe6e39f2bL,
273 0xe93d5a68L, 0x948140f7L, 0xf64c261cL,
275 0x411520f7L, 0x7602d4f7L, 0xbcf46b2eL,
277 0xd4082471L, 0x3320f46aL, 0x43b7d4b7L,
279 0x1e39f62eL, 0x97244546L, 0x14214f74L,
281 0x4d95fc1dL, 0x96b591afL, 0x70f4ddd3L,
283 0xbfbc09ecL, 0x03bd9785L, 0x7fac6dd0L,
285 0x96eb27b3L, 0x55fd3941L, 0xda2547e6L,
287 0x28507825L, 0x530429f4L, 0x0a2c86daL,
289 0x68dc1462L, 0xd7486900L, 0x680ec0a4L,
291 0x4f3ffea2L, 0xe887ad8cL, 0xb58ce006L,
293 0xaace1e7cL, 0xd3375fecL, 0xce78a399L,
295 0x20fe9e35L, 0xd9f385b9L, 0xee39d7abL,
297 0x1dc9faf7L, 0x4b6d1856L, 0x26a36631L,
299 0x3a6efa74L, 0xdd5b4332L, 0x6841e7f7L,
301 0xfb0af54eL, 0xd8feb397L, 0x454056acL,
303 0x55533a3aL, 0x20838d87L, 0xfe6ba9b7L,
305 0x55a867bcL, 0xa1159a58L, 0xcca92963L,
307 0xa62a4a56L, 0x3f3125f9L, 0x5ef47e1cL,
309 0xfdf8e802L, 0x04272f70L, 0x80bb155cL,
311 0x95c11548L, 0xe4c66d22L, 0x48c1133fL,
313 0x07f9c9eeL, 0x41041f0fL, 0x404779a4L,
315 0x325f51ebL, 0xd59bc0d1L, 0xf2bcc18fL,
317 0x257b7834L, 0x602a9c60L, 0xdff8e8a3L,
319 0x0e12b4c2L, 0x02e1329eL, 0xaf664fd1L,
321 0x6b2395e0L, 0x333e92e1L, 0x3b240b62L,
323 0x85b2a20eL, 0xe6ba0d99L, 0xde720c8cL,
325 0xd0127845L, 0x95b794fdL, 0x647d0862L,
327 0x5449a36fL, 0x877d48faL, 0xc39dfd27L,
329 0x0a476341L, 0x992eff74L, 0x3a6f6eabL,
331 0xa812dc60L, 0xa1ebddf8L, 0x991be14cL,
333 0xc67b5510L, 0x6d672c37L, 0x2765d43bL,
335 0xf1290dc7L, 0xcc00ffa3L, 0xb5390f92L,
337 0x667b9ffbL, 0xcedb7d9cL, 0xa091cf0bL,
339 0xbb132f88L, 0x515bad24L, 0x7b9479bfL,
341 0x37392eb3L, 0xcc115979L, 0x8026e297L,
343 0x6842ada7L, 0xc66a2b3bL, 0x12754cccL,
345 0x6a124237L, 0xb79251e7L, 0x06a1bbe6L,
347 0x1a6b1018L, 0x11caedfaL, 0x3d25bdd8L,
349 0x44421659L, 0x0a121386L, 0xd90cec6eL,
351 0x64af674eL, 0xda86a85fL, 0xbebfe988L,
353 0x9dbc8057L, 0xf0f7c086L, 0x60787bf8L,
355 0xd1fd8346L, 0xf6381fb0L, 0x7745ae04L,
357 0x83426b33L, 0xf01eab71L, 0xb0804187L,
359 0x77a057beL, 0xbde8ae24L, 0x55464299L,
361 0x4e58f48fL, 0xf2ddfda2L, 0xf474ef38L,
363 0x5366f9c3L, 0xc8b38e74L, 0xb475f255L,
365 0x7aeb2661L, 0x8b1ddf84L, 0x846a0e79L,
367 0x466e598eL, 0x20b45770L, 0x8cd55591L,
369 0xb90bace1L, 0xbb8205d0L, 0x11a86248L,
371 0xb77f19b6L, 0xe0a9dc09L, 0x662d09a1L,
373 0xe85a1f02L, 0x09f0be8cL, 0x4a99a025L,
375 0x1ab93d1dL, 0x0ba5a4dfL, 0xa186f20fL,
377 0xdcb7da83L, 0x573906feL, 0xa1e2ce9bL,
379 0x50115e01L, 0xa70683faL, 0xa002b5c4L,
381 0x9af88c27L, 0x773f8641L, 0xc3604c06L,
383 0xf0177a28L, 0xc0f586e0L, 0x006058aaL,
385 0x11e69ed7L, 0x2338ea63L, 0x53c2dd94L,
387 0xbbcbee56L, 0x90bcb6deL, 0xebfc7da1L,
389 0x6f05e409L, 0x4b7c0188L, 0x39720a3dL,
391 0x86e3725fL, 0x724d9db9L, 0x1ac15bb4L,
393 0xed545578L, 0x08fca5b5L, 0xd83d7cd3L,
395 0x1e50ef5eL, 0xb161e6f8L, 0xa28514d9L,
397 0x6fd5c7e7L, 0x56e14ec4L, 0x362abfceL,
399 0xd79a3234L, 0x92638212L, 0x670efa8eL,
401 0x3a39ce37L, 0xd3faf5cfL, 0xabc27737L,
403 0x5cb0679eL, 0x4fa33742L, 0xd3822740L,
405 0xd5118e9dL, 0xbf0f7315L, 0xd62d1c7eL,
407 0xb78c1b6bL, 0x21a19045L, 0xb26eb1beL,
409 0x5748ab2fL, 0xbc946e79L, 0xc6a376d2L,
411 0x530ff8eeL, 0x468dde7dL, 0xd5730a1dL,
413 0x2939bbdbL, 0xa9ba4650L, 0xac9526e8L,
415 0xa1fad5f0L, 0x6a2d519aL, 0x63ef8ce2L,
417 0xc089c2b8L, 0x43242ef6L, 0xa51e03aaL,
419 0x83c061baL, 0x9be96a4dL, 0x8fe51550L,
421 0x2826a2f9L, 0xa73a3ae1L, 0x4ba99586L,
423 0xc72fefd3L, 0xf752f7daL, 0x3f046f69L,
425 0x80e4a915L, 0x87b08601L, 0x9b09e6adL,
427 0xe990fd5aL, 0x9e34d797L, 0x2cf0b7d9L,
429 0x96d5ac3aL, 0x017da67dL, 0xd1cf3ed6L,
431 0x1f9f25cfL, 0xadf2b89bL, 0x5ad6b472L,
433 0xe029ac71L, 0xe019a5e6L, 0x47b0acfdL,
435 0xe8d3c48dL, 0x283b57ccL, 0xf8d56629L,
437 0x785f0191L, 0xed756055L, 0xf7960e44L,
439 0x15056dd4L, 0x88f46dbaL, 0x03a16125L,
441 0xc3eb9e15L, 0x3c9057a2L, 0x97271aecL,
443 0x1b3f6d9bL, 0x1e6321f5L, 0xf59c66fbL,
445 0x7533d928L, 0xb155fdf5L, 0x03563482L,
447 0x28517711L, 0xc20ad9f8L, 0xabcc5167L,
449 0x4de81751L, 0x3830dc8eL, 0x379d5862L,
451 0xea7a90c2L, 0xfb3e7bceL, 0x5121ce64L,
453 0xa8b6e37eL, 0xc3293d46L, 0x48de5369L,
455 0xa2ae0810L, 0xdd6db224L, 0x69852dfdL,
457 0xb39a460aL, 0x6445c0ddL, 0x586cdecfL,
459 0x5bbef7ddL, 0x1b588d40L, 0xccd2017fL,
461 0xdda26a7eL, 0x3a59ff45L, 0x3e350a44L,
463 0x72eacea8L, 0xfa6484bbL, 0x8d6612aeL,
465 0xd29be463L, 0x542f5d9eL, 0xaec2771bL,
467 0x740e0d8dL, 0xe75b1357L, 0xf8721671L,
469 0x4040cb08L, 0x4eb4e2ccL, 0x34d2466aL,
471 0xe1b00428L, 0x95983a1dL, 0x06b89fb4L,
473 0x6f3f3b82L, 0x3520ab82L, 0x011a1d4bL,
475 0x611560b1L, 0xe7933fdcL, 0xbb3a792bL,
477 0xa08839e1L, 0x51ce794bL, 0x2f32c9b7L,
479 0xe01cc87eL, 0xbcc7d1f6L, 0xcf0111c3L,
481 0x1a908749L, 0xd44fbd9aL, 0xd0dadecbL,
483 0x0339c32aL, 0xc6913667L, 0x8df9317cL,
485 0xf79e59b7L, 0x43f5bb3aL, 0xf2d519ffL,
487 0xbf97222cL, 0x15e6fc2aL, 0x0f91fc71L,
489 0xfae59361L, 0xceb69cebL, 0xc2a86459L,
491 0xb6c1075eL, 0xe3056a0cL, 0x10d25065L,
493 0xe0ec6e0eL, 0x1698db3bL, 0x4c98a0beL,
495 0x9f1f9532L, 0xe0d392dfL, 0xd3a0342bL,
497 0x1b0a7441L, 0x4ba3348cL, 0xc5be7120L,
499 0xdf359f8dL, 0x9b992f2eL, 0xe60b6f47L,
501 0xe54cda54L, 0x1edad891L, 0xce6279cfL,
503 0x1618b166L, 0xfd2c1d05L, 0x848fd2c5L,
505 0xf523f357L, 0xa6327623L, 0x93a83531L,
507 0xacf08162L, 0x5a75ebb5L, 0x6e163697L,
509 0xde966292L, 0x81b949d0L, 0x4c50901bL,
511 0xe6c6c7bdL, 0x327a140aL, 0x45e1d006L,
513 0xc9aa53fdL, 0x62a80f00L, 0xbb25bfe2L,
515 0x71126905L, 0xb2040222L, 0xb6cbcf7cL,
517 0x53113ec0L, 0x1640e3d3L, 0x38abbd60L,
519 0xba38209cL, 0xf746ce76L, 0x77afa1c5L,
521 0x85cbfe4eL, 0x8ae88dd8L, 0x7aaaf9b0L,
523 0x1948c25cL, 0x02fb8a8cL, 0x01c36ae4L,
525 0x90d4f869L, 0xa65cdea0L, 0x3f09252dL,
527 0xb74e6132L, 0xce77e25bL, 0x578fdfe3L,