Курсовая работа: Несанкционированный доступ к терминалам серверов с операционными системами семейства UNIX
memset(DES_bs_all.B, 0, sizeof(DES_bs_all.B));
do {
DES_bs_body();
if (!--count) break;
for (bit = 0; bit < 32; bit++) {
R = DES_bs_all.B[bit];
L = DES_bs_all.B[bit + 32];
DES_bs_all.B[bit + 32] = R;
DES_bs_all.B[bit] = L;
}
} while (1);
}
ARCH_WORD *DES_bs_get_binary(char *ciphertext)
{
static ARCH_WORD out[64];
ARCH_WORD *raw;
int bit;
int index, shift;
int value;
raw = DES_raw_get_binary(ciphertext);
out[1] = out[0] = 0;
for (bit = 0; bit < 64; bit++) {
index = bit >> 4;
/* Swap L and R here instead of doing it one more time in DES_bs_crypt() */
index ^= 2;
/* Calculate the number of one of the 16 data bits in raw[index] */
shift = ((bit & 0xC) << 1) + (bit & 3) + 1;
/* Get the bit */
value = (raw[index] >> shift) & 1;