| 12
 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