/* *mknewpc2.c * *GeneratePC-2tablesforDES-150library * *ThisSourceCodeFormissubjecttothetermsoftheMozillaPublic *License,v.2.0.IfacopyoftheMPLwasnotdistributedwiththis
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
/* Here's the code that does that grouping. left=PC2LOOKUP(0,0,((c0>>22)&0x3F)); left|=PC2LOOKUP(0,1,((c0>>13)&0x3F)); left|=PC2LOOKUP(0,2,((c0>>4)&0x38)|(c0&0x7)); left|=PC2LOOKUP(0,3,((c0>>18)&0xC)|((c0>>11)&0x3)|(c0&0x30));
for (i = 0; i < 64; ++i) {
j = PC2[i]; if (j == 0)
j = -1; elseif (j < 29)
j = 28 - j; else
j = 56 - j;
PC2a[i] = j;
} for (i = 0; i < 64; i += 8) {
printf("%3d,%3d,%3d,%3d,%3d,%3d,%3d,%3d,\n",
PC2a[i + 0], PC2a[i + 1], PC2a[i + 2], PC2a[i + 3],
PC2a[i + 4], PC2a[i + 5], PC2a[i + 6], PC2a[i + 7]);
}
}
HALF PC2cd0[64];
HALF PC_2H[8][64];
void
mktable()
{ int i; int table; const BYTE* ndx = NDX;
HALF mask;
mask = 0x80000000; for (i = 0; i < 32; ++i, mask >>= 1) { int bit = PC2b[i]; if (bit < 0) continue;
PC2cd0[bit + 32] = mask;
}
mask = 0x80000000; for (i = 32; i < 64; ++i, mask >>= 1) { int bit = PC2b[i]; if (bit < 0) continue;
PC2cd0[bit] = mask;
}
#if DEBUG for (i = 0; i < 64; ++i) {
printf("0x%08x,\n", PC2cd0[i]);
} #endif for (i = 0; i < 24; ++i) {
NDX[i] += 32; /* because c0 is the upper half */
}
for (table = 0; table < 8; ++table) {
HALF bitvals[6]; for (i = 0; i < 6; ++i) {
bitvals[5 - i] = PC2cd0[*ndx++];
} for (i = 0; i < 64; ++i) { int j; int k = 0;
HALF value = 0;
for (j = i; j; j >>= 1, ++k) { if (j & 1) {
value |= bitvals[k];
}
}
PC_2H[table][i] = value;
}
printf("/* table %d */ {\n", table); for (i = 0; i < 64; i += 4) {
printf(" 0x%08x, 0x%08x, 0x%08x, 0x%08x, \n",
PC_2H[table][i], PC_2H[table][i + 1],
PC_2H[table][i + 2], PC_2H[table][i + 3]);
}
printf(" },\n");
}
}
int
main(void)
{ /* make_pc2a(); */
mktable(); return0;
}
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.17 Sekunden
(vorverarbeitet am 2026-10-11)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.