307 0x00808200, 0x00000000, 0x00008000, 0x00808202,
308 0x00808002, 0x00008202, 0x00000002, 0x00008000,
309 0x00000200, 0x00808200, 0x00808202, 0x00000200,
310 0x00800202, 0x00808002, 0x00800000, 0x00000002,
311 0x00000202, 0x00800200, 0x00800200, 0x00008200,
312 0x00008200, 0x00808000, 0x00808000, 0x00800202,
313 0x00008002, 0x00800002, 0x00800002, 0x00008002,
314 0x00000000, 0x00000202, 0x00008202, 0x00800000,
315 0x00008000, 0x00808202, 0x00000002, 0x00808000,
316 0x00808200, 0x00800000, 0x00800000, 0x00000200,
317 0x00808002, 0x00008000, 0x00008200, 0x00800002,
318 0x00000200, 0x00000002, 0x00800202, 0x00008202,
319 0x00808202, 0x00008002, 0x00808000, 0x00800202,
320 0x00800002, 0x00000202, 0x00008202, 0x00808200,
321 0x00000202, 0x00800200, 0x00800200, 0x00000000,
322 0x00008002, 0x00008200, 0x00000000, 0x00808002
327 0x40084010, 0x40004000, 0x00004000, 0x00084010,
328 0x00080000, 0x00000010, 0x40080010, 0x40004010,
329 0x40000010, 0x40084010, 0x40084000, 0x40000000,
330 0x40004000, 0x00080000, 0x00000010, 0x40080010,
331 0x00084000, 0x00080010, 0x40004010, 0x00000000,
332 0x40000000, 0x00004000, 0x00084010, 0x40080000,
333 0x00080010, 0x40000010, 0x00000000, 0x00084000,
334 0x00004010, 0x40084000, 0x40080000, 0x00004010,
335 0x00000000, 0x00084010, 0x40080010, 0x00080000,
336 0x40004010, 0x40080000, 0x40084000, 0x00004000,
337 0x40080000, 0x40004000, 0x00000010, 0x40084010,
338 0x00084010, 0x00000010, 0x00004000, 0x40000000,
339 0x00004010, 0x40084000, 0x00080000, 0x40000010,
340 0x00080010, 0x40004010, 0x40000010, 0x00080010,
341 0x00084000, 0x00000000, 0x40004000, 0x00004010,
342 0x40000000, 0x40080010, 0x40084010, 0x00084000
347 0x00000104, 0x04010100, 0x00000000, 0x04010004,
348 0x04000100, 0x00000000, 0x00010104, 0x04000100,
349 0x00010004, 0x04000004, 0x04000004, 0x00010000,
350 0x04010104, 0x00010004, 0x04010000, 0x00000104,
351 0x04000000, 0x00000004, 0x04010100, 0x00000100,
352 0x00010100, 0x04010000, 0x04010004, 0x00010104,
353 0x04000104, 0x00010100, 0x00010000, 0x04000104,
354 0x00000004, 0x04010104, 0x00000100, 0x04000000,
355 0x04010100, 0x04000000, 0x00010004, 0x00000104,
356 0x00010000, 0x04010100, 0x04000100, 0x00000000,
357 0x00000100, 0x00010004, 0x04010104, 0x04000100,
358 0x04000004, 0x00000100, 0x00000000, 0x04010004,
359 0x04000104, 0x00010000, 0x04000000, 0x04010104,
360 0x00000004, 0x00010104, 0x00010100, 0x04000004,
361 0x04010000, 0x04000104, 0x00000104, 0x04010000,
362 0x00010104, 0x00000004, 0x04010004, 0x00010100
367 0x80401000, 0x80001040, 0x80001040, 0x00000040,
368 0x00401040, 0x80400040, 0x80400000, 0x80001000,
369 0x00000000, 0x00401000, 0x00401000, 0x80401040,
370 0x80000040, 0x00000000, 0x00400040, 0x80400000,
371 0x80000000, 0x00001000, 0x00400000, 0x80401000,
372 0x00000040, 0x00400000, 0x80001000, 0x00001040,
373 0x80400040, 0x80000000, 0x00001040, 0x00400040,
374 0x00001000, 0x00401040, 0x80401040, 0x80000040,
375 0x00400040, 0x80400000, 0x00401000, 0x80401040,
376 0x80000040, 0x00000000, 0x00000000, 0x00401000,
377 0x00001040, 0x00400040, 0x80400040, 0x80000000,
378 0x80401000, 0x80001040, 0x80001040, 0x00000040,
379 0x80401040, 0x80000040, 0x80000000, 0x00001000,
380 0x80400000, 0x80001000, 0x00401040, 0x80400040,
381 0x80001000, 0x00001040, 0x00400000, 0x80401000,
382 0x00000040, 0x00400000, 0x00001000, 0x00401040
387 0x00000080, 0x01040080, 0x01040000, 0x21000080,
388 0x00040000, 0x00000080, 0x20000000, 0x01040000,
389 0x20040080, 0x00040000, 0x01000080, 0x20040080,
390 0x21000080, 0x21040000, 0x00040080, 0x20000000,
391 0x01000000, 0x20040000, 0x20040000, 0x00000000,
392 0x20000080, 0x21040080, 0x21040080, 0x01000080,
393 0x21040000, 0x20000080, 0x00000000, 0x21000000,
394 0x01040080, 0x01000000, 0x21000000, 0x00040080,
395 0x00040000, 0x21000080, 0x00000080, 0x01000000,
396 0x20000000, 0x01040000, 0x21000080, 0x20040080,
397 0x01000080, 0x20000000, 0x21040000, 0x01040080,
398 0x20040080, 0x00000080, 0x01000000, 0x21040000,
399 0x21040080, 0x00040080, 0x21000000, 0x21040080,
400 0x01040000, 0x00000000, 0x20040000, 0x21000000,
401 0x00040080, 0x01000080, 0x20000080, 0x00040000,
402 0x00000000, 0x20040000, 0x01040080, 0x20000080
407 0x10000008, 0x10200000, 0x00002000, 0x10202008,
408 0x10200000, 0x00000008, 0x10202008, 0x00200000,
409 0x10002000, 0x00202008, 0x00200000, 0x10000008,
410 0x00200008, 0x10002000, 0x10000000, 0x00002008,
411 0x00000000, 0x00200008, 0x10002008, 0x00002000,
412 0x00202000, 0x10002008, 0x00000008, 0x10200008,
413 0x10200008, 0x00000000, 0x00202008, 0x10202000,
414 0x00002008, 0x00202000, 0x10202000, 0x10000000,
415 0x10002000, 0x00000008, 0x10200008, 0x00202000,
416 0x10202008, 0x00200000, 0x00002008, 0x10000008,
417 0x00200000, 0x10002000, 0x10000000, 0x00002008,
418 0x10000008, 0x10202008, 0x00202000, 0x10200000,
419 0x00202008, 0x10202000, 0x00000000, 0x10200008,
420 0x00000008, 0x00002000, 0x10200000, 0x00202008,
421 0x00002000, 0x00200008, 0x10002008, 0x00000000,
422 0x10202000, 0x10000000, 0x00200008, 0x10002008
427 0x00100000, 0x02100001, 0x02000401, 0x00000000,
428 0x00000400, 0x02000401, 0x00100401, 0x02100400,
429 0x02100401, 0x00100000, 0x00000000, 0x02000001,
430 0x00000001, 0x02000000, 0x02100001, 0x00000401,
431 0x02000400, 0x00100401, 0x00100001, 0x02000400,
432 0x02000001, 0x02100000, 0x02100400, 0x00100001,
433 0x02100000, 0x00000400, 0x00000401, 0x02100401,
434 0x00100400, 0x00000001, 0x02000000, 0x00100400,
435 0x02000000, 0x00100400, 0x00100000, 0x02000401,
436 0x02000401, 0x02100001, 0x02100001, 0x00000001,
437 0x00100001, 0x02000000, 0x02000400, 0x00100000,
438 0x02100400, 0x00000401, 0x00100401, 0x02100400,
439 0x00000401, 0x02000001, 0x02100401, 0x02100000,
440 0x00100400, 0x00000000, 0x00000001, 0x02100401,
441 0x00000000, 0x00100401, 0x02100000, 0x00000400,
442 0x02000001, 0x02000400, 0x00000400, 0x00100001
447 0x08000820, 0x00000800, 0x00020000, 0x08020820,
448 0x08000000, 0x08000820, 0x00000020, 0x08000000,
449 0x00020020, 0x08020000, 0x08020820, 0x00020800,
450 0x08020800, 0x00020820, 0x00000800, 0x00000020,
451 0x08020000, 0x08000020, 0x08000800, 0x00000820,
452 0x00020800, 0x00020020, 0x08020020, 0x08020800,
453 0x00000820, 0x00000000, 0x00000000, 0x08020020,
454 0x08000020, 0x08000800, 0x00020820, 0x00020000,
455 0x00020820, 0x00020000, 0x08020800, 0x00000800,
456 0x00000020, 0x08020020, 0x00000800, 0x00020820,
457 0x08000800, 0x00000020, 0x08000020, 0x08020000,
458 0x08020020, 0x08000000, 0x00020000, 0x08000820,
459 0x00000000, 0x08020820, 0x00020020, 0x08000020,
460 0x08020000, 0x08000800, 0x08000820, 0x00000000,
461 0x08020820, 0x00020800, 0x00020800, 0x00000820,
462 0x00000820, 0x00020020, 0x08000000, 0x08020800
564 static unsigned char desKey[8], desKeys[128];
565 static Word *oldKey = (
Word *)(
void *) desKey, *keys = (
Word *) desKeys;
568 unsigned char b0[8] =
"", b1[8];
571 *cb = (
Word *)(
void *) b0,
572 *cb1 = (
Word *)(
void *) b1;
574#if !defined(WORDS_BIGENDIAN)
575 unsigned int origSize = size;
584 if (newKey[0] != oldKey[0] || newKey[1] != oldKey[1]) {
587 oldKey[0] = newKey[0];
588 oldKey[1] = newKey[1];
600 { 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1 };
602 for (z = 0; z < 16; z++, k += 2) {
603 for (r = 0; r < rol[z]; r++) {
614 { 0, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1 };
616 for (z = 0; z < 16; z++, k += 2) {
626 }
else if ((what != oldWhat)
632 Word *ik1, *ik2, ik3[2];
634 for (ik1 = keys, ik2 = &(keys[30]); ik1 < ik2;
635 ik1 += 2, ik2 -= 2) {
651 cb[0] = ((
Word *)(
void *) initVec)[0];
652 cb[1] = ((
Word *)(
void *) initVec)[1];
658#if !defined(WORDS_BIGENDIAN)
700 for (text = (
Word *)(
void *) data; size; --size, text += 2) {
709 for (text = (
Word *)(
void *) data; size; --size, text += 2) {
727 for (text = (
Word *)(
void *) data; size; --size, text += 2) {
756 for (text = (
Word *)(
void *) data; size; --size, text += 2) {
774 for (text = (
Word *)(
void *) data; size; --size, text += 2) {
800 for (text = (
Word *)(
void *) data; size; --size, text += 2) {
817 ((
Word *)(
void *) initVec)[0] = cb[0];
818 ((
Word *)(
void *) initVec)[1] = cb[1];
820#if !defined(WORDS_BIGENDIAN)
827#if !defined(WORDS_BIGENDIAN)
877 { {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
878{0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11},
879{0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01},
880{0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe, 0xfe},
881{0x1f, 0x1f, 0x1f, 0x1f, 0x0e, 0x0e, 0x0e, 0x0e},
882{0xe0, 0xe0, 0xe0, 0xe0, 0xf1, 0xf1, 0xf1, 0xf1},
883{0x01, 0xfe, 0x01, 0xfe, 0x01, 0xfe, 0x01, 0xfe},
884{0xfe, 0x01, 0xfe, 0x01, 0xfe, 0x01, 0xfe, 0x01},
885{0x1f, 0xe0, 0x1f, 0xe0, 0x0e, 0xf1, 0x0e, 0xf1},
886{0xe0, 0x1f, 0xe0, 0x1f, 0xf1, 0x0e, 0xf1, 0x0e},
887{0x01, 0xe0, 0x01, 0xe0, 0x01, 0xf1, 0x01, 0xf1},
888{0xe0, 0x01, 0xe0, 0x01, 0xf1, 0x01, 0xf1, 0x01},
889{0x1f, 0xfe, 0x1f, 0xfe, 0x0e, 0xfe, 0x0e, 0xfe},
890{0xfe, 0x1f, 0xfe, 0x1f, 0xfe, 0x0e, 0xfe, 0x0e},
891{0x01, 0x1f, 0x01, 0x1f, 0x01, 0x0e, 0x01, 0x0e},
892{0x1f, 0x01, 0x1f, 0x01, 0x0e, 0x01, 0x0e, 0x01},
893{0xe0, 0xfe, 0xe0, 0xfe, 0xf1, 0xfe, 0xf1, 0xfe},
894{0xfe, 0xe0, 0xfe, 0xe0, 0xfe, 0xf1, 0xfe, 0xf1}