fix cast align warning

This commit is contained in:
Philippe Teuwen 2020-05-04 23:31:36 +02:00
parent e68dd9e5cb
commit 9847b77c83

View file

@ -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);
}