Пример #1
0
/*
	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;
}
Пример #2
0
/*
** 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);
}