/* Calculates the output for given sbox (0 or 1), returning a decimal number. */ int sbox_s(char *output, int i) { char tmp[3]; int row; int column; int s0; int s1; if (i == 0) { //sbox_s0 tmp[0] = output[0]; tmp[1] = output[3]; tmp[2] = '\0'; row = convert_to_decimal(tmp); tmp[0] = output[1]; tmp[1] = output[2]; tmp[2] = '\0'; column = convert_to_decimal(tmp); s0_items(); s0 = s0_box[row][column]; return s0; } else if (i == 1) { //sbox_s1 tmp[0] = output[4]; tmp[1] = output[7]; tmp[2] = '\0'; row = convert_to_decimal(tmp); tmp[0] = output[5]; tmp[1] = output[6]; tmp[2] = '\0'; column = convert_to_decimal(tmp); s1_items(); s1 = s1_box[row][column]; return s1; } else return -1; }
/* ** convertie en little endian un int donnée donnée */ void my_little_endian(uint32_t elem, uint8_t *tab){ char *hexadecimal = malloc(sizeof(char)*8); convertir_32(elem,hexadecimal); convert_to_decimal(hexadecimal,tab); free(hexadecimal); }
void subtract(char* first_roman_value, char* second_roman_value, char* result) { convert_to_roman(convert_to_decimal(first_roman_value)-convert_to_decimal(second_roman_value), result); }
void add(char* first_roman_value, char* second_roman_value, char* result) { convert_to_roman(convert_to_decimal(first_roman_value)+convert_to_decimal(second_roman_value), result); }