static void SBOX(serpent_byte which, serpent_word32 array0[], serpent_word32 array1[], serpent_byte index) { switch(which) { case 0: SBOX0(array0[0], array0[1], array0[2], array0[3], array1[0+index], array1[1+index], array1[2+index], array1[3+index]); break; case 1: SBOX1(array0[0], array0[1], array0[2], array0[3], array1[0+index], array1[1+index], array1[2+index], array1[3+index]); break; case 2: SBOX2(array0[0], array0[1], array0[2], array0[3], array1[0+index], array1[1+index], array1[2+index], array1[3+index]); break; case 3: SBOX3(array0[0], array0[1], array0[2], array0[3], array1[0+index], array1[1+index], array1[2+index], array1[3+index]); break; case 4: SBOX4(array0[0], array0[1], array0[2], array0[3], array1[0+index], array1[1+index], array1[2+index], array1[3+index]); break; case 5: SBOX5(array0[0], array0[1], array0[2], array0[3], array1[0+index], array1[1+index], array1[2+index], array1[3+index]); break; case 6: SBOX6(array0[0], array0[1], array0[2], array0[3], array1[0+index], array1[1+index], array1[2+index], array1[3+index]); break; case 7: SBOX7(array0[0], array0[1], array0[2], array0[3], array1[0+index], array1[1+index], array1[2+index], array1[3+index]); break; } }
int main () { Byte i; int index; char nombre[7]; Byte y; for (index = 1; index <= MAX_SBOX_COUNT; index++) { sprintf(nombre,"S%d.tt",index); if((fichero[index] = fopen(nombre,"wt")) == NULL) { return 0; } } fprintf(fichero[1],"[[ "); for (i = 0; i < 255; i++) { y = SBOX1(i); binary(y,fichero[1]); init(fichero[1]); } y = SBOX1(255); binary(y,fichero[1]); fprintf(fichero[1],"]]"); cont = 0; fclose(fichero[1]); fprintf(fichero[2],"[[ "); for (i = 0; i < 255; i++) { y = SBOX2(i); binary(y,fichero[2]); init(fichero[2]); } y = SBOX2(255); binary(y,fichero[2]); fprintf(fichero[2],"]]"); cont = 0; fclose(fichero[2]); fprintf(fichero[3],"[[ "); for (i = 0; i < 255; i++) { y = SBOX3(i); binary(y,fichero[3]); init(fichero[3]); } y = SBOX3(255); binary(y,fichero[3]); fprintf(fichero[3],"]]"); cont = 0; fclose(fichero[3]); fprintf(fichero[4],"[[ "); for (i = 0; i < 255; i++) { y = SBOX4(i); binary(y,fichero[4]); init(fichero[4]); } y = SBOX4(255); binary(y,fichero[4]); fprintf(fichero[4],"]]"); cont = 0; fclose(fichero[4]); }