Main Page | Modules | Data Structures | File List | Data Fields | Globals | Related Pages

aes_be.h

Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 2003 Bob Deblier
00003  *
00004  * This library is free software; you can redistribute it and/or
00005  * modify it under the terms of the GNU Lesser General Public
00006  * License as published by the Free Software Foundation; either
00007  * version 2.1 of the License, or (at your option) any later version.
00008  *
00009  * This library is distributed in the hope that it will be useful,
00010  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00011  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00012  * Lesser General Public License for more details.
00013  *
00014  * You should have received a copy of the GNU Lesser General Public
00015  * License along with this library; if not, write to the Free Software
00016  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00017  *
00018  */
00019 
00020 const uint32_t _ae0[256] = {
00021     0xc66363a5, 0xf87c7c84, 0xee777799, 0xf67b7b8d,
00022     0xfff2f20d, 0xd66b6bbd, 0xde6f6fb1, 0x91c5c554,
00023     0x60303050, 0x02010103, 0xce6767a9, 0x562b2b7d,
00024     0xe7fefe19, 0xb5d7d762, 0x4dababe6, 0xec76769a,
00025     0x8fcaca45, 0x1f82829d, 0x89c9c940, 0xfa7d7d87,
00026     0xeffafa15, 0xb25959eb, 0x8e4747c9, 0xfbf0f00b,
00027     0x41adadec, 0xb3d4d467, 0x5fa2a2fd, 0x45afafea,
00028     0x239c9cbf, 0x53a4a4f7, 0xe4727296, 0x9bc0c05b,
00029     0x75b7b7c2, 0xe1fdfd1c, 0x3d9393ae, 0x4c26266a,
00030     0x6c36365a, 0x7e3f3f41, 0xf5f7f702, 0x83cccc4f,
00031     0x6834345c, 0x51a5a5f4, 0xd1e5e534, 0xf9f1f108,
00032     0xe2717193, 0xabd8d873, 0x62313153, 0x2a15153f,
00033     0x0804040c, 0x95c7c752, 0x46232365, 0x9dc3c35e,
00034     0x30181828, 0x379696a1, 0x0a05050f, 0x2f9a9ab5,
00035     0x0e070709, 0x24121236, 0x1b80809b, 0xdfe2e23d,
00036     0xcdebeb26, 0x4e272769, 0x7fb2b2cd, 0xea75759f,
00037     0x1209091b, 0x1d83839e, 0x582c2c74, 0x341a1a2e,
00038     0x361b1b2d, 0xdc6e6eb2, 0xb45a5aee, 0x5ba0a0fb,
00039     0xa45252f6, 0x763b3b4d, 0xb7d6d661, 0x7db3b3ce,
00040     0x5229297b, 0xdde3e33e, 0x5e2f2f71, 0x13848497,
00041     0xa65353f5, 0xb9d1d168, 0x00000000, 0xc1eded2c,
00042     0x40202060, 0xe3fcfc1f, 0x79b1b1c8, 0xb65b5bed,
00043     0xd46a6abe, 0x8dcbcb46, 0x67bebed9, 0x7239394b,
00044     0x944a4ade, 0x984c4cd4, 0xb05858e8, 0x85cfcf4a,
00045     0xbbd0d06b, 0xc5efef2a, 0x4faaaae5, 0xedfbfb16,
00046     0x864343c5, 0x9a4d4dd7, 0x66333355, 0x11858594,
00047     0x8a4545cf, 0xe9f9f910, 0x04020206, 0xfe7f7f81,
00048     0xa05050f0, 0x783c3c44, 0x259f9fba, 0x4ba8a8e3,
00049     0xa25151f3, 0x5da3a3fe, 0x804040c0, 0x058f8f8a,
00050     0x3f9292ad, 0x219d9dbc, 0x70383848, 0xf1f5f504,
00051     0x63bcbcdf, 0x77b6b6c1, 0xafdada75, 0x42212163,
00052     0x20101030, 0xe5ffff1a, 0xfdf3f30e, 0xbfd2d26d,
00053     0x81cdcd4c, 0x180c0c14, 0x26131335, 0xc3ecec2f,
00054     0xbe5f5fe1, 0x359797a2, 0x884444cc, 0x2e171739,
00055     0x93c4c457, 0x55a7a7f2, 0xfc7e7e82, 0x7a3d3d47,
00056     0xc86464ac, 0xba5d5de7, 0x3219192b, 0xe6737395,
00057     0xc06060a0, 0x19818198, 0x9e4f4fd1, 0xa3dcdc7f,
00058     0x44222266, 0x542a2a7e, 0x3b9090ab, 0x0b888883,
00059     0x8c4646ca, 0xc7eeee29, 0x6bb8b8d3, 0x2814143c,
00060     0xa7dede79, 0xbc5e5ee2, 0x160b0b1d, 0xaddbdb76,
00061     0xdbe0e03b, 0x64323256, 0x743a3a4e, 0x140a0a1e,
00062     0x924949db, 0x0c06060a, 0x4824246c, 0xb85c5ce4,
00063     0x9fc2c25d, 0xbdd3d36e, 0x43acacef, 0xc46262a6,
00064     0x399191a8, 0x319595a4, 0xd3e4e437, 0xf279798b,
00065     0xd5e7e732, 0x8bc8c843, 0x6e373759, 0xda6d6db7,
00066     0x018d8d8c, 0xb1d5d564, 0x9c4e4ed2, 0x49a9a9e0,
00067     0xd86c6cb4, 0xac5656fa, 0xf3f4f407, 0xcfeaea25,
00068     0xca6565af, 0xf47a7a8e, 0x47aeaee9, 0x10080818,
00069     0x6fbabad5, 0xf0787888, 0x4a25256f, 0x5c2e2e72,
00070     0x381c1c24, 0x57a6a6f1, 0x73b4b4c7, 0x97c6c651,
00071     0xcbe8e823, 0xa1dddd7c, 0xe874749c, 0x3e1f1f21,
00072     0x964b4bdd, 0x61bdbddc, 0x0d8b8b86, 0x0f8a8a85,
00073     0xe0707090, 0x7c3e3e42, 0x71b5b5c4, 0xcc6666aa,
00074     0x904848d8, 0x06030305, 0xf7f6f601, 0x1c0e0e12,
00075     0xc26161a3, 0x6a35355f, 0xae5757f9, 0x69b9b9d0,
00076     0x17868691, 0x99c1c158, 0x3a1d1d27, 0x279e9eb9,
00077     0xd9e1e138, 0xebf8f813, 0x2b9898b3, 0x22111133,
00078     0xd26969bb, 0xa9d9d970, 0x078e8e89, 0x339494a7,
00079     0x2d9b9bb6, 0x3c1e1e22, 0x15878792, 0xc9e9e920,
00080     0x87cece49, 0xaa5555ff, 0x50282878, 0xa5dfdf7a,
00081     0x038c8c8f, 0x59a1a1f8, 0x09898980, 0x1a0d0d17,
00082     0x65bfbfda, 0xd7e6e631, 0x844242c6, 0xd06868b8,
00083     0x824141c3, 0x299999b0, 0x5a2d2d77, 0x1e0f0f11,
00084     0x7bb0b0cb, 0xa85454fc, 0x6dbbbbd6, 0x2c16163a
00085 };
00086 
00087 const uint32_t _ae1[256] = {
00088     0xa5c66363, 0x84f87c7c, 0x99ee7777, 0x8df67b7b,
00089     0x0dfff2f2, 0xbdd66b6b, 0xb1de6f6f, 0x5491c5c5,
00090     0x50603030, 0x03020101, 0xa9ce6767, 0x7d562b2b,
00091     0x19e7fefe, 0x62b5d7d7, 0xe64dabab, 0x9aec7676,
00092     0x458fcaca, 0x9d1f8282, 0x4089c9c9, 0x87fa7d7d,
00093     0x15effafa, 0xebb25959, 0xc98e4747, 0x0bfbf0f0,
00094     0xec41adad, 0x67b3d4d4, 0xfd5fa2a2, 0xea45afaf,
00095     0xbf239c9c, 0xf753a4a4, 0x96e47272, 0x5b9bc0c0,
00096     0xc275b7b7, 0x1ce1fdfd, 0xae3d9393, 0x6a4c2626,
00097     0x5a6c3636, 0x417e3f3f, 0x02f5f7f7, 0x4f83cccc,
00098     0x5c683434, 0xf451a5a5, 0x34d1e5e5, 0x08f9f1f1,
00099     0x93e27171, 0x73abd8d8, 0x53623131, 0x3f2a1515,
00100     0x0c080404, 0x5295c7c7, 0x65462323, 0x5e9dc3c3,
00101     0x28301818, 0xa1379696, 0x0f0a0505, 0xb52f9a9a,
00102     0x090e0707, 0x36241212, 0x9b1b8080, 0x3ddfe2e2,
00103     0x26cdebeb, 0x694e2727, 0xcd7fb2b2, 0x9fea7575,
00104     0x1b120909, 0x9e1d8383, 0x74582c2c, 0x2e341a1a,
00105     0x2d361b1b, 0xb2dc6e6e, 0xeeb45a5a, 0xfb5ba0a0,
00106     0xf6a45252, 0x4d763b3b, 0x61b7d6d6, 0xce7db3b3,
00107     0x7b522929, 0x3edde3e3, 0x715e2f2f, 0x97138484,
00108     0xf5a65353, 0x68b9d1d1, 0x00000000, 0x2cc1eded,
00109     0x60402020, 0x1fe3fcfc, 0xc879b1b1, 0xedb65b5b,
00110     0xbed46a6a, 0x468dcbcb, 0xd967bebe, 0x4b723939,
00111     0xde944a4a, 0xd4984c4c, 0xe8b05858, 0x4a85cfcf,
00112     0x6bbbd0d0, 0x2ac5efef, 0xe54faaaa, 0x16edfbfb,
00113     0xc5864343, 0xd79a4d4d, 0x55663333, 0x94118585,
00114     0xcf8a4545, 0x10e9f9f9, 0x06040202, 0x81fe7f7f,
00115     0xf0a05050, 0x44783c3c, 0xba259f9f, 0xe34ba8a8,
00116     0xf3a25151, 0xfe5da3a3, 0xc0804040, 0x8a058f8f,
00117     0xad3f9292, 0xbc219d9d, 0x48703838, 0x04f1f5f5,
00118     0xdf63bcbc, 0xc177b6b6, 0x75afdada, 0x63422121,
00119     0x30201010, 0x1ae5ffff, 0x0efdf3f3, 0x6dbfd2d2,
00120     0x4c81cdcd, 0x14180c0c, 0x35261313, 0x2fc3ecec,
00121     0xe1be5f5f, 0xa2359797, 0xcc884444, 0x392e1717,
00122     0x5793c4c4, 0xf255a7a7, 0x82fc7e7e, 0x477a3d3d,
00123     0xacc86464, 0xe7ba5d5d, 0x2b321919, 0x95e67373,
00124     0xa0c06060, 0x98198181, 0xd19e4f4f, 0x7fa3dcdc,
00125     0x66442222, 0x7e542a2a, 0xab3b9090, 0x830b8888,
00126     0xca8c4646, 0x29c7eeee, 0xd36bb8b8, 0x3c281414,
00127     0x79a7dede, 0xe2bc5e5e, 0x1d160b0b, 0x76addbdb,
00128     0x3bdbe0e0, 0x56643232, 0x4e743a3a, 0x1e140a0a,
00129     0xdb924949, 0x0a0c0606, 0x6c482424, 0xe4b85c5c,
00130     0x5d9fc2c2, 0x6ebdd3d3, 0xef43acac, 0xa6c46262,
00131     0xa8399191, 0xa4319595, 0x37d3e4e4, 0x8bf27979,
00132     0x32d5e7e7, 0x438bc8c8, 0x596e3737, 0xb7da6d6d,
00133     0x8c018d8d, 0x64b1d5d5, 0xd29c4e4e, 0xe049a9a9,
00134     0xb4d86c6c, 0xfaac5656, 0x07f3f4f4, 0x25cfeaea,
00135     0xafca6565, 0x8ef47a7a, 0xe947aeae, 0x18100808,
00136     0xd56fbaba, 0x88f07878, 0x6f4a2525, 0x725c2e2e,
00137     0x24381c1c, 0xf157a6a6, 0xc773b4b4, 0x5197c6c6,
00138     0x23cbe8e8, 0x7ca1dddd, 0x9ce87474, 0x213e1f1f,
00139     0xdd964b4b, 0xdc61bdbd, 0x860d8b8b, 0x850f8a8a,
00140     0x90e07070, 0x427c3e3e, 0xc471b5b5, 0xaacc6666,
00141     0xd8904848, 0x05060303, 0x01f7f6f6, 0x121c0e0e,
00142     0xa3c26161, 0x5f6a3535, 0xf9ae5757, 0xd069b9b9,
00143     0x91178686, 0x5899c1c1, 0x273a1d1d, 0xb9279e9e,
00144     0x38d9e1e1, 0x13ebf8f8, 0xb32b9898, 0x33221111,
00145     0xbbd26969, 0x70a9d9d9, 0x89078e8e, 0xa7339494,
00146     0xb62d9b9b, 0x223c1e1e, 0x92158787, 0x20c9e9e9,
00147     0x4987cece, 0xffaa5555, 0x78502828, 0x7aa5dfdf,
00148     0x8f038c8c, 0xf859a1a1, 0x80098989, 0x171a0d0d,
00149     0xda65bfbf, 0x31d7e6e6, 0xc6844242, 0xb8d06868,
00150     0xc3824141, 0xb0299999, 0x775a2d2d, 0x111e0f0f,
00151     0xcb7bb0b0, 0xfca85454, 0xd66dbbbb, 0x3a2c1616
00152 };
00153 
00154 const uint32_t _ae2[256] = {
00155     0x63a5c663, 0x7c84f87c, 0x7799ee77, 0x7b8df67b,
00156     0xf20dfff2, 0x6bbdd66b, 0x6fb1de6f, 0xc55491c5,
00157     0x30506030, 0x01030201, 0x67a9ce67, 0x2b7d562b,
00158     0xfe19e7fe, 0xd762b5d7, 0xabe64dab, 0x769aec76,
00159     0xca458fca, 0x829d1f82, 0xc94089c9, 0x7d87fa7d,
00160     0xfa15effa, 0x59ebb259, 0x47c98e47, 0xf00bfbf0,
00161     0xadec41ad, 0xd467b3d4, 0xa2fd5fa2, 0xafea45af,
00162     0x9cbf239c, 0xa4f753a4, 0x7296e472, 0xc05b9bc0,
00163     0xb7c275b7, 0xfd1ce1fd, 0x93ae3d93, 0x266a4c26,
00164     0x365a6c36, 0x3f417e3f, 0xf702f5f7, 0xcc4f83cc,
00165     0x345c6834, 0xa5f451a5, 0xe534d1e5, 0xf108f9f1,
00166     0x7193e271, 0xd873abd8, 0x31536231, 0x153f2a15,
00167     0x040c0804, 0xc75295c7, 0x23654623, 0xc35e9dc3,
00168     0x18283018, 0x96a13796, 0x050f0a05, 0x9ab52f9a,
00169     0x07090e07, 0x12362412, 0x809b1b80, 0xe23ddfe2,
00170     0xeb26cdeb, 0x27694e27, 0xb2cd7fb2, 0x759fea75,
00171     0x091b1209, 0x839e1d83, 0x2c74582c, 0x1a2e341a,
00172     0x1b2d361b, 0x6eb2dc6e, 0x5aeeb45a, 0xa0fb5ba0,
00173     0x52f6a452, 0x3b4d763b, 0xd661b7d6, 0xb3ce7db3,
00174     0x297b5229, 0xe33edde3, 0x2f715e2f, 0x84971384,
00175     0x53f5a653, 0xd168b9d1, 0x00000000, 0xed2cc1ed,
00176     0x20604020, 0xfc1fe3fc, 0xb1c879b1, 0x5bedb65b,
00177     0x6abed46a, 0xcb468dcb, 0xbed967be, 0x394b7239,
00178     0x4ade944a, 0x4cd4984c, 0x58e8b058, 0xcf4a85cf,
00179     0xd06bbbd0, 0xef2ac5ef, 0xaae54faa, 0xfb16edfb,
00180     0x43c58643, 0x4dd79a4d, 0x33556633, 0x85941185,
00181     0x45cf8a45, 0xf910e9f9, 0x02060402, 0x7f81fe7f,
00182     0x50f0a050, 0x3c44783c, 0x9fba259f, 0xa8e34ba8,
00183     0x51f3a251, 0xa3fe5da3, 0x40c08040, 0x8f8a058f,
00184     0x92ad3f92, 0x9dbc219d, 0x38487038, 0xf504f1f5,
00185     0xbcdf63bc, 0xb6c177b6, 0xda75afda, 0x21634221,
00186     0x10302010, 0xff1ae5ff, 0xf30efdf3, 0xd26dbfd2,
00187     0xcd4c81cd, 0x0c14180c, 0x13352613, 0xec2fc3ec,
00188     0x5fe1be5f, 0x97a23597, 0x44cc8844, 0x17392e17,
00189     0xc45793c4, 0xa7f255a7, 0x7e82fc7e, 0x3d477a3d,
00190     0x64acc864, 0x5de7ba5d, 0x192b3219, 0x7395e673,
00191     0x60a0c060, 0x81981981, 0x4fd19e4f, 0xdc7fa3dc,
00192     0x22664422, 0x2a7e542a, 0x90ab3b90, 0x88830b88,
00193     0x46ca8c46, 0xee29c7ee, 0xb8d36bb8, 0x143c2814,
00194     0xde79a7de, 0x5ee2bc5e, 0x0b1d160b, 0xdb76addb,
00195     0xe03bdbe0, 0x32566432, 0x3a4e743a, 0x0a1e140a,
00196     0x49db9249, 0x060a0c06, 0x246c4824, 0x5ce4b85c,
00197     0xc25d9fc2, 0xd36ebdd3, 0xacef43ac, 0x62a6c462,
00198     0x91a83991, 0x95a43195, 0xe437d3e4, 0x798bf279,
00199     0xe732d5e7, 0xc8438bc8, 0x37596e37, 0x6db7da6d,
00200     0x8d8c018d, 0xd564b1d5, 0x4ed29c4e, 0xa9e049a9,
00201     0x6cb4d86c, 0x56faac56, 0xf407f3f4, 0xea25cfea,
00202     0x65afca65, 0x7a8ef47a, 0xaee947ae, 0x08181008,
00203     0xbad56fba, 0x7888f078, 0x256f4a25, 0x2e725c2e,
00204     0x1c24381c, 0xa6f157a6, 0xb4c773b4, 0xc65197c6,
00205     0xe823cbe8, 0xdd7ca1dd, 0x749ce874, 0x1f213e1f,
00206     0x4bdd964b, 0xbddc61bd, 0x8b860d8b, 0x8a850f8a,
00207     0x7090e070, 0x3e427c3e, 0xb5c471b5, 0x66aacc66,
00208     0x48d89048, 0x03050603, 0xf601f7f6, 0x0e121c0e,
00209     0x61a3c261, 0x355f6a35, 0x57f9ae57, 0xb9d069b9,
00210     0x86911786, 0xc15899c1, 0x1d273a1d, 0x9eb9279e,
00211     0xe138d9e1, 0xf813ebf8, 0x98b32b98, 0x11332211,
00212     0x69bbd269, 0xd970a9d9, 0x8e89078e, 0x94a73394,
00213     0x9bb62d9b, 0x1e223c1e, 0x87921587, 0xe920c9e9,
00214     0xce4987ce, 0x55ffaa55, 0x28785028, 0xdf7aa5df,
00215     0x8c8f038c, 0xa1f859a1, 0x89800989, 0x0d171a0d,
00216     0xbfda65bf, 0xe631d7e6, 0x42c68442, 0x68b8d068,
00217     0x41c38241, 0x99b02999, 0x2d775a2d, 0x0f111e0f,
00218     0xb0cb7bb0, 0x54fca854, 0xbbd66dbb, 0x163a2c16
00219 };
00220 
00221 const uint32_t _ae3[256] = {
00222     0x6363a5c6, 0x7c7c84f8, 0x777799ee, 0x7b7b8df6,
00223     0xf2f20dff, 0x6b6bbdd6, 0x6f6fb1de, 0xc5c55491,
00224     0x30305060, 0x01010302, 0x6767a9ce, 0x2b2b7d56,
00225     0xfefe19e7, 0xd7d762b5, 0xababe64d, 0x76769aec,
00226     0xcaca458f, 0x82829d1f, 0xc9c94089, 0x7d7d87fa,
00227     0xfafa15ef, 0x5959ebb2, 0x4747c98e, 0xf0f00bfb,
00228     0xadadec41, 0xd4d467b3, 0xa2a2fd5f, 0xafafea45,
00229     0x9c9cbf23, 0xa4a4f753, 0x727296e4, 0xc0c05b9b,
00230     0xb7b7c275, 0xfdfd1ce1, 0x9393ae3d, 0x26266a4c,
00231     0x36365a6c, 0x3f3f417e, 0xf7f702f5, 0xcccc4f83,
00232     0x34345c68, 0xa5a5f451, 0xe5e534d1, 0xf1f108f9,
00233     0x717193e2, 0xd8d873ab, 0x31315362, 0x15153f2a,
00234     0x04040c08, 0xc7c75295, 0x23236546, 0xc3c35e9d,
00235     0x18182830, 0x9696a137, 0x05050f0a, 0x9a9ab52f,
00236     0x0707090e, 0x12123624, 0x80809b1b, 0xe2e23ddf,
00237     0xebeb26cd, 0x2727694e, 0xb2b2cd7f, 0x75759fea,
00238     0x09091b12, 0x83839e1d, 0x2c2c7458, 0x1a1a2e34,
00239     0x1b1b2d36, 0x6e6eb2dc, 0x5a5aeeb4, 0xa0a0fb5b,
00240     0x5252f6a4, 0x3b3b4d76, 0xd6d661b7, 0xb3b3ce7d,
00241     0x29297b52, 0xe3e33edd, 0x2f2f715e, 0x84849713,
00242     0x5353f5a6, 0xd1d168b9, 0x00000000, 0xeded2cc1,
00243     0x20206040, 0xfcfc1fe3, 0xb1b1c879, 0x5b5bedb6,
00244     0x6a6abed4, 0xcbcb468d, 0xbebed967, 0x39394b72,
00245     0x4a4ade94, 0x4c4cd498, 0x5858e8b0, 0xcfcf4a85,
00246     0xd0d06bbb, 0xefef2ac5, 0xaaaae54f, 0xfbfb16ed,
00247     0x4343c586, 0x4d4dd79a, 0x33335566, 0x85859411,
00248     0x4545cf8a, 0xf9f910e9, 0x02020604, 0x7f7f81fe,
00249     0x5050f0a0, 0x3c3c4478, 0x9f9fba25, 0xa8a8e34b,
00250     0x5151f3a2, 0xa3a3fe5d, 0x4040c080, 0x8f8f8a05,
00251     0x9292ad3f, 0x9d9dbc21, 0x38384870, 0xf5f504f1,
00252     0xbcbcdf63, 0xb6b6c177, 0xdada75af, 0x21216342,
00253     0x10103020, 0xffff1ae5, 0xf3f30efd, 0xd2d26dbf,
00254     0xcdcd4c81, 0x0c0c1418, 0x13133526, 0xecec2fc3,
00255     0x5f5fe1be, 0x9797a235, 0x4444cc88, 0x1717392e,
00256     0xc4c45793, 0xa7a7f255, 0x7e7e82fc, 0x3d3d477a,
00257     0x6464acc8, 0x5d5de7ba, 0x19192b32, 0x737395e6,
00258     0x6060a0c0, 0x81819819, 0x4f4fd19e, 0xdcdc7fa3,
00259     0x22226644, 0x2a2a7e54, 0x9090ab3b, 0x8888830b,
00260     0x4646ca8c, 0xeeee29c7, 0xb8b8d36b, 0x14143c28,
00261     0xdede79a7, 0x5e5ee2bc, 0x0b0b1d16, 0xdbdb76ad,
00262     0xe0e03bdb, 0x32325664, 0x3a3a4e74, 0x0a0a1e14,
00263     0x4949db92, 0x06060a0c, 0x24246c48, 0x5c5ce4b8,
00264     0xc2c25d9f, 0xd3d36ebd, 0xacacef43, 0x6262a6c4,
00265     0x9191a839, 0x9595a431, 0xe4e437d3, 0x79798bf2,
00266     0xe7e732d5, 0xc8c8438b, 0x3737596e, 0x6d6db7da,
00267     0x8d8d8c01, 0xd5d564b1, 0x4e4ed29c, 0xa9a9e049,
00268     0x6c6cb4d8, 0x5656faac, 0xf4f407f3, 0xeaea25cf,
00269     0x6565afca, 0x7a7a8ef4, 0xaeaee947, 0x08081810,
00270     0xbabad56f, 0x787888f0, 0x25256f4a, 0x2e2e725c,
00271     0x1c1c2438, 0xa6a6f157, 0xb4b4c773, 0xc6c65197,
00272     0xe8e823cb, 0xdddd7ca1, 0x74749ce8, 0x1f1f213e,
00273     0x4b4bdd96, 0xbdbddc61, 0x8b8b860d, 0x8a8a850f,
00274     0x707090e0, 0x3e3e427c, 0xb5b5c471, 0x6666aacc,
00275     0x4848d890, 0x03030506, 0xf6f601f7, 0x0e0e121c,
00276     0x6161a3c2, 0x35355f6a, 0x5757f9ae, 0xb9b9d069,
00277     0x86869117, 0xc1c15899, 0x1d1d273a, 0x9e9eb927,
00278     0xe1e138d9, 0xf8f813eb, 0x9898b32b, 0x11113322,
00279     0x6969bbd2, 0xd9d970a9, 0x8e8e8907, 0x9494a733,
00280     0x9b9bb62d, 0x1e1e223c, 0x87879215, 0xe9e920c9,
00281     0xcece4987, 0x5555ffaa, 0x28287850, 0xdfdf7aa5,
00282     0x8c8c8f03, 0xa1a1f859, 0x89898009, 0x0d0d171a,
00283     0xbfbfda65, 0xe6e631d7, 0x4242c684, 0x6868b8d0,
00284     0x4141c382, 0x9999b029, 0x2d2d775a, 0x0f0f111e,
00285     0xb0b0cb7b, 0x5454fca8, 0xbbbbd66d, 0x16163a2c
00286 };
00287 
00288 const uint32_t _ae4[256] = {
00289     0x63636363, 0x7c7c7c7c, 0x77777777, 0x7b7b7b7b,
00290     0xf2f2f2f2, 0x6b6b6b6b, 0x6f6f6f6f, 0xc5c5c5c5,
00291     0x30303030, 0x01010101, 0x67676767, 0x2b2b2b2b,
00292     0xfefefefe, 0xd7d7d7d7, 0xabababab, 0x76767676,
00293     0xcacacaca, 0x82828282, 0xc9c9c9c9, 0x7d7d7d7d,
00294     0xfafafafa, 0x59595959, 0x47474747, 0xf0f0f0f0,
00295     0xadadadad, 0xd4d4d4d4, 0xa2a2a2a2, 0xafafafaf,
00296     0x9c9c9c9c, 0xa4a4a4a4, 0x72727272, 0xc0c0c0c0,
00297     0xb7b7b7b7, 0xfdfdfdfd, 0x93939393, 0x26262626,
00298     0x36363636, 0x3f3f3f3f, 0xf7f7f7f7, 0xcccccccc,
00299     0x34343434, 0xa5a5a5a5, 0xe5e5e5e5, 0xf1f1f1f1,
00300     0x71717171, 0xd8d8d8d8, 0x31313131, 0x15151515,
00301     0x04040404, 0xc7c7c7c7, 0x23232323, 0xc3c3c3c3,
00302     0x18181818, 0x96969696, 0x05050505, 0x9a9a9a9a,
00303     0x07070707, 0x12121212, 0x80808080, 0xe2e2e2e2,
00304     0xebebebeb, 0x27272727, 0xb2b2b2b2, 0x75757575,
00305     0x09090909, 0x83838383, 0x2c2c2c2c, 0x1a1a1a1a,
00306     0x1b1b1b1b, 0x6e6e6e6e, 0x5a5a5a5a, 0xa0a0a0a0,
00307     0x52525252, 0x3b3b3b3b, 0xd6d6d6d6, 0xb3b3b3b3,
00308     0x29292929, 0xe3e3e3e3, 0x2f2f2f2f, 0x84848484,
00309     0x53535353, 0xd1d1d1d1, 0x00000000, 0xedededed,
00310     0x20202020, 0xfcfcfcfc, 0xb1b1b1b1, 0x5b5b5b5b,
00311     0x6a6a6a6a, 0xcbcbcbcb, 0xbebebebe, 0x39393939,
00312     0x4a4a4a4a, 0x4c4c4c4c, 0x58585858, 0xcfcfcfcf,
00313     0xd0d0d0d0, 0xefefefef, 0xaaaaaaaa, 0xfbfbfbfb,
00314     0x43434343, 0x4d4d4d4d, 0x33333333, 0x85858585,
00315     0x45454545, 0xf9f9f9f9, 0x02020202, 0x7f7f7f7f,
00316     0x50505050, 0x3c3c3c3c, 0x9f9f9f9f, 0xa8a8a8a8,
00317     0x51515151, 0xa3a3a3a3, 0x40404040, 0x8f8f8f8f,
00318     0x92929292, 0x9d9d9d9d, 0x38383838, 0xf5f5f5f5,
00319     0xbcbcbcbc, 0xb6b6b6b6, 0xdadadada, 0x21212121,
00320     0x10101010, 0xffffffff, 0xf3f3f3f3, 0xd2d2d2d2,
00321     0xcdcdcdcd, 0x0c0c0c0c, 0x13131313, 0xecececec,
00322     0x5f5f5f5f, 0x97979797, 0x44444444, 0x17171717,
00323     0xc4c4c4c4, 0xa7a7a7a7, 0x7e7e7e7e, 0x3d3d3d3d,
00324     0x64646464, 0x5d5d5d5d, 0x19191919, 0x73737373,
00325     0x60606060, 0x81818181, 0x4f4f4f4f, 0xdcdcdcdc,
00326     0x22222222, 0x2a2a2a2a, 0x90909090, 0x88888888,
00327     0x46464646, 0xeeeeeeee, 0xb8b8b8b8, 0x14141414,
00328     0xdededede, 0x5e5e5e5e, 0x0b0b0b0b, 0xdbdbdbdb,
00329     0xe0e0e0e0, 0x32323232, 0x3a3a3a3a, 0x0a0a0a0a,
00330     0x49494949, 0x06060606, 0x24242424, 0x5c5c5c5c,
00331     0xc2c2c2c2, 0xd3d3d3d3, 0xacacacac, 0x62626262,
00332     0x91919191, 0x95959595, 0xe4e4e4e4, 0x79797979,
00333     0xe7e7e7e7, 0xc8c8c8c8, 0x37373737, 0x6d6d6d6d,
00334     0x8d8d8d8d, 0xd5d5d5d5, 0x4e4e4e4e, 0xa9a9a9a9,
00335     0x6c6c6c6c, 0x56565656, 0xf4f4f4f4, 0xeaeaeaea,
00336     0x65656565, 0x7a7a7a7a, 0xaeaeaeae, 0x08080808,
00337     0xbabababa, 0x78787878, 0x25252525, 0x2e2e2e2e,
00338     0x1c1c1c1c, 0xa6a6a6a6, 0xb4b4b4b4, 0xc6c6c6c6,
00339     0xe8e8e8e8, 0xdddddddd, 0x74747474, 0x1f1f1f1f,
00340     0x4b4b4b4b, 0xbdbdbdbd, 0x8b8b8b8b, 0x8a8a8a8a,
00341     0x70707070, 0x3e3e3e3e, 0xb5b5b5b5, 0x66666666,
00342     0x48484848, 0x03030303, 0xf6f6f6f6, 0x0e0e0e0e,
00343     0x61616161, 0x35353535, 0x57575757, 0xb9b9b9b9,
00344     0x86868686, 0xc1c1c1c1, 0x1d1d1d1d, 0x9e9e9e9e,
00345     0xe1e1e1e1, 0xf8f8f8f8, 0x98989898, 0x11111111,
00346     0x69696969, 0xd9d9d9d9, 0x8e8e8e8e, 0x94949494,
00347     0x9b9b9b9b, 0x1e1e1e1e, 0x87878787, 0xe9e9e9e9,
00348     0xcececece, 0x55555555, 0x28282828, 0xdfdfdfdf,
00349     0x8c8c8c8c, 0xa1a1a1a1, 0x89898989, 0x0d0d0d0d,
00350     0xbfbfbfbf, 0xe6e6e6e6, 0x42424242, 0x68686868,
00351     0x41414141, 0x99999999, 0x2d2d2d2d, 0x0f0f0f0f,
00352     0xb0b0b0b0, 0x54545454, 0xbbbbbbbb, 0x16161616
00353 };
00354 
00355 const uint32_t _ad0[256] = {
00356     0x51f4a750, 0x7e416553, 0x1a17a4c3, 0x3a275e96,
00357     0x3bab6bcb, 0x1f9d45f1, 0xacfa58ab, 0x4be30393,
00358     0x2030fa55, 0xad766df6, 0x88cc7691, 0xf5024c25,
00359     0x4fe5d7fc, 0xc52acbd7, 0x26354480, 0xb562a38f,
00360     0xdeb15a49, 0x25ba1b67, 0x45ea0e98, 0x5dfec0e1,
00361     0xc32f7502, 0x814cf012, 0x8d4697a3, 0x6bd3f9c6,
00362     0x038f5fe7, 0x15929c95, 0xbf6d7aeb, 0x955259da,
00363     0xd4be832d, 0x587421d3, 0x49e06929, 0x8ec9c844,
00364     0x75c2896a, 0xf48e7978, 0x99583e6b, 0x27b971dd,
00365     0xbee14fb6, 0xf088ad17, 0xc920ac66, 0x7dce3ab4,
00366     0x63df4a18, 0xe51a3182, 0x97513360, 0x62537f45,
00367     0xb16477e0, 0xbb6bae84, 0xfe81a01c, 0xf9082b94,
00368     0x70486858, 0x8f45fd19, 0x94de6c87, 0x527bf8b7,
00369     0xab73d323, 0x724b02e2, 0xe31f8f57, 0x6655ab2a,
00370     0xb2eb2807, 0x2fb5c203, 0x86c57b9a, 0xd33708a5,
00371     0x302887f2, 0x23bfa5b2, 0x02036aba, 0xed16825c,
00372     0x8acf1c2b, 0xa779b492, 0xf307f2f0, 0x4e69e2a1,
00373     0x65daf4cd, 0x0605bed5, 0xd134621f, 0xc4a6fe8a,
00374     0x342e539d, 0xa2f355a0, 0x058ae132, 0xa4f6eb75,
00375     0x0b83ec39, 0x4060efaa, 0x5e719f06, 0xbd6e1051,
00376     0x3e218af9, 0x96dd063d, 0xdd3e05ae, 0x4de6bd46,
00377     0x91548db5, 0x71c45d05, 0x0406d46f, 0x605015ff,
00378     0x1998fb24, 0xd6bde997, 0x894043cc, 0x67d99e77,
00379     0xb0e842bd, 0x07898b88, 0xe7195b38, 0x79c8eedb,
00380     0xa17c0a47, 0x7c420fe9, 0xf8841ec9, 0x00000000,
00381     0x09808683, 0x322bed48, 0x1e1170ac, 0x6c5a724e,
00382     0xfd0efffb, 0x0f853856, 0x3daed51e, 0x362d3927,
00383     0x0a0fd964, 0x685ca621, 0x9b5b54d1, 0x24362e3a,
00384     0x0c0a67b1, 0x9357e70f, 0xb4ee96d2, 0x1b9b919e,
00385     0x80c0c54f, 0x61dc20a2, 0x5a774b69, 0x1c121a16,
00386     0xe293ba0a, 0xc0a02ae5, 0x3c22e043, 0x121b171d,
00387     0x0e090d0b, 0xf28bc7ad, 0x2db6a8b9, 0x141ea9c8,
00388     0x57f11985, 0xaf75074c, 0xee99ddbb, 0xa37f60fd,
00389     0xf701269f, 0x5c72f5bc, 0x44663bc5, 0x5bfb7e34,
00390     0x8b432976, 0xcb23c6dc, 0xb6edfc68, 0xb8e4f163,
00391     0xd731dcca, 0x42638510, 0x13972240, 0x84c61120,
00392     0x854a247d, 0xd2bb3df8, 0xaef93211, 0xc729a16d,
00393     0x1d9e2f4b, 0xdcb230f3, 0x0d8652ec, 0x77c1e3d0,
00394     0x2bb3166c, 0xa970b999, 0x119448fa, 0x47e96422,
00395     0xa8fc8cc4, 0xa0f03f1a, 0x567d2cd8, 0x223390ef,
00396     0x87494ec7, 0xd938d1c1, 0x8ccaa2fe, 0x98d40b36,
00397     0xa6f581cf, 0xa57ade28, 0xdab78e26, 0x3fadbfa4,
00398     0x2c3a9de4, 0x5078920d, 0x6a5fcc9b, 0x547e4662,
00399     0xf68d13c2, 0x90d8b8e8, 0x2e39f75e, 0x82c3aff5,
00400     0x9f5d80be, 0x69d0937c, 0x6fd52da9, 0xcf2512b3,
00401     0xc8ac993b, 0x10187da7, 0xe89c636e, 0xdb3bbb7b,
00402     0xcd267809, 0x6e5918f4, 0xec9ab701, 0x834f9aa8,
00403     0xe6956e65, 0xaaffe67e, 0x21bccf08, 0xef15e8e6,
00404     0xbae79bd9, 0x4a6f36ce, 0xea9f09d4, 0x29b07cd6,
00405     0x31a4b2af, 0x2a3f2331, 0xc6a59430, 0x35a266c0,
00406     0x744ebc37, 0xfc82caa6, 0xe090d0b0, 0x33a7d815,
00407     0xf104984a, 0x41ecdaf7, 0x7fcd500e, 0x1791f62f,
00408     0x764dd68d, 0x43efb04d, 0xccaa4d54, 0xe49604df,
00409     0x9ed1b5e3, 0x4c6a881b, 0xc12c1fb8, 0x4665517f,
00410     0x9d5eea04, 0x018c355d, 0xfa877473, 0xfb0b412e,
00411     0xb3671d5a, 0x92dbd252, 0xe9105633, 0x6dd64713,
00412     0x9ad7618c, 0x37a10c7a, 0x59f8148e, 0xeb133c89,
00413     0xcea927ee, 0xb761c935, 0xe11ce5ed, 0x7a47b13c,
00414     0x9cd2df59, 0x55f2733f, 0x1814ce79, 0x73c737bf,
00415     0x53f7cdea, 0x5ffdaa5b, 0xdf3d6f14, 0x7844db86,
00416     0xcaaff381, 0xb968c43e, 0x3824342c, 0xc2a3405f,
00417     0x161dc372, 0xbce2250c, 0x283c498b, 0xff0d9541,
00418     0x39a80171, 0x080cb3de, 0xd8b4e49c, 0x6456c190,
00419     0x7bcb8461, 0xd532b670, 0x486c5c74, 0xd0b85742
00420 };
00421 
00422 const uint32_t _ad1[256] = {
00423     0x5051f4a7, 0x537e4165, 0xc31a17a4, 0x963a275e,
00424     0xcb3bab6b, 0xf11f9d45, 0xabacfa58, 0x934be303,
00425     0x552030fa, 0xf6ad766d, 0x9188cc76, 0x25f5024c,
00426     0xfc4fe5d7, 0xd7c52acb, 0x80263544, 0x8fb562a3,
00427     0x49deb15a, 0x6725ba1b, 0x9845ea0e, 0xe15dfec0,
00428     0x02c32f75, 0x12814cf0, 0xa38d4697, 0xc66bd3f9,
00429     0xe7038f5f, 0x9515929c, 0xebbf6d7a, 0xda955259,
00430     0x2dd4be83, 0xd3587421, 0x2949e069, 0x448ec9c8,
00431     0x6a75c289, 0x78f48e79, 0x6b99583e, 0xdd27b971,
00432     0xb6bee14f, 0x17f088ad, 0x66c920ac, 0xb47dce3a,
00433     0x1863df4a, 0x82e51a31, 0x60975133, 0x4562537f,
00434     0xe0b16477, 0x84bb6bae, 0x1cfe81a0, 0x94f9082b,
00435     0x58704868, 0x198f45fd, 0x8794de6c, 0xb7527bf8,
00436     0x23ab73d3, 0xe2724b02, 0x57e31f8f, 0x2a6655ab,
00437     0x07b2eb28, 0x032fb5c2, 0x9a86c57b, 0xa5d33708,
00438     0xf2302887, 0xb223bfa5, 0xba02036a, 0x5ced1682,
00439     0x2b8acf1c, 0x92a779b4, 0xf0f307f2, 0xa14e69e2,
00440     0xcd65daf4, 0xd50605be, 0x1fd13462, 0x8ac4a6fe,
00441     0x9d342e53, 0xa0a2f355, 0x32058ae1, 0x75a4f6eb,
00442     0x390b83ec, 0xaa4060ef, 0x065e719f, 0x51bd6e10,
00443     0xf93e218a, 0x3d96dd06, 0xaedd3e05, 0x464de6bd,
00444     0xb591548d, 0x0571c45d, 0x6f0406d4, 0xff605015,
00445     0x241998fb, 0x97d6bde9, 0xcc894043, 0x7767d99e,
00446     0xbdb0e842, 0x8807898b, 0x38e7195b, 0xdb79c8ee,
00447     0x47a17c0a, 0xe97c420f, 0xc9f8841e, 0x00000000,
00448     0x83098086, 0x48322bed, 0xac1e1170, 0x4e6c5a72,
00449     0xfbfd0eff, 0x560f8538, 0x1e3daed5, 0x27362d39,
00450     0x640a0fd9, 0x21685ca6, 0xd19b5b54, 0x3a24362e,
00451     0xb10c0a67, 0x0f9357e7, 0xd2b4ee96, 0x9e1b9b91,
00452     0x4f80c0c5, 0xa261dc20, 0x695a774b, 0x161c121a,
00453     0x0ae293ba, 0xe5c0a02a, 0x433c22e0, 0x1d121b17,
00454     0x0b0e090d, 0xadf28bc7, 0xb92db6a8, 0xc8141ea9,
00455     0x8557f119, 0x4caf7507, 0xbbee99dd, 0xfda37f60,
00456     0x9ff70126, 0xbc5c72f5, 0xc544663b, 0x345bfb7e,
00457     0x768b4329, 0xdccb23c6, 0x68b6edfc, 0x63b8e4f1,
00458     0xcad731dc, 0x10426385, 0x40139722, 0x2084c611,
00459     0x7d854a24, 0xf8d2bb3d, 0x11aef932, 0x6dc729a1,
00460     0x4b1d9e2f, 0xf3dcb230, 0xec0d8652, 0xd077c1e3,
00461     0x6c2bb316, 0x99a970b9, 0xfa119448, 0x2247e964,
00462     0xc4a8fc8c, 0x1aa0f03f, 0xd8567d2c, 0xef223390,
00463     0xc787494e, 0xc1d938d1, 0xfe8ccaa2, 0x3698d40b,
00464     0xcfa6f581, 0x28a57ade, 0x26dab78e, 0xa43fadbf,
00465     0xe42c3a9d, 0x0d507892, 0x9b6a5fcc, 0x62547e46,
00466     0xc2f68d13, 0xe890d8b8, 0x5e2e39f7, 0xf582c3af,
00467     0xbe9f5d80, 0x7c69d093, 0xa96fd52d, 0xb3cf2512,
00468     0x3bc8ac99, 0xa710187d, 0x6ee89c63, 0x7bdb3bbb,
00469     0x09cd2678, 0xf46e5918, 0x01ec9ab7, 0xa8834f9a,
00470     0x65e6956e, 0x7eaaffe6, 0x0821bccf, 0xe6ef15e8,
00471     0xd9bae79b, 0xce4a6f36, 0xd4ea9f09, 0xd629b07c,
00472     0xaf31a4b2, 0x312a3f23, 0x30c6a594, 0xc035a266,
00473     0x37744ebc, 0xa6fc82ca, 0xb0e090d0, 0x1533a7d8,
00474     0x4af10498, 0xf741ecda, 0x0e7fcd50, 0x2f1791f6,
00475     0x8d764dd6, 0x4d43efb0, 0x54ccaa4d, 0xdfe49604,
00476     0xe39ed1b5, 0x1b4c6a88, 0xb8c12c1f, 0x7f466551,
00477     0x049d5eea, 0x5d018c35, 0x73fa8774, 0x2efb0b41,
00478     0x5ab3671d, 0x5292dbd2, 0x33e91056, 0x136dd647,
00479     0x8c9ad761, 0x7a37a10c, 0x8e59f814, 0x89eb133c,
00480     0xeecea927, 0x35b761c9, 0xede11ce5, 0x3c7a47b1,
00481     0x599cd2df, 0x3f55f273, 0x791814ce, 0xbf73c737,
00482     0xea53f7cd, 0x5b5ffdaa, 0x14df3d6f, 0x867844db,
00483     0x81caaff3, 0x3eb968c4, 0x2c382434, 0x5fc2a340,
00484     0x72161dc3, 0x0cbce225, 0x8b283c49, 0x41ff0d95,
00485     0x7139a801, 0xde080cb3, 0x9cd8b4e4, 0x906456c1,
00486     0x617bcb84, 0x70d532b6, 0x74486c5c, 0x42d0b857
00487 };
00488 
00489 const uint32_t _ad2[256] = {
00490     0xa75051f4, 0x65537e41, 0xa4c31a17, 0x5e963a27,
00491     0x6bcb3bab, 0x45f11f9d, 0x58abacfa, 0x03934be3,
00492     0xfa552030, 0x6df6ad76, 0x769188cc, 0x4c25f502,
00493     0xd7fc4fe5, 0xcbd7c52a, 0x44802635, 0xa38fb562,
00494     0x5a49deb1, 0x1b6725ba, 0x0e9845ea, 0xc0e15dfe,
00495     0x7502c32f, 0xf012814c, 0x97a38d46, 0xf9c66bd3,
00496     0x5fe7038f, 0x9c951592, 0x7aebbf6d, 0x59da9552,
00497     0x832dd4be, 0x21d35874, 0x692949e0, 0xc8448ec9,
00498     0x896a75c2, 0x7978f48e, 0x3e6b9958, 0x71dd27b9,
00499     0x4fb6bee1, 0xad17f088, 0xac66c920, 0x3ab47dce,
00500     0x4a1863df, 0x3182e51a, 0x33609751, 0x7f456253,
00501     0x77e0b164, 0xae84bb6b, 0xa01cfe81, 0x2b94f908,
00502     0x68587048, 0xfd198f45, 0x6c8794de, 0xf8b7527b,
00503     0xd323ab73, 0x02e2724b, 0x8f57e31f, 0xab2a6655,
00504     0x2807b2eb, 0xc2032fb5, 0x7b9a86c5, 0x08a5d337,
00505     0x87f23028, 0xa5b223bf, 0x6aba0203, 0x825ced16,
00506     0x1c2b8acf, 0xb492a779, 0xf2f0f307, 0xe2a14e69,
00507     0xf4cd65da, 0xbed50605, 0x621fd134, 0xfe8ac4a6,
00508     0x539d342e, 0x55a0a2f3, 0xe132058a, 0xeb75a4f6,
00509     0xec390b83, 0xefaa4060, 0x9f065e71, 0x1051bd6e,
00510     0x8af93e21, 0x063d96dd, 0x05aedd3e, 0xbd464de6,
00511     0x8db59154, 0x5d0571c4, 0xd46f0406, 0x15ff6050,
00512     0xfb241998, 0xe997d6bd, 0x43cc8940, 0x9e7767d9,
00513     0x42bdb0e8, 0x8b880789, 0x5b38e719, 0xeedb79c8,
00514     0x0a47a17c, 0x0fe97c42, 0x1ec9f884, 0x00000000,
00515     0x86830980, 0xed48322b, 0x70ac1e11, 0x724e6c5a,
00516     0xfffbfd0e, 0x38560f85, 0xd51e3dae, 0x3927362d,
00517     0xd9640a0f, 0xa621685c, 0x54d19b5b, 0x2e3a2436,
00518     0x67b10c0a, 0xe70f9357, 0x96d2b4ee, 0x919e1b9b,
00519     0xc54f80c0, 0x20a261dc, 0x4b695a77, 0x1a161c12,
00520     0xba0ae293, 0x2ae5c0a0, 0xe0433c22, 0x171d121b,
00521     0x0d0b0e09, 0xc7adf28b, 0xa8b92db6, 0xa9c8141e,
00522     0x198557f1, 0x074caf75, 0xddbbee99, 0x60fda37f,
00523     0x269ff701, 0xf5bc5c72, 0x3bc54466, 0x7e345bfb,
00524     0x29768b43, 0xc6dccb23, 0xfc68b6ed, 0xf163b8e4,
00525     0xdccad731, 0x85104263, 0x22401397, 0x112084c6,
00526     0x247d854a, 0x3df8d2bb, 0x3211aef9, 0xa16dc729,
00527     0x2f4b1d9e, 0x30f3dcb2, 0x52ec0d86, 0xe3d077c1,
00528     0x166c2bb3, 0xb999a970, 0x48fa1194, 0x642247e9,
00529     0x8cc4a8fc, 0x3f1aa0f0, 0x2cd8567d, 0x90ef2233,
00530     0x4ec78749, 0xd1c1d938, 0xa2fe8cca, 0x0b3698d4,
00531     0x81cfa6f5, 0xde28a57a, 0x8e26dab7, 0xbfa43fad,
00532     0x9de42c3a, 0x920d5078, 0xcc9b6a5f, 0x4662547e,
00533     0x13c2f68d, 0xb8e890d8, 0xf75e2e39, 0xaff582c3,
00534     0x80be9f5d, 0x937c69d0, 0x2da96fd5, 0x12b3cf25,
00535     0x993bc8ac, 0x7da71018, 0x636ee89c, 0xbb7bdb3b,
00536     0x7809cd26, 0x18f46e59, 0xb701ec9a, 0x9aa8834f,
00537     0x6e65e695, 0xe67eaaff, 0xcf0821bc, 0xe8e6ef15,
00538     0x9bd9bae7, 0x36ce4a6f, 0x09d4ea9f, 0x7cd629b0,
00539     0xb2af31a4, 0x23312a3f, 0x9430c6a5, 0x66c035a2,
00540     0xbc37744e, 0xcaa6fc82, 0xd0b0e090, 0xd81533a7,
00541     0x984af104, 0xdaf741ec, 0x500e7fcd, 0xf62f1791,
00542     0xd68d764d, 0xb04d43ef, 0x4d54ccaa, 0x04dfe496,
00543     0xb5e39ed1, 0x881b4c6a, 0x1fb8c12c, 0x517f4665,
00544     0xea049d5e, 0x355d018c, 0x7473fa87, 0x412efb0b,
00545     0x1d5ab367, 0xd25292db, 0x5633e910, 0x47136dd6,
00546     0x618c9ad7, 0x0c7a37a1, 0x148e59f8, 0x3c89eb13,
00547     0x27eecea9, 0xc935b761, 0xe5ede11c, 0xb13c7a47,
00548     0xdf599cd2, 0x733f55f2, 0xce791814, 0x37bf73c7,
00549     0xcdea53f7, 0xaa5b5ffd, 0x6f14df3d, 0xdb867844,
00550     0xf381caaf, 0xc43eb968, 0x342c3824, 0x405fc2a3,
00551     0xc372161d, 0x250cbce2, 0x498b283c, 0x9541ff0d,
00552     0x017139a8, 0xb3de080c, 0xe49cd8b4, 0xc1906456,
00553     0x84617bcb, 0xb670d532, 0x5c74486c, 0x5742d0b8
00554 };
00555 
00556 const uint32_t _ad3[256] = {
00557     0xf4a75051, 0x4165537e, 0x17a4c31a, 0x275e963a,
00558     0xab6bcb3b, 0x9d45f11f, 0xfa58abac, 0xe303934b,
00559     0x30fa5520, 0x766df6ad, 0xcc769188, 0x024c25f5,
00560     0xe5d7fc4f, 0x2acbd7c5, 0x35448026, 0x62a38fb5,
00561     0xb15a49de, 0xba1b6725, 0xea0e9845, 0xfec0e15d,
00562     0x2f7502c3, 0x4cf01281, 0x4697a38d, 0xd3f9c66b,
00563     0x8f5fe703, 0x929c9515, 0x6d7aebbf, 0x5259da95,
00564     0xbe832dd4, 0x7421d358, 0xe0692949, 0xc9c8448e,
00565     0xc2896a75, 0x8e7978f4, 0x583e6b99, 0xb971dd27,
00566     0xe14fb6be, 0x88ad17f0, 0x20ac66c9, 0xce3ab47d,
00567     0xdf4a1863, 0x1a3182e5, 0x51336097, 0x537f4562,
00568     0x6477e0b1, 0x6bae84bb, 0x81a01cfe, 0x082b94f9,
00569     0x48685870, 0x45fd198f, 0xde6c8794, 0x7bf8b752,
00570     0x73d323ab, 0x4b02e272, 0x1f8f57e3, 0x55ab2a66,
00571     0xeb2807b2, 0xb5c2032f, 0xc57b9a86, 0x3708a5d3,
00572     0x2887f230, 0xbfa5b223, 0x036aba02, 0x16825ced,
00573     0xcf1c2b8a, 0x79b492a7, 0x07f2f0f3, 0x69e2a14e,
00574     0xdaf4cd65, 0x05bed506, 0x34621fd1, 0xa6fe8ac4,
00575     0x2e539d34, 0xf355a0a2, 0x8ae13205, 0xf6eb75a4,
00576     0x83ec390b, 0x60efaa40, 0x719f065e, 0x6e1051bd,
00577     0x218af93e, 0xdd063d96, 0x3e05aedd, 0xe6bd464d,
00578     0x548db591, 0xc45d0571, 0x06d46f04, 0x5015ff60,
00579     0x98fb2419, 0xbde997d6, 0x4043cc89, 0xd99e7767,
00580     0xe842bdb0, 0x898b8807, 0x195b38e7, 0xc8eedb79,
00581     0x7c0a47a1, 0x420fe97c, 0x841ec9f8, 0x00000000,
00582     0x80868309, 0x2bed4832, 0x1170ac1e, 0x5a724e6c,
00583     0x0efffbfd, 0x8538560f, 0xaed51e3d, 0x2d392736,
00584     0x0fd9640a, 0x5ca62168, 0x5b54d19b, 0x362e3a24,
00585     0x0a67b10c, 0x57e70f93, 0xee96d2b4, 0x9b919e1b,
00586     0xc0c54f80, 0xdc20a261, 0x774b695a, 0x121a161c,
00587     0x93ba0ae2, 0xa02ae5c0, 0x22e0433c, 0x1b171d12,
00588     0x090d0b0e, 0x8bc7adf2, 0xb6a8b92d, 0x1ea9c814,
00589     0xf1198557, 0x75074caf, 0x99ddbbee, 0x7f60fda3,
00590     0x01269ff7, 0x72f5bc5c, 0x663bc544, 0xfb7e345b,
00591     0x4329768b, 0x23c6dccb, 0xedfc68b6, 0xe4f163b8,
00592     0x31dccad7, 0x63851042, 0x97224013, 0xc6112084,
00593     0x4a247d85, 0xbb3df8d2, 0xf93211ae, 0x29a16dc7,
00594     0x9e2f4b1d, 0xb230f3dc, 0x8652ec0d, 0xc1e3d077,
00595     0xb3166c2b, 0x70b999a9, 0x9448fa11, 0xe9642247,
00596     0xfc8cc4a8, 0xf03f1aa0, 0x7d2cd856, 0x3390ef22,
00597     0x494ec787, 0x38d1c1d9, 0xcaa2fe8c, 0xd40b3698,
00598     0xf581cfa6, 0x7ade28a5, 0xb78e26da, 0xadbfa43f,
00599     0x3a9de42c, 0x78920d50, 0x5fcc9b6a, 0x7e466254,
00600     0x8d13c2f6, 0xd8b8e890, 0x39f75e2e, 0xc3aff582,
00601     0x5d80be9f, 0xd0937c69, 0xd52da96f, 0x2512b3cf,
00602     0xac993bc8, 0x187da710, 0x9c636ee8, 0x3bbb7bdb,
00603     0x267809cd, 0x5918f46e, 0x9ab701ec, 0x4f9aa883,
00604     0x956e65e6, 0xffe67eaa, 0xbccf0821, 0x15e8e6ef,
00605     0xe79bd9ba, 0x6f36ce4a, 0x9f09d4ea, 0xb07cd629,
00606     0xa4b2af31, 0x3f23312a, 0xa59430c6, 0xa266c035,
00607     0x4ebc3774, 0x82caa6fc, 0x90d0b0e0, 0xa7d81533,
00608     0x04984af1, 0xecdaf741, 0xcd500e7f, 0x91f62f17,
00609     0x4dd68d76, 0xefb04d43, 0xaa4d54cc, 0x9604dfe4,
00610     0xd1b5e39e, 0x6a881b4c, 0x2c1fb8c1, 0x65517f46,
00611     0x5eea049d, 0x8c355d01, 0x877473fa, 0x0b412efb,
00612     0x671d5ab3, 0xdbd25292, 0x105633e9, 0xd647136d,
00613     0xd7618c9a, 0xa10c7a37, 0xf8148e59, 0x133c89eb,
00614     0xa927eece, 0x61c935b7, 0x1ce5ede1, 0x47b13c7a,
00615     0xd2df599c, 0xf2733f55, 0x14ce7918, 0xc737bf73,
00616     0xf7cdea53, 0xfdaa5b5f, 0x3d6f14df, 0x44db8678,
00617     0xaff381ca, 0x68c43eb9, 0x24342c38, 0xa3405fc2,
00618     0x1dc37216, 0xe2250cbc, 0x3c498b28, 0x0d9541ff,
00619     0xa8017139, 0x0cb3de08, 0xb4e49cd8, 0x56c19064,
00620     0xcb84617b, 0x32b670d5, 0x6c5c7448, 0xb85742d0
00621 };
00622 
00623 const uint32_t _ad4[256] = {
00624     0x52525252, 0x09090909, 0x6a6a6a6a, 0xd5d5d5d5,
00625     0x30303030, 0x36363636, 0xa5a5a5a5, 0x38383838,
00626     0xbfbfbfbf, 0x40404040, 0xa3a3a3a3, 0x9e9e9e9e,
00627     0x81818181, 0xf3f3f3f3, 0xd7d7d7d7, 0xfbfbfbfb,
00628     0x7c7c7c7c, 0xe3e3e3e3, 0x39393939, 0x82828282,
00629     0x9b9b9b9b, 0x2f2f2f2f, 0xffffffff, 0x87878787,
00630     0x34343434, 0x8e8e8e8e, 0x43434343, 0x44444444,
00631     0xc4c4c4c4, 0xdededede, 0xe9e9e9e9, 0xcbcbcbcb,
00632     0x54545454, 0x7b7b7b7b, 0x94949494, 0x32323232,
00633     0xa6a6a6a6, 0xc2c2c2c2, 0x23232323, 0x3d3d3d3d,
00634     0xeeeeeeee, 0x4c4c4c4c, 0x95959595, 0x0b0b0b0b,
00635     0x42424242, 0xfafafafa, 0xc3c3c3c3, 0x4e4e4e4e,
00636     0x08080808, 0x2e2e2e2e, 0xa1a1a1a1, 0x66666666,
00637     0x28282828, 0xd9d9d9d9, 0x24242424, 0xb2b2b2b2,
00638     0x76767676, 0x5b5b5b5b, 0xa2a2a2a2, 0x49494949,
00639     0x6d6d6d6d, 0x8b8b8b8b, 0xd1d1d1d1, 0x25252525,
00640     0x72727272, 0xf8f8f8f8, 0xf6f6f6f6, 0x64646464,
00641     0x86868686, 0x68686868, 0x98989898, 0x16161616,
00642     0xd4d4d4d4, 0xa4a4a4a4, 0x5c5c5c5c, 0xcccccccc,
00643     0x5d5d5d5d, 0x65656565, 0xb6b6b6b6, 0x92929292,
00644     0x6c6c6c6c, 0x70707070, 0x48484848, 0x50505050,
00645     0xfdfdfdfd, 0xedededed, 0xb9b9b9b9, 0xdadadada,
00646     0x5e5e5e5e, 0x15151515, 0x46464646, 0x57575757,
00647     0xa7a7a7a7, 0x8d8d8d8d, 0x9d9d9d9d, 0x84848484,
00648     0x90909090, 0xd8d8d8d8, 0xabababab, 0x00000000,
00649     0x8c8c8c8c, 0xbcbcbcbc, 0xd3d3d3d3, 0x0a0a0a0a,
00650     0xf7f7f7f7, 0xe4e4e4e4, 0x58585858, 0x05050505,
00651     0xb8b8b8b8, 0xb3b3b3b3, 0x45454545, 0x06060606,
00652     0xd0d0d0d0, 0x2c2c2c2c, 0x1e1e1e1e, 0x8f8f8f8f,
00653     0xcacacaca, 0x3f3f3f3f, 0x0f0f0f0f, 0x02020202,
00654     0xc1c1c1c1, 0xafafafaf, 0xbdbdbdbd, 0x03030303,
00655     0x01010101, 0x13131313, 0x8a8a8a8a, 0x6b6b6b6b,
00656     0x3a3a3a3a, 0x91919191, 0x11111111, 0x41414141,
00657     0x4f4f4f4f, 0x67676767, 0xdcdcdcdc, 0xeaeaeaea,
00658     0x97979797, 0xf2f2f2f2, 0xcfcfcfcf, 0xcececece,
00659     0xf0f0f0f0, 0xb4b4b4b4, 0xe6e6e6e6, 0x73737373,
00660     0x96969696, 0xacacacac, 0x74747474, 0x22222222,
00661     0xe7e7e7e7, 0xadadadad, 0x35353535, 0x85858585,
00662     0xe2e2e2e2, 0xf9f9f9f9, 0x37373737, 0xe8e8e8e8,
00663     0x1c1c1c1c, 0x75757575, 0xdfdfdfdf, 0x6e6e6e6e,
00664     0x47474747, 0xf1f1f1f1, 0x1a1a1a1a, 0x71717171,
00665     0x1d1d1d1d, 0x29292929, 0xc5c5c5c5, 0x89898989,
00666     0x6f6f6f6f, 0xb7b7b7b7, 0x62626262, 0x0e0e0e0e,
00667     0xaaaaaaaa, 0x18181818, 0xbebebebe, 0x1b1b1b1b,
00668     0xfcfcfcfc, 0x56565656, 0x3e3e3e3e, 0x4b4b4b4b,
00669     0xc6c6c6c6, 0xd2d2d2d2, 0x79797979, 0x20202020,
00670     0x9a9a9a9a, 0xdbdbdbdb, 0xc0c0c0c0, 0xfefefefe,
00671     0x78787878, 0xcdcdcdcd, 0x5a5a5a5a, 0xf4f4f4f4,
00672     0x1f1f1f1f, 0xdddddddd, 0xa8a8a8a8, 0x33333333,
00673     0x88888888, 0x07070707, 0xc7c7c7c7, 0x31313131,
00674     0xb1b1b1b1, 0x12121212, 0x10101010, 0x59595959,
00675     0x27272727, 0x80808080, 0xecececec, 0x5f5f5f5f,
00676     0x60606060, 0x51515151, 0x7f7f7f7f, 0xa9a9a9a9,
00677     0x19191919, 0xb5b5b5b5, 0x4a4a4a4a, 0x0d0d0d0d,
00678     0x2d2d2d2d, 0xe5e5e5e5, 0x7a7a7a7a, 0x9f9f9f9f,
00679     0x93939393, 0xc9c9c9c9, 0x9c9c9c9c, 0xefefefef,
00680     0xa0a0a0a0, 0xe0e0e0e0, 0x3b3b3b3b, 0x4d4d4d4d,
00681     0xaeaeaeae, 0x2a2a2a2a, 0xf5f5f5f5, 0xb0b0b0b0,
00682     0xc8c8c8c8, 0xebebebeb, 0xbbbbbbbb, 0x3c3c3c3c,
00683     0x83838383, 0x53535353, 0x99999999, 0x61616161,
00684     0x17171717, 0x2b2b2b2b, 0x04040404, 0x7e7e7e7e,
00685     0xbabababa, 0x77777777, 0xd6d6d6d6, 0x26262626,
00686     0xe1e1e1e1, 0x69696969, 0x14141414, 0x63636363,
00687     0x55555555, 0x21212121, 0x0c0c0c0c, 0x7d7d7d7d
00688 };
00689 
00690 static const uint32_t _arc[] = {
00691     0x01000000, 0x02000000, 0x04000000, 0x08000000,
00692     0x10000000, 0x20000000, 0x40000000, 0x80000000,
00693     0x1b000000, 0x36000000
00694 };
00695 
00696 #define etfs(i) \
00697     t0 = \
00698         _ae0[(s0 >> 24)       ] ^ \
00699         _ae1[(s1 >> 16) & 0xff] ^ \
00700         _ae2[(s2 >>  8) & 0xff] ^ \
00701         _ae3[(s3      ) & 0xff] ^ \
00702         rk[i+0]; \
00703     t1 = \
00704         _ae0[(s1 >> 24)       ] ^ \
00705         _ae1[(s2 >> 16) & 0xff] ^ \
00706         _ae2[(s3 >>  8) & 0xff] ^ \
00707         _ae3[(s0      ) & 0xff] ^ \
00708         rk[i+1]; \
00709     t2 = \
00710         _ae0[(s2 >> 24)       ] ^ \
00711         _ae1[(s3 >> 16) & 0xff] ^ \
00712         _ae2[(s0 >>  8) & 0xff] ^ \
00713         _ae3[(s1      ) & 0xff] ^ \
00714         rk[i+2]; \
00715     t3 = \
00716         _ae0[(s3 >> 24)       ] ^ \
00717         _ae1[(s0 >> 16) & 0xff] ^ \
00718         _ae2[(s1 >>  8) & 0xff] ^ \
00719         _ae3[(s2      ) & 0xff] ^ \
00720         rk[i+3];
00721 
00722 #define esft(i) \
00723     s0 = \
00724         _ae0[(t0 >> 24)       ] ^ \
00725         _ae1[(t1 >> 16) & 0xff] ^ \
00726         _ae2[(t2 >>  8) & 0xff] ^ \
00727         _ae3[(t3      ) & 0xff] ^ \
00728         rk[i+0]; \
00729     s1 = \
00730         _ae0[(t1 >> 24)       ] ^ \
00731         _ae1[(t2 >> 16) & 0xff] ^ \
00732         _ae2[(t3 >>  8) & 0xff] ^ \
00733         _ae3[(t0      ) & 0xff] ^ \
00734         rk[i+1]; \
00735     s2 = \
00736         _ae0[(t2 >> 24)       ] ^ \
00737         _ae1[(t3 >> 16) & 0xff] ^ \
00738         _ae2[(t0 >>  8) & 0xff] ^ \
00739         _ae3[(t1      ) & 0xff] ^ \
00740         rk[i+2]; \
00741     s3 = \
00742         _ae0[(t3 >> 24)       ] ^ \
00743         _ae1[(t0 >> 16) & 0xff] ^ \
00744         _ae2[(t1 >>  8) & 0xff] ^ \
00745         _ae3[(t2      ) & 0xff] ^ \
00746         rk[i+3];
00747 
00748 #define elr() \
00749     s0 = \
00750         (_ae4[(t0 >> 24)       ] & 0xff000000) ^ \
00751         (_ae4[(t1 >> 16) & 0xff] & 0x00ff0000) ^ \
00752         (_ae4[(t2 >>  8) & 0xff] & 0x0000ff00) ^ \
00753         (_ae4[(t3      ) & 0xff] & 0x000000ff) ^ \
00754         rk[0]; \
00755     s1 = \
00756         (_ae4[(t1 >> 24)       ] & 0xff000000) ^ \
00757         (_ae4[(t2 >> 16) & 0xff] & 0x00ff0000) ^ \
00758         (_ae4[(t3 >>  8) & 0xff] & 0x0000ff00) ^ \
00759         (_ae4[(t0      ) & 0xff] & 0x000000ff) ^ \
00760         rk[1]; \
00761     s2 = \
00762         (_ae4[(t2 >> 24)       ] & 0xff000000) ^ \
00763         (_ae4[(t3 >> 16) & 0xff] & 0x00ff0000) ^ \
00764         (_ae4[(t0 >>  8) & 0xff] & 0x0000ff00) ^ \
00765         (_ae4[(t1      ) & 0xff] & 0x000000ff) ^ \
00766         rk[2]; \
00767     s3 = \
00768         (_ae4[(t3 >> 24)       ] & 0xff000000) ^ \
00769         (_ae4[(t0 >> 16) & 0xff] & 0x00ff0000) ^ \
00770         (_ae4[(t1 >>  8) & 0xff] & 0x0000ff00) ^ \
00771         (_ae4[(t2      ) & 0xff] & 0x000000ff) ^ \
00772         rk[3];
00773 
00774 #define dtfs(i) \
00775     t0 = \
00776         _ad0[(s0 >> 24)       ] ^ \
00777         _ad1[(s3 >> 16) & 0xff] ^ \
00778         _ad2[(s2 >>  8) & 0xff] ^ \
00779         _ad3[(s1      ) & 0xff] ^ \
00780         rk[i+0]; \
00781     t1 = \
00782         _ad0[(s1 >> 24)       ] ^ \
00783         _ad1[(s0 >> 16) & 0xff] ^ \
00784         _ad2[(s3 >>  8) & 0xff] ^ \
00785         _ad3[(s2      ) & 0xff] ^ \
00786         rk[i+1]; \
00787     t2 = \
00788         _ad0[(s2 >> 24)       ] ^ \
00789         _ad1[(s1 >> 16) & 0xff] ^ \
00790         _ad2[(s0 >>  8) & 0xff] ^ \
00791         _ad3[(s3      ) & 0xff] ^ \
00792         rk[i+2]; \
00793     t3 = \
00794         _ad0[(s3 >> 24)       ] ^ \
00795         _ad1[(s2 >> 16) & 0xff] ^ \
00796         _ad2[(s1 >>  8) & 0xff] ^ \
00797         _ad3[(s0      ) & 0xff] ^ \
00798         rk[i+3];
00799 
00800 #define dsft(i) \
00801     s0 = \
00802         _ad0[(t0 >> 24)       ] ^ \
00803         _ad1[(t3 >> 16) & 0xff] ^ \
00804         _ad2[(t2 >>  8) & 0xff] ^ \
00805         _ad3[(t1      ) & 0xff] ^ \
00806         rk[i+0]; \
00807     s1 = \
00808         _ad0[(t1 >> 24)       ] ^ \
00809         _ad1[(t0 >> 16) & 0xff] ^ \
00810         _ad2[(t3 >>  8) & 0xff] ^ \
00811         _ad3[(t2      ) & 0xff] ^ \
00812         rk[i+1]; \
00813     s2 = \
00814         _ad0[(t2 >> 24)       ] ^ \
00815         _ad1[(t1 >> 16) & 0xff] ^ \
00816         _ad2[(t0 >>  8) & 0xff] ^ \
00817         _ad3[(t3      ) & 0xff] ^ \
00818         rk[i+2]; \
00819     s3 = \
00820         _ad0[(t3 >> 24)       ] ^ \
00821         _ad1[(t2 >> 16) & 0xff] ^ \
00822         _ad2[(t1 >>  8) & 0xff] ^ \
00823         _ad3[(t0      ) & 0xff] ^ \
00824         rk[i+3];
00825 
00826 #define dlr() \
00827     s0 = \
00828         (_ad4[(t0 >> 24)       ] & 0xff000000) ^ \
00829         (_ad4[(t3 >> 16) & 0xff] & 0x00ff0000) ^ \
00830         (_ad4[(t2 >>  8) & 0xff] & 0x0000ff00) ^ \
00831         (_ad4[(t1      ) & 0xff] & 0x000000ff) ^ \
00832         rk[0]; \
00833     s1 = \
00834         (_ad4[(t1 >> 24)       ] & 0xff000000) ^ \
00835         (_ad4[(t0 >> 16) & 0xff] & 0x00ff0000) ^ \
00836         (_ad4[(t3 >>  8) & 0xff] & 0x0000ff00) ^ \
00837         (_ad4[(t2      ) & 0xff] & 0x000000ff) ^ \
00838         rk[1]; \
00839     s2 = \
00840         (_ad4[(t2 >> 24)       ] & 0xff000000) ^ \
00841         (_ad4[(t1 >> 16) & 0xff] & 0x00ff0000) ^ \
00842         (_ad4[(t0 >>  8) & 0xff] & 0x0000ff00) ^ \
00843         (_ad4[(t3      ) & 0xff] & 0x000000ff) ^ \
00844         rk[2]; \
00845     s3 = \
00846         (_ad4[(t3 >> 24)       ] & 0xff000000) ^ \
00847         (_ad4[(t2 >> 16) & 0xff] & 0x00ff0000) ^ \
00848         (_ad4[(t1 >>  8) & 0xff] & 0x0000ff00) ^ \
00849         (_ad4[(t0      ) & 0xff] & 0x000000ff) ^ \
00850         rk[3];

Generated on Wed Mar 24 13:56:53 2004 for BeeCrypt by doxygen 1.3.6