From 4fd233a73e81b4d7ecd8d8e786b2a14e51f048a0 Mon Sep 17 00:00:00 2001 From: Martin Willi Date: Wed, 26 Nov 2008 10:06:59 +0000 Subject: memxor() tweaks, as it is heavily used in xcbc --- src/libstrongswan/utils.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/libstrongswan/utils.c b/src/libstrongswan/utils.c index 88aa1bf79..3a6a478ff 100644 --- a/src/libstrongswan/utils.c +++ b/src/libstrongswan/utils.c @@ -61,10 +61,18 @@ void *clalloc(void * pointer, size_t size) */ void memxor(u_int8_t dest[], u_int8_t src[], size_t n) { - size_t i; - for (i = 0; i < n; i++) + int i = 0, m; + + m = n - sizeof(long); + while (i < m) + { + *(long*)(dest + i) ^= *(long*)(src + i); + i += sizeof(long); + } + while (i < n) { dest[i] ^= src[i]; + i++; } } -- cgit v1.2.3