- if (n == 7) {
-
- /* --- Expand 7 bits to 8 bits --- *
- *
- * Cloned and hacked from @des_init@ to set parity.
- */
-
- uint32 x, y, z;
- x = LOAD32(kk + 0);
- x = (x & 0xfe000000) | ((x & 0x01fffff0) >> 1);
- x = (x & 0xfffe0000) | ((x & 0x0001fff8) >> 1);
- x = (x & 0xfffffe00) | ((x & 0x000001fc) >> 1);
- z = x; z ^= z >> 4; z ^= z >> 2; z ^= z >> 1;
- x |= (z & 0x01010101) ^ 0x01010101;
-
- y = LOAD32(kk + 3) << 1;
- y = (y & 0x000000fe) | ((y & 0x1fffff00) << 1);
- y = (y & 0x0000fefe) | ((y & 0x3fff0000) << 1);
- y = (y & 0x00fefefe) | ((y & 0x7f000000) << 1);
- z = y; z ^= z >> 4; z ^= z >> 2; z ^= z >> 1;
- y |= (z & 0x01010101) ^ 0x01010101;
-
- kk = b + 8;
- STORE32(kk + 0, x); STORE32(kk + 4, y);
- }
-
+ des_expand(kk, n, &x, &y);
+ STORE32(b + 8, x); STORE32(b + 12, y);