15 #if CRYPTOPP_MSC_VERSION 16 # pragma warning(disable: 4456 6246) 26 #define SLOW_ROUND(lh, ll, rh, rl, kh, kl) { \ 27 word32 zr = ll ^ kl; \ 28 word32 zl = lh ^ kh; \ 29 zr= rotlFixed(s1[GETBYTE(zr, 3)], 1) | \ 30 (rotrFixed(s1[GETBYTE(zr, 2)], 1) << 24) | \ 31 (s1[rotlFixed(CRYPTOPP_GET_BYTE_AS_BYTE(zr, 1),1)] << 16) | \ 32 (s1[GETBYTE(zr, 0)] << 8); \ 33 zl= (s1[GETBYTE(zl, 3)] << 24) | \ 34 (rotlFixed(s1[GETBYTE(zl, 2)], 1) << 16) | \ 35 (rotrFixed(s1[GETBYTE(zl, 1)], 1) << 8) | \ 36 s1[rotlFixed(CRYPTOPP_GET_BYTE_AS_BYTE(zl, 0), 1)]; \ 38 zr = zl ^ rotlFixed(zr, 8); \ 39 zl = zr ^ rotrFixed(zl, 8); \ 40 rh ^= rotlFixed(zr, 16); \ 42 rl ^= rotlFixed(zl, 8); \ 46 #define ROUND(lh, ll, rh, rl, kh, kl) { \ 47 word32 th = lh ^ kh; \ 48 word32 tl = ll ^ kl; \ 49 word32 d = SP[0][GETBYTE(tl,0)] ^ SP[1][GETBYTE(tl,3)] ^ SP[2][GETBYTE(tl,2)] ^ SP[3][GETBYTE(tl,1)]; \ 50 word32 u = SP[0][GETBYTE(th,3)] ^ SP[1][GETBYTE(th,2)] ^ SP[2][GETBYTE(th,1)] ^ SP[3][GETBYTE(th,0)]; \ 54 rl ^= rotrFixed(u, 8);} 56 #define DOUBLE_ROUND(lh, ll, rh, rl, k0, k1, k2, k3) \ 57 ROUND(lh, ll, rh, rl, k0, k1) \ 58 ROUND(rh, rl, lh, ll, k2, k3) 60 #ifdef IS_LITTLE_ENDIAN 61 #define EFI(i) (1-(i)) 66 void Camellia::Base::UncheckedSetKey(
const byte *key,
unsigned int keylen,
const NameValuePairs &)
68 m_rounds = (keylen >= 24) ? 4 : 3;
69 unsigned int kslen = (8 * m_rounds + 2);
71 word32 *ks32 = m_key.data();
73 if (!IsForwardTransformation())
76 word32 kl0, kl1, kl2, kl3;
78 getBlock(kl0)(kl1)(kl2)(kl3);
79 word32 k0=kl0, k1=kl1, k2=kl2, k3=kl3;
81 #define CALC_ADDR2(base, i, j) ((byte *)(base)+8*(i)+4*(j)+((-16*(i))&m)) 82 #define CALC_ADDR(base, i) CALC_ADDR2(base, i, 0) 87 #define PREPARE_KS_ROUNDS \ 88 kwl = (word64(k0) << 32) | k1; \ 89 kwr = (word64(k2) << 32) | k3 90 #define KS_ROUND_0(i) \ 91 *(word64*)CALC_ADDR(ks32, i+EFI(0)) = kwl; \ 92 *(word64*)CALC_ADDR(ks32, i+EFI(1)) = kwr 93 #define KS_ROUND(i, r, which) \ 94 if (which & (1<<int(r<64))) *(word64*)CALC_ADDR(ks32, i+EFI(r<64)) = (kwr << (r%64)) | (kwl >> (64 - (r%64))); \ 95 if (which & (1<<int(r>64))) *(word64*)CALC_ADDR(ks32, i+EFI(r>64)) = (kwl << (r%64)) | (kwr >> (64 - (r%64))) 100 __m128i *ks128 = (__m128i *)ks32+a/2;
102 #define PREPARE_KS_ROUNDS \ 103 kw = _mm_set_epi32(k0, k1, k2, k3); \ 104 if (m) kw2 = kw, kw = _mm_shuffle_epi32(kw, _MM_SHUFFLE(1, 0, 3, 2)); \ 105 else kw2 = _mm_shuffle_epi32(kw, _MM_SHUFFLE(1, 0, 3, 2)) 106 #define KS_ROUND_0(i) \ 107 _mm_store_si128((__m128i *)CALC_ADDR(ks128, i), kw) 108 #define KS_ROUND(i, r, which) { \ 110 if (r<64 && (which!=1 || m)) temp = _mm_or_si128(_mm_slli_epi64(kw, r%64), _mm_srli_epi64(kw2, 64-r%64)); \ 111 else temp = _mm_or_si128(_mm_slli_epi64(kw2, r%64), _mm_srli_epi64(kw, 64-r%64)); \ 112 if (which & 2) _mm_store_si128((__m128i *)CALC_ADDR(ks128, i), temp); \ 113 else _mm_storel_epi64((__m128i*)CALC_ADDR(ks32, i+EFI(0)), temp); \ 127 KS_ROUND(22, 111, 3);
130 k0=kl0, k1=kl1, k2=kl2, k3=kl3;
131 DOUBLE_ROUND(k0, k1, k2, k3, 0xA09E667Ful, 0x3BCC908Bul, 0xB67AE858ul, 0x4CAA73B2ul);
132 k0^=kl0, k1^=kl1, k2^=kl2, k3^=kl3;
133 DOUBLE_ROUND(k0, k1, k2, k3, 0xC6EF372Ful, 0xE94F82BEul, 0x54FF53A5ul, 0xF1D36F1Cul);
152 KS_ROUND(30, 111, 3);
155 word32 kr0, kr1, kr2, kr3;
158 kr2 = ~kr0, kr3 = ~kr1;
161 k0=kr0, k1=kr1, k2=kr2, k3=kr3;
170 k0^=kl0, k1^=kl1, k2^=kl2, k3^=kl3;
171 DOUBLE_ROUND(k0, k1, k2, k3, 0xA09E667Ful, 0x3BCC908Bul, 0xB67AE858ul, 0x4CAA73B2ul);
172 k0^=kl0, k1^=kl1, k2^=kl2, k3^=kl3;
173 DOUBLE_ROUND(k0, k1, k2, k3, 0xC6EF372Ful, 0xE94F82BEul, 0x54FF53A5ul, 0xF1D36F1Cul);
182 k0^=kr0, k1^=kr1, k2^=kr2, k3^=kr3;
183 DOUBLE_ROUND(k0, k1, k2, k3, 0x10E527FAul, 0xDE682D1Dul, 0xB05688C2ul, 0xB3E6C1FDul);
193 void Camellia::Base::ProcessAndXorBlock(
const byte *inBlock,
const byte *xorBlock, byte *outBlock)
const 195 #define KS(i, j) ks[i*4 + EFI(j/2)*2 + EFI(j%2)] 197 #define FL(klh, kll, krh, krl) \ 198 ll ^= rotlFixed(lh & klh, 1); \ 201 rl ^= rotlFixed(rh & krh, 1); 203 word32 lh, ll, rh, rl;
205 Block::Get(inBlock)(lh)(ll)(rh)(rl);
206 const word32 *ks = m_key.data();
213 const int cacheLineSize = GetCacheLineSize();
216 for (i=0; i<256; i+=cacheLineSize)
217 u &= *(
const word32 *)(s1+i);
218 u &= *(
const word32 *)(s1+252);
221 SLOW_ROUND(lh, ll, rh, rl, KS(1,0), KS(1,1))
222 SLOW_ROUND(rh, rl, lh, ll, KS(1,2), KS(1,3))
223 for (i = m_rounds-1; i > 0; --i)
225 DOUBLE_ROUND(lh, ll, rh, rl, KS(2,0), KS(2,1), KS(2,2), KS(2,3))
226 DOUBLE_ROUND(lh, ll, rh, rl, KS(3,0), KS(3,1), KS(3,2), KS(3,3))
227 FL(KS(4,0), KS(4,1), KS(4,2), KS(4,3));
228 DOUBLE_ROUND(lh, ll, rh, rl, KS(5,0), KS(5,1), KS(5,2), KS(5,3))
231 DOUBLE_ROUND(lh, ll, rh, rl, KS(2,0), KS(2,1), KS(2,2), KS(2,3))
232 ROUND(lh, ll, rh, rl, KS(3,0), KS(3,1))
233 SLOW_ROUND(rh, rl, lh, ll, KS(3,2), KS(3,3))
238 Block::Put(xorBlock, outBlock)(rh)(rl)(lh)(ll);
243 const byte
Camellia::Base::s1[256] =
245 112,130,44,236,179,39,192,229,228,133,87,53,234,12,174,65,
246 35,239,107,147,69,25,165,33,237,14,79,78,29,101,146,189,
247 134,184,175,143,124,235,31,206,62,48,220,95,94,197,11,26,
248 166,225,57,202,213,71,93,61,217,1,90,214,81,86,108,77,
249 139,13,154,102,251,204,176,45,116,18,43,32,240,177,132,153,
250 223,76,203,194,52,126,118,5,109,183,169,49,209,23,4,215,
251 20,88,58,97,222,27,17,28,50,15,156,22,83,24,242,34,
252 254,68,207,178,195,181,122,145,36,8,232,168,96,252,105,80,
253 170,208,160,125,161,137,98,151,84,91,30,149,224,255,100,210,
254 16,196,0,72,163,247,117,219,138,3,230,218,9,63,221,148,
255 135,92,131,2,205,74,144,51,115,103,246,243,157,127,191,226,
256 82,155,216,38,200,55,198,59,129,150,111,75,19,190,99,46,
257 233,121,167,140,159,110,188,142,41,245,249,182,47,253,180,89,
258 120,152,6,106,231,70,113,186,212,37,171,66,136,162,141,250,
259 114,7,185,85,248,238,172,10,54,73,42,104,60,56,241,164,
260 64,40,211,123,187,201,67,193,21,227,173,244,119,199,128,158
263 const word32 Camellia::Base::SP[4][256] = {
265 0x70707000, 0x82828200, 0x2c2c2c00, 0xececec00,
266 0xb3b3b300, 0x27272700, 0xc0c0c000, 0xe5e5e500,
267 0xe4e4e400, 0x85858500, 0x57575700, 0x35353500,
268 0xeaeaea00, 0x0c0c0c00, 0xaeaeae00, 0x41414100,
269 0x23232300, 0xefefef00, 0x6b6b6b00, 0x93939300,
270 0x45454500, 0x19191900, 0xa5a5a500, 0x21212100,
271 0xededed00, 0x0e0e0e00, 0x4f4f4f00, 0x4e4e4e00,
272 0x1d1d1d00, 0x65656500, 0x92929200, 0xbdbdbd00,
273 0x86868600, 0xb8b8b800, 0xafafaf00, 0x8f8f8f00,
274 0x7c7c7c00, 0xebebeb00, 0x1f1f1f00, 0xcecece00,
275 0x3e3e3e00, 0x30303000, 0xdcdcdc00, 0x5f5f5f00,
276 0x5e5e5e00, 0xc5c5c500, 0x0b0b0b00, 0x1a1a1a00,
277 0xa6a6a600, 0xe1e1e100, 0x39393900, 0xcacaca00,
278 0xd5d5d500, 0x47474700, 0x5d5d5d00, 0x3d3d3d00,
279 0xd9d9d900, 0x01010100, 0x5a5a5a00, 0xd6d6d600,
280 0x51515100, 0x56565600, 0x6c6c6c00, 0x4d4d4d00,
281 0x8b8b8b00, 0x0d0d0d00, 0x9a9a9a00, 0x66666600,
282 0xfbfbfb00, 0xcccccc00, 0xb0b0b000, 0x2d2d2d00,
283 0x74747400, 0x12121200, 0x2b2b2b00, 0x20202000,
284 0xf0f0f000, 0xb1b1b100, 0x84848400, 0x99999900,
285 0xdfdfdf00, 0x4c4c4c00, 0xcbcbcb00, 0xc2c2c200,
286 0x34343400, 0x7e7e7e00, 0x76767600, 0x05050500,
287 0x6d6d6d00, 0xb7b7b700, 0xa9a9a900, 0x31313100,
288 0xd1d1d100, 0x17171700, 0x04040400, 0xd7d7d700,
289 0x14141400, 0x58585800, 0x3a3a3a00, 0x61616100,
290 0xdedede00, 0x1b1b1b00, 0x11111100, 0x1c1c1c00,
291 0x32323200, 0x0f0f0f00, 0x9c9c9c00, 0x16161600,
292 0x53535300, 0x18181800, 0xf2f2f200, 0x22222200,
293 0xfefefe00, 0x44444400, 0xcfcfcf00, 0xb2b2b200,
294 0xc3c3c300, 0xb5b5b500, 0x7a7a7a00, 0x91919100,
295 0x24242400, 0x08080800, 0xe8e8e800, 0xa8a8a800,
296 0x60606000, 0xfcfcfc00, 0x69696900, 0x50505000,
297 0xaaaaaa00, 0xd0d0d000, 0xa0a0a000, 0x7d7d7d00,
298 0xa1a1a100, 0x89898900, 0x62626200, 0x97979700,
299 0x54545400, 0x5b5b5b00, 0x1e1e1e00, 0x95959500,
300 0xe0e0e000, 0xffffff00, 0x64646400, 0xd2d2d200,
301 0x10101000, 0xc4c4c400, 0x00000000, 0x48484800,
302 0xa3a3a300, 0xf7f7f700, 0x75757500, 0xdbdbdb00,
303 0x8a8a8a00, 0x03030300, 0xe6e6e600, 0xdadada00,
304 0x09090900, 0x3f3f3f00, 0xdddddd00, 0x94949400,
305 0x87878700, 0x5c5c5c00, 0x83838300, 0x02020200,
306 0xcdcdcd00, 0x4a4a4a00, 0x90909000, 0x33333300,
307 0x73737300, 0x67676700, 0xf6f6f600, 0xf3f3f300,
308 0x9d9d9d00, 0x7f7f7f00, 0xbfbfbf00, 0xe2e2e200,
309 0x52525200, 0x9b9b9b00, 0xd8d8d800, 0x26262600,
310 0xc8c8c800, 0x37373700, 0xc6c6c600, 0x3b3b3b00,
311 0x81818100, 0x96969600, 0x6f6f6f00, 0x4b4b4b00,
312 0x13131300, 0xbebebe00, 0x63636300, 0x2e2e2e00,
313 0xe9e9e900, 0x79797900, 0xa7a7a700, 0x8c8c8c00,
314 0x9f9f9f00, 0x6e6e6e00, 0xbcbcbc00, 0x8e8e8e00,
315 0x29292900, 0xf5f5f500, 0xf9f9f900, 0xb6b6b600,
316 0x2f2f2f00, 0xfdfdfd00, 0xb4b4b400, 0x59595900,
317 0x78787800, 0x98989800, 0x06060600, 0x6a6a6a00,
318 0xe7e7e700, 0x46464600, 0x71717100, 0xbababa00,
319 0xd4d4d400, 0x25252500, 0xababab00, 0x42424200,
320 0x88888800, 0xa2a2a200, 0x8d8d8d00, 0xfafafa00,
321 0x72727200, 0x07070700, 0xb9b9b900, 0x55555500,
322 0xf8f8f800, 0xeeeeee00, 0xacacac00, 0x0a0a0a00,
323 0x36363600, 0x49494900, 0x2a2a2a00, 0x68686800,
324 0x3c3c3c00, 0x38383800, 0xf1f1f100, 0xa4a4a400,
325 0x40404000, 0x28282800, 0xd3d3d300, 0x7b7b7b00,
326 0xbbbbbb00, 0xc9c9c900, 0x43434300, 0xc1c1c100,
327 0x15151500, 0xe3e3e300, 0xadadad00, 0xf4f4f400,
328 0x77777700, 0xc7c7c700, 0x80808000, 0x9e9e9e00
331 0x00e0e0e0, 0x00050505, 0x00585858, 0x00d9d9d9,
332 0x00676767, 0x004e4e4e, 0x00818181, 0x00cbcbcb,
333 0x00c9c9c9, 0x000b0b0b, 0x00aeaeae, 0x006a6a6a,
334 0x00d5d5d5, 0x00181818, 0x005d5d5d, 0x00828282,
335 0x00464646, 0x00dfdfdf, 0x00d6d6d6, 0x00272727,
336 0x008a8a8a, 0x00323232, 0x004b4b4b, 0x00424242,
337 0x00dbdbdb, 0x001c1c1c, 0x009e9e9e, 0x009c9c9c,
338 0x003a3a3a, 0x00cacaca, 0x00252525, 0x007b7b7b,
339 0x000d0d0d, 0x00717171, 0x005f5f5f, 0x001f1f1f,
340 0x00f8f8f8, 0x00d7d7d7, 0x003e3e3e, 0x009d9d9d,
341 0x007c7c7c, 0x00606060, 0x00b9b9b9, 0x00bebebe,
342 0x00bcbcbc, 0x008b8b8b, 0x00161616, 0x00343434,
343 0x004d4d4d, 0x00c3c3c3, 0x00727272, 0x00959595,
344 0x00ababab, 0x008e8e8e, 0x00bababa, 0x007a7a7a,
345 0x00b3b3b3, 0x00020202, 0x00b4b4b4, 0x00adadad,
346 0x00a2a2a2, 0x00acacac, 0x00d8d8d8, 0x009a9a9a,
347 0x00171717, 0x001a1a1a, 0x00353535, 0x00cccccc,
348 0x00f7f7f7, 0x00999999, 0x00616161, 0x005a5a5a,
349 0x00e8e8e8, 0x00242424, 0x00565656, 0x00404040,
350 0x00e1e1e1, 0x00636363, 0x00090909, 0x00333333,
351 0x00bfbfbf, 0x00989898, 0x00979797, 0x00858585,
352 0x00686868, 0x00fcfcfc, 0x00ececec, 0x000a0a0a,
353 0x00dadada, 0x006f6f6f, 0x00535353, 0x00626262,
354 0x00a3a3a3, 0x002e2e2e, 0x00080808, 0x00afafaf,
355 0x00282828, 0x00b0b0b0, 0x00747474, 0x00c2c2c2,
356 0x00bdbdbd, 0x00363636, 0x00222222, 0x00383838,
357 0x00646464, 0x001e1e1e, 0x00393939, 0x002c2c2c,
358 0x00a6a6a6, 0x00303030, 0x00e5e5e5, 0x00444444,
359 0x00fdfdfd, 0x00888888, 0x009f9f9f, 0x00656565,
360 0x00878787, 0x006b6b6b, 0x00f4f4f4, 0x00232323,
361 0x00484848, 0x00101010, 0x00d1d1d1, 0x00515151,
362 0x00c0c0c0, 0x00f9f9f9, 0x00d2d2d2, 0x00a0a0a0,
363 0x00555555, 0x00a1a1a1, 0x00414141, 0x00fafafa,
364 0x00434343, 0x00131313, 0x00c4c4c4, 0x002f2f2f,
365 0x00a8a8a8, 0x00b6b6b6, 0x003c3c3c, 0x002b2b2b,
366 0x00c1c1c1, 0x00ffffff, 0x00c8c8c8, 0x00a5a5a5,
367 0x00202020, 0x00898989, 0x00000000, 0x00909090,
368 0x00474747, 0x00efefef, 0x00eaeaea, 0x00b7b7b7,
369 0x00151515, 0x00060606, 0x00cdcdcd, 0x00b5b5b5,
370 0x00121212, 0x007e7e7e, 0x00bbbbbb, 0x00292929,
371 0x000f0f0f, 0x00b8b8b8, 0x00070707, 0x00040404,
372 0x009b9b9b, 0x00949494, 0x00212121, 0x00666666,
373 0x00e6e6e6, 0x00cecece, 0x00ededed, 0x00e7e7e7,
374 0x003b3b3b, 0x00fefefe, 0x007f7f7f, 0x00c5c5c5,
375 0x00a4a4a4, 0x00373737, 0x00b1b1b1, 0x004c4c4c,
376 0x00919191, 0x006e6e6e, 0x008d8d8d, 0x00767676,
377 0x00030303, 0x002d2d2d, 0x00dedede, 0x00969696,
378 0x00262626, 0x007d7d7d, 0x00c6c6c6, 0x005c5c5c,
379 0x00d3d3d3, 0x00f2f2f2, 0x004f4f4f, 0x00191919,
380 0x003f3f3f, 0x00dcdcdc, 0x00797979, 0x001d1d1d,
381 0x00525252, 0x00ebebeb, 0x00f3f3f3, 0x006d6d6d,
382 0x005e5e5e, 0x00fbfbfb, 0x00696969, 0x00b2b2b2,
383 0x00f0f0f0, 0x00313131, 0x000c0c0c, 0x00d4d4d4,
384 0x00cfcfcf, 0x008c8c8c, 0x00e2e2e2, 0x00757575,
385 0x00a9a9a9, 0x004a4a4a, 0x00575757, 0x00848484,
386 0x00111111, 0x00454545, 0x001b1b1b, 0x00f5f5f5,
387 0x00e4e4e4, 0x000e0e0e, 0x00737373, 0x00aaaaaa,
388 0x00f1f1f1, 0x00dddddd, 0x00595959, 0x00141414,
389 0x006c6c6c, 0x00929292, 0x00545454, 0x00d0d0d0,
390 0x00787878, 0x00707070, 0x00e3e3e3, 0x00494949,
391 0x00808080, 0x00505050, 0x00a7a7a7, 0x00f6f6f6,
392 0x00777777, 0x00939393, 0x00868686, 0x00838383,
393 0x002a2a2a, 0x00c7c7c7, 0x005b5b5b, 0x00e9e9e9,
394 0x00eeeeee, 0x008f8f8f, 0x00010101, 0x003d3d3d
397 0x38003838, 0x41004141, 0x16001616, 0x76007676,
398 0xd900d9d9, 0x93009393, 0x60006060, 0xf200f2f2,
399 0x72007272, 0xc200c2c2, 0xab00abab, 0x9a009a9a,
400 0x75007575, 0x06000606, 0x57005757, 0xa000a0a0,
401 0x91009191, 0xf700f7f7, 0xb500b5b5, 0xc900c9c9,
402 0xa200a2a2, 0x8c008c8c, 0xd200d2d2, 0x90009090,
403 0xf600f6f6, 0x07000707, 0xa700a7a7, 0x27002727,
404 0x8e008e8e, 0xb200b2b2, 0x49004949, 0xde00dede,
405 0x43004343, 0x5c005c5c, 0xd700d7d7, 0xc700c7c7,
406 0x3e003e3e, 0xf500f5f5, 0x8f008f8f, 0x67006767,
407 0x1f001f1f, 0x18001818, 0x6e006e6e, 0xaf00afaf,
408 0x2f002f2f, 0xe200e2e2, 0x85008585, 0x0d000d0d,
409 0x53005353, 0xf000f0f0, 0x9c009c9c, 0x65006565,
410 0xea00eaea, 0xa300a3a3, 0xae00aeae, 0x9e009e9e,
411 0xec00ecec, 0x80008080, 0x2d002d2d, 0x6b006b6b,
412 0xa800a8a8, 0x2b002b2b, 0x36003636, 0xa600a6a6,
413 0xc500c5c5, 0x86008686, 0x4d004d4d, 0x33003333,
414 0xfd00fdfd, 0x66006666, 0x58005858, 0x96009696,
415 0x3a003a3a, 0x09000909, 0x95009595, 0x10001010,
416 0x78007878, 0xd800d8d8, 0x42004242, 0xcc00cccc,
417 0xef00efef, 0x26002626, 0xe500e5e5, 0x61006161,
418 0x1a001a1a, 0x3f003f3f, 0x3b003b3b, 0x82008282,
419 0xb600b6b6, 0xdb00dbdb, 0xd400d4d4, 0x98009898,
420 0xe800e8e8, 0x8b008b8b, 0x02000202, 0xeb00ebeb,
421 0x0a000a0a, 0x2c002c2c, 0x1d001d1d, 0xb000b0b0,
422 0x6f006f6f, 0x8d008d8d, 0x88008888, 0x0e000e0e,
423 0x19001919, 0x87008787, 0x4e004e4e, 0x0b000b0b,
424 0xa900a9a9, 0x0c000c0c, 0x79007979, 0x11001111,
425 0x7f007f7f, 0x22002222, 0xe700e7e7, 0x59005959,
426 0xe100e1e1, 0xda00dada, 0x3d003d3d, 0xc800c8c8,
427 0x12001212, 0x04000404, 0x74007474, 0x54005454,
428 0x30003030, 0x7e007e7e, 0xb400b4b4, 0x28002828,
429 0x55005555, 0x68006868, 0x50005050, 0xbe00bebe,
430 0xd000d0d0, 0xc400c4c4, 0x31003131, 0xcb00cbcb,
431 0x2a002a2a, 0xad00adad, 0x0f000f0f, 0xca00caca,
432 0x70007070, 0xff00ffff, 0x32003232, 0x69006969,
433 0x08000808, 0x62006262, 0x00000000, 0x24002424,
434 0xd100d1d1, 0xfb00fbfb, 0xba00baba, 0xed00eded,
435 0x45004545, 0x81008181, 0x73007373, 0x6d006d6d,
436 0x84008484, 0x9f009f9f, 0xee00eeee, 0x4a004a4a,
437 0xc300c3c3, 0x2e002e2e, 0xc100c1c1, 0x01000101,
438 0xe600e6e6, 0x25002525, 0x48004848, 0x99009999,
439 0xb900b9b9, 0xb300b3b3, 0x7b007b7b, 0xf900f9f9,
440 0xce00cece, 0xbf00bfbf, 0xdf00dfdf, 0x71007171,
441 0x29002929, 0xcd00cdcd, 0x6c006c6c, 0x13001313,
442 0x64006464, 0x9b009b9b, 0x63006363, 0x9d009d9d,
443 0xc000c0c0, 0x4b004b4b, 0xb700b7b7, 0xa500a5a5,
444 0x89008989, 0x5f005f5f, 0xb100b1b1, 0x17001717,
445 0xf400f4f4, 0xbc00bcbc, 0xd300d3d3, 0x46004646,
446 0xcf00cfcf, 0x37003737, 0x5e005e5e, 0x47004747,
447 0x94009494, 0xfa00fafa, 0xfc00fcfc, 0x5b005b5b,
448 0x97009797, 0xfe00fefe, 0x5a005a5a, 0xac00acac,
449 0x3c003c3c, 0x4c004c4c, 0x03000303, 0x35003535,
450 0xf300f3f3, 0x23002323, 0xb800b8b8, 0x5d005d5d,
451 0x6a006a6a, 0x92009292, 0xd500d5d5, 0x21002121,
452 0x44004444, 0x51005151, 0xc600c6c6, 0x7d007d7d,
453 0x39003939, 0x83008383, 0xdc00dcdc, 0xaa00aaaa,
454 0x7c007c7c, 0x77007777, 0x56005656, 0x05000505,
455 0x1b001b1b, 0xa400a4a4, 0x15001515, 0x34003434,
456 0x1e001e1e, 0x1c001c1c, 0xf800f8f8, 0x52005252,
457 0x20002020, 0x14001414, 0xe900e9e9, 0xbd00bdbd,
458 0xdd00dddd, 0xe400e4e4, 0xa100a1a1, 0xe000e0e0,
459 0x8a008a8a, 0xf100f1f1, 0xd600d6d6, 0x7a007a7a,
460 0xbb00bbbb, 0xe300e3e3, 0x40004040, 0x4f004f4f
463 0x70700070, 0x2c2c002c, 0xb3b300b3, 0xc0c000c0,
464 0xe4e400e4, 0x57570057, 0xeaea00ea, 0xaeae00ae,
465 0x23230023, 0x6b6b006b, 0x45450045, 0xa5a500a5,
466 0xeded00ed, 0x4f4f004f, 0x1d1d001d, 0x92920092,
467 0x86860086, 0xafaf00af, 0x7c7c007c, 0x1f1f001f,
468 0x3e3e003e, 0xdcdc00dc, 0x5e5e005e, 0x0b0b000b,
469 0xa6a600a6, 0x39390039, 0xd5d500d5, 0x5d5d005d,
470 0xd9d900d9, 0x5a5a005a, 0x51510051, 0x6c6c006c,
471 0x8b8b008b, 0x9a9a009a, 0xfbfb00fb, 0xb0b000b0,
472 0x74740074, 0x2b2b002b, 0xf0f000f0, 0x84840084,
473 0xdfdf00df, 0xcbcb00cb, 0x34340034, 0x76760076,
474 0x6d6d006d, 0xa9a900a9, 0xd1d100d1, 0x04040004,
475 0x14140014, 0x3a3a003a, 0xdede00de, 0x11110011,
476 0x32320032, 0x9c9c009c, 0x53530053, 0xf2f200f2,
477 0xfefe00fe, 0xcfcf00cf, 0xc3c300c3, 0x7a7a007a,
478 0x24240024, 0xe8e800e8, 0x60600060, 0x69690069,
479 0xaaaa00aa, 0xa0a000a0, 0xa1a100a1, 0x62620062,
480 0x54540054, 0x1e1e001e, 0xe0e000e0, 0x64640064,
481 0x10100010, 0x00000000, 0xa3a300a3, 0x75750075,
482 0x8a8a008a, 0xe6e600e6, 0x09090009, 0xdddd00dd,
483 0x87870087, 0x83830083, 0xcdcd00cd, 0x90900090,
484 0x73730073, 0xf6f600f6, 0x9d9d009d, 0xbfbf00bf,
485 0x52520052, 0xd8d800d8, 0xc8c800c8, 0xc6c600c6,
486 0x81810081, 0x6f6f006f, 0x13130013, 0x63630063,
487 0xe9e900e9, 0xa7a700a7, 0x9f9f009f, 0xbcbc00bc,
488 0x29290029, 0xf9f900f9, 0x2f2f002f, 0xb4b400b4,
489 0x78780078, 0x06060006, 0xe7e700e7, 0x71710071,
490 0xd4d400d4, 0xabab00ab, 0x88880088, 0x8d8d008d,
491 0x72720072, 0xb9b900b9, 0xf8f800f8, 0xacac00ac,
492 0x36360036, 0x2a2a002a, 0x3c3c003c, 0xf1f100f1,
493 0x40400040, 0xd3d300d3, 0xbbbb00bb, 0x43430043,
494 0x15150015, 0xadad00ad, 0x77770077, 0x80800080,
495 0x82820082, 0xecec00ec, 0x27270027, 0xe5e500e5,
496 0x85850085, 0x35350035, 0x0c0c000c, 0x41410041,
497 0xefef00ef, 0x93930093, 0x19190019, 0x21210021,
498 0x0e0e000e, 0x4e4e004e, 0x65650065, 0xbdbd00bd,
499 0xb8b800b8, 0x8f8f008f, 0xebeb00eb, 0xcece00ce,
500 0x30300030, 0x5f5f005f, 0xc5c500c5, 0x1a1a001a,
501 0xe1e100e1, 0xcaca00ca, 0x47470047, 0x3d3d003d,
502 0x01010001, 0xd6d600d6, 0x56560056, 0x4d4d004d,
503 0x0d0d000d, 0x66660066, 0xcccc00cc, 0x2d2d002d,
504 0x12120012, 0x20200020, 0xb1b100b1, 0x99990099,
505 0x4c4c004c, 0xc2c200c2, 0x7e7e007e, 0x05050005,
506 0xb7b700b7, 0x31310031, 0x17170017, 0xd7d700d7,
507 0x58580058, 0x61610061, 0x1b1b001b, 0x1c1c001c,
508 0x0f0f000f, 0x16160016, 0x18180018, 0x22220022,
509 0x44440044, 0xb2b200b2, 0xb5b500b5, 0x91910091,
510 0x08080008, 0xa8a800a8, 0xfcfc00fc, 0x50500050,
511 0xd0d000d0, 0x7d7d007d, 0x89890089, 0x97970097,
512 0x5b5b005b, 0x95950095, 0xffff00ff, 0xd2d200d2,
513 0xc4c400c4, 0x48480048, 0xf7f700f7, 0xdbdb00db,
514 0x03030003, 0xdada00da, 0x3f3f003f, 0x94940094,
515 0x5c5c005c, 0x02020002, 0x4a4a004a, 0x33330033,
516 0x67670067, 0xf3f300f3, 0x7f7f007f, 0xe2e200e2,
517 0x9b9b009b, 0x26260026, 0x37370037, 0x3b3b003b,
518 0x96960096, 0x4b4b004b, 0xbebe00be, 0x2e2e002e,
519 0x79790079, 0x8c8c008c, 0x6e6e006e, 0x8e8e008e,
520 0xf5f500f5, 0xb6b600b6, 0xfdfd00fd, 0x59590059,
521 0x98980098, 0x6a6a006a, 0x46460046, 0xbaba00ba,
522 0x25250025, 0x42420042, 0xa2a200a2, 0xfafa00fa,
523 0x07070007, 0x55550055, 0xeeee00ee, 0x0a0a000a,
524 0x49490049, 0x68680068, 0x38380038, 0xa4a400a4,
525 0x28280028, 0x7b7b007b, 0xc9c900c9, 0xc1c100c1,
526 0xe3e300e3, 0xf4f400f4, 0xc7c700c7, 0x9e9e009e
Utility functions for the Crypto++ library.
Library configuration file.
Classes for the Cameliia block cipher.
Classes, functions, intrinsics and features for X86, X32 nd X64 assembly.
Crypto++ library namespace.
Interface for retrieving values given their names.