~ubuntu-branches/ubuntu/utopic/nettle/utopic

« back to all changes in this revision

Viewing changes to twofish.c

  • Committer: Package Import Robot
  • Author(s): Magnus Holmgren
  • Date: 2013-05-07 22:57:14 UTC
  • mfrom: (8.1.8 sid)
  • Revision ID: package-import@ubuntu.com-20130507225714-s331yr8ov53dtt17
Tags: 2.7-2
Tag some (ECC related) symbols that only exist on some architectures.

Show diffs side-by-side

added added

removed removed

Lines of Context:
10
10
 * Copyright (C) 1999 J.H.M. Dassen (Ray) <jdassen@wi.LeidenUniv.nl>
11
11
 *
12
12
 * Integrated with the nettle library,
13
 
 * Copyright (C) 2001 Niels M�ller
 
13
 * Copyright (C) 2001 Niels Möller
14
14
 */
15
15
 
16
16
/* nettle, low-level cryptographics library
27
27
 * 
28
28
 * You should have received a copy of the GNU Lesser General Public License
29
29
 * along with the nettle library; see the file COPYING.LIB.  If not, write to
30
 
 * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
31
 
 * MA 02111-1307, USA.
 
30
 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
 
31
 * MA 02111-1301, USA.
32
32
 */
33
33
 
34
34
#if HAVE_CONFIG_H
55
55
/* ------------------------------------------------------------------------- */
56
56
 
57
57
/* The permutations q0 and q1.  These are fixed permutations on 8-bit values.
58
 
 * The permutations have been computed using the program generate_q
 
58
 * The permutations have been computed using the program twofish-data,
59
59
 * which is distributed along with this file.
60
60
 */
61
61
 
62
 
static const uint8_t q0[] = { 0xA9, 0x67, 0xB3, 0xE8, 0x04, 0xFD, 0xA3, 0x76,
63
 
                     0x9A, 0x92, 0x80, 0x78, 0xE4, 0xDD, 0xD1, 0x38,
64
 
                     0x0D, 0xC6, 0x35, 0x98, 0x18, 0xF7, 0xEC, 0x6C,
65
 
                     0x43, 0x75, 0x37, 0x26, 0xFA, 0x13, 0x94, 0x48,
66
 
                     0xF2, 0xD0, 0x8B, 0x30, 0x84, 0x54, 0xDF, 0x23,
67
 
                     0x19, 0x5B, 0x3D, 0x59, 0xF3, 0xAE, 0xA2, 0x82,
68
 
                     0x63, 0x01, 0x83, 0x2E, 0xD9, 0x51, 0x9B, 0x7C,
69
 
                     0xA6, 0xEB, 0xA5, 0xBE, 0x16, 0x0C, 0xE3, 0x61,
70
 
                     0xC0, 0x8C, 0x3A, 0xF5, 0x73, 0x2C, 0x25, 0x0B,
71
 
                     0xBB, 0x4E, 0x89, 0x6B, 0x53, 0x6A, 0xB4, 0xF1,
72
 
                     0xE1, 0xE6, 0xBD, 0x45, 0xE2, 0xF4, 0xB6, 0x66,
73
 
                     0xCC, 0x95, 0x03, 0x56, 0xD4, 0x1C, 0x1E, 0xD7,
74
 
                     0xFB, 0xC3, 0x8E, 0xB5, 0xE9, 0xCF, 0xBF, 0xBA,
75
 
                     0xEA, 0x77, 0x39, 0xAF, 0x33, 0xC9, 0x62, 0x71,
76
 
                     0x81, 0x79, 0x09, 0xAD, 0x24, 0xCD, 0xF9, 0xD8,
77
 
                     0xE5, 0xC5, 0xB9, 0x4D, 0x44, 0x08, 0x86, 0xE7,
78
 
                     0xA1, 0x1D, 0xAA, 0xED, 0x06, 0x70, 0xB2, 0xD2,
79
 
                     0x41, 0x7B, 0xA0, 0x11, 0x31, 0xC2, 0x27, 0x90,
80
 
                     0x20, 0xF6, 0x60, 0xFF, 0x96, 0x5C, 0xB1, 0xAB,
81
 
                     0x9E, 0x9C, 0x52, 0x1B, 0x5F, 0x93, 0x0A, 0xEF,
82
 
                     0x91, 0x85, 0x49, 0xEE, 0x2D, 0x4F, 0x8F, 0x3B,
83
 
                     0x47, 0x87, 0x6D, 0x46, 0xD6, 0x3E, 0x69, 0x64,
84
 
                     0x2A, 0xCE, 0xCB, 0x2F, 0xFC, 0x97, 0x05, 0x7A,
85
 
                     0xAC, 0x7F, 0xD5, 0x1A, 0x4B, 0x0E, 0xA7, 0x5A,
86
 
                     0x28, 0x14, 0x3F, 0x29, 0x88, 0x3C, 0x4C, 0x02,
87
 
                     0xB8, 0xDA, 0xB0, 0x17, 0x55, 0x1F, 0x8A, 0x7D,
88
 
                     0x57, 0xC7, 0x8D, 0x74, 0xB7, 0xC4, 0x9F, 0x72,
89
 
                     0x7E, 0x15, 0x22, 0x12, 0x58, 0x07, 0x99, 0x34,
90
 
                     0x6E, 0x50, 0xDE, 0x68, 0x65, 0xBC, 0xDB, 0xF8,
91
 
                     0xC8, 0xA8, 0x2B, 0x40, 0xDC, 0xFE, 0x32, 0xA4,
92
 
                     0xCA, 0x10, 0x21, 0xF0, 0xD3, 0x5D, 0x0F, 0x00,
93
 
                     0x6F, 0x9D, 0x36, 0x42, 0x4A, 0x5E, 0xC1, 0xE0, };
 
62
static const uint8_t q0[256] = {
 
63
  0xA9,0x67,0xB3,0xE8,0x04,0xFD,0xA3,0x76,
 
64
  0x9A,0x92,0x80,0x78,0xE4,0xDD,0xD1,0x38,
 
65
  0x0D,0xC6,0x35,0x98,0x18,0xF7,0xEC,0x6C,
 
66
  0x43,0x75,0x37,0x26,0xFA,0x13,0x94,0x48,
 
67
  0xF2,0xD0,0x8B,0x30,0x84,0x54,0xDF,0x23,
 
68
  0x19,0x5B,0x3D,0x59,0xF3,0xAE,0xA2,0x82,
 
69
  0x63,0x01,0x83,0x2E,0xD9,0x51,0x9B,0x7C,
 
70
  0xA6,0xEB,0xA5,0xBE,0x16,0x0C,0xE3,0x61,
 
71
  0xC0,0x8C,0x3A,0xF5,0x73,0x2C,0x25,0x0B,
 
72
  0xBB,0x4E,0x89,0x6B,0x53,0x6A,0xB4,0xF1,
 
73
  0xE1,0xE6,0xBD,0x45,0xE2,0xF4,0xB6,0x66,
 
74
  0xCC,0x95,0x03,0x56,0xD4,0x1C,0x1E,0xD7,
 
75
  0xFB,0xC3,0x8E,0xB5,0xE9,0xCF,0xBF,0xBA,
 
76
  0xEA,0x77,0x39,0xAF,0x33,0xC9,0x62,0x71,
 
77
  0x81,0x79,0x09,0xAD,0x24,0xCD,0xF9,0xD8,
 
78
  0xE5,0xC5,0xB9,0x4D,0x44,0x08,0x86,0xE7,
 
79
  0xA1,0x1D,0xAA,0xED,0x06,0x70,0xB2,0xD2,
 
80
  0x41,0x7B,0xA0,0x11,0x31,0xC2,0x27,0x90,
 
81
  0x20,0xF6,0x60,0xFF,0x96,0x5C,0xB1,0xAB,
 
82
  0x9E,0x9C,0x52,0x1B,0x5F,0x93,0x0A,0xEF,
 
83
  0x91,0x85,0x49,0xEE,0x2D,0x4F,0x8F,0x3B,
 
84
  0x47,0x87,0x6D,0x46,0xD6,0x3E,0x69,0x64,
 
85
  0x2A,0xCE,0xCB,0x2F,0xFC,0x97,0x05,0x7A,
 
86
  0xAC,0x7F,0xD5,0x1A,0x4B,0x0E,0xA7,0x5A,
 
87
  0x28,0x14,0x3F,0x29,0x88,0x3C,0x4C,0x02,
 
88
  0xB8,0xDA,0xB0,0x17,0x55,0x1F,0x8A,0x7D,
 
89
  0x57,0xC7,0x8D,0x74,0xB7,0xC4,0x9F,0x72,
 
90
  0x7E,0x15,0x22,0x12,0x58,0x07,0x99,0x34,
 
91
  0x6E,0x50,0xDE,0x68,0x65,0xBC,0xDB,0xF8,
 
92
  0xC8,0xA8,0x2B,0x40,0xDC,0xFE,0x32,0xA4,
 
93
  0xCA,0x10,0x21,0xF0,0xD3,0x5D,0x0F,0x00,
 
94
  0x6F,0x9D,0x36,0x42,0x4A,0x5E,0xC1,0xE0,
 
95
};
94
96
 
95
 
static const uint8_t q1[] = { 0x75, 0xF3, 0xC6, 0xF4, 0xDB, 0x7B, 0xFB, 0xC8,
96
 
                     0x4A, 0xD3, 0xE6, 0x6B, 0x45, 0x7D, 0xE8, 0x4B,
97
 
                     0xD6, 0x32, 0xD8, 0xFD, 0x37, 0x71, 0xF1, 0xE1,
98
 
                     0x30, 0x0F, 0xF8, 0x1B, 0x87, 0xFA, 0x06, 0x3F,
99
 
                     0x5E, 0xBA, 0xAE, 0x5B, 0x8A, 0x00, 0xBC, 0x9D,
100
 
                     0x6D, 0xC1, 0xB1, 0x0E, 0x80, 0x5D, 0xD2, 0xD5,
101
 
                     0xA0, 0x84, 0x07, 0x14, 0xB5, 0x90, 0x2C, 0xA3,
102
 
                     0xB2, 0x73, 0x4C, 0x54, 0x92, 0x74, 0x36, 0x51,
103
 
                     0x38, 0xB0, 0xBD, 0x5A, 0xFC, 0x60, 0x62, 0x96,
104
 
                     0x6C, 0x42, 0xF7, 0x10, 0x7C, 0x28, 0x27, 0x8C,
105
 
                     0x13, 0x95, 0x9C, 0xC7, 0x24, 0x46, 0x3B, 0x70,
106
 
                     0xCA, 0xE3, 0x85, 0xCB, 0x11, 0xD0, 0x93, 0xB8,
107
 
                     0xA6, 0x83, 0x20, 0xFF, 0x9F, 0x77, 0xC3, 0xCC,
108
 
                     0x03, 0x6F, 0x08, 0xBF, 0x40, 0xE7, 0x2B, 0xE2,
109
 
                     0x79, 0x0C, 0xAA, 0x82, 0x41, 0x3A, 0xEA, 0xB9,
110
 
                     0xE4, 0x9A, 0xA4, 0x97, 0x7E, 0xDA, 0x7A, 0x17,
111
 
                     0x66, 0x94, 0xA1, 0x1D, 0x3D, 0xF0, 0xDE, 0xB3,
112
 
                     0x0B, 0x72, 0xA7, 0x1C, 0xEF, 0xD1, 0x53, 0x3E,
113
 
                     0x8F, 0x33, 0x26, 0x5F, 0xEC, 0x76, 0x2A, 0x49,
114
 
                     0x81, 0x88, 0xEE, 0x21, 0xC4, 0x1A, 0xEB, 0xD9,
115
 
                     0xC5, 0x39, 0x99, 0xCD, 0xAD, 0x31, 0x8B, 0x01,
116
 
                     0x18, 0x23, 0xDD, 0x1F, 0x4E, 0x2D, 0xF9, 0x48,
117
 
                     0x4F, 0xF2, 0x65, 0x8E, 0x78, 0x5C, 0x58, 0x19,
118
 
                     0x8D, 0xE5, 0x98, 0x57, 0x67, 0x7F, 0x05, 0x64,
119
 
                     0xAF, 0x63, 0xB6, 0xFE, 0xF5, 0xB7, 0x3C, 0xA5,
120
 
                     0xCE, 0xE9, 0x68, 0x44, 0xE0, 0x4D, 0x43, 0x69,
121
 
                     0x29, 0x2E, 0xAC, 0x15, 0x59, 0xA8, 0x0A, 0x9E,
122
 
                     0x6E, 0x47, 0xDF, 0x34, 0x35, 0x6A, 0xCF, 0xDC,
123
 
                     0x22, 0xC9, 0xC0, 0x9B, 0x89, 0xD4, 0xED, 0xAB,
124
 
                     0x12, 0xA2, 0x0D, 0x52, 0xBB, 0x02, 0x2F, 0xA9,
125
 
                     0xD7, 0x61, 0x1E, 0xB4, 0x50, 0x04, 0xF6, 0xC2,
126
 
                     0x16, 0x25, 0x86, 0x56, 0x55, 0x09, 0xBE, 0x91, };
 
97
static const uint8_t q1[256] = {
 
98
  0x75,0xF3,0xC6,0xF4,0xDB,0x7B,0xFB,0xC8,
 
99
  0x4A,0xD3,0xE6,0x6B,0x45,0x7D,0xE8,0x4B,
 
100
  0xD6,0x32,0xD8,0xFD,0x37,0x71,0xF1,0xE1,
 
101
  0x30,0x0F,0xF8,0x1B,0x87,0xFA,0x06,0x3F,
 
102
  0x5E,0xBA,0xAE,0x5B,0x8A,0x00,0xBC,0x9D,
 
103
  0x6D,0xC1,0xB1,0x0E,0x80,0x5D,0xD2,0xD5,
 
104
  0xA0,0x84,0x07,0x14,0xB5,0x90,0x2C,0xA3,
 
105
  0xB2,0x73,0x4C,0x54,0x92,0x74,0x36,0x51,
 
106
  0x38,0xB0,0xBD,0x5A,0xFC,0x60,0x62,0x96,
 
107
  0x6C,0x42,0xF7,0x10,0x7C,0x28,0x27,0x8C,
 
108
  0x13,0x95,0x9C,0xC7,0x24,0x46,0x3B,0x70,
 
109
  0xCA,0xE3,0x85,0xCB,0x11,0xD0,0x93,0xB8,
 
110
  0xA6,0x83,0x20,0xFF,0x9F,0x77,0xC3,0xCC,
 
111
  0x03,0x6F,0x08,0xBF,0x40,0xE7,0x2B,0xE2,
 
112
  0x79,0x0C,0xAA,0x82,0x41,0x3A,0xEA,0xB9,
 
113
  0xE4,0x9A,0xA4,0x97,0x7E,0xDA,0x7A,0x17,
 
114
  0x66,0x94,0xA1,0x1D,0x3D,0xF0,0xDE,0xB3,
 
115
  0x0B,0x72,0xA7,0x1C,0xEF,0xD1,0x53,0x3E,
 
116
  0x8F,0x33,0x26,0x5F,0xEC,0x76,0x2A,0x49,
 
117
  0x81,0x88,0xEE,0x21,0xC4,0x1A,0xEB,0xD9,
 
118
  0xC5,0x39,0x99,0xCD,0xAD,0x31,0x8B,0x01,
 
119
  0x18,0x23,0xDD,0x1F,0x4E,0x2D,0xF9,0x48,
 
120
  0x4F,0xF2,0x65,0x8E,0x78,0x5C,0x58,0x19,
 
121
  0x8D,0xE5,0x98,0x57,0x67,0x7F,0x05,0x64,
 
122
  0xAF,0x63,0xB6,0xFE,0xF5,0xB7,0x3C,0xA5,
 
123
  0xCE,0xE9,0x68,0x44,0xE0,0x4D,0x43,0x69,
 
124
  0x29,0x2E,0xAC,0x15,0x59,0xA8,0x0A,0x9E,
 
125
  0x6E,0x47,0xDF,0x34,0x35,0x6A,0xCF,0xDC,
 
126
  0x22,0xC9,0xC0,0x9B,0x89,0xD4,0xED,0xAB,
 
127
  0x12,0xA2,0x0D,0x52,0xBB,0x02,0x2F,0xA9,
 
128
  0xD7,0x61,0x1E,0xB4,0x50,0x04,0xF6,0xC2,
 
129
  0x16,0x25,0x86,0x56,0x55,0x09,0xBE,0x91,
 
130
};
127
131
 
128
132
/* ------------------------------------------------------------------------- */
129
133