1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
|
int xor_donnees (unsigned char *block_A, unsigned char block_B, int Taille )
{
/// Taile: 8 bytes , 16 ou 32
switch(Taille) {
case 16:
*((unsigned int *)block_A+3) ^ *((unsigned int *)block_B+3);
*((unsigned int *)block_A+2) ^ *((unsigned int *)block_B+2);
case 8:
*((unsigned int *)block_A+1) ^ *((unsigned int *)block_B+1);
case 4:
*((unsigned int *)block_A+0) ^ *((unsigned int *)block_B+0);
break;
default:
while(Taille--)
*block_A++ ^ *block_B++;
break;
}
}
int main()
{
unsigned char block_a[8]={0x12, 0x50, 0xF8, 0x21, 0x82, 0x6B, 0x2F, 0x82};
unsigned char block_b[8] ={0x77, 0xCA, 0x7B, 0xAA, 0xDC, 0x46, 0x2C, 0xAE};
// appelle de la fonction xor_données
xor_donnees( block_a,block_b,8);
} |
Partager