aboutsummaryrefslogtreecommitdiffstats
path: root/tools/firmware-utils/src/xorimage.c
diff options
context:
space:
mode:
Diffstat (limited to 'tools/firmware-utils/src/xorimage.c')
-rw-r--r--tools/firmware-utils/src/xorimage.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/tools/firmware-utils/src/xorimage.c b/tools/firmware-utils/src/xorimage.c
index 4d1cd2d5de..e13531ab4a 100644
--- a/tools/firmware-utils/src/xorimage.c
+++ b/tools/firmware-utils/src/xorimage.c
@@ -29,15 +29,17 @@ static char default_pattern[] = "12345678";
static int is_hex_pattern;
-int xor_data(uint8_t *data, size_t len, const uint8_t *pattern, int p_len, int p_off)
+int xor_data(void *data, size_t len, const void *pattern, int p_len, int p_off)
{
- int offset = p_off;
+ const uint8_t *key = pattern;
+ uint8_t *d = data;
+
while (len--) {
- *data ^= pattern[offset];
- data++;
- offset = (offset + 1) % p_len;
+ *d ^= key[p_off];
+ d++;
+ p_off = (p_off + 1) % p_len;
}
- return offset;
+ return p_off;
}