#include #include #include #include #include "rsades.h" #define MAXBITS 512 static unsigned short int bits[192][MAXBITS]; static int maxbits; #define OLEN 80 static char oline[OLEN]; static int ofill; static FILE *of; static int owrite(void *cookie __attribute__((__unused__)), const char *buf, int len) { int l; int n; int i; l = len; while (l > 0) { n = OLEN - ofill; if (n > l) n = l; bcopy(buf,&oline[ofill],n); buf += n; l -= n; ofill += n; if (ofill > 72) { for (i=70;i>=0;i--) if (!isalnum((unsigned char)oline[i])) break; if (i < 0) abort(); i ++; printf("%.*s\n",i,&oline[0]); bcopy(&oline[i],&oline[0],ofill-i); ofill -= i; } } return(len); } static void oflush(void) { if (ofill > 0) printf("%.*s\n",ofill,&oline[0]); ofill = 0; } static void dosingle(void) { unsigned char k[8]; DESTable t; int i; unsigned int v; int b; unsigned char tv[128]; int x; maxbits = -1; for (b=0;b<64;b++) { bzero(&k[0],8); k[b>>3] |= 1 << (b & 7); deskey(&t,&k[0]); x = 0; for (i=0;i> 24) & 0xff; tv[x++] = (v >> 16) & 0xff; tv[x++] = (v >> 8) & 0xff; tv[x++] = v & 0xff; } if (x != 128) { fprintf(stderr,"single table size wrong\n"); abort(); } bits[b][0] = 0; for (i=0;i<1024;i++) { if (tv[i>>3] & (1<<(i&7))) bits[b][++bits[b][0]] = i; } if (bits[b][0] > MAXBITS) abort(); if (bits[b][0] > maxbits) maxbits = bits[b][0]; } fprintf(of,"unsigned short int libdes__rsadkbits[64][%d]={"/*}*/,maxbits+1); for (b=0;b<64;b++) { if (b) fprintf(of,","); fprintf(of,"{%d"/*}*/,bits[b][0]); for (i=0;i>3] |= 1 << (b & 7); des3key(&t,&k[0]); x = 0; for (i=0;i> 24) & 0xff; tv[x++] = (v >> 16) & 0xff; tv[x++] = (v >> 8) & 0xff; tv[x++] = v & 0xff; } if (x != 384) { fprintf(stderr,"triple table size wrong\n"); abort(); } bits[b][0] = 0; for (i=0;i<3072;i++) { if (tv[i>>3] & (1<<(i&7))) bits[b][++bits[b][0]] = i; } if (bits[b][0] > MAXBITS) abort(); if (bits[b][0] > maxbits) maxbits = bits[b][0]; } fprintf(of,"unsigned short int libdes__rsad3kbits[192][%d]={"/*}*/,maxbits+1); for (b=0;b<192;b++) { if (b) fprintf(of,","); fprintf(of,"{%d"/*}*/,bits[b][0]); for (i=0;i