• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #include "common.h"
2 
mbedtls_xor(unsigned char * r,const unsigned char * a,const unsigned char * b,size_t n)3 void mbedtls_xor(unsigned char *r, const unsigned char *a, const unsigned char *b, size_t n)
4 {
5     size_t i = 0;
6 #if defined(MBEDTLS_EFFICIENT_UNALIGNED_ACCESS)
7     for (; (i + 4) <= n; i += 4) {
8         uint32_t x = mbedtls_get_unaligned_uint32(a + i) ^ mbedtls_get_unaligned_uint32(b + i);
9         mbedtls_put_unaligned_uint32(r + i, x);
10     }
11 #endif
12     for (; i < n; i++) {
13         r[i] = a[i] ^ b[i];
14     }
15 }