diff --git a/memxor.c b/memxor.c index 5f073a6cd4851bf7459453d2c2ff01071c2f3099..5f2babb128ded1871e21c4d15d0c97d97ec048d8 100644 --- a/memxor.c +++ b/memxor.c @@ -13,7 +13,8 @@ #include "memxor.h" -uint8_t *memxor(uint8_t *dst, const uint8_t *src, size_t n) +uint8_t * +memxor(uint8_t *dst, const uint8_t *src, size_t n) { size_t i; for (i = 0; i<n; i++) @@ -21,3 +22,14 @@ uint8_t *memxor(uint8_t *dst, const uint8_t *src, size_t n) return dst; } + +uint8_t * +memxor3(uint8_t *dst, const uint8_t *a, const uint8_t *b, size_t n) +{ + size_t i; + for (i = 0; i<n; i++) + dst[i] = a[i] ^ b[i]; + + return dst; +} + diff --git a/memxor.h b/memxor.h index fe214c3902922b83710706757deae38e266bdd59..5b43a99f9cc7266c8b71e8010d5bf09e9e23e473 100644 --- a/memxor.h +++ b/memxor.h @@ -9,5 +9,6 @@ #include "nettle-types.h" uint8_t *memxor(uint8_t *dst, const uint8_t *src, size_t n); +uint8_t *memxor3(uint8_t *dst, const uint8_t *a, const uint8_t *b, size_t n); #endif /* NETTLE_MEMXOR_H_INCLUDED */