From a6c91ffe4eef4ca9f368ef40b6d6026c0bce23f6 Mon Sep 17 00:00:00 2001 From: Merry Date: Fri, 23 Feb 2018 02:03:05 +0000 Subject: [PATCH] se: fix infinite loop in shift_left_xor_rb (#21) --- exosphere/se.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/exosphere/se.c b/exosphere/se.c index d1f353df0..9933759b8 100644 --- a/exosphere/se.c +++ b/exosphere/se.c @@ -469,9 +469,9 @@ void se_aes_ecb_decrypt_block(unsigned int keyslot, void *dst, size_t dst_size, void shift_left_xor_rb(uint8_t *key) { uint8_t prev_high_bit = 0; - for (unsigned int i = 0xF; i >= 0; i--) { - uint8_t cur_byte = key[i]; - key[i] = (cur_byte << 1) | (prev_high_bit); + for (unsigned int i = 0; i < 0x10; i++) { + uint8_t cur_byte = key[0xF - i]; + key[0xF - i] = (cur_byte << 1) | (prev_high_bit); prev_high_bit = cur_byte >> 7; } if (prev_high_bit) {