From 9847b77c83055870130b7198bcb8908b18b785cd Mon Sep 17 00:00:00 2001 From: Philippe Teuwen Date: Mon, 4 May 2020 23:31:36 +0200 Subject: [PATCH] fix cast align warning --- common/generator.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/common/generator.c b/common/generator.c index 653d57061..b405fec1a 100644 --- a/common/generator.c +++ b/common/generator.c @@ -111,18 +111,17 @@ uint32_t ul_ev1_pwdgenB(uint8_t *uid) { // Lego Dimension pwd generation algo nickname C. uint32_t ul_ev1_pwdgenC(uint8_t *uid) { uint32_t pwd = 0; - uint8_t base[] = { - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x28, - 0x63, 0x29, 0x20, 0x43, 0x6f, 0x70, 0x79, 0x72, - 0x69, 0x67, 0x68, 0x74, 0x20, 0x4c, 0x45, 0x47, - 0x4f, 0x20, 0x32, 0x30, 0x31, 0x34, 0xaa, 0xaa + uint32_t base[] = { + 0xffffffff, 0x28ffffff, + 0x43202963, 0x7279706f, + 0x74686769, 0x47454c20, + 0x3032204f, 0xaaaa3431 }; memcpy(base, uid, 7); - for (int i = 0; i < 32; i += 4) { - uint32_t b = *(uint32_t *)(base + i); - pwd = b + ROTR(pwd, 25) + ROTR(pwd, 10) - pwd; + for (int i = 0; i < 8; i++) { + pwd = base[i] + ROTR(pwd, 25) + ROTR(pwd, 10) - pwd; } return BSWAP_32(pwd); }