60 #include "../internal.h"
65 (l) = ((uint32_t)(*((c)++))); \
66 (l) |= ((uint32_t)(*((c)++))) << 8L; \
67 (l) |= ((uint32_t)(*((c)++))) << 16L; \
68 (l) |= ((uint32_t)(*((c)++))) << 24L; \
71 #define c2ln(c, l1, l2, n) \
77 (l2) = ((uint32_t)(*(--(c)))) << 24L; \
78 OPENSSL_FALLTHROUGH; \
80 (l2) |= ((uint32_t)(*(--(c)))) << 16L; \
81 OPENSSL_FALLTHROUGH; \
83 (l2) |= ((uint32_t)(*(--(c)))) << 8L; \
84 OPENSSL_FALLTHROUGH; \
86 (l2) |= ((uint32_t)(*(--(c)))); \
87 OPENSSL_FALLTHROUGH; \
89 (l1) = ((uint32_t)(*(--(c)))) << 24L; \
90 OPENSSL_FALLTHROUGH; \
92 (l1) |= ((uint32_t)(*(--(c)))) << 16L; \
93 OPENSSL_FALLTHROUGH; \
95 (l1) |= ((uint32_t)(*(--(c)))) << 8L; \
96 OPENSSL_FALLTHROUGH; \
98 (l1) |= ((uint32_t)(*(--(c)))); \
104 *((c)++) = (uint8_t)(((l)) & 0xff); \
105 *((c)++) = (uint8_t)(((l) >> 8L) & 0xff); \
106 *((c)++) = (uint8_t)(((l) >> 16L) & 0xff); \
107 *((c)++) = (uint8_t)(((l) >> 24L) & 0xff); \
110 #define l2cn(l1, l2, c, n) \
115 *(--(c)) = (uint8_t)(((l2) >> 24L) & 0xff); \
116 OPENSSL_FALLTHROUGH; \
118 *(--(c)) = (uint8_t)(((l2) >> 16L) & 0xff); \
119 OPENSSL_FALLTHROUGH; \
121 *(--(c)) = (uint8_t)(((l2) >> 8L) & 0xff); \
122 OPENSSL_FALLTHROUGH; \
124 *(--(c)) = (uint8_t)(((l2)) & 0xff); \
125 OPENSSL_FALLTHROUGH; \
127 *(--(c)) = (uint8_t)(((l1) >> 24L) & 0xff); \
128 OPENSSL_FALLTHROUGH; \
130 *(--(c)) = (uint8_t)(((l1) >> 16L) & 0xff); \
131 OPENSSL_FALLTHROUGH; \
133 *(--(c)) = (uint8_t)(((l1) >> 8L) & 0xff); \
134 OPENSSL_FALLTHROUGH; \
136 *(--(c)) = (uint8_t)(((l1)) & 0xff); \
158 p0 = p1 = &
key->data[0];
160 t = (x0 + (x1 & ~x3) + (x2 & x3) + *(p0++)) & 0xffff;
161 x0 = (t << 1) | (t >> 15);
162 t = (x1 + (x2 & ~x0) + (x3 & x0) + *(p0++)) & 0xffff;
163 x1 = (t << 2) | (t >> 14);
164 t = (x2 + (x3 & ~x1) + (x0 & x1) + *(p0++)) & 0xffff;
165 x2 = (t << 3) | (t >> 13);
166 t = (x3 + (x0 & ~x2) + (x1 & x2) + *(p0++)) & 0xffff;
167 x3 = (t << 5) | (t >> 11);
173 i = (
n == 2) ? 6 : 5;
205 t = ((x3 << 11) | (x3 >> 5)) & 0xffff;
206 x3 = (t - (x0 & ~x2) - (x1 & x2) - *(p0--)) & 0xffff;
207 t = ((x2 << 13) | (x2 >> 3)) & 0xffff;
208 x2 = (t - (x3 & ~x1) - (x0 & x1) - *(p0--)) & 0xffff;
209 t = ((x1 << 14) | (x1 >> 2)) & 0xffff;
210 x1 = (t - (x2 & ~x0) - (x3 & x0) - *(p0--)) & 0xffff;
211 t = ((x0 << 15) | (x0 >> 1)) & 0xffff;
212 x0 = (t - (x1 & ~x3) - (x2 & x3) - *(p0--)) & 0xffff;
218 i = (
n == 2) ? 6 : 5;
220 x3 = (x3 - p1[x2 & 0x3f]) & 0xffff;
221 x2 = (x2 - p1[x1 & 0x3f]) & 0xffff;
222 x1 = (x1 - p1[x0 & 0x3f]) & 0xffff;
223 x0 = (x0 - p1[x3 & 0x3f]) & 0xffff;
242 for (
l -= 8;
l >= 0;
l -= 8) {
273 for (
l -= 8;
l >= 0;
l -= 8) {
279 tout0 = tin[0] ^ xor0;
280 tout1 = tin[1] ^ xor1;
292 tout0 = tin[0] ^ xor0;
293 tout1 = tin[1] ^ xor1;
305 0xd9, 0x78, 0xf9, 0xc4, 0x19, 0xdd, 0xb5, 0xed, 0x28, 0xe9, 0xfd, 0x79,
306 0x4a, 0xa0, 0xd8, 0x9d, 0xc6, 0x7e, 0x37, 0x83, 0x2b, 0x76, 0x53, 0x8e,
307 0x62, 0x4c, 0x64, 0x88, 0x44, 0x8b, 0xfb, 0xa2, 0x17, 0x9a, 0x59, 0xf5,
308 0x87, 0xb3, 0x4f, 0x13, 0x61, 0x45, 0x6d, 0x8d, 0x09, 0x81, 0x7d, 0x32,
309 0xbd, 0x8f, 0x40, 0xeb, 0x86, 0xb7, 0x7b, 0x0b, 0xf0, 0x95, 0x21, 0x22,
310 0x5c, 0x6b, 0x4e, 0x82, 0x54, 0xd6, 0x65, 0x93, 0xce, 0x60, 0xb2, 0x1c,
311 0x73, 0x56, 0xc0, 0x14, 0xa7, 0x8c, 0xf1, 0xdc, 0x12, 0x75, 0xca, 0x1f,
312 0x3b, 0xbe, 0xe4, 0xd1, 0x42, 0x3d, 0xd4, 0x30, 0xa3, 0x3c, 0xb6, 0x26,
313 0x6f, 0xbf, 0x0e, 0xda, 0x46, 0x69, 0x07, 0x57, 0x27, 0xf2, 0x1d, 0x9b,
314 0xbc, 0x94, 0x43, 0x03, 0xf8, 0x11, 0xc7, 0xf6, 0x90, 0xef, 0x3e, 0xe7,
315 0x06, 0xc3, 0xd5, 0x2f, 0xc8, 0x66, 0x1e, 0xd7, 0x08, 0xe8, 0xea, 0xde,
316 0x80, 0x52, 0xee, 0xf7, 0x84, 0xaa, 0x72, 0xac, 0x35, 0x4d, 0x6a, 0x2a,
317 0x96, 0x1a, 0xd2, 0x71, 0x5a, 0x15, 0x49, 0x74, 0x4b, 0x9f, 0xd0, 0x5e,
318 0x04, 0x18, 0xa4, 0xec, 0xc2, 0xe0, 0x41, 0x6e, 0x0f, 0x51, 0xcb, 0xcc,
319 0x24, 0x91, 0xaf, 0x50, 0xa1, 0xf4, 0x70, 0x39, 0x99, 0x7c, 0x3a, 0x85,
320 0x23, 0xb8, 0xb4, 0x7a, 0xfc, 0x02, 0x36, 0x5b, 0x25, 0x55, 0x97, 0x31,
321 0x2d, 0x5d, 0xfa, 0x98, 0xe3, 0x8a, 0x92, 0xae, 0x05, 0xdf, 0x29, 0x10,
322 0x67, 0x6c, 0xba, 0xc9, 0xd3, 0x00, 0xe6, 0xcf, 0xe1, 0x9e, 0xa8, 0x2c,
323 0x63, 0x16, 0x01, 0x3f, 0x58, 0xe2, 0x89, 0xa9, 0x0d, 0x38, 0x34, 0x1b,
324 0xab, 0x33, 0xff, 0xb0, 0xbb, 0x48, 0x0c, 0x5f, 0xb9, 0xb1, 0xcd, 0x2e,
325 0xc5, 0xf3, 0xdb, 0x47, 0xe5, 0xa5, 0x9c, 0x77, 0x0a, 0xa6, 0x20, 0x68,
326 0xfe, 0x7f, 0xc1, 0xad,
348 for (
i = 0;
i <
len;
i++) {
355 for (
i =
len;
i < 128;
i++, j++) {
364 c = (0xff >> (-
bits & 0x07));
374 ki = &(
key->data[63]);
375 for (
i = 127;
i >= 0;
i -= 2) {
376 *(ki--) = ((
k[
i] << 8) |
k[
i - 1]) & 0xffff;